0.225GIT - New games: Super Bubble Bobble (Sun Mixing, Megadrive clone hardware) - New Working games: 'Cadillacs and Dinosaurs (bootleg with PIC16C57, set 2)' and Tetris (bartop, prototype) - New Non-Working games: Bare Knuckle III / Sunset Riders (bootleg of Megadrive versions), Goemon Medal Game, Lucky Player, Matrix, Mexico Lindo, Mini Super Fruits, Pac-Carnival, Photo Play 1998 (Spanish), Photo Play 2001 (Italian), Star Horse 2002 (live), Star Horse 2002 (main screens), Star Horse 2002 (sound and backup, Rev A), 'unknown Hobby Play slot machine', 'Unknown Konami slot medal game (set 1)', 'Unknown Konami slot medal game (set 2)', 'unknown MGA or Costa Net slot machine', UNO the Medal and Wild Guns (SNES bootleg) - New clones: Air Duel (World, M72 hardware), Battle Garegga (location test) (Wed Jan 17 1996), Bubble Bobble (bootleg of Japan Ver 0.0 with 8749), Cruis'n USA (v4.5), CTA Invader, Gals Panic II (English, 2 PCB ver.), The History of Martial Arts (set 2), JoJo's Bizarre Adventure (Euro 990913), JoJo's Bizarre Adventure (Euro 990927), Le Bagnard (Itisa, Spain), The Legend of Kage (bootleg set 4), Master Bond (bootleg of Secret Agent), Meteor (bootleg of Asteroids), Midnight Run: Road Fighter 2 (AAA, Asia v1.10, newer sound program), Olivmandingo (Spanish bootleg of Mandinga on Galaxian hardware, set 2), P.O.W. - Prisoners of War (bootleg of US version 1), Pac-Man (Calfesa, Spanish bootleg on Galaxian hardware), Pacom Invader (set 2), Panic Park (Japan, PNP1 Ver. B, set 2), Photo Play 2000 (Spanish), Polaris (Latest version), Route X (bootleg, set 2), Speed Up (Version 2.20), Street Fighter II': Champion Edition (bootleg, set 1), Street Fighter II': Champion Edition (bootleg, set 2), Street Fighter II': Champion Edition (bootleg, set 3), Super Space Invaders '91 (World, earlier?), Tecnodarts (Recreativos G.R. license) and Traverse USA (bootleg, set 2) - New drivers: hobbyplay.cpp and matrix.cpp - New devices: alpha_8921, cat28f020, hd6435368, kp63_3channel, kp63a, mm5837_stream and z86e02 - CPU . Kawasaki Steel KL5C80A12/16: Added emulation of KP63(A) Timer/Counter unit. This improves timings in sigmab98.cpp games Animal Catch, Hae Hae Ka Ka Ka, Pye-nage Taikai and Taihou de Doboon. . MCS-48: Fixed problem with strt_cnt if counter was already enabled (mcs48\mcs48.cpp) . Zilog Z8681: Added interface notes. Added optional logging for SIO. Fixed reads from Ports 0 & 1 (z8\z8.cpp). . Zilog Z86E02: Added Z86E02 type - SOUND . Acclaim RAX: Modernized RAM allocation and object lookups . CEM3394 Synthesizer Voice: Major rework. Updated to new stream callback. All calculations are now doing in floating point. External input is now done via an input stream. First attempt at implementing a proper filter -- needs some major work; checking in current state to get some assistance. . Ensoniq ES5505: Correct Taito ES5505 Bankswitching behavior. Sample bank per ES5505 voice is actually taito_en.cpp specific. Moved external bank behavior into taito_en.cpp. Added getter for voice index. Added precalculated ES5505 bank table for reduce performance issue. Added getter for CPU. . MM5837: Unify implementations: Create base mm5837_source device to provide raw output. mm5837_device is based on it. mm5837_stream_device generates a sound stream from it. Frequency calculation now computed instead of table-based. . SN76496: Removed u8106 alias. Note: Sound chips have custom label "U8106". Or "8106" or unlabeled with the original label scratched off. They are presumedly SN76489. Note that Lady Bug's PCB S/N is also 8106 and has the same sound chips. . Sound streams . Significant internal changes to sound streams: Abstracted buffers of sound data into an internal stream_buffer class, with helper classes read_stream_view and write_stream_view which offer readable/writable "views" into the buffers. Internal sound calculations are all done using stream_buffer::sample_t, which is a 32-bit float; existing callbacks are supported through an adapter that converts to/from signed 32-bit integers. Improved behavior of dynamic stream sample rate changes to resample a short runway of data to preserve continuity across transitions. Created a new stream update callback which passes a std::vector of read_stream_views for inputs, and a std::vector of write_stream_views for outputs. Updated core mixer and speaker devices to the new stream update callback. Changed existing stream update callback to make inputs explicitly const and the output pointers const as well, since they are re-used across calls; fixed several engines that violated this rule. Sound_manager::stream_alloc can no longer automatically connect to a device's sound_stream_update callback; instead, the stream_alloc() on the sound_device_interface should be called; updated many violators of this rule. Streams can be created with SAMPLE_RATE_OUTPUT_ADAPTIVE, which dynamically tracks the sample rate of its first downstream output, or with SAMPLE_RATE_INPUT_ADAPTIVE, which tracks the sample rate of its first input. Changed resampling to be a separate sound_stream that is invoked as needed, opening the path for selectable resampling implementations. Added a flags parameter to the new stream allocation method that allows you to specify a that input streams should not be resampled. Exposed stream_input and stream_output classes directly, simplifying access to user gains and stream names. Added a simple dynamic compressor to sound_manager to provide nicer results when overdriven sound happens; compression does not affect speaker_report results. Improved verbose speaker_report to print a graph of peaks over time. More aggressive debugging enabled for now even in release builds (should be disabled prior to next release) via SOUND_DEBUG define in sound.h; report any assertions for fixing. . Updated the following sound cores to the new stream update callback: aica, asc, astrocde, awacs, ay8910, beep, bsmt2000, c140, c352, c6280, cdda, cdp1863, cdp1864, cdp1869, cem3394, dac, dac76, digitalk, discrete, dmadac, es1373, es5503, es5506, esqpump, rf5c400, rf5c68, flt_rc, flt_vol, gaelco, hc55516, i5000, ics2115, iremga20, k005289, k007232, k051649, k053260, k054539, ks0164, mas3507d, mea8000, mos6560, msm5205, msm5232, multipcm, namco, nes_apu, netlist, nile, okim6295, okim6376, okim9810, pokey, qs1000, qsound, samples, sn76496, sp0250, tms5220, tms57002, upd7759, vgm_visualizer, volt_reg and votrax. . Sound Interface . Drive updates more sensibly from the sound manager, fixing some asserts (emu\sound.cpp). Fixed edge case where pending sample rate matches output and some crackling when upsampling (emu\sound.cpp). . Some optimizations for common cases. Reuse resamplers if routing the same output to multiple targets at the same rate. Avoid copying when there's only one stream going through a mixer (emu\disound.cpp and emu\sound.cpp). Fixed asserts due to sample-rate ping-pong in (MESS) esq5505 driver (emu\sound.cpp). . Added a few new helpers to write_stream_view: put_clamp - clamps the input value before writing, put_int - takes an integer and coverts it to float, put_int_clamp - converts and clamps an integer and add_int - converts an int and adds to the current sample (emu\sound.h). . Taito Ensoniq Sound System: Fixed overdriving that caused distortion and pops in previous versions (audio\taito_en.cpp) . Votrax SC-01: Fixed pitch and closure. Note that the dynamic clock changes will sound bad until Aaron's sound stream fixes are in. Fixed Votrax SC-01 hookup for Gorf and Wizard of Wor. Updated to new stream callback. - DEVICE . 6522 VIA: Added support for CB2 pulse mode. Port B special modes are only on write, not read. . BACTA Datalogger: Attempt at a fix for missed character transmissions. Turn off log pollution. . Discrete Netlist . Use macro DIP definitons for 8277, 9314, 9334, AM2847, MM5837 and TMS4800. . Templatize 74107 and code maintenance. Removed some dead friend declarations. Optimized template times_ns2. . Fixed visibility in some devices (private rules) . References to subdevices should be symbolic: Exposing sub-device members is not best practice. The need for sub-devices is a clear indication that a netlist language implementation would be a better solution. . In devices folder all DIP devices were removed. NE555 and MC1455P were the last devices with DIP definitions in devices. . Build system improvements. Medium term this will significantly ease adding devices to netlist. Clang tidy include order fixes. . Added 7417, 7438, 74290 and 74293 devices. Fixed PROM DIPs. . More standalone makefile changes: On windows a simple make is now enough to build. Devices, macro and tests folders now included with wildcard. No more makefile changes if a device is added. Moved nld_devinc.h to generated folder. Added to python scripts to create nld_devinc.h and lib_entries.hxx. TEST MODE: these two files are created automatically but are not used currently. Once I get feedback that the python scripts work in different environments I will remove header files from devices and macro and start using these files in production. . Fixed various issues around include directories: Removed include directory src\lib

etlist from various genie files to avoid potential issues. Code using netlist should use #include "netlist/*". Updated includes. Fixed standalone makefile depend target to properly deal with relative paths. . Various minor adjustments based on PR comments . Standalone makefile support for OSX . Truth tables are now standalone objects. Added TRUTHTABLE_ENTRY to netlist language. Please see nlm_ttl74xx for reference implementation. . Fixed processing of TRUTHTABLES for generated files. Also made nld_devinc.h srcclean friendly. nld_devinc.h and lib_entries.hxx are currently not used. You can try the automated build by changing NL_AUTO_DEVICES in setup.h to 1. . Code maintenance and performance optimizations. Renamed some misleading type names. Removed callback_t and replace by better scalable approach. Hide implementations details. Noved sources classes from putil.h to psources.h. Reduced code complexity. Improved parsing performance, parsing netlists now is twice as fast. Fixed issues around multi-byte string support. Moved psplit into pstrutil.h. Fixed multi byte string issues. . Implemented voltage dependent timing for CD4006. Added listmodels command to nltool. . Moved netlist to generated header and link support files files. Removed device and macro header files. All of those can be generated automatically so going forward there is no need for these any longer. Introduced the modules concept. Modules are netlists for which automatic lib entries are generated. Going forward you just store them in macro/modules and they will be automatically registered as device elements. You need to do a "make generated" is src/lib/netlist/build. Some_device.cpp still needs to be added to netlist.lua. Added documentation on how to add devices to netlist. Please refer to adding_devices.md for more information. Moved selected NET_MODELS into the core. . Moved ICL8038_DIP and NE556_DIP to core. Removed code duplication. . Optimized headers. Where possible rely on forward declarations to optimize compile time. Emscripten can not use specialization efficiently. Consequently prefer to save on compile time and size. . Added netlist devices for MCM14524, CD4029, CD4030, CD4042, CD4049 and CD4076. . Code refactoring. Optimization to the gmres solver. Simplifcation of vector operation code. . Significant performance increase. Uses all 4 Sonar oscillators. Uses randomized resistor values (5% range). Uses frontiers to separate oscillators. Improves performance to 340% locally (netlist\generated\static_solvers.cpp and audio

l_astrob.cpp). . Ensoniq ES5503: Don't overdrive the output . Floppy: Corrected register commit delay for WD177x according to datasheet (machine\wd_fdc.cpp) . Imgtool: Fixing an Imgtool build issue with LLVM on MSVC . K001006 Texel Unit: Removed alternate texture layout . Namco 51xx: Reimplement outputs that were accidentally disabled when device switched to using low-level emulation. This restores start LEDs and coin lockouts for various games in galaga.cpp (ID 07733) and polepos.cpp. . SCSI Hard Disk: Have bad hard disk reads actually fail instead of just returning zeroes (bus

