0.27 1997/08/10 [#032 - Mirko Buffoni] -------------------------------------- REMEMBER: IF A GAME DOESN'T WORK, TRY DELETING THE .CFG FILE IN ITS DIRECTORY. There has been much talk about the License under which MAME is released. We had to drop the GPL because it was not applicable. See readme.txt for the new rules. New games supported: -------------------- (blueprnt) Blue Print [Nicola Salmoria] (bosco) Bosconian [Martin Scragg] (bublbobl) Bubble Bobble [Chris Moore] (cavenger) Cosmic Avenger [F. Kurokawa] (ckongpt2a)Crazy Kong Part II (set 2) [Mirko Buffoni] (digdug2) Dig Dug 2 [Aaron Giles] (eggs) Eggs [Mirko Buffoni] (elim2) Eliminator (2 Player) [Al Kossow, Brad Oliver] (exedexes) Exed Exes [Richard Davies] (galaganm) Galaga (Namco) [Mirko Buffoni] (locomotn) Loco-Motion [Mirko Buffoni] (pacnpal) Pac & Pal [Aaron Giles] (sbagman) Super Bagman [Jarek Burczynsky] (snapjack) Snap Jack [F. Kurokawa] (sonson) Son Son [Mirko Buffoni] (spacfury) Space Fury [Al Kossow, Brad Oliver] (startrek) Star Trek [Brad Oliver] (starwars) Star Wars [Al Kossow, Brad Oliver] (sxevious) Super Xevious [Mirko Buffoni, Tatsuyuki] (tacscan) Tac-Scan [Al Kossow, Brad Oliver] (warlord) Warlords [Lee Taylor, John Clegg] (xevious) Xevious (Atari/Namco copyright) [Mirko Buffoni, Tatsuyuki Satoh] (yard) 10 Yard Fight [Lee Taylor, John Clegg] (zektor) Zektor (revision B) [Al Kossow, Brad Oliver] New clones supported: -------------------- (asteroi2) Asteroids (alternate version) [Mirko Buffoni] (boblbobl) Bobble Bobble [Chris Moore] (bzone2) Battle Zone (alternate version) [Mirko Buffoni] (douni) Mr. Do vs. Unicorns [Mirko Buffoni] (gallag) Gallag [Mirko Buffoni] (gngcross) Ghosts'n Goblins (Cross) [Mirko Buffoni] (pacmanjp) Pac Man (Namco, alternate) [Aaron Giles] (panica) Space Panic (Alternate Version) [Mirko Buffoni] (xeviousn) Xevious (Namco copyright) [Mirko Buffoni, Tatsuyuki Satoh] Program changes: ----------------- - The Energy shields in Vanguard now work. Nibbler, Vanguard and Fantasy now run at half their previous speed. Is this the correct one? [Mirko Buffoni]. - Support for a GnG version with different graphics (cross instead of shield) [Mirko Buffoni]. - Thanks to the precious information on the Pokey random number generator, some problems with 'Centipede' (start with 18 credits) and 'Tempest' (hang after level 13) are now solved [Eric Smith, Hedley Rainnie, Sean Trowbridge, Mirko Buffoni]. - 'Carnival' now has 100% accurate colors [Virtu-Al Peter Clare, Mirko Buffoni]. - Provided a preliminary Xevious driver [Mirko Buffoni, Tatsuyuki Satoh]. - Provided drivers for the Sega vector games ('Eliminator', 'Space Fury', 'Star Trek', 'Tac-Scan' and 'Zektor'). Partial sound support (speech) is available through samples for some of them [Al Kossow, Brad Oliver]. - Provided better colors for Bagman and also added support for 'Super Bagman' [Jarek Burczynsky]. - Improved sound in 'Pleiads' [Andrew Scott]. - 'Rescue' now has accurate colors [Virtu-Al]. - Provided a 'Warlords' driver [Lee Taylor, John Clegg]. - Added a scroll routine used when the keyboard/joystick settings menu doesn't fit on the screen [Andrea Fregoli]. - Improved sound support in Galaxian and clones. The background noise is now emulated, while the shoot noise still requires a sample. These changes also affect other games using the same sound routines [Andrew Scott, Robert R. Anschuetz II]. - Freely available Rockulator, Andrew Scott was able to add sound support to 'Vanguard' [Brian Levine's]. - Improved again the Gorf driver. It's now (sort of) playable [Mike Coates]. - Provided preliminary '10 Yard Fight' support [Lee Taylor, John Clegg]. - Added 'Bosconian' support [Martin Scragg]. - Did a major rewrite of his 'Super Pac man' and 'Mappy' drivers [Aaron Giles]: * Support for 'Dig Dug 2' and 'Pac & Pal'. * High score save in all games. * 100% colors and sound samples (in 'Super Pac man' the siren clicks a bit, but neither I nor jrok can figure it out; the sample data *is* correct). * Better sound playback frequency (was missing some high bits!). * Arcade accurate frequency calculation (thanks to jrok!). * Removed all palette hacks; everything is clean. * Added loop optimizations for speed. * Video now properly displayed, including high priority characters. - Fixed sound and trackball support in Millipede' [John ButlBr, Aaron Giles]. - lmplemented 'Star Wars'. It's playable, but far from perfect. There's even some preliminary sound support (slows the game down a lot) [Steve Baines, Frank Palazzolo, Brad Oliver]. - Implemented a new option for vector games: "-vg". This adapts the Vector games to a given screen resolution (default 800x600) [Bernd Wiebelt]. - Lot of work on the Atari vector games [Brad Oliver & Bernd Wiebelt]: * Quite a few bugs hunted down. * Thanks to Aaron Giles, the Atari vector games do correct scaling now and we can do cycle counting on the vector CPU. Aaron also fixed the scaling in the Sega vektor games. * Tempest does no longer crash after level 13, has better colors. (colorram emulation) and is overall a bit faster. * Highscore saving for all games except Black Widow and Starwars * Trackball support for Tempest and Red Baron. Red Baron tries to calibrate its analog joystick at the start, so you'll have to move the "joystick" a bit before you can fly in all four directions. Thanks to baloo@kaiwan.com for his suggestions. * Mauro Minenna made Battlezone playable with one joystick. * Changes to game resolutions. On MSDOS, they now use tweaked VGA modes. *** REMEMBER TO DELETE EVERY *.CFG AND .HI FILE FOR VECTOR GAMES, OTHERWISETHE GAMES MIGHT NOT WORK CORRECTLY *** - Added partial sound support (thru samples) to the 'Carnival' driver [Mike Coates]. - Added 'Bubble Bobble" support [Chris Moore]. - Added 'Son Son' support (dedicated to Roberto Ventura! ;) [Mirko Buffoni]. - Added preliminary 'Exed Exes' support. Thanks to Paul Swan, it has 100% accurate colors. To do: find where tile RAM is located and how it works, and whether banked ROMs contain code or only data. The structure of this game is similar to the other Capcom games [Richard Davies]. - Added Starforce sound emulation [Mirko Buffoni, Tatsuyuki Satoh]. - Tidied up the 'WOW' drivers, added definable keys to most games, and joystick & 2 player support to 'Seawolf II' [Mike Coates]. - Added hiscore saving support to all Gottlieb drivers [Fabrice Frances]. - Included trackball support to 'Missile Command' [Ray Giarratana]. - Added support for 'Mr'Do vs Unicorns' (earlier version of 'Do's Castle'). Thanks to Lee Taylor for info). - Sound support in Tutankham. - Elevator action sound is perfect now. - Improvements in Zaxxon colors by Marc Vergoosen. - Jarek Burczynski changed showcharset() in usrintrf.c. Now you can use PGUP and PGDN to scroll through a charset which doesn't fit in the screen. Source changes: ---------------- - Wrote the new sndhrdw/pokyintf.c file. It handles most of the pokey interface to pokey.c. Rather than call milliped_sh_start() or whatever, call pokeyx_sh_start(), where x is the number of pokeys. It will keep track of the pokey count and use the appropriate clipping. I'm not sure 3 pokeys is a possible combination so there is no such pokey3_sh_start() routine [Brad Oliver]. - Ported MAME to Win32. It compiles from the same source tree as the DOS version; to compile using visual c++ 5, just do nmake -fmakefile.w32 To build mame32.exe, you also need the SEAL audio library for win32 [Christopher Kirmse]. - Changes in SN76496 emulation (added SN76496UpdateB function to emulate 2 chips on 8 channel PCM sound cards), added Z80PIO and Z80CTC emulator, in COMMON.C, 'TRANSPARENCY_PEN' and 'TRANSPARENCY_COLOR' mode were speeded up (for X/Y dual scroll games) [Tatsuyuki Satoh]. - Added generic EAROM routinges for the Atari Vector games, they are in src/machine/atari.c and src/machine/atari.h [Mirko Buffoni]. - Sincerely hopes he fixed the BCD-emulation in the 6502 emulation. At least the authentic Tempest feeling (broken X/Y monitor) is gone, since the game now starts without pressing Fire [Bernd Wiebelt]. Program (changes were done by Nicola Salmoria): ----------------------------------------------- - 'Crystal Castles' now has accurate colors and load/save of high score and settings. - You can now turn off speed throttling (F10) even on games which use audio streaming (i.e. all the ones with 8910 or Pokey sound chips). - 'Loco-Motion' support. - 'Blue Print" support. - Thanks to F. Kurokawa, preliminary 'Snap Jack' and 'Cosmic Avenger' support. They run on the 'Lady Bug' driver. - Fixes to the audio code which should fix crashes on some games and compatibility problems with GUS and AWE 32. However let me stress once again that if you have an AWE 32 you should use the plain SoundBlaster driver. The AWE 32 driver sounds NOTHING like the original (and is slower). - In 'Galaga', star scroll speed in levels > 32 should be correct now. - Pressing ESC in all menus returns to pthe previous menu instead of quitting. - Changed the 8910 sound chip emulation interface to allow updates more frequent than 60 per second. I also increased the sampling frequency to 44.1kHz. These changes provide dramatic improvements in sound quality, which you can appreciate in e.g. 'Gyruss' and 'Pooyan'. The price to pay is slower execution. To make things worse, I had to (hopefully temporarily) remove some optimizations, so the above games will probably not run as well as before on slower systems. - 'Donkey Kong' has better colors. Are they entirely accurate? - Preliminary driver for 'Eggs'. - 'Popeye' runs at the correct speed of 30 fps. - Increased the maximum number of digital audio channels from 8 to 16, so there are no more missing voices in the Mr. Do! games ('Castle', 'Unicorns', 'Wild Ride', 'Run Run', and 'Kick Rider'). - Thanks to Gary Walton, speed in 'Pengo' should now be closer to the original. - The unencrypted versions of Penta and "pengopop" are no longer supported because they are just hacks, not coming from a real board. The *original*, *encrypted* versions are now supported instead. They are exactly the same, the only difference is that they are encrypted and come from real boards. The names now are: "pengo" original 'Pengo' with "PopCorn" music; "pengoa" alternate version (earlier) with different music and no slow screen draw and "penta" the bootleg called 'Penta' - 'Elevator Action', 'Jungle King' and 'Wild Western' now use the same video hardware driver (taito.c) - ROMs are checksummed before starting the emulation. If the checksum doesn't match, a warning message is printed on the screen (along with the expected checksums). Execution resumes after pressing Return. Not all drivers use this feature yet! - Some alternate ROM sets supported: ckonga, galaganm, gallag, bzone2, asteroi2, panica, pacmanjp. - Some ROM renaming here and there, just to annoy you ;-) - Lots of minor fixes and enhancements. - Exchanged the infamous two sprite banks in 'Moon Cresta'. Sources (changes were done by Nicola Salmoria): ----------------------------------------------- - EXTREMELY IMPORTANT: osd_obtain_pen() now doesn't return pens sequentially. This ensures that MSDOS driver writes are aware of the existence of Machine->pens[] and use it appropriately. Drivers which don't do this will have wrong colors. - Modified readinputport() to scan the keyboard only once per frame, and handle everything more efficiently. It is now MUCH faster than before - useful with games which continuously poll a port for VBlank. - generic_vh_start() now checks that videoram_size has been initialized and fails otherwise. - When using TRANSPARENCY_COLOR and TRANSPARENCY_THROUGH with drawgfx(), the argument must now be the pen code instead of the remapped pen number, e.g. instead of Machine->background_pen (= machine->pens[0]) you just specify 0. I also removed the background_pen field from Machine: use Machine->pens[0] instead. - The ROM_LOAD() macro now requires four parameters, the last one being the checksum. To quickly upgrade from previous sources you can be used (temporarily) ROM_OBSOLETELOAD(), however adding the checksum is easy (just do a cut & paste from the warning message) so it's better to put them in as soon as possible. - New macro ROM_RELOAD(), meaning to reload the previous ROM at a different address (useful with 6502 games which need reset/irq vectors at FFFx). - In common.c, new function printromlist(), used by loadroms() and mame.c. (-listroms). - Drivers are now allowed to modify the RAM and ROM pointers to implement bank switching. 'Bubble Bobble' uses this. Be careful: when using this feature, you cannot use the standard MRA_RAM and MWA_RAM memory hooks to access RAM. - InputPorts now can automatically handle VBlank bits. No more need to write custom code. 'Lady Bug', 'Carnival', 'Mysterious Stones', 'Naughty Boy' and 'Phoenix' use this feature. Many other drivers need to be updated to use it. MAKE SURE TO DELETE LADYBUG\LADYBUG.DSW AND LADYBUG\LADYBUG.CFG, OTHERWISE THE GAME WILL NOT WORK CORRECTLY. - New support functions in cpuintrf.c [Mirko Buffoni]: * cpu_getfcount(), which returns the number of CPU cycles till the end of the current video frame (as opposed to cpu_geticount(), which returns the number of CPU cycles till the next call of the interrupt handler) * cpu_getiloops(), which returns the number of times the interrupt handler will be called before the end of the video frame (useful in interrupt handlers). * cpu_gettotalcycles(), which returns the total number of CPU cycles passed since the CPU was reset. * ignore_interrupt(), companion to interrupt() and nmi_interrupt(). This allows interrupt handlers to be cpu-independant, avoiding use of CPU-specific interrupt indetifiers.