0.221 2020-05-19
----------------


MAME Testers Bugs Fixed
-----------------------
- 07560: [Crash/Freeze] (cave.cpp) hotdogst: memdump command causes MAME crash (Olivier Galibert)
- 07615: [Documentation] (cninja.cpp) mutantf, mutantf2, mutantf3, mutantf4, deathbrd: Incorrect release year (jkburks)
- 07616: [Sound] (segas32.cpp) radr, radrj, radru: Wrong sounds. (zozo)
- 07617: [Graphics] (rungun.cpp) rungun: Graphic/Sprite offsets


New working machines
--------------------
Anime Champ (GCA07 VER. JAA) [Windy Fairy, smf]
Goori Goori [Miso Kim, David Haywood]
Great Bishi Bashi Champ (GBA48 VER. JAB) [Windy Fairy, smf]
Gulun.Pa! (Japan 931220 L) (prototype) [lydz, Arcade-Projects]
Speed Race (Seletron / Olympia) [hap, f205v]


New working clones
------------------
Big Run (11th Rallye version, US?) [system11, CoolFox]
Cobra-Command (Japan, bootleg) [f205v]
DoDonPachi Dai-Ou-Jou (Japan, 2002.04.05 Master Ver, location test) [ShouTime]
Final Fight (bootleg with single OKI) [hammy, Boge, rtw, ekorz]
Front Line (AA1, 4 PCB version) [Joe Magiera, The Dumping Union]
G.I. Joe (US, UAA) [NeTaXe]
Galaxy X (bootleg of Galaxian) [Andrew Welburn]
Gun.Smoke (Germany, censored) [Saigononindou, Victor Fernandez (City Game), Jacinto Lozano]
Jumping Break (set 2) [Kevin Eshbach]
Jurassic 99 (Cadillacs and Dinosaurs bootleg with EM78P447AP) [TwistedTom]
Koutetsu Yousai Strahl (Japan, bootleg) [hammy, ekorz, rtw, kuze, E.M.G]
Metal Slug 5 (bootleg) [TwistedTom]
Mighty Monkey (U.Games bootleg) [f205v]
Moon Cresta (Nichibutsu USA, encrypted) [pacman70, Asayuki]
Pang! 3 (bootleg, set 3) [TwistedTom]
Perfect Billiard (bootleg) [f205v]
Pro Tennis (Japan) [ShouTime]
Raiden Fighters 2 - Operation Hell Dive (Switzerland) [nnap]
Route 16 (Sun Electronics) [Guru]
Space Invaders Part II (Taito, smaller ROMs) [PokeMAME]
Street Fighter II: The World Warrior (World 910411) [fluxcore]
Super Contra (set 2) [Victor Fernandez (City Game), ClawGrip]
T.A.N.K (bootleg, 8-way joystick) [Guru]
The Mah-jong (Japan, set 2) [ShouTime]
Touchmaster 5000 (v7.11 U.K.) [Muddymusic, Porchy, The Dumping Union]
Turbo (encrypted, program 1363-1365 rev C) [Digimon]
Vanguard (Germany) [Paul Swan]
Warriors of Fate (bootleg with PIC16C57) [hammy, ekorz, rtw]
Warriors of Fate (bootleg) [TwistedTom]
X-Men (4 Players ver UEB) [Joe Magiera, The Dumping Union]


Machines promoted to working
----------------------------
Lady Gum [Dirk Best]
Professor Trivia (set 1) [Dirk Best, Ivan Vangelista]


Clones promoted to working
--------------------------
Atom (bootleg of Bombjack Twin) [Ivan Vangelista]
Professor Trivia (set 2) [Dirk Best, Ivan Vangelista]
Sangokushi II (bootleg) [TwistedTom]


New machines marked as NOT_WORKING
----------------------------------
Bandai Go! Go! Connie-chan! Asobou Mouse [Sean Riddle, David Haywood, Peter Wilhelmsen, gamehistory.org, anonymous]
EuroPlay 2001 [Juan Romero, ClawGrip]
Happy Skill (Italy, V611IT) [caius, The Dumping Union]
Master's Fury [Miso Kim, David Haywood]
Montana Super Draw (4436-05, U5-0) [Brian Troha, The Dumping Union]
Pacman BALL (PMB2 Ver.A.) [Muddymusic, Porchy]
Scorpion DX [ArcadeHacker, ClawGrip, Rampa, Recreativas.org]
unknown Recreativos Franco slot machine [jordigahan]