scsi\hd.cpp). . Serial interface: Use logmacro for optional logging and make the messages more useful (emu\diserial.cpp) . Western Digital WD33C9x SCSI Controller: Handle 'polled DMA' in vme_hcpu30 (machine\wd33c9x.cpp) - 39in1.cpp: Some improvements to the decryption of the newer games, still missing something. - astrocde.cpp: Fixed Votrax SC-01 hookup for Gorf and Wizard of Wor - bingor.cpp: Mark all PIC dumps as bad in bingor1, bingor2, bingor3, bingor4 and bingor5. - cinemat.cpp: Small cleanup/safety improvement (audio\cinemat.cpp) - cps1bl_5205.cpp, cps1bl_pic.cpp and midyunit.cpp: Added PALs to clones Cadillacs and Dinosaurs (bootleg with PIC16C57, set 2), Captain Commando (bootleg with 2xMSM5205), Jurassic 99 (Cadillacs and Dinosaurs bootleg with EM78P447AP), Knights of the Round (bootleg with 2xMSM5205, set 2), Mortal Kombat (Yawdim bootleg, set 2) and Saturday Night Slam Masters (bootleg with PIC16C57, set 1). Redumped clone Cadillacs and Dinosaurs (bootleg with PIC16C57, set 2) bad gfx rom. - cv1k.cpp: Slightly more accurate frame rate - ddenlovr.cpp: Separated state class a little - deco_mlc.cpp: Fixed invisible pixel issue in vertical zooming algorithm. Reduced unnecessary line check. - magicard.cpp: Decapped and dumped PIC16C54/56 devices for Magic Card Export 94, Magic Card - Wien (Sicherheitsversion 1.2), Puzzle Me! and unknown 'TE06' - neogeo.cpp: Device-fied PRO-CT0 for protection for Fatal Fury 2, aka ALPHA-8921 or SNK-9201. Note: This chip is sprite ROM data serializer or optional security device. Used in some later 80s Alpha Denshi hardware (ex: Gang Wars). Some early Neogeo MVS motherboards and AES cartridges. Also integrated in NEO-ZMC2 and NEO-CMC. Reference: https://wiki.neogeodev.org/index.php?title=PRO-CT0. - pgm2.cpp . Changed 'The King of Fighters '98: Ultimate Match HERO' refresh rate to match PCB video . PGM2 lores refresh rate was approximated from video recording, hsync/vtotal are not verified - segas32.cpp: Eliminated auto_alloc and a bizarre comparison between bitmap pointers - seta2.cpp: Fixed invisible pixel issue in horizontal zoom algorithm. Added notes for background color. - sigmab98.cpp . Pile kludge upon kludge for Animal Catch poorly understood video timing register. Increased frequency of one timer interrupt for Go Go Cowboy and Itazura Monkey and hopper timing in Go Go Cowboy. . Modernized state_add syntax for KC82 and KP69 . Added emulation of KP63(A) Timer/Counter unit for KL5C80A12 CPU. This improves timings in Animal Catch, Hae Hae Ka Ka Ka, Pye-nage Taikai and Taihou de Doboon. - toaplan2.cpp: Fixed YM2151/OKI level balancing for Armed Police Batrider and Battle Garegga - zr107.cpp: Correct texture roms loading in all ganes. They now pass the texture mask ROM check. Partially fixes MT07731. The tile mask ROM test still fails. - AGEMAME: Added preliminary layout and inputs for Double Take (BWB). Added an experimental LUA script to the Double Take layout. This takes individual lamp lines that are used for LED selects and recombines them. To see the effect, plugin -layout is needed. - Astro Blaster: Significant performance increase. Uses all 4 Sonar oscillators. Uses randomized resistor values (5% range). Uses frontiers to separate oscillators. Improves performance to 340% locally (netlist\generated\static_solvers.cpp and audio

l_astrob.cpp). - Bingo Roll / Turbo Bingo?: Decapped and dumped PIC16C54 device - Columns III (Mega Play): Make the existing dipswitch definitions actually used - Cyberball: Fixed SAC communications between 6502 and MC68000 CPUs (ID 07749) - Dardomania: Added missing rom. Now the dump is complete. Added ASCII PCB layout. - Double Dealer: Use tilemap_t for splittable foreground tilemap. Fixed MCU input with side effects. Fixed masking. Reduced runtime tag lookup and duplicates. Use shorter type values. - EuroPlay 2001: Added two new BIOS dumps - Funny Strip: Added address_map and input ports to clone Ring Ball - Ginga NinkyouDen: Removed trivial ROM patch, use nopw() instead. - Hola Don Pepito: Decapped and dumped PIC16C56 device - Karnov: Dumped and hook up MCU for Karnov (US, rev 6) and clone Karnov (US, rev 5). Use a handcrafted MCU dump based on the US version for clone Karnov (Japan). - Kyros: Improved clone Kyros no Yakata (Japan) PCB documentation - Mortal Kombat 4: Added security PIC dump - Mr. Do!: Replaced the 2x U8106 sound with 2x SN76489 - NBA Jam Extreme: Fixed region width in clone NBA Jam Extreme (ver. 1.04) - PinMAME: Cleaned up Williams System 11 pinball layouts (layout\s11.lay, s11a.lay, s11b.lay and s11c.lay) - Prehistoric Isle in 1930: Fixed priority - Puzzlet: Replaced coin MCU simulation with low-level Zilog Z86E02 CPU emulation - Q*bert: Better approximation of Votrax frequencies, pending deeper analysis (audio\gottlieb.cpp). - Sega Golf Club Network Pro Tour 2005: Brute forced key - Super Space Invaders '91: Added PLDs - Tetris: Added support for clone Tetris (bartop, prototype) bank switching. Moved bartop proto handler into new subclass of atetris_state. - Tetris: The Grand Master: Added config port for Tetris: The Grand Master debug buttons - Treasure Island: Fixed artwork labeld for buttons - Video Poker: Clean up layouts and make layouts clickable for poker and slots games - 'unknown Recreativos Franco slot machine': Added ASCII PCB layout - Input port . Moved axis movement checking code down into input devices. Transfer crosshair polling loop to render_crosshair. . Overhaul the default keys list (docs\source\usingmame\defaultkeys.rst) . Cleaned up inputs a little. Removed the IPT_POKER_BET, replacing it with IPT_GAMBLE_BET. Re-organised the order of input types in the source and the documentation to better reflect how they're logically grouped or organised on a mahjong or gambling control panel. Made the blackjack, poker and slots documentation headings subheadings under the gambling heading. Cleaned up inputs for a number of gambling games. Added mahjong panel diagram. - Fixed rom names in 8080bw.cpp, midxunit.cpp, photoply.cpp, startouch.cpp and williams.cpp - Dipswitch fixes in gaelcof3.cpp, megaplay.cpp and vegas.cpp - Description changes of 19 in 1 MAME bootleg (BAR-V000), 48 in 1 MAME bootleg (set 1, ver 3.09, HPH-V000), 48 in 1 MAME bootleg (set 2, ver 3.09, HPH-V000, alt flash), 48 in 1 MAME bootleg (set 3, ver 3.02, HPH-V000), 60 in 1 MAME bootleg (ver 3.00, ICD-V000), Cruis'n USA (v2.1), Cruis'n USA (v4.0), Cruis'n USA (v4.1), Cruis'n USA (v4.4), Cruis'n World (v1.3), Cruis'n World (v1.7), Cruis'n World (v1.9), Cruis'n World (v2.0), Cruis'n World (v2.3), Cruis'n World (v2.4), Cruis'n World (v2.5), Gals Panic II (Italy, 2 PCB ver.), Gals Panic II (Taiwan, 2 PCB ver.), Genshitou 1930's, The History of Martial Arts (set 1), Joust (Green label), Joust (Red label), Joust (Yellow label), Le Bagnard (Itisa, Spain, older), Meteor (Hoei bootleg of Asteroids), Midnight Run: Road Fighter 2 (AAA, Asia v1.10, older sound program), 'NBA Showtime NBA on NBC (ver 2.0, Apr 25 1999)', Olivmandingo (Spanish bootleg of Mandinga on Galaxian hardware, set 1), Pacom Invader (set 1), Polaris (Second revision), Panic Park (Japan, PNP1 Ver. B, set 1), Route X (bootleg, set 1), 'SportStation: NBA Showtime NBA on NBC (ver 2.1, Sep 22 1999) / NFL Blitz 2000 Gold Edition (ver 1.5, Sep 22 1999)', 'SportStation: NBA Showtime NBA on NBC Gold Edition (ver 3.0, Feb 18 2000) / NFL Blitz 2000 Gold Edition', Traverse USA (bootleg, set 1) and Wonsido 1930's (Korea). - Renamed (airduelm72) to (airdueljm72), (bagnardi) to (bagnardio), (crusnusa) to (crusnusa44), (dbreedm72j) to (dbreedjm72), (galpani2e2) to (galpani2i2), (jojoba) to (jojobaj), (jojobar1) to (jojobajr1), (joustwr) to (jousty), (photoply) to (photoply2k), (polarisa) to (polarisb), (polaris) to (polarisa) and (speedup) to (speedup12) - MAME . VIDEO RENDERING SYSTEM . May need to recompute selected view when loading visibility toggle configuration . Apply target orientation when mapping points to layout elements, fixes rotating view in clickable artworks does not rotate clickable part (ID 07375). Also increase efficiency when layouts contain large numbers of non-interactive elements (e.g. thousands of matrix display dots). Also includes work in progress for future improvements (emu\render.cpp). . Don't restrict borderless full-screen windows to monitor work area (osd\windows\window.cpp). Fixed MAME gameplay position is offset when Windows taskbar is moved to top of screen (ID 07745). . PWM Display: Removed now-obsolete savestate workaround (video\pwm.cpp) . Added parameter animation and state masks. Components may have multiple bounds and/or color child elements with state attributes, allowing for piecewise linear position/size/colour animation. Components may have a statemask attribute, allowing for things like using external images to draw a multi-segment LED/VFD display without requiring dozens of outputs for the individual lines or thousands of images for all possible states. (Texture caching still never releases anything, so MAME can still exceed the maximum number of textures, but that's a separate issue). Image components with alpha now blend over previously drawn components. Layouts have been changed to use yes/no for inputraw to match what's used for flipx/flipy. External layouts with 1/0 will still work, but complay.py will complain (emu\rendlay.cpp). . Small optimisation for opaque pixels in image component (emu\rendlay.cpp) . Correct output alpha for rect and disk components. This corrects alpha for cases when both the rect/disk and whatever it's drawing over are translucent, and also optimises for fully opaque and fully transparent pixels (emu\rendlay.cpp and layout\cgang.lay). . Use std::fill_n to get better code for modern CPUs (lib\util\bitmap.cpp) . DEVICE . Catch missing required I/O ports in systems (excluding slot cards). Move explicit template instantiations below all member bodies to make Clang behave (emu\devfind.cpp). . Device State Interface overhaul . device_state_entry::value and device_state_entry::set_value now do everything except the register lookup, allowing them to be made public. The debugger expression engine now uses these. . device_state_entry::dvalue and device_state_entry::set_dvalue have also been made public, theoretically permitting outside code layers to inspect and modify floating-point registers. . The double specialization of device_pseudo_state_register (now renamed device_functional_state_register) has been added to the core. . state_add now has an additional specialization that takes both a reference and a write function, using the former for reads only. . state_max_length has been eliminated in favor of obtaining the relevant info through device_state_entry::max_length. . he debugger state view no longer adds "flags" as "???" if none have been registered. . set_state_string has been removed. It was never properly implemented, and it is difficult to see how it could have been done in a useful and consistent way. . state_find_entry and its typical callers state_int and set_state_int have been inlined for some hopeful efficiency gains. . UI . Added option to skip repeated imperfect emulation warnings. The option is called skip_warnings, and it must be set in ui.ini (it can be set using the internal UI). Red warnings cannot be skipped; yellow warning can be skipped under certain circumstances. For a yellow warning to be skipped, the system must have been launched in a way that allows warnings to be displayed, in a configuration with the same set of devices flagged with unemulated/imperfect features, within the last seven days, and the warning must have been displayed within the past 14 days. Also fixed a bug with display of the MACHINE_NO_COCKTAIL flag in the internal UI, and increased the size of XML integer attributes to 64 bits. . Make unimplemented graphics and sound severe warnings. This means you'll get an unskippable red warning for systems that have unimplemented sound or graphics that are otherwise marked working. This also applies to subdevices, so for example plugging a non-working video card or sound card into a computer driver will now cause a red warning. This should make it clearer when a game is playable but missing sound, or when a video or sound card doesn't work. The downside is that this could cause annoyance in a couple of situations. Workstations/servers with unemulated video that have working serial terminals and networking will now cause a red warning, and terminals/keyboards/etc. with missing beepers, key click, etc. will now cause a red warning even if they're otherwise usable. It may be worth making unimplemented controls and keyboard a severe error as well, since plugging in a non-working emulated keyboard is likely to make a system unusable. . XML: Escape attribute and element content. The previous behaviour was unintuitive - parsing an XML file and writing it out immediately would produce invalid XML if the file contained any ncharacters that needed escaping. It makes far more sense to escape on writing rather than expecting the user to escape input. Added preliminary support for visibility toggles to artwork system. This allows the user to show/hide related elements in a view, with nesting. The view can specify whether elements are shown or hidden by ndefault. Settings are saved per host window/screen per view. There is nno way to set the initial visibility state on the command line. Legacy n"Space Invaders cabinet model" layers are mapped onto visibility toggles. This is not stable yet. In particular, the XML element/attribute names have not been finalised. The new features have not been added to complay.py to prevent them from being used before they're finalised (util\xmlfile.cpp). . LUA engine: Added load_software, time_until_pos and ioport():type_seq. . Don't ignore config elements with attributes but no child nodes (emu\config.cpp and util\xmlfile.cpp) . Get rid of a bunch of _Names - any name starting with an underscore followed by an uppercase letter is reserved . Fixed STRUCT_MEMBER in audio\segausb.cpp and sound\sp0250.cpp . Validity: Limit characters allowed in I/O port tags and check ROMs and I/O ports for devices individually (emu\validity.cpp). Catch missing required I/O ports in systems (excluding slot cards) (emu\validity.cpp). . Use appropriate standard exceptions for reporting errors, allowing libemu to be removed from imgtool and floptool (formats\flopimg.cpp). . LAYOUT . Adding new mechanism for allowing parts of views to be hidden. Changed name of element to "collection" and initial visibility attribute to "visible", and added them to documentation. Also added them to complay.py. Fixed issue with collection inside group, and improved initial view selection behaviour. Updated some internal layouts to demonstrate new features, including et3400, irrmaze, ltcasino, mekd3/mekd4, seawolf and vgmplay. Removed all uses of cpanel, marquee and overlay from internal layouts and removed them from complay.py to actively discourage use. Also cleaned up view names in layouts that were using them in place of spaces, and removed some superfluous name attributes on elements that won't do anything useful with an output value anyway. . Bulk-updated layouts using bezels without backgrounds or screen. These layouts had bezel elements only. It makes no sense to allow turning off all elements in a layout leaving the user with a blank window (It's possible some of them are suited to breaking up using collections, but that's a bigger job). . Bulk-updated layouts using backdrops without bezels or screens. These are mostly automatically generated/converted fruit machine layouts. They were fortuitously triggering the "alternate" layout mode by having multiple background elements without overlays, so alpha blending mode was used for all elements. . Fixed issue that automatically generated unnecessary internal views. Updated a few more internal layouts, mostly bezel-only ones. brkball wasn't using the DMD dots at all (it has a screen). The Aristocrat layouts could use collections to allow buttons and tower lamps to be enabled/disabled independently. . Updated another batch of layouts. The majority of these were using for control panels. Cleaned up the stactics layout, made laser LEDs use additive blending, and made it possible to hide just the control panel. Added several view options to the Jockey Club family of games. Added ability to show/hide parts of several other layouts. . Fixed bug calculating group bounds with repeats. Bounds were being miscalculated when the first element inside the group was inside a repeat or a collection. Most visible in md6802. A lot of these were using a black backdrop element to force bounds when either explicit view bounds or an empty element is a better way to achieve the same thing. Bally by17/by35 pinball layouts have had a bit of an overhaul with the three sections of the display now abled to be toggled independently. Ensoniq VFD layouts refactored to reduce a very large number of lines down to a few nested repeats. . Updated efootb4, einvader and einvaderc layouts to zoom view when hiding score display. Added some optional verbose logging for debugging group bounds calculation. . Eliminated remaining elements from internal layouts. These layouts have changes to element stacking order that can't be avoided without changing the group structure in the layout files. I think it's harmless, but it's possible it could have had a detrimental effect on (MESS) risc2500 (I tested it and didn't see any changes, but I might not have known what to look for). complay.py: Added basic checks for dupicate collection names. As with other checks of this kind, it doesn't actually instantiate the layout so it doesn't check things when variable substitution is involved. . Converted video\bfm_dm01.cpp back to using outputs and update layouts. Outputs no longer require string formatting and hash lookups, and only changes to output values result in notifications. Performance is better than before. We never had any kind of post-processing to make the "alternate pixels" screen bitmap look like a DMD, and the bilinear scaling looked awful. . Print warning messages on encountering deprecated elements . Cleaned up de_2.cpp layouts using loops and made bounds fit the content. Made caveman (gts80a.cpp) screen match the height of the backglass, fixed bounds and added backglass-only view. . Fixed some layouts that were depending on emergent behaviour rather than specifying state="0" on components explicitly . Added support for saving arrays of attotimes and renamed macros to make purpose more obvious (emu\save.h) . PLUGINS . Added emu.plugin table to contain plugin exported interfaces (plugins\boot.lua, plugins\cheat\init.lua). Copy the cheat table to not expose internal state (plugins\cheat\init.lua). . hiscore.dat: Removed Gauntlet. The high scores are in the NVRAM, these cause more problems then they are worth. - Android: Auto-discover Clang version. Fixed android builds after mame-0.224 (makefile). - SDLMAME: Drop MASK from osd\sdl\taputil.sh - VGM player: Adding new mechanism for allowing parts of views to be hidden. Fixed issue with collection inside group and improved initial view selection behaviour. Updated some internal layouts to demonstrate new features, including vgmplay. Made vgmplay cycle visualiser modes when visualiser screen is clicked. - Compiling . Added naming conventions for certain things. This isn't supposed to be too prescriptive. The C++ stuff just codifies some things we've managed to mostly agree on for public interfaces. The stuff for titles/descriptions is also just codifying existing rules so there's something to point people towards. This will need to be refined as we go forward (docs\source\techspecs

