0.35 1999/07/04 [#072 - Nicola Salmoria] ---------------------------------------- The license has changed, check it in readme.txt. New games supported: -------------------- (machomou) Macho Mouse [Zsolt Vasvari] (ponpoko) Ponpoko [Zsolt Vasvari] (sfzch) Street Fighter ZERO (Japan CPS Changer) [Nicola Salmoria] (starcas) Star Castle (version 3) [Zsolt Vasvari] New clones supported: --------------------- (actfancj) Act-Fancer Cybernetick Hyper Weapon (Japan?) [Bryan McPhail] (arkangc) Arkanoid (Game Corporation bootleg) [Nicola Salmoria] (arknoidj) Arkanoid (Japan) [Nicola Salmoria] (atlants2) Battle of Atlantis (set 2) [Nicola Salmoria] (cottong) Cotocoto Cottong [Nicola Salmoria] (hustlerb) Video Hustler (bootleg) [Nicola Salmoria] (klaxj) Klax (Japan) [Nicola Salmoria] (mbomberj) Muscle Bomber (Japan) [Russell Nash] (sctionza) Section Z (set 2) [Nicola Salmoria] (sf2jb) Street Fighter II - The World Warrior (Japan 910214) [Nicola Salmoria] (smooncrs) Super Moon Cresta [Nicola Salmoria] (vulgus2) Vulgus (set 2) [Nicola Salmoria] (zaxxonb) Jackson [Nicola Salmoria] These drivers have improved GRAPHICS: ------------------------------------- - 16-bit color support in the NeoGeo driver. It's enabled in a few games which were particularly affected by reduction to 256 colors [Nicola Salmoria]. - Accurate colors in Galivan [Nicola Salmoria]. - Accurate colors in Spelunker II [Nicola Salmoria]. - Added a kludge to avoid leftover sprites in Rally-X [Larry Bank]. - Added the missing background layer to Cobra Command [Bryan McPhail]. - Attempt at emulating some raster effects in the NeoGeo games. The IRQ2 handling is still 99% unknown, however you can see the field in Super Sidekicks 3 and 4. This is largely unaccurate, and VERY slow. Hit F1 to toggle the emulation on or off (by default it's on) [Nicola Salmoria]. - Better backdrop for Battle Zone (bzone.png) [Nathan Sturm]. - Char/sprite priority in Lode Runner 2 & 3 and in Battle Road [Eric Hustvedt]. - Converted the System 16 drivers to use the TileMap system - they are now cleaner, faster, and support screen rotation [Phil Stroffolino]. - Fixed (?) the title in Galaxian Part X [Nicola Salmoria]. - Fixed (hopefully) colors in Blue Print [Nicola Salmoria]. - Fixed background colors in Great Swordsman [Jarek Parchanski]. - Fixed big sprites in Tokio, and unified it with Bubble Bobble [Nicola Salmoria]. - Fixed colors in Birdie King 2 [Zsolt Vasvari]. - Fixed foreground transparency in Pac-Land round 19 [Nicola Salmoria]. - Fixed gaps in the start/finish line in Neo Drift Out [Nicola Salmoria]. - Fixed Heiankyo Alien colors [Zsolt Vasvari]. - Fixed missing background behind the three towers in Metal Slug level 1 [Nicola Salmoria]. - Fixed missing item at the bottom of the screen in Tower of Druaga [Nicola Salmoria]. - Fixed missing line in the tank's shot in Metal Slug intro [Nicola Salmoria]. - Fixed NeoGeo palette - it's 5 bits per gun, not 4 [Nicola Salmoria]. - Fixed Psychic 5 and Toki title screens [Jarek Parchanski]. - Fixed sprite colors in Euro League [Nicola Salmoria]. - Fixed sprite flipping in Jack the Giant Killer end sequence [Brad Oliver]. - Fixed sprite glitches in Jail Break and Iron Horse [Nicola Salmoria]. - Fixed sprites disappearing abruptly in TMNT end of game credits [Nicola Salmoria]. - Fixed the Galaxian-style starfield. Believe it or not, it had been broken since day 1 [Nicola Salmoria]. - Fixed the green and white flags in Championship Sprint / Super Sprint, and maybe other Atari System 2 sprites as well [Nicola Salmoria]. - Fixed the spider gfx, and sky color, in Rainbow Islands [Mike Coates]. - Fixed the sprite/playfield and playfield/playfield priorities in Bad Dudes / Dragon Ninja and Sly Spy [Bryan McPhail]. - Fixed the Swimmer side panel background color [Gary Walton]. - Fixed the title screen in P.O.W [Bryan McPhail]. - Improved row scrolling in Street Fighter 2, plus several other fixes to the CPS1 games [Paul Leaman]. - Improved Star Fire [Olivier Galibert]. - Kludged in a fix for char/sprite priority in Traverse USA [Nicola Salmoria]. - Proper support of the playfield/sprite priority and palette system in Return of the Jedi [Nicola Salmoria]. - Several fixes and improvements to D-Day [Zsolt Vasvari]. These drivers have new or improved SOUND: ----------------------------------------- - Added ADPCM samples to Mad Gear [Bryan McPhail]. - Added PCM samples to Ninja Kid II [Jarek Parchanski]. - Added support for the 7751 sound chip in Monster Bash. Two samples are still needed (discrete circuits) [Mike Balfour]. - Completed sound support in TMNT [Howie Cohen]. - Emulated speech in Sinistar. Samples are no longer used [Alex Pasadyn]. - Emulated the death sound in Mario Bros, the sample is no longer used [Brian Stern]. - Fixed shoot sound in Juno First [Nicola Salmoria]. - Fixed sound in LED Storm / Mad Gear [Jarek Burczynski]. - Fixed sound in WBML [Karl Stenerud]. - Fixed tune in Phoenix [Richard Davies]. - Full sound in Sly Spy, Midnight Resistance, Dark Seal [Bryan McPhail]. - Good progress in sound emulation of the Exidy games (Venture, Pepper 2, etc.) [Dan Boris]. - Implemented the RC filters in early Konami games (Time Pilot, Pooyan, etc.) [Zsolt Vasvari]. - Improved Nemesis/Gradius/Twinbee/Salamander [Elestir]. - Major improvements to Atari sound (e.g. speech in Toobin') [Aaron Giles]. - New sample support in Tac/Scan [Jim Hernandez]. - Samples support in Cosmic Guerilla [Mike Coates]. - Sound fade timer ports in the CPS1 games (see Willow's Test mode for an example) [Paul Leaman]. - Sound in Demolition Derby [Bret Wallace]. - Sound in Ghost Busters [Bryan McPhail]. - Sound in Great Swordsman, fixed ADPCM playback in Great Swordsman and Gladiator [Tatsuyuki Satoh]. - Sound in Pac-Land [Ernesto Corvi]. - Sound in Psycho-Nics Oscar [Nicola Salmoria]. - Sound in Rainbow Islands [Mike Coates]. - Sound in The Main Event [Nicola Salmoria]. - Support for Eliminator 2/4 player samples and additional sounds for Zektor [Jim Hernandez]. - uPD7759 support in Golden Axe, Shinobi, Passshtb, Alien Syndrome, Altered Beast [Howie Cohen]. Other drivers changes: ---------------------- - "kbmame" multi-button key equivalents for the NeoGeo games. They are only available if cheats are enabled [Nicola Salmoria]. - Added dip switches to the Atari System 2 games [Nicola Salmoria]. - Added rotary control support to Top Gunner. This works in topgunbl *only* - the gun turret cannot be rotated in jackal and topgunr, those games don't support the rotary joystick [Karl Stenerud]. - Added scroll to Pinball Action when you push button 4, but I'm not sure it's correct [Nicola Salmoria]. - Analog joystick support in Sinistar and Blaster [Nicola Salmoria]. - Drastically reduced load times of the larger NeoGeo games [Nicola Salmoria]. - Emulated the protection (TMS32010) in Twin Cobra, which is now fully playable [Quench]. - Emulated the protection in Hippodrome, which is now working 100% [Byan McPhail]. - Emulated the protection in Jump Bug (Rock-ola). Some ROM splitup too, and fixed colors [Zsolt Vasvari]. - Emulated the protection in Knights of the Round and Carrier Air Wing [Paul Leaman]. - Emulated the protection in Seicross, Radical Radial, Frisky Tom [Nicola Salmoria]. - Emulated the protection in Sly Spy [Bryan McPhail]. - Fixed 1 player start button not working on level 31 of Tower of Druaga [Nicola Salmoria]. - Fixed all known problems in Xain'd Sleena [Nicola Salmoria]. - Fixed controls in 720o [Nicola Salmoria]. - Fixed decryption in Treasure Hunt [Zsolt Vasvari]. - Fixed later levels in Arkanoid (US) [Nicola Salmoria]. - Fixed speed in Oscar [Bryan McPhail]. - Fixed the protection in Frisky Tom [Andrew Prime]. - Fixed the slapstic emulation in Gauntlet, Gauntlet II, Xybots, Empire Strikes Back. Improved Rampart, but still not 100% [Ernesto Corvi, Nicola Salmoria]. - Fixed two players games in Phoenix, and the protection in Pleiads (which made game resets not work) [Zsolt Vasvari]. - Hacked the protection in Super Sidekicks [Battlepriest]. - Improved Birdie King 2 which is now playable [Zsolt Vasvari]. - Incresed the horizontal resolution for NeoGeo to 320. This looks strange with some games, but it is definitely the correct value as I verified it on the real thing. Games like Puzzle Bobble and Baseball Stars use the extra area, while most of the other games draw just two bars in there. If a game looks odd, adjust your monitor to send the extra area offscreen [Nicola Salmoria]. - Lots of improvements in the Atari drivers [Aaron Giles]. - Memory card support in the NeoGeo driver. Card data is saved to the MEMCARD directory (you have to create it). Use the TAB menu to access the memory card options [Fabrice Martinez]. - Properly emulated the 68705 protection in The Electric Yo-Yo, Kram, Space Dungeon, Zoo Keeper [Nicola Salmoria]. - Rainbow Islands is playable (using the C-Chip dump from Jumping) [Mike Coates]. - Removed the protection in Fatal Fury 2 [Eugenio De Renzi]. - Simulated the 8751 protection in F1 Dream [Eric Hustvedt]. - Support for the ORIGINAL version of Bubble Bobble, with 68705 code from a pirate board. Wizards *do* throw stones in this version [Nicola Salmoria]. - The hang in Tapper should REALLY be fixed this time [Juergen Buchmueller]. - Worked out the Super Punch Out protection [Tatsuyuki Satoh, Ernesto Corvi]. Changes to the main program: ---------------------------- - Support for the Namco System 1 sound system [Ernesto Corvi]. - [DOS] Widened the frameskip range. It now is 0-11, meaning the number of frames to skip out of 12. For example, if the game normally runs at 60 fps, "-frameskip 2" will make it run at 50 fps, and "-frameskip 6" at 30 fps. Also, if a frame takes more than the allotted time to display, the lost time can be recovered in the following frames. Moreover, improved the way audio streams are handled, so they stay more in sync with the video. There should never be any more audio breakups EVER (as long as your system can keep the game running at 100% speed). All of these changes together mean that it is now possible to run at much higher frame rates than before (if your system is fast enough) [Nicola Salmoria]. - [DOS] Implemented auto frameskip. It dynamically adjusts the frameskip setting to display the maximum possible frames without dropping below 100% speed. It is on by default; to turn it off, specify an explicit frameskip value, e.g. "-frameskip 0". Autoframeskip only works well if your machine is fast enough to run the game at 100% speed. If it isn't, you had better use a fixed frameskip. NOTE: you must delete mame.cfg (or manually change the line "frameskip = 0" to "frameskip = auto") for the auto frameskip to become the default [Nicola Salmoria]. - [DOS] "vmame" modes 320x480 and 400x600, which speed up scanlined VESA modes for some games and graphic cards which support these resolutions. Currently, these modes will not be autodetected, that is, the commandline options "-320x480" or "-400x600" have to be used [Nicola Salmoria, Michael Cunanan]. - [DOS] Joysticks are now selected by a symbolic name (e.g. "-joystick wingex" for Wingman Extreme) instead of a number. For the list of names, look into readme.txt. Numbers are still supported, but may not be in future releases. SNES gamepads on parallel ports are supported now, provided you have some additional hardware (the "official" Snespad-Support site is http://snespad.emulationworld.com) [Bernd Wiebelt]. - [DOS] For cosmetical reasons, added support for VESA3, which can be selected by putting "vesamode=vesa3" into mame.cfg. It is highly unlikely that you'll get any speed improvement [Bernd Wiebelt]. - [DOS] The key to change frameskip is now F9 instead of F8 [Nicola Salmoria]. - Improved palette compression with color fades [Nicola Salmoria]. - Improved the YM2610 emulation [Tatsuyuki Satoh]. - [DOS] Added a header to .inp files (same as MAME32). With the additional header, the user no longer needs to specify the game name when playing back .inp recordings [Mike Haaland]. - Added the ability to show the total number of colors on screen. This is useful during development to know if a game can be shrinked to 256 colors or it requires a 16-bit display. Press CTRL+F11 to toggle the display. This is only available in debug builds [Nicola Salmoria]. - [DOS] New option -volume n to set the startup volume. The volume is an attenuation in dB, e. g. "-volume -12" will start with a -12dB attenuation [Nicola Salmoria]. - The user interface is rotated by -rol and -ror [Nicola Salmoria]. - Improvements to the YM2610 timers, added an interface for external volume control [Tatsuyuki Satoh]. - Major changes to the whole CPU interface and cores [Juergen Buchmueller]. - new switch "-waitvsync /-nowaitvsync" (use it with -novsync); it waits for video sync before drawing the screen but uses the normal MAME throttling. This gives smoother display with scrolling game (like vsync), but works with video modes with higher refresh frequency, and is more win-friendly [Valerio Verrando]. - Added a "Game History" entry to the menu. Data is fetched from the file HISTORY.DAT. Thanks to Brian Deuel, Neil Bradley and the Retrocade dev team for allowing us to use Retrocade's game history database [John Butler]. - All new, completely rewritten debugger [Juergen Buchmueller]. - [DOS] Switches -noartwork and -nosamples to turn off artwork or sample loading [Valerio Verrando]. - [DOS] New tweaked 256x256 VGA modes (both scanlines and noscanlines) stretched to fill the screen. They are automatically used for horizontal games, and are preferable to the -stretch option since they are faster. You might have to adjust your monitor settings to make them properly centered and fill the screen (use the border displayed on startup as a guideline) [Valerio Verrando]. - Added menu option to configure the default joystick settings (like the default keys), [Nicola Salmoria]. - [DOS] Fixed severe slowdowns when 16-bit audio was selected [Nicola Salmoria]. - [DOS] The parameters which control tweaked VGA modes can be changed by editing mame.cfg, so they can be fine tuned to match each particular video card/monitor combination (these are non standard modes so they can't be made to work in the same way on all setups). If you want to try that (warning: only experienced users should try) make sure to read vgatweak.txt [Valerio Verrando]. - Added support for .wav samples. The custom .sam samples are no longer supported (you can use the sam2wav converter to convert them) [Aaron Giles]. - [DOS] Rough triple buffering support in VESA modes. You can turn it on with the -triplebuffer switch. It is not guaranteed to work well, but if it does, it offers results similar to -waitvsync but without the performance drop [Nicola Salmoria]. - A missing ROM for which no good dump is known to exist is no longer a fatal error - you can start the emulation even if the file is missing. Its space will be filled with random data. Of course the game will probably malfunction. The output of -verifyroms is slightly changed, it says "NO GOOD DUMP KNOWN" now and doesn't print 00000000 checksums [Nicola Salmoria]. - Improved VLM5030 emulation [Tatsuyuki Satoh]. - Fixed a couple of bugs in the 68000 emulation (both asm and C). They affected Power Spikes 2 and F1 Dream [Mike Coates]. - Improved uPD7759 ADPCM decode [Juergen Buchmueller]. - Moved mixer control out of streams.c and into the new mixer.c. Now the On Screen Display can be used to change the volume of any channel, not just ones handled by streams.c. The configuration is also saved on exit and is automatically reloaded the next time you start the game [Nicola Salmoria]. - The Pause key can be changed from the "Keys (defaults)" configuration menu [Nicola Salmoria]. - Added a palette viewer to the gfx viewer (F4) [Nicola Salmoria]. - [DOS] New video modes from CabMAME: low scanrate modes for connection to NTSC/PAL and arcade monitors. -monitor NNNN selects the monitor type: "standard" (default), "ntsc", "pal", "arcade". -centerx N and -centery N each take a signed value (-8 to 8 for centerx, -16 to 16 for centery) and let you shift the low scanrate modes around. -waitinterlace forces update of both odd and even fields of an interlaced display for each game loop [Brian Lewis]. - [DOS] Since there are now many tweaked VGA modes which may have compatibility problems with some video cards / monitors, they are now off by default. By default, VESA is used; the -vesa command line switch is no longer used. Instead, there is a -tweak switch which enables the VGA tweaked modes [Nicola Salmoria]. - [DOS] New tweaked VGA modes: 384x240 (for CPS1, Pang etc.), 384x256 (for Lode Runner etc.), 336x240 (for Gauntlet and other Atari games), 320x240 (for NeoGeo and others). They are used automatically, if your video card/monitor can't handle them, use -notweak (or try adjusting the parameters in mame.cfg if you know what you are doing) [Brian Lewis, Andrea Mazzoleni]. - [DOS] Removed the -nodouble command line option. Use -nostretch instead. If you are updating from an earlier beta, make sure to delete mame.cfg (or manually update it) otherwise stretch will be disabled [Nicola Salmoria]. - Changed the analog port handling to avoid problems with keyboard control (e.g. Arkanoid 2) [Nicola Salmoria]. - Simplified the error message when ROMs are missing. It now gives a list of all the missing ROMs, it doesn't stop at the first one [Nicola Salmoria]. Source changes: --------------- - New function cpu_getcurrentframe() which returns the number of the video frame currently being played. It can be used by drivers to control effects which spawn over multiple frames (e.g. blinking) without using static internal counter (which would require a custom interrupt handler to avoid problems when the game is paused) [Nicola Salmoria]. - Frame skipping is entirely handled by the OS dependant code. osd_skip_this_frame() no longer has the "recommend" parameter. Also, replaced osd_update_display() and osd_update_audio() with the single osd_update_video_and_audio(). IMPORTANT: osd_update_video_and_audio() is called *every frame* by the main core. It's its responsability to know whether the frame has to be skipped. osd_skip_this_frame() is used by the main core only to know if it can avoid calling drv->vh_update() [Nicola Salmoria]. - New Z80 emulator [Juergen Buchmueller]. - Fixed several bugs in the I86 emulator [Juergen Buchmueller]. - New CPU interrupt system. The functions cpu_set_irq_line() and cpu_set_nmi_line() can be used to precisely control the status of the CPU physical lines, instead of using the limited control granted by cpu_cause_interrupt() [Juergen Buchmueller]. - Konami 007232 sound chip emulator. This is used by TMNT [Hiromitsu Shioya]. - The driver input ports are now 16 bit. This allows for higher resolution analog inputs (Arkanoid 2). Also, the 68000 based games no longer have to read and mix two 8 bit ports to get a 16 bit value [Brad Oliver]. - Added a horrible dirty hack to allow opcode encryption on CPUs other than the main one. It's really ugly and needs a rewrite, but it's enough to get sound in Pocket Gal and The Real Ghostbusters [Nicola Salmoria]. - New 68000 C core [Karl Stenerud]. - Fixed some bugs in the I8039 emulation [Brian Stern]. - Z8000 emulator [Juergen Buchmueller]. - NEC uPD7759 emulation. This is used by TMNT, System 16, and others [Juergen Buchmueller, Mike Balfour, Howie Cohen]. - CVSD emulation, used for speech in Sinistar and in the 34010 games (Smash TV etc.) [Larry Bank, Alex Pasadyn]. - A couple of bug fixes in the 6808 core [Brad Oliver]. - TMS32010 emulator. This is used by Twin Cobra [Quench]. - New TileMap code. This makes the driver code cleaner and gives some performance boost in the video rendering [Phil Stroffolino]. - [DOS] Now compiled using Allegro 3.11. - Merged the old and new Namco sound subssytem, and added support for stereo output [Aaron Giles]. - H6280 emulator, used by several DECO games [Bryan McPhail]. - Redesigned the struct InputPort to use less space, and changed how analog inputs are defined. An additional benefit is that the keys for digital emulation of analog inputs are now defined in the Keys for this Game menu, together with all other keys, instead that in the Analog Controls menu. The Analog Controls menu remains to set the other parameters [Nicola Salmoria]. - Added default strings for dip switches. For example, instead of "Cabinet", use DEF_STR( Cabinet ). The constants are defined in inptport.h [Nicola Salmoria]. - Added support for up to 4 analog controllers (multiple trackballs are NOT supported under DOS, but multiple joysticks should work) [Brad Oliver]. - Major overhaul to the Atari games, and fixes to the 68000 and 6502 cores to get them going properly [Aaron Giles]. - OSD_FILETYPE_MEMCARD for memory cards [Fabrice Martinez]. - The zlib library is required to build MAME, it can be downloaded from http://www.cdrom.com/pub/infozip/zlib/. - PNG save support. save_screen_snapshot() may be called by osd_save_snapshot() to save a standardized shot. Under DOS, .png files go to the SNAP directory [Mathis Rosenhauer, Mike Haaland]. - struct GameSample no longer has a volume field (since it is not stored in .wav files), to replace that struct Samplesinterface has an additional volume field which affects all samples played [Nicola Salmoria]. - Replaced osd_adjust_sample() with osd_set_sample_freq() and osd_set_sample_volume(), and the OSD_PAN_xxx macros with MIXER_PAN_xxx. - Added support for slave mode to the MSM5205 emulation [Tatsuyuki Satoh]. - IMPORTANT FOR PORTERS: the "safety area" allocated by osd_new_bitmap() must now be 16 pixels instead of 8. This is required by the NeoGeo driver. - Added OSD_KEY_PRTSCR, OSD_KEY_LWIN, OSD_KEY_RWIN, OSD_KEY_MENU. Also moved OSD_KEY_RCONTROL, OSD_KEY_ALTGR, OSD_KEY_PAUSE.