0.31 1998/04/25 [#036 - Nicola Salmoria] ---------------------------------------- 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 games supported: -------------------- (astinvad) Astro Invader [Lee Taylor] (atetris) Tetris (Atari) [Zsolt Vasvari] (baddudes) Bad Dudes [Bryan McPhail] (bandido) Bandido [Mike Coates] (blockade) Blockade [Frank Palazzolo] (blockout) Block Out [Nicola Salmoria] (boothill) Boot Hill [Mike Balfour] (bsktball) Basketball [Mike Balfour] (capbowl) Capcom Bowling [Michael Appolo] (checkman) Checkman [Brad Oliver] (chelnov) Chelnov - Atomic Runner [Bryan McPhail] (chplft) Choplifter [Jarek Parchanski] (citycon) City Connection [Mirko Buffoni] (commsega) Commando (Sega) [Brad Oliver] (copsnrob) Cops'n Robbers [Zsolt Vasvari] (crash) Crash [Mike Coates] (crater) Crater Raider [Aaron Giles] (darkplnt) Dark Planet [Mike Balfour] (dday) D-Day [Zsolt Vasvari] (dominos) Dominos [Mike Balfour] (ebases) Extra Bases [Alex Judd] (fastfred) Fast Freddie [Zsolt Vasvari] (ffight) Final Fight [Paul Leaman] (friskyt) Frisky Tom [Mirko Buffoni, Nicola Salmoria] (gaiden) Ninja Gaiden [Alex Pasadyn] (gemini) Gemini Wing [Mirko Buffoni] (gundealr) Gun Dealer [Nicola Salmoria] (guzzler) Guzzler [Mirko Buffoni] (hbarrel) Heavy Barrel [Bryan McPhail] (hippodrm) Hippodrome [Bryan McPhail] (hustler) Video Hustler [Al Kossow] (indytemp) Indiana Jones and the Temple of Doom [Aaron Giles] (jedi) Return of the Jedi [Dan Boris] (jumpcoas) Jump Coaster [Zsolt Vasvari] (jungler) Jungler [Nicola Salmoria] (karnov) Karnov [Bryan McPhail] (killcom) Killer Comet [Chris Moore] (leprechn) Leprechaun [Zsolt Vasvari] (liberatr) Liberator [Paul Winkler] (lottofun) Lotto Fun [Mike Balfour] (lrunner) Lode Runner [Lee Taylor] (maniach) Mania Challenge [Brad Oliver] (marble) Marble Madness [Aaron Giles] (maze) The Amazing Maze Game [Lee Taylor] (megatack) MegaTack [Chris Moore] (midres) Midnight Resistance [Bryan McPhail] (mpatrol) Moon Patrol [Gary Walton] (mtwins) Mega Twins [Paul Leaman] (nitedrvr) Night Driver [Mike Balfour] (peterpak) Peter Pack-Rat [Aaron Giles] (pingpong) Ping Pong [Jarek Parchanski] (pitfall2) Pitfall II [Jarek Parchanski] (pleitek) Pleiads (Tehkan) [Paul Swan] (rainbow) Rainbow Islands [Mike Coates] (roadblst) Road Blasters [Aaron Giles] (roadf) Road Fighter [Nicola Salmoria] (roadrunn) Road Runner [Aaron Giles] (robocopp) Robocop (bootleg) [Bryan McPhail] (route16) Route 16 [Zsolt Vasvari] (rygar) Rygar [Nicola Salmoria] (sbrkout) Super Breakout [Mike Balfour] (schaser) Space Chaser [Lee Taylor] (slyspy) Sly Spy [Bryan McPhail] (snowbros) Snow Bros [Mike Coates] (spnchout) Super Punch Out [Nicola Salmoria] (sprint1) Sprint1 [Mike Balfour] (srumbler) Speed Rumbler [Paul Leaman] (starfire) Starfire (Exidy) [Dan Boris] (stratgyx) Strategy X [Lee Taylor] (stratvox) Stratovox [Darren Olafson] (strider) Strider [Paul Leaman] (superqix) Super Qix [Mirko Buffoni, Nicola Salmoria] (tankbatt) Tank Battalion [Brad Oliver] (tazmania) Tazz-Mania [Chris Hardy] (thepit) The Pit [Zsolt Vasvari] (tigeroad) Tiger Road [Phil Stroffolino] (tnzs) The New Zealand Story [Chris Moore] (toki) Toki [Jarek Parchanski] (toobin) Toobin' [Aaron Giles] (tornbase) Tornado Baseball [Lee Taylor] (trojan) Trojan [Paul Leaman] (unsquad) UN Squadron [Paul Leaman] (wbdeluxe) Wonder Boy Deluxe [Jarek Parchanski] (wbml) Wonder Boy in Monster Land [Mirko Buffoni] (wc90) World Cup 90 [Ernesto Corvi] (willow) Willow [Paul Leaman] (wiz) Wiz [Zsolt Vasvari] New games supported: -------------------- (arkabeta) Arkanoid (BETA bootleg) [Thierry Lescot] (arkatayt) Arkanoid (Tayto bootleg) [Thierry Lescot] (arkbl2) Arkanoid (Bootleg) [Aaron Giles] (atetcktl) Tetris (Atari) (Cocktail version) [Zsolt Vasvari] (atetrisa) Tetris (Atari) (alternate) [Zsolt Vasvari] (atetrisb) Tetris (Atari) (bootleg) [Zsolt Vasvari] (caractn) Car Action [Ivan Mackintosh] (chelnovj) Chelnov - Atomic Runner (Japan) [Bryan McPhail] (chplftb) Choplifter (alternate) [Jarek Parchanski] (chplftbl) Choplifter (bootleg) [Jarek Parchanski] (comotion) Comotion [Frank Palazzolo] (drgninja) Dragonninja [Bryan McPhail] (eagle) Eagle [Al Kossow] (espiale) Espial (European version) [David Winter] (farwest) Far West [Nicola Salmoria] (flyboy) Fly-Boy (bootleg?) [Brad Oliver] (frogger2) Frogger (alternate version #2) [Nicola Salmoria] (galagab2) Galaga (NAMCO Alternate) [Marco Cassili] (gaunt2p) Gauntlet (2 Player) [Aaron Giles] (gauntir1) Gauntlet (Intermediate Release 1) [Aaron Giles] (gauntir2) Gauntlet (Intermediate Release 2) [Aaron Giles] (gorfpgm1) Gorf (Program 1) [Alex Judd] (hamburge) Hamburger [Nicola Salmoria] (kamikaze) Kamikaze [Lee Taylor] (karnovj) Karnov (Japan) [Bryan McPhail] (marble2) Marble Madness (version 2) [Aaron Giles] (marblea) Marble Madness (Alternate version) [Aaron Giles] (monkeyd) Monkey Donkey [Mike Coates] (pool) Pool [Al Kossow] (rainbowe) Rainbow Islands (Extra) [Mike Coates] (rygarj) Rygar (Japanese) [Nicola Salmoria] (savgbees) Savage Bees [Jim Hernandez] (scregg) Scrambled Egg [Gerald Vanderick] (shadoww) Shadow Warriors [Alex Pasadyn] (sqixbl) Super Qix (bootleg) [Mirko Buffoni, Nicola Salmoria] (srumblr2) Speed Rumbler (alternate) [Paul Leaman] (stratgyb) Strategy X (Stern) [Lee Taylor] (suprmatk) Super Missile Attack [Mike Balfour] (sutapper) Tapper (Suntory) [Paul Sommers, Ruben Panossian] (swimmera) Swimmer (alternate) [Brad Oliver] (tnzs2) The New Zealand Story 2 [Chris Moore] (trojanj) Trojan (Japanese) [Paul Leaman] (venture2) Venture (alternate version) [Mike Balfour] (wc90b) World Cup 90 (bootleg) [Ernesto Corvi] (zzzap) Zzap [Lee Taylor] These drivers have improved GRAPHICS: ------------------------------------- - Accurate colors in: * Circus Charlie [Paul Swan] * Donkey Kong 3 [Tim Lindquist] * Frogger [Gerald Vanderick] * Hyper Sports [Paul Swan] * Iron Horse [Paul Swan, Gerald Vanderick] * Kangaroo [Mike Balfour] * Locomotion [Kevin Klopp] * Millipede [Nicola Salmoria] * Minefield (apart from the background which is approximate) [Al Kossow] * Motos [Aaron Giles] * Pooyan [Martin Binder] * Radarscope (probably) [Andy White, Tim Lindquist] * Rally X [Gary Walton, Simon Walls] * Roc'n Rope [Paul Swan] * Shao-Lin's Road [Gerrit Van Goethem] * Swimmer [Gary Walton, Simon Walls] * Traverse USA [Gerald Vanderick] * Zaxxon [Gerald Vanderick] - 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 100,000 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 changes: ---------------- - 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 [Nicola Salmoria]. - The DOS version is now compiled with GCC 2.8.0, optimized for Pentium [Nicola Salmoria]. - 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 [Nicola Salmoria]. - 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 [Nicola Salmoria].