aming.rst). . Emscripten . Fixed Clang version detection under Emscripten . Netlist and OpenGL improvements: Most OpenGL link issues fixed. Two remain from drawogl.cpp. This isn't working anyhow. "-video accel" now uses WebGL. This allows GL based scaling and provides a performance improvement. Fixed pong and other games by adding another function to the exception whitelist. Target now is mame.html. This allows emrun to be used for testing. mame.js is created as well and thus the current behaviour unchanged (scripts\genie.lua and scripts\src\main.lua). . Deal with loops when there are parent directory references in #include directives. As an aside, it would be nice if the loops weren't there in the first place (scripts\build\makedep.py). . Get rid of more inappropriate use of emu_fatalerror . Removed memarray.h from emu.h - Debugger: Replaced simple_list with std::list in parsing. Report too few or too many function parameters in debug expressions as expression errors instead of exiting MAME with a fatal error (debug\express.cpp). 0.224 - New games: Break Ball and Gratis Poker (V.204, set 1) - New Working games: Super 98 (3-hands, ICP-1) - New Working AGEMAME games: v4addladd, v4barqstd, v4bloxd, v4mated, v4psibcd, v4pzteta, v4pztetc, v4strike2d and v4striked - New Non-Working games: Bare Knuckle II (bootleg of Megadrive version), Bingo 75, Hola Don Pepito, Photo Play 1999 (Spanish), Sega Golf Club Network Pro Tour 2005 (Rev C) (GDX-0010C) and 'SNES 4 Slot arcade switcher (NBA Jam)' - New clones: Cherry Master I (ver.1.01, set 9), Cherry Master I (ver.1.01, set 10, BET stops all), Cherry Master I (ver.1.01, set 11, TAKE stops all), Cuatro en Linea (rev. A-06), Dead or Alive (Model 2B, Revision C), Gratis Poker (V.204, set 2), Huanle Liuhe Yi (Happy 6-in-1) (M68K ver. V100, ARM ver. V100CN), Jolly Card (Italian, encrypted bootleg, set 3), Jolly Joker (40bet, lower paytable), Jolly Joker (Solid State module in suicide board), 'Knights of Valour 2 Plus - Nine Dragons / Sanguo Zhan Ji 2 Qunxiong Zhengba / Sanguo Zhan Ji 2 Feilong Zai Tian / Sangoku Senki Busyou Souha (ver. M203XX, 200, 100CN)', Monopoly (JPM) (Version 3) (SYSTEM5 VIDEO), Monopoly (JPM) (Version 4H, Protocol) (SYSTEM5 VIDEO), Monopoly Classic (JPM) (Version 5, Protocol) (SYSTEM5 VIDEO), Monopoly Deluxe (JPM) (Version 1) (SYSTEM5 VIDEO), Monopoly Deluxe (JPM) (Version 6, Protocol) (SYSTEM5 VIDEO), Mr. Do! (bootleg), Mighty! Pang (Asia 001010), Gkoulit (encrypted GFX), 'Oriental Legend 2 (Korea) / Xiyou Shi E Chuan Qunmoluanwu (World, China, Japan, Hong Kong, Taiwan) (ver. 203) [Oriental Ex]', Oriental Legend / Xiyou Shi E Chuan (ver. 105, Taiwanese Board), Puzzle Star / Mohuan Xingzuo (ver. 100MG, 09/30/99 build), Reflex Cards (English, serial protected), Ring of Destruction: Slammasters II (Brazil 940902), Sector Zone (set 2, Tecfri hardware), Sector Zone (set 3), Shan Liang San He Yi (Flash 3-in-1) (V102 08/23/04 13:03:26), Tougenkyou - Road of the Sword (M68k label V100) (ARM label V101, ROM 03/13/03 SHEN JIAN) (Japan, JAMMA PCB), Zhongguo Long II (ver. 101C, China), Zhongguo Long Pretty Chance [Dragon World Pretty Chance] (V110 03/19/02 11:13:16, China) and Zoo Keeper (bootleg) - New AGEMAME games: Gold Rush (BWB) (Release 3, 20p Fixed, Cash+Token) (MPU4 Video), Miami Dice (BWB) (Release 6, Arcade Standard, 20p-\xa38 Token - Fixed) (MPU4 Video), Monopoly Classic (JPM) (Version 5, Protocol) (SYSTEM5 VIDEO), Monte Carlo Or Bust (BWB) (German) (MPU4 Video), Monte Carlo Or Bust (BWB) (Release B, Arcade Special, 20p Fixed, Cash and Tokens) (MPU4 Video), Monte Carlo Or Bust (BWB) (Release B, Arcade Special, 20p Switchable, Cash and Tokens) (MPU4 Video), Monte Carlo Or Bust (BWB) (Release B, S/Site Standard, 20p Fixed, \xa38 All Cash) (MPU4 Video), Piccadilly Night (Nova, German) (set 2) (MPU4 Video) and Piccadilly Night (Nova, German) (set 3) (MPU4 Video) - New PinMAME games: Baywatch (2.01 French) and Middle Earth (alternate) - New devices: astrob_audio, bacta_datalogger, elim_audio, kl5c80a16, kp69, ky80, lagunar_audio, pinsnd88, s11_bgm, s11_bgs, s11_obg, spcfury_audio and zektor_audio - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - CPU . ARM7: Fixed THUMB ROR behavior for shift values of 0 or >= 32. All tests in FuzzARM (CPU test for Game Boy Advance) now pass (arm7\arm7thmb.cpp) . Kawasaki Steel KL5C80A12: Emulated KP69 interrupt controller. Clean up KP69 code a bit. Don't latch masked-out requests. Prepare for device variant. Log kc82 MMU changes. . MCS-48: Fixed cycles not deducted for timer IRQ, get rid of (MESS) Kaypro 10 hack. Burn opcode cycles before executing opcode. Get rid of wy100 irq hack. Fixed possible missed timer overflow if burn_cycles is larger than 2. Fixed cond jump address if argument fetch was at 0x7ff or 0xfff (mcs48\mcs48.cpp). . NEC uPD7810: Analog fixes (conversion registers, scan mode). Fixed semantics of SKIT NMI and SKNIT NMI. Simplified analog input code. . NEC Vxx/V25: Use anonymous namespaces to avoid ODR violations with enums . Texas Instruments TMS34010/20: Eliminated pure 8-bit read/write bus accesses (these are always read-modify-write, even if aligned) . Texas Instruments TMS34020: Upgraded data bus to 32 bits and add preliminary masking for 16-bit operations. . Zilog Z80: Don't continue cpu when halt opcode gets overwritten . Zilog Z80180: Correct FRC counting rate and direction. Run programmable reload timer off FRC. Emulated a subtle difference from Z80 behavior in fetching opcode after DD CB or FD CB. . Zilog Z8681: Fixed bug in decimal adjust (z8\z8ops.hxx). Fixes PRINT 654 in (MESS) BERT (1987). - SOUND . GI SP0250 LPC: Matched clock divider to real chip measurements. Fixed behavior when not fed enough data; addresses "gapping" in speech in Sega games. Implemented accurate LFR noise generator according to real chip measurements. Added pulse-width modulation DAC output mode for future consumption by netlist. Further verification from real hardware. . K054539 ADPCM: Allow side effects. Added imperfect_features related to unverified/unemulated effects and some registers. . Sega Speech Sound Board: Wrote netlist-based backend for 'Sega Speech Sound Board'; currently disabled pending future sound system changes. . Sega Universal Sound Board: Improved Universal Sound Board implementation for better accuracy in Star Trek and Tac/Scan (ID 07103). Wrote netlist-based backend for 'Sega Universal Sound Board'; currently disabled due to limitations in the system. . Speaker: Added new option -speaker_report to report clipping and other statistics after each session. This replaces the previous compile-time define and offers more detail. - DEVICE . 3dfx Voodoo Graphics: Disabled debug statistics popup (video\voodoo.cpp) . Atari CAGE: Added one missing variable to state saving (audio\cage.cpp), should address MT07724 (No sound when loading from save state in sfrush and sfrushrk). . Discrete Netlist . Added netlist sound to Destroyer (https://youtu.be/xOxXcZqIoeo), Fire One (https://youtu.be/xOl0NR5in5o), Flyball (https://youtu.be/AaVw4egRCRc), Star Cruiser (https://youtu.be/XwNVSPnM4dQ), Star Fire (https://youtu.be/pOPmgesqO6c), Star Fire 2, Super Speed Race and Tank Battalion (https://youtu.be/Gv5wLv6Ry-o). . Added netlist-based sound to Astro Blaster, Eliminator, Space Fury and Zektor. . Added netlist for Tank/Tank Cocktail [TTL]. Currently runs at about 0.005% of full speed, unsure why. . Fixed building with GCC-10.1 on MinGW32 (machine

l_palestra.cpp) . Removed test code from nld_74125.cpp. Further nl_base.h splitting into headers in core subdir. Fixed a crash if an exception happened during validation (machine

etlist.cpp). Fixed a bug in preprocessor if and elif parsing. Added a missing directive to the file parser. Necessary changes towards runtime processing of macro directory. . Source stream refactoring. This is an infrastructure change to enable better error reporting including file/source and line numbers in the future. . Added CD4011, CD4024, 7407 and CD4053 devices. Fixed 4011 implementation. Converted CD4013 DIP to macro. Fixed an issue during proxy hookup. Added cd4053 to netlist.lua. Recreated nld_devinc.h. . Fixed 74ls629 implementation and some cherry-picking issues. Disable dangerous optimization. This was an over-aggressive optimization. Now prints an info and recommends to comment out if appropriate. . Device refactoring: Moved DIPs for 82S16, 82S115 and 2102A devices into nlm_proms. Moved 7448 DIP to a macro. Replaced 7442 with truthtable and macro. Moved 74LS629 DIP into macro. Expand truthtable to handle 10 outputs. Updated 7450, 7473/7473A, 7474, 7475/7477 devices to use DIP macros instead of C++ DIPs. Reworked 7475/7477 more in the style of 7474, leveraging system signal activation and edge detection. Fixed incorrect sense in warning (analog

ld_mosfet.cpp). . Added CD4017/4022 devices. Fixed 7492 and roms include bug (devices

ld_7492.cpp and macro

lm_roms.h). . Macro-ized 7483, 7485, 7490, 7492, 7493, 7497, 9310, 9316, 9322, 74107, 74113, 74153, 74161, 74163, 74164, 74165, 74166, 74174, 74393 and CD4006 DIPs. . Minor optimization to remove sqrt from inner loop (solver

ld_matrix_solver_ext.h). Moved documentation from header to cpp file: Header files will disappear and only nld_devinc.h which is can be created by nltool will stay. These commits ensure that the documentation is preserved when the header files are deleted at some point in the future. . Added example documentation to SN74LS629_DIP (macro

lm_ttl74xx.cpp) . Silence indentation warning in 3rdparty/ under Emscripten . Refactored pokenizer. Separated tokenizing and reading of tokens. This enables caching of parsing results on the token level. Implemented caching of token stream. Overall this significantly improves parsing performance (~10x). Next step towards a bare-bone nltool which does not depend on macro devices. . Added documentation for devices in nlm_ttl74xxx.cpp. Documentation for all devices in nlm_ttl74xxx now is available in the doxygen documentation. . Renamed DM9312 to TTL_9312 for consistency. Added man target to netlist makefile (help2man). . Header file separation. Fixed creation of static solvers. Fixed line-number tracking when at end of line. . Align naming of files within the macro folder. Use a consistent naming scheme. Improved parsing performance. Preparational work for easier device addition. . More include untangling. nl_base.h now basically only includes files from core. All headers in core compile on their own. . Untangle sound and cpu devices. Member variables are now where they belong. Avoid over/underclocking of netlist sound devices. . Make streams accept logic parameters as well (netlist

l_interface.h). Added THRESH parameter to AFUNC (devices

lid_system.h). . Added machine.time() rules. Avoid overshooting sound devices, i.e. advancing past machine.time(). . Fixed elif processing (plib\ppreprocessor.cpp). Removed printf debugging (netlist

l_parser.cpp and nl_setup.cpp). Also raises error if during parsing a local source is not found (netlist

l_errstr.h). . buffered_param_setter refactoring: Each parameter to set now has a dedicated buffered_param_setter device. This allows different sample times per device. Updated netlist.cpp for new approach. buffered_param_setter is a template. The template parameter is a class which is expected to support the [] operator. The value passed to [] operator is the requested sample number. . Regenerated static solvers and fixed errors preventing static solvers from generating . Increase queue sizes to accomodate nl_tank complexity (netlist

l_config.h). Properly fixed 74165 implementation. Fixed MK28000 address latching. . Moved dead code into examples/lostfound.cpp. This work didn't improve performance but still may serve as examples for complex truth table implementations. . Added compile-time option to record nltool-compatible CSV files. Improved CD4020 implementation. Fixed CD4053 behavior. Added 74139 device. Added TL082 device. . Use posix_memalign with ANDROID (netlist\plib\palloc.h). Optimized 74165. Added AN6551 opamp. . Added NETLIB_DELEGATE_NOOP(). This should be used for inputs which do not need a handler. Examples are data inputs which are only accessed on a clock change. . Removed duplicate device definitions. Use macro DIP definitons for 74175, 74192, 74193, 74194 and 74365. . Fixed-Frequency Monochrome Monitor: Improved handling of interlaced video. Will now detect half lines before vsync and determine field (video\fixfreq.cpp). . Intel 8253 PIT: Added explicit synchronization to all writes. Cleaned up some timing calculations to avoid doubleattotime conversions. Fixed cycles computation error due to using floating-point. . MC68681 DUART: TX/RX clocking from timer fixed and added partial support for break signal. . Microtouch Touchscreen: Added BIOS 2.2 . Midway Serial PIC: Removed few unneeded HLE hacks. Added debugger access guards (machine\midwayic.cpp). . S1410 Hard Disk: Fixed format unit command and data input (nscsi\s1410.cpp) . SCSI Bus (new): Implemented REZERO command (machine