New clones marked as NOT_WORKING
--------------------------------
Alligator Hunt (protected, prototype?) [jordigahan, Heckler]
Crazy Bonus 2002 (Ver. 1, set 3) [Ioannis Bampoulas]
Frantic Fred (Release 2) [Brian Troha, The Dumping Union]
Mario Kart Arcade GP (Japan, MKA1 Ver.C, update) [xuserv]


Source Changes
--------------
- cpu/z180: Moved some internal registers out of the base class, and implemented software-selectable clock divider [AJR]
- cpu/mcs96: Added N8097BH and P8798 variants, and changed some variants to use 16-bit buses [AJR]
- cpu/upd78k updates: [AJR]
 * Fixed disassembly of DBNZ and MOV A,!addr16 instructions for uPD78K/III.
 * Fixed disassembly of SFR-mode read/modify/write instructions for uPD78K/I and uPD78K/II.
- acia6850: Fixed transmission of a spurious character following master reset [AJR]
- machine/upd7001.cpp: Added NEC uPD7001 analog-to-digital converter device [AJR]
- dgnalpha.cpp: Removed old hack to ignore first floppy drive controller interrupt (now prevents disk boot) [AJR]
- mpu4dealem.cpp: Adjusted v4dealem CRT controller clock to make refresh rate more reasonable [AJR]
- cpu/h8500: Added Hitachi H8/500 disassembler and skeleton CPU device family [AJR]
- machine/m3002.cpp: Added M3002 real-time clock device [AJR]
- machine/mos6551.cpp: Clear interrupt request output on reset [AJR]
- Made debugger interpret numerical literals in expressions as octal for applicable address spaces in disassembly views [AJR]
- machine/am9517a.cpp: Assert EOP during final DMA transfer, rather than after [AJR]
- cpu/z8000 updates: [AJR]
 * Corrected width of Z8002 I/O space to 8 bits.
 * Forced sequence points after functions with side effects when calculating operands for certain instruction modes.
 * Implemented byte smearing for memory and I/O writes.
 * Improved misaligned word I/O implementation.
- machine/6883sam.cpp: Replaced custom banking with conventional address spaces [AJR]
- bus/isa: Corrected CRT controller type for Olivetti M24 CGA card [AJR]
- badlands.cpp: Use generic latch devices for CPU communications, added mirroring to 6502 memory map, and cleaned up handlers [AJR]
- debugger/osx: Avoid crash if a non-existent disassembly or memory view source is selected [AJR]
- cyberbal.cpp: Encapsulated Atari SAC sound board emulation as a device derived from the Atari JSA sound board device [AJR]
- atarisy1.cpp, atarisy2.cpp, gauntlet.cpp: Cleaned up and modernized code [AJR]
 * Replaced Atari sound communication device with generic latches, and improved handling of programmed sound resets.
 * Added the other 74LS259 addressable latch to gauntlet.cpp.
 * Corrected watchdog timeouts for all three drivers.
- cpu/m68000: Corrected 68010 DBcc timings [AJR]
- atarisy1.cpp: Removed TMS5220C and VIA from machine configuration for marble and peterpak [AJR]
- atarisy1.cpp: Marked indytemp as having imperfect sound and noted regression [AJR]
- malzak.cpp updates: [Angelo Salese]
 * Added default non-volatile RAM content to Malzak II so that it boots as intended.
 * Converted playfield drawing to use a tilemap, improved playfield colors, and implemented playfield tile banking.
 * Added base mixing and priority.
- segas32.cpp: Truncate background layer color base to nine bits - fixes Arabian Fight and Soreike Kokology erratic black pens [Angelo Salese]
- tmnt.cpp: Fixed Golfing Greats (Japan) inputs [Angelo Salese]
- konamigx.cpp updates: [Angelo Salese]
 * Fixed Golfing Greats 2 inputs, re-worked DIP switches for all games, and added DIP switch locations.
 * Fixed right monitor sprite DMA with type 3/4 protection, and fixed right screen protection in Rushing Heroes and Run & Gun 2.
 * Dual-monitor 4-player mode now works, and is enabled by default.
- pcktgal.cpp: Reset MSM5205 on changing sound bank (fixes annoying whistling sounds) [Angelo Salese]
- renegade.cpp updates: [Angelo Salese]
 * Fixed vertical sprite alignment.
 * Hooked up interrupt acknowledgement and corrected interrupt routing.
 * Hooked up coin counters.
