README.MiNT
author Patrice Mandin <patmandin@gmail.com>
Wed, 02 Aug 2006 21:26:31 +0000
branchSDL-1.2
changeset 3850 28db418c7573
parent 1420 2405517b5eab
child 3862 3c4ccd884117
permissions -rw-r--r--
Add teamtap support (4 joypads adapter on 1 port)
slouken@281
     1
==============================================================================
slouken@281
     2
Using the Simple DirectMedia Layer on Atari
slouken@281
     3
==============================================================================
slouken@281
     4
patmandin@1083
     5
patmandin@1083
     6
    If you want to build SDL from sources to create SDL programs on Atari:
patmandin@1083
     7
        see sections I - II.
patmandin@1083
     8
	
patmandin@1083
     9
    If you want to create SDL programs on Atari using SDL binary build,
patmandin@1083
    10
        download it from my web site (URL at end of this file).
patmandin@1083
    11
patmandin@1083
    12
    If you want to configure a program using SDL on Atari,
patmandin@1083
    13
	    see sections IV - VI.
patmandin@1083
    14
patmandin@1083
    15
slouken@281
    16
==============================================================================
slouken@281
    17
I.  Building the Simple DirectMedia Layer libraries:
slouken@281
    18
    (This step isn't necessary if you have the SDL binary distribution)
slouken@281
    19
slouken@281
    20
  Do the classic configure, with --disable-shared --enable-static and:
slouken@281
    21
slouken@281
    22
    Tos version (should run everywhere):
slouken@398
    23
      --disable-threads
slouken@398
    24
    Tos does not support threads.
slouken@281
    25
slouken@281
    26
    MiNT version (maybe Magic, only for multitasking OS):
slouken@281
    27
      --disable-pthreads --enable-pth
slouken@281
    28
    Mint and Magic may supports threads, so audio can be used with current
slouken@281
    29
    devices, like Sun audio, or disk-writing support. Like Tos, interrupt
slouken@281
    30
    audio without threads is more suited for Atari machines.
slouken@281
    31
slouken@281
    32
  Then you can make ; make install it.
slouken@281
    33
slouken@281
    34
==============================================================================
slouken@281
    35
II. Building the Simple DirectMedia Layer test programs:
slouken@281
    36
slouken@281
    37
  Do the classic configure, then make.
slouken@281
    38
slouken@281
    39
  Run them !
slouken@281
    40
slouken@281
    41
==============================================================================
slouken@281
    42
III.  Enjoy! :)
slouken@281
    43
slouken@281
    44
  If you have a project you'd like me to know about, or want to ask questions,
slouken@281
    45
  go ahead and join the SDL developer's mailing list by sending e-mail to:
slouken@281
    46
slouken@281
    47
	sdl-request@libsdl.org
slouken@281
    48
slouken@281
    49
  and put "subscribe" into the subject of the message. Or alternatively you
slouken@281
    50
  can use the web interface:
slouken@281
    51
slouken@281
    52
	http://www.libsdl.org/mailman/listinfo/sdl
slouken@281
    53
  
slouken@281
    54
==============================================================================
slouken@281
    55
IV.  What is supported:
slouken@281
    56
slouken@319
    57
Keyboard (GEMDOS, BIOS, GEM, Ikbd)
patmandin@1420
    58
Mouse (XBIOS, GEM, Ikbd, /dev/mouse (non working atm, disabled))
slouken@281
    59
Video (XBIOS (Fullscreen), GEM (Windowed and Fullscreen))
slouken@557
    60
Timer (VBL vector, GNU pth library)
patmandin@963
    61
Joysticks and joypads (Ikbd, Hardware)
patmandin@724
    62
Audio (Hardware, XBIOS, GSXB, MCSN, STFA, /dev/audio if threads enabled)
patmandin@724
    63
Threads (Multitasking OS only via GNU pth library)
patmandin@724
    64