scsi_bus.cpp) . Taito TC0030CMD (C-Chip): Fixed analog input values . Z80 DMA Controller: Added IEO callback - atronic.cpp: Fixed address mapping issue - cdi.cpp: Demoted cdibios and (MESS) cdimono1 to MACHINE_NOT_WORKING per developer request - cps2.cpp: Use ROM_LOAD_64_BYTE macro where appropriate - funworld.cpp: Cleaned-up the driver. Added and corrected technical notes. - gaelcof3.cpp: Added PCB ASCII layout - guab.cpp: Hooked up BACTA datalogger, fixes coinup issues. Moved BACTA Datalogger to shared library, improved message handling. - karnov.cpp: Use OCS to derive clock speeds - mcr68.cpp: Switch Midway MCR-68k hardware (archrivl, pigskin and trisport) to use the s11c_bg implementation of the Williams System 11 BG sound board instead of the older implementation. - midvunit.cpp, seattle.cpp and vegas.cpp: Added security PIC dumps with ID and config word for CarnEvil, Gauntlet Dark Legacy, Gauntlet Legends, Mace: The Dark Age, NFL Blitz '99 and War Gods. Cruis'n World uses newer type PIC. - midwunit.cpp . Added I/O shuffling to fix sound stops working during attract mode of WWF: Wrestlemania (ID 07552). Eliminated dependencies on Midway T-Unit driver. . Hooked up security PICs to Rampage: World Tour and Ultimate Mortal Kombat 3 - nmk16.cpp: Fixed DMA timing related regression. Example Hacha Mecha Fighter title screen (ID 07730). - pgm.cpp . Overhauled rom labels according to PCB pics. Standardized set names. . Added new user1 roms to clones Martial Masters / Xing Yi Quan (ver. 102, 101, 101CN) and Oriental Legend Special / Xiyou Shi E Chuan Super (ver. 100, set 2). - photoply.cpp: Added notes about BIOS versions - segag80v.cpp . Implemented wait states and the vector DRAW flag to help improve timing (video\segag80v.cpp) . Improved 'Sega Universal Sound Board' implementation for better accuracy in Star Trek and Tac/Scan (ID 07103) . Wrote netlist-based backend for 'Sega Universal Sound Board' and 'Sega Speech Sound Board'; currently disabled due to limitations in the system and pending future sound system changes. - sigmab98.cpp . Changed CPU to new KC82-derived type for Sigma/Banpresto games (b3rinsya, dashhero, dodghero, gegege, lufykzku, pepsiman, sushimar, tbeastw2 and ucytokyu) . Added back NVRAM (and more of it) in Minna Ganbare! Dash Hero now that memory map has been corrected - starfire.cpp: Added netlist sound to Fire One, Star Fire and Star Fire 2. Removed MACHINE_IMPERFECT_SOUND flags. - vp101.cpp: Fleshed out inputs. Fixed sound POST hanging. Found framebuffer base address register. - 18 Holes Pro Golf: Added hardware info and verified clocks - 280-ZZZAP: Fixed netlist engine sound tone - 39 in 1 MAME bootleg . Decrypted clones '4 in 1 MAME bootleg (set 1, ver 3.00)' and '4 in 1 MAME bootleg (set 2)'. Started working on decryption of clones '19 in 1 MAME bootleg' and '48 in 1 MAME bootleg (set 1, ver 3.09)'. . Hooked up DIPs - 3-D Bowling: Fixed unable to credit up (ID 07729) - AGEMAME . Fixed Payout Shelf opto switch and added overlay for Prize Space Invaders . Added inputs to mpu4vid.cpp BWB games. Fixed fatalerror for v4monte and clones. . Added an implementation of the BACTA Datalogging protocol used in many of the AWP drivers. Hooked the BACTA logger up to the MPU4 driver (mpu4.cpp, mpu4avan.cpp, mpu4bwb.cpp, mpu4concept.cpp, mpu4crystal.cpp, mpu4dealem.cpp, mpu4empire.cpp, mpu4mdm.cpp, mpu4misc.cpp, mpu4mod2sw.cpp, mpu4mod4yam.cpp, mpu4plasma.cpp, mpu4sw.cpp and mpu4vid.cpp) to fix Datapak/Protocol games. Moved BACTA Datalogger to shared library, improved message handling. . Improved mpu4vid.cpp set identification, fixed some palette issues. - Arm Champs II: Updated hardware notes - Battletoads: Use 8-bit handlers for NVRAM, reducing size to 8192 bytes. - Black Tiger: Decrypted main CPU roms for clone Black Tiger (Modular System). Flagged game as MACHINE_IS_SKELETON. - Cops'n Robbers: Use raw parameters for screen timing - Cruis'n USA: Confirmed the P2 and L1 revision U2 sound code to be identical for Cruis'n USA - Dardomania: Added missing PROM - Dead or Alive: Redumped polygons rom mpr-19324.19 - Destroyer: Added netlist sound. Use raw parameters for screen timing and correct IRQ timing. - Double Wings: Added PAL dumps - Flyball: Added netlist sound. Note: Flyball entirely lacked audio in MAME, with not even recorded samples available. Use raw parameters for screen timing - Frisky Tom: Made clone Frisky Tom (set 3) use an M6802 - Funny Strip: Decrypted clone Ring Ball. Currently stuck at initialization / test mode. - Invasion - The Abductors: Marked PIC dump as BAD - Laguna Racer: Added Laguna Racer to the 280-ZZZAP netlist audio driver, with conditional changes to the netlist for the circuitry differences between the two games. Adjust some netlist components that apparently changed from the 280-ZZZAP schematic to production machines. Removed the driver's private MC3340 netlist, using the equivalent one in the netlist library instead. - Legend of Hero Tonma: Redumped and verified the i8751 MCU for Legend of Hero Tonma (World) - Metal Maniax: Probably fixed regression - Photo Y2K: Added new sprite roms - PinMAME . Separated Williams System 11 BG sound boards into the 5 functionally different types that existed, and hooked the appropriate types to each system 11/a/b/c driver. Switched to using a rom load region with a listed parent:sub space rather than using a set_romregion function within the device for all users of the s11c_bg device. Replaced the embedded bg sound and bg music board emulation on s11.cpp with the appropriate devices. Updated notes for the WPC Sound board. . Added and hook up a device for the D-12338-567 Williams Pin Sound '88 board, used on the Williams System 11B 'Jokerz!' pinball. Switched Williams Pin Sound 88 board to use two device_mixer_interface outputs for its output channels, instead of having speakers handled internally to the device. Fixed the Pin Sound 88 /SYNC_PULSE line to connect to Jokerz' System 11B PIA@3400 CA1 instead of CB1, based on board pictures of the W2/W3 jumper positions. Added a note about the infamous audio hum issue on the real Jokerz! pinball table, and updated device comments to clarify things and fix some minor errors. . Share the memory maps for the System 11/A/B/C mainboard maincpu and audiocpu between the s11, s11a, s11b, s11c drivers to remove redundant identical copies in each driver. Made the MC1408 dac a member device of the s11 main class to get rid of some init-time tag lookups and prepare for future enhancements. Put the initialization order of devices in the sound-board specific machine configs in a more sane order. . Added inputs to Big 40 Poker (BWB). - Raiden: Added PCB ASCII layout to Raiden (Modular System), added year and promoted from skeleton to MACHINE_NOT_WORKING. - Renegade: Renegade/Kunio-kun fixes. Reverted 6809 soundlatch IRQ and improved 6502 IRQ timing. - Revolution X: Manually restored BAD PIC16 dump and hooked to driver (ID 03228). Cleanup security chip access. Use 8-bit handlers for NVRAM, reducing size to 8192 bytes. Eliminated dependencies on Midway T-Unit driver. - Rodent Exterminator: Added preliminary decryption - Sega Bass Fishing: Added KL5C80A16 I/O CPU to configuration - Shadow Warriors: Combined D sprite roms verified with redump, apply the same to Japanese set. - Silk Worm: Fixed last level graphics in clone Silk Worm (bootleg) - Sinistar: Correct rom names and added documentation - Space Tactics: Use raw parameters for screen timing - Speed Freak: Added internal layout. Clean up gearing logic. - Spy Hunter: Added widescreen layout - Star Cruiser: Added netlist sound - Super Speed Race: Added netlist sound. Added save state support. - Tank Battalion . Added netlist sound. Removed MACHINE_IMPERFECT_SOUND flag (ID 03090). . Various fixes and cleanups. Correct CPU and video clocks. IRQ is scanline-based, not coin-triggered. Clean up and modernize VBLANK NMI handling. Added watchdog timer. Verify memory map and add mirrors. Added imperfect colors flag (color PROM usage is now known to be wrong). Increase queue sizes to accomodate nl_tank complexity (netlist

l_config.h). - Tank/Tank Cocktail [TTL]: Added netlist for Tank/Tank Cocktail [TTL]. Commented out CPU-choking motor sound for now. Fixed a transcription error. At least partially fixed screen parameters. Attempted to hook up proper timing params, doesn't seem to work. Assorted fixes and changes. For some reason, GNE (H4.6) never goes low at the start of the game. - Tecnodarts: Added PCB ASCII layout - Venture: Replaced BAD_DUMP gfx1 rom with verified - Vigilante: Added PAL and PROMs to clone Vigilante (bootleg) - Fixed rom names in champbas.cpp, circus.cpp, de_3b.cpp, exidy.cpp, karnov.cpp, leland.cpp, m72.cpp, m92.cpp, pgm.cpp, thunderx.cpp and williams.cpp - Dipswitch fixes in 39in1.cpp, goldnpkr.cpp, mpu4vid.cpp, seta.cpp and vp101.cpp - Description changes of 19 in 1 MAME bootleg (SAC-V000), 39 in 1 MAME bootleg (GNO-V000), 4 in 1 MAME bootleg (set 1, ver 3.00, PLZ-V014), 4 in 1 MAME bootleg (set 2, PLZ-V001), AGEMAME (lots of), Cuatro en Linea (rev. A-07), Dungeons & Dragons: Shadow over Mystara (Asia 96061), Dungeons & Dragons: Shadow over Mystara (Japan 96022), El auto feo, Frisky Tom (set 3), Jolly Joker (40bet, higher paytable), Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 111, Japanese Board), Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (ver. 114, Hong Kong), Puzzle Star / Mohuan Xingzuo (ver. 100MG, 09/20/99 build), Quiz Nanairo Dreams: Nijiirochou no Kiseki (Japan 96086), Ring Ball (Ver. 2.6), Sector Zone (set 1), Sinistar (AMOA-82 prototype) and Susanita - Renamed (dmnfrnta) to (dmnfrnt102), (dmnfrntb) to (dmnfrnt103), (doa) to (doab), (drgw2c) to (drgw2100c), (drgw2hk) to (drgw2100hk), (drgw2j) to (drgw2100j), (dw2v100x) to (drgw2100x), (dwpc) to (dwpc101j), (jolyjokrb) to (jolyjokrb1), (kov100) to (kov111), (kov100hk) to (kov114), (kovshpa) to (kovshp100), (martmastc) to (martmast104c), (martmastc102) to (martmast102c), (martmastc103) to (martmast103c), (monopolya) to (monopoly4), (pgm3in1) to (pgm3in1c100), (photoy2k102) to (photoy2k102j), (puzlstar) to (puzlstara), (sinistar1) to (sinistarp), (thegladpcb) to (thegladpcba), (v4monteh) to (v4monte5), (v4montei) to (v4monte5a), (v4montej) to (v4monte5b), (venture2) to (venture5a) and (venture2b) to (venture5b). - MAME . VIDEO RENDERING SYSTEM . Added getter for pixeltime (emu\screen.h) . Fixed overwriting last pixel of previous update and rendering whole scanline when update was called inside hblank. . Fixed possible issue if update_now and update_partial are both called from driver (emu\screen.cpp) . Clean up the preprocessor glue for selecting RGB utility implementation a little and check macros are defined before doing comparisons (emu\validity.cpp, video\rgbgen.cpp, rgbsse.cpp and rgbutil.h) . Removed unsupported setter, emumem enforces unmapval 0 or ~0 (emu\addrmap.h). . Fixed audit finding sets that you don't have when: 1. A clone has a rom that hasn't been dumped but it has the same name as a rom in the parent that has been dumped. 2. If roms are the same between parent and clone but loaded differently (ID 05556). 3. If parent has all the roms in the clone & you have neither set but you have a device rom that is used (ID 07410). . Added widescreen layouts for working machines with shifters: 280-ZZZAP, Buggy Boy Jr/Speed Buggy, Buggy Challenge, Change Lanes, Chase Bombers, Chequered Flag, Cisco Heat, Continental Circus, Destroyer, Double Axle, Enforce (Japan, Analog Controls), Final Lap, Grand Champion, Grand Prix Star, Laguna Racer, Namco System FL, Outrun, Pole Position, Power Drift, Rad Rally, Speed Freak, Speed Race, Stocker, Top Racer, Top Speed, Turbo Tag (Prototype) and WEC Le Mans 24. Added widescreen layouts for non-working machines with shifters: Round-Up 5 - Super Delta Force, Spy Hunter (bootleg on Tecfri PCB), and Over Drive. . Cleaned up save/load state menu code. Fixed display names for states saved with keyboard keys. Wait for at least one frame with no keys pressed before saving/loading. . hiscore.dat update (plugins\hiscore\hiscore.dat) - MAC OS X: Pass FORCE_C_DRC_BACKEND=1 on ppc architectures: PowerPC architecture is special in a way that it has some inline assembly code but no DRC support. As a result, NOASM=1 was never configured. In contrast to the old DRC, asmjit only compiles on the architectures it supports. FORCE_C_DRC_BACKEND=1 needs to be passed to the makefile or the compilation will fail (makefile). - VGM player . Added 40 new entries. Fixed a good number of entries for correct shortnames, increased description info and filled in "no_data" fields (hash\vgmplay.xml). . Added proper dates to nearly all ?? YEAR fields. Fixed dozens of short names to better match MAME's softlist metadata. Enhanced some descriptions for many Sega titles - properly denoting the actual console when possible (hash/vgmplay.xml). - Compiling . Use swapendian_int16/int32 (i860\i860dec.hxx, machine\dp8390.cpp, machine\gayle.cpp) . Fixed redundancy in pacman-key --verify call. Appveyor VS2017 image only ships with pacman 5.1.3 as of now. In that version pacman-key --verify only takes one argument, the signature (appveyor.yml). . Added simple .editorconfig. Clean up command-line -h output, tidy up emulator_info class a little and added trim trailing whitespace to .editorconfig. . Documentation update for vector options (docs\source\commandline\commandline-all.rst). Fixed compilation of docs for HTML and manfiles. . Fixed non-x86 build and try to make sure it does not break silently again. Do not build x64 DRC backend when C backend is forced. New CI target (mametiny + kinst). Switch travis to CI target and appveyor to CI target. . Define IMGUI_DISABLE_OBSOLETE_FUNCTIONS consistently: IMGUI_DISABLE_OBSOLETE_FUNCTIONS was defined in osd/modules.lua but not in 3rdparty.lua. As a result, two different variants of struct ImGuiIO were being defined, causing a C++ One Definition Rule violation (scripts\src\3rdparty.lua). . Clean up Clang options now that Clang 5 is a hard requirement and suppress xor-used-as-pow warning introduced in Clang 10. . Cleanup mame\arcade.flt and mess.flt . Enable ppc64le for travis: Added akkaarrh to the ci target. Switched Travis CI to Ubuntu Focal. Allow ppc64le CI build to fail. Report CI status as soon as a job has failed or remaining jobs are allowed to fail. . CHDMAN: GCC 9.3 is actually the cutoff point for legacy MSVC-style long format flags . Make cleansrc target use shell type to select correct syntax rather than assuming Windows uses cmd shell (makefile). - Debugger . Added 'fill' command to debugger. Syntax and operation are similar to 'find' command (debug\debugcmd.cpp). . Documented rowsize parameter for dump command in debugger help. . #if DEBUG_VRAM_VIEWER instead #ifdef (video\epic12.cpp) 0.223 - New games: 'Dice game' - New Working games: NBA Showtime: NBA on NBC (ver 2.0), NBA Showtime / NFL Blitz 2000 (ver 2.1), NBA Showtime Gold / NFL Blitz 2000 (ver 3.0) (SportsStation), Photo Y2K 2 and 'unknown rocket/animal-themed poker' - New Working AGEMAME games: Adders and Ladders (v2.0) (MPU4 Video), Adders and Ladders (v2.1) (MPU4 Video), Blox (SJM BLOX, 50p/20p Play, Version 2.0) (MPU4 Video), The Crystal Maze (v0.1, AMLD) (MPU4 Video), The Crystal Maze (v1.1) (MPU4 Video), The Crystal Maze (v1.2) (MPU4 Video), The Crystal Maze (v1.3) (MPU4 Video), The Crystal Maze Team Challenge (v0.8) (MPU4 Video), The Crystal Maze Team Challenge (v0.9) (MPU4 Video), The Crystal Maze Team Challenge (v1.2, AMLD) (MPU4 Video), The Mating Game (v0.4) (MPU4 Video), The New Crystal Maze Featuring Ocean Zone (v0.1, AMLD) (MPU4 Video), The New Crystal Maze Featuring Ocean Zone (v2.0) (MPU4 Video), The New Crystal Maze Featuring Ocean Zone (v2.2) (MPU4 Video), Prize Space Invaders (BWB INV1, 50p/30p Play, Version 1.2) (MPU4 Video), Prize Tetris (BWB) (Datapak) (MPU4 Video), Prize Tetris (BWB) (MPU4 Video), Strike it Lucky (v0.5) (MPU4 Video), Strike it Lucky (v0.53) (MPU4 Video), Tetris Payout (BWB TET1 Version 2.2, set 1) (MPU4 Video), Tetris Payout (BWB TET1 Version 2.2, set 2) (MPU4 Video) and Vegas Poker (prototype, release 2) (MPU4 Video) - New Non-Working games: Bingo Roll / Turbo Bingo?, Captain Lucky, Destruction Derby [TTL], Diana Olakoa, El auto de papa, Far West (Compumatic), Lucky 7 (Impera), Puzzle Me!, Reno Reels (JPM), Sport Dart TV, Susanita tiene un raton, Tecnodarts, Unknown Compumatic ProSPDP based darts machine, Yataimura Kingyosukui (4-player, China, Ver 1.000) and unknown 'TE06' - New clones: 4-in-1 (version SWS1-052587), Astro Fighter (set 4), Cruis'n USA (rev L4.4), Dead Or Alive ++ (Korea), Double Wings (set 2), Galaxian (Cirsa Spanish bootleg), Hammerin' Harry (World, M84 hardware bootleg), Jack Potten's Poker (set 13, ICP-1 PCB), Jolly Joker (original program, interleaved GFX, Impera logo), Jolly Joker (original program, interleaved GFX, no logo), Pipi & Bibis / Whoopee!! (Ryouta Kikaku bootleg, decrypted), Magic Card - Wien (Sicherheitsversion 1.2), Master Boy (1987, Z80 hardware, Ichi-Funtel, set 2), Ms. Pac-Man (bootleg, set 3), Ms. Pac-Man (Novatronic bootleg), New Lucky 8 Lines (set 11, W-4), Nove Diamante (bootleg), Race Drivin' (compact, prototype), Robotron: 2084 (Unidesa license), Slap Shot (Ver 3.0 O), Space Trek (Video Game S.A., Spanish bootleg of Scramble), Splash (Modular System), Witch Star and Zero Time (Spanish bootleg) - New AGEMAME games: Adders and Ladders (v2.1d) (MPU4 Video), Barquest (v2.6) (MPU4 Video) and Chase Invaders (Barcrest) (MPU4) (set 8) - New PinMAME games: Football, Funhouse (L-2), Funhouse (L-2, prototype PA-1 System 11 sound), Laser Ball (L-2, PROM sound), Last Action Hero (1.04 France), Last Action Hero (1.07) and Michael Jordan (1.30) - Removed games: Sirio II (Calfesa S.L. Spanish Moon Cresta bootleg, set 2) and 'unknown animal-themed game (top)' - New drivers: gaelcof3.cpp, sigmab31.cpp, special_gambl.cpp, splash_ms.cpp and tecnodar.cpp - New devices: acb2072, armora_audio, barrier_audio, boxingb_audio, centronics_samdac, ibm21s850, ibm21s851, pxa250, pxa270, ripoff_audio, s11_bg, solarq_audio, spacewar_audio, specimx_sound, speedfrk_audio, starcas_audio, starhawk_audio, sundance_audio, tailg_audio, tsb12lv01a, warrior_audio, wotw_audio and zn426e - New mame.ini options: beam_dot_size (CORE VECTOR OPTIONS) - CPU . Dynamic Re-Compiling . Implemented asmjit emitter (cpu\drcbex86.cpp and drcbex64.cpp). Consolidated many helpers. Corrected previously reported bugs (cpu\drcbex64.cpp). . Fixed logging problem (cpu/drcbex86.cpp and drcbex64.cpp). Implemented asmjit emitter (cpu\drcbex86.cpp). . Hitachi HD6309, KONAMI CPU and Motorola MC6809: Fixed ASR8 and ASR16 opcodes. Still perform an IRQ acknowledge cycle on software interrupts (cpu\m6809\base6x09.ops). Fixes (MESS) Fairlight CMI IIx memory-map diagnostics. . Intel XScale PXA255: Added preliminary support for RTC, clock and power management registers. Correct PXA255 CPU ID. Added placeholder devices for PXA250 and PXA270. . Kawasaki Steel KL5C80A12: Emulated MMU within CPU device. Internalized internal RAM and clock divider. Updated notes. . MIPS-III: Removed depricated DRC flag and added a flag to disable intrablock branching (cpu\mips\mips3drc.cpp and mips3.h) . MOS Technology 6502: NMI is edge triggered, fixes (MESS) Intelligent Chess. . Motorola MC68000: Eplicitly set rounding mode for FREM opcode (m68000\m68kfpu.hxx) . Toshiba TMP95C06x: Fixed MAX instruction (tlcs900\900tbl.hxx) - SOUND . DAC: Added ZN426E device (sound\dac.h) . ICS2115 WaveFront Synthesizer: Improved envelope behavior and debugging registers. Fixed ramping. . K007232 PCM Controller: Updates and cleanup. Use device_memory_interface for fetching sample. Fixed frequency behavior. Allow dynamic clock changes. Use shorter/correct type values. Simplify update routine. . K051649 SCC1: Fixed frequency behavior. Modernized save state. Correct type values. . K053260 KDSC: Allow side effects . OKI MSM9810 ADPCM: Modernized logging . Philips SAA1099: Fixed output and frequency behavior. Added notes. Reduced unnecessary, unused values, duplicates and macros. . Ricoh RF5C400: Fixed loop position is not being calculated correctly. Modernized save states. Allow clock changed behavior. Added imperfect_features related to unemulated effects and unverified envelope issues. . Samsung KS0164 Wavetable Synthesizer: Profiling says 40% of the time is spend calling describe_context() and not using the result (sound\ks0164.cpp) . Speaker: Changed speaker maximum sample tracking to be based on new compile-time define SPEAKER_TRACK_MAX_SAMPLE instead of MAME_DEBUG (emu\speaker.cpp) . Yamaha YM2151 OPM: Fixed noise behavior . Yamaha YMZ280B PCMD8: Modernized save state. Fixed frequency calculation. Allow side effects. Reduced unnecessary defines. Use shorter/correct type names. Fixed spacings. Added notes. Better fix for signed arithmetic issue. - DEVICE . 3dfx Voodoo Graphics . Disabled backbuf debug key (L), it interferes with player 3 default controls . Only flag texture controls as changed if they are actually changed (video\voodoo.cpp). . SSE use shift left by 8 instead of floating point multiply by 256 for perspective correction calculation (video\vooddefs.ipp and voodoo.h). . Fixed outdated missing MAX macros used for statistics (video\polylgcy.cpp). Added checks for bilinear filter vector routines (emu\validity.cpp). . 6821 PIA: Guard against side effects when these should be disabled (machine\6821pia.cpp) . 8042 Keyboard/Mouse Controller: Generate data for mouse only if mouse is enabled. Now it is possible to use the (MESS) Nvidia nForce PC BIOS setup without it crashing. . Discrete Netlist . Code maintenance. Decreased use of reinterpret_cast. Changed some defaults for better TTL game optimization. Various code cleanup. . Include file refactoring. The purpose of this ongoing exercise is to remove unnecessary dependencies in header files. Netlist implementations should only have access to what they need. The same applies to device implementations. Core stuff will be moved to the core subdirectory going forward. . Fixed 74377 pin assignment. Fixed parameter value resolution on rom devices. Also simplifiy a return. Documented parameter value resolution. . Added hints for outputs not connected. Logic and analogue outputs can now be flagged as "NC" (not connected). Example: "HINT(IC13.4, NC)". This will suppress info messages to be logged. The HINT must apply to an existing terminal. HINTs for non-existing terminals are treated as fatal errors. Terminals and logic inputs not connected are still treated as warnings. These need though and a proper fix. . Fixed crash on Windows when freeing netlist objects (plib\palloc.h). Fixed static_assert warnings at the origin (plib\palloc.h and pmatrix2d.h). Rework hints to broaden their use and fix NC hint. Use NC hint for 74377. Fixed debugging in MSVC (plists.h). Moved everything not needed by netlists from nl_setup.h into core/setup.h. Fixed some Clang tidy warnings. . Added comparison operators to plib\pfunction.cpp. Comparison operators evaluate either into 0.0 or 1.0. Thus they can be used like "(a==1)*(b==2)" which will only result in 1.0 if a equal 1 and b equal 1. . Added log() to plib\pfunction.cpp. Added parameter to varclock (devices

