Mameinfo.dat v0.197
Updated - 27th May 2018

Homepage -
E-Mail -



What's New

*NEW* Mameinfo + MAMEUI-inifiles-0198GIT (19th May) (3.42 MB)

MAMEUI 0.197 Category-, Version and Alltime inifiles (725 kB)

MAME NEWS from 0.37b1 - 0.197 (4.21 MB)

PCB-infos 0.153 (2.11 MB)

MAME listinfos from 0.25 to 0.170 (153 MB)

New in MAME:    
0.199GIT - New clones: Raiden Fighters (US, newer) and Viper Phase 1 (New Version, Germany) - Analog Device AD1848 sound: Swapped the crystals so it's playing at 32Khz instead of 22.05. This fixed all sounds playing too fast in mtouchxl.cpp (ID 06983) - alpha68k.cpp: Added addressable latch for type II and V configurations - mpu4.cpp: Use device finder - seta.cpp: Added seperate value for tilemap banks. Added user_data for tilemap banks. Minor cleanups. Added seperate value for rambank. Added output_finders. - toaplan1.cpp: Assorted machine().device removals - Star Force: Simplified background color swap - Use plural names for output finders when there are multiple outputs 0.198 - New games: Jikkyou Powerful Pro Yakyuu EX '98 (GC811 VER. JAA), Keirin Ou and World Adventure - New Working games: Capcom Vs. SNK Millennium Fight 2000 Pro (Japan) (GDL-0004), Cleopatra Fortune Plus, Coco Loco (set 3), Genius 6 (V110F), IQ Block (V113FR, Gambling), Shuzi Leyuan (V127M, Gambling) and 'unknown Sidam poker' - New Non-Working games: Air Hockey (6.03, encrypted), Donkey Kong Banana Kingdom (host), Fonz [TTL], The King of Fighters - Road to Revenge / The King of Fighters 2002 Unlimited Match, LD Quiz 4 - Kotaemon Gachi (Japan), Motogonki, Multi Game V (AMGHU_V83.65), Pop'n Run - The Videogame (set 1), Sharpshooter (coin pusher), Tom Tom Magic, 'unknown Ace System 1 game' and War Mission (WM 4/6/87) - New clones: Batman (1.03 France), Battle Balls (Germany, earlier), Bow & Arrow (Prototype, rev. 22), Centipede (Japan, revision 3), Donkey Kong Junior (US, bootleg?), Final Fight (Japan 900405), Grand Champion (set 2), Grand Champion (set 3), Karate Blazers (World, Tecmo license), The King of Dragons (World 910731), Last Mission (World revision 8), Marvel Super Heroes (Brazil 951024), Naughty Boy (bootleg, set 2), Pit Boss Superstar III 30 (9233-00-06, California version), Pop'n Run - The Videogame (set 2), Real Puncher (Japan, v2.12J), Sengoku 3 / Sengoku Densho 2001 (set 2), Spy Hunter (Spain, Recreativos Franco S.A., Bally Midway license), Strider 2 (Euro 991213), Street Fighter II': Champion Edition (bootleg with level selection), Tapper (Budweiser, 1/27/84), Trophy Hunting - Bear & Moose V1.0 (Location Test), V-Liner (v0.53), V-Liner (v0.7e), V-Liner (v0.7a), World Heroes 2 (ALH-006) and World Soccer Finals (rev 4) - New drivers: dynamoah.cpp, gamemasters.cpp, segattl.cpp and y2.cpp - Removed drivers: strnskil.cpp - New devices: 315_5649, dckb, igs_bitswap, igs_incdec, lba_enhancer, locomotn_audio, model1io2, tms32030, voodoo_2_pci, voodoo_banshee_pci, voodoo_3_pci and zn428e - Hitachi SH-4 CPU: UML implementations of FABS, FCMP_EQ, FCMP_GT, FLDI0, FLDI1, FLOAT, FNEG, FRCHG, FSCHG, FSTS and FTRC. Optimized some implemented UML. Fixed SR state in new CMP implementations. - Intel I8086 CPU: Fixed HALT state - MCS-51 MCU . Added more interrupt and timer registers to debug state . Eliminated atrocious hack for breaking out of INT0 polling loops . Minor DASM fix for case 0x95 - NEC V60 CPU: Fixed disassembly of branch opcodes (displacement is signed) - Texas Instruments TMS9995 CPU: Fixed latching of pulsed interrupts - Toshiba TMPZ84C015 CPU: Added missing callback for CTC ZC3 - AICA sound: Correct register name from development manual. Added docs of unimplemented registers. Added imperfect_features because emulation isn't perfect (DSP, etc..). - Exidy sound: Better split of state classes. Added device finders and input merger. General cleanup (audio\exidy.cpp) - Hudson HuC6280 sound: Added LFO. Fixed channel check when lfo is enable. Added notes. - NEC uPD7759 sound: Fixed uPD7759 class hierarchy, and reset callback before resolving it. - QSound (HLE): Better rnd on negative (dsp16\dsp16core.ipp). Fixed condition mask in disassembler (dsp16\dsp16dis.cpp). - Ricoh RF5C68 sound: Added save states. Added device_rom_interface, because Datasheet says it's can connect with ROM. Added rom_bank_updated and device_memory_interface instead device_rom_interface. - Sound stream: If stream->update() is done going back in time (originating from different devices at a different execution point), don't try to generate a negative number of samples (emu\sound.cpp). - 3dfx Voodoo Graphics . Use device finders instead of machine().device. Deal with needing to be able to configure screen/CPU or set them at start in a safer way (video\voodoo.cpp). . Created devices for each of the voodoo PCI cards - ADC0808 A/D Converter: Reduced CPU overhead by smarter timer usage and accurate to the datasheet - ATA Interface: Get abstract_ata_device working again - needs a better solution long-term (machine\ataintf.cpp) - Data East Custom . Internalize palette for boogwing.cpp and deco32.cpp (video\deco_ace.cpp) . Splitted supbtime.cpp driver into video and includes . Cleanup driver and duplicates. Fixed address map for readable internal register (boogwing.cpp, cbuster.cpp, cninja.cpp, darkseal.cpp, dassault.cpp, deco32.cpp, dietgo.cpp, funkyjet.cpp, madmotor.cpp, rohga.cpp, supbtime.cpp and vaportra.cpp) . Moved dragngun*/lockload* specific m_sprgenzoom into dragngun_state (deco32.cpp) - EEPROM: Set default EEPROM clock to zero (machine\eepromser.h and drivers\popeye.cpp) - HuC626x video: Use required_device instead of explicit lookups for HuC6261 and HuC6272. Internalized palette HuC6260. - Intel 8255 PPI: Hopefully improved readback of port C high output latches when port A is in Mode 1 (see - Intel 8259 PIC: Use device_resolve_objects - Intel 8275 video: Blank top and bottom row lines when underline is greater than 7. Start offloading parts of the device_timer routine to helper functions. Allow side effects of reads to be disabled [AJR]. - ISA: ISA devices now have the possibility to remap themselves. * ISA bus managers have a list of their slots. * ISA bus managers and device base classes have a new virtual method remap(). * Modify the ET4000 ISA device to support the new method. Currently ISA devices map themselves in their address space ranges only in device_start() and if something unmaps them, they are not visible anymore remap(int space_id, offs_t start, offs_t end) of the isa bus manager can be called to tell devices that if they have mapped something in address space space_id from start to end they should remap themselves [Samuele Zannoli]. - Konami PowerPC Common Functions: Use device finders and eliminated machine().device(tag) (machine\konppc.cpp) - Nintendo Custom: Make palette internal to device (video\ppu2c0x.cpp; drivers\cham24.cpp, famibox.cpp, multigam.cpp, playch10.cpp and vsnes.cpp). Changed NMI to line callback. - PCI . PCI devices now have the possibility to remap themselves. Like in the ISA bus remap (int space_id, offs_t start, offs_t end) of the PCI bus manager can be called to tell devices that if they have mapped something in address space space_id from start to end they should remap themselves. It will be used with system management mode. . PCI devices can ask to be mapped before the others. Will be used by the ISA bridge in the southbridge. - Sega Custom . Converted Sega 315-5649 I/O Controller to device. Allow side effects of analog read to be disabled (machine\315_5649.cpp). Moved index parameter into template. . Improved 315-5338A I/O Controller and clean up . Interrupt callback modernization of Sega 315-5250 Compare/Timer - TI TLC34076 video: Converted implementation to use device_palette_interface. m_pens is unnecessary now. - VGA: Cleanup machine().device - Z80 CTC: Disabling a channel interrupt also turns it off - Z80 DAISY: Implemented independent RETI decoding. Moved z80daisy* to devices\machine. - 1945kiii.cpp: Added sprite color flashes (ID 06971). Reduced palette size. Fixed OKIM6295 reads so fewer samples play on stopped channels. - aces1.cpp: Minor documentation update - alpha68k.cpp: Cleanups and clock corrections (gangwars, sbasebal and skyadvnt). Sound interrupt frequency correction. - argus.cpp: Fixed sound writes (second YM2203 has not implemented). Cleanup duplicates. Reduced runtime tag lookups. - asteroid.cpp . Swap start LEDs and suppress logging for many spurious writes . Configure all lamp/LED outputs as line callbacks in asteroid, astdelux and llander. . Added cocktail configuration that flips screen for 2nd Player - astrocde.cpp: Driver and device modernization. Renamed sound device, documented pinout and added input and output callbacks. Added addressable and non-addressable output latch devices. Added watchdog timers for most games. Use memory maps instead of hacking in handlers in DRIVER_INIT. Split up base class a little. - atarigt.cpp: Removed some calls to state() - atarisy4.cpp: Get rid of static state - atlantis.cpp: Added missing MCFG_VIDEO_SET_SCREEN. This fixed Fatal error: No screen specified for device ':zeus2' (ID 06962) - blitz68k.cpp: Replaced machine().device with finder - cdi.cpp: Use device finders instead of machine().device, plus some driver_device cleanup. - cinemat.cpp: Splitted out stuff unique to Demon and QB-3 (prototype), use virtual methods a bit more. Cleanup/separation - no longer needs a selector member or start overrides. - citycon.cpp and ikki.cpp: Added MCFG_SCREEN_RAW_PARAMS - coolridr.cpp: Use 315-5649 I/O Controller device - cps1/2.cpp: Separated state class - dooyong.cpp: Cleanup. Changed sprite layouts. Added input_merger_any_high_device for YM2203 irq handler. - exidy440.cpp and vertigo.cpp: Use finder for audiocpu instead of absolute tag lookup. Improved encapsulation for audio device (audio\exidy440.cpp). - f1gp.cpp: Added some undocumented dipswitches and the possibility to use 4-way joysticks - fuukifg2.cpp: Minor cleanups. Fixed gfxdecodes and spacing. - fuukifg3.cpp: Minor cleanups. Fixed YMF278B handler and spacing. - gaelco2.cpp . Verified Dallas DS5002FP clock for World Rally 2. No serial EEPROM for this game. . Updated some PCB layouts to be more accurate . Verified MCU clock for Touch & Go - galaxia.cpp: Added notes - goldngam.cpp: Added devices - highvdeo.cpp: Cleanup drawing (related by cliprect). Splitted machine config and address map per each games. Cleanup duplicates. Added output finder. Cleanup ROM loading. Added precalculated color for game with drawing directly RGB565 [cam900]. - jaguar.cpp: Cleanups. Added address maps related from rom board (for cojags). Reduced runtime tag lookups. Moved bankswitch configurations into machine_start. - jpmsys5sw.cpp: Fixed uPD7759 class hierarchy, and reset callback before resolving it. This fixed debug assert in all JPM System 5 sets (ID 05484). - kinst.cpp: Fixed driver screw-up that effectively prevented loading non default BIOSes - leland.cpp . Cleanup duplicates. Added generic_latch_16_device for maincpu to soundcpu comms. Improved tags. Reduced runtime tag lookups. Make drawing function relate to cliprect. Background is tilemap. . Moved audiocpu to device and removed frequent tag lookup . Split out ataxx-specific stuff from base state class. Optimised use of tilemap. - ltcasino.cpp: Preliminary palette hookup. Added "Demo Sounds". Added PCB layout for clone 'Mini Vegas 4in1'. - luckgrln.cpp: Use output finder and arrays. Added save state. Removed outdated notes. - m72.cpp: Simplified gfx layout - m90.cpp: Cleanup duplicates. Added user_data for tilemap ram base. Reduced runtime tag lookups. Fixed rowscroll bias between layers. - magictg.cpp: Cleanup driver - markham.cpp: Merged strnskil with markham driver. Modernization driver and cleanups. Added MCFG_SCREEN_RAW_PARAMS. Added coin counters to markham, strnskil, banbam and clones. - model1.cpp and model2.cpp . Improved Model 1 I/O board interface and drive board read/write callbacks (machine\model1io.cpp). Redumped epr14869b.25 used by Virtua Fighter and Star Wars Arcade (machine\model1io.cpp). . Acknowledge IRQs explicitly for Model 1; use MB8421 DPRAM device for Model 1/2. . Emulated the I/O board used by Virtua Cop, Wing War and Netmerc. Improved dipswitches. Hook up watchdog MB3773. Map second RS232 port and connect control signals. Clock for 315-5338A and MSM6253 (machine\model1io2.cpp). . Use 315-5649 I/O Controller device for Model 2. Improved and clean up all inputs. Fixed input issue with srallyc (possibly others). . Model 2 use required_device_array for timers - namcond1.cpp: Eliminated some explicit device tag lookups (namcond1.cpp and video\ygv608.cpp) - namcos21.cpp: Demoted Cyber Sled and Solvalou to not working, added notes describing the issue - naomi.cpp . Preliminary keyboard emulation, hooked up to 'The Typing of the Dead', 'La Keyboard' and 'Lupin The Third - The Typing' (machine\dc-ctrl.cpp). . New Working games: Capcom Vs. SNK Millennium Fight 2000 Pro (Japan) (GDL-0004) and Cleopatra Fortune Plus . Fixed dreamcast controller ID values in fixed_status, makes it possible to surpass VMU not found errors in DC games by pressing start (machine\dc-ctrl.cpp). - neogeo.cpp . Added US MVS (U3), Japan MVS (J3, alt) and UniBios 3.3. . Moved start buttons to controllers, clean up NEO-FTC1B board a little. . SIT and FTC1B are only compatible with MV-1B/MV-1C cost-reduced boards . Allow AES joystick to be connected to arcade systems with D-sub connectors (common for "consolised" use) . Pass through Select input from D-sub connectors on JAMMA variants . Default to Japan BIOS for fixed software using mahjong panel (Euro BIOS doesn't support mahjong panel) . Use JAMMA joystick panel for 'Mahjong Kyo Retsuden' since (doesn't support mahjong panel in MVS mode) . Allow controls to be changed for MVS mahjong games (only BIOS and bakatono support joysticks, but still useful) - nmk16.cpp: Simplified gfx layout. Fixed spacing. - popeye.cpp . Adjust Popeye and Sky Skipper layer positions to match tests on real hardware . Added preliminary emulation of the corruption on the Popeye bootleg logo caused by x flipped and non x flipped sprites being displayed right next to each other. . Use USE_NEW_COLOR only to switch between 680 & 1300 resistor in Sky Skipper - rbmk.cpp: Use device finder. Removed NMI interrupt from AT89C4051 MCU which has no NMI line. - redalert.cpp: All games have the same sound start anyway (audio\redalert.cpp) - royalmah.cpp: Eliminated machine().device - sangho.cpp: Get rid of some MACHINE_(START|RESET)_MEMBER - sanremo.cpp: Use output finder and added save state support - segac2.cpp: Fixed uPD7759 class hierarchy, and reset callback before resolving it (fixed assert in Sega C2). - segas18.cpp: Reduced runtime tag lookups. Added output finders. - segas32.cpp: Reduced runtime tag lookups. Fixed bit manipulations. - seibuspi.cpp: Fixed middle layer row scroll (video\seibuspi.cpp) - stv.cpp . (video\stvvdp2.cpp) . Disable ROZ optimization if mode is either 2 or 3, fixes at least (MESS) 'Bulk Slash' and 'Death Crimson' ROZ layer bugs. . ROZ fixes for Radiant SilverGun Xiga stage . Support for line windows. Undocumented behaviour: Rotation parameter read control seems to mirror/have a correlation in the subsequent register. . Don't repeat ROZ when screen over process is equal to 1, fixes (MESS) D-Xhird practice stage. . Implemented vertical cell scroll ((MESS) Sonic Jam) . Fixed potential bug with window Y sizes when double density interlace is enabled . (video\stvvdp1.cpp) . Fixed transparent sprite shadows (Game Tengoku and (MESS) Pretty Fighter X) . Disable transmask code for mode 2 sprites, fix Sasissu racing stage background clouds color. . Fixed illegal sprite mode in diehard and dnmtdeka (ID 04539) - system16.cpp: Reduced runtime tag lookups. Fixed bit manipulations. Reduced duplicates. - taito_b.cpp: Added clock for TC0180VCU and use device finder instead of machine().device - taito_z.cpp . Dumped motor CPU ROM for Chase H.Q. and added detailed hardware description . Put subwoofer closer to observer than front centre in chasehq and nightstr - taitogn.cpp: Cleanup duplicates - tatsumi.cpp . Reduced runtime tag lookups. Fixed region tags. Move CLUT'ed tile expand functions into video_start. Reduced duplicates. . Demoted Cycle Warriors and Apache 3 to not_working (missing important game elements) . Added preliminary row/colscroll_enable for tilemaps, fixes background scrolling and foreground text in Cycle Warriors. Improved road colors. - toaplan2.cpp . Reduced duplicates. Removed unnecessary things. Reduced runtime tag lookups. Fixed DMA'd palette/text things. Added input_merger_any_high_device for batrider sound IRQ. . GP9001 Video: Minor cleanups. Reduced duplicates. Make sprite draw function related by MAX_SPRITE (it's possibly lower than 256 at real hardware). - vamphalf.cpp . First pass dedeprecation/splitting class up. Misc corrections. . Added PCB layout for Boong-Ga Boong-Ga (Spank'em!) - vectrex.cpp: Fixed probable bug with lightpen-triggered interrupt (video\vectrex.cpp) - vsnes.cpp: Device finder cleanup - williams.cpp and wmg.cpp: Clean up scanline timers - 39 in 1 MAME bootleg: Use finder array for DMADAC - Blomby Car: Added opt and pot wheel input schemes - Centipede: Correct PSG type in clone Magic Worm (bootleg of Centipede, set 1) - Coco Loco: Redumped the bitrotten rom c1.bin in clone Coco Loco (set 3) (Game now playable) - Crazy Rally: Documentend PALs for clone Crazy Rally (Gecas license) - Cube Quest: Fixed cache endianness - Cyber Commando: Put rear speakers behind - Dragon Master: Fixed output because both PCB and chip doesn't support stereo - Genius 6: Emulated the protection (Game now playable) - Godzilla: Kludge a few weird Godzilla collision checks - Gunpey . Implemented emulation of AG-1 real sprite decompression agorithm. Avoid intermediate buffer. . Minor cleanups. Fixed object finder. Converted VRAM into std::unique_ptr. Cleanup duplicates. - High Seas Havoc: Decapped PIC16C55 - IQ-Block: Emulated the protection in clones IQ Block (V113FR, Gambling) and Shuzi Leyuan (V127M, Gambling) (Games now playable) - The Irritating Maze: Added color lamps to layout. On the real cabinet, these are behind the marquee. Fixed timer lamp order. They now follow the order of the test menu and match recorded footage. Changed size of screen, and most lamps to better match the real cabinet. Changed CPO button/trackball color to better match the real controls. Fixed clickable start button. - Lucky Girl: Updated decryption. Plaintext seems correct, but needs quite a lot more work. - Major Havoc: Use array finder for POKEYs and device finder for TMS5220 - Mighty Guy: Hooked up NB1412M2 protection. Improved sound capabilities, makes Mighty Guy to have a sense sound wise. Added DAC sound. - Missile Command: Fixed displayed DIP to match actual/manual display for R8 (ID 06966) - Multi Champ Deluxe: Verified different sound sample rom for Multi Champ DX as bit-rot - Pesadelo (bootleg of Knightmare on MSX): Fixed address line swap - Pingu's Ice Block: Redumped CF card. Note: Sectors 2-255 is empty (2 sectors of header / file list and 252 sectors of main.abs ELF executable), which makes this dump almost useless. - PinMAME: Quick protection before freeze for atari_s1.cpp, jeutel.cpp, rowamet.cpp and spectra.cpp - Renegade: Fixed bit manipulations - Rohga Armor Force: Fixed background color of title screen in clone Wolf Fang - Run and Gun: Added coin counters. Improved sound mixing. Minor cleanups. - Seibu Cup Soccer bootlegs: Fixed device chip endianness (machine\seicopbl.cpp). Jumping is done with case 0x0905. Hookup layer disable. Fixed some sprite priorities. - Simpsons Bowling: Separated state class and use required_device_array - Space Invaders: Correct clone Space War (Sanritsu) romset - Spiders: Use required_device_array for PIAs and input merger for IRQ - Submarine (Sigma): Added flip screen support and splitted friver into video and includes files - Subs: Eliminated set_led_value by binding outputs directly to callbacks - Super Lup Lup Puzzle: Secured a second PCB and redumped the graphics roms for clone Lup Lup Puzzle v1.05 - Tapper: Latest version of Tapper known to come with "standard" graphics roms. Created the version with alternate graphics. Unknown if those graphics are hacked or a later revision. - Thunder Dragon 2: Fixed bankswitching - Top Speed: Dumped motor CPU ROM. Minor cleanups. Added arrays for reduce duplicates. - unknown Sidam poker: Added decryption and make the cards appear (background tilemap) (Game now playable). - Venture: Added proms - Witch . Fixed colors . Merged memory maps and moved state machine data into header file - X the Ball: Correct latch type - Fixed year info for groovef, popn2 and popn3 - Dipswitch fixes in aerofgt.cpp, coolridr.cpp, f1gp.cpp, iqblock.cpp, markham.cpp, missile.cpp, model1.cpp, model2.cpp and wallc.cpp - Fixed rom names in aerofgt.cpp, bionicc.cpp, gaelco2.cpp, galaxian.cpp, namcos2.cpp, pgm.cpp, pgm2.cpp, starwars.cpp and vamphalf.cpp - Description changes of Battle Balls (Germany, newer), Bow & Arrow (Prototype, rev. 23), F1 Grand Prix (Nuova Bell Games), Final Lap 3 (World, Rev C), Final Lap 3 (Japan, Rev C), Fire Hawk (World) / Huohu Chuanshuo (China) (horizontal), Fire Hawk (World) / Huohu Chuanshuo (China) (switchable orientation), Grand Champion (set 1), Grand Tour (V100U), Got-Ya (12/24/1981), Hong Tian Lei (A-Blast) (Japan), Hong Tian Lei (A-Blast) (bootleg), IQ-Block (V100U), IQ Block (V113FR, Gambling), Kuai Da Shizi Huangdi (China?, Revised Hardware), Naughty Boy (bootleg, set 1), pgm.cpp games (over 100), Pit Boss Superstar III 30 (9233-00-01, Standard version), Real Puncher (World, v2.12O), Sengoku 3 / Sengoku Densho 2001 (set 1), Senkyu (Japan, newer), Senkyu (Japan, earlier), Shuzi Leyuan (V127M, Gambling), Super Contra - Alien no Gyakushuu (Japan), Toushin Blazers (Japan, Tecmo license), unknown Sidam poker, V-Liner (v0.6e) and V-Liner (v0.54) - Renamed (ffightj3) to (ffightj4), (lastmisn) to (lastmisnu6), (lastmisno) to (lastmisnu5), (strider2) to (strider2u), (tapper) to (tapperg), (vliner) to (vliner6e), (vlinero) to (vliner54) and (wsf) to (wsf3) - MAME . DEVICES . Concrete device types now have a call operator that instantiates a device. This change means you *must* use DECLARE_DEVICE_TYPE to declare the public interface of your device, even if it's device_t. If you want to use private implementation classes, use DEFINE_DEVICE_TYPE_PRIVATE and instantiate the object finders. . Make devopt menu localisable (ui\devopt.cpp). Make machine_config aware of device being configured so owner doesn't need to be passed everywhere. . Device callback (emu\devcb.cpp) . Write callbacks can now be configured as 'OUTPUT("item_name")'. This behaves equivalently to a zero-dimensional 'output_finder', while eliminating the need to instantiate and resolve this in driver classes separately from the callback itself. . The width of a callback's default mask now properly depends on its type (as was half-implemented before), instead of always being reset to 0xffffffffffffffff when actually configured. This allows MCFG_DEVCB_INVERT to work with line write callbacks as one might logically expect. . Use new OUTPUT callback object in various (mostly Atari) drivers (atarisy1.cpp, avalnche.cpp, bsktball.cpp, canyon.cpp, centiped.cpp, cloak.cpp, cloud9.cpp, destroyr.cpp, dragrace.cpp, firefox.cpp, gridlee.cpp, liberatr.cpp, mcr3.cpp, orbit.cpp, pacman.cpp, rallyx.cpp, sbrkout.cpp, sprint2.cpp, sprint4.cpp, starwars.cpp, suprloco.cpp, tankbatt.cpp, tomcat.cpp, ultratnk.cpp and warpwarp.cpp) . Set finder tag relative to current device being configured rather than the finder's owner. This meand you no longer need to care about the your relationship to the object being configured and a lot of ^ and : can disappear. There's a bit reduction in string pasting in macros from this. . Bind devcb relative to current device. This is probably going to break plenty of things with late bind errors. . Route sound relative to current device. Slot card additions run in the context of the slot itself, which isn't entirely intuitive. Slot configuration needs a bunch of other cleanup anyway (emu\disound.cpp). . Use device_resolve_objects to resolve callbacks in output_latch_device. Renamed machine\latch.cpp/h to machine\output_latch.cpp/h. . Allow devcb to be bound to a device/mixin or the target of a device finder. This works outside machine configuration context so the workarounds in ATA HLE and MSX slots are no longer necessary. It also allows reduction in tag repetition in machine configuration (see converted (MESS) osborne1.cpp, zorba.cpp or the more extreme tranz330.cpp). Allow reimagined device instantiation to take a device finder based on current device being configured to reduce repetition (see tranz330.cpp). . Make MCFG_DEVICE_ADD and callable device types more flexible: . Allows defaulted clocks (see subtle example with vboy) . Allows additional constructors (see RS232 port in tranz330) . Allows use of device finder in place of tag in MCFG_DEVICE_ADD . Requires out-of-line destructor for devices using incomplete types . Requires XTAL or explicit u32 for clocks for devices with private types . Devices must still define the standard constructor. When writing additional constructors, be aware that the constructor runs before device_add_mconfig in the context of the existing device, not the new device. See osborne1, zorba, tranz330, and vboy for examples of this in use. Compilation is a bit slower, but this is temporary while refactoring is in progress. . Eliminated the need for MCFG_SOUND_ROUTE_EX . Removed macros from slot option configuration - they just obfuscated code and slowed it down with needless dynamic casts, but didn't actually simplify it. . Streamline machine configuration macros - everyone's a device edition. . Start replacing special device macros with additional constructors, starting with ISA, INTELLEC 4 and RS-232 buses. . Allow an object finder to take on the target of another object finder. For a combination of the previous two things in action, see either theINTELLEC 4 driver, or the Apple 2 PC Exporter card. Also check out looping over a device finder array to instantiate devices in some places. Lots of things no longer need to pass tags around. . Start supplying default clocks for things that have a standard clock or have all clocks internal. . Eliminated the separate DEV versions of the DEVCB_ macros. Previously, the plain versions were a shortcut for DEVICE_SELF as the target. You can now supply a string tag (relative to current device beingconfigured), an object finder (takes on the base and relative tag), or a reference to a device/interface (only do this if you know the device won't be replaced out from under it, but that's a safe assumption for your subdevices). In almost all cases, you can get the effect you want by supplying *this as the target. . Eliminated sound and CPU versions of macros. They serve no useful purpose, provide no extra checks, make error messages longer, added indirection, and mislead newbies into thinking there's a difference. . Removed a lot of now-unnecessary ":" prefixes binding things relative to machine root. Clean up some miscellaneous rot. . Make cards inherit clock from slot by default. Make speaker config more explicit. Added a couple more constructor options. . Get rid of implicit prefix for GFX decode names and prefix them all. Get rid of special macro for adding GFXDECODE in favour of constructor. Make empty GFX decode a static member of interface. Allow palette to be specified to GFXDECODE as a device finder. Removed diserial.h from emu.h as it's used relatively infrequently. . Added support for custom device constructors when replacing devices. Current syntax: MCFG_DEVICE_REPLACE(tag_or_finder, TYPE, ...). Next-generation syntax: TYPE(config.replace(), tag_or_finder, ...). Get rid of the token-pasting voodoo and casts in the discrete sound macros. . Eliminated some explicit device tag lookups (drivers\namcond1.cpp, machine\nb1413m3.cpp, video\antic.cpp, video\tia.cpp and video\ygv608.cpp) . Eliminated non-diexec PULSE_LINE hacks and disable some side effects . Interrupt API changes (emu\diexec.cpp): PULSE_LINE is no longer a value. Existing uses have been changed to pulse_input_line with attotime::zero as the second argument. Formerly only INPUT_LINE_NMI and INPUT_LINE_RESET were allowed with PULSE_LINE. INPUT_LINE_NMI no longer receives special handling; instead, CPU devices must specify which of their input lines are edge-triggered and thus may be used with zero-width pulses by overriding the execute_input_edge_triggered predicate. INPUT_LINE_RESET is still special-cased, however. execute_default_irq_vector now allows a different default vector to be specified for each input line. This added flexibility may or may not prove useful. . machine().device(tag) is now deprecated . Removed machine().device usage from the core (emu\addrmap.cpp and diexec.cpp), suprnova.cpp and playch10.cpp . Kludge some absolute tag lookups in the core that can't really be helped (debug\debugcmd.cpp, debugcpu.cpp, emu\romload.cpp and schedule.cpp) . Removed many mainly PCI-related MCFG macros in favour of constructor overloads, removed some absolute device lookups, removed some absolute device tags and generally clean up stuff. Fixed incorrect device class for PCI APIC. . Use device finder for exterm.cpp, igs011.cpp, looping.cpp, mhavoc.cpp, r2dtank.cpp, rbmk.cpp, taito_b.cpp, tp84.cpp, vcombat.cpp, machine\konppc.cpp, video\k001005.cpp and audio\exidy.cpp . Use device finders instead of machine().device for video\voodoo.cpp and looping.cpp . Replaced MCFG_CPU_VBLANK_INT with line callbacks in jantotsu.cpp and mrjong.cpp . Input/Output . Output system changes: Cleaned up syntax for network provider. Added pause and savestate commands to both network and win32 providers (output\network.cpp, output_module.h and win32_output.cpp). . Use output finder for 30test.cpp, berzerk.cpp, caswin.cpp, dblcrown.cpp, dynadice.cpp, fortecar.cpp, funtech.cpp, galaxi.cpp, gatron.cpp, highvdeo.cpp, mappy.cpp, meyc8088.cpp, mil4000.cpp, pacland.cpp, sanremo.cpp, segas18.cpp, subsino.cpp, tenpindx, usgames.cpp, machine\ticket.cpp and audio\exidy440.cpp . Replaced set_led_value and set_lamp_value with output_finders. Keep the 2 bit lamp outputs in segaufo.cpp. . Get rid of the assert replacement (emu\emucore.h). It prevents you from using assert in a destructor for a literal type due to the implicit nothrow. It's just not worth the trouble it's causing. . Clean up some line write handlers (sound\namco.cpp and audio\polepos.cpp; gaplus.cpp, jrpacman.cpp, mappy.cpp, pacman.cpp, pengo.cpp and polepos.cpp) . Fixed faulty assertion that was breaking (MESS) nes_vt.cpp in debug builds (emu\dipalette.cpp) . Renamed direct_read_handler to memory_access_cache. Parametrize the template on more information (data width, endianness) to make it possible to turn it into an handler cache eventually, and not just a memory block cache. Make it capable of large and unaligned accesses (emu\emumem.cpp). . Removed DRIVER_INIT-related macros in favor of explicitly-named member functions. Made init_ prefix on driver initializers explicit. Fixed up GAME/COMP/CONS macro spacing. . Use siblingdevice instead of absolute tag lookup. Added screen tag validation for scanline timers (machine\timer.cpp). . Eliminated extraneous machine argument (emu\romload.cpp) . Removed unused tag look-up in atarisy2.cpp, malzak.cpp and pgm2.cpp . 3rdparty: Initial import of SoftFloat release 3E. This is a pre-usage import so everyone can get things in line for various compilers. GCC/Clang should be OK on most targets as-is. MSVC may need to edit 3rdparty/softfloat3/build/MAME/build.h to conform. Please report failure/success with various compilers. . PLUGINS . Fixed opcode space (plugins\cheat\cheat_xml.lua) . Translate debugger expressions by space index as the debugger does (plugins\cheat\cheat_xml.lua) . Handle the case where the ui prepends the list name to the list entry name . Updated hiscore.dat (plugins\hiscore\hiscore.dat). Make hiscore\sort_hiscore.lua much faster. . Multi-Language . Added Korean translation. There're still tons of lines to do, but it's a start. . Updated Brazilian Portuguese, Chinese, Dutch, German, Greek, Japanese translations and Spanish - SDLMAME: Disabled multithreading on the Emscripten target (osd\osdsync.cpp) - Compiling . Begin preliminary GCC 8 support . Don't use C++ flags on plain C files (scripts\genie.lua) . set_tag can now take things other than C strings - Debugger . Replaced references to 'decrypted opcodes' with 'opcodes' (debug\debughlp.cpp) . Simplify now obsolete and buggy memory access code (debug\debugcpu.cpp) . Make debugger dump command work with unaligned addresses (debug\debugcmd.cpp) . Debugger show save state items in alphabetical order in the debugger view . Fixed error in debug build with SMS card options (emu\emuopts.cpp) 0.197 - New games: Master Boy (1987, Z80 hardware) and New Cross Pang - New Working games: F-1 Dream, Quiz Channel Question, Rail Chase 2 and Ufo Robo Dangar (9/26/1986, Japan) - New Non-Working games: Genius 6 (V110F), T.T. Speed Race CL [TTL] and unknown Elsy poker - New clones: Amazonia King Plus (V204BR), Crazy Bonus 2002 (Ver. 1, set 2), Enduro Racer (YM2151) (mask ROM sprites, FD1089B 317-0013A), Explosive Breaker (Korea), Garou - Mark of the Wolves (NGH-2530), Gokidetor (set 2), Joker Master (V512), Jolly Card (Italian, bootleg, set 3), Lup Lup Puzzle / Zhuan Zhuan Puzzle (version 1.05 / 981214), Paperboy (prototype), Pochi and Nyaa (Ver 2.02), Popeye (Braze High Score Kit P1.00D), Renegade (US bootleg), Silk Worm (bootleg), Street Fighter II': Champion Edition (Playmark bootleg), Time Killers (v1.21, alternate ROM board), World Rally 2: Twin Racing (mask ROM version) and WWF: Wrestlemania (proto 2.01 06/07/95) - New drivers: mastboyo.cpp - New devices: 315_5338a, adc0808, adc0809, generic_fifo_u32_device, m58990, mb86234, model1io, nb1412m2, sad8852 and z80ctc_channel - ARM (little) CPU . Eliminated spurious LSL #32 shifts from disassembly. Calculated R15-relative offsets in disassembly (cpu\arm\armdasm.cpp). . Fixed erroneous identification of S field in data processing opcodes. Calculated result of ADD/SUB Rn, R15, #imm (cpu\arm\armdasm.cpp). - Hitachi SH-4 CPU: UML implementations of FADD, FDIV, FMAC, FMUL, FSUB, LDCSPC, LDCSSR, LDSFPUL, MOVCAL, STCDBR, STCSGR, STCSPC, STCSSR, STSFPSCR and STSFPUL. Fixed possible error in previous FPU conversion. - Intel I386 CPU: Fixed stack size in call and sp masking - Intel I80186 CPU: Handle program space mapping for I/O block same as I/O space - Intel i960KB CPU: Don't lose register values on read stalls - MCS-51 MCU: Safer way to propagate INT0 and INT1 inputs, which also need to be active low. - Motorola M6801 CPU . Added configurable logging . Separated SCI Tx/Rx tick and event logging, fixed some missing save state and make order match delaration. - uPD7725 CPU: Fixed disassembly (upd7725\dasm7725.cpp) - QSound . Improved performance of DSP16 interpreter a little by generating six variants of execution loop . Bypass DSP16 memory system for work RAM access when debugger is disabled - gives small performance gain. - 3dfx Voodoo Graphics: Fixed vsync timing and removed anonymous timer - ADC0808 A/D Converter . Rewrote ADC0808 device so it actually works. Allow polling of EOC line. Allow side effect disabling for reads. . Added ADC0808 to backfire, othunder, topgunnr and wheelfir. . Added ADC0809 to atarigx2.cpp, atarisy1.cpp, atarisy2.cpp, cbombers, eprom.cpp, firefox, foodf, galastrm, gdfs, groundfx, harddriv.cpp, hydra, irobot, jedi, opwolf3, roadriot, superchs, starwars.cpp, taito_z.cpp, tceptor, tmek and tomcat. . Added M58990 to apache3 and lockon - Atari Custom . Removed sound interrupt status from machine\atarigen.cpp base class . Separated a few Atari drivers from atarigen_state . Separated 'Atari VAD video controller' source files from atarigen . Decoupled ThunderJaws from atarigen_state - Floppy . Minimal improvements on the disk handling. Keeping the 35 tracks drive as an option. Reducing the crashes a bit more. This helps matching the form_factor and the parameters found in the TeleDisk images, thus exiting before a serious crash. It is NOT enough to improve the 8" disk image handling, nor it solves all the stability problems, but it is a tiny step forwards (formats\td0_dsk.cpp). . Added FM resyncs in READ_TRACK and changed threshold (machine\wd_fdc.cpp) - TI TLC34076 video: Converted m_pens and m_local_paletteram into std::unique_ptr. Minor cleanup. - Z80 CTC: Make channels into subdevices - 4roses.cpp: Decrypted Four Roses and Rugby program roms. Moved Rugby video RAM to where it fits better. - aerofgt.cpp . Cleanup duplicates. Fixed object finder names related sprite lookup tables. Minor gfxdecode cleanup. . Splitted Spinal Breakers ROM lookup function - aleck64.cpp: Improved Magical Tetris Challenge tetrominoes display (ghost pieces and colors) - arcadecl.cpp: Minor cleanups. Removed unnecessary bitmap. Cleanup of duplicates. - asuka.cpp: Cleanups. Reduced duplicates/runtime tag lookup. - atarigt.cpp: Eliminated sound_int_gen (machine\atarigen.cpp) - atarisy2.cpp: Minor cleanups for bankswitching. Added address_map_bank_device for VRAM bankswitch handlers. - atlantis.cpp and iteagle.cpp: Use device_post_load instead of callbacks (machine\vrc4373.cpp) - coolpool.cpp: Added generic_latch_16_device for CPU-DSP communications. Splitted coolpool and 9ballsht DSP I/O map. Fixed rom tags. - ddenlovr.cpp . Separated blitter IRQ handlers; fixed interrupts in mjmyster and related sets. . Changed main CPU type to TMPZ84C015 for most Z80-based games . Promoted Quiz Channel Question and clone (Ver 1.23) to working - dec8.cpp . Replaced MCU simulation with 8751 code dumped from Breywood and hacked for Shackled . Use input merger for coin IRQs in Psycho-Nics Oscar and Shackled . Split up 6809 IRQ assertion/acknowledgment handler . Acknowledge FIRQ from 8751 instead of using HOLD_LINE for Captain Silver, Last Mission and Shackled. Note: Psycho-Nics Oscar doesn't use a 8751. - docastle.cpp: Replaced MCFG_CPU_VBLANK_INT with CRTC callbacks - dreamwld.cpp: Cleanups. Added tilemap size register. Fixed crash in VRAM write handler and tilemap rowscroll and transparency handling. - dynduke.cpp: Dumped proms - expro02.cpp and galpanic.cpp: Added missing 2nd button to includes\galpnipt.h (ID 06937). Note: Turn on 'Service Mode' dipswitch, reset and press P1 START. Pressing the second button is not reflected on screen (appears as "Shot 2"). The main game doesn't use it, but it's needed for the "Animation Test" that can also be turned on in the dipswitches. - gaelco2.cpp: Added pinout information for World Rally 2 and REF.950906 PCB layout for Touch & Go - galivan.cpp and terracre.cpp . Rewrote NB1412M2 protection into a device . Fixed protection in clone Ufo Robo Dangar (9/26/1986, Japan) (Game now playable). Note: Game has unemulated protection at I/Os 0x80-1 for missing sprites. This is a Nichibutsu 1412M2, which is the same chip used in TerraCresta and Cop01 driver. The protection here is used for a code snippet at 0xf9c0, that of course is the sprite handling. The code snippet is sum8 with 0x27 at 0x9d74 so no, the later Dangar US version snippet doesn't work. - guab.cpp: Added RS-232 port and updated notes - gundealr.cpp: Cleanups - irobot.cpp and starwars.cpp: Reduced tag lookups - mainevt.cpp: Derived clocks from XTAL values. Replaced HD6309 CPU1 with HD6309E. - model1.cpp . Rewrote MB86233/4 CPU cores. Added missing lab and notd mode to MB86233. . Use the real 315-5573 Virtua Racing coprocessor program . Emulated Model 1 I/O board. This includes an emulation of the Sega 315-5338A I/O controller. . Map outputs and coin counter for netmerc, swa, vf, vr, wingwar and wingwar360. Added second coin slot for wingwar360 and removed view buttons. Map netmerc analog controller unit. - model2.cpp . MB86233/4 CPU rewrite. Added missing lab and notd mode to MB86233 used by Virtua Fighter 2 in-game and collision. . Revamped the coprocessors communications . Emulated Model 1 I/O board. This includes an emulation of the Sega 315-5338A I/O controller. . Map outputs and coin counters for daytona, desert and vcop. Cleanup inputs. Map debug switch for vcop to not show enemies. . Proper default values for lightgun games. This avoids the need to calibrate the lightguns in the service mode. Also clean up lightgun interface. Five percent of the full range is now declared off-screen and will act as a reload area. . Promoted Rail Chase 2 to working - mpu4vid.cpp: In row table mode double size in cached in screen start 1 (video\scn2674.cpp). This fixed graphic corruption in all sets (ID 06928). - namcos11.cpp: Cleanup bankswitch handler. Reduced runtime tag lookups. - namcos12.cpp: Cleanups. Reduced runtime tag lookups. Splitted machine config for COH716 CPU Board case and motherboard/cpuboard configurations. Fixed GPU for COH716 board. - naomi.cpp: Centralized DRC settings (machine\dc.cpp) - neogeo.cpp . Converted NeoGeo EL panel outputs to lamps - it uses six outputs from a 1-of-8 decoder to enable EL panels to illiminate the selected game logo. . Start splitting up the state classes for the different variants properly . Split into real models: Moved common stuff (mostly video) into a base memory map. Split common edge connector inputs into JAMMA and MVS. Added clones with different numbers of game slots, edge connector, controller ports, memory card and speakers. Based fixed-software drivers on MV-1 JAMMA board configuration. Removed memory card and controller ports from single-PCB games and converted to mono output. Coin lockouts/counters still not connected, and LED/EL output isn't suppressed for variants that lack it. Suppress leading space in RAM option names. . Further improvements: Removed LEDs/lamps from configurations that lack them. Hooked up coin counters and lockouts. Improved I/O register mapping. Added controller detection connections for AES. Hooked up SPI-like outputs on SIT board used by irrmaze. . The Irritating Maze: Hooked up SPI-like outputs on SIT board. Added layout showing strobes and most lamps. Game still missing card dispenser, air compressor and colour lamps. . Re-added boost interleave on audio command write - fixes glitches in Strikers 1945 Plus. - pgm.cpp: Fixed object finder. Removed unused things. - popeye.cpp . Implemented NMI acknowledge and TPP2 watchdog . Swapped clones Popeye (bootleg set 1) and Popeye (bootleg set 2) and repaired some of the proms as they appear to be bad dumps. - psikyo.cpp: Cleanups. Fixed background pen. Documented PIC. Fixed crash due to incorrect shift calculation and the bootleg hardware. - seattle.cpp and vegas.cpp . Added separate transmit FIFO to SMC91C9x Ethernet Controller and fixed irq handling. Use device_pre_save and device_post_load instead of pre/post callbacks. . Use device_post_load instead of callbacks (machine\gt64xxx.cpp and machine\vrc5074.cpp) . Fixed volume button mapping for San Francisco Rush . Removed set_lamp_value from Vegas driver and added driver init for NBA Showtime Gold - segaufo.cpp: Emulated Model 1 I/O board. This includes an emulation of the Sega 315-5338A I/O controller which is hooked up to the Sega UFO driver now. - ssv.cpp: Simplify ST010 ROM loading - stv.cpp . Fixed regression with Cotton 2 backgrounds in stage 2 onward (video\stvvdp2.cpp; enables ROZ mode 3 without neither rotation parameter windows nor actual rotation parameters). This fixed also the corrupt background in Virtua Fighter Kids (ID 06886). . Preliminary implementation of PMOD 7 (gouraud + half transparent) (video\stvvdp1.cpp), fixes (MESS) Sega Saturn 'Lupin the 3rd Pyramid no Kenja' enemy shadows. . ROZ windows applies per screen output not per bitmap (video\stvvdp2.cpp), fixes at least Batman Forever character select & the Riddler final stage graphics. . Fixed RBG0 cache map range (video\stvvdp2.cpp), fixes (MESS) Head On graphics update in Sega Memorial Collection 1. . Fixed t1_mode_w in address map of achine\sega_scu.cpp - suprnova.cpp: Fixed changing_bits < default_lowbits_mask (emu\emumem.cpp). This fixed no audio is present (ID 06929) - tourvis.cpp: Added Tourvision BIOS v1.1 - umipoker.cpp . Changed YM3812 clock and use it to drive sound CPU interrupt. Use known XTAL for clocks. . Added output finder for Slot Poker Saiyuki lamps and clean up driver a little - viper.cpp: Corrected Voodoo vsync timing and removed anonymous timer. Changed Konami Viper so that driver boots again. - zn.cpp: Simplified Z80 bank switching for FX-1A games (mgcldtex, psyforce and sfchamp) - AGEMAME: General cleanup of video\bfm_adr2.cpp (drivers\bfm_sc1/2.cpp) - Air Buster: Reduced code duplication and runtime tagmap lookups. Removed unnecessary bitmap. - Airwolf, Flashgal and '99: The Last War. Added PROMs and PLDs - Amidar: Fixed 'Lives' dipswitch for clone Amidar (Scramble hardware) (ID 06926) - Backfire! . Added ADC0809 A/D Converter for Backfire potentiometer controls (currently only working in test mode) . Cleanup inputs and acknowledge IRQ - BeatHead: Replaced NVRAM with parallel EEPROM - Bingo Circus and Western Dream: Added I/O controller - Bionic Commando: Start hooking up MCU (similar to F1 Dream) however it still relies on some hacks to work at the moment. - Blades of Steel: Soundlatch modernization - Contra: Acknowledge sound IRQ - DJ Boy: Added generic_latch_8_device for comms. Added stereo sound output, because PCB has stereo sound output connector and OKI is connected per each output. Cleanup OKI ROM loading and gfxdecode. Fixed sound output level. Fixed tags. Fixed MCU acknowledge writes. - Dora-chan: Better protection and cleanup - F-1 Dream: Decapped and dumped F-1 Dream I8751 MCU (Game now playable) - Fever Soccer: Eliminated set_lamp_value and MCFG_CPU_VBLANK_INT - Fire Fox: Cleanups. Added output finder/object finder. Reduced runtime tag lookups. - Godzilla: Fixed regression in background tilemap colors (uses DMA mode 4 like Denjin Makai). Fixed OKI sound bankswitch. - Heavy Unit: Minor cleanup - Hit Poker: IRQ modernization - Jungler: Apply mooncrst decoding to clone Jungler (Subelectro, bootleg on Scramble hardware), game boots. Verified inputs. Added preliminary sound and dipswitches. - Kaitei Takara Sagashi: Added optional color setting. Make color config as default. Note: Some PCB videos/images shows a b&w arrangement, others a full colorized one. This is due of the monitor type used, cfr. - Lemmings: Cleanups - Mega Blast: Use real C-Chip rom. Hook it up, for some definition of hook up, since it basically does nothing at all the game cares about. - Operation Thunderbolt: Changed game to mono speaker, as shown on schematics and verified on real board. - Pasha Pasha 2: Cleanup duplicates. Cleanup bitmap write handlers. Added object finder instead runtime tag lookups. Fixed tags. Hook up AT89C52. Added output finders. Converted m_bitmap* into std::unique_ptr. - Pinball Action: Use CTC to provide interrupts for sound CPU - Repulse: More accurate ROM labels for clone '99: The Last War (Kyugo). Fixed gfx1 ROM size. - Sexy Gal: Added sample player - Sindbad Mystery: Adjusted sound clocks to match PCB footage. Acknowledge sound interrupt the 8255 Mode 2 way. - Space Chaser: Added some sound to clone Crash Road (bootleg of Space Chaser) - Starblade: Allow full range of crosshair movement - Super Stars: Demoted game to not working - errors out when inserting coins. - Tech Romancer: Fixed fatal error regression (ID 06936) - TomCat: Fixed XTAL value - unknown Japanese horse gambling game: Lowered frequency of 8155 timer driving speaker - VLC Nevada: Fixed memory mapping and IRQs for DUARTs and RTC - Wink: Added addressable latch and acknowledge NMI - Xyonix: Acknowledge main interrupt - Input/Output . Standardised on IPT_CUSTOM for hooking up custom code in PORT_BIT, leaving IPT_SPECIAL for the UI. . Use output finder for 24cdjuke, 30test, allied.cpp, amaticmg.cpp, atari_s1.cpp, atari_s2.cpp, barata.cpp, by6803.cpp, chexx.cpp, crusnexo, ecoinfr.cpp, fireball.cpp, firefox, gotcha.cpp, gp_1.cpp, gp_2.cpp, grchamp, gts3.cpp, gts3a.cpp, gts80.cpp, gts80a.cpp, gts80b.cpp, icecold.cpp, inder.cpp, jeutel.cpp, jp.cpp, jpmimpct.cpp, kungfur.cpp, ltd.cpp, marywu.cpp, micropin, model1.cpp, nsm.cpp, play_1.cpp, play_2.cpp, play_3.cpp, rotation, rowamet.cpp, s3.cpp, s4.cpp, s6.cpp, s6a.cpp, s7.cpp, s8.cpp, s8a.cpp, s9.cpp, s11.cpp, s11a.cpp, s11b.cpp, saiyukip, spectra.cpp, speedbal.cpp, splus.cpp, sspeedr.cpp, st_mp100.cpp, st_mp200.cpp, taito.cpp, techno.cpp, turbo.cpp, vd.cpp, videopkr, wico.cpp, wpc_an.cpp, zac_1.cpp, zac_2.cpp and zac_proto.cpp. . Use two-dimensional output finder for imolagp and monzagp . Removed legacy outputs from acommand.cpp, allied.cpp, ampoker2.cpp, amusco.cpp, aristmk4.cpp, aristmk5.cpp, buggychl.cpp, bzone.cpp, cinemat.cpp, copsnrob.cpp, m79amb.cpp, skydiver.cpp, skyraid.cpp, stactics.cpp, starcrus.cpp, tceptor.cpp, taitojc.cpp, tehkanwc.cpp and wecleman.cpp . Removed set_digit_value and deprecate set_lamp_value and set_led_value (emu\output.h) - Dipswitch fixes in galaxian.cpp, hitpoker.cpp, jp.cpp, konblands.cpp, model2.cpp and viper.cpp - Fixed rom names in gaelco2.cpp, kyugo.cpp and model1.cpp - Description changes of Bakuretsu Breaker (Japan), Blades of Steel (version T, Joystick), Blades of Steel (version L, Trackball), Blades of Steel (version E, Trackball), Crazy Bonus 2002 (Ver. 1, set 1), Explosive Breaker (World), Gokidetor (set 1), Hotdog Storm (Korea), Joker Master (V515), Pochi and Nyaa (Ver 2.00), Popeye (bootleg set 1), Popeye (bootleg set 2), Silk Worm (prototype), Ufo Robo Dangar (9/26/1986, bootleg set 1), Ufo Robo Dangar (9/26/1986, bootleg set 2) and World Rally 2: Twin Racing (EPROM version) - Renamed (pnyaa) to (pnyaaa), (popeyeb2) to (popeyebl), (popeyebl) to (popeyeb2) and (wrally2) to (wrally2a) - MAME . VIDEO RENDERING SYSTEM . Cleaner handling of layout parsing errors (emu\rendlay.cpp and layout\noscreens.lay) . Bulk conversion . Converted MCFG_DEVICE_VBLANK_INT to MCFG_SCREEN_VBLANK_CALLBACK . Use MCFG_SCREEN_VBLANK_CALLBACK instead of MCFG_CPU_VBLANK_INT . Replaced MCFG_CPU_VBLANK_INT with line callbacks . Use MC6845 sync callback instead of MCFG_CPU_VBLANK_INT in funworld.cpp, goldnpkr.cpp and madalien.cpp . Use MC6845 for vertical interrupt generation in gluck2.cpp, mpu12wbk.cpp and ssingles.cpp . Added some plausible raw params and eliminated MCFG_CPU_VBLANK_INT in twins.cpp . Removed underscores from template parameter names (emu\emupal.h) . DEVICES . Allow machine configuration to specify BIOS easily, move default BIOS selection into device configuration complete. . Removed unnecessary device_t::memory() (drivers\bublbobl.cpp, missb2.cpp and superqix.cpp) . Removed safe_pc() and safe_pcbase() (emu\distate.h) . Show RAM options in XML output that can actually be controlled from the command line - the others are practically useless (machine\ram.cpp and mame\info.cpp). Expose RAM size in "minimaws". . Get rid of more uses of inefficient output methods (drivers\de_2.cpp, de_3.cpp, flicker.cpp, jankenmn.cpp and machine\decopincpu.h) . Removed emucore from external tools (scripts\src\tools.lua) . Save a ref to waiting co-routine to prevent it from being gc'd (mame\luaengine.cpp) . PLUGINS: Require returns true if package returns nil (plugins\data\database.lua) . Moved some not-directly-emulation-related helpers to lib\util\coretmpl.h and disasmintf.h, further extricate emu.h from tools. . MEMORY SYSTEM . Allow for an address shift (machine\bankdev.cpp) . Fixed changing_bits < default_lowbits_mask (emu\emumem.cpp). Fixed fencepost in memory_manager::region_containing, which caused regions to be registered for state saving (emu\emumem.cpp). . Relaxed constraints on address mirroring/global mask combinations. Mirror bits are now allowed to fall outside the driver-specified global mask, though memory map validation requires that they cover the entire masked-out portions of the address space if any do. This change is intended to expedite debugging of software written for the TMPZ84C015 or similar Z80-based controllers which use 8-bit I/O addressing for the on-chip peripherals but may use either 8-bit or 16-bit addressing externally (emu\addrmap.cpp). . Completely eliminated address map macros . PLUGINS . Work around small issue in conversion (plugins\cheat\cheat_xml.lua) . Changed indentation in save file by request and sort the output file (plugins\portname\init.lua) . Fixed cpu tags and print detailed errors (hiscore\hiscore.dat and init.lua) - SDLMAME: Set SO_REUSEADDR in posixsocket. Without it you have to wait until the socket is moved out of the TIME_WAIT state, which can take quite a while. This is pretty anoying when using mame with serial ports forwarded via TCP (modules\file\posixsocket.cpp). - Compiling . Added possibility of building using system pugixml . Fixed issues with CHD loading under Emscripten (scripts\src\main.lua) - Debugger . Documented debugger expression number syntax (debugger\expressions.rst) . Moved around the debugger hooks to get a small but measurable performance increase . Fixed scheduling session events from debugger (debug\debugcpu.cpp) . Added suspend and resume debugger commands for suspending and resuming scheduled devices (debug\debugcmd.cpp) . Documented dumpo command (debug\debughlp.cpp) 0.196 - New games: Big Buck Hunter (v1.00.14) and Warai no Hana Tenshi (Japan) - New Working games: Eyes (Italy), Gunpey, Motor Raid - Twin, Virtua Fighter 2 and War: The Final Assault - New Non-Working games: Badlands (Konami, set 1) and Photo Play 2004 - New clones: Badlands (Konami, set 2), Big Buck Hunter II - Sportsman's Paradise (v2.02.08), Big Buck Hunter II - Sportsman's Paradise (v2.02.09), Daytona USA (GTX 2004 Edition), Game King (EZ Pay, v4.0), Ghox (joystick, older), Irion, Master Boy (Spanish, PCB Rev A), Opa Opa (Rev A, unprotected), The Real Broadway (9131-20-00 R0C), Street Fighter II: The World Warrior (Thunder Edition, bootleg, set 2), Street Fighter III 3rd Strike: Fight for the Future (Japan 990512), Street Fighter III 3rd Strike: Fight for the Future (Japan 990608), Super Cobra (bootleg, set 2) and Super Seven - New PinMAME games: Earthshaker (Prototype) (PA-4), Lucky Draw (Pinball) and Strange Science (Rev C) - New drivers: konblands.cpp and lckydraw.cpp - New devices: dec_rs232_loopback, mb89374, pit_counter and scn2672 - New mame.ini options: comm_framesync = 0 (CORE COMM OPTIONS) - Analog Devices ADSP21062 CPU . Added Rn = Rn FDEP Rx BY : opcode used by Last Bronx for a vital geometrizer function (sharc\sharcops.hxx). . Added fmul abs multi opcode (used by Gunblade NY) (sharc\compute.hxx, sharc.h and sharcops.hxx) . Added SET_UREG case $67 (Zero Gunner 2B) (sharc\sharcops.hxx) . Fixed LSHIFT negative operations to not extend the sign on result, fixes Last Bronx frame flickering (sharc\sharcops.hxx). - Dynamic Re-Compiling: Make UML shorthand a bit easier to use without using namespace everywhere. Modernised cpu\drcuml.cpp. - Fujitsu MB86233 CPU: Some DASM changes - IBM PowerPC 4xx/6xx CPUs: Clean up a bit of macro hell in PowerPC core - Intel 8257 DMA Controller CPU: Cleanup - Intel I8051 / MCS-51 CPU: Use callbacks for parallel ports - Intel i960KB CPU: Support burst stall on writes - NEC uPD7810 CPU: Dasm fix (cpu\upd7810\upd7810_dasm.cpp) - TLCS-90 CPU: Separated TLCS-90 external IRQ line state from internal request register (fixes Mahjong Tenkaigen slowdowns) - ES8712 sound: The ES8712 is actually a controller for MSM5205/MSM6585 and 74157-type TTL pair (gcpinbal.cpp, lastbank.cpp, metro.cpp and witch.cpp). Added notes. - K051649 sound: Added scc_map to reduce duplication in driver memory maps - N2A03 APU sound: Derive frame counter from clock input - Namco C352 sound . Changed mu-law algorithm to match Namco's WII VC emulator. This appears to be the original algorithm used in the hardware. . Fixed static noise between fights in Tekken 3 . Fixed the order of the phase inversion flags - QS1000 sound: Converted set_irq into WRITE_LINE_MEMBER - QSound . Rewrote/Improved DSP16 disassembler. Less ambiguous, more like the manual. Less cluttered output, better handling of ambiguous operations, look-ahead for predicated jumps, live will/won't comments on conditional instructions (cpu\dsp16\dsp16dis.cpp). . Cycle-accurate DSP16 core (disabled in QSound for performance reasons). Start adding DSP16 recompiler boilerplate. . QSound LLE available with a 3-character change. Changed sample rate and playback behaviour to better match DSP for qsound_hle. Simplified sample fetch/scale and register writes for qsound_hle. . Clean up host and DAC comms a bit, hopefully fix desync (sound\qsound.cpp). . Marginal DSP16 performance improvement by precalculating SIO clock divider preload, also push ILD/OLD on mode change. Moved most core state into DRC cache - keeps a lot of details out of the main header (DRC is still stubbed out). - Sega PCM sound: De-staticify initializations. Added device_clock_changed. Minor cleanup (sound\segapcm.cpp; drivers\segahang.cpp, segaorun.cpp, segaxbd.cpp and segaybd.cpp). - Taito Ensoniq Sound System . Moved imperfect_features() into es5510.h. Verified ESP input clock and output channels from GunBuster schematics (same in other PCBs?). Added m_bankmask instead runtime tag lookups. Added notes. . ES5510 CPU: Fixed DRAM read/write. Converted gpr, instr and dram into std::unique_ptr. Added save states and notes. Minor cleanup. . Ensoniq 5505/5506 to 5510 interface (sound\esqpump.cpp): Cleanup unused m_otis/m_otto and converted e[0x4000] into std::unique_ptr if used. - ER2055 EAROM: Separated CLK writes to make emulation usable for (MESS) CIT-101 - Intel 8251 USART: Added XMIT FLAG polling to (MESS) DEC VT100 using new i8251 line read handler - Intel 8253 PIT: Converted counters to subdevices - Kaneko Custom: Added device_rom_interface instead memory pointer (video\sknsspr.cpp; drivers\galpani3.cpp, jchan.cpp and suprnova.cpp) - National Semiconductor INS8250 UART: Added hack to reset transmitter when baud rate is changed. This is needed to make the (MESS) VT102 printer loopback test pass because ins8250_uart_device does not fully emulate the baud rate generator as the independent block it really is, but relies on the all-purpose, somewhat faulty device_serial_interface implementation. - PCI bus: De-staticize callbacks and remove both device parameters (machine\lpci.cpp) - Rockwell 10937 video: Cleanup - RS232 Port: Moved devcb resolution to device_resolve_objects. Added V.24 cross reference. Added speed indicator to modem control and speed select output. Added DEC 12-15336-00 RS232 loopback connector type (required for (MESS) VT102 modem control self-test). - SCN2674 Video . Use same character width for text and graphics modes. This change has been made partly to bring the implementation in line with other character-based video devices. It is also consistent with the documented ability of the SCN2674 to combine text and graphics modes on the same screen, which rules out bitmap resolution changes. . Massive register/command processing/logging cleanup - Sega Custom . Added xhout and xvout register callbacks (video\segaic24.cpp), and hooked them up to Model 2 driver, fixing 3D viewport positions. . Internalized communication latches for sega_315_5195. 315-5195 mapper has same clock as CPU (segaorun.cpp, segas16b.cpp and segas18.cpp) - Taito Custom . C-Chip . Use dumped C-Chip for Bonze Adventure, Rainbow Islands, Superman and Volfied and removed simulation. . Bonze Adventure: This most likely fixes the 1st level of Bonze Adventure, if you go into the secret hole and die in the cave, you restart in a totally black area and you can't do anything. And when you die in the 3rd level, an error message popped up and you was unable to do anything (had to restart the game) (ID 00205). This also fixed the 3rd level of Bonze Adventure, if you die, the game hangs because the restart level is wrong (ID 00377). . Mega Blast: Correct C-Chip clock . Operation Wolf: Measured C-Chip clock on working PCB (Taito custom C-Chip marked 'TC0030CMD, with sticker 'B20-18'. Clock input 12.00MHz on pin 20) . Rainbow Islands: Simulation isn't yet removed because Rainbow Islands Extra still needs it (Haze is checking if he can make a temporary ROM until it is so that we can clean it up in the meantime). . Rainbow Islands - Extra Version: Use a handcrafted C-Chip rom for Rainbow Islands Extra, pending a real dump, allows removal of simulation code and general cleanups. Also made Rainbow Islands Extra a parent, since it has it's own game code, own C-Chip and is generally considered a semi-sequel rather than a bugfix / revision of the original game. Best I can tell behavior matches the differences between original and extra that were present in the simulation at least, but obviously the real chip could be hiding more secrets. . Superman and Volfied: Made the 68k and uPD7810 use different banked windows into the RAM, this seems to prevent the fighting I was seeing, and also Superman suggests that it might be correct, as it puts response values in a bank for the 68k but then changes the window so the 68k can't see them. Needs further testing tho (other C-Chip dumps might tell us more later). Removed debug structure. . Volfied: Interrupt source still needs to be verified, but I've tested this to the end and it works fine with the real dump. - TMS9927 video: Configure device using character clock rather than dot clock - VGA video: Internalized palette - Voodoo GFX: Added rasterizers for cartfury, roadburn, sfrushrk and warfa (video\voodoo_rast.hxx) - artmagic.cpp: Replaced NVRAM with parallel EEPROM and improved ADPCM banking. This fixed new NVRAM will cause a blasted sound on Get Ready screen at the beginning of Cheese Chase (ID 06917). - asuka.cpp: Fixed clock speeds & misc updates. Both Galmedes & U.N. Defense Force: Earth Joker are chip swaps for Asuka & Asuka so use the Asuka machine config. Note that both games don't use the OKI MSM5205, but it's still on the PCB. - crospang.cpp: Fixed clock speeds based on OSC & PCB info. Note: 68000P10 is a 10MHz part, so it's not going to be overclocked to 14.318MHz. All PCBs on this platform have only a single 14.31818MHz OSC so the Oki clock is either ~1.7MHz (OSC/8) or ~.89MHz (OSC/16). - ddragon.cpp: Replaced HD6309 CPU1 with HD6309E - dec8.cpp: Use input_merger for Gondomania and Garyo Retsuden. Acknowledge NMI another way for The Real Ghostbusters. - dkong.cpp: Changed orientation so that -norotate matches direct feed recordings - dynax.cpp . Hana Jingi: Simplify bitswap for clone Hana Oriduru (Japan) . Mahjong Tenkaigen: Separated TLCS-90 external IRQ line state from internal request register (fixes Mahjong Tenkaigen slowdowns) - eolith.cpp, eolith16.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp and vegaeo.cpp . Converted QS1000 set_irq into WRITE_LINE_MEMBER . Cleaned up VRAM handler/drawing pixel (eolith.cpp, eolith16.cpp, vegaeo.cpp) . Modernize soundlatches (eolith.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp, vegaeo.cpp) . Minor cleanup. Added object finders instead runtime tag lookup. Replaced user* -> saner ROM areas (eolith.cpp, eolith16.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp, vegaeo.cpp). . Minor cleanup of sprite drawing (limenko.cpp) . Added machine_config instead driver_init for Hidden Catch 3 - gcpinbal.cpp: Minor cleanup. Added object finder instead runtime tag lookup. Replaced gfx* -> saner ROM areas. - goldstar.cpp . Merged TCL (Taiwan Chess Legend) driver into Goldstar, since it's same hardware. . Replaced macros with lambdas - gstream.cpp: Added pre-calculated RGB Palette for X2222 drawing gfxs. Removed unneeded arguments of drawgfx_transpen_x2222. Cleanup duplicates. - hnayayoi.cpp: Use HD6845 CRTC for video; improved screen parameters. - hyprduel.cpp . Cleanups . Added imagetek_i4220_device. Only draw portion of tilemaps exposed by clipping rectangle (improves performance). . Allocated sound output from real PCB (real PCB only has mono sound output) . Boost tilemap drawing routines when VIDEO_UPDATE_SCANLINE case of screen video attributes and fixed tilemap drawing at tilemap offset X/Y !=0 case (video\imagetek_i4100.cpp) - iteagle.cpp: Set CPU frequency to 166MHz. Seems to fixed 'Big Buck Hunter Call of the Wild' and 'Big Buck Hunter II' runs slow on certain levels despite being 100% in MAME (ID 06908). - kaneko16.cpp: Cleanup OKI banking and soundlatch handler - mcatadv.cpp: Cleanup duplicates. Allocate sound output (Magical Cat Adventure PCB has mono sound output only). Updated notes (PCB hasn't any delta-t ROM). - metro.cpp . Boost tilemap drawing routines when VIDEO_UPDATE_SCANLINE case of screen video attributes and fixed tilemap drawing at tilemap offset X/Y !=0 case (video\imagetek_i4100.cpp). Added notes. Reorder romsets in a sane order. . Added object finder instead runtime tag lookup . Manual for Daitoride says button 2 is used for change direction of mount of tiles . Enabled Puzzli raster irq . Fixed _3kokushi config name . Allocated sound outputs from real PCB for Blazing Tornado (HUM-002 PCB has stereo speaker connector, HUM-003 doesn't). Fixed sound bankswitching. - midvunit.cpp: Cleaned up Midway V-Unit inputs and outputs. Better motion inputs and sorted main buttons. Removed runtime tagmap lookup. - model1.cpp . Clear up some memory issues with very recent GCC (includes\model1.h and video\model1.cpp) . M1COMM . Updated simulation based on real firmware. Read partial frames correctly now. Added VSYNC packets (framesync currently disabled as this can cause MAME to freeze and we have no way to tell if the socket is still open). Added config option to sync frames over network. Better sync. Detect lost connection. Use osd_file rather than emu_file for better control (machine\m1comm.cpp). . Added preliminary MB89374 emulation to Virtua Racing and Wing War. Removed Z80 CPU in netmerc, swa and vf. Moved knowns roms to M1COMM device. - model2.cpp . Standardized protection accessors for Model2/3 315-5881 device . Added custom debugger commands to dump geometrizer disassembly and triangle list . Work around for 'ld rN, (rN)' read on FIFO, fixes crashes for desert, overrev, pltkids, sgt24h, skytargt and zerogun. . Bump renderer max polygons to 0x10000 (includes\model2.h) . Added Rn = Rn FDEP Rx BY : opcode used by Last Bronx for a vital geometrizer function (cpu\sharc\sharcops.hxx). . Added geo/raster state saving. Added save state registration. . Added xhout and xvout register callbacks (video\segaic24.cpp), and hooked them up to Model 2 driver, fixing 3D viewport positions. . Stateized float_to_zval, fixed z code (video\model2.cpp). Cleanup culling. . In geo mode 2 & 3 normals are skipped for every triangle/quad. Fixes graphical glitches in Virtual-On, Gunblade NY, Dead or Alive, Sonic the Fighters, Rail Chase 2, Virtua Fighter 2 and Desert Tank. . Added fmul abs multi opcode (used by Gunblade NY) (sharc\compute.hxx, sharc.h and sharcops.hxx) . Fixed untextured path colors (Motor Raid, Daytona USA) (video\model2rd.hxx) . MB86235 . Make TGPx4 to be debuggable even in non-DRC mode (cpu\mb86235\mb86235.cpp). Wrote a preliminary TGPx4 interpreter core. . generate_reg_read and generate_ea fixes. Added ALU OR / XOR (cpu\mb86235\mb86235drc.cpp). Misc fixing (floating point conversions, broken REP opcode and support for rascot2 MOV2 int->ext opcode). . SCSP / Interrupt ports cleanups . Added direct framebuffer drawing used by Last Bronx title screen. . Fixed Model 2/2A garbage 3D when exiting test mode. clip_plane belongs to clip_polygon function. . Apply focus in a specific function. Overhauled inputs. Added dipswitch bank (Zero Gunner Debug mode). . Added inputs to bel, gunblade, indy500, overrev, segawski, sgt24h, skisuprg, skytargt, stcc, topskatr, von and waverunr. Handle brake input in srallyc. Cleanup vcop inputs. Fixed rchase2 inputs. . Fixed obc == 0 case for Cyber Troopers Virtual-On and Gunblade NY . Workaround hardlocks in Fighting Viper and Sonic Championship . Avoid Daytona USA with master controller to crash . Fixed black screen in Zero Gunner (Export, Model 2A) . Fixed Motor Raid and Virtua Fighter 2 (Games now playable) . Attempt to fixing Sky Target gameplay speed . Fixed Zero Gunner background priorities . M2COMM: Updated simulation. Read partial frames correctly now. Added VSYNC packets (framesync currently disabled as this can cause MAME to freeze and we have no way to tell if the socket is still open). Added config option to sync frames over network. Added relay mode (used by Sega Touring Car Championship) and "connection loss". Use osd_file rather than emu_file for better control. Handle connection loss in a a more elegant way (machine\m2comm.cpp). . Indy500 - 4 Player Setup: - naomi.cpp . NAOMI/Dreamcast save_pointer needs units, not bytes. No longer crashes when saving state. . Updated ROM board and BIOS documentation - naomi.cpp and segasp.cpp: Enabled SH-4 Dynamic Re-Compiling by default - nbmj8688.cpp: Supported d2 in text mode (video\hd61830.cpp) - nss.c, sfcbox.c and snesb.c: Allow use of separate address spaces for program, data, opcodes and/or vectors (cpu\g65816\g65816.cpp) - piggypas.cpp . Fixed interface between MCU and LCD controller for Fiddle Stix and Round and Round . Added 7-segment digits to Fiddle Stix and Round and Round . Cleanup driver. Handle serial outputs in a more hardware-consistent way. - rohga.cpp: Fixed gfxdecode instead garbage (ID 06895) - seattle.cpp: Cleaned up outputs - segas32.cpp . ACCESSING_BITS cleanup . S32COMM: updated simulation. Handle connection loss. Use osd_file rather than emu_file for better control (machine\s32comm.cpp). - segaybd.cpp: Soundlatch modernization - taito_f3.cpp: Fixed exception after logo is displayed in Riding Fight and Ring Rage (ID 06894) - tecmosys.cpp . Updated driver. Fixed background color. Cleanup bankswitching. Reduced duplicates. Cliprect related mixing. . Added object finders instead runtime tag lookup. Demoted games with MACHINE_IMPERFECT_GRAPHICS, because some graphic features (linescroll and mixing) is not perfectly emulated. Added MACHINE_NO_COCKTAIL tags, because tilemap scroll is wrong when flipscreen case. Fixed sprite drawing and transparent drawing. Minor cleanup and added notes. . More const, keep scope tight and use lambdas in preference to macros. - vigilant.cpp: Fixed no sound (ID 06921) - wecleman.cpp: Added stereo output for both WEC Le Mans 24 and Hot Chase. Because real hardware has stereo sound output with seperated sound board. Added enum for m_gameid and m_sound_hw_type. Minor cleanup. Replaced gfx* -> saner ROM areas. Added notes. - A-Plan: Make game capable of reaching at least a couple of test screens, like Cherry Master '99. - Bombjack Twin: Moved clone 'Atom (bootleg of Bombjack Twin)' from NMK16 driver to Power Balls driver. Gives sprites, though it needs some more work. - Chequered Flag: Minor cleanup - Connect 4: Fixed digit segment - D-Day (Jaleco): Fixed clouds priority, title screen colors and added flipscreen. - Dream 9 Final: Added NVRAM - Eyes: Redumped maincpu and gfx1 roms for clone Eyes (Italy) (Game now playable) - Flash Point: nternalized communication latches for sega_315_5195; sound works now in clone (Japan, bootleg set 2) - Gals Panic 3 . Bit of improves on bg-bg priorities. Fixed some galpani3 alpha blending and sprite-bg/bg-bg priorities. Cleanup duplicates. Added notes. . Kaneko GRAP2: Added device_rom_interface instead runtime tag lookup. Converted address map related defines into device address map. Added internal palette configs. Implemented brightness. Added m_brightreg on save state. Fixed color (video\kaneko_grap2.cpp). - Game King (Set Chips): Clear chips - Gunpey: Extracted decompressed sprite data from Gunpey. Hooked these up for now while we study the compression scheme, fixing graphics. Added sprite zooming (Game now playable). - Hole Land: Fixed priority bug on the boss level (ID 06900) - King Derby: Use output finders instead of set_digit_value - Kyuukoukabakugekitai: Minor cleanup. Added generic_latch_8_device for cpu comms. Added input_merger_any_high_device for fgcpu irq. Fixed tags. - Last Bank: Added object finder instead runtime tag lookup. Added generic_latch_8_device instead internal value. - Liberator: Separated CLK writes (machine\er2055.cpp) - Master Boy: Minor cleanup. Moved banked ram handler into address_map_bank_device. Fixed "RAMM err.". Added notes. Replaced gfx*/user* -> saner ROM areas. - Mouser: Soundlatch modernization - Pig Out: Fixed rom labels and documented undumped PALs - Shuttle Invader: Corrected maincpu clock divider and detailed README - Space Guerrilla: Added missing PROMs (74s288.6a and 74s288.6b; the 2 PROMs are identical) - Street Fighter III 3rd Strike: Dumped Japanese BIOS - Tetris: Documentation updates for clones Tetris (bootleg set 2) and Tetris (bootleg set 3) - Ultraman: Minor cleanup - unknown Italian poker game: Added switch to disable card graphics in bookkeeping mode - Valtric: Dumped PROM - War: The Final Assault: Fixed scaling functions for negative values (video\rgbsse.h). Fixes graphical anomalies (Game now playable). - Xexex: Minor cleanup. Added object finder instead runtime tag lookup. Add notes. Demoted Xexex/Orius with MACHINE_IMPERFECT_GRAPHICS, because it has alpha blending issue and MACHINE_NO_COCKTAIL flag, because tilemap scroll is wrong when cocktail mode. - Fixed rom names in leland.cpp and pacman.cpp - Description changes of Ataxx (rev 4), Ataxx (rev 5), Daytona USA (Turbo hack, set 1), Daytona USA (Turbo hack, set 2), Daytona USA (To The MAXX), Gongtit Jiucoi Iron Fortress (Hong Kong), Mahjong Ougon No Hai, Mahjong Ougon No Hai (bootleg), Master Boy (Spanish, PCB Rev A, hack?), Pig Out: Dine Like a Swine! (rev 1), Pig Out: Dine Like a Swine! (rev 2?), Rainbow Islands - Extra Version, Strange Science (Rev A), Science (German, Rev A), Street Fighter II: The World Warrior (Thunder Edition, bootleg, set 1) and Super Cobra (bootleg, set 1) - Renamed (ataxx) to (ataxxa), (ataxxa) to (ataxx), (gkigtez) to (gkigtezms), (ironfortj) to (ironfortc), (mastboy) to (mastboya), (ougonpai) to (ougonhai), (ougonpaib) to (ougonhaib), (realbrod) to (realbroda), (strngsci) to (strngscia) and (strngscg) to (strngscig) - MAME . VIDEO RENDERING SYSTEM . Fixed scaling functions for negative values (video\rgbsse.h). Fixes graphical anomalies in War: The Final Assault. . Address performance concerns with previous change to screen.cpp/h . Better handling for arbitrary numbers of screens . MEMORY SYSTEM . Renamed some memory stuff (emu\addrmap.cpp) . Address maps macros removal (AM_RANGE() -> map(); AM_DEVICE16() -> .m(m_XXX, FUNC(); AM_DEVICE32() -> .m(m_XXX, FUNC()); AM_DEVICE8() -> .m("XX", FUNC()); AM_DEVREAD -> .r(); AM_DEVREADWRITE() -> .rw(); AM_DEVWRITE() -> .w(); AM_NOP -> .noprw(); AM_RAM -> .ram(); AM_RAM_READ() -> .ram().r(); AM_RAM_WRITE() -> .ram().w(); AM_RAMBANK() -> .bankrw(); AM_READ() -> .r(); AM_READ_PORT() -> .portr(); AM_READ16() -> .r(this, FUNC()); AM_READ8() -> .r(this, FUNC()); AM_READNOP -> .nopr(); AM_READONLY -> .readonly(); AM_REGION() -> .region(); AM_ROM -> .rom(); AM_ROMBANK() -> .bankr(); AM_SHARE() -> .share(); AM_WRITE() -> .w(this, FUNC()); AM_WRITE_PORT() -> .portw(); AM_WRITE32() -> .w(this, FUNC()); AM_WRITE8() -> .w(this, FUNC()); AM_WRITENOP -> .nopw(); AM_WRITEONLY -> .writeonly() ) . Fixed issue causing drivers using netlists to fail on the Emscripten target . PLUGINS . Use print_error to make testing easier (plugins\cheat\init.lua) (ID 06869). Search any address space (plugins\cheatfind\init.lua). . Changed Port name to address objections, also as suggested converted the controls.ini in repo Removed the import but will still load parent if available + Describe revised format (plugins\portname\init.lua). . Updated hiscore.dat (plugins\hiscore\hiscore.dat). Added handhelds that have high scores. . Give up if the database can't be created (plugins\data\database.lua) . Restricted ROM labels to a filesystem- and shell-safe subset of printable ASCII. Account for same label different hash (sldh) comments that arose with rom label changes. . Fixed count_leading_zeroes(0) C fallback (osd\eminline.h). Test all 32 results from count_leading_zeros() & count_leading_ones() (emu\validity.cpp). . Include option and file names in fatal error message for failure to load image (emu\image.cpp) . Get rid of dioutput - it's only used in one place, and it upset GCC on Linux debug builds for some reason (emu\dioutput.cpp -> video\dm9368.cpp). . Implemented Sega PCM interface registers in VGM player. Use QSound DSP emulation in VGM player. Disable POKEY and QSound devices if not required. . Multi-Language: Updated Brazilian Portuguese, Chinese (simplified/traditional), Dutch, French and Spanish translations - Compiling . De-staticify initializations for src\devices\video, devices\sound and others . Removed poor-performing parts of the output_manager (emu\output.cpp): Turn deprecated declaration warnings on by default and make them non-fatal. Make output_finder iterable in algorithms and range-based for loops. Replaced a lot of set_something with output_finder. Fixed end()/cend() on output_finder (acefruit.cpp, bfm_sc4.cpp, by17.cpp, by35.cpp, dlair.cpp, ecoinf2.cpp, ecoinf3.cpp, gts1.cpp, jp.cpp, jpmsys5.cpp, maxaflex.cpp, maygay1b.cpp, mpu3.cpp, mpu4.cpp, mwsub.cpp, peyper.cpp, segaufo.cpp, sigmab52.cpp, stactics.cpp, twinkle.cpp, wacky_gator.cpp, machine\bfm_bd1.cpp and bfm_bda.cpp). . Forward some objects; line continuations are not scope (machine\6532riot.h, pla.h and r10788.h). . Deprecated and removed all uses of running_machine::first_screen - there's been plenty of warning (emu\machine.h) . Use device_video_interface and configured screens instead of first_screen (drivers\gambl186.cpp, gamtor.cpp, photoply.cpp, pntnpuzl.cpp, machine\i82371sb.cpp, isa\svga_cirrus.cpp, svga_s3.cpp, svga_trident.cpp, svga_tseng.cpp, vga.cpp and vga_ati.cpp) . Added device_video_interface and eliminated first_screen (video\psx.cpp) . Use screen_device_iterator rather than first_screen (mame\luaengine.cpp) . Removed first_screen usage from bartop52.cpp, cham24.cpp, famibox.cpp, ghosteo.cpp, laserbat.cpp, maxaflex.cpp, multigam.cpp, playch10.cpp, popper.cpp, punchout.cpp, rungun.cpp, stv.cpp, vsnes.cpp, machine\archimds.cpp, audio\dkong.cpp, machine\namco51.cpp, machine\s3c24xx.cpp/hxx, machine\smpc.cpp, video\avgdvg.cpp, video\huc6270.cpp, video\stvvdp2.cpp, sound\nes_apu.cpp, render\aviwrite.cpp and render\d3d. . Removed all uses of first_screen from core files (emu\crsshair.cpp, emu\debug\debugcpu.cpp, emu\debug\dvstate.cpp, emu\inpttype.h, emu\ioport.h, emu\mconfig.cpp, emu\screen.cpp, emu\video.cpp, ui\cheatopt.cpp, ui\ui.cpp, ui\viewgfx.cpp and osd\modules\input\input_windows.cpp). . Eliminated vestigial member that was behind machine().first_screen() (emu\machine.cpp) . Get rid of the last set_indexed_value in drivers/devices, this ends up a bit ugly to maintain backwards compatibility with layouts/web UI (emu\output.h) . Fixed issue causing drivers using netlists to fail on the Emscripten target (netlist\plib\pdynlib.cpp) . Disable multithreading on the Emscripten target as it is not currently supported. Fixes e.g. drivers using discrete audio components (scripts\src\main.lua and osd\osdsync.cpp). . Removed stray address maps on spaces that don't exist (drivers\twincobr.cpp and (MESS) drivers). Cleanup address map remnants (de_2.cpp, s11c.cpp, segaybd.cpp and techno.cpp). . Added missing override (sound\coreaudio_sound.cpp and sound\pa_sound.cpp) . Apply same flags when building with SOURCES= as when building normally (scripts\build\ This fixes the issue which prompted "model1: clear up some memory issues with very recent gcc (nw)" (which only occurred in a SOURCES= build). . Use more constexpr and literal classes in UML to give compiler more optimisation opportunities (cpu\drcfe.cpp and uml.cpp) . Reduced scope of stuff with different definitions across CPUs (cpu\e132xs\e132xs.h and sh\sh.h) . Prettier way of adding DRC framework on-demand (scripts\src\cpu.lua) . Reduced use of naked pointers, using namespace and preprocessor macros in recompiling CPU cores. . Don't sleepcode (dasm_override in emu\didisasm.h) - for some reason this only upset GCC, not Clang. - Debugger . Fixed extent of debug view of address-shifted memory spaces (debug\dvmemory.cpp) . Fixed output of wplist debug command and find command for address-shifted spaces (debug\debugcmd.cpp) . Fixed watchpoint view for address-shifted spaces (debug\dvwpoints.cpp) . Fixed masking of offset expressions in debug view of address-shifted spaces (debug\dvmemory.cpp) 0.195 - New games: Hammer Boy - New Non-Working games: Blockout (TAX), The Dealer (ACL), Pittanko Zaurus, Sekai Kaseki Hakken (Japan, SKH1 Ver.A), Soreyuke Anpanman Crayon Kids (J 001026 V1.000), Super Medal Fighters (Japan 970228), VJ Visual & Music Slap and Zhaoji Fengdou - New clones: Ares no Tsubasa (Japan, rev. A), Dam Dam Boy (on Tsukande Toru Chicchi PCB), Donkey Junior High Score Kit (hack,V1.2), Donkey Kong High Score Kit (hack,V1.0a), Donkey Kong High Score Kit (hack,V1.2), Donkey Kong/DK (Japan) (hack,V1.1 IKE), Donkey Kong/JR (combo) (hack,V1.2), Double Donkey Kong (hack,V1.2), Gee Bee (UK), Gigas Mark II (MC-8123, 317-5002), Hard Yardage (v1.10), Ironman Ivan Stewart's Super Off-Road (rev 3), Moon Shuttle (US, version A), Pac-Land (Bally-Midway), Pac-Man (bootleg, Video Game SA), Quarterback (rev 1, cocktail), Rabbit (Japan, location test), Sangokushi II (bootleg), Street Fighter II': Champion Edition (Taiwan 920313), Street Fighter II: The World Warrior (bootleg with rules screen), Street Fighter II: The World Warrior (bootleg, set 2), Tapper (Budweiser, 12/9/83), Target Ball '96 and Tecmo Bowl (World, set 2) - New PEPlus games: Player's Edge Plus (PS0280) 4th of July Slots - New drivers: badlandsbl.cpp, blocktax.cpp and konmedal68k.cpp - New devices: clgd5446, es5510, esq_5505_5510_pump, ladybug_video, rst_pos_buffer, rst_neg_buffer, stvcd and zerohour_stars - ADSP21062 CPU: Disabled fatalerror on debugger data area access - I286/I386 CPUs: Fixed default CS flags - I8086 CPU . Make read_byte/word and write_byte/word overridable virtual functions (80186 MMU probably will need to override this in the future). . Make fetch_op an alias for fetch (implementations were identical already). . Removed sreg argument from read_byte/word and write_byte/word (it was almost always m_easeg as set by calc_addr, sometimes with dubious evaluation order). . Restrict logic for separating address spaces for CS/ES/SS accesses to 8086/8088 (later x86 models do not broadcast the descriptors). . Encapsulate m_e16 within the only function that used it. - I80186 CPU: Added some internal peripheral block registers to 80186 debug state - i960kb CPU . Fixed disassembly of REG instructions . Support for burst mode stalling save and restore. Experimental FIFO burst mechanism. Cleanups and commentary. - K051649 sound: Added clock change support - M6502 CPU . Created derived 6502 type for (MESS) XaviX because it has at least one custom . Fixed tracing and breakpoints for paged variants - MC6809 CPU . Replaced MC6809 (legacy) with MC6809E in brkthru.cpp, bwing.cpp, chanbara.cpp, cntsteer.cpp, compgolf.cpp, homedata.cpp and sidepckt.cpp . Replaced MC6809 (legacy) with MC6809 in brkthru.cpp and renegade.cpp - Z80 CPU: Changed refresh callback to write8 - OKI MSM9810 sound: Corrected sample rate divider table. Added support for clock changes. Implemented DADR, serial interface and added notes. - POKEY sound: Removed check_debugger - Seta X1-010 sound: Improved naming of member variables/functions - Sound Interface: Soundlatch modernization in 40love.cpp, bigevglf.cpp, crgolf.cpp, ddenlovr.cpp (mmpanic and funkyfig), kurukuru.cpp, ssozumo.cpp, vaportra.cpp and yunsung8.cpp: - Taito Ensoniq ES5505-based sound: Hooked up ES5510 effects DSP (audio\taito_en.cpp) - YM2203 sound: Handle interrupt output as instant timer to prevent synchronization glitches (sound\2203intf.cpp) - YMF271 sound: Allow 4 channel output. Converted external memory handler to address space. Moved global imperfect_sound tags to device imperfect_features. Added notes. - YMZ280B sound: Added device_rom_interface instead external memory handlers - 6840 PTM . Stop defaulting external clocks to 1 Hz. Fully configure MC6840 timer to pass self-test for (MESS) Panafacom Duet-16. . Counter/timers are numbered from 1 to 3, not 0 to 2 as with 8253. Renamed OUT0, OUT1 and OUT2 callback configuration macros to match pin names (O1, O2 and O3). Updated all verbose logging messages to be one-based. Removed unnecessary mentions of device type in logging messages. - 8250 UART: Unbreak the (MESS) IBM pcjr - 8257 DMA: Don't clear DRQ on tc (machine\i8257.cpp; drivers\dkong.cpp and fastinvaders.cpp) - Data East Custom . Fixed tilemap flip (video\decbac06.cpp) . Fixed flip screen rendering of DECO MXC06 sprites (video\decmxc06.cpp). This seems to fix all remaining attract mode glitches in Act-Fancer. This fixed also flipscreen shows "split" sprites in Mad Motor (ID 04942) and Vapor Trail (ID 04987). . Synchronize soundlatch writes, fixes dropouts in Double Wings (machine\deco146.cpp). - Discrete Netlist . Fixed assertion when debugging in Visual Studio (netlist\plib\pstring.cpp) . Fixed is_set() when generic_function is an int array (netlist\plib/ppmf.h) . Disabled netlist statistic logging on shutdown, because it triggers a use after free in void device_debug::errorlog_write_line(const char *line) & fixed the copy & pasted comment (netlist\solver\nld_solver.h). - HD63484 video: Added external skew kludge to prevent display cutoff in Kyuukyoku no Othello - I8275 video . Handle invisible field attributes and "end of row - stop dma" special code better; honor Video Enable bit. Fixes display is not stable and flickers in (MESS) Radio-86RK (4K ROM) (ID 05764). No visual change on (MESS) mikromik, zorba and radio86 clones. . Make Preset Counters command useful. Fixes visuals in (MESS) tim100 and hp64k. - MSM6242 RTC: De-assert interrupt output when the IRQ flag is cleared - RST buffer: Created RST interrupt buffer device - Sega Custom . Kill tile32/char32 tranpolines (video\segaic24.h) . Added object finder m_rom instead memregion(":maincpu") (machine\st0016.cpp) . Make sega_315_5195 and sega_315_5250 sound read/write delegates standard device callbacks (segaorun.cpp, segas16b.cpp, segas18.cpp, segaxbd.cpp and machine\segaic16.cpp) - TMS9927 video . Fixed excessive sync width after recomputing parameters during sync . Adjust vertical positioning of cursor by upscroll value - V9938 video: Improved logging options with logmacro - asteroid.cpp: Use 74LS153 device for dipswitches - bnstars.cpp, macs.cpp, ms32.cpp, seibuspi.cpp, simple_st0016.cpp and speglsht.cpp: Cleanup bankswitching - cave.cpp: Reduced code duplication with templates and object array finders. Fixed spacing and added notes. Fixed FIFO and graphics. - cdi.cpp: Made DMA handling safer (machine\cdicdic.cpp). Note: This fixes the regression in quizard/2/3/4. It's surprising that this very unsafe code hadn't been crashing until just recently. - chihiro.cpp: Clean up some unnecessary machine-relative accesses (machine\xbox.cpp) - ddenlovr.cpp: Clean up DSW mux and fixed akamaru - dec8.cpp . Cleanup bankswitch initializes, driver_init_members and duplicates. . Some accurate CPU type from PCBs and added notes. Converted m_buffered_spriteram16 to unique_ptr. . Removed defined memory map for "If a new dec8.cpp game with a different mapped main CPU ROM is found" . Replaced HD6309 CPU1 with HD6309E in garyoret, ghostb and gondo. - deco32.cpp . Cleanup duplicates. Removed unneed shared_ptr. Added notes. . Converted m_spriteram16*/m_spriteram16_buffered*/m_pf_rowscroll* to std::unique_ptr . Rowscroll ram size allocated to memory mapped size. Moved m_oki2_bank to dragngun_state. Fixed DECO32 ioport tags when "DSW" aren't actually dipswitch. . Improved OKI bankswitching in Locked 'n Loaded . Demoted Dragon Gun with MACHINE_IMPERFECT_SOUND, because OKI3 bankswitching aren't verified. . Fixed ioport tags for Captain America - decocass.cpp: Inverted sprite/sprite priority (seems to help Oozumou - The Grand Sumo) - deco_mlc.cpp . Cleanup unused/duplicates . Added sprite drawing when 8bpp and alpha using simultaneously. Implemented alpha/shadow selectable bits. . Corrected game name/region related each rom versions. Implemented more blending mode. Changed m_mainCpuIsArm to m_irqLevel for when discovered non-DECO156 CPU games with different IRQ pin is connected. Accurate shadowMode. Added notes. . Added MACHINE_NOT_WORKING and MACHINE_IMPERFECT_GRAPHICS flags to Skull Fang, because it has sometimes random hangs and these blending and raster effect features aren't fully emulated currently. - djmain.cpp: Fixed MAME exception in all DJMain sets (ID 06884) - dkong.cpp . Simplified banking. Don't clear DRQ on tc (machine\i8257.cpp). . Hooked up undocumented service switch and undumped diagnostic rom to Donkey Kong and Donkey Kong Junior - firebeat.cpp: Minor cleanups. Split main CPU memory maps related for number of allocated GCU chips in PCB. - fromanc2.cpp: Cleanups - gaiden.cpp . Reduced code duplication using templates and object finder arrays. Minor fixes. . Split wildfang/raiga machine config/address map . Fixed hang at soft reset in Raiga - Strato Fighter - gkigt.cpp: Hookup RAMDAC. Some improvements to make most games to boot up to display CMOS error. Hook up SC28C94 QUARTs. Commented out for now to not interfere with development. - itech32.cpp: Hooked up stereo audio output for Driver's Edge and Time Killers - jchan.cpp . Improved sprite-tile priority. Cleanup duplicates . Verified background pen. Fixed tilemap offset. Added notes. - jclub2.cpp and srmp5.cpp: Accurate tag for CPUs and configurated ST0016 rom bankswitching - ladybug.cpp/redclash.cpp: Untangle ladybug and redclash state classes. Moved Space Raider back to Lady Bug driver. - luckgrln.cpp: Use MSM6242 RTC device - m90.cpp: Replaced VBLANK INTERRUPT_GEN with line callbacks - m92.cpp: Soundlatch modernization - megaphx.cpp . Bank the ROM in a somewhat less hacky way. This improves sound in Hammer Boy (whose sound program indeed reads different interrupt vectors, though from a table at the same addresses). Clean up code and added register state for saving (machine\inder_sb.cpp). . Mark Hammer Boy working. Patch PIC ROM to shorten timer or the game times out waiting for an answer from the PIC. Start fixing dip switches for Hammer Boy. Various cleanups. Prevent random hanging in Hammer Boy. - model2.cpp . Cleanups. Fixed viewport. Kill tile32/char32 tranpolines (video\segaic24.h). . Converted colorxlat & lumaram to 16-bit accessors . State-ized frame_start / geo_parse (video\model2.cpp) . Fixed 2D priority over polygons (Virtua Cop level select, Dead or Alive chara select etc.) . Fixed bufferram size and improved geo_parse() . Modified poly_manager parameters, crashes less often now. . Testing sRGB color space . Mask polygon_rom/texture_rom checks towards bounds. Fixed ROM loading regressions. Initialized bufferram to a sane default. . The render_mode can be read back, cfr. Gunblade NY. . Some inputs fixes and updates . Fixed Dead or Alive protection reads . Added "Bat Swing" inputs to Dynamite Baseball and Dynamite Baseball 97 . Fixed texture rom loading for Virtua Fighter 2 and rom loading for Rail Chase 2. . Added 30 Hz renderer mode, fixes Virtua Striker timings. . Hookup polygon count for Sky Target. Note: Only Sky Target seems to use this for unknown purpose. . Make Rail Chase 2 pass the initial network check (has tons of 3D issues) . 'Dead or Alive' protection was actually good this way, mangled 3D is caused by comms or core bugs (machine\315-5838_317-0229_comp.cpp) . i960KB: Fixed disassembly of REG instructions. Support for burst mode stalling save and restore. Experimental FIFO burst mechanism. Cleanups and commentary. Known status (difference from before): daytona: Runs at better speed, crashes/hangs at expert course. dynamcop, indy500, motoraid, vcop2 and vf2: Playable. fvipers: Playable if you coin it up fast enough, crashes in attract otherwise. lastbrnx: Runs a bit further, needs a few extra geometry opcodes. overrev/sgt24h/zerogun: 3D regressions (?). - ms32.cpp: Real arcade board can output stereo sound (, it has a second stereo sound connector. - namcona1.cpp . Fixed soft reset hangs. Improved encapsulation. Demoted all games to MACHINE_NO_COCKTAIL. . Fixed status bar colors for VS Express event in Numan Athletics . Fixed video disable graphic transitions (i.e. temporary gfx seizures) . Added dynamic screen visible area change effect, used mostly by Numan Athletics on transitions. . Fixed bogus palette transfers for X-Day 2. Fixed horizontal scroll adjust and background color pen, improves X-Day 2 video emulation. Added MSM6242 RTC and fixed EEPROM type. - namcos1.cpp: Use 74LS157 device for dipswitches and correct order of switches - nmk16.cpp . Cleanup duplicates. Update documents. . Verified OKI bankswitching for clones Atom (bootleg of Bombjack Twin) and Vandyke (bootleg with PIC16c57). Fixed OKI clock. - nss.cpp: Removed m_clock_line (video\m50458.cpp) - popeye.cpp . Reverted clone Popeye (bootleg set 1) to 0.33b6 names and contents. The tile ROM was replaced with the contents from the TPP2 set and all the graphics roms were renamed to match the names in use at the time. The tile rom in the recently dumped "Popeye (bootleg set 2)" also matches the old tile rom, so it's a reasonable bet that the dump was correct. . Fixed background alignment in TPP2 sets. Converted machine config, address maps, palette init, background write handler & background drawing to virtual methods. Only include protection device on hardware that has it. . Fixed TPP2 test mode background . Added Popeye sprite ram, background scroll and palette buffering. Unmap $8000 to $87ff for TPP2 as 7f is not populated at the factory. . Moved popeye palette resistor network into driver class . NMI disable is latched from A9 (which corresponds to bit 0 of the I register) when RFSH goes from high to low . Moved Popeye Copyright from dipswitches to machine configuration, the schematics show that they are just resistors. The Unknown bit isn't hooked up on the schematics and the game doesn't access it, so I've changed it to unused. . Added 'Difficulty' dipswitches to Sky Skipper - rohga.cpp: Cleaned up IO, protection handling and duplicates. Added notes and removed outdated comments. - segag80v.cpp: Fixed G80 vector opcode handling. This fixed Tac/Scan hangs or resets beyond the second phase (ID 06888). - segas24.cpp: Kill tile32/char32 tranpolines (video\segaic24.h) - seibuspi.cpp: Single PCBs only output mono sound (sxx2e PCB: unverified) - seta.cpp . Configurated M6502 bankswitching. Converted memcpy to std::copy. . Cleanup duplicates. Converted to unique_ptr when array size is >= 0x100. - stv.cpp . Moved existing CD-ROM emulation down into device for Sport Fishing 2 (machine\stvcd.cpp) . Fixed regression due to an unexpected CDDA dependency - taito_f2.cpp: Fixed palette format for games when using 15-bit palette area - taito_l.cpp: Converted VRAM banks to address_map_bank_device. Cleanup duplicates. - tetrisp2.cpp . Workable Stepping Stage Special driver: Added fundamental communication between main 68000 and (undumped) Windows PC. Figured out correct logic of data uploading from main CPU to (maybe an FPGA on some unknown board). Discovered proper V-blank frequency of 4 logigal screens (routed to 3 physical screens in real hardware), which effects the communication and synchronization between 2 68000 CPUs, thus affect booting. Borrowed foreground graphics from vjdash, added proper foreground layer handling and removed hack code. Seperated palette and decoding of 3 screens, and added independent 3rd screen decoding/drawing routine, as each screen has their own palette, and may display totally non-related graphics. Corrected sprite rom loading of step3. Mapped dancing floor light, spot light, neon light and key led output, based on some video footage of real arcade machines. Corrected NVRAM handling. Adjusted key-mapping of foot step input port, avoided key conflict. The in-game palettes are in 8-BIT YUV(UYUY) format. Each entry may contains 2 pixels. In the real game hardware, the sprites are to be mixed with a MPEG-1 under-layer, then converted together to RGB. . Driver for the recently dumped Vjdash (a 4-monitor game): Figured out that vjdash uses similar hardware to Stepping Stage. Identified graphics roms of foreground/background/ROZ layers. Been able to boot to self-test, thus mapped inputs. In addition to the currently obtained board, this game also needs a 2nd 68000 board which drives 3 upper screens, and one Windows PC, like in Stepping Stage series. This board may have 2 more (missing?) ROM ICs for sprites. - vamphalf.cpp: Converted OKI map to configured banking. Implement OKI bankswitching to Diet Family. - vaportra.cpp: Code cleanup - vectrex.cpp: Partially untangled console and arcade variants from each other - zn.cpp . Cleanup unused/duplicates. Moved bankswitch initializations to MACHINE_START. . Moved bank scheme to address_map_bank_devic in NBA Jam Extreme . Identified CPU type and sound chip for clone Beastorizer (USA bootleg) - Alien Command: Cleanups - Ameri-Hockey: Make Z8 CPU address spaces big-endian - American Poker II: Added vertical blanking input - Bad Lands: Splitted Bad Lands bootlegs into own file. Added preliminary sprite drawing to the bootlegs. Cleanups and improved sound. TODO: badlands_molayout doesn't want to link for some reason, for now I split defs into both files. - Bagman: Fixed broken clone 'Le Bagnard (bootleg on Crazy Kong hardware)' after recent memory changes - BanBam: Added notes regarding protection issues for BanBam/Pettan Pyuu. Note: Banbam has a Fujitsu MB8841 4-Bit MCU for protection labeled SUN 8212. Its internal ROM has been imaged, manually typed and decoded as sun-8212.ic3. Pettan Pyuu is a clone of Banbam although with different levels/play fields. Protection currently fails on both Pettan Pyuu and Banbam if you play either game to Round 11. When you get there, the music still plays but all you see is "ERR-43" in red text at the bottom left of the screen and the game is no longer playable. Also, in some earlier rounds you notice the background graphics are also not producing logical playfields as bits of graphics are in different locations. - Buster: Preliminary work to make it actually show something - Centipede / Millipede / Missile Command / Let's Go Bowling: Some minor investigation. Game is super weird. - Chinese Casino [BET]: No more state hacking for palette writes - City Connection: Don't lose the sprites; added some RAM mirroring. - Come On Baby: Make it to execute some opcodes - Crude Buster: Cleanup duplicates. Moved spriteram buffer functions to buffered_spriteram16_device. Removed unneeded rambank/shared ptr. Minor fix. - Cruis'n USA: Label for PAL2. Verified PAL dumps as bad. - Cyberball: Untangled the dual-screen and single-screen versions - there are substantial hardware differences. - Dark Seal . Dark Seal and clone 'Gate of Doom' have 64x64 PF1 and full 0x2000 area of PF1 ram is used. This fixed background is missing in the first boss area and third stage (ID 06889). Minor duplicate cleanup. . Clean up "control" handlers - Draw Poker III / Dwarfs Den (Dwarf Gfx): Set DIP defaults to display usable graphics - Driving Force: Verified PROMs for clone Driving Force (Galaxian conversion, Seatongrove UK) - Haunted Castle, Ponpoko and Son Son: Use 4-way joystick as documented in manuals - Kirameki Star Road: Added PAL dump - Kyuukyoku no Othello: Added external skew kludge to prevent display cutoff (ID 06446) - Little Robin: Added PCB layout - Mad Motor: General cleanup - Magic's 10: Fixed longstanding regression with gameplay not behaving properly - Mario Bros.: Workaround for missing music/sound effects (audio\mario.cpp) (ID 06870) - Ninja Warriors and Warrior Blade . Cleanup duplicates. Demoted games with MACHINE_IMPERFECT_SOUND, because SSG Output isn't accurate. . Identified Sound chip type for Warrior Blade - Photo Play 2000 . Added Cirrus Logic GD5446 VGA PCI device (video\clgd542x.cpp), now shows some legacy BIOS error (presumably needs PCI support to properly boot). . Many fixes and improvements, see driver notes for more info. . Preliminary EEPROM hookup. Hack EEPROM timings to make it work. - Quiz Do Re Mi Fa Grand Prix 2: Removed IDE hack now that Ted Green's work allows it. This fixed game hang on boot (ID 06885). - Raiden: Corrected xtal / clocks for clone Raiden (set 3) - Revolution X: Added crosshairs (ID 06866) - Sand Scorpion: Fixed sprite-tile priority (ID 06688). Make loop counters to individual values and removed hack. Minor cleanups. - Scramble: Fixed dipswitches for clone Scramble (Reben S.A. Spanish bootleg) - Shizhan Ding Huang Maque: Decapped and dumped PIC16F84 - Soul Edge: Fixed background colours in Li Long stage (ID 03563) - Space Gun: Use cswidth for TC0510NIO access - Techno Drive: Added default NVRAM with printer "off" and marked game as MACHINE_NODEVICE_PRINTER (ID 06867) - Time Crisis II: Redumped maincpu program roms for clone Time Crisis II (World, TSS2 Ver. B) - Time Traveler . Removed bogus interrupt generators . Added EEPROM and INS8250 UART - Tora Tora: Fixed dipswitches and DIP locations - Wall Crash: Updated clone (set 2) XTAL value according to PCB pic - Warrior Blade: Use 8-bit handler for TC0510NIO - Fixed year info for piccolop, rchase2, sf2049 (ID 06872), sf2049se, sf2049te and von - Dipswitch fixes in buster.cpp, dwarfd.cpp, galaxold.cpp, gkigt.cpp, namcos1.cpp, popeye.cpp, tetrisp2.cpp and toratora.cpp - Fixed rom names in freekick.cpp, galaxold.cpp, itech32.cpp, leland.cpp, littlerb.cpp, mcr.cpp, model2.cpp, ms32.cpp and tbowl.cpp - Description changes of Avengers In Galactic Storm (US/Europe 1.0), Avengers In Galactic Storm (Japan 1.2), Back to the Future - The Pinball (2.0), Back to the Future - The Pinball (2.1), Back to the Future - The Pinball (2.7), Back to the Future - The Pinball (2.7, Germany), Back to the Future - The Pinball (2.8), Best Bout Boxing (ver 1.3), Dam Dam Boy (on dedicated PCB), Danny Sullivan's Indy Heat (rev 1), Desert War / Wangan Sensou (ver 1.0), Driver's Edge (v1.6), Gratia - Second Earth (ver 1.0, 91022-10 version), Gratia - Second Earth (ver 1.0, 92047-01 version), Hayaoshi Quiz Nettou Namahousou (ver 1.5), Idol Janshi Suchie-Pai II (ver 1.0), Idol Janshi Suchie-Pai II (ver 1.1), Ironman Ivan Stewart's Super Off-Road (rev 4), Ironman Ivan Stewart's Super Off-Road Track-Pak (rev 4, 2 Players), John Elway's Team Quarterback (rev 2), John Elway's Team Quarterback (rev 3), Mahjong Angel Kiss (ver 1.0), Print Club 2 Puffy (J V1.100), Quarterback (rev 2), Quarterback (rev 5), Skull Fang (Japan 1.09), Skull Fang (Asia 1.13), Skull Fang (Europe 1.13), Stadium Hero '96 (Europe, EAJ), Street Fighter II': Champion Edition (Hung Hsi, bootleg, set 1), Tapper (Budweiser, 1/27/84), Tapper (Budweiser, Date Unknown), Target Ball (With Nudity), Tecmo Bowl (World, set 1), Tetris Plus (ver 1.0), Tetris Plus 2 (ver 1.0, MegaSystem 32 Version), The Game Paradise - Master of Shooting! / Game Tengoku - The Game Paradise (ver 1.0), Viper (rev 3), Vs. Janshi Brandnew Stars (Ver 1.1, MegaSystem32 Version) and World Soccer Finals (rev 3) - Renamed (tapper) to (tapperb), (tappera) to (tapper), (tgtball) to (tgtballn) and (tgtballa) to (tgtball) - MAME . DEVICES . API change . Memory maps are now "last entry wins". This allows for the much more natural "import another map and patch it" structure, or "cover a whole region then punch holes in it". Our previous first-entry-wins rule was always a surprise to newcomers, and oldcomers too. . Memory maps are now methods of the owner class. Fixed extra-large device map (emu\addrmap.cpp). Removed multiple handlers with different unitmasks on the same line (aerofgt.cpp, astrcorp.cpp, fromanc2.cpp, gaelco3d.cpp, mcatadv.cpp, neogeo.cpp, pgm.cpp, taito_b.cpp and tatsumi.cpp). Fixed (machine\iteagle_fpga.cpp, namco_c139.cpp, drivers\mcatadv.cpp). . Generalized support for byte-smeared accesses: The new cswidth address map constructor method overrides the masking normally performed on narrow-width accesses. This entailed a lot of reconfiguration to make the shifting and masking of subunits independent operations. There is unlikely to have any significant performance impact on drivers that don't frequently reconfigure their memory handlers (emu\addrmap.cpp and emumem.cpp). Set up heavily mirrored memory ranges with subunit masks (e.g. orunners) much more efficiently (emu\emumem.cpp). . Internal maps must now be constructed last to have priority (emu\addrmap.cpp). Fixed memorymap ordering/regression in aeroboto, alibaba, armedf, buster.cpp, calchase.cpp, cave.cpp, cdi.cpp, csplayh5.cpp, cubo.cpp, diamond, exterm.cpp, fastfred.cpp, formatz, gammagic.cpp, jangou.cpp, jpmimpct.cpp, liberate.cpp, ltcasino.cpp, megaplay.cpp, metalmx.cpp, metlfrzr, mlanding.cpp, mpatrol, namcos11.cpp, namcos21.cpp, nbmj8688.cpp, nmk16.cpp, psikyo4.cpp, raiden2.cpp, renju, skyraid, scobra.cpp, scramble.cpp, seabattl.cpp, srmp5.cpp, ssv.cpp, system16.cpp, taito.cpp, tankbatt, tazmania, toratora, tnzs.cpp, voyager.cpp and williams.cpp. Fixed renju regression (emu\emumem.cpp). . Screwed macros: Replaced MACHINE_CONFIG_DERIVED with MACHINE_CONFIG_START. Removed MCFG_FRAGMENT_ADD. There's no voodoo involved in derived machine configurations and fragments any more. The macros were just obfuscating things at this point. . Made some methods private in devices\bus\*.h now that it's possible. Some private-ization and removed some duplication. . Lots of cleanup and encapsulation (drivers\ace.cpp, albazc.cpp, albazg.cpp, aleisttl.cpp, altair.cpp, appoooh.cpp, arcadecl.cpp, aristmk5.cpp, aristmk6.cpp, atarig1.cpp, atarig42.cpp, atarigt.cpp, atarigx2.cpp, atarisy1.cpp, atarisy2.cpp, badlands.cpp, bagman.cpp, batman.cpp, beathead.cpp, bfcobra.cpp, bfm_ad5.cpp, bfm_sc1.cpp, bfm_sc2.cpp, big10.cpp, blstroid.cpp, bowltry.cpp, boxer.cpp, bsktball.cpp, bzone.cpp, canyon.cpp, carpolo.cpp, caswin.cpp, ccastles.cpp, clayshoo.cpp, cloak.cpp, cloud9.cpp, copsnrob.cpp, cyberbal.cpp, cybstorm.cpp, destroyr.cpp, dooyong.cpp, dragrace.cpp, eprom.cpp, eprom.cpp, equites.cpp, equites.cpp, exidy440.cpp, firefox.cpp, firetrk.cpp, flyball.cpp, foodf.cpp, forte2.cpp, gauntlet.cpp, gridlee.cpp, irobot.cpp, jedi.cpp, klax.cpp, ladybug.cpp, liberatr.cpp, looping.cpp, manohman.cpp, mediagx.cpp, meijinsn.cpp, metalmx.cpp, mgolf.cpp, mpu2.cpp, mpu3.cpp, mpu5.cpp, nitedrvr.cpp, offtwall.cpp, ohmygod.cpp, opwolf.cpp, orbit.cpp, patapata.cpp, pengadvb.cpp, poolshrk.cpp, quantum.cpp, quizshow.cpp, quizshow.cpp, rampart.cpp, redclash.cpp, relief.cpp, rmhaihai.cpp, sbrkout.cpp, sfkick.cpp, shougi.cpp, shuuz.cpp, skullxbo.cpp, skydiver.cpp, skyraid.cpp, sprint4.cpp, sprint8.cpp, starshp1.cpp, stellafr.cpp, superslave.cpp, supertnk.cpp, tamag1.cpp, tank8.cpp, tempest.cpp, thunderj.cpp, tomcat.cpp, toobin.cpp, tourtabl.cpp, triplhnt.cpp, tunhunt.cpp, ultratnk.cpp, unico.cpp, vectrex.cpp, vertigo.cpp, victory.cpp, videopin.cpp, vindictr.cpp, wolfpack.cpp, wrally.cpp, xybots.cpp and machine\atarigen.cpp) . Register device callbacks and added some basic validation for them (emu/devcb.cpp, device.h, emufwd.h and validity.cpp) . PLUGINS . Read whole block (plugins\cheatfind\init.lua) . Make the console behave like the docs, unlike the official LUA console if you are in a block, entering a newline on a blank line gets you out (plugins\console\init.lua). . Flip screen . Set flip screen state without peeking into driver_data (video\decbac06.cpp, deckarn.cpp, decmxc06.cpp and decospr.cpp). . Flip screen API cleanup: Make the global flipping functions of driver_device protected so as not to be accessible from within subdevices. Eliminate the flip_screen_set_no_update kludge. . Added K051649 support to VGM player . Added support for multiple patterns and devices to -listfull verb. (mame\clifront.cpp and commandline\commandline-all.rst) . MAME documentation . Terminology cleanup of docs commandline section (docs\source\commandline\commandline-all.rst) . More docs work: Escapes, debugger update. Missed a couple escape sequences. A little more escaping, acronym fixes, fixed oddity in symlist. Updated debugger internal help to match docs. Lowercasing for CPU in command parameters, fix casing on ASCII (docs\source\debugger\breakpoint.rst, cheats.rst, expressions.rst, general.rst, watchpoint.rst, tools\imgtool.rst and debug\debughlp.cpp) . Multi-Language: Updated Brazilian Portuguese and Turkish translations - Compiling . Fixed issue linking Emscripten build with certain single-driver compiles (e.g. spectrum.cpp). Emscripten 1.37.29 or higher is now required (scripts\genie.lua). . MAME_INCLUDES__H is now the standardized way for a MAME include header, starting with a double underscore is reserved by the C++ standard go figure. . Fixed building using system utf8proc and portaudio. Allow using system-wide ASIO (1.11.0 or higher required), GLM and RapidJson headers. Put all ext_includedir calls together. Fixed build failure when SOURCES is defined (scripts\build\ and target\mame\arcade.lua). . De-staticify initializations for src\mame\video, machine, includes and audio - Debugger . Fixed ASCII dump output for big-endian spaces (debug\debugcmd.cpp) . Fixed F10 step over of instructions with a branch delay slot 0.194 - New games: Cyberstorm (prototype), Last KM (Ver 1.0.0275) and Otakara Itadaki Luffy Kaizoku-Dan! (Japan, v1.02) - New Working games: Knights of Valour 3 (V100, China, Hong Kong, Taiwan), Knights of Valour 3 (V102, China, Hong Kong, Taiwan) and Knights of Valour 3 (V104, China, Hong Kong, Taiwan), Road Burners (ver 1.0) and Road Burners (ver 1.04) - New Non-Working games: Lucky Ball 96 (Ver 3.50 - 627), Missing In Action, Odyssey, Quick Pick 5, Strike Zone (Purple Star), Tiger (slot) and Trocana - New clones: Area 51 / Maximum Force Duo (R3000, 2/02/98), Bioplaything Cop (Ver. 1.0.1823, prototype), Cadash (Spain, version 1), Cookie & Bibi 2 (set 2), Driving Force (Galaxian conversion, Seatongrove UK), Four Trax (Asia), Jolly Card (Italian, bootleg, set 2), Kick Goal (set 2), Knights of Valour 2 New Legend (V300, Oversea), Knights of Valour 2 / Sangoku Senki 2 (ver. 104, 102, 100HK), Knights of Valour 2 New Legend (V301, Oversea), Knights of Valour 2 New Legend (V302, Oversea), Knights of Valour 3 (V101, China, Hong Kong, Taiwan), Lucky Ball 96 (Ver 3.50 - 616), Lucky Ball 96 (Ver 3.50 - 623), Lucky Ball 96 (Ver 3.50 - 626), Maniac Square (unprotected, Version 1.0, Checksum 66B1, 960419/1 PCB), NEW Moero!! Pro Yakyuu Homerun Kyousou, Oriental Legend 2 (V101, Japan), Oriental Legend 2 (V103, Japan), Oriental Legend 2 (V104, Japan), Popeye (bootleg set 2), Popeye (bootleg set 3), Pretty Soldier Sailor Moon (Ver. 95/03/21, Europe), Pretty Soldier Sailor Moon (Ver. 95/03/21, Hong Kong), Pretty Soldier Sailor Moon (Ver. 95/03/21, Japan), Pretty Soldier Sailor Moon (Ver. 95/03/21, Korea), Pretty Soldier Sailor Moon (Ver. 95/03/21, Taiwan), Pretty Soldier Sailor Moon (Ver. 95/03/21, USA), Samurai Shodown V / Samurai Spirits Zero (NGM-2700, set 2), Super 97-2 (Witch Bonus), Super World Court (World, bootleg), Track & Field (Centuri, unencrypted), Turbo Force (World, set 2), World Class Bowling (v1.0) and X-Men: Children of the Atom (Brazil 950331) - New drivers: cybstorm.cpp, luckybal.cpp, nmkmedal.cpp, odyssey.cpp, quickpick5.cpp and strkzn.cpp - New devices: deco_ace, generic_cartslot, ls157_x2, seganetw and ttl165 - New mame.ini options: nvram_save = 1 (CORE MISC OPTIONS). fallback_artwork and override_artwork (CORE ARTWORK OPTIONS). - New artworks . bankp, blueprnt, circus, devzone, fireone, lockon, magspot, magspot2, p47, polepos, polepos2, rygar, shuuz and timber . Updated default.lay for dkong3, fantasy->fantasyu and tws96->twsoc96 - 8085A CPU: Clean up state registration. SOD and SID are 8085-specific. STATUS and INTE are 8080-only outputs. Added IM register for 8085. - ADSP-21xx CPUs: Fixed m_pcbucket log typo - ARM7/9 CPUs . Reverted ROR cases in arm7\arm7thmb.cpp, explicit masking and rotating was unneeded (except for POP {Rlist} which is correct), handle v5 behavior (LSB address bit is ignored in 16bit loads) in arm946es_cpu_device::arm7_cpu_read16 instead, manually handle v4 and v5 difference for LDRSH signed halfword load. NOTE: It looks like all? v5 cores ignore least significant address bit during 16bit loads, so we should add something like virtual uint32_t arm7_cpu_read16(uint32_t addr) override { return base_class::arm7_cpu_read16(addr & ~1)}; into theirs class declaration. . Added front-end for ARM7 DRC (arm7\arm7fe.hxx) - Dynamic Re-Compiling: Fixed an 'optimization' which was actually a random bug inducer (cpu\drcbex86.cpp) - Hyperstone CPUs . Added Dynamic Re-Compiling (cpu\e132xs\e132xs.cpp). Added subs to DRC, fixes Hidden Catch fatalerror when selecting a difference. . Allocated core from DRC cache. Potentially fix DRC crash on Linux and OSX. Fixed some 32-bit DRC issues and address Coverity concerns (cpu\e132xs\e132xsdrc_ops.hxx and e132xsfe.cpp). - I386 CPU: Correct when some opcodes were introduced and permit lock with other prefixes (cpu\i386\i386ops.h) - I8051 / MCS-51 CPU: Added DPTR, P0, P1, P2 and P3 to debug state registration - M6502 CPU: Fixed memory leak in M6502 CPU cores (M4510, M6502, M6504, M6507, M6509, M6510 and M65CE02) (ID 06810) - M6800/6801 CPU: Error logging fixups - MC6809 CPU . SWI2 is not HD6309-exclusive (m6809\6x09dasm.cpp) . Fixed memory leak in M6809 CPU core (ID 06811) . Fixed disassembly of relative instructions - M68000 CPU: Fixed m_cpcc in cpu\m68000\m68kdasm.cpp - MC68HC11 CPU . CPU is big-endian . Fixed dissassembly of instructions with 16-bit operands (immediate or direct) - MCS-48 CPU . Use paged mode for disassembler. UPI41 lacks MB0/MB1 paging and has no external memory space. Use 11-bit offsets now (cpu\mcs48\mcs48dsm.cpp). . Program counter wraps at 11 bits . More specific emulation of Intel 8021: Separated disassembler for i802x (including unemulated 8022 instructions). Provided separate (though mostly just more limited) 8021 opcode table. Writes to 8021 P0 no longer go through memory space. - PSXCPU (CXD8530AQ, CXD8530BQ, CXD8530CQ, CXD8661R and CXD8606BQ): Improved PSX state saving - S2650 CPU: Use paged mode for disassembler - Z80 CPU: Fixed disassembly when $ed, $dd & $fd prefixes are used but the instruction is not valid (z80\z80dasm.cpp) - DCS sound: Some minor changes mainly for DSIO and DENVER systems (audio\dcs.cpp) - Time Pilot Audio: Moved soundlatch down into device (audio\timeplt.cpp), since it's actually part of the board (drivers\pooyan.cpp, rallyx.cpp, rocnrope.cpp, timeplt.cpp and tutankhm.cpp). - Yamaha YMW-258-F sound . Avoid unnecessary initialization and fixes division by zero (sound\multipcm.cpp) . Moved bank schemes to DEVICE_ADDRESS_MAP and allow 512 Samples (0x1800 Header size, 12byte Header per sample). Fixed MultiPCM banking in segas32.cpp (chip doesn't have panning-related bankswitching). - YMZ770 sound: Updated documentation and tidied up - CD-ROM: Recognized ISO images with 2336 byte sectors - CGA video: Fixed 400 line text mode for (MESS) Olivetti M24 - Data East Custom . Removed space, offset and mem mask from decocomn_device::priority_r. Get rid of nonbuffered_palette_w (video\decocomn.cpp; drivers\boogwing.cpp, cninja.cpp, dassault.cpp and rohga.cpp). . Splitted ACE Chip emulation from video\deco32.cpp into video\deco_ace.cpp . Split pf1/pf2 RAM allowing sizes to differ (video\deco16ic.c) - Floppy: Got rid of bogus default drive in lookup functions, avoid some potential nullptr dereferences and made floppy_get_drive() internal for imagedev\flopdrv.cpp. - IDE: Actually implement read multiple command for machine\idehd.cpp. Fixes crash on 'NBA Showtime: NBA on NBC' where the vegas driver assumes that the buffer is 16 deep. - Konami Custom . K001604: Implemented front layer rotate and zoom (drivers\cobra.cpp, gticlub.cpp, nwk-tr.cpp and zr107.cpp) . K054539: Moved sample RAM to address map (drivers\djmain, konamigq and qdrmfgp) - SCN2674 Video Controller . Splitted up logging. Hook up SCN2674 to (MESS) Micro-Term 420. . Avert screen_device::update_partial assert failure during debugging in debug build - SVGA video . S3 hardware pointer colour select is now reset on reading CR45, as per documentation. . ATI MACH8/MACH32: Limit sourcex/y to 11 bits, fixes MACH32 detection in bundled Win9x drivers. Mapped MACH32 hardware pointer registers. Added 8514/A compatible DAC registers, fixes I/O port conflict in DOS MACH32 utilities and 8ppp colours under Win9x. Get MACH32 hardware cursor to display. . Added Scan To X command to MACH8, used by Win9x drivers to write cursor data. . Corrected MACH32 display of 16bpp video mode in Windows 9x (hardware pointer still needs work) - TMS9927 video . Added BL line read for future use . Correct sync timings and added untested HSYN callback . Added 80-column/132-column display clock switch for (MESS) Visual 100 . Disabled side effects for reads - TTL . Converted 74157 TTL to bitswap<4> . Added two-in-one version of LS157 and hook it up to Alien Arena, Joust, Plotting and Splat!. . Use 74157 device in williams.cpp to do input multiplexing. Added port names. . Added SN54/74165 8-Bit Parallel-In/Serial-Out Shift Register for Otakara Itadaki Luffy Kaizoku-Dan! . Improved 74153 interface (carpolo.cpp) - V9938 video: V9938 should abort a command when the mode is switched before completion - VGA video: Avoid crash in (MESS) Windows 95 'A-10 Cuba!' - Xicor X2212 256x4 NOVRAM: Eliminated alloca() - aristmk5.cpp: Green Lizard (AHG1623, US) and King Galah (AHG1625, US) were actually Cash Express versions (and Honky Tonk wasn't, oddly enough). Updated the descriptions to suit. Fixed bugs in layout\qnilecea.lay and added new layouts. - asteroid.cpp: Added coin counters and clarify LEDs - atlantis.cpp: Fake waitstates for RTC reading and adjust DCS polling offset. RTC changes fixes RTC clock stopped warning in Atlantis driver. - blockout.cpp . Fixed Agress offsetted text layer, worked around initial VRAM check. . Converted to SCREEN_RAW_PARAMS and fixed visible area for Agress and Block Out. . Fixed input labels and hookups, following manual and in-game descriptions. . Cleaned up video function . Separated Agress rom patch from blockout_state - chihiro.cpp . Temporary fix machine\xbox_pci.cpp to show Xbox recovery screen. Make USB work again. . Added skeleton Sega network device so that the rom can be moved from to - cninja.cpp: Added MCFG_SCREEN_RAWS. Cleaned up I/O and protection handling. - deco156.cpp: Get rid of unused functions - esd16.cpp: Added factory defaults (EEPROM) for Deluxe 5, Multi Champ Deluxe and Multi Champ Deluxe (ver. 1114, 14/11/1999) so they don't run with bogus values - gaelco.cpp: Fixed sample end position in sound\gaelco.cpp, fixes clicking sounds in various games. Verified this with the sample data in ROM, looks correct, we were playing an extra byte from a different sample each time. - gaelco2.cpp: Updated documentation based on photos of PCBs - goldstar.cpp: Expanded maincpu region from 32KiB to 64KiB for lucky8 and derivatives and mapped ROM in 0xC000-0xF7FF range (needed for some sets). - hng64.cpp: Enabled preliminary ROZ floor for Fatal Fury: Wild Ambition and Buriki One - homerun.cpp: Added SCREEN RAW PARAMS - kickgoal.cpp . Cleaned up driver so that it uses OKI6295 mem map etc. . Added pic16c57 audiocpu rom, 93c46 EEPROM and a redumped TMS27C040 OKI rom to Kick Goal (set 1). - m72.cpp: Clean up address maps - mexico86.cpp: Fixed some fallout - model1/2.cpp: Added configured banking to audio\segam1audio.cpp - ms32.cpp . Improved and cleaned up tile-tile priorities. Fixes title screen in 'Idol Janshi Suchie-Pai II', 'Gratia - Second Earth' intermissions and 'Hayaoshi Quiz Nettou Namahousou' flame screen during attract. . Fixed MAME exit with exception "unhandled priority type f8" in Gratia ending screen (ID 03790) - multfish.cpp and multfish_boot.cpp: Added pre-initialized factory defaults to all sets so they boot by default - namcond1.cpp . Added mosaic effect for NCV1 'Galaga Arrangement' ending/staffroll (video\ygv608.cpp) . Guessed that R#13 is used for transparent color, fixes 'COLOR TEST' in ND-1 self test. . Fixed a small graphics glitch in 'RALLY-X Arrangement' (video\ygv608.cpp) - namcos2.cpp and namcos21.cpp: Namco C148 (CPU Bus Manager) use required_device and optional_device (machine\namco_c148.cpp). This fixed debug assert in winrun, winrun91 and winrungp when starting emulation (ID 06548). - nss.cpp, sfcbox.cpp and snesb.cpp . TnDIV divides by 256 when setting written is 0 in SNES sound. Merged timer counters into one single function (audio\snes_snd.cpp) . All SNES APU docs claims that SPC700 audio CPU runs at 2.048 MHz and there's no mention about an internal divider (which should belong to the CPU core while fixing the opcode cycles anyway). - nwk-tr.cpp: System has 2 graphics boards. Implemented front layer rotate and zoom (video\k001604.cpp). This fixed crash shortly after OK in clones Racing Jam: Chapter 2 (EAE) and (JAE) with debug build (ID 05632). - pgm2.cpp . Do rowscroll for all rows so 240 cases work . Dumped internal firmware/module keys for Knights of Valour 3 (V104, China, Hong Kong, Taiwan) and clone (V102, China, Hong Kong, Taiwan). Added default SRAM, speedups and fixed visible area. Note: FPGA comms emulation required, currently hacked out. . Emulated kov3 ROM module communication and removed hack. Added few more kov3 security notes. . Fixed foreground tilemap size, fixes kov3 boss death sequences. . Added 'sprite disable' bit, prevents stray horemen heads in kov3 attract and changes what you see in the shop. . Handle MSB of zooming, used by kov3. . Removed BAD_DUMP flags from orleg2 sprites_colour roms, they are not suspects anymore. . Ensure savestates work from commandline (eg launching with -state 0) tag driver as supporting states . Improved simulation using real data and make fake keys for kov3 100 and 104. - playch10.cpp: Exposed countdown LEDs through output system and render with artwork (ID 02076). Note: Add "-bios single" or "-bios singleb" on command-line to access it and set in MAME "Video Options" to "Single Screen". - popeye.cpp . Fixed background in Popeye (Japan), Popeye (Japan, Older) and Popeye (bootleg set 1). Popeye (Japan) does not run on the exact same hardware as Sky Skipper & was the basis for the popeyebl set. Fixed horizontal and vertical scroll register behaviour in Popeye. Changed function names from the game name to the hardware id the functionality was first used in. . Fixed Popeye background scrolling when screen is flipped . Implemented tile palette banking on TNX1 hardware, the side bars in Sky Skipper are now darker on night time levels. This is a guess based on the prom contents, due to lack of unmodified TNX1 boards. . Implemented sprite priority & clipping according to description in MT03725. Note: On the real Popeye hardware, sprite colour 0 is not transparent with respect to overlapping sprites. It's only transparent with respect to the background graphics. When two sprites overlap in Popeye, the sprite with the highest priority completely overdraws the sprite underlying it, including the transparent area (pixel with colour value 0). The result is that instead of proper sprite prioritzing, overlapping sprites are overdrawn like chunky blocks. . Moved protection save state into driver_start() leaving driver init for decryption, combine sprite proms & invert bootleg proms in the rom load, bank the sprite palette & only update the palette if the bank register changes, draw background directly into bitmap & include the area above the background buffer (although it's not clear exactly where the values are fetched from on real hardware). - psikyo4.cpp: Cleanup YMF278B banking - r2dx_v33.cpp: Moved globals into state - rohga.cpp . Improved Nitro Ball priority/alpha mixing. Demoted Nitro Ball/Gun Ball with MACHINE_IMPERFECT_GRAPHICS, because it has priority/blending issue. . Updated priority mode 0x20 - segas32.cpp: Fixed MultiPCM banking (chip doesn't have panning-related bankswitching). Added configured banking and notes. - segaxbd.cpp and taitotx.cpp: Don't use driver_device - seta.cpp . Replaced ROM patches with protection simulation for Meta Fox . Added IRQ acks and PIT8254 for latter to madshark and magspeed . Use PIT8254 device in kamenrid and msgundam . Acknowledge interrupt for tndrcade, thunderl, wiggie and wits - stv.cpp . Fixed color calculations for non-mode 5 sprites (i.e. (MESS) Sega Saturn 'Virtual Hydlide' avatar shadow) (video\stvvdp1.cpp) . Fixed mode 2 transparent pen sprites for (MESS) Sega Saturn 'Scud - The Disposable Assassin' (video\stvvdp1.cpp) . Fixed some boundary checks for filters access (machine\stvcd.cpp) - system16.cpp: Removed sprite device in Beauty Block and IQ Pipe - thief.cpp: Interrupt modernization and use MCFG_SCREEN_RAW_PARAMS - twinkle.cpp: Moved a couple of functions into driver class - vamphalf.cpp . Improved Mr. Dig speedup, it appears to be faster and works for DRC & interpreter. . Improved Mr. Kicker speedup and standardised the rest (except Age Of Heroes) . Removed "space" calls and use e132xs state enum instead of magic numbers - vegas.cpp . Use only assert/clear interrupts on a change in VRC5074 System Controller. Prevents clearing of MIPS3 timer interrupt inadvertantly (machine\vrc5074.cpp). . Promoted Road Burners and clone to WORKING . Calculate screen size and timing using Voodoo CRTC and PLL registers. Use CRTC registers for vblank start (video\voodoo.cpp). . Actually implement read multiple command for machine\idehd.cpp. Fixes crash on 'NBA Showtime: NBA on NBC' where the vegas driver assumes that the buffer is 16 deep. . Only clear edge triggered interrupts and initialize timer from counter register (machine\vrc5074.cpp) . Fake waitstates for RTC reading and adjust DCS polling offset. RTC changes fixes RTC clock stopped warning in Vegas driver. - viper.cpp: Moved remaining globals into viper_state - wms.cpp: Added year to WMS sets and copyright/year to mame.lst - AGEMAME . Added 74HC259 device (addressable latch) to maygay1b.cpp . Added some rudimentary handlers and guessed devices to Lucky Dip (Maygay) - Backfire!: Palette cleanup - Black Touch '96: Fixed pickup colours and hook up OKI6295 sound - Block Hole: Restored Button 2 and 3 and Joystick Down inputs - Boogie Wings: Updated alpha blend/palette effect improvements. Hooked up DECO 99 "ACE" chip. Updated alpha blending notes. Demoted game with MACHINE_IMPERFECT_GRAPHICS. - Cabaret and Time Traveler: Added 8255 PPIs - California Chase: Added some keyboard inputs - City Connection . Fixed MC6809E sound CPU speed . Hooked up AY-3-8910A read, which fixes cop car spin sound. - Crush Roller . Replaced ROM patches with protection simulation for Make Trax. Restored maketrax save state support. Fixed maketrax regression (teleport holes DIP not working). . Fixed regression in clones mbrush and crushbl2 . Simulated protection for korosuke and cleanup - Darius Gaiden - Silver Hawk: Removed outdated kludge - Diamond Run: Fixed missing level start music (ID 06825) - Dragon Master: Fixed palette (12-bit RGB 4-bit intensity; fixes fading) - Draw Poker III / Dwarfs Den (Dwarf Gfx): Removed unnecessary gfx expand code, the interpolation is impossible to properly display in the gfx display anyway. Show tiles as 8x8. - F-1 Grand Prix: Fixed getting stuck on "ID CHECK" - Ginga NinkyouDen and Xain'd Sleena: Identified 6809 type - Grudge Match: Default 'Free Play' dipswitch to 'Off' for the recently added Grudge Match parent set (Free Play doesn't work properly on it anyway). Leave it to 'On' for the previous set because Coin mode doesn't work properly there. - Hana Jingi: Fixed hjingi_bank_w regression. Managed to removed it entirely in the course of separating the bank switches. This fixed emulation hang (ID 06799). - Intrepid: Fixed 'Lives' dipswitch for Intrepid bootleg sets - Jolly Card: Added full specs for clone Jolly Card (Italian, different colors, set 1) - The King of Fighters 2002: Added gross hack to fix clone 'The King of Fighters 10th Anniversary (The King of Fighters 2002 bootleg)' state save, save_pointer() must be called after the pointer is set & does not cope with it changing. - Max RPM: Converted ADC0844 write to bitswap<4> - Mosaic: Added PCB layout and changed CPU/Sound clocks to be derived from actual OSCs on PCB - Nurete Mitaino: Redumped sound rom - Olympic Hot Stuff: Added MC146818 RTC to make one more test pass and serial interface - Passing Shot: Fixed address map for Passing Shot (4 Players) (bootleg) - PinMAME: Replaced M6809 CPU in wpc_s.cpp with MC6809E - Polygonet Commanders: Added K054321 sound control - The Punisher: Fixed m_sprite_base for clones The Punisher (bootleg with PIC16c57, set 1/2/3) - Route 16: Replaced ROM patches with protection simulation for Route 16. Restored save state support for protected sets. - Shooting Star: Added 68681 DUARTs and YM2149 sound - Shuriken Boy: Allowed game to display and fully pass POST and hooked up I/O ports - Splash!: Draw sprites in reverse order. This fixed wrong sprite priority on bonus items in Splash! and clones (ID 06791) - Strike Force: Fixed black screen after rom check (machine\midyunit.cpp) (ID 06804) - Thunder Zone: Added MCFG_SCREEN_RAWS. Demoted game with MACHINE_IMPERFECT_GRAPHICS, because blending effects aren't fully emulated. Added notes. - Top Gunner: Added XTAL and motor MCU. Removed no longer used functions. - Turbo Sub: Switch to non-legacy 6809E CPU - Warriors of Fate: Verified clone Warriors of Fate (World 921002) program ROMs dump - Fixed year info for Behind Enemy Lines and Virtua Fighter 2 - Dipswitch fixes in balsente.cpp, blockout.cpp, konmedal.cpp, tigeroad.cpp and toaplan2.cpp - Fixed rom names in gaelco2.cpp, jaguar.cpp, kickgoal.cpp and mosaic.cpp - Description changes of Aero Fighters (bootleg, set 1), Aero Fighters (bootleg, set 2), Area 51 (Time Warner license, Nov 27, 1995), Area 51 / Maximum Force Duo (R3000, 2/10/98), Chicken (01J01886, Venezuela), DoDonPachi Dai-Ou-Jou Tamashii (V201, China), Cookie & Bibi 2 (set 1), Dongfang Zhi Zhu (Hong Kong, V011H), Enchanted Forest - Cash Express (AHG1615, US), Fortress 2 Blue Arcade (World) (ver 1.01 / pcb ver 3.05), Fortress 2 Blue Arcade (Korea) (ver 1.00 / pcb ver 3.05), Four Trax (World), Green Lizard - Cash Express (AHG1623, US), Hong Hu Zhanji II (China, set 1), Hong Hu Zhanji II (China, set 2), Honky Tonk (BHG1455, US), Hudie Meng 97, Jolly Card (Italian, bootleg, set 1), Kick Goal (set 1), King Galah - Cash Express (AHG1625, US), Knights of Valour 3 (V100, China, Hong Kong, Taiwan), Knights of Valour 3 (V102, China, Hong Kong, Taiwan), Knights of Valour 3 (V104, China, Hong Kong, Taiwan), Mahjong Long Hu Zhengba 2 (set 1), Mahjong Long Hu Zhengba 2 (VS221M), Mahjong Man Guan Caishen (V103CS), Mahjong Man Guan Daheng (Taiwan, V123T1), Mahjong Man Guan Daheng (Taiwan, V125T1), Neraidoula, Popeye (bootleg set 1), Popeye (Japan), Popeye (Japan, Older), Queen of the Nile - Cash Express (AHG1608, US), Samurai Shodown V / Samurai Spirits Zero (NGM-2700, set 1), Shizhan Ding Huang Maque (Version 4.1), Shizhan Majiang Wang (Version 8.8), Shuzi Leyuan (V113FR), Shuzi Leyuan (V127M), Sorcer Striker, Sorcer Striker (Korea), Thunder Hoop (Ver. 1, Checksum 02A09F7D), Turbo Force (World, set 1), Wanli Changcheng (China, V638C), Xingyun Man Guan (China, V651C), Zhongguo Long (China, V010C), Zhongguo Long (Japan, V020J), Zhongguo Long (Japan, V021J) - Renamed (47pie2) to (suchie2), (47pie2o) to (suchie2o), (chickna5b) to (chickna5v), (chickna5qld) to (chickna5ql), (ddpdojh) to (ddpdojt), (eforsta5ub) to (eforsta5cea), (glizardu) to (glizrdce), (kgalahu) to (kgalahce), (kov2nl) to (kov2nl_302cn), (kov2nl_300) to (kov2nl_300cn), (kov2nl_301) to (kov2nl_301cn), (pengpayuc) to (pengpayce), (qnileub) to (qnileceb), (sailormno) to (sailormnn), (sailormnoh) to (sailormnnh), (sailormnoj) to (sailormnnj), (sailormnok) to (sailormnnk), (sailormnot) to (sailormnnt), (sailormnou) to (sailormnnu), (sstrikera) to (sstrikerk), (suchipi) to (suchiesp), (weststory) to (weststry) and (weststorya) to (weststrya) - MAME . VIDEO RENDERING SYSTEM . BGFX . Use bgfx::ViewMode::Sequential fixes handheld overlays (render\drawbgfx.cpp). This fixed bitmap overlays don't display with BGFX video output (ID 06806). . Abstracted some view-related functions into bgfx_view class . Fixed two issues with the GLSL Bilinear Shader: 1. Off-by-one pixel coordinates. 2. Sampling of wrong pixels at some non-integer stretch factors. Note: First was noticed while comparing screenshots of the software and OpenGL w/GLSL renderers (OpenGL output was shifted up and to the right). Fixed by subtracting a 1/2 pixel from the texture coordinates when calculating the bottom left pixel to use for interpolation. Second was apparent when running Pac-Man fullscreen on a 1920x1080 screen and allowing non-integer stretching. Manifested as irregular horizontal 'steps' in the output. Fixed by sampling from the center of all pixels which should avoid any funny business in regards to pixel coordinate rounding. . Added GLSL Bicubic Shader to OpenGL backend. This shader uses the equation described by R. Keys in the paper 'Cubic Convolution Interpolation for Digital Image Processing' which is, in this case, the same as a Catmull-Rom spline. This produces a sharper upscaled image than bilinear filtering. The new shader is selected by setting gl_glsl_filter to 2. Consequently, gl_glsl_filter is now treated as an int rather than a boolean. Also fixed a variable name problem in the code guarded by GLSL_SOURCE_ON_DISK. . Fixed update_gamma_ramp (render\drawd3d.cpp). This fixed full screen Brightness/Contrast/Gamma settings not working anymore (ID 06623). . Privatized m_screen and other variables of device_video_interface . Fixed Blit function (binding reference to nullptr; emu\screen.cpp) . Added artwork override and fallback options. Removed debug testing code. Allow loading of built-in layouts even if override_artwork is specified. Allow loading of fallback_artwork if only default view have been found. Fixed order of built-in layouts with regards to fallback_artwork as agreed upon the forums. Changed |= true to = true, and changed override artwork so it only checks for default.lay if the .lay is not found (emu\render.cpp and emuopts.cpp). . DEVICES . Removed space.device().safe_pc() from devices . Eliminated some machine().firstcpu usage. Eliminated unnecessary downcast in debug\debugcpu.cpp. . Moved machine\meters.cpp/h and ticket.cpp/h to devices\machine\ . Differentiate between cartridge (cart) and romimage (rom) in generic\slot.cpp . API Change: Machine configs are now a method of the owner class, and the prototype is simplified. NOTE: Beware, the device context does not follow in MCFG_FRAGMENT_ADD anymore due to the prototype change. So creating a device then configuring through a fragment doesn't work as-is. The simplest solution is just to add a MCFG_DEVICE_MODIFY at the start of the fragment with the correct tag. Fixed timeplt_audio and Chance Kun regression. Regression fixes/cleanups to pooyan.cpp, rocnrope.cpp and tutankhm.cpp. Removed machine_config_constructor (emu\emu.h, gamedrv.h, mconfig.cpp and validity.cpp). . UI . Added option to disable saving NVRAM on exit (emu\emuopts.cpp and machine.cpp) . Fixed AddressSanitizer: alloc-dealloc-mismatch when closing dipswitch menu (ui\menu.cpp) (ID 06816) . Disambiguate memory handlers . Replaced list of crystal/resonator/oscillator frequencies with a solution that doesn't require recompiling everything on changes . Fixed nodump disk validation regression (emu\softlist.cpp). Simplified nodump CHD check. . Added verbose logging for configuration files (emu\config.cpp). Note: We already have verbose logging for INI files that get parsed, so having CFGs get similar treatment is useful. . Converted zippath directory to a C++ interface (ui\filesel.cpp, imgcntrl.cpp, util\zippath.cpp and debugger\debugimgui.cpp) . PLUGINS . New WIP plugin for loading translations or alt names for input port fields. Use a subdir and emu.file so they can be packaged in ZIPs. Added #import and #set tags. Note: Use plugin options to save the input port list to a gettext formatted file. The file is saved in the ctrlrpath dir. Use #import to load names from a different file. Use #set ,,... to override names for a child set, common names should be listed at the top before any #set tag. Sort the list and print the port names and masks (plugins\portname\init.lua and plugin.json). . Fixed table lookup in plugins\data\database.lua (ID 06821) . Added reporting of database errors (plugins\data\database.lua and data_marp.lua) . Don't pollute the namespace and use emu.print_error (plugins\data\data_marp.luam database.lua and load_dat.lua) . Updated hiscore.dat (plugins\hiscore\hiscore.dat) . Fixed plugins\cheatfind . Use C locale for int/float in XML files (util\xmlfile.cpp) . Clean up and improved comments for some Chinese names. Hong Kong titles should probably be Cantonese. . Basic anchor links for FAQ page (docs\source\usingmame\commonissues.rst) . Updated documentation for castool and added floptool (tools\castool.rst and floptool.rst) . Overhaul commandline section of docs, includes index with linkable anchors (docs\source\commandline\commandline-all.rst): The first set of commandline overhauls. Correct case on headings, further improvements to index and spelling fix. More updates to the index and cleanup to the commandline stuff. More core options in the index. Finished multiplatform commandline index. Completion of first revision commandline index. . Added HuC6280 stereo, K054539, NMK112, dual OKIM6295 and Qsound support to VGM player. Cleanup of duplicated code using templates and device finder arrays (drivers\vgmplay.cpp). . Multi-Language . Regenerated localisations . Updated Dutch, German and Greek translation - MAC OS X: Detect attached debugger on OSX before generating trace/breakpoint trap - Compiling . Added workround for Clang static builds and enable them again, don't force -O1 on Clang builds (scripts\genie.lua). . Added -lSDL2main to fix linking with GCC 7 (osd\sdl.lua). Use dynamic linking for Windows SDL builds to workround an error during linking about liblualibs.a being corrupt, which is dependant on the order of the .o files contained within it (scripts\genie.lua). . Removed qtmain on windows, it conflicts with SDL2_Main (osd\modules.lua). Fixed building for windows with qt debugger (osd\windows\window.cpp). . Fixed tiny build (scripts\target\mame\tiny.lua) . Fixed MSVC 2015 build (drivers\eprom.cpp) . Added asserts for index out of bounds with e.g. mushi2k4 (ID 06817) and ddboy to sound\aica.cpp and video\k054156_k054157_k056832.cpp . Restored SANITIZE make option. Restored basic support for SANITIZE make option. Disabled some unwanted UBSAN checks / enabled nullability checks / enabled ASAN use-after-scope checks. . std::function is too inefficient, std::function and delegate both require runtime relocations and slowing down startup. Just use function pointers. Get rid of a circular dependency between gamedrv.h and mconfig.h (emu\devdelegate.h, driver.cpp, emu.h, gamedrv.h and mconfig.h). . Eliminated core_strdup (mame\pluginopts.cpp, util\corestr.cpp and lib\osdobj_common.cpp). This fixed memory leak in options (ID 06813). Work around glibstdc++ allocator not dealing with T & being the same thing as T const & because T is already const-qualified. Note that this makes the code less safe because modifying elements of the list can cause the addresses of the data to change (mame\pluginopts.h). . Removed unused macro in osd\windows\winmain.h . Temp workaround for GCC 7.3 (3rdparty\glm\glm\simd\platform.h) - Debugger . Fixed masking of signed integer types in debug state (emu\distate.h) . Added MAME Debugger help documentation . Removed address-to-byte calls in emu\debug\debugcpu.cpp and mame\luaengine.cpp. This fixed cheats not working in Battletoads and other games (ID 06857).


0.197: Updated to MAME 0.197 ( Added Source/Listinfo changes. Newest Bugs (25th Apr). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.196: Updated to MAME 0.196 ( Added Source/Listinfo changes. Newest Bugs (27th Mar). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.195: Updated to MAME 0.195 ( Added Source/Listinfo changes. Newest Bugs (27th Feb). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos. Updated Artwork.ini.
0.194: Updated to MAME 0.194 ( Added Source/Listinfo changes. Newest Bugs (31st Jan). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.


MAMEINFO.DAT 0.197  (2.82 MB)

MAMEINFO.DAT 0.196  (2.81 MB)

MAMEINFO.DAT 0.195  (2.79 MB)

MAMEINFO.DAT 0.194  (2.78 MB)

   MASH's Driver WIP

   News Submission Board
   MAME Testers
   MAME Download
   MAME Frequently Asked Questions