Mameinfo.dat v0.186
Updated - 25th June 2017

Homepage -
E-Mail -



What's New

*NEW* Mameinfo + MAMEUI-inifiles-0187GIT (24th Jun) (3.25 Mb)

Mameinfo 0.186 (2.67Mb)

MAMEUI 0.186 Category-, Version and Alltime inifiles (673 kB)

MAME NEWS from 0.37b1 - 0.186 (3.91 MB)

PCB-infos 0.153 (2.11 MB)

MAME listinfos from 0.25 to 0.170 (153 MB)

New in MAME:    
0.187GIT - New games: Jump Kun (prototype), Sel-Jan [BET], Victory (Comsoft) and Waku Waku Ultraman Racing - New Working games: Treasure Island (DECO Cassette) (Region D) - New Non-Working games: Bel Slots Export (5.01), Big Deal Belgien (5.04), Ez2dancer 2nd Move, Jack Potten's Poker (set 10, ICP-1 PCB), Percussion Freaks 5th Mix (G*B05 VER. KAA), Pingu's Ice Block, Quingo Export (5.00) and Ron II Mah-Jongg - New clones: Animal Basket (19 Jan 2005), The Bounty (set 2), Burnin' Rubber (DECO Cassette) (Japan), Danger Track (Rally X bootleg), E-Swat - Cyber Police (bootleg, set 2), Forty-Love (Japan), Gingateikoku No Gyakushu (bootleg set 3), Graplop (DECO Cassette) (Japan), Guerrilla War (Version 1, set 2), Lock'n'Chase (DECO Cassette) (Japan), Mach-9 (bootleg of Vulgus), Macross II (Korea), Marchen Maze (Japan, hack?), Money Money (set 2), Motor Raid - Twin/DX, New Century (Spanish bootleg of Scramble), Offensive (Spanish bootleg of Scramble), Operation Thunderbolt (Japan, SC), OutRun 2 Special Tours (Japan) (GDX-0011), Palamedes (US), Pengo (set 5), Power Instinct (USA, prototype), Pro Tennis (DECO Cassette) (Japan), Spectar (revision 2, bootleg), Tehkan World Cup (set 4, earlier?), Time Killers (v1.32I) and Victory (Comsoft) (bootleg) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Ankoku Densetsu, Batman, Burning Angels, Cadash, Gradius, Toilet Kids and World Jockey - New PinMAME games: Black Knight 2000 (PF-1) and Spirit of 76 - New PEPlus games: Player's Edge (PK1002-PC082) Jake's Jacks Bonus Poker - New drivers: ez2d.cpp, ron.cpp and spirit76.cpp - New devices: 74hc157, taitosjsecmcu, tc0040ioc, tc8521 and te7750 - ADSP2100 CPU: Make HALT_LINE halt the cpu and added function for get base address of circular buffer - M68705 CPU . Use actual M68705 dump in Field Day/Undoukai, Onna Sanshirou and Rumba Lumber, replaces inaccurate simulation. . Replaced MCU simulation with new M68705 dump in Chack'n Pop, Get Star (Japan), Guardian (US), Nekketsu Kouha Kunio-kun (Japan) and Prebillian . Replaced hand crafted MCUs with dumped 68705 dumps for clones Arkanoid (US, newer), Arkanoid (Japan, newer) and Tournament Arkanoid (US) . Added an unused (not programmed) 68705P5 MCU dump to Tetris (D.R. Korea) . Use new 68705 image that includes the bootstrap code in The FairyLand Story . Replaced MC68705P3 CPU3 with MC68705P5 in Taito SJ - S2650 CPU . I/O modernization. Replaced fake S2650_SENSE_PORT address with line read callback (set_input_line should also work). There are still some doubts regarding whether VBLANK should be inverted in various drivers. . Replaced fake S2650_CTRL_PORT and S2650_DATA_PORT addresses with... well, these aren't dedicated parallel ports, so they actually haven't gone away. They have, however, been moved to a new 1-bit address space, since the ports share the main data bus and are distinguished from each other by an address line. . Allow program counter to be properly tracked by debugger. A few small status register-related refinements. - TLCS-90 CPU . Replaced fake TLCS-90 I/O space with callbacks (cpu\tlcs90\tlcs90.cpp, drivers\dynax.cpp, royalmah.cpp and machine\nmk004.cpp) . Forwarding and some other stuff (cpu\tlcs90\tlcs90.h) - AY-3-8910 sound . Added pinout and removed outdated comments from .h . Updated/fixed documentation and comments and added additional pinouts and links to decaps and documentation. Document device names. . Fixed device_clock_changed to respect the YM2149_PIN26_LOW flag. Fixes sound pitch is too high in Arkanoid, clones and Tournament Arkanoid. . Replaced AY-3-8910A sound with YM2149 in arkanoid.cpp, bigevglf.cpp, calorie.cpp, cchance.cpp, flstory.cpp, fromance.cpp, ginganin.cpp, goldstar.cpp, hotblock.cpp, lsasquad.cpp, ojankohs.cpp, shangha3.cpp and tehkanwc.cppt . Replaced AY-3-8910A sound with AY-3-8912A in funkybee.cpp, spartanxtec.cpp and spyhuntertec.cpp - AY-3-8913 sound: Added diagram - CD Audio: Improved CD audio play track/index command handling (machine\mb89352.cpp and t10mmc.cpp). kokoroj2 needs mods in the MB89352 core that won't break (MESS) Sharp X68000 as well. kokoroj2 requires the printer interface, a command to stop current track is sent with CD & printer disabled in dipswitches. - DMA-driven DAC sound: Check if list item exists before calling member function (sound\dmadac.cpp) - MSM5205 sound: New callback implements accurate VCK timing. The old "VCLK" method with no duty cycle is now deprecated. - OKI6295 sound: Simplify logerror messages - SAA1099 sound: Created standard write handler; substitute for bogus YM2413 in Magic Card. Zero writes are not errors (logerror()). - Sound Interface: . Allow device to be configured for acknowledgement to occur separately from data reads (machine\gen_latch.cpp); use this for Armed Police Batrider. . Use MCFG_GENERIC_LATCH_SEPARATE_ACKNOWLEDGE for clones Gran Premio F1 (Italian bootleg of Pole Position II) and Gran Premio F1 (Spanish bootleg of Pole Position II) and for all aerofgt.cpp games except bootlegs which need more research. . Use callback for soundlatch interrupt in actfancr.cpp . Soundlatch modernization in aerofgt.cpp, blockout.cpp, crshrace.cpp, f1gp.cpp, gstriker.cpp, inufuku.cpp, pipedrm.cpp, psikyo.cpp, renegade.cpp, spdodgeb.cpp, suprslam.cpp, tail2nos.cpp, taotaido.cpp, wc90.cpp and welltris.cpp - Taito Ensoniq ES5505-based sound: Use MB8421 for communication RAM (audio\taito_en.cpp; drivers\galastrm.cpp, groundfx.cpp, gunbustr.cpp, superchs.cpp, taito_f3.cpp, taitojc.cpp and undrfire.cpp) - Williams sound: Handler cleanup (audio\williams.cpp) in mcr68.cpp, midtunit.cpp, midvunit.cpp and williams.cpp - 8255 PPI . Added tristate outputs . Use 8255 PPI devices (most of which are only used for input) and use the new 8255 tristate callbacks to removed some workarounds in subsino.cpp. . Use 8255 PPI devices for I/O in mjkjidai.cpp and piggypas.cpp . Replaced soundlatch with 8255 PPI device that runs in mode 2 in suprloco.cpp - Discrete Netlist: Added Zaccaria driver to mamenl build (sound\dmadac.cpp) - Kaneko Custom: Eliminate driver_data dependency (video\kan_pand.cpp, drivers\airbustr.cpp and snowbros.cpp) - MB3773 Power Supply: Added MB3773 device to aerofgt.cpp, gstriker.cpp and taotaido.cpp - PCI-IDE controller: Added writing to subsystem id register (machine\pci-ide.cpp). Fixes power-on PCI Data Test in NBA Showtime Gold. - RP5C01 RTC: Added TC8521 device type as alias for RP5C01. Added TC8521 RTC to yesnoj (though the game remains stuck in the 20th century). - Taito Custom . Replaced TC0220IOC with TC0510NIO (newer I/O version) in Space Gun . Added port 3 write callback for TC0220IOC and TC0510NIO in othunder.cpp and taito_z.cpp . Use callbacks to set coin counters and coin lockouts from Taito I/O devices. This is a largish and not particularly elegant change, but those outputs aren't exactly internal. . Make TC0040IOC its own device type and separate its functionality from TC0220IOC (ninjaw.cpp, taito_b.cpp, taito_h.cpp, taito_l.cpp, taito_z.cpp and topspeed.cpp) . Use TC0510NIO device for inputs in 2mindril.cpp, galastrm.cpp, groundfx.cpp, gunbustr.cpp, superchs.cpp and undrfire.cpp . Added MACHINE_NODEVICE_LAN flag to Chase Bombers, Ground Effects and Gunbuster - Timekeeper: Added watchdog function to M48T37. M48T08 doesn't have watchdog. - TTL: 74157 developments. Added more read/write handlers, optional input callbacks and HC157 variant. Prevent unnecessary reads. plotting, puzznic and horshoes: Use a quartet of LS157s to multiplex the YM2203 inputs. - uPD4701 counter: Use uPD4701 device for analog input in arknoid2, fiveside, jpopnics and plumppop. - Voodoo GFX . Calculate dither pointer when needed for fogging. Fixes graphics crash in San Francisco Rush 2049. . Separate vblank (external) and PCI interrupt (internal) callbacks . Extended PCI interrupt support to Voodoo 2 and above . Write register data to intrCtrl - Z80 SCC . Added support for resetting RX interrupts/status by reading Rx FIFO through RR3 . Moved rearming of tx interrupt from tx buffer write to transmit complete when using WR0_RESET_TX_INT - aerofgt.cpp: Video and sound refinements: Fixed sound loss in Spinal Breakers and clones caused by misconfigured ROM bank. Work towards flip screen support for most games; clone Aero Fighters (Taiwan / Japan, set 1) is nearly correct now. - balsente.cpp: Minor doc update - cps1.cpp: Interrupt acknowledge routine based on schematics - csplayh5.cpp: Clean-ups and notes updates and added system inputs - cubo.cpp: Demoted Laser Quiz Italy and Laser Quiz 2 Italy, they never really worked. - exidy440.cpp: Partial revert of timer_set removal. This needs to be studied better. - f1gp.cpp: Preliminary RS232 device hookups for multiboard communications - gaelco3d.cpp: Load correct roms for Football Power - gstriker.cpp: Undumped MCUs can be difficult to cooperate with - ice_tbd.cpp, mmm.cpp and mpu2.cpp: Rattled a few old bones - jack.cpp: IRQ acking done right - konamigx.cpp: Get rid of old popmessage. Stop logging spam. - m72.cpp: Put IRQ hacks out of their misery. Fixed V35-based games (Cosmic Cop, Ken-Go and Lightning Swords). Restore text layer (if scanline == 256; Dragon Breed). - m90.cpp: Use 4-way joysticks (as service manuals suggest) in Dynablaster, Bomber Man World and clones - m92.cpp: Put IRQ hacks out of their misery. Cleanup and kludge removal. - magicard.cpp . Created standard write handler for SAA1099 sound; substitute for bogus YM2413 in Magic Card. . Fixed address map in Hot Slots. Replaced SAA1099 sound with YMZ284. - mitchell.cpp: Sound improvements in clones Pang (bootleg, set 3 and set 5) and Super Pang (World 900914, bootleg). Reduced ADPCM rate to make music speed sound more like the original. Use callback for audio IRQ. - model1.cpp: Readded TGP roms 315-5571.bin, 315-5572.bin and 315-5573.bin to netmerc, swa, vf, vformula, vr and wingwar - mtouchxl.cpp: Initial support for SiS85c496/497 PCI chipset and first pass shadow RAM and SM RAM support - naomi.cpp . Added real dump of SPI EEPROM used in M1/171-7978B-type cartridge to gram2000, kick4csh, mtkob2, shootpl and tduno2. Updated docs. . Converted existing M1-type cart SN# EEPROM data to be like real dump in clubkprz, clubkpzb, hopper, kick4csh and mvsc2. . Identified "Airine Pilots" sets as domestic Japan and World versions, according to information from Sega. . Removed "empty ROMs" in 'The Typing of the Dead (Rev A)' and clone, actually not populated on real ROM boards. - neodriv.hxx: Updated video\neogeo_spr.cpp. Tile code is 20bits, stop masking MSB. - norautp.cpp . Make 8255 PPI handshaking work in Noraut Poker. Restore some 8255 inputs in Noraut Poker that were disconnected since MAME 0.134u3 due to failed attempts to simulate a 8255 PPI configured in an unusual mode. The readout switch (Key 9) is now working again (ID 03585). . Don't hardcode "Readout" inputs in driver - psikyo.cpp: Some basic driver cleanup - system16.cpp . Added preliminary sound to clone Alien Storm (bootleg, set 2) and corrected clocks . Added preliminary sound to clone Michael Jackson's Moonwalker (bootleg) instead of cheating by loading the sound ROMs of the original. There's probably something wrong with rom loading / OKI banking, since I don't believe the correct BGMs are always playing. Left as MACHINE_IMPERFECT_SOUND because of this. - taito_b.cpp: Removed "bypass" that was made superfluous many years ago - taito_f2.cpp . General documentation update. Added TE7750 Super I/O Expander device. . Added Player 3 and 4 inputs to Dead Connection shown in test mode (and otherwise unused) . Added TC8521 device type as alias for RP5C01. Added TC8521 RTC to Yes/No Sinri Tokimeki Chart (though the game remains stuck in the 20th century) and test switch is 'NO TOGGLE'; note lack of printer emulation [AJR]. - taito_l.cpp: 74157 developments. Added more read/write handlers, optional input callbacks and HC157 variant. Prevent unnecessary reads. plotting, puzznic and horshoes: Use a quartet of LS157s to multiplex the YM2203 inputs. - taitosj.cpp: Made security MCU hookup a device - terracre.cpp . Actual hookup for protection data and fixed potential buffer overflow . Fixed clone Booby Kids regression and clean-ups . Discard protection reading for clone Kid no Hore Hore Daisakusen (bootleg), memory map cleanups. - toaplan2.cpp: Generate (and acknowledge) video interrupts within VDP (video\gp9001.cpp) - vegas.cpp . Added writing to subsystem id register (machine\pci-ide.cpp). Fixes power-on PCI Data Test in NBA Showtime Gold. . Calculate dither pointer when needed for fogging (video\voodoo.cpp and vooddefs.h). Fixes graphics crash in San Francisco Rush 2049. . Added watchdog function to M48T37 timekeeper - zaccaria.cpp: Clear up some stuff with board photo (audio\nl_zac1b11142.cpp) - zaxxon.cpp . Make "Universal Sound Board with ROM" work again (see Ixion and Razzmatazz) (ID 06599) . Use WRITE_LINE instead of INTERRUPT_GEN - Ace Attacker: First stab at I/O board - Air Combat 22: Changed control from Pedal to AD_STICK_Z - Arkanoid: Fixed device_clock_changed to respect the YM2149_PIN26_LOW flag. Fixes sound pitch is too high in Arkanoid, clones and Tournament Arkanoid (ID 06614). - Bubble Bobble II: Added address map for clone Bubble Symphony (bootleg with OKI6295) - Dragon Treasure: Bruteforced main unit DES key - Hyper Crash: Fixed missing VLM5030 speech since 0.176. Also increased VLM volume. - Imekura Mahjong: Fixed graphic corruption (ID 06617) - Karate Blazers: Fixed sound regression in clone Karate Blazers (bootleg with Street Smart sound hardware) - Karate Champ: Fixed distorted ADPCM sound in clones kchampvs, kchampvs2 and karatevs (ID 06479) - Kusayakyuu: Acknowledge main interrupt - Little Robin: Use more likely clocks for Little Robin based on PCB XTALS (main CPU is more likely 8MHz than 12Mhz). Also use a hack to overclock the TMS to 120% so that the map screen renders properly, points at possible timing errors in the core? Note: Various scenes flicker to the point of graphics being invisible (eg. the map screen at the very start of a game). Unless you overclock the TMS34010 to 120%, possible timing bug in the core? this is a hack. - Mahjong Kyou Jidai: Identified the memory reset input. - Mighty Guy: Added notes about sound "protection". Improved sound. - PinMAME . Added new sound_m3.bin rom to Metal Man . Modernized MSM5205 callback in inder.cpp and spinb.cpp - Prebillian: Fixed vblank input so game doesn't hang with new real MCU dump, fixed player 2 spinner input and added ball launch button. - Quiz Show . Changed fake tape input back to old pseudo-random values that program handles better for some reason . Driver cleanup. Removed unnecessary prefix from function names. Removed unused I/O space. Added dummy callback for flag output (which is used). - Red Corsair: Fixed gfxdecode and use more likely CPU types - Royal Mahjong: Added MC6845 CRT controller to clone Janyou Part II (ver 7.03, July 1 1983) - Royal Poker V 1.85: Push emulation a little further along - Side by Side: Fixed POST failure in debug build - Space Gun: Replaced TC0220IOC with TC0510NIO (newer I/O version) - Spectar: Added PROMs taken from clone (revision 2, bootleg) to Spectar - Star Audition: Flag game with no printer/camera - Starship 1: Fast/Slow control from toggled to momentary, as in real game. Updated clocks per latest information. Added note about Throttle Level behaviour. Changed format of comments. - Steel Talons: Fixed regression - Tail to Nose . Added flip screen support and document non-effect of "Country" switch . Preliminary RS232 device hookups for multiboard communications. - Taisen Mahjong Final Romance 4: Preliminary step towards 4-player link support. Some serial INS8250 interrupts for future use. - Treasure Island (DECO Cassette): Handcraft a BIOS rom for clone ctisland3 (the only difference between the A/B bios roms is the single byte it checks in the header anyway). Compared to the other ctisland sets it uses a different encryption and has a region code of 'D' in the header. Changed description of clone (unk) to 'Treasure Island (DECO Cassette) (Region D)'. - Video Poker: First attempt at proper configuration the clone Video Poker (v1403) - Dipswitch fixes 2mindril.cpp, csplayh5.cpp, pacman.cpp and taito_f2.cpp - Fixed rom names in arkanoid.cpp, gottlieb.cpp, minivadr.cpp, s11b.cpp and taito_l.cpp - Description changes of Airline Pilots (Japan, Rev A), Airline Pilots (World, Rev B), Alien Crush (United Amusements PC Engine), Animal Basket (24 Jan 2005), Blazing Lazers (United Amusements PC Engine), The Bounty (set 1), E-Swat - Cyber Police (bootleg, set 1), Flash Boy (vertical) (DECO Cassette MD) (No.12/Ver.0/Set.1,Japan), Forty-Love (World), Gradius IV: Fukkatsu (ver JAC), Guerrilla War (Version 1, set 1), Gun Dealer (Yam! Yam!? hardware), Keith Courage In Alpha Zones (United Amusements PC Engine), Money Money (set 1), Onna Sanshirou - Typhoon Gal, Onna Sanshirou - Typhoon Gal (bootleg), Pac-Land (United Amusements PC Engine), Sega Rally Championship - Twin/DX (Revision B), Sega Rally Championship - Twin/DX (Revision C), Silent Scope 2 : Dark Silhouette (ver UAD), Spelunker II - 23 no Kagi (Japan), T.T Block [TTL], T.T Defender, T.T Fitter (Japan), Treasure Island (DECO Cassette) (Region D) and unknown Labeled 'WU- MARY-1A' Music by: SunKiss Chen - Renamed (alpilota) to (alpilotj), (alpiltdx) to (alpilot), (gteikob2) to (gteikokub2), (gteikokb) to (gteikokub) and (palamed) to (palamedj) - MAME . VIDEO RENDERING SYSTEM . Make the palette optional (emu\drawgfx.cpp). device_gfx_interface does two things: Go from a possibly weird rom layout to a one-byte-per-pixel tiled layout and draw the tiles so created. The second part requires a palette, but the first doesn't. And low-level emulations of individual graphic chips (konami tilemap or sprite generators for instance) are not supposed to care about the palette. They just output bits which are partly indexes into palettes, and partly not, and in any case become pen ids only much further in the rendering chain. But they need access to the decoding step, because one-byte-per-pixel is real nice. So now such a device, which inherits from device_gfx_interface, can call set_palette_disable(true) and no palette tag will be required. Calling the draw functions will segfault though. As a side effect, the gfx_element constructor now takes a palette pointer instead of a reference, since it's now optional. . Fixed the case when a gfx element has no palette (ui\viewgfx.cpp) . BGFX: Fixed the following xBR shaders: xBR-lv2-fast, xBR-lv2-noblend, xBR-lv2, xBR-lv3-noblend, xBR-lv3 and xBR-lv2-multipass. . Changed the profiler to use std::ostringstream as the text sink (instead of std::string) (emu\profiler.cpp) . Validity . Added validation check for contradictory flags, fix things it caught. . Attempt basic validation of slot cards. Note that this currently segfaults on anything ISA and probably other stuff. For example, any of the following will crash: mame -valid c386sx16, mame -valid 386i and mame -valid b128. Pushing before dinner so others can take a look. Fixed vas' problem, region_length() is expected to return 0 if the region doesn't exist, not crash. . Improved code for instantiating slot devices for validation. Fixed region validation for slot devices. Fixed the missing default subslot devices on slot card validation . Further improvements to slot option validation: All slot options are now validated whether or not they are user-selectable. This has already exposed a bug in one MSX-Audio device. Slots within slots, however, get added for validation only if they are declared fixed. Various Commodore floppy drives have been affected by this, since it doesn't look as if the current FDC emulation allows for detachability. . Improved validation checking for address ranges (emu\addrmap.cpp) . Multi-Language: Attribution correction for Hungarian language translation . DEVICE . Updated devices\cpu, devices\machine and devices\bus\* devices to use device_add_mconfig insted of device_mconfig_additions. Got rid of machine_mconfig_additions in devices\bus\*. . Better detection of bad -ramsize strings, move some private code to anonymous namespace. There was a longstanding bug where '-ramsize 16kfoo' would be treated as '-ramsize 16k'. Changed parse_string() to explicitly look for the suffixes "[k|m][|b|ib]" (machine\ram.cpp). . Device name changes: AY-3-8910A to AY-3-8910A PSG, AY-3-8912A to AY-3-8912A PSG, AY-3-8913A to AY-3-8913 PSG, AY-3-8930A to AY8930 EPSG, YM2149 to YM2149 SSG and YMZ284 to YMZ284 SSGL . PLUGINS . Added hotkey support to cheat plugin. Be more careful with unpack (plugins\cheatfind\init.lua). . Added NES, SNES, Genesis and Game Genie support to cheat plugin. More Game Genie and NES Action Replay cheat format decoder. . Fixed erroneous space padding before linefeed on -listclones and -listbrothers output (mame\clifront.cpp) . Added line hold capability. Note: Whoever feels like saying that "HOLD does not exist in hardware", I invite to admire the beautiful TTL circuit to the left of the 68000s in the Over Drive schematics (emu\devcb.cpp). . UI: Fixes a crash when returning to the front end when a system was launched from favorites. This bug could be reproduced with the following steps: 1. Put 'nes' in 'Favorites'. 2. Launch 'nes'. 3. Choose something from the software menu and run the emulation. 4. Escape back... CRASH. . Sort slot options by name in -listslots. Device names can be obtained without instantiation now (mame\clifront.cpp) . Fixed address_map configure (emu\addrmap.cpp) . Disable side effects in some read handlers (machine\msm6253.cpp and upd4701.cpp) - Compiling . Coverity (software) . Fixed errors about unintended truncation (machine\cs4031.cpp and genpc.cpp) . Cleanup and constructor delegation (video\poly.h, includes\orbit., includes\pass.h, machine\bfm_bd1.cpp, bfm_bda.cpp and taitoio.cpp) . Compile fix for machine\ldvp931.h and pdc.h . Fixed etc\template_driver.cpp compile . Verify some same label different hash (sldh) rom parts and commented following established procedures - Debugger . Windows debugger: Added ability to load software-list items. Mount File/Create default to swpath instead of randomness (win\consolewininfo.cpp). . Changed 'enum read_or_write' to be 'enum class' (debug\debugcmd.cpp, emu\emumem.cpp and machine\fddebug.cpp) . Don't try to read past the end of a memory space in debug view (debug\dvmemory.cpp) . Removed "Mount Item" for now due to bugs, also removed internal media slots from images menu (win\consolewininfo.cpp). . Changed a few 'const char *' ==> 'const std::string &' in the MAME debugger . Fixed an issue that could cause the debugger 'source' command to falsely display I/O error 0.186 - New games: Gunstar Heroes (Mega Play), Hashire Patrol Car (J 990326 V1.000), Jang Taku (V 1.3) and Space Cyclone - New Working games: 7 Smash, Heated Barrel, Jockey Club II, Legionnaire, Mahjong Yarou, MegaTouch XL, MegaTouch XL 6000, Microman Battle Charge, Poker Genius, Revenger '84, T.T. Defender, Technical Bowling and Tetris Fighters - New Non-Working games: A-Plan, Dream Hunting (US), Dragon Treasure (Rev B) (GDS-0030B), Football Power, Mushiking The King Of Beetles 2004 Second (Japan), Quest of D Oukoku no Syugosya Ver. 3.02 (CDV-10026D), Quest of D The Battle Kingdom (CDV-10035B), Royal King Jang Oh 2 (v4.00 1984 Jun 10th), Shoot Away II and Hog Wild (US) - New clones: Bagman (Taito), Bucky O'Hare (ver JAA), Cadillacs and Dinosaurs (Asia TW 930223, bootleg?), Capcom Vs. SNK 2 Mark Of The Millennium 2001 (GDL-0008), Captain Silver (Japan, revision 1), Dottori-Man Jr., Dragon Treasure (Rev A) (GDS-0030A), Galaxy Wars (Taito), Jackal (bootleg, Rotary Joystick), King of Boxer (Japan), Mahjong Yarou [BET] (Japan, set 2), Mandinga (bootleg of Amidar), Mega Force (World), MegaTouch XL 6000 (Version r04), Mouse Trap (version 4, bootleg), Nebulous Bee, Nibbler (rev 7), Ojanko Club (Japan, Program Ver. 1.2), Pang (bootleg, set 5), Penky (Italian), Phoenix (Hellomat Automaten bootleg), Rastan Saga (Japan Rev 1), Real Mahjong Haihai (Japan, older), Revenger '84 (newer), Shiritsu Justice Gakuen: Legion of Heroes (Japan 971216), Space War (Leisure and Allied), Space Wipeout, Special Forces Elite Training (v01.02.00), Star Sweep (World, STP2/VER.A), Star Trek: Voyager (stand-up version 1.002), Super Street Fighter II: The Tournament Battle (Asia 931005), Tatacot (JA 951128 V1.000), Thrill Drive 2 (ver JAA), Top Landing (Japan), Touchmaster 2000 (v4.XX3 Spanish Evaluation), Touchmaster 3000 (v5.02 Spanish), Touchmaster 3000 (v5.XX Standard AMOA Evaluation) and Wonder Boy (set 6, 315-5179) - New AGEMAME games: Bachelorette Party (BHG1579, US), Betting Zoo - Mr. Cashman (0251064, US), Big Ben (20126911, NSW/ACT), Big Red (1J009211, NSW/ACT), Buccaneer (0252523, US), Canyon Rose (AHG1463, US), Cash Crop (0300447V, NSW/ACT), Diamond Destiny (AHG1533, US), Dynamite Jack (CHG1562, US), Enchanted Forest - Cash Express (CHG1536, US), Fortune Fever (BHG1566, US), Geisha - Jackpot Carnival (0351033, US), Helen of Troy (1J008311, NSW/ACT), Inca Sun (DHG1577, US), Jumping Beans (0100161V, NSW/ACT), King Penguin (20109021, NSW/ACT), Koala Mint (CHG1573, US, set 2), Loco Loot (AHG1513, US), Margarita Magic (EHG1559, US, set 2), Mountain Money (BHG1465, US), Mountain Money - Cash Express (AHG1629, US), One For All (0101503V, New Zealand), Party Gras (AHG1568, US), Peacock Magic (0151352, US), Penguin Pays (0300113V, NSW/ACT), Pompeii (0151158, US), Queen of the Nile (0301059V, Holland), Queen of the Nile Special Edition (20102811, NSW/ACT), Return of the Samurai (10117211, NSW/ACT), Scatter Magic III (0452569, US), Sun & Moon (0251303, US), Super Bucks II (0300006V, NSW/ACT), Sweet Liberty Deluxe (AHG1575, US), Toucan Tango (0301388V, Holland), Unicorn Dreaming (BHG1584, US), Wild Coyote (AHG1515, US) and Wild Thing (0201176V, NSW/ACT) - New PinMAME games: Teenage Mutant Ninja Turtles (1.04) Germany - New PEPlus games: Player's Edge Plus (PS0629) Double Hot Peppers Slots - New drivers: scyclone.cpp, shootaway2.cpp and unianapc.cpp - New devices: cheekyms_audio, gt64xxx, k054321, mb89352, mc8123, s29190_16, s29290_16, s29390_16, ttl166, usb_connector and vrc5074 - New Cheat.dat: - New ClrMamePro version: - ADSP21062 / SHARC CPU: Fixed SHARC disassembly in debug build (cpu\sharc\sharc.h) - H8 CPUs . Fixed H8 instruction eepmov.b (used r4h instead of r4l). Added support for non-autorequest DMA (DREQ edge, DREQ level) in H8. . Added support for H8/300H to h8_dma (previously only H8/300S supported) . Added DMA channels and RTMCSR register to H8/3002 - I80186/286 CPU: Added opcodes config stuff - M6800 CPU . Fixed invalid instruction length / Program counter behavior. Fixed random crash while drawing characters at the screen borders. draw_char_40 & draw_char_80 : use of std::min. Fixed invalid instructions length. Each 6800 invalid opcodes have a different behavior. This commit fix the PC increment of each invalid opcode execution. There is three groups of invalid opcodes: One byte invalid opcodes/instructions: 00,02,03,04,05,12,13,15,18,1A,1C,1D,1E,1F,21, 38,3A,3C,3D,41,42,45,4B,4E,51,52,55,5B and 5E. Two bytes invalid opcodes/instructions: 61,62,65,6B,83,93,A3,C3,D3,DC,E3,EC and ED. Three bytes invalid opcodes/instructions: 71,72,75,7B,B3,CC,CD,F3,FC and FD. Behavior checked from the Visual 6800 and the real hardware (goupil computer) Invalid opcodes renamed. . Quick and dirty split of most MC6801/MC6803/HD63701 features from base M6800 class. The code remains generally archaic and awful and in need of a sweeping rewrite. At least one static variable is no more. - MC-8123 CPU: Make MC-8123 into a device (chinsan.cpp, freekick.cpp, ninjakd2.cpp, segae.cpp, segas16b.cpp and system1.cpp). Fixed IRQ-related regression in Gigas (freekick.cpp). - MCS-48 CPU: Converted MCS-48 ports to devcb: T0, T1 and PROG handlers are now 1-bit rather than 8-bit. Eliminate several T0/T1 handlers that DEVCB macros can take care of now. T0 CLK output emulation. - SPC700 CPU: Get rid of unneeded shifts. Fixed N flag in OP_LSRM. - TMS32031/2 CPUs: RTPS should be RPTS - TMS34010 CPU: Fixed DASM of MOVB/MOVE absolute to absolute - Z180 CPU . Added support for DREQ and TEND signals. Fixed DMA0 count and DREQ handling. . Fixed obvious type detected by Coverity (software) . Tried to make Z180 table allocation/setup a bit safer - BSMT2000 sound: Changed DECO BSMT2000 ready callback into a device delegate - MSM5205 sound: Use clocks_to_attotime - Q-Sound: Updated QSound/DL-1425 ROM and comments with corrections from recent decap - SCSP sound: Fixed SCSP UNPACK sign extension (sound\scspdsp.cpp) - SN76477 sound: Unconnected resistor treated as invalid even though it's the initial value - uPD7759 sound: Fixed/Reduced logging - Y8950, YM2608 and YM2610/B sound: Tidy up some code (sound\ymdeltat.cpp) - YM2203 sound: Fixed crash on fatal errors (sound\2203intf.cpp) - 6522 VIA . Refactored shifter supporting more fetures and fixed a few bugs. Removed old code and cleaned up a bit. . Tuned shifter IRQ timing to be more cycle accurate . Fixed the flank timer value which improved but not completelly reverted the Vectrex regression - 8255 PPI . Hook up 8255 PPIs to chinsan.cpp, igspoker.cpp, jackie.cpp, megaphx.cpp, segae.cpp, taito_l.cpp, tatsumi.cpp (apache3 and roundup5), thief.cpp (thief) and upscope.cpp . Use 8255 PPIs for interboard communication and PIC for sub interrupt in mrflea.cpp - CHDMAN: Minor improvement to CHD metadata loading. Writing into an std::string is now legal with C++11 (util\chd.cpp). - Discrete Netlist . Changed Solver.PARALLEL parameter logic: 0 = Parallel processing of solvers disabled. 1 = One processor parallel processing. Can be used to measure OPENMP overhead. >1 = Solve n analog subnets in parallel. Previously, all available processors were used which caused performance to degrade on hyperthreading. . Netlist refactoring: OPENMP refactored. All OPENMP operations are now templatized in pomp.h. We don't need thread-safe priority queue. Event code updating analog outputs now runs outside the parallel code. . Reordered members to be more cache friendly (devices\nld_7493.cpp and nld_9316.cpp) . Cleanup of solver code. Various code alignments across solvers. Added Cheeky Mouse to mamenl build. Fixed state saving for pfunction lfsr. - EEPROM: Added support for Seiko S-29X90 16-bit EEPROMs (machine\eepromser.cpp) - IDE PCI interface: Added save states to machine\pci-ide.cpp. Allow for setting the top 12 decode address bits in legacy mode, moved default legacy address assignment from device_start to device_reset, allow for address size resolving even in legacy mode and added function to set default PIF byte (machine\pci-ide.cpp). - Imgtool . Cleanups to validity code and transitioned to std::wcerr. Windows doesn't like mixing std::wc[out|err] and printf(). . Fixed issue with 'listfilters' command. Extremely basic fix to the Imgtool <==> CHD HD bridge. This really needs much more work (MT #06576). - Konami Custom . Implemented K054321 as a device (gijoe.cpp, lethal.cpp, moo.cpp, mystwarr.cpp, rungun.cpp, xexex.cpp and xmen.cpp). Fixed validation for drivers\xmen.cpp. Fixed K054321 for Lethal Enforcers and Monster Maulers. . Added save state support to K054321. Also removed unneeded includes from the driver where the generic soundlatches were removed. - MC6845 CRT: Added (partial) correct register mappings to HD6345 - Nintendo Custom . Added wrappers for SNES PPU operations so members can be made protected (video\ppu2c0x.cpp and video\snes_ppu.cpp) . Basic VT03 video support. Some support for extended sprite addressing used by (MESS) Cyber Arcade 120-in-1 - Seta Custom: Added 4 tilemaps and switchable resolution to ST-0020. ST-0032 video on par with ST-0020. - TTL: Added SN54/74166 8-Bit Parallel-In/Serial-Out Shift Register (machine\74166.cpp) - uPD4701 counter: Partially rewrite uPD4701 device and hook it up to cabal (trackball sets), calibr50, eaglshot, fbaitbc, forgottn, horshoes, poundfor, ridleofp, sonic and wwallyj - Voodoo GFX: Some more Voodoo cleanup - Z80 DART: Improved encapsulation of Z80DART channels - Z80 CTC: Minor clock cleanup - Z80 SCC: Implemented Reset Tx Interrupt Pending Command (machine\z80scc.cpp) - aleck64.cpp: Wrap PC to 12 bits in a few more places (cpu\rsp\rspdrc.cpp and rspfe.cpp) - atlantis.cpp and midzeus.cpp . Added save state support to machine\pci-ide.cpp, pci.cpp, pci9050.cpp, vrc4373.cpp, video\zeus2.cpp and drivers\atlantis.cpp . Atlantis driver cleanup - battlex.cpp: Fixed graphics decode issues and improved palette generation in Dodge Man and Battle Cross - bingor.cpp: Random cleanups - chihiro.cpp: Migrated PCI devices to new PCI bus framework (machine\xbox.cpp). Some USB/OHCI renaming. USB hotfix. USB devices are now slot devices. - chinsan.cpp . Inputs cleanup, added flip flop and statistics buttons. Use tilemap system for rendering and general driver cleanup. . Identify coinage and demo sound dipswitches . Set YM2203 clock to a more likely 10MHz/8, restore PCB number. . Merged mayumi.cpp with chinsan.cpp driver. Interrupt enable, flip screen hooked up and NVRAM support for chinsan. - clshroad.cpp: Init background VRAM to 0xf0 and assume common divider for all Z80s - cobra.cpp: Fixed some input issues - epos.cpp . Added flip screen support . Fixed Revenger EPOS TRISTAR 9000 board clocks and rom labels. Combined, refined and expanded README's for both Revenger sets. . Fixed RAM based colors and added backup RAM to dealer, revngr84/revenger and beastf . Fixed Z80 CPU1 and AY-3-8910A clock speeds in dealer and revngr84/revenger . Fixed input. I/O map 0x38 is actually AY8910 read in dealer. . Implemented Tristar 9000 hardware AY-3-8910 port A 'multiplexer', PSG REGISTERS test can (in theory) pass with dipswitches set now. . Switched Tristar 8000 hardware to use AY-3-8912 as shown on schematics (catapult, igmo, megadon and suprglob). - flkatck.cpp: Fixed old regression when memorymaps were merged - iteagle.cpp . Set correct UART crystal frequency and added CPU delay to prevent TX UART timeouts (machine\iteagle_fpga.cpp) . Added save states to sound\es1373.c, video\voodoo_pci.cpp, machine\iteagle_fpga.cpp and drivers\iteagle.cpp - lastfght.cpp, subsino.cpp and subsino2.cpp: Used ramdac_device instead of custom implementations - legionna.cpp: Fixed Legionnaire and Heated Barrel scenery walking bug (a different 138e trigger is used; machine\seibucop\seibucop.cpp/h and seibucop_cmd.hxx) (Games now playable) - liberate.cpp: All PSGs are AY-3-8912A - m52.cpp, m57.cpp, m58.cpp, m62.cpp and travrusa.cpp: Replaced generic latch with more accurate emulation. Fixed missing d7 on sound latch, device_reset to correctly clear sound latch and a potential situation where sound CPU/IRQ could be incorrectly cleared. - megatech.cpp: Fixed Free Play regression - micro3d.cpp: Untangled Microprose 3D noise from driver state - mitchell.cpp: Fixed NVRAM saving - model1.cpp . Implemented workaround for race condition to fixed broken sound in Virtua Fighter (ID 06587). This fix causes 'Star Wars Arcade' to show an error message before booting normally, due to the I/O board not being emulated properly in the first place. . Preliminary configuration of I386SX Polhemus CPU in Sega NetMerc - mtouchxl.cpp: Fixed buttons, coins and key stuff - multfish.cpp: Converted driver to use hopper device - namconb1.cpp: Everyone gets all 4 player inputs. All games (even 2 player games) can test for all 4 player inputs and TEST switch. So for everything except Gun Bullet use the standard Namco System NB-1 inputs. - namcos12.cpp . Correct Asia "2" region to World . Notes about S12 Network area stuff - ojankohs.cpp: Rewrote input handling: Added missing player 2 controls. Verified and removed non-existing keys from games. Added dipswitch locations to all games. Identified some of the unknown dipswitches. Clean up and correct code. Removed tagmap lookups. - royalmah.cpp: Removed aysnd tagmap lookups, partial move to configured banking and save state preparation. - seattle.cpp . Updated driver to new PCI bus system . Galileo GT-64xxx Controller: Removed address map trampolines and added save state support to machine\gt64xxx.cpp. Changed physical memory configuration to fixed crashes with Wayne Gretzky's 3D Hockey and NFL Blitz (machine\gt64xxx.cpp). Cap memory space mapping to physical memory bounds. Reduced Seattle board to 8 MB ram. Changed SDRAM configuration options (machine\gt64xxx.cpp). - segae.cpp: Added coin counters. Minor clarification. - segas32.cpp . Replaced protection MCU simulation with emulation of actual program in Arabian Fight. Make more sense of unused MCU routines (ga2- and arabfgt opcode table). . Converted classes in segas32.cpp to device_add_mconfig . Base MB89352 SCSI hookup in 'Soreike Kokology Vol. 2', disabled by default. - segam1.cpp: Hook up video devices, sound and much else. bingpty and unkm1 both boot to error screens now. - seta.cpp: Added IRQ acks for Caliber 50 and U.S. Classic - ssfindo.cpp: Added preliminary EEPROM hook up. Tetris Fighters is now playable (coins work). Left as not working since EEPROM isn't correctly saved, thus the inputs are screwed on reset. - ssv.cpp . Updated SSV driver to new Seta ST-0020 Sprite video . Promoted Microman Battle Charge and Technical Bowling to working. Thanks Osso for pointing similar to Hashire Patrol Car medal cabinets. - taito_l.cpp . Added custom I/O chips TC0220IOC and TC0510NIO . Reduced coin impulse in Evil Stone . Use MB8421 for Taito_L, less HOLD_LINE (fixes sound in Evil Stone). - vegas.cpp . Added working controls for Road Burners and 'War: The Final Assault' . Added new NEC VRC 5074 System Controller System Controller device. Added save states to VRC5074 and fixed serial register handling. Converted Vegas driver to use new PCI bus. . Added additional PCI configuration registers for Vegas support (video\voodoo_pci.cpp) . Added some logic to get 'warfa' to start booting . Set link to be unconnected by default to keep warfa (drivers\vegas.cpp) from hanging (machine\smc91c9x.cpp) . Added proper IOASIC shuffling for NBA Showtime Gold and added SIO FPGA register reset. - viper.cpp: Gun triggers for Jurassic Park 3 and Police 911 - williams.cpp and wmg.cpp . Williams Special Chip 1/2: Added pinout diagram and clarify the abbreviations to reduce confusion with similarly named chips. Fixed a comment error about SC1 vs SC2 behavior. . Added a note and flag that Williams' Mayday has unemulated protection which is currently hacked around . Reduced tagmap lookups and identified some dips for Jin (drivers\williams.cpp) - zaccaria.cpp: Preliminary netlist sound for the Zaccaria 1B11142 board: * Tromba (trumpet) sound is not working - requires Schmitt trigger device. * Connecting cassa (bass drum) swamps other instruments so it's disconnected for now. * Mixing melody sound with speech/SFX is not done in netlist (should be). * Relative levels of melody/speech/SFX are probably still wrong. A good test case for this is Money Money. There's a bit of buzzing on this one as well. The problem with the cassa could be caused by running into non-ideal characteristics of opams again (the LM3900 seems to ignore the V+ value supplied to it). When the netlist library gets Schmitt trigger support, the tromba can be completed. Unfortunately, the tromba is a key part of the characteristic sound of these boards, so you really notice when it's lacking. Bump up accuracy on audio\nl_zac1b11142.cpp netlist - runs slower but sounds a lot better. Added a crude TTL schmitt trigger model and hook up in audio\nl_zac1b11142.cpp sound board, completing the tromba circuit. Fixed typo in audio\nl_zac1b11142.cpp schematics. 7414/7474 combo now actually works. - 7 Smash: added DIPs and layout for '7 Smash' (Game now playable) - AGEMAME . Added extra sets. Improved documentation for aristmk4, aristmk5 and aristmk6. . Added correct maincpu rom to fvrpitch . Correct some fruit machine driver classes (drivers\bfm_sc4.cpp and jpmimpctsw.cpp) - Alien Command: Untangle devices switch-case. Fixed sprite flip x & background pen. Put score 7segs in internal layout. Use tilemap device. - Bad Lands: Make bootlegs to actually boot. Base audio hookup. Fixed tilemap gfxs and sprites are different from original hardware. Added coin counters and freeze switch, moved sound related irq generation into audio CPU block. Converted bootleg to mimic irq 0 sound generation. - Bonus Chance: Fixed CPU clock and added undumped MCU - Captain Flag: Fixed input labels & hookup - Cheeky Mouse . Added netlist sound based on schematics provided by Sam Grech. It doesn't work quite right yet. The "Hammer" and "Pest" sounds are generated by free-running 555/556 timers and gated with LM324 applifiers. For whatever reason, the netlist system produces a kind of buzzing from the "Hammer" circuit when it's supposed to be suppressed, and it doesn't think the pest sound should be suppressed completely so you can always hear it at a low level in the background. The "Cheese" circuit is a bit weird - either they're using the base-emitter junction of a 2SC945 as a signal diode, or there's an error in the schematic (collector is shown unconnected). Connecting this part of the circuit causes the netlist system to hang, so R2/R3/C8/Q2 are not connected for now. . Explain the pest and hammer circuits. Increase solver accuracy to reduce number of false solutions. The usual 1e-8 is not enough here, we need 1e-10. . Added rand() function to pfunction expression parser. Use this to simulate E-B noise in Cheeky Mouse and fix the "cheese" choose. Fixed issues identified by Vas and LordKale4: Made local netlists in Cheeky Mouse static. Replaced stdlib rand by 16 bit galois lfsr. - Critter Crusher: Improved gun control - Daytona USA: Added feedback driver board (including ROM) - Defender: Redumped bad maincpu rom in clone T.T. Defender (Game now playable) - Dream Soccer '94: Removed redundant DSWs - Flower: Scroll, inputs and sprites. Added sprite sizes. - Football Champ: Changed clone 'Euro Champ '92 (World)' to a parent set - Frogger: Fixed long standing background_draw_colorsplit regression. According to schematics it is at 128+8, but it has been verified different on real machine. Video proof: - Fruit Fresh: Added some sound - Jockey Club II . Splitted sets by software revision. Added default EEPROMs and document the procedure. . Finish I/O and added layout for on-screen keyboards . Added sound communication. Fixed backgrounds and colors. . Splitted 'Jockey Club II (older hardware)' into 'Jockey Club II (v1.12X, older hardware)', 'Jockey Club II (v1.10X, older hardware)', 'Jockey Club II (v1.01, older hardware)' and 'Jockey Club II (v1.00, older hardware)'. Changed 'Jockey Club II (older hardware, set 2)' into 'Jockey Club II (v2.03X RC, older hardware, prototype)'. Splitted 'Jockey Club II (newer hardware)' into 'Jockey Club II (v2.00, newer hardware)', 'Jockey Club II (v2.01X, newer hardware)', 'Jockey Club II (v2.04, newer hardware)', 'Jockey Club II (v2.05, newer hardware)' and 'Jockey Club II (v2.20X, newer hardware)'. - Kusayakyuu: Videoram bit 6 isn't flip Y - Laser Battle and Tora Tora: Unconnected SN76477 resistor treated as invalid even though it's the initial value. This fixed debug assert when starting emulation in Laser Battle/Lazarian and Tora Tora (ID 06541) (ID 06542). - Mahjong Dunhuang: Added missing OKI6295 hook up, now the game has speech. Used ramdac_device instead of custom implementation. Reduced tagmap lookups. - Mahjong Yarou: Redumped Mahjong Yarou [BET] (Japan, set 1) and verified it only has 1 Z80 (Game now playable) - Mega Phoenix: Removed Mega Phoenix PIC MCU simulation. It's now emulated using the existing PIC16C54 dump. Clean up dipswitches and added DIP locations. Added documentation. - Monaco GP: Fixed PCB table - Mouse Trap: Added PROMs from clone (version 4, bootleg) to all other Mouse Trap sets and marked them as bad dumps. The Mouse Trap manual confirms it has 3 PROMs. They also match the Teeter Torture ones. - Nintendo Custom: Privatized video\ppu2c0x.h & includes\vsnes.h variables - Pang: Demoted all MSM5205 Pang clones to MACHINE_IMPERFECT_SOUND, since music speed, which is actually set by the MSM5205 VCK output, is likely too fast for all of these. The sound CPU probably does run at 4MHz, since it's a Z80A. - Pata Pata Panic: Fixed OKI6295 audio - PinMAME: Added missing ROM dump for clone Flash Gordon (prototype rev. 1) - Poker Genius: Hook up devices and improved documentation. Graphics decoded. Added coin counter and hopper. Identified dipswitches and double-up game controls. Promoted to working (Game now playable). - Pound for Pound: Rewrote uPD4701 device and hook it up to Pound for Pound. This fixed the arrow didn't move on the menu screens to choose the other boxer or game (ID 00599). - PT Reach Mahjong: Revised PT Reach Mahjong, making it actually working. Added ball and paddle screen drawing, green background as per flyer pics, reach button, flip screen support and updated input labels. - Puzzle Club (Japan prototype): Added ROM FILL (region gfx2) to fixed title screen corruption since MAME 0.178 (ID 06589) - Puzzlet: Identified Player 2 inputs and a couple of DIPs - The Real Ghostbusters: Confirmed that the fake MCU ROM is the cause of clone 'The Real Ghostbusters (US 3 Players, revision ?)' not working - SD Gundam Psycho Salamander no Kyoui: Added base clocks on actual OSCs - Shadow Dancer: Dumped/added later version of sound CPU ROM to Shadow Dancer (World), document main program EPR labels. - Space Invaders: Updated some documentation for clone Space Ranger and added 'CV Version' color proms. Note: A PCB set (CVN 3-layer) was found with a 'Shinnihon Kikaku' sticker on the top board. - Starship 1: Removed hack to restore correct behavior. Note: Some mysterious game code at address $2CCE is causes erratic images in the target explosion sequence. But this is the way the actual game worked! - Super Poker (v306US): Identified some dips - Taiwan Chess Legend: Better decode of gfx2 region, borrowed from Goldstar driver. - Thief: Verified XTALs and clean up machine configs - Unknown 'VIP 2000' game: Hook up a few devices (MSM6242 RTC, Intel Flash etc.). More driver progress. - Video Poker: Identified DAC (MC1408) - Input port: Added hopper-like mode to ticket dispenser device (drivers\stv.cpp, machine\ticket.cpp) - Dipswitch fixes in aristmk4.cpp, chinsan.cpp, cischeat.cpp, clpoker.cpp, flower.cpp, galaxian.cpp, luckgrln.cpp, m107.cpp, metro.cpp, namconb1.cpp, ojankohs.cpp, royalmah.cpp, spoker.cpp, ssfindo.cpp and williams.cpp - Fixed rom names in aristmk4.cpp, epos.cpp, kingobox.cpp and royalmah.cpp - Description changes of Battle Gear (Ver 2.40 A), Beastie Feastie, Buffalo (0252636, US), Captain Silver (Japan, revision 3), Dark Horse (USA v4.00, bootleg of Jockey Club II), Ehrgeiz (World, EG2/VER.A), Fever Pitch (2VXEC534, NSW), Football Champ / Euro Football Champ (World), Football Champ / Euro Football Champ (World) (bootleg), Ghoul Panic (World, OB2/VER.A), Gun Survivor 2 Biohazard Code: Veronica (World, BHF2 Ver.E), Jansou (V 1.1), Johnny Nero Action Hero (v01.01.08), Kiki-Ippatsu Mayumi-chan, King of Boxer (World), Koala Mint (CHG1573, US, set 1), Landing High Japan (Ver 2.01 OK), Mahjong Yarou [BET] (Japan, set 1), Margarita Magic (EHG1559, US, set 1), Mazan: Flash of the Blade (World, MAZ2 Ver.A), Mega Force (US), MegaTouch XL (Version R1, prototype?), Mushiking The King Of Beetle (2K3 2ND, World), Mushiking The King Of Beetles 2005 First (Japan), Ojanko Club (Japan, Program Ver. 1.3), Libero Grande (World, LG2/VER.A), Ninja Assault (World, NJA2 Ver.A), Ninja Assault (Asia, NJA4 Ver.A), Operation Tiger (Ver 2.14 O) (ID 06103), Pata Pata Panic, Penguin Pays (0200113V, NSW/ACT), Poker Genius, Rastan Saga (Japan, Earlier code base), Rastan Saga (Japan Rev 1, Earlier code base), Real Mahjong Haihai (Japan, newer), Revenger '84 (older), Space Ranger, Special Forces Elite Training (v01.01.01), Stunt Typhoon Plus (Ver 2.04 J), Thunder Heart (10173811, NSW/ACT), Touchmaster 7000 (v8.1X ASI Standard Evaluation), Tonton [BET] (Japan, set 1), Dunk Mania (World, DM2/VER.C), Sega NetMerc, Soul Edge (World, SO2/VER.A), Soul Edge Ver. II (Asia, SO4/VER.C), Tekken (Asia, TE4/VER.C), Tekken (World, TE2/VER.B), Tekken (World, TE2/VER.C), Tekken 2 (World, TES2/VER.A), Tekken 2 Ver.B (World, TES2/VER.B), Tekken 3 (World, TET2/VER.E1), Tekken 3 (World, TET2/VER.A), Tekken 3 (World, TET2/VER.B), Tekken Tag Tournament (World, TEG2/VER.C1, set 1), Tekken Tag Tournament (World, TEG2/VER.C1, set 2), Tenkomori Shooting (World, TKM2/VER.A1), U.S.A. Football, World Cup (L-1), World Kicks (World, WK2 Ver.A) and World Kicks (US, WK3 Ver.A) - Renamed (acchi) to (patapata), (adustcm) to (aduskcm), (cvs2gd) to (cvs2mf), (ehrgeiz) to (ehrgeizua), (ehrgeizaa) to (ehrgeiz), (hlntroy) to (hlntroyu), (jgakuen) to (jgakuen1), (kingpeng) to (kingpengsp), (lovestrk) to (lovestuk), (marmagicua) to (marmagicu), (marmagicu) to (marmagicua), (mazan) to (mazanu), (mazana) to (mazan), (megaforc) to (megaforcu), (ninjaslt) to (ninjaslta), (ninjaslta) to (ninjaslt), (pompeia6u) to (pompeia6ua), (qnilese) to (qnilesea), (qsheeba) to (qsheba), (rastsagaa) to (rastsagab), (rastsaga) to (rastsagaa), (souledgeaa) to (souledgea), (specfrce) to (specfrceo), (starswep) to (starswepj), (sunmoon) to (sunmoona), (tekken) to (tekkenac), (tekkenac) to (tekken), (tekken2aa) to (tekken2a), (tekken2ab) to (tekken2b), (tekken3) to (tekken3je1), (tekken3ae) to (tekken3), (tekken3aa) to (tekken3a), (tekken3ab) to (tekken3b), (tektagt) to (tektagtuc1), (tektagtac) to (tektagt), (tektagtac1) to (tektagtc1), (wldkicks) to (wldkicksu) and (wldkicksa) to (wldkicks) - MAME . Disambiguated the WINOPTION_YIQ_PHASE_COUNT option. "yiqp" was used for WINOPTION_YIQ_PVALUE and WINOPTION_YIQ_PHASE_COUNT. Removed redundant ";global_inputs" (windows\winmain.cpp). . rand() corrections in src\devices\* and src\mame\* . NPOT subunit compromise: Handlers with a non-power-of-2 number of subunits are allowed once again. However, the offset multiplier will be rounded up to the nearest power of 2 (emu\addrmap.cpp). . DEVICE . Fixed an issue that could cause problems when loading reset_on_load devices (like cartridges) from softlists at runtime. This was not guaranteed to cause a problem; the specific issue here was reported by mr_gw in the context of the CoCo, and the proximate issue (hanging) was in CoCo-specific code. That said, this could cause problems elsewhere (emu\diimage.cpp). . Defend clocks_to_attotime and attotime_to_clocks against the possibility of the device clock being 0 (emu\device.cpp) . Mechanism for devices to generate clocks for other devices. Have set_unscaled_clock and set_clock_scale not call notify_clock_changed unless the device has been started. Owner-derived clocks are now updated whenever the owner's clock is changed, including at configuration time. This simplifies the configuration of various (MESS) NES clones. Added clock_update_delegate type to represent device-generated clock outputs that may be dynamically modified. The model implementation of this is the CLK output in I8085A. DERIVED_CLOCK now updates in response to clock changes and changed (MESS) CoCo to use this mechanism. . Use a proper error message in emu\emumem.cpp . Copy longname, manufacturer, year, filetype, etc. for image info in all softlisted cases (emu\diimage.cpp) . Moved static data (short name, full name, source file) out of devices into the device types . Core changes: * Short name, full name and source file are no longer members of device_t, they are part of the device type. * MACHINE_COFIG_START no longer needs a driver class. * MACHINE_CONFIG_DERIVED_CLASS is no longer necessary. * Specify the state class you want in the GAME/COMP/CONS line. * The compiler will work out the base class where the driver init member is declared. * There is one static device type object per driver rather than one per machine configuration. . Use DECLARE_DEVICE_TYPE or DECLARE_DEVICE_TYPE_NS to declare device type. * DECLARE_DEVICE_TYPE forward-declares teh device type and class, and declares extern object finders. * DECLARE_DEVICE_TYPE_NS is for devices classes in namespaces - it doesn't forward-declare the device type. . Use DEFINE_DEVICE_TYPE or DEFINE_DEVICE_TYPE_NS to define device types. * These macros declare storage for the static data, and instantiate the device type and device finder templates. The rest of the changes are mostly just moving stuff out of headers that shouldn't be there, renaming stuff for consistency, and scoping stuff down where appropriate. . Other things: * More descriptive names for a lot of devices. * Untangled the fantasy sound from the driver state, which necessitates breaking up sound/flip writes. * Used object finders for Irem sound subdevices. * Started to break out common parts of Samsung ARM SoC devices. * Turned some of FM, SID, SCSP DSP, EPIC12 and Voodoo cores into something resmbling C++. * Converted generic keyboard/terminal to not use WRITE8 - space/offset aren't relevant. * Dynamically allocate generic terminal buffer so derived devices (e.g. teleprinter) can specify size. * Factored out some boilerplate for YM chips with PSG. * Toaplan2 gfx. * Video System video. * Out Run/Y-board sprite alignment. * GIC video hookup. * SMS passthrough control devices starting subslots. . Device name changes: 53C7xx SCSI to NCR 53C7xx SCSI, AMD Am29000 to AMC Am29000, ARM to ARM (little), ARM7 to ARM7 (little) or ARM7 (big endian) to ARM7 (big), AY8930 to AY-3-8930A, C140 to Namco C140, C352 to Namco C352, C69 (M37702) to Namco C69 (M37702), C70 (M37702) to Namco C70 (M37702), C74 (M37702) to Namco C74 (M37702), C75 (M37702) to Namco C75 (M37702), C76 (M37702) to Namco C76 (M37702), CDP1802 to RCA CDP1802, CDP1863 to RCA CDP1863, DAC-76 COMDAC to PMI DAC-76 COMDAC, Digitalker to MM54104 Digitalker, DISCRETE to Discrete Sound, ES5505 to Ensoniq ES5505, ES5506 to Ensoniq ES5506, ES8712 to Excellent Systems ES8712 ADPCM, ESRIP to Entertainment Sciences RIP, FD1089A to Hitachi FD1089A Encrypted CPU, FD1089B to Hitachi FD1089B Encrypted CPU, FD1094 to Hitachi FD1094 Encrypted CPU, H6280 to HuC6280, HuC6280 to Hudson HuC6280, I5000 to Imagetek I5000 Sound, i960kb to i960KB, Intel 8257 to Intel 8257 DMA Controller, Intel I4004 to Intel 4004, Irem M72 Audio Custom to Irem M72 Audio, MAS3507D to MAS 3507D MPEG decoder, MEDIAGX to Cyrix MediaGX, MOS656X to MOS 656X VIC (Attack UFO), MOS6581 to MOS 6581 SID, MOS8520 to MOS 8520 CIA, Namco 15XX to Namco 15xx, NiLe to Seta ST-0026 NiLe, OKI6295 to OKI MSM6295 ADPCM, OKI6376 to OKI MSM6376 ADPCM, OKI9810 to OKI MSM9810 ADPCM, PENTIUM to Pentium, POKEY to Atari C012294 POKEY, PowerPC 603e to PowerPC 603E, PXA255 to Intel XScale PXA255, RCA CDP1869 to RCA CDP1869 VIS, RF5C400 to Ricoh RF5C400, RF5C68 to Ricoh RF5C68, S14001A to SSi TSI S14001A, SAA1099 to Philips SAA1099, SCSP to YMF292-F SCSP, SCUDSP to Sega SCUDSP, SEGA VDP PSG to Sega VDP PSG, Sega/Yamaha 315-5560 to Sega/Yamaha 315-5560 MultiPCM, Signetics 2636 to Signetics 2636 PVI, SN76477 to TI SN76477 CSG, SP0250 to GI SP0250 LPC, SP0256 to GI SP0256 Narrator Speech Processor, SPU to PlayStation SPU, ST0016 (Audio) to Seta ST0016 (Audio), TC8830F to Toshiba TC8830F, TIA to Atari TIA (Sound), uPD7756 to NEC uPD7756, uPD7759 to NEC uPD7759, VLM5030 to Sanyo VLM5030, X1-010 to Seta X1-010, Y8950 to Y8950 MSX-Audio, Yamaha YMZ770 to Yamaha YMZ770 AMMS-A, YM2151 to Yamaha YM2151 OPM, YM2203 to YM2203 OPN, YM2413 to Yamaha YM2413 OPLL, YM2608 to YM2608 OPNA, YM2610 to YM2610 OPNB, YM2610B to YM2610B OPNB, YM2612 to YM2612 OPN2, YM3438 to YM3438 OPN2C, YM3526 to YM3526 OPL, YM3812 to YM3812 OPL2, YMF262 to YMF262 OPL3, YMF271 to Yamaha YMF271, YMF278B to Yamaha YMF278B OPL4, YMZ280B to Yamaha YMZ280B PCMD8, Z8002 to Zilog Z8002 and ZSG-2 to ZOOM ZSG-2. . Worked around for Street Drivin' (prototype) sound regression and fixed Steel Talons regression . Support -listroms for devices (e.g. mpu401 or m68705p3) . Fixed a regression in -listmedia/-listslots. The issue is that -listmedia/-listslots were not honoring command line options specified on the slot. This works around the problem. . Extend slot option processing to the -listdevices command as well. Don't try adding any system-specific options when a wildcard is specified. . Have -listroms display a user-friendly message when no ROMs are required (mame\clifront.cpp) . Updated mame\audio, devices\sound, devices\video, mame\video, mame\drivers and mame\machine devices to use device_add_mconfig insted of device_mconfig_additions . Fixed emu\image.cpp: 1. If either a multipart softlist item was loaded, or a single-part item loaded into a system with more than one of the same media slot, then a reset would cause a fatal error. 2. If a non-existing image was listed in the ini, it would fatal error at start and there was no way to fix it except by hand-editing the ini file. This restores the previous behaviour of ejecting the bad image with the first error. . Fixed issue when the hash length is zero (emu\diimage.cpp) . Fixed issue with the Emscripten port where the emulation would continue to run while paused (emu\machine.cpp) . UI . Added the ability to select different tilemap categories. This allows you to select different tilemap categories in the built-in tilemap viewer. The default is to render all categories (same as before), but you can select to render only a specific tilemap category with the PAGE_UP and PAGE_DOWN keys. . Cleanups to slot options (ui\slotopt.cpp): 1. Polished up residual traces of this code's pre-C++ heritage. 2. Moved completely private code to an anonymous namespace. 3. Created device_slot_interface::slot_name() to wrap the pattern of taking the tag and removing the initial colon. . Added trailing newline to several frontend error messages . Changed 'int ignore_warnings' parameter on core_options::parse_ini_file() to be 'bool ignore_unknown_options' . Fixed bug that permanently disabled some UI search strings when they were cleared. This adopts std::string::clear() and empty() consistently, rather than storing and checking for NUL as with C-style buffers. This fixes issue #2295 ("Search bar broken after changing ROM list view mode") and probably other unreported bugs afflicting UI search text input. . Starting from the Favorites menu now starts the software list submenu (if necessary). Starting a machine containing a list of the software from the Favorites menu, now determines the launch of the appropriate sub-menu with the list of software. . Better completions (plugins\console\init.lua) . Adding hack to fish hashpath option out of INI files prior to softlist evaluation. EIENTEI95 reported an error where the hashpath specified in INI files was not being honored in softlist evaluation. This is a change to preprocess INI files for the sole purpose of finding the hashpath prior to evaluating softlists. . Check for callback name being a null pointer before sending it to %s (emu\schedule.cpp) . Refactoring/cleanup to state load/save handling: Changed running_machine::schedule_[load|save]() to take 'std::string &&' instead of 'const char *'. Changed running_machine::saveload_schedule to be 'enum class'. . Improvements to ROM comparison (tools\romcmp.cpp): Identify plain ASCII text files as such. If a ROM has the same data in each half, print the hashes for that. Avoid buffer overruns. For calculating address masks, don't assume file size to be a power of 2. . Bug fix to -romident and aux verb cleanup. Fixed a bug where resolved slot/image options would choke -romident (reproducible in MAME 0.185 with 'mame64 -romident'). 'mame64 -romident' no longer crashes. Resurrected auxverb_cleanup_and_romident_bugfix. Changed usage for -romident and minor cleanups. Supporting auxverbs in any order. . PLUGINS: Updated hiscore.dat . 3rdparty: Replaced Linenoise-NG with a different port that is simpler and uses a different UTF8 parser. Work around older libc (3rdparty\linenoise\linenoise.c). . VIDEO RENDERING SYSTEM . Fixed HQx shaders with BGFX OpenGL backend . Removed the minimum sleep time constraint in video_manager::throttle_until_ticks (emu\video.cpp) . Audit/Validity check . Perform unitmask checking during validation in non-debug builds (emu\addrmap.cpp) . Make single-driver command-line validation work again. Removed some now-redundant checks related to device name validity (including the slot test, which also made assumptions that some (MESS) TI99 bus devices now break). . ~67% improvement of device walk in -verifyroms (mame\clifront.cpp) . -validate complains if device shortnames exceed 32 characters. -listroms and -verifyroms accept multiple names/patterns. . Allow multiple patterns/names for -listxml. Make -listxml instantiate slot devices in slots rather than under the machine root. Fixed -listxml output stops with many sets (agat.cpp, c64.cpp, c128.cpp, ec184x.cpp, iskr103x.cpp, ksys573.cpp, pet.cpp, poisk1.cpp and ti99_4ev.cpp) (ID 06558)(ID 06591). . Removed duplicates from list of approximate software matches (emu\softlist_dev.cpp) . Palette . Don't hardcode color PROM region name and added error handling (emu\emupal.cpp; drivers\aeroboto.cpp, arkanoid.cpp, chinsan.cpp, commando.cpp, exprraid.cpp, exzisus.cpp, flower.cpp, freekick.cpp, goindol.cpp, hexion.cpp, hnayayoi.cpp, holeland.cpp, ichiban.cpp, kyugo.cpp, lasso.cpp, lsasquad.cpp, m63.cpp, mexico86.cpp, mjkjidai.cpp, mjsister.cpp, ppmast93.cpp, pturn.cpp, rmhaihai.cpp, sauro.cpp, shangkid.cpp, slapfght.cpp, snk.cpp, tsamurai.cpp and vastar.cpp) . Replaced some custom palette inits with the appropriate standard callback (drivers\40love.cpp, gluck2.cpp, istellar.cpp, lvcards.cpp and mustache.cpp) . Removed MACHINE_CONFIG_FRAGMENT. This is a pretty minimal change. The point where the root device is added has been moved from the MACHINE_CONFIG_START macro to the constructor of the machine configuration class (made possible by giving drivers their own device types). This isn't the final change in this area. The root device is still being handled specially in that its configuration comes from the game driver structure. This needs to be harmonised with regular devices. . Added device-specific machine configuration (emu\device.cpp, driver.cpp, gamedrv.h and mconfig.cpp). Use Zaccaria driver as a demo for machine config in members. Get rid of mconfig trampoline in a few devices, make handlers protected. Changed some device_mconfig_additions to device_add_mconfig. . General cleanup: Moved rarely-used output and pty interfaces out of emu.h. Consolidate and de-duplicate forward declarations, also remove some obsolete ones. Clean up more #include guard macros. Scope down a few more things. . Cleanups to ram_device (machine\ram.cpp): 1. Changed ram_device to expose specific options, removing the burden for clients to parse RAM strings. 2. Moved validation of command line arguments out of device_validity_check(); that method is only intended for checking the device itself. 3. Miscellaneous polishing. . Multi-Language: Updated Hungarian language localization . Retired min/max in attotime.h, in favor of std::[min|max] (emu\attotime.h, schedule.cpp). . Fixed tools\romcmp.cpp regression with identifying bits stuck high - Compiling . Removed timer_set in dday.cpp, exidy440.cpp, lethalj.cpp, m10.cpp, m92.cpp, metro.cpp and segag80r.cpp . Removed timer_pulse in mw8080bw.cpp, rbisland.cpp, qdrmfgp.cpp, tetrisp2.cpp, machine\rtc9701.cpp, machine\s3520cf.cpp, machine\v3021.cpp, sound\sp0250.cpp, audio\namco52.cpp and emu\schedule.cpp . Fixed a few things found by Coverity (software) in gts1.cpp, rowamet.cpp and mame\info.cpp . LUA . LUA scripts cleanup (scripts\src\lib.lua) . Support LUA style args for some emu.file members (mame\luaengine.cpp) . GCC 7.1 . Fixed obvious bugs found by GCC 7.1 (cpu\dsp56k\dsp56pcu.cpp, spc700\spc700.cpp, machine\stvcd.cpp, video\snes_ppu.cpp, decodmd1.cpp, emu\render.h and machine\n64.cpp) . Fixed buffer overrun warnings from GCC 7.1 (cpu\i8089\i8089_dasm.cpp, drivers\megasys1.cpp and pengadvb.cpp) . Fixed remaining GCC 7.1 issue (mame\luaengine.h, netlist\plib/ppmf.h and tools\chdman.cpp) . Fixed compile with PSXGPU_DEBUG_VIEWER on (video\psx.cpp) . Make the code acceptable to Clang 4.0.0 (drivers\cedar_magnet.cpp) . Don't use -static on msys2 Clang 4.0.0 as it's currently broken, also removed -static-libgcc & -static-libstdc++ on GCC builds as they have no effect if you use -static (scripts\genie.lua). . 32-bit release builds need /bigobj (scripts\genie.lua) - Debugger . Fixed a crash in the 'symlist' debugger command (debug\debugcmd.cpp) (ID 06575) . Assert output calback is set for keyboard/terminal . Scoped enum for Windows (debugger\debugwin.cpp; MACHINE_PHASE_RUNNING -> machine_phase::RUNNING) . m_owner->tag() -> owner()->tag() cleanup in machine\68561mpcc.cpp, scnxx562.cpp, z80dart.cpp, z80scc.cpp, z80sio.cpp and video\i82730.cpp 0.185 - New games: Acchi Muite Hoi, Galaxy Games StarPak 4 (prototype), Pirate Ship (ver UAA) and Tekken Card World - New Working games: Popper and Soreike Kokology Vol. 2 - New Non-Working games: Gaelco Championship Tuning Race, GI-Classic EX (satellite terminal), GI-Classic EX (server), MegaTouch XL (Italy Version R1), MegaTouch XL 6000 (Version r07), MegaTouch XL Gold (Version r01), MegaTouch XL Super 5000 (Version R5I), Otomedius (ver GGG:J:A:A:2008041801), Police Trainer 2, Ring Riders (Software version v2.2), Shark [TTL], Super Derby II (Satellite board), Super Star (Recreativos Franco), "Unknown Poker Game", "Unknown Sega gambling game (M1 Satellite board)" and "Unknown 'VIP 2000' game" - New clones: Bionic Commandos (bootleg, set 2), Gals Panic DX (Asia), Knights of Valour / Sangoku Senki (ver. 100, Hong Kong), Mach Breakers (World, MB2), Martial Masters (ver. 103, 102, 101CN), Megatack (set 2), MegaTouch XL Gold (Version r00), MegaTouch XL 6000 (Version r02), MegaTouch XL Super 5000 (Version R5B), MegaTouch XL Super 5000 (Version R5E), Prehistoric Isle in 1930 (World, bootleg), Rastan (World, Earlier code base), The Real Ghostbusters (US 3 Players, revision ?), Sonic Blast Man (US), Street Fighter II': Champion Edition (UPL bootleg), Tokyo Cop (US, dedicated version), Tokyo Cop (US, kit version) and Up Maguila (bootleg of Donkey Kong Jr.) - New TourVision games (Softwarelist: hash\pce_tourvision.xml): Dragon Egg! (Masaya 1991) - New PinMAME games: Galaxy Play, Rocky (French speech) and U.S.A. Football (R01u) - New drivers: acchi.cpp, clpoker.cpp, giclassic.cpp, mtouchxl.cpp, otomedius.cpp, piratesh.cpp, supstarf.cpp and usbilliards.cpp - New devices: 3c505, ad7523, aga, aga_pc200, aha1542, ap2000, at_keybc, at_mb, atmel_49f4096, centronics, centronics_printer, clgd542x, comx_pl80, covox, covox_stereo, crtc_ega, cxd1095, dectalk_isa, dm_clgd5430, dms3d2kp, dp8390d, dp8473, ds1205, e05a03, e05a30, ec1481, ec1840_0002, ega, el2_3c503, et4000, ex800, fdc344, fdcmag, finalchs, gf1, gfxultra, gfxultrp, hdc, hdc_ec1841, i486dx4, i8272a, ibm_mfc, ibm_vga, input_buffer, isa_adlib, isa_com, isa_com_at, isa_gblaster, isa_gus, isa_hercules, isa_ibm_mda, isa_ibm_pgc, isa_ide, isa_lpt, isa_mpu401, isa_pds, isa8_fdc_at, isa8_fdc_ps2, isa8_fdc_smc, isa8_fdc_superio, isa8_fdc_xt, k053250ps, lx800, lx810l, mach32, mach32_8514a, mach64, mach64_8514a, mach64isa, mcd_isa, mcpx_ac97_modem, mcpx_apu, mcpx_av97_audio, mcpx_eth, mcpx_ide, mcpx_lpc, mcpx_ohci, mcpx_smbus, mcs3201, mos6581, mos8580, mpu401, msm6253, n82077aa, ne1000, ne2000, nv2a_agp, nv2a_gpu, nv2a_host, nv2a_ram, number_9_rev, output_latch, p72, pc_fdc_at, pc_fdc_superio, pc_fdc_xt, pc_lpt, pc8477a, rtl8019a, s3_764, s3virge, s3virgedx, s97269pb, s97271p, sb16, sega32_pcb_4player, sega32_pcb_analog, sega32_pcb_cd, sega32_pcb_multi_6player, sega32_pcb_multi_analog, sega32_pcb_trackball, segakbd_pcb_aburner2, side116, smc37c78, ssi2001, st11m, stereo_fx, tc8566af, tgui9680, tmp90ph44, upd72065, upd7220, upd765a, upd765b, usb_ohci, virge_vga, virgedx_r1, virgedx_vga, vs9209, wd1002a_wx1, wd11c00_17, wd2010, wd37c65c, wdxt_gen, xt_hdc and xtide - Dynamic Re-Compiling: Added case for parameter PTYPE_CODE_LABEL in UML instruction disassembly (cpu\uml.cpp) - Hyperstone CPUs: Moved memory macros out of header file to help prevent naming conflicts (cpu\e132xs\e132xs.cpp) - I386 CPU . Ignore float exceptions in debugger . Added a CPUID supporting I486DX4 - I386 CPU and M68000 CPU: Workaround for multiple inclusion until SoftFloat is updated to version 3 - I8051 / MCS-51 CPU: Fixed the indirect memory access opcodes dec,inc and xch_a. Indirect access can't touch the SFR and must point to the extra memory above 0x80. This probably fix many machines using this MCU (cpu\mcs51\mcs51ops.hxx). - I8086 CPU . Added decrypted opcodes space support . Fixed jnl flags test - TMS32025 CPU: Fixed TMS32026 status register and banking - Sound Blaster 16: Added save DSP state. Fixed incessant popping before first use. - YMF262 sound: Added save state support to YMF262 and slot pointer checks. - 8251 USART: Improved logging; restrict external command_w and mode_w access to V53 variant. - Crystal: Correction and addition (emu\drivers\xtal.h) - CD-ROM: Translate from 2336 to 2048 (Return 2048 bytes of Mode 1 data from a Mode 2 form or XA sector) - Discrete Netlist . Turn psring iterator into a real forward iterator that works with standard algorithms. There are a few changes to achieve this: * Renamed to const_iterator since it's immutable. * Typedef iterator to const_iterator for now as there's no mutable iterator. * Added default constrcutor and operator-> required by concept, const-qualify operators. * Removed operator+ and operator+= since it's not a random-access iterator (use std::next and std::advance instead). * Return reference/pointer to a proxy rather than a code_t value from opertator*/operator->. The final change is required to meet the requirement that operator* for two equivalent forward iterators return an equivalent reference. The pstring doesn't actually contain a sequence of code_t, so there's no way to return a reference to code_t directly. Instead, a reference to a proxy object aliased on the string storage is returned. The proxy is implicitly convertible to code_t. The most noticeable side effect is that auto c = *s.begin() or for (auto c : s) won't work. You need to do for (auto &c : s) or for (code_t c : s) instead. . Changed pstring to use std::string as storage container. This removes all allocation code from pstring. const_iterator is consequently now based on pstring::const_iterator. Removed pstring_buffer. This was class wasn't a good idea. Vas was right: This change did not impact runtime performance. Startup performance (string intensive) increased. Use char32_t were appropriate. Fixed pedantic Clang warnings. . pstring, pdynlib, pfmtlog refactoring: pstring: Added support for UTF16LE to pstring. Renamed size() to mem_t_size(). Renmaed len() to length(). Added size() == length(). Added empty(). Added simple compare(). pfmtlog: Simplified pfmtlog, added more C++. pdynlib: Added a dynproc type to dynlib to wrap dynamic library calls. Various: Fixed two coverty scan issue. Various Clang warnings fixed. . Netlist code refactoring: More use of C++ features. Some CRTP in pfmtlog. Demangled code for truthtables. Use more constexpr. Rewrote main loop. Use default constructors and assignment operators were applicable. Optimized 7448 and 9316. All of this has decreased startup time by approx. 25% to 30%. Complex netlists like pong or kidniki are parsed, analyzed and constructed in around 15 ms. Run performance has increased by about 5%. All in all not to bad. A game like pong uses a clock of 7 MHz (after division by 2). Thats 14 MHz clock invocations. Running at over 200%, 28MHz. On a 3.9 GHz Machine about 140 cycles/clock change. . Refactored 74715 to one device layout. Removed subdevice. . Parametrized device activation in truthtables and minor optimization (devices\nlid_truthtable.h) - ISA: Provide proper unitmask for address spaces of any data width (bus\isa\isa.h) - Konami Custom: Fixed palette-related regressions in Konami GX games (video\k053246_k053247_k055673.cpp) - Midway Custom: Block register updates until unlocked (machine\midwayic.cpp) - Sega Custom . segajw.cpp: Use 315-5296 for I/O . segam1.cpp: Added 315-5296 and some placeholder RAM areas . segas24.cpp and segaybd.cpp: Read inputs through 315-5296 . Sega Rally Championship: Hook up 315-5296 I/O on drive board (does nothing yet) - Sony Custom: Added CXD1095 CMOS I/O Port Expander - V9938 video: New device interface for palettes. Created device_palette_interface, which takes over most functionality from palette_device except for the initialization/decoding routines and RAM interface. Updated screen_device and device_gfx_interface to use a device_palette_interface object rather than a palette_device. This necessitates slight alterations to a few drivers and devices. Modified v9938 and v9958 to use the new device_palette_interface rather than a subdevice. This entails breaking a cyclic dependency between device_video_interface and screen_device for this case. A little cleanup V9938. - Voodoo GFX: Changed multi base address selection to fix Funky Ball textures (video\voodoo.cpp). Reverted texture base address calculation to fix seattle driver. - VS9209 I/O: Added VS9209 I/O device for aerofgt.cpp, gstriker.cpp, suprslam.cpp and taotaido.cpp - alpha68k.cpp: Added missing save_item's because otherwise the sound was missing with autosave enabled (ID 06532) - atlantis.cpp and midzeus.cpp . Fixed waveram0 write. Changed conversion to screen coordinates. Added initial blending (video\zeus2.cpp). . Added texture lookup for RGB555 direct color type (video\zeus2.cpp) . Added UV scaling (video\zeus2.cpp) . Increase input FIFO empty interrupt time and start to use address for quad selection (video\zeus2.cpp) . Working on depth buffering. Don't include texture information on normal builds to reduce exe size (video\zeus2.h). . Handle buffer wrapping during frame clear. Select quad size based on microcode source and add code for trimesh rendering (video\zeus2.cpp). . Fixed fast fill routine (video\zeus2.cpp) . Added trackball and keyboard to 'The Grid'. Driver reorg and cleanup. . Updated thegrid and mwskins dips. Block register updates until unlocked (machine\midwayic.cpp). - chihiro.cpp . Added high level simulation of AN2131SC. Let's pretend there is a drive board connected, so OutRun 2 can run with USB enabled and no patches. . Make 'Chihiro Firmware Update For Compact Flash Box (4.01)' start too (video\xbox_nv2a.cpp) . Minor driver update. USB is always enabled now and removed unused parts. . Fixed jamdis debug command . First step in removing the legacy PCI system in favor of the new one (machine\xbox.cpp) - chihiro.cpp, naomi.cpp and triforce.cpp . Converted avalon20, cleoftp, ghostsqu, gundamos, hotd3, initdv3jb, lupinsho, mj2, mj3d, monkeyba, outr2st, radirgyo, scg06nt, tfupdate, wangmid2 and wangmid2j bad CHD v4 to good v5, track1 and track2 length was restored based on known now data patterns. . Added TMP90PH44 device type for Sega 837-13551 I/O Board . Removed identical second halves of overdumped MCU PROMs (machine\jvs13551.cpp) - coolpool.cpp: Fixed TMS32026 status register and banking (cpu\tms32025\tms32025.cpp). This fixed 9-Ball Shootout and Cool Pool can't coin up (ID 06516). - ddealer.cpp: Fixed 'Gun Card' logic. Minor port fix. - decocass.cpp: Fixed missile colors for Astro Fantasia and Highway Chase - galgames.cpp and tmaster.cpp . Improved blit coordinates (video\cesblit.cpp), fixes some missing graphics in e.g. Galaxy Games StarPak 4. . Fixed OKI6295 CPU1 clock speed in galgames.cpp - hng64.cpp: Moved TLCS-870 macros into source file for now to avoid potential naming conflicts - ksys573.cpp: Fixed 'Guitar Freaks 6th Mix' from booting up due to an incorrect flash card memory size. 32MB works for Guitar Freaks 5th Mix as well. - lindbergh.cpp: Added placeholder for OHCI device (machine\pci-usb.cpp) - megaplay.cpp: Use CXD1095 device for BIOS I/O - megatech.cpp: Rewrote CXD1095 as a device - model1/2/3.cpp: Converted Sega Model 1 Sound Board and Z80-based Digital Sound Board to use proper UART-based serial interfaces. Fixed Sega sound data serial rate. - model2.cpp . Rail Chase 2: Added I/O CPU and expander. There seems to have been an unrelated regression since 0.181 in Rail Chase 2, which now only displays a black screen. Load user1 ROMs closer together to avert read from undefined data at 0x2600000 that drives CPU off rails in debug build. This might not be the correct loading method, but it's at least similar to vf2 and bel (which, like rchase2, have 2MB rather than 4MB ROMs). It's a non-working driver in any case. . Sega Rally Championship: Hook up 315-5296 I/O on drive board (does nothing yet). Added OKI MSM6253 device. - namcofl.cpp: Killed anonymous timers, moved to configured banking and added save state support. Also moved some remaining functions inside the class. - namconb1.cpp . Corrected coin inputs and added in Coin3 & Coin4 as needed in outfxies and 'nbsports' games . Corrected coin inputs, when set to individual coins slots they were reversed. - naomi.cpp: Redumped clone 'Initial D Arcade Stage Ver. 2 (Export) (GDS-0027)' - neodriv.hxx: Fixed out of bounds issues in NeoGeo memory access. The NeoGeo driver exposes a number of different memory regions as vectors. Accessing the pointers was done through a '&vector[0]' pattern. This caused problems when the region was size zero; I changed the code to return null pointers in these scenarios. This was reported by Robbbert in response to recent regressions (the command line was 'mame aes bjourney'), but it seems to be present in MAME 0.184. - nss.cpp, sfcbox.cpp and snesb.cpp: Removed a few legacy type macros and eliminated uint type properly (cpu\g65816\g65816cm.h) - peplus.cpp . Documentation updates based on printed IGT materials . Patriot Poker has multiple Bonus levels - sangho.cpp: Fixed clocks based on actual XTAL. Picture of PCB clearly shows a 21.4772MHz, PCB has a Z80B so clock is 3.58 based on XTAL like the YM2413. - segas32.cpp . Input modernization: Use I8255 or MSM6253 devices for most non-JAMMA inputs. Separate service and test inputs in Multi-32 and twin-unit sets. . Four coins are recognized in Air Rescue, not just two. Use MB8421 device for V25 communications in Golden Axe 2. Assign keys in OutRunners to some 2P inputs. . Corrected Kokoroji 2 inputs. Added SONY CXD1095 CMOS I/O Port Expander. Promoted Kokoroji 2 to working. Find switch to disable CD & printer; game presumably works now, though rather imperfectly. Game name changed to agree with title screen. Added a whole bunch of lamps. . Use Sega 315-5296 device for primary I/O. Restored Coin 2 inputs to f1lap, radm, radr and slipstrm. . Identified onboard service inputs and restore them to practically all games . Disabled some (probably strictly unnecessary) address mirroring due to memory init thrashing when combined with DEVREADWRITE8(0x00ff) . Removed device clocks for 315-5296 (not used by the emulation) where not verified - segaxbd.cpp: Rewrote CXD1095 as a device. Watchdog type is MB3773. - segaybd.cpp: Added OKI MSM6253 device. Watchdog type is MB3773. Too many watchdog resets; schematics may be wrong. Correct I/O clock; misc. notes. - seibuspi.c and zn.c: When built with MSVC, clear() resets m_buffer size to 0 and m_buffer[0] throws an exception (machine\7200fifo.cpp). - stv.cpp: Workaround for finlarch/sasissu/magzun ODD bit regression (video\stvvdp2.cpp) - tatsumi.cpp: Read inputs through CXD1095 device (cyclwarr and bigfight) - vicdual.cpp: Added 97269-P-B and 97271-P daughterboards for N-Sub. Fixed missing explosion sound. - viper.cpp . Input cleanups. Identified dipswitch position. Inverted flip dip. Red pen these placeholder dumps. . Fixed 'ParaParaParadise 2nd Mix' dipswitch error . Tsurugi "Foot Pedal" input . Bypass serial check for Police 911 - vp101.cpp: Improved support for reduced-cost VP050 version - BeatHead: Removed speedup hack - Bingo Circus: Added 8x UARTs - Blood Bros., Toki and others: Added dump of bipolar PROM. Documented undumped PROMs for cupsoc, dbldynj, dynduke, raiden, skysmash and totmejan. - Boxer (prototype): Added save state support - Chameleon 24: Don't crash on soft reset - China Gate: Explicitly specify 8-way joysticks for consistency - Disco Boy: Kill trampoline, removed unneeded prefixes and use bankdev for the first ram bank. - E Jong High School: Correct game name; document adapter layout. - Funky Ball: hanged multi base address selection to fix Funky Ball textures (video\voodoo.cpp). Changed MCFG_ADDRESS_MAP_BANK_ADDRBUS_WIDTH from 64 -> 32 - Hot Rod: Read pedals through MSM6253 - Janken Man Kattara Ageru: Added DAC type - Jumping Pop: Fixed 'BG Modesty' dipswitch in Jumping Pop. The nude/bikini pics are displayed after a level when set; more modesty means more clothes and vice versa. - Knights of Valour 3 HD: Redumped game - Mahjong CLUB 90's: Removed DSW B from the driver as it does not exist on the real PCB (ID 06526) - Mahjong Sisters: Substitute timer_set with timer_alloc(timer) and timer->adjust() - Midnight Landing: TMS32025 memory map fix - New York! New York!: Documented that Taito's T.T. New York New York ROMs match the Sigma set. - PinMAME: Adjust Meg-Aaton clocks to conform with schematics - Popper: Fixed memory map and finish gfx rendering. Game is fully working again. - Sprint 4 and Ultra Tank: Killed anonymous timers, removed unneeded prefixes and added save state support. - Sprint 8: Added save state support - Volfied: Removed prefixes and used timer_alloc instead of timer_set - Wolf Pack: Added save state support, removed unneeded prefixes and moved from timer_set to timer_alloc. - VLC Nevada: Make it to show something - Input port . albazc.cpp: Use standard inputs consistent with other hanafuda games. Hanafuda games usually have a mahjong panel for input. Removed hard coded IPT_SERVICE assignments. Assign "Data Clear" to IPT_MEMORY_RESET. Changed "Medal In" & "Pay Out" to standard gamble service buttons (Previously standard service buttons). Changed Lockout "Key" to PORT_TOGGLE type. Payout operation has been clarified and noted at start of driver. Correct "Payout" button to use "IPT_GAMBLE_PAYOUT". Added Hookup hopper to to do list. Added hopper activity addresses to notes. Set IPT_SERVICE & Double up buttons as standard assignments. Set "Ext In 1" & "Ext In 2" as IPT_OTHER. . aleck64.cpp: Correct Service/Test Button assignments. "Service Mode" which is assigned to IPT_SERVICE is not located in aleck64.cpp - No changes. "Service Button" is assigned to IPT_SERVICE1 (Hard coded keycode removed & default used). "Test Button" is assigned to IPT_SERVICE2 (Test Button is not displayed in Machine input). . amaticmg.cpp: Removed hard coded key assignment and use default mapping . ampoker2.cpp: Make various key assignments consistant. Cleanup different assignments for the same buttons across supported games while still keeping true to the Game Notes / Operation instructions. 1. Make "Operator Key" consistant (Use IPT_GAMBLE_SERVICE), 2. Make "Supervisor Key" consistant (Use IPT_SERVICE2), 3. Make "Hopper 1" consistant (Use IPT_OTHER, KEYCODE_Y), 4. Make "Hopper Out" consistant (Use IPT_OTHER, KEYCODE_G), 5. Make "Hopper Low" consistant (Use IPT_OTHER, KEYCODE_H), 6. Make "Return Line" consistant (Use IPT_OTHER, KEYCODE_J), 7. Make "Coin Refill" consistant (Use IPT_OTHER, KEYCODE_R), 8. Make "Payout" consistant (Use IPT_GAMBLE_PAYOUT), 9. Make "TILT" consistant (Use IPT_TILT) and 10. Make "Double" consistant (Use IPT_GAMBLE_D_UP). . realbrk.cpp: Removed service button hard coded keycode assignment. Removed hard coded key assignment and use default mapping. - Dipswitch fixes in ddealer.cpp, nbmj8891.cpp, viper.cpp - Fixed rom names in namconb1.cpp, shangha3.cpp and segas32.cpp - Description changes of Bionic Commandos (bootleg, set 1), Boxing Mania: Ashita no Joe (ver JAA), Knights of Valour 3 HD (M-105CN 13-07-04 18:54:01), GTI Club: Corso Italiano (ver JAB), GTI Club: Corso Italiano (ver EAA), Mach Breakers - Numan Athletics 2 (Japan, MB1), Megatack (set 1), Merit Joker Poker (9131-09), Mushiking The King Of Beetles - Mushiking II / III / III+ (Ver. 2.001) (World), Mushiking The King Of Beetles - Mushiking II / III / III+ (Ver. 1.001) (World), Soreike Kokology Vol. 2 - Kokoro no Tanteikyoku and U.S.A. Football (R06u) - Renamed (machbrkr) to (machbrkrj), (sbm) to (sbmj) and (tokyocop) to (tokyocopi) - MAME . 3rdparty: BGFX, BGFX shaders, GENie and BX. Assume LLVM libc++ if __llvm__ is defined but __GLIBC__ is undefined (bx\platform.h). Fixed GENie linking order. . VIDEO RENDERING SYSTEM . Guard against assert failure on partial updates starting from incomplete first line (emu\screen.cpp) . Moved "optional" basemem and extmem arrays out of tilemap_t. This is intended as a first step towards divorcing tilemap_t and tilemap_device. . Reverted entries(), indirect_entries(), shadows_enabled() and hilights_enabled() to return the configuration parameters instead of accessing the live state. The thought behind the implementation change was that palette devices could potentially determine the number of entries from the sizes of devfind objects. The regressions caused by this have been worked around, but it was probably a bad idea in the first place. Zero-entry palettes are no longer valid. The code that tried to support them was basically left over from when every running machine had a single global palette. Reverted entries(), indirect_entries(), shadows_enabled() and hilights_enabled() to return the configuration parameters instead of accessing the live state. The thought behind the implementation change was that palette devices could potentially determine the number of entries from the sizes of devfind objects. The regressions caused by this have been worked around, but it was probably a bad idea in the first place. Zero-entry palettes are no longer valid. The code that tried to support them was basically left over from when every running machine had a single global palette. Disallow a negative number of palette entries by changing some types (emu\dipalette.cpp) . BGFX: Apply environment variable substitution to bgfx_path (render\bgfx\chainmanager.cpp, effectmanager.cpp and shadermanager.cpp) . DEVICE . Renamed the write-only -printer image instance type to -printout. The former option name conflicts with RS232 printer ports in several drivers (emu\diimage.cpp). . New device interface for palettes. Created device_palette_interface, which takes over most functionality from palette_device except for the initialization/decoding routines and RAM interface. Updated screen_device and device_gfx_interface to use a device_palette_interface object rather than a palette_device. This necessitates slight alterations to a few drivers and devices. Modified v9938 and v9958 to use the new device_palette_interface rather than a subdevice. This entails breaking a cyclic dependency between device_video_interface and screen_device for this case. Enforce dependencies in various Konami, Sega & Seta GFX devices. Disable palette uniqueness check in divideo. . Made a number of device_image_interface members private. This also fixes a number of get_default_card_software() implementations that were accessing m_file incorrectly. Removed duplicate prototype. . Fixed an issue where reset_on_load images would not properly persist across emulation sessions (emu\image.cpp) . Workaround for issue where the cannonical instance_name for a device was lost (emu\image.cpp). This is a hack; details are in the source code. I felt that it was too late in the 0.185 release cycle to do anything intrusive. I intend to fix this "for real" when image/slot option morphing is encapsulated within emu_options. . UI . Input map fixes: Fixed a longstanding bug that prevented binding several ORed buttons to any input belonging to a non-root device. Fixed a visual glitch when assigning inputs to analog sequences. Fixed buttons cannot be mapped to more than one key using 'or' logic using internal UI in all drivers with slot-based controllers (ID 06519). . Fixed selecting a new ROM file through the internal UI for consoles via external path ((MESS) a2600, a7800, coleco, genesis, nes and snes) (ID 06531). Fixed UI 'Switch Item Ordering' corrupts software list (ID 06402). . Fixed issues specifying image/slot options fron INI files. I added hooks so that options specified at the command line can also be responded to when parsed from INI files, but in the long run much of the logic that is currently in mame_options should go into emu_options so that when an option is specified, all of the wacko logic around slot/image specification "just works" because it is encapsulated within emu_options. . More options refactoring: Stabilization options function for 0.185 release . Fixed a regression in the mandatory image check. As a consequence of recent changes, we were not properly blocking the emulation from starting when a must_be_loaded() image had an unspecified image (ui\info.cpp and ui.cpp). . Workaround for scenarios where both the command line and an INI specify an image option. This is a hack; see commentary within the code. I intend to fix this "for real" when emu_options become more self contained (emu\emuopts.cpp). . MEMORY SYSTEM: Removed direct_update from the core (emu\emumem.cpp) . Fixed issue that could cause bogus arguments to be reported incorrectly (util\options.cpp). Examples: 'mame -whatever nes' would previously be reported as "Unrecognized argument: nes". . SOFTWARE LIST . Fixed a bug that caused "Switch Item Ordering" in the software list menu to dupe entries (ID 6402) . Changed a lookup within the softlist code to use std::find_if() . Changes to make get_default_card_software() less stupid. The goals with this change is to make get_default_card_software() a bit more standalone by making it a const method that does not mutate the state of the device_image_interface. This is done by passing in a small structure that encapsulates the minimum of information that get_default_card_software() needs. This also eliminates the need for device_image_interface::open_image_file() . Introduced an 'util::arbitrary_clock' template class, to represent a clock that "knows" when the epoch starts. Converted the NTFS filetime code and Mac datetime code to use util::arbitrary_clock. This is in preparation for a bigger change to Imgtool where I eliminate usage of time_t. . Validity . Changed the validity checks to have its own emu_options. This comes from a regression reported by Tafoid whereby the following command line "mame coco wildcat" would report the following error, which was not really fatal because it happened within validation: Driver t4426 (file coco12.cpp): 1 errors, 0 warnings Errors: Fatal error Unknown slot option 'pak' in slot 'ext'. My changes to option processing changed emu_options to put image and slot options in their own arrays, and I expect those image/slot options to be pertinent to the active driver. However, driver validation was passing the emu_options associated with the main emulation to validation specific maching_config for other drivers. This changes validate_one() to always use a fresh emu_options with each individual validation. . Changed validity_checker to keep a fresh emu_options for validation purposes. This seems to solve the performance problems introduced by PR#2221 while keeping with that PR's goals of not using the "runtime" emu_options for purposes of validation. . Workaround for sibling disk image loading issue (emu\romload.cpp) - MAC OS X: Fixed OS X tools build when MAME_DIR includes spaces (src\tools.lua) - Compiling . Fixed a pedantic MSVC warning in emu\dipalette.h . Made a number of methods be const correct and static where appropriate. Also changed a few methods to return 'bool' when appropriate. . Removed timer_set in artmagic.cpp, blstroid.cpp, cave.cpp, galastrm.cpp, galaxian.cpp, gpworld.cpp, groundfx.cpp, gunpey.cpp, hyprduel.cpp, midtunit.cpp, overdriv.cpp, segas32.cpp, taito_f3.cpp, toaplan2.cpp, triplhnt.cpp, tubep.cpp and victory.cpp. . More timer_alloc changes in astinvad.cpp, boxer.cpp and destroyr.cpp. . Removed anonymous timers in astrocde.cpp, asuka.cpp, dcheese.cpp, flyball.cpp, gameplan.cpp, gaplus.cpp, gcpinbal.cpp, gunbustr.cpp, hyhoo.cpp, kinst.cpp, midvunit.cpp, midzeus.cpp, nightgal.cpp, opwolf.cpp, othunder.cpp, pastelg.cpp, policetr.cpp, rabbit.cpp, rollerg.cpp, segaorun.cpp, sprint8.cpp, stfight.cpp, tehkanwc.cpp, thunderx.cpp and trucocl.cpp - Debugger . More robust memory access operator parsing (debug\express.cpp) . Fixed writes to decrypted opcode memory (debug\debugcpu.cpp). Fixes problem in the debugger and the cheat engine as currently the writes to opcode memory are not handled correctly, so separated EXPSPACE_RAMWRITE and EXPSPACE_OPCODE case statements to allow opcode writes to access the correct memory. Example: In flicky this will now disable cat collisions with the main sprite: maincpu.ob@3ac6=c3. This is the simplest way of updating this, EXPSPACE_OPCODE is now a copy of EXPSPACE_RAMWRITE except it uses AS_DECRYPTED_OPCODES instead of AS_PROGRAM. This method means I've got a lot of work updating a lot of cheat file warnings ...but this is the correct way of doing this. . Make debugger 'dasm' command able to traverse virtual spaces with unmapped holes. Previously, 'dasm' would enter an infinite loop if it hit an unmapped pc, continuing to grow the output file until the program was killed (debug\debugcmd.cpp). 0.184 - New games: Shiny Golds and 'Soreike! Anpanman Popcorn Factory (Rev B)' - New Non-Working games: Zoofari - New clones: 2 On 2 Open Ice Challenge (rev 1.2A), Dynablaster / Bomber Man (bootleg, set 3), Flashgal (set 1, Kyugo logo), Gals Panic (MCU Protected, set 2), Griffon (Olympia bootleg of Phoenix), Karnov (Japan, bootleg with NEC D8748HD), NBA Play By Play (ver AAB), OutRun 2 Special Tours (GDX-0014), Penguin Brothers (Japan, bootleg), Phoenix (IDI bootleg), Pot O' Gold (U.S. Games, v580F), Radical Radial (Japan), Raiden II (Germany), San Francisco Rush (boot rom L 1.06A), San Francisco Rush: The Rock (Wavenet, boot rom L 1.38, GUTS Aug 6 1997 / MAIN Aug 5 1997), San Francisco Rush: The Rock (Wavenet, boot rom L 1.38, GUTS Aug 19 1997 / MAIN Aug 19 1997), Shanghai III (US, prototype), Skins Game Tournament Edition, Street Fighter II: The World Warrior (World 910129), Super Crowns Golf (World), Time Traveler (set 2) and Wangan Midnight Maximum Tune 2 (Export) (GDX-0016) - New AGEMAME games: Alchemist (01J02046, Venezuela), Bachelorette Party (BHG1248, US), Boot Scootin' (GHG1008-03, US), Cash Cat (0100557V, NSW/ACT), Cash Cat (0100676V, NSW/ACT), Desert Bloom (0300111V, NSW/ACT), Dolphin Treasure - Cash Express (AHG1519, US), Dolphin Treasure - Cash Express (AHG1607, US), Dream Weaver (0200586V, NSW/ACT), Fast Fortune (0100651V, NSW/ACT), Jumpin' Joey (0100383V, NSW/ACT), King Galah (0100536V, NSW/ACT), Loco Loot (0100473V, NSW/ACT), Lucky Clover (0300109V, NSW/ACT), Magic Mask (AHG1549, US), Magic Touch (0300455V, NSW/ACT), Mammoth Money (0100425V, NSW/ACT), Mine, Mine, Mine (0400115V, NSW/ACT), Money Mouse (0300469V, NSW/ACT), Mountain Money (0100289V, NSW/ACT), Orchid Mist (0100849V, NSW/ACT), Oscar (0100348V, NSW/ACT), Penguin Pays - Penguin Pucks (EHG1257, US), Penguin Pays (0100113V, NSW/ACT), Penguin Pirate (0100674V, NSW/ACT), Penguin Pirate (0200578V, NSW/ACT), Queen of the Nile - Cash Express (AHG1525, US), Queen of the Nile - Cash Express (AHG1609, US), Queen of the Nile (0101139V, NSW/ACT), Queen of the Nile (0101707V, Brazil), Queen of the Nile (04J00784, Venezuela), Reel Power (0100400V, NSW/ACT), Rushin Rooster (0100534V, NSW/ACT), Silver Wolf (0100673V, NSW/ACT), Snow Cat (0100405V, NSW/ACT), Super Bucks III (0100711V, NSW/ACT), Sweethearts II (0200465V, NSW/ACT), Thor (0200319V, NSW/ACT), Thunder Heart (0200333V, NSW/ACT), Thunder Heart (0200334V, NSW/ACT), Tropical Delight (0100269V, NSW/ACT), Unicorn Dreaming (0100813V, NSW/ACT), Wicked Winnings (0100553V, NSW/ACT), Wild Angels (0100337V, NSW/ACT) and Yukon Gold (03J00191, NSW/ACT) - New PinMAME games: Arizona, Cowboy Eight Ball, Disco Dancing, Force, Harley Davidson (L-2), Haunted Hotel, Hustler, King Kong, Space Ship (Pinball), Time Machine (LTD, 2 players), Time Machine (LTD, 4 players), Trick Shooter, Viking King, White Force and Zephy (alternate set) - New drivers: stargame.cpp - New devices: ad557, ie15_cpu, ie15_device, ie15_keyboard, ie15_terminal, sega32_pcb_upd7725 and tms1025 - New Cheat.dat: - ARM7 CPU: Repair broken ARM (arm7\arm7ops.cpp) - I386 CPU . Fixed enum range check (cpu\i386\i386ops.hxx and pentops.hxx) . Save additional CPU flags (cpu\i386\i386.cpp) - Dynamic Re-Compiling . Fixed MAME crashed running scud with -bench 90 (cpu\drccache.cpp) (ID 06492) . Fixed regression on OS X - MIPS CPUs . Retry fixing FPU register aliasing (mips\mips3.cpp and mips3drc.cpp) . Make sure branch delay slot instruction is not virtual instruction before trying to generate code to add it to the block checksum (mips\mips3drc.cpp). . Initial support for VR5500 and TX4925 CPUs - T11 CPU . Emulated MFPT instruction . MOV, CLR and SXT read memory before writing to it (Page B-8 of User's Manual) - TMS32031 CPU: Removed direct update handler - Z180 CPU . Correct DMA MMOD bit . Count of 0 means 0x10000, as with other DMA controllers. . Fixed scheduling so burst mode DMA is always serviced immediately with no CPU ops interleaved. - AY-3-8910 sound . Added a write handler for the case of bc1=a0 and bc2=a1. Added guide to bus control signals. . Overrided device method to support changing clock frequencies in the AY8910. Added virtual keyword to declaration. - TMS5110 sound: Updated some comments - uPD7725 sound . Fixed disassembly . Added preliminary IRQ support. Handle the LSB-first load from SI properly, for when SI gets hooked up in the future. . Added siack and soack registers and their requisite jumps, not used yet. Fixed missing si register and flags registers savestate registration. . Fixed an off-by-one error when loading uPD96050 roms for SNES games (bus\snes\upd.cpp) . Fixed LSB-first bit ordering for SO reg, not used yet. Use accessors to access the SR p0 and p1 bits, rather than masking. . Corrected which registers are actually reset by /RESET and fixed/updated IRQ system, should behave more properly now. - 6821 PIA: Incremental C++-ification of 6821pia.cpp.1: Changed some 'int' ==> 'bool' where appropriate. 2. Changed the various control byte macros to static functions [Nathan Woods]. - Discrete Netlist . Slightly improved event timing if state changes. Also introduce a push_force call to reschedule already pending events if the state will not change. . Clean up net_t interface and increase readability . Improved readability. Added more C++11 noexcept and swap semantics. Also fixed Clang-5 warnings and VS2015 compile. . Added a heap priority queue to the netlist source. This is currently not used since performance drops by about 40%. The typical use case would be circuits a lot more complex than those we currently emulate where the 2*log(n) advantage really applies. . Fixed netlist stats collection. Code refactoring: Small improvement for 7493. Converted 9316 from subdevice to delegate. Converted 74107 from subdevice style to delegate. Also refactored inconsistencies in other parts of the code. . Netlist refactoring: Align timed_queue closer to std::priority_queue. Use uint8_t in extended clock for better memory usage. Minor changes to nl_breakout.cpp. . Fixed some Cppcheck and Clang warnings. Fixed -Winconsistent-missing-destructor-override warnings. Made some constructors of template classes and classes with virtual .. = 0 methods protected. . Fixed openmp compile (solver\nld_solver.cpp) - Floppy . Added tag command names in debug messages (machine\wd_fdc.cpp) . Inform disk image of step operation so it can cache information (floppy_stp_w) . Added missing operator* to multiply an attotime by a double (machine\fdc_pll.cpp) - MC6845 CRT: Generate blink state in a way more likely to represent hardware and removed kludged-in MC6845 accessor. - Nintendo Custom . Improved PAL clone timings (video\ppu2c0x.cpp) . Refactored clock definitions (includes other drivers using the N2A03) (cpu\m6502\n2a03.h) - ROC10937 video: Fixed CID: 138793 "Logically dead code" - SAA5050 video: Fixed romsize - VGA video: Save expanded attribute registers (video\pc_vga.cpp). Updated CRTC usage comments. Added palette configuration to save state. Fixed broken port reads on state load. VGA card now saves vga.dac to the state, as the MAME palette is clobbered periodically with data from here. Changed the type of vga.dac.colour to a flat uint8_t array seeing as save_item isn't struct-friendly. Fixes Liero. Saved more VGA flags, including vga.miscellaneous_output, which despite the vague name is needed for reading from the ports. - Z80 SIO . Added I8274 type macros and derived class + logging . Changed (MESS) isbc.cpp to use z80sio.cpp i8274 device driver instead of z80dart.cpp . Variant support for i8274/upd7201 and a refactored interrupt support and cleanup Z80-SIO - aerofgt.cpp, f1gp.cpp, fromance.cpp, ojankohs.cpp, pipedrm.cpp, rpunch.cpp, tail2nos.cpp, welltris.cpp: Added skeleton device for Video System C7-01 GGA - ambush.cpp: Driver state cleanups - amusco.cpp: Generate blink state in a way more likely to represent hardware and removed kludged-in MC6845 accessor - aleck64.cpp . Added short delay between RDP full sync and DP interrupt (machine\n64.cpp and video\n64.cpp). Since the RDP is not currently scheduled for its own timeslices, this will allow the RSP interrupt from graphics tasks to arrive at the main CPU first. In some instances, the RSP timeslice would end after the RDP had been sent the full sync command, but before the RSP could finish its task. No issues were manifest if both RSP and RDP interrupts arrive at the same time, but it is still expected that the RSP interrupt should arrive first. . Let debugger disassembly windows track RSP PC . Flush RSP drc cache when SP DMA changes IMEM (machine\n64.cpp) . Make element selection in vector load/store DRC C functions consistent with other implementations (cpu\rsp\rspcp2d.cpp). . Fixed a minor issue with RDP disassembly listing for Load Block (video\n64.cpp). - atlantis.cpp and iteagle.cpp: Perform IDE reset during PCI device reset (machine\pci-ide.cpp) - atlantis.cpp and midzeus.cpp: Better texture lookup (video\zeus2.cpp) - atlantis.cpp, midzeus.cpp, seattle.cpp and vegas.cpp: Added serial input (machine\midwayic.cpp) - bagman.cpp: Use 4-way joysticks in all games except Squash (Itisa) - blockade.cpp: Rewrote driver - chihiro.cpp . Redumped Ollie King (GDX-0007) . Some information on USB commands for AN2131SC. AN2131SC is used as a USB to serial converter, one of the 2 serial ports can be setup as MIDI. - ddenlovr.cpp and dynax.cpp: Device type corrections - deco32.cpp: Comment out popmessage - dkong.cpp: Major latch8 and discrete device cleanup: Eliminate the AM_LATCH8_XXX address map macros. The normal DEVREAD/DEVWRITE ought to be good enough. Eliminate the "offset" specifications from latch8_device. This was used mostly to funnel outputs to discrete_device, which now has a templated write_line handler. (Inputs can use MCFG_DEVCB_RSHIFT instead.). Organize latch8_device's callbacks as arrays of devcb_readline/devcb_writeline, helping simplifying code greatly. Change latch8_device::bit[0-7]_(q_)?r to be proper line read handlers. This requires two extra READ8 handlers in audio/dkong.cpp, but memory-mapping for the MCS-48 T0 and T1 lines is totally artificial anyway. Comment out an assert that now tends to fail due to buggy AM_MIRROR behavior. - docastle.cpp: Read inputs through TMS1025. Added input callbacks and read handler to TMS1024/TMS1025. Clean up code a little. Added MS pin to TMS1024, added write to port 0. - dooyong.cpp: Fixed regression (spriteram8 -> spriteram16) - galaxian.cpp . Cleaned up clock definitions (KONAMI_SOUND_CLOCK -> 14.31818 MHz) . Moved clone Lady Bug (bootleg on Galaxian hardware) from galaxold.cpp to galaxian.cpp drivers - homedata.cpp . Various updates. Changed 4-way joysticks to correct 8-way to Reikai Doushi and Battlecry according to manual. Added button descriptions. . Added DSW layouts to Reikai Doushi and Battlecry & a note about their numbering according to the manual. - marineb.cpp: Corrected the main crystal to 12MHz as seen in PCB photos - merit.cpp: PSG type is AY-3-8912 - model1.cpp . Added documentation for differing Model 1 coprocessor chips . Added roms 315-5571.bin and 315-5572.bin to the Model 1 CPU Board . Added dumped internal TGP rom 315-5573.bin to Virtua Racing and clone Virtua Formula - model1.cpp and model2.cpp: Massive MB86233 disassembler overhaul - naomi.cpp . Dumped and documented 837-14438 hopper controller board, used in Kick '4' Cash and few other SWP games. Added to prev FPGA config PROM dump as well. . Redumped Noukone Puzzle Takoron (Japan) (GDL-0042) and clone Virtua Fighter 4 (Rev B) (GDS-0012B) . Dumped 'Ferrari F355 Challenge (deluxe, no link)' Export and Japan BIOS . Dumped 'House of the Dead 2' Japan BIOS . Measured NAOMI's MIE MCU speed - peplus.cpp: Fixed CID: 138606 "Logical vs. bitwise operator" - polyplay.cpp: Hook up the SIO - raiden2.cpp: Added tile_scroll_w safety fence - rpunch.cpp: Fixed a bug where AM_SELECT applied to narrow-width handlers with a submaximal number of subunits would select the wrong address bits or none at all (This allows rpunch_gga_w to be WRITE8 as intended). Added more stringent appropriateness checking of unit masks for narrow-width handlers. - seicross.cpp: Added XTAL - sg1000a.cpp: PSG is SN76489AN, just like the console. - vp101.cpp: Added framebuffer, some inputs, ATA, NVRAM and protection cheat. Implemented ATA DMA. - wildpkr.cpp: Work out several device hookups. The use of a DS2401 "ID" in tabpkr is inferred from the code. The data supplied for it is totally artificial and the chip may have been stripped from the PCB pictured on Much still needs to be learned about the hardware of these games. The emulation doesn't display even error codes yet. - AGEMAME: New aristmk5.cpp sets, layouts and documentation - Air Rescue: Added Air Rescue's uPD7725 DSP and load its roms. Disabled for now, since the uPD7725 CPU core will need some features added before this can work. - Alpha One: Adjusted screen size - Area 51: Site 4: Documented an earlier BIOS version. Doesn't seem compatible with the HDs available. - Assault, Bouncing Balls, Dangerous Dungeons, Dark Tower, Kid no Hore Hore Daisakusen, Klax, Mad Donna, Pushman, Super Duck, Super Toffy, Toffy and Trog: Use 4-way joysticks. No manual or flyer showing controls for Super Duck is available, but gameplay does not seem to accept diagonal input at any time. Dangerous Dungeons, despite being a conversion of Double Dragon, has a manual that notes that 4-way joysticks should be used. It seems reasonable to assume that the other non-Technos games should do the same, with the exception of Thunder Strike. - Code One Dispatch: Added timekeeper dump for clone (ver B) - Continental Circus: Fixed subtle color pen bug in Mexico GP stage - Fever Soccer: Added coin hopper output (prize hopper doesn't quite work) - Got-cha Mini Game Festival: Hooked up lamp outputs and added clickable artwork - Hanaroku: Added NVRAM and hopper - Hyperdrive: Fixed FPU register aliasing (mips\mips3.cpp and mips3drc.cpp). This fixed 3D graphic objects in Hyperdrive (ID 06512). - Rushing Heroes: Redumped sound rom - Last Bank: Added coin counters - Mario Kart Arcade GP and Mario Kart Arcade GP 2: Added security PIC dumps and fixed rom load - N-Sub: Simulate the gradient in N-Sub. Figured out how the starfield and gradient get enabled on VIC Dual hardware. Don't exactly know how they work yet, so I added a simulation of the gradient for N-Sub. - Pasha Pasha 2: Hook up lamp outputs and clickable artwork - Phoenix . Dumped/redumped the PROM for some of the bootlegs. Also started documenting the differences. . Added MACHINE_IMPERFECT_SOUND to the games known to substitute the melody generator with a piggyback PCB. There might be more. - PinMAME: Added program ROMs and corrected title for Volley. Redumped Columbia. - Poizone: Fixed 'Setting 2' dipswitch - Popper . Get some meat back onto the bones: Decode color PROMs. Full memory map for main and audio CPU derived from schematics. Added both dipswitches. Hook up interrupt generation logic. Decode character and sprite layout and draw character tilemap. Raw screen parameters (to be verified). Hook up inputs, renamed audio cpu to sub cpu and hook up flip screen. . Added a AY-3-8910 write handler for the case of bc1=a0 and bc2=a1. Fixed audio hookup in Popper (BC1 is hooked up to A0 on the host and BC2 is hooked up to A1). - Rock Climber: Fixed MACHINE_CONFIG (rockclim base off mooncrst) - Sea Bass Fishing: Fixed game shows only black screen (video\stvvdp2.cpp) (ID 04454). Note: Sea Bass explicitly wants a monitor mode bit to be 0 when screen is disabled from bios to game transition. - Space Warp: Added Hunchback (Galaxian hardware) color prom - Teenage Mutant Ninja Turtles - Turtles in Time: Fixed missing 3Player & 4P inputs in clone (4 Players ver EAA) - Time Attacker: Update notes - Tsukande Toru Chicchi: Added clock XTAL definition for the Z80 CPU, divisor is guessed. - Trog: Use different inputs for clone Trog (prototype, rev 4.00 07/27/90) - Ultimate Mortal Kombat 3: Redumped UMK3 U2-U5 sound ROMs, all match current dumps. Removed BAD_DUMP tag and raised MACHINE_IMPERFECT_SOUND for umk3 sets, see MT00751. - Input port: Some reports of garbage in console with DInput controllers. Changed to snprintf with assert since apparently snprintf fixes the reported problem. - Dipswitch fixes in ertictac.cpp - Fixed rom names in blockade.cpp, itech8.cpp, konamigx.cpp, neopcb.cpp and suprgolf.cpp - Description changes of CoMOTION, Dynablaster / Bomber Man (bootleg, set 1), Dynablaster / Bomber Man (bootleg, set 2), Dyno Bop (V1.1), Gals Panic (MCU Protected, set 1), Griffon (Videotron bootleg of Phoenix), Moon Base Zeta (set 1), Moon Base Zeta (set 2), NBA Play By Play (ver JAA), Radical Radial (US), San Francisco Rush (boot rom L 1.0), San Francisco Rush: The Rock (boot rom L 1.0, GUTS Oct 6 1997 / MAIN Oct 16 1997), Scramble (Karateco, French bootleg), Sweethearts II (01J01986, Venezuela), Time Traveler (set 1) and Volley - Renamed (cashcat) to (cashcatnz), (chariotc) to (chariotcv), (chariotca) to (chariotc), (cowboy) to (cowboy2), (dolphntrce) to (dolphntrcea), (dstbloom) to (dstblooma), (kgbirdmk5) to (kgbirda5), (locoloot) to (locoloota), (magimask) to (magimaskb), (magtcha5) to (magtcha5a), (minemine) to (minemineu), (qnile) to (qnileb), (qnilea) to (qnilec), (qnileb) to (qnilea), (qnilec) to (qnile), (raiden2g) to (raiden2eg), (retrsama) to (retrsamb), (retrsamb) to (retrsama), (suprgolf) to (suprgolfj), (swhr2) to (swhr2a) and (trpdlght) to (trpdlghtu) - MAME . SOFTWARE LIST . Very minor cleanups; accessing options.software_name() once and better std::string usage (clifront.cpp and mameopts.cpp) . Eliminates the need for emu_options::update_cached_options() by providing a hook for when option values change. This is a preliminary fix to the issue identified in PR#2065 ( . More softlist related refactoring: We now only parse the command line (with core_options::parse_command_line()) once. Options that are set up during slot and image setup go through a 'value_specifier' function. Eliminated the command line postprocessing. . Fixed image mounting from command-line in systems with a software list and an ini file, but there's plenty of time for testing (ID 06107). . Fixed regression when loading multipart softlists. Pernod found a regression introduced in the 0.183 softlist refactoring whereby multi-part softlist items would not distribute to multiple slots. The problem was that the old code was relying on the image slots being loaded into the core. This is not the way the new system works, so I've added a hook into software_list_device::find_mountable_image() that allows the new approach to work. . DEVICE . Fixed an issue where device options (e.g. -cart) were reported as unknown when they actually worked. This change also changes around how command line arguments are passed around; specifically I changed argc/argv to be std::vector. Note this is not passed around 'const', the reason being that the command line processing will now "eat" the vector. . Fixed regression pertaining to specification of empty strings as slot names e.g. - 'next -scsibus:1 "" -listdevices' . Cleanup of slot code. Added device_slot_interface::has_selectable_options() to calculate whether a particular slot has selectable options. . device_image_interface cleanups: Replaced comparisons of software_entry() or part_entry() with nullptr with loaded_through_softlist() predicate. Eliminated the superfluous m_software_info_ptr member. The software_entry() accessor is still provided, but now rarely used. Eliminated two of the three arguments to load_software_part. Removed some unnecessary auto-typing in ui/inifile.cpp. . Self-registering devices . Make device_creator a variable template and get rid of the ampersands . Removed screen.h and speaker.h from emu.h and added where necessary . Centralised instantiations of screen and speaker finder templates . Added/standardised #include guards in many hearers . Removed many redundant #includes . Order #includesr to help catch headers that can't be #included alone . Note: This changes #include order to be prefix, unit header if applicable then other stuff roughly in order from most dependent to least dependent library. This helps catch headers that don't #include things that they use. . MAME now walks all devices when generating -lx output irrespective of whether they're actually instantiated anywhere or not. . -lx is at least 30% faster than previous implementation. . Note: Only possible drawback is that filtering drivers no longer filters devices. Fix for libc++ build (emu\device.h). Fixed Clang build by supplying constructor for device_registrar (emu\device.h). . Image instance name refactoring and bug fixing: update_names no longer takes arguments; the device type can be obtained easily, and the custom instance names are now overrides. Devices might not need to explicitly call update_names in the future. Fixed the frontend crash/assert failure resulting from instance names not being generated properly. . Filter devices when a driver pattern is supplied to -listxml . Make device_image_interface::update_names a private method called automatically at config_complete time . Cleaning up duplicate device shortnames. Added basic device validation. Fixed uninitialised members in some devices using constructor delegation. . 3rdparty . Updated GLM to tip of stable branch ( pre-release), fixes build with MacPorts Clang. . Refactored HTTP handling to be easier to extend and use . Added emu_file::write, enables the use of sockets and pipes from LUA without needing a third party library (mame\luaengine.cpp). . Cheat engine: Added load_cheatfiles to frontend\mame\mame.cpp/h, emu/main.h and emu\machine.cpp . Fixed crash on excessive command-line options, clean up some tabulation and removed long-dead option. . Possibly uninitialized class member fix (ui\datmenu.cpp and ui.cpp) . Added a new addrmap.cpp validation intended to catch AM_REGION declarations not tied to anything meaningful . AUDIT . Fixed null pointer bug when -verifyroms is used without a driver spec . Substantially speed up -verifyroms, hack other verbs temporarily while device data is being refactored. . Greatly improved performance of -romident on multiple files (mame\clifront.cpp and media_ident.cpp). This hashes all the files upfront, then does the expensive driver/software scan only once. It also walks all devices so it can identify ROMs for slot devices that aren't inserted by default. . Include devices in -listxml with * or no argument . Preliminary attempt to fix regression caused by poor understanding of get_default_card_software() (mame\mameopts.cpp) . Converted screen_device VBLANK callback to devcb_write_line: WRITE_LINE callback has same functionality, except that screen is not an argument. Renamed screen_eof_xxx to screen_vblank_xxx in many drivers. No changes to externally registered vblank delegates or screen update methods. . PLUGINS: Updated hiscore.dat . Uncovered what might be a core bug: AM_SELECT does not work properly with masked handlers. . Memory unit masking and address mirroring fixes: Fixed a bug which effectively treated AM_MIRROR as AM_SELECT when applied to a single-address range mirrored into a contiguous block. The automatic expansion of zero address masks now only applies to those stemming from (default) configuration, not from optimization (This allows the assertion in latch8_device to be reinstated). Fixed a bug where AM_SELECT applied to narrow-width handlers with a submaximal number of subunits would select the wrong address bits or none at all (This allows rpunch_gga_w to be WRITE8 as intended). Added more stringent appropriateness checking of unit masks for narrow-width handlers. - SDLMAME: Fixed SDL build on Win32 and ZEXALL build - Compiling . Removed tag() argument from logerror() calls (cpu\i86\i86.cpp, i186.cpp, i286.cpp, Z80 and imagedev\floppy.cpp) . Fixed Clang 5.0 warning in util\palette.cpp. Maximum of unsigned X and 0 is always X. . Fixed GCC warning in sound\samples.h and GCC link error in emu/driver.h . Fixed MSVC build (include "screen.h" and "emu.h") . Changed 'const char *' ==> 'const std::string &' - Debugger . Refactor debugger_access . Fixed debug build by removing vestiges of -dummywrite (emu\video.cpp) . C++-ification of debugger code (misc std::string/std::vector adoption mainly) . Fixed debug commands in drivers and devices . Print octal addresses in the trace if CPU is octal (debug\debugcpu.cpp) . Added missing disable_side_effect in find_pc_backwards (debug\dvdisasm.cpp) 0.183 - New games: Dodge Man, Flash Boy (DECO Cassette), Galaxy Games StarPak 3, Omega and Sega Sonic Cosmo Fighter - New Working games: Donkey Kong 3 (bootleg on Ambush hardware) and Gallop Racer 2 - New Non-Working games: The King of Fighters XII (v1.00), KOF Sky Stage (v1.00J), Mega Card (Ver.0210, encrypted), Star Horse 2001 (satellite, Rev B) and Tsukande Toru Chicchi - New clones: Dungeons & Dragons: Shadow over Mystara (Japan 960223), Gals Panic S2 (Europe), Gamshara (World, 10021 Ver.A), Head Panic (ver. 0702, 02/07/1999), The King of Fighters '99 - Millennium Battle (Korean release), Missile Attack, Momoko 120% (bootleg), Mouse Trap (version 2), The Pit Boss (2214-07, U5-0A), Puzznic (US), Red Hawk (Greece), Speak & Help, Street Fighter EX2 (USA 980312), T.T. Defender, Virtua Bowling (Hong Kong, V101HJS), Virtual On 2: Oratorio Tangram (Revision A), VS Block Breaker (Europe) and Zen Nippon Pro-Wrestling Featuring Virtua (T 971123 V1.000) - New AGEMAME games: Dolphin Treasure - Cash Express (AHG1606, US), Dragon's Eye (0100521V, NSW/ACT), Golden Pyramids (0100878V, Victoria), K.G. Bird (0200024V, NSW/ACT), Margarita Magic (EHG1558, US), Panther Magic (0100716V, NSW/ACT), Penguin Pirate II (0100869V, Victoria), Pet Shop (0100731V, NSW/ACT), Phantom Pays (0500005V, NSW/ACT), Q.T. Bird (0500009V, NSW/ACT), Toucan Tango (0100782V, NSW/ACT), Winning Post (RHG0418-04, US) and Wizard Ways (0200396V, NSW/ACT) - New PinMAME games: Amazon Hunt III (rev. 1, French), Arena (French), Arena (German), Bad Girls (French), Bad Girls (German), Big House (French), Big House (German), Bone Busters Inc. (German), Bounty Hunter (German), Diamond Lady (French), Diamond Lady (German), Excalibur, Excalibur (German), Genesis (French), Genesis (German), Gold Wings (French), Gold Wings (German), Hollywood Heat (French), Hollywood Heat (German), Hot Shots (French), Hot Shots (German), Mars - God of War (Prototype), Monte Carlo (Pinball, French), Monte Carlo (Pinball, German), Monte Carlo (Pinball, rev. 2), Raven (German), Robo-War (French), Rock (German), Rock Encore (German), Rollergames (AD-2) Prototype, Rollergames (LF-2) French, Rollergames (LF-3) French, Spring Break (French), Spring Break (German), Tag-Team Wrestling (German), TX-Sector (French), TX-Sector (German), Victory (Pinball, French) and Victory (Pinball, German) - New drivers: galgames.cpp and konmedal.cpp - New devices: cesblit, dac08, dac0832, galgames_slot, pic16c56, starpak_cart, tmp87ph40an and ymz284 - ARM7 CPU . ARMv5 addition. Added support for the second BLX form for ARMv5, and fix behavior of second BLX form in THUMB. . Further fixes for ARM - Dynamic Re-Compiling: Fixed long-standing copy/paste error (cpu\drcbec.cpp) - M6805 CPU . Added skeleton M6805 CMOS devices . Added M146805 and M68HC05 to UNIDASM . Made opcode tables configurable in m6805_base_device, provided tables for HMOS, CMOS and HC families. . Implemented MUL instruction, made unimplemented STOP and WAIT raise fatal error. . Added skeleton MC68HC05C4 with RAM and ROM in correct locations in memory map . Fixed disassembly of BIT opcodes. Don't burn cycles on disabled interrupts. Added partially implemented MC68HC05C8 and MC68HC705C8A. Implemented 'HC05 digital I/O, timer/capture/compare and COP watchdogs. Probably still some bugs in 'HC05 peripherals. . Implemented M68HC05 edge-sensitive external interrupts in MC68HC05 . Clean up bih/bil handling - M68705 CPU . Dumped MC68705R3 for clone Bouncing Balls (Adult). Hook up protection MCU in clone Bouncing Balls (Adult), added to parent set as BAD_DUMP. Note: Uses a similar scheme to Pushman, but doesn't use port D on the MCU, and uses the same endianness for MCU reads/writes (Pushman swaps the bytes on writes). As an aside, Bouncing Balls has at least partial nudity in it as seen in attract mode, although less than clone Bouncing Balls (Adult). . Confirmed MC68705R3 bootstrap program matches Bouncing Balls (Adult) M68705R3 . Fixed problem with edge case in 68705 timer overflow interrupt. This fixed the missing enemies in the second stage of Xain'd Sleena (ID 06499). - PIC16C5x CPU . Fixes for writes with the status register as destination: Write all bits except TO and PD, thus enabling e.g. bcf, bsf or clrf to change the flags. rlf and rrf must update the flags after the store to work correctly on this register. . Small update, correct savestates. . Added PIC1650 and PIC1655 devices. Removed unused MCFG_PIC16C5x_T0_CB callbacks. . Added RTCC pin (not called T0, plus it was implemented in reverse). Made RTCC (aka T0CKI) pin an inputline handler. Added alias for RTCC pin (Note: In the mid-90s RTCC was renamed to T0CKI). . Fixed RTCC clocking in sleep mode and potentially clocking it too fast . Added basic support for the old GI PIC1650 and PIC1655 - SH-4 CPU: Fixed FMOV* opcodes. Note: Half of FPU was not correct. Fixed formatting. - T11 CPU: HALT opcode jumps to fixed restart address with PSW=0340 - uPD7807/7810 CPUs: Replaced fake I/O space with callbacks - C352 sound . Implemented volume ramping behavior and confirmed with recording of real hardware (Tekken 3) . Rewroted mulaw algorithm. This is not quite perfect yet but is closer to recordings and sounds a bit clearer (example: Time Crisis). . Use word swap macro for C352 sound rom in Armadillo Racing and Prime Goal EX. Reverted Time Crisis byteswapped C352 rom in 0.177. - ES8712 sound . Working sound and music in Last Bank . Added busy status read and notes on device . Added a reset line callback for the ES-8712. This will be used to reset the MSM5205/MSM6585 when the implementation is rewritten to use those devices. For now, it's used for IRQ generation in vmetal, whose program seems to use a separate gate to prevent unwanted IRQs when the device is reset (gcpinbal appears to do the same with a rather subtle difference). Removed the probably bogus and already unused auto-repeat feature from the ES-8712 device. All known games that loop samples do so by status polling or IRQs. - SAA1099 sound: Use the correct LFSR polynomial for the SAA1099 noise generation and added some notes about an unemulated undocumented feature of the noise clock. - ATAPI/SCSI: Added Play Audio MSF (0x47) command, used by Another CD Player and Astrocounter of Crescents (machine\t10mmc.cpp) - 6522 VIA . Updated LOG messages to latest cut and added some new . Fixed 50/50 duty cycle for T2 and O2 driven CB1 shift IN & OUT on CB2 . Added stop of device_timer when going from internaly to externaly clocked shift modes. Fixed so shift out and in flank is not controlled by pcr in accordance with datasheet. Added missing final and leading flanks when shifting out and in respectivelly. - Discrete Netlist . Added infix notation parsing to the function parser . Netlist refactoring . Refactored netlist pmf code . Small optimization for diode calculations . Minor refactoring across the board . Removed virtual from some destructors and make them protected . Various cleanups . Small performance improvement . Fixed some inconsistencies . More C++ refactoring. Fixed netlist code generation. Fixed compile on some unknown compiler(netlist\plib\pstring.cpp) and Visual Studio (plib\pfunction.cpp). Cleanup of includes. . Fixed warning about non existing memory space when netlist is used as an additional cpu. . Fixed bug which caused (MESS) Hazeltine 1500 to crash . Reduced overhead to load data (roms) in netlist significantly. The previous solution involved a significant amount of redundant replication of information and objects. Now, a rom name specified as SOMEROM(x21, "romlabel") will automatically be loaded from region "netlisttag:romlabel". Examples are (MESS) Hazeltine 1500 and Stunt Cycle [TTL]. . Fixed a hidden bug in the GMRES solver and more optimization . Logging enhancement: For netlist device debugging one can now use #define LOG(...) log().info(__VA_ARGS__) to use debugging and the known #define LOG(...) do {} while (0) do disable debugging on device level. To avoid bitrot one could as well use #define LOG(...) log().info.log(__VA_ARGS__) and #define LOG(...) log().info.log(__VA_ARGS__). The later disables debugging. If the compiler can assume that there are no side effects from e.g. using foo(a/b), 'LOG("abc {1:04x}", foo(a/b));' should be completely optimized away. Log channels available are info, verbose, warning, error and fatal. Don't use debug, it is enabled only on specific debug builds. Use would be e.g. LOG("abc {1:04x}", 2); The format specifier in the string are enclosed in "{}". "{2}" is the second parameter after the format string. Types are determined automatically. "{3:04x}" would format a number as a hexadecimal with 4 leading zeros. . Rewroted mat_cr_t to include data as well. Fixed some bitrot in other parts. Simplified solver creation. . Separated include file usage for netlist. Device implementations (all cpp files in netlist/devices) now should only include nl_base.h. Netlist implementation sources should only include "net_lib.h". Refactored netlist.h and netlist.cpp to avoid namespace congestion in netlist.h. Fixed VC2015 build. . Fixed crashes on terminals without nets (i.e. connected to a rail). Reviewed "FIXMEs" and corrected some minor ones. Made m_cur_analog protected. Fixed pmf delegates to work with MSVC. More optimizations to the solver code. Started work on a better signal pipeline in nlwav. Only generate documentation for entities which are documented. . Some documentation work. Set default models for devices missing them. Fixed standalone makefile to work in mingw environment. Doxygen work. Added constexpr and noexcept. Fixed 9322. . It is now possible to have multiple handlers per device for updates. This will make device implementation more flexible and faster. A nice side-effect is that there was some minor (<5%) performance increase already. Each input is now assigned a notification handler. Currently this is update, but going forward this may be a custom handler. In addition: Fixed MEMPOOL on OSX. Removed dead code. Avoid bit-rot. Added delegate support for emscripten and arm processors. Added delegate support for VS 2015 x64. . Explicitly #include C++ headers for features use . Make sure netlist includes are not found directly on include path. Instead, they have to be prefixed by "netlist/". Removed unneeded link librariers for nltool and nlwav along the way. . Make windows builds of nltool and nlwav understand unicode. nltool and nlwav now use wmain, i.e. UNICODE main on windows. Reorder include order to comply with best practices. . Added state saving and loading to nltool. Save states are needed for regression tests going forward. . Added standalone VC2015 build file in lib\netlist\build. This was the last platform without standalone compile. Sure needs more attention, grateful for any help. . Moved inline constructors from header to cpp. Moved from cstring to std::copy and friends. . Optimized 7493 device. Gives some 5 to 10% improvement to Pong. 7493 also is an example on how to use multiple handlers on a device makes design easier. . Reworked Netlist truthtables: Moved 9312 and 74279 to TTL macro library. Renamed TTL_9312_* to DM9312. This is more appropriate. Fixed a number of warnings from latest Ubuntu Clang-5.0. . Added 74164 (8bit parallel output serial shift register). Added BCD display netlist for (MESS) Prodigy chess computer. - Floppy: Propagate CRC error flags (CRC_ERROR_IN_ID_FIELD and CRC_ERROR_IN_DATA_FIELD; formats\dsk_dsk.cpp) - HuC626x video . Fixed YUV colors, added palette offset and HuC6261-A mixing, fixes (MESS) NEC PC-FX boot screen graphics & colors. . HuC6272 "King" clean-ups and identify SCSI registers . Added stub HuC6271 device for (MESS) Rainbow . Added full pad inputs, some register hookups in HuC6272 "King" and fixed few bit mistakes. Added SCSI interface to "King" device. - MC6845 CRT . Scroll fix for (MESS) Osborne-1 (Nuevo Video) . Fixed scanout. The device should not try to scan-out more lines than has been programmed into the 'visible' register. - MC8123 encryption: Make code a bit more readable - Namco Custom: Register internal Namco C148 stuff to save state - TMS9927 video: Modded TMS9927 to allow for driver-specific overscan areas. Aligned (MESS) STIC video and TMS9927 graphics properly. Changed (MESS) intvkbd to use generic TMS9927 support. - 5clown.cpp, bzone.cpp, gekisou and qix.cpp: Correctly assign service buttons (ID 06470) - aerofgt.cpp: Cleaned up audiocpu rom loading, avoided some tag lookups, thus minor speed up. - aleck64.cpp . Added PIN64 logger class (video\pin64.cpp). Treat commands as blocks, 50% file size savings for PIN64 captures. . Make N64 RDP use uint64_t types for commands - ambush.cpp . Rewrote driver. Use tilemap system to draw background/foreground characters and use generic gfx_8x8x2_planar layout. . Added mario and dkong3 bootlegs running on extended hardware (color PROMs for those haven't been dumped, using the PROMs from the original currently) . Updated and correct dipswitches. Documented tile attribute RAM and sprite RAM layout bits. . Use screen raw parameters. Added connector layout. Updated TODO list and ROM filenames. - aristmk5.cpp . Moved the GAME definitions for the known bad dumps to their own section for easier reference if somebody wants to track those specific versions down for redumping. Tidy comments. Added region info. . Rearranged controls to be more playable and added PORT_NAMEs - asteroid.cpp, bwidow.cpp, firetrk.cpp, starwars.cpp, tempest.cpp and Gekisou: De-hardcode "Diagnostic Step" input - capbowl.cpp: Identified DAC type - cubo.cpp: Make Akiko independent from driver state - dec0.cpp . Added I8751 MCU rom dump to Bad Dudes vs. Dragonninja . Replaced MCU simulation for clone Dragonninja (Japan) with hacked version of baddudes dump. Added note about likely bit error in new MCU dump. . Latch cleanup. 'LS374 senses positive edge, others are educted guesses. . New and improved PCB README for the DEC0 based games - freekick.cpp . Added Omega (Nihon System 1986). Note: Omega code/gfx looks to be based on Gigas Mark II, given the "MarkII" graphic in the gfx roms and Gigas Mark II style continue numbers etc. PCB is marked "K.K NS6102-A" and seems to be somewhere between Gigas hardware and Free Kick hardware (3x dipswitch arrays). Supposedly an extremely limited release with ~10 PCBs produced. . Added comments about Gigas Mark II. Note: Gigas Mark II is a romswap/upgrade to Gigas and uses the same MC8123 (317-5002). The original, MC8123-protected version of Gigas Mark II is undumped, we only have the bootleg. - galgames.cpp . More complete Galaxy Games emulation . Created devices for the Galaxy Games carts (EEPROM + Flash + PIC) and the slot(s) . Removed code patches and emulated the PIC communication and bank switching . Converted the blitter to a device (cesblit.cpp) . Moved the Galaxy Games from tmaster.cpp to their own driver galgames.cpp . Provided the PIC code for all four StarPak cartridges - gcpinbal.cpp . Added HCT157 for ADPCM interface . Added interface for 93C46 EEPROM . Modernization and sound improvements: Break up the bogus IOC structure and use 8-bit handlers where appropriate. This fixes a music playback glitch due to the old handler's failure to take byte mirroring into account. Improved OKI M6295 sounds by using correct bit for banking. . Load more music by sending interrupt when ES-8712 finishes playing sample. Updated machine flags to better reflect current emulation status. - hng64.cpp: Added preliminary TLCS-870 disassembler - konamim2.cpp: Added terminal. Some fixes allowing M2 console version to show "Please Wait". - marineb.cpp . Fixed sprite colors in Battle Cruiser M-12 . Changed PSGs to AY8912 in Battle Cruiser M-12 and Wanted. Added note on PCB. - namcond1.cpp: Enabled preliminary ROZ effects in YGV608 core. Needs testing and references, they are certainly off for e.g. Galaga Arrange Challenge stages. - namcos22.cpp . Added per-game speaker configurations. Source: Game manuals and sound test messages. . Added 'bodysonic' speaker to Air Combat 22. The name comes from test mode, manual scan is not clear enough to show the name of this speaker. - naomi.cpp . Minor NAOMI 2 specifics . Redumped Crackin' DJ Part 2 . NAOMI docs update: Added 2 Naomi cartridge S/N-s, document Atomiswave game exe Build time stamps shown in Test Mode, correct few game years and sort game list as per build dates. - nbmj9195.cpp: Fixed dipswitches for jituroku (ID 05559), mjanbari (ID 05577) and pachiten - pgm2.cpp: Improvements. Fixed address map and added some notes. - polyplay.cpp: Added light organ and optional layout. Traced the lines on the board to figure out how the lightorgan worked. A zero cross detector triggers NMI on the cpu, which then operates the light organ. - pong.cpp: Clean up #includes - segas16b.cpp: Improved inputs for Excite League and Super League - Amiga . Converted the Amiga keyboards to a bus interface with slot devices . Moved audio related registers into Paula device. The device is now independent from the Amiga state class. . Make Akiko independent from driver state - Aquarium . Correct OKI M6295 clock with actual resonator . Replaced PCB layout with with a more informational version. List out major chips on the PCB including customs. - Arkanoid: Added detailed memory map and proper mirroring of various memory mapped areas. Documented and mapped the joystick ports which, while present and fully functional on the pcb, are unused by the game code. - Arrow Bingo . Fixed clocks to be more accurate, hooked principal inputs to make the game playable, added technical notes and cleaned-up a bit the driver. . Added a new input requested by the code. Added more technical notes about the program. - Bouncing Balls . Dumped MC68705U3 for clone Bouncing Balls (Adult) . Hook up protection MCU in clone Bouncing Balls (Adult), added MCU to parent set as BAD_DUMP. Note: Uses a similar scheme to Pushman, but doesn't use port D on the MCU, and uses the same endianness for MCU reads/writes (Pushman swaps the bytes on writes). As an aside, Bouncing Balls has at least partial nudity in it as seen in attract mode, although less than clone Bouncing Balls (Adult). Also Bouncing Balls is the most criminal under-utilisation of a MC68705R3 ever. It uses none of the features the R family has over the P family (second interrupt, port D, ADC, wider port C), and it barely has any program code in it at all. It's barely a "protection" program either, as it has no hidden state variables, and no internal tables. It really does just produce a 16-bit response by doing a trivial manipulation on a 16-bit input. ElSemi's simulation was almost perfect. - Canvas Croquis: Added flip screen - Combat School: Mark Combat School trackball and Boot Camp clones as MACHINE_NOT_WORKING - Double Crown: Simplify code by adding 8255 PPI and PSG type is YMZ284 - Funky Ball: Added basic inputs - Galaxian: Fixed 'Bonus Life' settings in clone Galaxian (Midway set 2) (ID 06503) - Gallop Racer 2: Redumped bankedroms - Game now playable - Hoops '96: Work around for Dunk Dream '95 sound routing issue - Kung-Fu Taikun: Added MACHINE_NODEVICE_MICROPHONE - Kyuukyoku no Othello: Added DIP SW2 and identify dipswitches and locations - Last Bank . Added working sound and music. Allow sound CPU to reset the ES-8712 and M6295. . Filled in dipswitches. Added NVRAM, remaped/renameed inputs and added RTC notes. - Mephisto: Adding devices based on schematics - Missile Command: Made clones Missile Combat (Videotron bootleg, set 1), Missile Combat (Videotron bootleg, set 2) and Missile Combat (Sidam bootleg) boot. They still need inputs and sound (AY8912). - PinMAME: Fixed year info in Ator (ID 06485) - Pole Position II . Corrected DIP switches and locations for clones Gran Premio F1 (Italian bootleg of Pole Position II) and Gran Premio F1 (Spanish bootleg of Pole Position II) . Use modern DEVCB features to make extra 4-bit input ports unnecessary - Power Card: Dumped the CY7C291A from inside of the custom CPU. Added technical notes. - Puzznic: Confirmed all sets uses same MCU, correct MCU clock as per PCB photo - Space Cruiser: Added "P1/2 Continue" button. Note: The game has a dedicated button to continue the game if all lives are lost. The player has to enter a coin and press the "Continue" button. - Super Real Mahjong Part 3: Added dipswitch settings for clone Real Mahjong Gold Yumehai / Super Real Mahjong GOLD part.2 [BET] (Japan) (ID 05599) - Thayer's Quest: Fixed keyboard scanning and keyboard - Varia Metal and Witch . Added busy status read to ES8712 sound and notes on device. Misc. ES-related code cleanups. . Added a reset line callback for the ES8712. This will be used to reset the MSM5205/MSM6585 when the implementation is rewritten to use those devices. For now, it's used for IRQ generation in vmetal, whose program seems to use a separate gate to prevent unwanted IRQs when the device is reset (gcpinbal appears to do the same with a rather subtle difference). Removed the probably bogus and already unused auto-repeat feature from the ES8712 device. All known games that loop samples do so by status polling or IRQs. . Varia Metal sound improvements: Implemented IRQ used to loop ES8712 music (much like gcpinbal). All extant samples should be playable now. Reduced unreasonably high OKIM6295 volume. Removed MACHINE_IMPERFECT_SOUND flag. - Xain'd Sleena: Fixed problem with edge case in 68705 timer overflow interrupt. This fixed the missing enemies in the second stage of Xain'd Sleena (ID 06499). - Yam! Yam!?: Use own program map, added note about undumped PROM and removed unneeded variable - Zig Zag: Install handlers and banks using address map rather than hacking them in with DRIVER_INIT - Dipswitch fixes in aristmk5.cpp, avt.cpp, funkball.cpp, lastbank.cpp, nbmj9195.cpp, polepos.cpp, shanghai.cpp and srmp2.cpp - Fixed rom names in aquarium.cpp, asuka.cpp, freekick.cpp, galgames.cpp, midwunit.cpp and suprnova.cpp - Description changes of The Chariot Challenge (04J00714, Venezuela), Excalibur (French), Gallop Racer 2 (Export), Gamshara (Japan, 10021 Ver.A), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 1), The King of Fighters '98 - The Slugfest / King of Fighters '98 - Dream Match Never Ends (Korean board, set 2), The King of Fighters '99 - Millennium Battle (Korean release, non-encrypted program), Omega (bootleg?) and Print Club 2 2000 Summer (J 000509 V1.000) - Renamed (excalibr) to (excalibrf), (galpans2) to (galpans2j), (gamshara) to (gamsharaj), (kof99k) to (kof99ka), (omega) to (omegab), (petshop) to (petshopa), (pitboss) to (pitboss04), (pitbossa) to (pitboss03), (pitbossa1) to (pitboss03a), (pitbossb) to (pitbossps), (pitbossc) to (pitbossm4), (vblokbrk) to (vblokbrka), (wamazon) to (wamazona) and (wamazona) to (wamazon) - MAME . 3rdparty . Updated BGFX, BX, Catch, GENie, GLM, libjpeg, LUA, Sol2 and zlib. BX is now static library. . PortAudio: Fixed issues on 32-bit builds and clamp latency. Minimal const-correctness. . Use std::sort instead of qsort in listdevices (mame\clifront.cpp) . Make devcb objects more consistently available for further configuration . Arcade build restructuring: Created EFO, Promat, Terminal and Wing projects to help reduce the weight of libmisc. Eliminated Veltmeijer Automaten project (only two games by this company are in MAME, and one actually on Excellent System hardware). . Cheat engine: Fixed crash on loading invalid cheats, MAME now logs an error and continues (ID 06477). . Hashing util: Fixed Hashing helper classes (util\hashing.h) . PLUGINS . hiscore.dat: Use videoram share for Missile Command scores so madsel isn't disturbed. Don't permit hiscore parse scripts to modify the shared environment or save any persistent data. Print_verbose unimplemented stuff. . Fixed unable to load DAT file using multiple paths (plugins\data\load_dat.lua) (ID 06500) . Sync with upstream (util/client_http.hpp) . Make object finder arrays meet more Container/Sequence requirements (allows range-based for and many algorithms to work) (emu\devfind.h) . Added RGB unit testing (video\rgbutil.cpp). . LIST command format changes: Changes to output produced to better deal with maximum limits of certain items. Fixed issue with -LISTROMS output not displaying hapyfsh2 rom sizes correctly. . SOFTWARE LIST . Allow softlist software parts to use different interfaces: imgcntrl: Don't assume first software part, find part with correct interface. swlist: Check all software parts for matching interface when populating list of software lists. softlist_dev: Check all software parts when finding approx matches. . Revert 'Make "requirement" field in softlists actually work (MAME 0.182; MT 6464)' - Compiling . Fixed building using system utf8proc . Fixed CHD build . Converted m_p_chargen into a required_region and associated cleanups. . Removed device_config_complete from numerous devices that don't really need it . Make emu\emucore.h a bit more readable . Removed emu.h from headers. Per Vas' request. If the compile fails for you (i'm thinking OSX and Windows native debuggers here in particular), add '#include "emu.h"' as first include of the cpp files that fail. Due to our use of precompilation and forced inclusion, emu.h must be included as the very first non-comment thing we do if we want to be sure MSVC compiles are identical to GCC/Clang ones. Doing it directly instead of through an include increases the correctness probability by a magnitude. . Removed #undef min/max, we already have NOMINMAX now in scripts. . Cleanup headers of not used friend classes . Use size_t for sizes and algorithm for algorithms. Fixed up some files that were getting linked into multiple libraries. Add missing virtual method to sh2 peripheral class. Put shortname in driver struct for locality. Made LRU cache use shared pointers for safety. - Debugger: Make debugger fall back from binary to default base on 0b prefix. This makes expressions like 0B12 parse as hex in hex memory spaces. Where there's ambiguity (e.g 0B01) binary takes precedence. 0.182 - New games: Enma Daio (Japan), Hangzo (Japan, prototype) and Poly-Play (ZRE-PP) - New Working games: Future Flash, Laser Base and Sky Robo/Tatakae! Big Fighter - New Non-Working games: Happy Fish (V2 PCB, 302-in-1) and Mega Bonus Star II (Euro, Millennium Edition) - New clones: Dynamite Duke (Japan, 25JUL89), Fighting Fantasy (Japan revision ?), King of the Monsters 2 - The Next Thing (older), Poly-Play (ZRE-PP - Czech), Robo Army (NGM-032 ~ NGH-032), Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 2), Skull Fang (Asia), Star Fighter (bootleg of Astro Fighter), Star Horse Progress (backup data), Star Horse Progress (live, Rev A), Star Horse Progress (main screens, Rev B), Star Horse Progress (sound & backup, Rev A) and World Kicks (Japan, WK1 Ver.A) - New PinMAME games: Ator, Bloody Roller, Cobra (Playbar), Eight Ball Champ (Spain, Z-Pinball hardware), MotorDome (German) and Slalom Code 0.3 - New drivers: hapyfish.cpp - New devices: ad7224, arkanoid68705p3, arkanoid68705p5, efo_zsu1, m68705p3, m68705r3, namco_c139, namco_c148, namcoio_gearbox, netlist_logic_output, netlist_rom_region, pps4_2, taito68705, taito68705tiger, z80sio, z80sio_channel and zn429e - New mame.ini options: HTTP SERVER OPTIONS: http, http_port and http_root. PORTAUDIO OPTIONS: pa_api, pa_device and pa_latency. - COP400 CPU . Fixed disassembly of jump instructions and used decimal for LDD/XAD . Fixed instruction timing and time-base counter . Fixed debugger behavior on skip . Removed non-working, incomplete COP440 code. Fixed COP444 disassembly. Properly separated COP444L from COP444C. . Fixed debugger register/flags view - i386 CPU: Logerror for invalid rep rather than fatal error (cpu\i386\i386ops.hxx) - M6805 CPU . Fixed state of input lines being lost on reset . Reduced massive amounts of redundancy by templating opcode handlers . Replaced the epic switch statement with a dispatch table . Fixed timings for a few instructions . Turn a lot of macros into inline methods so they can be scoped down . Correct affected flags in comments on opcode handlers (actual code was correct) . Removed unnecessary flag calculation tables . Added a table with CMOS instruction timings - M68705 CPU . Taito 68705 refactoring (40love.cpp, bigevglf.cpp, bking.cpp, bublbobl.cpp, buggychl.cpp, flstory.cpp, lkage.cpp, lsasquad.cpp, msisaac.cpp, nycaptor.cpp and slapfght.cpp). . Improvements to I/O emulation in new MC68705 device . All internal memory handlers are now private members . DDRs zeroed when device reset (as per datasheet) . Port writes no longer transmit bits not set in DDR . DDR updates may cause port bits to be written out (this is important) . Added external read/write handlers for ports . Moved 68705 timer logic out of Arkanoid driver and into 68705 core . Refactoring and improvements . Moved 68705 devices into their own file . Made P3, P5 and U3 variants and made them load bootstrap ROMs . Implemented EPROM control (write is stubbed out with a logerror) . Implemented differences for open drain I/O ports . Base device with peripherals should really derive from the 6805 device directly, not the 68705 devices, as I/O ports are present on mask devices (e.g. 6805P2). All drivers and devices that were using M68705_NEW have been changed to M68705P5 - someone who knows the drivers better should fix them up. . Fixed pushed input ports, implement EPROM write (not saved yet). Save EPROM contents using NVRAM mechanism. . Disassemble memory addresses symbolically . Re-implement timer/counter . Support MOR-controlled mode . Correct count direction . Correct startup and reset states . Exposed more more internal registers through the state interface . Shows contents of registers that can't be read by program code . Completely eliminate the concrete 68705-without-peripherals class . Added logmacro.h inspired by Edstrom's log macros (emu\logmacro.h). Added lots of logging to help trace issues. . Taito 68705 interface improvements . Moved stuff arkanoid/puzznic have in common with other games to new abstract base class . Got rid of the unnecessary hacks for Big Event Golf, it doesn't need anything special . Moved Xain'd Sleena M68705 stuff to the common interface class. Fixed regressions in tokio and daikaiju. . Started instantiating common device finders with the devices to marginally improve build/link time . Use common Taito 68705 interface device in Mania Challenge and clone . Removed non-obvious mcu_status_r and semaphore_r members and move to drivers (varies by system) . Slap Fight M68705 functionality can be safely folded into base class so do so . Removed leftover crud from driver state classes . ddragon.cpp, maxaflex.cpp, qix.cpp, stfight.cpp, taitosj.cpp, bub68705 and changela use new MC68705P3 core. mexico86 use new MC68705P3 core, simulate synchronous latches better. . Added MC68705R3 for Pipeline. Renegade use common Taito 68705 hookup. . quizpun and pitnrun use new MC68705P5 core, MCU now gets timer interrupts correctly. retofinv use common Taito MCU hookup. . ADC is stubbed out with logerror (pipeline doesn't use it at all) . Bootstrap ROM is believed to be identical to U3 but need to confirm . tigeroad.cpp . M68705 cleanup and modernisation . Split out bballs and pushman state classes . Use new MC68705R3 core for Pushman (this one uses port D - another test case) . Make Pushman MCU hookup believable (internal registers can't be in shared RAM). Better understanding of how CPU reads MCU data/status in Pushman. . Use derived memory maps rather than installing handlers in init members . Simplify protection MCU simulation in Bouncing Balls using pushman hookup as a guide. Bouncing Balls appears to use a simpler single-word arrangement for messages from CPU to MCU, perhaps so it can use a 28-pin MCU (pushman MCU receives the command byte on port D, which the 28-pin parts lack). - PowerPC 4xx/6xx CPUs: Clear two LSBs of the branch target address. This is what a real CPU does in order to prevent branching to an invalid address. - Z80/Z180 CPUs . Reconfigure Z80 daisy chain behavior to use the standard vector for an external IRQ, rather than a bogus one from the last device in the chain. . Enabled Z80 daisy chain on Cedar Magnet sound board (fake IRQ still necessary, though vectors are correct now). . Source note regarding IM 2 behavior contrary to Zilog datasheet (was fixed way back in 0.35b11) . Simplify daisy-chain IRQ ack routine (get rid of delegate member) - DAC sound . Replaced '8-Bit R-2R DAC' sound with MC1408 in archrivl, hiimpact, joust2, pigskin, shimpact, smashtv, trisport, trog, s3.cpp, s4.cpp, s6.cpp, s6a.cpp, s7.cpp, s8.cpp, s8a.cpp, s9.cpp, s11.cpp, s11a.cpp, s11b.cpp and s11c.cpp. . Replaced '8-Bit R-2R DAC' sound with AD7524 in jdreddp, mk, narc, nbajam, nbajamte, term2, totcarn, wpc_an.cpp, wpc_dot.cpp, wpc_flip1.cpp and wpc_flip2.cpp. . More DAC identification and Namco sound research (sound\dac.h, namco.cpp, drivers\byvid.cpp, galaxian.cpp, junofrst.cpp, mappy.cpp and namcos1.cpp) - MSM5205 sound: Use s32 instead of int32_t for consistency. Architectural cleanups. - Sound Interface . New callback for generic_latch_8/16_device . Added MCFG_GENERIC_LATCH_DATA_PENDING_CB to raise and lower a line automatically as the latch is written and read. This should make sound IRQs easier to deliver and reduce the incidence of HOLD_LINE in drivers. . Updated a few drivers to use this new callback (dec0.cpp and discoboy.cpp). . Invert logic (latch_read -> latch_written). Also fixes initial callback after start. . Soundlatch cleanups in ashnojoe.cpp, crospang.cpp, crshrace.cpp and dcheese.cpp - 6821 PIA: Updated the LOG mechanism - 68681 DUART: Preliminary support for SC28C94 QUART. Channels C and D can now transmit properly for sc28c94. - 8251 USART: Make receive more reliable, cleaned up a little - CHDMAN: Added support for hard disk templates and added some initial ones - Discrete Netlist . Added LM747, LM747A and 2N2565 . Roms now specify an identifier in the netlist. The identifier is used to load data from a source_t implementation. This allos a consistent approach in netlists independent of netlist implementation. Both sources code and parameter code needed quite some rewrite to support this. . Fixed nullptr exception and loading roms in two devices . Added "-r" option to nltool to pass path to a folder containing rom files. Multiple "-r" options may be given. Zip files are not supported, just individual files. . Fixed 74123, 74629 and some internals. Make Mario Bros. sound netlist compiling again. . Moved proxy code into separate file. Some preparation for future changes on proxies and chip families. . Analog to digital proxy rework. Properly handle connected inputs when creating a-d proxy. Aligned a-d proxy to d-a proxy class structure. . Align noexcept usage. Rename register_con to add_terminal for clearity. Changed cstr() ==> c_str(). . Simplify code. Introduced consistent approach to loading macro devices. Changed nltool "listdevices" command accordingly. Fixed some bugs which surfaced by this exercise. . Refactored factory. Use namespace "factory" instead of prefix factory_ all over the place. Fixed parsing of macro devices. Fixed pin assignment 4001. . Update to input definition file (nl_examples\congo_bongo.csv): Create congo bongo sounds with ./nltool -c run -t 10 -i nl_examples/congo_bongo.csv -f nl_examples/congo_bongo.c -l RO.1 and convert to wav with ./nlwav -i log_RO.1.log -o t.wav. Sounds played are: GORILLA, BASS_DRUM,CONGA_H, CONGA_L, RIM0 and again GORILLA. Using Solver.PARALLEL=1 significantly increases performance from 270% to 380%. However, this has to be taken with a grain of salt. Enabling this on predominantly logic netlists can severly kill performance. . Added FREQ parameter to MM5837 noise generator. Specs in datasheet range from 24000 Hz to 56000 Hz. Properly use VDD for output reference voltage. . Added SIGFPE enabling code to plib\pexception.*. Moved plib exceptions into these files as well. The code uses which is part of C++11 standard. Non-standard glib extensions are currently only used on linux and (i386 or x86_64). . Fixed some pedantic Clang warnings. Fixed Clang "-Wno-weak-vtables" warnings in netlist source. Refactored code along the way. . Make destructors virtual on base classes. intX_fast_t may depend on compiler implementation and thus is not suited for save states. . Added skeleton drivers to nl.lst (commented out) . Fixed startup when there are no timestep devices present, i.e. capacitors or inductors. . Removed parameter GS_THRESHOLD and misleading solver parameters. It is now outdated. . Make stop be called again. Fixed METHOD parameter. No need for a virtual stop which is needed only by the solver. Reduced memory footprint for parameters. . Moved netlists into macro folder. nlwav now accepts stdin and stdout: cat log_RO.1.log | ./nlwav | play - . Removed gnd() method. Fixed potential reset and initialization issues. Fixed timing issue in CD4538. Added "pow" (power) to the function model. . Added code to remove devices connected only to rail terminals. Prepare source for consistent error message usage. . Introduced a more structured approach to models. Added more documentation to diode and bjt model. . Moved analog devices into "netlist::analog" namespace. Added documentation to opamp model. . Preparation work for automatically generated include file for devices. nltool now is able to create all defines from the factory definitions. This will reduce the number of places needed to touch when adding devices and always ensure that the parser and statically compiled netlist code use the same syntax. This will enable us to delete most device include files, e.g. nld_74107.h. Netlist usage to create this header file: ./nltool -c header > src\lib\netlist\devices\nld_devinc.h. This is not yet used in production. It will be enabled after additional tests. . Keep track were registry elements are created. Register all devices using NETLIB_DEVICE_IMPL. Fixed encoding issue. . Refactored reverse polish notation evaluator into own source files . Added function parameter to current and voltage sources VS and CS. You can now use those to e.g. produce a sine wave. . Changed code to allow devices to optionally be treated as dynamic or timestepping devices . Converted warnings and fatal log messages to constants. Also refactored some code to ease the exercise. . Default argument on plib::environment now optional. Assume string literals are UTF8 in netlist code. At the same time, any char pointer has to be explicitly converted to pstring by specifying an encoding. Not yet optimal, but certainly better than what was there before. Removed unneeded methods from pstring. . Make streams provide binary access only. Use putf8_reader and putf8_writer to actually access streams. Replaced some char * parameters with pstring where appropriate. Minor code refactoring and move functionality were it belongs. - Floppy . Inhibit reading/stepping until drive has spun up; this concerns drives/controllers that do not use the READY line . Don't crash on tracks with no data (formats\imd_dsk.cpp). Accept images produced from 8" SSSD disks in TeleDisk loader (formats\td0_dsk.cpp). . Added TODO comments; revert stp_w ignore on spin-up until further evidence. . Minor floppy internals improvements (imagedev\floppy.cpp) - Imgtool . Miscellaneous cleanups and C++ modernization (CoCo/RS-DOS) . Changed to use wcout/wcerr in order to support Unicode console output . Changed charconv from an enumeration to an interface. Fixed recently introduce bug on attribute listings. . Fixed recently introduced bug in the code that emits usage text - MC68230 PIT . Don't forget all externally driven line states when the DDR changes. Return proper port values when line states are pushed instead of pulled. . Added support for the PSR register, H1-H4 sense and direct pin levels - Namco Custom . Rewrote Namco C148 device (Interrupt Controller; namcos2.cpp and namcos21.cpp) . Rewrote Namco C139 device (Serial I/F Controller (SCI); namcos2.cpp and namcos21.cpp) - TMS9927 video: Scrollup fix. Avoid reconfiguring all the CRTC parameters on any cursor shape change, which was resetting the scroll counter. Fixes scrollup for the (MESS) Otrona Attache. - TTL: Rewrote 74153. Only output state when the level changes. Use 74153 for the serial clock selector in (MESS) Apricot PC. - Z80 CTC: Fixed undocumented Z80 CTC 'on-the-fly' mode switch; internal timer didn't stop. - Z80 SCC: Improved LOG printouts. Added logmacro.h inspired by Edstrom's log macros (emu\logmacro.h). - aerofgt.cpp, expro02.cpp, ddenlovr.cpp, f1gp.cpp, feversoc.cpp, fuukifg2.cpp and gaelco.cpp: ACCESSING_BITS cleanup - aristmk5.cpp: Added SPI and hopper emulation, allowing non-US games to boot. - arkanoid.cpp . Moved 68705 timer logic out of Arkanoid driver and into 68705 core . Converted Arkanoid 68705 interface to device. Arkanoid bootlegs use P3 MCUs. . Confirm MCU reset also resets semaphore flags. Fixed watchdog to match PCB tracing and updated some comments. Non-arkanoid games lack muxed analog inputs. - armedf.cpp and tecmo.cpp . Dumped i8751 MCU for Sky Robo / Tatakae! Big Fighter and added basic hookup to make it work (Game now playable) . Clean-ups and changed sound CPU to use 24MHz/4 in all games . Fixed screen refresh rate in Tatakae! Big Fighter. Fixed service switch and updated DIPS/inputs with locations and content to match those showing on screen and observation. Added debug code for initial area. . Clocks verified for Sky Robo / Tatakae! Big Fighter . Legion and Rygar have YM3526 instead of YM3812 . Documented DACs for Legion, Terra Force and Tatakae! Big Fighter - asuka.cpp: Added 74LS157 for MSM5205 interface in Asuka & Asuka and Maze of Flott - atarittl.cpp: Split Stunt Cycle into its own netlist. Added logic probe to stuntcyc for debugging, does not seem to work, pushing so others can take a look. Fixed some NOR gates that should have been NANDs, fixes the playfield. Fixed stuntcyc/nld_7485 regression. - atlantis.cpp, iteagle.cpp, lindbergh.cpp and midzeus.cpp . Squelch logerror from interrupt control (machine\midwayic.cpp) . Added better game selector and use register values for 'Skins Game' direct rendering (video\zeus2.cpp) . Changed waveram viewer to use V key to fix conflict with game controls (video\zeus2.cpp) . Consolidate waveram1 writing and add more logging for models (video\zeus2.cpp) . Added alternative texture loading subroutines to video\zeus2.cpp . Clean up Atlantis driver and added info . Moved interrupt line and pin functions into PCI device and added variables (machine\pci.c) . Added legacy mapping based on prog i/f register (machine\pci-ide.cpp) - atvtrack.cpp . ATV Track improvements, game code running now as it should . Extract CPU initial boot from FPGA bitsream. Yep, its possible, at least for such FPGA family. . Implement NAND Flash erase and program commands, game is running now. . Hooked GPU IRQs control. Basic simulation of GPU's internal CPU for game init speedup. Documented IO-port multiplexing. - cdi.cpp: Decapped/dumped an MCU for Quizard (v1.8) and Quizard 4 Rainbow (v4.2) and clones - cedar_magnet.cpp . Conversion of the Cedar Magnet board from a base device class to a mix-in interface . Emulated EFO ZSU as main variant of the Cedar Magnet sound board. Modernize ZSU soundlatch/IRQ mechanism. More hardware notes. Various associated code cleanups. . Enabled Z80 daisy chain on Cedar Magnet sound board (fake IRQ still necessary, though vectors are correct now). - chihiro.cpp . Xbox graphic improvements . Added supported for packed float vertex color r11g11b10f . Corrected drawing of indexed vertices primitives . Added "xbox nv2a_wclipping" debug command. Small graphics adjustments. - chinagat.cpp and ddragon.cpp: IRQ cleanups - cvs.cpp: Show popmessage on unknown writes only if VERBOSE is defined - deco32.cpp: Added preliminary global volume control for Night Slashers and Fighter's History - gkigt.cpp: Hook up NVRAM and added initialized defaults for Multistar 3 and Multistar 7 2c - gladiatr.cpp . Separate Gladiator and Ping-Pong King state classes . Eliminated tagmap lookups on input read. This fixes coinage in clone Great Gurianos (Japan?). . Hook up all four MCUs in Gladiator and clones. The MCU doesn't like impulse coins, added hack to simulated sets to make them work with non-impulse coins. . Confirmed clocks with original board . Fixed coinage dipswitches have no effect in gladiatr, ogonsiro and gcastle using MCU simulation (ID 06468). Note: MCU simulation replaced with bootleg MCU programs in all affected sets. They now start with one credit due to MAME's memory initialisation, but the coinage DIPs work correctly. . Use input changed member - gsword.cpp . Identified josvolly "AA 007" chip as NECD8255A for reading input ports as shown by CAPS0ff die shot . Split out gsword and josvolly functionality from base driver class . Hooked up josvolly MCUs for communication between CPUs. Added DIP locations to josvolly based on test mode. Named unknown DIP settings after the location they control in main RAM. . Run the MCUs faster in josvolly to get it back to same state as with simulation. Identify cabinet type dipswitch. Removed now-unnecessary MCU simulation. Note: I still don't want to drop the NOT_WORKING flag as the game's clearly still not quite right, but it's as playable as it was previously now, but using original MCU code for CPU comms. The clocks are still guesses, just better guesses. - gts1.cpp: PPS-4 refinements and modernization: Split PPS-4 and PPS-4/2 device types; better explain and properly implement the difference. Use callbacks for discrete input/output ports instead of fake memory addresses. A17xx reads the address bus directly during I/O accesses. Misc. chip documentation. - harddriv.cpp . Hooked up the first serial port as an RS232 device to enable linking. This allows one to link up two Race Drivin' using null-modem and bitbanger (38400 8E1; two instances of MAME running Race Drivin' in Link mode: . Added "single screen"-layouts for clone Race Drivin' Panorama - hng64.cpp: Added a dump of one of the HNG64 TMP87PH40AN I/O chips. Note: This came from a sample OTP chip that was purchased for testing / analysis, not one of the chips actually taken from a HNG64 unit! It just ended up turning out to be the case that the sample chip had clearly been pulled from such a board at some point in the past. As a result it isn't clear if this is the driving, shooting or fighting MCU type. Contains the internal string "64Bit I/O Controller Ver 1.0 1997.06.29(C)SNK". A CPU core is needed. - jollyjgr.cpp: Updated readme and corrected clocks - midyunit.cpp: Identify DACs used in most Midway and Williams games - namcos2.cpp: Added Namco C148 device. Finest Hour accesses 0x461xxx in service mode, make the whole area in Namco System 2 driver to be mirrored. - namcos21.cpp . Added preliminary Gear Box input for Driver's Eyes. Added mechanical clutch and make it to automatically set to neutral on press, added debug for current gear. Wrote a device core for the Namco 6-speed gearbox (used by Driver's Eyes, Ridge Racer DX and Ace Driver). . Added input labels (Gun-, Missile- and Viewport Change Button) for Cyber Sled. Removed unused 4th button. . Untangle screen updates into different routines and other clean-ups. Added winrun_bitmap_draw. . Added SCREEN_RAW_PARAMS. Added Namco C148 device to Namco System 21. . Fixed misplaced controls in winrun, winrun91, winrungp and driveyes (ID 05313) . Hooked up Namco C148 to Winning Run GPU. Fixed POSIRQ line and POS interrupt generation for Winning Run, fixes map indicator in Winning Run '91. Fixed trail tachometer drawing in Winning Run. - naomi.cpp . Added 'Master CPU Clock Rate (Cheat)' configuration for main CPU unscaled clock. . Moved debug inputs into machine configuration . Added inputs for Mars TV . Made doa2m, dankuga and dariusgx parents. NAOMI flash carts rom names consistency for inunoos, sambap, shorsel and soulsurf. . Moved Atomiswave and NAOMI 2 specifics into own state machines. Research & document master/slave ROM boards feature. - polyplay.cpp . Added newer ZRE-PP based Poly-Play version/board (SIO not yet hooked up) . Documented differences in hardware. Added a check export version with the new menu. . Fixed undocumented Z80 CTC 'on-the-fly' mode switch; internal timer didn't stop. - rohga.cpp . Added dipswitch locations to all sets. Filled in missing 'Difficulty' switches for Schmeiser Robo. Filled in most switches for Hangzo. . Fixed cropped attract mode text in clone 'Wolf Fang -Kuhga 2001- (Japan)' (ID 06422) - segasp.cpp: Added missing EEPROM 93C46 device to fix -validate errors - stfight.cpp . Fixed ADPCM control . Latch ADPCM counter on the correct edge . Removed unused members, eliminate function statics and fix up save state registration. . Reduced runtime tagmap lookups - stlforce.cpp: Fixed OKI6295 speed (ID 06460) - stv.cpp . Clean up comments and BAD_DUMP flags in choroqhr and prc2ksu. NOTE: Print Club 2 2000 Summer fails IC7 check but rom read consistently, might be okay, might not be - supposedly ST-V print carts are known to have bad ROM tests(?). . Added preconfigured NVRAM to Print Club 2 2000 Summer and a new one to Choro Q Hyper Racing 5 - superqix.cpp . Bare minimum work to extricate hotsmash/pbillian from superqix_state and cleanup. Reduced tagmap lookups. . Hot Smash use M68705P5 core instead of in-driver peripherals - taito_f3.cpp: Fixed missing graphics on state load - taito_l.cpp . Split giant state class up into family tree, reduced tagmap lookups. . Re-use new Arkanoid 68705 interface device for Puzznic, eliminate Puzznic protection hacks. Removed crud from puzznic bootleg. . Clean up ROM unscrambling function for clone Plotting (World set 2, protected) . Shuffle taito_l family tree, should fix missing device errors. - tmaster.cpp: Minor doc update about the CES Galaxy Games carts - Archimedes (aristmk5.cpp and ertictac.cpp): Finally correct audio frequency setting - Aztarac: Verified and correct labels/locations and added newly dumped video board PROMS for this machine - Bagman: Fixed clone Le Bagnard (bootleg on Crazy Kong hardware) inputs and shuffle PROMs for better colors (game still tends to crash) - Battle Cross: Flipscreen problem (background scroll) - Bazooka [TTL]: Redumped clone Bazooka (Brazil) [TTL] - Biomechanical Toy: Dumped clone Biomechanical Toy (Ver. 1.0.1884) sound roms, fixes audio in this version. - Car Polo: Rewrite 74153. Only output state when the level changes. - Combat School: Fixed score line is not flipped with screen in Combat School an clones (ID 04907) - Eeekk!: Input port_name clarifications as well as further details for 'Difficulty' dipswitch settings. Fixes 2P Start Button map is missing (ID 06461). - Fever Soccer: Use 16-bit handlers for input reads; implement IRQ ACK. - Future Flash and Laser Base . Fully reverse engineered and emulated the Z1 protection IC (Games now playable) . Replaced laserbas macros with lambdas, make operation of bit selection more obvious . Fix for building with Visual Studio which doesn't support GCC extension "?:", simplify code & make spacing consistent. The Z80 is probably not running at 66mhz. - Joyful Road: IRQ cleanups. Eliminate HOLD_LINE while remaining true to schematics. Let main CPU properly acknowledge NMI. Use one VBLANK handler instead of two. Correct audio CPU clock divider (should be same as PSGs according to schematics). Misc. stylistic streamlining. - Karate Champ: All IRQs/NMIs acknowledged. Added 74LS157 for clone Karate Champ (US VS version, set 1). - Mahjong Shinkirou Deja Vu: Demoted Mahjong Shinkirou Deja Vu and clone Mahjong Shinkirou Deja Vu 2, see MT#00964 for more info. - Mario Bros. . Hook up Luigi walking sound in netlist mario sound implementation. Mario driver now uses netlist audio implementation instead of discrete implementation. The previous discrete sound emulation has not been removed yet because it still contains a lot of documentation. . Fixed compile for I8039 test code in mario sound - Midnight Resistance: Added MCU (disabled) to clone Midnight Resistance (bootleg with 68705) config - Number Crash: Added PCB readme - Out Run: Added in Speed Indicator for clone 'Out Run (sitdown/upright, Rev B) (Enhanced Edition v1.1.0)'. The Enhanced versions use DSB-4 for showing speed in km/h or MPH. This is a new additional the original sets didn't support. - PinMAME . Device hookups and memory maps in joctronic.cpp, following available schematics. . Added a ridiculously incomplete dump of the CPU ROM to Punky Willy . Tried to make some sense of the DIP settings in the service manual of Break '86. Update notes in vd.cpp source. . Hook up ZSU1 to Skill Flight (Playmatic) and Phantom Ship. Modernized ZSU soundlatch/IRQ mechanism. More hardware notes. Various associated code cleanups. . Added AY8910 reads to peyper.cpp . Identify DACs used in most Midway and Williams games . Identified EFO90503 in play_2.cpp and note usage; improve notes on EFO sound boards . Identified unknown DAC in byvid.cpp - Plump Pop: Verified that Plump Pop uses the same M-Chip as Extermination and Dr. Toppel. Added and corrected labels, locations and chip types for several ROMs/PROMs as well as updated notes, based on PCB pictures. - Pole Position II . Preliminary work on Gran Premio F1 sound system. Redumped some faulty roms for polepos2bs (the former speech ROM has bit6 fixed), plus added proper bipolar PROMs dumps. Documented the 'A', 'B' and 'C' board edge connectors for polepos2bs. . Sound improvements for bootlegs: Working Spanish/Italian voices in polepos2bi and polepos2bs. DAC for passing car sound in topracern, polepos2bi and polepos2bs. These bootlegs may still be missing explosion sounds. - Pyon Pyon Jump: Documented board 7908B pinout and bank #1/2 DIP switches - Sky Adventure: Increased buttons usable from 2 to 3 which matches port test in service mode as well as matching information in the conversion manual - Sky Army . Fixed screen flipping in cocktail mode . Re-added second AY-3-8910A that generates explosion sounds; the claim as to its absence made in 2003 was probably based on less accurate AY8910 emulation and/or a stripped PCB. . Added coin counter - Stadium Hero: Corrected tilemap colors - Super Qix: Deprotected an original Japan/World Super Qix 8751 MCU and verified that the presumptive B03 // 03 MCU dump is correct - Tang Tang: Added a preconfigured NVRAM so it won't boot with invalid settings - Thayer's Quest: Fixed COP400 divisor. Keyboard WIP. - Zwackery: Perfect quantum not needed for this driver, restores previous performance level. - Input port . Service mode DIP switch adjustments . Changed how input sequences are assigned to service mode DIP switches. The frontend now assigns them the default sequence for the non-toggle service mode/test switch (not necessarily the F2 key, the previously hardcoded default) unless the machine happens to have one of those as well (as is somewhat common with gambling games). . All DIP and configuration switches are automatically defined as toggle fields to make assigning input codes to them easier. Fixed for a potential problem if natural keyboard input gets disabled while machine is running (emu\natkeyboard.cpp). . Fixed for a potential problem if natural keyboard input gets disabled while machine is running (emu\natkeyboard.cpp) - Dipswitch fixes in armedf.cpp, aztarac.cpp, gsword.cpp, naomi.cpp, pacman.cpp, rohga.cpp, vd.cpp and vicdual.cpp - Fixed rom names in kangaroo.cpp, midwunit.cpp, ms32.cpp, pse.cpp, segae.cpp and tnzs.cpp - Description changes of The Double Dynamites (Japan, 13NOV89), The Double Dynamites (US, 13NOV89), Dynamite Duke (Europe, 03SEP89), Dynamite Duke (Europe, 25JUL89), Dynamite Duke (Japan, 03SEP89), Dynamite Duke (US, 25JUL89), F-14 Tomcat, New Double Bet Mahjong (bootleg of Royal Mahjong) [BET] (ID 05392), Poly-Play (ZRE), Print Club 2 2000 Summer (J 000509 V1.000), Saulabi Spirits / Jin Saulabi Tu Hon (Korean release of Samurai Shodown II, set 1), Smashing Drive (UK), Star Horse (live and backup), Star Horse (main screens) and Star Horse Progress (satellite, Rev A) - Renamed (starhrcl) to (shorse), (starhrct) to (shorsel), (starhrpr) to (shorsepr), (starhrse) to (shorsem), (starhrsp) to (shorsep) and (wldkicksj) to (wldkickspj) - MAME . HLSL . Changed cached texture format to floating point . Removed hacks in hlsl\phosphor.fx . Tweak presets for ini\presets\raster.ini, vector-mono.ini and vector.ini. . Changed cache texture format to floating point for precise for phosphor and ghosting shaders (render\d3d\d3dcomm.h, d3dhlsl.cpp and drawd3d.cpp) . 3rdparty . Updated zlib to 1.2.9 . Updated BGFX, BX and GENie . Added initial HTTP/HTTPS webserver/websocket server support. Added websockets as well. . PortAudio library update and backend. Fixed memory leak and log error checking (sound\pa_sound.cpp). Fixed PortAudio MinGW cross-compilation (3rdparty\portaudio\src\hostapi\wasapi/pa_win_wasapi.c). Fixed allowed latency range in PortAudio. Simplify the audio buffer and fix a wrap-around issue. . Added 'WAIT' function to LUA engine . UI . Added service mode DIP switch adjustments (emu\ioport.cpp, ui\info.cpp and ui.cpp). Removed find_dipname. . Changed ui\filesel.cpp to use wstring_from_utf8() . ROMs over 2 GB no longer reported as negative size in XML (mame\info.cpp) . PLUGINS: Updated hiscore.dat . Added handy ROM filename discrepancy spotter scripts . UWP (Universal Windows Platform): ASIO fix. Already sent pull request upstream. Fixed alt key input. . SOFTWARE LIST: Make "requirement" field in softlists actually work (ID 06464). MAME's architecture for software loading remains gruesomely overcomplicated, and this makes it even less efficient than it already was. However, I think more invasive cleanups would best be left until later. - MAC OS X . Fixed OSX build (CGFloat; osx\ . Autoscroll log window for OS X Cocoa debugger. Improved view scroll behavior. - Compiling . Move special windows.h include directives to build defines . Added JuliaLang utf8proc as a third party library with wrappers . Make DEBUG=0 and SYMBOLS=0 behave (makefile) . Fixed MSVC compile (src\3rdparty.lua) . Removing unnecessary callback (MSVC 2015 error; emu\main.cpp) - Debugger . Parse octal expressions (prefixed by '0'). Use 0o for octal prefix, added support for binary with 0b a la C++ and uppercase radix speifier (debug\express.cpp). . Added a facility to allow logerror output to reside in traces. As a consequence, the debugger 'trace' command was changed so that the third parameter is a list of '|' delimited options. . Created a new debugger command 'tracesym'. 'tracesym' is intended to be a shorthand of 'tracelog', whereby the user doesn't have to specify a format string; the default format string is used. . Added logmacro.h inspired by Edstrom's log macros (emu\logmacro.h)


0.186: Updated to MAME 0.186 ( Added Source/Listinfo changes. Newest Bugs (31st May). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.185: Updated to MAME 0.185 ( Added Source/Listinfo changes. Newest Bugs (26th Apr). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.184: Updated to MAME 0.184 ( Added Source/Listinfo changes. Newest Bugs (29th Mar). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.183: Updated to MAME 0.183 ( Added Source/Listinfo changes. Newest Bugs (22nd Feb). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.


MAMEINFO.DAT 0.186  (2.67 MB)

MAMEINFO.DAT 0.185  (2.65 MB)

MAMEINFO.DAT 0.184  (2.64 MB)

MAMEINFO.DAT 0.183  (2.62 MB)

   MASH's Driver WIP

   News Submission Board
   MAME Testers
   MAME Download
   MAME Frequently Asked Questions