lid_system.h). Align design VARCLOCK to AFUNC (devices

ld_system.cpp). Added more constructors and () operator to plib\pfunction.h. . Added progress indicator to nltool. When running a netlist "--progress" may be used to display a progress indicator. Fixed pfunction if. The if postfix evaluation corrupted the stack. Fixed polarity of 74LS125 tristate input. . Added basic unit testing support. Added google test syntax compatible unit testing support. This is a very limited subset of the google test framework and not intended ever to be a replacement. Adding a dependency to google test for the functionality required was considered to be an overkill. nltool -c tests runs unit tests if linked in. This is *not* the case for the version of nltool compiled with TOOLS=1. Added unit tests for plib::pfunction. . Removed soft reset support. Electronic circuits and base components like resistors or capacitors do not have a reset line. You can use them to create reset circuits. There is thus no point to support soft reset, the equivalent to pressing the reset button. Fixed some bugs around reset and start up logic. This also fixes the "scramble F3" crash. . The pfunction now supports unary minus operators. Updated documenation on noise sources. The pfunction supports unary minus and removed duplicate code. . Removed some warning suppression from netlist\build\makefile. Fixed signedness warnings in ptime.h. . Unit test macros now have a "P" prefix. Will allow to use both googletest and Catch frameworks. On unexpected std::exception include what() in error message. . Added 74113, 74121 and 74157 devices and refactor 74123 code. Migrated DIP devices to netlist devices. Refactor code to be based on device description structs. Fixed 74121 clocking logic. . Improved dealing with non-convergence situations. No changes for well-behaved netlists. Netlists reporting "newton loops exceeded" messages should now report a lot less of these messages. In case newton-raphson does not converge, netlist will reset the state back to the beginning of the timestep. It will than use a number of very small timesteps to hopefully deal with the non-convergence due to a too big timesteps. Afterwards solving continues using dynamic timestepping until the time-slice is complete. This is a lot better than the previous approach. This is meant as a performance optimization helper. Ideally, your netlists never produce "newton loops exceeded" messages. Any events for connected analog and digital inputs will happen after the timeslice is complete. Thus this approach - as the previous one - are not suited for high-frequency (such as video outputs) situations. In these case, only dynamic timestepping or reducing the fixed timestep are a suitable solution. . Use threads on netlist logs. This significantly increases the performance of output/terminal logs. Added a psemaphore class to pmulti_threading.h. . Fixed power pin names for CMOS devices. For truthtable cmos devices the power pin names will now be set according to the logic family. Fixed some issues for CD4538. Changed "already connected" warning to info level. Some ICs (CD4538) connect pins internally to GND and the schematics again externally. This will cause this info to be printed. The warning now is a lot more verbose. . All inputs now explicitly specify a signal handler: Currently devices use the "update" function if no handler is given for an input. For this to work the update function has to be virtual. This will cause issues on shared execution schemes like CPU/GPU using NVCC. This is the first batch of changes to ensure that handler resolution is static. . Emit a warning every 100 invocations of Newton Raphson resolution (solver

ld_matrix_solver.cpp) . Always take power pin names from logic family. Default NMOS power pins to VCC and GND. MOS uses VDD/VSS - update gamemachine netlist. . Reduced overshoot impact on NE555 astable frequency: If TRIG and TRESH are connected overshoot compensation will be enabled. The approach is raw but delivers results (at 5 to 10 steps per discharge/charge) within a couple of percent. Please take into account that any datasheet formulas are idealistic. Neither capacitor, resistor, internal resistor tolerances are taken into account. Nor are ambient temperature and chip temperature. . Fixed Inductor state saving (analog

lid_twoterm.cpp). Code maintenance: More handler alignment. Dead code removal. Removed update calls which do nothing. Comment out empty reset and update calls. . Avoid NE555 oscillation due to overshoot compensation. Fixed Clang error: No matching constructor for initialization of 'analog::nld_twoterm' (devices

ld_4066.cpp). . Prepare road towards trapezoidal integration. This is a long term transition goal. Documented in source (see NL_USE_BACKWARD_EULER). . Potential regression trigger: Removed update and NETLIB_UPDATE completely. Startup initialization order may change. This may cause regression tests to trigger. This is expected. Logic TTL devices do not have a defined power-up state. That's why reset circuits exist which create a reset signal *after* all power supply lines are stable. . Include timestamp in newton-raphson loop warnings (solver

