0.137 ----- IMPORTANT NOTE: As of this release of MAME, several important things about the system have changed. Please read the following items before attempting to compile this new version. 1. A new tool chain for Windows, based off of gcc 4.4.3 prerelease, is now REQUIRED. Go to http://mamedev.org/tools to get the new tools. The code included with 0.137 WILL NOT BUILD with the old tools. The new tool chain has support for building 64-bit MAME builds with gcc, as well as built-in DirectX headers, and C++ support, which was missing from the old tools. 2. Non-Unicode builds of Windows MAME are no longer supported. The options to turn this off in the makefile have been removed, and future changes are likely to solidify this requirement. If you are still (God forbid) running on Win9x, you will need the unicows.dll library to run MAME. Download unicows from Microsoft. 3. All code in MAME is now compiled as C++, plus there have been a few small changes that take advantage of the C++ language. For the most part, there is no effect on how drivers are written, except for some nicer accessors to devices and address spaces. Future improvements to take advantage of the C++ syntax will evolve slowly, and will be done internally. We are not interested in outside attempts to do this work for now. 4. The SDL OSD for MAME is now shipped as part of the main source package. SDL builds for Windows are now regularly built as part of the validation sequence for a new release. Thanks to R. Belmont, couriersud, and Olivier Galibert for their work on the SDL port over the years. MAMETesters Bugs Fixed ---------------------- - 03533: [Debugger] All 68020 cpu based drivers: 68020 disassembler bug: a 32-bit address displacement's upper 16-bit is desappear (R. Belmont) Source Changes -------------- snes.c: simplified drawing routines, added support for offset-per-tile, cleaned up the code [Fabio Priuli] H8/3334: add analog input ports [R. Belmont] snes.c: fixed remaining issues in hires modes [Fabio Priuli] snes.c: fixed serial joystick reads [Fabio Priuli] snes.c: slightly simplified palette handling [Fabio Priuli] Re-dumped oceanhun CROMs 5-16 as 64Mb [ANY] namcos23: Cleanups [O. Galibert] namcos23: Add dips [O. Galibert] snes.c: Added very preliminary driver_data class for snes based drivers (it only contains input-related items for the moment, because these are needed to add support for additional controller types in MESS) [Fabio Priuli] snes.c: Fixed Offset-per-tile graphics [jbo_85] snes.c: Fixed scrolling problems [Fabio Priuli] namcos23: More cleanups [O. Galibert] Implemented default EEPROMs to the following drivers [David Haywood] * deco_mlc.c * esd16.c * gijoe.c * konamigx.c * moo.c * mystwarr.c * rabbit.c * rungun.c * tmnt.c * vendetta.c * xexex.c Added support for the 'simple' rowscroll mode used by sams64_2 [David Haywood] Fixed Z80 DMA ready signal handling. [Curt Coder] namcos23 update: [R. Belmont, Guru] * Updated Guru Readme * More IRQ tests pass * Gunmen Wars I/O board runs and syncs * SH-2 shared RAM added for Gunmen Wars Implemented default EEPROMs to Bubble Memories, Lethal Enforcers and Puzzle Time [David Haywood] Implemented default EEPROMs for GTIClub, Hang Pilot, Asterix, X-Men and Polygonet Commanders [David Haywood] Fixed the texture ROM loading/order in Wave Shark. Textures look better now, and the ROM check passes [David Haywood] namcos23: pass C422 IRQ test [R. Belmont] Added ARDY/BRDY signal read handlers to Z80 PIO. [Curt Coder] Implemented 'key matrix' inputs in King Derby (1986 version) [Angelo Salese] namcos23 updates: [R. Belmont] * Preliminary SH-2 hookup for GMEN games. SH-2 boots and copies the loader to private RAM then jumps to it. Transfer protocol for main program not yet understood. * Final Furlong 2 has a GMEN board and camera; update it to use that subdriver. Implemented sound to King Derby (1986 version) [Angelo Salese] Implemented coins to King Derby (1986 version), game can be considered as working right now [Angelo Salese] namcos23 updates: [R. Belmont] * Hooked up start/coin/buttons for Gorgon * Fixed Panic Park crash * Enabled I/O board for timecrs2c so it can coin up * Cleanup SDL: fix Fortify-reported stack smash [Belegdol] New driver for Five Clown, from IGS. This is a dual 6502 system with CRT controller, AY8910 and OKI M6295. Main program, graphics and sound samples are encrypted. [Roberto Fresca, Grull Osgo] * Hooked both 6502 CPU's. * Hooked the M6845 CRT. * Decrypted main program and bulk GFX. * Decoded GFX and color PROM. * Hooked both PIA's 6821. * Worked inputs from the scratch. * Hooked DIP Switches banks 2 & 4. * Hooked proper interrupts for audio CPU. * Hooked the AY8910 latches... * Hooked the OKI6295. * Hooked DIP switches ports $C400 & $CC00. * Found the sound samples decryption algorithm. * Added NVRAM support. * Added a complete PCB layout. * Added game notes. * Added technical notes. z80sio: Added register access functions to prevent trampoline functions [Dirk Best] Fixed debugger memdump command [Robbbert] Improvements to the unkch1/4 sets [David Haywood] Decrypted the color prom in King Derby (1986 version) [Angelo Salese] Made device->tag and devconfig->tag into private member variables (m_tag). Added inline tag() function to return a const char * version. Updated callers to use this instead of directly accessing tag.cstr() which was awkward. [Aaron Giles] snes.c: Fixed OAM overflow [jbo_85, Fabio Priuli] Improvements to funworld.c driver. [Roberto Fresca] * Added external default NVRAM support to the following games: bottle10, bottl10b, elephfam, elephfmb, jollycrd, jolyc3x3, jolyccra, jolyccrb, jolycdev, jolycdib, jolycdit, jolyjokr, jolyjokra, jolyjokrb, lluck3x3, lluck4x1, magicrd2, pool10, pool10b, pool10c, pool10d, potgame, royalcrd, royalcdb, sjcd2kx3, tortufam, vegasfst, vegasfte and vegasslw. * Changed default settings for some games, now that NVRAM is loaded externally. Confirmed and hooked up i/o ports in Magical Tonic / Odds, doesn't work due of nested NMI [Angelo Salese] snes.c: refactored joypad inputs to be consistent with other input devices (used in MESS) [Fabio Priuli] Implemented NMI enable flag in Lucky 8 Lines and Magical Odds, fixes logic quirks in the latter [Angelo Salese] Improvements to Magical Odds graphics [David Haywood] Written a per-pixel function for the irq system in the ST-V driver, disabled by default [Angelo Salese] vimana, vimanan, vimana1 (toaplan1.c driver) [stephh] : * Fixed Dip Switches and Inputs (after verification of the M68000 code) * Improved MCU emulation to correctly handle coinage based on Dip Switches settings and Territory Jumper Implemented sound NMI enable flag to the Munch Mobile driver [Angelo Salese] m680x0: show FPU registers in the debugger for 030+ [R. Belmont] 680x0: Improve disassembly for various FMOVE forms [R. Belmont] Slightly fixed interrupt handling and added SBIC and MUL opcodes to the Atmel AVR8 core. [Harmony] Added FJMP/JMPF opcode to the SunPlus u'nSP core. [Segher, Harmony] Performed an initial code cleanup pass on the N64 rendering code to make use of booleans and inline variable instantiation, and removed a number of unused variables that were exposed as a result of the latter. [Harmony] New games added or promoted from NOT_WORKING status --------------------------------------------------- Five Clown (english, set 1) [Roberto Fresca, Grull Osgo] Five Clown (english, set 2) [Roberto Fresca, Grull Osgo] Five Clown (spanish hack) [Roberto Fresca, Grull Osgo] Magical Odds [David Haywood, Angelo Salese] New clones added ---------------- Dinosaur Hunter (Chinese bootleg of Cadillacs and Dinosaurs) [Anonymous] (not working) Biaofeng Zhanjing (Chinese bootleg of The Punisher) [Anonymous] Cherry Master I (E-Z Spin bootleg / hack) [William Ostronic] Lethal Enforcers II: The Western (ver JAA) [David Haywood] Fantastic Journey (ver AAA) [David Haywood, Tirino73] Smash T.V. (rev 3.01) [Brian Troha, The Dumping Union] New games marked as GAME_NOT_WORKING ------------------------------------ Joker Master / Poker Master [William Ostronic] (incomplete + encrypted) Gunmen Wars [Guru] 0.136u4 ------- MAMETesters Bugs Fixed ---------------------- - 03268: [Save/Restore] All sets in galaga.c: Problem with Savestates (couriersud) - 03698: [Compiling] NOWERROR=1 casues -fno-strict-aliasing to be dropped (couriersud) - 03749: [Crash/Freeze] All sets in micro3d.c : [debug] Assert in debug build (couriersud) - 03746: [Core] [debug] Overloaded C++ operator new/operator delete is too restrictive (couriersud) - 03748: [Documentation] ncv1, ncv2 and clones: Namco 'Classics' Collection description incorrect (Tafoid) - 03634: [Graphics] quantum: Draws wrong lines (MathisRosenhauer) - 03739: [Crash/Freeze] backgamn: Access Violation after OK (Fabio Priuli) - 03249: [Misc.] motoxgo, timecrs2b: H8/3xx: Unknown opcode (PC=2) 100 (R. Belmont) - 03740: [Crash/Freeze] atomicp, snapper: Duplicate save state entry (Tafoid) - 03699: [Crash/Freeze] masterw: Game freezes (Fabio Priuli) - 03697: [Misc.] bigrun: Missing gfx and terrible music (Mamesick) - 02960: [Graphics] speglsht: Regression in Super Eagle Shot, looping broken attract mode (Mamesick) - 03034: [DIP/Input] scross, scrossu: Control Issues (M.A.S.H.) - 03731: [DIP/Input] ixion: Unable to rotate cannon clockwise (M.A.S.H.) - 03727: [Misc.] spiders: Source typo in discrete sound system (M.A.S.H.) Source Changes -------------- Removed window config from video_config [couriersud] Mapped player 2 inputs and buttons 4-6 in Mortal Kombat 3 (bootleg of Megadrive version) [Mariusz Wojcieszek]. {megadriv} Fixed compile by removing "static" [Miodrag Milanovic] Moved global new/delete operators into inlines in emualloc.h to avoid link errors with certain architectures. [couriersud] Some minor cleanup/normalizing of emualloc in general. [Aaron Giles] namcops2 updates [Guru] * Moved Kinnikuman Muscle Grand Prix and Taiko No Tatsujin 9 to System 256 * Added DVD images for netchu02, soulcl2a, tekken4b, tekken51, sukuinuf, and soulclb3 Fixed TI PSG (sn76489 and friends) noise and square-wave period to be maximum length when period register is set to 0. Fixed white-noise phase/XOR issue: got rid of noise XOR/XNOR select, as all chips seem to use XOR. [Lord Nightmare, Michael Zapf, PlgDavid] Preliminary DIP coverage (lives/coinage/test mode) and Player 2 control fix for unclepoo. [Tafoid] Implemented Z80-DMA interrupts. [Curt Coder] Fixed a bug in emu/sound/disc_mth.c. This affected spiders.c fire sound. [MASH] Minor fix to sn76489: sn76489 wasn't using the correct noise taps (now matches sn94624, still need to test a real chip) Removed a piece of useless code, and fixed a comment. [Lord Nightmare] ui.c,ui.h,windows/input.c: [Miodrag Milanovic] * removed ui_use_new_ui check used by MESS code * moved ui_mess_handler_ingame call in proper place, so device UI callbacks works again * removed toggle of menu bar (MESS related) info.c: Moved print_game_categories into info.c, since it can be used by any driver anyway. [Miodrag Milanovic] Fresh driver notes added for unclepoo based analysis of the Z80 code. [Stephh] k051649.c: fixed bogus for loop in device reset [Fabio Priuli] z80ctc: Fixed Z80CTC read handler [Tim Schuerewegen] Complete rewrite of the Z80-PIO implementation. The handshaking signals are now more accurately emulated. As a result, the Merit Megatouch games are no longer working since they relied on the earlier incorrect behavior. [Curt Coder] attckufo: Imported MOS6560 device emulation from MESS and removed the existent custom audio/video emulation [Fabio Priuli] Corrected visible area and timer speeds to make the fix up some audio/video problems. [Angelo Salese] Preliminary merging of hexa.c into the arkanoid.c driver. [Tafoid] meritm.c: Added scanline timer-based vblank interrupt to work around the broken V9938 interrupts. Megatouch games are now working again. [Curt Coder] zaxxon.c: Fixed Ixion (prototype) inputs [MASH] i386: Small fix for the i386 core, correcting the LLDT instruction. This fix sets up the LDTR base and limit values correctly, fixing use of the LDT. [Barry Rodewald] Implemented proper irq ack to the deniam.c driver [Angelo Salese] Implemented irq ack to Big 10 [Angelo Salese] Implemented irq ack to Aeroboto / Formation Z [Angelo Salese] segas32.c: Fixed Stadium Cross inputs [MASH] hexa: merged the remaining code into arkanoid.c [Fabio Priuli] skyfox.c: added driver data struct and save states [Fabio Priuli] Hooked up bare bones z180 communication CPU in Cadash [Angelo Salese] Make mips register names accessible in the debugger expressions [Olivier Galibert] Some improvements to Lucky Girl (New HW) [Angelo Salese] Fixed a bug in debugint.c: Actually make Del and BS delete the last character. [sz72] Added driver_data struct and save states to the following drivers: lkage.c, lockon.c & lsasquad.c. [Fabio Priuli] Added save states to liberate.c. [Fabio Priuli] Moved ins8154 emulation from MESS to MAME, needed by future drivers. [Dirk Best] H8: fix stack trashing when simultaneous IRQ sources asserted [R. Belmont] namcos23 update: [R. Belmont, Olivier Galibert] * motoxgo and timecrs2 are now able to sync up and communicate with the emulated JVS I/O board * Fixed all games to run VBL toggle * Documented data and point ROM checks for future use es5506.c: added save state to both ES5505 and ES5506 [Fabio Priuli] added driver_data struct and save states to the following drivers: attckufo.c, m79amb.c, macrossp.c, marinedt.c, markham.c, mayumi.c and mcatadv.c. [Fabio Priuli] Added driver_data struct and save states to the following drivers: madmotor.c, mazerbla.c, mikie.c, mjsister.c, mogura.c, mole.c and momoko.c. [Fabio Priuli] namcos23: Panic Park uses the motoxgo I/O board, now it syncs too [R. Belmont] namcos23 update: improved "Gorgon" h/w support [R. Belmont] Added driver_data struct and save states to the following drivers: megazone.c, meijinsn.c and mermaid.c. [Fabio Priuli] namcos23: improved documentation, fixed a few POST fails [R. Belmont] exerion, exeriont, exerionb (exerion.c driver) : [stephh] * Fixed Dip Switches and Inputs (after verification of the Z80 code) namcos23 updates: [R. Belmont] * Documented clocks and syncs measured by Guru * Added Gorgon JVS I/O board. Final Furlong now gets farther H8: add bild and bist opcodes [R. Belmont] namcos23: added nvram for Gorgon. finlflng gets farther. [R. Belmont] ins8154: Updated to use devcb calls, cleaned up. [Dirk Best] Namco Super System 23: Add a whole bunch of ram, chips and data roms mappings [O. Galibert, R. Belmont] Changed Tecmo World Cup 90 main z80 cpus to 8mhz and vsync to 59.17hz / Hard Head sound z80 to 3mhz and vsync to 59.10hz to match original PCB readings. [Corrado Tomaselli] Fixed inverted buttons 1 and 2 on f1gp, f1gp2 and Super Formula. They are Jamma standards boards: brake button is wired to pin 22 and acceleration button to pin 23 which are respectively button 1 and 2 in a jamma standard pinout. [Corrado Tomaselli] Added driver_data struct and save states to the following drivers: matmania.c, metlclsh.c, mexico86.c, mouser.c, mrflea.c, mrjong.c, munchmo.c and mwarr.c. [Fabio Priuli] Added driver_data struct to the following drivers: mgolf.c, minivadr.c, mosaic.c and mrdo.c. [Fabio Priuli] Enabled save states to mugsmash.c (everything was already saved) [Fabio Priuli] hng64: Added sub-page texture indexing. Fixes many texture lookups in roadedge and xrally. [Andrew Gardner] Added driver_data struct and save states to the following drivers: news.c, nightgal.c and nycaptor.c. [Fabio Priuli] Added driver_data struct to the following drivers: nitedrvr.c and nmg5.c. [Fabio Priuli] enabled save flag in othunder.c (everything is properly saved, but it seems I forgot about this driver when I device-fied Taito video chips) [Fabio Priuli] pic8259: replaced pic8259_set_irq_line with pic8259_irX_w write line handlers. [Dirk Best] pic8259: updated to use devcb calls. [Dirk Best] Improved gfxs in Lucky Girl (New version) [David Haywood] Implemented device version of the deco16ic tilemap chip [Fabio Priuli] Converted backfire.c, boogwing.c, dietgo.c, mirage.c, pktgaldx.c, simpl156.c, supbtime.c, tumblep.c to use the device-fied video chips [Fabio Priuli] Added driver data struct and save states to the following drivers: dietgo.c, mirage.c, pktgaldx.c, supbtime.c and tumblep.c [Fabio Priuli] hng64 : More accurately emulated intrinsic camera matrix. [Andrew Gardner] Changed all driver_data structs into classes with a simple constructor and a static allocation function. [Aaron Giles] Changed MDRV_DRIVER_DATA to reference driver_data::alloc instead of just providing a size. This function is called to allocate the driver data. This allows objects to be embedded in the state data and be properly initialized. [Aaron Giles] Moved driver data allocation after device list construction so that devices can be found when the driver data is constructed. [Aaron Giles] wardner, wardnerj, pyros (wardner.c driver) : [stephh] * Fixed Dip Switches and Inputs (after verification of the Z80 code) Converted cbuster.c, cninja.c, dassault.c, funkyjet.c, rohga.c and vaportra.c to use device versions of the deco16 video chips [Fabio Priuli] Made deco32.c independent of deco16ic.c (it only needed a drawing routine) and removed deco16ic.c now that it is not needed anymore [Fabio Priuli] avgdvg: Fixed mametesters bug 03634. Reduced flickering in Tempest/Quantum. [Mathis Rosenhauer] pit8253: Updated to use devcb calls, cleanups. [Dirk Bst] Renamed decodev->deco16ic [Fabio Priuli] Added driver data class to funkyjet.c [Fabio Priuli] Added driver data class and save states to vaportra.c and tumbleb.c [Fabio Priuli] Added driver_data class and save states to the following drivers: backfire.c, boogwing.c, cbuster.c, cninja.c, dassault.c, dblewing.c, deco156.c, rohga.c, simpl156.c [Fabio Priuli] twincobr, twincobru, ktiger, gulfwar2 (twincobr.c driver) : [stephh] * Fixed Dip Switches and Inputs (after verification of the M68000 and Z80 code) fshark, skyshark, hishouza, fsharkbt (twincobr.c driver) : [stephh] * Fixed Dip Switches and Inputs (after verification of the M68000 code) Corrected default assignment of F10 as the default throttle on/off key for MAME. The #ifdef MESS is needed here due to it's unique old/new UI setup. [Miodrag Milanovic] Naomi updates: [R. Belmont, David Haywood, Andreas Naive, Deunan Knute, Guru, ANY] * Fix ROM mirroring in gram2000 and friends * Preliminary hookup of live decryption. Decryption + decompression is not yet supported so some games still load trojaned data instead. naomi: Fixed decrypt method 2, added many more game keys [Deunan Knute, R. Belmont] namcos23.c: Add comments about the irq testing code [O. Galibert] Tidied up includes in a number of files in src/osd/sdl. [couriersud] Hook up vblank and just enough controls to pass error screens [O. Galibert] namcos23: get Gorgon games out of service mode, fix finlflng sound ROM loading [R. Belmont] namcos23: comment the probable dips a tad better [O. Galibert] Added driver_data class and save states to the following drivers: ohmygod.c, ojankohs.c and olibochu.c. [Fabio Priuli] Added driver_data class and save states to the following drivers: oneshot.c, onetwo.c, orbit.c, othello.c and othldrby.c. [Fabio Priuli] Added driver_data class to the following drivers: nemesis.c and nyny.c [Fabio Priuli] Improvements to Funworld driver. [Roberto Fresca] * Fixed Jolly Joker graphics and colors. * Changed Jolly Joker description to Jolly Joker (98bet). * Added a new croatian set of Jolly Joker with maximum bet = 40. * Moved the hardware description and tech notes to the ROM_LOAD section. * Added a external default NVRAM for Jolly Card Professional 2.0. * Updated technical notes. Implemented proper BIOS/Cart ROM bankswitch in the MACS driver, this improves program logic in Kisekae Mahjong [Angelo Salese] Removed the coin latch kludge in the MACS driver [Angelo Salese] snes.c: minor refactorization [Fabio Priuli] namcos23: fix the data rom mappings [O. Galibert] rallybik, truxton (toaplan1.c driver) [stephh]: * Fixed Dip Switches and Inputs (after verification of the M68000 and Z80 code) snes.c: temporarily reverted implementation of mult/div through timers since it breaks some SNES games on the MESS side [Fabio Priuli] namcos23: timecrs2c reaches the test mode [O. Galibert] Fixed MT3698 (NOWERROR=1 casues -fno-strict-aliasing to be dropped). [couriersud] Fixed save state support in custom namco devices (50,51,53) and galaga.c. Also resolves MT03268: All sets in galaga.c: Problem with Savestates. [couriersud] naomi: convert GD-ROM games to use real PIC dumps [David Haywood] Add MAME-ified version of SoftFloat library [John R. Hauser] Merged kingdrby.c and cowrace.c drivers [Angelo Salese] namcos23: working inputs for TC2 test mode [R. Belmont] namcos23: Document gun I/O boards [Guru] hng64 : An initial implementation of hardware lighting. [Andrew Gardner] zerowing, zerowing2 (toaplan1.c driver) [stephh] : * Fixed Dip Switches and Inputs (after verification of the M68000 and Z80 code) namcos23: fix Time Crisis 2 coin input [R. Belmont] New games added or promoted from NOT_WORKING status --------------------------------------------------- Mortal Kombat 3 (bootleg of Megadrive version) [Mariusz Wojcieszek, Patrick McCarron, Smitdogg, The Dumping Union] Bug Fever (5 sets) [Brian Troha, Dumping Union] Uncle Poo [Team Europe, Dumping Union, Rene Single, David Haywood, Angelo Salese] Champion Number [f205v, David Haywood, Angelo Salese] New clones added ---------------- Pit Fighter (rev 9) [B. Sparks, Smitdogg, The Dumping Union] Time Crisis 2 (TSS4 Ver.A, Super System 23) [Guru] Pushman (Top Tronic license) [MrGoodwraith, Ren?\195?\169 Single, Smitdogg, The Dumping Union] Blades of Steel (Version L) [R. Mucciarelli, Phil Bennett, Smitdogg, The Dumping Union] Touchmaster 4000 (v6.03 Standard) [jeremymtc, Brian Troha, Smitdogg, The Dumping Union] Alien Invasion [Andrew Welburn, Brian Troha, The Dumping Union] Soul Calibur (SOC14/VER.B) [Guru] Jolly Joker (40bet, croatian hack) [Roberto Fresca, Team Europe] Touchmaster (v2.2-01 Standard) [S. Austin, Smitdogg, The Dumping Union] Smash [Trevor Brown] X-Men: Children of the Atom (Japan 950105) [Razoola] Maya (set 1) [Team Europe, Dumping Union, Rene Single, David Haywood] King Derby (Taiwan bootleg) [Team Europe, Dumping Union] (not working) Cherry Master (Watermelon bootleg / hack) [William Ostronic] Cherry Master (Fun USA v2.5 bootleg / hack) [William Ostronic] Aracnis (bootleg of Scorpion on Moon Cresta hardware) [f205v] The Pit (bootleg on Moon Quasar hardware) [Andrew Welburn, David Haywood] Safari (set 2, bootleg?) [f205v] Moon Cresta (Nichibutsu UK) [Andrew Welburn] Armed Police Batrider (Taiwan Revision A) [Anonymous] New games marked as GAME_NOT_WORKING ------------------------------------ L.A. Machineguns [ANY] The Ocean Hunter [ANY] Royal Gum [Siftware] 0.136u3 ------- MAMETesters Bugs Fixed ---------------------- - 03724: [Speed] mrdo: Incorrect XTALs cause for problems with refresh rate and game speed. (Tafoid) - 03706: [Sound] lastday, gulfstrm: Audio Regression (M.A.S.H.) - 03704: [Sound] evilston: Missing sound (M.A.S.H.) - 00993: [Crash/Freeze] sharrier: [debug] Crashes when a specific sample is being played during gameplay. (Phil Bennett) - 03692: [Crash/Freeze] kurikint: Service Switch error (M.A.S.H.) Source Changes -------------- Fixed Dip Switches and Inputs (after verification of the Z80 code) for 'scramblb', 'scramb2', 'bagmanmc', 'dkongjrm', 'rockclim' (also updated memory map for this last game). [stephh] am29k: fix PPC GCC compile error [R. Belmont] Added Sega ID# for newly added version of INDY 500 and correct the spelling of attract. [Brian Troha] minor information update for Viper 1 games in seibuspi.c. [Brian Troha] Fixed disassembly of PDP1,TX0 and APEXC [Robbbert] Fix immediate crash on startup of GTK debugger. [R. Belmont] namcos11: use real C76 BIOS for audio and I/O [R. Belmont, Olivier Galibert, Guru] Cleaned up comments refering to old driver names, and updated clone names in drivers from 0-K. [Tafoid] [APEXC] 1. Added pseudo PC register for the debugger, it will now highlight the next instruction to be executed. 2. Added "normal" addresses to disassembler output, so anyone can see the program flow. [Robbbert] Sega misc wip: [Fabio Priuli] - split dependences of system16 games from bootleg ones - moved some .h files to includes/ - removed some unneeded include - removed some dead code - added driver data struct to segahang.c, segaorun.c, segas16a.c, sega16b.c, segas18.c, segaxbd.c & segaybd.c - added save states to segas16a.c Fixed Dip Switches and Inputs (after verification of the Z80 code) for 'ozon1', 'ladybugg', 'vpool'. [stephh] Added driver data struct to system 16/18 bootlegs and removed most unused code. [Fabio Priuli] Implemented reels in Treasure Island (Subsino), same as goldstar.c [David Haywood] Converted Sega 315-5248, 315-5249 and 315-5250 custom ICs to be devices and updated drivers accordingly. [Fabio Priuli] [PDP1] Display the PC in hex as well as octal. [Robbbert] Converted hornet.c to use the Konami 037122 device and removed the old code. [Fabio Priuli] Converted gticlub.c, nwk-tr.c and zr107.c to use the Konami 001604 device and removed the old code. [Fabio Priuli] carjmbre.c - Added XTAL, corrected second z80 speed and added DIP LOCATIONS for driver. [Tafoid] Improvements to Treasure Island: [Roberto Fresca] - Added proper inputs. - Added coin/keyin/keyout/payout counters. - Limited the bet and coin pulses to avoid repeats and coin jams. - Added complete coinage and keyin DIP switches. - Added main game and double-up rates DIP switches. - Added minimum bet DIP switches. - Added maximum bet DIP switches. - Added main game and double-up limit DIP switches. - Added payout mode and auto take DIP switches. - Added DIP locations as seen in the settings mode. - Added demo sounds DIP switch. - Created proper button-lamps layout. - Added technical notes. - Some clean-ups... Dumped IC1 from Giant Gram 2000 [Joerg Hartenberger] Fixed bonus game gfxs in Treasure Island (Subsino) [Angelo Salese] Fix os2 auto-detect [KO Myung-Hun] Preliminary Panasonic MN10200 CPU core and Taito ZOOM ZSG-1 sound system [Olivier Galibert] Document FPGA-provided "ic1" data in gram2000 [Joerg Hartenberger] Implemented flip screen in Hanaroku [Angelo Salese] Fixed video emulation in Best League (World Cup version) [Angelo Salese] Fix DISTRO=gcc44-generic make shortcut to use gcc-4.4 properly (-V 4.4 does not work for linking) [couriersud] Minor changes for internal render debugger [couriersud] - ui_input_frame_update is now global - moved element_component from rendlay.c to rendlay.h - added ability to rendlay.c to define "container" components. These simply provide a render_container. Added DEBUG_FLAG_OSD_ENABLED to allow coexistence of debuggers going forward. Replaced all occurrences of OPTION_DEBUG in src/osd/* by checking machine->debug_flags. Replaced all occurrences of DEBUG_FLAG_ENABLED in src/osd/* by DEBUG_FLAG_OSD_ENABLED For the time being, DEBUG_FLAG_OSD_ENABLED is default (set in mame.c). [couriersud] Fixed Dip Switches and Inputs (after verification of the Z80 code) for 'bongo', 'porter'. [stephh] Implemented Actel FPGA ID, used by some Naomi games for accessing a special ROM check mode [Deunan Knute, Angelo Salese] Documentation update for Hotdog Storm, IE: The PCB ID number and tile map chip info. [Brian Troha] Add and hook up ZOOM ZSG-2 skeleton [Olivier Galibert] Doesn't do much at the moment, but the increase in documentation value is significant (we're documenting the sample compression format, for one thing). New driver for Sigma B52 system. ACRTC implementation is a bit hacky due to its preliminary emulation status. [Roberto Fresca] lethal.c - Verified clocks and vsync from orginal PCB [Corrado Tomaselli] astrocorp.c update: [Luca Elia] - Added frame buffer - Fixed sprite list end, negative coordinates, wrap around - Added battery backed RAM adp.c: hooked up (with a hack) gfx rom in hd63484 memory map [robiza] Hooked up coin input and start input in skattv. [robiza] astrocde.c - Fixed the Bonus Life dipswitch for gorf and clones. It's state was inverted. [Tafoid] [I8255] Clear output lines to 0 on write to mode register, and float input lines to 1. [Curt Coder] Simplified/combined MAME and MESS code: [Miodrag Milanovic] - Moved compatibility validation into MAME core from MESS. - Made GAME_NO_SOUND check done on MESS too. - Removed MESS dependent checks - Renamed GAME_COMPUTER_MODIFIED to GAME_UNOFFICIAL to mark unofficial hardware modifications - Removed GAME_COMPUTER it is distinct by IPT_KEYBOARD - Added GAME_NO_SOUND_HW (to mark that there is no sound hardware) and marked drivers in dotrikun.c, minivadr.c and tgtpanic.c as such - Removed GAME_SHARE_ROMS flag and commented old check for duplicate ROM entries - Moved natural keyboard support from MESS to MAME - Moved OSD file functions and clipboard access functions into OSD core - Significantly reduced the number of new OSD functions needed by MESS [with couriersud] Fixed Dip Switches and Inputs (after verification of the Z80 code) for 'tazzmang'. [stephh] snes wip: [Fabio Priuli] * added a couple of registers to snes_ppu struct * moved color blending (background & subscreen color addition/subtraction) at the end of the drawing process. * removed some unused (and not working anymore) debug code * fixed the remaining debug functionalities * moved colour struct to be another layer (simplifying some code) * updated hires blending to work with two pixel at time. * fixed clipmasks with hires modes hng64 : Initial implementation of 0x10-sized palette pages for 3d objects. This makes most environment colors correct in sams64. [Andrew Gardner] [VIA6522] Read port A/B only if some pins are inputs. [Curt Coder] Fixed Dip Switches and Inputs (after verification of the Z80 code) for 'dambustr' and clones. [stephh] Internal debugger using the mame rendering infrastructure [couriersud] - added support for arbitrary number of containers for render_target - added command-line parameter -debug_internal (-di) to use the internal debugger when in debug mode - internal debugger supports all views except memory view - added "Debug" view to layout/vertical.lay to create more place for debug views in vertical games. NOTE: The colors are ugly. Font rendering needs improvement. There are no shortcut keys right now. There is still a lot of room for more improvements. However, it works and does not depend on any ui toolkit. The interface has been designed to support displaying views programmatically e.g. from the ui. Short HowTo: - Start MAME with "-debug -di" - Console, register and disasm views will be shown. Place them by dragging the view on the title bar. - Views can be resized by dragging the bottom-right yellow square. - The view having the focus has a green background title bar. - Hit "Tab" (IPT_UI_CONFIGURE) to show the menu. - Console and disasm views support a very simple facility to support entering commands and addresses. Just start typing. Hit "enter" when finished. irobot.c - Added XTAL values from manual and hooked up to driver for main/sound CPU. [Phil Bennett/Tafoid] rungun: fix text tilemap lookup for big-endian targets. [R. Belmont] Added Intel 8021/8022 CPU types. [Curt Coder] irobot.c - Added/verified Dip Locations per manual and test mode. [Tafoid] Workaround for gcc-4.3 reporting a false warning on solaris: disable -Werror for this file only. [couriersud] Cleaned up SDL OSD functions after merging in code from MESS. [couriersud] wrally.c - Added/verified DIP Locations for World Rally [Guru] Fixed long-standing (day one?) bug with ADPCM samples in Trojan / Tatakai no Banka [Mamesick, Angelo Salese] Fixed Dip Switches and Inputs (after verification of the Z80 code) for 'espial', 'espialu' and 'netwars". [stephh] Got Mortal Kombat 3 (bootleg of Megadrive version) to boot. Still missing some key inputs. [Mariusz Wojcieszek] New games added or promoted from NOT_WORKING status --------------------------------------------------- Midnight Resistance (bootleg with 68705) [IQ_132] Sexy Boom [Mariusz Wojcieszek] Treasure Island (Subsino) [Team Europe, Dumping Union, Angelo Salese, David Haywood, Roberto Fresca] Ghost Chaser Densei (SNES bootleg) [Tomasz Slanina, XingXing] Skill Drop Georgia [Luca Elia, Smitdogg, Brian Troha, The Dumping Union] Logic Pro Adventure [Guru, D. Beneke, snoopy, pongplaya, W. Belk, hap, S. S. Neilson, JacKc, The Dumping Union] Pachifever [Tomasz Slanina] New clones added ---------------- INDY 500 Twin (Revision A, Newer) [Brian Troha, Dumping Union] Fantastic Journey (ver AAA) [Tirino73] Name That Tune (3-23-86) [Kevin Eshbach] E.D.F. : Earth Defense Force (bootleg) [Team Europe, Rene Single, Dumping Union] - not working Out Zone (set 5) [Corrado Tomaselli] Ghosts'n Goblins (World? set 3) [Corrado Tomaselli] Bagman (bootleg on Crazy Kong hardware) [Team Europe & Volker Hahn] - not working Magical Tonic / Magical Odds? [David Haywood] - not working Spiders (set 3) [Team Europe] Raiden (US, SEI8904 + SEI9008 PCBs) [tormod, Smitdogg, The Dumping Union, David Haywood] Asterix (ver AAD) [Luis "Datasat"] Pang! 3 (Euro 950601) [Gerald (COY), B. Sparks, Smitdogg, The Dumping Union] New games marked as GAME_NOT_WORKING ------------------------------------ Mr. Kicker [krick, MrGoodwraith, Smitdogg, The Dumping Union] Crackin' DJ [Guru, R. Belmont] Joker's Wild (B52 system, set 1) [Roberto Fresca, Tomasz Slanina, Gerald Vanderick] Joker's Wild (B52 system, set 2) [Roberto Fresca, Tomasz Slanina] Joker's Wild (B52 system, Harrah's GFX) [Roberto Fresca, Tomasz Slanina, Gerald Vanderick] 0.136u2 ------- MAMETesters Bugs Fixed ---------------------- - 03667: [Interface] All default/per-game .cfg files are not saved correctly (Aaron Giles) - 03671: [Sound] fcrash: Bad sound ingame (Mamesick) - 03663: [Graphics] tgm2, tgm2p: The warning boot screen has a black background which should be blue. Source Changes -------------- Replaced vsnetscr GFX ROMs with correct dumps [Team Japump, Dumping Union] Fixed memory allocation issue in debug builds. [Aaron Giles] Added makefile autotest for BIGENDIAN. A bit hacked, though. [couriersud] Redumped sound roms in Cyber Tank [Antonio Gonzalez Jr., Dumping Union] psikyosh improvements: [PsikyoFan] * Add support for per-scanline scroll/zoom and per-column effects. This is adds a significant performance penalty when enabled. Removed warning flag from s1945ii and s1945iii. s1945iii needs confirmation of correctness and x-zoom is a guess. * Virtually completed video rendering. Only flipscreen missing (and conversion to tilemaps one day). Per-line effects now respect per-line alpha, priority and bank. As a result daraku text works without any hacks. * Added various optimisations to get back all games to a playable speed. * Fixed missing soldivid effect on final boss that was broken due to above daraku hack. * Added accurate scaling effects based on measurements from hardware. cybertnk improvements: [Angelo Salese] * Fixed sprite height * Implemented flip x and negative y offsets * Implemented preliminary zooming sdl.mak rewrite [couriersud] - TARGETOS=freebsd may now be given on make invocation - modular approach, separate sections for opengl, x11, debugger - most target specific settings parametrized. - Added GTL_INSTLL_ROOT to optionally build win32 with the mame debugger. - On targets supporting "-m64" and "-m32" use them. - On unix ppc targets, add -Dpowerpc automatically Improved stack walking on crash in Windows. Now using StackWalk64 to do the stack walk, resulting in cleaner logs. Also will try to use system function to look up symbol and source/line information if present. [Aaron Giles] Improvements to subsino.c [Roberto Fresca] (general): - Lowered CPU clock to 1.5 MHz. - Reworked former inputs. - Added specific game and technical notes. - Added lamps support. - Cleaned-up a bit the driver. Victor 5: - Mapped the M6295 but commented out due to missing sample roms. - Added keyin, keyout, payout, stats and settings inputs. - Added coin/keyin/keyout counters. - Limited the bet and coin pulses to avoid repeats and coin jams. - Added complete coinage and keyin DIP switches. - Added main game and double-up rates DIP switches. - Added minimum bet DIP switches. - Added maximum bet DIP switches. - Added attract music DIP switch. - Added button-lamps layout. Victor 21: - Mapped the M6295 but commented out due to missing sample roms. - Added bet x10, keyin, keyout, stats and settings inputs. - Added coin/keyin/keyout/payout counters. - Limited the bet and coin pulses to avoid repeats and coin jams. - Added complete coinage and keyin DIP switches. - Added main game rate DIP switches. - Added minimum bet DIP switches. - Added attract music DIP switch. - Added button-lamps layout. Poker Carnival (crsbingo): - Added change card, keyin, keyout, stats and settings inputs. - Added coin/keyin/keyout/payout counters. - Limited the bet and coin pulses to avoid repeats and coin jams. - Added complete coinage and keyin DIP switches. - Added double-up rate DIP switches. - Added minimum bet DIP switches. - Added maximum bet DIP switches. - Added cards graphics DIP switches. - Added double-up type DIP switches. - Added button-lamps layout. Super Rider, Super Moto: - Added stats and settings inputs. - Added coin counters. - Added main game and double-up rates DIP switches. - Added double-up and control type DIP switches. - Added coinage and demo sounds DIP switches. - Added button-lamps layout. Shark Party: - Added stats and settings inputs. - Added coin counters. - Added main game and double-up rates DIP switches. - Added double-up, coinage and demo sounds DIP switches. - Added button-lamps layout. Created new template class tagged_list which manages a simple list along with a tagmap. Changed memory regions, input ports, and devices to use this class. For devices, converted typenext and classnext fields into methods which dynamically search for the next item. Changed a number of macros to use the features of the class, removing the need for a bunch of helper functions. [Aaron Giles] Replaced device_find_child_by_tag() -> device->subdevice(). Added Am29000 CPU core [Phil Bennett] Removed stdlib.h from osdcomm.h. [couriersud] - Added #include stdlib.h where now necessary - Fixed Solaris build - Fixed building unidasm for OSD=sdl on win32 Tools now include stdlib.h where needed. [couriersud] Changed core library files to use osd_malloc/osd_free where appropriate. [couriersud] Added checkautodetect target to makefile. [couriersud] Permit zlib and expat to be linked dynamically without changing the makefile by specifying "=0": make BUILD_ZLIB=0 BUILD_EXPAT=0 [couriersud] Improved vsnet sprite/roz alignment [David Haywood] Converted the following drivers to use a driver_data structure: [Atari Ace] - bigstrkb, mugsmash, pass, sbugger, sderby, shadfrce, shootout, silkroad, spbactn, sslam, stlforce, taitojc, tunhunt, welltris, wwfsstar, xyonix - 39in1, safarir, sbowling, shougi, skeetsht, skyarmy, sliver, spoker, spool99, srmp5, srmp6, ssingles, sstrangr, sub, supdrapo, superdq, supertnk, suprgolf hng64 : Implemented low-res texture decoding. All red/green polygons should now be textured. [Andrew Gardner] Correct a long-standing design flaw: device configuration state is now separate from runtime device state: [Aaron Giles] * There is a new class 'running_device' which represents the state of a live device. A list of these running_devices sits in machine->devicelist and is created when a running_machine is instantiated. * To access the configuration state, use device->baseconfig() which returns a reference to the configuration. * The list of running_devices in machine->devicelist has a 1:1 correspondance with the list of device configurations in machine->config->devicelist, and most navigation options work equally on either (scanning by class, type, etc.) * For the most part, drivers will now deal with running_device objects instead of const device_config objects. In fact, in order to do this patch, I did the following global search & replace: const device_config -> running_device device->static_config -> device->baseconfig().static_config device->inline_config -> device->baseconfig().inline_config and then fixed up the compiler errors that fell out. * Removed device_get_info_* functions and replaced them with methods called get_config_*. * Added methods for get_runtime_* to access runtime state from the running_device. * DEVICE_GET_INFO callbacks are only passed a device_config *. This means they have no access to the token or runtime state at all. For most cases this is fine. * Added new DEVICE_GET_RUNTIME_INFO callback that is passed the running_device for accessing data that is live at runtime. In the future this will go away to make room for a cleaner mechanism. * Cleaned up the handoff of memory regions from the memory subsystem to the devices. Fix bug introduced with astring changes that caused malformed tokens when writing out cfg files. [Aaron Giles] Fix bug where memory regions were not properly enumerated for the debugger memory view. Also, stop creating empty regions for disk regions. [Aaron Giles] Added Guru(TM)-readme to trackfld. [Curt Coder] Refactored the CIA 6526 interface, adding SP/CNT callbacks. Fixed serial transfer. [Curt Coder] Convrted the rest of devintrf to classes and moved management functions into methods of those classes. The most wide-ranging change was converting device_reset() to device->reset(). Apart from that it was mostly internal shuffling in the core. [Aaron Giles] Added OS/2 autodetect to makefile. [couriersud] Autodetection of PTR64 can be inhibited now by specifying PTR64=0. On mixed 32bit/64bit targets identifying themselves as 64bit this can be used to build a 32bit executable. [couriersud] Added OpenBSD support in makefile/sdl.mak. Fixed XBSD detection of PTR64 (uses amd64). [couriersud] Fix bug that mistook a non-NULL token to mean that a device was started. Fixes -video ddraw issue. [Aaron Giles] Replaced vsnes bank installs with RAM installs, since the banks were never changed. [Aaron Giles] Exit from the unhandled exception filter cleanly now. Use SetErrorMode() to disable the appearance of dialog boxes when crashes occur. [Aaron Giles] Fixed a typo in pgm.c that was causing a memory test error and corrected some comments [XingXing] Made direct accessors for device configuration state. Currently they just call through to the get info function. Removed old macros that wrapped calls. [Aaron Giles] Removed some aliases between CPUINFO_ and DEVINFO_ to help clarify usage. Also converted a few more places to use the new accessors. [Aaron Giles] Replaced drgninja set with one dumped from a genuine Data East PCB [dlfrsilver] Added MEC-M1 PCB layout to the dec0 driver and updated some clocks and ROM names [Guru] hng64 : Partially decodes translation-only geometry type 0102. This makes the road appear in the racing games, the edge of the ring in buriki, and a hallway during the buriki attract. [Andrew Gardner] The return of the "misc" [couriersud] - Added sdlmisc_.c again. This was necessary since certain tools create stubs for e.g. osd_break_into_debugger. If we do not have this in a separate file, the link stage may break. - Applied OS/2 patch [Credit: KO Myung-Hun] - Cleaned up #includes. Removed stdlib.h were possible. - More malloc to osd_malloc rename. - SDL monitor modes are read now when they are needed. This is now consistent across platforms. GTK Debugger work [couriersud] - glade-2 can now be used again to edit the debug.glade file. - No more need to edit the files created by glade-2 - All "activate" handlers now pass the parent window pointer. - malloc ==> osd_malloc to prevent mixed c++/c window allocations. - Run to cursor (main view) - In place memory editing (memory view) - implement key handling (Up, down, ..) like in windows - Tab and ESC not yet handled - Functionality now matches win32 debugger - Further code review/rewrite/simplification - Added more comment headings - fix a compile warning for gcc-4.4 (not detected by gcc-4.2) - Horizontal divider bar to individually size views. - minimum height aligned to win32 debugger ARM: preliminary SA-1110 support [R. Belmont] Verified all deco32 clocks and corrected HuC6280 clock following old Charles McDonald notes I had about internal divisor. Added a note on the Arm cpu used by this game: it's a Data East 101 custom [Corrado Tomaselli] Changed the following games to use the 76489A variant (verified on my pcbs): Green Beret, Do Run Run, Mr.Do's Castle, Jail Break, Shaolin's Road, Yie Ar Kung-Fu [Corrado Tomaselli] Fixed sn76489a periodic noise once again (and simplified a bit of code), now should be closer to or match real chips as sampled. Added true clock divider emulation, so emulation may be a bit slower. [Lord Nightmare, PlgDavid, Kold666] Popmessages can now be used in drivers which have an MC6845. [Curt Coder] Ensure that RAM and bitmaps are cleared when the ms32 driver is started to avoid 64-bit build crashes [David Haywood] Converted HD63484 ACRTC to be device. [Fabio Priuli] hng64 : Hacks the camera to work in sams64. [Andrew Gardner] Fixed crash issues with mchampdx [Fabio Priuli] s14001a: updated comments; got rid of the squealing noise (hidden behind a #define now, code is still there) until some other issues can be resolved. [Lord Nightmare] Dumped the proms in D-Day (Jaleco) [Chack'n, Team Japump] Fixed background and sprites colors in D-Day (Jaleco) [Angelo Salese] UI menu interface changes [couriersud] - all ui functions now expect a render_container - removed all macros referencing render_container_get_ui - ui_menu_alloc now is passed a container to which to render the menu. New games added or promoted from NOT_WORKING status --------------------------------------------------- F-15 Strike Eagle (2 sets) [Phil Bennett] Battle of the Solar System (rev. 1.1) [Phil Bennett] Tank Battle (prototype rev. 4/21/92) [Phil Bennett] Fortune I (PK485-S) Draw Poker [Jim Stolis] Versus Net Soccer (5 sets) [David Haywood] Island 2 (060529, banking address hack) [David Haywood] New clones added ---------------- Insector X (Japan) [Gyrovision, Gatinho, Smitdogg, Dumping Union] Viper Phase 1 =U.S.A= [Keven Eshbach, Dumping Union] Cube Quest (12/30/83) [Bill K] New games marked as GAME_NOT_WORKING ------------------------------------ King Tut (Australia) [David Haywood] Money Bank (Australia) [David Haywood] Penguin Adventure (bootleg) [Mariusz Wojcieszek] Quarter Horse Classic [Siftware, Mariusz Wojcieszek] Pinkiri 8 [Gyrovision, Smitdogg, The Dumping Union] Poker Ladies (Censored bootleg) [David Haywood] Gundam Wing: Endless Duel (SNES bootleg) [N. Francfort, manliodp, Smitdogg, The Dumping Union] Mortal Kombat 3 (bootleg of Megadrive version) [Patrick McCarron, Smitdogg, The Dumping Union] 0.136u1 ------- IMPORTANT NOTE: As of this release of MAME, several important things about the system have changed. Please read the following items before attempting to compile this new version. 1. A new tool chain for Windows, based off of gcc 4.4.3 prerelease, is now REQUIRED. Go to http://mamedev.org/tools to get the new tools. The updated included with 0.136u1 WILL NOT BUILD with the old tools. The new tool chain has support for building 64-bit MAME builds with gcc, as well as built-in DirectX headers, and C++ support, which was missing from the old tools. 2. Non-Unicode builds of Windows MAME are no longer supported. The options to turn this off in the makefile have been removed, and future changes are likely to solidify this requirement. If you are still (God forbid) running on Win9x, you will need the unicows.dll library to run MAME. Download unicows from Microsoft. 3. All code in MAME is now compiled as C++, plus there have been a few small changes that take advantage of the C++ language. For the most part, there is no effect on how drivers are written, except for some nicer accessors to devices and address spaces. Future improvements to take advantage of the C++ syntax will evolve slowly, and will be done internally. We are not interest in outside attempts to do this work for now. 4. The SDL OSD for MAME is now shipped as part of the main source package. SDL builds for Windows are now regularly built as part of the validation sequence for a new release. Thanks to R. Belmont, couriersud, and Olivier Galibert for their work on the SDL port over the years. MAMETesters Bugs Fixed ---------------------- - 00660: [DIP/Input] zoar: The cabinet UPRIGHT dipswitch is not working. (stephh) - 03233: [Multisession] All sets in crystal.c: Multisession Crash - 00111: [Crash/Freeze] gunbird2: crashes during the 4th level boss fight (North Pole) when using Vampiro. (PsikyoFan) - 03649: [Crash/Freeze] gekisha: Unknown DIP 4-2 toggles Auto Tsumo after Reach. If it is enabled and declare Reach, MAME crashes. (Angelo Salese) - 02154: [DIP/Input] ckongg: Coinage settings are wrong. (stephh) - 02157: [DIP/Input] ckongg: Coinage settings shown on screen don't correspond to actual settings (stephh) - 03653: [Graphics] crzrally, crzrallya, crzrallyg: Default high scores are incorrect (Pierpaolo Prazzoli) - 03651: [Graphics] matmania: Graphical corruption (M.A.S.H.) - 03620: [Speed] quasar: Massive slowdown (Quench) - 03623: [Speed] laserbat, catnmous: Massive slowdown (Quench) - 03621: [Interface] Hitting F6 without -cheat trigger causes crash (smf) - 03626: [Graphics] raiders, spacefrt: Background star field is missing (Fabio Priuli) - 03637: [Core] dino, punisher, wof and clones: NVRAM saves correctly, but doesn't reload any changes made (Fabio Priuli) - 03415: [Compiling] unidasm fails to link when ldplayer is the specified target (Aaron Giles) - 03485: [Graphics] mikie, mikiej, mikiehs: Possible priority issue on game completion (robiza) - 00266: [Graphics] daraku: Graphic Issues at region warning and during super move. (PsikyoFan) - 00892: [Misc.] s1945iii: At the very last boss, MAME popup a message (PsikyoFan) - 03632: [Crash/Freeze] kinst, kinst2: Game hangs at black screen with 32-bit build (Aaron Giles) - 03630: [Core] Any EEPROM with an 8-bit data bus is not being saved correctly (Aaron Giles) - 03622: [Graphics] solomon, solomonj: Graphics Bugs (Pierpaolo Prazzoli) Source Changes -------------- hng64 improvments [Andrew Gardner] - bbust2 now has 3d geometry. - fixed improperly loaded ROMs in sams64* games. - hacked 3d acknowledge in a slightly different manner. Sams64 games now show 3d. - found the 'explicit palette' word in bbust2. Colors are now correct Implemented what looks like a 'dynamic palette' bit. Fixes the colors in sams64 games, but not roadedge or buriki. RSP DRC changes: [Aaron Giles] - fixed misaligned 32-bit accesses - disabled DRC_SQV implementation as it breaks music in mtetrisc Converted RSP callbacks into device callbacks. Removed a ton of tag- based queries in favor of using the device passed. [Aaron Giles] Added profiler_mark() calls around rdp_process_list() so that the RDP time is separated from the RSP time. [Aaron Giles] Added more decrypted opcodes to cb2001. [robiza] Added driver data struct to cave.c. [Fabio Priuli] Changed inline_config to be allocated separately to avoid alignment issues. [Aaron Giles] uPD7801 core changes: [Wilbert Pol] - Fixed incorrect disassembly of some instructions. - Updated the handling of interrupts to match the documentation. - Implemented uPD7801 timers. - Configured port A on the uPD7801 to an output port. Removed the various HAS_xxxx for sound cores. To select sound cores, just choose them in the make system. Further granularity is not necessary. This also means that the samples core is always required. [Aaron Giles] Base tilemap hook-up for cb2001. [Angelo Salese] Fixed the gfx rom loading for Race Drivin' Panorama [David Haywood] Vs. Net Soccer improvements: - Emulated DMA protection for startup-checks [Olivier Galibert] - Fixed Data ROM loading, game now boots [David Haywood] - Marked Sprite + Sound ROMs as BAD_DUMP [David Haywood] Converted the goldstar, liberate, sidearms and sidepckt drivers to use driver_data [Atari Ace] Makefile changes: [Aaron Giles] - Removed CPP_COMPILE flag; all code is now compiled as C++ except for zlib and expat - Mapped INLINE to "static inline" since C++ has real inlining - Added new 'default' make target which just builds the emulator. Use 'make tools' to build the tools, or 'make all' to build the whole thing. - 64-bit builds now get a '64' suffix on them. - Removed UNICODE flag from Windows; UNICODE is always enabled now. - If OSD is not defined, we look for the built-in Windows environment variable 'OS' and if it is set to 'Windows_NT', we assume OSD=windows; otherwise we assume OSD=sdl. - If TARGETOS is not defined, we look for the same variable and set TARGETOS=win32 if it is set to 'Windows_NT'. - Windows SDL builds have an 'sdl' prefix on the executable so they can live side-by-side. - Added cheesy auto-detection of 64-bit Windows builds (based on the PATH including 'mingw64-w64') Removed hacks surrounding unicode handling in main(). They are no longer necessary with the new tools. [Aaron Giles] Fixed typo in 8-bit eeprom case that broke operation in some games. [Aaron Giles] Fixed x86 DRC backend codegen bug that broke kinst. [Aaron Giles] Got rid of setjmp/longjmp for error handling in favor of exceptions. Fatalerror now maps to throwing an exception. [Aaron Giles] [PIT8253] Update PIT counter even if there was no elapsed cycles (this only affects fast drivers like at586 in MESS). [Miodrag Milanovic] Fixed a bunch of minor quirks, and fixed gfxs in the dwarfd driver. [Angelo Salese] Changed berlwall, arkanoid, bakubrkr, mgcrystl to use YM2149. [Corrado Tomaselli] Verified and corrected clocks in halleys and exctsccr. [Corrado Tomaselli] Add support for Mahjong panel for mjgtaste. Makes this the default input and alters the default eeprom accordingly to match factory default. Note that you need to change both the game and the controller setting from the driver configuration when switching input sources since the two are mutually exclusive. [PsikyoFan] Fix zeroize protection simulation in lieu of proper dongle dump. [Bryan McPhail] Adds missing sample rom to Gals Panic 4 (Korea) [Brian Troha, Dumping Union] misc Konami wip: [Fabio Priuli] * moved a few routines (used for sorting graphics layers) to konicdev.c since they are shared by several drivers * added driver data struct to ajax.c and aliens.c * added driver data struct + save states to: asterix.c, bishi.c, blockhl.c, bottom9.c, chqflag.c, crimfght.c, dbz.c, gbusters.c, gijoe.c, lethal.c, mainevt.c, moo.c, overdriv.c, parodius.c, rollerg.c, rungun.c, simpsons.c, spy.c, surpratk.c, tail2nos.c, thunderx.c, tmnt.c, ultraman.c, vendetta.c, xexex.c and xmen.c * updated some Konami drivers above to separately allocate palette/ extra/work RAM instead of appending them to maincpu ROM; also, reduced maincpu rom regions where appropriate * replaced memory_set_bankptr with memory_set_bank where necessary * added driver data struct & save states to gradius3.c Converted taitosnd (aka tc0140syt) to be a device and updated the related drivers to use the new code. [Fabio Priuli] Replaced all occurrences of cputag_get_cpu with devtag_get_device: the former function was just an alias and now cpus are no different from other devices. Also removed cputag_get_cpu and cputag_reset (another alias, not even used in the source) from cpuexec.h. [Fabio Priuli] Fixed knights rom labels [Dlfrsilver] Metal Maniax improvements [Phil Bennett/luigi30] * Fixed frame buffer display * Started to add the other CPUs * Added PCB layouts for layers 1 and 2 * Hooked up TMS34020 * Started to implement the ADSP-2105 network CPU and the CAGE audio system [Phil Bennett] Added some missing header declarations and static qualifiers. Added validity.h to the core for consistency as well as an explicit foo.h in each foo.c. [Atari Ace] Added driver data struct to taitoair.c and taito_b.c. [Fabio Priuli] VIA6522: Refactored interface to use READ/WRITE_LINE. [Curt Coder] Cyber Tank improvements: [Angelo Salese] * Fixed bitplane order * Decoded sprite gfx format * Hooked up the two bg tilemaps * Wrote bare-bones video emulation for the Cyber Tank sprite chip / blitter * Added video boundary checks for the blitter The starting value for an output port is now the default value, which is based on whether it is active high or low. So the device will be called the first time the line becomes active. Changed the eeprom device to assume that the reset and clock are cleared until it's told otherwise. [smf] Added driver data struct to taito_l.c & opwolf.c. [Fabio Priuli] Added driver data struct + save states to asuka.c (cadash was not supporting saves), rainbow.c, rastan.c, taito_f2.c, taito_h.c, taito_o.c, taito_z.c, topspeed.c & volfied.c. [Fabio Priuli] Renamed mamecore.h -> emucore.h. [Aaron Giles] New C++-aware memory manager: [Aaron Giles] This is a simple manager that allows you to add any type of object to a resource pool. Most commonly, allocated objects are added, and so a set of allocation macros is provided to allow you to manage objects in a particular pool: pool_alloc(p, t) = allocate object of type 't' and add to pool 'p' pool_alloc_clear(p, t) = same as above, but clear the memory first pool_alloc_array(p, t, c) = allocate an array of 'c' objects of type 't' and add to pool 'p' pool_alloc_array_clear(p, t, c) = same, but with clearing pool_free(p, v) = free object 'v' and remove it from the pool Note that pool_alloc[_clear] is roughly equivalent to "new t" and pool_alloc_array[_clear] is roughly equivalent to "new t[c]". Also note that pool_free works for single objects and arrays. There is a single global_resource_pool defined which should be used for any global allocations. It has equivalent macros to the pool_* macros above that automatically target the global pool. In addition, the memory module defines global new/delete overrides that access file and line number parameters so that allocations can be tracked. Currently this tracking is only done if MAME_DEBUG is enabled. In debug builds, any unfreed memory will be printed at the end of the session. emualloc.h also has #defines to disable malloc/free/realloc/calloc. Since emualloc.h is included by emucore.h, this means pretty much all code within the emulator is forced to use the new allocators. Although straight new/delete do work, their use is discouraged, as any allocations made with them will not be tracked. Changed the familar auto_alloc_* macros to map to the resource pool model described above. The running_machine is now a class and contains a resource pool which is automatically destructed upon deletion. If you are a driver writer, all your allocations should be done with auto_alloc_*. Changed all drivers and files in the core using malloc/realloc or the old alloc_*_or_die macros to use (preferably) the auto_alloc_* macros instead, or the global_alloc_* macros if necessary. Added simple C++ wrappers for astring and bitmap_t, as these need proper constructors/destructors to be used for auto_alloc_astring and auto_alloc_bitmap. Removed references to the winalloc prefix file. Most of its functionality has moved into the core, save for the guard page allocations, which are now implemented in osd_alloc and osd_free. Added driver data struct + save states to darius.c & othunder.c. [Fabio Priuli] Added driver data struct to ninjaw.c, slapshot.c, warriorb.c, wgp.c. [Fabio Priuli] Extended the astring class wrapper into something useful, and useable as a stack object. Also designed the interfaces to allow for chaining operations. And added a casting operator to const char * for seamless use in most functions that take plain old C strings. [Aaron Giles] Changed all uses of astring to use the object directly on the stack or embedded in objects instead of explicitly allocating and deallocating it. Removed a lot of annoying memory management code as a result. [Aaron Giles] Changed interfaces that accepted/returned an astring * to use an astring & instead. [Aaron Giles] Removed auto_alloc_astring(machine). Use auto_alloc(machine, astring) instead. [Aaron Giles] Major header file cleanup: [Aaron Giles] - Created new central header "emu.h"; this should be included by pretty much any driver or device as the first include. This file in turn includes pretty much everything a driver or device will need, minus any other devices it references. Note that emu.h should *never* be included by another header file. - Updated all files in the core (src/emu) to use emu.h. - Removed a ton of redundant and poorly-tracked header includes from within other header files. - Temporarily changed driver.h to map to emu.h until we update files outside of the core. Added class wrapper around tagmap so it can be directly included and accessed within objects that need it. Updated all users to embed tagmap objects and changed them to call through the class. [Aaron Giles] Added nicer functions for finding devices, ports, and regions in a machine: [Aaron Giles] machine->device("tag") -- return the named device, or NULL machine->port("tag") -- return the named port, or NULL machine->region("tag") -- return the named region (Note that machine->region() returns a pointer to a region_info class which describes a region, not a pointer to the region's memory.) Made the device tag an astring. This required touching a lot of code that printed the device to explicitly fetch the C-string from it. (Thank you gcc for flagging that issue!) [Aaron Giles] Added a PCM sample end/loop callback to the RF5C68 core [Barry Rodewald] galaxold update: [stephh] - Renamed set kkgalax to ckongmc - Changed descriptions for ckongg and ckongmc - Fixed dip switches and inputs for ckongg and ckongmc - Updated ckongmc memory map Added the mameconfig version to the -listxml output [Oliver Stoneberg] Implemented inputs and sound in Gunpey [Luca Elia] Added new member function space() to the device_config, along with shorter constants to be used (AS_PROGRAM, AS_DATA, AS_IO). With no parameters, space() returns the first address space, which is commonly the only space present. Updated a few devices that referenced the old space[] array to call the new function instead. [Aaron Giles] Implemented basic blitter support in Gunpey [Tomasz Slanina] Converted Gunpey to use RGB pens instead of hardcoded palette table [Angelo Salese] Enforce that numbers are all the same exact width when loading fonts. [Aaron Giles] Fixed a bogus protection check in Victor 21 [Angelo Salese] Fix assert for prmrsocr + clones - no whatsnew needed [Fabio Priuli] Redumped program and sprite roms in Cyber Tank [Antonio Gonzalez Jr.] Added a mostly-complete SunPlus u'nSP core based on the one in Segher's "Unununium". [Harmony] Add lots of comments relating to 56-pin Mahjong interface and Psikyo SK-G001 interface pcb based on discussion with alien_mame and documents from other Mahjong PCBs. [PsikyoFan] Verified clocks on Poker Ladies and changed Z80 clock of Mahjong Gakuen from 6Mhz to 8MHz to match the other Mitchell hardware games [Corrado Tomaselli] i386: Improved accuracy of the various emulated models, makes CPU detection programs detect the correct CPU (in MESS). [Dirk Best] - eflags mask added - Initial values for the EAX and EDX registers fixed - cpuid values improved - feature flags improved - initial value for the cr0 register improved - changed 486 to not support the cpuid instruction by default - take a trap on invalid instructions instead of throwing a fatalerror - emulated the undefined flag behavior for the DIV/IDIV instructions on Intel CPUs SDLMAME: improved OS X and SDL 1.3 SVN support, try to autodetect SDLMAME targets [Couriersud] SDLMAME: add BGRA support to -video soft [couriersud] Fixed period for both sn76489 and sn76489A periodic noise; fixes pitch in 'smooth criminal' demo for colecovision and fixes pitch (but not the waveform, which will require more work) of music in dorunrun; More work is required before the code will be bit accurate due to the way the real LFSR and periodic generator work. [Lord Nightmare, Kold666, PlgDavid] SDLMAME makefile improvements: [couriersud] - Fix TARGETOS detection on OS X. - Do not try to check TARGETOS when cross-compiling - For non-windows targets, try to auto-detect PTR64 - testkeys now builds again - for unix targets, added a depend rule to sdl.mak which builds a .depend file. Fixed a number of compiler bugs found by PowerPC MacOS X. [R. Belmont] Added casting operators to the region_info class so you can assign a region to a generic type pointer and have it automatically convert. Also added a bytes() method which is safe if the region is NULL (useful for saying machine->region("foo")->bytes() and not crashing if foo doesn't exist). [Aaron Giles] Changed the region field in the device_config to be a region_info *, and removed the regionbytes field. Updated all users of these fields to use the new casting operators and bytes() methods instead. [Aaron Giles] Added subdevice and subregion methods to the device_config class, so you can easily query for devices and regions that are device-specific. The device prefix ("devicename:") is automatically prepended. [Aaron Giles] YM2612: More accurate LFO implementation and channel clipping [Eke-Eke, Nemesis, R. Belmont] New games added or promoted from NOT_WORKING status --------------------------------------------------- Second Chance [Siftware] Multi Game (Tung Sheng Electronics) [Mariusz Wojcieszek] New clones added ---------------- Exciting Soccer (Japan set 2) [Corrado Tomaselli] Super Bar [Brian Troha, David Haywood, Dumping Union] Mega Blast (US) [D. Beneke, hap, Smitdogg, Dumping Union] New games marked as GAME_NOT_WORKING ------------------------------------ Fun Station Spielekoffer 9 Spiele [Tomasz Slanina] Vega [David Haywood] Monza GP [Tomasz Slanina] Quarter Horse [Ruben Panossian, Angelo Salese] Vortex [tormod, Team Europe, Smitdogg, The Dumping Union] Bega's Battle [Angelo Salese] Computer Quiz Atama no Taisou [Chack'n, Team Japump] Track & Field (NZ Bootleg?) [Siftware, Tafoid]