Release Date

MAME 0.29 was released on 20 October 1997.


The known contributors for this version are, in alphabetical order:

Specific Contributions

The known contributions for this version are, in the order specified in the whatsnew:

  • Tim Lindquist and Nicola Salmoria fixed the colors in:
    • Donkey Kong Jr.
    • Congo Bongo
    • Phoenix
    • 10 Yard Fight
    • Moon Patrol
    • Pop Flamer
    • War of the Bugs
    • Espial (not sure about this one - red and blue could be inverted)
    • Super Cobra
    • Yie Ar Kung-Fu
    • Mario Bros.
    • Super Basketball
    • Seicross
    • 1943
    • Donkey Kong 3 (well, not really)
    • Gyruss
    • Crazy Kong.
    • Zaxxon is getting there (sprites are mostly correct, background isn't).
  • Nicola Salmoria made a minor fix to the Donkey Kong colors (black was dark blue).
  • Nicola Salmoria fixed the display of lives left in Burger Time, sprites are turned off appropriately, and the switch test in test mode works correctly. The hardware of this game is more similar to Eggs than I thought.
  • Nicola Salmoria fixed the background which was clipped too low in Phoenix.
  • Fabrice Frances added sound to Q*Bert Qubes. You just have to use Q*Bert's sound ROMs, they are the same.
  • Brad Oliver added sound to Tac/Scan (through samples).
  • Andrew Scott improved the Galaxian background hum, it also is no longer incorrectly played in Moon Cresta & others.
  • Nicola Salmoria added digital audio to the Taito games (used for some sound effects, most notably Tarzan's yell in Jungle King). Also, music plays in Jungle King.
  • Aaron Giles added sound support to Moon Patrol, 10 Yard Fight, Kung Fu Master.
  • Bernd Wiebelt fixed the sound in Omega Race. It was playing too slow. Thanks to Stacy Joe Dunkle, Mike Cuddy and Al Kossow.
  • Valerio Verrando added high score support to Moon Patrol, Rally X, Vanguard, Super Cobra, Turtles, Xevious, Galaxy Wars.
  • Juan Carlos Lorente added high score support to Starforce, Jump Bug, Bagman, Super Bagman, Time Pilot 84, Warp Warp.
  • Nicola Salmoria fixed the attract mode of Galaga. Qix runs correctly and without slowdowns. Test mode in Mr. Do's Castles & family works correctly, (dip switches in Do's Castle still don't work). All these changes are due to the interleaved CPU execution described below.
  • Keith Gerdes added a new fix to avoid lockup in Tempest after 150,000 points - this one should really work.
  • Aaron Giles made several fixes and enhancements to the Williams driver.
  • Marc Lafontaine made several fixes to the Williams driver: Blaster is finished, Sinistar is playable but there are some blitter bugs, Bubbles is better but still resets itself from time to time.
  • Nicola Salmoria fixed a bug in Naughty Boy coin insertion/start game handling.
  • Aaron Giles made some fixes to the Star Wars mathbox.
  • Nicola Salmoria fixed the emulation of the hardware of the Taito games (Elevator Action, Jungle King, Wild Western, Front Line) to be more faithful to the original. Playfield priority is accurate in Jungle King, however this broke Wild Western - strange. Front Line works. Merged all the drivers into taito.c
  • Nicola Salmoria tried to plug Triple Punch into the Scramble driver, but it doesn't work.
  • Nicola Salmoria added support for New Rally X; colors are accurate in New Rally X ONLY - still wrong in Rally X until we find the color PROMs. Sound should finally be correct, both in Rally X and New Rally X.
  • Aaron Giles made a video drawing optimization to Mappy, plus test mode now works both in Mappy and Dig Dug 2.
  • Sean Gugler added emulation of the 1 player/2 player start lamps using NumLock and CapsLock in some games (e.g. Pacman, Galaxian, Rally X)
  • John Butler and Ed Mueller made an early attempt at a Zookeeper driver, based on the Qix one, which unfortunately doesn't work yet.
  • Nicola Salmoria moved the Hunchback driver into dkong.c, since that's where it belongs (but it still doesn't work due to encryption).
  • Nicola Salmoria added Gamma correction controls. Use Shift + Numeric pad +/- to change it. There are some games which are too dark on the default setting, instead of using the monitor settings use these controls to brighten the picture. Gamma correction also affects colors, like the girders in Donkey Kong.
  • Marc Lafontaine added a "Pro Action Replay"-like cheat finder. It is only available when -cheat is specified on the command line.
  • Aaron Giles made some optimizations to the 6809, and modified it to always fetch opcodes directly from RAM (much faster). The Ghosts 'n Goblins, Star Wars and Williams drivers needed reworking to support that.
  • Nicola Salmoria moved configuration and high score files to the CFG and HI subdirectories. They are not stored in the games subdirectories. I have provided a batch file (MOV.BAT) to automatically move your old settings in the new directories. Just start it from inside the MAME directory. It will spit out some error messages for missing files, don't worry and let it finish its job.
    • Having configuration files in a separate directory makes it easier to keep ROMs in .zip files. This is already done by some front-ends, but you can do it from the command line as well, just use this batch file. PKUNZIP must be in your path. The .zip files must be in the MAME directory and named after the game (i.e.
    • @echo off
    • md %1
    • pkunzip >nul: %1 %1
    • MAME.EXE %1 %2 %3 %4 %5 %6 %7 %8 %9
    • deltree >nil: /y %1
    • But even better, if you have ZipFolders or ZipMagic installed, MAME will automatically look into the .zip or .zif directory. ZipFolders and ZipMagic are trademarks of Mijenix Corporation. You can download a trial version from I am in no way associated with Mijenix Corp. - I'm just a happy costumer.
  • Bernd Wiebelt removed the "-trak" and "-mouse" options. Mouse support is now enabled by default. To disable it, use "-nomouse".
  • Bernd Wiebelt made "-vesa" pick the best VESA mode available. The new "-vesa1" forces VESA 1.2.
  • Two new OSD_KEY definitions: RCONTROL and ALTGR. CONTROL has been replaced by LCONTROL.
  • Aligned to version 1.2 of Marcel de Kogel's Z80 emulator.
  • Tatsuyuki Satoh and Aaron Giles added new memory handling functions, about 10%-30% faster than before. Moved the memory code from cpuintrf.c to memory.c. Banked ROMs can now be handled in a cleaner and faster way. Use the new MRA_BANK1... types in the memory handler arrays, and cpu_setbank() to set the current bank. The Z80 and M6809 emulators natively support bank switching. IMPORTANT: for 24 bit addressing (i.e. 68000) you cannot associate a memory handler to a single byte. You must use four consecutive bytes, longword aligned. This was done to speedup word (2 bytes) and dword (4 bytes) operations.
  • Aaron Giles added new ROM_LOADEVEN and ROM_LOADODD macros.
  • Nicola Salmoria made the CPU execution interleaved. The cpu_slices_per_frame field in the MachineDriver controls how often control is passed from one CPU to another. 1 is the minimum, meaning that each CPU runs for the whole video frame before giving control to the others. The higher this setting, the more closely CPUs are interleaved and therefore the more accurate the emulation is. However, an higher setting also means slower performance.
  • Nicola Salmoria removed osd_obtain_pen(), the palette is passed to osd_create_display() instead. Also moved clearbitmap() to osd_clearbitmap(), which does a slightly different thing from what clearbitmap() did: it sets the bitmap to be generically "black", which doesn't necessarily imply filling it with Machine->pens[0]. Avoid using osd_clearbitmmap() in drivers: use the new fillbitmap(), instead, which accepts a pen number and a clip region.
  • Nicola Salmoria replaced file related functions (fopen(), fread() and so on) with osd_ equivalents. This avoids a good amount of hacking in the Mac port; plus it allows some system specific extensions, like supporting ZipMagic/ZipFolders under Windows 95.
  • Brad Oliver tweaked the input port code. Added new fields for analog controls - clip, min, and max. Also added 2 new analog joystick types - IPT_AD_STICK_X and IPT_AD_STICK_Y. The new fields are packed into the same int field (arg) as the sensitivity and as such they can only be in the range of 0-255. The clip field clips the trackball/dial/stick deltas, a common callback routine task. Min and Max are so far only used in the AD_STICK types. They limit the range of motion for those sticks - used in Star Wars and Red Baron.
  • Bernd Wiebelt made some additional tweaking of analog inputs, allowing them to be updated more than once per frame. This is needed by some games.
  • Bernd Wiebelt removed osd_track_center(). We always use relative mouse movement now.
  • Aaron Giles added formalized support for dirty rectangles, via the function osd_mark_dirty(). It is mostly used by MacMAME, limited DOS support added by Bernd Wiebelt.
  • Brad Oliver updated pokyintf.c to be more like 8910intf.c. Variable clock frequency, port callbacks, a clipping parameter, variable updates per frame. Most noticeably, Tempest has much improved sound with more frequent updates.

Game Support

New Games added or promoted from GAME_NOT_WORKING status