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