0.31 SOME DEFAULT SETTINGS HAVE CHANGED. MAKE SURE TO DELETE MAME.CFG TO MAKE THEM UP TO DATE. BEFORE COMPLAINING THAT 0.31 IS SLOWER THAN 0.30, READ THIS WHOLE SECTION, OK? ESPECIALLY WHERE IT TALKS ABOUT 16 BIT COLOR SUPPORT. You'll need -depth 8 and -sr 11025 to run some of the bigger games at an acceptable speed. In the MS-DOS version, some games might require you to increase the memory available to DPMI. New ROM sets supported (in no particular order): ------------------------------------------------ City Connection [Mirko Buffoni] Tazz-Mania [Chris Hardy] Starfire (preliminary) [Dan Boris] Guzzler [Mirko Buffoni] Rygar [Nicola Salmoria] Gemini Wing [Mirko Buffoni] Crash [Mike Coates] Bandido [Mike Coates] Super Breakout [Mike Balfour] Boot Hill [Mike Balfour] Arkanoid (BETA bootleg) (preliminary) [Thierry Lescot] Arkanoid (Tayto bootleg) (working) [Thierry Lescot] Arkanoid (bootleg) (preliminary) [Aaron Giles] Speed Rumbler [Paul Leaman] Return of the Jedi [Dan Boris] Punch Out [Nicola Salmoria] MegaTack [Chris Moore] Killer Comet [Chris Moore] Dark Planet (preliminary) [Mike Balfour] Strategy X [Lee Taylor] Mania Challenge (preliminary) [Brad Oliver] Sprint 1 [Mike Balfour] Dominos [Mike Balfour] Night Driver [Mike Balfour] Atari Basketball [Mike Balfour] Jump Coaster [Zsolt Vasvari] Checkman [Brad Oliver] Tank Battalion [Brad Oliver] Rainbow Islands (preliminary) [Mike Coates] Lode Runner [Lee Taylor] Liberator [Paul Winkler] Wiz [Zsolt Vasvari] Crater Raider [Aaron Giles] Block Out [Nicola Salmoria] Fast Freddie [Zsolt Vasvari] Fly-Boy [Brad Oliver] The Pit [Zsolt Vasvari] Trojan [Paul Leaman] Super Qix [Mirko Buffoni, Nicola Salmoria] Toki [Jarek Parchanski] Ping Pong [Jarek Parchanski] Snow Bros [Mike Coates] Strider (preliminary - huge memory requirements) [Paul Leaman] Willow (preliminary - huge memory requirements) [Paul Leaman] Final Fight (preliminary - huge memory requirements) [Paul Leaman] Mega Twins (preliminary - huge memory requirements) [Paul Leaman] UN Squadron (preliminary - huge memory requirements) [Paul Leaman] Gun Dealer [Nicola Salmoria] The New Zealand Story (preliminary) [Chris Moore] Route 16 [Zsolt Vasvari] Stratovox [Darren Olafson] Tetris [Zsolt Vasvari] D-Day [Zsolt Vasvari] World Cup 90 [Ernesto Corvi] Bad Dudes [Bryan McPhail] Robocop [Bryan McPhail] Heavy Barrel (preliminary) [Bryan McPhail] Sly Spy [Bryan McPhail] Hippodrome (preliminary) [Bryan McPhail] Midnight Resistance [Bryan McPhail] Karnov [Bryan McPhail] Chelnov (preliminary) [Bryan McPhail] Tiger Road [Phil Stroffolino] Toobin' [Aaron Giles] Blockade/Comotion [Frank Palazzolo] Leprechaun [Zsolt Vasvari] Wonder Boy Deluxe [Jarek Parchanski] Wonder Boy in Monster Land (preliminary) [Mirko Buffoni] Pitfall 2 [Jarek Parchanski] Choplifter [Jarek Parchanski] Jack the Giant Killer [Brad Oliver] Ninja Gai Den [Alex Pasadyn] Marble Madness [Aaron Giles] Peter Packrat [Aaron Giles] Indiana Jones [Aaron Giles] Road Runner [Aaron Giles] Road Blasters [Aaron Giles] Astro Invader [Lee Taylor] Space Chaser [Lee Taylor] Zzap (not working) [Lee Taylor] Tornado BaseBall [Lee Taylor] Kamikaze [Lee Taylor] Amazing Maze Game [Lee Taylor] Commando (Sega, nothing to do with the Capcom one) (preliminary) [Brad Oliver] Jungler [Nicola Salmoria] Lotto Fun [Mike Balfour] Video Hustler [Al Kossow] Road Fighter [Nicola Salmoria] original version of Gauntlet, Gauntlet 2 and two intermediate releases. Note that only the original version are now supported, the slapstic hacked ones no longer are. [Aaron Giles] Gauntlet (2 players). [Aaron Giles] Capcom Bowling (the real one; the previous one, Coors Light Bowling, has been renamed "clbowl") [Michael Appolo] Pleiads (Tehkan) [Paul Swan] Venture (alternate) [Mike Balfour] Frogger (yet another alternate version) [Nicola Salmoria] Far West (a Iron Horse bootleg running on different hardware, not working yet) [Nicola Salmoria] Scrambled Egg [Gerald Vanderick] Eagle [Al Kossow] Super Missile Attack [Mike Balfour] another Galaga bootleg [Marco Cassili] Swimmer (alternate version) [Brad Oliver] Car Action [Ivan Mackintosh] Espial (European version). Also changed Espial to use the correct ROM set. [David Winter] Monkey Donkey [Mike Coates] Moon Patrol (Irem copyright). Note that the previous version (Williams license) has been renamed "mpatrolw". [Gary Walton] Savage Bees [Jim Hernandez] Gorf (Program 1) [Alex Judd] Extra Bases (not playable) [Alex Judd] Suntory Tapper [Paul Sommers, Ruben Panossian] These drivers have improved GRAPHICS: ------------------------------------- - Accurate colors in: Roc'n Rope [Paul Swan] Frogger [Gerald Vanderick] Traverse USA [Gerald Vanderick] Donkey Kong 3 [Tim Lindquist] Minefield (apart from the background which is approximate) [Al Kossow] Circus Charlie [Paul Swan] Hyper Sports [Paul Swan] Iron Horse [Paul Swan, Gerald Vanderick] Zaxxon [Gerald Vanderick] Millipede [Nicola Salmoria] Shao-Lin's Road [Gerrit Van Goethem] Radarscope (probably) [Andy White, Tim Lindquist] Kangaroo [Mike Balfour] Rally X [Gary Walton, Simon Walls] Locomotion [Kevin Klopp] Swimmer [Gary Walton, Simon Walls] Pooyan [Martin Binder] Motos [Aaron Giles] - Consolidated the Exidy drivers. Accurate colors in Venture, Mouse Trap and Pepper 2. [Mike Balfour] - Fixed aspect ratio in Major Havoc [Al Kossow] - Fixed pixel doubled sprites in Exerion [John Butler] - Proper overlay emulation in Circus. [Zsolt Vasvari] - Fixed double size sprites in Galaga when screen is flipped. [ehrhard@csd.de] - Better colors in Blue Print. [Martin Searle] - Fixed disappearing background at the end of the tunnel in Super Zaxxon. [Nicola Salmoria] - Support for the complete Swimmer set. No more bad graphics. [Brad Oliver] - Gradient filled background in Rescue and Minefield. [Mike Coates] - 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 # # 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. [Andrew Caldwell] - Improved handling of vector games. Battlezone and Major Havoc now do correct clipping. [Aaron Giles, Bernd Wiebelt] - 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. [Aaron Giles] - I 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). [Nicola Salmoria] - Improved the blitter for the Williams games. Sinistar now works correctly. [Aaron Giles, Brad Oliver] - Fixed sprites in Gauntlet. [Aaron Giles] - Merged the Qix and Zookeeper drivers, they now also support rotation. [John Butler] These drivers have new or improved SOUND: ----------------------------------------- - New YM2151 emulator, used by Rastan and others. [Jarek Burczynski] - Improved YM2203 and YM2151 emulator, and DAC interface, with 16 bit samples support. (Use -sb 16 to turn on 16 bit samples). [Tatsuyuki Satoh] - AY8910 and SN76496 support 16 bit samples as well. [Tatsuyuki Satoh] - Improved ADPCM support, plus support for the OKIM6295 ADPCM chip. Several drivers use these. [Aaron Giles] - Fixed sound in Exed Exes; it has one 8910 and two 76496, not two 8910. [Nicola Salmoria] - Added back speech sample support to Q*Bert. [John Butler, Howie Cohen] - Sound in Zaxxon and Berzerk, through samples. [Alex Judd] - Better speech in Gorf. [Alex Judd] - Better sound in Nibbler. [Brian Levine] - Fixed missing/bad sound effects in Jungle King. [Nicola Salmoria] - A first attempt at sound in Donkey Kong 3 / Punch Out. These two Nintendo games use the same sound hardware as the NES console. [Nicola Salmoria] - 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) [Jim Hernandez] - Improved pitch in many games. - Sound in Targ and Spectar (need samples). [Dan Boris] - Fixed ADPCM sample support in Rastan. [Jarek Burczynski] - Fixed sound pitch and Mario jump in Donkey Kong. [Howie Cohen, Brad Oliver] - Speech in Mat Mania [Nicola Salmoria] - Speech in Sinistar, through samples. [Howie Cohen] - Sound in Fire Trap and Silkworm (Sound Blaster needed) [Nicola Salmoria] - Music in Bubble Bobble (Sound Blaster needed) [Nicola Salmoria] - Sound in Break Thru (Sound Blaster needed) [Bryan McPhail] - Added support for missing samples to Donkey Kong Jr. [Howie Cohen] These drivers have HIGH SCORE support: -------------------------------------- - Sidearms, Breakthru, Mikie, 1943 Kai, Shaolin's Road, pengoa. [Gerrit Van Goethem] - 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] - 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 ;-) [Nicola Salmoria] - Astro Fighter. [Santeri Saarimaa] - Tazz-Mania, Space Firebird. [Chris Moore] - Targ, Spectar. [Mike Balfour] - Fire Trap, Fantasy. [Dani Portillo] - Fixed Espial. [Dani Portillo] - Fixed scores over 100000 in Donkey Kong/Donkey Kong Jr. [Wiebo de Wit] Other drivers changes: ---------------------- - Added the missing third button to Iron Horse. [Stuart Campbell] - Fixes to dip switches and input ports in several games. [Marco Cassili] - Better collision detection in the Exidy games (most noticeable in Venture upper left room) [Mike Balfour] - Added missing action button to Diamond Run. [Yves Colombani] - Added Invulnerability dip switch to Japanese Ghosts'n Goblins. [mbeighau@iies.es] - Fixed Bubbles. [Marc Lafontaine] - Major cleanup of the Williams drivers. [Aaron Giles] - Fixed disappearing guards and other wrong behaviours in Bagman which were caused by copy protection. [Jarek Burczynsk] - Fixed crashes in Rastan. [Barry Rodewald] - Fixed service mode in Food Fight. [Aaron Giles] Changes to the main program: ---------------------------- - 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. [Nicola Salmoria] - Fixed a bug in the 8086 emulator which caused unexpected deaths in Krull. [Fabrice Frances] - Improved analog input handling. [Bernd Wiebelt] - New 6808 emulator. [John Butler] - Native .zip file support. [John Butler] - Bugfix: "Dial Joy Inc" can now be properly set (e.g. Tron). [Brad Oliver] - 6805 emulator, needed by Arkanoid. [Aaron Giles] - High score load/save is disabled when -record or -playback is used. This prevents undesired side effects. [Nicola Salmoria] - Fixed 68000 emulator to properly handle interrupt priorities. [Aaron Giles] - In the DOS version, screen snapshots are saved as "gamename.pcx" (the first one) and "nameNNNN.pcx" (the following ones), no longer the too generic "snapNNNN.pcx". [Nicola Salmoria] - 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. [Tormod Tjaberg] - 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). [Nicola Salmoria] - improved mame.cfg and commandline parameter handling: [Valerio Verrando, Maurizio Zanello, Bernd Wiebelt] * 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. * (DOS) Wildcard support for the frontend commands: "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. - 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/ [Zerza] - Fixed bug in the 6808 emulation of TSX and TXS. [Larry Bank] - Cleaned up the I86 emulator, including 286 instructions (but with 8088 timing). [Fabrice Frances] - Added support for HD63701YO extra opcodes to the M6808 emulation. [Ernesto Corvi] Source: ------- 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. - 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. [Aaron Giles] - 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). [Aaron Giles] - Memory for the 68000 is allocated 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] - 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. [Aaron Giles] - Improved debugger [Martin Scragg, Mirko Buffoni, John Butler] - Moved the speed throttling code to the OS dependant stuff. [Nicola Salmoria] - Support for Z80 daisy chain interrupts. [Tatsuyuki Satoh] - Migration to the new input port definitions is complete. The obsolete structures have been removed from struct GameDriver. [Marco Cassili] - 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. - There is 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. [Phil Stroffolino, Nicola Salmoria] 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.