MacJoyPad V1.1 - 1995 by Francesco Doro (fdoro@gpnet.it) MacJoyPad is similar to MacJoy (see MacJoy.doc) but it gives support to both joystick and CD32 joypad. Anyway if you use joystick is better using MacJoy instead of MacJoyPad since it is VERY reliable and OS friendly, takes less memory and doesn't need any additional file. You may use MacJoy also for joypad; in this case FIRE1 is the red button, FIRE2 is the BLUE botton. Use MacJoyPad only if you really need all those buttons. MacJoyPad needs lowlevel.library (not included). This library is part of WorkBench 3.1. You can configure MacJoyPad like MacJoy, using the tooltypes stored in his icon if you launch it from workbench or with command line arguments if launched from shell or script. Joypad's buttons have different colors and shapes; some have special names: FORWARD is that with the '>>', REVERSE is '<<' and PLAY is '||>'. Valid tooltypes are: UP, DOWN, RIGHT, LEFT, RED, BLUE, GREEN, YELLOW, FORWARD, REVERSE, PLAY, JOYSTICK, JOYPAD. Missing tooltypes will assume the default value. For a good efficiency lowlevel.library needs to be informed about the device connected to the gameport so when started, MacJoyPad tries to recognize it. If it finds a mouse it gives an error message and exits; if a joystick or joypad is found, lowlevel.library will be initialized according to the result. You have to use the tooltypes JOYSTICK or JOYPAD only if for same reason MacJoyPad fails to recognize correctly the device, normally don't add neither. Anyway the routine that tests the game port to recognize whether joystick or joypad is connected requires some time (about a second); if this is annoying for you then add the correct tooltype to bypass it. Same for shell usage. Shell or script usage: copy the executable in C:, then you can see the syntax by typing in a shell ; an example: Run >NIL: C:MacJoyPad UP=62 DOWN=46 RIGHT=47 LEFT=45 RED=68 The 'Run >NIL:' is necessary otherwise the script will stop. Missing arguments will assume the default value. Arguments' names are not case sensitive, can be in any order and the '=' can be replaced by a space. If you use it in the Startup-Sequence launch it after the IPrefs. The default configuration is: directions to cursor keys, RED to space, BLUE to right alt, GREEN to return, YELLOW to tab, FORWARD to control, REVERSE to left shift, PLAY to m (like map...). MacJoyPad will use this config if it doesn't find tooltypes or CLI arguments. MacJoyPad is NOT a commodity, it will open a small window on workbench screen; to remove it you have to close that window. You can launch and quit it at any time even during mac emulation. IMPORTANT: MacJoyPad is specific for the CD32 joypad, maybe it can't work well with other joypads; please don't ask support for other joypads since I own only the CD32's one. In general joypads are not as simple to handle like joysticks, you require docs and a joypad to experiment. I've heard rumours that some A1200 have a hardware problem with the CD32 joypad or that some CD32 joypads have an hardware problem with the A1200; in my tests I have not found any problem with 500, 1200 and 4000 but usually I'm very lucky with computers (much more than with girls :-). Known bugs and problems: MacJoyPad uses some features of lowlevel.library that cannot be shared between applications, so if another program tries to use them when MacJoyPad is active it will probably fail. MacJoyPad requires kickstart 2.0 or better, otherwise it won't do anything, not even an error message (but it won't crash). There is a problem (not really a bug) with the Archos' Zappo CD software and probably with other similar programs. These software provide a 'CD32 emulator' that includes a joypad emulator; this works by remapping some keyboard's keys to joypad's buttons. If at the same time MacJoyPad is active it will remap to keyboard events also the remapped-to-joypad keyboard events so that pressing some keys will cause two RAWKEY events. With Zappo's soft the solution is to edit the CD0 mountlist and modify the Startup line as follow (without linefeed): Startup = "BLUE=127 RED=127 YELLOW=127 GREEN=127 FORWARD=127 REVERSE=127 PLAY=127 UP=127 DOWN=127 LEFT=127 RIGHT=127 GAMES=0 V40=0 JOYSTICK=0 FASTMEM=0" This will tell the overcd-handler to remap to joypad a non-existent key so it will never cause conflict with MacJoyPad. At the moment I don't know a better solution, there is no way to distinguish a fake joypad event from a real one. With other similar softs try to disable the joypad emulation; if you have a real joypad that emulation is useless, isn't it? Copyright: MacJoyPad is entirely work of mine so I can say it is 100% free and Public Domain; do with it what you want but don't expect any guarantee from me about his reliability or eventual damages it could produce. Anyway please report any problems or bugs you find and probably I will fix them; include infos about your system and version of lowlevel.library; my e-mail address is: fdoro@gpnet.it. Credits: Thanks to Michel Labbé for hint about lowlevel.library, for beta testing and for having convinced me to do this small utility. Thanks to Thomas Kessler for the correct way to recognize game controller.