M.A.M.E.
The Multiple Arcade Machine Emulator

MAME is finally out! Hard work, but at least we did it!. The latest version (0.29) is a major release version. There are now about 250 games supported, plus some of them that are very preliminary. This is known! There are also some last minute changes. This was needed, otherwise this version would never came out. Remember to have a look to the readme file before mailing for problems. Most of the time the answer is lying there :)

Here is an excerpt of the WHATSNEW file:

Program:

IMPORTANT: CONFIGURATION AND HIGH SCORE SAVE FILES HAVE BEEN MOVED. MAKE SURE YOU MOVE THE OLD ONES TO THE NEW DIRECTORIES "CFG" AND "HI". This will be done automatically by the provided batch file mov.bat, but PLEASE read on for details.

NOTE: Bubble Bobble doesn't work in this release. We are aware of that. Use Bobble Bobble or Super Bobble Bobble instead, they work much better than Bubble Bobble ever did.


New ROM sets supported (in no particular order):

Legendary Wings [Paul Leaman]
Section Z [Paul Leaman]
Cloak & Dagger [Dan Boris, Mirko Buffoni]
Berzerk [Zsolt Vasvari, Christopher Kirmse]
Coors Light Bowling [Zsolt Vasvari]
Gunsmoke [Paul Leaman]
Black Tiger [Paul Leaman]
1943 [Mirko Buffoni, Paul Leaman, Nicola Salmoria]
Champion Baseball (preliminary) [Nicola Salmoria]
Silkworm [Nicola Salmoria]
Sidearms (preliminary) [Paul Leaman]
Defend the Terra Attack on the Red UFO [Nicola Salmoria]
Pulsar [Mike Coates]
Invinco [Mike Coates]
Invinco / Head On 2 (dual game) [Mike Coates]
Space Attack [Mike Coates]
Motos [Aaron Giles]
The Tower of Druaga [Aaron Giles]
New Rally X [Nicola Salmoria]
Radarscope (untested due to lack of good ROMs) [Nicola Salmoria]
Rastan Saga. Note that Rastan requires some new ROMs as well, which were missing from the previous release. [Brad Oliver]
bootleg version of Pac Man running on Galaxian hardware [Nicola Salmoria]
Bosconian (Namco) [Toninho]
Mappy (Japanese) [Toninho]
bootleg version of Donkey Kong Jr., with levels playing in the order 1-2-3-4 instead of 1-4-1-3-4-1-2-3-4 [Nicola Salmoria]
ORIGINAL version of Donkey Kong Jr. (Japanese), with levels playing in the order 1-2-3-4 instead of 1-4-1-3-4-1-2-3-4 [Nicola Salmoria]
Moon Cresta (Gremlin) [Valerio Verrando]
Gyruss (Konami). Note that I renamed the other set (licensed to Centuri) from "gyruss" to "gyrussce" [Nicola Salmoria]
Super Bobble Bobble [Brad Oliver]


