----------------------------------------------------------------------------- Multi-Gauntlet Emulator version 0.471 (9/10/97) Written by Neill Corlett - Copyright 1997 ----------------------------------------------------------------------------- Email contact: corlett@elwha.nrrc.ncsu.edu WWW contact: http://www4.ncsu.edu/eos/users/n/nscorlet/mge/ What's New in Version 0.471 --------------------------- This is just a minor bug fix release. * Changed the Sound Blaster setup routines again. The -autoinit and -noautoinit options are no longer necessary, and have been removed. * Fixed a very rare sprite clipping problem. * MGE should work on a 386 now! Anyone care to try it? ;) What was new in: ---------------- Version 0.47: * Improved speech synthesis. * MGE now tries to detect whether your sound card supports auto-init DMA. * "Important Notice" screen added, to scare away shareware vendors. Version 0.46: * ROMs for each game now live in their own directory. * Gauntlet 1 is no longer the default game. * Some improvements to FM sound. * The Gauntlet 2 slapstic is now emulated perfectly. * Slapstic hack autodetection. * The video routines are more cache-friendly now. * 6502 timing altered a little, which should fix the hiccuping speech problem. ;) * The "Alternate Keys" have been removed. * Bug fixes like you wouldn't believe... Version 0.45: * Realtime speech synthesis. * Each sound chip can be disabled individually. * Added alphanumeric transparency, as seen in the high score and option screens. Version 0.4: * FM and POKEY sound. Requires a Sound Blaster or compatible card. * Instant state saving/loading - F2 to save, F3 to load. * Custom Gauntlet 2 levels are now supported. * VESA autodetection, improved VESA compatibility, plus four new resolutions: 400x300, 512x384, 320x480 with scanlines, and 360x480 with scanlines. * Added VBL syncing - a primitive form of speed regulation. * Frame rate is now adjustable during the game. * Coin inputs are working now: 5,6,7,8 Start buttons are mapped to 1,2,3,4. * Improved palette for 256-color modes. * Improved joystick reading routine. * Joystick can now be recalibrated during the game. * Mouse and/or joystick support can be disabled manually. * Added a special "wait mode" useful for stalling, i.e. to open doors. * Changed option interface: - Hyphens no longer required. - Commonly used options can be placed in MGE.INI, one per line. - Response files (with comments!) can be used. * Minor improvements to the ROM Renamer. Version 0.3: * The slapstic hack is no longer required. Multi-Gauntlet will now run from original, unmodified Gauntlet 1 & 2 ROMs. (The hacked ROMs are still supported, of course.) Note: Gauntlet 1 will only play up to level 12 from the original ROMs. * Gauntlet Final Revision now works. * A 640x480x64K video mode is available. * A mouse, and up to two joysticks, are now supported. * A screen capture function was added. Version 0.2: * Added many new video modes, most notably 360x240x256 Mode X which does not require a VESA driver. * The EEPROM is now saved to disk between Multi-Gauntlet sessions. * Changed key definitions. F5-F8 can now be used to remap the arrow keys to any player. * Added the Multi-Gauntlet ROM Renamer utility. Introduction ------------ First of all... THANK YOU for reading this file. ;) The Multi-Gauntlet Emulator allows you to play the original arcade version of Atari's Gauntlet and Gauntlet 2 games on a MS-DOS or Windows 95 based PC. (It also works with Linux DOSEMU, and has been reported to work with OS/2 and NT 4.0.) Requirements ------------ * 386SX or higher processor * 8MB or more RAM * VGA or VESA compatible video card * Sound Blaster or compatible sound card, if you want any sound (A 16-bit card is NOT required!) Reccommended system for decent speed: * Pentium/100 (with 6502 and sound enabled) * 486/66 (with 6502 and sound disabled) MGE works much better with a VBE 2.0 driver. If your video card doesn't have built-in support for VBE 2.0, fear not! You can try Scitech Display Doctor (see http://www.scitechsoft.com for more info). As with any emulator, MGE requires ROM images from the arcade board itself. I can't include these with the emulator for legal reasons. The following ROM images are needed. Pay close attention to the part numbers. Atari Part # Directory Filename -------------------------------------- For Gauntlet: 136037-104 GAUNT GAUNT.6P (Alphanumeric Font) 136037-111 GAUNT GAUNT.1A (Graphics) 136037-112 GAUNT GAUNT.1B (Graphics) 136037-113 GAUNT GAUNT.1L (Graphics) 136037-114 GAUNT GAUNT.1MN (Graphics) 136037-115 GAUNT GAUNT.2A (Graphics) 136037-116 GAUNT GAUNT.2B (Graphics) 136037-117 GAUNT GAUNT.2L (Graphics) 136037-118 GAUNT GAUNT.2MN (Graphics) 136037-205 GAUNT GAUNT.10A (Slapstic) 136037-206 GAUNT GAUNT.10B (Slapstic) 136037-1407 GAUNT GAUNT.9A (68010 Code) 136037-1408 GAUNT GAUNT.9B (68010 Code) 136037-1409 GAUNT GAUNT.7A (68010 Code) 136037-1410 GAUNT GAUNT.7B (68010 Code) 136037-119 GAUNT GAUNT.16S (6502 Code) 136037-120 GAUNT GAUNT.16R (6502 Code) For Gauntlet 2: 136037-112 GAUNT2 GAUNT2.1B (Graphics) 136037-114 GAUNT2 GAUNT2.1MN (Graphics) 136037-116 GAUNT2 GAUNT2.2B (Graphics) 136037-118 GAUNT2 GAUNT2.2MN (Graphics) 136037-1407 GAUNT2 GAUNT2.9A (68010 Code) 136037-1408 GAUNT2 GAUNT2.9B (68010 Code) 136043-1104 GAUNT2 GAUNT2.6P (Alphanumeric Font) 136043-1105 GAUNT2 GAUNT2.10A (Mazes) 136043-1106 GAUNT2 GAUNT2.10B (Mazes) 136043-1109 GAUNT2 GAUNT2.7A (68010 Code) 136043-1110 GAUNT2 GAUNT2.7B (68010 Code) 136043-1111 GAUNT2 GAUNT2.1A (Graphics) 136043-1113 GAUNT2 GAUNT2.1L (Graphics) 136043-1115 GAUNT2 GAUNT2.2A (Graphics) 136043-1117 GAUNT2 GAUNT2.2L (Graphics) 136043-1121 GAUNT2 GAUNT2.6A (68010 Code) 136043-1122 GAUNT2 GAUNT2.6B (68010 Code) 136043-1123 GAUNT2 GAUNT2.1C (Graphics) 136043-1124 GAUNT2 GAUNT2.1P (Graphics) 136043-1125 GAUNT2 GAUNT2.2C (Graphics) 136043-1126 GAUNT2 GAUNT2.2P (Graphics) 136043-1119 GAUNT2 GAUNT2.16S (6502 Code) 136043-1120 GAUNT2 GAUNT2.16R (6502 Code) NOTE: Do not ask me for ROMs, or how/where to get them. All of the above ROM images are copyrighted by Atari. You can get away without having the 6502 code ROMs if you disable the 6502 (-no6502 option). How to use the Multi-Gauntlet ROM Renamer ----------------------------------------- 1. Make sure you are currently in the directory with the ROM images that you wish to rename. 2. Run ROMREN. The ROM Renamer will recognize and rename ROMs with the following filenames: 136037*.* 136043*.* 037-*.BIN 043-*.BIN GAUNTLT*.* If there are no files with these names in the current directory, ROMREN will reply: "No ROM images found in current directory." NOTE: The ROM Renamer is not magical. It will not solve all your ROM naming problems for you. Its purpose is to add a little bit of automation to the task of renaming all those files. For example, if you want to use Gauntlet Intermediate Revision 2, the ROMs must be renamed manually. How to use the Multi-Gauntlet Emulator -------------------------------------- 1. Make sure you are currently in the directory with: * MGE.EXE * MGE.INI (optional) 2. Make sure your ROMs are in the right sub-directory: GAUNT For Gauntlet 1 GAUNT2 For Gauntlet 2 3. Run MGE with the -g1, -g2, or -g2custom option. (see the Command Line Options section below) NOTE: As of version 0.46, you must specify a game on the command line. Gauntlet 1 is no longer the default. If there is an EEPROM image in the current directory (G1EEPROM.SAV or G2EEPROM.SAV), it will be loaded automatically. MGE should autodetect up to two joysticks and a mouse, if they are present. The mouse must be a Microsoft-compatible 2-button mouse with a driver loaded. The joystick(s) and mouse can be mapped to any of the four players' controls. Command Line Options -------------------- All options can be preceded by a hyphen (-), slash (/), or nothing at all. g1 Run Gauntlet 1. g2 Run Gauntlet 2. g2custom Run Gauntlet 2 with custom levels. The modified ROMs must be in the GAUNT2 directory, and named as follows: GAUNT2ED.10A GAUNT2ED.10B (replacement slapstic image) GAUNT2ED.5A GAUNT2ED.5B (replacement mazes) no6502 Disable 6502 emulation. This will speed up the emulator, but it will disable all sound and coin inputs. nosound Disable all sound. nopokey Disable Pokey sounds. noym2151 Disable YM2151 (FM) sounds. notms5220 Disable TMS5220 (speech) sounds. lqsound Use a lower sound quality. This also speeds up the emulator. test Automatically start in Self Test mode. frame# Draw every #th frame. -frame1 thru -frame9 are valid. The default is -frame2. nowait Disable the "Press ENTER to continue" prompt if all goes well. NOTE: This will not disable the Important Notice screen. You shouldn't need to use the following options, but they are still available: slapstic Manually enable slapstic emulation. noslapstic Manually disable slapstic emulation. Video Mode Options ------------------ MGE will automatically look for the "best" video mode based on what modes it detects. You can limit the search with the following options: v320 Force 320x240 resolution. v360 Force 360x240 resolution. v400 Force 400x300 resolution. v512 Force 512x384 resolution. v640 Force 640x480 resolution. v320scan Force 320x480 resolution with "scanlines". v360scan Force 360x480 resolution with "scanlines". 256color Force 256-color (8 bits per pixel). hicolor Force hi-color (15 or 16 bits per pixel). Note: 256colour, hicolour, 256c, and hic are also recognized. lfb Force VESA linear framebuffer. window Force VESA windowed. modex Force Mode X. (The only available Mode X mode is 360x240x256) The -video# options from v0.3 are still recognized, but no longer documented. This is for compatibility with front-ends. MGE.INI ------- Commonly used options can be placed in a text file named MGE.INI, with one option per line. Blank lines are allowed. Any line beginning with # is interpreted as a comment. (Command-line options can be used to override MGE.INI.) Controls -------- There are three methods of controlling MGE. These controls may be remapped to any of the four players. +---------------+----------------------+--------------+--------------+ | | Movement | Fire | Magic | +---------------+----------------------+--------------+--------------+ | Keyboard | Arrow keys | CTRL | ALT | +---------------+----------------------+--------------+--------------+ | Joystick | move joystick around | Button 1 | Button 2 | +---------------+----------------------+--------------+--------------+ | Mouse | slide mouse around | Left button | Right button | +---------------+----------------------+--------------+--------------+ The following keys can be used while the emulator is running: ESC Quit (the EEPROM will be saved automatically) F5 Map keyboard to Player 1 inputs F6 Map keyboard to Player 2 inputs F7 Map keyboard to Player 3 inputs F8 Map keyboard to Player 4 inputs Shift-F5 Map mouse to Player 1 inputs Shift-F6 Map mouse to Player 2 inputs Shift-F7 Map mouse to Player 3 inputs Shift-F8 Map mouse to Player 4 inputs F9 Map joystick A to Player 1 inputs F10 Map joystick A to Player 2 inputs F11 Map joystick A to Player 3 inputs F12 Map joystick A to Player 4 inputs Shift-F9 Map joystick B to Player 1 inputs Shift-F10 Map joystick B to Player 2 inputs Shift-F11 Map joystick B to Player 3 inputs Shift-F12 Map joystick B to Player 4 inputs C Recalibrate joystick (center it before you do this) Pause Pause or unpause the game Note: Other keys don't work while paused. 9 Reset the game in normal mode 0 Reset the game in Self Test mode - Toggle Wait Mode This turns off the screen update to speed up emulation. Useful for stalling. Sound keeps playing, so you'll have some idea of what's going on. Space Clear on-screen messages Game settings, i.e. difficulty, can be changed from Self Test mode. F2 Save the game state to G1STATE.SAV, G2STATE.SAV, or G2CSTATE.SAV F3 Load the game state F4 Capture the screen to SCRNxxxx.TGA 1 Start button #1 (Note: The Start buttons are the same 2 Start button #2 as the Magic buttons, so don't 3 Start button #3 press them accidentally during 4 Start button #4 the game.) 5 Coin input #1 6 Coin input #2 7 Coin input #3 8 Coin input #4 Shift-1 Set -frame value to 1 (draw every frame) Shift-2 Set -frame value to 2 (draw every other frame) Shift-3 Set -frame value to 3 (draw every 3rd frame) ... Shift-9 Set -frame value to 9 (draw every 9th frame) Screen Capture Notes -------------------- All captured screens are 336x240x16M type 2 uncompressed Targa images. The quality does not depend on the video mode used. The filename is SCRNxxxx.TGA where xxxx is a number 0000-9999. The number starts at zero for each session (existing images will be overwritten). Each image is around 242K. Known Problems, Explanations, and Solutions ------------------------------------------- Problem: There is no sound / There is no speech (but FM sound works). Explanation: 1. Your BLASTER environment variable might not be set correctly. 2. The digital and/or MIDI volumes might be set too low. (As of version 0.471, MGE should have no problem working on Sound Blaster cards that don't support auto-init DMA.) Solution: Refer to your sound card's documentation. Problem: Gauntlet 1 crashes on level 31 (or possibly sooner). Explanation: This is because of the Slapstic copy protection chip, which is not quite emulated perfectly. Solution: There is a slapstic workaround available on Eric Crabill's web page (http://www2.inow.com/~crabill). There are also complete "fixed" ROM sets floating around on various web pages. As of version 0.46, MGE will automatically detect whether you're using the slapstic workaround. Problem: The colors don't look exactly right in the 256-color modes. Explanation: The Gauntlet arcade machine is capable of showing 768 colors simultaneously, whereas the standard VGA card can only show 256. To get around this, MGE emulates the color palette in software, and color- reduces the result on the fly, using a lookup table. Solution: Use a hi-color mode. (see Video Mode Options) Problem: MGE runs too fast / too slow. Explanation: There is currently no speed regulation, aside from VBL syncing. Solution: Try using a different -frame value (or try Shift-1 thru 9). Higher values will run faster; lower values will run slower. If MGE runs too fast even at -frame1, try using the -vbl option. If raising the -frame value does not effectively speed up MGE, try these alternatives: * Using a VESA mode, as opposed to Mode X (see Video Mode Options) * Disabling joystick support (-nojoy) * Disabling speech (-notms5220) * Lowering the sound quality (-lqsound) * As a last resort, disabling the 6502 and sound altogether (-no6502) If you have any problems other than the ones mentioned above, or one of the above solutions does not work, please notify me. Miscellaneous Notes ------------------- MGE is powered by STARSCREAM - my own revolutionary 680x0 emulation core. If you're an emulator author, and you think you're tough enough to harness the awesome power of STARSCREAM, contact me. I also wrote MGE's 6502 and TMS5220 emulation routines. POKEY and SB digital output routines were written originally by Ron Fries and adapted for use in protected mode with MGE. YM2151 routines were written originally by Ishmair and adapted for use with MGE. I started writing this emulator on December 26, 1996. However, the first real work began in March 1996, when I wrote a 680x0 disassembler (for a Sega Genesis emulator that never got off the ground). MGE was developed using DJGPP by DJ Delorie. DJGPP can be obtained from the Delorie Software web site (http://www.delorie.com). For maximum speed, run MGE under plain MS-DOS, or MS-DOS mode in Windows 95. It will run slower if you run it from a MS-DOS prompt window. (However, some people have reported that the sound works better this way... ???) Money, Distribution, Etc. ------------------------- The Multi-Gauntlet Emulator is, and will probably always be, freeware. This is not because I believe emulation should be free. It's because I wrote MGE for fun, not profit. The original MGE ZIP file may be distributed freely as long as it is not modified. It may not be sold. It may not be distributed via floppy disk, CD, or BBS. It may not be distributed with any ROM images. Anyone using MGE does so at their own risk. I will not be held liable for any loss or damage arising from its use. Also, I will not be held liable if someone shoots the food, or if your player's shot hurts another player. Special Thanks -------------- By giving their suggestions, source code, technical info, or endless hours of play-testing time, these people helped make MGE what it is today: Dietmar Meschede (mesched@math.uni-muenster.de) Eric Crabill (crabill@vader.inow.com) Frank Palazzolo (palazzol@tir.com) Heinz Seltmann (hjseltma@elwha.nrrc.ncsu.edu) Ike Miller (kylearan@hotmail.com) Ishmair (ishmair@vnet.es) Jim Hernandez (pinball@illuminati.heald.edu) Larry Brantingham (lbrantingham@quadravox.com) Peter Clare (pclare@crl.co.uk) Ron Fries (rfries@tcmail.frco.com) All the MGEIB testers