Release Date

MAME 0.30 was released on 8 January 1998.


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:

  • Marco Cassili and Nicola Salmoria fixed the colors in Super Basketball, they should now be correct for real (the opponent's shirts weren't changing color in each level).
  • Brad Oliver added emulation of AVG sparkling bit (Tempest stars/fireworks)
  • Nicola Salmoria fixed the sprites and background in Sidearms. Colors should be correct as well. There probably is another scrolling background missing.
  • A note about Zaxxon colors: we are aware that they are wrong. The reason is that we are using the Super Zaxxon color PROM. As soon as we'll have the correct Zaxxon color PROM, they will be fixed.
  • Mike Coates added an appropriate blue background in Scramble, Super Cobra and other games running on the same hardware.
  • Nicola Salmoria changed the way 8910 sound is updated: there's no longer a fixed "updates per frame" value defined in the driver, instead the audio is stream is generated whenever a chip register is written to (and at every vblank). This improves sound quality in several games.
  • Aaron Giles made the same change as above to the POKEY interface.
  • Tatsuyuki Satoh changed the YM2203 emulation to not use the SoundBlaster OPL3 chip. This is more accurate than the previous one, which used the SoundBlaster OPL chip, however it is also slower. You can still revert to the old behaviour using the -fm command line option.
  • Nicola Salmoria added fully emulated sound in Gyruss. You can remove all the samples, they are no longer needed. Also, music tempo should now be correct. Due to the increased emulation overhead, it now runs slower than before. To improve speed, you can use the new -sr option (see below) to lower the sample rate.
  • Tatsuyuki Satoh and Nicola Salmoria cleaned up the SN76496 emulation, now it is similar to the 8910 one and all games use Tatsuyuki's code. This affects several games, most notably the Mr. Do! series.
  • Ron Fries, Dan Boris, Mirko Buffoni added a 8039 emulator, and _emulated_ sound in Donkey Kong, Donkey Kong Jr. and Mario Bros. Since the boards also use discrete circuits to generate sound, some samples are still needed to get complete sound support. Also partial sound in Radarscope.
  • Nicola Salmoria and Aaron Giles completely rewrote the Namco waveform audio subsystem. This gets rid of some artefacts in pacMan (eating a ghost) and Ms Pac Man (eating dots while a fruit is bouncing).
  • Frank Palazzolo added a TI TMS5220 emulator. This handles speech in Star Wars and other games.
  • Fabrice Frances added sound to Three Stooges. Actually the code had always been there, it just had to be activated...
  • Frank Palazzolo fixed the music tempo in Scramble, Frogger, Amidar and derivatives, so it should now be correct
  • Aaron Giles added Music to Spy Hunter, sound to Rampage.
  • Brad Oliver added sound to Naughty Boy and Pop Flamer, using the Pleiads driver. Not very good, but it's a start.
  • Nicola Salmoria added partially emulated sound to Bubble Bobble (only the YM2203 chip, therefore only some sound effects - no music)
  • Juan Carlos Lorente added high score support to Legendary Wings, Section Z, Espial, Black Tiger, Gunsmkoke.
  • Valerio Verrando added high score support to Tac/Scan, Star Trek, pacmanbl, Red Ufo
  • A note about Tempest: Several people complained that mouse control is reversed. This is not the case. The more obvious place where this can be seen is the level selection screen at the beginning: move the mouse right, the block goes right. Anyway, you can now reverse the controls (see below).
  • Aaron Giles added dirty rectangles support in Qix, all Williams games, Cloak & Dagger, Berzerk, Arabian, Space Invaders & clones, Kangaroo, Space Panic, Warp Warp.
  • James R. Twine made some tweaks to dip switches in the Super Cobra / Lost Tomb / Rescue driver.
  • Marco Cassili fixes to dip switches and input ports in several games.
  • Neil Bradley fixed the framerates in the Atari vector games
  • Dan Boris aligned the background bitmap in Cloak & Dagger properly with the playfield graphics, and boxes no longer get stuck at the corners of the conveyors
  • Aaron Giles changed Spy Hunter so it displays an extra line of text at the bottom indicating the status of the lamps that were on the arcade machine.
  • Martin Scragg fixed a crash in Bosconian: This was the speech processor being used for a protection check.
  • Maurizio Zanello added alternate controls in Defender and Stargate, to control the ship using the standard 8-way directional controls instead of up/down/reverse/thrust. Available only when the -cheat option is specified.
  • Nicola Salmoria added alternate controls in Battle Zone, Sarge, Defender and Stargate are available only when the -cheat option is specified.
  • Brad Oliver made enhancements to the analog input controllers emulation. Their keyboard counterparts can be changed, the sensitivity adjusted, and the direction reversed. This is all controlled by the analog setup menu.
  • Bernd Wiebelt added support for true analog joystick input in games like Star Wars; moreover, the whole range of joystick types supported by Allegro is now supported.
    • To handle that, use the new command line option -joy N, where N can be:
      • 0 - normal 2 button joystick
      • 1 - CH Flightstick Pro
      • 2 - Stick/Pad with 4 buttons
      • 3 - Stick/Pad with 6 buttons
      • 4 - dual joysticks
      • 5 - Wingman Extreme (or Wingman Warrior without spinner)
    • Press F7 to calibrate the joystick. Calibration data will be saved in mame.cfg. If you're using different joytypes for different games, you may need to recalibrate your joystick every time.
    • Note that if you enable joystick support, games like Star Wars will work ONLY with the joystick - mouse emulation will be disabled.
  • Nicola Salmoria added the -vsync option, which lets, when specified, the program check whether the video mode is compatible with it (i.e. whether the video refresh rate is a multiple of the target frame rate), and fails otherwise. Some sensible default values for -vgafreq are built-in and automatically picked when -vsync is requested. It is also possible to successfully use -vsync with scanline video modes. Note that for VESA modes you might have to configure your card in order to make it use the 60Hz refresh rate.
  • Valerio Verrando added support for default configuration file. Start MAME with the -saveconfig parameter, and the current configuration will be saved to mame.cfg, becoming the default. You can still override the mame.cfg settings giving parameters on the command line.
  • Valerio Verrando modified the tweaked video modes to be as close as possible to 60Hz. However please note that on some systems the new modes might not work, while the old do. You can work around that by changing the line syncedtweak=yes to syncedtweak=no in mame.cfg
  • Valerio Verrando changed the default directory for screen snapshots (F12) to PCX instead of the current directory, so make sure you create it or snapshots will not be saved.
  • Nicola Salmoria added new command line options, -sr N, where N is the required audio sample rate, and -sb N, where N is the number of sample bits (8 or 16). For example, mame gyruss -sr 22050 -sb 16 will use a 22kHz sample rate and 16 bits. The -sb option currently doesn't change anything because none of the audio subsystems support 16 bit samples.
  • Nicola Salmoria added functionality to load ROMs from the subdirectory "ROMS", if desired.
    • When loading ROMs for 'gamename', the program will look in these directories in this order:
      • gamename
      • ROMS\gamename
      • ROMS\
    • The same applies to samples, you can put them in a subdirectory called SAMPLES - therefore separating them from the ROMs.
  • Valerio Verrando changed MAME so samples can also be loaded from a common directory for variations of the same hardware. For example, all Space Invaders clones will load samples from the invaders directory.
  • Bernd Wiebelt added support for dirty rectangles are supported in all resolutions in DOS.
  • Vince Mayo fixed a bug in drawgfx() which caused Crazy Climber's big sprites to be corrupted when horizontally flipped.
  • New options, -record and -playback. They allow you to record, and later playback, joystick input. Useful to document certain bug reports, or to show your friends how good you are ;-)
  • Mike Balfour added a new option -romdir which allows to specify a different directory where to load the ROMs from.
  • Valerio Verrando changed high score and configuration save now support ZipFolders/ZipMagic to directly use .zip archives. If you want to use this feature, make sure there are no HI or CFG directories, otherwise the files will be saved there, not in archive.
  • Now using Allegro 3.0 - this fixed problems 0.29 had under NT with mouse enabled.
  • Martin Scragg, John Butler, and Aaron Giles added an integrated debugger. You must compile with MAME_DEBUG defined to activate it. Start MAME with the -debug option, then press tilde to enter the debugger.
  • Tatsuyuki Satoh added cpu_setbankhandler_r() / cpu_setbankhandler_w() for better bank switching support. The Williams drivers take advantage of it.
  • Nicola Salmoria removed samples field from the MachineDriver structure; added sound_prom field to the GameDriver structure.
  • Aaron Giles made some changes to the 68000 emulator memory interface, and a new 68000 disassembler. Improved the 68000 cpu interface.
  • Aaron Giles redesigned cpuintrf.c to be more modular and readable.
  • Aaron Giles added a cpu_reset() call so that a single processor can be reset during execution; Gauntlet needs this to work properly.
  • Aaron Giles added bank switching support to the 6502 via cpu_setbank().
  • Tatsuyuki Satoh centralized dac.c for dac sound emulation. Several dirvers use it.

Game Support

New Games added or promoted from GAME_NOT_WORKING status