What's New:
- New games: 'Code Magik (Ver 5.5) / Super 7 (stealth game)', Cuty Line (ver.1.01) and Pyuuta-kun (Japan)
- New Working games: Bonanza's Joker Poker, IPM Invader (set 2) and Super Mini-Boy
- New Non-Working games: 7 Gold, AV-Mahjong Two Shot (Japan Ver 1.00 1990/05/21), Champion 3001 Regular, Cherry Bonus (A.A.I. bootleg), Cherry Bonus II (V2.00 06/01), Golden Number, Gwasuwon (Korea), Hana Night Rose (Japan, TSM008-04), Jixiang Ruyi (V116CN), Jin Hua Zhengba (V113CN), Magic Touch (v. 28.05), Mahjong Tenho (Japan, P016B-000), New Mondo Plus (V0.6I), Omatsuri Yasan: Ganso Takoyaki, Pairs (Italian gambling game), Shayu Daheng (V104CN), Shuang Long Qiang Zhu Tebie Ban (V104CN), Skill Chance (W-7, set 1), Super Ball 2001 (Italy version 5.23), Tic Tac Toe (Sundance bootleg of New Lucky 8 Lines), Top-7 (V8.8, set 1), 'unknown TAX game', 'Xiaoyao Dou Dizhu' and Zupapa (Italian gambling game)
- New clones: Bonus Chance (W-8, set 2), Cherry Bonus III (ver.1.40, set 7), Cherry Bonus III (ver.5.1), Cherry Bonus V Five (V1.1), Cherry Master '97 (V1.7, set 2), Cherry Master I (E-Z Spin Hands Count bootleg / hack, set 1), Cherry Master I (E-Z Spin Hands Count bootleg / hack, set 2), Cherry Master I (ver.1.01, set 12), Cuty Line (LC-88 bootleg, ver.7C.14), Cuty Line (LC-88 bootleg, ver.8.05C), Egg Venture (Release 4), El Dorado (V1.1J), Endless Riches (Ver 1.10), F-16 Super 8 Lines, Fever Chance (W-6, Japan, set 2), Fever Chance (W-6, Taiwan), Golden Regular (version 388/2000), Gradius III: Densetsu kara Shinwa e (Japan, version 3, newer)', Inquizitor (V1.1), Inquizitor (V1.2, alt), Long Hu Da Manguan Duizhan Jiaqiang Ban (V200C3M), Magic Bomb (Ver. A3.0), Magic Bomb (Ver. AB4.3A, 10/30/01S), Magic Bomb (Ver. AB5.3, 20/06/03), Magic Bomb (Ver. EB4.0, 05/04/01), Monkey Land (Ver. A1.2), Monkey Land (Ver. AA.21.B), Monkey Land (Ver. AA.21.C), N-Sub (cocktail), New Lucky 8 Lines (set 14, W-4, Yamate), New Lucky 8 Lines (set 15, W-4, Cleco bootleg), New Lucky 8 Lines / New Super 8 Lines (F-5, Witch Bonus, Yamate, 1985), New Lucky 8 Lines / New Super 8 Lines (W-4, Witch Bonus, Yamate, 1988, set 1), New Lucky 8 Lines / New Super 8 Lines (W-4, Witch Bonus, Yamate, 1988, set 2), NtCash (set 2), Omatsuri Yasan: Kingyo Sukui', Rocket Convoy, Run and Gun (ver UAB 1993 9.10, dedicated twin cabinet)', Skill Chance (W-7, set 2), Super Poker (v120IN), Top-7 (V8.8, set 2) and Toride II (Japan, revision I)
- New AGEMAME games: Atronic SetUp/Clear Chips, Babooshka (Atronic), Beetlemania (Atronic), Chickendales (Atronic), Dream Maker (Atronic), Happy Happy Hippy (Atronic), 'I C Money (Atronic) (set 2)', Sphinx II (Atronic) and Typhoon Lagoon (Atronic)
- New PinMAME games: Batman Forever (Italian, 4.0, Sept. 26 1995, Display Rev. 4.00), Batman Forever (Italian, 4.0, Sept. 26 1995, Display Rev. 4.00, earlier sound ROM) and Pentacup (rev. S)
- Removed games: Quizard (v1.0, Italian, i8751 IT 11 I2)
- New devices: bt481, bt482, dio98628, dio98629, isa_prose4001, namco_cus4xtmap and zorro_merlin
- New Clrmame: https://mamedev.emulab.it/clrmamepro/#downloads
- CPU
. Dynamic Re-Compiling
. Fixed various recompiler issues and added functionality:
. Added BREAK, SETFLGS, MULSLW and MULULW opcodes. Limit range of immediate shift count arguments for consistency. Fixed simplification of multiplication and division operations (cpu\uml.cpp).
. Added more methods of accessing OP_CARRY. Fixed flag calculation for BSWAP and MULS opcodes. Made calculation for shift and rotation opcodes consistent. Return mapvar register ID instead of value for mapvars (cpu\drcbec.cpp).
. Fixed bugs in various opcodes to make them behave like the C backend (cpu\drcbex86.cpp and cpu\drcbex64.cpp). Fixed SAVE, RESTORE and SETFMOD (cpu\drcbex64.cpp).
. Implemented MULLWx and MULLWOx using the new MULSLW opcode (powerpc\ppcdrc.cpp).
. Clear top half of iregs on loads to I0-I3, fixed LOADS sign extension and fixed FLOAD/FSTORE data size (cpu\drcbex86.cpp). Use appropriate register size for LOAD (cpu\drcbex64.cpp).
. Fixed parameter sizes for READM/WRITEM and clear upper half of registers after 32-bit operations (cpu\drcbec.cpp). Fixed definition for FSREAD/FSWRITE, FDREAD/FDWRITE and READM/WRITEM simplification (cpu\uml.cpp).
. Make uml::instruction::is_param_out a member function and really fix build error (cpu\uml.h)
. Added a 64-bit ARMv8 (AArch64) DRC back-end (cpu\drcbearm64.cpp). Use saved return address from stack for op_recover. Handle landing pads save the LR/FP pair, so the return address for the first level of callh, exh or "no code" handler can be recovered from below the base frame pointer (cpu\drcbearm64.cpp).
. Removed unused vector type (cpu\uml.cpp). Fixed crash with LOG_HASHJMPS enabled (stack needs to be 16-byte aligned before calling debug_log_hashjmp_fail) (cpu\drcbex64.cpp).
. Moved member function resolution code to a common location (util\mfpresolve.cpp). Use common member function resolution code (util\delegate.cpp, cpu\drcbex64.cpp and cpu\drcbearm64.cpp).
. Moved some stuff to anonymous namespaces (cpu\drcbex86.cpp, cpu\drcbex64.cpp and cpu\drcbearm64.cpp). Defer allocating labels if they aren't always needed (cpu\drcbex86.cpp and cpu\drcbex64.cpp).
. Calculate NZ flags for shifts/rotates by 0 bits (cpu\drcbec.cpp, cpu\drcbearm64.cpp, cpu\drcbex64.cpp and cpu\drcbex86.cpp). Fixed flag calculation for 64-bit multiplication when result is zero (cpu/drcbex86.cpp).
. Be nicer to the return address predictor (cpu\drcbex64.cpp). Give hints to use short displacements for jumps to local unbound labels (cpu\drcbex86.cpp). Use references for some things that must not be null pointers (util\mfpresolve.h).
. Added write byte with explicit mask. This wasn't added to the DRC implementations when it was added to the address space classes (cpu\drcbe*.cpp).
. DRC cleanup and minor optimisation: Build all native back-ends if any native back-end is enabled so errors caused by changing interfaces can be found faster. Moved resolved member function stuff to a place where it can be shared by back-ends (cpu/drcbeut.cpp). Use ubfx instruction to extract unordered flag (cpu/drcbearm64.cpp). Bypass trampolines when calling get map variable value and debugger instruction hook functions (cpu/drcbearm64.cpp, cpu/drcbex64.cpp). Moved some internal helpers that don't need to be members to anonymous namespace (cpu/drcbearm64.cpp). Added a comment with some info to help when debugging generated code (cpu/drcbearm64.cpp). Put code in the drc namespace (cpu\drcbec.cpp).
. Slight DRC code generation optimisation: Consider a RIP-relative LEA for generating 64-bit values (7-byte instruction versus a 10-byte MOV instruction). Seems to work pretty well for heap pointers (cpu\drcbex64.cpp). Changed the near cache base pointer offset from 0x80 to 0x100. The value 0x80 was copied from the x86-64 back-end where it was choses to allow an 8-bit signed displacement to reach as much of the top of the near cache as possible. However, AArch64 use 9-bit signed displacements, so a quarter of the range was being wasted. cpu/drcbearm64.cpp: Consider an adrp/add sequence for generating immediate values as well as memory references (cpu\drcbex64.cpp).
. Fixed off-by-one errors in map variable handling (cpu\drcbearm64.cpp and cpu\drcbec.cpp)
. Fixed ADRP usage. ADRP output must always be an X register. Tidy up some stuff (cpu\drcbearm64.cpp).
. hyperstone E1-32XN: Removed workarounds for recompiler backends not clearing upper half of I0-I3 on 32-bit load (e132xs\e132xsdrc_ops.hxx)
. IBM PowerPC
. PowerPC 601 has POWER and PowerPC instructions, allow both in disassembly. Strip the debug info (powerpc\ppc.h, ppc_dasm.h and ppccom.cpp).
. More support for the 601's POWER/PPC dual nature, including several POWER instructions (powerpc\ppc*).
. Intel 8085A: Correct some variable types
. Intel 8086: Don't clear physical irq pins state at reset (i86\i86.cpp)
. MCS-51
. Fixed P3.1 output logic. Mode 0 is still incorrect. Update savestates. Don't mask P3.1 at reset. Added some TODO notes (mcs51\mcs51.cpp).
. Implemented PES bit for DS5002FP. PES bit is peripheral enable select on bytewide bus. Improved execute_run icount timing. Max opcode cycles is 4 (mcs51\mcs51.cpp).
. Removed unneeded powerdown check. Removed old changelog from comments and copypasted comment block. Clean up source code spacing (mcs51\mcs51.cpp).
. Motorola MC6800: Added dummy read to CLR opcode (m6800\6800ops.hxx)
. Motorola MC68000: Fixed disassembly of CAS (m68000\m68kdasm.cpp)
. RCA CDP180x: Fixed load init phase (cosmac\cosmac.cpp)
. Texas Instruments TMS57002 'DASP': Fixed input sample overflow
- SOUND
. HC-55516: Correct variable type of digital sample in hc55516 class. Small cleanup. BTANB NOTE: Outputs a low-volume but very high-pitched background tone when /FZ is active and the hardware doesn't have a low-pass filter.
. ZOOM ZSG-2: Update stream before reading
- DEVICE
. Brooktree Bt481 RAMDAC: Implemented RAMDAC with hardware cursor (video\bt48x.cpp)
. Floppy
. Removed code supporting functionality that's no longer used. Eliminated floppy_get_drive_type and floppy_set_type. No callers for these functions allowing us to get rid of the FLOPPY_TYPE_ defines as well. Drop flopimg_get_image, floppy_drive_get_next_id, floppy_drive_read_track_data_info_buffer, floppy_drive_write_track_data_info_buffer, floppy_drive_format_sector, floppy_drive_set_index_pulse_callback, floppy_drive_get_current_track_size, floppy_wtd_w floppy_wpt_r, floppy_dskchg_r and floppy_twosid_r. Drop flopimg_get_sectors_per_track and flopimg_get_id_callback. Drop unneeded state variables: m_id_index and m_rdy. Make some members as private (imagedev\flopdrv.cpp).
. Start the ready dance on insertion even if motor is always on (imagedev\floppy.cpp)
. GP9001 VDP: Fixed regression with vdpcount_r (toaplan\gp9001.cpp)
. K001005 Polygon Renderer, K056832 Tilemap Generator and Konami PowerPC Common Functions: Initialized some variables
. K052109 Tilemap Generator: Added function for marking tilemap dirty (konami\k052109.cpp)
. MC68681 DUART: Small cleanup
. NCR 53Cxx SCSI Controller: Fixed NCR53CF94 ID read sequence. Allow clock conversion register to be set to 0 (faster versions allow this) (machine\ncr53c90.cpp).
. Serial EEPROM: One variable was missing from savestates (machine\eepromser.cpp)
. VGA: Vsync interrupt support (video\pc_vga.cpp)
. Z80 SCC Channel: Retire 'Zilog 8530 SCC (legacy)' device (machine\8530scc.cpp)
. Z80 SIO: Added support for wait/ready, fixed rx int logic and SDLC bit stuffing bug (machine\z80sio.cpp)
- aquarium.cpp and gcpinbal.cpp
. Fixed sprite delay and cleaned up code: Implemented sprite RAM DMA triggered by vertical blanking. Use internal graphics decoding layout. Removed unused variables. Reduced duplication and corrected comments (excellent\excellent_spr.cpp).
. Fixed background tilemap bank switching, simplified ROM loading and cleaned up code (excellent\gcpinbal.cpp). Cleaned up code (excellent\aquarium.cpp).
- atarig1.cpp, atarig42.cpp, atarigt.cpp, atarigx2.cpp and atarirle.cpp: Cleanups: Suppress side effects for debugger reads, improved save state support, reduce run-time tag lookups. Made some variables const, used bit helpers more, reduced literal tag usage. Reduced preprocessor macros and improved ROM region names.
- backfire.cpp, deco_mlc.cpp, deco156.cpp, deco32.cpp and simpl156.cpp: Updated comments, source file names and system names in comments. Cleaned up code a little. Reduced variable scope, made some variables const and fixed tabulation (dataeast\deco156_m.cpp).
- baraduke.cpp: Converted CUS42 + CUS43 tilemap hardware to a device (namco\namco_cus4xtmap.cpp). Use video\resnet.h for palette initialization and simplified graphics decoding layout. Correct order of address map entries.
- big10.cpp: Break the parent/clone relationship between both big10 games. They are very different games playing the same type of Keno.
- beezer.cpp: Documenting equivalence to AM6070. Fixing pin locations (sound\dac76.h).
- chance32.cpp: Tidied up some stuff
- cdi.cpp
. Fixed CD-i DYUV color format decoding. The DYUV format incorrectly was too dark by 16/256. This corrects a previously incorrect attempt to fix that issue. The DYUV format does not allow Mosaic features. The Transparency flag was left-shifted incorrectly (philips\mcd212.cpp).
. Fixed RLE: Fixes RLE encoding which was short by 50%. Simplifies code, reducing by >100 lines. Renames Channel to Path to match the Green Book spec. Adds TODO for QHY DYUV images. This image type can't be tested without 625 scanline resolution which is currently blocked. So this will remain a known gap until several other features are added. Tidied up some stuff (philips\mcd212.cpp).
. Implemented RBG decoding and RGB transparency bit (philips\mcd212.cpp)
- ddenlovr.cpp
. Fixed inputs for htengoku, hkagerou and hginga. Correct DIP switches for htengoku, hkagerou and hginga based on manuals (except for two illegible settings for hkagerou). Hooked up hopper for hginga. Correct input types.
. Correct DIP switch settings and identified undocumented alternate coinage setting for Mahjong The Mysterious World. Identified 18 of 40 DIP switches for Hana Kanzashi with high confidence and improved inputs.
. Show correct credits per note with alternate coinage for Mahjong The Mysterious World and Mahjong The Mysterious Orient Part/Returns.
- dec8.cpp: Make number of rombanks power-of-2. Increased quantum for games with MCU.
- destroyr.cpp, dragrace.cpp, poolshrk.cpp, sprint8.cpp and tank8.cpp: Added NOPR to addressmaps for MC6800 clr spam
- downtown.cpp: Adjusted Meta Fox/Arbalester video refresh rate to improve Meta Fox music tempo. Also improved names of some member functions and updated comments.
- dynax.cpp: Fixed main/audio CPU clock for Jong Tou Ki and Jong Yu Ki. Both CPUs were running too fast
- espial.cpp: Added sound NMI timer, small cleanup and increase Net Wars sound NMI frequency. Updated notes. Workaround for soft reset lockup. Fixes MAME version plays Net Wars sound much slower than ARCADE version (ID 07573).
- gaelco.cpp: Moved Big Karnak, Squash and Thunder Hoop to derived state classes to reduce optional object finders. Made some variables const and use more appropriate integer types. Reduced code duplication and literal tags. Improved ROM region names.
- gaelco3d.cpp: Cleaned up code: Suppress side effects for debugger reads, use BIT helpers and made some variables const. Use logmacro.h for configurable logging. Reduced literal tags and preprocessor macros. Improved some ROM region and member function names.
- galaxold.cpp: Removed no_cocktail flag for most games
- goldnpkr.cpp: Added hopper support. Modified layout to add hopper/diverter status. Added extra layout for games that behave different. Moved all Mega Double Poker routines to their own place. Cleaned up the driver.
- gottlieb.cpp: Moved sytems with LaserDisc players to a derived state class and cleaned up code. Suppress side effects for debugger reads, use more appropriate integer types, made come variables const. Reduced preprocessor macros (cobram3, cobram3a, mach3, mach3a, mach3b and usvsthem).
- gstriker.cpp: Added serial connection notes
- homedata.cpp: Use standard mahjong matrix and added second player position controls for Mahjong Hourouki and similar (hourouki, mhgaiden, mjclinic, mjhokite and mrokumei)
- igs_m036.cpp: Fixed up some metadata
- konamim2.cpp
. Removed hack believed to have become obsolete, it caused extreme slowdowns during loading (konami\3dom2.cpp) (ID 08980).
. Tweak lightgun sensitivity and added P2/P3 lightguns for evilngt and totlvice (ID 07938). Clarify gun switch. Added EEPROM default contents with calibrated guns to Evil Night, clone Hell Night and Total Vice (ver EBA).
- lasso.cpp
. Tweak cpu/sound clocks based on PCB recordings. Fixes sound is a bit too low-pitched and slow in lasso, chameleo and wwjgtin (ID 09065).
. Merged driver. Removed DAC in Wai Wai Jockey Gate-In!. Improved background color in Pinbo and clones (ID 04546).
- lependu.cpp: Driver improvements: Fixed ROM_LOAD, graphics banks and color/bank selector bits. Adjusted Le Pendu buttons-lamps layout intensity (layout\lependu.lay). Added technical notes.
- m62.cpp: Removed note about guessed palette resistors (irem\m62_v.cpp)
- macs.cpp: Dumped motherboard PAL
- mappy.cpp: Moved phozon to a derived state class and cleaned up code: Reduced optional object finders for phozon. Derive 15XX sound clock frequency from crystal found on PCB. Suppress side effects for debugger reads. Simplified graphics decoding. Reduced run-time tag lookups, reduced duplication and made some variable const.
- megasys1.cpp: Use colon instead of dash for sub-titles
- micro3d.cpp: Reverse throttle control. Removed obsolete underclock hack. Small cleanup. Correct MCU type, re-added underclock hack, it was still crashing, just not specifically at the last stage.
- mpu3.cpp: Correct 100hz signal to PIA6821 IC3, 50hz comment and toggling of 100hz and comment games which fail on boot.
- mwarr.cpp and stlforce.cpp
. Use device_gfx_interface to decode graphics and cleaned up code (video - edevices\edevices.cpp)
. Simplified graphics ROM loading and decoding, reduced literal tags and improved member and ROM region names (edevices\mwarr.cpp).
. Simplified graphics ROM loading and decoding and removed unused code (edevices\stlforce.cpp)
- namconb1.cpp: Small cleanup to gamelist alignment
- namcond1.cpp: Changed update_screen -> screen_update (namco\ygv608.cpp)
- namcos1.cpp: Assume sound irqs are at vblank end. Fixes Splatter House "Incomplete" music track is played at the 2nd stage boss scene (ID 04095).
- namcos2.cpp: Changed racing games brake pedal range and some other small tweaks (dirtfoxj, finalap2, finalap3, finallap, fourtrax, luckywld, suzuk8h2 and suzuka8h)
- namcos23.cpp: Tweak lightgun sensitivity
- namcos86.cpp: Converted CUS42 + CUS43 tilemap hardware to a device (namco\namco_cus4xtmap.cpp). Use video\resnet.h for palette initialization and use the palette device's indirection features. Simplified graphics decoding layout and reduced tun-time tag lookups. Correct order of address map entries. Cleaned up code.
- nemesis.cpp: Moved games to derived driver state classes to reduce optional object finders and cleaned up code. Reduced run-time tag lookups and use of literal tags. Improved save state support. Made some variables constant, reduced duplicated code and improved member function and ROM region names.
- nmk16.cpp: Cleaned up code: Removed hard-coded assumptions about surrounding system (nmk\nmk004.cpp). Suppress side effects for debugger reads and improved save state support. Removed unused variables, reduced use of literal tags and added notes (nmk\nmk16.cpp/h and nmk16_v.cpp).
- policetr.cpp: Implemented RAMDAC with hardware cursor (video\bt48x.cpp). Use Brooktree BT481 device.
- quizdna.cpp
. Cleaned up memory banking, palette handling and graphics decoding: Use a memory view to swap ROM over tilemap RAM. Use palette format helpers and generic graphics decoding layouts. Increased the size of ROM regions to cover maximum 32 banks. Reduced code duplication, use more appropriate types.
. Simplified program ROM loading. This still had hold-overs from when the region was the address space. Also put common I/O space mappings in a shared function.
- raizing.cpp: Removed obsolete postload function from base class
- raizing_batrider.cpp: Hook up Z80 busrq pin
- royalmah.cpp
. Mahjong Cafe Doll: Added DIP switch settings and correct some settings (dynax\mjdipsw.h)
. Mahjong Derringer: Identified demo sounds and auto reach DIP switches. Added DIP switch locations from input test. Improved DIP switch labels.
. Mahjong Vegas: Improved labels for first and second banks of DIP switches
. Mahjong Diplomat: Improved DIP switch labels
- segas32.cpp: Resolution change when zooming. Wrap tilemap (sega\segas32_v.cpp). Fixes Hard Dunk background in attract.
- simple_st0016.cpp: Removed unnecessary trampoline (seta\simple_st0016.cpp). Fixed naming (seta\st0016.cpp).
- slapfght.cpp: Reduced quantum a bit
- taitotz.cpp: Standards cleanup and fixed direct-poly packet-size calculation. 'Raizin Ping Pong' no longer fatalerrors in attract. Tidied up some stuff.
- vendetta.cpp: Checked devices for possible savestate issue
- williams.cpp: Small cleanup. Fixed Splat! regression.
- zodiack.cpp: Added sound nmi timer. Small cleanup.
- zr107.cpp: Initialized some variables
- 4 En Raya: Swapped 'Difficulty' and 'Speed' DIP switches. Labelled DIP switch on bit 1 (0x02) as unknown. Was previously labelled 'Demo Sounds', but it does not disable sounds in attract mode.
- 4 Fun in 1: Fixed explosion sound (ID 09084)
- Ali Baba and 40 Thieves: Added mystery item clock (rom ab7.bin gfx2). Note: PCB footage shows a red timer graphic resembling a pie chart occupying the empty space above the remaining thief count (ID 09063).
- Amiga (alg.cpp, arsystems.cpp, cubo.cpp, mquake.cpp and upscope.cpp)
. Couple of logging setups. Disable DMA reload on SPRxPOS (Copper) writes. CLXDAT bit 15 is always high. Impose DDFSTOP HW limit on bits 15-8 writes (amiga\amiga_m.cpp).
. Convert anon to emu_timer (amiga\akiko.cpp)
. Better WAIT times. Delay MOVE writes regardless of what register it triggers. Handle SKIP properly. 0x5c is actual h blank minimum position. Calculate cycles remainders on end of scanlines (amiga\agnus_copper.cpp).
. Don't run copper cycles for ephemeral out of beam phase. Don't added bitplane modulo if DMA is disabled. Fixes amigaocs_flop:lweapon intro at least. Moved sprite DMA triggers to X defined slots. Fixed sprite display in hires mode (amiga\amiga_v.cpp).
. Correct horizontal screen values (amiga\amiga.h)
. Moved Paula, Akiko, Copper and FDC from machine to project folder. Refactor device names so that they references chipset names instead (devices\machine\* - > mame\amiga\*).
. Clamp output to s16. Refine silence on empty DMA buffers (amiga\paula.cpp).
. Amiga AGA: Align hires fmode 3 DDFs and experimentally enable drawing even if bitplane fetch DMA disabled. Calculate fmode at copper time and removed dubious XOR calculation for fmode 1 delays. Implemented BRDRBLNK, extend DDF stop for hires fmode 3 to +16. Updated QA. Incremented fmode 3 offset hack (amiga\amigaaga.cpp).
- Asterix: Mark tilemaps dirty if tilebank changed. Fixes Asterix windmills do not spin (ID 05592).
- Atari (Clearned up various Atari 2D drivers)
. Reduced tilemap sizes to match tilemap RAM size. Suppress side effects for debugger accesses. Reduced use of literal tags and run-time tag lookups. Use GFXENTRY_SCALE rather than duplicating bits in the layouts. Made some variable const, improved naming of functions and ROM regions and updated comments.
. Moved graphics decoding device to Arcade Classics state as Sparks lacks sprites (arcadecl.cpp)
. Removed unnecessary configuration parameter and unnecessary graphics decode reconfiguration (atari\atarimo.cpp)
. Reduced use of preprocessor macros (atarisy1.cpp and atarisy2.cpp). Removed unnecessary driver init functions (skullxbo.cpp).
- Bang!: Tweak gun sensitivity
- Battle Chopper: Flip Battle Chopper and clone Mr. HELI 'Demo_Sounds' switch
- Battle Shark: Joystick Left and Right inverted in clone Battle Shark (Japan, Joystick) (ID 08731)
- Bonanza's Joker Poker: Lot of fixes and new machine driver, getting Joker Poker working. Fixed crystal/clocks and derivatives. Added lamps support and button-lamps layout for Joker Poker. Worked Super Joker Poker inputs and DIP Switches from the scratch. Added docs and technical notes.
- Dr. Micro: Reduced SN76496 clock. Fixes sound is too high-pitched (ID 09062).
- Dragon Buster: Allow continue dsw was wrong way around (ID 08660)
- Dragon Unit: Identified an unknown DIP switch (ID 09097)
- Drews Revenge: Correct PAL for Drews Revenge (v.2.89, set 1)
- Driving Force: Fixed crash sound in clone Driving Force (Galaxian conversion) (ID 01595)
- Express Raider: Fixed SW display in menu
- Flying Shark: Correct ROM locations and audio CPU ROM for clone Hishou Zame (Japan)
- Goldart: Changed main CPU clock frequency and cleaned up code: Changed DS5002 clock frequency to 16MHz (32MHz / 2) rather than 12MHz. Defer allocating RAM until machine start. Restrict drawing to clipping rectangle. Renamed members to reflect the fact that the DS5002 is the main CPU. Reduced run-time tag lookups, suppress side effects for debugger reads and made some variables const.
- IPM Invader: Added missing maincpu rom to clone IPM Invader (set 2). Promoted game to working.
- Jet Wave: Update analog controls (ID 08962)
- Joyful Road: Small cleanup
- Kisekae Mahjong: Dumped GAL
- Kollon: Update ZOOM ZSG-2 stream before reading. Fixed input sample overflow TMS57002. Fixed crackling/overdriving of audio in Kollon and clone (ID 07958)
- Krull: Fixed loading a save state causes graphics corruption if you do so outside the stage you saved the state in (ID 09060).
- Mahjong Camera Kozou: Renames games for clarity (ID 09077)
- Mayo no 21: Pinpoint CVSD sample ROMs
- Ms. Pac-Man: Correct return value after bankswitch
- Namco Classic Collection Vol.1: nc1cg0 rom dump had 1 bad bit (ID 04729)
- NeoGeo (Cleaned up code)
. Suppress side effects for debugger reads, reduced use of literal tags and made some variables const (neogeo.cpp).
. Reduced use of literal tags and fixed improved metadata (neopcb.cpp)
. Moved Hammer to a derived state class and reduced run-time tag lookups (midas.cpp)
. Use more appropriate integer types and made some variables constant. Use more symbolic constants and reduced preprocessor macros. Reduced public class members (neogeo\neogeo_spr.cpp).
- Night Mare (Spain): According to the manual, button 1 is INK and button 2 are JUMP.
- Pound for Pound: 0x40 is bit 6 and not bit 5 (Port02). Fixes X/Y Axxis don't work properly (ID 07312).
- Quizard: Removed clone Quizard (v1.0, Italian, i8751 IT 11 I2), as the 1.0 CD doesn't support Italian language (ID 09087).
- Rail Chase: Fixed recoil outputs broken (sega\segaybd.h) (ID 09052)
- Roulette (ICP-1 PCB): Added instructions for setting the password and booting the game with it
- Run and Gun: Correct palette ram size and shadow/highlights on palette2. Fixes AddressSanitizer: heap-buffer-overflow with -aviwrite in rungund, rungunad, rungunbd, rungunuad, rungunud and slmdunkjd (ID 07543). Removed unneeded bool checks.
- Sea Battle: Updated output when rbi is written (video\dm9368.cpp). Removed unneeded 7seg output trampoline.
- Space Cyclone: Small cleanup. Improved speech and starfield. Removed flipscreen support in favor of working upright 2-player mode. Improved starfield colors. Replaced speech '8-Bit R-2R DAC' with HC-55516.
- Space Firebird: Removed blue background from clone Space Demon (ID 09061)
- Stocker: Added PORT_TOGGLE to shifter (ID 08510)
- Super Breakout: Removed unused TIME_4V define
- Super Draw Poker: Dumped PAL (pal16r6.1p) for Super Draw Poker (set 1)
- Super Mini-Boy: Implemented and documented the PIA port B multiplexion. Lot of fixes, getting the game working. Added lamps support and button-lamps layout. Fixed the color scheme. Worked inputs and DIP Switches from the scratch. Added technical and games notes. Some clean-up. Promoted game to working.
- Superbike: Don't mark Superbike (bootleg on Galaxian hardware) as bootleg, rom contents looks original, can't judge bootleg from overall PCB quality of a conversion kit.
- Tank 8: Added addressable latch devices and XTAL definition. Use raw parameters for screen.
- Tokio / Scramble Formation: Make cpu quantum the same as Bubble Bobble, it works fine. Fixes performance regression in tokio and clones (ID 09054).
- Triple Hunt: Added default NVRAM and debugger side effect checks
- Under Fire: Removed fake dipswitch ('Show gun target') (ID 06865)
- VGM player: Use embedded SVG for button labels (layout\vgmplay.lay)
- Violence Fight: Mark tc0180vcu roms as bad dump. Removed bad dump flag.
- Xexex: Removed empty init function (for invincibility just use -cheat)
- Fixed rom names in atronic.cpp, m10.cpp and twincobr.cpp
- Description changes of '64th. Street: A Detective Story (Japan, set 1)', '64th. Street: A Detective Story (Japan, set 2)', '64th. Street: A Detective Story (World)', Babooshka (Russia) (Atronic), Bonus Chance (W-8, set 1), Batman Forever (Italian, 4.0, Nov. 1 1995, Display Rev. 4.01), Battlantis (Japan, version E), Battlantis (version F), Battlantis (version G), Bonanza's Joker Poker, Cherry Master '97 (V1.7, set 1), Cobra Sport Dart / Tour Sport Dart (Oki MSM6376 sound), E.D.F.: Earth Defense Force (bootleg), E.D.F.: Earth Defense Force (Japan, prototype), E.D.F.: Earth Defense Force (North America), E.D.F.: Earth Defense Force (set 1), E.D.F.: Earth Defense Force (set 2), Excalibur (Gottlieb), Excalibur (Gottlieb, French), Excalibur (Gottlieb, German), Fever Chance (W-6, Japan, set 1), Genshitou 1930's (Japan) (ID 09094), Gradius II: GOFER no Yabou (Japan, new), Gradius II: GOFER no Yabou (Japan, old), Gradius II: GOFER no Yabou (Japan, older), Gradius III (World, version R), Gradius III: Densetsu kara Shinwa e (Japan, version S), Gradius III: Densetsu kara Shinwa e (Japan, version S, split), Hayaoshi Quiz Ouza Ketteisen: The King Of Quiz, The Hustler (Japan, version J), The Hustler (Japan, version M), 'I C Money (Atronic) (set 1)', Kick Off: Jaleco Cup (Japan), Kick Off: World Cup (bootleg), Ma Cheon Ru (Korea), Magic Touch (v. 24.03), Mahjong Camera Kozou (Japan 881109, older hardware), Mahjong Camera Kozou (Japan 881109, newer hardware), Makaimura (Japan revision B), Makaimura (Japan revision C), Makaimura (Japan revision G), Makaimura (Japan revision B bootleg), M.I.A.: Missing in Action (Japan, version R), Mega Zone (unknown version 1), Mega Zone (unknown version 2), Mega Zone (version H), Mega Zone (version I), Mega Zone (version J), Mega Zone (version L), NtCash (set 1), P-47: The Freedom Fighter (Japan), P-47: The Freedom Fighter (Japan, Export), P-47: The Freedom Fighter (World), P-47: The Freedom Fighter (World, bootleg), P-47: The Phantom Fighter (World), Rack 'em Up (version L), 'SNK vs. Capcom - SVC Chaos (JAMMA PCB, NEO-MVH MVO PCB)', 'SNK vs. Capcom - SVC Chaos (JAMMA PCB, NEO-MVH MVOB PCB)', Space Cyclone (Japan), Su Ho Seong (Korea), Super Contra: Alien no Gyakushuu (Japan), Superbike (Galaxian hardware), Sutjaro Haeyo Deluxe (Korea), Toride II (Japan, revision K), The Yakyuken (bootleg), Vulcan Venture (new), Vulcan Venture (old), Vulcan Venture (older), Yie Ar Kung-Fu (version G) and Yie Ar Kung-Fu (version I).
- Dipswitch fixes in 4enraya.cpp, ddenlovr.cpp, exprraid.cpp, goldnpkr.cpp, goldstar.cpp, m72.cpp, miniboy7.cpp, royalmah.cpp, seta.cpp and skykid.cpp
- Renamed (baboshka) to (baboshkar), (drmmake) to (drmmaker), (gradius3j) to (gradius3ja), (gradius3js) to (gradius3jas), (magictch) to (magictcha), (makaimurba) to (makaimurbbl), (mjcamera) to (mjcamerao), (mjcamerb) to (mjcamera), (mmcamera) to (mjcameram), (rungunua) to (rungunuba), (rungunuad) to (rungunubad), (rungunud) to (rungunuabd) and (shpinxii) to (sphinxiir)
- MAME
. VIDEO RENDERING SYSTEM
. Cherry-pick Wayland improvements from upstream BGFX. Properly support Wayland under EGL and Vulkan. Dynamically load libwayland-egl.so.1 when dealing with Wayland to remove dependencies at program startup. Support both X11 and Wayland in the same build: Works for both Vulkan and OpenGL. Removed --with-wayland from genie options. Vulkan loads all three extensions for surface creation instead of only one. Added width and height parameter to GlContext::createSwapChain(), which is needed for EGL to create a SwapChain with the given window size. Dirty-fix the example-22-windows to recreate the FrameBuffer by first destroying and then recreating to make sure the window is released of its swapchain. Fixed dbgText glitch in example-22-windows. Removed old X11-related dependencies for GLFW3. Adapt to latest bgfx wayland code. Fixed Vulkan swapchain invalidation issue. Always clamp render pass to frame buffer size. Fixed formatting. Hopefully fix macOS build (3rdparty\bgfx\*, osd\sdl.lua, osd\sdl_cfg.lua and render\drawbgfx.cpp).
. Mark gfx ram dirty after load state (emu\digfx.cpp)
. Account for flipped tilemap in get_info_debug (emu\tilemap.cpp). Fixes tilemap viewer doesn't account for screen flipx x/y when hovering mouse cursor over tiles (ID 09067).
. DEVICES: Round scaled clock to nearest integer (emu\device.cpp)
. LUA engine: Expose mame_ui_manager::show_menu() to LUA (mame\luaengine.cpp)
. UI
. Don't rescale icons that are close to the target size (ui\selmenu.cpp)
. Make inc/dec slider control consistent with other sliders where holding ctrl = 'big steps'
. Use a smoother, symmetrical highlight texture (ui\widgets.cpp) (ID 09095).
. INPUT: Fixed enum range warnings in debug builds (interface\inputcode.h)
. PLUGINS: hiscore.dat update (plugins\hiscore\hiscore.dat)
. 3rdparty: Updated AsmJit to latest upstream (3rdparty\asmjit)
. Set_clock_scale takes a double, not a float (cps2.cpp, backfire.cpp, deco_mlc.cpp, konamigx.cpp, segas24.cpp and littlerb.cpp)
. Updated copyright years to 2025 (docs\source and language\*). Rearranged README.md sections and updated links. Updated brief instructions for compiling with Visual Studio. Added repobeats activity graphs. Linked CI badges to workflow pages (README.md). Removed obsolete reference to MESS.
. Removed "all rights reserved" copyright comment (src\*)
- Compiling
. Don't treat K&R function definitions as an error. Some AArch64-specific code in C/CpuArch.c uses () when it should be using (void) (lzma; src\3rdparty.lua).
. Disable command line string escaping, fixes MAME 0.273 incorrect paarsing SDL_INI_PATH directive and build faild #13150.
. Adjust MSVC warning settings (scripts\genie.lua and scripts\src\3rdparty.lua)
. General: Housekeeping and MSVC warning elimination. Avoid potential unsafe use of bool and empty controlled statements. Annotate some unused variables. Removed some undefined functions (i386\i386segs.hxx, machine\arm_iomd.cpp, ui\prscntrl.cpp, tools\nl_convert.cpp, igs\igs_m027.cpp, namco\namcos22_v.cpp and namco\namcos23.cpp).
. Deal with NUL when osd_uchar_from_osdchar uses mbstowcs (osd\strconv.cpp)
. Added constexpr to the bitswap with explicit count. This was a hangover from poor implementation of constexpr in older compilers (util\coretmpl.h).
. Added helper for getting CPU cache line size (cpu\drcbex86.cpp, drcbex64.cpp, lib\osdlib_macosx.cpp, osdlib_unix.cpp, osdlib_win32.cpp and osd\osdcore.h)
. Added libfontconfig-dev in preparation for Ubuntu 24.04 (github\workflows\ci-linux.yml)
. Added missing standard library headers (util\corestr.cpp and sound\sdl_sound.cpp)