Release Date

MAME 0.28 was released on 7 September 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:

  • Fabrice Frances added sound to Q*Bert, Reactor, Krull and Mad Planets. The samples are no longer needed and may be removed. Q*Bert Qubes would work as well, if we had the sound ROM ;-( Speech is not emulated... yet! Please do not complain because there is no speech in Q*Bert. We are aware of that.
  • John Butler provided a new 6809 emulator. It is faster than the previous one, and fixes some bugs including the ship moving in the wrong direction on the tower level of Star Wars and the bonus maze in Pac & Pal.
  • John Butler added optimizations to some Williams games, GnG and Qix.
  • Bernd Wiebelt provided a driver for Omega Race and added a "director's cut" mode to Battle Zone. DELETE BZONE\BZONE.CFG OTHERWISE THE GAME WILL NOT WORK CORRECTLY.
  • Nibbler and Vanguard are back to (hopefully) normal speed.
  • Aaron Giles perfected the CTC emulation, needed by the MCR driver.
  • Sean Trowbridge found a workaround to make Tempest not lock up at 150,000 points.
  • Mike Balfour did some fixes to the Exidy games (Venture, Mouse Trap, Pepper II). Collision detection is now supported, Venture is playable.
  • Mike Balfour added high score support to Elevator Action, Pisces, War of the Bugs, Eggs, Exed Exes, Diamond Run, Jungle King, Wizard of Wor, Robby Roto, Gorf, Space Zap, Seawolf II, Loco-Motion, Mysterious Stones, Blue Print, Carnival, Snap Jack, Cosmic Avenger, Yie Ar Kung Fu, Scramble, Battle of Atlantis and The End.
  • Mike Balfour pointed out that ROM 2H of Battle of Atlantis seems to be bad; that's the cause of the strange coins per credit values.
  • Luis Longeri provided helpful tips about Exed Exes' background, which is now partially working.
  • Aaron Giles provided a driver reference sheet (mamelist.txt)
  • Steve Baines fixed the color intensities in Star Wars - objects now fade out properly. You might find it a bit too dark now, but this is done to reproduce the differences in brightness that the original has.
  • Frank Palazzolo fixed the "bad tranch vectors" and "fail to approach Death Star" bugs in Star Wars.
  • Jarek Burczynski adapted the M68000 emulator from the System 16 Arcade Emulator by Thierry Lescot. The only known problem of this emulator is that it doesn't count CPU cycles, only instructions. The first driver to use the 68000 is Rastan, also provided by Jarek.
  • Aaron Giles added a new osd_modify_pen() function. It allows drivers to dynamically modify the palette. WARNING: since this feature can severely reduce performance on some systems, it must only be used when necessary - that is, when the emulated game dynamically modifies the palette. The other games should continue to use the static palette as before. Many games already use this feature (e.g. Crystal Castles, the Gottlieb games, Tapper, Bubble Bobble, and many others). There's also osd_get_pen(), which is used by usrintf.c to dynamically pick the pens used to render menus.
  • Nicola Salmoria fixed the colors and added high score saving support to Crystal Castles, also fixed the settings (the settings done in the service menu).
  • Nicola Salmoria added sound to Nibbler and Fantasy, using the Vanguard driver. I don't know how accurate it is.
  • Nicola Salmoria changed MAME to display percentages of FPS, since there are now many games which don't run at 60fps (e.g. Popeye and the vector games), F11 was confusing and lead people to think the emulation was slow, while it was running at the correct speed. F11 now displayes the percentage of the speed of the real machine. 100% is the correct speed, 200% is twice as fast, 50% is half as fast.
  • Nicola Salmoria fixed the orientation in Snap Jack and Cosmic Avenger, and small sprites in Cosmic Avenger (bullets, bombs etc.) and Snap Jack (wheels) are properly supported.
  • Nicola Salmoria added support for cocktail mode in some games (only the graphics, not the controls yet)
  • Nicola Salmoria added a new command line option: "-cheat". Cheats like the speedup in Pac Man or the level skip in many other games are disabled by default. Use this switch to turn them on.
  • Nicola Salmoria added the speedup cheat in Pac Man to the DIP switch settings menu.
  • Nicola Salmoria added support for the service mode in Zaxxon and Congo Bongo (F2).
  • Virtu-Al fixed the colors in Banc Panic.
  • Nicola Salmoria made the colors in Donkey Kong are now 100% accurate. Several people complained that girders should be pink instead of red, but to the best of my knowledge the current colors are an accurate conversion of the color PROMs, and this has been confirmed by some people. There might be two different versions of Donkey Kong, with slightly different colors. If someone has a "pink" board and wants to read the PROMs from there, I'll be happy to include them.
  • Nicola Salmoria made DIP switches work in Xevious. Also fixed a bug in the targeting cursor colors (black corners while firing). Super Xevious works. Explosions are emulated with samples, thanks to Andrew Scott.
  • Nicola Salmoria added a all-new handling of rotation. The GameDriver structure now has a "orientation" field which allows driver writers to handle fairly easily games which run on the same hardware but with different orientations. Crazy Climber/Crazy Kong, Lady Bug/Snap Jack/Cosmic Avenger and the Gottlieb games are examples of drivers using this feature. Rotation is handled automatically by gfxdecode(), which creates a prerotated charset, and drawgfx(), which swaps the arguments appropriately. Drivers which use only the standard functions to render their display will automatically handle the "orientation" field. If a driver writes directly to the bitmap, it must handle the rotation itself. IMPORTANT NOTE: osd_create_bitmap() swaps width and height when a rotation is requested. Take that into account or you'll risk trashing memory. IMPORTANT NOTE TO PORTERS: remember to update osd_create_bitmap() and osd_create_display() to take into account the rotation. Check msdos.c to see how this must be done.
  • Nicola Salmoria added a totally new Input port definition structure. See driver.h for the new structures definition; several drivers already use it, check them for working examples. The new definition is much more powerful and easier to maintain than the previous one. It isn't complete yet, but it will eventually handle everything, including trackballs and analog joysticks. Drivers using the old definition will gradually be converted to the new one. Please do not submit new drivers using the old definition. It is obsolete and will be removed as soon as the conversion of the existing drivers is finished.
  • Nicola Salmoria moved the input handling to the new source file inptport.c.
  • Nicola Salmoria did some driver compacting:
    • merged Pengo and Pac Man vidhrdw
    • merged Dkong and Dkong 3 driver and vidhrdw
    • merged Crazy Climber and Crazy Kong driver and vidhrdw
    • merged mooncrst, moonqsr and scramble vidhrdw into the new "galaxian.c"
  • Nicola Salmoria rewrote the decryption routines in Pengo and Crazy Climber.
  • Nicola Salmoria changed MachineDriver/init_machine to a void (*)(void), and the function is called by cpu_run() during a reset. Some games, like Espial and the MCR games, needed that to perform a reset correctly.

Game Support

New Games added or promoted from GAME_NOT_WORKING status