0.33 (0.32 doesn't exist to avoid confusion with MAME32) A lot of ROM renaming and moving around has been done. I know this is annoying but it was necessary. See merged.txt for details. New ROM sets supported (in no particular order): ------------------------------------------------ Faster, Harder, More Challenging Q*Bert Pac-Land [Ernesto Corvi] Punk Shot [Nicola Salmoria] Teenage Mutant Ninja Turtles [Alex Pasadyn] Lock'n'Chase [Zsolt Vasvari] Side Pocket [Ernesto Corvi] Satan of Saturn / Zarzon [Dan Boris] Xain'd Sleena/Solar Warrior [Carlos A. Lozano] Up'n Down [Thierry Lescot] Magic Sword [Paul Leaman] Space Dungeon [Dan Boris] Slap Fight (preliminary) [Keith Wilkins] Hexa [Howie Cohen] Space Encounters [Al Kossow, Brad Oliver] Clowns [Al Kossow, Brad Oliver] Guided Missile [Al Kossow, Brad Oliver] Sea Wolf [Al Kossow, Brad Oliver] Gunfight [Al Kossow, Brad Oliver] Lupin III [Al Kossow, Brad Oliver] Shoot Out [Ernesto Corvi] Curve Ball [Mike Balfour] Challenger [Al Kossow] Kaos [Chris Moore] F1 Dream (preliminary) [Paul Leaman] Double Dragon / Double Dragon 2 [Carlos A. Lozano, Rob Rosenbrock, Phil Stroffolino, Ernesto Corvi] Aeroboto (preliminary) [Carlos A. Lozano] Blasto [Frank Palazzolo] Shinobi [Mirko Buffoni] Golden Axe [Mirko Buffoni] Alien Syndrome [Mirko Buffoni] Altered Beast [Mirko Buffoni] Passing Shot (preliminary - the System 16 driver needs to support rotation) [Mirko Buffoni] Tetris (Sega, bootleg) [Mirko Buffoni] Juno First [Chris Hardy] Darwin 4078 [Ville Laitinen] Safari [Zsolt Vasvari] Pnickies [Paul Leaman] Ghouls and Ghosts [Paul Leaman] Knights of the Round (preliminary) [Paul Leaman] Carrier Air Wing (preliminary) [Paul Leaman] Zoar [Zsolt Vasvari] Klax [Aaron Giles] Red Alert [Mike Balfour] I, Robot (preliminary) [Dan Boris] Paperboy [Aaron Giles] Super Sprint [Aaron Giles] Championship Sprint [Aaron Giles] 720 Degrees [Aaron Giles] APB (preliminary, and bad ROMs) [Aaron Giles] Zyyzzyxx [Brad Oliver] Eyes [Zsolt Vasvari] Space Seeker [Nicola Salmoria] Ponpoko [Zsolt Vasvari] Head On [Al Kossow] Invinco / Deep Scan [Al Kossow] Tranquilizer Gun [Al Kossow] Space Trek [Al Kossow] Money Money [Nicola Salmoria] Jack Rabbit [Nicola Salmoria] Blasteroids [Aaron Giles] Xybots [Aaron Giles] Escape from the Planet of Robot Monsters [Aaron Giles] Xenophobe [Bryan McPhail] Super Space Invaders '91 (preliminary) [Howie Cohen] Crazy Balloon [Nicola Salmoria] Nemesis [Allard van der Bas] Konami GT (preliminary) [Allard van der Bas] Depth Charge [Al Kossow] Cosmic Alien [Lee Taylor] Spiders [Keith Wilkins] Last Duel (preliminary; the ROM set is incomplete) [Bryan McPhail] Mad Gear (preliminary; the ROM set is incomplete) [Bryan McPhail] Cobra Command [Bryan McPhail] Bowl-O-Rama [Zsolt Vasvari] 1941 [Darren Olafson] Nemo [Darren Olafson] Nova 2001 [Howie Cohen, Frank Palazzolo, Alex Pasadyn] Super Bond [Chris Hardy] Avalanche [Mike Balfour] Gladiator [Victor Trucco, Steve Ellenoff, Phil Stroffolino] Lazer Command [Juergen Buchmueller] Dead Eye [Juergen Buchmueller] Gypsy Juggler [Juergen Buchmueller] Fax [Mike Balfour] Heli Fire [Al Kossow] Space Fever [Al Kossow] Birdie King 2 (preliminary) [Ed Mueller, Mike Balfour] Lizard Wizard [Mike Balfour] Pioneer Balloon [Juergen Buchmueller] Jackal/Top Gunner [Kenneth Lin] Contra/Gryzor [Carlos A. Lozano, Jose Tejada Gomez, Phil Stroffolino, Eric Hustvedt] Solomon's Key [Mirko Buffoni] Round-Up [Zsolt Vasvari] Tehkan World Cup [Ernesto Corvi, Roberto Fresca] Tee'd Off (preliminary) [Ernesto Corvi, Roberto Fresca] Vindicators [Aaron Giles] Space Tactics [Frank Palazzolo] Polaris [Victor Trucco] The Main Event [Bryan McPhail] Devastators (not working) [Bryan McPhail] Dark Seal / Gate of Doom [Bryan McPhail] Golden Star [Mirko Buffoni] The Glob [Mike Balfour] Ninja Kid 2 [Jarek Parchanski] Centipede (rev 1) [Brad Oliver] Tutankham (Konami). Note that the old version has been renamed "tutankst". [Marc Vergoossen] Nibbler (alternate) Note that I also replaced a bad sound ROM in the previous set with the good one in this set. [Nicola Salmoria] Heavy Barrel (new, complete set). The old one has been renamed & modified to include 4 ROMs which were missing. [Bryan McPhail] Strider (Japanese) [Marco Cassili] Willow (Japanese) [Marco Cassili] Final Fight (Japanese) [Marco Cassili] Chicki Chicki Boys (Japanese Mega Twins) [Marco Cassili] MotoRace USA [Nicola Salmoria] 1943 (Japanese) [Nicola Salmoria] Sinistar (allegedly from a prototype machine that was displayed at the 1982 AMOA show in Las Vegas) [Brian Deuel] Exerion (bootleg?) [Nicola Salmoria] Moon Alien Part 2 [Al Kossow] Masao [Hugh McLenaghan] Fighting Fantasy [Marco Cassili] 1941 (Japanese) [Marco Cassili] Nemo (Japanese) [Sawat Pontree] Ghouls'n Ghosts (Japanese) [Marco Cassili] Magic Sword (Japanese) [Marco Cassili] 1942 (alternate) [Nicola Salmoria] Bagman (original Valadon Automation version; the Stern version has been renamed "bagmans") [Nicola Salmoria] Kicker [Nicola Salmoria] Tempest version 2 and 3 ("tempest" has been renamed "tempest1"; "tempest" is now version 3) [Darrin Redick] Gladiator (Japan) [Nicola Salmoria] Zoo Keeper (alternate) [Nicola Salmoria] Two new Mikie sets (US/Japan). The old one was bad and has been removed. [Nicola Salmoria] Moon Cresta (bootleg on Galaxian hardware) [Nicola Salmoria] Pengo (encrypted version of set 2. The unencrypted version has been renamed "pengo2u") [Tim Lindquist] These drivers have improved GRAPHICS: ------------------------------------- - Fixed glitches in Gemini Wing and Rygar. [Li Jih Hwa] - Fade-in/fade-out in Robocop [Nicola Salmoria] - Fixed colors in Centipede, including service mode multiplexed color test. [Nicola Salmoria] - Fixed background layer colors in Trojan [Paul Leaman] - Fixed invisible ball in Champion Baseball. Some of the graphics are still broken. The reason is unknown. [Nicola Salmoria] - Adjusted the brightness of the background in Popeye, which should make it correct according to the schematics. Maybe now it's too dark? [Nicola Salmoria] - Fixed colors in Road Runner. [Aaron Giles] - Accurate colors: Zoar [Zsolt Vasvari] Warp Warp [Nicola Salmoria] Wonder Boy Deluxe, Up'n Down, Pitfall II [Nicola Salmoria] Eggs [Gerald Vanderick] Fast Freddie/Fly-Boy (not sure about this one) [Zsolt Vasvari] Jump Coaster [Zsolt Vasvari] Warlords [Zsolt Vasvari] Mega Attack and possibly the other Gameplan games [Chris Moore] Road Fighter [Paul Swan] - Some fiddling with the Atari vector games frame rates. [Nicola Salmoria] - Slightly reduced the visible area of the Williams games, I'm not sure which would be the correct setting though. [Nicola Salmoria] - Better colors in Red Alert. [Mike Balfour] - Zaxxon and Congo Bongo support rotation. [John Butler] - Fixed colors in Space Firebird. [Chris Hardy] - Fixed sprite/background priority in Gemini Wing. [Nicola Salmoria] - Fixed some wrong graphics in Lode Runner. [Nicola Salmoria] - Accurate colors, and many other fixes, in TNZS. [Richard Mitton] - Fixed colors in Crater Raider. [Aaron Giles] - Cocktail mode support in some games (invaders, btime, etc.). [Martin Sandiford] - Inspired by Retrocade and Vector Dream, changed the vector games to use translucent vectors. Color intensities had to be lowered, if it feels too dark for you now, increase the gamma correction value. [Bernd Wiebelt] - Fixed sprite priorities and tile flip in Pinball Action. [Nicola Salmoria] - Fixed Motos High Score display. [Zsolt Vasvari] - Moon Cresta uses the original gfx ROMs, fixing graphics glitches on the title screen. These drivers have new or improved SOUND: ----------------------------------------- - New Zealand Story [Carlos A. Lozano] - Fixed fuel alert sound in Lunar Lander. [Keith Wilkins] - Added speech to Champion Baseball. [Nicola Salmoria] - Put back sample support in Q*Bert Qubes. [Rodimus Prime] - Music in 3 Stooges. [Nicola Salmoria] - Emulated sound in Lunar Lander. [Keith Wilkins] - Sound in the Gameplan games. [Chris Moore] - Increased music tempo in Snow Bros. - Updated VLM5030 emulation (Punch Out etc.). Since quality is still bad, the emulator is only used when samples are not available. [Tatsuyuki Satoh] - Sped up music tempo in Gun Dealer. - Wizard of Wor supports word samples. Only 70% of the needed samples are available, however. [Alex Judd] - Fixed D-Day. [Zsolt Vasvari] - Sound in Space Firebird. [Dan Boris] - Fixed bug in ADPCM sample playback. Many games are affected, e.g. Robocop, Bad Dudes. [Nicola Salmoria] - Attempt at making the main Galaxian / Moon Cresta sound channel more accurate. [Nicola Salmoria] - Fixed bug in VLM5030 emulator which caused samples not to work. [Tatuyuki Satoh] - Sound in Toki. [Nicola Salmoria] - The YM3812 emulator still passes commands to the Sound Blaster OPL chip, but it handles timers in software. osd_ym3812_status and osd_ym3812_read removed. [Aaron Giles] - Emulated sound in Yie Ar Kung Fu (speech is missing for now) [Nicola Salmoria] - Sound in Pinball Action. [Mirko Buffoni] - Partial sound in Midnight Resistance and Sly Spy. [Bryan McPhail] - Emulated music in Carnival, and support for a new set of samples. [Peter Clare] These drivers have HIGH SCORE support: -------------------------------------- - Swimmer, Pop Flamer [Brad Oliver] - Fixed Wonder Boy Deluxe [Chris Moore] - Locomotion, Jungler, Commando (Sega), Wonder Boy in Monster Land, Rygar, Gemini Wing, Silkworm, City Connection, Trojan, Up'n Down. [Dani Portillo] - Fixed Diamond Run. [Mike Balfour] - Front Line. [Steve Ellenoff] - Fixed Black Tiger, Bank Panic and The End. [Nicola Salmoria] - World Cup '90 [Juan Carlos Lorente] - Challenger, MegaTack, Killer Comet. [Santeri Saarimaa] - TNZS. [Santeri Saarimaa] - Vastar. [Dani Portillo] - Fixed Rygar (you'll have to delete your old .hi file) [Dani Portillo] Other drivers changes: ---------------------- - Fixed Atari System 1 games not accepting coins with -fm (actually -fm was supposed to be a no-op in this case since emulation of the YM2151 through OPL is not supported). You still have to keep sound on, however; disabling it will disable coins. Of course you can set the dip switches to Free Play and forget about coins. - Service mode in Centipede and Millipede works. [Brad Oliver] - Added support for coin counters to some games. [Brad Oliver] - Heavy Barrel is playable to the end, but there are still some problems. [Bryan McPhail] - Improved speed in the CPS1 games. [Paul Leaman] - Fixed speed in Berzerk/Frenzy [Zsolt Vasvari] - Adjusted timing in the vector games. [Bernd Wiebelt] - Another step forward in getting Super Punch Out to work (still NOT playable). [Tatsuyuki Satoh] - Proper emulation of the ROM decryption in Burger Time. [Zsolt Vasvari] - Improved Spy Hunter controls (you can play with the mouse or even a wheel now). [Alex Judd] - Changed the 6502 emulation to disable interrupts on a reset. Not sure if this is the correct behavior, but Centipede needed it for the service mode to work. - Support for the complete Curveball set. This also fixes the crash. - Many improvements to the DECO games, especially Heavy Barrel. [Bryan McPhail] - Sped up Route 16. [Zsolt Vasvari] - Lots of clean up, consolidation, dip switches additions, color fixes to the Carnival driver (which is now called vicdual.c, since Carnival is just one of the many games which run on that hardware). [Marco Cassili] - Slowed down a little the Sega raster games. - You can assign a joystick button to the gear shift in Spy Hunter. - Red Alert accepts coins. [Mike Balfour] - Mapped the unknown dip switch in Wonder Boy Deluxe. [David Calandra] - Fixes to the Gameplan games. [Santeri Saarimaa] - Us vs Them is playable, though of course you can't see the backgrounds which were stored on the laser disc. MACH 3 still doesn't work. - Fixed bug in the I8086 emulator which caused MACH3 not to work. MACH3 now does the attract mode, but it will never be playable without the laser disc. - Fixed Snow Bros hanging after level 30. [Nicola Salmoria] - Fixed hangs in Tapper, and hopefully other MCR games as well. [Aaron Giles] - Some fixes to Quantum. [Paul Forgey] - The default scores in Paperboy and Super Sprint are correct (though of course you must delete the .HI files) [Aaron Giles] - Super Qix might be running at the proper speed now. [Nicola Salmoria] Changes to the main program: ---------------------------- - [DOS] Increased the default gamma correction to 1.2. This will not have effect unless you change it in MAME.CFG (or just delete the file). - [DOS] Set back the default vgafreq to -1 (=auto). This is necessary for -vsync to pick the correct freq (most of the time) when used with tweaked VGA modes. This will not have effect unless you change it in MAME.CFG (or just delete the file). - Fixed -ror and -rol with ORIENTATION_SWAP_XY games (e.g. Kick) and ORIENTATION_FLIP_X games (e.g. Discs of Tron). [Nicola Salmoria] - [DOS] -vsync is supported for games running at 57fps (e.g. Moon Patrol). However, due to the sync rate being different, the game runs 6% faster than it should. [Nicola Salmoria] - [DOS] New -listgames command, which lists all games along with production year and manufacturer. Also -noclones option which removes clones from -list, -listfull etc. [Nicola Salmoria] - [DOS] Fixed the NTSC mode. For feedback on this mode, please contact sta@carinthia.com [Zerza] - [DOS] Allegro (3.0+diffmay) now supports SideWinders and Gravis Gamepad Pro's and so does Mame. [Bud Crittenden] - Emulating analog devices via joystick no longer deactivates the mouse. IMPORTANT NOTE FOR PORTERS: osd_analog_read() had to be changed. The mame.cfg setting for joysticks was renamed to "joystick" instead of "joytype". The numbering of joystick types has changed, look into readme.txt [Bernd Wiebelt] - Close to accurate 68000 instruction timing. [Brian Verre] - Slightly improved speed of the 68000 emulator. [Darren Olafson] - Some game information is displayed in the introduction screen. The copyright disclaimer and driver credits screens are shown only the first time a game is run. The game information screen is always shown since it may contain important info. [Nicola Salmoria] - [DOS] New -listdetails option, to create a detailed list of drivers and the hardware they use. [Santeri Saarimaa] - Improved handling of 4 way joysticks. [Martin Sandiford] - [DOS] Modified the code so that to start a game you can use a) the full game name as listed in "mame -listfull" b) any ordered subset of the characters used in the full game name So you can start Asteroids Deluxe like: mame "Asteroids Deluxe" !note the quotes! mame astdelx mame adlx The less characters you use, the more likely you'll be surprised which game actually gets chosen. [Bernd Wiebelt] - [DOS] To improve compatibility, older VESA modes are back. If your card doesn't work in VESA mode, try "vesamode=vesa2b" or "vesamode=vesa1" in mame.cfg [Bernd Wiebelt] - [DOS] Slightly changed the resolution picker, so that when -vesa and -noscanlines are requested, it will use e.g. 320x240 instead of 640x480 with pixel doubling, and 400x300 instead of 800x600 with pixel doubling. If the lower res mode is not available, it automatically switches back to the pixel doubled mode. [Nicola Salmoria] - [DOS] New -listclones command, which lists in two columns the clones and the game they are clone of. [Nicola Salmoria] - Changed the AY8910 emulation to generate three separate audio streams for the three channels instead of premixing them. This improves audio quality, increases the volume, and doesn't seem to affect performance too much. [Nicola Salmoria] Source: ------- - The DOS version is now compiled with GCC 2.8.1 and using Allegro 3.0 + WIP (30th May). - [DOS] To improve portability, the makefile is more conservative, using the -pedantic and -Wshadow switches. Note that to compile with these switches, several changes had to be made to allegro.h, which is included. - Drivers that dynamically change the palette are no longer required to initialize it in convert_color_prom(); they also can avoid initializing the color table, if the default layout for it (a 1:1 mapping) fits their needs. This is also useful when starting new drivers: you don't need to provide a fake palette or prom conversion function, the graphics will be visible somehow (but badly, so you had better change the defaults soon ;-) ) Also, games using PROMs don't need to initialize the colortable if the GfxDecodeInfo structure is properly initialized to make the correspondence 1:1. - Further changes to the palette handling code. - osd_create_display() no longer takes the total_colors, palette, pens arguments. They are handled by osd_allocate_colors(), which is called after osd_create_display(). - the convert_color_prom() functions now take a unsigned short *colortable parameter instead of unsigned char *. - Drivers for games which have a FIXED palette (i.e. they don't call osd_modify_pen()) of more than 256 colors are now allowed to declare it as such in the MachineDriver. The palette will be automatically shrinked to fit in 256 colors. Note: this assumes that the palette is actually composed of no more than 256 unique colors. This is currently the case in all the games. Examples: Kung Fu Master, Lode Runner, Arkanoid, Popeye. - instead of calling osd_modify_pen(Machine->pens[color],r,g,b), drivers should call palette_change_color(color,r,g,b). Note that the function does the Machine->pens[] mapping for you. - Dynamic palette support for games with >256 colors. Drivers who want to use it must first of all set up like the static palette ones (put the real number of colors in MachineDriver-> total_colors, etc.), and call palette_recalc() in vh_screenrefresh() before drawing anything. A color usage table must be set before calling palette_recalc() so that the function knows which colors are needed. To help drivers in better optimizing video refreshes, palette_recalc() returns a pointer to an array indicating which colors have been remapped and need a refresh. If you don't need it (most likely), you can just consider it a boolean value (0 = no need to redraw). [Nicola Salmoria] - Drivers using the VIDEO_SUPPORTS_16BIT mode must use the same API as VIDEO_MODIFIES_PALETTE ones (palette_change_color(), palette_recalc()). The old setgfxcolorentry() method is discontinued. To use the new API, you must set BOTH the VIDEO_SUPPORTS_16BIT and the VIDEO_MODIFIES_PALETTE flags. Removing the _16BIT flag is all it takes to switch from 16-bit to dynamic mode, so you can quickly test if the palette can be compressed (_16BIT is much slower, so don't use it unless absolutely necessary). [Nicola Salmoria] - On the Mac, the dynamic palette uses 254 colors instead of 256. Due to this, now ALL drivers using VIDEO_MODIFIES_COLOR and 256 colors must call palette_recalc() like the others. Also be warned that 256 colors static palettes will be shrinked, so if you are using colors for copybitmap() transparency you'll have to make sure that they are assigned an unique pen. - IMPORTANT: drawgfx(...,TRANSPARENCY_THROUGH) now requires the caller to do the mapping with Machine->pens[]. This was necessary to allow for TRANSPARENCY_THROUGH, palette_transparent_color in dynamic palette games. - Color PROMs no longer have to be included in the source. They can be loaded from disk just like the other ROMs. You just have to replace the color_prom pointer with the PROM_MEMORY_REGION() macro, to tell the core where the PROMs have been loaded. [Nicola Salmoria] - For drivers using the GfxLayer system, dirty rectangle support is partially built-in into the core. The OS dependent rendering functions must use Machine->dirtylayer to know which portions of the screen need to be refreshed. Drivers which use the GfxLayer system no longer need the VIDEO_SUPPORTS_DIRTY flag in the MachineDriver structure - it must be turned on automatically by the OS dependent code. - Added support for undocumented Z80 opcodes to the C Z80 core. [Juergen Buchmueller] - Improved speed of the C 68000 core. [Juergen Buchmueller] (this is supposed to give a good speed increase, but I don't see any appreciable difference on my K6 - Nicola) - Added WatchPoint support to the debugger (i.e. check a RAM location and stop execution when it is changed). [Ernesto Corvi] - Fixed a bug in 6502/dasm.c (this only applies if you compile it to get a standalone disassembler - it is not part of MAME) [Christophe Verre] - Fixed bug in the 6809 disassembler. [Keith Wilkins] - T11 CPU emulator. This is used by the Atari System 2 drivers. [Aaron Giles] - I8085 emulator. [Juergen Buchmueller] - The 68000 memory handlers can again be word-aligned instead of longword-aligned. [Aaron Giles] - New flag IPF_RESETCPU for input ports. When this flag is set, CPU #0 is reset when the key is pressed. This cleaned up the vicdual driver. [Nicola Salmoria] - Several fixes to improve Unix portability. [Hans de Goede] - Sygnetics 2650 emulator [Juergen Buchmueller] - Improved cycle counting in the 6809 emulator. [Mathis Rosenhauer] - Added new fields to the GameDriver structure: "source_file" (set it to __FILE__, this is used to automatically generate reference lists); "clone_of", used to link clones to the main version of the game. "year" and "manufacturer", for production year and company; "flags", for various info (currently only GAME_NOT_WORKING is defined). - [DOS] The average FPS is printed on exit. [Nicola Salmoria] - [DOS] Included Neil Bradley's asm M6808 emulator. Note: you need NASM to compile. The official DOS binary of NASM is a 16-bit application and it cannot compile this file; either use a recompiled version, or just use NASMW (of course the latter only works under Windows). [Alex Pasadyn] - The (*vh_update)() call has an additional parameter, full_refresh. When it is 0, the driver may assume that the screen has not been altered by the main engine since the last call, and do an incremental update instead of redrawing the full screen. [Brad Oliver] - For convenience, added some commonly used palette read/write functions to palette.c. [Nicola Salmoria] - Support for 16 bit samples in sndhrdw/samples.c. IMPORTANT NOTE FOR PORTERS: for consistency with the sound libraries, osd_play_sample_16() and osd_play_streamed_sample_16() now want the length in _bytes_ of the array, instead of the length in _shorts_ as it was before. [Peter Clare] - Added the I8039 to the debugger, using Mike Cuddy's disassembler. [Andrea Mazzoleni]