- New games: Deco Cassette System Multigame (ROM based), Go Go Cowboy (English, prize) and Legend (SNES bootleg)
- New Working games: Black Touch '96, Explorer (DECO Cassette) (US), Frogger (bootleg on Amigo? hardware), Mega Double Poker (conversion kit, version 2.3 MD), Ron II Mah-Jongg, The Roulette (Visco), Sega Ninja (315-5113), Touch & Go and World Rally 2
- New Non-Working games: Abnormal Check, Ai-mode - Pet Shiiku, Block Pong-Pong, Casino Strip, Casino Strip IX, Casino Strip VIII, Dam Dam Boy, DVD Select (Japan), Mahjong Gal-pri - World Gal-con Grandprix (Japan), Mahjong Hanafuda Cosplay Tengoku 6 - Junai-hen (Japan), Mahjong Mogitate, Need for Speed - 4 Cab Link (2 Discs) (v1.0.1 Rev B), Need for Speed GT (Hard Drive+2 Discs) (v1.1.0 Rev C), Percussion Freaks 4th Mix (G*A25 VER. AAA), PokoaPoka Onsen de CHU - Bijin 3 Shimai ni Kiotsukete! (Japan), Renai Mahjong Idol Gakuen (Japan), Super Derby II, Tsuugakuro no Yuuwaku (Japan) and WaiWai Drive
- New clones: Act-Fancer Cybernetick Hyper Weapon (World revision 3), Bubble Bobble (prototype on Tokio hardware), Cobra-Command (World/US revision 4), Fighting Vipers (Revision B), Golden Poker Double Up (bootleg), Kageki (World), Logger (Rev.2), Motocross Go! (MG2 Ver. A, set 2), New Super Triv III, The Ninja Warriors (World, earlier version), Operation Wolf (Japan, SC), Return of the Invaders (bootleg no MCU set 3), Return of the Invaders (bootleg w/MCU), Silk Worm (prototype?), Solar Assault (ver JAA), Solar Assault Revised (ver JAA), Space Invaders (Nas Corp bootleg), Street Fighter II: The World Warrior (Japan 911210, CPS-B-17), Super Triv (English questions), Taisen Idol-Mahjong Final Romance 2 (Japan, newer), Tazz-Mania (Rodmar bootleg), Tetris (v341R), Triv Five Special Edition, Virtua Striker 4 (Export) (GDT-0014), Virtua Striker 4 Ver.2006 (Japan) (Rev B) (GDT-0020B), War: The Final Assault (EPROM 1.91 Apr 13 1999, GUTS 1.3 Apr 7 1999, GAME Apr 7 1999), World Kicks PCB (World, WKC2 Ver.A) and Xevious 3D/G (World, XV32/VER.A)
- New TourVision games (Softwarelist: hash\pce_tourvision.xml): Doraemon - Nobita no Dorabian Night and Majin Eiyuu Den Wataru
- New PinMAME games: Beat the Clock (with flasher support), Dirty Harry (LF-2) and MAC Jungle
- New PEPlus games: Player's Edge Plus (PP0006) Standard Draw Poker
- New drivers: sderby2.cpp
- New devices: cchip, deco_rmc3, fe2010_pit, gaelco_ds5002fp, i4040, m37720s1, nichisnd, ub8830d, upd78c11, z8601, z8611 and z8681
- New artworks
. aztarac, cfboy0a1, clowns, cocean1a, dankuga, dariusgx, decocass, dkongpe, dragrace, redalert, mslug2, solarq, spacedx, sprint1 and starshp1
. Updated default.lay for armora, astdelux, cobram3->cobra, gokuparo->fantjour, dfeveron->feversos, vfive->grindst, invaddlx, invaders, machridr->nvs_machrider, mahoudai->sstriker, motorace->travrusa, shippumd->kingdmgp, omegrace, warzard->redearth, seawolf, seawolf2, slyspy->secretag, solarq and vfive->grindstm
- New Cheat.dat: http://www.mamecheat.co.uk/index.htm
- DS5002FP CPU
. Added dumped Dallas DS5002FP chips to TH Strikes Back, Touch & Go and World Rally 2 using the method published by Morten Shearman Kirkegaard and Peter Wilhelmsen as documented at http://www.afdelingp.dk/files/articles/ds5002fp/ds5002fp.pdf
. Touch & Go and World Rally 2 are now playable. A 2nd verification pass is still needed on them from additional boards, as bad bits existed in World Rally 2 even prior to extraction (steering logic was broken but bad byte was identified and fixed as the code for that command handler was identical to World Rally 1) and TH Strikes Back is crashing at the first boss (could also be a CPU core issue).
. The DS5002FP SRAM for World Rally 2 has been dumped from 2 PCBs. The first had unused space filled as 0x00, the 2nd space was filled as 0xff. In addition, the first had 2x bad bytes and was partially patched out, so we're using the 2nd dump.
. Glass was also dumped, but at the time the data wasn't extracted, only the code, and the board has since died, so needs redoing. Alligator Hunt was dumped and works, but not yet added, want to verify on a 2nd PCB first as the process does corrupt some bytes and a couple had to be handfixed, so the only way to know for sure is multiple dumps.
. Made DS5002FP store battery-backed internal RAM and SFR registers as NVRAM. Made SFR defaults configurable in ROM loading like NVRAM defaults. Made external SRAM persistent as well (some games store scores etc. in it). Cleaned up Touch & Go dump and added preconfigured internal RAM. Created device for Gaelco protection module and removed remaining simulation code.
. Clean up Galeco Dallas hookup device: There is no need for a second device for World Rally and Glass, it's the same thing. How the address lines are hooked up for host memory access is part of the driver and can be done with a mirror/mask in the address map provided by the driver. There's also no need for the SRAM trampolines in the device, that can be done entirely through address maps. The drivers need trampolines to do the address swizzling. We should be able to get rid of these when we get better support for 8-bit views of 16-bit components (dooyong drivers also have ugly trampolines for doing this kind of thing).
- I4004 CPU
. Rewrote 4004 core and disassembler: Renamed to MCS-40. Emulated 8-clock instruction cycle, interruptible at any point. Converted TEST input to an input line. Added SYNC and CM output lines. Added support for 4040 CY output, logical operations, extended registers, ROM banking and disassembly. Made I/O space mapping more flexible to support the variety of peripherals available. Notable missing features are 4040 interrupt and halt, and "program memory" space.
. Make disassembler/debugger use syntax closer to what ASL accepts. Use 2D lookup to make debugger tables more compact. Allow 4-bit registers to be set independently. Save state fixes. Implemented WPM/RPM instructions. Expose some signals from a 4008/4009 or 4289. Can't use opram when program and opcodes are not related in the slightest. Check for disabled side-effects! Better reflection of 4289 timings for performing program read/write.
. Added support for 4040 stop/ack and HLT instruction, hook up stop/single step buttons in (MESS) INTELLEC 4/MOD 40.
. Splitted ROM and RAM port address spaces. Splitted RAM memory and status address spaces (no more read/modify/write). Fixed bug in FIN handling. Exposed cycle callback.
- M377xx CPU: Preliminary M37720 support
- M6800 CPU: Fixed LSR/ROR/ASR instructions set overflow flag (V flag) to 'N' XOR 'C' (ID 06624). Document more CPU types.
- MB88XX CPUs: Converted MB88XX ports to DEVCB and removed generic device type (audio\namco52.cpp, namco54.cpp, drivers\arabian.cpp, strnskil.cpp, machine\namco50.cpp, namco51.cpp, namco53.cpp and namco62.cpp)
- MC68340 CPU: Added configuration macros and callbacks for 8 bit ports A and B (machine\68340.cpp). Added 8 bit ports A and B, updated LOG system (machine\68340sim.cpp).
- N2A03 CPU: Added auxillary output callback (machine\midwayic.cpp)
- PIC16C74 MCU: Load recent CAPS0ff PIC16C74 MCU dump for croupier and croupiera, not hooked up for now.
- TMP68301 CPU: Interrupt cleanups
- DCS sound
. Get audio to start working (audio\dcs.cpp) in Skins Game (1.06)
. Re-enable speedups for external ram
- Namco CUS30, YM2151 and YMF271 sound: Support dynamic changes to clock frequency
- OKI6376 sound: Replaced custom handlers with device_clock_changed
- Sound Interface
. Soundlatch modernization in starwars.cpp and xain.cpp
. exprraid.cpp: Use MCFG_GENERIC_LATCH_DATA_PENDING_CB
. firetrap.cpp: Sound-related modernization. Use callback for soundlatch interrupt. Use modern MSM5205 callback and LS157 selector, and eliminate an instance of HOLD_LINE. Clean up some names. Added placeholder 8751 device.
. gcpinbal.cpp: Modernized the callback of the MSM6585 sound
. gladiatr.cpp: Hook up SSRST (sound reset) according to badly scanned schematics
. magmax.cpp: Soundlatch modernization & various stuff from schematic
. Make a few more methods const (emu\disound.cpp)
. Added machine().side_effect_disabled to machine\gen_latch.cpp
- TMS5110 and YMZ280B sound: Implemented device_clock_changed
- TMS5220 sound: Use device_clock_changed instead of custom method and misc. modernization
- 6532 RIOT: Added some WRITE_LINEs to set individual port lines through callbacks
- 6821 PIA: Logging improvements: Use logmacro.h interface. Removed device tags superfluous with modern logerror. Make LOG_SETUP actually handle something.
- 8253 PIT: Handle slight Faraday FE2010 PIT incompatibility for (MESS) Commodore PC10
- Flash ROM: Fixed global variables (machine\intelfsh.cpp)
- ISA: Added unmap_device method and in install16_device use I/O space width
- Nintendo Custom: Fixed cpu\m6502\n2a03.cpp/h
- NCR 5390 SCSI: Improved initiator transfer information logic. Split transfer count/counter. Added rudimentary 53c90a/53c94 support. Reworked initiator transfer information state machine: should now support all SCSI phases. Improved handling of dma/non-dma commands. Added an undocumented hack to make (MESS) InterPro work. Match updated 5390 device. Inherit memory map. Implemented interrupt status flag in status register for 53c90a, this is critical for (MESS) InterPro. Improved tcounter and dma/drq handling.
- Taito Custom
. Created C-Chip device with correct CPU type in it and a bunch of notes (pinout etc.) (asuka.cpp, opwolf.cpp, rbisland.cpp, taito_f2.cpp, taito_x.cpp and volfied.cpp)
. Created a uPD78C11 derived CPU type for this purpose, with internal ROM map.
. Use internal ROM map for other uPD78C10 chips as it's always present
. Added missing NO_DUMP definitions to various games using C-Chips with correct size etc. (bonzeadv, megablst, rbisland, superman and volfied)
. Pump Mega Blast through the device code as really all it ever does is bank the C-Chip window and test the RAM
. Load CAPS0ff C-Chip dumps for Operation Wolf and clones, checksum on MASK rom part passes, but game specific EPROM is still bad for the time being. Added small note about what's wrong with the C-Chip EPROM dump.
. Put C-Chip stuff in Type X driver. Removed outdated comments.
. Hooked up the four 'asic ram' shared bytes/semaphores/command registers between external cpu and the C-Chip and got rid of the 'return 0x01' hack for Mega Blast (achine\taitocchip.cpp).
- Voodoo GFX: Fixup logging and implement actual vRetrace and hvRetrace functions
- Z80 SCC: Basic wait/dma request implementation. Renamed WRDY to WREQ to match datasheet, minor touch-up.
- atlantis.cpp: Save states supports static vectors natively (machine\vrc4373.cpp). Use actual M48T37 timekeeper. Minor cleanups.
- csplayh5.cpp and niyanpai.cpp
. Moved around DVD firmwares into 'nichidvd' BIOS set since it's common component. Parallel port is connected, unknown purpose tho.
. Wrote a new device container for Nichibutsu sound HW, merged usage for csplayh5 and Niyanpai driver.
. Added Nichibutsu High Rate DVD BIOS
- crystal.cpp: Document P's Attack edge connector pinout which is non JAMMA. Correct pinout for gun connector & changed JAMMA to 56PIN connector.
- dec8.cpp and karnov.cpp
. Made DECO RM-C3 (custom palette) into a device used by DEC8 games
. All Karnov driver games use now the DECO RM-C3 palette. This is really just a documentation change as the previous colour weighting was correct so there is no visual difference with this change.
. Identified dipswitches for a number of DECO Cassette sets
. Split decocass state class up so that the dongle types aren't polluting base class. Also added support for bootleg multigame and fixed regression caused by change in draw order.
. Added roms from the DECO GRO DE-0091C-1 overlay PCB to Explorer (DECO Cassette) (US)
- docastle.cpp: Weird and inefficient way of reading inputs based on schematics, but code seems to agree. Clarify reset behavior.
- ettrivia.cpp, usgames.cpp and wallc.cpp
. PSG type correction (AY-3-8910A -> AY-3-8912A)
. Use object finders in ettrivia.cpp
. Fixed protection in Touch & Go and World Rally 2 (Games are now playable)
. Swap left/right channels on Touch & Go and World Rally 2 to match screens
. Clean up driver by using device arrays
. Added preliminary controls/dips for clone Frogger (bootleg on Amigo? hardware) through I8255 PPI. Game has sound now.
- iteagle.cpp: Save states supports static vectors natively (machine\vrc4373.cpp)
. Added AnyIDE roms, switched to BIOS system. Merged Killer Instinct (v1.5d), (v1.3), (v1.4), (proto v4.7) and BIOS (v1.5d AnyIDE) to 'Killer Instinct'. Merged Killer Instinct 2 (v1.4), (v1.0), (v1.1), (v1.3) and BIOS (v1.4 AnyIDE) to 'Killer Instinct 2'. Merged clones Killer Instinct 2 (v1.3k, upgrade kit), (v1.4k, upgrade kit) and BIOS (v1.4k, upgrade kit AnyIDE) to 'Killer Instinct 2 (Upgrade kit)'.
. Updated hardware info
- legionna.cpp and seicupbl.cpp: Initialized tile banks to 0, this should fix problems on Linux & debug builds (includes\legionna.h).
- m62.cpp: Split PROM regions up by function (legacy from when MAME only allowed a single PROM region per system). Made use of multiple palettes and gfxdecode structures.
- mappy.cpp: Use LS157 TTL device for DSW2 mux
. YGV608 video accessors are 8-bits not 16. Moved a few statics out from r/w handlers. Converted ports to AM_DEVICE.
. Log registers into own space, handling will follow up. Added CRTC function and moved irqs in handler callbacks. Added preliminary raster irq hookup (limited usage in NCV2).
. Moved YGV608 base address out of legacy switch case and ROZ registers out of the legacy code. Return h/vblank status bits. Misc IRQ changes. Address pointer clean-ups. Silence some ports in driver.
. YYGV608 pattern name table pointer access, log mosaic and added border color (makes the POST screens to be black and not green). Added 3rd button.
. Dumped earlier Sega Gun Board firmware (hod2bios)
. Reverted MIE back to higher clock (Z80 CPU 13.5->16MHz) and added notes about CPU core
- neogeo.cpp: Reintegrated NeoGeo romdefs in the source (neodriv.hxx -> neogeo.cpp)
- paranoia.cpp, tourvis.cpp and uapce.cpp: Standardize button layout for Arcade PCE
- segae.cpp: Modernized driver
- stv.cpp: Experimental force resync on DMA completed (machine\saturn.cpp)
- tehkanwc.cpp: Fixed dipswitches for clone (set 4, earlier) (different setup to other sets). Added DIP locations for all sets in driver.
- seattle.cpp and vegas.cpp: Improved wheel board
. Save states supports static vectors natively (machine\vrc5074.cpp)
. Added I40 board. Added keypad. Use standard way of handling keypad inputs.
. Mark BIOS in clone 'San Francisco Rush 2049: Special Edition' as BAD_DUMP (ID 06370)
. Added layout for sf2049
- AGEMAME: Put mpu4 back into how it should be (mpu4.hxx -> mpu4.cpp, mpu4avan.hxx -> mpu4avan.cpp, mpu4bwb.hxx -> mpu4bwb.cpp, mpu4concept.hxx -> mpu4concept.cpp, mpu4crystal.hxx -> mpu4crystal.cpp, mpu4empire.hxx -> mpu4empire.cpp, mpu4mdm.hxx -> mpu4mdm.cpp, mpu4misc.hxx -> mpu4misc.cpp, mpu4mod2sw.hxx -> mpu4mod2sw.cpp, mpu4mod4yam.hxx -> mpu4mod4yam.cpp, mpu4sw.cpp -> mpu4sw.cpp and mpu4union.hxx -> mpu4union.cpp)
- Ameri-Hockey and Bozo's Pail Toss
. Attempt at CPU identification
. Make some educated guesses regarding manufacturer, decade, MCU and sound chip types. A few technical modifications to Z8 CPU memory interface and added Z8681 type for Ameri-Hockey.
- Arkanoid: Added M68705P3 MCU and AY-3-8910 machine definition for clone Arkanoid (bootleg with MCU, harder), matching real hardware. Added some notes about bootleg roms and what sets they are copied from or derived from. Updated note about hidden credits with hiscore initials.
- Bionic Commando: Fixed screen misalignment regression
- Black Touch '96: Added flip screen and coin counter support. Rewritten text layer to tilemap. Added notes and promoted game with MACHINE_IS_INCOMPLETE, bugs like the timer not decrementing are actually caused by sloppy coding. Converted sound command port to 8-bits and lowered difficulty default (Games now playable).
- Bongo: Map jump as a button and not as up direction
- Candy Crane: Document MCU type that isn't emulated
- Clown Roll Down: Flesh this skeleton driver out slightly
- Crude Buster
. Fixed colours (verified against real hardware). Added documention.
. Added a x3 hack to the YM2203 clock frequency to fix incorrect pitch
- Fantasy: Made Fantasy (US) the parent for consistency, since up until now the parent was the German version.
- Fast Lane: Removed imperfect colors flag, Kold verified it and there's no issue with colors.
- The First Funky Fighter: Fixed missing music and partial sound FX (ID 05900). Correct 'Country' dipsetting.
- Forty-Love: Clone (Japan) needs MCU double check
- Funny Strip: Added serial EEPROM for high score entries
- Game Magic
. Do not always assert on unimplemented PCI configuration registers (Intel 82439TX Northbridge; bus\lpci\i82439tx.cpp). Log a message in the error log instead. Also put writes to 0x58 and 0x5c in their own case. Give derived classes the ability to intercept writes to debug port 0x80 (lpci\southbridge.cpp). Added boot_state_hook devcb to receive writes to debug port 0x80 (lpci\i82371sb.cpp).
. Splitted the single rw handler to io ports 60 and 61 into two separate handlers one for each port. To support systems in the future where the southbridge does not contain a keyboard controller (lpci\southbridge.cpp).
- Gladiator: Inverted coin counters and minor HW note
- Golden Axe: Replaced bad dump 317-0122 i8751 MCU in clone Golden Axe (set 2, US) (8751 317-0112) with working redump from undamaged chip. Removed MCU simulation code.
- Gun & Frontier: Fixed 'Upright Controls' dipswitch (OFF is Single and should not be the default).
- Lady Bug: Documented a different program ROMs arrangement
- Levers and Nibbler: Changed joysticks to 4-way as documented in manuals
- Mahjong Chinmoku no Hentai: Removed DSW B, this does not exist on a real PCB (ID 06592).
- Marchen Maze: Added default NVRAM
- Master Boy: Use parallel EEPROM type for "EAROM" rather than generic NVRAM
- Mega Double Poker: Load recent CAPS0ff 68705P5 MCU dump for Mega Double Poker and clone. Hook up 68705P5 MCU, figure out banking and added timekeeper RAM and inputs. Merged driver with Golden Poker driver to get working sound (graphics and sound should be identical) (Game now playable).
- Miss Bubble II: Fixed OKI read/write bitswap so what seem to be the correct sound effects are played. Used the OKI rom from clone 'Bubble Pong Pong' in place of the badly dumped missb2 OKI rom due to all non-corrupted areas being identical, so they're most likely supposed to be the same, but marked it as BAD_DUMP until redump. Added watchdog (same as parent bublbobl hardware has).
- Mr. Do!: Load protection PAL data (not used at the moment)
- N.Y. Captor: Fixed colors in clone Colt
- Ninja Clowns: Fixed potentially crash during fighting the final boss 'Twisto'. The blitter code was writing outside the limits of the VRAM (ID 06620).
- Omega: Dumped the color proms, correcting the colors. Minor updates to dipswitches. Set default values for unknown dipswitches to "Off". Correct coin counter polarity; name config structures more consistently.
- Parodius: Fixed 'Bonus Life' dipswitch
. joctronic.cpp: Added new maincpu to Punky Willy. Callback modernization for its own sake.
. wpc_dcs.cpp: Added new DCS roms to Judge Dredd (L-7) and clones (L-4), (L-5) and (L-6).
. flicker.cpp: Updated Flicker (prototype) to use new MCS-40 core. Added save state support. Removed NVRAM - it's unlikely a dynamic PMOS RAM would be battery-backed. Hook up the rest of the inputs (operator adjustments). React to input changes on test line. Added notes. Re-implemented I/O based on how hardware actually works. Corrected RAM size. Hooked up playfield lamp outputs - this really needs PWM.
- Pole Position II: Fixed crowd cheering sounds are messed up at the chequered flag goal (ID 06261)
- PT Reach Mahjong: Added samples and cleanup driver
- Quest of D (CDV-10005C): Added Firmware Update DVD dump
- Return of the Invaders
. Added original Taito 68705 MCU dump to Return of the Invaders
. Moved bootleg 68705 MCU to its own new set 'Return of the Invaders (bootleg w/MCU)'. Renamed sets to make it more obvious which are bootlegs.
. Verified XTAL, dividers and SN76489A type from PCB pictures. Added missing original Taito CLUT PROMs and fixed video driver to be able to use those or the single bootleg CLUT prom.
. Added DIP locations and document edge connectors
- Rod-Land: Added information regarding clone 'R&T (Rod-Land Prototype)' - see http://sudden-desu.net/entry/rod-land-location-test-code-and-stage-editor
- Ron II Mah-Jongg: Ron II actually works, promoted to working.
- Rotary Fighter: Added PPI and coin counter
- The Roulette (Visco): Fixed interrupts, graphic and input&dips. Added new Seta X1-010 rom and PCB layout (Game now playable)
- Schmeiser Robo: Game sets rowscroll to be bigger than assumed size of tilemap. This fixed exception on exit on Linux 64bit and Windows XP (ID 06613).
- Sega Ninja: Decrypted SEGA 315-5133 used by clone Sega Ninja (315-5113), promoted it to working. Shares identical code with other sets, just encryped with a different key.
- Shoot Away II: Added AT28C64 EEPROM dump
- Soreike Kokology Vol. 2: Redumped sound data ROM. Fixed missing voice (ID 06627).
- Steel Force: Switched to OKI map instead of ROM_COPY
- Super Real Darwin: Replaced MCU simulation in Super Real Darwin with internal ROM dump. Handcraft MCU rom for clone Super Real Darwin (Japan) like was done for other games in the driver so the old simulation can be killed off, marked as BAD_DUMP. Fixed incorrect behaviour for 6th boss (no longer skips first form).
- Superbike: Kludged a protection check that was resetting the machine under certain conditions. Also demoted to MACHINE_UNEMULATED_PROTECTION since game can lock indefinitely under a particular condition.
- Super Chase: Fixed shifter display in layout
- Target Hits: Added PCB layout and base CPU clocks on actual OSC/Resonator. Corrected OKI clock and program rom labels.
- Time Limit: Redumped color proms. Promoted colors after counter-check with real screens.
- Tsukande Toru Chicchi: Added dipswitches
- unknown TMS9980 Poker Game: Fixed maincpu rom loading
- Victory: Added PIO devices
- Victory Road: Added PAL dumps
- Wolf Pack: Fixed missing torpedo trail
- World Rally: Added PCB layout
- Save state
. Added a menu listing existing state files displayed when choosing a position to save/load. Any position may be selected with keyboard 0-9/A-Z or joystick buttons. Existing positions may be selected using UI navigation controls.
. Moved save state registration to interface post start. Plays nicely with device_missing_dependencies exceptions. Frees implementation from having to call save state registration method. Improved save state support in devices that neglected to call method.
. Explicit sizes for enums and enum class used in save states, one should always do this to maximise save state compatibility. Fix up a couple in src\mame as well.
- Dipswitch fixes in decocass.cpp, ddenlovr.cpp, freekick.cpp, galaxian.cpp, konmedal.cpp, m14.cpp, parodius.cpp, seta.cpp, taito_f2.cpp, tehkanwc.cpp and vegas.cpp
- Fixed rom names in retofinv.cpp, seta.cpp, stv.cpp and targeth.cpp
- Description changes of Cobra-Command (World/US revision 5), The First Funky Fighter (USA, Canada, Mexico / Japan, set 1), The First Funky Fighter (USA, Canada, Mexico / Japan, set 2), Lee Trevino's Fighting Golf (World?), Lee Trevino's Fighting Golf (US), Lee Trevino's Fighting Golf (US, Ver 2), Killer Instinct, Killer Instinct 2, Killer Instinct 2 (Upgrade kit), Logger (Rev.3), Mega Double Poker (conversion kit, version 2.3 MD), Mega Double Poker (conversion kit, version 2.1 MD), Motocross Go! (MG2 Ver. A, set 1), The Ninja Warriors (World, later version), The Ninja Warriors (US, Romstar license), Play 2000 (Super Slot & Gran Tesoro) (v5.01) (Italy), Play 2000 (Super Slot & Gran Tesoro) (v4.0) (Italy), R&T (Rod-Land prototype), Return of the Invaders (bootleg no MCU set 1), Return of the Invaders (bootleg no MCU set 2), The Roulette (Visco), Street Fighter II: The World Warrior (Japan 911210, CPS-B-13), Super Triv (French questions), Taisen Idol-Mahjong Final Romance 2 (Japan, older), Tehkan World Cup (set 4, earlier), Trigger Heart Exelica Ver.A (Japan) (GDL-0036A) and Vince (bootleg of Red Hawk)
- Renamed (actfancr) to (actfancr2), (fantasy) to (fantasyg), (kageki) to (kagekiu), (kinst2k3) to (kinst2uk), (retofinv1) to (retofinvb1), (retofinv2) to (retofinvb2), (sderby2) to (sderby2s), (striv) to (strivf) and (xevi3dg) to (xevi3dgj)
. Overhauled MAME options handling. The new options system is more dynamic and should detect errors earlier. The slot menu now shows updated options in response to selections made by the user. This fixed loading softlist items from the command line with changed slot options (ID 06588) and various problems with software loading/unloading (ID 06581). Don't lose the system inipath when looking for hashpath (mame\mameopts.cpp).
. Fixed options regression (ui\selsoft.cpp)
. Allow experimental overclocking of sound devices through UI sliders with -cheat enabled (ui\ui.cpp)
. Fixed slot unmount issue: Start (MESS) mame sorcerer, then enter the slots menu, empty the RS232 slot, then choose Reset. It crashes with an access violation (emu\image.cpp).
. Made internal UI list missing/incorrect files when audit fails. Also consolidated selgame/selsoft code for actually launching systems into one place. Reduced header clutter (ui\selmenu.cpp).
. Fixed fatal error on selecting software part from internal UI. Sort software part menu in internal UI (was ordered by hash). This preserves the option priority behaviour from 0.187 when setting the instance option to the desired part. Note that software part selection from internal UI doesn't actually work. For example with zorba:cpm, no matter which part you select, you'll always end up with flop1 in A: and flop2 in B:. This actually did work properly in 0.187, so something has gone wrong in between (ui\selmenu.cpp).
. Fixed issue loading reset_on_load() images (emu\diimage.cpp). Fixed custom instance names and slot devices don't work properly with the current MAME options code (emu\diimage.cpp). Fixed media option numbering with custom instance names (emu\diimage.cpp).
. Fixed scheduler overflow when a device executes for more cycles than there are in a second
. Improved the speed of romident by dynamically allocating some large device member arrays at device_start time instead (sound\ay8910.cpp, audio\taito_en.cpp and video\powervr2.cpp)
. Fixed Clang build (emu\device.h)
. Lift the cap on the number of address spaces per device (emu\dimemory.cpp). Make device_memory_interface slightly less of a special case, use a typedef to avoid nested templates everywhere. Made device_memory_interface own its address space objects. Kill a trampoline (memory.dump(); debug\debugcmd.cpp and emu\emumem.cpp).
. Make machine().describe_context() a const function returning a std::string. As part of this change (because std::string is not printf-compatible), several devices have been updated to use the modern logmacro.h logging system.
. Save partname to inifile, so that the correct part is loaded next time (emu\image.cpp).
. Fixed NESS Game Genie decoder and link simple cheats (plugins\cheat\cheat_simple.lua). Added UI support for joystick hotkeys (plugins\cheat\init.lua). Poll for setting hotkeys. Create dirs. Popmessage for hotkey setting.
. Updated hiscore.dat
. Initialization ordering fixes (emu\emumem.cpp/h and machine.cpp)
. Removed redundant flags MACHINE_NOT_WORKING and MACHINE_NO_SOUND and replaced them with MACHINE_IS_SKELETON.
. Fleshed out network output provider so it has the same capability as legacy Win32. Clients: Connect to TCP port 8000. Messages will be of the form "verb = value\1"; if your client is busy when MAME is spamming, you may get multiple messages glued together by \1 separators. (\1 was chosen because it's neutral on Win32/Mac/Linux). You will get a "hello = 1" message upon connection to MAME, and a "mamerun = 0" message when MAME shuts down. You may send "send_id = n" to MAME to get IDs where n=0 means ROM set name of current game, 1-? = output node names. MAME will reply "req_id = string\1"; this is currently the only case where a string will be returned instead of an integer value. A working example POSIX client will be released soon (output\network.cpp).
. Include -output option in documentation (docs\source\commandline\commandline-all.rst)
. XML listing enhancements: The -listxml command will try to find and list any devices whose shortnames are specified on the command line. Any number of devices can be listed at once, and wildcards will be compared against device names as well as driver names. DTD output for -listxml, -listsoftware and -getsoftlist can be disabled by a new -nodtd option. It remains enabled by default.
. Better handle the case where HTTP is not enabled (emu\http.cpp)
. Switched to delegate timers. Frees implementations from having to call timer method. Eliminates risk of ID conflicts with implementations/other interfaces.
. Made scripts do substantial validation of layouts at build time (scripts\build\complay.py). Removed vestigial exception class. Comment out problematic parts of internal layouts detected by build-time validation (layout\checkma5.lay, mmerlin.la and tisub.lay)
. Don't drop an entire layout if one view fails to load - it breaks (MESS) intlc44/intlc440 with null_modem (emu\rendlay.cpp)
. Changed backslash to unicode in some layouts
. Made parent/clone loops raise a fatal error rather than hanging in a loop appending to a string (emu\driver.cpp)
. Validity: Removed validation check - it causes MSVC release builds to crash, and the things it flags usually get detected elsewhere (emu\validity.cpp).
. VGM player
. Added YMF271 and YMZ280B support to VGM player. Added sound cores needed to allow virtual subtarget to compile (YMF271 and YMZ280B; scripts\target\mame\virtual.lua)
. Fixed playing .vgm/.vgz files containing 2 X POKEY (ID 06631). Fixed clock speed for dual POKEY. Produce error message when nonexistent file specified rather than create a spurious empty file and segfault trying to read it.
. LUA engine: Safer cleanup and fixed leak
. Changed Romload to show all actual hashes on a mismatch (emu\romload.cpp)
. travis.yml: Fixed QT 5.5.1 for Ubuntu 14.04 "Trusty Tahr" (allows Travis CI build to complete)
. Added SDL_WINDOW_BORDERLESS for fullscreen, required by some window managers on Linux. Breakage was in MAME 0.160.
. Fixed sound_sdl::sdl_callback, fill buffer with silence when underflow. The problem is most noticeable when you are saving state and the save takes a relatively long time, short period of audio gets played repeatedly, which is usually unpleasant. I found out it's caused by sdl_sound::sdl_callback not fill the audio buffer with silence when underflow occurs. According to https://wiki.libsdl.org/SDL_AudioSpec,
if there's nothing to play, the callback should fill the buffer with silence. I tested this change and the problem is gone.
. Updated compiling instructions for Fedora Linux. DNF is now preferred package manager. alsa-lib-devel is also required (not mentioned in the current docs) (initialsetup\compilingmame.rst).
- MAC OS X
. Added basic support for saving/restoring Cocoa debugger window state, compatible with Qt debugger where possible.
. Fixed some Cocoa debugger desync issues. Scroll to selection on gaining focus by keyboard (e.g. tab) only. Fixes jump on clicking a memory or disasm view that you've scrolled.
. Make XML file a class of its own managed with smart poitners. Added a method for copying part of an XML tree into another tree and use it to fix Cocoa debugger fatal error (util\xmlfile.cpp).
. Save/restore console split positions
. Fixed include path with USE_LIBSDL on macOS. The cflags will contain an include path ending in "SDL2", not just "SDL", and removing just the latter leaves a stray "2" on the end (osd\sdl_cfg.lua).
. Fixed tiny build (missing Z80PIO; scripts\target\mame\tiny.lua)
. Renamed AS_DECRYPTED_OPCODES to AS_OPCODES
. C++14 constexpr doesn't cooperate with universal references (bus\isa\isa.h, machine/gt64xxx.h, pci.h, vrc4373.h and vrc5074.h)
. Clean up inlines for MSVC. No reason to prefer inline assembly over MSVC _BitScanReverse intrinsic on x86 (osd\eivcx86.h)
. c_str() is no longer needed with emu_file::open since it now takes a std::string (emu\machine.cpp)
. Fixed save/load states in Emscripten build. Simplified Emscripten integration points. Moved standalone JS functions to be static member functions of running_machine. Improved Emscripten main loop. Use convenience functions for cleaner code. As an added bonus, this now allows for proper shutdown of the running machine when running in the Emscripten environment - previously, attempts to exit the program were just being ignored. Export soft_reset, hard_reset, exit, load and save functions for Emscripten builds (scripts\resources\emscripten\emscripten_post.js).
. Convenience macro for enum bitwise operators (ENUM_OPERATORS -> ENUM_INCDEC_OPERATORS; cpu\tlcs90/tlcs90.h, emu\emucore.h, input.h, ioport.h, profiler.h, render.h and mame\cheat.h)
. Simplify by decoupling information creation and display rendering (debug\dvdisasm.cpp)
. Eliminated direct() from read_opcode (debug\debugcpu.cpp)
. Reverted debugger F8 behaviour, to run until next start of vblank, by re-adding a check that was removed in MAME 0.175.
. Made the length parameter for debugger 'load' command optional (defaults to lenth of file), converted code from stdio to iostream.
. In class consolewin_info method set_cpu does nothing if the cpu to be set is the current one. This solves a problem in the windows debugger where the registers view would always return to the topafter being scrolled down (debugger\win\consolewininfo.cpp).
. Don't assume a watch point exists for the address space passed to watchpoint_update_flags(), which fixes the hotspot command. Stop hotspot from crashing when you start running (debug\debugcpu.cpp).