Homepage - mameworld.info/mameinfo
E-Mail - [email protected]
Visit ARCADE AT THE MOVIES

0.283GIT - CPU . Intel 8031/8051/8751: Removed spurious port read messages (mcs51\i8051.cpp) . Intel I386: Set CPl after all memory reads are done in i386_task_switch (i386\i386segs.hxx) - DEVICE . Floppy: Documented all of the upd72069 auxiliary commands (machine\upd765.cpp) - goldstar.cpp . Cherry Master '97 improvements: Decoded and bitswapped the bipolar PROMs creating a RGB555 palette. Fixed title and foreground graphics colors. Video register from port to get the proper graphics modes. Adjusted and placed the reels properly. Added hopper support, mechanical counters and lamps. Fixed the reels colors and the screen update to use the vidreg for modes. . Jackpot Knight improvements: Fixed title and foreground colors and reels colors. Improved reels placement. . New Fruit Bonus '96 Special Edition: Removed all loaned bipolar PROMs from clones nfb96se, nfb96sea, nfb96seb, nfb96sec, carb2002 and carb2003 and decoded the proper device data for palette. Fixed the rom load of clones nfb96se, nfb96sea, nfb96seb, nfb96sec, carb2002 and carb2003 taking care of the proper graphics bitplanes. Removed the imperfect color flag of the above games. Marked clone carb2003 reels graphics ROMs as bad dump. Flagged the game as imperfect graphics. Temporal workaround bypassing some checks for clone noved. - model2.cpp: Fixed textured mesh polygons. Need to double all the increment values (sega\model2rd.ipp). - Gold Line: Added ROM and reel RAM banking and identified game title as Gold Line. - Renamed (unkct) to (goldline) - Description changes of Gold Line and Senjou no Ookami (Japan) - MAME . PLUGINS: Fixed mixed space/tab indentation (plugins\hiscore\init.lua) . Consolidate drivers into single files (kingobox.cpp) 0.282 - New games: Baccarat Special, Lucky Pierrot (Japan, v1.1.0B) and Miracle Seven - Heaven's Gate Turbo (Japan, v2.0.0) - New Working games: 3 Cards Poker 96 (V1.0), 3 Cards Poker 96 (V1.6), Bonus Chance (W-8, set 1), Bonus Chance (W-8, set 2), Cherry Bonus (A.A.I. bootleg), Cherry Bonus II (V2.00 06/01), Fever Chance (W-6, Japan, set 1), Fever Chance (W-6, Japan, set 2), Fever Chance (W-6, Taiwan), Haunted House (IGS, V101US), Haunted House (IGS, V107US), Haunted House (IGS, V109US), Jungle King 2004 (V101US), Mega Lines (Wing W-7 System), New Draw 8 Lines (Version 2.1), Nove Diamante (bootleg), Royal 5+ / X'mas 5 (V101US), Skill Chance (W-7, set 1, 62-98 main), Skill Chance (W-7, set 2, 53-98 main), Wild Cat 3 and Wild Cat S (CMV4 hardware) - New Non-Working games: 100&Medal GekiKazaaan!! (MDA-C0098D), 100&Medal Kazaaan!!, Arabian Jewel (MDA-C0090), Around The World, Battle Kids, Champion (darts machine, v7.71), Chaoji Jielong (V100CN), Crystal Maze, Flash Gun, Hanafuda Hana Tsubaki (Japan), Manguan Fuxing (V104T), Monopoly the Medal 2nd Edition (MDA-C0056A), Pluto 6 Devkit/Evaluation Board, Saikyou Saisoku Battle Racer, Space Computer (ver. 1.8a), Star Basket, Treasure Hunting (US.09.A), Treasure Island Jackpots, and Tsuribori Taikai (JAE 980605 V1.000) - New clones: 100&Medal GekiKazaaan!! (MDA-C0098), 100&Medal GekiKazaaan!! (MDA-C0098C), 100&Medal Kazaaan!! (MDA-C0091A), Arabian Jewel (main), Arabian Jewel (satellite), Bingo Galaxy (MDA-C0039B), Bingo Galaxy (MDA-C0039C), Cherry Bonus (Dyna v1.01 20fev), Cherry Master (ED-96, Corsica CM v8.23), Cherry Master 2005 (Ver. 1.00H), Cherry Master I (ver.1.01, set 13, BET stops all), Cherry Master I (ver.1.01, set 14, TAKE stops all), Cuty Line (LC-88 bootleg, ver.7.07C), Doraemon Slot, E.D.F.: Earth Defense Force (set 3), Fever Chance (W-6, cross-system for W-4), Galaktron (Sede 3), Hanafuda Hana Ginga (Japan, ver 1.00, rev 1), Magic Tree (V200PR), Samurai Aces (Korea?), Slot no Oujisama / Slot Prince (Japan, SLO1 Ver. A), Sugorotic JAPAN (STJ1 Ver.B), Tang Tang (ver. 0526, 26/05/2000, set 2), Tarzan II (V101XB), UFO Catcher 7 (rev. A) and UFO Catcher 7 (rev. C) - New PinMAME games: 'Adventures of Rocky and Bullwinkle and Friends (Belgium 1.10, display I1.03)' and 'Maverick, The Movie (Germany 4.04, Display Rev. 4.00)' - New drivers: fcourtfev.cpp, fdek_h8s.cpp and flashgun.cpp - New devices: 24c65, hasp_savquest, heath_gp19_tlb, heath_igc_super19_tlb_device, heath_igc_tlb_device, heath_igc_ultra_tlb_device, heath_igc_watz_tlb_device, heath_imaginator_tlb, heath_super19_tlb, heath_superset_tlb, heath_tlb, heath_tlb_connector, heath_ultra_tlb, heath_watz_tlb, lsi11, mm5740, namcos1_sprite, permedia2, serial_heath_h19, st_m29w640ft, st0032, systemy2, toaplan_txtilemap and winbond_w29c020c - New Clrmame: https://mamedev.emulab.it/clrmamepro/#downloads - CPU . DEC T11 . Handle unaligned accesses to I/O page. Certain devices on bk, uknc require this, as they do not handle the WTBT bus signal and always decode full address (t11\t11.cpp). . Improved interrupt handling in K1801VM1 CPU core. Added interrupt processing and EIS instructions to K1801VM2 core (t11\t11.cpp). . Dynamic Re-Compiling . drcbec . Fixed code for ROLC that played fast and loose with integer promotion, producing incorrect results for some compilers/targets (cpu\drcbec.cpp). . Fixed default floating point rounding mode not applying after RESTORE (cpu\drcbec.cpp). . drcbex86 . Clear the zero and carry flags for unordered floating point comparisons for consistency with the documentation and the other back-ends (cpu\drcbex86.cpp). . Mask flags when setting via SETFLGS or RESTORE to avoid possible buffer overrun, slightly optimised SETFLGS with an immediate operand. Optimised FCMP when only the unordered flags is required (cpu\drcbex86.cpp). . Optimised GETFLGS: LEA to avoid the need to save/restore flags for more flag combinations, choose registers more wisely to avoid unnecessary copies and reduce REX prefixes, use more efficient strategy to save and restore flags. Removed assert that made SETFLGS impossible to use in debug builds. Removed casts that are no longer necessary (cpu\drcbex86.cpp). . drcbex64 . Clear the zero and carry flags for unordered floating point comparisons for consistency with the documentation and the other back-ends. Slightly optimised flag calculation for some shifts and rotates (cpu\drcbex64.cpp). . Simplified and ptimised flag calculations for rotate instructions (cpu\drcbex64.cpp) . Mask flags when setting via SETFLGS or RESTORE to avoid possible buffer overrun, slightly optimised SETFLGS with an immediate operand. Optimised FCMP when only the unordered flags is required (cpu\drcbex64.cpp). . Avoid slow microcoded pushfq/popfq altogether. Also avoid some false dependencies and reduce near cache usage by almost 4KiB (cpu\drcbex64.cpp). . Optimised a couple more cases of GETFLGS and replaced a few magic numbers with constants. Use 2-operand and 3-operand forms of imul. Also changed scratch register use a bit. Optimised MULU/MULS flag calculation. Removed assert that made SETFLGS impossible to use in debug builds. Removed casts that are no longer necessary (cpu\drcbex64.cpp). . drcbearm64 . Use bfxil to save an instruction for smae cases of CARRY and ROLINS (cpu\drcbearm64.cpp) . Fixed default floating point rounding mode not applying after RESTORE. Optimised generated code for SETFLGS a little (cpu\drcbearm64.cpp). . Save an instruction when calculating carry flag for shifts with immediate count. Optimised MULU/MULS flag calculation. Handle degenerate forms of ROLAND/ROLINS when simplifier is disabled. Removed assert that made SETFLGS impossible to use in debug builds (cpu\drcbearm64.cpp). . Further optimised 32-bit multiplication and flag calculation for all multiplication instructions. Fixed 32-bit SEXT sign extending to 64 bits. Removed casts that are no longer necessary (cpu\drcbearm64.cpp). . Don't try to get offset of unbound labels even if it won't be used (cpu\drcbearm64.cpp) . ST0016: Moved ROM banking from drivers into device. External ROM is now read through an address space. Also reduced literal tags, suppress side effects for debugger reads and cleaned up code. . UML: Truncate immediate operands for CARRY (cpu\uml.cpp). Marked BREAK as clobbering all flags and marked LOAD, LOADS, STORE, SET, FLOAD and FSTORE as not modifying flags. CPUs already depend on SET not modifying flags (cpu\uml.cpp). . PowerPC drc: Generate a simpler multiplication opcode for MULLI (powerpc\ppcdrc.cpp) . x86/x64 code logging helpers: Encapsulated as a class, don't use unsafe sprintf, optimised a little, made comments and data ranges vectors (cpu\x86log.cpp). . Doc: Documented the last of the UML instructions (docs\source\techspecs\uml_instructions.rst) . Hitachi HD63705Z0: Use logmacro logging (m6805\hd6305.cpp) . hyperstone E1: Optimised generated code for multiplication and DSP instructions a little. Fixed recompiler not sign-extending EHMAC inputs (interpreter was correct) (e132xs\e132xs.h, e132xs\e132xsdrc_ops.hxx). . Intel 8086: Avoid clearing working registers upon device reset (i86\i86.cpp). Note: This change is required in order for BIOS for the AT&T 6300 Plus to work. The 6300 Plus has external logic to reset the 80286 via the reset pin, so that it can return to Real Mode from protected mode. Upon return to Real Mode, the BIOS code is clearly depending on the fact that SP register is preserved upon reset (the BIOS does however explicitly load the SS register after reset, before it is used). The 8086 and 80286 documentation call out which registers are to be initialized upon reset, and SS is one of them. For AX, BX, CX, DX, BP, SP, SI and DI, the behaviour is not specified. However, based on what the 6300 Plus BIOS is doing, it appears the actual hardware behaviour is to leave them untouched. Although we can only be fully confident that the real 286 behaves this way with respect to the SP register, it's likely that the other registers which do not have explicitly defined initialization behavior are also not touched during reset. Note that this observed behaviour only pertains to reset via the reset pin, and not to power-on initialization. . Intel 80960KA/KB . Only trigger interrupts if the input changes to the asserted state (i960\i960.cpp). logr and logrl use base 2 and always use correct rounding mode (i960/i960.cpp). . Split check_irqs() into two separate functions, fixes "Fatal error: I960: 2f2f2f2e: Unhandled 00" during Self-Test in vf2o, overrev and sgt24h (ID 08347). Pending interrupts are only checked after returning from an interrupt, while executing modpc if it causes the current priority to be lowered, and after receiving a test pending interrupts IAC message (i960\i960.cpp). . Fixed typo in ROUNDRL instruction (i960\i960.cpp) . MCS-51 . Fixed destination RAM type in XCHD A, @R0/@R1. The initial value is read from internal RAM (IRAM_IR). The final value must be written to the internal RAM too (IRAM_IW instead of IRAM_W) (mcs51\mcs51ops.hxx). . Renamed the external data bus from io to data. Start turning the internal maps into real maps. Modernization step 1+2 (mcs51\mcs51.cpp) . NEC uPD7810: Added internal layout and complete driver implementation for (MESS) Roland PG-1000 (upd7810\upd7810.cpp, roland\roland_pg1000.cpp) . Texas Instruments TMS7000: Clean up code in disassembler (tms7000\7000dasm.cpp) . Toshiba TMP95C06x: Fixed uninitialised members. Also got a lot of stuff out of the header that doesn't need to be there (tlcs900\dasm900.cpp). Show SFR symbols in disassembled code for names for TMP95C061, TMP95C063 and TMP96C141. . Zilog Z80: Cleaned up unnecessary internal state validation (SA_BUSACK) which caused INT skip (z80\z80.cpp) - DEVICE . 8042 Keyboard/Mouse Controller: Can't possibly receive if the timer isn't running. Fixed PCIAGP boot without debug tricks (machine\8042kbdc.cpp). . Flash ROM: Added ST_M29W640FT and implemented unlock bypass command. Support for Winbond W29C020C + preliminary Winbond SDP mode (machine\intelfsh.cpp) . Floppy . Support quad density floppies as an option. Disable option ROM on fixed disk controller (onboard BIOS has built-in support). Use a lambda instead of short function (isa\fdc.cpp). . Added rudimentary error checking to floppy_create, allow mount to return nullptr on failure. Fixed error return for floppy_create (tools\floptool.cpp, tools\image_handler.cpp). Sanity check for debug builds (formats\fsblk_vec.cpp). . Added 8bit DMA and NOP unknown FDC commands to (MESS) MPC-3000 (machine\upd765.cpp). Added uPD72069 data rate control (machine\upd765.cpp) . New filesystem-based commands: Added flophashes and hdhashes commands to compute CRC-32 and SHA-1 hashes for each file on a floppy or hard disk image. Added flopchmeta command to change the metadata for a file, directory or volume on a floppy image. Added floprename and flopremove commands (tools\floptool.cpp). . Hitachi HD44780 LCD Controller: Reorganized the classes so that the a0* bad dump do not propagate to systems not using it (video\hd44780.cpp). Removed the parent roms stuff because we do not have a parent concrete device anymore (video\hd44780.h). . IGS017_IGS031: Don't hardcode tilemap ROM size in decryption function (igs\igs017_igs031.cpp), fixes 'Krazy Keno' which has bigger ROM [Osso]. . Intel 8259 PIC: Side effect protection . ITE IT8705F LPC Super I/O: Fixed FDC DRQ line setup. Hookup ISA DMA bindings (machine\it8705f.cpp). . Konami 056832 Tilemap Generator: Got rid of a redundant function with duplicated code (konami\k054156_k054157_k056832.cpp) . NMK112: Use configured banking rather than writing to ROM regions. Handle non power of two ROM sizes properly (machine\nmk112.cpp). . NVRAM: Removed DEFAULT_RANDOM init (machine\nvram.cpp) . RS-232 Port: Added option for (MESS) Heath H19 terminal. Changed to the option function to a static method. . SEI80BU Encrypted Z80 Interface: Moved SEI80BU emulation into its own source file (seibu\sei80bu.cpp). SEI80BU is not always part of the Z80-based sound system, e.g. seibu\mustache.cpp. Also added input frequencies for SEI80BU devices (uses the same clock as the Z80). . Seta ST0020/ST0032 Sprites: Made ST0020 and ST0032 separate devices. Use util::sext for sign extension. Suppress side effects for debugger reads, use logmacro.h for configurable logging (seta\st0020.cpp). . SiS 950 LPC Super-South Bridge: Hookup ISA DMA bindings (machine\sis950_lpc.cpp) . Taito TC0110PCR: Use callback and configuration for color format and address shift. Also use logmacro.h for logging and suppress side effects for debugger reads (taito\tc0110pcr.cpp). . Toaplan Text tilemap generator: Merged common text layer emulation in GP9001-based drivers into a device (toaplan\toaplan_txtilemap.cpp) . Winbond W83977TF Super I/O: Hookup FDC, GPIO1, FDC irq and drq lines. Ensure Super I/O port to be installed after the others. Hookup ISA DMA bindings and fixed floppy fails (machine\w83977tf.cpp). . Z80 CTC: Improved interrupts handling in (MESS) specnext (machine\z80ctc.h) . Zilog Z80 DMA Controller: Always return live status regardless of when read command was sent (ID 09143). Refactor read register emulation. Minor logging refinements and cleanups (machine\z80dma.cpp). Keep member declarations together (machine\z80dma.h). - SOUND . Ensoniq 5505/5506 to 5510 interface: Route es5505 bus to a separate 'aux' stereo output. The VFX-SD and later keyboards in the family have not only a main stereo output, but also a second 'aux' stereo output that bypasses effects processing and has separate output jacks from the keyboard. This allows some sound to be routed for separate effects processing or recording (sound\esqpump.cpp and ensoniq\esq5505.cpp). . Ensoniq ES5505/6: Devices generate 20bit samples, not 16-bit ones. . Yamaha SWP30 sound chip: Overhaul. Use util::sext and explicit specializations for std::clamp and std::min. Removed crashing debug fopen/fprinf and srcclean (sound\swp30.cpp) - astrcorp.cpp: Adding passwords in ASCII format - astropc.cpp: Split passwords from astrcorp.c in astropc.c notes where they belongs and added romset IDs. Added missing passwords ASCII tables. - blmbycar.cpp and wrally.cpp . Use device_video_interface to obtain screen. Also lifted a calculation out of the inner sprite drawing loop and cleaned up code (gaelco\gaelco_wrally_sprites.cpp). Implemented device_gfx_interface (gaelco\gaelco_wrally_sprites.cpp). . Suppress side effects for debugger reads and cleaned up code (gaelco\blmbycar.cpp). Cleaned up code (gaelco\wrally.cpp). - dassault.cpp: Fixed priority write function. Fixes regression since MAME 0.194 (Get rid of nonbuffered_palette_w in video\decocomn.cpp). - dbz.cpp: Reduced duplication and cleaned up code. Use object finder arrays and templates to reduce duplication and reduce literal tags. Use BIT helper, improved ROM region names and made more local variables const. - ddenlovr.cpp and dynax.cpp . Correct half the DIP switches for Mahjong Jongoh based on an auction photo of the manual . Added preliminary hanaroku panel support to Hanafuda Hana Ginga . Better representation of the buttons that are actually present (dynax\hanafuda.cpp) - es9501.cpp . Changed IRQ handling so that 'Dream 9 Flower' does palette updates and inputs. Dumped correct EEPROM for the Dream 9 Flower and clone. . Real 93C56 EEPROM dump for Special Dream 9 (v1.0.7G). Added real EEPROM dump for Star Ball (v1.0.0S). - gaelco2.cpp . Moved dual monitor variant to a separate driver state class. Lifted a calculation out of the inner sprite drawing loop. Reduced duplication and suppress side effects for debugger reads. . Make use of DS5002FP programs built from Gaelco archives for the first 2 World Rally 2 sets, older sets still use the ROM found on dumped boards. - giclassic.cpp: Added missing member to saved states - goldstar.cpp . Driver improvements. A huge work on tilemap system, machines config, memory maps, video start, screen update, tile get info, gfxdecode and different video registers to give extended graphics support (mostly girls) to Poker Master and derivative hardwares. Now the sets that support girls are pkrmasta, missbingo, missbingoc, crazybon, crazybona and crazybonb. First titanic pass to reorganize and clean goldstar.cpp driver. . New machine config for '3 Cards Poker 96'. Correct settings for NVRAM. Bypassed the '3 Cards Poker 96' protections. Improved, optimized and unified the protection bypass for both sets. Unified the inputs for both sets. Simulated protection instead of patching it out. Promoted 3 Cards Poker 96 (V1.6) and 3 Cards Poker 96 (V1.0) to working. . Extended graphics/girls support (8.u53 rom) to all Lucky Line III sets. Created buttons-lamps control panel layout. Extended NVRAM. Also added a dump of original 6264 NVRAM for future analysis. . Fixed the constant noise sound problem in Lucky Lady (Wing, encrypted) and Tic Tac Toe (Sundance bootleg of New Lucky 8 Lines). . More work toward clone cutylineb. Memory map and machine config. Redumped cutylinea and cutylineb bipolar PROMs. Removed the loaned girls ROM from clones cutylinea and cutylineb, due to is inexistent on the PCB. Added workaround to get clone cutylinea running the attract. Added temporary hacks to clones cutylinea, cutylineb and cutylinec, to get them working. Unfortunately the double-up feature is still not present. Added new inputs and DIP switches bank #1 to clones cutylinea, cutylineb and cutylinec. Added 'Auto Reset Point', 'Bonus Condition', 'Coinage', 'D-UP Game Rate', 'Key In', 'Main Game Rate', 'Max Credits', 'Max Key In', 'Min Bet for Bonus', 'Rolling Speed' and 'Show Max Credits' DIP switches to cutylinea and marked the whole DIP switches bank #3 as unused. . Promoted Cherry Bonus II (V2.00 06/01) to working. DSW settings for cmast91, crazybonb, ll3, ll3a, ll3b and missbingoc. Fixed the game rate % settings for clone ll3c. Correct the polarity of DIPSW1 pin 1 for cmast91. Added inputs for cll from cmast91. . Remapped and improved Mega Bonus Star II inputs. Added hopper support. . Skill Chance/Mega Lines improvements: Improved memory map, port map, preliminary inputs and fixed the reels bitplanes order and colors for megaline, skillch and skillcha. Improved the skillch/skillcha foreground bitplanes order and colors. Migrated megaline and skillch sets to wingco class. Created a new screen update to work with the new reels parameters and video registers. Fixed memory/port map. Remapped the inputs ports. Reworked the game inputs to be accurate. Added hopper support. Worked the video register to enable/disable respective graphics. Reworked the screen update with the VREG functions. Fixed the double-up single reel/rolling numbers. Added the 4x output ports. Added bookkeeping/mech counters. Added 2 sets of lamps. Fixed the Skill Chance foreground colors. Added a buttons-lamps control panel layaut. Cleaned up the driver. DIP switches locations for megaline/skillch sets. Added NVRAM support. Separate inputs for megaline. Correct main game rate DIP switches settings and set defaults for hopper limit, coin A and key in. Added workarounds to break the different games protections. Added button-lamps control panel to skillch and megaline. Promoted megaline, skillch and skillcha to working. Worked the proper reels gfx banking protection for megaline, skillch and skillcha. . Bingo (Wing) improvements: Added proper memory map. Derivated machine config from lucky8. Fixed the loud noise issue. . New Lucky 8 Lines / New Super 8 Lines improvements: Fixed the loud noise issue in ns8linew and ns8linewb. Fixed the hopper jam error in all sets. . Cherry Angel improvements: Improved memory map, port map, inputs and created new machine config. The parent and clones are playable, but still remain some protections. . Wild Cat S improvements: New machine config, memory, port maps and proper inputs for clone Wild Cat S. Created output port handler. Added video register. Bypassed protections. Created a buttons-lamps control panel layout. Fixed the gfx bitplanes and colors. Added DIP switches to clone Wild Cat S. Promoted Wild Cat S (CMV4 hardware) to working. . Wild Cat sets improvements: Bypassed wcat3 protections. Fixed the wcat and wcat3 gfx bitplanes. Fixed the wcat and wcat3 colors. Allow wcat3 init PPI2 properly. Reworked and separated inputs for wcat3. Complete inputs for wcat3. Buttons-lamps control panel layout for wcat3. Added wcat3 DIP switches. Promoted Wild Cat 3 to working. . Wing W-6 System improvements: Switched the system to wingco class. Created new screen update to fit the video events/stats. Created special function for reels scroll RAM protection. Relocated the reel #1 for D-UP mode. Applied mirror for the reel scroll RAM displaced offset. Created output ports. Added DIP switches & DIP locations. Added hopper support. Switched the bipolar PROM nibbles, fixing the palette. Bypassed some protections. Added lamps support. Added mechanical counters. Added buttons-lamps control panel. Implemented the SM7831 Arithmetic Processor device emulation. Removed all the previous hacks and workarounds at init. Placed SM7831 read and write routines together. Promoted Fever Chance (W-6, Japan, set 1) and clones Fever Chance (W-6, Japan, set 2) and Fever Chance (W-6, Taiwan) to working. . Wing W-8 System improvements: Rewrote the whole memory map and I/O port map. Added new dedicated video start. Bypassed the system protection. Created the 2-states, 6 PROMs palette. Calculated and applied the video resnet. Added new dedicated screen update. Added the 4x SN76489 sound support. Inputs and DSW from the scratch. Added the 3rd GFX bank to the gfxdecode for extended graphics. New tile get info for the special protection tilemap. Hooked the output ports. Hooked Coins A-B-C-D, Key In and Key Out mech counters. Added NVRAM and hopper support. Rearranged the ROM load for GFX banks ROMs and bipolar PROMs. Added the Stop 1-2-3 and Stop All buttons. Partially bypassed the hopper protection. Aligned the controls according to the real control panel. Remapped the reset switch, that was overlapped by mistake. Documented the Wing W-8 System video RESNET. Added ASCII schematics. Reworked the ROM load. Added an extra graphics bank for extended reels graphics. Fixed double-up reel colors. Removed the imperfect colors flag. Created derivative reel tile info. Created button-lamps control panel layout. Promoted Bonus Chance (W-8, set 1) and clone Bonus Chance (W-8, set 2) to working state. . Fixed the clones moonlghtb and moonlghtc colors. Fixed bitswapped reels graphics for clones super9 and super9a. . Cleaned up 'Fever Soccer' code: Fixed sprite wraparound, simplified graphics decoding and use BIT helper. . Decoded the contents of prom met47s01.u66 in clone New Draw 8 Lines (Version 2.1) creating an accurate palette and fixing colors for the foreground graphics. Inputs from the scratch. Extracted the color system PLD contents and decoded the reels palette. Added function to transform on the fly the scrambled SN76489 commands, fixing the sound. Created buttons-lamps control panel layout. Fixed stops buttons border intensity in the buttons-lamps control panel layout. Added 'Double Up Game' and 'New Selective Hold Feature' dipswitch. Figured out the 'Coin A Rate', 'Double Up Game Type' (Reels or Hi-Lo Cards), 'Key In' and 'Main Game Pay Rate' dipswitches. Fixed the Coin A input. Promoted New Draw 8 Lines (Version 2.1) to working. DIP switches for clone F-16 Super 8 Lines. . Cherry Bonus improvements: New memory map, machine config, inputs and protection bypass. Splitted inputs for clone Cherry Bonus (A.A.I. bootleg). Improved Cherry Bonus inputs adding the STOP buttons. Update clone Cherry Bonus (A.A.I. bootleg) settings. Promoted Cherry Bonus (Dyna v1.01 20fev) and clone Cherry Bonus (A.A.I. bootleg) to working. . Updated Poker Master (Tony-Poker V3.A, hack?) settings. The polarity for DIP switches 1 & 2 has been corrected. . Magical Odds huge improvements: Huge work in tile get info/video start/screen update, to integrate the dynamic reels background color system. Reformatted the reels system to fix the kinetic title effect. Fixed palette decoding and graphics decode accordingly. Added a third graphics bank for title tiles. Reworked inputs to get the necessary to get the game working and match the standards. Removed MACHINE_WRONG_COLORS and MACHINE_IMPERFECT_GRAPHICS flags. Correct spot area for title effect (magodds, magoddsa & magoddsb). . Fixed DIP switches polarity for clone Nove Diamante (bootleg). Workaround to bypass the Nove Diamante link error. Fixed Nove Diamante reels graphics. Removed the loaned bipolar PROMS in Nove Diamante and decoded the color data EPROM from the game PCB, splitting the byte nibbles creating 4bit data for the game palette. Promoted clone Nove Diamante (bootleg) to working. - hng64.cpp: . Decode samples. Bump 8-bit incoming samples to 16-bit and adjust output scaling. Improves audible detail and output volume. Replaced the lpf by a chamberlin, it makes more sense. Adjusted final mix to capture the true highest bits, don't retrigger the filter envelope on writes and decode the loop parameters. More plausible loop point calculation. Updated documentation. Further work on loop parameters. The crowd in Xtreme Rally now sounds reasonable. Additional cleanup, proper logging, device map and multichannel output. Also changed owners/licensing given extensive rewrite since 0.280. Added DMA support. 16-bit linear sample format supported. Remap the channel mapping to make sense. Better logging. Cleanup, improved logging, fixed missing address mask, fixed issue with 16-bit playback and added enum for output channels. Make into a device_memory_interface with a side of memory_access cache (sound\l7a1045_l6028_dsp_a.cpp). . Improved MIPS/V53 communications, fixes many problems with Xtreme Rally. Spin the MIPS for the actual required time to prevent overruns, which is much lower (snk\hng64.cpp). . Cleaned up code: Use template for tilemap info function. Use logmacro.h for configurable logging. Suppress side effects for debugger reads. Reduced literal tags. Use abbreviated integer types consistently (snk\hng64.cpp/h, hng64_3d.ipp, hng64_a.cpp, hng64_sprite.ipp and hng64_v.cpp). . Patch up a bit: Fixed BIOS region in ROM in ROM finder constructor. Use object finders for texture and vertex ROMs. Fixed endianness bug casting 8-bit vertex ROM region to u16. Fixed ridiculously dangerous code depending on variable shadowing. Got rid of some completely unnecessary casts that could break stuff later. . Preliminary hookup for rear/LFE and individual gun sound outputs (snk\hng64.cpp). Follow along with the DSP's new channel mappings (snk\hng64_a.cpp). Fixed vertex ROM range check and moved indexing after check. Fixes assertion failures, etc (snk\hng64_3d.ipp). - hummer.cpp: Adding passwords in ASCII format - igs_fear.cpp . Added preliminary inputs for Icescape . Dumped all GFX ROM for 'Majiang Zhengba' - igs_m027.cpp and igs_m027xa.cpp . Dumped internal ROM for Gone Fishing (V602US), Haunted House (IGS, V109US), Jungle King 2004 (V101US), Krazy Keno (V105US) and Royal 5+ / X'mas 5 (V101US). . Improved I/O for 'Royal 5+ / X'mas 5 (V101US)' and Gone Fishing (V602US). Promoted 'Royal 5+ / X'mas 5 (V101US)' to working. . Improved inputs for Jungle King 2004. Correct inputs, use Triple Fever artwork an hooked up sound banking for Haunted House. Correct button inputs and DIP switches for Krazy Keno. Added internal artwork for Krazy Keno and Jungle King 2004. Promoted Haunted House (IGS, V101US), Haunted House (IGS, V107US) and Haunted House (IGS, V109US) and Jungle King 2004 (V101US) to working. . Fixed ADPCM ROM banking for Haunted House and Krazy Keno. Got rid of some stuff carried over from igs_m027.cpp that no games on this platform seem to use (igs\igs_m027xa.cpp). - igs017.cpp, igs_m027.cpp, igs_m027_033vid.cpp, igs_m027_link.cpp and igs_m027xa.cpp: Boost OKI MSM6295 ADPCM sound volume from half to full - itech8.cpp . Let's mark 'Golden Par Golf' as MACHINE_NOT_WORKING due to lockups in attract mode . Removed DEFAULT_RANDOM NVRAM from gpgolf and capbowl. Changed capbowl NVRAM init from all_0 to all_1 (though bowlrama expects all_0). - jclub2.cpp: Emulated switch matrix properly. Reduced tag lookups and literal tags. Use templates and arrays to reduce duplication. Use util::sext for sign extension. Suppress side effects for debugger reads, use logmacro.h for configurable logging. - legionna.cpp: Fixed naming - micro3d.cpp: Copy old value of MR1 to MR2 when MR1 is written (machine\scn_pci.cpp) - model2.cpp . Only trigger interrupts if the input changes to the asserted state (i960\i960.cpp). Drop interrupts on reset (i960 IRQ) . Correct TGP math lookup table logic, fixes wrong in-game physics in Virtua Cop 2 (ID 09265). Also removed wait state when writing to copro FIFO, no longer needed. . Use separate memory spaces for data A and external. Fixes enemy car collision detection in stcc. Added EBU to address for extended A bus accesses (mb86235\mb86235.cpp). Added 16:9 support to stcc (layout\stcc.lay) . Bilinear luma filtering for SEGA Model 2 textured render path. Bilinear improvements discussed on pull request thread: Code standard. Anti Alpha higlighted edges ala Supermodel. Cleaner bilinear edge cases ala Supermodel. . Unoptimized preliminary support for mipmaps and trilinear filtering: Bilinear luma filtering for SEGA Model 2 textured render path. Bilinear improvements discussed on pull request thread. Code standard. Anti Alpha higlighted edges ala Supermodel. Cleaner bilinear edge cases ala Supermodel (sega\model2_v.cpp, sega\model2rd.ipp). Added dpdy information to extents to be able to compute mipmap lod index per pixel (video\poly.h). Added all mipmap information to m2_poly_extra_data structure (sega\model2.h, sega\model2_v.cpp). Added preliminary unoptimized support for mipmaps and trilinear filtering. Fix to code overflow error in transparent trilinear. Converted render callbacks to C++ member function templates (sega\model2rd.ipp). . Improved interrupt logic: Interrupt control register only returns interrupts actively signalled to the i960; masked interrupts are not returned. Sound IRQs are triggered when either TxRDY or RxRDY from the USART is active (Model 2B manual, section 6.2). Removed model2c_interrupt callback; no evidence that Model 2C behaves any differently to earlier board revisions. Removed vcop issue from TODO list since it no longer occurs (tested) (sega\model2.cpp). . Correctly combine sound USART interrupts. Make sound_ready_w() protected; read status from USART instead of tracking state using member variables. Reduced number of render delegates (sega\model2.cpp). - moo.cpp: Separated original hardware and bootlegs in separate state classes. Modernized sound CPU ROM banking and made region size match ROM size. Reduced run-time tag lookups and literal tags. Cleaned up code. - namcofl.cpp: Implemented interrupt acknowledge and drop interrupts on reset (i960 IRQ) - namcos1.cpp and namcos86.cpp: Moved Namco System 1/System 86 sprite functions into its own device. Corrected sprite RAM size. Made ROM region names more descriptive for namcos1.cpp. - namcos21.cpp: Correct DSP clock frequency. There's a 40 MHz oscillator beside the DSP on the DSP board, as documented in NamcoSystem21 driver (namco\namcos21_dsp.cpp). - namcos22.cpp: Fixed portability issues in round_coordinate. Fixes severe graphical glitches in Namco System 22 games like Ridge Racer on ARM systems (video\poly.h) (ID 09276). - namcos23.cpp: Renderer optimizations, 5-10% perf increase on Panic Park. - nmk16.cpp: Fixed palette format for 'Acrobat Mission' and 'Koutetsu Yousai Strahl' and use input merger for Stagger I sound IRQ. Fixes color fading for 'Acrobat Mission' and 'Koutetsu Yousai Strahl' and their clones. - nmkmedal.cpp: Correct title for pllovegene and added reference video - nss.cpp, sfcbox.cpp, snesb.cpp and snesb51.cpp . Fixed status flag display in emulation mode. In emulation mode, "MX" are " B". Both bits are always 1, only the semantic meaning changes: " " doesn't exist, and "B" is only meaningful when pushed during an IRQ/NMI, to distinguish from BRK (g65816\g65816.cpp). . Fixed IRQ to be level triggered. Followup b3f2535: stop clearing LINE_IRQ when jumping to the IRQ vector. Properly written IRQ handlers won't notice any difference, but this fixes the behavior for software which (possibly intentionally) fails to clear an IRQ source; in that case the IRQ should continue to trigger (probably leading to a system hang). LINE_SO is generally not hooked up, but if it is, it doesn't raise IRQ. Also delete unused G65816_INT_* macros (g65816\g65816.cpp). - pgm3.cpp: Bootstrap first decrypted block from internal Flash - pluto6.cpp: Replaced 'Serial VFD Device' with msc1937_device (video\roc10937.cpp). Re-added commented out systems. - polepos.cpp: Split driver classes according to hardware configurations and cleaned up code. Suppress side effects for debugger reads, reduced literal tags and run-time tag lookups. Use address maps rather than installing handlers at initialization time. Made ROM region tags more descriptive. Use logmacro.h helpers. - psikyo.cpp: Split driver classes for different hardware configurations. Reduced use of literal tags and improved ROM region tags. Suppress side effects for debugger reads. Cleaned up input port definitions. - r2dx_v33.cpp: Minor cleanups: Split driver state class for different hardware configurations. Fixed save state support. Fixed bank switching on reset. More cold (seibu\r2dx_v33.cpp). Moved partial_carry_sum to a separate file to reduce dependencies. #include guards (seibu\seibu_helper.cpp). Allow variable ROM region and size in sprite ROM decryption functions (seibu\r2crypt.cpp). Added #include guards (seibu\r2crypt.h). - raiden2.cpp: Minor cleanups: Simplified bank switching and fixed bank switching on reset. Fixed save state support. Use generic graphics decoding layouts. Cleaned up CPU ROM loading. Don't let logging code rot if disabled (seibu\raiden2.cpp). Moved partial_carry_sum to a separate file to reduce dependencies. #include guards (seibu\seibu_helper.cpp). Allow variable ROM region and size in sprite ROM decryption functions (seibu\r2crypt.cpp). Added #include guards (seibu\r2crypt.h). - segas32.cpp: Clean up sega\segas32_v.cpp - segasp.cpp: Dumped PIC keys for clone Yataimura Kingyosukui (4-player, China, Ver 1.000) and Saikyou Saisoku Battle Racer - seibucats.cpp: Fixed crash when reading inputs. Use memory share creators and supply RAM sizes at construction. - seibuspi.cpp . Fixed formatting (seibu\seibuspi_m.cpp and seibu\seibuspi_v.cpp) . Split driver state class for different hardware configurations: Suppress side effects for debugger reads. Restrict tilemap drawing to clipping rectangle. Use BIT helper for extracting single bits. Reduced duplication, literal tags and preprocessor defines. Fixed namings. Use memory share creators and supply RAM sizes at construction (seibu\seibuspi.cpp). . Use names less likely to cause conflicts for free functions (seibu\seibu_helper.cpp). Added #include guards (seibu\seibuspi_m.h). - seta.cpp: Changed jockeyc and setaroul NVRAM init from random to all_0 - slapfght.cpp: Split driver classes for different hardware configurations. Suppress side effects for debugger reads and improved save state support. Reduced literal tags, run-time tag lookups, duplication and cleaned up code. - splash.cpp: Moved roldfrog to a separate driver state class and cleaned up code: Use machine_start() and machine_reset() overrides for machine start/reset functions. Cleaned up bitmap drawing functions. Suppress side effects for debugger reads. Reduced run-time tag lookups, literal tags and duplication. - stella8085.cpp: Clean up driver (adp\stella8085.cpp, machine\i8256.cpp/h and layout\disc2000.lay) - stv.cpp: Register variables to save states (sega\stvcd.cpp) - y2.cpp: Added motherboard ROM for System Board Y2 - Amiga (alg.cpp, arsystems.cpp, cubo.cpp, mquake.cpp and upscope.cpp): Revert MAME 0.274 (Refine silence on empty DMA buffers) with rationale (amiga\paula.cpp). - Anpanman CommuTouch: Identified set. Also confirmed dump on a second PCB. - Championship Bowling: Srcclean - Cosmo: Added support for starfield - Crazy Bell: Dumped PROMs - Cue Ball Wizard: Dumped a GAL for clone Cue Ball Wizard (Spanish) - Doko Demo Issho: Dumped BIOS ROMs, confirmed they are the same as gekimaka and pingu. - Dream Chance: Fleshed out the driver a bit. Identified the game as Dream Chance. TODO: IRQs are wrong and just stubbed enough to make it do something. Stops after showing first card. IRQ problem or protection? Some suspect reads with checks.DIPs ports are correct but they don't affect the game / never change in the DIP test screen. Fully recover password (checked from 0x1ce6 on. It starts with 19490817 but where are last two digits checked?). - Fast Draw (poker conversion kit): Fixed Fatal error: wrong-sized NVRAM region (ID 09280) - Future Flash/Laser Base: Correct clocks (music pitch and speed) - Geki Makaimura: Dumped CF card - Gradius III: Implemented device_post_load for post-load tasks. Fixed sound routing and cleaned up code. PCB has mono output and only one YM2151 channel is connected (fixes background music balance). Use logmacro.h helpers for optional logging and use BIT helper. - Hang-On: Dumped PLS153 on sound and ROM board - Kick and Run: Dumped and verified PALs for clone Mexico 86 (bootleg of Kick and Run, set 1) - Klax: Documented ROM build date shown in the test menu - Knights of Valour 3 HD: Added SOC38 internal ROMs - Konami: Cleaned up code in various Konami devices and systems. Use explicitly sized integers for things that need to be registered for save states. Use references rather than pointers for output parameters of callbacks. Use standard or abbreviated integer types consistently. Improved some member names and fixed formatting (88games.cpp, ajax.cpp, aliens.cpp, asterix.cpp, bishi.cpp, blockhl.cpp, bottom9.cpp, chqflag.cpp, crimfght.cpp, dbz.cpp, divebomb.cpp, giclassic.cpp, gijoe.cpp, gradius3.cpp, konamigx.cpp/h, konamigx_m.cpp, konamigx_v.cpp, konmedal.cpp, lethal.cpp, mainevt.cpp, moo.cpp, mystwarr.h, mystwarr_v.cpp, overdriv.cpp, parodius.cpp, piratesh.cpp, qdrmfgp.cpp, quickpick5.cpp, rollerg.cpp, rungun.cpp, simpsons.cpp, spy.cpp, surpratk.cpp, tail2nos.cpp, thunderx.cpp, tmnt.cpp, tmnt2.cpp, ultraman.cpp, vendetta.cpp, wecleman.h, wecleman_v.cpp, xexex.cpp, xmen.cpp, zr107.cpp, k051960.cpp/h, k052109.cpp/h, k053244_k053245.cpp/h, k053246_k053247_k055673.cpp/h, k054156_k054157_k056832.cpp/h and k051316.cpp/h). - Many Block: Don't apply Macross tilemap offsets to Many Block - Peek-a-Boo!: Dumped the MCU for Peek-a-Boo!. Note: MCU is not hooked up (it's connected differently to other games). - Pirate Ship: Removed commented code from machine configuration (K053246 is paired with K053247 or K055673, so m_k053246 is redundant). - Savage Quest: Convert to new PCI. Stub HASP dongle in a device (centronics\hasp_savquest.cpp). - Shadow Force: Fixed DIP settings based on manual and World and Japan version use only 3 buttons (ID 05557) (ID 09260). - Super 70's: Redumped romset - Super Poker: Added dip-sw settings for Super Poker (v306US) from manual - Turret Tower: Suppress side effects for debugger reads and fixed sound routing. Also reduced literal tags and run-time tag lookups and cleaned up code. - unknown Labeled 'WU- MARY-1A' Music by: SunKiss Chen: Set IP_ACTIVE_HIGH to low. Added P1 input. Will prevent the error 30 except the 0x80 at key2 and 0x40 at P1 and shown error 02 due to hopper not implemented and something. - Yizhi Xiangqi: Improved inputs - Renamed (bingogalo) to (bingogala), (cm2005a) to (cm2005_102u), (cm2005b) to (cm2005_014h), (doraemon) to (doraemonp), (hginga) to (hgingaa), (ufo7) to (ufo7b), (unkbpmed) to (anpanmct) and (unkpara) to (dreamcha) - Dipswitch fixes in ddenlovr.cpp, goldstar.cpp, igs_m027.cpp, igs_m027xa.cpp, laserbas.cpp, lastbank.cpp, shadfrce.cpp and spoker.cpp - Description changes of Anpanman CommuTouch, Bingo Galaxy (MDA-C0039A), Cherry Master (ED-96, Corsica CM v8.01), Crazy Bonus 2002 (Ver. 1, Shanho HW, set 2), Cuty Line (LC-88, ver.1.01), Dream Chance, Hanafuda Hana Ginga (Japan, ver 1.00), Landing High Japan (VER.2.01OK, single monitor), The Love Generation (Power Link), Mega Lines (Wing W-7 System), Pipi & Bibis / Whoopee!! (bootleg, decrypted set 1), Pipi & Bibis / Whoopee!! (bootleg, decrypted set 2), Pipi & Bibis / Whoopee!! (bootleg, encrypted), 'Royal 5+ / X'mas 5 (V101US)', Skill Chance (W-7, set 1, 62-98 main), Skill Chance (W-7, set 2, 53-98 main), Tang Tang (ver. 0526, 26/05/2000, set 1), Turret Tower - The Enemy Has Arrived, UFO Catcher 7 (rev. B) and Wild Cat S (CMV4 hardware) - MAME . VIDEO RENDERING SYSTEM . Polygon rendering: Added dpdy information to extents to be able to compute mipmap lod index per pixel. Fixed portability issues in round_coordinate. Fixes severe graphical glitches in Namco System 22 games on ARM systems (video\poly.h) (ID 09276). . Removed most specialisations of the RGB utilities. Added an ARM NEON bilinear filtering implementation. Increased the intermediate precision of the C++ bilinear filtering implementation. Cleaned up and fully inlined the C++ implementation apart from bilinear filtering. Moved the generic C++ implementation to emu\video\rgbutil.h. Put all bilinear filtering implementations out-of-line in emu\video\rgbutil.cpp. . MEMORY SYSTEM . Fixed debugger's memdump command. Changed memdump to properly report overlapping views (emu\emumem.cpp, emu\emumem_hedr.ipp, emu\emumem_hedw.ipp). . INPUT . Removed the "optional" field flag (emu\ioport.h). There are multiple issues with this flag: It's poorly defined. Is it an input that's software-accessible but not used? Is it an input that shows in test modes but doesn't do anything useful? Is it an input that the system can be configured to not use? Is it an input that is useful but not strictly necessary? In almost a decade, it hasn’t been used widely. It was used in less than ten places. There hasn't been substantial interest in actually applying it across the codebase. It would be an absolute nightmare to try and apply to mahjong and hanafuda games. Consider all the cases where a game may use some but not all of the double-up game controls, and some games support multiple control schemes that use different subsets of the standard mahjong matrix. Trying to apply it to gambling systems would also be a minefield. If we were to expect it to be applied, it would cause an eplosion in input port definitions for platforms with multiple games, adding further maintenance burden. It would greatly reduce the value of having things like the standard mahjong panel definitions as you'd rarely actually be able to use them as-is. . Removed PORT_ROTATED from the core. This automatic joystick remapping feature has not been enabled in any driver for years (emu\inputdev.cpp, emu\ioport.cpp and mame/luaengine_input.cpp). . LUA engine: Allow configuring analog input adjustments from scripts. Export minvalue and maxvalue for IPT_ADJUSTER (mame\luaengine_input.cpp). . 3RDPARTY: Sync AsmJit with upstream version 1.20 from https://github.com/asmjit/asmjit/commit/5134d396bd00c1b63259387acdbb12dfdf009f9b (3rdparty\asmjit). . PLUGINS: Added support for excluding specific games from high-score saving. Implemented functions to save and load exclusion lists and updated menu options to enable/disable high-score support per game (plugins\hiscore\init.lua). . Prevent automatic attempts at loading or creating loose image files with the same names as extant software list items when they fail to load as such. Only allow command line image creation when file is not found and save startup image name for error reporting before trashing it (emu\image.cpp). . Updated Chinese (Simplified) translations. The revision refers to the Windows 11 Chinese Simplified menu buttons and option titles, many places are still not perfect, modify it again and again! (Chinese_Simplified\strings.po). . Doc: Fixed a typo in the documentation for the default values for the 'comm_localport' and 'comm_remoteport' flags: 15122 -> 15112 (docs\source\commandline\commandline-all.rst). - Debugger . Fixed parsing of unary ! operator in debug expressions (debug\express.cpp) . Added support for generating PDB symbols with MinGW Clang and LLD. Also don't disable sibling/tail call optimisation when symbols are enabled. This is hurting our release builds since they're built with symbols. Note: Set PDB_SYMBOLS to 1 to generate CodeView format symbols in separate PDB files, allowing source-level debugging using Microsoft Visual Studio or WinDbg. It can also be used with other tools that can load symbols from PDB files, e.g. the Intel VTune and AMD µProf performance analysis tools. This option is only supported for MinGW builds using the clang compiler and the LLVM linker (lld). This option only takes effect if the **SYMBOLS** option is set to a non-zero value (makefile, scripts\genie.lua, src\main.lua and scripts\toolchain.lua). . Fill q.value was not working (debug\debugcmd.cpp) 0.281 - New games: Ultraman Club - Lucky Numbers, Waku Waku Pajero and Y-Unit Test ROM (v1.40) - New Working games: Allien Attack (Game FBV2, ver.T), Animal House (V1.0, set 1), Animal Wonders (ver A900 66), Animal Wonders (ver A900, bootleg), Bio-Hazard Battle (scrambled bootleg of Mega Drive version), Cherry Bonus III (ver.5.1), Cherry Bonus III (Ziogas V4.1 hack, set 1), Cherry Bonus III (Ziogas V4.1 hack, set 2), Cherry Master (bootleg, Game FB55 Ver.2), Cherry Master (ver.4, set 2), Crazy Bonus 2002 (Ver. 1, dual game), Cuty Line Limited (ver.1.30), F-16 Super 8 Lines, Golden Regular (version 388/2000), Hamburger House, Hamburger House 9, Hard Drivin's Airborne (prototype, rev 2.7), Joker Master 2000 Special Edition (V512/513), Joker Master 2000 Special Edition (V515), Lucky Line III (ver 2.00, Wang QL-1 v3.03, set 1), Poker Master (ED-1993, dual game, set 1), Poker Master (ED-1993, dual game, set 2), Si Se 7, Super 97-2 (Witch Bonus), Super Real Magic (V6.3) and Win Cherry (ver 0.16 - 19990219) - New Non-Working games: Bahia, Bare Knuckle III (Conny bootleg of Mega Drive version), Big Jackpot, Bullet Mark, Burning Rubber (Amcoe), Contra (Conny bootleg of Mega Drive version), Criterium 75, Disc, Disc Bonus, Disc Jackpot, Doppelstart, 'Gunstar Heroes / Snake Rattle n' Roll / Joe & Mac (Conny bootleg of Mega Drive versions)', Hou Ye Leyuan (S103CN), Joker Poker (Merkur), Jumbo Jumbo Fun, Love Generation (Power Link), Macao, Premium Double Eight (V5.3FA), Rasant, Sanguo Lieche (880103 1.6 CHINA) and Side Pocket (Conny bootleg of Mega Drive version) - New clones: All American Football (Tecmo, Japan), Asteroids 1981 (Tetris + Cherry Master with space graphics), Battle Shark (US, older), Blue Hawk (Japan, NTC license, set 2), Cherry Bonus III (Micronic v1.2, hack), Cherry Bonus III (Reel Magic 7 bonus, set 1), Cherry Bonus III (Reel Magic 7 bonus, set 2), Cherry Master I (ver.1.01, Spanish, CODERE, set 1), Cherry Master I (ver.1.01, Spanish, CODERE, set 2), Cherry Master I (ver.1.01, Spanish, CODERE, set 3), Cherry Master I (ver.1.01, Spanish, Dyna), Florida Skill Deluxe 2K (FBV2 ver.T), Florida Skill Deluxe 99 (FBV2 ver.T), Hacha Mecha Fighter (bootleg with Raiden sounds), Joker Master 2000 Special Edition (V512), Jumbo Jumbo, King Fruit (VZ 1.04), Lonestar Roundup (set 1), Lonestar Roundup (set 2), Looping (US, set 3), Lucky Line III (ver 2.00, Wang QL-1 v3.03, set 2, Macedonia), Lucky Line III (ver 2.00, Wang QL-1 v3.03, set 3), Lucky Line III (ver 2.00, Wang QL-1 v3.03, set 4), Lucky Line III (ver 2.00, Wang QL-1 v3.03, set 5), Lucky Line III (ver 2.00, Wang QL-1 v3.03, set 6), Lucky Line III (ver 2.00, Wang QL-1 v3.03, set 7), Miss Bingo (Crazy Bonus DB, dual game), Miss Bingo (Poker Master HW, dual game), Monster Maulers (ver UAA), New Lucky 8 Lines (set 19, W-4), New Lucky 8 Lines (set 20, W-4, 58%), Pack System (Game FB55 ver.2, encrypted), Skill Master (ver.fst v3.0), Skill Master (ver.fst v5.0), Space King Part II (Space Invaders II bootleg), Super Reel Magic (ver.6.3.0, set 1), Super Reel Magic (ver.6.3.0, set 2), Super Spacefortress Macross / Chou-Jikuu Yousai Macross (bootleg with Raiden sounds), Tetris + Cherry Master (unencrypted bootleg, set 1) and Tetris + Cherry Master (unencrypted bootleg, set 2) - Removed games: 'UFO Catcher 7 Second' - New drivers: amcoe_au1250.cpp, banpresto_bpsc68000.cpp and criter75.cpp - New devices: 5080pa, amgda, intel_8256, konami_twin16_video, mb8795, pcat512me, spi_sdcard, sst_39sf020, ubpnic, zxbus, zxbus_adapter, zxbus_nemoide, zxbus_neogs, zxbus_slot and zxbus_smuc - New Clrmame: https://mamedev.emulab.it/clrmamepro/#downloads - Bob Zed (What's new): https://youtu.be/w3mQpczk9eQ - CPU . ARM7: Removed the recompiler that had never been completed (arm7\arm7.cpp) . Dynamic Re-Compiling . drcbec: Improved behaviour for float-to-int conversion. Apply floating point rounding mode to arithmetic (cpu\drcbec.cpp). . drcbex86: i686 has no red zone (cpu\drcbex86.cpp) . drcbex64 . Slightly optimised flag calculation for some variants of the multiply instructions (cpu\drcbex64.cpp). . Fixed some cases where GETFLGS would produce incorrect results when the destination is not a UML register permanently assigned to a host register (cpu\drcbex64.cpp). . drcbearm64 . Added missing source load for optimised ROLINS case. Fixes bad ROLINS results in some cases where the result is in memory. Hopefully fixes Hyperstone E1 systems corrupting SR on absolute jumps (e.g. kdynastg failing to boot) (cpu\drcbearm64.cpp). . Optimised shift and rotate operations. Don't calculate carry flag when not requested. Don't calculate zero and sign flags when only carry is requested. Avoid branches when calculating carry, optimise for non-zero shift. Improved strategy for selecting working registers (cpu\drcbearm64.cpp). . Implemented float-to-int conversion using rounding mode. Also optimised code generation for UML ROL (rotate left) and slightly optimised carry flag calculation for left shift (save one instruction) (cpu\drcbearm64.cpp). . Added NEON vector register assignments to the header comment (cpu\drcbearm64.cpp). . Fixed some cases of 32-bit operations not clearing the upper bits of a UML register (there are still a few remaining). Optimised unordered flag test - only the V bit needs to be tested. Fixed rounding mode dispatch for FTOINT (cpu\drcbearm64.cpp). . Apply floating point rounding mode to arithmetic (cpu\drcbearm64.cpp). . Improved code generation a bit: Avoid unnecessary operand loads for add/subtract operations where both sources are identical. Improved code generation for rotate through carry with immediate shift count and/or immediate zero source (cpu\drcbearm64.cpp). . Improved emulated memory access code. Generate optimised code for reads narrower than native width. Mask returned value to access size - the upper bits may not be cleared (fixes Hyperstone E1 misbehaving on Windows arm64). Don't save emulated flags across CALLC - flags are clobbered anyway (cpu\drcbearm64.cpp). . A few more optimisations: Avoid some unnecessary register copies for the displacement in LOAD/STORE when the scale is 1. Avoid unnecessary register copies for ROLAND when the source is a UML register kept in a host register. Avoid an unnecessary register copy for ROLINS when inserting a left-aligned field (cpu\drcbearm64.cpp). . UML . Added a couple of simplification rules. ADDC's inputs are commutative and TEST with an immediate zero operand effectively ignores the other operand. Got rid of a redundant assignment (cpu\uml.cpp). . Added simplification rules for FFRINT and FFRFLT (cpu\uml.cpp). Added a simplification rule for pathological cases of SEXT (cpu\uml.cpp). Added some simplification rules for multiply and divide (cpu\uml.cpp). . Fixed potential assertion failure when a degenerate rotate through carry is converted to a move (cpu\uml.cpp). . drcumlsh . Removed helpers for generating the unimplemented JMPH instrcution. Trying to use it would cause a compile error (cpu\drcumlsh.h). . Use "src" rather than "src1" if there's only one source operand (cpu\drcumlsh.h). . Doc . Documented the most common DRC UML integer arithmetic and logical instructions. Documented some UML floating point arithmetic instructions. Also replaced mathematical symbols for Boolean algebra with less desirable C operators as they were upsetting pdflatex (docs\source\techspecs\uml_instructions.rst). . Documented more DRC UML floating point instructions (docs\source\techspecs\uml_instructions.rst). Documented several DRC UML shift/rotate instructions (docs\source\techspecs\uml_instructions.rst). Documented the DRC UML SEXT instruction (docs\source\techspecs\uml_instructions.rst). Documented the DRC UML integer multiplication and division instructions (docs\source\techspecs\uml_instructions.rst). . Documented DRC UML rotate through carry instructions (docs\source\techspecs\uml_instructions.rst). - SOUND . Konami 053260 KDSC: Added TODO about reverse-engineered pan LUT. The pan LUT is mentioned in the reverse-engineered based on work by Furrtek: https://github.com/furrtek/SiliconRE/blob/master/Konami/053260/k053260_schematics.PDF . Sega 315-5313 Megadrive VDP: Acknowledge irqs only if enabled. Fixes regressions with (MESS) chukrck2 & d_titov2. Delay VINT regular triggers. Fixes (MESS) mazinsagj hang regression (video\315_5313.cpp/h, hash\megadriv.xml). . SN76496: m_sega_style_psg was wrong way around. Fixed recent regression with initial period. Fixes megatech.cpp games have a loud noise in one of the sound outputs (ID 09258). Whitespace cleanup. 'ready state' variable was missing from savestates. Initial volume is 0xf on Sega PSG. No need to savestate volume table. Only write ready pin devcb if ready pin changed, no need for in_noise_mode function and added pinout diagram to h file (sound\sn76496.cpp). . Yamaha YMF271 OPX: Update stream before reading status registers and fixed a performance regression (sound\ymf271.cpp). Note: Performance regression was from MAME 0.195 (Allow 4 channel output...). It was clearing the complete mix buffer at each stream_update, instead of only clearing amount of samples, making seibuspi driver boot-up sequence about 2.5 times slower. - DEVICE . Flash ROM: Added SST_39SF020 and fixed sector size for SST_39SF0*0 (machine\intelfsh.cpp) . Floppy/PC Harddisk . Allow images loaded from software lists to be write protected (imagedev\floppy.cpp). Set m_mon to 1 (motor off) in constructor (imagedev\floppy.cpp). Fixes (MESS) mtu130 crashes MAME, if you try to load a software-list item that is missing (ID 09005). Fixes (MESS) LSI m3 crashes when attempt to use missing disk (ID 09255). . Basic fix for pc_chd support in imgtool. Take ownership of stream in pc_chd_image_open. 'imgtool::image::internal_open' passes an rvalue reference to the stream to the 'open' function of the image format module. It expects the 'open' function to take ownership if it keeps a reference to the stream. If 'open' does not do so, the 'stream' is going to be destroyed at the end of 'internal_open'. 'pc_chd_image_open' fails to take ownership, yet it persists a reference to the stream as part of 'info->hard_disk'. This causes an use-after-free condition. Correct determination of total sectors of a FAT volume. The number of total sectors of a FAT volume is stored either in the 16-bit word at offset 19 or, if that word is zero, in the 32-bit word at offset 32 instead. The 32-bit word is not a high word to build a 48-bit value in conjunction with the 16-bit word at offset 19, but it supersedes it (modules\fat.cpp and imgtool\modules\pc_hard.cpp). . Correct recalibrate steps for Intel N82077 FDC. As documented in the datasheet it should be 80 for this FDC (machine\upd765.cpp). Recognize more file types (formats\fs_prodos.cpp). . Added a default implementation for 'supports_save'. Since the default implementation of 'save' is a stub that always fails, it makes sense to also add a default implementation of 'supports_save' that returns 'false'. That way, there's one fewer method that needs to be implemented for read-only image formats. Removed the now-redundant implementations in concrete format classes (formats\flopimg.cpp). . I2C Memory: Fixed (MESS) later Acclaim sport games fails I2C checks during POST (sega\megadriv.cpp) (GitHub #13998) . Intel 8251 USART: Don't do binary math on bool. Removed unneeded calc_parity function (machine\i8251.cpp). . Intel 8256AH Multifunction microprocessor support controller: Added Intel 8256 MUART. Don't do binary math on bool. Removed unneeded calc_parity function. Small cleanup (machine\i8256.cpp). . Konami 001006 Texel Unit: Fixed save state support. Added save state registration and fixed initialization for bilinear flag. Use fixed sized integer for device selection (konami\k001006.cpp). . Konami 007121 Video Controller: Use callback for sprite color bank/code bank and moved global x offset into configuration. Renamed set_spr_dx to set_sprite_offsets similar to how these displacement functions are named on other konami chip devices (konami\k007121.cpp). . Konami 053936 PSAC2 tilemap generator: Reduced duplication and added notes about emulation deficiencies. Updated notes based on reverse-engineering by Furrtek. Also cleaned up code (video\k053936.cpp). . Konami 056832 Tilemap Generator: Removed duplicate function . MagicEyes VRender0: Updates and cleanups (machine\vrender0.cpp) . MOS 6522 VIA: Changed timer1 count=0 change from MAME 0.277 to only when in continuous mode (machine\6522via.cpp). Fixes several Vectrex games hang MAME (ID 09249). . National Semiconductor INS8250/NS16xxx UART: Avoid setting data frame when bit encoding doesn't change (machine\ins8250.cpp) . SNK68 Sprites: Added flipscreen variable to savestates (other vars are configuration) (shared\snk68_spr.cpp) . Zilog Z80 DMA Controller: Clear BUSRQ line upon device reset to prevent CPU from freezing after a soft reset (machine\z80dma.cpp) - 3x3puzzl.cpp: Moved videoram DMA out of screen_update - alpha68k_n.cpp: Small cleanup to gamelist spacing. Only enable transparent color to Super Stingray. Fixes also kyros and kyrosj seems to have two graphical problems on the last level of the game (stage 5) (ID 01148). - amusco.cpp: Fixed colors - coinmstr.cpp: Small cleanup - crystal.cpp: Tidied up driver a little. Added lamp outputs used by Office Yeoin Cheonha and Urachacha Mudaeri and fixed button order/names for Urachacha Mudaeri. - ddenlovr.cpp . Fully separate emulation from Dynax driver (dynax\hanafuda.cpp). Eliminated the intermediate bitmap from Hanafuda Hana Tengoku (Japan). . Added DIP switch locations for Super Hana Paradise. Improved DIP switch labels for Hanafuda Hana Gokou. Fixed DIP switch labels and added locations for Mahjong Dai Touyouken and Return Of Sel Jan II. . Credit limit should be multiplied by coin rate for Hanafuda Hana Gokou, Mahjong Dai Touyouken and Return of Sel Jan II. - ddenlovr.cpp, dynax.cpp and royalmah.cpp: Improved DIP switch labels for non-working mahjong games based on manuals (dynax\mjdipsw.h) - decocass.cpp: Small cleanup. Removed coin NMI and watchdog from screen_update. Correct watchdog enable and hook up flip screen and removed some tag lookups. - djmain.cpp: Increased screen width. Removed tag lookups. Added more LED outputs and README. Enable MACHINE_SUPPORTS_SAVE flag. Use generic gfx decode layout. Use std::swap for swap layer. Make some variables constant. Fixed namings. Added notes. - dynax.cpp: Upgrade some optional devices to required devices (dynax\dynax.h) - es9501.cpp . Started fleshing out the driver. Added preliminary sprite drawing routine (disabled for now). Enabled sprites so they can be checked more easily. Hookup irq source/mask, added missing layer and fixed palette reads. Minor maintenance work (shorthand variable types everywhere, save state support and comment updates). . Handcrafted EEPROM for Star Ball. Added inputs for Special Dream 9 and Star Ball. Fixed 'Dream 9 Flower' irq regression. . Hooked up hopper, counters, identified some video regs and added sprite priority. Special Dream 9 and Star Ball could possibly be considered working. - f1gp.cpp, gstriker.cpp and tail2nos.cpp: Hook up RS232 to F-1 Grand Prix, Grand Striker and Tail to Nose. - fortune1.cpp: Clean up some of the rot - fromance.cpp and fromanc2.cpp: Use standard mahjong matrix - goldstar.cpp . Driver improvements. Fixed/improved hopper support to the recently supported games/sets. Added new functions to the PPI 8255 to allow hook the hopper. Changed some default DIP switches to get the hopper limit high. Correct notes. Some minor clean-ups. Works on extra lamps support. Some inputs fixes. Fixed missing EoF. Added technical and games notes, minor clean-ups. Changed DIP switches banks #1 & #2 polarity to cherry master sets. A lot of work on memory map, registers and inputs. . Rearranged inputs and created machine drivers for the A900/animalw series. Fixed the horrible noise on the animalw, animalwbl and lucky8t due to use of AY8910 instead of SN76489. . Added hopper support to alienatt, animalhs, animalhsa, animalw, animalwbl, cb3, cb3a, cb3b, cb3c, cb3d, cb3e, cb3f, cb3g, cb3h, cb3s51, chryglda, chthree, cmaster, cmasterb, cmasterbv, cmasterc, cmasterd, cmastere, cmasterf, cmasterg, cmasterh, cmasteri, cmasterj, cmasterk, cmasterl, cmezspin, cmezspina, cmezspinb, cmfun, cmv4, cmv4a, cmv4zg, cmv4zga, cmv801, cmwm, crazybon, crazybonb, cutyline, cutylinea, cutylineb, goldstar, f16s8l, goldstbl, hamhouse9, jkrmast, jkrmasta, luckylad, magodds, magoddsa, magoddsb, match98, moonlght, moonlghta, moonlghtb, moonlghtc, nc96 (+clones), ncb3, nfb96 (+clones), pkrmast, pkrmasta, pokonl97, schery97, schery97a, skill98, super972 and wcherry. . Added hopper support to machines amcoe1 (+amcoe1a), amcoe2 (+nfm (+amaztsk)) and wcat3 . Improved the lucky 8 lines 1P control panel. Assigned 1P control panel for clones f16s8l and super972. Added stop buttons to clones lucky8b and lucky8l. Fixed Lucky 8 Lines reel misalignment in Double-Up mode. The viewport is now focused on the active reels tilemap and the inactive ones are hidden. . Added hopper support to chryangl set. Forced DSW to Hopper Limit 1000. Decoded the bipolar PROMs, fixed planes and get correct colors for the games Cherry Angel (set 1) and Cherry Angel (set 2). . jkrmast improvements: Added hopper support. Inputs and DIP switches. Decoded the bipolar PROM and fixed colors. Added reels stop buttons. Fixed title tilemap/scroll bug and DIP switches. Reworked the screen update to take rid of the boolean states toward a real video register for Joker Master. Removed the imperfect graphics and imperfect colors flags to all the Joker Master sets. . pkrmast improvements: Added hopper support. Added/Fixed outports. Reworked Inputs. Reworked and fixed DIP switches banks. Added defaults to the DIP switches. Added sound support. Fixed missing ports. Reworked I/O portmap. Decoded the bipolar PROMS. Fixed colors and coinage. Added 2x PPI 8255 support and eliminating the individual ports. Added reels stop buttons. . Fixed cmv4 hopper DIP switches polarity. Added Animal House button-lamps control panel. Added remaining lucky8t (A900) DIP switches. Fixed nfb96 DIP switches polarity. . Fixed maincpu memory region size and added stop buttons for star100. Fixed a couple of DIP switch setting labels for hgly. . Eliminated ALL the init hacks to unscramble and manipulate the Poker Master and derivatives bipolar PROMs to get proper colors. Implemented the PLDs transformations directly in the video hardware to decode on the fly the color codes. . Added RAMDAC support for Crazy Bonus machine. Removed the "loaned" unnecessary bipolar PROMs from the Crazy Bonus sets. Perfect colors for pkrmast, pkrmasta, crazybon, crazybona, jkrmast and jokermasta sets. . Documented the Poker Master's Chance Bonus behaviour/usage. Added workaround to bypass the complex crazybonb and missbingoc protection. These two are running in a daughterboard with 4 PLDs and do some writes and reads to ports to get proper pointers to NVRAM and take from there some temp values that will be computed to create the code jumps offsets. Fixed the crazybonb and missbingoc color scheme, getting correct colors. Fixed super9, super9a and superdrg crashes. Removed the "loaned" unnecessary bipolar PROMs from crazybonb. Placed crazybon and crazybona with stealth games and crazybonb and missbingoc with dual games. . Fixed Joker Master sets DIP switches and cmv4zg/cmv4zga reels bitplanes order . Super Nove improvements: Analyzed all ports and made raw inputs from the scratch. Also created the missing portmap and hooked the also missing DIP switch #5. Now all match the port test mode. Added Double Up rate DIP switch. Added some basic inputs. Fixed some inputs and added OKI samples sound system. Added workaround to map the internal palette. Fixed colors. Improved inputs. Added hopper line and hopper detection. Fixed the screen size to show the missing bottom 16 pixels. Fixed protection #4 to allow the game discount credits when play. Promoted Golden Regular (version 388/2000) to working. . Cherry Bonus III (Ziogas V4.1 hack, set 1/2) improvements: Defeated protection. Added default NVRAM with signature and harcoded values. . Win Cherry improvements: Added hopper support. Fixed 3rd reel offset in memory map, splitted proper inputs, added needed RAM at 0xc000-0xc7ff and made a temporary workaround to make the game playable. Also added 2 more skill sets. Added a lot of work toward get Win Cherry working properly. Muted the unused SN76489 for Win Cherry to avoid noise. Changed Win Cherry manufacturer to Videostar. Promoted Win Cherry to working. . Fixed the physical DIP switches banks for goldstar, goldstbl, moonlght, moonlghta, moonlghtb and moonlghtc. Renamed some roms to the MAME standards. Fixed more DIP switches polarities. . Fixed Hamburger House dump and colors. Verified hopper working. Promoted Hamburger House and Hamburger House 9 to working. . ncb3 fixes: Changed memory map 0xc000-0xc7ff into RAM. NOP'ed unknown I/O Ports. Changed Hopper Limit settings. Defaut to "Unlimited". Polarity Change for DSW2: 4, 5, 6, 7, 8. Hopper Verified on: ncb3, cb3, cb3b, cb3d, cb3g, cb3h and cb3s51. Promoted clone Cherry Bonus III (ver.5.1) to working. . Reworked inputs base for cmaster and cmv4 systems to use MAME standards, match the real 6-buttons Cherry Master control panel and arranged new buttons-lamps layouts accordingly. Fixed polarity to avoid differences with derivative system inputs. Created group of games that have internal settings on-screen, instead of DIP switches and created new inputs for them. Added workaround for a couple of hardcoded signatures needed for Allien Attack to work properly and changed inputs + control panel layout. Promoted Allien Attack (Game FBV2, ver.T) and Cherry Master (ver.4, set 2) to working. . Lucky Line III improvements: Added workaround to defeat initial protection. Bypassed the port 10h protection (disabling video). Created new memory map. Created new machine config. Created new inputs from the scratch. Reverted the port 10h protection hack. Hooked the port 10h to the video register and arranged the system to use it instead of hardcoded values. Reworked part of the inputs, getting the missing stop buttons working properly. Promoted Lucky Line III (ver 2.00, Wang QL-1 v3.03, set 1) to working. Promoted Lucky Line III (ver 2.00, Wang QL-1 v3.03, set 1) to working. . Fixed inputs for clone Cherry Master (bootleg, Game FB55 Ver.2). Promoted Cherry Master (bootleg, Game FB55 Ver.2) to working. . Different fixes and new ports, hopper line work and inputs corrections for Cherry Master '91 machine. Added control panel/buttons-lamps layout to Cuty Line Limited (ver.1.30). Promoted Cuty Line Limited (ver.1.30) to working. . Promoted alienatt, animalhs, animalw, animalwbl, cb3s51, cll, cmfb55, cmv4a, cmv4zg, cmv4zga, crazybonb, f16s8l, gregular, hamhouse, hamhouse9, jkrmast, jkrmasta, ll3, pkrmast, pkrmasta, srmagic, super972 and wcherry to working. - gticlub.cpp, hornet.cpp and nwk-tr.cpp: Correct sound irq frequency. Fixes music tempo too slow compare to real hardware in NBA Play By Play and clones (ID 09240). - harddriv.cpp . Correct user4 rom loading in Hard Drivin's Airborne (prototype, rev 2.7). Promoted game to working. . Added PORT_MINMAX to brake pedal for clone Race Drivin' (compact, rev 5). Fixed clone Race Drivin' Panorama (prototype, rev 2.1) audio ROM duplicate SHA1. - hnayayoi.cpp: Cleanup driver - hng64.cpp: Rewritten L7A1045 L6028 DSP-A: Correct looping and single-shot sample support. Pitch and volume parameters hooked up. Volume envelope hooked up. Per-voice low-pass filter hooked up. Filter envelope hooked up. Voice parameter readbacks corrected (sound\l7a1045_l6028_dsp_a.cpp). - igs009.cpp: Added hopper device - igs011.cpp: Labeled DIP switches not shown in test mode based on manual - konamigq.cpp: Zerofill class variables - metro.cpp: Added setting descriptions from manual in comments - namcos23.cpp: Added Angler King and Race On! controls. Treat spinny things as a dial rather than half a mouse (aking and downhill). - pipedrm.cpp . Correct default 'Lives' dipswitch in Pipe Dream . Inverted dipswitch orientation in Hatris - quizdna.cpp: Small cleanup. Avoid splitting handlers on dup-ing, avoiding tons of extra allocations (emu\emumem_hedr.ipp and emumem_hedw.ipp). Fixes MAME crashes with "Caught unhandled St9bad_alloc exception: std::bad_alloc" message in all quizdna.cpp sets (ID 09251). - royalmah.cpp: Labelled DIP switches for Mahjong Cafe Paradise based on manual. Fixed DIP switch labels for Almond Pinky and Mahjong Cafe Break. Improved DIP switch labels for Ichi Ban Jyan amd Mahjong Vegas. - segas32.cpp: Fixed text flip and NBG0 - NBG3 layer flip (sega\segas32_v.cpp) - stella8085.cpp: Added lamps, layout and 5 more games (Bahia, Disc, Doppelstart, Macao and Rasant). - stellafr.cpp: Added 6 more games (Big Jackpot, Disc Bonus, Disc Jackpot, Joker Poker (Merkur), Jumbo Jumbo and Jumbo Jumbo Fun) - subsino2.cpp: Identified the odds rate setting for Bishou Jan - tmnt2.cpp: Split driver state class for different hardware configurations. Improved saved state support and reduced run-time tag lookups. Check for disabled side effects before displaying messages in read handlers. Use BIT helper for testing bits, avoid legacy start function override mechanism. Improved member names and ROM region names. - twin16.cpp: Encapsulated Konami Twin 16 video subsystem as a device. Slightly optimised sprite drawing. Use logmacro.h for configurable logging function. Usetemplates to replace memset and memcpy. Reduced duplication, made more local variables const, use more appropriate integer variable types (konami\twin16_v.h). Cleaned up code and updated comments (konami\twin16.cpp). - AGEMAME . Fixed fatalerror on sound routing (barcrest\mpu4_oki_sampled_sound.cpp and barcrest\mpu4.cpp) . Removed invert flag from 7seg element and added inverted 7seg outputs to mpu4 (the only driver that used this flag) (emu\rendlay.cpp and barcrest\mpu4.cpp) - Bio-Hazard Battle (scrambled bootleg of Mega Drive version): Promoted game to working - California Speed: Dumped alternate PIC - Classic Edition: Redumped OKI rom for Classic Edition and clones - The Combatribes: Mark button 3 as optional. Game use only 2 buttons (ID 09261). - Commando: Hook up manual sprite DMA trigger - Dynamic Shoot Kyousou: Fixed DIP switch labels - El Circulo: Added preliminary LED outputs and internal layout (layout\elcirculo.lay) - Funny Land de Luxe: Added default NVRAM content for Funny Land de Luxe. Documented interleave. - Gone Fishing 2: Dumped internal ROM - Gyruss: Changed joystick from 2*2way to 8way - Huanle Dou Dizhu: Added decryption table (igs\igs_m036.cpp) - Konami's Ping-Pong: Correct sound freq, removed joystick (game has 4 buttons) and added brief PCB notes. - Landing High Japan: Landing High Japan (VER.2.01OK) doesn't use the sub monitor, clone Landing High Japan (VER.2.02O) does. - Mahjong Natsu Monogatari: Improved DIP switch labels - Mawasunda!!: Don't use device_start to init driver - Meijinsen: Verified clone Meijinsen (set 2) dump - Operation Thunderbolt: Restored stereo sound. Operation Thunderbolt's switch to mono speakers in MAME 0.197 was based on incorrect information. - PinMAME: Dumped PICs for 'Red and Ted's Road Show' and 'The Shadow' and clones (pinball\wpc_s.cpp) - Quiz Panicuru Fantasy: Identified coinage-related DIPs for 'Medal Quiz Panicuru Roulette' - Shadow Warriors: Dumped bigger tile mask ROMs for Shadow Warriors. Measured clock for clone Master Ninja (bootleg of Shadow Warriors / Ninja Gaiden) - Si Se 7: Driver improvements. Redumped the program ROM. Reworked inputs to cover the game requeriments. Added its own memory map and machine config. Added support for OKI6295 sound samples system. Removed the inexistent UM3567/YM2413 device. Removed the no sound flag and confirmed OKI 6295 pin 7 connected to GND. Promoted game to working. - Skins Game: Dumped PIC - Teraburst: Verified Teraburst boards don't have the X76F041 populated - unknown 1980 poker game: Replaced custom draw function with mame tilemap - Video 21: Replaced custom draw function with MAME tilemap and added section headers to source - Yizhi Xiangqi: Hookup RAMDACs and CRTC. Fixed RAMDAC colors and hookup category for BG layer. Background layer is actually 7bpp. Fixed remaining color issues. Added preliminary inputs, hopper and copyright holder. Hookup audio ROM banking. - Fixed rom names in igs_m027.cpp - Description changes of All American Football (Leland, rev B), All American Football (Leland, rev C), All American Football (Leland, rev D, 2 players), All American Football (Leland, rev E), Allien Attack (Game FBV2, ver.T), Blue Hawk (Japan, NTC license, set 1), Crazy Bonus 2002 (Ver. 1, dual game), Crazy Bonus 2002 (Ver. 1, Shanho HW, set 1), Gone Fishing 2 (ver. 1445A), Gridiron Fight (World), Hard Drivin's Airborne (prototype, rev 2.0), Hard Drivin's Airborne (prototype, rev 2.7), Joker Master 2000 Special Edition (V512/513), Joker Poker (Gottlieb), Landing High Japan (VER.2.01OK, no sub monitor), Long Hu Zhengba Gao Qing Ban (V105CN), Looping (Europe), Looping (US, set 1), Looping (US, set 2), Lucky Line III (ver 2.00, Wang QL-1 v3.03, set 1), Majuu no Ohkoku (Japan), Merlin's Money Maze, Office Yeoin Cheonha (version 1.2), Poker Master (ED-1993, dual game, set 1), Poker Master (ED-1993, dual game, set 2), Que Huang Zhengba (V100CN), Return of Sel Jan II (Japan, NM508), Return of Sel Jan II (Japan, NM557) and Si Se 7 - Dipswitch fixes in goldstar.cpp, gms.cpp, homerun.cpp, igs011.cpp, igs_m027.cpp, jack.cpp, megadriv_acbl.cpp, meijinsn.cpp, metro.cpp, pipedrm.cpp, royalmah.cpp, quizpani.cpp, senjyo.cpp and stella8085.cpp - Renamed (hdrivair) to (hdrivair0), (hdrivairp) to (hdrivair), (loopingv) to (loopingu), (loopingva) to (loopingua) and (unkyungyu) to (sise7) - MAME . VIDEO RENDERING SYSTEM . Use raw parameters for screen timings in exidy\carpolo.cpp and exidy\circus.cpp . Make hit test priority match visual order. Also made order of parsing view element more logical (makes interation with parameter elements less confusing). Some layouts have been updated, others still need work (emu\rendlay.cpp). . Do a 2-pass for updating artwork clickable zone input field state. Fixes Artwork held input is released after crossing overlapping clickable zone edge of same input field (ID 09252) (emu\render.cpp). No need to do std::transform here. Yoda style for loop like the surrounding source (emu\render.cpp). . Changed legacy marquee UI toggle to Marquees instead of a 2nd Backdrops (emu\rendlay.cpp). Removed invert flag from 7seg element and added inverted 7seg outputs to mpu4 (the only driver that used this flag) (emu\rendlay.cpp). . MEMORY SYSTEM . Optimize a specific but useful case (emu\emumem.cpp). Added forgotten range checks (emu\emumem_mview.cpp). . Avoid splitting handlers on dup-ing, avoiding tons of extra allocations (emu\emumem_hedr.ipp and emumem_hedw.ipp). Fixes MAME crashes with "Caught unhandled St9bad_alloc exception: std::bad_alloc" message in all quizdna.cpp sets (ID 09251). . Count references correctly for de-duplicated handlers (emu\emumem_hedr.ipp and emumem_hedw.ipp). Restrict 'check_optimize_all' to very short ranges (fixes crash in cave/cv1k.cpp games) and optimized the optimization further (emu\emumem.cpp). . Work around regression in Gaelco3D games by disabling optimization when address select is enabled (emu\emumem.cpp) . Prevent subunit offsets from being masked out in handlers (emu\emumem_mud.cpp). Fixes sound in suprnova.cpp. Short-term fix to some crashes, need more thinking though (emu\emumem_mud.cpp). . DEVICE: Avoid updating data frame if nothing changed. Don't use bitwise OR on bool. Small cleanup to spacing (emu\diserial.cpp). . INPUT: Fixed "Application" key with SDL keyboard provider (input\input_common.cpp). Also improved support for rare higher F-keys with SDL and Win32 providers. . UI/OSD: Hold ALT to INC/DEC setting by 100 (ui\analogipt.cpp) . SOFTWARE LIST: Split multiple languages/developers into separate info elements in all software lists . NETWORK: Added packet logging helper (emu\dinetwork.cpp) . Multi-Language: Updated Japanese translations (Japanese\strings.po). Added Polish translation (Polish\strings.po). . Consolidate drivers into single files (bking.cpp, gaiden.cpp, jack.cpp, rohga.cpp and senjyo.cp). Got rid of some VIDEO_START macros (rohga.cpp, gottlieb.cpp and docastle.cpp). Removed some unused/unneeded MACHINE_START / MACHINE_RESET / VIDEO_STARTs (cps2.cpp, scramble.h/_m.cpp, m92.h, model2.h, system1.h, route16.cpp, superqix.cpp and toaplan1.h) . Tidied some stuff (video\upd7220.cpp, atari\atarisy2.h, igs\igs017.cpp) - Compiling . Fixed pull_request property (.github\workflows\includeguards.yml) . Fixed missing EoF marker (lib\netlist\build\create_lib_entries.py) . Don't pass --line-numbers to objdump. It has no effect on --syms for GNU objdump, but it causes LLVM objdump to disassemble the executable (scripts\src\main.lua). Improved support for building on Windows arm64. Manage objdump processes from python. Avoids issues with inconsistent shell behaviour (dist.mak, scripts\build\llvm-objdump-filter.py, scripts\src\main.lua and scripts\src\osd\modules.lua). . Fixed compile with Clang 21.1.1 (machine\spg_renderer.h, tvgames\generalplus_gpl162xx_lcdtype.cpp) - Debugger . Extended memory commands for region and space (emu\debug\*). Reduced unnecessary duplication (debug\express.cpp). . Don't persist fallback expressions (debug\debugvw.cpp) 0.280 - New games: 119 (bootleg?), Gold Strike (Japan, v1.1.1 - location test), ICP EX-Turbo-GT poker, ICP F40 poker (137 Fever, 10 bet), ICP F80 poker (137 Fever, 50 bet), Shuihu Feng Yun Zhuan, Songjiangyanyi Final and 'Unknown Turbo Poker (set 1)' - New Working games: Kaimen Hu (PAN Electronics), New Lucky 8 Lines (A900 2nd gen, Cross and Bell Bonus), Taishan Wuxian Jiaqiang Ban (V101CN) and Tiansheng Haoshou (V201CN) - New Non-Working games: Best of Nudge (Ver. 1.01), Bio-Hazard Battle (scrambled bootleg of Mega Drive version), Crazy Circus (Ver. US.01.7), Dajia Dou Dizhu, Dash! (A37, ver 1998/10/22), Dynamic Chance (Type-3.0 Part 1-2), Fruit Poker (V.Swe 1.74), Funny Fruit (Ver. 1.05, newer hardware), Gold Touch (Ver. 2.45), Gone Fishing (V602US), Hong Mayi (Xin Yun), Krazy Keno (V105US), Lucky Full House (ver 1.16, data ver 1.05), Medal Quiz Panicuru Roulette, Multi Game III (V.Int 3.63), Neo Print SP! Super Collection Version (Japan), Pretty Present, Star Ball (v1.0.0S), Silver Bar (Ver. 1.07), Southern Gold (Ver. 1.16) and Tankers - New clones: Allien Attack, beatmania 3rd MIX (ver JA-B), Classic Edition (Version 1.4R), Clutch Hitter (bootleg), Dash! (A37, ver 1996/11/18), Donkey Kong Jr. (Nuova Videotron bootleg), Dynamic Chance (Type-3.0 Part 1-2, alt), Dynamic Plus One (SP Type ver 1.10), Fruit Bonus 2000 / New Cherry 2000 (Version 2.3B), Fruit Bonus 2000 / New Cherry 2000 (Version 2.6 Special), Fruit Bonus 2000 / New Cherry 2000 (Version 3.1 Special), Fruit Bonus 2000 / New Cherry 2000 (Version 3.3 Special), Fruit Bonus 2000 / New Cherry 2000 (Version 3.4 Special, set 1), Fruit Bonus 2000 / New Cherry 2000 (Version 3.4 Special, set 2), Fruit Bonus 2000 / New Cherry 2000 (Version T 2.3C), Fruit Bonus 2nd Edition (Version 1.6R), Fruit Bonus 2nd Generation (Version 1.8Q), Gold Touch (Ver. 2.39), Haunted House (IGS, V107US), ICP F40 poker (100yen), ICP F40 poker (137fv_10yen_f40), ICP F40 poker (jap_9a), ICP F80 poker (137_50_100), ICP F80 poker (137_9.bin), ICP F80 poker (137_9_0jap), ICP F80 poker (137_9_10bet), ICP F80 poker (137_9_50), ICP F80 poker (137_9_60), ICP F80 poker (137_9_70), ICP F80 poker (137_9_90), ICP F80 poker (137_9_jap), ICP F80 poker (137_9_redsquare), ICP F80 poker (137_number7), ICP F80 poker (9_jap), ICP F80 poker (9_reddot), ICP F80 poker (abg), ICP F80 poker (af_80_newer), ICP F80 poker (af_80_older), ICP F80 poker (blue-green-red dots), ICP F80 poker (jap_9), ICP F80 poker (jap_9_jap), ICP F80 poker (redx_9_40_45_50_60), ICP F80 poker (redx_9_7), Kingdom Grandprix (bootleg), Lucky Full House (ver 1.15, data ver 1.04), Mini Golf (cocktail, 10/18/85), Money Machine (Version 1.3R), Monkey Land (Ver. AA.20.A), Ms. Pac-Man (bootleg, set 5), New Lucky 8 Lines (set 16, W-4), New Lucky 8 Lines (set 17, W-4, turbo, protected), New Lucky 8 Lines (set 18, W-4, bingo/fever, protected), Ozma Wars (set 3), Quiz (Revision 2.11, alt questions), Rally X (Tecnidiver bootleg), Rolling Stones (V21), Sea Invasion, Sexy Gal Tropical (Japan 850715 SXG T-01), Southern Gold (Ver. 1.14), Stone Age (Astro, Ver. AA.05.H, 2007/03/15), Techtron EX-Turbo-GT poker (set 1), Techtron EX-Turbo-GT poker (set 2), Tetris + New Lucky 8 Lines (W-4 + W4BET-VID sub board with MCU), Tiansheng Haoshou (V201CN), Tutankham (bootleg), Unknown Golden Poker (Japan Ver. 2.2), Unknown Golden Poker (PED 70%), Unknown Golden Poker (PED 80%), Unknown Golden Poker (PED 85%), Unknown Golden Poker (PED 90%), Unknown Golden Poker (PED 95%, set 1), Unknown Golden Poker (PED 95%, set 2), Unknown Turbo Poker (set 2), Unknown Turbo Poker (set 3) and Wing W90 poker (Wing 8510-A W90-3 PCB) - New drivers: 119.cpp, cadillacjack_mc68340.cpp and xinyun.cpp - New devices: mz1p16 - Bob Zed (What's new): https://youtu.be/0K2G0lYl8OI - CPU . Dynamic Re-Compiling . Not nuking the destination register on 64-bit rotate is important (fixes broken collision detection in Poosho Poosho with drcbex86 (ID 09228)), also slight optimisations (cpu\drcbex86.cpp). . Don't sign extend word register loads into upper 32 bits of host register (cpu\drcbearm64.cpp). . Intel 8086: Correction to idiv overflow (i86\i86.cpp) . Intel I386: Throw faults from i386_trap so double and triple faults can be handled properly (i386\i386.cpp and i386\i386priv.h) . NEC Vxx: Correction to idiv overflow (nec\necmacro.h). Updated MUL/DIV cycles (nec\necinstr.hxx). Small cleanup to spacing. DIV/DIVU does store a result on V33. . Motorola MC68010: Use constructor delegation (m68000\m68010.cpp) - SOUND . Sega 315-5313 Megadrive VDP: Make VDP irq enable times more deterministic. Fixed regression. Mode 4 disallows writing to registers beyond 10. Fixed (MESS) bassmpro Sega startup logo (video\315_5313.cpp) (ID 06228) . SN76496: Tone frequencies and volume are non-zero at startup (gives (MESS) BBC Micro boo-bip startup tones) (sound\sn76496.cpp) - DEVICE . Floppy: Prevent INTRQ from being raised until last DRQ is serviced unless data was already lost (ID 09236). Fixed validation by restoring wonky difference between ISA8 and ISA16 option lists (machine\wd_fdc.cpp). . ISA: Merged ISA8 options with ISA16 8-bit options, i.e. allow mounting (MESS) IBM Speech to ISA8, xtide to ISA16 (isa\isa_cards.cpp). . Konami 053244/053245 Sprite Generator: Small cleanup (konami\k053244_k053245.cpp) . Konami 053260 KDSC: Uses K053260's TIM2 output as interrupt source (sound\k053260.cpp). Small optimization to devcb. . Konami 054321 Maincpu-Soundcpu interface: Reset m_active at device_reset. . Konami 054338 Mixer and Konami 055555 Priority Encoder: Some comment cleanups . Konami 054539 ADPCM: Fixed regression with K054539 L/R speakers. Small cleanup. Update stream before writes. Added m_ prefix to class variables. Also update stream before init_flags. . Konami 056832 Tilemap Generator: Small cleanup. Re-enable update_linemap render now that it works again. Fixes zooming glitches and wrong backdrop in G.I. Joe (ID 01858). Make linemap_enable a mcfg setter (konami\k054156_k054157_k056832.cpp) . MC68681 DUART: Fixed TX disable bug (machine\mc68681.cpp) . MOS 6522 VIA: RESET does not change T1 and T2 latches/counters and Shift Register (machine\6522via.cpp) . Motorola MC6845 CRTC: Removed hack that resets line counter when screen parameters are changed (fixes split screen mode in (MESS) Elite on BBC Micro) (video\mc6845.cpp). . Paradise Systems PVGA1A Graphics Card: (Try to) pull cnf15 high for wd90c11 graphics card. Refactor all cards to use ISA remap. Fixed wd90c33_zz going in MDA mode in ct486 BIOS menu (isa\svga_paradise.cpp). . Paradise Systems PVGA1A i/f: Hookup DDR callback for PR11 writes. Fixed (MESS) Teradrive and MegaPC going in MDA video mode (video\pc_vga_paradise.cpp). . Zilog Z80 DMA Controller: Implemented BAO callback (machine\z80dma.cpp) - 1942.cpp, 1943.cpp, bionicc.cpp, blktiger.cpp, commando.cpp, gng.cpp, gunsmoke.cpp, supduck.cpp, tigeroad.cpp and vulgus.cpp: Revert global 128,6 screen offset. - astrcorp.cpp: Added dedicated inputs for keno21 and gostopac - bankp.cpp: Cleaned up a few things - btime.cpp: Merged driver with scregg.cpp - cdi.cpp: Added Interlace Graphics (GitHub #13997). Doubles vertical resolution. Minimal code to double the vertical resolution for GitHub #13231. The result is a slightly crisper looking image on most monitors due to better upscaling on images are have less oblique pixels. This was tested minimally and seems stable. Something closer to a proper interlaced image can be accomplished using the _PA bit, however current screen blanks between frames preventing the parity bit from being able to produce a correct interlace image yet. Removed excess vertical resolution. Use 2x clock multiplier. Added Interlaced Graphics. Fixes GitHub #13231. Toggle interlace effect. When the interlace bit is off, line-duplication is re-enabled. This ensures the interlace effect is only visible when the game declares the output to be interlaced. Fixed interlaced line offset. In some cases, such as during startup, the line length of the interlaced line is impacted. This corrects the offset. Fixed interlace clock speed (philips\mcd212.cpp). Cleaned up a few more things (philips\mcd212.cpp). - cham24.cpp, famibox.cpp, multigam.cpp, nes_arcade_bl.cpp, playch10.cpp and vsnes.cpp: Removed disused callback (video\ppu2c0x.cpp) - djmain.cpp: Small cleanup. Measured maincpu clock. Added screen raw params from Guru video timing measurements. Clarify x in product number. - dkong.cpp: Increased quantum for I8257 CPU - galaxian.cpp: Do global sprite clipping with a virtual function instead of setter - goldnpkr.cpp: Minor cleanups - goldstar.cpp . Driver improvements. Added hopper support to the following games/sets: bingowng, lucky8, luckybar, ns8lines and clones bingownga, lucky8a, lucky8b, lucky8c, lucky8d, lucky8e, lucky8f, lucky8g, lucky8h, lucky8i, lucky8j, lucky8k, lucky8l, lucky8m, lucky8n, lucky8o, lucky8p, lucky8q, lucky8r, lucky8s, lucky8t (fixed), lucky8tet, ns8linesa, ns8linew, ns8linewa, ns8linewb, ns8linewc and ns8linewd . Improvements for clone New Lucky 8 Lines (A900 2nd gen, Cross and Bell Bonus): Rearranged the ROM load, simplified the things eliminating its own machine config and dedicated memory map. Created proper inputs, added stops and bonus buttons, added DIP switches for key in, max bet, double-up on/off, double-up rate, main game rate, changed control panel layout to one player, added technical notes and cleaned up a bit the driver. Removed special odds DIP switches. Added hopper support and removed wrong control panel, due to the lack of lamps support. Documented the 3 forced bits that allow boot the game. Fixed the Max Bet DIP switch and connected through port conditional with the new added Minimum Bet DIP switch. Promoted 'New Lucky 8 Lines (A900 2nd gen, Cross and Bell Bonus)' to working. . Dumped PROMs for Jackpot Knight (V1.1) and New Mondo Plus (V0.6I) - hng64.cpp: Promoted bbust2, buriki, fatfurwa, roadedge, sams64, sams64_2 and xrally to working. Several people have tested this game quite extensively at this point, and there haven't been any logic bugs reported in the gameplay, even if the sound is still rather offensive to the ears. - igs_m027.cpp . Added decryption tables for gonefsh, jhg3d and royal5p (igs\pgmcrypt.cpp) . Added/Correct inputs, outputs and DIP switches for tshs and tswxp. Confirmed sound is OK for tshs and tswxp. Promoted tshs and tswxp to working. . Added preliminary I/O and correct OKI sound chip clock frequency for cjsxp. Improved inputs and sound. Hooked up sound ROM banking. Identified six DIP switches. Corrected test and bookkeeping inputs. Added support for fruit machine wiring option. Better I/O. Added key-in/key-out inputs and counters used in fruit machine mode. Identified some more DIP switches for cjsxp. - igs_m027xa.cpp: Added decryption tables for jking04 and krzykeno - jollyjgr.cpp: Added screen raw params. Small cleanup. - kurukuru.cpp and rgum.cpp: Changed inputs from poker type to slot type - lastduel.cpp: Updated notes - m92.cpp . Added screen raw params. Shorthand variable types. Added palette DMA and improved sprite DMA. Tweak DMA busy timing and added BTANB note. . Correct num sprites limit for clone Peter Pan (bootleg of Hook) and no need for +1 on OKI bank. - mitchell.cpp: Added rom locations for qtono1 and qsangoku - model3.cpp: Removed 'Region' from game names. Added colormod disable flag (sega\model3_v.cpp), fixes von2 blackened floor regression. Rollover scan timer at 0, not at 1 (sega\model3.c). - namcos22.cpp: Renamed cybrcycc and tokyowar analog controls - namcos23.cpp . Added support for dynamic texture scrolling. Better direct-polygon Z-sort handling. Clear all machine-class members on reset. . Added default NVRAM contents for Downhill Bikers - naomi.cpp: Dumped NAOMI Rev A and Naomi 2 Rev B Australia BIOSes - pluto6.cpp: Correct include order (video\serialvfd.cpp) - spoker.cpp: Slightly better inputs for Jingle Bell and Super Poker games - timeplt.cpp: Added hopper device for Bikkuri Card (Japan) and Chance Kun (Japan) - twinkle.cpp: Combine speakers - vendetta.cpp: Added lazy sprite DMA and removed note about tile chip (r/w go to gaps in memory map). Fixes flickering and bad characters on the life bar of bosses in Vendetta (ID 09230) and graphics issues (ID 05975). Added TODO note about sprite DMA. - 1942, Commando, Exed Exes, Pirate Ship Higemaru and Vulgus . Hook up irq prom instead of hardcoded values (no change to emulation). Added screen raw params to Exed Exes and Pirate Ship Higemaru. . Copy over input defs from 1942 for clone 1942 (Itisa bootleg), demote game to not working (not from this commit, it was already broken when added). - Amiga (alg.cpp, arsystems.cpp, cubo.cpp, mquake.cpp and upscope.cpp): Get rid of m_icr_read, fixes (MESS) cpm68k-amiga boot (machine\mos6526.cpp). - Asterix: Correct flipscreen offsets - Atari 800 (bartop52.cpp and maxaflex.cpp): A800 write_cart doesn't need returning from void fn (a800\a800_slot.cpp) - Bloxeed: Patched out undumped MCU handshake in clone Bloxeed (bootleg) and makes game boot - D-Day (Jaleco, set 1/2) . Correct text layer colors. Lower AY-3-8910 clock. Improved DMA BUSACK and audiocpu irq and changed controls to 4way. Updated notes on protection chip and use generic gfxlayout for chars. Shorthand variable types. . Assume maincpu clock is same as soundcpu. Still missed sound irqs. Increased quantum. . Correction to scroll offset and foreground cliprect. Confirmed protection device from decap and pinout. - D. D. Crew: Demoted clone D. D. Crew (bootleg) to not working - Double Dribble and Iron Horse: Added brief PCB notes - Exerion: Added DIP locations. Removed static constexpr list at top of driver. - Field Combat: Added DIP locations. Note: Colors match available references (i.e. https://youtu.be/kMfaYrmoOc4). Re-added screen raw params after Guru measured video timing. - Filetto, Magical Crystals and Smash T.V.: Dumped and verified some PLDs - G.I. Joe: Re-enable update_linemap render now that it works again (konami\k054156_k054157_k056832.cpp). Fixes zooming glitches and wrong backdrop in G.I. Joe. - Goldart (Spain): Confirmed the Dallas dump as good for Goldart (Spain) and clones (France, Covielsa license), (Germany), (Portugal) and (United Kingdom). - Golfing Greats: Uses K053260's TIM2 output as interrupt source (sound\k053260.cpp) - Invasion - The Abductors: Redumped PIC - Kaimen Hu (PAN Electronics) . Improved inputs. Mapped the DIP switches bank. New video hardware (tile get info, video start). Fixed the ROM load. Created extended GFX banks. Added a default clean NVRAM to get the game working properly. Fixed the PSG clock. Different tweaks in graphics banks and color system. Added Autohold, Coinage and Multiplier DIP switches and DIP locations. . Promoted game to working - Keno 21: Redumped gfx rom - Lethal Enforcers: Added screen raw params and enable priority shadows and simplify sprite priority. Correct shadow color. Small correction to sprite layer coords. - Lunar Rescue and Ozma Wars: Confirmed PROMs for Ozma Wars (set 1/2) and clone Lunar Rescue (Artic bootleg) - Mace: The Dark Age: Dumped alternate PIC - MegaDrive/Genesis (hshavoc.cpp, megadriv_acbl.cpp, megadriv_sunmix.cpp, megadriv_ybox.cpp, megaplay.cpp and megatech.cpp) . Sega 315-5313 Megadrive VDP: Make VDP irq enable times more deterministic. Fixed regression. Mode 4 disallows writing to registers beyond 10. Fixed (MESS) bassmpro Sega startup logo (video\315_5313.cpp) (ID 06228). . Replaced irq_callback with vpa_after/vpa_sync cpu_space_map (sega\megadriv.h) . Fixed no sound BGMs in (MESS) megadrij [teddyboy] (sega\megadriv.h) (ID 07645) - Mogura Desse: Added screen raw params. Added coin counters and do weird tilemap layout with TILEMAP_MAPPER. - Pac-Land: Added BTANB note "Jump sound effect is silent for a while after car horn sound effect". - Pool 10: Dumped and verified one PAL for clone Pool 10 (Italian, set 2) - Poosho Poosho: Not nuking the destination register on 64-bit rotate is important (cpu\drcbex86.cpp). Fixes broken collision detection in Poosho Poosho with drcbex86 (32bit) (ID 09228). - Raiden II New / Raiden DX: Correct cpu type (V33->V33A) - Revolution X: Fixed DMA register accesses (also eliminates U76 custom chip error) (midway\midxunit_m.cpp). Fixes corrupt colors in Steven Tyler cutscene of Revolution X and clone (ID 08799). - Surprise Attack: Correct shadow color - Triple Hunt: Reading x/y axis was swapped (ID 09245) - UFO Catcher 21: Added DIP description. Correct coinage DSW. - unknown Cointek game: Made it show something - Vs. Hot Smash: Fixed crash when playing sample (ID 09232) - Yie Ar Kung-Fu: Modernized interrupts and added screen raw parameters - Fixed rom names in astrcorp.cpp, es9501.cpp, igs_m027.cpp, mitchell.cpp and vulgus.cpp - Description changes of Cash'£'Vania (Qps) (Scorpion 4) (set 1-10) (ID 04830), Cash'£'Vania Club (Vx.xx), Crisis Zone (US, CSZO3 Ver. B, set 2), Crisis Zone (World, CSZO4 Ver. A), Cyber Troopers Virtual-On: Oratorio Tangram, Cyber Troopers Virtual-On: Oratorio Tangram (Revision A), Cyber Troopers Virtual-On: Oratorio Tangram (Revision B), Cyber Troopers Virtual-On: Oratorio Tangram M.S.B.S. ver 5.4, Cyber Troopers Virtual-On: Oratorio Tangram M.S.B.S. ver 5.66 2000 Edition, - 0.280: Changed description to 'Cyber Troopers Virtual-On 4: Force (Rev E)', D-Day (Jaleco, set 1), D-Day (Jaleco, set 2), D-Day (Olympia), Daytona USA 2: Battle on the Edge (Revision A), Daytona USA 2: Power Edition, Fighting Vipers 2, Fighting Vipers 2 (Revision A), Flip Shot, Frogger (Nuova Videotron bootleg), G.I. Joe (World, EAB), Geo Storm (Japan, 014 sound CPU), Geo Storm (Japan, 026 sound CPU), Get Bass: Sega Bass Fishing, Get Bass: Sega Bass Fishing Deluxe, Get Bass: Sega Bass Fishing Upright, Harley-Davidson and L.A. Riders (Revision A), Harley-Davidson and L.A. Riders (Revision B), Hearts Spades (ID 08429), Hong Mayi (bootleg of Super Star 97), Kuri Kinton (World, prototype) (ID 01067), L.A. Machineguns, Le Mans 24 (Revision B), Major Title 2 (World, set 1, 017 sound CPU), Major Title 2 (World, set 2, 016 sound CPU), Major Title 2 (World, set 3), Motocross Go! (US, MG2 Ver. A), Motocross Go! (World, MG3 Ver. A), New Lucky 8 Lines (A900 2nd gen, Cross and Bell Bonus), Ninja Princess (Japan, 315-5051, 64k Ver. bootleg?), Ninja Princess (Japan, 315-5051?, 128k Ver. bootleg?), Ninja Princess (Japan, 315-5098, 128k Ver.), Ninja Princess (Japan, 64k Ver. not encrypted), NHL Open Ice: 2 on 2 Challenge (rev 1.21) (ID 08758), NHL Open Ice: 2 on 2 Challenge (rev 1.2A), Pop'n Music (ver AA-A, HDD 1.00), Pop'n Music (ver JA-A, HDD 1.00), Pop'n Music (ver KA-A, HDD 1.01), Pop'n Music (ver TA-A, HDD 1.01), Rolling Stones (V17), Roy Clark Super Picker (ID 08430), Scud Race / Sega Super GT - Deluxe, Scud Race / Sega Super GT - Deluxe (Revision A), Scud Race / Sega Super GT - Twin/DX, Scud Race Plus / Sega Super GT Plus - Twin/DX, Scud Race Plus / Sega Super GT Plus - Twin/DX (Revision A), Sega Bass Fishing Deluxe, Sega Rally 2: Sega Rally Championship, Sega Rally 2: Sega Rally Championship (prototype, 29 Dec 1997), Sega Rally 2: Sega Rally Championship (prototype, 8 Dec 1997), Sega Rally 2: Sega Rally Championship Deluxe, Ski Champ, SOS (ID 07694), Space Battle Ship Gomorrah (Japan) (ID 07995), Spikeout (Revision C), Spikeout Final Edition, Star Wars Trilogy Arcade, Star Wars Trilogy Arcade (Revision A), The Lost World: Jurassic Park (Revision A), The Ocean Hunter, The Ocean Hunter (Revision A), Tiansheng Haoshou (V101CN), Undercover Cops Alpha: Renewal Version (US), Undercover Cops Alpha: Renewal Version (World), Virtua Fighter 3 (Revision A), Virtua Fighter 3 (Revision C), Virtua Fighter 3 (Revision D), Virtua Fighter 3 Team Battle, Virtua Striker 2 '98 (Step 1.5), Virtua Striker 2 '98 (Step 2.0) and Wang Pai Dou Dizhu - Dipswitch fixes in exerion.cpp, fcombat.cpp, goldnpkr.cpp, igs_m027.cpp, midxunit.cpp, megadriv_ybox.cpp, segaufo.cpp, spoker.cpp, thepit.cpp and vulgus.cpp - Renamed (am_mg3) to (am_mg3g), (am_mg3a) to (am_mg3ga), (animalwa) to (lucky8t), (bm2ndmxa) to (bm2ndmixa), (bm3rdeaa) to (bm3rdmixe), (bm3rdmix) to (bm3rdmixa), (crszonev3b2) to (crszonev4a), (crszonev4a) to (crszonev3b2), (rollston) to (rollstonv17) and (tshs) to (tshs101) - MAME . VIDEO RENDERING SYSTEM . Do assert() check before accessing array (util\palette.cpp) . Added screen raw params to blueprnt.cpp, gijoe.cpp, lastduel.cpp, megazone.cpp, mogura.cppm naughtyb.cpp, rungun.cpp, srumbler.cpp and yiear.cpp . New sound infrastructure . Don't apply gain if value didn't change, also use u32 instead of int for io_connection index (emu\sound.cpp). . PLUGINS . Support driver sourcefile path (plugins\data\data_mameinfo.lua and data_messinfo.lua) . hiscore.dat update (plugins\hiscore\hiscore.dat) . CHDMAN: Request write permission when opening file for verify --fix; allow SHA1 fixes for CHDs otherwise treated as not writeable (tools\chdman.cpp). . Multi-Language: Updated Japanese translations (Japanese\strings.po). Added Polish translation (Polish\strings.po). . Consolidate drivers into single files (btime.cpp, midxunit.cpp, sspeedr.cpp and ojankohs.cpp) . Correct some ioport mask vs defval conflicts (alpha68k_i.cpp, balsente.cpp, by35.cpp, ertictac.cpp, goldstar.cpp and igs017.cpp) - Compiling . Fixed SPIRV shader builder compilation error with newer standard library that doesn't implicitly include stdint in as many places (3rdparty\bgfx\3rdparty\glslang\SPIRV\SpvBuilder.h). - Debugger . Don't repeatedly get the focussed window in a loop (debugger\win\debugwininfo.cpp) . Made the code for symlist marginally less dreadful (debug\debugcmd.cpp) 0.279 - New games: 'To Heart House' - New Working games: Slime Kun and Tsururin Kun - New Non-Working games: Club Ultraman - Daichi Boeisen, Cyber Troopers Virtual-On 4 Force (Rev E), Disc 2000, Disc 2001, Disc 3000, Doppelpot, DS-6000 Driving Simulator, Elite Disc, Excellent, Huanle Dou Dizhu (V104CN), Jackpot Knight (V1.1), Jin Huangguan 6th, Jin Huangguan II (V310CN), Jin Zuanshi, Kaimen Hu (PAN Electronics), Keno 21 (Ver. A-2.30), Kniffi, Major Poker Deluxe (Ver. 1.12), Merkur Service Testgeraet, Neo Print - European Version II (World) (T4i 3.07), Premiums Line, Shizhan Majiang Wangchao (Version 2.0), Super Dragon (Ver 211), Taishan Wuxian Jiaqiang Ban (V101CN), Tieban Shensuan (Mainland version 2.0), Treasure Ocean (v1.5A), 'unknown Alba game', 'unknown Paradise poker game', 'unknown YungYu game' and Zhongji Dou Dizhu (V204CN). - New clones: 280-ZZZAP (set 2), 7 Smash (set 2), Arkanoid (bootleg of version Japan, older), Arthur's Knights (v1.00), Blackjack (Cadillac Jack, Ver. 1.22), Butterfly Video Game (version U863M), Dogyuun (bootleg), Driving Force (Galaxian conversion, Seatongrove UK), Emeraldia (Japan Version D), Gals Hustler (set 2), Hana Awase (set 2), Jiyou Gaoshou (China, Ver 1.2), Magic Bomb (Ver. A4.0A, 4/06/01), Magic Bomb (Ver. A4.1A, 5/4/01), Magic Bomb (Ver. A4.2A, 7/06/01), Magic Bomb (Ver. A4.2A, 8/09/01), Magic Bomb (Ver. AA.71.A, 30/04/04), Magic Bomb (Ver. AA.73.A, 17/10/06), Magic Bomb (Ver. AB4.3A, 11/22/01S), Magic Bomb (Ver. AB4.3A, 12/19/01S), Magic Bomb (Ver. AB4.5A, 05/24/02S), Magic Bomb (Ver. AB5.0, 09/26/02), Magic Bomb (Ver. AB5.1, 01/10/03), Magic Bomb (Ver. AB6.0J, 26/11/03), Magic Bomb (Ver. BB6.0, 02/24/04), Magic Bomb (Ver. EB4.3, 08/22/01), Magic Bomb (Ver. L3.7S), Magic Bomb (Ver. L4.0S), Magic Bomb (Ver. LB5.1 12/13/02), Mahjong Electron Base (parts 2 & 3, Japan bootleg set 2), Mahjong Electron Base (parts 2 & 3, Japan bootleg set 3), Major Poker Deluxe (Ver. 1.09), Monkey Land (Ver. A1.1), San Se Caishen (Version 0118), Western Venture (Ver. AA.01.B), Western Venture (Ver. AA.02.E) and Zuanshi II (version V153A) - Removed games: Alpine Surfer (World, AF2 Ver.A, set 2), Loto-Play (set 4), Motocross Go! (Japan, MG1 Ver. A, set 2), Motocross Go! (World, MG2 Ver. A, set 2), Panic Park (Japan, PNP1 Ver. B, set 2) and Poker (Version 50.02 ICB, set 3) - New drivers: banprestomsz80.cpp, ds6000.cpp, jinhuang6.cpp, ps_m3.cpp and servicetastatur.cpp - New devices: coldfire_dma, coldfire_mbus, coldfire_sim, coldfire_timer, cs4334, k005849, mcf5206euart, pl6_fpga, pl6_pic, pl6expslot, pl6gpu, serial_vfd, serial_votraxtnt, ua858d and votraxtnt - New Cheat.dat (Pugsy): http://www.mamecheat.co.uk/ - Bob Zed (What's new): https://youtu.be/EXg3sKss5Og - CPU . Hitachi SH-2 (SH7604): Hookup UBC BARA/BARB r/w (sh\sh7604.cpp), fixes sound in (MESS) 32x aburner. . Motorola MC68010: 'ctor' accepts type param. Support being able to subclass and pass in type param (m68000\m68010.cpp). . NEC Vxx: REP opcodes are interruptable. Fixed issue with prefetch (can't do prev_icount - m_icount to determine opcode cycles since m_icount can be cleared externally) (nec\nec.cpp). Fixes incorrectly effects in 'Ninja Baseball Bat Man' (ID 06021) and the status bar in Battle Chopper and clone appear twice (ID 00816). Fixes Major Title 2 and clones hangs at title screen if flip screen is enabled (ID 05342). - SOUND . Atari C012294 POKEY: Synchronize on SOD output transitions during serial transmission. Disable logging again (sound\pokey.cpp). . Biquad Filter: Added calculator functions for RC-based band-pass filters (sound\flt_biquad.cpp) . Ensoniq ES5503: Fixed error in emulation of oscillator over-contribution glitch (GitHub #13669) and use m_ prefixes consistently. Oscillators halted by the CPU have the same behavior as those halted internally if the low bit of the mode is set, as per the datasheet. Fixes Skate or Die for the Apple IIgs's music freezing (sound\es5503.cpp) . Sony LDP-1450 HLE: Fixed display mode selection issue and grey background (machine\ldp1450hle.cpp) - DEVICE . Floppy: Include IPF, 86F disk formats in floptool. IPF is included unconditionally by scripts/formats.lua, so the HAS_FORMATS condition was always false. 86F is also included unconditionally but simply wasn't added to formats/all.cpp when it was introduced. Added 86F to the "Container FM/MFM" category for consistency with the grouping in devices/imagedev/floppy.cpp and moved IPF to the "PC" category for the same reason (formats\all.cpp). . Fujitsu MB87030 SCSI controller: Fixed SCSI hookup in (MESS) FZ-20M (machine\mb87030.cpp) . I2C Memory: Revert change from MAME 0.278 (Don't enter start condition except from idle state) that broke dreamlss. Don't falsely register I2C bus start or stop condition while device as slave is driving SDA. Modernize logging (machine\i2cmem.cpp). Fixes bmiidx2, bmiidx3, bmiidx4, bmiidx5, bmiidx6, bmiidx7 and bmiidx8 fails to boot with "E800 NO SECURITY CARD ERROR" (ID 09212). Fixes BnB Arcade has severe slowdown, black screen in attract mode and unable to start game (ID 09220). . Konami 005849 Video Controller: Added preliminary k005849_device . Konami 007121 Video Controller: FIRQ is every other frame. Removed dirtytiles_cb (konami\k007121.cpp). . Konami 051960 Sprite Generator . Improved sprite y zoom. Fixes bad sprite zooming for the planes in Devastators level 2 (ID 00505). Added sprite buffer, fixes sprite lag in Aliens (ID 02014 and ID 06873). Added sprite busy flag and irq enable. Removed old #if 0 spriteram savedump. . Improved NMI timer and sprite busy duration. . Konami 052109 Tilemap Generator: Added screen raw params to all K052109 drivers. Added col+rowscroll, fixes possible graphical corruption during stage 2 in Thunder Cross II and clones (ID 08275). Added NMI and FIRQ timers (copy paste to/from k051960). Added callback for custom scrolling to emu\tilemap.cpp and added one to K052109 for its combined col/rowscroll. Update scroll before active display (konami\k052109.cpp). . Konami 053244/053245 Sprite Generator: Removed old #if 0 spriteram savedump. Moved sprite buffer clear to reg 7. Limit sprite size to 1024x512. Assume sprite size limit is cliprect, not zoom level (konami\k053244_k053245.cpp) . Konami 053250 LVC: Small cleanup (konami\k053250.cpp) . Konami 053251 Priority Encoder: Removed obsolete code (all dirty tilemap marking after colorbase changed is done locally in drivers). Removed unused read() function (konami\k053251.cpp). . Konami Custom: Correction to device strings (Konami 0xxx instead of K0xxx) . Sega 315-6154 Northbridge: Handle statuses and IRQ callback. Updated docs (sega\315-6154.cpp). . Z80 DMA Controller: Added UA858D DMA Controller variant to machine\z80dma.cpp. Added extra memory read wait state at 28MHz for (MESS) ZX Spectrum Next (machine\z80dma.cpp). - aristmk6.cpp: Dumped SPC2 board rom gambs2m_01.05.07.u3 (SPC stands for serial protocol converter) - astrcorp.cpp: Avoided completely patching out protection routines for a bunch of games, fixes some problems at start up and when exiting test mode. Reversed remaining CPU codes. Factory reset EEPROMs. Got rid of checksum/original ROM content related patches. Switched to mnemonic suffixes for clones. Metadata improvements and Q/A for most magibomb sets. - badlands_ms.cpp and galpanic_ms.cpp: Added missing PLDs to clones Bad Lands (Modular System) and New Quiz (Modular System bootleg of Gals Panic) - battlnts.cpp and rockrage.cpp: Use screen raw parameters as in similar Konami games. Added clocks for video ASICs. - boramz80.cpp: Implemented NVRAM, hopper and protection workaround. Moved out of skeleton to misc. GFX problems remain, games are otherwise playable (tpkborama excluded, since it's encrypted). - cave.cpp: Added hopper device. Fixes Crusher Makochan and Koro Koro Quest returns "Error 3" after completing a stage (ID 09223). - cdi.cpp . Implemented cursor blinking (philips\mcd212.cpp). Fixed double width cursor. This fixes cursor width is too wide in The Challenge (GitHub #13968). Originally this flag made the cursor 2x as wide (4 pixels). However the Validation Disc (EU) test GC_Ptn has a clarifying comment that in double-resolution mode, the cursor should be half the width of the normal cursor (philips\mcd212.cpp). . Fixed Pixel Hold Clut4. Console verification identified a descrepency in CLUT4 pixel hold behavior. This corrects a factor of 2 error in the width for CLUT4 (GitHub #13513) (philips\mcd212.cpp). . Added Undefined Matte Behavior. Fixes GitHub #13976. Greenbook says not to change the MF flag within a line. However, if you do, the behavior is undefined. Console verification shows that the real console will use these values. The non-spec behavior is explained in a comment. Additionally, this tidies up the Matte function. Fixed RGB Transparency. This fixes RGB transparency checks. Previously it was checking the high bit. This would pass when checking the false condition (mode 10) but not on the true condition (mode 2) (philips\mcd212.cpp). . Fixed Cursor Inversion Color. This corrects a slight error in the cursor inversion color. A full brightness color should keep the brightness value and only invert the RGB. See MCD212 section 7.5 (philips\mcd212.cpp). . Introduce External Video Input. This replaces the static background color with a function that will switch behavior if the EV flag is set. Currently there is no DVC chip, so this will produce black output. This fixes (GitHub #13980) (philips\mcd212.cpp). . Simplified CD-i CDIC MCU. This simplifies the reference functions while making small changes to the used functions. Fixed CDIC XA audio header offset. Fixes Github #13991 (philips\cdicdic.cpp). - circus.cpp: Set maincpu ROM_LOAD to 0x0. Fixes Robot Bowl hang/freeze at boot (ID 09225). - cps1.cpp . Removed unneeded init function. Do interrupts with IPL pins and HOLD_LINE and copy over raster interrupts from cps2. Re-add cpu space map for irqack. . Correct the cpu space back to fully take into account the impact of vpa on the timings. Added debugger side effects check. Removed old TODO notes (one about raster effects and one about supposedly missing sf2 layers). Correct the cpu space back to fully take into account the impact of vpa on the timings. . Ganbare! Marine Kun irq4 is actually the same raster interrupt as on cps2 (it writes to the raster regs too). Comment out n/a button3 in Final Fight. - cps2.cpp: Improved raster irq. Make sure to mask raster counter with 0x1ff. Correction to raster irq timing. Fixes Shuma Gorath super move raster effect is not working in Marvel Super Heroes (ID 09221). - cps3.cpp, pluto5.cpp and luckgrln.cpp: Removed if(0)ed-out routines for dumping decrypted ROMs - ddragon3.cpp: Lower overall volume. Added sprite size mask and wwfwfest sprite buffer trigger. Fixes Combatribes sprite player glitch (ID 07595) (GitHub #13986). - ghosteo.cpp: evert I2C Memory change from MAME 0.278 (Don't enter start condition except from idle state) that broke dreamlss. Don't falsely register I2C bus start or stop condition while device as slave is driving SDA. Modernize logging (machine\i2cmem.cpp). Fixes BnB Arcade has severe slowdown, black screen in attract mode and unable to start game (ID 09220). - goldstar.cpp: Fixed NVRAM regression for sets in wingco_state - hikaru.cpp: Added 2nd AICA and 315-5881 encryption and fixed ROM layout. - hummer.cpp: Hooked up decryption - igs017.cpp: Fixed tarzan and starzan addrmaps. Fixes graphical or security error causes the appearance of a character that does not exist in the original game in jking200pr and all starzan dependents (ID 09193). - konmedal.cpp . Inverted hopper sensor. Reorder dsw settings (left = less, right = more). . Promoted Slime Kun and Tsururin Kun to working - m72.cpp . Tweak bg layer 2 transmask workaround. Improved tile priorities. Fixes graphic priority issues in bchopper and clone mrheli (ID 09205). . Do spritelist fill with push_back. NEC Vxx REP opcodes are interruptable, fixes status bar in Battle Chopper and clone appear twice (ID 00816). - m90.cpp: Small cleanup (irem\m90_v.cpp) - m92.cpp . Added sprite/video disable flags and put bootlegs on different hw in subclass. Updated flipscreen before screen update (irem\m92_v.cpp). . Updated dipswitches. Fixes Gun Force II has wrong difficulty setting "very easy", should be shown as "hardest" (ID 07725). . NEC Vxx REP opcodes are interruptable. Fixes incorrectly effects in 'Ninja Baseball Bat Man' (ID 06021) and 'Major Title 2' and clones hangs at title screen if flip screen is enabled (ID 05342). - mainevt.cpp: Added missing watchdog - megadriv.cpp: Fixed Megadrive version register incoherent (no TMSS ROM) (GitHub #13941). - model1/2.cpp: Sort out register update priority (mb86233\mb86233.cpp) - model2.cpp . Implemented proper lighting and improved "gamma" table. Stadium ads in Virtua Striker have the correct colors now. Do geo_parse even if frame was skipped. Removed the (void) func params from h file too. Revert frameskip workaround. . Actually fixed Super GT 24h and Over Rev reverses gas and brake activeness by default (ID 07445) - namcos22/23.cpp: Removed duplicate romsets (or rather, only the embedded s/n differs) - namcos23.cpp: Added point ROM auto-increment to Namco System 23. Improves Downhill Bikers and Race On! visuals. - phoenix.cpp: Small cleanup - pluto6.cpp: Added support for Freescale mcf5206e peripherals for Pluto 6 emulation. Cleaned up driver. - senjyo.cpp: Star Force boardset has 4mhz and 12mhz xtals and copy paste screen raw params from bombjack (pace matches PCB video). Fixes rarely no sound on Star Force (ID 09200). - stella8085.cpp: Re-enable games that were commented in 0.278 release - taitotz.cpp: Use versions as printed on Taito's hard disk labels in descriptions - tecmo.cpp . Lower YM volume in Gemini Wing and small correction to mcfg. Fixes OKI MSM5205 is quiet compared to the PCB and OST (ID 08785). . More accurate ADPCM addressing (no audible change). - tmnt.cpp: Removed VIDEO_UPDATE_AFTER_VBLANK flag and changed joystick to 4way in Cue Brick - tmnt2.cpp . Invert vblank flag and removed m_toggle hack. This fixes corrupt graphics at bonus screens in Quiz Gakumon no Susume (ID 06651) and slow transitions (ID 06652). Removed VIDEO_UPDATE_AFTER_VBLANK flag. . Re-Added support for high priority shadows (emu\drawgfx.h + drawgfxt.ipp). Fixes graphic error with high priority shadows in tmnt2 and ssriders (ID 03644). - twin16.cpp: Lower pixel clock - twinkle.cpp: Revert I2C Memory change from MAME 0.278 (Don't enter start condition except from idle state) that broke dreamlss. Don't falsely register I2C bus start or stop condition while device as slave is driving SDA. Modernize logging (machine\i2cmem.cpp). Fixes bmiidx2, bmiidx3, bmiidx4, bmiidx5, bmiidx6, bmiidx7 and bmiidx8 fails to boot with "E800 NO SECURITY CARD ERROR" (ID 09212). - vendetta.cpp: Set VIDEO_UPDATE_AFTER_VBLANK flag. Probably just sprite DMA. - Asterix: Added screen raw params. Small tweak to layer offsets. Lower soundcpu clock and added brief pcb info. - Arcadia (NMK): Removed duplicated PROM entries from ROM definition - Beyond Kung-Fu: Protection/MCU notes and research. Make most of the ingame HUD elements work: Proper dirty marking. Make the floor counter display work. Handle the credit number / continue counter. Allow high score table to be drawn. Allow high score name entry. Added notes. Make the tilemap wide enough for the background, put some dummy (column position values) in the tilemap when the command is issued. Put the draw on a timer. - Bottom of the Ninth: Fixed sprite priority regression, fixes graphics priority issue at upper part of screen (ID 09191). Small cleanup. - Chequered Flag: Assume vtotal is 264. Tweak analog controls. - Cherry Master '97: Improved GFX. Started reorganizing some. - Cherry Master '99: Dumped one PAL - Crime Fighters: Set VIDEO_UPDATE_AFTER_VBLANK flag. Writes tilemap registers during active display area, which won't have effect until the next frame. - Escape Kids: Removed black screen edges by default - Go & Stop: Reversed 'CPU code', goes in game. - Hana Awase: Added NO_DUMP entry for MCU very likely used for I/O on this set (but not the clone) - Inferno (Meadows): Fixed samples_device reset. Fixes Inferno (Meadows) crash emulation (ID 09226). - Iron Horse: Lower maincpu clock and improved screen raw params - Jin Huangguan 3-dai: Started reorganizing - Kyuukoukabakugekitai - Dive Bomber Squad: Lower quantum - Loto-Play: Added info and clock frequency for PIC-based Loto Play - Magic Bomb: Dumped GFX ROM for clone Magic Bomb (Ver. AB5.3, 20/06/03). Q/A for most magibomb sets. Improved magibomb related documentation and correct GFX ROMs for some sets. - Mole Attack: Simplify gfxlayout - Pleiads: Fixed/Swap color proms for Pleiads (Tehkan) amd clones (Centuri), (Niemer S.A.) and (bootleg set 1). Added a note about protection chips. Removed TODO note about palette banking, it is already correct when compared to PCB video. - Rampart: Removed n/c buttons - Revolution X: Redumped PIC - Rollergames: Added screen raw params - Shuang Long Qiang Zhu 2 VS: Demoted clone (China, VS203J, set 2) to not working - S.P.Y. - Special Project Y: Small cleanup - Super Basketball: Fixed default 'Starting Score' dip based on manual - Super Speed Race: Fixed sound regression and added screen raw params - Surprise Attack . Added callback for custom scrolling to emu\tilemap.cpp and added one to K052109 for its combined col/rowscroll (konami\k052109.cpp). This improved star field background scrolling and rotation in Surprise Attack (ID 06790). . Re-Added support for high priority shadows (emu\drawgfx.h + drawgfxt.ipp). Fixes graphic error with high priority shadows in suratk (ID 03644). - Swinging Singles: Added xtal and tweak palette a bit. Fixes music is too high pitched and choppy in Swinging Singles (ID 09201). Swap car green/yellow. Added 'Lives' and 'Cabinet' dsw and small cleanup. Swap palette bits0/1 back again. - Tekken 3: Used recently dumped sound ROM from clone Tekken 3 (Japan, TET1/VER.D) for clones Tekken 3 (World, TET2/VER.B), (World, TET2/VER.C), (World, TET2/VER.D) and (US, TET3/VER.D). - Toaplan: Removed hidden keybinding to test switch. Show Toaplan test switch as input instead of dip switch and removed default keybind (toaplan\toaplipt.h; batsugun.cpp, dogyuun.cpp, dt7.cpp, enmadaio.cpp, fixeight.cpp, ghox.cpp, kbash.cpp, pipibibi.cpp, raizing.cpp, snowbro2.cpp, sunwise.cpp, tekipaki.cpp, toaplan1.cpp, truxton2.cpp, twincobr.cpp, vfive.cpp and wardner.cpp). - Vapor TRX: Removed PORT_CODE for buttons - Xexex: Hook up CCU - Xin Jin Huangguan: Filled in memory map - Zombie Revenge: Redumped redumped program ROM for clone Zombie Revenge (Export) - Fixed rom names in namcos12.cpp - Description changes of 280-ZZZAP (set 1), 7 Smash (set 1), Alpine Surfer (World, AF2 Ver.A), Armed Police Unit Gallop (Japan, M72 hardware), Armed Police Unit Gallop (Japan, M84 hardware), Battle Gear (VER.2.40A), Battle Gear 2 (VER.2.04J), Battle Gear 2 (VER.2.01J, Side by Side conversion), Black Jack (Olympic Games, v5.04, upgrade kit for Wild Card), Blackjack (Cadillac Jack, Ver. 1.31), Club Ultraman - Daichi Boeisen, Densha de GO 3! Tsukin-hen (VER.2.03J), Final Furlong 2 (Japan, FFS1 Ver. A), Final Furlong 2 (World, FFS2 Ver. A), Gals Hustler (set 1), Gunforce: Battle Fire Engulfed Terror Island (Japan), Gunforce: Battle Fire Engulfed Terror Island (US), Gunforce: Battle Fire Engulfed Terror Island (World), Hana Awase (set 1), Hyper Dyne Side Arms (Japan, 861128), Hyper Dyne Side Arms (US, 861128), Hyper Dyne Side Arms (US, 861202), Hyper Dyne Side Arms (World, 861129), Jack's Venture - Inca Treasure (US.02.01.A, 2010/01/21), Jin Zuanshi, Kaimen Hu (BMC), Landing High Japan (VER.2.01OK), Landing High Japan (VER.2.02O), Mahjong Electron Base (parts 2 & 3, Japan bootleg set 1), Motocross Go! (Japan, MG1 Ver. A), Motocross Go! (World, MG2 Ver. A), Panic Park (Japan, PNP1 Ver. B), Penguin Party (TM.01.01.B, 2012/01/16), Poker (Version 50.02 ICB, set 3), Power Shovel ni Norou!! - Power Shovel Simulator (VER.2.07J), Raizin Ping Pong (VER.2.01O), Raizin Ping Pong (VER.2.01J), S.P.Y.: Special Project Y. (US ver. M), S.P.Y.: Special Project Y. (World ver. N), Stunt Typhoon Plus (VER.2.04J), Teenage Mutant Hero Turtles: Turtles in Time (2 Players ver EBA), Teenage Mutant Hero Turtles: Turtles in Time (4 Players ver EAA), Teenage Mutant Ninja Turtles: Turtles in Time (2 Players ver UDA), Teenage Mutant Ninja Turtles: Turtles in Time (4 Players ver ADA), Teenage Mutant Ninja Turtles: Turtles in Time (4 Players ver OAA), Teenage Mutant Ninja Turtles: Turtles in Time (4 Players ver UAA) and Teenage Mutant Ninja Turtles: Turtles in Time (4 Players ver UEA) - Dipswitch fixes in bottom9.cpp, konmedal.cpp, m92.cpp, mole.cpp, skylncr.cpp, ssingles.cpp, tecmo.cpp and tmnt.cpp - Renamed (emeraldaj) to (emeraldajb), (emeraldaja) to (emeraldaj), (gepoker2a) to (gepoker2), (hapfarma) to (hapfarm_in0102b), (magibomba) to (magibomb_br44), (magibombb) to (magibomb_ab45a), (magibombc) to (magibomb_ab42), (magibombd) to (magibomb_aa72d), (magibombe) to (magibomb_a31), (magibombf) to (magibomb_nb45), (magibombg) to (magibomb_nb61), (magibombh) to (magibomb_a40a), (magibombi) to (magibomb_a36a), (magibombj) to (magibomb_aa72c), (magibombk) to (magibomb_a30), (magibombl) to (magibomb_ab43a), (magibombm) to (magibomb_ab53), (magibombn) to (magibomb_eb40), (magibombo) to (magibomb_br71a), (monkeyla) to (monkeyl_aa13b), (monkeylb) to (monkeyl_aa21b), (monkeylc) to (monkeyl_aa21c), (monkeyld) to (monkeyl_a12), (monkeyle) to (monkeyl_en20b), (showhanc) to (showhandc), (skilldrpa) to (skilldrp_g10s), (speedmsta) to (speedmst_d14), (speedmstb) to (speedmst_d201ca) and (winbingoa) to (winbingo_gm051) - MAME . VIDEO RENDERING SYSTEM . Removed unused (and not working) TILE_LINE_DISABLED flag, just use cliprect for something like that. Added col+rowscroll. Added callback for custom scrolling (emu\tilemap.cpp). . Small optimization to scroll cache (emu\tilemap.cpp) . Re-Added support for high priority shadows (emu\drawgfx.h + drawgfxt.ipp) . UI: Added shift/ctrl/alt modifier keys to some controls (ui\viewgfx.cpp) . INPUT: Added coinage settings 10C_1C, 1C_10/20/25/50/100C (emu\ioport.cpp) . New sound infrastructure . Added full/channel route via menu instead of f/c keys (ui\audiomix.cpp). Moved notch filter check to ui (audio_effects\filter.cpp and ui\audio_effect_filter.cpp). . Put devtag in add ful/channel menu entry. Added not initialzed message when entering menu too early (eg. pressing tab on the red warning screen) (ui\audiomix.cpp) . Clamp final output to -32768, 32767 (emu\resampler.cpp). Fixed problem when default devices are missing (emu\sound.cpp), fixes Portaudio error when WASAPI is enabled with no audio input devices in the OS (ID 09192). . Don't repeat default settings at several places and removed unneeded float<->double conversions (emu\sound.cpp). Round default q down instead of up (probably has no audible effect) (audio_effects\eq.h). . Fixed initial -volume setting (emu\sound.cpp). Use emplace instead of emplace_back when reconfiguring mapping (emu\sound.cpp), fixes cursor highlight issue in Audio Mixer menu (ID 09204). . Finer control over HQ resampler settings (keeping max settings same as before) (emu\resampler.cpp and ui\audioeffects.cpp). Safety check for filter len (emu\resampler.cpp). . Correction to input gain calc. Increase max input db so input gain won't distort the signal. Re-added infinite release option and also infinite ratio. Added a header to advanced settings (audio_effects\compressor.cpp). . Misc sound fixes (emu\sound.cpp) . Sound modules . PortAudio: Re-add printf list of found devices with -verbose and added a check for duplicate device names (ID 09195). Can use unordered_map instead of map (sound\pa_sound.cpp) . SDL: Fall back to 2 channels if 0 channels are detected on a device (sound\sdl_sound.cpp) . Correct various games SN76489/SN76489A/SN76496 type based on PCB photos and/or schematics (appoooh.cpp, bankp.cpp, circusc.cpp, exedexes.cpp, hyperspt.cpp, ikki.cpp, mrjong.cpp, pingpong.cpp, senjyo.cpp, suprloco.cpp, tp84.cpp and trackfld.cpp) . Added PLDs to several Modular System games (Blood Bros. (Modular System), Euro League (Gaelco bootleg, Modular System), Power Spikes (Modular System), Splash (Modular System, ver. 1.0, checksum 16EDD8FB, non North America, censored), Splash (Modular System, ver. 1.0, checksum A6C431A4, non North America, uncensored) and Toki (Modular System)). - SDLMAME: Testing for glibc does not guarantee pty.h is available. It's possible to build glibc for targets where its PTY wrapper functions are not implemented (osd\modules\file\posixptty.cpp). - Compiling . Added SN76496 to scripts\target\mame\tiny.lua . MinGW/MSYS2 mktime() cannot handle dates before the Unix epoch, so use a precalculated offset between the Unix and MacOS epochs . Prevent excessive link times with the default optimization level for emscripten build (scripts\genie.lua) . Removed Wayland-EGL-backend requirement at compile-time. Since MAME 0.274 Wayland is dynamically loaded at run-time (scripts\src\3rdparty.lua). . Fixed LZMA PPMD support (src\3rdparty.lua) - Debugger . Requiring every debugger window class to care about the console window's views is bad design. That's a clear case of unnecessary coupling (debugger\win\*). . Used DCA_SELECTED color friendly for Light/Dark theme (qt\debuggerview.cpp) . Do not drop into debugger when no MAME window has focus. On Windows, the debugger has a special Windows-specific feature that drops the user into the debugger if the key sequence is pressed. This seems to be present so that the key sequence triggers dropping into the debugger not just from the main window, but also from debugger windows. This has also created an oddity where pressing the debugger key sequence from a MAME window will cause a "User-initiated break" but pressing it from a debugger window will cause "Internal breakpoint" to be displayed. However, while this logic has a check to not apply when to a MAME window, it seems to also activate even if MAME itself is not in focus. This change ensures that a stray debugger sequence in a completely unrelated application won't cause the user to be dropped in the debugger (debugger\debugwin.cpp and win\debugwininfo.cpp). . Have print command insert spaces between numbers (debug\debugcmd.cpp) . Fixed symlist default CPU: When executed with no parameters, symlist was displaying the symbol tables for the first CPU and the debugger built-in globals. Defaulting to the first CPU like that didn't make sense. It now displays the symbol tables for the VISIBLE cpu and the debugger built-in globals (debug\debugcmd.cpp). 0.278 - New games: Block Fever, Majiang Xingyun Shenlong (China, D121), Super Shanghai 2001 (set 1, red board), Trapeze / Trampoline and Victory Paradise II (V9) - New Working games: Alantin - Aladdin's Magic Lamp, Bandit (US prototype), Bomberman (Version 6.6, Avraam bootleg), Bomberman (Version 6.6, J.T. bootleg), Dark Seal (8-liner), Huahua Shijie 5 / Feixing Shijie (V107CN), Kaimen Hu, Master Boy Version II (Italy, set 2, checksum 629B), Qiji 6 (V118CN), Super Shanghai 2000 - Wrestle Fiesta (30% bonus, red board), Super Shanghai 2000 (set 1, green board), Super Shanghai 2000 (set 2, green board) and Zuqiu Wang - King of Football - New Non-Working games: 3 Mini, Action, AV-Mahjong Yanchana Koneko (Japan Ver 1.01 1990/08/23), Bai Bian Dou Dizhu, Biorhythm (For-Play), Challenge Golf (J 990326 V1.000), Chanbara Kids (Japan), Chaoji Bie Qi (V205CN), Chaoji Gan Dengyan (V110CN), Dahua Xiyou (V201CN), Dingji Dou Dizhu, Dou Dizhu II, DS-5000 Driving Simulator, Extrablatt, Fengdou Jiaqiang Ban, Fengkuang Dou Dizhu, Flashback, Gangbao Sifang, Huangpai Zuqiu Plus / Chaoji Shuangxing Plus (V103CN), Huo Qilin (V116CN), Jan Mu, Jin Huangguan 3-dai (V445CN), Jungle King 2004 (V101US), Loto-Play (set 1), Mahjong Jongoh (Japan, TTL800-03-04), Mahjong Sweet Academy (Japan, TSM010-002), Mahjong The Mysterious World Returns (Japan), Majiang Zhengba (V103CN), Majiang Zhizun (S100CN), Mega Turbo 2, Mueve, Mushiking The King Of Beetles 2003 Second (Japan), Neo Carnival, Ob-La-Di, Paint 'N Puzzle Super, Piaoliang Jinhua, Piaoliang Jinhua 2, Play 4 Texas Hold'em, Progressive Clown Magic, Pub Time Darts v1.4, Royal 5+ (V101US), San Da Ha, Shenzhou Jielong, Special Dream 9 (v1.0.7G), Super Match 2003 (Version 3.1 2003-11-04), Super Multi (DOB), System 3000 Kramergame Poker (encrypted set 4), System 3000 Kramergame Poker (encrypted set 5), SystemSP Factory Check Server, Tian Sheng Hao Shou (V101CN), Top Draw (encrypted, set 1), Turbo Poker 1 (set 1), unknown Kramer Poker (encrypted), Vision Quest, Wakeng, Xin Jin Huangguan (V400CN) and Xiyou Douniu (S110CN) - New clones: 005 (earlier version?), Allfred, Animal Wonders (ver A900 66), Animal Wonders (ver A900, Bicigo bootleg), Asterix und Kleopatra, Bang! (version 2, checksum 140E), Bang! (version 2, checksum D35D), Big Karnak (ver. 1.0, checksum 1e38b94), Break Thru (World), Cal Omega - Game 7.9b (Arcade Poker, bootleg?), Chaoji Da Manguan II (China, V765C), Cherry Bonus V Five (V1.4), Cosmic Battle (Recreativos Franco bootleg of Space Invaders), Double Axle (US, Rev 1, set 2), Dream 9 Flower (v1.00c, set 2), Fantastic Spacians (hack of 'Super Galaxians'), Flower (Japan), Football Power (version 1.4), Football Power (version 4.6), Funny Land de Luxe (W2 set), Funny Land de Luxe (W4 set), G-LOC Air Battle (Japan), Glass (development PCB), Glass (ver 1.0, Break Edition, checksum 2B43D337, 10 Nov 1993), Glass (ver 1.0, Break Edition, checksum 6241CD67, 16 Nov 1993), Glass (ver 1.0, Break Edition, checksum EBCB0BFE, 22 Nov 1993), Glass (ver 1.1, Break Edition, checksum 3D8A724F, Version 1994, unprotected, Korea), Glass (ver 1.1, Break Edition, checksum 49D5E66B, Version 1994, set 1), Glass (ver 1.1, Break Edition, checksum D7AF5496, Version 1994, US), Glücks-Stern, Goldart (France, Covielsa license), Goldart (Germany), Goldart (PIC16C54, France, Covielsa license), Goldart (PIC16C54, Germany), Goldart (PIC16C54, Portugal), Goldart (PIC16C54, Spain), Goldart (PIC16C54, United Kingdom), Goldart (United Kingdom), Grand Hand, GTI Double or Nothing Draw Poker (GoT PCB, set 1), GTI Double or Nothing Draw Poker (GoT PCB, set 2), GTI Double or Nothing Draw Poker (GoT PCB, set 3), Gun Gabacho (Japan, version 2, checksum 1C8C), Gun Gabacho (Japan, version 2, checksum B75B), Happy Farm (Ver. IN.01.02.B), Happy Pierrot (V987271), HI-LO Double Up Joker Poker (set 2), In The Hunt (Korea?), Janpai Puzzle Choukou (Japan 010820 Publicity), Jungle King (V105US), Juwel, Karo As, Knights of Valour / Sanguo Zhan Ji / Sangoku Senki (bootleg, ver. 112CN?), Knights of Valour Plus / Sanguo Zhan Ji Zhengzong Plus / Sangoku Senki Masamune Plus (bootleg, ver. 117CN?), Kuaile Xiyou Ji (V102CN), Lady Bug (bootleg on Galaxian hardware, encrypted), Last KM (ver 1.0.0227, checksum 747a7443, prototype), Little Witch (Ver. EN.01.A), Lizard Hunt (unprotected, checksum 25A83609), Long Hu Bang II: Cuo Pai Gaoshou (China, V127C), Long Hu Zhengba 2 (China, VS210M), Long Hu Zhengba 2 (China, VS220M), Loto-Play (PIC16C54), Loto-Play (set 2), Loto-Play (set 3), Loto-Play (set 4), Lucky Star (newer Z180-based hardware, set 2), Magic Bomb (Ver. BR71.A, 30/05/14), Mahjong Gal no Kokuhaku (Japan, set 2), Mahjong Reach Ippatsu (Japan, NM526-01), Maniac Square (unprotected, version 1.0, checksum BEAE), Master Boy (1987, Modular System), Master Boy (1987, Z80 hardware), Master Boy (Italy, set 3, checksum 6918), Master Boy (Italy, set 4, checksum 680C), Master Boy (Italy, set 5, checksum E84C), Master Boy (Italy, test version), Master Boy (Spain, set 3, checksum 6070), Master Boy (Spain, set 4, checksum CC6D), Master Boy (Spain, set 5, checksum DF11), Master Boy Olympic (Italy, set 1, checksum 77A8), Master Boy Olympic (Spain, set 1, checksum 7309), Master Boy Olympic (Spain, set 2, checksum 741B), Master Boy Version II (Italy, set 1, checksum 618F), Master Boy Version II (Spain, set 1, checksum 5A0B), Master Boy Version II (Spain, set 2, checksum 5B1D), Monkey Land (Ver. EN.20.B), Moon Cresta (SNK), Multi Multi, New Splash (ver. 1.4, checksum A26032A3, Korea, set 1), New Splash (ver. 1.4, checksum A26032A3, Korea, set 2), Next Century (bootleg of Defender), Poker (Version 50.02 ICB, set 3 alt), Power Drift (Japan, Rev C), Pro Cycle Tele Cardioline (Salter fitness bike, older hardware, ver. 1.0, checksum 1AF9), Pro Cycle Tele Cardioline (Salter fitness bike, older hardware, ver. 1.0, checksum 5678), Pro Cycle Tele Cardioline (Salter fitness bike, older hardware, ver. 1.0, checksum BAE7), Pro Cycle Tele Cardioline (Salter fitness bike, unknown version), Pro Cycle Tele Cardioline (Salter fitness bike, V.1.0, checksum 3523), Pro Cycle Tele Cardioline (Salter fitness bike, V.1.0, checksum DECA), Pro Stepper Tele Cardioline (Salter fitness stepper, older hardware, ver. 1.0, checksum 6D94), Pro Stepper Tele Cardioline (Salter fitness stepper, older hardware, ver. 1.0, checksum 8BF3), Pro Stepper Tele Cardioline (Salter fitness stepper, older hardware, ver. 1.0, checksum 8E5A), Pro Stepper Tele Cardioline (Salter fitness stepper, V.1.0, checksum 2B83), Puzz Loop 2 (Japan 010201 Publicity), Quick Shots (ver 1.0, checksum AD0C), R-Shark (set 2), Radikal Bikers (prototype), Riviera Hi-Score (2131-08, U5-3C), Riviera Hi-Score (2131-08P, set 1), Riviera Hi-Score (2131-08P, set 2), Rock'n MegaSession (Japan, ver 1.0), Rollergames (Asia), Sasuke vs. Commander (set 2), Shuang Long Qiang Zhu 2 VS (China, VS203J, set 2), Speed Up (version 2.00, checksum 491B), Speed Up (version 2.00, checksum E145), Speed Up (version 2.10, checksum 9536), Splash (Modular System, ver. 1.0, checksum A6C431A4, non North America, uncensored), Splash! (ver. 1.1, checksum 4697D2BF, non North America), Splash! (ver. 1.3, checksum E7BEEBFA, Korea), Splash! (ver. 1.3, checksum E7BEEEFA, North America), Splash! (ver. 1.3, checksum E7BEF3FA, World), Squash (newer PCB), Squash (USA, ver. 1.1, checksum 015b6f8a), Sunny, Super Shanghai 2001 (set 2, red board), Super Splash (Ver 1.0, checksum 2104394E, 27 Oct 1993), Super Splash (ver 1.1, Break Edition, checksum 59D5E66B, Version 1994), Super Star 97 / Ming Xing 97 (version V153A), Surf Planet (version 1.0), Surf Planet (version 1.2), Surf Planet (version 3.1), Tai Pan Money, Target Hits (ver 1.1, checksum B1F7), Tarzan (V106FA), Tekken 3 (Japan, TET1/VER.D), TH Strikes Back (non North America, version 1.0, checksum 0206DF91), TH Strikes Back (non North America, version 1.0, checksum 0206DF91, without title), TH Strikes Back (non North America, version 1.0, checksum 020E154A), TH Strikes Back (non North America, version 1.0, checksum 020EB346), Thunder Hoop (non North America, ver. X, checksum 00000020, set 1), Thunder Hoop (non North America, ver. X, checksum 00000020, set 2), Thunder Hoop (North America, ver. C4, checksum 02A0A008), Thunder Hoop (ver. 1, checksum 02a09fcd), Thunder Hoop (ver. X, checksum 00000020, without title), Top Draw (encrypted, set 2), Top Draw (encrypted, set 3), Top Draw (encrypted, set 4), Touch and Go (non North America, checksum 056533F0), Touch and Go (non North America, checksum 056C138F), Touch and Go (non North America, checksum 056C2336), Touch and Go (North America, checksum 05737572), Turbo Poker 1 (set 2), Turbo Poker 2 (set 4), Turbo Poker 2 (set 5), Turbo Sunny, World Rally 2: Twin Racing (version 09-06, checksum 50A2), World Rally 2: Twin Racing (version 09-06, checksum 7BE1), World Rally 2: Twin Racing (version 20-07, checksum B1B8), World Rally Championship (version 1.0, checksum 3D84, 02 Apr 1993), World Rally Championship (version 1.0, checksum C448), World Rally Championship (version 1.0, checksum DE0D, 08 Nov 1993), World Rallye Championship (prototype on Modular System, 23 Nov 1992), Xor World (different hardware, ver 1.1, checksum 3333BA, prototype), Xor World (different hardware, ver 1.1, checksum 333462, prototype), Xor World (Modular System, prototype, set 1), Xor World (Modular System, prototype, set 2), Xor World (ver 1.2, checksum DB5D10, prototype) and Zulu (Ver. 2.04J, Feb 3 2004) - New PinMAME games: Bad Cats (LF-1), Cue Ball Wizard (Spanish), Super Mario Brothers (pinball, Spanish, set 1) and Super Mario Brothers (pinball, Spanish, set 2) - New drivers: biorhythm_fp.cpp, blockfvr.cpp, clownmgc.cpp, ds5000.cpp, lotoplay.cpp, mastboyo_ms.cpp, megaturbo.cpp, ncarrera.cpp, neocrnvl.cpp, play4texash.cpp, pntnpuzls.cpp, sealy_z80.cpp, sshanghai.cpp, wrally_ms.cpp and xorworld_ms.cpp - Removed games: Break Thru (bootleg), Desert Patrol and Power Shovel ni Norou!! - Power Shovel Simulator (v2.07J, alt) - New devices: dsb2_device, dsp16, dsp16a, i80286, i80960ka, microphone, pana_ju_386 and qsound - Bob Zed (What's new): https://youtu.be/2DxYdNeaOns - CPU . Analog Devices ADSP21062 'SHARC': Correctly align 32-bit data transfers using PM bus. Fixes glitchy characters in Fighting Vipers and Sonic the Fighters. Use mask for 32-bit writes over PM bus (sharc\sharcmem.hxx). . Data East DECO16: Turn off verbose log flag (m6502\deco16.cpp) . Hitachi H8: Wrap channel to avoid crash if end channel gets set lower than current channel (h8\h8_adc.cpp). Fixes 'Final Furlong' crashes during attract mode (ID 09160). . Hitachi HD6309/E: Correct branch cycles in native mode (m6809\base6x09.lst) (ID 09174) . Hitachi SH7709: Simulated SH-3 SCI transmitter emptying (sh\sh3comn.cpp), fixes 'Muscle Ranking Kinniku Banzuke Spray Hitter' progresses past initial loading but stops at a black screen (ID 09188), while 'Run Run Puppy' freezes at the four blue squares. Fix for SH3/SH4 DRC regression in MAME 0.277, which prevented generate_checksum_block() being called for RAM areas. . Intel 80960KA/KB: Reduced padding area size when servicing interrupt. Prevents crash due to stack overflow during ranking screen in Virtual-On. Make shli produce identical value to shlo because later models where they may differ are unsupported. Distinguish KA and KB device types (i960\i960.cpp). . Intel I386: Check for fault before setting register. Check cpl in verr and verw (i386\i386.h, i386op16.hxx and i386op32.hxx) . Motorola MC6801: Correct the ICR read handlers (m6800\m6801.cpp) . Motorola MC68000: Make pc-relative disassembly a little nicer to read (m68000\m68kdasm.cpp) . ST0016: Adjusted some visible areas and added some notes . Zilog Z80 . Optimized detection of attention needed in service step. Removed internal TADR variable - effective addresses can be passed around as needed. Changed macro call syntax in generator input. Flatten 16b rw operations in order to avoid vars manipulations. . Renamed LUT fields. Handled flags lazily. Set the flags after loadstate. Support accessing F register in debugger. Use z80 terminology for the flag vars. Fixed debugger h flag. Don't clear all input pins state at reset. - SOUND . AdLib Music Synthesizer Card: Use official product name for device string. Removed unneeded r/w trampoline. . Atari C012294 POKEY . Replaced fake serial port emulation with timer-driven line-level interface, most (MESS) Acid800 serial tests pass now (sound\pokey.cpp). . Emulated two-tone and force break serial output modes. Fixed logging message. . AY-3-8910A PSG: Removed unneeded set_volume (update the few drivers that use it to set_output_gain) (sound\ay8910.cpp; cinematronics\cinemat_a.cpp, midway\midway.cpp, pinball\icecold.cpp, shared\ballysound.cpp and zaccaria\zaccaria_a.cpp). . ICS2115 WaveFront Synthesizer: Updated stream before r/w and some irq flag fixes (ID 09031) . K007232 PCM Controller: Log wav data at keyon instead of at every stream update. Removed really old changelog (sound\k007232.cpp). . Motorola MC6809: Use < symbol for direct addressing (m6809\6x09dasm.cpp). Don't reset physical input pins state at device_reset (m6809\m6809.cpp). . OKI MSM6376 ADPCM: Fixed regression and small cleanup (sound\okim6376.cpp) . QSound (HLE): Adding parent rom reference to qsound, function body in cpp file (sound\qsoundhle.cpp). . Samples: Set stream samplerate to sample samplerate. Fixed off by 1 error when interpolating. Fixed new regression with start_raw at very low samplerate. Updated notes. Removed unneeded samples_start callback (sound\samples.cpp). . Sega 68k-based Digital Sound Board 2: Hookup DSB2 MPEG device (sega\dsb2.cpp) (flsbeats, topskatr, daytona2, dayto2pe, srally2, spikeout, spikeofe and swtrilgy) . Sound Blaster: Added command 0x80 (Play silence). Hookup command logs thru logmacro.h (isa\sblaster.cpp) - DEVICE . Cassette tape image: Added more items to savestate. Small cleanup (imagedev\cassette.cpp). . DECO Karnov Sprites: Correct 16x32 size flag and update notes (dataeast\deckarn.cpp) . Floppy: Reimplemented HxC floppy emulator HFE format. Do not exit for an unknown encoding, just inform (formats\hxchfe_dsk.cpp) . I2C Memory: Don't enter start condition except from idle state (machine\i2cmem.cpp) . Intel 8251 USART: Implemented internal serial interrupt for V50 (v5x_scu_device; machine\i8251.cpp). . Intel 8255 PPI: Removed unreachable code (machine\i8255.cpp) . K007121 Sprite/Tilemap Controller: Sprite list and related fixes: I was recently doing some testing on a Contra board around the 007121 IC and found the following: There is no sprite limit, but instead a 264 8x8 sprite block limit. There is no buffering of sprite data on the attached SRAM. From this the follow changes have been made: Use the 264 8x8 sprite block limit to determine number of sprites that should be rendered. Removed sprite ram buffering and move logic for picking sprite ram bank into k007121.cpp. Comment updates related to the limit and non-buffering. Additionally the high bit of tiles are stored in one of the control registers, if this bit changes all tiles should be marked as dirty. These changes fix a number of sprite related issues on games using this chip: Missing sprites in combatsc and left over sprites in contra. Added sprite buffer (otherwise 1 frame sprite lag in eg. hcastle, contra, labyrunr). Updated notes. Do flipscreen and dirty tilemap marking with callbacks. Update notes. Avoid shift with negative amount in drivers. Added interrupts and scrollram (konami\k007121.cpp). . K051960, K053244/053245 and K055673 Sprite Generator: Small cleanup . K051960 Sprite Generator: Disable shadow config bit 0 (it was only used in Chequered Flag and Ultraman, and both needed a workaround) (konami\k051960.cpp). . Konami 051733 math chip: Added NMI timer. Fixed divide by 0 and sqrt off-by-1. Changed rng to machine().rand(). Added lfsr and improved collision detection. No need to shift lfsr by 2. Removed old notes about then-unknown reg 6. Shorthand variable types. Simpler sqrt function (result is same). Improved reg 7. Division appears to be signed, fixes erratic gameplay logic in Devastators (ID 05726). . MC68681 DUART: Ignore TX enable if already enabled (machine\mc68681.cpp) . Mitsumi ISA CD-ROM Adapter: Shift the end of the disk by 150 sectors like the start (isa\mcd.cpp) . MOS 6551 ACIA: Correct transfer data from RSR to RDR. On real hardware, this transfer is not atomic, but done bit-by-bit on the last clock cycles of a byte reception. Do the same, so bugs in programs are not hidden from developers. Also fixes another discrepancy with reality: When the RDR is full and a byte arrives, it is transferred to the RDR, and the Overrun flag is set. Our implementation did set the flag but left the old byte in the RDR. . Sega 315-5881 Encryption: Cursory cleanups . Serial EEPROM: Added configuration parameter for DO tristate level (machine\eepromser.cpp) . Sony LDP-1450 HLE: Added preliminary support for custom On Screen Text mode (still needs checking against hardware) (machine\ldp1450hle.cpp) - aleck64.cpp: Added preliminary savestates (rsp\rsp.cpp) - alg.cpp, arsystems.cpp, cubo.cpp, mquake.cpp and upscope.cpp (Amiga): Partial revert of MAME 0.274 (Impose DDFSTOP HW limit on bits 15-8 writes). DDFSTOP mask was correct before and this workaround broke ar_ldrb. Impose upper masks for AGA/ECS chipset only (amiga\amiga_m.cpp). Fixes graphics in Leader Board Golf corrupted (ID 09176). - apache3.cpp, cyclwarr.cpp and roundup5.cpp: Minor source reorganization - astrcorp.cpp: Added sprite banking for the newer games and added "CPU code" for Wicked Witch (Ver. AA.01.A). - blktiger_ms.cpp: Fixed palette hookup - bloodbro_ms.cpp: Fleshed out the driver. Still missing sound and sprite/tilemap priorities. Added sound by slightly adapting the implementation in seibu\raiden_ms. - bmcpokr.cpp: Better inputs for 'Xingyun Dou Dizhu' and cleaned up some DIP switches. Got rid of indirection on bitmap. - boramz80.cpp: Started fleshing it out. Added inputs for the pkboram set. Added colors (xGRB format; emu\emupal.cpp). Added DIP definitions for other sets that boot. Hooked up coin counters. TODO: Black screen after first attract cycle (interrupts?). Colors, inputs and outputs. Decryption for tpkborama. Are the tpkg2 GFX ROMs correct for that set? - bwing.cpp: Correct bgpen and paletteram read - carrera.cpp . Driver improvements. Fixed color bipolar PROM decode and palette calculation, based on real games screenshots. Added NVRAM support for all games. Created default NVRAM for Carrera and clones Bomberman sets, with harcoded critical values/registers needed to get the games working. Workaround that fixed the titles corruption for both Carrera and clones Bomberman sets. Inputs and DIP switches. Fixed Alantin colors, based on the real game screenshots. Added technical and game notes. . Promoted alantin, drkseal, bsebmanbl and bsebmanbl2 to working. - cps1.cpp: Changed 'Street Fighter II': Champion Edition (RE, bootleg)' and 'Street Fighter II': Magic KO Turbo!! - Nightmare Crack' from clones of sf2 to clones of sf2ce. - dec8.cpp . Updated note about screen raw params . Invert vblank port in Real Ghostbuster. There is no ACK for NMIs. NMI on the 6309 comes from the 74LS00 @ 13C (dual input NAND gate) where input 1 is vblank and input 2 comes from a latch (74LS273 @ 3A). The latch gets updated with writes to 0x3840, which is what you write to to enable/disable NMI. So there is no hardware logic to ack NMIs. Added manual sprite DMA trigger. . Correct Gondomania and Garyo Retsuden buffered spriteram. Fixed Gondomania (US) 2P crashes (ID 09089). - ddenlovr.cpp, dynax.cpp and royalmah.cpp: Removed Payout assignments as they match the new default anyway. - falgas_m89.cpp: Used MACHINE_IMPERFECT_SOUND for the sets that do play sounds - gaelco2.cpp: Added PLD dumps to aligator, bang, footbpow, maniacsq, radikalb, snowboar, speedup, surfplnt, touchgo and wrally2 and verify bruteforced ones - gms.cpp . Mahjong keyboard, joystick and buttons, coin, key-in, service and bookkeeping work for all mahjong games now. . Hooked up mahjong keyboard for yyhm. Improved DIP switch labels for cjdlz. Identified nine DIP switches for ssanguoj. . Better inputs: Added mahjong keyboard option for Baile 2005. Hooked up key-out input for games with mahjong keyboard hooked up. Hooked up payout input in joytstick mode for games with mahjong keyboard hooked up. . Added double up game functions to input names. Improved I/O: Hooked up hopper and counters. Added payout key in mahjong matrix. Reworked inputs and DIP switches for San Se Caishen: Use conventional poker terminology, hooked up mahjong keyboard and better DIP switch labels. Improved joystick controls and added mahjong keyboard option for Jinpai Suoha - Show Hand. . Organise buttons so Big comes before Small. Added missing Key Out, Payout and hopper inputs for Super 555 and improved input names. Use poker input types for Baile 2005. . Fixed inputs and worked out lamps for Ball Challenge and Creatures of the Sea . Added internal layouts for most games with lamps. Super Ball 2001, Super Card 2 in 1, Jinpai Suoha - Show Hand, Ball Challenge and Creatures of the Sea now have clickable layouts with button lamps. Also updated a couple of input names and comments. . Added multiplexed EEPROM interface that works for most games (unfortunately, this does not eliminate the need for 68K ROM patches). - hikaru.cpp: WIP checkpoint - igs_m027.cpp . Added I/O, internal layout, fixed some inputs and hooked up sound ROM banking for clone 'Chong Chong Leyuan (V100CN)'. Changed Chong Chong Leyuan sound chip clock to 2 MHz. Speech samples and fanfares sound a lot more natural this way. . Added I/O for the 'Kuaile Xiyou Ji' clones. It's kind of similar to Tarzan Chuang Tianguan 2 Jiaqiang Ban, but with different button assignments, particularly in mahjong panel mode. Not promoting to working as they regularly give "hopper empty" errors in "joystick" mode, possibly due to not liking the timings from our hopper device. The games are playable if you use Key-Out to pay out winnings. Added internal ROM of IGS027A ARM based MCU from clone (V102CN) to clone (V104CN). . Added a few missing inputs for tct2p, klxyj102cn and klxyj104cn. And also added a more detailed comment explaining mahjong panel controls for tct2p. Added Oki banking for jking02 + clones and tct2p - igs_m027_033vid.cpp: Adjusted Oki banking so that it works for huahuas5. Hooked up hopper. Added coin counters. Promoted huahuas5 and qiji6 to working. - igs_m036.cpp: Added decryption tables for most sets - igs011.cpp . Fixed inputs for clone 'Long Hu Bang III: Cuo Pai Gaoshou (China, V242C)' (same as lbh2). Also identified the auto reach DIP switch for lhb2/lhb3 and cleaned up some code. Filled in some of the lhb2 DIP switch settings that aren't drawn properly from a hardware screenshot, cleaned up slightly and updated known issues comment for lhb3. . Improved inputs and DIP switches for Xingyun Manguan (China, V651C, set 1) and clone Wanli Changcheng (China, V638C). Determined what some of the characters that can't be seen in lhb2 DIP switch test are supposed to be. . Fixed video RAM handling. Fixes numerous graphical glitches, including missing characters in service mode (ID 08993), bad colours on vbowl game over screen, glitchy "ODDS" banner remaining on-screen in xymg, incorrect colours on copyright years on titles screens for lhb and clones, and more. There's only enough video RAM for four 8-bit layers. The "depth" register configures how many 8-bit layers are required (zero to four), and the remaining buffers are treated as pairs of 4-bit layers. For example xymg uses one 8-bit layer and six 4-bit layers. The CPU always sees an 8-bit view of video memory, and must handle updating the correct nybble to draw to an individual 4-bit layer. The blitter always uses 4-bit source data for 4-bit layers, but can use 4-bit or 8-bit source data for 8-bit layers (it also supports 5-bit source mode with the top bit read from a separate ROM area). Fixes some graphic characters missed during play in dbc, lhb, lhb2, lhbv33c, xymg and wlcc (ID 02131) (ID 02152). Fixes extra graphic during double game in xymg and wlcc (ID 02185). . Added range check on blit destination. Just log a message if a game tries to blit to an out-of-range layer for the current configuration. Also set vertical blanking time and total lines based on measurements for nkishusp, and always blit to the whole 512*256 area as in principle the CPU can read areas that aren't visible on-screen. . Hooked up hopper and fixed some inputs and DIP switches. . Reverted interrupt frequency changes from MAME 0.144u3. The commit doesn't provide a justification for changing the periodic interrupt frequencies, implying it's just cleaning up use of deprecated functionality. The change from 120 Hz to 240 Hz for systems using the "lhb" configuration caused dbc, lhb33c and ryukobou to stop recognising coins reliably (ID 05678). Despite the comments added to the machine configuration functions, changing the frequency of these timers does not change the music tempo. This changes the periodic timer frequencies back to what they were previously. The timing is still suspect. We really need someone to hook some of these games up in a logic analyser to get proper video timings and work out where the periodic interrupts actually come from. . Miscellaneous changes: Implemented video suppress bit in blitter "depth" register (used to blank the screen while setting up scenes that take multiple frames to draw). Reduced audio output levels to avoid hitting the compressor at least most of the time. Optimised blit and screen update a little. Split class up a bit more, made more things private, made a sub-map function for the blitter registers. . Correct address maps for clones Long Hu Bang III: Cuo Pai Gaoshou (China, V242C) and Te Yi Gong Neng (China, V632C). Avoids crashes. - igs017.cpp: Added NVRAM support to most sets - jaguar.cpp: Adjusted clock of the MIPS based games to the actual chip type - koftball.cpp . Identified take/w-up/high/low for King of Football . Make known inputs match test mode. Added hopper and credits in/out counters. Identified 'In-Game Music' and 'Odds Rate' DIP switches. Correct DIP switch polarity for Jinxiu Zhonghua and clone Kaimen Hu. . Added koftball counter outputs. Also identified a DIP switch and added a comment about soft settings. Split out common parts of address map, better inputs for jxzh and kaimenhu. . Identified a few DIP switches and marked games as having uneumlated protection. Promoted koftball and kaimenhu to working. . Updated drawing routine to work correctly for available dumps. More studying needed. Slightly less hacky layer enable logic. - konamim2.cpp: Various 3DO DSPP fixes. Register STATE_GENPCBASE so debugger will recognize CPU. Limit ACC to 20 bits in debugger state display. Use util::sext for sign extension in non-DRC paths. Note that this changes behavior because positive values were sometimes not truncated to 20 bits previously. Make disassembly slightly less broken, though still very much a stub. Added a real disassembler. Tweak mnemonics in disassembler (dspp\dspp.cpp and dspp\dsppdasm.cpp). - lgtz80.cpp: Decoded GFX and added preliminary video emulation. Improved reels positioning. Added ADPCM banking, expand NVRAM area and updated notes. - mainevt.cpp: Added note about htotal. K051733 division appears to be signed. Fixes erratic gameplay logic in Devastators (ID 05726). - megadriv_acbl.cpp: Simulated coin latch for clone Bare Knuckle III (bootleg of Mega Drive version) - model1.cpp: Added TGP sin/cos lookup tables - model2.cpp . Cleaned up various things. Prevent infinite loop in geo_parse() (sega\model2_v.cpp). MAME no longer hangs when exiting clone Sonic the Fighters (Japan) service menu. . Improved TGPx4 interpreter. Most Sega Model 2C-CRX games are now working with 3D graphics (mb86235\mb86235.cpp). Use std::clamp for luminance (sega\model2_v.cpp). Added TGP sin/cos lookup tables. Sound comms: Model 2B accesses SCSP via address 0x9C0000, all others access SCSP/Model 1 sound board via 0x1C80000. . Renderer improvements. Texture mirroring is now implemented correctly (carpet in clone Sonic the Fighters and pitch markings in Virtua Striker). Fixed broken textures for trees in Sega Rally and mountain in Super GT 24h (sega\model2.cpp). . Implemented 4 players support in Air Walkers. Verified and added proper communication ROM board program ROM for the Over Rev sets. - model3.cpp . Massage UART comms hack for sound in Sega Rally 2. Fixed black screen regression in Sega Rally 2 (sega\m3comm.cpp). Fixed memory test, allow lostwsga and lemans24 to boot again (ID 08790). Hookup lostwsga player 2 trigger and offscreen detect. . Hookup main board DSW bank. Implemented proper stencil mask for 2D layer (sega\model3_v.cpp). System port 8 is just an irq check strobe. Enable colormod for vs2 radar/cursors (sega\model3_v.cpp). Fixed spikeout/spikeofe bootup. Hookup model3 diplocations. Updated PCB infos. Undo right-aligned gamelist entries. - namcos21.cpp: Clear screen to palette index 0 instead of 0xff - nbmj8688.cpp: Improved DIP switches for Crystal Gal and Crystal Gal 2 - pgm.cpp . Use retry_access to sync on reads for 2-way sound comms . Updated ICS2115 WaveFront Synthesizer stream before r/w and some irq flag fixes (sound\ics2115.cpp). Fixes an error appears onscreen in kovsh and clones after a while followed by game hanging (ID 09031). - polepos.cpp: Custom audio device cleanups and fixes. Save state variables. Eliminate use of absolute tag by making device tag the same as that of the memory region. Use finder for memory region. - popeye.cpp: Simplified Popeye and Sky Skipper background code (nintendo\popeye_v.cpp) - sealy_z80.cpp: Preliminary GFX decoding, borrowed from sealy_m16c.cpp. - segac2.cpp: 'Sega DASS' device (Dual Active Seat System) is unemulated, disable cpu for now (sega\m50dass.cpp). - segahang.cpp, segaorun.cpp, segaxbd.cpp, segaybd.cpp and tmnt.cpp: Lower overall volume (even lower for segaxbd due to rear speakers clipping if user hw is plain stereo). Put rear speakers in the rear for segaxbd.cpp. - segas32.cpp: Separate the speakers that were in different cabinets (multi32). Lower overall volume. - shadoww_ms.cpp, slapfght_ms.cpp and splash_ms.cpp: Added PLDs and PROMs - stella8085.cpp: Start mapping peripherals. Update IC notes. More memory map improvements. - taito_z.cpp . Improved direct-mode poly handling and texmode 3 handling. Rework direct-FIFO handling again to avoid a crash. Use algorithms rather than memcpy. . Added new sprites roms to clone Double Axle (US). Note: These 2 ROMs known to come split on a Taito ROM 16 PCBOARD. . Dumped PLDs for Battle Shark and clones. Mark clone Raizin Ping Pong (Ver 2.01 J) HDD as BAD_DUMP. . Removed clone Power Shovel ni Norou!! - Power Shovel Simulator (v2.07J, alt), it was a bad dump of pwrshovl (ID 09185). - taitosj.cpp: Workaround for large speed loss (sound\discrete.cpp and taito\taitosj.cpp) - tx1.cpp: Removed set_output_gain to nonexistent output (tatsumi\tx1_a.cpp) - Bandit (US prototype): Fixes towards bandit pri == 7 uses. Promoted game to working. - Beezer: Automatically detecting streaming. Removed dac76::configure_streming_iref() (sound\dac76.cpp). - Blockout (TAX): Added gfx notes - Card Line: Use poker input types. Fixed bottom of the screen has info from the top (ID 09175). - Chequered Flag: Improved highlights - Cherry Master I: Brought clone Super Seven (ver. 2.3) to probably playable state. Left as MACHINE_NOT_WORKING as precaution until someone who can play these games verifies I/O. - Circus Charlie: Correct cpu clock and added screen raw params. Added buffered spriteram. Small cleanup to source code organization. - Cobra Command: Do not trigger input lines on other not-yet-initialized devices in device start for clones Cobra Command (M.A.C.H. 3 hardware, set 1/2) (shared\gottlieb_a.cpp) - Columns '97: Demoted game to MACHINE_NOT_WORKING (ID 08947) - Combat School, Contra, Fast Lane, Haunted Castle, Labyrinth Runner and MX5000 . K007121 Sprite/Tilemap Controller: Sprite list and related fixes (konami\k007121.cpp) . Added sprite buffer (otherwise 1 frame sprite lag in eg. hcastle, contra, labyrunr). Added screen raw params to Konami drivers with K007121. Do flipscreen and dirty tilemap marking with callbacks (konami\k007121.cpp). Fixed cocktail mode and player 2's screen is only partially flipped in all sets in labyrunr.cpp (ID 01878). Fixed player 2 cocktail mode flip screen graphics glitch in Fast Lane (ID 08439). Fixed incorrect behavior of the flipscreen in Contra (ID 00402). . Fixes Contra continue countdown sometimes leaves sprites behind (ID 00401) and the text "Player 1 (Nick)" or "CPU (Joe)" in Combat School disappear (ID 00185). Assume Combat School vtotal=264 (refresh rate is same as before). . Added missing watchdog period to Contra. Correction to bgcolor for contra (ID 03591), fastlane, flkatck and labyrunr. Correct pixel clock for all K007121 drivers. - Crazy Climber: Dumped PROM internal to the CPU module. Used PROM contents to decrpyt cclimber encrypted sets. - Desert Patrol: Added bd3.d1 prom (Produce the waveform of a human scream. Chip type is 8574 or MM6301-0J). Removed dpatrol since it's an overdump. - Dream Crown: Added controls - Enduro Racer: Fixed PCM sample ROM loading for clone Enduro Racer (bootleg set 1) - Flower: Tabulated the system definitions again - Golden Star: Got clones Super Nove (Playmark, V. M271B) and Super Nove (Playmark, V. M271C) to do something - Juno First: Correct cpu clock - Lightning Fighters: Removed NMI connection to sound CPU as it does not exist on schematics. The sound is not affected. - Malzak: Fixed some Flash and Hold control issues (video\saa5050.cpp) - Master Boy: Sorted out Master Boy sets and added missing ones. Added correct MCU ROM for Italian Version II sets. Verified old extracted MCU ROM for Spanish sets is 100% good. Promoted clone Master Boy Version II (Italy, set 2, checksum 629B) to working. - Mortal Kombat 4: Correct rom size for u2 of clone Mortal Kombat 4 (version 1.0) - New Carrera - Version 2000: Created a new driver for New Carrera. The MCU behavior has been simulated to make the game playable. The MCU also has full range memory access, so it can read ROM and Read/Write NVRAM, can draw graphics, manages reels display animation and inputs. Added more documentation, technical notes, more cleanups and fixed copyright. - Ninja Emaki: Redumped clone Ninja Emaki (Tecfri license) - Pac & Pal: Fixed 'Bonus Life' dipswitch - Phoenix (Amstar, set 1): Dumped the palette PROMs for Next Fase (bootleg of Phoenix) - Rally X: Verify clone Danger Track (bootleg of Rally X) PROMs - Super Basketball: Assume cpu clock is 1.536mhz - Super Pool 99: Fixed game not start at boot with bad ram message (ID 09099) - Super Shanghai 2000: Rearranged Super Shanghai 2000 series and added to a new driver - Promoted Super Shanghai 2000 - Wrestle Fiesta (30% bonus, red board), Super Shanghai 2000 (set 1, green board) and clone (set 2, green board) to working. - Tattoo Assassins: Added set_maximum_quantum to prevent sound glitches - Touch and Go: Sorted out sets and added missing ones - U.S. Championship V'ball: Demoted clone U.S. Championship V'ball (bootleg of Japan set) with MACHINE_IMPERFECT_SOUND - Ultraman: shadows_w is actually irq enable - Venture: Use the 1 Coin/1 Credit setting listed in the manual for Venture by default (ID 09177). - Wacky Gator: Internal layout improvements (layout\wackygtr.lay) - Wonder Boy III - Monster Lair: Added MCU dump for clone Wonder Boy III - Monster Lair (encrypted bootleg) - World Rally Championship: Improved set ordering based on research - XXX (Modular System): Added missing PROMs and PLDs to several Modular System games (automatm, bigkarnkm, cabalm, drgninjam, eurogael, ffantasym, raidenm, secretagm and tokims). - Yizhi Xiangqi: Changed game to MACHINE_IMPERFECT_SOUND - Save state . Be consistent with dummy save state var name (easy to grep if the workaround is obsolete in the future) . Removed device_sound_interface from mixins that require device to register members for saved states (emu\device.cpp). . Finalise saved state registrations before loading configuration - network devices no longer leak timers (emu\machine.cpp). - Input port: Group default double-up game control assignments on home row. Also moved Mahjong P to P and Payout to 4. This fixes the conflict between Mahjong I and Payout (emu\inpttype.ipp). - Dipswitch fixes in boramz80.cpp, carrera.cpp, gms.cpp, hikaru.cpp, igs011.cpp, igs_m027.cpp, koftball.cpp, nbmj8688.cpp, sshanghai.cpp and stella8085.cpp - Fixed rom names in gaelco.cpp, gaelco2.cpp, nbmj8891.cpp and raiden2.cpp - Description changes of Alligator Hunt (World, protected, checksum 2B34128B), Alligator Hunt (protected, prototype?, checksum B975CB0B), Alligator Hunt (Spain, protected, checksum 2B34128B), Alligator Hunt (unprotected, checksum F9C6891D), Alligator Hunt (unprotected, checksum 25A83609), Animal Wonders (ver A900, bootleg), Bandit (US prototype), Bang! (version 0, checksum B61D), Battle Gear 2 (Ver 2.04 J), Battle Gear 2 (Ver 2.01 J, Side by Side cabinet), Carrera (Version 6.7) / Bomberman (Version 6.6), Densha de GO 3! Tsukin-hen (Ver 2.03 J), Desert Patrol, Devil Fish (Mars hardware), Don Pepito, Double Axle (US, Rev 1, set 1), Dream 9 Flower (v1.00c, set 1), El auto de papa, Flower (Japan, bootleg?), Ganso Janken Man 2, Glass (ver 1.0, Break Edition, checksum C5513F3C), Glass (ver 1.0, Break Edition, checksum D3864FDB), Glass (ver 1.1, Break Edition, checksum 49D5E66B, Version 1994, set 2), Glass (ver 1.1, Break Edition, checksum D419AB69, Version 1994, unprotected, Korea), Go & Stop (Ver. EN1.10), Gun Gabacho (Japan, version 2, checksum C6BB), Happy Pierrot (V968210), HI-LO Double Up Joker Poker (set 1), Huangguan Leyuan (990726 CRG1.1), Jin Huangguan, Kasei Channel Mars TV (Japan), Kuaile Xiyou Ji (V104CN), Lady Bug (bootleg on Galaxian hardware, unencrypted), Long Hu Tebie Ban (S101CN), Lucky Star (newer Z180-based hardware, set 1), Mahjong Gal no Kokuhaku (Japan, set 1), Mahjong Reach Ippatsu (Japan, NM526-NSI), Maniac Square (protected, version 1.0, checksum CF2D), Maniac Square (protected, version 1.0, checksum DEEE), Maniac Square (unprotected, version 1.0, checksum 66B1, 960419/1 PCB), Maniac Square (unprotected, version 1.0, checksum BB73), Oh La La, Painted Lady (ver. 1.3, checksum E7BEEEFA, North America), PK Turbo Special, Power Drift (Japan, Rev B), Power Shovel ni Norou!! - Power Shovel Simulator (Ver 2.07 J), Pro Cycle Tele Cardioline (Salter fitness bike, V.1.0, checksum 02AB), Pro Stepper Tele Cardioline (Salter fitness stepper, V.1.0, checksum F208), R-Shark (set 1), Raizin Ping Pong (Ver 2.01 O), Raizin Ping Pong (Ver 2.01 J), Sasuke vs. Commander (set 1), Shin-ip Sawon - Seok Dol-i (Korea), Shinnyuu Shain Tooru-kun (Japan), Shuang Long Qiang Zhu 2 VS (China, VS203J, set 1), Shuang Long Qiang Zhu 2 VS (China, unknown version), Snow Board Championship (version 2.0), Snow Board Championship (version 2.1), Speed Master (D1.4, May 23 2003), Speed Master (D2.01.C, Apr 28 2004), Speed Master (D2.01.C, Apr 29 2004), Speed Up (version 1.00, checksum 31A9), Speed Up (version 1.20, checksum 6851), Speed Up (version 2.20, checksum 2037), Splash (Modular System, ver. 1.0, checksum 16EDD8FB, non North America, censored), Splash! (ver. 1.0, checksum 2FC9AE1D, non North America), Splash! (ver. 1.2, checksum 5071804D, non North America), Squash (World, ver. 1.0, checksum 015aef61), Super Nove (Playmark, V. M271B), Super Nove (Playmark, V. M271C), Super Seven (ver. 2.3), Super Shanghai 2000 (set 1, green board), Super Shanghai 2000 (set 2, green board), System 3000 Kramergame Poker (encrypted set 1), System 3000 Kramergame Poker (encrypted set 2), System 3000 Kramergame Poker (encrypted set 3), System 3000 Kramergame Poker (encrypted set 4), Target Hits (ver 1.0, checksum FBCB), Target Hits (ver 1.1, checksum 5152), Target Hits (ver 1.1, checksum 86E1), Tarzan Chuang Tian Guan 2 Jiaqiang Ban (V306CN), The Main Event (Destron), Touch and Go (non North America, checksum 056AA304), Touch and Go (unprotected, checksum 059CC336), Touch and Go (World, checksum 059D0235), Touch and Go (World, checksum 05A0C7FB), Vulkan, World Rally Championship (America, version 1.0, checksum 2CC1), World Rally Championship (America, version 1.0, checksum 75A5, 16 Jun 1993), World Rally Championship (version 1.0, checksum 0E56, 06 Apr 1993), World Rally Championship (version 1.0, checksum 3873, 06 Apr 1993), World Rally Championship (version 1.0, checksum 8AA2), World Rally Championship (version 1.0, checksum E586, 25 Jun 1993), World Rally 2: Twin Racing (version 26-06, checksum 3EDB), World Rally 2: Twin Racing (version 26-06, checksum 3EDB, mask ROM version), Xiaoyao Dou Dizhu (V216CN), Xor World (ver 1.2, checksum DB5D0F, prototype) and Zuqiu Wang - King of Football. - Renamed (animalw) to (animalwbl), (bang) to (bangb), (brkthru) to (brkthruu), (cb5) to (cb5_13), (dpatrola) to (dpatrol), (flowerj) to (flowerjb), (footbpow) to (footbpow12), (glass) to (glassa), (goldartp) to (goldartpt), (hpierrot) to (hpierrota), (klxyj) to (klxyj104cn), (maniacsqa) to (maniacsqb), (maniacsq) to (maniacsqa), (maniacsqu) to (maniacsq), (mastboyiv2) to (mastboyiv2a), (pdriftj) to (pdriftjb), (rivierab) to (rivierac), (sdmg2) to (sdmg2754ca), (sdmg2a) to (sdmg2754cb), (sltpstep) to (sltpstepa), (specd9) to (specd9105g), (ss2000) to (ssh2000a), (ss2000a) to (ssh2000wf), (ss2001) to (ssh2000), (thoop2) to (thoop2b), (thoop2a) to (thoop2), (touchgo) to (touchgoa), (touchgoe) to (touchgo), (touchgok) to (touchgoun), (touchgon) to (touchgonnac), (unkboram) to (pkts), (wrally2a) to (wrally2b), (wrally2) to (wrally2a), (wrally) to (wrallyd), (wrallya) to (wrallyc) and (wrallyc) to (wrallya). - MAME . VIDEO RENDERING SYSTEM . Got rid of a C string pointer, avoid the need for a static string object (monitor\monitor_module.h). Fixed an object leak (monitor\monitor_dxgi.cpp). Cleaned up some use of COM and COM-like things (font\font_dwrite.cpp and monitor\monitor_dxgi.cpp). . Fixed issue with throttling when MAME runs at slow motion (-speed lower than 0.2) (emu\video.cpp) . Added optional screen update callback for svg screens (emu\screen.cpp) . Added shadow config to savestates and might as well rename hilight to highlight (emu\dipalette.cpp) . MEMORY SYSTEM: Correct shifting direction on masks when importing a map with active umask (emu\addrmap.cpp) . DEVICES . Allow flagging devices as not working or not supporting saved states. Removed device_sound_interface from mixins that require device to register members for saved states (emu\device.cpp). . Reset the receive register when changing frame format or the port may be stuck into synchronous receive mode due to the default start bits = 0 (emu\diserial.cpp) . UI/OSD . Root device is special for non-working message (ui\info.cpp). Removed master volume slider if driver has no sound (ui\mainmenu.cpp and ui\ui.cpp). . Fixed layout issue when DIP switch bank with the most switches has the shortest name and reduced space between name and switches a bit (ui\confswitch.cpp). . Fixed some non-bug "warnings" going missing (ui\info.cpp). Don't show the audio menus when there are no audio devices (ui\mainmenu.cpp). Align allocation for directory entry structure in osd_stat (file\winfile.cpp). Updated signature for osd_stat (file\stdfile.cpp). . Changed mimimum speed setting from 0.01 to 0.1 (mame would crash with very low value, and besides, video throttle still fails below 0.1) (emu\emuopts.cpp). Added speed slider when cheats are enabled (ui\ui.cpp). . Added MAME version info to the 'missing roms' error msg (ui\imgcntrl.cpp and ui\selmenu.cpp). Use UI text/bg color for osd text popups (ui\ui.cpp). . Ensure size isn't passed to ::operator delete when destructing directory entries. osd_stat allocates additional space following the directory entry to store the name. A regular delete may pass sizeof(entry) to ::operator delete, which won't match the allocated size. This causes a problem if the runtime library checks it (may suppress the warning in MT09137) (osd\osdfile.h). . Finer control over screen refresh slider, correction to shift+alt incval (although after this commit, nothing has an incval > 100). Added separator after osd sliders. Make sure menu won't be hidden when re-entering it (POLA) (ui\sliders.cpp). . Treat incorrect ROM content as a severe warning (ui\info.cpp). Added note about file handle buffering (file\winfile.cpp). . Use terse messages for bad media. Making these messages longer hasn't reduced support burden. Adding the version will just perpetuate the myth that you need to redownload all your ROMs for every release (ui\selmenu.cpp and ui\imgcntrl.cpp). Allow info screens to be dismissed by mouse clicks or touches (ui\ui.cpp). Hiding the menu should preserve state. This is a design choice (ui\sliders.cpp). . New sound infrastructure . Make AVI able to do more than stereo (util\aviio.cpp) . Sound sliders: Press Del to set to 0db like before (mute is alt+left). Multiply internal value by 10 to allow fine grained slider controls (left/right while holding Shift) (ui\ui.cpp). . Use fat triangles instead of arrows for L/R indicators. More control over db adjustment (like with sliders, hold shift for +/- 0.1, hold ctrl for +/- 10) (ui\audiomix.cpp). . Make sure m_samples_to_update is 0 when returning from update() (emu\sound.cpp). Added sync time to savestates (emu\sound.cpp). . magmax.cpp, terracre.cpp and opwolf.cpp: Removed obsolete mixer device now that multiple sound outputs can be sent to a sound device single input (probably can be done to other drivers too. . Avoid unnecessary float/double conversions (osd\interface\audio.h). Prevent stream buffer overflow after detecting it (machine\netlist.cpp). . Added a much faster LoFi resampler and resampler configuration saving and documentation (emu\resampler.cpp, emu\sound.cpp, ui\audioeffects.cpp and usingmame\mamemenus.rst). Fixed resampler config interaction with reset and history sizes to take desynchronization into account (emu\sound.cpp, sound\pulse_sound.cpp and emu\resampler.cpp). Better step precision to avoid crackling (resampler_lofi; emu\resampler.cpp). . Like with the rest of the UI, press Del to set resampler settings to default. Gray out hq resampler settings if resampler is not hq (ui\audioeffects.cpp). . Fixed streamed inputs (sound\disc_cls.h, disc_inp.hxx and discrete.cpp). Ensure correct input of non-audio data (machine\netlist.cpp). Merged a number of speakers. . Recompute filters after loading the configuration (audio_effects\eq.cpp and filter.cpp). . Do not block on shift-f3 (sound\pipewire_sound.cpp). Removed obsolete options (compressor will be in effects, speaker report should go into a lua plugin) (emu\emuopts.cpp and ui\sndmenu.cpp). . Added a compressor. May need some tuning (ui\audio_effect_compressor.cpp). . Better decoupling of the effects thread. Fixed incorrect detection of config loading when the driver file was not yet created. Fixed synchronous streams (emu\sound.cpp). Detect EQ when not actually used (audio_effects\eq.cpp). . Do not interpolate when not changing rate, fixes pbobble2 and gunlock (emu\sound.cpp). . Re-added support for -volume option (works same as before sound rewrite) (emu\sound.cpp and emu\emuopts.cpp). Fixed range checker with negative values (emu\emuopts.cpp and util\options.cpp). No need to save master volume of 0. Disable error.log "Sound reset" message by default (emu\sound.cpp). . Updated mapping when changing audio mixer configuration (fixes issues in audio mixer menu, like randomly adding new entries when pressing l/r, cursor randomly moving to 1st entry when pressing l/r, and portaudio errors when switching devices) (emu\sound.cpp). . Implemented movable and swappable patterns (reduces allocation and copying) (osd\interface\audio.h). Moved default implementation stuff out of the header, use algorithm library in place of memcpy (sound\sound_module.cpp). Removed obsolete wave (cassette sound) device (sound\wave.cpp). . Fixed rounding issue with db adjust (ui\audiomix.cpp). Added missing header for Clang (interface\audio.h). Correct subtle timing issues, added -sound support and resampling at the edge (emu\sound.cpp). Fixed mistake on microphone channel mapping (ui\audiomix.cpp). . Allow positioning unknown and don't map (emu\speaker.h). Better handling of -sound none. Correct handling of streams closed on the OSD side (emu\sound.cpp and ui\mainmenu.cpp). . Recirculate buffers rather than removing them to reduces allocations. Scale the number of samples to skip on overrun according to the packet size (sound\sound_module.cpp). . Allow seperate display and configuration names for sound nodes. Fixed typo on mono channels (sound\namco.cpp). . Tell the OSD about the update (emu\sound.cpp). Print verbose message if module doesn't support audio_latency option. Changed audio_latency meaning similar to what it was before (20ms steps for portaudio, xaudio2, wasapi), old mame.ini default setting of 2 should work fine. . Correct stream_sink_update function (sound\js_sound.cpp). Allow to compile without threads, by defining SOUND_DISABLE_THREADING (emu\sound.cpp). Set SOUND_DISABLE_THREADING for Emscripten target (scripts\genie.lua). . Got rid of dependencies on emu and frontend. We're working to reduce circular dependencies. Adding more is a regression (sound\*). Set rate to SAMPLE_RATE_OUTPUT_ADAPTIVE (highest samplerate of device it outputs to) (emu\disound.cpp). . Fixed default.cfg load not applying default effects and rename default.cfg default_audio_effects to audio_effects (same as system.cfg, there's no clash). Fixed sync issue when starting a stream that was stopped. Fixed extremely subtle and rare problem that could happen when changing stream frequency (emu\sound.cpp). . Fixed crash after loadstate with different resampler setting (emu\sound.cpp). Moved positions to osd interface. Added special-casing for LFE and reverb (currently too subtle, need to find out why). . Removed the hard cutoff ceiling at 20K. It was an initial way to limit the number of phases and filter length, and that is done explicitely now. Plus, who knows, maybe someone will want to run ar 192KHz some day (emu\resampler.cpp). . Detect preset when entering menu (audio_effects\reverb.cpp). Don't try to filter above nyquist freq (or slightly below it) (audio_effects\filter.cpp and reverb.cpp). Improved control over audio filter cutoff freq. Don't repeat min/max freq values in multiple places. Allow finer control of frequency with shift+alt (ui\audio_effect_filter.cpp). Changed freq to u32 and apply same nyquist freq fix (audio_effects\eq.cpp). . Fixed reverb decays and disable by default reverb and compressor (audio_effects\compressor.cpp and reverb.cpp). Changed channel link range to 0-1 and most floats to 2-decimals (audio_effects\compressor.cpp). . Added reset_all for resetting all variable settings (emu\audio_effects\*). Added LR_REPEAT flag when cursor is on db (ui\audiomix.cpp). Do limit rounding with roundf instead of manually (ui\audio_effect_eq.cpp and audio_effect_filter.cpp). Changed default bands to 100,330,1k,3,3k,10k. Check band mask instead of db when building filter (audio_effects\eq.cpp). . Initialize channel positions in header file (prevents channel_position constructor initializing after initializing array of channel_position in sound backends) (osd\interface\audio.cpp). . The new menus were unusable with a touchscreen, and not conducive to localisation. It's still not possible to add sound routes with a touchscreen, but at least it's possible to configure routes that exist (mame\ui\*). Fixed localisation issues and less temporary objects (emu\sound.cpp and emu\audio_effects). . Avoid anything that could possibly depend on static initialisation order across transaltion units. Allow speaker position names to be localised (modules\sound). Don't pretend it can create output streams (sound\none.cpp). Blind attempt at updating for base class changes (sound\js_sound.cpp). . Sound modules . CoreAudio: Changed audio_latency duration option to milliseconds (lib\osdobj_common.cpp, sound\coreaudio_sound.cpp). Changed audio_latency to seconds (float), so people with existing mame.ini won't get broken sound (lib\osdobj_common.cpp, sound\coreaudio_sound.cpp). Preliminary revised macOS CoreAudio backend. Supports multiple input and output streams to multple devices simultaneously. audio_latency now is a floating-point number of 50 Hz audio frames. 0 is valid now. Channel layouts are determined when available (many devices don't support them). External effects support removed; it may return later. Rebuild the device list when the default devices change, fixes a crash when a new default device is connected. Added a callback for each active device to see if it becomes unavailable. Moved default device change check to get_generation so it happens regularly. Use property listeners to determine configuration changes instead of polling. Device additions are now tracked in addition to removals. Changing channel configuration in Audio/MIDI Setup is now tracked. Channel layout tag is a bitfield, not an enum (sound\coreaudio_sound.cpp). . PortAudio: Enhance portaudio support. Sadly, portaudio is limited to the worst case of all OSes audio supports (and ALSA est rather bad) and does not yet handle hotplug. So the result is quite limited. Also, the devices when running portaudio over emulated alsa over pulseaudio are quite ugly. Still works though. Added support for audio latency and samplerate options. Lower latency interval steps. Added api info to device names (sound\pa_sound.cpp). Added error messages (+device name). Fixed a non-const global that should be const. Popmessage instead of printf if there's a device conflict while fiddling in the audio mixer menu. Do not mess up on shift-f3 (sound\pa_sound.cpp). . SDL: Make system default work (sound\sdl_sound.cpp). Rework a case where the sound defaults are not put in place in correct order (when starting a system with mandatory cart without one) (emu\sound.cpp and sound\sdl_sound.cpp). Don't try to call SDL_GetDefaultAudioInfo for SDL older than 2.24.0 (sound\sdl_sound.cpp). Allow MAME to be built with SDL 2.0.14 or 2.0.15 with limited functionality. Correct SDL verson detection macro (sound\sdl_sound.cpp). . WASAPI: Added preliminary WASAPI sound module (not enabled yet). Improved error handling and buffer management (sound\wasapi_sound.cpp). Made WASAPI sound the default on Windows and made DirectSound lower priority than XAudio2 (lib\osdobj_common.cpp). Deal with resetting per-app device to default in Windows mixer controls. Don't print an error message on a "not found" error getting default devices - this happens when there are no active devices. Repeat the channel mask from the mix format back when initialising the audio client. Avoid another potential deadlock. It's possible for a device format property update to block an activate call. There's still a race condition in that if streams get device invalidated errors before the property update arrives, the core may try and fail to create replacement streams. This at least stops it from causing a deadlock, at worst you lose sound. Handle someone messing with the mixdown format right as MAME exits (sound\wasapi_sound.cpp). . XAudio2: Initial support for new sound system features (sound\mmdevice_helpers.cpp). Setting the default latency to the target buffer submission frequency is a bad idea. Changed total buffer size to actually match specified latency (calculation didn't conside sample size or channel count). Smarter buffer submission algorithm. Listen for critical engine errors and more Clang warnings. More paranoid cleanup: This hopefully fixes the freezes on exit when changing the sample rate underneath it. Sound may or may not work after you do this until you restart MAME due to race conditions. Better handling of critical errors and more verbose logging. More fixes: Fixed a couple more potential deadlocks when handling critical engine errors. Better tracking of the default device when devices are reconfigured. Bump node number on critical XAudio2 engine errors. The sound manager bug that this was triggering has been fixed. Sound now recovers reliably after changing the mixdown format. Hide endpoint devices in "unplugged" state. Deal with resetting per-app device to default in Windows mixer controls. Actually commit correction to autocomplete gone wrong. Fixed some stuff not getting reset on exit()/init(). Don't print an error message on a "not found" error getting default devices - this happens when there are no active devices. Use more fine-grained locking in voice callbacks, simplified further simplified buffer queueing. Changed logging back to display names. Don't request sample rate conversion if stream sample rate matches mixdown sample rate. Changed buffering strategy for output streams. This should work better with output devices like Bluetooth speakers and should be a bit smoother in general. Use abuffer for bufferring input. This simplifies the code somewhat and gives a bit more consistency across modules. XAudio2 sound will ignore the audio latency setting for now - properly synchronising streams, etc. requires more work (sound\xaudio2_sound.cpp). . LUA engine: Added set_speed_factor (mame\luaengine.cpp). Reenabling the write accessor for the LUA input_class enabled property. This is used by BletchMAME to toggle mouse capture on and off (mame\luaengine_input.cpp). . Timer system: Fixed lockup with as_string and negative attotime (emu\attotime.cpp) . 3rdparty . Updated expat to version 2.7.1 . Small BX platform detection/usage improvements (3rdparty\bx\src\mutex.cpp, os.cpp and thread.cpp). Use BX_PLATFORM_POSIX where needed. The semaphone implementation already uses BX_PLATFORM_POSIX to include on all the POSIX platforms; do the same also in other places for consistency. This is done also for , which is a POSIX API, and sched_yield() from it is already guarded by BX_PLATFORM_POSIX. Drop support for GNU libc older than 2.12. glibc 2.12 was released on 2010, and at this point any supported Linux distro has that version or way greather than that. Fixed BX include on Hurd. does not exist, the standard does exist so switch to it. . Moved some duplicated code into the common header (osd\asio.h) . PLUGINS: Allow deleting autofire buttons or input macros without needing to use the UI Clear input (plugins\autofire and plugins\inputmacro). . Added check for systems marked as supporting saved states that use devices lacking saved state support (besides slot cards) (emu\validity.cpp). Validate device input defaults. Also do input validation on non-default slot options (emu\validity.cpp). . Added muldiv64 and muldivu64 functions. Made multiply/divide helper names a bit more consistent with other functions (osd\eminline.h). . Added Belarusian translation - SDLMAME . Use dirent::d_type on any GNU libc platform (osd\modules\file\posixdir.cpp and posixptty.cpp). This BSD extension is provided by GNU libc, so enable its usage with that C library. Use on any GNU libc platform ((osd\modules\file\posixdir.cpp and posixptty.cpp). openpty() is implemented by GNU libc for all the OSes, so include when using that C library. Cast dirent::d_name to const char* before using it ((osd\modules\file\posixdir.cpp and posixptty.cpp). According to POSIX [1], the type of dirent::d_name is loosely defined as "char d_name[]", as array with an undefined size. In particular, few ways are seen in the wild: (a) "char d_name[size]", i.e. as proper array with a full size and (b) "char d_name[1]"/"char d_name[0]", i.e. as C flexible arrays. Regardless of its type, dirent::d_name is used as if it was a classic const char *, i.e. as pointer to a null-terminated string. util::string_format() uses C++ templates to collect all the arguments, and thus it will use the actual type of dirent::d_name. In case of (a) there is no issue, however for (b) the result is that only the first character is used. To ensure that dirent::d_name is fully used, explicitly cast it to const char * before passing it to util::string_format(), so the whole string is used. . Removed redundant checks when setting BASE_TARGETOS/SDLOS_TARGETOS. The vast majority of the OSes use BASE_TARGETOS=unix and SDLOS_TARGETOS=unix, which are set as default values; the few exceptions (Windows and macOS) already have their own selections. Hence drop all the empty if statements for other OSes than Windows and macOS, as actually redundant (osd\sdl.lua). . Define buffer size for openpty(). There is no defined size for the slave name returned by openpty(); OSes that have a PATH_MAX constant usually use that as limit. Create a custom OPENPTY_PATH_MAX constant specifically for openpty(), even in case PATH_MAX is not available: in that situation, use 8192 as buffer size, which hopefully should be "good enough" (osd\modules\file\posixptty.cpp). . Better handling of getting PTY path, etc. Support Issue 8 TTY_NAME_MAX/ptsname_r and pre-standard ptsname_r. Set termios flags directly rather than relying on BSD's cfmakeraw. Actually enable the XPG-8 path (file\posixptty.cpp). - Compiling . Only link asmjit if native DRCs are built (src\cpu.lua and src\main.lua) . Only check for pipewire lib if NO_USE_PIPEWIRE is 0 (osd\modules.lua) . Updated VS/MSbuild settings to reflect current ClangCL (scripts\genie.lua and scripts\src\3rdparty.lua). Cherry-pick upstream fixes for ClangCL (3rdparty\bgfx\src\renderer_d3d12.cpp and 3rdparty\flac\src\libFLAC\include\private\bitmath.h). . Moved helpers that use the __int128 type here and fixed availability detection for them (osd\eigcc.h). Added fast multiply/divide helpers for x86-64 (osd\eigccx86.h). . Cleaned up various things (machine\mc6852.cpp, sound\dac76.cpp, konami\konamigx.h, konami\konamigx_v.cpp and sega\model2_v.cpp) - Debugger . Added fallback to "0" if address evaluation fails ([win] debugger crash). Memory window address field: If address string evaluation fails, we'd fall back to the last-known-working string. This works great if the failure is due to the user changing the string. But if the user changes the source, that also can cause failures (different symbol table used for evaluation), and this fallback does not help. The fix is to add a second fallback: Use "0" as the address string when all else fails (debug\debugvw.cpp). . Debugger cleanup: Use enums for m_views indices. For the wininfos that participate as individual panes in the main console window, their viewinfos are referenced via the m_views[] array with hard-coded indices of 0, 1, and 2. Define & use enums for those indices (VIEW_IDX_DISASM, VIEW_IDX_STATE, VIEW_IDX_CONSOLE). Changed MAX_VIEWS from a hard-coded constant of 4 to the last enum in that list, which changes it to 3 (I don't think it should have been 4 in the first place). Wininfos that NEVER appear as panes in the main console window (e.g., logwin_info, pointswin_info, etc.) continue to use m_views[0]. . Debug view scroll workarounds for Cocoa debugger. Workaround to fix bottom scrolling and scrollbars the first time the debug window overflows (osx\debugview.mm). . Style over system colors. QPalette:Accent doesn't exist in Qt5 (qt\debuggerview.cpp). . Symlist usability + symbol table extensibility. Address issue #6655 (symlist command usability), added a bit of plumbing for future extensibility. symlist with no arguments displays all global *and* :maincpu symbols, with clear header text for each list. At the bottom, prints helper text to make user aware of the cpu form. To allow for adding new kinds of symbols in the future, this adds an enum field to symbol table for its 'type', for prettier printing from symlist. Symlist now traverses symbol table chain completely. . No need to try to convert string_view to const char* and fixed possible nullptr access (debug\debugcmd.cpp).