MAME 0.31
From MAMEDEV Wiki
Release Date
MAME 0.31 was released on 25 April 1998.
Contributors
The known contributors for this version are, in alphabetical order:
- Aaron Giles
- Al Kossow
- Alex Judd
- Alex Pasadyn
- Andrew Caldwell
- Andy White
- Barry Rodewald
- Bernd Wiebelt
- Brad Oliver
- Bryan McPhail
- Chris Hardy
- Chris Moore
- Dan Boris
- Dani Portillo
- Darren Olafson
- David Winter
- ehrhard@csd.de
- Ernesto Corvi
- Fabrice Frances
- Frank Palazzolo
- Gary Walton
- Gerald Vanderick
- Gerrit Van Goethem
- Howard Cohen
- Ivan Mackintosh
- Jarek Burczynski
- Jarek Parchanski
- Jim Hernandez
- John Butler
- Kevin Klopp
- Larry Bank
- Lee Taylor
- Marc Lafontaine
- Marco Cassili
- Martin Binder
- Martin Scragg
- Martin Searle
- Maurizio Zanello
- mbeighau@iies.es
- Michael Appolo
- Mike Balfour
- Mike Coates
- Mirko Buffoni
- Nicola Salmoria
- Paul Leaman
- Paul Sommers
- Paul Swan
- Paul Winkler
- Phil Stroffolino
- Ruben Panossian
- Santeri Saarimaa
- Simon Walls
- Stuart Campbell
- Tatsuyuki Satoh
- Thierry Lescot
- Tim Lindquist
- Tormod Tjaberg
- Valerio Verrando
- Wiebo de Wit
- Yves Colombani
- Zerza
- Zsolt Vasvari
Specific Contributions
The known contributions for this version are, in the order specified in the whatsnew:
- Paul Swan fixed the colors in Roc'n Rope, Circus Charlie, and Hyper Sports
- Gerald Vanderick fixed the colors in Frogger and Traverse USA
- Tim Lindquist fixed the colors in Donkey Kong 3
- Al Kossow fixed the colors in Minefield (apart from the background which is approximate)
- Paul Swan and Gerald Vanderick fixed the colors in Iron Horse
- Gerald Vanderick fixed the colors in Zaxxon
- Nicola Salmoria fixed the colors in Millipede
- Gerrit Van Goethem fixed the colors in Shao-Lin's Road
- Andy White and Tim Lindquist fixed the colors in Radarscope (probably)
- Mike Balfour fixed the colors in Kangaroo
- Gary Walton and Simon Walls fixed the colors in Rally X and Swimmer
- Kevin Klopp fixed the colors in Locomotion
- Martin Binder fixed the colors in Pooyan
- Aaron Giles fixed the colors in Moto
- Mike Balfour consolidated the Exidy drivers. Accurate colors in Venture, Mouse Trap and Pepper 2.
- Al Kossow fixed the aspect ratio in Major Havoc
- John Butler fixed pixel doubled sprites in Exerion
- Zsolt Vasvari added proper overlay emulation in Circus.
- ehrhard@csd.de fixed double size sprites in Galaga when screen is flipped.
- Martin Searle fixed the colors in Blue Print.
- Nicola Salmoria fixed disappearing background at the end of the tunnel in Super Zaxxon.
- Brad Oliver support for the complete Swimmer set. No more bad graphics.
- Mike Coates added a gradient filled background in Rescue and Minefield.
- Andrew Caldwell added new antialiasing code for the vector games. A bit slower than before, but it looks terrific. You can turn it off with -noantialias. Also two new options:
- -beam # (a number in the range of 1.00 through 16.00 (# is float))
- -flicker % (% is optional (% is float), no number sets default flicker)
- valid range is 0.00 to 100.00 (0=none 100=maximum) -beam sets the width in pixels of the vectors, while -flicker makes them flicker to simulate the behaviour of a real monitor.
- Aaron Giles and Bernd Wiebelt improved handling of vector games. Battlezone and Major Havoc now do correct clipping.
- Aaron Giles added 16 bit color support for games which need it (e.g. Rastan, Gauntlet, Black Tiger, and many others). It is on by default, since it looks much better; of course it's also slower, so you can turn it off and revert to the previous 8 bit downgraded palette using (in the DOS version) the -depth 8 command line option.
- Nicola Salmoria discovered that Locomotion runs on (almost) the same graphics hardware as Rally X. This fixed the smoke which was using wrong graphics (and had instead to be drawn like the dots in the Rally X radar).
- Aaron Giles and Brad Oliver improved the blitter for the Williams games. Sinistar now works correctly.
- Aaron Giles fixed the sprites in Gauntlet.
- John Butler merged the Qix and Zookeeper drivers, they now also support rotation.
- Jarek Burczynski added a new YM2151 emulator, used by Rastan and others.
- Tatsuyuki Satoh improved the YM2203 and YM2151 emulator, and DAC interface, with 16 bit samples support. (Use -sb 16 to turn on 16 bit samples).
- Tatsuyuki Satoh added AY8910 and SN76496 support 16 bit samples as well.
- Aaron Giles improved the ADPCM support, plus support for the OKIM6295 ADPCM chip. Several drivers use these.
- Nicola Salmoria fixed the sound in Exed Exes; it has one 8910 and two 76496, not two 8910.
- John Butler and Howard Cohen added back speech sample support to Q*Bert.
- Alex Judd added sound to Zaxxon and Berzerk, through samples.
- Alex Judd fixed the speech in Gorf.
- Brian Levine fixed the sound in Nibbler.
- Nicola Salmoria fixed missing/bad sound effects in Jungle King.
- Nicola Salmoria made a first attempt at sound in Donkey Kong 3 / Punch Out. These two Nintendo games use the same sound hardware as the NES console.
- Jim Hernandez fixed the music tempo and pitch in Locomotion, Time Pilot, Pooyan, Tutankham and Roc'n Rope should be accurate (I believe they all use the same sound board)
- Improved pitch in many games.
- Dan Boris added sound in Targ and Spectar (need samples).
- Jarek Burczynski fixed the ADPCM sample support in Rastan.
- Howard Cohen and Brad Oliver fixed the sound pitch and Mario jump in Donkey Kong.
- Nicola Salmoria added speech to Mat Mania
- Howard Cohen added speech in Sinistar, through samples.
- Nicola Salmoria added sound in Fire Trap and Silkworm (Sound Blaster needed)
- Nicola Salmoria added music to Bubble Bobble (Sound Blaster needed)
- Bryan McPhail added sound to Break Thru (Sound Blaster needed)
- Howard Cohen added support for missing samples to Donkey Kong Jr.
- Gerrit Van Goethem added high score support to Sidearms, Breakthru, Mikie, 1943 Kai, Shaolin's Road, pengoa.
- Nicola Salmoria changed MAMe so the first time you play Q*Bert, Q*Bert Qubes, Krull, Mad PLanets, Three Stooges, the high scores are automatically initialized to the default. Note: your old high scores will be lost, sorry.
- Nicola Salmoria changed MAME so the first time you play Track'n Field and Hyper Sports the high scores are automatically initialized to the default. Your old high scores will NOT be be lost here ;-)
- Santeri Saarimaa added high score support to Astro Fighter.
- Chris Moore added high score support to Tazz-Mania, Space Firebird.
- Mike Balfour added high score support to Targ, Spectar.
- Dani Portillo added high score support to Fire Trap, Fantasy.
- Dani Portillo fixed Espial.
- Wiebo de Wit fixed scores over 100000 in Donkey Kong/Donkey Kong Jr.
- Stuart Campbell added the missing third button to Iron Horse.
- Marco Cassili fixes the dip switches and input ports in several games.
- Mike Balfour added better collision detection in the Exidy games (most noticeable in Venture upper left room)
- Yves Colombani added missing action button to Diamond Run.
- mbeighau@iies.es added a invulnerability DIP switch to Japanese Ghosts'n Goblins.
- Marc Lafontaine fixed Bubbles.
- Aaron Giles did a major cleanup of the Williams drivers.
- Jarek Burczynsk fixed the disappearing guards and other wrong behaviours in Bagman which were caused by copy protection.
- Barry Rodewald fixed crashes in Rastan.
- Aaron Giles fixed the service mode in Food Fight.
- Nicola Salmoria added a new -norotate option. This is supposed to disable all internal rotations of the image, therefore displaying the video output as it is supposed to be (so you need a vertical monitor to see vertical games). However, many drivers still don't use MAME centralized rotation, but instead rotate the image on their own, so -norotate has no effect on them. In some cases, the image will be upside down. To correct that, use -norotate -flipx -flipy, or use the Flip Screen dip switch if available.
- Fabrice Frances fixed a bug in the 8086 emulator which caused unexpected deaths in Krull.
- Bernd Wiebelt improved the analog input handling.
- John Butler added a new 6808 emulator.
- John Butler added native .zip file support.
- Brad Oliver added a bugfix: "Dial Joy Inc" can now be properly set (e.g. Tron).
- Aaron Giles added a 6805 emulator, needed by Arkanoid.
- Nicola Salmoria added high score load/save is disabled when -record or -playback is used. This prevents undesired side effects.
- Aaron Giles fixed the 68000 emulator to properly handle interrupt priorities.
- Nicola Salmoria changed the DOS version so screen snapshots are saved as "gamename.pcx" (the first one) and "nameNNNN.pcx" (the following ones), no longer the too generic "snapNNNN.pcx".
- Tormod Tjaberg added new commands -verifyroms and -verifysamples. They check an existing ROM set for missing and incorrect ROMs, and for missing samples. You can use "mame -verifyroms *" to check all your romsets.
- Nicola Salmoria reworked the automatic screen resolution picker. It now selects a resolution appropriate for the game's visible area, not the game's physical screen size (which is larger).
- Valerio Verrando, Maurizio Zanello, and Bernd Wiebelt improved the mame.cfg and commandline parameter handling:
- Added a few new config options (look into mame.cfg)
- In mame.cfg, a [gamename] section can override global config options.
- In the [directories] section, replaced ROMS and SAMPLES options with "rompath" and "samplepath", these take a standard DOS path as argument. (for example rompath=\callus;\raine;\retrocade;\mame\roms;.) This is option is also available on the commandline and in the <gamename> section.
- Removed support for -savecfg.
- Removed support for -width (e.g. -640) to select the resolution. You have to use -widthxheight (e.g. -640x480). Frontend authors are advised to use the new -resolution widthxheight semantics. "resolution" is also a mame.cfg option now.
- Tweaked resolutions are directly selectable.
- Wildcard support for the frontend commands in the DOS version:
- "mame * -verifyroms" will check all your existing romsets
- "mame a* -listfull" will list all games starting with "a".
- removed -vesa1, -vesa2b, -vesa2l. -vesa will try VESA 2.0 and fall back automatically.
- playback data is stored in INP/gamename.inp
- a boolean option can be specified as -option, -nooption, -autooption.
- Zerza added an NTSC video mode for use with a VGA2TV converter (this is definitely not the TV output some newer graphic cards offer). It is untested, use at own risk. More info: http://www.hut.fi/Misc/Electronics/circuits/vga2tv/
- Larry Bank fixed a bug in the 6808 emulation of TSX and TXS.
- Fabrice Frances cleaned up the I86 emulator, including 286 instructions (but with 8088 timing).
- Ernesto Corvi added support for HD63701YO extra opcodes to the M6808 emulation.
- VERY IMPORTANT NOTE FOR PORTERS: now the function osd_new_bitmap() must allocate also a "safety area" 8 pixels wide all around the bitmap. This is required because, for performance reasons, some graphic routines don't clip at boundaries of the bitmap.
- The DOS version is now compiled with GCC 2.8.0, optimized for Pentium.
- Aaron Giles added a new timer-based event scheduler. This is a major change which is used throughout the code. See timer.c and cpuintrf.c to get an idea of the many things it does. One of the many benefits this has is that dip switches in Do's Castle now work, but there's an endless list of things affected.
- Ernesto Corvi added a new vblank_duration field in MachineDriver, which controls how long to delay screen refresh after a vblank interrupt. This is important to get video properly in sync in some games (e.g. sprites and background in Commando).
- Ernesto Corvi changed the 68000 core to allocate memory automatically. You no longer have to do it yourself. The memory interface reads/writes 16 bits at a time to improve performance. Writing a single byte is a bit tricky, because the 68000 can cause write to either the high or the low byte without affecting the other; thus the second parameter for a 16-bit write is a bit more complicated. The top 16 bits are a mask which is supposed to be ANDed with the 16-bit value already in memory; the bottom 16 bits are the actual data values, to be ORed with the result. To aid in doing these operations, use the macros READ_WORD(), WRITE_WORD(), COMBINE_WORD() and COMBINE_WORD_MEM().
- Aaron Giles added a new function: cpu_setOPbaseoverride(). This function is called whenever the code jumps into an area of memory that is in a different bank than the current one (i.e., the code jumps from RAM to BANK1). It takes the destination PC as a parameter and returns a new PC which is to be used to determine which bank to switch to by the standard function. The main purpose of adding this is for slapstic coding. Empire Strikes Back and at least one of the System 1 games jumps to code in the slapstic memory region, but since we read the opcodes directly out of ROM, we never call the read handler. Although this won't solve the problem completely, we can at least detect when the code jumps into the slapstic memory region, and based on the registers and the PC, cause the proper bank switching to occur.
- Martin Scragg, Mirko Buffoni, and John Butler improved the debugger
- Nicola Salmoria moved the speed throttling code to the OS dependant stuff.
- Tatsuyuki Satoh added support for Z80 daisy chain interrupts.
- Marco Cassili completed the migration to the new input port definitions. The obsolete structures have been removed from struct GameDriver.
- Better handling of sound susbsystems, thanks to new fields in the MachineDriver structure. You can now use several susbystems at the same time, without any problem and without having to write sh_start(), sh_stop() and sh_update() functions. Samples have a better interface too.
- Phil Stroffolino and Nicola Salmoria added some new graphics code, handling abstracted layers and optimized refresh. It is used only by a few drivers, and is still work in progress - don't use it in new code until further notice.
- VERY IMPORTANT NOTE FOR PORTERS: now the function osd_new_bitmap() must allocate also a "safety area" 8 pixels wide all around the bitmap. This is required because, for performance reasons, some graphic routines don't clip at boundaries of the bitmap.
Game Support
New Games added or promoted from GAME_NOT_WORKING status
- City Connection
- Tazz-Mania
- Starfire (preliminary)
- Guzzler
- Rygar
- Gemini Wing
- Crash
- Bandido
- Super Breakout
- Boot Hill
- Arkanoid (BETA bootleg)
- Arkanoid (Tayto bootleg)
- Arkanoid (bootleg)
- Speed Rumbler
- Return of the Jedi
- Punch Out
- MegaTack
- Killer Comet
- Dark Planet (preliminary)
- Strategy X
- Mania Challenge (preliminary)
- Sprint 1
- Dominos
- Night Driver
- Atari Basketball
- Jump Coaster
- Checkman
- Tank Battalion
- Rainbow Islands
- Lode Runner
- Liberator
- Wiz
- Crater Raider
- Block Out
- Fast Freddie
- Fly-Boy
- The Pit
- Trojan
- Super Qix
- Toki
- Ping Pong
- Snow Bros
- Strider
- Willow
- Final Fight
- Mega Twins
- UN Squadron
- Gun Dealer
- The New Zealand Story
- Route 16
- Stratovox
- Tetris
- D-Day
- World Cup 90
- Bad Dudes
- Robocop
- Heavy Barrel
- Sly Spy
- Hippodrome
- Midnight Resistance
- Karnov
- Chelnov
- Tiger Road
- Toobin'
- Blockade
- Comotion
- Leprechaun
- Wonder Boy Deluxe
- Wonder Boy in Monster Land
- Pitfall 2
- Choplifter
- Jack the Giant Killer
- Ninja Gai Den
- Marble Madness
- Peter Packrat
- Indiana Jones
- Road Runner
- Road Blasters
- Astro Invader
- Space Chaser
- Zzap (not working)
- Tornado BaseBall
- Kamikaze
- Amazing Maze Game
- Commando
- Jungler
- Lotto Fun
- Video Hustler
- Road Fighter
- Gauntlet
- Gauntlet 2
- Gauntlet (2 players).
- Capcom Bowling
- Pleiads (Tehkan)
- Venture (alternate)
- Frogger
- Far West
- Scrambled Egg
- Eagle
- Super Missile Attack
- another Galaga bootleg
- Swimmer (alternate version)
- Car Action
- Espial (European version)
- Monkey Donkey
- Moon Patrol (Irem copyright)
- Savage Bees
- Gorf (Program 1)
- Extra Bases (not playable)
- Suntory Tapper