These drivers have improved GRAPHICS:

  • accurate 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).
    [Tim Lindquist, Nicola Salmoria]

  • accurate colors in Bagman and Super Bagman [Tim Lindquist, Jarek Burczynski]

  • accurate colors in Naughty Boy (probably) [Virtu-Al, Nicola Salmoria]

  • Minor fix to Donkey Kong colors (black was dark blue). [Nicola Salmoria]

  • Clouds in Time Pilot are correct. [Edward Massey]

  • Lives left are correctly displayed 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]

  • Some fixes to 10 Yard Fight. [John Butler]

  • The background was clipped too low in Phoenix. [Nicola Salmoria]

  • Added the missing scrolling background to Exed Exes. [Nicola Salmoria]

  • Fixed sprite/character priority in Gyruss. [Nicola Salmoria]

  • Fixed blinking in the Galaga starfield. [Martin Scragg]

  • Galaga supports rotation (-ror and -rol). [Nicola Salmo

  • Lots of minor fixes and enhancements.

  • Exchanged the infamous two sprite banks in Moon Cresta.

    Sources:

  • EXTREMELY IMPORTANT: osd_obtain_pen() now doesn't return pens sequentially. This ensures that MSDOS driver writes are aware of the existence of Machine->pens[] and use it appropriately. Drivers which don't do this will have wrong colors.

  • modified readinputport() to scan the keyboard only once per frame, and handle everything more efficiently. It is now MUCH faster than before - useful with games which continuously poll a port for VBlank.

  • generic_vh_start() now checks that videoram_size has been initialized and fails otherwise.

  • When using TRANSPARENCY_COLOR and TRANSPARENCY_THROUGH with drawgfx(), the argument must now be the pen code instead of the remapped pen number, e.g. instead of Machine->background_pen (= machine->pens[0]) you just specify 0. I also removed the background_pen field from Machine: use Machine->pens[0] instead.

  • The ROM_LOAD() macro now requires four parameters, the last one being the checksum. To quickly upgrade from previous sources you can be used (temporarily) ROM_OBSOLETELOAD(), however adding the checksum is easy (just do a cut & paste from the warning message) so it's better to put them in as soon as possible.

  • New macro ROM_RELOAD(), meaning to reload the previous ROM at a different address (useful with 6502 games which need reset/irq vectors at FFFx).

  • In common.c, new function printromlist(), used by loadroms() and mame.c. (-listroms).

  • Drivers are now allowed to modify the RAM and ROM pointers to implement bank switching. Bubble Bobble uses this. Be careful: when using this feature, you cannot use the standard MRA_RAM and MWA_RAM memory hooks to access RAM.

  • InputPorts now can automatically handle VBlank bits. No more need to write custom code. Lady Bug, Carnival, Mysterious Stones, Naughty Boy and Phoenix use this feature. Many other drivers need to be updated to use it. MAKE SURE TO DELETE LADYBUG\LADYBUG.DSW AND LADYBUG\LADYBUG.CFG, OTHERWISE THE GAME WILL NOT WORK CORRECTLY.

  • New support functions in cpuintrf.c: cpu_getfcount(), which returns the number of CPU cycles till the end of the current video frame (as opposed to cpu_geticount(), which returns the number of CPU cycles till the next call of the interrupt handler) cpu_getiloops(), which returns the number of times the interrupt handler will be called before the end of the video frame (useful in interrupt handlers). cpu_gettotalcycles(), which returns the total number of CPU cycles passed since the CPU was reset. ignore_interrupt(), companion to interrupt() and nmi_interrupt(). This allows interrupt handlers to be cpu-independant, avoiding use of CPU-specific interrupt indetifiers.


    Here are some info on 0.26a version:

    Program and Sources:
    This is a bug fix version. I did a mess with the famous heavy modifications I mentioned before. Well, I was the first to try the feeling of working on wrong sources ;) Funny!! BTW, now everything is back to normality, Pacman, Galaxians, Centipede, and others. I have learned a thing: never work until 4.30am in the morning :>

  • Thanks to Gary Walton, Nicola added 100% correct colors in Mr Do's Castle Fixed also a bug in Ghosts 'n Goblins hiscore saving. Now GnG does the self test too.

  • Some credits that were left out in this file only, last time: Thanks to Al Kossow, Hedley Rainnie and Eric Smith for the code to their vecsim emulator which had emulated these games previously on the unix and the mac, and thanks to Neil Bradley for pointing out the critical bug in the vector generator engine which prevented Tempest from working.

  • Super Pac Man and Mappy have correct pitch now (thanks Aaron and Satoh). Also, SuperPac has speed cheat control again.

  • Frogger doesn't have garbled chars anymore, and Galaga has correct stars speed now.

  • Added support for KickRaider. It's a rom swap, same hardware of Mr. Do Wild Ride.

  • Patrick Lawrence added trackball sensitivity setting menu

  • Morten Eriksen added hiscore save support to Arabian and AntEater

  • Sound is back on williams games too

  • Changed Dig Dug Atari rom dir into "digdugat", indicating the correct roms archive name.


    Here are some info on 0.26 version:

    Program:

  • After so much time of hard work the policy of "back to quality" is starting to bring back the efforts. I'm proud to announce I'v beated Mr Do's Castle. Done one, done all. So now we have also Mr Do! RunRun and Mr Do! Wild Ride. Thanks to the invaluable help of Nicola, they are also arcade colors perfect, very fast (!) and each game has audio support and hiscore saving! :D

  • Me and Aaron Giles (agiles@mail1.sirius.com) have added support for MAPPY!! One of the most requested games. It was a pleasure working with Aaron! He also added sound support and very close arcade colors (I think to have found the color_prom... if it's the correct prom it will be added in the next release). Hiscore saving is supported as well.

  • Thanks to the outstanding combined efforts of Brad Oliver, Bernd Wiebelt and Allard Van Der Bas, MAME entered in vectorial emulation world! (YEAH!!!) All in a time, we have support for Asteroids, Asteroids Deluxe, Black Widow Battlezone, Gravitar, Lunar Lander, Red Baron, Spaceduel, Tempest!!!

  • Again Aaron Giles added sound support to Super Pac Man!

  • Patrick Lawrence (pjl@ns.net) did a great work adding trackball support to the main core system. Trackball is enable with -trak parameter. Trackball support has been added to Centipede and Reactor. Also, Patrick provided a driver for Crystal Castles. Great Work! ;)

  • And three... Aaron added support for Dig Dug!! Hey man, you'r at a step to become a God of Arcade emulation ;)

  • Mike Coates has joined to the "back to quality" team. He added support for SeaWolf ][, and improved Space Zap and Gorf (which is still unplayable). Also Robby Roto is now fully playable (you'll need a bug free rom set).

  • Ray Giarratana (ray@loop.com) added support for Missile Command. I didn't include modifications for trackball for now. The code needs to be cleaned a bit, but the game is still playable.

  • Enrique Sanchez provided me documentation for Yie Air Kung Fu. Also, Philip Stroffolino (phil@maya.com) sent me a more complete driver than mine for this game which is now playable.

  • Eric Anschuetz fixed a bug in joystick redefinition menu. Also added the selection support for Any Button ("A" key), and None ("N" key).

  • Fabrice Frances added a driver for 3 Stooges.

  • Andrew Scott provided a better sound support for Phoenix. Melody is still missing, because Shaun's board doesn't have it.

  • Nicola fixed Jump Bug driver which is now perfect. Colors are still wrong without proms.

  • Morten Eriksen (Morten.Eriksen@due.unit.no) added hiscore saving to Ghosts 'n Goblins.

  • Valerio Verrando provided a new tweaked mode 256x232 for Crystal Castles. He also provided a new tweaked video mode to get vsynced 60Hz (perfect speed) with 256x256 games. It has horizontal clock recover (thus video is less mashed vertically, without having to modify monitor settings, and it doesn't be confused with 224x288 by monitors that remember settings. Really nice on scrolling games: try it with "-noscanlines -vsync -vgafreq 1"

  • Fixed Commando dip switch bonus settings. Also fixed a setting in Ant Eater dipswitch.

  • Fixed a bug that locked your PC if BLASTER variable was not found (thanks to James Oliver for the suggestion).

  • Tatsuyuki Satoh fixed sound tempo speed in Elevator Action (tempo speed is 37.5Khz).

  • Added support for two versions of Pengo (one with the music of Popcorn and a clone).

    Sources:

  • Me, Nicola, Bernd and Patrick have heavily changed the main core set of sources. Improvements to speed, memory access, drivers structure were done. We strongly suggest to developers to start their code on a clean 0.26 version.

  • Opcode decode and graphic decode are now done by a single function in one step.

  • Tatsuyuki Satoh (tatuyuki@tky.threewebnet.or.jp) optimized DrawGfx() function in case TRANSPARENCY_PEN and TRANSPARENCY_COLOR without remap, producing a speed increment of 22-25% (try yourself with Elevator Action!)

  • Mauro Minenna introduced a new option (-dir4) that simplify the use of the joysticks to be connected on the keyboard. This modify resolves the problem of diagonal direction in games such as PacMan, Popeye, and Kung Fu Master.