Mameinfo.dat v0.191
Updated - 23rd November 2017

Homepage -
E-Mail -



What's New

*NEW* Mameinfo + MAMEUI-inifiles-0192GIT (16th Nov) (3.33 Mb)

Mameinfo 0.191 (2.74 Mb)

MAMEUI 0.191 Category-, Version and Alltime inifiles (708 kB)

MAME NEWS from 0.37b1 - 0.191 (4.05 MB)

PCB-infos 0.153 (2.11 MB)

MAME listinfos from 0.25 to 0.170 (153 MB)

New in MAME:    
0.192GIT - New games: Akai Katana (2010/ 8/13 MASTER VER.), Pac-Eight and The Big Joke (Version 0.00) - New Working games: Flower, Ping-Pong King and Time Attacker - New Non-Working games: Mushiking The King Of Beetles - Mushiking IV / V / VI (World) - New clones: '99: The Last War (bootleg), The 26th Z (Japan, location test), Action Fighter (FD1089A 317-unknown), Action Fighter (FD1089A 317-unknown, analog controls), Action Fighter (System 16B, FD1089A 317-unknown, analog controls), Action Fighter (System 16B, FD1089A 317-unknown, set 1), Action Fighter (System 16B, FD1089A 317-unknown, set 2), Action Fighter (System 16B, unprotected, analog controls), Action Fighter (unprotected), Action Fighter (unprotected, analog controls), Bucky O'Hare (ver AA), Golgo 13: Juusei no Chinkonka (Japan, GLT1 VER.A), Gran Trak 10/Trak 10/Formula K (older) [TTL], Grudge Match (v00.90, Italy, location test?), Gunbird 2 (set 2), Landing High Japan (Ver 2.02 O), Martial Masters (ver. 102, 101, 101TW) and Troopy (bootleg of Mr. Kougar) - New devices: adc0844, adc0848, arm_aic, c8095, flower_sound, i4100, i4220, i4300, i8156, i8274_channel, igs036, p8098, scn2681, teac_fd_30a and ymz774 - 8085A CPU . Code readability (just whitespace/comments cleanup here). Moved opcode macros to main file, will convert these to functions. Moved single-use opcodes to execute function. Lowercase/Renamed some functions. . Make cputype an enum, change flags and stuff to constexpr. Shorthand variable types. Changed opcode macros to functions. Cleanup. Added opcode space. - ARM7/9 CPU . Added rudimentary instruction prefetch buffer. Fixes (MESS) GBA NES Classics games. . Added 32- and 64-bit population count utilities. Only used in ARM7 core for now. Requires -msse4.2 or -mpopcnt to use CPU feature on x86 and -mpopcntb to use CPU feature on POWER (cpu\arm7\arm7ops.cpp and osd\eminline.h). . Fixed ARM7_BE and ARM7 MMU regressions . Derived IGS036 type in ARM7/9 core, because it seems like MMU could be different and there are probably other internal devices. . Fixed (?) BLX (LO) thumb opcode in ARM7/9 core, was storing a return address that skipped the following opcode. There might still be ARM9 issues. . LDR/LDRM switch to Thumb mode on ARMv5T (cpu\arm7\arm7ops.cpp). Added ARM v5/9 check. Handle DP-commands ROR case where Rs=32/64, removed few outdated comments. . Added support for high vector option, fixed v5 BLX to save the return address in R14. . Implement BLX Rn instruction for ARM9. (MESS) Nintendo DS ARM9 BIOS gets to the first checkpoint. . Flesh out ARM946ES, added movable DTCM and ITCM support. - CDP1802 CPU: Added WAIT/CLEAR input lines - HuC6280 CPU: Fixed brk logerror - Hyperstone CPUs . Some optimization (cpu\e132xs\e132xs.cpp), Elfin (dgPIX Entertainment Inc. 1999) benches roughly faster. . Removed unnecessary full reinit of regs_decode struct (cpu\e132xs\e132xs.cpp) . Reworked all opcodes, now considerably faster. . Templated all opcodes to reduce code duplication and fixed a few oversights. Fixed ldxx2 local,local case. . Added template check, index move, mask and sum handlers. sum Rd,C,const was incorrectly using the whole SR rather than just the carry value; sums with local register as destination was not burning cycles; negs doesn't need explicit guard against trapping when source is SR as carry flag alone can never cause an overflow. Template register-register mov and correct trap behaviour privilege trap should prevent user state code from writing high global registers; also change DEBUG_PRINTF to standard logmacro.h stuff. . Simplified set opcode, removed some needless use of set_global_register to get some speed back. - M6800 CPU: Reinstated registration of SR for debug expressions (cpu\m68000\m68kcpu.cpp) - M68010/68020/68030 CPUs: Added stack frames formats support. This make work this very common CPU type detection routine based on the bus error frame stack size: (cpu\m68000\m68kcpu.h). - MCS-48 CPU: The MCS-48 core needs to be re-written so it works at S-cycle level (if not clock cycle level), but for now I've worked around this case in the least intrusive way possible. - MIPS CPUs . Minor MIPS DRC fastram optimization and simplification (cpu\mips\mips3drc.cpp) . Cleanup TX4925 CPU implementation - PowerPC 4xx/6xx CPUs: Attempt at fixing PPC DRC scheduling (cpu\powerpc\ppcdrc.cpp). This fixed black screen on launch in Scud Race Twin (ID 06615). - SH-3/4 CPU: Added some SH3/4 recompiler changes that got lost at some point. It fixes an issue where 'Mushihime-Sama Futari Black Label' sound would cut out if left in attract mode on first boot due to timer irq 0 being missed and then never refiring due to the way the DRC code blocks work. - TLCS-90 CPU: First step towards modernization of internal peripherals (cpu\tlcs90\tlcs90.cpp) - Z80 CPU: Implemented Z80 HALT output and clear HALT condition during reset. Wakeup (MESS) Ritam 'Monty Plays Scrabble' and 'Master Monty' from HALT instruction using reset. - Williams ADPCM Sound Board: Lower the DAC volume of the williams_adpcm_sound_device (audio\williams.cpp). This fixed missing music in Mortal Kombat (ID 06694). - YMZ770 sound . Added pan, main volume level and clip limit control. Renamed "elem" for readability. Added 2nd volume control and notes. . Preliminary Yamaha YMZ774 emulation . Use cached cos table for YMZ770 MPEG audio decoding (sound\mpeg_audio.cpp) - 6522 VIA: Added some interrupt LOGs - 68681 DUART . DUART drives (MESS) Micro-Term 5510 EEPROMs (mc68681_base_device::ip6_w). Distinguish SCN2681 and MC68681 DUART types. . Use MCFG_DEVICE_ADD instead of custom macro. - 74123 TTL: Use line handlers for single lines (m10.cpp, nyny.cpp, r2dtank.cpp and spiders.cpp) - 74LS259 TTL . Added descriptive names for 74LS259 nibble write handlers to mjsister and rallybik . Added 74LS259 device to jackpool.cpp, pturn.cpp, twincobr.cpp and wardner.cpp - 8155 RIOT: Substantial rewrite of timer emulation. Modernized logging. Abandon "RIOT" name properly belonging to MOS 6532. Provided separate device type for 8156. Regression fix for Golden Arrow. - ADC0844 and ADC0848 A/D Converter . Added ADC0844 A/D Converter for input to mcr3.cpp (maxrpm), mcr68.cpp (spyhunt2), micro3d.cpp, midvunit.cpp and midyunit.cpp (term2) . Support ADC0848 variant, some adjustments to differential mode. Added ADC0848 to midxunit.cpp (revx). - DECO Custom . Fully handle sound latch internal in the DECO 146 device (boogwing.cpp, cninja.cpp, dblewing.cpp, deco32.cpp, dietgo.cpp, funkyjet.cpp, lemmings.cpp and rohga.cpp) . Added DECO CRTC (12MHz/2) and screen raw params for bogeyman.cpp, chanbara.cpp, dec0.cpp, dec8.cpp, firetrap.cpp and ssozumo.cpp - DS12885 RTC: Fixed DS128X/DS1288X main frequency divider. The output frequency must be fixed to 1HZ with these devices. In the MC146818, DV2-DV0 were used to select the input frequency to provide a proper time base. Since the DS12885/87 and DS1685/87 use only the 32.768kHz crystal these 3 bits are used to turn the oscillator on or off and to reset the countdown chain. There are not used anymore to select the main clock divider value. - EEPROM . Added serial EEPROM using new DO write callback to (MESS) TTI SBC (machine\eepromser.cpp). Added reference info for X2444 commands. . Initial commit for new flash memory device. Implementation of 28F010 and family flash memory devices. These are not compatible with the JEDEC-standard flash command protocol implemented in intelfsh. - Floppy . Don't segfault on empty tracks, fixes (MESS) Einstein 4game (formats\dsk_dsk.cpp) . Converted line handlers to READ/WRITE_LINE_MEMBER to make them devcb-accessible (machine\wd_fdc.cpp; drivers\guab.cpp) . Added TEAC FD-30A 3 inch floppy drive (MESS) Tatung Einstein - I8275 video: Fixed potential buffer overflow. Removed assert now that buffer overflow is guarded against in non-debug builds. - Konami Custom: K051937 actually sets up a register when background should be dimmed, fixes start/end pouring event colors in Chequered Flag. - MC6845 CRT: Minor transparent update refactoring - RS232: Changed 9615 baud configurations to the nominal 9600 baud now that Z80SIO is more tolerant. Removed 9615 baud setting. - uPD4701 counter: Better handling of uPD4701 control lines - V9938/9958 video: Convert to use RGB32 bitmaps. Palette has been retained mostly for the sake of the palette viewer, and now reflects the actual programmed values, rather than being a fixed RRRGGGBBB encoding plus a hacky mess for the V9958's YJK colors. V9938-on-V9938 transparent overlay is fixed for meritm.cpp (was broken a few releases ago). - Voodoo GFX . Use SSE routines for texture perspective correction . Suppress function-like macro expansion for MSVC - Z80 DAISY: Added a generic Z80 daisy chain device, for use in drivers with non-Z80 peripherals ((MESS) Einstein). Added irq output callback (cpu\z80\z80daisy_generic.cpp). - Z80 SCC: General cleanup and backport of Z80 SIO improvements (machine\z80scc.cpp) - Z80 SIO . Moved object finder resolution before device_start (emu\device.cpp and machine.cpp). This fixed Z80SIO not safe with attached RS232 port. MAME can crash if a device sets the initial state of the input lines for a z80sio_device at device_start time. . Made async receive behave more like real device. Check that start bit persists for half a clock interval. Sample data bits mid-interval. Handle invalid stop bit as described in Zilog manual. Check parity and latch overrun and parity errors. This fixes the issues with corrupt characters being typed on the Kaypro. Synchronous modes are still broken. The channels are still using device_serial_interface to transmit frames, but receiving is handled entirely in the device class itself. Overruns still aren't handled properly. . Better handling of Rx FIFO and interrupts in async mode. Framing error should always generate interrupt in interrupt-on-first mode. . Moved dlair.cpp and proconn.cpp driver from z80dart.h to z80sio.h . First stab at WRDY emulation. Some logging improvements. Use arays for callbacks. . Don't use device_serial_interface for transmit - it can't support sync modes, on-the-fly register updates, and other weirdness. Better modelling of 1-deep transmit queue. Better RTS/CTS behaviour. Completely overhauled interrupt logic - vectors should be correct for most async modes. Implemented different auto-reset receive errors in MPSC vs SIO. Implemented SDLC transmission including bit stuffing, transmit CRC, abort, and underrun/end-of-message behaviour. Added an SDLC consumer device that logs SNA frame headers and data. . Generalise synchronous transmission to other modes, re-implement break detection. . Implemented enough of synchronous receive mode to pass uts20 channel A loopback test. Treat disabling transmitter as satisfying a transmit interrupt. Disabled automatic CRC transmission in monosync mode. Clear receive errors on channel reset. Fixed reporting receive errors. - amusco.cpp: Improved colors. Removed VRAM placeholder, allocate it in video_start. - cb2001.cpp: IRQ acknowledgment - cidelsa.cpp: Added WAIT/CLEAR input lines to CDP1802 CPU. Added DO read function to CDP1852 I/O. - cps3.cpp: Fixed CPS3 Multi-game bootlegs and Street Fighter III 2nd Impact bootlegs to use for 6 buttons - crgolf.cpp: Minor update - cv1k.cpp . Demoted all sets to imperfect speed, set audio output to mono. Document dipswitches. Consistent service mode enter button. . Added some SH3/4 recompiler changes that got lost at some point. It fixes an issue where 'Mushihime-Sama Futari Black Label' sound would cut out if left in attract mode on first boot due to timer irq 0 being missed and then never refiring due to the way the DRC code blocks work. . Added YMZ770 pan, main volume level and clip limit control. Added YMZ770 2nd volume control and notes. - cyclemb.cpp: Added preliminary audio for Cycle Maabou and Sky Destroyer - dec0.cpp . Emulated sound protection state machine for Secret Agent/Sly Spy and get rid of ROM patch. Emulated Sly Spy RNG device at $31c00d. This makes gameplay to behave very differently than before, game extensively uses this port to mix up stuff especially with the bosses. . Fixed sound randomly speeds up and eventually dies in bouldash and secretag/slyspy (ID 06740) - dgpix.cpp: Some minor optimization, Elfin benches roughly 11% faster. - dwarfd.cpp: Fixed potential buffer overflow (video\i8275.cpp). Removed assert now that buffer overflow is guarded against in non-debug builds (video\i8275.cpp). This fixed debug assert shortly after start (ID 05761). - firetrk.cpp: Added screen raw params. Got rid of using PORT_CODE on IPT_BUTTONs. - gei.cpp . Moved 'signatures' out of the source and into a ROM, as suggested. . Switched to configured banking . Added save state support . Added default NVRAMs to avoid errors on first boot and signature roms to findout, geimulti, gtsers15, reelfun, reelfun1, sexappl, sprtauth, suprpokr, suprpokra and suprpokrb. . Fixed game checks 'signature' in GEI Multi Game (ID 04651) . Cleanup - hyprduel.cpp: Removed sprite register hack - idsa.cpp: Added PPIs and updated notes - konamigv.cpp . Trackball modernization for btchamp and simpbowl . Better handling of uPD4701 control lines for btchamp - mainevt.cpp . Reversed button1 and button2 as per service mode for The Main Event . Fixed sprite shadows for Devastators - meritm.cpp: V9938-on-V9938 transparent overlay is fixed for meritm.cpp (was broken a few releases ago). This fixed "Run21" game in the Megatouch sets which is missing graphics for black-suited cards (ID 03719) - metro.cpp . Rewritten Imagetek I4100/I4220/I4300 video display processor family, hooked it up. Configure VDP the normal way with its standard XTAL. . ACCESSING_BITS cleanup . Added scanline timer-based vblank interrupt to Bang Bang Ball. This fixed game runs sometimes like slow-motion (ID 00525) . Videoregs are read-backable. This fixed sprite layer disappears entirely in Blazing Tornado after completing single player game (ID 06518). . Added sprite x/y center point registers, removed screen check hack. Mahjong Gakuensai 2 uses RMW access on POST. . Puzzlet actually uses the same window VRAM area RMW as Karate Tournament, clean both. - micro3d.cpp . Added ADC0844 A/D Converter for input and fixed throttle regression. The throttle has been broken since MAME 0.154. Note: Clone Battle of the Solar System (rev. 1.1 3/24/92) doesn't have the analog throttle. . Attach RS232 port to monitor port. Start with "mame f15se -monitor terminal" for example to see debug messages from the game. . Correct and simplify device tags in Micro3D driver. Improved USART behavior for polled operation (machine\mc68901.cpp). - model2.cpp: Input port rationalization - model3.cpp . Added Player 2 inputs for all games and left/right stick for Virtual On 2 . Attempt at fixing PPC DRC scheduling (cpu\powerpc\ppcdrc.cpp). This fixed black screen on launch in Scud Race Twin (ID 06615). . Fixed music and reduced log spam (audio\dsbz80.cpp, machine\m3comm.cpp) - n8080.cpp: Directly set 8035 IRQ line rather than generate fake pulses, restores some sounds in HeliFire. - namcond1.cpp . Fixed rotation and scrolling. Small cleanups (video\ygv608.cpp). . Added scrolling-by-row used in NCV1 'Xevious Arrangement' . Fixed scaling effect used in NCV2 'Pac-Man Arrangement' staffroll - namcos10.cpp: Updated type 3 daughterboard docs - naomi.cpp: Replaced bad dump 317-0437-com.ic3 rom in 'Mushiking The King Of Beetles - Mushiking II / III / III+' - pgm2.cpp . Preliminary PGM2 emulation. Most video features emulated, Oriental Legend 2 mostly OK. See notes. . Dumped internal IGS036 roms from Oriental Legend 2 (V104, China) and Knights of Valour 2 New Legend (V302, China) . Started adding some devices to the PGM2 driver to support it. Derived IGS036 type in ARM7/9 core, because it seems like MMU could be different and there are probably other internal devices. Fixed (?) BLX (LO) thumb opcode in ARM7/9 core, was storing a return address that skipped the following opcode. There might still be ARM9 issues. . Added pan, main volume level and clip limit control. Added 2nd volume control and notes (sound\ymz770.cpp). . Added yshrink for sprites, line doubling and sprite xgrow/xshrink for basic non-flipped cases. . Support sprite zooming for flipped/reversed cases (lightly tested, only seems used by lightning on orleg2 char select at the moment) . Use cached cos table for decoding (sound\mpeg_audio.cpp) - piggypas.cpp: XTAL-derived clocks. Focumented some chip types. Added NVRAM. More documentation. - playmark.cpp: Make games in driver respect common/separate Coin slot. Issue: DIPs where defined as "SW1" and conditional statements where looking for DSW1. Also makes coinage into a DEFINE statement and uses PORT_INCLUDE & PORT_MODIFY for clone Big Twin (No Girls Conversion) which only has 1 dipswitch deference. - seattle.cpp and vegas.cpp: SMC91C9X Ethernet controller now working in connected mode with WinPcap or TUN/TAP tunnel - segahang.cpp and segas16b.cpp: Use MCFG_SCREEN_VBLANK_CALLBACK instead of irq0_line_pulse for Sega i8751 interrupt - seibucats.cpp: Dumped obj roms - seta.cpp . A few small cleanups. Documentation update. . Better wraparound handling for relative inputs (emu\ioport.cpp). This fixed speed difference when rotating player in Caliber 50. . Soundlatch modernization for Ultra Toukon Densetsu . Added ADC device to Zombie Raid - shanghai.cpp: Fixed fast gameplay and sound (ID 06193) - stv.cpp . Fixed line/polyline drawing ('Die Hard Arcade' wireframe map) (video\stvvdp1.cpp) . Moved internal SCUDSP program/data maps (machine\sega_scu.cpp) into CPU core (cpu\scudsp\scudsp.cpp) . Fixed shanhigw and sokyugrt starts with 2 credits inserted (video\stvvdp2.cpp) (ID 04366) - taitosj.cpp: Fixed ay2,3,4 volume regression. This fixed Elevator Action sound (ID 06527). - techno.cpp: IRQ modernization. Reimplement IRQ generation based on an educated guess. - vegas.cpp: Improved debug messaging for serial port (machine\vrc5074.cpp) - vicdual.cpp . Added bonus sound sample to Depthcharge . Added sound samples to Tranquillizer Gun and clone Borderline (Tranquillizer Gun conversion) - AGEMAME: Redumped clones Adonis (BHG1508, US), Boot Scootin' (GHG1012-02, US), Bumble Bugs (CHG0479-03, US), Cash Chameleon (DHG4078-99, US), Enchanted Forest (JHG0415-03, US) and Golden Pyramids (AHG1206-99, US). Now the set has correct checksum and boots. - Chequered Flag . Fixed dimmed screen condition bug when soft resetting . Improved shadow/highlight code, fixes black rain and lights at dawn. . K051937 actually sets up a register when background should be dimmed, fixes start/end pouring event colors. - Dobou-Chan: Allow GFX ROM test to pass. Added inputs. - Double Wings: Added save item (soundlatch pending) - Flower . Rewrote Flower driver from scratch and improvements . Fixed visible area to 288x224, fixes left-most columns (inside the big ship). Background layers actually had reversed priority (outside and inside the big ship). Fixed all outputs. Added third Z80, sprite shrink feature, flip screen and other stuff. Fixed zoom points for 32x32 sprites. Actually using Namco xtal so most likely runs at 60.606060. . Rewrote custom sound device. Added guessed 'Flower Custom Sound' clock. - Game Magic . Correct error in shadow ram adresses and convert comments to C++ (bus\lpci\i82439tx.cpp) . Not all sothbridges have an internal keyboard controller, RTC, serial and parallel devices. Now southbridge_device does not have them. There is a new southbridge_extended_device that has them. i82371ab_device derives from southbridge_extended_device. Converted comments to C++. - Jackpot Cards: Added 74LS259 addressable latches and NS16550 UART - King & Balloon: Added correct soundrom to King & Balloon (US). Note: The 2nd half was missing ("bye bye" voice cut off). - King of Boxer: NMI gate was misconfigured in clones Ring King (US set 1/2); works again now. - Marine Date . Rewrote Marine Date driver from scratch and improvements . Added sea bitmap and flashing when shark appears. Improved sprite/tilemap colors, now more accurate to the references. Fixed priority, both sprite layers are actually above text tilemap. Added player 2 trackball inputs, and global coin lockout. Streamlined and improved collision detection (still not perfect therefore game still marked NOT_WORKING). Sprite offset fixes and minor other changes. . Fixed MAME crashed when starting game (ID 06745) - Monkey Magic: Added sound samples ( - Mortal Kombat: Lower the DAC volume of the 'Williams ADPCM Sound Board' (audio\williams.cpp). This fixed missing music in Mortal Kombat (ID 06694). - Out Zone: Fixed screen is misaligned 16 pixels to the left in clone Out Zone (Zero Wing TP-015 PCB conversion) (ID 06749) - Pac-Land: Added keep sprite-sprite priorities intact on priority-over-fg sprites. This fixed Pac-Man will be displayed in front of the hat in invincible state (ID 06742). - Paint & Puzzle: Added 6522 VIA interface and 8798 MCU dump - Parallel Turn: Added 74LS259 device and coin counters. Removed PULSE_LINE. - Perfect Billiard: Minor doc update & rom label correction - Ping-Pong King . Added preliminary MCU simulation for Ping-Pong King inputs . Added preliminary YM2203 and MSM5205 ADPCM sound. Added P2/ DSW1 / clean stuff and flip screen. . Added sub CPU IRQ ack and MCU input check on state 3 . Fixed input lag protection. DSW2 reading now works too. . Fixed sprite left edge wraparound, made "round" dipsw more verbose, misc cleanups (Game now playable). - SD Gundam Psycho Salamander no Kyoui: Replaced rom patch with a slightly less gross hack. Note: Routine at $134C sends no sound commands if lowest bit is 0. - Sexy Parodius: Demoted game with IMPERFECT_SOUND & UNEMULATED_PROTECTION - Space Firebird: Fixed DAC sound (ID 06766) - Super Othello: Very minor cleanups + preparation for save state support - Syusse Oozumou: Fixed wrong colors in the title logo (ID 03804) - Tekken Tag Tournament: Fixed clones (World, TEG2/VER.C1, set 2) and (US, TEG3/VER.B) doesn't boot - Thunder Ceptor: Properly hooked up 3D scope view to 3-D Thunder Ceptor II - Time Attacker . Added ball, edges and wall drawing. Fixed background color and visible area. . Added paddle input & drawing. Added bottom edge and enable feature. Added paddle shrink, hooked up flip screen and bricks color bank. . Fixed some dips/inputs. Emulated brick blinking effect. Added sound samples (Game now playable). - Time Crisis 3: Added dump of V291 I/O board - Wai Wai Jockey Gate-In!: Fixed wrong colors in Wai Wai Jockey Gate-In! and clone Photo Finish (bootleg?) (ID 03805) - Wave Runner GP: Dumped motor board rom - Wiping: Removed unused variable. Added guessed 'Wiping Custom Sound' clock. - World Grand Prix: Added save state support, removed anonymous timers and killed trampolines. - Zoofari: Cleanup TX4925 CPU implementation (cpu\mips\mips3.cpp) - Input port . Lower beeper volume (machine\terminal.cpp) . Added a little logging to machine\input_merger.cpp . Better wraparound handling for relative inputs (emu\ioport.cpp). This fixed speed difference when rotating player in Caliber 50 (ID 06759). Fixed core rounding error with analog input sensitivity scaling (emu\ioport.cpp). - Dipswitch fixes in bishi.cpp, cv1k.cpp, gladiatr.cpp, marinedt.cpp, pgm2.cpp, playmark.cpp and tattack.cpp - Fixed rom names in cps2.cpp, itech8.cpp, freekick.cpp, naomi.cpp and pacman.cpp - Description changes of 3-D Thunder Ceptor II, Daytona USA (Japan), Grudge Match (v00.80, prototype), Gunbird 2 (set 1), Knights of Valour 2 New Legend (V300, China), Last Fortress - Toride (China, Rev A), Last Fortress - Toride (China, Rev C), Last Fortress - Toride (Japan), Last Fortress - Toride (Germany), Mr. Kougar (bootleg), Mr. Kougar (German bootleg), unknown Fun World A0-1 game, unknown Fun World A7-11 game 1, unknown Fun World A7-11 game 2, unknown Inter Games poker, unknown game (MAC #1808), unknown poker game PKII/DM, unknown Sega gambling game (M1 Satellite board), unknown 'VIP 2000' game, - Renamed (grudge) to (grudgep), (mtkob2) to (mushike), (orleg2oa) to (orleg2_101), (orleg2o) to (orleg2_103), (bbustersj) to (bbustersja), (bbustersja) to (bbustersj), (kov2nlo) to (kov2nl_301) and (kov2nloa) to (kov2nl_300) - MAME . VIDEO RENDERING SYSTEM: Various palette and screen improvements. Use device_resolve_objects to removed the need for resolve_palette. Palette format no longer depends on configuration of first screen (emu\dipalette.cpp, divideo.cpp and screen.cpp) [AJR]. . DEVICE: Moved object finder resolution before device_start (emu\device.cpp and machine.cpp) . UI . Fixed tilemap live updates regression (ui\viewgfx.cpp) . Fixed Reset was sometimes ignored in File Manager (ui\filemngr.cpp) . Removed irqN_line_pulse interrupt generators. Vestigial commented-out uses remain in cdi.cpp. This does not affect nmi_line_pulse (emu\driver.cpp/h). . Replaced driver_device::generic_pulse_irq_line with device_execute_interface::pulse_input_line + CPU minimum quantum. This "Pulse" an input line by asserting it and then clearing it later. Correct irq pulse timing in dotrikun.cpp and duration in firetrk.cpp. For meyc8088.cpp the interrupt is auto cleared by INTA (emu\diexec.cpp, driver.cpp, audio\dcs.cpp, rax.cpp, drivers\cball.cpp, changela.cpp, cvs.cpp, dotrikun.cpp, equites.cpp, firetrk.cpp, fitfight.cpp, gaelco3d.cpp, homedata.cpp, igs_m027.cpp, m90.cpp, mgolf.cpp, namcond1.cpp, namcos22.cpp, pntnpuzl.cpp, ssfindo.cpp, starshp1.cpp, zac_2.cpp, machine/3do.cpp, archimds.cpp, galaxold.cpp, namcos2.cpp and pgmprot_igs027a_type3.cpp). . Merged popcount implementation in emucore.h with the new osd\eminline.h (see namcona1.cpp driver; printf("popcount ...population_count_32(m_keyval...)) . Added MACHINE_NODEVICE_LAN flags (cischeat.cpp, cps2.cpp, namcofl.cpp, namcos11.cpp, namcos22.cpp, neogeo.cpp and segaxbd.cpp) and CAMERA and MACHINE_NODEVICE_PRINTER flags (neoprint.cpp, stv.cpp and taito_b.cpp) (ID 06586) . Get rid of branches in cout_leading_zeros and ount_leading_ones (osd\eigccppc.h and eigccx86.h) . PLUGINS: Added option to hiscore.ini to only_save_at_exit (hiscore\init.lua) . Multi-Language: Updated Greek, Portuguese (PT-PT) and Spanish translations - SDLMAME: Make SDL input less eager to generate double-click events when mouse doesn't move between clicks (input\input_sdl.cpp) - Compiling: Get rid of some "auto" (cpu\z180\z180.cpp, sound\ymz770.cpp and drivers\gaelco3d.cpp) 0.191 - New Working games: Big Casino, Target Hits (ver 1.1, Checksum 5152) and Target Hits (ver 1.0, Checksum FBCB) - New Non-Working games: Baby Boom Challenge, Casino Strip I (Poker version, for Pioneer LD, set 1), Casino Strip II (Poker version, for Sony LD), Casino Strip III (Poker version, for Sony LD), Casino Strip IX (Poker version, for Sony LD), Casino Strip Private Eyes / All Start (Poker version, for Sony LD), Casino Strip V (Poker version, for Pioneer LD), Casino Strip V (Shooting Game version, for Pioneer LD), Casino Strip VI (Poker version, for Sony LD), Casino Strip VI (Shooting Game version, for Pioneer LD), Casino Strip VIII (Poker version, for Sony LD), Casino Strip VIII (Shooting Game version, for Pioneer LD), Casino Strip Vivid 1 (Poker version, for Sony LD), Casino Strip X (Poker version, for Sony LD), Casino Strip XI (Shooting Game version, for Pioneer LD), Casino Strip XII (Poker version, for Sony LD), Dobou-Chan (ver JAA), E-Touch Mahjong Series #2: Joshiryou de NE! (Japan), E-Touch Mahjong Series #6: Scandal Blue - Midara na Daishou (Japan), E-Touch Mahjong Series #7: Trap Zone - Yokubou no Kaisoku Densha (Japan), Gokidetor, Note Chance, Ocha-Ken Hot Medal and Ton Puu Mahjong [BET] (Japan) - New clones: Alien3: The Gun (Japan), Athena (bootleg), Biomechanical Toy (Ver. 1.0.1878), Cabal (UK, Joystick), Casino Strip XI (Poker version, for Sony LD, set 2), Cobra Command (M.A.C.H. 3 hardware, set 2), Cyberball (rev 1), Flash Point (Japan, bootleg set 2), G-LOC R360 (Japan), Knights of the Round (bootleg, World 911127), Knights of Valour 3 (V104, China), Knights of Valour 3 (V100, China), Poker Ladies (Censored bootleg, set 2), Rod-Land (World, set 2), SD Gundam Sangokushi Rainbow Tairiku Senki (Korea), Super Hang-On (Hang-On conversion, Beta bootleg), Target Hits (ver 1.1, Checksum 86E1), Tecmo World Cup '94 (set 3), TH Strikes Back (Non North America, Version 1.0, Checksum 020EB356), unknown 'Space Invaders' gambling game (set 2), Virtua Athletics / Virtua Athlete (prototype) and World Series: The Season (rev 0) - New PinMAME games: 301/Bullseye (Traditional Scoring), A.G. Soccer Ball (R07u), Cheetah (Blue Cabinet), Eight Ball (rev. 17), Time Warp (L-3) and Trident - New drivers: anes.cpp, gokidetor.cpp, notechan.cpp and seibucats.cpp - New devices: i8212, pc060ha, sega_scu and smpc_hle - 8085A CPU: Correct a few opcode names (cpu\i8085\8085dasm.cpp) - DS5002FP MCU . Added DS5002FP SRAM dumps to Target Hits and clone (Games now playable). Bring visible area down to size of test screen, seems more likely. See . Dumped Touch & Go DS5002FP SRAM from 2 more boards, used that dump to verify/correct the SRAM image. - Dynamic Re-Compiling . Changed SSE control to not use Denormals-Are-Zero. Allows MIPs DRC to function correctly and fixes mismatch between MIPs DRC and non-DRC modes (cpu\drcbex64.cpp). Fixes various effects in Gauntlet Legends and Gauntlet Dark Legacy cause more damage than they probably should (64-bit only) (ID 06724). . Fixed compile due to unused variable (cpu\uml.cpp) - I386 CPU: Use correct stack size in retf - M6800 CPU: Fixed behaviour of V flag #2 in CPX (compare X) instruction (m6800\6800ops.hxx). Previous fix for CPX a year ago (MAME 0.175) was flawed and didn't handle overflow properly. - M6809 CPU: Fixed overflow flag problem with SBC8 and ADC8 (cpu\m6809\base6x09.ops) (ID 06719). Credit goes to Pierre Sarrazin and Tim Lindner for investigating/finding this bug. - SCUDSP CPU . Fixed register state for debugger . Moved SCU related functions inside a device (machine\sega_scu.cpp) - SH-3/4 CPU . Merged Hitachi SuperH CPU cores and implemented a preliminary SH3/SH4 recompiler . Recompiler is currently enabled for Cave CV-1000 but disabled for Sega NAOMI and can more than double the benchmark speed of CV-1000 games. - Z8000/Z8002 CPU: The Z8000 daisy chain is different enough from the Z80 that it'll probably need it's own implementation if anything uses it. The (MESS) P8000 (16bit Board) uses glue logic to make z80 daisy chain devices work. - EEPROM: Removed endianness check (machine\eeprom.cpp) - Floppy . Don't set mon_w(0) if there's no image otherwise you have to insert, remove and insert a disk again before ready is set (imagedev\floppy.cpp). . Don't change sides if the drive has only one head (imagedev\floppy.h) - HuC6270 video . Inverted h/vsync logic for interrupts, fixes several PC Engine hangs (video\huc6270.cpp). . VRAM is actually only 0-0x7fff, area 0x8000-0xffff is open bus and cannot be written to. . Moved VRAM-VRAM DMA from vblank callback to hsync, fixes extended/Unexpected periods of black screen in (MESS) PC Engine Takeda Shingen (ID 06701). . Actually battlera.cpp can access upper VRAM bounds, fixed regression. - Imgtool: Created a more flexible imgtool::datetime structure for use within Imgtool. This is intended to replace most usage of time_t. Changing the granularity of imgtool_clock from 1ms to 100ns, as per Vas' suggestion. Created arbitrary_datetime in timeconv.h to facilitate interpretation of datetime info. I concluded that invoking std::mktime on manually assembled std::tm is bad, because it is indeterminate how the std::tm members may be "dominant". This required that I go further in imgtool, and updated a number of drivers (imgtool\modules\amiga.cpp, cybiko.cpp, cybikoxt.cpp, fat.cpp, mac.cpp, macbin.cpp, macutil.cpp, prodos.cpp and thomson.cpp) and eliminated the parameter of imgtool::datetime that takes std::tm. - MC146818 RTC: Fixed main interrupt flag - Taito Custom: Draw a nominal distinction between PC060HA and TC0140SYT. Separated Raimais configuration and unified video. Clone Cameltry (World, YM2203 + M6295) uses PC060HA. Darius more likely to use PC060HA instead of TC0140SYT. - Voodoo GFX . Use optimized routine to get color data (video\vooddefs.h) . Use table lookup for RGB565 conversion (video\vooddefs.h) . Added some code optimizations and reorganized a few function calls to make profiling easier (video\vooddefs.h, video\voodoo.cpp). . Incorporated some more SSE optimizations (video\rgbsse.h) . Check for starting x outside of clipping rectangle and fix clipping xstop (video\vooddefs.h) - Z80 DART/SCC/SIO . Eliminated custom MCFG_Z80DART_ADD/Z80SIO_ADD macros . Inverted DCD status bit in Z80 SIO . Z80 SIO and Z80 SCC now returns CPU specific default vector when no interrupt found to acknowledge. . Fixed SCC interrupt mask generation - avt.cpp: Added devices. Added notes from the remnants of the schematic. Fixed regression and added notes. - bishi.cpp: Added input labels to Bishi Bashi and Super Bishi Bashi based on in-game and cabinet images - cv1k.cpp: Implemented a preliminary SH3 recompiler. Recompiler is currently enabled for Cave CV-1000 and can more than double the benchmark speed of CV-1000 games. - dec0.cpp . Updated inputs. Added input labels for most games in the driver and removed unused buttons. . Updated positional rotary for Heavy Barrel/Midnight Resistance to use remap table . Made Boulder Dash to use 4way stick as per manual . Hooked up priority video port to Midnight Resistance bootlegs. This fixed missing sprites in the section where the player saves the family (and gets powerups) and the ending. - cedar_magnet.cpp: Fixed typo in audio\efo_zsu.cpp (MCFG_DEVICE_ADD("fifo",HC40105 -> CD40105) - gaelco.cpp . Fixed various clock speeds (biomtoy, biomtoya, maniacsp, squash and thoop) . Added PCB layout for Biomechanical Toy - gcpinbal.cpp: Name keys as per game's test screen - jalmah.cpp: Improved fake palette DMA behaviour, avoid corrupt colors for girls. - micro3d.cpp: Fixed TCDCR register in MC68901 MFP. Bits 6-4 are used for timer C and bits 2-0 are used for timer D, see page 43. - namcond1.cpp . Rewrote built in RAM access control. Added screen control 7, 8 & 9 (video\ygv608.cpp). . Fixed page select boundaries for tilemap drawing (video\ygv608.cpp), fixes Namco Classic Collection Vol.2 garbage gfxs in attract mode. . Reset pattern name table states on mode changes (video\ygv608.cpp), fixes corrupt tiles in 'Mappy Arrangement' of Namco Classic Collection Vol.1. . Added screen control 11 (layer transparency enable), made POST screens again green for NCV1 & 2. . Kill legacy code, legacy register code and legacy ports variables (video\ygv608.cpp). . Enabled sprite wraparound when both sx and sy past clipping boundaries, fixes Namco Classics Vol. 2 disappearing char on game select. . Sprite drawing cleanups. Added screen control 12. Fixed CRTC vblank period, fixes NCV2: Dig Dug Original regression. Added note about missing registers. - naomi.cpp . Converted last remaining key data to PIC binary for Azumanga Daioh Puzzle Bobble . Decap and identify Atomiswave 'ROMEO' ASIC - segae.cpp: Minor documentation updates. Document Megumi Rescue. - segag80r.cpp: Replaced protection kludge with something less horrible - segas16b.cpp: Some corrections to Aurail documentation - segasp.cpp: Network firmware ver 1.25 dumped - seibucats.cpp: Revised old notes; some address map findings. - stv.cpp . Fixed STV crashing regression, make m_cart_reg explicitly nullptr if not initialized. . SMPC device-ification (System Manager and Peripheral Control MCU simulation; machine\smpc.cpp) . Reset/halt/nmi lines delegation. Moved IREG & OREG to internal device state. Execute commands internal to the device for ST-V. . Simulated SETTIME bit behaviour if an invalid NVRAM data is found for Sega Saturn like original hardware does. All Sega Saturn ROM sets now calls the BIOS setup if NVRAM is uninitialized, setting up proper defaults. . Added remaining devices, removed almost all trampolines, cleanups and merged implementations between ST-V and Saturn. . Moved SCU related functions inside a device (machine\sega_scu.cpp) and added DMA save state registration . Added ROZ mode 3, fixes split screen in 'Taisen Tanto-R Sashissu!!', backgrounds in 'Touryuu Densetsu Elan-Doree / Elan Doree' and Guy stage in 'Final Fight Revenge' (video\stvvdp2.cpp). . Fixed potential crash in video\stvvdp1.cpp. CEF bit gets reset when the framebuffers get swapped (video\stvvdp1.cpp), fixes (MESS) 'Twinkle Star Sprites' arcade mode hang at least. . Use explicit AM_REGION to prevent unnecessary copying; use AM_MIRROR for ROM mirrors. . Don't downcast controllers that aren't configured (machine\smpc.cpp) . Modernized BIOS mirroring; fix up finders and region lengths/widths. . Don't let SCU DSP go anywhere, use device_reset_after_children() (machine\sega_scu.cpp). . Fixed Guardian Force hangs after insert coin (ID 06697). The game tests an exclusive monitor mode bit to be 1 from title screen to gameplay. Sea Bass Fishing explicitly wants this bit to be 0 when screen is disabled from bios to game transition. . Fixed Sport Fishing 2 'No CDROM found' regression. Patch BIOS to actually return a country code. Added bare bones MPEG CD commands. Game now loops into attract mode with mostly missing graphics (MPEG video logic not yet added). . Added Batman Forever input labels (Jump, Punch and Kick) - supbtime.cpp . Merged tumblep.cpp with supbtime.cpp driver. Removed duplicate code. . Screen raw parameters and XTAL values. Added DIP locations to all games. . Added PAL dumps for Super Burger Time - taito_b.cpp: Fixed pixel layer offset and enable for Hit the Ice - tecmo.cpp and tecmo16.cpp: Soundlatch modernization - vegas.cpp: Changed SSE control to not use Denormals-Are-Zero. Allows MIPs DRC to function correctly and fixes mismatch between MIPs DRC and non-DRC modes (cpu\drcbex64.cpp). Fixes various effects in Gauntlet Legends and Gauntlet Dark Legacy cause more damage than they probably should (64-bit only) (ID 06724). - Air Inferno: Dumped controller rom - Ameri-Hockey . Fixed Z8 disassembly of "LDE Irr, r" . Make game play a few noises - Big 10, Pyon Pyon Jump and TonTon: In according Success website (, Big 10 is Success gambing game, 'Pyon Pyon Jump' year is 1991 and release year is 1985 and 'Waku Waku Doubutsu Land TonTon' year is 1987 (ID 06487). - Big Casino: Fixed input (Game now playable) - Bottom of the Ninth: Fixed K051960 gfx rom loading (sprites have incorrect colors) in clone Bottom of the Ninth (version N) (ID 06690) - Bubble Bobble . Use MCFG_SCREEN_VBLANK_CALLBACK instead of irq0_line_pulse . Fixed for sets with no MCU - Capriccio Spin 2: Reduced address range for TE7750; add some notes on mystery writes. - Denjin Makai: Fixed background pen colors - Double Axle: Saner interleave CPU timings, attempt to fix road layer getting stuck on continue. - Gauntlet: Reinstated correct size for gfx1 rom 136037-104.6p (second half 0x00), which was chopped off a long time ago. - Hippodrome: Demoted clone Fighting Fantasy (bootleg with 68705) to MACHINE_NOT_WORKING. Note: Game doesn't move on when killing the Lamia, is the MCU involved? - Kick Off: Fixed rom loading, OKI2 now plays proper crowd cheering. - Mahjong Tenkaigen: Fixed credits lost after exiting the game. The game checks for the the string "A WARNING.IF YOU COPY OUR ITEMS,WE REVENGE BY ALL MEANS." at address 0x6E17, and will reset everything if the string does not match when the game starts. I'm not sure what the exact NVRAM address is, but at least this works. - Martial Champion: Fixed game does not disable interrupts during EEPROM read when in test mode (ID 00759) - Metal Black: Fixed inverted Single/Dual settings for 'Upright Controls' dipswitch - PinMAME . Fixed CPU type and added 6522 VIA to Escape (jvh.cpp) . Super Star (Recreativos Franco): Renamed I8212 IRQ to INT to agree with Intel pin names. I8212 overhaul: Changed the mode setting from a line write to an input callback. This is based on the observation that MD is nearly always tied to either Vcc or GND on actual hardware. Make the mode a scoped enumeration. Added strobed write handler for input mode. This allows the device to be hooked up in supstarf in place of generic_latch_8_device. Added interrupt acknowledge callback for future use. Added extensive introductory comments. - Qix: Added some documentation to clone Qix (set 2, larger roms). Note: The same ROMs, with different labels, were also found on an original Taito TT Qix 2 PCB set. - Super Pinball Action: Provisional MCFG_SCREEN_RAW_PARAMS. Acknowledge main IRQ; restore legacy screen configuration due to missing sprites. - Tokio: Removed partial updates from Tokio video, fixes graphic glitches on the right side of the screen (ID 06691) - Wheels & Fire: Converted palette to RAMDAC device - Input port . Tighten up scope. Get rid of vestigial palette that was breaking generic terminal when it isn't first screen (machine\terminal.cpp). . Expose condition for dipswitches, configuration entries and adjusters. This eliminates ambiguities between settings with different conditions and allows a frontend/tool to generate a dipswitch preview (emu\ioport.h). . Added support for multiple PORT_CHAR() bindings, and adopted in the (MESS) CoCo driver. . Proposed fix for rotary positional joystick with skipped positions (emu\ioport.cpp) (ID 06154) . Make xinput analog triggers half-axes and default IPT_PEDAL2 to RZ- instead of Z+, placing IPT_PEDAL and IPT_PEDAL2 on separate axes. - Dipswitch fixes in supbtime.cpp, stv.cpp and taito_f2.cpp - Fixed rom names in by17.cpp, itech8.cpp, naomi.cpp, st_mp200.cpp and thoop2.cpp - Description changes of 301/Bullseye (301 Darts Scoring), A.G. Soccer Ball (R18u), Casino Strip I (Poker version, for Pioneer LD, set 2), Casino Strip IX (Poker version, for Pioneer LD), Casino Strip VIII (Poker version, for Pioneer LD), Casino Strip XI (Poker version, for Sony LD, set 1), Cheetah (Black Cabinet), Cobra Command (M.A.C.H. 3 hardware, set 1), Cyvern - The Dragon Weapons (US), Cyvern - The Dragon Weapons (Japan) (ID 06704), Dragon Ball Z (rev A), Dragon Ball Z (rev B), Dragon Ball Z 2 - Super Battle, Eight Ball (rev. 20) (ID 06713), Flash Point (Japan, bootleg set 1), G-LOC R360 (World), The House of the Dead, The House of the Dead 2 (USA), The House of the Dead 2, The House of the Dead 2 (prototype)', The House of the Dead 4 (Export) (Rev B), The House of the Dead 4 (Export) (Rev A), The House of the Dead EX (Japan), Meteor (First release), Meteor (Bug fix release), Naomi The House of the Dead 2 Bios, Oriental Legend 2 (Korea) / Xi You Shi E Zhuan Super Plus (World, China, Japan, Hong Kong, Taiwan) (ver. 205) [Oriental Ex], Panic Park (World, PNP2 Ver. A), Poker Ladies (Censored bootleg, set 1), Rod-Land (World, set 1), SD Gundam Sangokushi Rainbow Tairiku Senki (Japan), Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) Version B (prototype), Super Strike Bowling (V1), Target Hits (ver 1.1, Checksum 5152), Target Hits (ver 1.0, Checksum FBCB), TH Strikes Back (Non North America, Version 1.0, Checksum 020E0867), unknown 'Pac-Man' gambling game, unknown 'Space Invaders' gambling game (set 1) and World Series: The Season (rev 1) - Renamed (cstrip) to (cs1_spp2), (cstripix) to (cs9_spp), (cstripviii) to (cs8_spp), (cstripxi) to (cs11_sps), (meteorp) to (meteorpo), (meteorp2) to (meteorp), (kov3) to (kov3_102), (targetha) to (targeth10), (trident) to (tridento) and (unkfr) to (unksig) - MAME . VIDEO RENDERING SYSTEM . Generated layouts for systems with three or more screens, fixes crash with four or more emulated screens (emu\render.cpp). Fixed unused variable error compiling with MSVC (emu\render.cpp). . Rather simple performance optimization (video\rgbsse.h and validity.cpp). Optimized some SSE routines. Created a generic getter instead of having individual color operation. Allow up to 12 bits for scaling factors (video\rgbsse.h). Clamp intermediate values to u8. . Fixed layout files loading (emu\render.cpp) (Work around for GCC compiler bug . Device state interface (emu\distate.cpp) . Polymorphism and std::function for entries. Created a templated subclass of device_state_entry to provide separate read/write interfaces for registers of varying widths. The efficiency impact of this should be minimal, given that this eliminates the need to make each byte width a subcase for reads and writes. Created similarly templated "pseudo-register" versions of device_state_entry that provides custom read/write interfaces through std::function. The intent of this is to eventually replace the dummy register + state_export interface hitherto necessary to provide debugger access to bankswitched or computed state registers. State registers can now be made read-only, and this is automatically done now when state_add is called with a std::function read handler but no write handler. This property is honored by MAME debug expressions. . Added override keyword . Removed explicit instantiations that were causing linking errors in tools build. . Explicitly allow floating point values for state registers (cpu\dsp32\dsp32.cpp, powerpc\ppccom.cpp and machine\netlist.cpp). Note: The internal debugger's expression interpreter is not set up to handle floating point values at all, so they remain disabled there. . Polymorphic classes need virtual destructors . PLUGINS . Added input sequence cheats (plugins\cheat\init.lua). Fixed 'no xml or simple for ram_device cheat'. . Bail if database not open (plugins\data\data_marp.lua) . Updated hiscore.dat (plugins\hiscore\hiscore.dat) . Multi-Language . Updated Chinese, German, Greek, Japanese, Portuguese, Serbian and Russian translations . Added LUA translation to makefile and regenerated translations . Improved localisation: Changed makefile rules to treat mame.pot as a target so rules can depend on it. Put mame.pot inside the build directory so it will get cleaned. Couldn't get xgettext to scrape LUA and C++ in the same command and still remove stale strings. Use larger strings and format specifiers to fix some localisation issues: Issue with "None" lacking context in Russian and Turkish translations. Issue with "Not implemented" changing depending on the noun in Serbian. Issues with LUA plugins not allowing for languages with different grammar/punctuation. . Removed timer_device from emu.h and move it out of src\emu . UI . Fixed an options overhaul regression. This crash (discovered by Wizz) had the following symptoms: 1. Start MAME, 2. Choose "Configure Machine" and 3. Choose "Video Options"... CRASH. This was the result of the options editor not having a fully formed list of options where it was expecting one. The fix is to change the declaration of emu_options to one that have full OSD options (it is possible that SDLMAME needs something slightly different). . Actually make sure OSD options are included when saving through UI (ui\ui.cpp) (ID 06637), fixes also configuring machine level "Video Option" causes crash (ID 06656). . Small fixes to general info panel on internal UI. This fixed unknown numbers showing up at the right side panel (ID 06702). . Fixed the last used game is not saved, if you exit MAME (ui\selgame.cpp) (ID 06711). . Fix for prescale value entry. Top prescale value allowed via command-line is 3 (ID 06720). . Avert potential crash when populating DSW menu (ui\inputmap.cpp) . LISTXML . Removed deprecated attributes from -listxml output and DTD (mame\info.cpp) . Expose condition for dipswitches, configuration entries and adjusters. This eliminates ambiguities between settings with different conditions and allows a frontend/tool to generate a dipswitch preview (emu\ioport.h). . Reduced number of calls to fprintf - saves overhead of setting up the formatting engine (mame\info.cpp). - MAC OS X: Xcode 9 compile fix (ui\selgame.cpp) - SDLMAME: Fixed zexall build target (zexall\main.cpp) - Compiling . Fixed compile warning under Emscripten (3rdparty\asio\include\asio\detail\socket_types.hpp) . Restored ROM directory, it's used when building packages. 0.190 - New games: unknown Italian poker game - New Working games: Alligator Hunt (Spain, protected), Big Buck Hunter, Big Buck Hunter II, Big Buck Hunter Call of the Wild, Glass (Ver 1.1, Break Edition, Checksum 49D5E66B, Version 1994), Glass (Ver 1.0, Break Edition, Checksum C5513F3C), Glass (Ver 1.0, Break Edition, Checksum D3864FDB), Great Guns, Maniac Square (protected, Version 1.0, Checksum CF2D), Slap Fight (A76 set, GX-006-A PCB) and Virtual Pool - New Non-Working games: Bingo Wave, Cisco/Fisco 400 [TTL], Gaelco Football, Gran Trak 10/Trak 10/Formula K [TTL], Gran Trak 20/Trak 20/Twin Racer [TTL], Le Mans [TTL] and Qwak!/Quack [TTL] - New clones: Alligator Hunt (World, protected), Beast Busters (Japan, Version 2, 3 Player), Big Buck Hunter - Shooter's Challenge (v1.60.01), Chuka Taisen (Japan) (P0-025-A PCB), Iron Horse (version K), Kick Off (bootleg), Lady Master of Kung Fu (set 2, older), Land Breaker (World) / Miss Tang Ja Ru Gi (Korea) (pcb ver 1.0) (AT89c52 protected), Maniac Square (protected, Version 1.0, Checksum DEEE), Robot Hunting (bootleg of Death Race) [TTL], Royal Card / Royal Jackpot (with a third draw)(encrypted), Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) Version B -P, Syvalion (US, PS2 Taito Legends 2) and Syvalion (World, PS2 Taito Legends 2) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Bomberman 93, Die Hard, Hit The Ice and Knight Rider Special - New PinMAME games: Guns N Roses (2.00) and Meteor (Stern, set 2) - New drivers: bingowav.cpp - New devices: amd_29f800b_16bit, arm946es, deco_irq, i82072, lc7535, mc68340duart, mc68340sermod, mc68340timmod, mea8000 and ta7630 - ADSP21062 CPU: Removed leftover debug code - ARM7 CPU: Various changes. Added ARM946ES variant. Fixed up CPU ID values. - COP400 CPU: . Emulated COP402 MCU in Quiz Punch II . Rewrote the execution control logic to fetch each byte of an instruction separately in one pass of the main loop. This provides EEPROM-compatible timing for the SIO shift register, allowing the 93C46 on Quiz Punch II to be read and written properly (though its default contents are a bad dump). . Added M pseudo-register (internal RAM referenced by B) to debugger state . Added T register to debugger state on devices where it only affects SKT . The SIO state is now displayed in binary when it is defined as a shift register . Skipped instructions and the SKIP flag can be debugged by compile-time switch (disabled by default) - M68000 CPU: Fixed abcd/sbcd/nbcd opcodes to pass 68k-bcd-verifier (cpu\m68000\m68k_in.cpp). FlameWing has a test that claims to exhaustively test BCD instructions: Verified the test on MegaDrive Model1 (68000). - M68705 CPU: Fixed corrupt bytes in two MC68705 dumps of clones Arkanoid (Japan, newer) and Nekketsu Kouha Kunio-kun (Japan) after re-analysis of raw dump data. - MC68340 CPU . Fixed MCR register enum error and silented some logerror spam by turning them into LOGx statements (machine\68340tmu.h) . Deskeletonized the serial module as a device derived from the DUART device defined in mc68681.cpp (machine\68340.cpp and 68340ser.cpp). Fixed SIM module read register bug and added informative chip select logic LOG messages (machine\68340sim.cpp). Fixed -validate errors and made slight cleanup. . Simplified code by making the timer module implementation a device and created two independent instanses, as it should be. - MN1020012A CPU: Fixed savestate issue - PSXCPU: Implemented program counter break point to PlayStation CPU & re-added PlayStation EXE, CPE & PSF loading. - uPD7725 CPU . Updated OV1 and S1 flag calculation to be correct based on AWJ's NESdev forums post and the original datasheets. . DPL bits of the instruction field are ignored if DP is the destination register of the current opcode. Similarly, RPDCR bit is ignored if RP is the destination register of the current opcode. - SAA1099 sound: Removed unnecessary device tag from logerror messages - Sound Interface . Soundlatch modernization in 1942.cpp, airbustr.cpp, aquarium.cpp, astrocde.cpp, bking.cpp, bombjack.cpp, dacholer.cpp, ddragon3.cpp, deniam.cpp, exterm.cpp, gaelco3d.cpp, gaiden.cpp, karnov.cpp, lkage.cpp, m90.cpp, mainsnk.cpp, mazerbla.cpp, onetwo.cpp, seicupbl.cpp, segajw.cpp, seta.cpp, shadfrce.cpp, snowbros.cpp, spartanxtec.cpp, spbactn.cpp, spyhuntertec.cpp, sub.cpp, suprridr.cpp, tecmosys.cpp, thedeep.cpp, vball.cpp and wwfsstar.cpp . Added 74LS259 device to balsente.cpp, munchmo.cpp, pitnrun.cpp and sub.cpp . aquarium.cpp: Soundlatch modernization. Use BITSWAP8 to implement MSM6295 line swap. . dblewing.cpp: Modernized soundlatch. Improved IRQ arbitration for (hopefully) less dropped sound commands. . karnov.cpp and mugsmash.cpp: Use MCFG_GENERIC_LATCH_DATA_PENDING_CB for soundlatch . sub.cpp: Soundlatch modernization. Added watchdog timer. Acknowledge all interrupts. - TA7630 sound: Wrote a new device for TA7630 (bass/treble and volume/balance), hooked it up to 40love.cpp, buggychl.cpp, msisaac.cpp and flstory.cpp. - YMF271 sound: Added slot end status bits, fixes at least missing shots samples for Desert War. - 6840 PTM and 6850 ACIA: Fixed so that LOG_OUTPUT_FUNC can be defined as printf. Removed c_str() in 6840 LOG statements. - 68681 DUART: Added the DUART compatible 68340 serial module (machine\mc68681.cpp) - 8155 RIOT: Cleanup timer start, a clock of 0 causes MAME to freeze. - 8250 UART: Added and use INS8250 register defines. Replaced LCR, LSR and MCR bits by defines. - 8251 USART: Fixed setup for sync byte - 8259 PIC: Break up the MCFG_PIC8259_ADD macro - DECO Custom: Use DEVCB for DECO 146 input ports and explicitly define these in all drivers (machine\deco146.cpp) - EEPROM: Improvements to 28XX parallel EEPROM emulation. Emulated direct manipulation of /OE line for read/write mode control. Special handling for data polling before a write has completed. Allow optional configuration of device to lock EEPROM after each write, as often used by Atari. Eliminate the Atari EEPROM interface devices, since their special features have been incorporated into the base device. To continue using old NVRAM files, renamed them from eeprom_eeprom to eeprom (machine\eeprompar.cpp; drivers\arcadecl.cpp, atarig1.cpp, atarig42.cpp, atarigt.cpp, atarigx2.cpp, atarisy1.cpp, atarisy2.cpp, badlands.cpp, batman.cpp, blstroid.cpp, cyberbal.cpp, eprom.cpp, gauntlet.cpp, klax.cpp, mastboy.cpp, offtwall.cpp, rampart.cpp, relief.cpp, shuuz.cpp, skullxbo.cpp, thunderj.cpp, toobin.cpp, vindictr.cpp, xybots.cpp, includes\harddriv.h and machine/atarigen.cpp). - Flash ROM: Added 29F800B flash boot device for (MESS) D-box - Floppy: Added drive LED callback. This currently only works if you set the drive select lines correctly, which the upd765 does now. Hook it up to (MESS) Kontron PSI98 and use the TEAC FD-55F drive instead of the generic one. - MB3773 Power Supply: Added watchdog device to aquarium.cpp and gcpinbal.cpp - Programmable Logic Device (PLD): Initial support for viewing the logic equations of the PLS100, 82S100, PLS101 and 82S101 (tools\jedutil.cpp). - Voodoo GFX . Removed wrapping after y origin conversion so that proper y-clipping is performed (video\vooddefs.h and voodoo.cpp). Fixes pool cue wrapping out of top the screen in Virtual Pool. . Changed 2x2 dither matrix values. Allows ITEagle driver power-on video memory tests to pass (video\voodoo.h). . Fixed depth buffering for Voodoo 2 cards and greater (video\voodoo.cpp) . Declare scale_imm_and_clamp as inline to ensure that it compiles as fully inlined in voodoo rasterizers (video\rgbsse.cpp). - atlantis.cpp . Clean up interrupt handling and adjust PCI device mapping . Changed to interrupt callback instead of direct interrupt assertion (machine\vrc4373.cpp) - cninja.cpp and deco32.cpp . Added 'Data East IRQ Controller' device. This implies proper VBlank IRQ ack for all games now. Use a device map, move screen include to header (machine\deco_irq.cpp). . Added and improved raw screen parameters for various games. - deco_mlc.cpp: Removed erroneous I/O ports - deco156.cpp: Palette cleanup - deco32.cpp . Emulated LC7535-based volume control for Dragon Gun board based games . Added DSW3 and DIP locations to Captain America . Reorganized driver and start cleaning it up (in progress) - f1gp.cpp: ACIA interrupt goes to second CPU - flstory.cpp: Merged memory maps and fixed gfx bank default (fixes Onna Sanshirou POST messages). Added screen raw parameters. - gaelco2.cpp . Added DS5002FP SRAM dump to Maniac Square (protected, Version 1.0, Checksum CF2D) (Games now playable) . Added DS5002FP SRAM dumps to Glass (Ver 1.1, Break Edition, Checksum 49D5E66B, Version 1994) and clones (Ver 1.0, Break Edition, Checksum C5513F3C) and (Ver 1.0, Break Edition, Checksum D3864FDB). . Base Gaelco game's CPU clock speed on actual OSCs - galaxian.cpp . Miscellaneous configuration cleanups and corrections . 555 star blinking timer is only present on Scramble, Super Cobra and similar hardware. . Scramble clone Explorer (bootleg of Scramble) uses two AY-3-8912 and no 555 timer . Added the (first) two 8255 PPIs only in konami_base and stop removing and readding these in derivative configurations . Safer order for static definitions - gstriker.cpp . Fixed MB60553 zooming tilemap compared against visible area. Improved MB60553 zooming alignment, mostly noticeable in Tecmo World Cup '94. . Added buffered spriteram (sprites being ahead 2 frames; video\gstriker.cpp) . Tecmo World Cup '94: Added MCU simulation to clone (set 2). Fixed tournament logic. Added input labels. Replaced MACHINE_NOT_WORKING flag with MACHINE_UNEMULATED_PROTECTION. . Fixed dipswitches for V Goal Soccer and added DIP locations . Added rotation to MB60553 core, used by V Goal Soccer during display of football field. . Serial link preparation (6850 ACIA) for Grand Striker - homedata.cpp: Fixed sound I/O write in Homedata driver (affected hourouki, mhgaidenm, mjhokite, mjclinic and mrokumei). This fixed missing voices of "Reach", "Ron" etc. in Mahjong Hourouki (ID 00490). - iteagle.cpp . Changed 2x2 dither matrix values. Allows ITEagle driver power-on video memory tests to pass (video\voodoo.h). . Added vblank handling, updated gun control and added proper eagle1 (Virtual Pool) battery ram functionality (machine\iteagle_fpga.cpp). . Virtual Pool: Removed wrapping after y origin conversion so that proper y-clipping is performed (video\vooddefs.h and voodoo.cpp). Fixes pool cue wrapping out of top the screen in Virtual Pool. Set "Medium" resolution as default for Virtual Pool. Setting to VGA is buggy and low resolution will hang the game. Removed MACHINE_NOT_WORKING and IMPERFECT_GRAPHICS flags - Game now playable. . Updated DIP settings for Big Buck Hunter series and Virtual Pool. . Set MIPS3DRC_STRICT_VERIFY option. Sees to eliminate game hangs in Big Buck Hunter series. . Set Carnival King to start at medium resolution by default . Promoted Big Buck Hunter - Shooter's Challenge (v1.60.01), Big Buck Hunter - Shooter's Challenge (v1.50.07), Big Buck Hunter II - Sportsman's Paradise (v2.02.11) and Big Buck Hunter Call of the Wild (v3.02.5) to working . Changed to interrupt callback instead of direct interrupt assertion (machine\vrc4373.cpp) - kaneko16.cpp . Berlin Wall clearly uses 4way sticks . Made dial/paddle optional for Great 1000 Miles Rally, fixes INP playback. - ladyfrog.cpp: Added missing DAC sound chip, fixes death scream in Touche Me. Added screen raw parameters. - leland.cpp: Fixed missing DAC sounds in later Ataxx-era audio - mazerbla.cpp . Added multi-layer drawing (video\mb_vcu.cpp) . Improved layer clearances for Mazer Blazer . Fixed layer clearances for Great Guns (video\mb_vcu.cpp). Fixed lightgun inputs. Soundlatch modernization. . Added backup RAM . Improved collision detection and fixed layer 0 data setups. Driver and input cleanup. . Promoted Mazer Blazer sets from NOT_WORKING to UNEMULATED_PROTECTION - megaplay.cpp . Try make start buttons work properly through BIOS. Demoted Mega Play to not working. Note: Driver is marked as NOT WORKING because interaction between BIOS and 68k side is not fully understood. The BIOS often doesn't register that a game has been started and leaves the 'PRESS P1 OR P2 START' message onscreen during gameplay as a result. If this happens, the games usually then crash when you run out of lives as they end up in an unknown state. . Log the internal P1/P2 Start activity to make it more obvious where things are going wrong - midzeus.cpp: Map proper * key to keypad - model2.cpp . Fixed luma overflow (Virtua Striker flag colors) (video\model2rd.hxx) . fixed Model2 address map, the framebuffer for Last Bronx title screen is not a mirror. - ninjaw.cpp: Saner interleave CPU timings, attempt to fix missing enemies bug in Ninja Warriors. - seattle.cpp: Adjust tx interrupt status to mirror tx buffer empty (machine\smc91c9x.cpp) - segas24.cpp: Added uPD4701A devices for analog input. Updated documentation. - seta.cpp . Use uPD4701A device for analog input in Krazy Bowl . Added uPD4701A device with multiplexing to U.S. Classic . Replaced bogus "kiwame_nvram" with TMP68301 parallel interface in Pro Mahjong Kiwame - superqix.cpp . Correctly implemented 8751 port2 latch based on PCB tracing. Fixed semaphores implementation to match PCB tracing. Got rid of z80<->mcu 'pending' communication hacks by using synchronize calls. Moved superqix specific variables and member functions to its own subclass. Consolidated the 8031 bootleg and 8751 protected set port2 handling code. Removed some unnecessary trampoline functions. . Added a sync trampoline for reading the semaphores via the AY-3-8910 #1, MCFG_QUANTUM_PERFECT is no longer needed. - taitosj.cpp: Added synchronize calls on soundlatch write and bit7 clear, as well as for writing and clearing the secondary sound semaphore. Use input_merge for both NMI enable and the secondary semaphore. Added sound cpu mirroring. - tnzs.cpp: Removed outdated comments - tourvis.cpp: Added new BIOS dump, clarified BIOS names and updated several games with newly discovered ID codes. - vegas.cpp . Adjust tx interrupt status to mirror tx buffer empty (machine\smc91c9x.cpp). Fixes linking boot hang on Cart Fury. . Added Denver UARTs, gearshift and updated input dips for various Vegas games. . Clean up timer code in VRC5074 controller . Clean up DUART code and make parallel read return not busy - Alcon: Added MCU to clone Slap Fight (A76 set, GX-006-A PCB) (Game now playable) - Alligator Hunt: Added new DS5002FP SRAM dump to Alligator Hunt (Spain, protected) (Game now playable). Data was verified using a 2nd board, only 1 byte changed in the code area, data table is also verified by checksum in the code, and by the unprotected set as reference. This is a good read. - Ameri-Hockey . Make Z8 CPU data space optional and fixed stack pop semantics. Mask addresses for external memory accesses based on P0 control bit and external stack accesses. . Fixed C flag polarity for CP, SBC, SUB and actually subtract with carry in SBC. This lets Ameri-Hockey pass its initial checksum calculation. . Interrupts are working now (Z8681 CPU; cpu\z8\z8.cpp) - Big Event Golf: Added DAC (cup in and crowd applauses samples) - Blood Bros: Prevent mistimed interrupts that were killing sound in clone West Story (bootleg of Blood Bros.) - Borderline: Added sound samples ( - Buggy Challenge . Removed NMI trampolines. Added details and mirrors to memory map based on schematics. Added note about the maybe unused scoreboard hookup, similar to Grand Champion. . Fixed sound timer irq frequency, fixes enter initials BGM tempo. . Fixed background pen and clipping enable (fixes title screen and stage 3 graphics). Converted accelerator to analog, proper sound irq frequency. . Fixed PORT_SERVICE_DIPLOC in conflict with IPT_SERVICE, causing F2 to toggle service to not work. . Wrote a new device for TA7630, hooked it up to Buggy Challenge. - Capriccio Spin 2: Some rather blind guesses that don't help much now - Caveman Ninja: Fixed sound banking in clone Tatakae Genshizin Joe & Mac (Japan, bootleg) - Chain Reaction: Game uses 4-way joystick and 2 buttons - Championship Bowling: Separated trackball reset handler - Cool Minigame Collection: Added speedup - Demons & Dragons (prototype): Added MACHINE_IS_INCOMPLETE flag since sound program is missing - Dinosaur King - Operation: Dinosaur Rescue: Dumped origin Compact Flash card. Removed rom_board roms. - Exterminator: Soundlatch modernization and save state support. Might as well make the IRQ line explicit. - F1 Super Battle: Fixed extra VRAM boundaries and inputs. Added coin counters. - Grand Champion: Fixed the sound latch system such that the bit 7 clearing actually works and properly synchronized the sound latch writes and bit 7 clears. Added memory map comment for sound cpu. Added missing sound NMI enable and hooked sound NMI to the sound semaphore. Added sound semaphore readback. Minor format changes to ease potential future code merge. - Guzzler: Added PAL dump to clone Guzzler (Swimmer Conversion) - Heavy Unit: Added more generic latch devices for inter-CPU communication - Hexion: Fixed music speed by hooking up the INT_TIME callback from the K053252 CCU properly. Fixed music pitch for clone Hexion (Asia ver AAA, bootleg). - King Derby: More plausible method of generating NMI on sound CPU - Lunar Lander: Changed Language rom which passes now self-test (former source built attempt had 2 bytes differing) - Metal Hawk: Fixed missing sound (ID 06680) - Ninja Clowns . Fixed palette read accesses, fixed many color bugs (title screen fade-in, water spray properly blue and color cycle effects in bonus stage). . Fixed 0x40000-0x7ffff constant area, now program ROM checksum correctly returns OK status. . Moved vblank irq generation for Ninja Clowns, fixes frames per second jerkiness. - QB-3: Fixed missing AY-3-8910 sound (ID 06682) - Quiz Punch II: Emulated COP402 MCU. Rewrote the COP400 execution control logic to fetch each byte of an instruction separately in one pass of the main loop. This provides EEPROM-compatible timing for the SIO shift register, allowing the 93C46 on Quiz Punch II to be read and written properly (though its default contents are a bad dump). - Panic Road: Demoted Panic Road to MACHINE_NOT_WORKING. Playtesting shows that the collisions aren't right. - PinMAME: Added meat to the bones to inderp.cpp and stargame.cpp - Pocket Gal Deluxe: Added vblank interrupt acknowledge - Return of the Invaders: Fixed colors in clone (bootleg no MCU set 3) - Rock'n Rage: fixed priorities and text tile banking for Rock'n Rage. Fixes stage 1 boss eyes flashing and Shena display inside the bubble at stage 5 boss. - Star Wars: Fixed missing sounds by restoring the old boost_interleave method as an annex to the modern soundlatch semaphore handling (ID 06672) - Stunt Air: Added 74LS259, NVRAM and watchdog timer. Attempt at improving sound communication. - Super Qix: Traced out correct clock divider for CPU and MCU from PCB. Fixed issue with clone Super Qix (bootleg of V1.0, 8031 MCU) not working with the correct clock speed and synchronize fences. Added emulation of the 8031 bootleg MCU port 3 output latch. - Ultraman: Sound IRQ modernization - Wyvern F-0: Misc fixes and added DAC. - Input port . Using a better overload of utf8_from_uchar() in ioport_field::key_nam (emu\ioport.cpp) . Fixed a longstanding INP playback desync bug caused by a rand() call in the MAME core (emu\ioport.cpp), fixed playback lose sync in B.Rap Boys and Blood Warrior (ID 04209) and Shogun Warriors cannot be replayed from .inp file (ID 03967). . Prefer lower shift states, eliminate O(n) lookup allows Alt-combos on European Amiga keyboards to be restored as MAME will now prefer the simpler Shift-combos to get characters that can be typed in more than one way. - Dipswitch fixes in champbwl.cpp, gstriker.cpp, inderp.cpp, iteagle.cpp, legionna.cpp, mazerbla.cpp, seattle.cpp, subsino.cpp (ID 06673) and vegas.cpp - Fixed rom names in inderp.cpp, tnzs.cpp, tourvis.cpp, tsamurai.cpp and zn.cpp - Description changes of 500 GP (US, 5GP3 Ver. C), Ace Driver: Racing Evolution (Rev. AD2, World), Ace Driver: Victory Lap (Rev. ADV2, World), Alpine Racer (Rev. AR2 Ver.C, World), Alpine Racer (Rev. AR2 Ver.D, World), Alpine Racer 2 (Rev. ARS2 Ver.A, World), Alpine Racer 2 (Rev. ARS2 Ver.B, World), Alpine Surfer (Rev. AF2 Ver.A, World), Angler King (Japan, AG1 Ver. A), Aqua Jet (Rev. AJ2 Ver.B, World), Armadillo Racing (Rev. AM1 Ver.A, Japan), Beast Busters (Japan, Version 2, 2 Player), Chuka Taisen (Japan) (P0-028-A PCB), Chuka Taisen (US) (P0-028-A PCB), Chuka Taisen (World) (P0-028-A PCB), Crisis Zone (US, CSZO3 Ver. A), Crisis Zone (US, CSZO3 Ver. B, set 1), Crisis Zone (US, CSZO3 Ver. B, set 2), Crisis Zone (World, CSZO2 Ver. A), Crisis Zone (World, CSZO4 Ver. A), Crisis Zone (World, CSZO4 Ver. B), Cyber Cycles (Rev. CB2 Ver.C, World), Dai Ressya Goutou (Japan, version K), Dinosaur King - Operation: Dinosaur Rescue (USA, Export) (MDA-C0021), Dirt Dash (Rev. DT2, World), Downhill Bikers (US, DH3 Ver. A), Final Furlong (World, FF2 Ver. A), Glass (Ver 1.0, Break Edition, Checksum C5513F3C), Glass (Ver 1.0, Break Edition, Checksum D3864FDB), Glass (Ver 1.1, Break Edition, Checksum 49D5E66B, Version 1994), Glass (Ver 1.1, Break Edition, Checksum D419AB69, Version 1994) (censored, unprotected), Grand Striker (Europe, Oceania), Graplop (DECO Cassette) (US) (Prototype?), Gunmen Wars (Japan, GM1 Ver. A), Gunmen Wars (Japan, GM1 Ver. B), Iron Horse (version H), Lady Master of Kung Fu (set 1, newer), Maniac Square (protected, Version 1.0, Checksum CF2D), Maniac Square (unprotected, Version 1.0, Checksum BB73), Meteor (Stern, set 1), Motocross Go! (Japan, MG1 Ver. A, set 1), Motocross Go! (Japan, MG1 Ver. A, set 2), Motocross Go! (US, MG3 Ver. A), Motocross Go! (World, MG2 Ver. A, set 1), Motocross Go! (World, MG2 Ver. A, set 2), Ninja Clowns (27 oct 91), Panic Park (Japan, PNP1 Ver. B), Panic Park (World, PNP2 Ver. A), Prop Cycle (Rev. PR2 Ver.A, World), Race On! (World, RO2 Ver. A), Rapid River (US, RD3 Ver. C), Rapid River (World, RD2 Ver. C), Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) (Rev A), Shootout Pool Prize (Export) / Shootout Pool The Medal (Japan) Version B, Slap Fight (A76 set, GX-006-A PCB), Slap Fight (A77 set, 8606M PCB), The NewZealand Story (Japan, new version) (P0-043A PCB), The NewZealand Story (Japan, old version) (P0-041A PCB), The NewZealand Story (US, old version) (P0-041A PCB), The NewZealand Story (World, new version) (P0-043A PCB), The NewZealand Story (World, old version) (P0-041A PCB), The NewZealand Story (World, prototype) (P0-041-1 PCB), The NewZealand Story (World, unknown version) (P0-041A PCB), Time Crisis (Rev. TS2 Ver.A, World), Time Crisis (Rev. TS2 Ver.B, World) and Tokyo Wars (Rev. TW2 Ver.A, World) - Renamed (aligator) to (aligators), (bbhsc) to (bbhsca), (ironhors) to (ironhorsh), (maniacsq) to (maniacsqu), (mp_twc) to (mp_twcup), (tecmowcm) to (twcupmil), (twrldc94) to (twcup94), (twrldc94a) to (twcup94a), (tws96) to (twsoc96), (wc90) to (twcup90), (wc90a) to (twcup90a), (wc90b) to (twcup90b), (wc90b1) to (twcup90b1), (wc90b2) to (twcup90b2), (wc90ba) to (twcup90ba) and (wc90t) to (twcup90t) - MAME . VIDEO RENDERING SYSTEM . PNG . Make verify_header public (util\png.cpp) . Detect image format(png) before loading image. No PNG error message anymore when loading JPG (emu\rendlay.cpp). . Multi-Language: Updated Dutch, Italian, Turkish and Russian translations . Returning a reference from various corestr.cpp calls to avoid unnecessary string copies (util\corestr.cpp) . Fixed warning message (ui\info.cpp) . PLUGINS . Fixed is_oneshot() (cheat\init.lua). Fixed cheats driven by _("") ) . Updated hiscore.dat . LUA engine: Translation support . Validity . MAME -validate will now report an error if no matches occur. Fixed exit status (emu\validity.cpp). . Added a natural keyboard validation to check for valid natural keyboard (uni)codes (emu\ioport.cpp and validity.cpp) . UI . Don't translate info box titles twice (ui\datmenu.cpp, ui\selmenu.cpp) . Bug fix for network menu (ui\miscmenu.cpp) . Merged duplicate code for drawing UI palette menu . Use std::unique_ptr to manage instances of slider_state (ui\slider.h). Eliminate now-unnecessary machine parameter (ui\ui.cpp). . Don't use auto_alloc for temporary bitmaps (ui\selmenu.cpp). Eliminated last use of auto_alloc in frontend (ui\ui.cpp). . AUDIT/ROMLOAD/LISTXML . Defer decoding DOS timestamps (util\unzip.cpp) . Turn most of the ROM entry accessor macros into templates, and make them work on tiny_rom_entry/rom_entry pointers/references, also claw back a little performance lost in the ROM entry refactoring. . Make ROM BIOS reported in listxml output match what ROM loading does. This is the soure of the "BIOS can only apply to one region" meme - it actually works for all regions, but the listxml output was wrong, making it look like it didn't work. . Start adding stuff for iterating ROM entries in a more C++ way without needing to allocate everywhere, improved performance of -listxml by another 10% or so. . Attempted to sanitize/rationalize how we access UTF-8 command line arguments. Specifically, this creates a call osd_get_command_line() that returns UTF-8 command line arguments as std::vector. On non-Windows platforms, this does nothing more than build the vector. On Windows, this invokes GetCommandLineW() and CommandLineToArgvW(). This also attempts to unwind usage of wmain()/_tmain() on Windows, which is not standard. Related to this, this fixes a bug in Imgtool; specifically, non-7 bit ASCII was not being handled correctly in Windows. This is really an admission that the way that Windows handles Unicode and command line arguments sucks, and it is my belief that having a wmain() or _tmain() declaration specific for Windows is a worse solution [Nathan Woods]. . Added support for C++ output streams using LOG_OUTPUT_STREAM instead of using printf as LOG_OUTPUT_FUNC (emu\logmacro.h) - SDLMAME: Make the C-like parts more consistent with MAME (tools\ - Compiling . Fixed compling on OS X Sierra (machine\diablo_hd.cpp) . Fix for Clang 5 unused lambda capture errors . Changed the Clang workround for ../../../../../3rdparty/compat/winsdk-override\wrl/internal.h:23:13: error: function declared 'noreturn' should not return [-Werror,-Winvalid-noreturn] to work with Clang 5.0. 0.189 - New games: Kick Ball, Poosho Poosho, Tekken Battle Scratch and 'unknown 'Space Invaders' gambling game' - New Working games: Football Power, Forty-Love (Japan), International Toote II (v1.24, P387.V01), Night Gal Summer, TH Strikes Back and Virtua Bowling (Hong Kong, V101HJS) - New Non-Working games: Konnano Hajimete! (Japan), Magic Reels, Nurete Mitaino... - Net Idol Hen (Japan), Sengoku Mahjong Kurenai Otome-tai (Japan), Sexy Gal Tropical [BET] (Japan 850805 SXG T-02), Super Game (Sega Master System Multi-game bootleg) (alt games) - New clones: 1943: Midway Kaisen (Japan), Alligator Hunt (unprotected, set 2), B.Rap Boys Special (World), Carrier Air Wing (USA 901130), Cool Minigame Collection (Italy), Crash Road (bootleg of Space Chaser), Crazy Climber (US set 2), Crime Fighters 2 (Japan, 4 Players, ver. N), Daiku no Gensan (Japan, M82), Derby Owners Club World Edition (Rev B), Dirt Devils (Japan, Revision A), DoDonPachi III (World, 2002.05.15 Master Ver), Donkey Kong Jr. (bootleg on Moon Cresta hardware, set 2), Mega Zone (program code L), Ordyne (World), Popeye (Japan, Sky Skipper hardware, Older), Port Man (Japan), Print Club (World), Street Fighter (World) (protected), Street Fighter II: The World Warrior (Quicken, bootleg), Super Athena (bootleg), Super Chase - Criminal Termination (1992/01/18 18:29:18 CHASE 3 VER 1.3O, prototype), Trigger Heart Exelica (Japan) (GDL-0036), Vamf x1/2 (Europe, version 1.0.0903), Virtua Fighter 4 Evolution (Version B) (Japan) (GDS-0024C) and WWF Superstars (US revision 6) - New AGEMAME games: Honey Pot (03J00241, NSW/ACT), Koala Mint (CHG1573, US) and Venice (02J02056, Venezuela) - New PinMAME games: Goldeneye (4.02) and Star Wars (1.06, Display S1.05) - Removed games: Koala Mint (CHG1573, US, set 2) - New drivers: magreel.cpp - New devices: cd4099, f9334, hc259, hct259, ipt_merge_all_hi, ipt_merge_all_lo, ipt_merge_any_hi, ipt_merge_any_lo, ls259, mb8421_mb8431_16, taitoio_yoke and tmpz84c015 - HD44801 CPU: Workaround related to MT #06638 (Exception when using -debug); this disables a poorly implemented disassembly feature to prevent assertion failures and crashes when debugging drivers using HD44801 CPU (champbas.cpp, equites.cpp and shougi.cpp). Get rid of next_pc tables (cpu\hmcs40\hmcs40d.cpp) - I386 CPU: Created explicit i386dasm include for x86 DRC - I8086 CPU: Added support for IF status and segreg address spaces - M6502 CPU: Corrected cycle counts for undocumented $BF instruction (om6502.lst). Note: Passes now the Lorenz testsuite-2.15's cputiming.prg and does not break laxay.prg. Ref: NMOS 6510 Unintended Opcodes no more secrets (v0.91 - 24/12/16) page 14 ($BF) cycles = 3 to read and 4+1 if page boundary. - MC68340 CPU: Added implementations for VCO clock synthesizer and Timer module Counters, IRQs and one operational mode. - V25 CPU: Make IDB register state visible to debugger - Irem M72 Audio: ACCESSING_BITS cleanup (m72_audio_device; m72.cpp, m90.cpp, shisen.cpp and vigilant.cpp) - MSM5205 and MSM6585 sound: Delay data capture timing (should help with synchronization later) - Seibu Sound System: Use 8-bit handlers for main CPU accesses (audio\seibu.cpp) - Sound Interface . Soundlatch modernization in amspdwy.cpp, brkthru.cpp, btime.cpp, buggychl.cpp, dassault.cpp, dec0.cpp, flstory.cpp, gaelco.cpp, lsasquad.cpp, m107.cpp, madalien.cpp, nycaptor.cpp, progolf.cpp, rpunch.cpp, shangha3.cpp, sidepckt.cpp, splash.cpp, tagteam.cpp, tbowl.cpp, toaplan2.cpp and tubep.cpp . Synchronize machine\gen_latch.cpp at start to ensure broadcast of initial "not written" state. This fixes sound in Onna Sanshirou and makes the N.Y. Captor hack unnecessary. - Yamaha YMW-258-F sound: Confirmed Sega/Yamaha 315-5560 MultiPCM as Yamaha YMW-258-F - YM2151 sound: Emulate reset line - 8259 PIC: Removed hack used by M92 driver (HACK_get_base_vector(); machine\pic8259.h) - CD-ROM: Added cdrom_get_chd (Get a handle to a CHD from a cdrom; util\cdrom.cpp) - HuC6260 video: Fixed B&W mode in (MESS) PC Engine 'Son Son II' causes total palette corruption (ID 06641) - Imgtool . Changed a pointer to a reference and fixed a std::string(nullptr) bug (imgtool\imgtool.cpp) . Proper cleanup of floppy object after create/open failure (imgtool\iflopimg.cpp) . Merged normalize_filename() into cannonicalize_path() and C++-ification . Eliminated Imgtool-specific rand() function. Changed another charconverter access. . C++-ification of imgtool_forkent structure . Made the logic for B&W icon able to handled non-masked set pixels for (MESS) Classic MacOS images (imgtool\modules\mac.cpp) . Fixed features.supports_geticoninfo. Fixed the "GET" command (imgtool\imgtool.cpp) - Irem Custom: VCK modernization and removed unnecessary subdevice resets (audio\irem.cpp and sound\msm5205.cpp; m52.cpp, m57.cpp, m58.cpp, m62.cpp and travrusa.cpp) - MOS6526 CIA: Show state of registers that can be read without side effects in debugger - TTL . New 74LS259/9334/CD4099 devices . These humble 16-pin logic devices were commonly used in 8-bit arcade games to control coin counters/lockouts, IRQ flipflops, graphics banking, slave CPU reset lines, discrete audio triggers, screen flipping, serial EEPROMs and much else. Over 100 drivers and a few bus devices have been updated to use the new implementation, and a great deal of research has gone into documenting the physical location of these devices on actual PCBs in the source. Write handlers have been provided for both orthodox and somewhat less conventional memory mappings. . Added coin counters and/or lockouts to Atari System 1 games, Basketball, Gauntlet, Gyruss, Hana Yayoi, Hole Land, Jr. Pac-Man, Mahjong Sisters, Pooyan, Roc'n Rope, Squash, Thunder Hoop, Time Limit, Time Pilot '84 and many others. This also cleans up coin counter behavior in Sauro and Rally Bike. . Note: The purpose of committing this change, which has been several months in the making, early in the 0.189GIT cycle will be to allow time for fixing potential regressions; I've fixed a number of drivers that lost sound from this for various reasons (hnayayoi.cpp having missing or garbage ADPCM was particularly painful, since the three games in that driver all work slightly differently), but I can't test all affected drivers exhaustively. @Tafoid, don't bother running automated screen capture comparison tests on this, as many drivers are now expected to have the screen flipped for the first few seconds after reset. . Make 74LS259 configuration member const, avoid Object and object distinguished only by case in one line, use MAME_ prefix on all include guards to make it easier to deal with them in -dM (dump preprocessor macros) output. . Added write_d1 handler . Added 74LS259 device to ambush.cpp, asteroid.cpp, atarisy1.cpp, bagman.cpp, cclimber.cpp, centiped.cpp, champbas.cpp, changela.cpp, cinemat.cpp, circusc.cpp, cloak.cpp, cloud9.cpp, clshroad.cpp, cortex.cpp, crgolf.cpp, ddenlovr.cpp, dynax.cpp, equites.cpp, fastfred.cpp, firefox.cpp, freekick.cpp, funkybee.cpp, gaelco.cpp, gaelco2.cpp, gaelco3d.cpp, galaga.cpp, gauntlet.cpp, gladiatr.cpp, glass.cpp, gng.cpp, gomoku.cpp, gridlee.cpp, gyruss.cpp, harddriv.cpp, hnayayoi.cpp, holeland.cpp, hyperspt.cpp, jedi.cpp, joctronic.cpp, jp.cpp, jpms80.cpp, jrpacman.cpp, junofrst.cpp, kchamp.cpp, kyugo.cpp, ladybug.cpp, liberatr.cpp, looping.cpp, m63.cpp, mappy.cpp, marineb.cpp, mario.cpp, mastboy.cpp, megazone.cpp, mermaid.cpp, mikie.cpp, mirax.cpp, mjsister.cpp, mouser.cpp, nemesis.cpp, pacman.cpp, pandoras.cpp, pengo.cpp, playch10.cpp, polepos.cpp, pooyan.cpp, punchout.cpp, rallyx.cpp, retofinv.cpp, rocnrope.cpp, rollrace.cpp, sauro.cpp, sbasketb.cpp, shangkid.cpp, shougi.cpp, skyarmy.cpp, slapfght.cpp, sonson.cpp, spcforce.cpp, splash.cpp, stactics.cpp, targeth.cpp, thepit.cpp, thoop2.cpp, timelimt.cpp, timeplt.cpp, toaplan1.cpp, tomcat.cpp, tp84.cpp, trackfld.cpp, tsamurai.cpp, tubep.cpp, turbo.cpp, tutankhm.cpp, vastar.cpp, warpwarp.cpp, wiping.cpp, wrally.cpp, xorworld.cpp, zaccaria.cpp and zaxxon.cpp . Added 74HC259 device to de_3.cpp (video\decodmd1.cpp) and neogeo.cpp . Added F9334 device to avalnche.cpp, bsktball.cpp, canyon.cpp, copsnrob.cpp, destroyr.cpp, dragrace.cpp, flyball.cpp, orbit.cpp, sbrkout.cpp, skydiver.cpp, sprint2.cpp, sprint4.cpp, sprint8.cpp, starshp1.cpp, starwars.cpp, subs.cpp, triplhnt.cpp and ultratnk.cpp . Added CD4099 device to tankbatt.cpp . Driver and audio cleanups for asteroid.cpp, avalnche.cpp, copsnrob.cpp and playch10.cpp . dynax.cpp: Fixed blitter IRQ acknowledgment in most games. Use bankdev for gekisha and tenkai. . jp.cpp: Added ADPCM sound system used by some game . mappy.cpp: Clean up I/O handlers. Don't pulse the reset line when it's already being asserted. This allows Mappy and Pac & Pal to boot again (machine\namcoio.cpp). . mario.cpp: Added coin counters . spcforce.cpp: Added coin counters, start lamps and addressable latch device. . starwars.cpp: Put 'esb' bank2 in memory map so DEVCB can find it . tankbatt.cpp: Improved handling of sample triggers (fire sound is no longer doubled) - uPD4701 counter: Added read-triggered X reset & Y reset routines to device - V-System C7-01 GGA: Document some pins and clocks - Voodoo GFX: Updated comments for PCI config registers (video\voodoo_pci.cpp) - aerofgt.cpp, f1gp.cpp, pipedrm.cpp, rpunch.cpp, tail2nos.cpp and welltris.cpp: Clock all Video System GGAs - aristmk5.cpp . Driver update. Fixes some sets. . Redumped Koala Mint - atlantis.cpp: Use standard way of handling keypad inputs - bublbobl.cpp and missb2.cpp . Reimplemented sound cpu semaphores and sound NMI according to schematics. . Implemented sound semaphores into Tokio / Scramble Formation as well, fixing SOUND ERROR in test mode. Added notes about sound cpu addressing. . Reimplemented /SRESET as a separate function called on sound cpu reset according to schematics. . Added correct watchdog to Bubble Bobble and Tokio and disabled it on clone Bubble Bobble (prototype on Tokio hardware). . Added proper 'wired-or' sound cpu IRQs to Bubble Bobble. Renamed 'slave' cpu to 'subcpu' to match schematics. . Added NMI back to Miss Bubble II. Fixed some potential reset issues and made 'soundnmi' a required device. - bwing.cpp: PSG and DAC correction - csplayh5.cpp: Added dipswitches - dec8.cpp: Sound IRQ timing from schematics. Eliminated timer_set. - deco32.cpp . Rewritten interrupt handling. Input repetition removal and labels. . Locked 'n Loaded: Improved X axis gun input. Added raw_params and fixed second OKI frequency, matching other games in the driver. Improved lightgun support. Note: It's now possible to actually play the game to some extent assuming you recalibrate the guns by holding both service buttons. Game randomly crashes tho so not yet markable as working. - decocass.cpp . Major improvements to colors and graphics layer priorities . Implement the PRI2 pen modification effect. This makes the tunnels and headlight in Highway Chase look much more accurate, and makes some color changes work in Astro Fantasia. . Shadow color in Skater is now properly black (not a pen modification effect) . Correct background fill color, making high score screen in Super Doubles Tennis properly blue. - dynax.cpp . Reduced log spam in Mahjong Gekisha. Added alternate flyer title note: Mahjoung Exposť. . Changed CPU type to TMPZ84C015 in mjelctrn, mjembase, majxtal7 and neruton and improved interrupt handling . Use address map bank device for most games in this driver. Many of these games will now successfully retrieve the local time at the start through an RTC device previously treated as read-only. . Added blitter IRQ ack to Mahjong Tenkaigen; doesn't fix interrupt problems. - flstory.cpp . Fixed CPU communication issue that sometimes caused sound to disappear entirely . Eliminated NMI trampolines - fromance.cpp: Use gen_latch and added GGA clocks - gaelco2.cpp . Added some workarounds to Play 2000 so that it actually boots. Fixed gfx rom loading. . Bang! supposed to have not PORT_IMPULSE - gaelco3d.cpp . Increased TMS ROM region, makes Football Power players models visible. . Added analog inputs. Better Football Power ball mechanic simulation (Game now playable). . Fixed EEPROM access (MCFG_EEPROM_SERIAL_ENABLE_STREAMING) - gaiden.cpp: Acknowledge main IRQ - galaxia.cpp: Restored original refresh rates to Galaxia/Astro Wars, fixes wrong sound for time being. Speed issues still need to be figured out, perhaps something relating to S2650 interrupts?. - galpanic.cpp and kaneko16.cpp: Disentangle dependencies - igs011.cpp . Decrypted clone Virtua Bowling (Hong Kong, V101HJS) and added its own bitswaps for IGS003 and IGS011 . Found dipswitches to perform a protection test in Virtua Bowling. Changed IGS012 mode toggling to pass the test. . Changed IGS003 command 48 in Long Hu Bang II and Virtua Bowling to potentially work in more cases (based on Long Hu Bang II tables) - jangou.cpp and nightgal.cpp . Rewritten blitter setters (video\jangou_blitter.cpp) . Fixed Night Gal Summer GFX ROM out of bounds accesses. Fixed rom loading. Added preliminary protection emulation (Game now playable). . Fixed gfxs for Sexy Gal and clone Sweet Gal. Added audio CPU (NSC8105) to Sexy Gal. For clone Sweet Gal this definitely doesn't exist (PCB photo). - kaneko16.cpp . Further organizational cleanups . Removed shadowing RAM with ROM in sound CPU. - m107.cpp: Removed IRQ hacks - midvunit.cpp: Better documentation for Midway V-Unit wheel board. Added part numbers. - mlanding.cpp and taitoair.cpp . Wrote a new device for Taito yoke-based inputs (found in Midnight Landing and Top Landing). . Added screen raw parameters to Taito Air System, fixes pilot acknowledge sound sample timing. Mark missing Mecha rom as undumped. . Added coin counters and Yoke device to Midnight Landing, fixed throttle counter (it's 12 bits). - naomi.cpp: Atomiswave security notes (machine\awboard.cpp) - royalmah.cpp . Changed CPU type to TMPZ84C015 in Janputer '96 and Janputer Special (Japan). Changed drive interrupts through internal CTC. . Completed dipswitches for Mahjong If (ID 05608) . HOLD_LINE cleanup - seattle.cpp . Buffer multiple writes for PCI stall (machine\gt64xxx.cpp). Fixes triangles flicker in California Speed (ID 06636). . Set proper NFL Blitz '99 dipsettings . Added gearshift to California Speed (ID 00975) . Fixed Hyperdrive brake button doesn't function in calibration (ID 00470) - seibuspi.cpp: Provide full chip name and standard oscillator frequency (machine\ds2404.cpp) - shangkid.cpp: . Redo interrupt handling based on Chinese Hero schematics. This fixed sounds get really screwy in the later levels of Shanghai Kid (ID 01005). . Added coin counters - spinb.cpp: Correct ADPCM type for jolypark and vrnwrld - supbtime.cpp: IRQ modernization - toaplan2.cpp . Added HD647180X MCU dumps to Ghox and Pipi & Bibis / Whoopee!! (Teki Paki hardware), allowing for sound emulation in both of them. This also fixes the high score table background in Ghox, which was also MCU related (ID 04024) and a small bit of garbage on the ending screen (ID 04049). . Corrected the decryption of some V25 opcodes used in the EEPROM service routine. Removed the ugly FixEight EEPROM routine that hardcoded a region for each set. Added and document a secret input that rewrites the EEPROM for any region. - vegas.cpp . Re-added blitz00_nov30_1999.u27 rom. Mark as BAD_DUMP and added patch to fix. . Correct DIPs for Gauntlet Dark Legacy and Road Burners . Added 16550 UART subdevice (machine\vrc5074.cpp). This fixed Gauntlet Legends randomly freezes (ID 01991). - zaccaria.cpp: Improved documentation. Note: The protection device at 1A on the ROM board (1B11147) is unidentified on the schematics but appears to be a PAL16L8 or PAL16R4. It sits on bits 4-7 of the data bus, and is read from locations where only bits 0-3 are connected to regular devices (6400-6407 has 4-bit RAM, while 6c00-6c07 has a 4-bit input port). - Beraboh Man: Fixed joystick dropping inputs bug for crouching/running actions - Buggy Challenge: Corrected clocks and added sound semaphores. Replaced AY-3-8910A sound with YM2149. - Chanbara: Identified sprite flip X bit (player sword thrusts) - Change Lanes: Changed default DIP setting to keep coin counters separate. Workaround for mistaken activation of test switch due to LS259 changes. - Combat School . Fixed wrong priority in the drill instructor screen (ID 06259) . Improved interrupt handling in clone Combat School (bootleg) - Deco Cassette System Multigame . Replaced gross hack for banking "dongle" with something likelier . Fixed Treasure Island sprites and removed stray Unicode character - Desert Gun: Replaced bad rom in clone Road Runner (Midway) and added notes - Dragonball Z: Fixed 'Language' and 'Demo Sounds' dipswitches (ID 05788) - Forty-Love: Added input labels, promoted clone Forty-Love (Japan) as working. - Funny Strip: Separate driver state class - Gyruss: Added missing DIP location for DSW3. Fixed dipswitches for clone Gyruss (Centuri). Added correct labels and locations to clone Gyruss (Centuri). Fixed labels for clone Gyruss (bootleg?). Updated diagnostic ROM info. Adjust some memory region sizes. Removed unused DRIVER_INIT. - Hanafuda Hana Tengoku: Use address map bank device - Hebereke no Popoon: Better documentation - Jockey Club . Added layout with keyboards. Clean up inputs and added own dipswitches. Correct RTC and emulated hoppers. Hook up outputs, NVRAM and trackball (for hidden editor). . Promoted clone International Toote II to working - Jockey Club II: Greatly simplify the layout files jclub2.lay and jclub2o.lay thanks to the new group feature - Karate Champ and King of Boxer: Identified DAC type - King of Boxer: NMI modernization - Legend of Silkroad: Base OKI clocks on OSC values. Note: PCB pic reveals no resonators so the clock is based off of either 32MHz or 3.579545MHz. Old guessed values where 1.056MHz and 2.112MHz so new values are 32MHz/32 & 32MHz/16 for 1 & 2 MHz respectively. - Midnight Landing: Added coin counters - Mirax: Changed PSG type to AY-3-8912A and use device finders - Ninja-Kid II: Fixed missing sound in Ninja-Kid II and clones (ID 06645) - Ordyne: Ordyne and clones uses an older IO MCU ROM (sys2_c65b.3f). Clean ROM labels as per PCB photos. Documented sprite zoom table rom. - Pengo: Added partial dipswitches for clones Pengo (bootleg on Pac-Man hardware, set 1) and (bootleg on Pac-Man hardware, set 2) (ID 05945) - Penguin Adventure: Added start/continue button, this partially fixes game resets itself in stage 4 (see MT #04528). Note: A timer apparently expires when beating stage 4 (signalled by a long beeping sound). Player needs to insert another credit and press start button (?) in order to continue. Is this timer supposed to be shown on screen or there are additional 7-LEDs not handled? - Poker Ladies: Added PALs and EEPROM dumps to clone Poker Ladies (Leprechaun ver. 401), also corrected rom labels. - Return of Lady Frog: Added NMI ack - Salamander: Improved VLM5030 control - Shadow Warriors: Implemented dual OPN + dual MSM5205 ADPCM sound system for clone Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden) as in Automat - Shock Troopers: Swapped Shock Troopers sets since what was known as set 2 is actually a newer revision than set 1, as per MAME parent-clone policies parent must be the newer revision. - Street Fighter II': Champion Edition: Correct dipswitches for clone (Accelerator Pt.II, bootleg) (ID 05277) - Teki Paki: MCU soundlatch modernization and cleanup - Tetris (Japan, System E): Fixed 2-Player mode (ID 06644) - TH Strikes Back . Added new DS5002FP SRAM dump (Game now playable). Note: Dumped from 3 boards, reconstructed with 2/3 wins rule, all bytes verified by hand as correct. There is a priority bug on the title screen (Gaelco logo is hidden by black borders). It seems sprite priority is hacked around on most of the older Gaelco drivers. . Added PCB layout - Thunder Zone . Created MB8421/MB8431 16-bit expanded variant and added it to Thunder Zone/Desert Assault . Acknowledge IRQs - Trick Trap: Fixed tile-sprite priorities, mostly visible when exiting an area in most stages (ID 04872). - Virtua Striker 4 Ver.2006 (Japan): Redumped GDROM - Input port . Fixed up input_merger: Added more variants, synchronisation and save state support and removed dubious reset behaviour (machine\input_merger.cpp; drivers\aristmk5.cpp, beezer.cpp, buggychl.cpp, rpunch.cpp, includes\btime.h, bublbobl.h, flstory.h, kingobox.h, lsasquad.h, nycaptor.h and audio\efo_zsu.h (cedar_magnet.cpp and play_3.cpp)). . Use input merger device for btime.cpp . Return explicit "file not found" error if inp file isn't found on playback, added error code number to any other error found (emu\ioport.cpp). - Save state: Fixed new load/save state menu does not respect -statename (ID 06621) - Dipswitch fixes in changela.cpp, cps1.cpp, csplayh5.cpp, dbz.cpp, dynax.cpp, gyruss.cpp, m90.cpp, namcos2.cpp, pacman.cpp, royalmah.cpp, seattle.cpp and vegas.cpp - Fixed rom names in gyruss.cpp, kaneko16.cpp, mitchell.cpp, pacman.cpp, pastelg.cpp, segae.cpp, seta.cpp, shangha3.cpp and snk6502.cpp - Description changes of 1943: Midway Kaisen (Japan, no protection hack), Ai-mode - Pet Shiiku (Japan), Alligator Hunt (unprotected, set 1), Brave Firefighters, Cosplay Tengoku 7 - Super Kogal Ranking (Japan), Crazy Climber (US set 1), DoDonPachi Dai-Ou-Jou V101 (Japan, 2002.04.05.Master Ver), DoDonPachi Dai-Ou-Jou V100 (Japan, 2002.04.05.Master Ver), DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05 Master Ver), DoDonPachi Dai-Ou-Jou (Japan, 2002.10.07.Black Ver), DoDonPachi Dai-Ou-Jou (Japan, 2002.10.07 Black Ver), DoDonPachi Dai-Ou-Jou (Japan, 2002.10.07 Black Ver., bootleg Knights of Valour Super Heroes conversion), Donkey Kong Jr. (bootleg on Moon Cresta hardware, set 1), Donkey Kong Junior (Japan set F-1), Goldeneye (4.04), Koala Mint (CHG1573, US), International Toote (Germany, P523.V01), International Toote II (v1.24, P387.V01), Jockey Club (v1.18), Mahjong Mogitate (Japan), Mario Bros. (Japan, Revision C), Mega Zone (program code I), Mega Zone (unknown program code 2), Mega Zone (program code J), Mega Zone (program code H), Mega Zone (unknown program code 1), Neo Geo CTHD Protection (bootleg) (ID 06649), Nibbler (Pioneer Balloon conversion - rev 6), Nibbler (rev 9, alternate set), Night Gal Summer [BET] (Japan 850702 NGS 0-01), Star Wars: Racer Arcade, Star Wars Trilogy Arcade (Revision A), Star Wars Trilogy Arcade (ID 06659), Vamf x1/2 (Europe, version 1.1.0908), Vamp x1/2 (Korea, version 1.1.0908), WWF Superstars (US revision 4) and WWF Superstars (US revision 7) - Renamed (1943ja) to (1943jah), (brapboysj) to (brapboyspj), (brapboysu) to (brapboyspu), (cawingu) to (cawingur1), (inttootea) to (inttoote2), (ordyne) to (ordyneje), (podrace) to (swracer), (grtesoro) to (play2000a), (grtesoro4) to (play2000), (megazonec) to (megazoneh), (megazoneb) to (megazonej), (megazonea) to (megazoneb), (megazonei) to (megazonea), (megazone) to (megazonei), (shocktro) to (shocktroa), (shocktroa) to (shocktro), (vendetta2p) to (vendetta2pw), (vendettaj) to (vendetta2pp), (vf4evo) to (vf4evob), (wwfsstaru) to (wwfsstaru7) and (wwfsstarua) to (wwfsstaru4). - MAME . VIDEO RENDERING SYSTEM . Reduced weight of render.h by moving component specialisation declarations into emu\rendlay.cpp . Added support for layout item groups, replaced simple_list with more appropriate containers, removed misleading const qualifiers and reduced repeated XML walking (build\, emu\render.cpp/h and rendlay.cpp). Groups aren't parameterised, so they aren't as useful as they could be. However, it's already useful for putting a common set of elements in multiple views, potentially at different locations/scales. See intlc44.lay and intlc440.lay for examples of the level of copypasta this can eliminate. Be aware that groups with explicit bounds don't clip thair content, it's only used for calucating the transform matrix. Get rid of string hashes when fetching output values in layout rendering. . Get rid of forced sleep in emu\video.cpp . PNG . Added minimal support for reading Adam7 interlaced PNG (emu\rendutil.cpp and util\png.cpp). Note: Decompression and unfiltering is fully supported, at least for all the pixel formats that previously worked. Expanding 1/2/4bpp to 8bpp should work properly, too. Bitmap mapping for Adam7 is only implemented in rendutil.cpp which is whate everything in MAME uses. The function in png.cpp (used by pngcmp) has not been updated. At some point I'll unify at least one of the functions in rendutil.cpp with the one in png.cpp and we can go from three functions that need to do the mapping down to two at the most. . Unified code for copying PNG data into bitmap for MAME and pngcmp. Fixed upsampling of monochrome PNGs (need to splat across byte). Added support for greyscale+alpha. Detect more unsupported conditions rather than just behaving badly. Support 16-bit samples. . Support greyscale with transparent pen, encode/decode text chunks as UTF. Fixed indexed transparency. . DEVICE . Fixed -slot card, bios=rev (selected BIOS was being applied to slot itself, not card) . Added address-shifted versions of AM_DEVREAD/_DEVWRITE/_DEVREADWRITE. These new macros make it easy to map devices addressed using higher address lines (which on actual HW helps to reduce loads on the lowest address lines) without needing to set up custom handlers and associated device finders. The implementation should not impact the efficiency of the core memory system since the semantic details are contained within C++11 lambdas. Improved way to transform offsets for AM_DEVREAD/_DEVWRITE. Replaced AM_DEVREADWRITE_RSHIFT with a similar but more functional-looking interface (now known as AM_DEVREADWRITE_MOD), which also now supports address line inversion as well as shifting (drivers\equites.cpp, gaelco.cpp, gaelco3d.cpp, goodejan.cpp, gridlee.cpp, legionna.cpp, r2dx_v33.cpp, raiden2.cpp, splash.cpp, taito_l.cpp, thoop2.cpp, timeplt.cpp and wrally.cpp). . UI . Eliminated use of hairline spaces for alignment in the info box (ui\selgame.cpp, selmenu.cpp and ui\text.cpp) . Use aggregate emulation status in UI menus, expose more flags in info box. Use aggregate flags for -ui simple as well. . Added indication for presence of analog controls and keyboard inputs in info box (ui\selgame.cpp). . Greatly reduce copy/paste code for drawing menu header/footer boxes. Display full name of selected slot device below slots menu. Fixed spacing on dircetory configuration menu. Fixed minimum/maximum for UI font rows per screen setting. . Fixed info box navigation when system selection menu doesn't have focus . Make filter names localisable, fixed keyboard navigation of software filter box, encapsulate a couple more things in selmenu and friends, get rid of hacks in selector tying it to implementation details of other menus. Note: This turns the filters into polymorphic objects that will be more manageable and not require so much copy/pasting when updating APIs. . Polymorphic machine/software list filters: Localisable filter names. Uniform interface for most filters without far less special-casing. Stacking year/manufacturer/etc. does OR rather than useless AND. Prevent stacking contradictory filters (e.g. parents and clones). Fixed alignment of filter list. Removed most of the lambdas added the other day. There's no longer an implicit "not BIOS" filter. Can't add (un)available to custom machine filter (will address). . Improved layout of art/info box, support mouse wheel scroll in info text, allow home/end to jump to beginning/end of filter list, consolidate logic. A number of vestigial constants have been removed. Some hacky input types that were just used as a trick to pass information between menu functions are gone. MACHINE_NO_STANDALONE is a relic from when drivers were used as arbitrary ROM containers, and in a world of first-class devices this is no longer necessary. . Don't process every character individually when searching, this reduces lag if you keep typing while a big list is searched. . Make category filter work like all the other filters: Category filter is now saved/restored if it's last used. Category filter can be used in composite custom filters. Less confusing when no categories found. De-duplicated code for drawing category list. . Fixed software art/info display when keyboard focus leaves software selection list, consolidate more logic, more code deduplication, fixed gutters on dats view and fallthrough from dats to save. There's some weirdness with shortcust for dats/export/favourite toggle if they result in a character being typed. . Save/restore images/info selection in right panel . Fixed selecting a slot to fill for "EXP" causes Fatal Error in (MESS) C64 (ui\slotopt.cpp) (ID 06657). Note: The source of the issue is that the logic for rotating slot options was broken. It would count selectable options and skip over options that were not selectable, except for the specific scenario where the index was zero. I ended up largely replacing the logic to be more C++-ish. . Added a not BIOS machine filter (useful in composite filters), support RGB PNG with transparent pen because why not. . Clean up some of the UI filter stuff, show list descriptions rather than names when choosing list to filter on. Fixed a localisation issue and a loop bounds issue. . Make (Un)Available a polymorphic filter (works in custom filter again). Fixed bugs and improved performance of code for detecting systems without ROMs. Show progress while auditing ROMs. Use actual INI file format for mame_avail.ini. . Fixed crash on invalid/empty/outdated ui.ini . LUA engine . Added debugger manager support . Refactor server_{ws,http}.hpp into separate interface and implementation headers. When shutting down the HTTP server, also explicitly stop the asio::io_context (emu\http.cpp). . PLUGINS . Catch errors in cheat scripts and preliminary breakpoint/watchpoint support (cheat\init.lua) . Added GDB stub plugin . Use 2 column format and clean up some parse errors (plugins\data\data_story.lua and load_dat.lua) . Added MARP scores plugin . Updated hiscore.dat . Moved unimplemented/imperfect flags from machines into devices. Allows dynamic warning flags depending on slot configuration. Unclutters GAME/CONS/COMP/etc. definitions where a family of machines or a device have the same flags. Allows more combinations of flags. Right now, flags for unemulated/imperfect features apply at system level. This falls over quickly with systems that have slot devices. For example you can plug in a broken sound card or keyboard on a PC or Amiga driver and get no warnings. There's also no way to propagate these flags from a device to all systems using it. This changeset addresses these issues. It's now possible to report unemulated/imperfect features on a device level with static unemulated_feeatures() and imperfect_features() member functions. So far the only thing using this is the votrax device. To support front-ends, this is exposed in -listxml output as a new "feature" element that can appear in system/device descriptions. It has a "type" attribute indicating which feature it is, potentially a "status" attribute if the device itself declares that the feature is unemulated/imperfect, and potentially an "overall" attribute if the device inherits a more severe indication from a subdevice. The embedded DTD describes possible values. Example: device/machine declares imperfect sound: . Example: device/machine declares unemulated keyboard: . Example: device declares imperfect controls but inherits unemulated controls from a subdevice: . Example: device doesn't declare imperfect LAN but inherits it from a subdevice: . It's still possible to add these flags to machines in the GAME/COMP/CONS macro. If the state class declares them with static member functions, the two sources will be combined. If you subclass a device, you inherit its flags if you don't redefine the relevant static member functions (no override qualifier is necessary since they're static). The UI has been updated to display appropriate warnings for the overall machine configuration, including selected slot devices, at launch time. The menus don't display overall status, only status for the machine itself. We can make it scan subdevices if we decide that's desirable, it just needs caching to enure we don't take a huge performance hit. Trade MACHINE_IMPERFECT_KEYBOARD, MACHINE_NODEVICE_CAMERA and MACHINE_NODEVICE_WAN for MACHINE_IMPERFECT_CONTROLS: MACHINE_IMPERFECT_KEYBOARD is more applicable on keyboard devices - most of them should be devicified eventually. MACHINE_NODEVICE_CAMERA tends to apply across a family of machines, so it's easy to apply at state class level. MACHINE_NODEVICE_WAN isn't even used. MACHINE_IMPERFECT_CONTROLS is widely applicable, knock yourselves out adding it to GAME macros. Updated machines that were using MACHINE_IMPERFECT_KEYBOARD or MACHINE_NODEVICE_CAMERA to apply it at device or state class level. Added flag for imperfect timing. . Multi-Language . Update localisation .po files. Our localisations are rotting badly, so please update what you can for recent UI changes. Note that to run make translation you need to patch GNU gettext to support C++14 digit grouping. See the attached patch here: . Updated Chinese (simplified/traditional), German, Greek, Italian, Japanese, Portuguese (Brazil), Russian, Serbian, Serbian (Cyrillic), Spanish, Swedish and Turkish translations. . Added "minimaws" scripts, a reference -listxml consumer (implemented with Python/WSGI and JavaScript): Provides verbs for loading data, some basic batch queries and an interactive web server mode. Serves linked HTML pages for machines, devices and source files. Demonstrates how to dynamically discover slot/BIOS options from static -listxml output. Allows user to build a slot configuration and shows necessary command-line arguments or INI lines to produce it in MAME. As a side effect, this provides additional validation of -listxml output, several issues and limitations were addressed [Vas Crabb]. . Fixed -sleep and -refreshspeed options (MAME will no longer use 100% of a CPU core for the least demanding systems; emu\emuopts.cpp) . Validity . Fixed description check (emu\validity.cpp) . Validate BIOS names and fix most errors found: Error on characters other than [a-z0-9.-_] in name. Error on duplicate name or description and Error on non-existent default BIOS. - MAC OS X . Use proper font metrics and handle space glyphs with null bounding box on OS X. . Handle fonts where space glyphs return a null bounding box (e.g. Hiragino family) restore ability to localise info box headings (font\font_osx.cpp). - Android: Modification for Android build (NDK r14b, build-tools 21.1.2 and gradle 2.2.1) - Compiling . Work around GCC ambiguous template error (emu\output.h) . Removed a whole lot of I64 from format strings. There are a couple of issues here: Firstly, the determining factor for whether I64 or ll is needed as the size qualifier doesn't depend entirely on whether you're using MSVC or not, it depends on the the C runtime library. The msys64 C runtime apes the Microsoft runtime and requires I64 as well, so a lot of files where LLFORMAT had been copy/pasted wouldn't work right if you depeneded on it anyway. Secondly, one of the major benefits of util::string_format, util::stream_format and logerror in their current forms is that you don't need size specifiers for integers at all (unless you're using them to truncate a value, but in that case you're better off casting the argument for clarity). If you do use them, logerror and friends will accept both Microsoft- and SUS-style independently of the C runtime. . Moved additional content for release archive from build repository to main repository (artwork\apertureXXXXX.png, artwork\scanlines.png, ctrlr\hotrod.cfg, hotrodse.cfg, scorpionxg.cfg, slikstik.cfg, ctrlr\xarcade.cfg and dist.mak). - Debugger: In the windows debugger log window added a Log/Clear menu to removed all logged messages 0.188 - 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 mame.ini options: dtd = 1 (FRONTEND COMMAND OPTIONS) - 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: - 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 . 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. - decocass.cpp . 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 - gaelco2.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 - galaxian.cpp . 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) - kinst.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 - namcond1.cpp . 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. - naomi.cpp . 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 - vegas.cpp . 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 - PinMAME . 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 - 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) - MAME . UI . 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). . DEVICE . 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 . 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). . PLUGINS . 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) . Improved -romident performance by dynamically allocating large arrays at device_start time (sound\ay8910.cpp, audio\taito_en.cpp and video\powervr2.cpp) (ID 04355) . 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. . Layout . Made scripts do substantial validation of layouts at build time (scripts\build\ Removed vestigial exception class. Comment out problematic parts of internal layouts detected by build-time validation (layout\checkma5.lay, 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) - SDLMAME . 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, 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). - Compiling . 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) - Debugger . 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).


0.191: Updated to MAME 0.191 ( Added Source/Listinfo changes. Newest Bugs (25th Oct). Added DEmul v0.7 (12.10.2017) Emulator infos. Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.190: Updated to MAME 0.190 ( Added Source/Listinfo changes. Newest Bugs (26th Sep). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.189: Updated to MAME 0.189 ( Added Source/Listinfo changes. Newest Bugs (30th Aug). Added Kawaks v1.65 Emulator infos. Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.188: Updated to MAME 0.188 ( Added Source/Listinfo changes. Newest Bugs (26th Jul). Added FB Alpha v0.2.97.42 and Demul Emulator infos. Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.


MAMEINFO.DAT 0.191  (2.73 MB)

MAMEINFO.DAT 0.190  (2.73 MB)

MAMEINFO.DAT 0.189  (2.72 MB)

MAMEINFO.DAT 0.188  (2.68 MB)

   MASH's Driver WIP

   News Submission Board
   MAME Testers
   MAME Download
   MAME Frequently Asked Questions