- opwolf.cpp: Corrected Operation Wolf palette format according to schematics, and verified against PCB [Bryan McPhail]
- cave.cpp updates: [cam900]
 * Implemented sprite position scale register.
 * Fixed ppsatan tilemap offsets.
 * Implemented sprite limits.
 * Added logging for unimplemented video register writes and expanded notes.
- decbac06.cpp updates: [cam900]
 * Fixed flags map handling.
 * Added callback for system-specific tile attribute formats.
 * Refactored pen masking to use set_transmask.
- dec0.cpp: Cleaned up code [cam900]
- madmotor.cpp: Simplified graphics layouts [cam900]
- psikyo.cpp: Simplified dynamic tilemap size handling, converted drawing to use 32-bit RGB bitmap, and cleaned up code [cam900]
- deco16ic.cpp: Fixed transparency handling with custom drawing, and added a callback for tile info and 8-bit mixing [cam900]
- cninja.cpp updates: [cam900]
 * Fixed robocop2 8-bit tilemap drawing.
 * Fixed sound routing for games with mono output, and removed unnecessary graphics layouts [cam900]
- darkseal.cpp: Cleaned up graphics decoding layouts [cam900]
- sshangha.cpp updates: Cleaned up graphics decoding layouts, corrected palette size, and changed to mono sound output [cam900]
- mirage.cpp: Simplified sprite drawing using priority callback [cam900]
- nmk16.cpp: Implemented vertical scrolling used by sabotenb, added timer for sprite DMA, and fixed sabotenb sprite delay [cam900]
- ddealer.cpp, nmk16.cpp, powerins.cpp, quizpani.cpp: Use set_scrolldx for tilemap offsets [cam900]
- ddealer.cpp, patapata.cpp: Use generic graphics layouts [cam900]
- quizpani.cpp: Fixed visible area [cam900]
- rpunch.cpp: Converted sprite drawing to single pass with priority, and cleaned up code [cam900]
- powerins.cpp: Converted to derived class of nmk16_state and cleaned up code [cam900]
- machine/tc009xlvc.cpp: Added support for TC0090LVC variant, and converted taito_l.cpp to use new device [cam900]
- dfruit.cpp, lastbank.cpp: Removed unnecessary trampolines [cam900]
- cpu/i386, machine/i8087.cpp: Handle aliases for fstp st(i) instruction [Carl]
- mw8080bw.cpp: Added netlist-based audio for gunfight [Colin Howell]
- netlist library updates: [Couriersud]
 * Added pre-compiled static solvers (must be manually rebuilt when netlists are updated).
 * Improved performance of time step calculation.
- bus/abcbus updates: [Curt Coder]
 * Fixed default DIP switch settings for the Luxor 4105 SASI interface.
 * Added a ROM to the Xebec S1410.
 * Fixed the Luxor 55 21056 SASI interface (for ABC 850/852/856 hard drives).