ld_matrix_solver.cpp). Fixed logging of final timestamp (devices

ld_log.cpp). . Added netlist simulations for the following games: Armor Attack, Barrier, Boxing Bugs, Rip Off, Solar Quest, Space Wars, Speed Freak, Star Castle, Star Hawk, Sundance, Tail Gunner, War of the Worlds and Warrior. Removed previous samples-based sound. . Modernized 74164 and 74393 netlist TTL devices . nld_matrix_solver is now owned by nld_solver. Added frontier documentation (devices

lid_system.h). . Rewrote scheduler scheduling: All solver scheduling is now handled by nld_solver. Previously, for dynamic timestepping the sub solvers would be responsible for their scheduling themselves. This prevented any attemps to use parallel execution of solvers. Now the route is free towards experiments to use parallel execution of solvers. Uses ptimed_queue_linear in solver scheduling. Improved netlist queue implementation (template now). Added const delegates and subsolver stats. Removed dead code. . Separated nl_base.h into separate header files. This clean-up exercise will hopefully make it easier to navigate the core code. Another long term goal is to further straighten the object model. . Include GMRES solver in build. The GMRES solver for larger matrices (>>100) can outperform Gaussian elimination. Including it so it gets wider attention. As far as I know netlist is the only SPICE-like circuit simulation providing a GMRES solver. . Sub solvers now have their own parameter set. Example: PARAM(Solver.Solver_0.METHOD, "GMRES"). Will use the GMRES solver instead of the default MAT_CR solver. Same applies to all Solver parameters. Please use with care. If you change your netlist (e.g. using frontiers) the allocation of nets to solvers and the number of solvers may change. Thus this type of tweaking should only be used after the netlist completely works. . Floppy . Fixed spinup on interrupt command. Do not RESTORE at reset WD1770/72 (machine\wd_fdc.cpp). . A single missing sector was causing it to give up on an images, as incompatible. Being a little more permissive here helps working with some old recovered disk images with some lost sectors (formats\wd177x_dsk.cpp). . Imagetek I4100 052 VDP: Partially fix flip screen. Fixed sprite position, tilemap offsets and glitches in Hyper Duel. . Intel 8255 PPI: Set ibf flag in output mode for port A . MC6840 PTM: Fixed a couple of issues related to the T3 divisor . Printer: Initialized the data output high. High is the restful state for RS232. The low level could cause continual breaks to be received by an attached device and this could cause problems for some drives (bus\rs232\printer.cpp). . Sound Blaster and Game Blaster Sound Card: Fixed SAA1099 output and clock inputs (verified from real hardware) . V3021 RTC: Support serial interface. Implemented RAM and address commands. Use device_rtc_interface for RTC handling (machine\v3021.cpp). - aleck64.cpp: Modified burn_cycles method (machine

64.cpp) - bigkarnk_ms.cpp, bloodbro_ms.cpp, galpanic_ms.cpp, raiden_ms.cpp, splash_ms.cpp and toki_ms.cpp: Minor improvements. Misc work on sprites for Raiden (Modular System). - cave.cpp: Use gfxdecode for sprite decoding. Use generic gfx layout for 4bpp tilemap. Reduced duplicates and unnecessary values. - cinemat.cpp . Added netlist simulations for the following games: Armor Attack, Barrier, Boxing Bugs, Rip Off, Solar Quest, Space Wars, Speed Freak, Star Castle, Star Hawk, Sundance, Tail Gunner, War of the Worlds and Warrior. Removed previous samples-based sound, fixes (ID 02603), (ID 03307) and (ID 03720). . Added built-in minimal artwork for Warrior. Decreased noise level in Space War and Barrier to allow filtering to kick in. - ddenlovr.cpp: Replaced Z80 CPU1 with 'Kawasaki Steel KL5C80A12' in Mahjong Daimyojin and Mahjong Momotarou - exidyttl.cpp . Death Race roms 36 and 35 were corrupt, fixed with correct images from clone Robot Hunting (bootleg of Death Race). Added note about format of image 36. . Clone Robot Hunting (bootleg of Death Race) roms now match Death Race 100%. Driver now uses Death Race rom images. . All Demolition Derby 512 byte roms were set to length 256 (incorrect length). Some upper bits in nibble-wide roms were not set to default zero. . Added newly dumped Destruction Derby roms from Exidy PCB, images now match fixed images from Demolition Derby (expected). Redundant with Demolition Derby in chicago.cpp, but it is a different PCB layout and different company. - goldnpkr.cpp: Clean-ups, fixes, updated links and a new addition. - gotcha.cpp and zerozone.cpp: Minor cleanups - hng64.cpp: Emulated MMU in KL5C80A12 CPU. MMU handling in HNG64 has been moved to the core; the rest is not implemented yet. - hyprduel.cpp . Fixed sprite delay . Fixed Imagetek I4100 052 VDP glitches in Hyper Duel - megaplay.cpp: Added 5x motherboard PLDs - midzeus.cpp . Moved some Zeus2-specific members into the appropriate subclass and added more state registration . Added skeleton devices for the IBM 21S850 IEEE 1394 PHY controller and the TI TSB12LV01A IEEE 1394 link-layer controller. 'The Grid' no longer hangs. Added skeleton IBM 21S850 IEEE PHY support, hooked it up in midzeus2 to accurately reflect the PHY model used. - nemesis.cpp: Fixed VLM5030 speech at least halfway in TwinBee (gx400_speech_w; drivers

emesis.c) (ID 07537) - pgm.cpp . Simulated 'Photo Y2K 2' sprite offset decode (machine\pgmprot_igs027a_type1.cpp) (Game now playable). Support for V3021 RTC serial interface. Implemented RAM and address commands. Use device_rtc_interface for RTC handling (machine\v3021.cpp). . Use struct for sprites and raw parameters for screen. Fixed timing of intro sequences in some games. Use generic gfx layout for foreground. Moved VBlank IRQ into screen_vblank. Reduced duplicates. Added notes. - photon.cpp: Cleanup - seattle.cpp and vegas.cpp: Fixed 8 way and 49 way joystick selection on Vegas and Seattle drivers (ID 07340) - segas18.cpp: Fixed controls do not work in Laser Ghost and Wally wo Sagase! (ID 07708) - sigmab98.cpp . Eliminated hack to force starting PC. Changed Sammy medal games to use KL5C80A12 CPU device with proper MMU emulation (animalc, gocowboy, haekaka, itazuram, pyenaget and tdoboon). . Execute enough of the Sammy medal game BIOS to initialize things properly. Split up driver state class. - taito_l.cpp . Removed old rombank debug logging . Fixed Fighting Hawk rombank mask, fixes background graphics garbled (ID 07696). - tigeroad.cpp: Minor cleanups - tourvis.cpp: Added BIOS V4-54 - vegas.cpp . Fixed nbashowt, nbanfl and nbagold (Games now playable). Removed depricated DRC flag and added a flag to disable intrablock branching (cpu\mips\mips3drc.cpp) (ID 07340). . Added default port mapping for 8WAY players. Fixes a crash in Road Burners caused by trying to read undeclared io ports. Set default ioport IN2 to IPT_UNUSED for analog games. - midyunit.cpp: Cleaned up the banking on the Williams System 11 Background Sound/Music board device to support banking up to 27c010 sized EPROMs, which are used on the prototype Funhouse pinball and on High Impact Football on Midway Y-Unit hardware. Added more notes about the operation/hookup and variants of the System 11 Background Sound/Music board. - 18 Holes Pro Golf: Documented differing opcode in clone (set 2) which causes the wrong ball positioning - 280-ZZZAP: Improvements to 280-ZZZAP netlist audio. Noise-based sound effects corrected. The original strength of the zener noise voltage was about three orders of magnitude too low for the current being passed through a zener of this type. This prevented the noise generator from working as designed and made the noise far too weak for the noise-based sound effects to work properly. Those effects now sound much closer to the real hardware. Implemented faster high-level emulation version of noise generator (Credit to Couriersud for suggesting this). The corrected noise voltage made the component-level emulation of the noise generator much too demanding on the minimum timestep needed to produce accurate results without unrealistic voltage spikes, and so will not run accurately at reasonable emulation speeds. But by replacing it with a simple but effective AFUNC()-based comparator, we get a functionally similar noise signal generator that produces effectively identical output while still being able to run with 48 kHz static timestepping. So we get both decent emulation speed and correct-sounding noise effects. Added output voltage clipping on post-crash sound to remove voltage spikes, resulting in a smoother, more accurate sound (Credit to Aaron Giles for suggesting this clipping method). Changed output to be taken from second LM3900 output opamp (inverted signal) for smoother waveform and better tone quality. Added master volume potentiometer which can be user-set, set to midpoint by default. Adjusted output scaling and offset to match. Various explanatory comments expanded or corrected. - AGEMAME . Added AY8913 sound chip back to MPU4Video boards to fix the 'lock in warning' sounds in The Crystal Maze. Adjusted internal layouts to fix ESCAPE button alignment. . Adjusted clock speed of sampled sound board in 'The Mating Game' and clones, fixes playback. Adjusted inputs to match reports in test mode . Fixed some clone relationships in v4mazbla, v4psi14d, v4psi20d, v4psi214, v4psia, v4psib and v4tetrs1. . Allow 'Strike it Lucky (v0.5) (MPU4 Video)' and 'Barquest (v2.6d) (MPU4 Video)' to decode questions . Protection workarounds to get more games showing video . Basic layout and input tweaks to v4addlad . Hookup joystick interfaces to Tetris Payout and Prize Space Invaders . Added inputs and layout for Strike it Lucky. Corrected inputs for Adders and Ladders. . Added support for simple LED extender to mpu4.cpp driver . Added inputs and layout for Barquest and Barquest 2, added DIL switches to Prize Space Invaders and Prize Tetris. All games in this driver now default to a common set of inputs for easier discovery (drivers\mpu4vid.cpp). Corrected typo in logger (machine\mpu4.cpp). . Added payout shelf opto to Prize Space Invaders . Start to untangle and split apart and properly identify some mpu4vid sets now that they boot. There's nothing actually new here, despite it appearing that there are a lot of new clones and new sets, they're just the result of finally being able to identify some things properly, work out what belongs where, and gain a better understand of what is missing - some things were in entirely the wrong drivers, or paired with the incorrect ROMs. . Tweaks to some MPU4 Video inputs - Block Gal: Partial DIPs fix (ID 07702) - Bosconian: Sprites have a lower priority than background (video\bosco.cpp) - Captain Silver: Redumped and verified the i8751 MCU - Dobou-Chan: Moved game from BishiBashi to KonMedal68k driver, GFX are mostly corrected. - Double Dragon: Modified clone Double Dragon (bootleg with 3xM6809, set 1) machine config to actually reflect what's on the PCB - Escape from the Planet of the Robot Monsters: Fixed game freezes upon end of demonstration (ID 07691) - EuroPlay 2001: Added new motherboard BIOS - Four Trax: Fixed default gearshift binding - G-LOC Air Battle: Dumped drive board rom - Gun Fight: Multiple improvements to Gun Fight netlist audio: Model for transistors adjusted, replacing default NPN transistor model with a high-gain NPN transistor type that more closely resembles those used by the real Gun Fight sound circuits. This has a quite obvious effect on the shot sounds, and it seems the circuits were designed for this effect. Made all volume potentiometers user-adjustable; previously fixed at 50%. Replaced abstract model of noise generator with component-level one, including a model of the generator's zener diode. Zener noise is provided by an associated Gaussian white noise source running off a 48 kHz clock. Both the zener diode and Gaussian white noise source are component models recently added to the netlist library. Supply voltage to amplifying transistors tweaked downward from 16.5 volts to 16 volts, determined by properly analyzing power supply circuit and confirmed with a documented reference. Much more commentary describing the sound circuits' function and modeling issues. - IGMO: Added color prom, palette is now correct. - Image Fight: Dumped i8751 MCU - King Derby: Fixed debug assert in clone Cow Race (King Derby hack) (ID 07690) - Lethal Crash Race: Minor cleanups - Mahjong Senka: Decrypted game, gets in game but glitches heavily. - Mortal Kombat: Fixed sound and added PAL dumps to clone Mortal Kombat (Yawdim bootleg, set 2) - Moon Cresta: Merged Sirio II (Calfesa S.L. Spanish Moon Cresta bootleg, set 1), Sirio II (Calfesa S.L. Spanish Moon Cresta bootleg, set 2) and a third dump in a single correctly dumped set 'Sirio II (Calfesa S.L. Spanish Moon Cresta bootleg)'. All three had corrupted ROMs. - PinMAME . Switch all the pre-WPC Williams pinballs to using io port arrays for their switch matrix, which gets rid of runtime lookups and fixes MAME crashes if a value with more than one bit set is written to the column select (drivers\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). . Fixed old copypaste mistake (m_pias->irqa_handler() --> m_pias->irqb_handler(); drivers\s8.cpp, s8a.cpp, s9.cpp, s11.cpp, s11a.cpp and s11b.cpp). Added override for all early williams pinballs. . Switch William system 11/11a/11b/11c pinballs to use input_merger for the maincpu and audiocpu IRQ inputs, and rewrote the timer IRQ generator to be more accurate vs hardware. Fixes the advance and up/down operator inputs, and may make certain games more stable. . Make drivers\wpc_dcs.cpp and wpc_s.cpp class definition style more consistent with the other Williams pinball drivers . Williams System 11/11a/11b/11c pinballs: Further consistency fixes with device and function names, more fixes (missed a few earlier) relating to the CVSD speech clock polarity and digital input bit masking, and corrected some memory/device mirroring issues to be consistent across the drivers. . Williams System 11C "background" Audio Board: Added PIA portb and cb2 write callbacks and synchronize fences, and hook them up, this fixes the "MUSIC ERROR" and various bg-music feedback-triggered sounds in Williams System 11C pinballs, i.e. the "song" in Dr. Dude works correctly now. This is also preparation for renaming this device to "Williams D-11581 Audio Board" as the same PCB is also used on some Midway Y-unit arcade games, some Williams System 11A pinballs and all Williams System 11B pinballs (except Jokerz), not just on Williams System 11C pinballs. Added notes to Williams D-11581 Audio Board device. . Williams System 11B: Switched to use the Williams D-11581 "Audio Board" device instead of its own implementation. Document the switches needing to be held to get in-game in all of the System 11B pinballs. Fill out the remainder of the System 11B switch matrix to allow all 64 possible switches to be hit. . Fixed the input matrices in Williams System 11/A/B/C and the WPC Alphanumeric drivers, so all possible inputs can be triggered with keyboard keys. Fixes lack of coins (which are mapped in a non-standard location) in the WPC versions of Dr. Dude. Add some notes about the WPC S11 sound interface adapter board used by WPC version of Dr. Dude and the prototype version of Funhouse. . Cleaned up the banking on the Williams System 11 Background Sound/Music board device to support banking up to 27c010 sized EPROMs, which are used on the prototype Funhouse pinball and on High Impact Football on Midway Y-Unit hardware. Added more notes about the operation/hookup and variants of the System 11 Background Sound/Music board. . Splitted the Williams System 11 Background Sound/Music board emulation off the 11C version into a subdevice, so the different mixing resistors used on the System 11C vs 11A/11B versions can be emulated. Switch Williams System 11A over to use the common Williams System 11 Background Sound/Music Board device. Added a device line to the Williams System 11 Background Sound/Music Board device for the incoming /RESET signal and hook it to the various drivers. . Fixed Visual PinMAME build. Changed return value to same type as expected (s3.cpp, s4.cpp, s6.cpp, s6a.cpp, s7.cpp, s8.cpp, s8a.cpp, s9.cpp and s11.cpp) . Corrected Pokerino (L-1) sound PROM. Fixed loss of sound in Still Crazy (ID 07689). Added correct roms for clone Pentacup (rev. 2). . Fixed rom loading for Funhouse prototype w/System 11 Sound HW. Miscellaneous typo and detail fixes for notes in Williams System 11 BG Audio Board device and WPC Alphanumeric driver. - Sadari: Added button 3 (ID 07693) - The Simpsons: Get rid of black borders by improving the screen aspect ratio - Space Invaders Anniversary: Game doesn't have ZSG-2 sound - Super Free Kick: Switched to bankdev (adapting pengadvb.cpp implementation) - Super Othello: Fixed ASR8 and ASR16 opcodes (cpu\m6809\base6x09.ops). Simplified maincpu-subcpu comms, game works again since the M6809 rewrite in MAME 0.148u2 (ID 06033). - Super Two In One: Corrected dipswitch connections, dipswitch settings and button labels using manual as a guide. Use recommended button layout/labels from manual and fixed coin/credit counter outputs. - Tournament Solitaire: Skip protection(?) check in clone Tournament Solitaire (V1.04, 06/22/95) - Truco-Tron: Cleaned up the driver and improved the documentation - unknown rocket/animal-themed poker: Merged parent and clone to 'unknown rocket/animal-themed poker'. They are just one set with banked programs. Added technical notes. Promoted game to working. - Varia Metal: Fixed flipped tilemap offset - Vector games: Added new option beam_dot_size that controls the rendered size of 'dots' - Violent Storm: Added needed mirror to fix a gfx issue - X-Men . Use shared_ptr_array . Fixed some gfx issues in clone X-Men (6 Players ver ECB) - Fixed rom names in cave.cpp, ddragon.cpp, exidyttl.cpp, itech8.cpp, leland.cpp, m72.cpp, midvunit.cpp, mw8080bw.cpp, namcos2.cpp, s3.cpp, sidepckt.cpp and tempest.cpp - Dipswitch fixes in armedf.cpp, ddenlovr.cpp and schick.cpp - Description changes of 4-in-1 (version SWS1-110984), AGEMAME (lots of), Danger Zone (rev 2), Diana Bifuca, Double Wings (set 1), Funhouse (9.05H), Funhouse (L-3), Funhouse (L-4), Funhouse (L-5), Funhouse (L-9, SL-2m), Funhouse (L-9, SL-2m, bootleg improved German translation), Master Boy (1987, Z80 hardware, Ichi-Funtel, set 1), New Quiz (Modular System bootleg of Gals Panic), Pipi & Bibis / Whoopee!! (bootleg, decrypted), Pipi & Bibis / Whoopee!! (Ryouta Kikaku bootleg, encrypted), Slap Shot (Ver 2.2 J), Super Spacefortress Macross II / Chou-Jikuu Yousai Macross II (Gamest review build), Ultra X Weapons / Ultra Keibitai (Gamest review build) and unknown rocket/animal-themed poker - Renamed (crusnusa) to (crusnusa41), (dblewinga) to (dblewingb), (microdar) to (dibifuca), (slapshot) to (slapshotj), (sms4in1) to (sms4in1a), (v4barqst) to (v4barqstd), (v4cmaze2a) to (v4cmaze2_amld), (v4cmaze3a) to (v4cmaze3_amld), (v4cmazea) to (v4cmaze_amld), (v4mazbla) to (v4mazbel15), (v4miami) to (v4mdiceger), (v4psi14d) to (v4psibcd), (v4psi20d) to (v4psid), (v4psi214) to (v4psi14a), (v4psia) to (v4psibc), (v4psib) to (v4psi14), (v4time) to (v4tmach) and (v4wizea) to (v4wizeo) - MAME . VIDEO RENDERING SYSTEM . Properly clean up d3dintf (render\drawd3d.cpp) . More lenient with resizing very large views in windowed mode. Reduced minimum window height (osd\windows\window.cpp). . Added default flags parameter in draw function (TILEMAP_DRAW_ALL_CATEGORIES; emu\tilemap.h) . Don't add parent set external artwork if artwork found (emu\render.cpp) . DEVICE . Removed m_totalcycles workaround (emu\diexec.h) . Added workaround for GCC and Clang 8 (emu\devcb.h) . UI . Able to show emulation warnings from tab menu. Swap order of popup screens (gameinfo first, warnings second) and added "press any key" to gameinfo. . Get help from website instead of files that don't exist (mame\clifront.cpp) . PLUGINS: Don't save empty configuration files file (plugins\autofire\autofire_save.lua) . Validity: Added checks for bilinear filter vector routines (emu\validity.cpp) . Device Network Interface: Set default network device to be none to avoid inadvertantly spamming a network (emu\dinetwork.cpp) . Updated RTD docs theme to 0.5.0 to fix search box (docs\themes\sphinx_rtd_theme). Preliminary work on -joystick_map redesign. Adjustments to phrasing for analog mapping (docs\source\commandline\commandline-all.rst). Added Health warning text. . Enabled save state support in big10.cpp, blackt96.cpp, kas89.cpp, kurukuru.cpp, littlerb.cpp, looping.cpp, lucky74.cpp, luckybal.cpp, namcos2.cpp, sfkick.cpp, srmp6.cpp, supertnk.cpp, tigeroad.cpp and tonton.cpp. Fixed save state support in luckybal.cpp and rulechan.cpp. . Fixed initializations issues that were causing problems in DEVNOCLEAR debug builds (cpu\h8\h8_dma.cpp, machine\6850acia.cpp, 8042kbdc.cpp, ncr539x.cpp, s32comm.cpp, video\dp8350.cpp, k057714.cpp and jangou_blitter.cpp) . Updated changed set names in plugins\hiscore\hiscore.dat - VGM player: Support SAA1099 stereo output (Reference: Pinout, datasheet) - Compiling . MinGW SDL build fails with end-group auto added by that LinkSupportCircularDependencies flag option (scripts\genie.lua) . asmjit: Only build asmjit on x86 and x86_64 (scripts\src\3rdparty.lua and main.lua). Fixes unable to compile MAME 0.222 for ARM processor (Rasbian Buster) (ID 07687). . Added arm64 and s390x to Travis CI (travis.yml). Overhaul travis.yml in an attempt to speed up macos builds (travis.yml). . Switch appveyor GCC build to -O3 (appveyor.yml). Appveyor MSYS2 workaround: Work around appveyor not being able to update MSYS2. There has been a change to MSYS2 package maintainers, meaning that the packages are now signed with a different key: https://www.msys2.org/news/#2020-06-29-new-packagers. Import the new keys manually until appveyor image is updated with a new msys2-keyring package. Explicitly kill msys2 before the second pacman call (appveyor.yml). . Removed superfluous semicolons in various devices and drivers (x();;) . Restored some standard library #includes, added some things that were used but not #included and clean up some #include guards. . Fixed SOL2 build on GCC 10.2 by working around overload resolution problem (3rdparty\sol2\sol\) - Debugger . Added debugger command saver for memory region and debugger command loadr for memory region (debug\debugcmd.cpp). . Don't leak an open FILE when an argument is invalid and also fixed a spelling error. The saver/loadr commands should consider region endianness for portability (debug\debugcmd.cpp). 0.222 - New games: Black Hole (EFG Sanremo), Super Motor (prototype) and TwinBee (Bubble System) - New Working games: Bingo Time, Kick and Run, Tetris + Cherry Master (Corsica, v8.01, set 2), Witch Card (ICP-1, encrypted) and World Class Bowling Tournament (v1.30) - New Non-Working games: Crazy Balls [TTL], Dardomania (v2.1), Densha de GO 3! Tsukin-hen (V2.03J), High Roller and Jackpot (Ver 16.16L) - New clones: Air Duel (US location test, M82 hardware), Circus (bootleg), Cleopatra Fortune (Ver 2.1O 1996/09/05, bootleg), Dirt Dash (Rev. DT1 Ver.A, Japan), DonPachi (Japan, Satsuei version), FreeWay (V4.31), Gals Panic (Taiwan, EXPRO-02 PCB), Golden Par Golf (Joystick, V1.0), Hot Blocks - Tetrix II (set 2), Hot Blocks - Tetrix II (set 3), Jackie Chan - The Kung-Fu Master (rev 4?), Jackpot (Ver 1.16L), Karate Dou (Arfyc bootleg), 'Konglongwang - D-Kids VS Alpha Yaosai (China, Ver 2.501) (MDA-C0081)', Magic Bomb (Ver. A3.1A), Magic Bomb (Ver. AA.72D, 14/11/05), Magic Bomb (Ver. AB4.2, 11/10/01), Magic Bomb (Ver. AB4.5A, 07/10/02), Magic Bomb (Ver. L3.5S), Pit Boss Superstar (9221-12-02, Minnesota version), Police Trainer (Rev 1.3B, Rev 0.3 PCB), Prebillian (bootleg), Raiden II (Spain), Road Fighter (set 3, unencrypted), Shinobi (Datsu bootleg, set 3), Shuffleshot (v1.35), Shuffleshot (v1.38), Street Fighter (Japan, bootleg), 'Super Six Plus II English Mark Darts (Spanish)', Trivia (Questions Series 12 Alt Question Rom), Trivia (Questions Series 14 Alt Question Rom), Trivia (Version 1.03a Sex questions, Alt revision questions), Vampire Savior: The Lord of Vampire (Brazil 970519), Varth: Operation Thunderstorm (bootleg, set 2) and Video Pinball (4 ROMs version) - New PinMAME games: The Raid (alternate set), Star Wars (1.01), Trebol and Twilight Zone (L-5) - New drivers: crazybal.cpp, drdmania.cpp, jackpot.cpp, regama.cpp, schick.cpp and smotor.cpp - New devices: 24c512, c219, cxd1180, ds80c320, i8344, i87c51fa, jag_blitter, m24c02, m6512, m68hc705c4a, mbm29lv800b, pcd8572, pic17c43, pic17c44, sab80c535, sed1278_0b, w65c802 and zzzap_audio - New Clrmamepro: https://mamedev.emulab.it/clrmamepro/#downloads - New Cheat.dat: http://www.mamecheat.co.uk/ - CPU . Analog Devices ADSP21062 'SHARC': Fixed DRC crashes in DEVNOCLEAR debug builds . DEC T11: More accurate emulation of interrupt acknowledgment. Added PF and HLT interrupts. This is accurate behavior for the T11, but it makes some of the driver changes a bit more awkward than they probably should be, given that one device is standing in for every CPU vaguely related to the PDP-11 family. Galaxy Game obviously wasn't written for a T11, and the BK-0010's K1801VM1 doesn't look like a lot like the T11 either. Changed default interrupt vector. . Hitachi HD6309: Removed 0x20 opcode (m6809\hd6309.ops). Note $1020 is an illegal opcode on the 6309. On the 6809 it is a rarely used form of LBRA. I tested on a real 6309 and $1020 vectors to Illegal. . Hyperstone: Fixed DRC crashes in DEVNOCLEAR debug builds (e132xs\e132xs.cpp) . Intel 8085A . Stop in debugger after an interrupt is taken, not immediately before. . Interrupt updates: Eliminated special-casing and three-in-one loading of CALL (and JMP) vectors in favor of fetching each byte in succession like a normal instruction. Added INTA callback, called only when INTR (and not any other interrupt) is acknowledged. Enforce that TRAP (NMI) must be held at a hi