Shared object loader (using LDG library from http://ldg.atari.org/)
patmandin@724
    65
Audio CD (MetaDOS)
patmandin@978
    66
OpenGL (using Mesa offscreen rendering driver)
slouken@281
    67
patmandin@1112
    68
- Dependent driver combinations:
patmandin@1112
    69
Video   Kbd     Mouse   Timer   Joysticks
patmandin@1112
    70
xbios   ikbd    ikbd    vbl(2)  ikbd
patmandin@1237
    71
xbios   gemdos  xbios   vbl(2)  xbios(3)
patmandin@1237
    72
xbios   bios    xbios   vbl(2)  xbios(3)
patmandin@1237
    73
gem     gem     gem(1)  vbl(2)  xbios(3)
patmandin@1112
    74
patmandin@1112
    75
Audio   O/S     Misc
patmandin@1112
    76
dma8    All     Uses MFP Timer A interrupt
patmandin@1112
    77
xbios	TOS     Uses MFP Timer A interrupt
patmandin@1112
    78
xbios   MiNT    Uses MiNT thread
patmandin@1112
    79
xbios   Magic   Disabled
patmandin@1112
    80
stfa    All     Uses MFP interrupt
patmandin@1112
    81
mcsn	TOS     Uses MFP Timer A interrupt
patmandin@1112
    82
mcsn    MiNT    Uses MiNT thread
patmandin@1112
    83
mcsn    Magic   Disabled
patmandin@1112
    84
gsxb    All     Uses GSXB callback
patmandin@1112
    85
patmandin@1112
    86
Joypad driver always uses hardware access.
patmandin@1112
    87
OpenGL driver always uses OSMesa.
slouken@319
    88
slouken@557
    89
(1) GEM does not report relative mouse motion, so xbios mouse driver is used
patmandin@1237
    90
to report this type event. Under MiNT, using XBIOS mouse driver is not possible.
patmandin@1420
    91
A preliminary driver for /dev/mouse device driver is present, but is disabled
patmandin@1420
    92
till it can be used with other applications simultaneously.
slouken@281
    93
slouken@557
    94
(2) If you build SDL with threads using the GNU pth library, timers are
slouken@557
    95
supported via the pth library.
slouken@557
    96
patmandin@1237
    97
(3) Redirecting XBIOS vectors does not work under MiNT, so it is disabled in
patmandin@1237
    98
this case.
patmandin@1237
    99
slouken@281
   100
==============================================================================
slouken@281
   101
V.  Environment variables:
slouken@281
   102
slouken@398
   103
SDL_VIDEODRIVER:
slouken@398
   104
	Set to 'xbios' to force xbios video driver
slouken@398
   105
	Set to 'gem' to force gem video driver
slouken@398
   106
patmandin@1007
   107
SDL_VIDEO_GL_DRIVER:
patmandin@1007
   108
	Set to filename to load as OpenGL library, if you use SDL_GL_LoadLibrary()
patmandin@1007
   109
slouken@398
   110
SDL_AUDIODRIVER:
patmandin@644
   111
	Set to 'mint_gsxb' to force Atari GSXB audio driver
patmandin@644
   112
	Set to 'mint_mcsn' to force Atari MCSN audio driver
patmandin@644
   113
	Set to 'mint_stfa' to force Atari STFA audio driver
patmandin@644
   114
	Set to 'mint_xbios' to force Atari Xbios audio driver
patmandin@644
   115
	Set to 'mint_dma8' to force Atari 8 bits DMA audio driver
slouken@398
   116
	Set to 'audio' to force Sun /dev/audio audio driver
slouken@398
   117
	Set to 'disk' to force disk-writing audio driver
slouken@398
   118
slouken@281
   119
SDL_ATARI_EVENTSDRIVER
slouken@281
   120
	Set to 'ikbd' to force IKBD 6301 keyboard driver
slouken@281
   121
	Set to 'gemdos' to force gemdos keyboard driver
slouken@281
   122
	Set to 'bios' to force bios keyboard driver
slouken@281
   123
slouken@302
   124
SDL_JOYSTICK_ATARI:
slouken@302
   125
	Use any of these strings in the environment variable to enable or
slouken@302
   126
	disable a joystick:
slouken@302
   127
slouken@305
   128
	'ikbd-joy1-[on|off]' for IKBD joystick on port 1 (hardware access)
slouken@305
   129
	'xbios-joy1-[on|off]' for IKBD joystick on port 1 (xbios access)
patmandin@3850
   130
	'porta-pad-[on|off]' for joypad and/or teamtap on port A
slouken@302
   131
	'porta-joy0-[on|off]' for joystick 0 on port A
slouken@302
   132
	'porta-joy1-[on|off]' for joystick 1 on port A
slouken@302
   133
	'porta-lp-[on|off]' for lightpen on port A
slouken@302
   134
	'porta-anpad-[on|off]' for analog paddle on port A
patmandin@3850
   135
	'portb-pad-[on|off]' for joypad and/or teamtap on port B
slouken@302
   136
	'portb-joy0-[on|off]' for joystick 0 on port B
slouken@302
   137
	'portb-joy1-[on|off]' for joystick 1 on port B
slouken@302
   138
	'portb-anpad-[on|off]' for analog paddle on port B
slouken@302
   139
slouken@302
   140
	Default configuration is:
slouken@302
   141
		'ikbd-joy1-on' (if IKBD events driver enabled)
slouken@305
   142
		'xbios-joy1-on' (if gemdos/bios/gem events driver enabled)
slouken@302
   143
		'porta-pad-on portb-pad-on' (if available on the machine)
slouken@302
   144
slouken@302
   145
	port[a|b]-[pad|joy?|lp|anpad]-* strings are mutually exclusives.
slouken@302
   146
	On such a port, you can only use a joypad OR 1 or 2 joysticks OR
slouken@302
   147
	a lightpen OR an analog paddle. You must disable joypad before
slouken@302
   148
	setting another controller.
slouken@302
   149
slouken@302
   150
	The second joystick port on IKBD is used by the mouse, so not usable.
patmandin@1087
   151
	Another problem with the IKBD: mouse buttons and joystick fire buttons
patmandin@1087
   152
	are wired together at the hardware level, it means:
patmandin@1106
   153
		port 0                port 0           port 1
patmandin@1106
   154
		mouse left button  = joystick fire 0 = joystick fire 1
patmandin@1106
   155
		mouse right button = joystick fire 1 = joystick fire 0
slouken@302
   156
patmandin@963
   157
	Descriptions of joysticks/joypads:
patmandin@963
   158
	- Joypads: 1 hat, 17 buttons (Atari Jaguar console-like).
patmandin@963
   159
	- Joysticks: 1 hat, 1 button.
patmandin@963
   160
	- Lightpen, analog paddles: 2 axis, 2 buttons. The 2 buttons are those
patmandin@963
   161
	  affected to 1 button joysticks on the same port.
slouken@302
   162
slouken@319
   163
==============================================================================
slouken@319
   164
VI.  More informations about drivers:
slouken@319
   165
patmandin@1007
   166
OpenGL:
patmandin@1007
   167
	The default is to use the Mesa offscreen driver (osmesa.ldg). If you want
patmandin@1007
   168
	to use an older OpenGL implementation, like mesa_gl.ldg or tiny_gl.ldg,
patmandin@1007
   169
	your program must use SDL_GL_LoadLibrary() to do so, and retrieve the
patmandin@1007
   170
	needed function pointers with SDL_LoadFunction(). In all cases, the OpenGL
patmandin@1007
   171
	context is taken care of by SDL itself, you just have to use gl* functions.
patmandin@1007
   172
patmandin@1007
   173
	However, there is one OpenGL call that has a different prototype in the old
patmandin@1007
   174
	implementations: glOrtho(). In the old implementations, it has 6 float as
patmandin@1007
   175
	parameters, in the standard one, it has 6 double parameters. If you want
patmandin@1007
   176
	to compile testdyngl, or any other SDL program that loads its OpenGL
patmandin@1007
   177
	library, you must change the glOrtho() prototype used in this program. In
patmandin@1064
   178
	osmesa.ldg, you can retrieve a glOrtho() with double parameters, by
patmandin@1064
   179
	searching for the function "glOrtho6d".
patmandin@1007
   180
slouken@319
   181
Xbios video:
slouken@319
   182
	Video chip is detected using the _VDO cookie.
slouken@319
   183
	Screen enhancers are not supported, but could be if you know how to
slouken@319
   184
	use them.
slouken@319
   185
slouken@319
   186
	ST, STE, Mega ST, Mega STE:
slouken@319
   187
		320x200x4 bits, shades of grey, available only for the purpose
slouken@319
   188
		of testing SDL.
slouken@319
   189
	TT:
slouken@319
   190
		320x480x8 and 320x240x8 (software double-lined mode).
slouken@319
   191
	Falcon:
slouken@319
   192
		All modes supported by the current monitor (RVB or VGA).
patmandin@1064
   193
		BlowUp and Centscreen extended modes, ScreenBlaster 3 current mode.
slouken@319
   194
	Clones and any machine with monochrome monitor:
slouken@319
   195
		Not supported.
slouken@319
   196
slouken@319
   197
Gem video:
slouken@319
   198
	Automatically used if xbios not available.
slouken@319
   199
slouken@319
   200
	All machines:
slouken@319
   201
		Only the current resolution, if 8 bits or higher depth.
slouken@319
   202
slouken@319
   203
IKBD keyboard, mouse and joystick driver:
slouken@319
   204
	Available if _MCH cookie is ST, Mega ST, STE, Mega STE, TT or Falcon.
slouken@319
   205
slouken@319
   206
	Hades has an IKBD, but xbios is not available for video, so IKBD
slouken@319
   207
	driver is disabled.
slouken@319
   208
slouken@319
   209
Gemdos and bios keyboard driver:
slouken@319
   210
	Available on all machines.
slouken@319
   211
slouken@319
   212
Mouse and joystick xbios driver:
slouken@319
   213
	Available on all machines (I think).
slouken@319
   214
slouken@319
   215
Joypad driver:
patmandin@3850
   216
	Available if _MCH cookie is STE or Falcon. Supports teamtap.
slouken@319
   217
slouken@557
   218
PTH timer driver:
slouken@557
   219
	Available with multitasking OS.
slouken@557
   220
slouken@319
   221
VBL timer driver:
slouken@398
   222
	Available on all machines (I think).
slouken@398
   223
patmandin@644
   224
Audio drivers:
patmandin@644
   225
	Cookies _SND, MCSN, STFA and GSXB used to detect supported audio
patmandin@1112
   226
	capabilities.
slouken@398
   227
slouken@398
   228
	STE, Mega STE, TT:
slouken@398
   229
		8 bits DMA (hardware access)
patmandin@644
   230
		STFA, MCSN or GSXB driver if installed
patmandin@644
   231
	Falcon:
patmandin@644
   232
		8 bits DMA (hardware access)
patmandin@644
   233
		Xbios functions
patmandin@644
   234
		STFA, MCSN or GSXB driver if installed
patmandin@644
   235
	Other machines:
patmandin@644
   236
		STFA, MCSN or GSXB driver if installed
slouken@398
   237
patmandin@644
   238
	STFA driver:
patmandin@644
   239
		http://removers.free.fr/softs/stfa.html
patmandin@644
   240
	GSXB driver:
patmandin@644
   241
		http://assemsoft.atari.org/gsxb/
patmandin@644
   242
	MacSound driver:
patmandin@644
   243
		http://jf.omnis.ch/software/tos/
patmandin@644
   244
	MagicSound driver (MCSN,GSXB compatible):
patmandin@644
   245
		http://perso.wanadoo.fr/didierm/
patmandin@644
   246
	X-Sound driver (GSXB compatible):
patmandin@644
   247
		http://www.uni-ulm.de/~s_thuth/atari/xsound_e.html
slouken@319
   248
slouken@281
   249
-- 
slouken@281
   250
Patrice Mandin <pmandin@caramail.com>
patmandin@1420
   251
http://pmandin.atari.org/