- triviaquiz.cpp: Hooked up question ROMs [Dirk Best]
- cpu/m6805: Added support for MC68HC705C8A memory configuration, and made 68HC05 NCOP reset check that NCOP is enabled [Dirk Best]
- mpu4dealem.cpp: Fixed tile background colors, made drawing use tilemaps, and added raw screen timing parameters [Dirk Best]
- emu/diexec.cpp: Don't clear the input event queue on reset [hackbar]
- cpu/mb88xx: Fixed interrupt handling [hackbar]
- audio/namco52.cpp, audio/namco54.cpp, machine/namco50.cpp, machine/namco53.cpp: Hooked up reset inputs [hackbar]
- machine/namco06.cpp: Improved emulation of NMI and chip select outputs [hackbar]
- machine/namco51.cpp: Replaced simulation with emulation using internal CPU program [hackbar]
- sstrangr.cpp: Added preliminary sound output using Space Invaders samples [Ivan Vangelista]
- jedutil: Added support for PAL22V10 devices [Kevin Eshbach]
- wiping.cpp: Updated ROM labels for rugrats [Kevin Eshbach]
- yunsung8.cpp: Added placeholders for undumped secured PALs in magix and magixb [Kevin Eshbach]
- buggychl.cpp, changela.cpp, cischeat.cpp, polepos.cpp, segaybd.cpp, tx1.cpp: Worked around the same input being assigned to a pedal and gear shift by default [MASH]
- machine/74543.cpp: Added 74543 octal registered transceiver device [Michael Zapf]
- machine/74161.cpp: Fixed state transitions for some corner cases and made terminal count output asynchronous [Michael Zapf]
- machine/bq4847.cpp, machine/bq48x2.cpp: Added Benchmarq BQ4847, BQ4842 and BQ4542 real-time clock devices [Michael Zapf]
- bus/ti99/peb: Added PGRAM battery-backed RAM card, fixed IDE adapter card, and made IDE card's real-time clock type configurable [Michael Zapf]
- Refactored AVI/MNG recording code to move it out of emu/video.cpp and reduce duplication [Nathan Woods]
- luaengine.cpp: Added optional parameter to video::begin_recording() function for specifying video format [Nathan Woods]
- unidasm: Added generic disassembler for Microchip PIC16 microcontroller family with extended instructions [O. Galibert]
- cpu/s2650: Made interrupt acknowledge handler supply vector, and eliminated set_input_line_and_vector and HOLD_LINE [O. Galibert]
- cpu/upd177x: Added disassembler for NEC uPD1771C and related processors [O. Galibert]
- sound/ks0164.cpp: Added preliminary sample playback [O. Galibert]
- machine/cxd1185.cpp: Added Sony CXD1185 SCSI 1 Protocol Controller device [Patrick Mackinlay]
- machine/dmac_0266.cpp: Added Sony 0266 DMA Controller gate array device [Patrick Mackinlay]
- news_r3k.cpp: Implemented graphics [Patrick Mackinlay]
- machine/icm7170.cpp: Added ICM7170 real-time clock device (used by wxstar4k) [R. Belmont]
- model1.cpp: Improved swa analog throttle range [R. Belmont]
- font_osx.cpp: Use Arial Unicode MS as the default font (fixes missing glyphs in many layouts) [R. Belmont]
- formats/h8_cas.cpp: Added H8T tape format (for Heathkit H8 software) [Robbbert]
- lordgun.cpp: Added default EEPROM content for lordgun [Robbbert]
- vgmplay.cpp updates: [Ryan Holtz]
 * Added multiple spectrogram visualization modes.
 * Fixed DC offsets occurring when chips are not used.
 * Added rate controls and a hold button.
- cps1.cpp: Added new PAL dumps [TwistedTom]
 * Dumped remaining B board PALs for kodja and knightsja [Bonky0013]
 * Dumped remaining D board PAL for wof and clones [hammy]
 * Dumped remaining B board PAL for willowj [Layer]
 * Dumped remaining B board PAL for cworld2j [neocps1]
 * Dumped remaining B board PAL for kod and clones and dumped unprotected PALs for Street Fighter II Mstreet bootlegs [Porchy]
 * Dumped remaining B board PAL for punisher and clones [Wulfman]
- cps1.cpp updates: [TwistedTom]
 * Implemented B board ID register 03.
 * Added demo sounds DIP switch for ghouls.
 * Added notes about how /INT2 is generated and connected.
 * Added notes on pang3 B board and security chip.
- video/cps1.cpp: Added and updated mappers based on PAL equations [TwistedTom]
 * Added CD63B, PS63B, MB63B, CP1B1F, TK24B1, WL22B, S222B, YI22B, MS22B, CK22B, KD22B, KR22B, VA24B and GBPR2 mappers.
 * Corrected KNM10B, Q522B and TN2292 mappers according to PAL equations.
- cps1bl_pic.cpp updates: [TwistedTom]
 * Improved dinopic sprite rendering (fixes missing tiles when character jumps and flips).
 * Disabled brightness control for bootlegs that don't have the necessary components populated.
 * Improved wofpic emulation, making the game playable with some graphical issues.
 * Simplified wofpic graphics ROM loading.
- fcrash.cpp updates: [TwistedTom]
 * Simplified wofabl graphics ROM loading.
 * Removed EEPROM device from sgyxz and wofabl (these games use DIP switches for configuration).
 * Fixed sgyxz and wofabl player 3 inputs.
 * Added some DIP switch settings for sgyxz and wofabl.
 * Added hard-coded layer priority masks for sgyxz.
