MASH's MAMEINFO
Mameinfo.dat v0.286GIT
Updated - 22nd February 2026

Homepage - mashinfo.github.io/mameinfo
E-Mail - mameinfo@ewetel.net

  Visit ARCADE AT THE MOVIES

    





*NEW* Mameinfo + MAMEUI-inifiles-0286GIT (19th Feb) (4.44 MB)

MAMEUI 0.285 Category-, Version and Alltime inifiles (1008 kB)

MAME NEWS from 0.37b1 - 0.285 (6.38 MB)

PCB-infos 0.153 (2.11 MB)

Compile MAME64 or MAME(XP 32bit) with Clang 21 or GCC 15 on Windows 10 (Start a script and compile immediately) (25th Jan)

Compile MAME with GCC 10.3 on Windows XP (Start a script and compile immediately) (25th Jan)

How to fix Root Certificates on XP




New in MAME:    
0.287GIT - New Non-Working games: Cranky Condor, Thunder V and Versus - CPU . Intel I386: Fixed SMM. Use the correct bits for DPL. Adjust CS for ppro+. Include the 486 (i386\i386.cpp). - DEVICE . SCSI CD-ROM: Support the revised BlueSCSI host transfer protocol which allows up to 64K per chunk instead of 4K (nscsi\cd.cpp) - New drivers: pachislo_z80.cpp - New devices: aha2940 - kaneko16.cpp: Added licensees to metadata and tidied code - taitojc.cpp: Changed screen raw params (matches vsync measurement 99.999%) - Come On Baby: Improved device selection a bit (machine\it8671f.cpp/h) - Description changes of 'B.C. Kid (World) / Bonk's Adventure - Arcade Version (US, China, Korea) / Kyukyoku!! PC Genjin - Special Arcade Version (Japan)' and Bonk's Adventure - Arcade version (prototype) - Compiling . Allow USE_SYSTEM_whatever=0 to use local copies of third party libraries (scripts\src\3rdparty.lua) 0.286 - New games: Monkichicchi no Fuwafuwa Puzzle (Japan, prototype?) - New Working games: Chaoji Da Manguan II (China, V765C), Cherry Bonus III (ver.2.20), Cherry Bonus III (ver.3.0), Daytona USA (with Saturn advertisements), Daytona USA Special Edition (Revision A), Daytona USA, Daytona USA (Revision A), Dead or Alive (Export, Model 2A, Revision A), Dead or Alive (Model 2A), Dead or Alive (Model 2A, Revision A), Dead or Alive (Model 2B, Revision B), Dead or Alive (Model 2B, Revision C), Gunblade NY (Revision A), Jungle King (V302US), Long Hu Zhengba 2 (China, VS210M), Long Hu Zhengba 2 (China, VS220M), Manguan Caishen (China, V103CS), Manguan Caishen (China, V106CS), Manguan Caishen (China, V110C), Pilot Kids (Model 2A), Pilot Kids (Model 2B, Revision A), Shuang Long Qiang Zhu 2 VS (China, VS203J, set 2), Striker, Virtua Cop (Revision A), Virtua Cop (Revision B), Virtua Cop 2, Virtua Striker (Revision A), Virtua Striker, Zero Gunner (Export, Model 2A), Zero Gunner (Export, Model 2B), Zero Gunner (Japan, Model 2A) and Zero Gunner (Japan, Model 2B) - New Non-Working games: Dart Star (Rev 3.25), Doki Doki! Flower (DFL1, Ver. A), Luckey Bingo, Panda 2, Pitching Try (v1.3CJ), Polar Star (Ver 3,2B, Fantasy Island), Sea Wolf - Next Mission, Silver Rush (ver. 23.08.25), Siren Kids, Spanish Darts and Super Shuffle - New clones: Back Fire (Tecmo), Beastie Feastie (Pac-Man conversion, set 2), Big Twin (no girls conversion, set 2), Chaoji Dou Dizhu Jiaqiang Ban (S206CN), Dragon Punch (Japan, ver. 1.30, bootleg), G.I. Joe (Asia, AAB), Hot Mind (Hard Times hardware, set 2), MX5000 (version U), Major Poker (set 1, v2.2), Mahjong Kaguyahime (Japan 880425), Mario Bros. (Japan, older), New Lucky 8 Lines (set 21, encrypted bootleg), Pit Boss Superstar (9221-10-01A, California version), Polar Star (Ver 3,2B, MooRry Fantasy), 'Tarzan Chuang Tian Guan 2 Jiaqiang Ban (V306CN, alternate GFX)', Touryuumon (V1.1, Apr 14 2005), Vs. Hogan's Alley (Italian bootleg) and WGP 2: Real Race Feeling (World) - Removed games: Silverball (8.01) - New drivers: dharma_z180.cpp, mdartstr.cpp, namcos6.cpp, pitchtry.cpp, seawolfnm.cpp and sshuffle.cpp - New devices: acpi_piix4, acpi_pipc, adsp21060, clgd5401, dspp_bulldog, f65535_isa16, f65535_vga, f82c836a, fdc37c665ir, gd5401, igs_incalt, isa16_medalist_rom_disk, it8661f, it8671f, nmk_irq, pc97338, rt1000b, toaplan_bcu, toaplan_dsp, toaplan_fcu, toaplan_video_controller, trio64dx_pci, um8498f, va_lpf4, voodoo_3000_x86, vt82c416, vt82c586b_acpi, vt82c586b_ide, vt82c586b_isa, vt82c586b_usb, vt82c598mvp_bridge, vt82c598mvp_host, z8691 and z86c91. - CPU . Analog Devices ADSP21062 'Sharc' . Include emu.h. Implemented 16-bit IOP write handling. Added missing DMA members to save states. Implemented bit-accurate RECIPS and RSQRTS in recompiler (fast approximation can be enabled by setting a macro) (sharc\sharc.cpp). . Fixed/optimised RECIPS flag calculation for interpreter. Fixed FIX for negative numbers when MODE1 TRUNC bit it set for interpreter and recompiler (should round towards negative infinity). Don't regenerate static helpers on cache flush (sharc\sharc.cpp). . Better align FIX between interpreter and recompiler, pack/unpack recompiler ASTAT for saved states. Cleaned up memory access a bit, use memory_access::specific and added ADSP21060 (larger internal SRAM) (sharc\sharc.cpp). . Always enable SHARC recompiler in the Konami drivers konami\gticlub.cpp, konami\hornet.cpp and konami\zr107.cpp before start. . Improved memory access code: Exploit data memory layout to bypass the memory system for both 32-bit and 16-bit SRAM accesses. Exploit the way the SHARC toolchain lays out executable code and data in SRAM to greatly reduce unnecessary cache flushes. Implemented Rn = NOT Rx (used by Sega Model 2B games). Align 32-bit program memory accesses with the most significant bit of the bus (corresponds to interpreter change in MAME 0.278 GitHub #13770). Get past DSP program crash in Midnight Run (sharc\sharcdrc.cpp) . Better handling of cache reset at end of block (sharc\sharc.cpp). Fixed more instructions: Fixed multiply/average and multiply/absolute for interpreter - the ALU operations produce a floating point result. Implemented move from multiplier register, multiply/average, average and FDEP with immediate field specification for recompiler. Use a more accurate approach for the absolute value calculation in multiply/average and average rather than hoping the C library does the right thing for the interpreter and recompiler (sharc\sharc.cpp, sharc\sharcdrc.cpp, sharc\compute.hxx). . Allow multiple loops to end on the same instruction. This is required by Last Bronx, which has code that de-duplicates the common part of multiple successive loops. It reduces the performance of do-nothing spin loops a bit but not too much - the DRC still has substantially better performance than the interpreter. Unfortunately, this exposes a pre-existing issue with how ASTAT conditions are handled in the SHARC front-end which causes the Midnight Run and Racing Jam DSP programs to crash. Fixing it will require major changes. Use -nodrc for now, I'll probably have to disable to recompiler before the next release until this can be fixed (sharc\sharc.cpp). . Tidied code a bit: Helper functions for getting commonly extracted opcode fields. More symbolic constants and fewer magic numbers. More constexpr helper functions, fewer macros and safer macros. More const local variables (cpu\sharc). . Improved reset conditions, prevent program from writing read-only STKY bits. Fixes 'Midnight Run' crash when F3 pressed (ID 07295). Improved status stack handling a little. Also actually implemented ASTAT/MODE1 save/restore for recompiler (cpu\sharc). . Overhauled PC stack implementation: Always access top-of-stack through the pseudo-register value. Better behaviour when PC stack is empty. Implemented effects of writing to PCSTKP. Mask PC stack values to 24 bits. Try to get PC stack into a consistent state after loading a saved state. Also fixed loops with initial counter value of zero (should iterate 2^32 times) (cpu\sharc). . Implemented a bit more channel 6 DMA. Fixes changing settings in Pilot Kids service mode menus. . Overhauled loop stack handling. Always access top-of-stack through pseudo-registers. Better behaviour when stack is empty or full. Implemented more read/write top-of-stack and explicit push/pop operations. Try to get loop stack into a consistent state after loading a saved state (cpu\sharc). . Better ASTAT handling: Flag pin bits are unaffected by push/pop status. Only flags set to input follow inputs on flag pins. Implemented ASTAT write for recompiler. Show ASTAT value in debugger when recompiler is enabled. Also don't allocated DRC cache when recompiler is disabled. Better sync on input changes across scheduling domains (cpu\sharc). . Pause DMA when stalled with recompiler to match interpreter. Disabled stalling DMA with recompiler for now. Current implementation gets confused, breaking Thrill Drive on Hornet (cpu\sharc). . Dynamic Re-Compiling . Fixes and refinements: Fixed crash when the CPU generates code during device_start and the debugger is enabled (devices\cpu/drc*). . drccache: Initialised all data members (cpu\drccache.cpp) . drcbec: Added support for invariant code and code blocks. Removed a bunch of crud that shouldn't be there. Restore floating point rounding mode if an exception is thrown, use C99 nearbyint/nearbyintf. Work around older clang that doesn't support the floating point environment access pragma (cpu\drcbec.cpp) . drcbeut: Added support for invariant code and simplified DRC label list class (only used by C back-end) (cpu\drcbeut.cpp) . drcbex86, drcbex64 and drcbearm64 . Added support for invariant code blocks and made helper code invariant (cpu\drcbex86.cpp, cpu\drcbex64.cpp and cpu\drcbearm64.cpp). . Call (rather than jumping to) the entry point handle. The UML HANDLE instruction points to a minimal function prologue, which expects the conditions immediately following a call. However, the back-ends were jumping to it directly after setting up the top-level stack frame. On x86-64 and i686, this resulted in the stack being misaligned until a HASHJMP or EXIT instruction was executed. Anything that could result in a C function being called (CALLC, DEBUG, BREAK, READ, READM, WRITE, WRITEM, FREAD, FWRITE) could crash due to stack misalignment, and RET would crash due to the return address not being in the expected location. On AArch64, the stack would not be misaligned, and calls to C functions would work correctly, but RET would result in exiting from generated code without restoring callee-preserved registers. The C back-end just hits an assertion failure if the entry point code executes a RET (cpu\drcbex86.cpp, cpu\drcbex64.cpp and cpu\drcbearm64.cpp). . Restore floating point environment when calling out to C code (cpu\drcbec.cpp, cpu\drcbex86.cpp, cpu\drcbex64.cpp and cpu\drcbearm64.cpp). . drcbearm64: Identify more valid bit mask immediates (saves an instruction and a temporary register, e.g. when clearing a small contiguous field in an integer) (cpu\drcbearm64.cpp). . drcuml: Added support for invariant code blocks. Include device tags in UML/native generated code log file names (kind of important when a system has two of the same kind of CPU) (cpu\drcuml.cpp). . hyperstone E1-xx and PowerPC DRC: Made static helper code invariant (e132xs\e132xsdrc.cpp, powerpc\ppcdrc.cpp) . Ensoniq ES5510: Fixed opcodes in ES5510. ABS uses operand B. CMP runs even when skippable and only updates flags (no dst write). SIGREG bit 22 drives mul shift. CCR/CMR readback encoding. ABS should update zero flag. ASL2/ASL8 overflow/carry/flag logic (es5510\es5510.cpp). . MIPS-III: Added missing header that was being #included indirectly (mips\mips3com.cpp) . Motorola MC68LC040: Fixed the 68LC040 so it actually has 68040 opcodes (m68000\m68kcpu.h) . Texas Instruments TMS34010: Fixed 32-bit pixel writes (tms34010\tms34010.cpp) . Toshiba TMP95C06x: Added model-specific LDC control register names for DMA registers. Implemented EI/RETI interrupt acceptance shadow (cpu\tlcs900/*). . Zilog Z80: Renamed BUSRQ to BUSREQ and MEMRQ to MREQ (z80\z80.cpp). Refactored INT/IRQ (z80\z80n.cpp) and implemented configurable DMA halt (delay) for (MESS) specnext.cpp. . Zilog Z86xx: Added Z8691 and Z86C91 ROMless types (z8\z8.cpp) - SOUND . Ensoniq ES5503: Revert ill-advised changes from MAME 0.285 and fixed an older regression that caused a crash in (MESS) Bard's Tale IIgs (Github #14941) (sound\es5503.cpp). . GI SP0250 LPC: Fixed typo in sp0250 coefficient table (sound\sp0250.cpp) . OKI MSM5205 ADPCM: S1/S2 pins were the wrong way around. Small cleanup. Make playmode_w param an u8 instead of int (sound\msm5205.cpp) . Sound Interface: Alternate method for checking if machine is not yet running (emu\sound.cpp) - DEVICE . Floppy: Added save state support (machine\upd765.cpp). Subscribe to remap FN. Issue a remap for later variants and fixed regression (isa\fdc.cpp). . GP9001 VDP: Cleaned up and simplified code: Removed unnecessary custom_priority_bitmap and priority remap table and use screen priority bitmap. Improved logging and reduced literal tag usage. Also suppress side effects for debugger reads for Toaplan drivers using the device. . Intel 8251 USART: Fixed uninitialised data accesses (machine\i8251.cpp) . Intel 82371EB PIIX4E: Preliminary integration of RTC. Added config map registers and use option setter for internal RTC use. Hookup fast A20 (machine\i82371eb_isa.cpp). Added I/O BAR registers (machine\i82371eb_usb.cpp). Use own ACPI implementation (machine\i82371eb_acpi.cpp). . Lowpass Filter: Improved LPF4 implementation. Using the new filter implementation in sound\va_vcf.cpp for CEM-3394 analog synth. Fixed 'drive' and improved documentation. 'drive' is now applied and unaplied outside the filter's feedback loop. Caching bass gain compensation. Annotated code with the relevant chapters from "The Art of VA Filter Design" (sound\va_vcf.cpp). . RAM: Shorter savestate name for things that do save_pointer(NAME(reinterpret_cast...) (machine\ram.cpp) . S3 86C775 Trio64V2/DX: Moved out Trio64/DX roms from isa\svga_s3.cpp and create Trio64V2/DX (pci\trio_pci.cpp). Added Trio64/DX to EuroPlay 2001. Fixed device ID - The one reported in datasheet is for the original Trio32 86C732. . Sega 315-5195 Memory Mapper: Update_mapping after loadstate (sega\315_5195.h) . VGA . Get rid of macros, optimize char selection base in text mode and optimize pixel fetches in SVGA modes (video\pc_vga.cpp). . Fixed start address and bank select. Moved EEPROM hookup to ISA cards (video\pc_vga_ati.cpp). Attempt to improve SVGA modes (video\ati_mach32.cpp). . Bulk replace typo for sis6326 VGA def. Fixed SVGA 8bpp mode and start address latch and 24bpp mode for 6326 (video\pc_vga_sis.cpp). . Fixed interrupt pin (pci\virge_pci.cpp) . VIA Apollo MVP3: Initial chipset definition. Added config map registers and initial PCI Bridge device (machine\vt82c598mvp.cpp). Preliminary VT82C586B IDE hookup. Added config map registers and allow HDD boot (machine\vt82c586b_ide.cpp). Initial 'Intel 82371EB PIIX4E USB Host Controller' support (machine\vt82c586b_usb.cpp). Hookup 'VIA Apollo MVP3' chipset for startouch.cpp. Type in ACPI_PIPC remaining registers. Hookup software SMI events (machine\vt82c586b_acpi.cpp). . Voodoo 3: Hookup Voodoo 3 3000 PCI roms (video\voodoo_pci.cpp) - 1943.cpp: Improved interrupt timing - 3do.cpp . Hookup basic semantics for CD-ROM DMA transfers (misc\3do.cpp) . Hookup status bit for xbus (greatly reduce boot times). Added enum for irqs and use template for request_fiq (misc\3do_clio.cpp). . Added unpacked & coded 4bpp and 8bpp support and basic PAL support. Added enum for DMA channels. Implemented get_pixel_6bpp_coded_lrform0 (misc\3do_madam.cpp) . Added enough commands so it reaches cmd_read when disk is in. Better logging around ToC. Added command byte acks to some commands (machine\cr560b.cpp). . Preliminary split between regular (Clio) DSPP and M2 Bulldog (dspp\dspp.cpp) - alpha68k.cpp: Renamed Alpha68K II/III/V hardware (shared\snk68_spr.cpp to alpha68k_spr.cpp) and cleaned up systems using it. Implemented device_gfx_interface and device_video_interface. Reduced hard-coded tags and use clock frequency input. Moved color code masking to callback. Use fixed size integers in save states and suppress side effects for debugger reads. Reduced duplicated code and literal tag use. Use abbreviated integer type names. - armedf.cpp: Make spriteram size same for all games - balsente.cpp . Fixed sound cutting off at low levels. Reduced duplication in volume calculation. Made it possible to set modulation to 0% (sound\cem3394.cpp). . Using the new filter implementation in sound\va_vcf.cpp. Removed artificial pulse width limiting (sound\cem3394.cpp). - cave.cpp and mcatadv.cpp: Correct tile RAM format comment. Low byte in First word of tile RAM is used for hi bits of tile code: 8x8 only? (video\tmap038.cpp). - cdi.cpp: Adjusted spin-up time to avoid soft-locks, fixes audio softlock in (MESS) Fun Tower and Misc Minor Edits. Simplify XA functions, use SECTOR_SIZE instead of magic numbers and log missing emphais. Removed newly-added unused member but left the comment. Fixed signed/unsigned mismatch (philips\cdicdic.cpp). Updated debugging log statements (philips\mcd212.cpp). - cps1.cpp: Changed comments to C++ style (capcom\cps1_v.cpp). Correct gfxdecode palette range. Small cleanup (capcom\cps1.cpp). - cps2.cpp: CPS2 bgpen is 0xbff just like CPS1 (capcom\cps1_v.cpp). Small cleanup. - cps3.cpp: Small cleanup - ddealer.cpp and nmk16.cpp . Lifted set_scroll_rows out of drawing loop (nmk\nmk16_v.cpp) . Refactored ddealer.cpp and nmk16.cpp video interrupt generation into separate device (nmk\nmk_irq.cpp). - docastle.cpp: Normalize blue color channel - exedexes.cpp and gunsmoke.cpp: Added manual sprite DMA trigger - fireshrk.cpp, rallybik.cpp and twincobr.cpp . Split fireshrk and rallybik from Toaplan1 driver. Improved notes (fireshrk.cpp). . Moved color base initialization into device_start. Fixed initializers and formatting. Added notes (toaplan\toaplan_scu.cpp) (rallybik.cpp and twincobr.cpp). - goldstar.cpp . Fixed nullptr crash in Bingo (set 1) and clone (set 2) (mark *all* tilemaps dirty) (ID 09378). . Fixed memory map. Added technical notes to clone Cherry Bonus III (ver.2.20). Promoted clones Cherry Bonus III (ver.2.20) and Cherry Bonus III (ver.3.0) to working. - gomoku.cpp and wiping.cpp: Removed unused variables - hornet.cpp . Enabled SHARC recompiler for NBA Play By Play, Teraburst and Thrill Drive G family games. . Improved SHARC recompiler: Fixed Gradius IV crash to prompt when testing MASK ROMS in Service Mode (F2) (ID 06322). Fixed Gradius IV background graphics corruption in stage 3 (ID 06535) - igs017.cpp . Improved protection emulation for M68K-based games. Implemented alternate inc protection type. Completed IGS029 simulation for most games. Reworked address remap functions to make them save state-friendly. . Promoted Chaoji Da Manguan II (China, V765C), Jungle King (V302US), Long Hu Zhengba 2 (China, VS210M), Long Hu Zhengba 2 (China, VS220M), Manguan Caishen (China, V103CS), Manguan Caishen (China, V106CS), Manguan Caishen (China, V110C) and Shuang Long Qiang Zhu 2 VS (China, VS203J, set 2) to working. . Redumped text ROM for clone Manguan Caishen (China, V110C) - lindbergh.cpp: Port over UHCI I/O map from i82371eb USB (machine\pci-usb.cpp) - lwings.cpp: Improved interrupt timing. Added screen raw params, manual sprite DMA trigger and paletteram is write-only. Moved video hardware section to the top of the driver. Make spriteram size same for all games. Added sprite dma delay. Small cleanup. - matmania.cpp: Added xtal and improved some clocks, fixes Mania Challenge sound pitch is too high and tempo is too fast (ID 09387). - mitchell.cpp: Added note about sprite DMA trigger - model2.cpp . Promoted games to working: Daytona USA, Daytona USA (Revision A), Daytona USA (with Saturn advertisements), Daytona USA Special Edition (Revision A), Dead or Alive (Export, Model 2A, Revision A), Dead or Alive (Model 2A), Dead or Alive (Model 2A, Revision A), Dead or Alive (Model 2B, Revision B), Dead or Alive (Model 2B, Revision C), Gunblade NY (Revision A), Pilot Kids (Model 2A), Pilot Kids (Model 2B, Revision A), Virtua Cop (Revision A), Virtua Cop (Revision B), Virtua Cop 2, Virtua Striker, Virtua Striker (Revision A), Zero Gunner (Export, Model 2A), Zero Gunner (Export, Model 2B), Zero Gunner (Japan, Model 2A) and Zero Gunner (Japan, Model 2B) . Got rid of now-obsolete SHARC 16-bit IOP workaround. Use render_polygon() rather than splitting polygons into triangles. Fixes/Reduces texture warping in hotd, overrev and waverunr (sega\model2_v.cpp). Also moved polylist dump code to sega\model2_m.cpp. . Enabled SHARC recompiler for Model 2B (can be disabled again before release if too many things are broken) (sega\model2.cpp) . Tentatively promoted some games to working and cleaned up code. Added blanket imperfect graphics flag to all games and imperfect sound to all games with SCSP. Added a side effects check, more ATTR_COLD and register game-specific things for save states (sega\model2.cpp). . Improved analog controls for Rail Chase 2 and Gunblade NY. Use full precision reciprocal for perspective correction (sega\model2rd.ipp). . Added analog minmax and increase sensitivity to Daytona USA. Use 8251 ready output line status rather than pretending to be able to read the status register asynchronously (sega\model2.cpp). - namcos23.cpp . Removed presently-unused m_odd_frame member. Added texture flip/swap bits. Removed stub handlers that were causing graphical issues in some games. . Fixes Fake enough comms to make 'Race On!' boot. Added texture flip/swap bits. Namco banners in Race On! and other places. Update DIPs for Race On! to deactivate wheel test. . Fixed handle controls in Final Furlong 2 and clone - nyanpai.cpp . Cleaned up code a bit. Filled in DIP switch settings for 'Mahjong Housoukyoku Honbanchuu' from manual. Correct transliteration of Nyanpai. . Cleanups: Use struct for each layer and made palette RAM into memory share. Reduced duplication and unnecessary code. Sync file/driver name with updated metadata. Use device_mixer_interface for sound routing (nichibutsu\nichisnd.cpp). - segahang.cpp, segaorun.cpp and segas16a.cpp: Moved driver_device overrides to protected - segas24.cpp: Put layer sort in a lambda. Changed a fixed size vector to array. Moved video hw section to top of file. - segaybd.cpp: Cleaned up. - sidearms.cpp . Correct Z80 clock (Guru README and now Jim Westfall). Removed old changelog and moved Guru README to driver notes. Improved interrupt timing. . OBJON and BGON enables were the wrong way around, watchdog is actually sprite DMA, vblank bit was on the wrong port and paletteram is writeonly (capcom\sidearms_v.cpp). - startouch.cpp: Hookup 'VIA Apollo MVP3' chipset. Moved out Trio64/DX roms from isa\svga_s3.cpp and create a new PCI target (pci\trio_pci.cpp). Added Trio64/DX to EuroPlay 2001. - stv.cpp . Formatting cleanup (sega\saturn_v.cpp). Fixed directory parsing on cross sector boundaries. Use busy state around drive status changes. Renamed stvcd to saturn_cd_hle. Removed unnecessary device_memory_interface trampoline. MAX_BLOCKS cleanup. Use emu_timer in place of timer generic. Command 0x51 is confirmed it doesn't generate a DRDY, pause drive when in buffull state (sega\saturn_cd_hle.cpp). Lock out DMA if trying to access VDP1 RAM and other stuff at same time. Fixed (MESS) gunblaze booting (sega\saturn_scu.cpp). Replaced macros in header with inline member functions. Reduced duplicate declarations (sega/stv.h and sega\saturn.h). . Convert macro flags to enum. Reduced function namings. Handle host RA updates properly. RA is actually its own thing. Fixed LEF behaviour and PC readbacks from host side. All ALU ops but AD2 doesn't update the upper 16-bit part. Tidy some expressions (scudsp\scudsp.cpp). - sunwise.cpp: Expanded NVRAM area to cover the entire static RAM. Update notes. - taito_f2.cpp: Fixed manufacturer title in cameltry and clone cameltrya (ID 09132) - taitosj.cpp: Hook up Z80 busreq/busack - tmnt2.cpp: Don't reuse 'i' variable in tmnt2_prot_w. Changed xlock/ylock check and improved palette dimming, fixes tmnt2 foreground graphics in Sewer Surfin' don't appear (ID 09385). Updated notes. Small cleanup. - toaplan1.cpp . Moved common parts of memory maps to helper functions. Reduced duplication, improved logging and correct DSP ROM size. . Encapsuated BCU, FCU, and Video controller hardware as devices. Reduced duplication in machine configuration. Fixed 'Out Zone (Zero Wing TP-015 PCB conversion)' raw params - it uploads same video timing parameter values as parent set to CRTC. Made sprite size LUT RAM as memory_share_creator. Use separate palette devices for each layer. Improved notes, reduced duplication and unnecessary functions. - tubep.cpp . Tube Panic: Refresh rate is ~59hz according to PCB video, so assume same screen raw params as Roller Jammer. . Roller Jammer: Z80 m1+iorq is the int ack cycle. Removed erroneous scanline sound interrupt. - twincobr.cpp: Suppress side effects for debugger reads, improved logging and correct DSP ROM size. Only install fsharkbt DSP handlers for clone Flying Shark (bootleg with 8741). - vicdual.cpp . Small cleanup to spacing. Mux input ports. Fixed dipswitch read in Invinco (ID 09382). . Correct 'Lives' dipswitch and sound flag in clone Super Crash (bootleg of Head On). Use inputs from supcrash for clone Colision (bootleg of Head On), fixes steering controls and dips don't work (ID 09389). - Big Karna: Use measured screen hz - Biomechanical Toy: Added PLD for 'Biomechanical Toy' variants - Bionic Commando: Added presumed sprite DMA trigger - Cloak & Dagger: Video/Resnet comes from emu, not devices. - Come On Baby: Manually rebuild HDD dump. Fixed PCI card mapping. Hookup serial ports. Hookup Voodoo 3 3000 PCI roms (video\voodoo_pci.cpp). Initial implementation of an ITE 8671F Giga I/O. Added keyboard and mouse IRQ lines (machine\it8671f.cpp/h). - Countertop Champion 2: Hookup MicroTouch. Confirm title in comments. - Densha de GO!: Added Japanese text and bulb color. Added shared group and the 1/2/3 lamps. Make brake pressure xx.x instead of xxxx (layout\dendego.lay). Update controller state in INPUT_CHANGED_MEMBER instead of screen_update and tweak lamp brightness. - Dottori Kun: Added ASCII PCB layout - Ez2dancer 2nd Move: Fixed PIIX4 config space mapping - F-1 Grand Prix: Redumped clone F-1 Grand Prix (Playmark bootleg) - Filetto: Extend voice note - Finalizer: Changed MCU type to M58715. Updated notes (mcs48\mcs48.cpp). - Five a Side Soccer: Increased default trackball sensitivity. It was way too low to use with analog controls before. - Go Go Strike: Identified motherboard type and retire pcat_base_state use - HeliFire: Lower MCU clock, fixes sound pitch is too high and tempo is too fast (ID 09386). - Invasion: The Abductors: Fixed gun position not detected on right side of screen, gun triggers were on wrong port (machine gun works now). - Knuckle Bash 2 (bootleg): Moved kbash2-specific MSM6295 bankswitching into kbash2_state and improved kbash2 system description. - Mahjong Vegas: Correct 'Time Service Frequency' dipswitch typo - Mario Bros. . Changed Mario Bros. (US, Revision E) to parent and color prom back to the one when it was added. Consolidate driver into single file. Updated notes. TODO: Coin 2 doesn't work in mario and marioj (though it works in service mode). . Coin1/2 were the wrong way around. Added NVRAM. Removed some unneeded variables and clock macros. Removed OLD_SOUND discrete sound emulation and MCU macros (nintendo\mario_a.cpp). Added shared base memorymap. Removed some mario_ function prefixes. Use retry_access trick to sync 2-way cpu comms. Changed clone Masao audio clocks. Correct some romlabels. - Mega Double Poker: Marked Mega Double Poker and clone not working. Note: They've failed to boot for a while now. Also reduced duplication and literal tags a bit and got rid of a bankdev. - Monkey Magic: Added note about xtal. Reorded dsw settings from low to high. - Moon Raker: Added the starfield rom - NBA Hangtime: Dumped security PICs - P's Attack: Hookup EEPROM and CF slot rather than HDD - Pango Fun: Create new UM8498F chipset. Guess shadow RAM location. m_kbrst is high at startup (machine\um8498f.cpp). Get rid of pcat_base_state. Added ISA slots and replace baked in Trident ROM + bare VGA with actual AVGA1 (pc\pangofun.cpp). Added 'Cirrus Logic GD5401 AVGA1' card support (isa\svga_cirrus.cpp). - PC-Engine (battlera.cpp, ggconnie.cpp, paranoia.cpp, tourvis.cpp and uapce.cpp) . Make some variables constant. Reduced preprocessor macros. Use abbreviated type names and BIT helpers (Common PC-Engine hardware. See reference at: http://daifukkat.su/pcfx/). . Added input clock for video hardware (battlera.cpp and ggconnie.cpp) . Use XTAL for main clock. Reduced duplication. Fixed save state issues and initializers. Added notes for sound routing (ggconnie.cpp, paranoia.cpp, pcecommn.cpp/h. tourvis.cpp and uapce.cpp). . Improved logging (nec\pce_cd.cpp) . Hudson HuC6202 VPC: Reduced duplication and use more member arrays (video\huc6202.cpp) . Hudson HuC6260 VCE: Fixed initializer and save state issues. Made screen update function directly usable with screen device (video\huc6260.cpp). . Hudson HuC6261 VCE: Fixed initializer, debugging and save state issues. Prepare to hook up HuC6271/2 output. Made screen update function directly usable with screen device (video\huc6261.cpp). . Hudson HuC6270 VDC: Fixed initializer. Implemented 16-bit host interfaces use with PC-FX. Improved logging and reduced duplication (video\huc6270.cpp). . Hudson HuC6271 'Rainbow': Fixed initializer (video\huc6271.cpp). . Hudson HuC6272 'King': Fixed initializer and microprogram writes (16 halfwords). Reduced literal tags and improved logging. Gixed reading KRAM autoincrement value (video\huc6272.cpp). - PC hardware: Added quick ref for POST codes (pc\README.md) - PinMAME: Dumped security PICs for Corvette and Phantom Haus - Play 4 Texas Hold'em: Additional notes. Changed name to be same as manual. Updated year to 2011 based on last patch. - Pull The Trigger: Added base sis630 chipset - Qianxi Jielong: Fixed palette. Added Oki ROM banking. - R2D Tank: Added note about older version: R2D Tank is a cost-reduced 'sequel' to "Red Tank", Sigma probably contracted Orca to simplify the hardware. The first version (Red Tank) is on 2 PCBs with "FUJIDENSHI" on the EPROM labels. Sigma's "The Goku" is on the same earlier hardware as Red Tank. - Reality Tennis: Replaced macros with constexpr - Silent Scope 2: Removed badly dumped ROM that would fail POST and correct LAN EEPROM location for clones sscope2ac, sscope2acvd1, sscope2ec, sscope2ecvd1, sscope2jc, sscope2jcvd1, sscope2uc and sscope2ucvd1. Updated PCB info. - Silverball: Fixed HDD loading. Retire slvrball806 set, use MACHINE_IS_BIOS_ROOT for the base BIOS package. The dump is non-workable, it just crashes strong. - Striker: Fixed address map. Promoted game to working. Note: This PCB features flying wires going between the Z80, the GM76C28A-10 RAM and a GD74HCT138 3 to 8 line decoder/demultiplexer. It reads 2 times the address 0x60f0/60f1 during RAM test at boot (show "RAM NO GOOD" if wrong value), at coin up and at bet. - Tiger Road: MSM5205 in clone 'Tora e no Michi (Japan)' is hooked up same as Trojan (capcom\lwings.c) (also tried with capcom\sf.c, but got bad sound). - Tournament Table: Added PLAYER4 analog direction control defaults (emu\inpttype.ipp) (MT09383). - Vector games . Added LUA bindings for vector-screen interfaces. Added a callback mechanism to expose vector drawing to the LUA interface, allowing external hardware devices to interface with MAME's vector rendering code (video\vector.cpp and mame\luaengine.cpp). . Refactored LUA hooks for vector devices (video\vector.cpp and mame\luaengine.cpp). - WGP: Real Race Feeling: Increased 68000 clock - Description changes of Beastie Feastie (Pac-Man conversion, set 1), Big Twin (no girls conversion, set 1), BnB Arcade (V1.0005 World), Daytona USA (with Saturn advertisements), Flak Attack (Japan, version P), Flak Attack (Japan, version P, PWB 450593 sub-board), Happy Tour (V1.12), Hot Mind (Hard Times hardware, set 1), Invasion: The Abductors (version 3.0), Invasion: The Abductors (version 4.0), Invasion: The Abductors (version 5.0), Jiao! Jiao! Jiao! (China), Knuckle Bash 2 (bootleg of Knuckle Bash), Mario Bros. (Japan, revision C), Mario Bros. (US, revision F), Major Poker (set 2, v2.0), Major Poker (set 3, Micro Manufacturing intro), Major Poker (set 4, Micro Manufacturing intro), Major Poker (set 5, Micro Manufacturing intro), MX5000 (version R), Nyanpai (Japan), Qianxi Jielong / Hongxin Jielong, Slap Fight (Japan, A76 set, GX-006-A PCB) and Slap Fight (Japan, A77 set, 8606M PCB). - Fixed rom names in ghosteo.cpp, hominn_980924.cpp, mario.cpp, namcos1.cpp and superqix.cpp - Renamed (backfirt) to (backfirtb), (gijoea) to (gijoeaa), (majorpkr) to (majorpkr20), (mario) to (mariog), (marioe) to (mario), (mx5000) to (mx5000r), (niyanpai) to (nyanpai), (wgp2) to (wgp2j) and (touryuu) to (touryuua) - Dipswitch fixes in 4enraya.cpp, igs017.cpp, midwunit.cpp, namcos23.cpp, mario.cpp, (pullttrig) to (pulltrig), tecmo.cpp, niyanpai.cpp and vicdual.cpp - MAME . VIDEO RENDERING SYSTEM . Don't use reserved _Names (util\palette.h) . Added LUA bindings for vector-screen interfaces. Added a callback mechanism to expose vector drawing to the LUA interface, allowing external hardware devices to interface with MAME's vector rendering code. Refactored LUA hooks for vector devices (video\vector.cpp and mame\luaengine.cpp) . Fixed polygons with shared vertices not rendering correctly and correctly map parameter values to each extent (video\poly.h). . MEMORY SYSTEM: On switch, do nothing if selected slot is same as before (emu\emumem_mview.cpp). . ROMLOAD: Replaced various macros with constexprs and inline functions. Mark ROM_OPTIONAL as deprecated (emu\romentry.h and emu\romload.h). Constexpr at namespace scope implies static for variables and inline for functions (emu\romentry.h). . INPUT . Don't gate creating input device behind -mouse option, it breaks -mouse_device, -trackball_device, etc (input\input_win32.cpp). . Removed barely used IPT_TILT1/2/3/4, combine IPT_GAMBLE_DOOR with IPT_INTERLOCK and rename to generic IPT_DOOR (emu\inpttype.ipp). Added some content for Input Macro and Off-screen Reload plugins (docs\source\plugins\inputmacro.rst and offscreenreload.rst). . Added PLAYER4 analog direction control defaults (emu\inpttype.ipp) . UI/OSD . Added nine extended Latin and IPA characters and added CC0-1.0 license comment (uismall.bdf). . Made hide_romless text clearer (ui\submenu.cpp). . Limit frame updates on initial gameinfo/warning screens and avoid host CPU/GPU resource spiking (ui\ui.cpp). . Added throttled frame update to another startup event loop and sleep for 1ms. Only sleep if no frame update (ui\ui.cpp). Added message if menu is empty (ui\confswitch.cpp). . Only clip the cursor if we haven't already. On Windows, cursor clipping is global and needlessly invoking 'ClipCursor(nullptr)' will interfere with other applications that might also be trying to clip the cursor. With this change, MAME will only invoke 'ClipCursor(nullptr)' if MAME previously clipped the cursor (windows\window.cpp). . Reverb configuration: Fixed uninitialised data accesses (audio_effects\reverb.cpp). Don't crash on the network devices menu when there are no network interfaces (GitHub #14959) (ui\miscmenu.cpp). . PLUGINS: hiscore.dat update (plugins\hiscore\hiscore.dat). Refactored LUA hooks for vector devices (plugins\vector\init.lua + plugins\vector\plugin.json). . Consolidate drivers into single file (fantland.cpp, kickgoal.cpp, lethalj.cpp, mario.cpp, rltennis.cpp, segahang.cpp, segaorun.cpp, segas16a.cpp, segas24.cpp, segaxbd.cpp, segaybd.cpp, starcrus.cpp, taito_l.cpp, tecmo.cpp and wgp.cpp) - SDLMAME . Initial support for SDL3. SDL3 is the default for macOS targets. Linux/Windows can build with OSD=sdl3 while we wait for better distro support for SDL3. Both X11 and Wayland sessions are fully supported on Linux. SDL3 -sound=sdl supports both input and output. All other video, sound and input functionality should otherwise be the same for now. SDL 3.4+ multiple keyboard/mouse support is planned. . Fixed font lookup (font\font_sdl3.cpp, lib\osdobj_common.cpp). Fixed key up not being sent on some systems. Fixed assert on new instance of joystick connected (input\input_sdl3.cpp). Enable TEXT_INPUT events, fixes text input fields in the UI (sdl3\window.cpp). - Compiling . Small comments cleanup to copy-pasted sprite drawing routines. Lots of ATTR_COLD and some code cleanup. . Fixed last remaining tautological compare warnings for Clang/ARM64 (nscsi\tape.cpp and util\ioprocs.cpp). Promoted tautological comparison warning to an error (scripts\genie.lua) - Debugger . Check that you have a memory interface before trying to use it (debugger\win, debugger\osx and debugger\qt) (ID 09377) . Allow device_state_interface to participate in global symtable state (debug\debugcpu.cpp and debug\express.cpp) . Bulk replace uint8/16/32_t to u8/16/32 (machine\cs4031.cpp, f82c836.cpp, um8498f.cpp and wd7600.cpp) . Fixed hang when a watchpoint is hit on a 64-bit wide address space with word addressing (debug\points.cpp) 0.285 - New games: Moon Raker, Relief Pitcher (System 1, prototype) and Waku Waku Jumbo (Rev A) - New Working games: 'Maque Wangchao / Chaoji Da Manguan 2 - Jiaqiang Ban (China, V100C)' and The Pirates of Dark Water (SNES bootleg) - New Non-Working games: Diamond Heart Plus (v18.0), Gamebox, Lan Mao, Modern Cart and Multi Game 9 (ver 9.04 Eng). - New clones: Cherry Bonus III (ver.2.20), Cherry Bonus III (ver.3.0), Devil Fish (Nuova Videotron bootleg), Dingo (Nuova Videotron bootleg), Dirt Dash (World, DT2 Ver.C), Empire City: 1931 (US, bootleg), Happy Farm (Ver. IN.01.01.A), Jungle King (Nuova Videotron bootleg), Puzz Loop (Korea, bootleg), Revolution X (revision 2.0 9/8/94), Sparkle (v1.1.3), Super Poker (v305US), Tic Tac Trivia (6221-20, U5-0B, 11/17/85), Trivia ? Whiz (6221-03, U5-0) and Vanguard (SNK, set 2) - New AGEMAME games: 21 Club (Barcrest) (German) (MPU4) (GTW 2.7), Crown Jewels Deluxe (Barcrest) (German) (MPU4) (CJG 0.4, set 2), Cup Final (Nova) (MPU4) (set 3), Pink Panther (German) (Maygay) (M1A/B) (set 2) and Roadrunner - Removed games: Trivia ? Whiz (6221-00) - New drivers: gamebox.cpp, lanmao.cpp, mgt_multigame.cpp and subsino_kr_h8.cpp - New devices: amy, clio, cr560b, floppy_twiggy, lc6554, m146805e2, madam, scsi_cdrom_apple_ext and xetec_c5181 - New Clrmame: https://mamedev.emulab.it/clrmamepro/#downloads - New DATs: GameInit.dat (https://www.progettosnaps.net/gameinit/) - Bob Zed (What's new): https://youtu.be/46V7ug1pxIY - CPU . Analog Devices ADSP-2100: Correct some tabulaton that had rotted (adsp2100\adsp2100.cpp) . Dynamic Re-Compiling . drccache: Defer allocating to start, allow forcing W^X mode. Added helpers for allocating structures/objects in the cache. Supply desired alignment when allocating cache memory (not fully implemented). Log some statistics on destruction (cpu\drccache.cpp). Added -[no]drc_rwx option to allow forcing W^X mode when writable executable pages are permitted (emu\emuopts.cpp). Minimise the number of pages that need protection changes. Only mark pages writable starting from the beginning of unused space. Honour requested alignment for allocations (cpu\drccache.cpp). . drcbeut: Allocate (misnamed) hash table blocks from the permanent cache area so they aren't intermixed with executable code. Allow back-end to specify preferred alignment for hash table blocks (cpu\drcbeut.cpp). . drcbearm64: Shuffled generated code for HASHJMP a bit to be less sensitive to load latency (cpu\drcbearm64.cpp) . PowerPC DRC: Allow DRC cache size to be set externally at configuration time, so systems can override the default (cpu\powerpc/ppc.h and powerpc\ppccom.cpp). . 3DO DSPP, hyperstone E1-xx + Hynix GMS30C2xxx: Don't allocate DRC resources if recompiler is disabled (dspp\dspp.cpp and e132xs\e132xs.cpp). Simplify arithmetic right shift calculations (e132xs\e132xsop.hxx). . ARM7: Removed ARM7 from the list of DRC CPUs since its incomplete recompiler functionality was removed (scripts\src\cpu.lua) . Analog Devices ADSP21062 'SHARC' . Fixed bug in shift, obvious optimisations: Fixed shift with variable count when count is positive (should shift left, was shifting right). Use recently-introduced UML bit field extract instructions. Don't follow arithmetic with redundant compare to zero if only zero flag is required. Let the back-end take care of fetching source from memory or immediate for simple arithmetic. Assume the back-end knows how to generate conditional CALLH. Use BIT helper. Don't assume x86-like magic sequence breaking on self-XOR. Correct a comment that didn't match the code. Handle corner cases for FEXT. The interpreter probably needs updating, too. Fixed MIN and MAX when Rn and Ry are the same register. Handle corner cases for FDEP. Cleaned up formatting of 64-bit values and initialisation of opcode dispatch table (sharc\sharcdrc.cpp). . Fixed SV flag for LSHIFT/ASHIFT in recompiler (interpreter was correct). Simplified generated code for FEXT with non-immediate bit position/length in recompiler. Fixed off-scale ASHIFT in recompiler. Fixed off-scale FEXT with sign extension in interpreter (sharc\sharcdrc.cpp and sharc\sharcops.hxx). . UML: Correct syntax for generating UML conditional CALLH instructions (docs\source\techspecs\uml_instructions.rst) . Intel 8051: Some variables were missing savestates after OG's refactor (MAME 0.283). Small cleanup to spacing. Clean up some single line comments (mcs51\i8051.cpp). . Motorola MC68008: Fixed crash when trying to set PC from debugger (m68000\m68000.cpp) . Texas Instruments TMS32xxx . Improved naming of TMS320 series DSPs. Name folders after families rather than the first family member emulated by MAME (yes, TMS320C1x and TMS320C2x are retrospective names). Follow TI's convention of including the "C" in the names. Don't try to jam all the disassembler source file names into 8.3. The TMS32010, TMS320M10 and TMS320C10 are different things, but unfortunately MAME hasn't made a distinction between them so far. As far as I can tell, early DECTalk devices used TMS32010 or TMS320M10 chips, while the Atari and Toaplan games used TMS320C10 chips, but this should be verified. . Got rid of some superfluous parentheses (tms320c3x\320c3x_ops.ipp). Marked TMS320C31 as parent ROM of TMS320VC33. . Zilog Z80: Fixed IRQ state if comes from daisy chain (z80\z80.cpp) . Zilog Z80180/Z8S180/Z80182 and Hitachi HD64180RP: Can't shortcut with m_icount=0 after SLP opcode due to possible background Timer/DMA (z180/z180.cpp) - SOUND . Atari C012294 POKEY: Don't flag SEROUT full when held in reset (sound\pokey.cpp) . Ensoniq ES5503: Fixed off-by-1 sample position adjustment on looping (Github #14582; sound\es5503.cpp) . MM5837 Digital Noise Source: Configuration interface simplifications (sound\mm5837.h) . TMS5110: Removed romclk_hack (sound\tms5110.cpp) - DEVICE . Floppy: Minor code cleanup (tools\floptool.cpp) . Fujitsu MB87030 SCSI controller: Fixed some timings (drq write would shorten waits) (machine\mb87030.cpp) . Imgtool: Retired the get_chain method. This is no longer implemented by any supported filesystem, and no command made any use of the information it provided (floptool's flopblocks command is functionally comparable) (imgtool\imgtool.cpp). . Konami 033906 PCI bridge: Added read side effects check (machine\k033906.cpp), should fixes debugger crashes when accessing 0x3500000 in SHARC data space memory in all hornet.cpp sets. Correct k033906_device init order (ID 08830). . Namco C123 (4x + 2x Tilemaps): Zerofill control regs (namco\namco_c123tmap.cpp) . Sanyo LC7535: Use device_sound_interface. Removed custom volume callback. Added option to use a logarithmic gain scale. Use explictly sized variables (sound\lc7535.cpp). . SCSI Hard Disk: Allow to add a per-driver default HD model (still overriden by an IDNT metadata) (nscsi\hd.cpp). . VGA: Added imperfect feature graphics where it belongs (video\pc_vga_*) - New drivers: subsino_kr_h8.cpp - 1943.cpp: Document and hook up buffered sprite RAM. - 20pacgal.cpp: Small cleanup. Added screen raw params after Guru measured video timing. Removed useless do_pen_lookup function. Updated notes. - 39in1.cpp: Swap CGA and VGA option text - 3do.cpp . Misc notes. Split 'Uncle' in own memory map. Converted 'Madam' and 'Clio' to address_map. Split Madam and Clio into own devices. Split BIOSes by model types, retire original 3do_ntsc/3do_pal romsets. All new dumps provided by [3dodev]. HC-21 is an unreleased USA model. Added kanji region stub for alg sets. Fixed execution for IS_BIOS_ROOT romsets. Preps for VDLP display list parsing, added Amy stub. Hookup Portfolio SWI calls to DASM. Replaced memory_bank with a memory_view for overlay handling. Added adbio output support and hookup kanji ROM for Japanese systems (misc\3do.cpp). . Initial hookup of a CR-560-B CDROM drive (machine\cr560b.cpp) . Fixed lambda capture (misc\3do_m.cpp). . Hookup DSPP. Added logmacro. Hookup DSPP DACs. Hookup expansion bus interrupt. Convert system timer to emu_timer. Use slack as system timer tick unit (misc\3do_clio.cpp). . Moved diag port as devcb, disable by default. Added player bus DMA. Initial checkin for Cel engine emulation. Improved Cel pixel writes. Added CEL 16bpp packed source. Implemented bgnd, sign extend xpos & ypos, 6bpp packed CEL and coded 4bpp and 16bpp packed CEL. Hookup stopgap player 1 inputs (misc\3do_madam.cpp). . Moved drawing into Amy (misc\3do_amy.cpp) - cps2.cpp: Don't set sprite priorities before screen_update (ID 09369). Fixed hardware documents. - cv1k.cpp: Fixed device naming and minor cleanups. Changed ep1c* files filename to cv1k_v*, because this file is emulation core for cave CV1000 hardware specific and more closer to describe actual purpose, also ep1c is part family name of Altera Cyclone (1) FPGAs. Suppress side effects for debugger reads, use logmacro.h for replace plain logerror function. Reduced some duplicates and unnecessary device finder. Make some variables constant. Use reference to replace pointers and util::sext for signed values. Added notes (cave\cv1k_v.cpp). Fixed metadata for describe region. Use shorter typename value for consistency and reduced duplicates. Improved naming and logging. Reduced literal tag usage and unnecessary functions. Added notes (cave\cv1k.cpp). - cvs.cpp: Lower TMS5100 clock (no xtal). Note: TMS5100 is around 620kHz from an R/C osc with a VR, slightly differs per PCB. - deco32.cpp . Fixed volume control for Dragon Gun and Locked 'n Loaded (ID 05422) . Updated Dragon Gun for new LC7535 interface and support switching the gun OKI output between gun speaker and main speaker. . Use common xtals for Night Slashers. Confirmed Tattoo Assassins maincpu xtal. Lower soundcpu clock for Dragon Gun, Fighter's History, Locked 'n Loaded and Night Slashers. - deco156.cpp: Implement volume control for Heavy Smash - goldstar.cpp: Cleaned up various stuff - hornet.cpp: Added read side effects check (machine\k033906.cpp), should fixes debugger crashes when accessing 0x3500000 in SHARC data space memory in all hornet.cpp sets. Correct k033906_device init order (ID 08830). - jaguar.cpp . Rewrote EEPROM access, fixes (MESS) jaguar [cfodder] has no access to the SRAM (ID 09342). Fixed Player 2 buttons. Fixed quickload regression. Fixed random crashes in Fishin' Frenzy startup (access cojag_gun_input_r, leftovers?). Workaround for (MESS) battlesp/battlesg black screen. Fixed wave ROM endianness. Allows BIOS logo to correctly play notes. Make jaguarcd to boot from BIOS ROM, fixes screen size (atari\jaguar.cpp). . Don't set a pending irq if line is masked. Use set_input_line for irq 0 as well. Massage unaligned accesses towards Tom & Jerry. Makes (MESS) jaguar protect and protctse playable. R30 gets overwritten on irqs. Fixed shlq calculation. Former fix for (MESS) jaguar kasumi booting. Fixed mmult opcode, fixes BIOS ATARI letters, 3d renders in (MESS) superx3d and hstrike. Added N flag for abs opcode and simplify calculation. Accumulator readback is sign extended. Get rid of imultn hack. Make the branch hack confined to CoJag (cpu\jaguar\jaguar.cpp). . Stop opcode populates object code too. Correct RMW masks. Regular bitmap rewrite of 16bpp and 24bpp using pitch base. Bump number of object processor max entries to 200, fixes (MESS) jaguar raiden ranking screen and ttoonadv missing gameplay GFXs. Moved out object pointer from process functions. Implemented BCOMPEN, fixes (MESS) jaguar missil3d text and original version GFXs. Implemented pitch in scaled 8bpp bitmap and blending in scaled 16bpp. Partially fixes (MESS) jaguar mutntpng and phase0 main menus, respectively. Avoid potential crash in (MESS) raiden. Fixed object code returns (atari\jagobj.ipp). . Attempt to make scanline_update safer. Mask host irqs if correlated bit in INT1 isn't enabled. PIT GPU timer are after regular clock with no internal divider, fixes (MESS) jaguar raiden BGM tempo. Disable PIT on prescaler == 0xffff. Blitter readback fix for (MESS) jaguar avsp. Upcast PIT and JPIT to u64 resolution, fixes hang regression in (MESS) jaguarcd. Stop drawing at display end, fixes valdiser gameplay flickering. Partial implementation of suspend state in object processor, fixes (MESS) kasumi rowscroll floor. Moved line buffer array as variable and clear it when starting object processor, fixed (MESS) valdiser playfield (atari\jaguar_v.cpp). . Added JPIT1 and JPIT2 irq sources, fixes sound in (MESS) jaguar cybermor and mutntpng. Sort out JPIT irq section. JPIT setups needs either prescaler or divider set to work, fixes (MESS) jaguar pbfant sound. Allow changing serial frequency after setting SMODE. Allow playback of BIOS roaring sample. Clear DSP irq lines on JPIT and serial disabled. Extend CoJag Jerry irq hack note (atari\jaguar_a.cpp). . Multiply pitch in source and destination widths. Fixed 3D renders for chekflag and others. Improved non-TOPBEN handling. Fixed (MESS) hstrike difficulty select blending and partially fixed (MESS) battlesp main menu. Preliminary GOURZ support. Fixed clipping A1. Shows proper spinning cube in BIOS (atari\jagblit.ipp). - lethalj.cpp: Added support for savestates - m10.cpp: Removed screen timing constexpr from class - model1.cpp: Default NVRAM is 1-filled - model2.cpp: Delay IRQ mask update by 2 cycles. Avoids possibility of sound_ready_w() bypassing the 2 cycle delay and firing a sound interrupt too early. - mpu4bwb.cpp: Removed preprocessor line continuation backslash that's asking for trouble - neptunp2.cpp: Made 'La Perla del Caribe' show the first error - raiden2.cpp: Moved systems with blending to a separate state class and reduced code duplication (seibu\raiden2.cpp). Draw sprites using priority for xsedae (no blending) (seibu\raiden2_v.cpp). Removed static member declarations that aren't actually defined (seibu\raiden2.h). - royalmah.cpp: Correct some DIP switch settings for Mahjong Tensinhai and Mahjong Raijinhai. Filled in Mahjong Raijinhai DIP switches from available manual pages. - segas16b.cpp: Moved game specific savestates to game specific init - shadoww_ms.cpp: Fleshed out driver. Most glaring remaining problem is sound isn't hooked up. - shougi.cpp: Hook up sharedram direction bit, small cleanup. - snk.cpp: Added 2 missing save state variables (snk\snk_v.cpp) - taitojc.cpp: Added wheel_motor for Side by Side and Side by Side 2 - Ace: Improved colors, increased score panel size and added border graphics and confsettings. Small cleanup. Correction to in2 offsets and leave sound triggers unmapped. TODO: Discrete sound is unemulated. What are the unknown inputs in IN2 for? Extra coin sensors? The cabinet does not have a start button. Is the border correct? There's one photo online with gaps in the border. Does it mean planes can fly through at one point, or was it just a PCB malfunction? The flyer shows alternating white/black border objects, but PCB references don't. - Alien3 The Gun: Added PORT_MINMAX to the Y direction to avoid the value going out of range. Fixes aiming reticle rolls over from top of screen to bottom in alien3, Service Mode shows value for UP goes beyond max FF value back to 00 (ID 08679). - Amiga/CDTV: Added new CPU 'Sanyo LC6554' MCU core. Implemented front panel with VFD and control buttons. Play/Pause, Stop, Previous and Forward buttons not yet working because the "Remote Control Input Converter" isn't hooked up yet. - Choplifter: Note that IC7, IC13 and IC19 (315-5025) are not PLDs, but are a custom graphics shifter. - Clay Shoot: Added PIT8253 sound and increased Z80 clock. Removed tag lookups. Changed ad sticks to paddles and fake skill switch toggles to confsetting. Added dsw locations. TODO: Missing SN76477 sound effects. - Donkey Kong Junior: Redumped GFX ROMS for clone Donkey King Jr. (Nuova Videotron bootleg). Note: Missing gfx now appear on screen (i.e. title screen). Measured clocks for clone Donkey King Jr. (Nuova Videotron bootleg). - IPM Invader: Fixed bases tile drawing for clone 'IPM Invader (M11)' (ID 09357) - Ken Sei Mogura: Added separate views for the moles. Tweak colors a bit (layout\kenseim.lay) - Knuckle Joe: Added screen raw params from video measurements. Normalize red color channel for 2nd half of palette. Added note about overclocked Z80. - Maque Wangchao / Chaoji Da Manguan 2: Improvements. Hooked up protection device emulation and Oki ROM banking. Redumped Oki ROM. Promoted game to working. - The Pirates of Dark Water (SNES bootleg): Promoted 'The Pirates of Dark Water (SNES bootleg)' to working - Qianxi Jielong: Added BG layer - Rolling Crash / Moon Base: Use rom PCB locations from moonbase and removed MB14241 Shifter IC - The Simpsons: Changed screen visible width to 320 again after confirming it on a 2nd PCB - Traverse USA / Zippy Race: Normalize red color channel - Trivia ? Whiz: Removed 'Trivia ? Whiz (6221-00)'. Note: Same as clone 'Trivia ? Whiz (6221-00, with Sex trivia)'. Added 'Trivia ? Whiz (6221-03, U5-0)' (Merit 1985). Dumped newer program ROMs for Trivia Whiz as well as the question decoder PROM for the Trivia Whiz sets. - Tropical Angel: Added screen raw params based on M52 and TODO notes - unknown VRender0+ bowling game: Minor notes update - Western Venture: Provided good dump for Western Venture (Ver. AA.02.D) program ROMs - Fixed rom names in 8080bw.cpp, astrcorp.cpp, clayshoo.cpp, cle68k.cpp, megasys1.cpp and vicdual.cpp - Description changes of Crown Jewels Deluxe (Barcrest) (German) (MPU4) (CJG 0.4, set 1), Deathsmiles (Japan, 2007/10/09 MASTER VER), Deathsmiles MegaBlack Label (Japan, 2008/10/06 MEGABLACK LABEL VER), DoDonPachi Dai-Fukkatsu Black Label (Japan, 2010/1/18 BLACK LABEL), DoDonPachi Dai-Fukkatsu Ver 1.0 (Japan, 2008/05/16 MASTER VER), DoDonPachi Dai-Fukkatsu Ver 1.5 (Japan, 2008/06/23 MASTER VER 1.5), Donkey King Jr. (Nuova Videotron bootleg), Espgaluda II (Japan, 2005/11/14 MASTER VER, newer CV1000-B PCB), Espgaluda II (Japan, 2005/11/14 MASTER VER, original CV1000-B PCB), Espgaluda II (Japan, 2005/11/14.MASTER VER.), 'The Fallen Angels (World) / Daraku Tenshi: The Fallen Angels (Japan)', Ibara (Japan, 2005/03/22 MASTER VER..), Ibara (Japan, 2005/03/22 MASTER VER.., '06. 3. 7 ver.), Ibara Kuro Black Label (Japan, 2006/02/06 MASTER VER.), Ibara Kuro Black Label (Japan, 2006/02/06. MASTER VER.), Medal Mahjong Moukari Bancho (Japan, 2007/06/05 MASTER VER.), Muchi Muchi Pork! (Japan, 2007/ 4/17 MASTER VER.), Mushihime-Sama (Japan, 2004/10/12 MASTER VER), Mushihime-Sama (Japan, 2004/10/12 MASTER VER.), Mushihime-Sama (Japan, 2004/10/12.MASTER VER.), Mushihime-Sama Futari Black Label - Another Ver (World, 2009/11/27 INTERNATIONAL BL), Mushihime-Sama Futari Black Label (Japan, 2007/12/11 BLACK LABEL VER), Mushihime-Sama Futari Ver 1.0 (Japan, 2006/10/23 MASTER VER.), Mushihime-Sama Futari Ver 1.5 (Japan, 2006/12/8 MASTER VER 1.54), Mushihime-Sama Futari Ver 1.5 (Japan, 2006/12/8.MASTER VER. 1.54.), Packy no Treasure Slot (Japan, main ver. 1.3, video ver. 1.1), Pink Panther (German) (Maygay) (M1A/B) (set 1), Pink Sweets: Ibara Sorekara (Japan, 2006/04/06 MASTER VER.), Pink Sweets: Ibara Sorekara (Japan, 2006/04/06 MASTER VER...), Pink Sweets: Ibara Sorekara (Japan, 2006/04/06 MASTER VER....), Pink Sweets: Ibara Sorekara (Japan, 2006/xx/xx MASTER VER.), Puzzle! Mushihime-Tama (Japan, 2005/09/09 MASTER VER), Puzzle! Mushihime-Tama (Japan, 2005/09/09.MASTER VER), Revolution X (prototype, revision 5.0 5/23/94), Revolution X (revision 1.0 6/16/94), Sol Divide: Sword Of Darkness (Korea), Sol Divide: Sword Of Darkness, Sonic Blast Man no Janken Battle (Japan, main ver. 1.1, video ver. 1.0), Vanguard (SNK, set 1) and Video Pool (Nuova Videotron bootleg of Video Hustler) - Renamed (dirtdash) to (dirtdashb), (dkongjrv) to (dkingjrv), (packysts) to (packyts) and (revx) to (revx1) - Dipswitch fixes in 39in1.cpp, goldstar.cpp, koikoi.cpp, royalmah.cpp, shadoww_ms.cpp and snesb.cpp - MAME . VIDEO RENDERING SYSTEM . Added an off-screen reload helper plugin for people playing lightgun games with other types of controls (plugins\offscreenreload\*). . Make warning msg more generic and brief and put it in a collection(toggle). Added red background and footnote with more verbose msg. No MAME lingo/slang in warning msg (layout\noscreens.lay) . LUA engine . Better handling of options: Use "classic" locale for numeric conversions. Don't use capturing lambdas. Put integer overload of value() before float overload. Got rid of duplicated numeric options conversion code (mame\luaengine.cpp). . Ensuring that 'entry:default_value()' returns the correct type. 'entry:default_value()' was always returning string. A consequence of this problem is that the following LUA commands would error: manager.options.entries['beam_dot_size']:value(manager.options.entries['beam_dot_size']:default_value()) and manager.options.entries['frameskip']:value(manager.options.entries['frameskip']:default_value()). With this change, 'default_value()' will return objects of the correct type (mame\luaengine.cpp). . Turn on sol's "safe numerics" (mame\luaengine.h) . UI/OSD . Added -[no]drc_rwx option to allow forcing W^X mode when writable executable pages are permitted (emu\emuopts.cpp) . Shuffled numeric option conversions: Moved float/integer conversions into the option entries themselves. Fixed another bug where float values would be converted to strings with the global local, but converted from strings using the "classic" locale (util\options.cpp). . Use "classic" locale for numeric conversions, suppor UI Clear to set default. Note that setting the default just sets the option to its default value at "command line" priority - the options system doesn't support peeling off a layer (ui\submenu.cpp). . Start converting "usage" info and comments into new "required_ram" and "required_os" info (Software List; ui\utils.cpp) . PLUGINS . Fixed Cancel not working in input selection menus (plugins\commonui\init.lua) . Added support for non-wrapping analog inputs (plugins\inputmacro\*). Changed the "previous menu" item text to make what it does more obvious (ui\pluginopt.cpp). . Removed core off-screen reload hack now that the same thing can be achieved more flexibly with plugins (emu\inputdev.cpp and emu\emuopts.cpp). . Better support for external MMUs (emu\dimemory.cpp, emu\machine.cpp, debug\debugbuf.cpp, debug\debugcmd.cpp, debug\debugcon.cpp, debug\debugcpu.cpp, debug\dvdisasm.cpp, debug\dvmemory.cpp, debugger\osx\disassemblyview.mm, debugger\osx\disassemblyviewer.mm, debugger\osx\memoryview.mm, debugger\osx\memoryviewer.mm, debugger\qt\memorywindow.cpp, debugger\win\memoryviewinfo.cpp and m68000\m68000.cpp). . Merged wayward speakers (midw8080\mw8080bw_a.cpp, sega\model1.cpp, nscsi\cd.cpp) . Set global C++ locale when the standard library isn't broken. GNU libstdc++ only provides a useless stub locale implementation when using anything other than the glibc standard C library. However, llvm libc++ provides a locale implementation that works fine with UCRT. Suppress digit grouping. Too many things don't take it into consideration (osd\windows\winmain.cpp). . Use "classic" locale for debug console (emu\debug\*) and ROM loading (emu\romentry.cpp). - MAC OS X: Apply a default channel mapping for devices where macOS gives no layout information, like MacBook internal speakers. Fixes things being in mono when they shouldn't (sound\coreaudio_sound.cpp). - Compiling . You're supposed to specify MEM_RESERVE when requesting additional address space. This has been buggy since the very first VCS revision of the MAME 0.121 source, but Windows tolerates it (lib\osdlib_win32.cpp). . Cleaned up devices build scripts a bit: Lua considers anything other than null or false to be "truthy". The tests against "null" were comparing to a non-existent global called "null" that evaluated to nil. Got bus.lua back in alphabetical order and got at least most of the trigger variables aligned with paths. At least don't put random stuff in the middle of the Acorn devices in machine.lua. . Cleaned up some stuff (scripts\src\bus.lua and scripts\src\cpu.lua) . Added note about MinGW Clang/LLVM issues with CodeView/PDB symbols at high detail levels (docs\source\initialsetup\compilingmame.rst) - Debugger . Allow "0" to be specified as a parameter for numeric options (tools\unidasm.cpp) 0.284 - New games: Jammin' (prototype) - New Non-Working games: The Aladdin (V1.2U), Animal Kaiser - The King Of Animals (ANA1004-NA-B), Animal Kaiser - The King of Animals (Evo 1, ANA2004-NA-A), Animal Kaiser - The King of Animals (Evo 2, ANA2004-NA-A), Animal Kaiser - The King of Animals (Evo 8, ANA2004-NA-A), Animal Kaiser - The King of Animals (unknown Evo, ANA2004-NA-A), Da Huangguan, Dongshizhang (China, Ver. 212), Golden Egg (version U1.8), Golden Treasure Island (Ver. Alpha 100), Hard Puncher Hajime no Ippo - The Fighting! (VER.2.02J), Mahjong Tokkyu Kaiten-ban Part 2 (Japan), Pac-Man Battle Royale (US, PBR1022-NA-A), Pac-Man's Arcade Party (PMAAM12-NA-A), The Pirates of Dark Water (SNES bootleg), Qianxi Jielong, Umi Monogatari Lucky Marine Theater (ULS1001-ST-A), 'unknown 8085-based crane game', 'unknown Amstar cards game (set 1)', 'unknown Hom Inn cards game' and Waku Waku Thomas (Japan) - New clones: The Aladdin (V1.1A), AS-1 Controller (set 2), AS-1 Controller (set 3), AS-1 Controller (set 4), Backgammon (Wand), Cherry Master '99 (QL-1 V9B.00, Cleco, Hand Count?), Cherry Master '99 (QL-1 V9B.00, USA long PCB), Cherry Master '99 (QQ-1 V9B.00, Cleco), Crazy Monkey (bootleg, 050120, payout percentage modified), Cyber Police ESWAT (bootleg with MC68705), Double Dragon (bootleg with 3xM6809, set 3), Double Dragon (bootleg with 3xM6809, set 4), El Dorado (V1.1U), El Dorado (V1.5U, Dyna/Grayhound), 39x Flaming 7's (50 bonus, GSxx: ..., Nevada Numbers), Fruit Bonus 2000 / New Cherry 2000 (Version 3.7), Gauntlet Legends (version 1.4), Head On 2 (Sega Slimline), Hyperdrive (ver 1.31, Oct 21 1998), IPM Invader (M11), Janyou Part I (Double Bet), Mingxing San Que Yi (Taiwan, V102TW), Ms. Pac-Man (bootleg, set 6), New Texas '99 (QL-1 V9B.00, Kolom V1), Omega Fighter (set 2), Pac-Man Battle Royale (Japan, PBR101-1-NA-A), Pit Boss Superstar (9221-10-00), Progear (Europe 010117), Saurian Front (proto v5.0 8/07/90), Sky Robo (bootleg), Super Fruit Bonus (Version 2.3), Tarzan (V201FA), Texas '99 (QL-1 V9B.00), Texas '99 (QL-1 V9B.00, Cleco, Hand Count?), Texas '99 (QL-1 V9B.00, USA long PCB), Texas '99 (QQ-1 V9B.00, bootleg), Texas '99 (QQ-1 V9B.00, Cleco), Tonton (Japan, ver. 1.00), Treasure Ocean (v1.2), Triple Draw Poker (Video Village), Trivia ? Whiz Edition 4 (6221-10, U5-0A, alt Strange But True trivia), 'unknown Amstar cards game (set 2)', World Invader and Xevious (Atari, set 4) - Removed games: War: Final Assault (EPROM 1.91 Apr 13 1999, GUTS 1.3 Apr 7 1999, GAME Apr 7 1999) - New drivers: funtech_h8.cpp, hominn_980924.cpp, hominn_mcs51.cpp, namcos14x.cpp and unkcrane8085.cpp - New devices: scsi_pc98_hd and sei25x_rise1x - New mame.ini options: artwork_font (CORE ARTWORK OPTIONS) - New Clrmame: https://mamedev.emulab.it/clrmamepro/#downloads - Bob Zed (What's new): https://youtu.be/3kJ-VGUSwJs - CPU . ADChips SE3208: Cleaned up code in VRender0-related drivers and devices: Suppress side effects for debugger reads. Use snake_case names, use abbreviated integer types and use lowercase hexadecimal digits. Improved logging. Avoid reserved name for type (cpu\se3208\se3208.cpp and se3208dis.cpp). . Intel 8086: Effective address calculatation time varies greatly from one (GitHub #14632). CPU variant to the next. On the 286, it's effectively free, unless two additions are required, in which case it takes 1 cycle. On the 8088/8086 on the other hand, it can take up to 12 cycles. There needs to be a different set of timings for each CPU variant. I tested on a 286 system (att6300p) with https://thandor.net/benchmark/36 and the score went from 29 to 46 - almost a 60% speedup! Also added a few minor cycle count fixes (i86\i86.cpp). . Intel 80960KA/KB: Clear burst stall on reset (fixes Sega Model 2 games hanging on soft reset) (i960\i960.cpp) . NEC V53: Fixed SCU clock selection on V53 and emulated the baud rate generator. Clear m_brc_enable in constructor (nec\v5x.cpp) - SOUND . FM core: Extend at_end FN by 1. Note: (MESS) pc98:metlfrce wants this to detect the speakboard, cfr. note in header card (3rdparty\ymfm\src\ymfm_adpcm.h). ADPCM updates from https://github.com/aaronsgiles/ymfm/pull/40. Fixed endianness and alignment issues when writing WAV files (ymfm\src\ymfm.h). . MagicEyes VRender0 Sound Engine: Update per-channel cache when texture memory pointer is changed. Simplify casting (sound\vrender0.cpp) . Sound Interface: Sync the speaker streams, fixes the crashing after ~24hours at 48Khz when there is a resampler just before the speaker. Fixed fatalerror when trying to change the sample rate while in stream_update (emu\sound.cpp). Note: Kills g13jnr. Added error for problematic initial sample rates (emu\sound.cpp). . Taito Ensoniq Sound System: Re-enable esqpump aux outputs (taito\taito_en.cpp) - DEVICE . Floppy . Added support for machines that have non-standard TS (two-sided) line hookups (machine\upd765.cpp) . Command interface improvements: Eliminated voluminous info dump on formats and filesystems when invoked with no arguments. Show only usage info for relevant command when parameters are invalid. Added help command to print information about any or all commands, formats and filesystems. Added flopblocks and hdblocks commands to enumerate blocks used by every file or directory on the specified volume (tools\floptool.cpp). . Internal API change: Raw pointer accessors (data, rodata) are no longer provided for fsblk_t::block_t. Other accessors used to be based on these methods, but now require their own internal overrides. This entails more copying of data in many cases, but will allow more flexible subclassing opportunities in the future. To compensate for the removal of raw pointer accessors, added methods to fsblk_t::block_t for checking whether a portion of a block is equal to a memory range or a string (eqmem, eqstr). The resulting changed behavior in formats/fs_oric_jasmin.cpp actually fixes a bug in the directory search routine (formats\fsblk.cpp). . Hudson HuC6270 VDC: Added AR readback (video\huc6270.h) . Imgtool: Fixed error of assigning nullptr to variable of type std::string (imgtool\imgtool.cpp) . MagicEyes VRender0 Video Engine: Use templates and function pointer arrays for draw functions. Use device_memory_interface for external memory. Minor fixes in single color fill function. Use pal5bit/pal6bit functions for color field extraction (video\vrender0.cpp). . MOS 6551 ACIA: Do not disable the transmitter when a command deasserts RTS. RTS high disables transmitter, but not in the middle of a character (machine\mos6551.cpp). . Namco Custom . Namco C45 Road + Namco C169 (ROZ): Allow priority/mask value writes in draw routines (namco\namco_c45road.cpp + namco\namco_c169roz.cpp) . Namco 186/187 or C355/187 (sprites): Improved flexibility: Use callback for mixing and added transparent pen configuration. Moved alternate precision flag to configuration. Fixed potential crashes. Reduced duplication and unnecessary code (shared\namco_c355spr.cpp). . Paradise Systems PVGA1A i/f: Scaffold extended space access (video\pc_vga_paradise.cpp) . RAM: Allocate memory with suitable alignment for any type (machine\ram.cpp) . SCSI Bus: Added a BSY line callback suitable for drive LEDs to the bus itself (machine\nscsi_bus.cpp). Now all NSCSI users can have a drive activity LED. . Seibu Kaihatsu SEI251/SEI252/RISE10/RISE11 Sprite generator: Merged SEI25X and RISE1X sprite hardware emulation into a device. Added configuration option for allocating raw sprite graphics bitmap. Separated plotting logic from sprite loop (seibu\sei25x_rise1x_spr.cpp; seibu\feversoc.cpp, r2dx_v33.cpp, raiden2.cpp, seibucats.cpp and seibuspi.cpp) . SoundBlaster 16: Fixed sb16_lle produces ugly beeps in (MESS) ct486 Wolfenstein 3D (ID 09316). Converted irq triggers to input_merger. Moved OPL3 ranges in host_io map. Round up cnt reads to actual raw writes. Ack irq16 too when reading 0x22e from host side. Subscribe to ISA remap. Mode bit 1 is for silence, fixes (MESS) fwmigolf card detection (isa\sb16.cpp). Hookup legacy Microphone level r/w (sound\ct1745.cpp). . Western Digital WD33C9x SCSI Controller: Fixed negate ACK should trigger an irq (machine\wd33c9x.cpp, GitHub #14532) . Zilog Z80: Skipped memory write in stackless NMI mode (z80\z80n, z80\z80.lst) . Zilog Z80 DMA Controller: Relaxed fatal error which were used for unknown commands catching (machine\z80dma.cpp) - aleck64.cpp: Set up more stuff at construction (nintendo\n64_v.cpp). Got rid of unused private field (nintendo\rdpblend.cpp/h). - armedf.cpp . Terra Force: Correct offset for marking dirty tile. Fixes the left and right sides of the image are cut off in the title demo scene (ID 09326). Increased spriteram size. Fixes sprites may disappear during attract mode (ID 09327). Correction to blitter_txram_w dirty mask for clone Terra Force (Japan, bootleg with additional Z80). . Correct FM sound chip type (armedf and terraf) (ID 09328) (ID 09329) - balsente.cpp: Allow self-oscillation when no waveforms are enabled (sound\cem3394.cpp) - brkthru.cpp: Increased screen width and rearranged comment block. Put bgscroll write in its own function and correct clone Break Thru (Tecfri license) coinage dipswitch. Update notes. Added 'Flip Screen' dipswitch. Small cleanup. Correct continue/servicemode dsw for brkthru. Correct interrupt logic. - cdi.cpp: Fixed Letterboxing in (MESS) CD-i 'Mystic Midway - Rest in Pieces' (GitHub #14694) (philips\mcd212.cpp) (philips\mcd212.cpp). - chihiro.cpp: Added dsp563xx unit tests (virtual driver utdsp563xx). Correct a couple of dsp563xx instructions and added the opcode to the display. Fixed regression in determining operating mode (cpu\dsp563xx\dsp563xx.cpp). - cps1.cpp: Dumped PLD for clones area88r and cawingjr - crospuzl.cpp, crystal.cpp, ddz.cpp, menghong.cpp, psattack.cpp, trivrus.cpp and v0bowl.cpp: Cleaned up code in VRender0-related drivers and devices: Suppress side effects for debugger reads. Use snake_case names, use abbreviated integer types and use lowercase hexadecimal digits. Improved logging. - deco32.cpp: Fixed save state support, added context to logging and cleaned up code. - firebeat.cpp: Added the SWP30 to the list of drc-using CPUs (scripts\src\cpu.lua) - gaiden.cpp: Make tile scrolling consistent with hardware. Added missing x offset registers for the tile layers. Use set_scrolldx/y to set the x/y offsets for the tilemaps. Adjust x/y offset logic so it matches up with what happens on hardware. - gal3.cpp, namcofl.cpp, namconb1.cpp, namcos2.cpp, namcos21_c67.cpp and namcos21_de.cpp: Use abbreviated integer types consistently. Use single-pass C355 draw routine. - galaxi.cpp: Templates, hopper device instead of custom implementation. - gamtor.cpp: Improved hardware documentation. Fixed format and small typos. Added DIP switches. - goldstar.cpp . Cleanup cmast97 and jpknight dipswitches . Consistent naming for more DIP switch settings. Also order payout rate settings from least to most generous and key-in is not coins. . Removed leftover, cleaning up Mega Lines and Skill Chance screen update. . Added 'Double Up Game' and 'Check Account (Allow Books)' dipswitches to cherry96, cherry96a, cherry98 and cherry98a. Also added the game version to cherry96 and cherry96a game descriptions. . Clone Cherry Bonus III (Ivanhoe V46-0799) improvements: Workaround to skip the 240 games suicide limit. Added dsw settings. . Fixed A-Plan foreground graphics and reels graphics bitplanes order . Cherry Master '99 (QL-1 V9B.00) improvements: Created new dedicated machine config, memory map and basic raw inputs. First attempt to implement the weird and complex dynamic ROM banking, that now allows the game to boot and play the attract. Fixed bug in the Cherry Master '99 bank selector. Improved inputs and added buttons-lamps control panel to cmast99 and cmast99b. Fixed one bad bit of cmast99 and cmast99b reels graphics. Added extended PLD dumps to cmast99 + clones and texas99 sets. Added technical notes about the insane bankswitching for this hardware. Sharing the same Cherry Master 99 regular PLDs with the cmast99 and texas99 sets. Cherry Master '99 (QQ-1 V9B.00, bootleg) improvements: Applied same machine and scheme than the original Dyna parent. . Extended the Cherry Master 99 extra bankswitching PLDs to top7, top7a and war3cb sets. All running in the same hardware base. Removed the bad dump flag to the top7 and top7a sets bipolar PROMs. Confirmed that they are identical to the Cherry Master 99 ones. Sharing the same Cherry Master 99 regular PLDs with the top7 sets and war3cb. . Reorganized Dyna El Dorado sets by hardware (Dyna D9101, D9105 and D9106C PCB) . Added nfb96 conditional DIP switches for payout rate/difficulty display (DSW1). Implemented conditional nfb96 DIP switches behavior for DSW1 based on DSW4:2. When "Show In Confirm Screen" (DSW4:2) is set to Percentage, DSW1 now displays payout rate values (55%-90%). When set to Level of Difficulty, DSW1 instead displays levels (1-8). Both sets of options use the same bitmask (0x07) and are filtered through PORT_CONDITION to match the hardware behavior. . Fixed all remaining Wild Cat 3 animations . Added handcrafted Dallas (ds2401_50.bin) iButton data to fl7_1000, fl7_2000, fl7_2k16, fl7_50, fl7_50_gs01, fl7_50_gs02, fl7_50_gs03, fl7_50_gs04, fl7_50_gs05, fl7_50_gs06, fl7_50_gs07, fl7_50_gs08, fl7_500, fl7_tw and fl7_twa. Removed the hack toward the accurate emulation. Renamed the device ROMs to DS1994L-F5. Added technical notes about DS1994 against DS2401 for Flaming 7's custom hardware. Updated Cyberdyne Systems Flaming 7's technical notes about emulation status and Dallas ibutton serial number. - hng64.cpp: Added lamp and ffb wheel outputs. Hooked up the second address space selected by /ROM pin 86 (sound\l7a1045_l6028_dsp_a.cpp). Adapted to use the ROM address space and turned off logging. - igs017.cpp: Support control panel for starzan, tarzan103m and clones. Marked tarzanc and starzan + clones not working due to protection issues (ID 09197). - model2.cpp . Tidy some stuff (sega\model2_v.cpp, sega\model2rd.ipp). Replaced a macro with a constexpr function (sega\model2rd.ipp). . Various improvements: Moved geo_parse() and frame number update to start of vertical blanking (fixes high score scrolling in segawski, 2D palette in dynamcopc, and 3D graphics in bel not displaying after first booting up). Use exponent to adjust the Z-value scale for Z-sorting. Merged model2_3d_process_quad() and model2_3d_process_triangle() into a single template function, since most of the code was identical. Original Model 2 does have FIFO control; it uses the same 315-5673 buffer controller as Model 2A and 2C. Replaced scanline timer with vertical blanking callback (sega\model2.cpp, sega\model2_v.cpp). Fixes shot enemies and burning cars skeletons flickering colour is a strange pink/magenta like in vcop2 (ID 09287). . Intel 80960KA/KB: Clear burst stall on reset (fixes Sega Model 2 games hanging on soft reset) (i960\i960.cpp). . Hooked some more lamp outputs based on SailorSat's work. . Added default backup RAM and EEPROM content for Hanguk Pro Yagu 98. Also correct texture ROM loading. The game now boot and runs. . When writing to IRQ mask register, wait two cycles before checking for sound IRQ. Fixes music missing in beginner stage of Virtua Cop 2 (sega\model2.cpp) (ID 09313). . Use object finder and suppress side effects for GTX protection handler - namcos2.cpp: Use abbreviated integer types consistently. Use single-pass C355 draw routine. Split driver state classes for different hardware configurations. Optimized drawing slightly. Improved ROM region names, updated notes, and cleaned up code (namco\namcos2.cpp). Use priority mechanism rather than multiple drawing passes (namco\namcos2_roz.cpp, namco\namcos2_sprite.cpp). Added priority value and mask parameters to drawing functions, and cleaned up code (namco\namcos2_roz.cpp). Added priority value and mixing callbacks. Draw sprites in a single pass using priority control. Cleaned up code and updated notes (namco\namcos2_sprite.cpp). - namcos10.cpp: Move rate changes outside of stream update (sound\lc82310.cpp). Fixed fatalerror when trying to change the sample rate while in stream_update. Note: Kills g13jnr (ID 09292). Source style cleanup (sound\lc82310.cpp). - namcos12.cpp: Ensure m_regs is initialized and saved (machine\icd2061a.cpp) - namcos22.cpp: Hook up System22 outputs, based on SailorSat's work. - nwk-tr.cpp and zr107.cpp: Wheel FFB outputs hooked for racingj, racingj2, thrilld and zr107.cpp. - seattle.cpp: Standardize rom loading structs. Removed 'BAD_DUMP' flag for seattle.snd. Sound subsystem test in mame and pcb matches. This alone convinces me to remove that flag. - sfbonus.cpp: Updated driver. Verify initial hardware-board compatibility for several game sets. Performed three passes of validation to confirm which game sets successfully boot on specific PCB types. This update documents the initial compatibility findings and lays the groundwork for more detailed hardware-mapping in future revisions. - starwars.cpp: Difficulty settings in Star Wars now match the arcade operator's manual (starting shields: 6, difficulty: Hard). Difficulty and Demo Sounds in 'The Empire Strikes Back' can't be inherited from starwars as they are scrambled/inverted relative to starwars. Difficulty default ("Hard") taken from ESB Conversion Kit manual. - vegas.cpp: Shuffle set versioning around. Changed warfa and nbanfl to use the different bootroms as BIOS options. Removed patch for nbanfl. Removed warfac set (only bootrom different vs. parent set). - Arch Rivals: Added a PLD dump - Backgammon: Use English DIP switch setting labels - Balance Try: Hookup input, sound and NVRAM. - Battle Garegga: Added licensee names for each region to clone Battle Garegga (Korea / Greece) (Wed Feb 7 1996) - Blaze On: Brute-forced PLDs - Cameltry: Hook up sprite buffer. Fixes glitch on the stage choice screen in clone Cameltry (Japan, YM2610) (ID 02411). - CART Fury Championship Racing: Hook up outputs - Chance Thirty Two: Added hopper, NVRAM and enabled save state support. - Cool Boarders Arcade Jam: Verified ROM dump - Cow Tipping: Ignore lower 3 bits for IVR writes (machine\mc68328.cpp) - Derby Derby: Identified game (unkhorse -> drderby) (ID 09323). Update notes. - Finalizer - Super Transformation: Added screen raw params and increase visible width. Fixes the display area appears smaller than it actually is (ID 09331). Flip the 'Flip Screen' dipswitch (ID 09332). - Funky Ball: Update QA. Added observation notes. - GTI Club: GTI Club wheel outputs hooked - Hold & Draw: Dumped custom GFX ROMs. Note: These custom ROMs were dumped via an adapter built on educated guessing of the pinout, so resulting dump isn't confirmed to be 100% correct they do contain good GFX data. - Ikari III: Verified ROM labels for clone Ikari III - The Rescue (World, Rotary Joystick) - Jinpai Suoha - Show Hand: Fixed freeze on GMS logo - Karnov: Dumped MCU for clone Karnov (Japan) - Mortal Kombat: Patched out clone Mortal Kombat (Reptile Man hack) protection (midway\midyunit_m.cpp) - Omega Race: Enable cocktail mode. This enables screen flipping when the Omega Race dip switch is set to cocktail. Also updates layout file as the cocktail has a blue overlay instead of the yellow one the upright has. Disable clickable artwork (layout\omegrace.lay). - Pharaoh's Mystery: Dumped NVRAM, game now boots. - Puck Man: 'Bonus_Life' DSW fix for clones Newpuc2 (set 1) and Newpuc2 (set 2) (ID 09300) - The Real Ghostbusters: Delay NMI flipflop by 1 cycle. Fixes almost no sprites in stage 2 (ID 09333). - Super Chase - Criminal Termination: Re-enable esqpump aux outputs (taito\taito_en.cpp). Fixes missing sounds during attract mode, cutscenes and gameplay in Super Chase - Criminal Termination (ID 09315). - Time Attacker: Minor cleanups and spacing - Wally wo Sagase!: Correct ROM labels for clone Wally wo Sagase! (rev A, Japan, 3 players) (FD1094 317-0198A). Updated and correct Sega ID# information for all Wally wo Sagase! sets. - Water-Nymph: Added real DS1971 dump to clone Blue Shark (Subsino, Ver. 1.0) - X-Men: Improved interrupt logic. Fixes bad work ram test (Github #14725) (ID 08883). - Fixed rom names in meritm.cpp, ninjakd2.cpp, snk68.cpp and taito_h.cpp - Description changes of Alien Arena (with Stargate sound), AS-1 Controller (set 1), Cherry Master '99 (QL-1 V9B.00), Cherry Master '99 (QQ-1 V9B.00, bootleg), Deluxe Trivia ? Whiz Edition 5 (6221-75, U5-0, vertical), Derby Derby, Finalizer: Super Transformation (bootleg), Finalizer: Super Transformation (set 1), Finalizer: Super Transformation (set 2), IPM Invader (M10, set 1), IPM Invader (M10, set 2), Kyoukou Toppa (Japan), New Cherry '96 (ver 3.2, 1996/06/01, bootleg), New Cherry '96 (ver 3.7, 1997/01/04, bootleg), Omega Fighter (set 1), Pharaoh's Mystery (USA v3.00), Tic Tac Trivia (6221-22, U5-0, vertical), Tonton (Japan, set 1), Triple Draw Poker (Design Labs / Thomas Automatics), Trivia ? Whiz (6221-00, alt Gen trivia), Trivia ? Whiz Edition 2 (6221-05, alt Sex trivia), Trivia ? Whiz Edition 3 (6221-04, U5-0E, vertical), Trivia ? Whiz Edition 4 (6221-13, U5-0B, vertical), Trivia ? Whiz Edition 4 (6221-13, U5-0B, vertical, alt Sex trivia), War: Final Assault (GUTS 1.1 Mar 16 1999, GAME Mar 16 1999), War: Final Assault (GUTS 1.3 Apr 20 1999, GAME Apr 20 1999) and War: Final Assault (GUTS 1.3 Mar 25 1999, GAME Mar 23 1999). - Dipswitch fixes in chance32.cpp, manohman.cpp, goldstar.cpp, pacman.cpp, seta2.cpp, starwars.cpp and raizing.cpp - Renamed (big_jackpot) to (bigjkpot), (cuttherope) to (cutrope), (diamondking) to (diamondk), (diamondkinp) to (diamondko), (disc_bonus) to (dscbonus), (disc_jackpot) to (dscjkpot), (doodlejmp) to (doodljmp), (doppelpot) to (dpplpot), (doppelstart) to (dpplstrt), (elitedisc) to (elitdisc), (excellent) to (excellnt), (extrablatt) to (extrbltt), (glucksstern) to (glksstrn), (goldenchip) to (goldnchp), (grandhand) to (grandhnd), (guitarheroac) to (gtrhroac), (jokerpoker) to (jkrpoker), (jumbojumbo) to (jmbojmbo), (jumbojumbof) to (jmbojmbf), (kleopatra) to (kleoptra), (monkeyjmp) to (monkyjmp), (multimulti) to (multmult), (polarstar2) to (polstar2), (progear) to (progearu), (supermultib) to (sprmltib) and (unkhorse) to (drderby) - MAME . VIDEO RENDERING SYSTEM . Fixed PowerPC build (video\rgbutil.cpp) . Improved accuracy and performance calculating text aspect ratio (emu\rendlay.cpp). Also added another text alignment option to stretch the text to fill its bounds horizontally. The current code calculating the aspect ratio for text involves looping, calculating the width of text for a variety of decreasing aspect ratios until the text's width is less than the available bounds. However, this string width calculation performs the same loop over the text each time, finally multiplying by the candidate aspect ratio. That text width calculation thus really only needs to be done once. Further, instead of trying different aspect ratios, the ratio can simply be calculated directly by dividing the width of the bounds by the string's width. This also calculates a more accurate aspect ratio, rather than always resulting in an aspect ratio of (0.95)^n. For example, when trying to fit a 101-pixel wide text into a 100-pixel wide space, the current code would result in an aspect ratio of 0.95, making the text 96 pixels wide, leaving 4 pixels unused; the new code will instead calculate the aspect ratio as 100/101 == 0.9900990099... , making the text use the full 100 available pixels. This in turn allows us to easily calculate the ratio also if we want to not just schrink but also stretch the text to fill the available space, so we add that as another text alignment option, number 3 (three). This PR also demonstrates this in the VFX family of layouts, where on the default Full view, the text "MUSIC PRODUCTION SYNTHESIZER" ("DYNAMIC COMPONENT SYNTHESIZER" on the VFX), the logo-like text "ensoniq", and the keyboard-specific markers "VFX", "VFX-SD", "SD-1" and "3 2 V O I C E" can now be made to fill their available space horizontally as they should, making it all look that much more like the real thing. Fixed text clipping introduced by https://github.com/mamedev/mame/pull/14550. Guard against possible divide by 0 (emu\rendlay.cpp). Got rid of syntax that definitely isn't supported from layouts (emu\rendlay.cpp). . Added artfont option for changing default font of .lay files text elements. Fixed text align issues with wide width font (emu\emuopts.cpp and emu\rendlay.cpp) . Replaced use of slash/backslash text for diagonal lines with SVG (layout\*) . MEMORY SYSTEM: Allocate memory region storage with suitable alignment for any type, added length accessor to and removed machine from memory region (emu\emumem.cpp). . LUA engine: Access machine.side_effects_disabled. Refactored machine:side_effects_disabled() as a method instead of property (mame\luaengine.cpp). . UI/OSD: Added speaker channels to gameinfo panel (ui\info.cpp) . Correct .lay files with text alignment issues on Linux (layout\*.lay) . Added 'tag' attribute to Info XML '' elements. Added entry in DTD for '' (mame\infoxml.cpp). . Reduced some of the short name inflation. It's getting silly, some of the short names are close to the length limit, which prevents forming clone names by adding suffixes. I raised my concerns about the possibility of short name inflation when I relaxed the limit. It looks like it wasn't unfounded. - Compiling . Avoid passing -m flags for pointer size on 64-bit RISC-V Linux (makefile) . Fixed a considerable number of things that give -Wcast-align warnings in src/mame. There are still far more. . Fixed a number of endianness issues. . Use multibyte.h helpers instead of playing fast and loose with alignments (emu\save.cpp, util\png.cpp, various disk and cassette formats) . Got rid of almost all remaining uses of driver_data (mame\*) and of long-obsolete driver_data (emu\machine.h). . Tidy some stuff (mostly LlamaCase template parameters and fewer temporary strings) (sound\adc.cpp and sound\swp30.cpp) . Use raw string for pattern match (scripts\build\check_include_guards.py) 0.283 - New games: Cherry Master (ED-98, Pick-A-Party), New Cherry '98 (v4.3 1998/09/07, Gamemax bootleg, set 1) and Special 7 (Taiwanese Hardware, encrypted, set 1) - New Working games: Animal House (V1.0, set 2), Cheri Mondo '97 (V1.4I), Cherry Bonus III (Ivanhoe V46-0799), Cherry Master '97 (V1.7, set 1), Cherry Master '97 (V1.7, set 3, no girls), Chong Chong Leyuan (V100CN), El Dorado (V1.4D), Fever Chance (W-6, cross-system for W-4), Huangpai Zuqiu Plus / Chaoji Shuangxing Plus (V103CN), Jackpot Knight (V1.1), Majiang Zhengba (V103CN), Manguan Fuxing (V104T) and New Cherry '96 (1997/01/04, bootleg) - New Non-Working games: Bonus Spin Bonanza (V1.1G), Crazy Bugs II (V102US), Foxy Ruby (Ver. US.01.01.A), Creepy Reels, Mahjong Kokuryu (Japan, T040-RB-03), Mahjong Nigiri Itcho!! (Japan, T038-PB-002), Megacrane, Multi Spin (v1.0), Polar Star 2 (ver. 4.5), Texas Holdem (V015US), Treasure 2000 (Ver. 107) and Xiaochou Jianianhua (S100CN) - New clones: Arlington Horse Racing (v1.21-I), Astro Wars (set 2), Blue Shark (Subsino, Ver. 1.0), Chaoji Daheng 6th (set 2), Cherry Bonus (Dyna v1.01 20fev), Cherry Master '97 (v1.6, bootleg), Cherry Master '97 (V1.7, set 2, no girls), Cherry Master '97 (v1.8, bootleg), Cherry Master I (ver.1.01, set 13, BET stops all), Cherry Master I (ver.1.01, set 14, TAKE stops all), Daiku no Gensan (Japan, M84 hardware, set 2), Flaming 7's (Cyberdyne Systems 7V5.00 (CB1000), 1000 bonus), Flaming 7's (Taiwanese Hardware, v6.5), Hot Mind (adjustable prize, set 2), Joker Master 2000 Special Edition (V1C), Koi Koi, M.I.A. - Missing in Action (Data East, 12/22/88, US, prototype?), Mahjong Tensinhai (Japan, set 1), Mahjong Vegas (Japan, set 2), Moon Lander (bootleg of Lunar Rescue, set 2), Moto Frenzy (Field Test Version, Jul 22, 1992), New Cherry '96 (1996/06/01, bootleg), New Cherry '98 (v4.3 1998/09/07, Gamemax bootleg, set 2), Queen Bee (USA, Ver. 107), Queen Bee (Ver. 117), Queen Bee (Ver. 123A), Silent Scope EX (ver EAC 1.20), Skill Chance (W-7, set 3, 62-98 main), Special 7 (Taiwanese Hardware, encrypted, set 2), Special 7 (Taiwanese Hardware, encrypted, set 3), Super Card Y2000K (Version 0.26), Super Cherry Master (v1.1), Triple Jack (V0.7), Triple Jack (V1.1) and U.S. Navy (Japan Resale Ver. 901130) - New drivers: megacrane.cpp - New devices: dsp56362, dsp5636x_shi, generic_spi_flash, hi08 and scsi_dtc510 - New Clrmame: https://mamedev.emulab.it/clrmamepro/#downloads - Bob Zed (What's new): https://youtu.be/WvsfFixLCsY - CPU . Dynamic Re-Compiling . drcbex64: Added LZCNT implementation using x86 LZCNT instruction and optimised the BSR-based implementation (cpu\drcbex64.cpp). . UML: Added UML bit field extract instructions (cpu\uml.cpp) . Freescale MCF5206E: Added basic state viewer for Coldfire. Make MCF5206E CPU accept external interrupts, fixes CPU space (misc\gamtor.cpp cares). Provide MBAR relocation and GPIO reads, fixes Funcube 2/3/4/5 battery regression. Disallow do not use commands for monomach to send 0xaa thru the transmitter. Fixed MBUS and DMA irq routing (m68000\mcf5206e.cpp). . Hitachi SH-2 (SH7604): Fixed BCR1/BCR2 and VCRDIV accessing (sh\sh7604.cpp) . hyperstone E1: Use bit field extract instructions (e132xs\e132xsdrc_ops.hxx) . Intel 8031/8051/80C51/8751: Removed spurious port read messages (mcs51\i8051.cpp). Added read/write slave address registers to 80c51 (mcs51\i80c51.cpp) . Intel 80186: Added latency when writiing DMA registers before the next DMA starts. Fixes (MESS) MPC60 crashing and the other drivers using a '186 all behave identically to 0.280 (i86\i186.cpp). . Intel 8257 DMA Controller: Make the driver handle verify cycles since the DMAC only does an address strobe (machine\i8257.cpp) . Intel I386: Set CPl after all memory reads are done in i386_task_switch (i386\i386segs.hxx) . NEC V53: Hook up V53 timer 1 routing to the SCU and made more SCU-related pins accessible to V53 users (nec\v5x.cpp) . Texas Instruments TMS320C3x: ABSF opcode was mistakenly using ~man instead of -man, causing problems for MK4 which checks whether |A|+|B| == |A + B|. Fixes walking both players toward each other would result in no collision (tms32031\32031ops.hxx). - SOUND . Roland MPU-401: Subscribe to remap and hookup irq (isa\mpu401.cpp) . Sega 315-5313 Megadrive VDP: Fixed graphics corruption during startup (video\315_5313.cpp) (ID 09296) . SoundBlaster 16: Silence spammy ports (isa\sb16.cpp) . Taito Ensoniq Sound System: Removed feature::SOUND from imperfect_features() (es5510\es5510.h, sound\esqpump.h) - DEVICE . Floppy . Documented all of the upd72069 auxiliary commands. Added Control Port C4 and C6 outputs for TC8566AF. Allow invalid auxcommand sent by (MESS) S3000, which works on hardware (machine\upd765.cpp). . Added support for bad address field crc in basic fm and mfm images (formats\flopimg.cpp) . Gaelco DS5002FP: Cleaned up (gaelco\gaelco_ds5002fp.cpp) . MB89371 Dual Serial UART: Rewrite MB89371 as a fully functional device (machine\mb89371.cpp) . MC68681 DUART: Added received data to FIFO in loopback mode (machine\mc68681.cpp) . PC hardware: Fixed up a few things for later PC models. The emulation of these systems still isn't very good in general (machine\genpc.cpp) . RS-232 Null Modem: Improved text transmission options: Added configuration switch to translate CR/LF characters from the bitbanger input prior to transmission. Multiple translation modes are provided. Added configuration switch to delay further transmission for a number of milliseconds after each CR is sent (rs232\null_modem.cpp). . Ticket Dispenser: Added a sensor test input for convenience. Also call the line status callback for ticket dispensers as well as hoppers and cleaned up the code a little (machine\ticket.cpp). - balsente.cpp: Improved CEM3394 and adapted sente6vb to the changes. Added and improved CEM3394 functionality relevant to the (MESS) 'sixtrak' while working on audio for that. Sending as a separate PR to keep the scope manageable, given there are also changes to 'sente6vb'. Incidental improvements to 'sente6vb': "unlocked" some sounds. An obvious one is the post-tuning chirp for each voice during boot. Centered audio around 0. CEM3394 changes: Made VCO output range [-1, 1], instead of [0, 1]. Added pulse-width dependent DC level of pulse waveform, as described in the datasheet. Waveform selection logic now works for voltages outside the bounds provided in the datasheet. Both the (MESS) sixtrak and sente6vb will some times use voltages outside those ranges. Added AC coupling between VCF output and VCA input. Forcing parameter computation in device_start(). Added ability to stream voltage inputs. The (MESS) sixtrak needs that for the VCA gain and VCF frequency. New configuration interface: New configure() method computes VCO and VCF zero frequencies based on the attached passive components. Exposed method for enabling pulse-width limiting for drivers that need it. Now disabled by default. Fixed compilation for FILTER_TYPE_ESQ1. sente6vb changes: Using new CEM3394 configuration interface. Verified that it produces almost the same VCO and VCF zero frequencies. Reduced CEM3394->speaker gain to compensate for increased loudness of CEM3394. Old range: [0, 1]. New range: [-1, 1]. Added AC coupling to noise output. Also changed the noise->CEM3394 gain from 0.5 to 1.0, so that the relative loudness remains the same. Old range: [0, 1] x 0.5 = [0, 0.5]. New range: [-0.5, 0.5] x 1. Fixed "FREQENCY" typo and updated comments (sound\cem3394.cpp). - bfm_ad5sw.cpp and bfm_sc5sw.cpp: Provide MBAR relocation and GPIO reads to MCF5206E CPU, fixes all games crash at start (ID 09270). - cdi.cpp: Fixed XA audio peaking by decoding in 32-bit and clipping to 16 later (philips\cdicdic.cpp). Simplified mouse position-update logic (philips\cdislavehle.cpp). Cleaned up (philips\cdicdic.cpp). - chihiro.cpp: Added DSP56362 to the audio processing unit in shared\xbox_pci.cpp as the general purpose DSP - cps1.cpp: Use three buttons per player for Final Fight (ID 09294). Note: The third button connection is always wired on the CPS-1 mainboard and does work in the game, even if it's an undocumented easter egg. In many cases, the board sets were installed in generic JAMMA cabinets with standard stick plus three buttons control panels, allowing players to use the third button. Final Fight button 3 is not officially documented and does not exist on the control panel, probably a leftover. Pressing it will allow you to escape from grabs and choke holds instantly. To access the hidden pattern test modes, turn the "Service Mode" dip to ON and hold down "P1 Button 1" ('Ctrl') or "P1 Button 2" ('Alt') during the bootup test. Button 1 will load the Scroll (Background) test and Button 2 will load an Obj (Sprite) viewer. - cps3.cpp: Provide an hack free status read (machine\wd33c9x.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. More work on memory map, ports, hooked video registers, worked video hardware, reels tile info, screen update and palette/color index for different elements. Added double-up girls support with scroll, new inputs from the scratch and buttons-lamps control panel layout. Added Cherry Master '97 'Double Up Game', 'Double Up Type', 'Double Up Girls' factory forced DIP switches. Splitted inputs for Cherry Master '97 sets 2 & 3. Fixed DIP switches polarity and defaults for cmast97, cmast97a and cmast97b. Splitted inputs for Cheri Mondo '97. Added 'Reels Speed' DIP switch to cmast97, cmast97a and cmast97b. Fixed the Cherry Master '97 reels background colors. Added new register written by port 03h to properly assign the reels background colors by bonus. Simplified the vidreg handling. Adding cmast97 correct settings. Fixed some lack of def strings in cmast97 DIP switches. Fixed the cmast97 double up graphics bug when the girls are disabled through DIP switches. Promoted Cherry Master '97 (V1.7, set 1) and clones Cherry Master '97 (V1.7, set 3, no girls) and Cheri Mondo '97 (V1.4I) to working. . Cherry Master 97 (bootlegs running in different hardware) huge improvements: New machine config, machine start, bankswitching, memory map, port map, video registers, screen update, graphics decode, inputs, ROM load fix, lamps and button-lamps control panel. Added Double Up Type DIP switch (3 / 5 cards) and added the missing layout. Promoted Cherry Master '97 (v1.6, bootleg) and Cherry Master '97 (v1.8, bootleg) to working. . Jackpot Knight improvements: Fixed title and foreground colors and reels colors. Improved reels placement. More work on ports map, hooked video registers, worked video hardware, new machine config, proper screen update and proper graphics decode. Improved inputs. Added a new port to handle the Jackpot Knight reels background colors. Added Reels Speed DIP switch. Added 'Reels Speed' DIP switch. Switched DIP switches to Skill/Stops mode for default. Added buttons-lamps control panel. Promoted Jackpot Knight (V1.1) to working. . 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. . Super Cherry Master bootleg hardware improvements: Added 0Ch and 0Dh missing ports, hooked remaining DIP switches banks. New inputs from the scratch for New Cherry '96 and base for New Cherry '98. Switched the New Cherry '96 sets to this machine. Added buttons-lamps control panel layout. Defined parent-clone relationship. . Simplified and unified machine config and memory port map for clones eldoraddoa, animalhs and animalhsa. Added missing functions, as girl scroll register. Fixed DIP switches banks #4 and #5 that were bad mapped. Found and mapped the missing DIP switch bank #6. animalhs/eldoraddoa hardware improvements: Rewrote the animalhs/eldoraddoa machine config. Improved memory/ports map. New video start supporting a 5th tilemap with scroll for the girls support. More work on the screen update. New registers to control graphics bank/colors. Added girls support. Reworked inputs. Added all missing stop buttons. Fixed the DIP switches polarity. Added Double Up DIP switch. Lamps support. Added new buttons-lamps control panel layout. Splitted inputs for both titles. Added "Show Girls" DIP switch to eldoraddoa. Added the Skill Mode / Stop buttons DIP switches to animalhs, animalhsa & eldoraddoa. Added input settings for clone eldoraddoa. Correct spacing. Fixed minor input definitions. Promoted clones eldoraddoa and animalhsa to working. . Improved inputs for Mega Lines and Skill Chance games. Added Stop Seq button. Modified the former buttons-lamps control panel and added a new one for the latest sets. . Amaztsk improvements: Changes in the machine config, derivated from amcoe2. Wrote its own video start and screen update. Rearranged the tilemaps priority. Fixed reels size and the bonus characters window. Wrote proper inputs, getting the game playable. . Correct Fruit Bonus 2010 dipswitches and added settings. Added ASCII info explaining how to reset Fruit Bonus 2010. . Flaming 7's improvements: Fixed clone Flaming 7 (Taiwanese Hardware, unknown version) reels graphics. Fixed colors and added new memory map for Flaming 7 (W4 Hardware, Red, White & Blue 7's + Hollywood Nights). Removed the unused second PROMs region to Flaming 7's custom sets. Fixed reels scroll for extended 12-tiles symbols. Added proper screen update. Added extra tilemap with scroll to support the graphics indicator. Created proper flaming7 video start. Added hopper device to all Flaming 7 family. Set hopper payment as default. Added more documentation, rearranged sets and descriptions. . Star100 improvements: Added new port for video registers. Rewrote the screen update scheme. Proper handling of the tilemaps layers. Fixed reels tilemap visible size. Fixed the graphics and colors bugs. Removed the imperfect colors flag. Some cleanups. . Fixed Wild Cat and Wild Cat 3 top reel cats animation . Fever Chance (cross-system for W-4) improvements: Fixed clone Fever Chance (W-6, cross-system for W-4) 1st reel. Added proper machine config. Modified screen update to support different reel number for double up numbers. Promoted clone Fever Chance (W-6, cross-system for W-4) to working. . Fixed clone New Lucky 8 Lines (set 11, W-4) reels colors . Clone Cherry Bonus III (Ivanhoe V46-0799) improvements: Modded memory map to allow more ROM space. Switched the bad dumped foreground gfx with another set ones that have the same exact tiles. Added workaround to bypass protections. Inputs from the scratch with clean DSW. Added Double Up Feature and Girls DIP switches. Added buttons-lamps control panel layout. Promoted game to working. - igs_m027.cpp: Fixed tile rom loading and inputs for 'Huangpai Zuqiu Plus / Chaoji Shuangxing Plus (V103CN)' and clone Chong Chong Leyuan (V100CN). Promoted games to working. - iteagle.cpp: Added 1.02 bootrom variant. Added some notes about the boot ROMs. - midvunit.cpp: Improved shift controls. Added option to use H-pattern shifter. Added fake neutral button. Removed push-off behaviour for sticky gear buttons. Added more shifter options. Added support for sequential shifters/paddles and re-added support for toggling buttons. - model2.cpp . Fixed textured mesh polygons. Need to double all the increment values (sega\model2rd.ipp). . New trilinear implementation, runs about 40% faster. Added support for microtextures (sega\model2_v.cpp and sega\model2rd.ipp). Pre-bind render callback delegates (sega\model2_v.cpp). . Limit microtexture blend factor to 127/256. Prevents microtextures being drawn when the base texture is transparent, fixes wallpaper in hotd (sega\model2rd.ipp). . Draw polygons front to back, use fill buffer. The real hardware has two 32Kx8 RAM chips described in the Model 2B manual as "fill memory"; these effectively function as a pair of 1-bit depth buffers, one for each framebuffer. Performance is improved over back-to-front rendering, particularly in more intensive scenes, since pixels that would be drawn where other pixels have already been drawn can be discarded early before texture mapping is performed. . Tilemap fixes: If all three layers (polygon, tilemap A, tilemap B) are transparent, palette entry #0 from tilemap B is shown (sega\model2_v.cpp). . Apply color table to tilemap layers, INDY 500 supports 16:9. Also use correct CRTC offset values when drawing directly to the framebuffer (sega\model2.cpp, sega\model2_v.cpp). . Shift texture parameters index right by 2. Fixes glitchy polygons and motion blur effect in Virtua Fighter 2 ending (sega\model2_v.cpp). - namcos23.cpp: Eliminated some switch/case statements through direct read/write handlers for certain registers. Hook c422_irq_w in crszone's MIPS map, fixes booting. - pgm3.cpp: Fixed endianness bug - you can't just access a 32-bit ROM region as bytes. - segas24.cpp: Draw bottom tilemap layer as opaque (sega\segas24_v.cpp). Fixes title screen of Quiz Syukudai wo Wasuremashita and most of Crack Down (ID 06379). - stv.cpp . Fixed init_cdsystem return command and added get_cddevice_connection command (sega\stvcd.cpp). Cleanup function and variable namings (sega\stv.cpp). Port over QA notes from GitHub #8919 (sega\saturn_v.cpp). . Removed device_memory_interface and fixed open bus access (sega\smpc.cpp). - Buck Rogers: Verified ROM labels and locations for clone Buck Rogers: Planet of Zoom (not encrypted, set 1)'s program ROMs. - DT7 (prototype): Correct G_59 opcode for DT7 sound CPU (toaplan\toaplan_v25_tables.h) - Funcube: Original Funcube uses TMP68301 not Coldfire, fixes black screen regression (ID 09271). - Funcube 2/3/4/5: Make MCF5206E CPU accept external interrupts, fixes CPU space. Provide MBAR relocation and GPIO reads, fixes Funcube 2/3/4/5 battery regression (m68000\mcf5206e.cpp). - Gold Line: Added ROM and reel RAM banking and identified game title as Gold Line. - Majiang Zhengba (V103CN): Added support for mahjong keyboard, hopper and counters and added inputs. Added default bookkeeping password to comment. Promoted game to working. - Manguan Fuxing (V104T): Added inputs (sound is still broken). Redumped sound ROM. Promoted game to working. - Nostradamus: Correct title for clone Nostradamus Yeeon (Korea) - Queen Bee: Dumped DS2430 EEPROM - Skins Game: Fixed class code (machine\pci9050.cpp) - Tokio / Scramble Formation: Correction to 'Lives' dipswitches (ID 09297) - Vega: Fixed some clocks - Fixed rom names in m72.cpp - Description changes of Astro Wars (set 1), Blue Shark (Midway), Chaoji Daheng 6th (set 1), Cherry Master '97 (V1.7, set 3, no girls), Crazy Bonus 2002 (Ver. 1, Sang-Ho HW, set 1), Crazy Bonus 2002 (Ver. 1, Sang-Ho HW, set 2), Daiku no Gensan (Japan, M84 hardware, set 1), Dyno Bop (v1.1), Flaming 7's (Taiwanese Hardware, v7.3), Flaming 7's (Cyberdyne Systems 7V5.00 (CYB1092), 2000 bonus), Flaming 7's (Cyberdyne Systems 7V5.00 (CYB1092), 2000 bonus, Egyptian Gold edition), Flaming 7's (W4 Hardware, prg 5XXXX V6 01A, Red, White & Blue 7's + Hollywood Nights), Flaming 7's (Cyberdyne Systems 7V5.00 (CYB1092), 50 bonus), Flaming 7's (Cyberdyne Systems 7V5.00 (CB500), 500 bonus), Gold Line, Golden Par Golf (Joystick, v1.0), Golden Par Golf (Joystick, v1.1), Golden Tee Golf II (Joystick, v1.0), Golden Tee Golf II (Trackball, v1.1), Golden Tee Golf II (Trackball, v2.2), Hot Mind (adjustable prize, set 1), Hot Shots Tennis (v1.0), Hot Shots Tennis (v1.1), Mahjong Tensinhai (Japan, set 2), Mahjong Vegas (Japan, set 1), Moon Lander (bootleg of Lunar Rescue, set 1), Moto Frenzy (Field Test Version, Jul 17, 1992), Neck-N-Neck (v1.2), New Cherry '96 (1997/01/04, bootleg), Nostradamus Yeeon (Korea), Poker Dice (v1.7), Rim Rockin' Basketball (v1.2), Rim Rockin' Basketball (v1.2, bootleg), Rim Rockin' Basketball (v1.5), Rim Rockin' Basketball (v1.6), Rim Rockin' Basketball (v2.0), Rim Rockin' Basketball (v2.2), Senjou no Ookami (Japan), Silent Scope EX (ver UAC 1.20), Slick Shot (v1.6), Slick Shot (v1.7), Slick Shot (v2.2), Sogeki (ver JRB 1.01), Strata Bowling (v1 4T, Super Strike Bowling type PCB), Strata Bowling (v1), Strata Bowling (v3) and Super Strike Bowling (v1) - Dipswitch fixes in bublbobl.cpp, ddenlovr.cpp, goldstar.cpp, igs_fear.cpp, igs_m027.cpp and spoker.cpp - Renamed (cmast97a) to (cmast97b), (koikoi) to (koikoip2), (mjtensin) to (mjtensina), (scmaster) to (scmastera), (sscopex) to (sscopexu) and (unkct) to (goldline) - MAME . VIDEO RENDERING SYSTEM . Fixed signature of methods for Altivec/VMX (video\rgbutil.cpp) . PLUGINS: Fixed mixed space/tab indentation (plugins\hiscore\init.lua) . Consolidate drivers into single file (kingobox.cpp) . DEVICES: Added more sanity checks to device types. This will bloat debug builds a bit, but unfortunately it seems to be necessary to explicitly guard against this now (emu\device.h). . Handle "." directory and going up to or up from it. This improves directory navigation in the MAME UI file manager (util\zippath.cpp). - Compiling . Cleaned up code (cpu\t11\t11ops.hxx, video\poly.h, igs\spoker.cpp, sega\model2.h, sega\model2_v.cpp, sega\model2rd.ipp) 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 Master (ED-96, Corsica CM v8.23), Cherry Master 2005 (Ver. 1.00H), 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 - Bob Zed (What's new): https://youtu.be/60y20tKb9F4 - 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 Cherry Bonus (A.A.I. bootleg). Improved Cherry Bonus inputs adding the STOP buttons. Update Cherry Bonus (A.A.I. bootleg) settings. Promoted 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). . 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). . Added Virtua Racing layout (layout\vr.lay) also to 'Sega Touring Car Championship', when the cabinet option in the Test Menu is set to Deluxe, the screen's aspect ratio is set to 16:9. - 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 - 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) - Dipswitch fixes in ddenlovr.cpp, goldstar.cpp, igs_m027.cpp, igs_m027xa.cpp, laserbas.cpp, lastbank.cpp, shadfrce.cpp and spoker.cpp - 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) - 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). . 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)


Mameinfo.dat

0.285: Updated to MAME 0.285 (http://git.redump.net/mame/log/). Added Source/Listinfo changes. Newest Bugs (29th Jan). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.284: Updated to MAME 0.284 (http://git.redump.net/mame/log/). Added Source/Listinfo changes. Newest Bugs (30th Dec). Added/Updated DEmul v0.7 (20th Dec), FinalBurn Neo v1.0.0.03 (27th Dec), Flycast v2.5 (27th Dec) and Play! emulator infos. Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.283: Updated to MAME 0.283 (http://git.redump.net/mame/log/). Added Source/Listinfo changes. Newest Bugs (28th Nov). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.
0.282: Updated to MAME 0.282 (http://git.redump.net/mame/log/). Added Source/Listinfo changes. Newest Bugs (31st Oct). Added/Reorganized 'Recommended Games'. Fixed Mameinfo.dat infos.




Download

MAMEINFO.DAT 0.285  (3.75 MB)

MAMEINFO.DAT 0.284  (3.74 MB)

MAMEINFO.DAT 0.283  (3.73 MB)

MAMEINFO.DAT 0.282  (3.72 MB)




   MAME Testers
   MAME GIT
   MAME Download
   Ashura-X's Nightly MAME builds
   MAME - Forums - Bannister
   MAME Discussion - MAMEDEV Forum
   MAME Frequently Asked Questions