- gstriker.cpp: Added PAL dumps for vgoalsoc/twcup94 and clones [TwistedTom]
- pcktgal.cpp: Added PAL dumps for pcktgalb [TwistedTom]
- wc90b.cpp: Added PAL dumps from twcup90b2 board to all similar bootlegs [TwistedTom]
- Various core clean-ups: [Vas Crabb]
 * util/strformat.h: Centralised instantiation of more of the formatting engine.
 * emu/fileio.cpp: Added support for iterating arbitrary numbers of path components to path_iterator and emu_file.
 * emu/romload.cpp: Made ROM loading code more straightforward.
 * emu/romload.cpp: Made software loading search the software path before searching the device path.
 * emu/romload.cpp: Made software loading correctly scan parent software for identical CHD files with different names.
 * emu/diimage.cpp: Refactored to share code for building a software search path with ROM loading and auditing.
 * emu/softlist_dev.cpp: Added validation for software parts and data areas.
 * Fixed multiple hangs when software parent relationships form a loop.
 * Re-implemented SHA-1, replacing multiple third-party implementations.
- sstrangr.cpp: Measured CPU clock frequency [Andrew Welburn]
- 8080bw.cpp: Updated notes on Space Invaders PCB arrangements [Andrew Welburn]
- segas32.cpp: Re-dumped radr sound ROMs [Arzeno Fabrice]
- oneshot.cpp: Corrected ROM labels and PCB locations for the maddonna [Brian Troha, The Dumping Union]
- vamphalf.cpp: Added idle-skipping speed-up hack for jmpbreaka [Brian Troha]
- carrera.cpp: Dumped the bipolar PROM for bsebman and verified it matches the one from carrera [caius]
- gsword.cpp: Decapped, dumped and hooked up AA-017 microcontroller for gsword - fixes coin handling [Caps0ff, *=/STARRIDER\=*, EdHunter, developer12s, Belegdol, sadikyo, f205v, Vas Crabb]
- model2.cpp: Fixed airwlkrs ROM loading - fixes polygons and textures [ElSemi]
- fantland.cpp: Improved parts list, measured clock frequencies and added two SN76489AN sound chips for wheelrun [f205v]
- taitof2.cpp: Corrected clock frequencies and ROM labels for driveout [f205v]
- megasys1.cpp: Improved documentation for kickoffb [f205v]
- shisen.cpp: Verified clock frequencies, and corrected ROM labels and added placeholders for undumped PALs for sichuan2 [f205v]
- docs: Disabled "smart" substitution of typographical quotes [Firehawke]
- sound/disc_flt.hxx: Improved documentation for DISCRETE_FILTER1 and DISCRETE_FILTER2 [Frank Palazzolo]
- 2mindril.cpp, 3x3puzzl.cpp, alpha68k.cpp, alpha68k_n.cpp, crystal.cpp, lsasquad.cpp, pturn.cpp nycaptor.cpp, timeplt.cpp: Added DIP switch locations [Guru]
- 39in1.cpp: Added notes about expected boot sequence and unimplemented DIP switches [Guru]
- sstrangr.cpp: Added DIP switch locations, ASCII PCB layouts and additional notes [Guru]
- model2.cpp: Re-dumped airwlkrs data ROMs [Guru]
- btime.cpp: Added DIP switch locations, verified DIP switch settings, and fixed DIP switch settings for ptennis and clone [Guru]
- decocass.cpp: Verified cptennis DIP switch settings against documentation [Guru]
- snk.cpp: Added PCB layouts and notes, and updated DIP switch locations and ROM labels [Guru]
- terracre.cpp: Added DIP switch locations and corrected ROM labels [Guru]
- route16.cpp, shaolins.cpp: Added DIP switch locations, added PCB layouts and updated notes [Guru]
- shadfrce.cpp, shangkid.cpp, taitosj.cpp: Verified DIP switch settings and added DIP switch locations [Guru]
- homerun.cpp: Updated notes [Guru]
- cps1bl_pic.cpp: Re-dumped wofpic graphics ROMs [hammy, TwistedTom]
- snk.cpp: Dumped two PROMs for victroad and added some PROM labels [Joe Magiera, The Dumping Union]
- m52.cpp: Added missing PROM dump to original Moon Patrol sets [Joe Magiera, The Dumping Union]
- Updated hiscore.dat for latest changes [Leezer]
- naomi.cpp: Re-dumped ngdup23a GDS-0023A (previous dump had bad audio track) [MajorPBX]
- vgmplay.xml: Updated 18 entries [Project2612, Tafoid]
- kikikai.cpp: Dumped MC68705 microcontroller for kicknrun [Sean Riddle]
- dec8.cpp: Dumped the PROM from an original Cobra-Command PCB [Stefan Lindberg]
- equites.cpp: Dumped Alpha 8505 microcontroller from bngotime (also used in place of Alpha 8304) [TeamEurope]