- New games: Ms PacMan Twin (Argentina), Power Up Baseball (prototype) and Run Run Puppy
- New Working games: Ace Of Clubs (Crystal), Bonanza (JPM) and Sonic The Hedgehog (JPM)
- New Non-Working games: Beatmania III, G.T. Block Challenger, Games Family, Golden Fruits, Olympus (Z Games, version 10), Photo Play 2001 (Spanish), PlayCenter Champions Tournament (v9.3), Pop'n Music Animelo, Pop'n Music Mickey Tunes, Score 5, Silverball (8.01) and Super Butterfly 2000
- New clones: Asteroids (bootleg on Lunar Lander hardware, set 2), Barracuda, Born To Fight (Vifico license), Defense (Defender bootleg), Drift Out (Europe, Cameltry conversion), Galaxian (Electromar Spanish bootleg), Hot Night, Hunchback (FAR S.A. bootleg on Galaxian hardware), Kamikaze (Electrogame, Spanish bootleg of Galaxian), Mach 2 (set 2), Mars (bootleg), Oli Bug (Jump Bug bootleg), ParaParaParadise 2nd Mix (AAA), Pop'n Music Mickey Tunes!, Radar Scope (TRS02, rev. D), Silverball Bulova (4.09, set 1), Silverball Bulova (4.09, set 2), Silverball (6.32), Silverball (7.20), Storming Party / Riku Kai Kuu Saizensen (set 2), Street Fighter II': Magic KO Turbo!! - Nightmare Crack, Wayne Gretzky's 3D Hockey Fatality Edition (prototype) and World Beach Volley (set 1, S87C751 audio CPU)
- New PEPlus games: 'Player's Edge Plus (PP0104) Standard Draw Poker (set 2, Fitzgeralds)'
- Removed games: NFL Blitz (boot ROM 1.1)
- New drivers: blockch.cpp, gfamily.cpp, photoplys.cpp, playcenter.cpp and silverball.cpp
- New devices: pcf8570 and rs_serial_printer
. ES5510: Added serial control register for debugging. Fixed/Added some hardware features. Implemented (partially) RAM clear function. Fixed host control register (host access OK flag is inverted (0 is active)). Added notes.
. Kawasaki Steel KL5C80A12/KL5C80A16: Emulated on-chip parallel ports
. Motorola MC6809: Partially qualify the dummy cycles. Improved accuracy of dummy fetch patterns. Fixed regression in RTI timing (m6809\base6x09.ops).
. National Semiconductor COP4xx: Small notes cleanup
. Namco sound: Allow channels to still play with a frequency of 0 and allow writes to manipulate the counter directly for Namco 15xx (sound\namco.cpp)
. Ricoh RF5C400: Fixed looping and implemented position readback
. ATAPI CD-ROM: Added way to specify Ultra DMA as a machine configuration (bus\ata\atapicdr.cpp)
. Atari Slapstic: Full rewrite, using infrastructure we did not have previously. Fixes clone Pit Fighter (rev 3) crashes randomly in later matches (ID 07866).
. Floppy: Filter out the writes when write protected, useful when the Apple IIgs does a packet send (e.g a write) over DCD with write protect forced on (to avoid damaging a possibly present disk). Ignore set_write_splice when the motor is not running (imagedev\floppy.cpp).
. I2C Memory: Added PCF8570 device
. K057714_device GCU: Adjusted transparency blend mode based on new info from Beatmania III. Fixed some crashes (divide by zero, out of bounds). Clear vram between resets.
. MC68681 DUART: Ignore tx enable if already enabled
. Rockwell 10937 VFD controller: Added state output for the brightness(duty) value. Can be accessed as 'vfddutyX' where X is the port number. Examples of it in use have been added to the generic MPU4, JPM System 5 and Impact layouts, and a full SVG based version in the JPM Sonic the Hedgehog layout.
. RS232 Port
. Added generic Radio Shack printer option (generates break condition when online) (bus\rs232\rs232.cpp)
. HLE updates: Removed option to change the number of start bits (1 was always the default, and the RS232 protocol requires one start bit). Added many historically significant baud rates ranging from 50 to 7200.
. Sega 315-5313 Megadrive VDP: Fixed/Added hardware related notes
. SVGA: Added BIOS for S3 86C775/785 and ExpertColor M50-02 86C775 (both V.1.01.04)
. Z80 SCC Channel: Tidy logging a little bit. There's only one WR2. Note: WR2 is the interrupt vector register. Only one vector register exists in the SCC, and it can be accessed through either channel.
. PCB documentation for The Next Space and Paddle Mania, derive chip clocks from OSCs.
. Replaced color ROM dump in Paddle Mania and added dump about bootleg boards. Removed NO_DUMP entry for the Alpha 8511 MCU, since actual PCBs don't have it.
- aristmk5.cpp and ertictac.cpp: Disabled side effects in high_mem_r handler (machine\acorn_memc.cpp)
- cave.cpp: Correct some typos & update documentation for Hotdog Storm
- deco_mlc.cpp: Added sprite autoflicker flag and fixed small problem with use8bppMode (video\deco_mlc.cpp)
- dec0.cpp: Updated hardware infos. Fixed MSM6295 sound clock in Midnight Resistance.
. Implemented SPU DMAs and fix SPU device configurations
. Large refactor and initial 'Beatmania III' support. Changed DMA to deliver one byte at a time. Converted to use I/O port and output finders. Corrected handler widths and cleaned up code. Lots of other cleanup and miscellaneous fixes.
. Added 'Beatmania III' BIOS, security dongle generated through a tool and proper SPU rom to 'Beatmania III Append 6th Mix', 'Beatmania III Append 7th Mix' and 'Beatmania III The Final'.
. Added 'Beatmania III' BIOS and SPU roms to 'Beatmania III Append Core Remix'
. Added security dongle generated through a tool to 'Keyboardmania', 'Keyboardmania 2nd Mix', 'Pop'n Music 6', 'Pop'n Music 7', 'Pop'n Music 8', 'Pop'n Music Animelo 2', 'ParaParaDancing', 'ParaParaParadise', 'ParaParaParadise 1st Mix Plus' and 'ParaParaParadise v1.1'.
- halleys.cpp: Eliminated deprecated auto_alloc
- hng64.cpp: Only swap/clear 3D buffer when flag is set (video\hng64.cpp)
. Added support for the WIDTHPIX blit flag (video\itech32.cpp)
. Updated NVRAM mapping on '020 machines to cover full 128k
- ksys573.cpp: Added ATA CS1 to memory map
- looping.cpp: Offset/Truncate the COP420 rom instead of loading it the hard way for Looping and Sky Bumper
- luckgrln.cpp: Use generic xBGR_555 palette support, decrease amount of colors. Added DIP locations. Changed service switch type to not toggle on 7 Smash. Added screen raw parameters.
- neogeo.cpp: Added notes for AES clock and regional difference.
- seattle.cpp: Updated Wayne Gretzky's 3D Hockey (ver 1.3) and NFL Blitz (boot ROM 1.2) to use the BIOS system. Clone NFL Blitz (boot ROM 1.1) has been removed since it was identical to the parent set and created only to load the different BIOS version. Use mnemonic BIOS names and organised BIOS versions in ascending order.
- snookr10.cpp: Correct XTAL for sound ROM as per hardware
- thepit.cpp: Identified and dumped colour proms for clones The Hole (bootleg of The Pit) and The Porter (bootleg of Port Man)
- 10-Yard Fight: Fixed misplaced graphics (ID 06650)
. Promoted Bonanza (JPM) and Sonic The Hedgehog (JPM) (IMPACT) and clones to working (except (SO10P C13, Protocol) and (set 9)). Mark Untouchable (JPM) and clone as not working, promotion may have been premature.
. Added GAL for the FM sound board to maygay1bsw.cpp
. Added emulation of Xicor X9C103 (digital potentiometer) to jpmimpct.cpp, fixes volume setting.
. Fixed layout of Big Bucks (JPM). Miscellaneous mpu4.cpp layout fixes. Fixed layout\j6cascze.lay and layout\j6sonic10.lay.
. Improved SVG stencils for VFD layout (layout\j6sonic10.lay; drivers\jpmimpctsw.cpp)
. Improved VFD output in BFM games
- Bogey Manor and Shoot Out: Corrected monitor orientation to ROT180
- Cobra Command: Fixed clones Cobra Command (M.A.C.H. 3 hardware, set 1) and (set 2) showing only a black screen when a NVRAM is present (ID 07874)
- Cookie & Bibi 2: Dumped MCU for Cookie & Bibi 2 (set 1) and clone Cookie & Bibi 2 (set 2)
- Future Flash: Improved gfx rendering, implemented BG scrolling and correct screen raw parameters.
- Good (Korea): Identified some DIPs
- Gokidetor: Converted JEDECs to binary format and add anonymous namespace
- Grobda: Eliminated DAC and allow the Namco 15xx custom to play the speech sample
- High Seas Havoc: Simplified the already working part of the decryption
- Ironman Ivan Stewart's Super Off-Road: Dumped missing roms and corrected mismatched ROMs for clone Ironman Ivan Stewart's Super Off-Road (rev 3)
- Jongkyo: Removed tagmap lookups and auto_alloc_array. Clean up input code a little.
- Jungle (Italy VI3.02): Added reel layer drawing, implemented priority selection and hooked up palette. Updated notes.
- Magic Reels: Added placeholder for undumped PIC
- Major Havoc: Fixed graphics missing in maze stages (MAX_POINTS 20000 is needed) (ID 06668)
- New Pro Bowl: Fixed gfx loading
- ParaParaParadise 2nd Mix: Added working dongles for ppp2nd (JAA) and added a dongle to boot ppp2nda (AAA). Added sensor inputs for ppp2nd and ppp2nda.
- Pepper II: Dumped PROMs and correct version 2 sound ROMs for Pepper II (version
- Pontoon (Konami): Added text layer tilemap, palette and char ROM readback for POST. Hooked up sprite ROM readback, marked sound CPU dump as bad. Hooked up sound CPU and comms, POST now fully passes.
- Raiden: Fixed sound communication and improved sound chip hookup for clone Raiden (Modular System). Music and sound effect playback is triggered correctly. FM audio still doesn't sound great, but it's at least functional.
- Scramble Spirits: Fixed assert in clone Scramble Spirits (World, Floppy Based, FD1094 317-0058-02c) (ID 05873)
- Sega Bass Fishing Deluxe: Added EEPROM for I/O CPU to clone Get Bass: Sega Bass Fishing (Japan)
- SNES 4 Slot arcade switcher: Added new BIOS version '12-07'. Found on PCB with Siemens SAB 8051A-P (4KBytes internal ROM undumped).
- TH Strikes Back: Fixed sprite vs sprite priority. Moved virtual functions in protected: section.
- World Tennis: Corrected size for rom ten14.h4
- Fixed rom names in alpha68k_i.cpp, cave.cpp, leland.cpp, midtunit.cpp, midyunit.cpp and seattle.cpp
- Dipswitch fixes in exidy.cpp, firebeat.cpp, good.cpp and luckgrln.cpp
- Description changes of Asteroids (bootleg on Lunar Lander hardware, set 1), jpmimpctsw.cpp games, Jungle (Italy VI3.02), Mach 2 (set 1), Mortal Kombat II (rev L3.1, European), Mortal Kombat II (rev L3.2, European), NFL Blitz (ver 1.21, Dec 5 1987), Olympus (Juegos Populares), ParaParaParadise 2nd Mix (JAA), Percussion Freaks 4th Mix (G*A25 VER. KAA) (ID 07863), Player's Edge Plus (PP0104) Standard Draw Poker (set 1), Radar Scope (TRS02?, rev. C), Storming Party / Riku Kai Kuu Saizensen (set 1) and World Beach Volley (set 1, PIC16C57 audio CPU)
- Renamed (asteroidb) to (asteroidb1), (j6sonicd) to (j6sonice), (j6sonice) to (j6sonicf), (j6sonicf) to (j6sonicd) and (radarscp) to (radarscpc)
. VIDEO RENDERING SYSTEM
. BGFX: Fixed failure to load texture .png files when -artpath contains multiple directories. Fixes BFGX Shadow Mask not appearing in slider controls when more than one artpath present in mame.ini (ID 06935). Use platform-specific path separator more consistently (render\bgfx\chainentryreader.cpp).
. Fixed assertion failure in some GCC builds (util\palette.cpp)
. Increased precision of ellipse calculations. Also optimised drawing fully covered ellipse pixels and added a few comments (emu\rendlay.cpp).
. CRT-Geom and CRT-Geom-Deluxe enhancements: Added a "brightness boost" feature for the shadow mask that works by making the brightness ratio between bright and dark mask pixels closer to 1 for the brighter parts of the image. Added clamping to zero so that underscanning produces a black border. Added a "raster bloom" effect to crt-geom-deluxe that makes the image grow slightly when the average brightness of the screen is high, mimicking a common defect in CRTs.
. Added new compiled shaders for Direct3D, ESSL, Metal and SPIR-V.
. MEMORY SYSTEM
. Fixed regions and shares on dynamically-installed device maps (emu\emumem*)
. Disabled the unmap-value-in-device-map test for now (emu\emumem_aspace.cpp and emumem_mview.cpp)
. Clean up slider callbacks. Removed now-unused slider ID macros/enums (ui\ui.h)
. Improved messages displayed when files are missing. Only show things preventing launch in UI (not NO_DUMP, optional, etc.). Don't show details like file lengths and checksums in UI. Actually do system audit when launching from favourites. Log the more detailed summary at info level (ui\selgame.cpp, selmenu.cpp and selsoft.cpp).
. Fixed exception in debug build when selecting machine category filter (ui\utils.cpp)
. Input port
. Prevent race condition between ui_input().pressed() and poll() (ui\inputmap.cpp)
. Added prompts to input mapping menu to make it less intimidating (ui\inputmap.cpp)
. Don't prompt to toggle to default if default is None (ui\inputmap.cpp)
. Fixed softlist longname (plugins\discord\init.lua)
. Fixed watch and write (plugins\cheatfind\init.lua)
. Initialized some variables that were causing crashes/asserts in DRVNOCLEAR builds
. Code cleanup (video\resnet.cpp)
. Moved lru_cache_map to separate header (util\coretmpl.h -> util\lrucache.h)
. Converted a few more functions to use std::string_view (emu\input.cpp and inputdev.cpp)
. Use std::clamp in various core functions (emu\render.cpp and sound.h)
. Updated changed set names (plugins\hiscore\hiscore.dat)
. LISTXML: Added a few more driver flags to -listxml output (Driver requires artwork, unofficial, nosoundhardware and driver incomplete)
. Make -listmedia compatible with grep/find. Examples: List all systems with .tap support: mame -listmedia | find ".tap" and list all systems with paper tape reader: mame -listmedia | grep (ptap.
. Validity: Ensure validation of device tags in non-default slot options (emu\validity.cpp)
- VGM player: Added 32 new entries
. Removed 64 suffix on the main executable. If you want to build 64-bit and 32-bit in the same tree without them stomping on each other, use SEPARATE_BIN=1 (you already need to do this for TOOLS=1 anyway). Updated GitHub CI for executable names, added ORM check to Linux builds.
. Unbreak aarch64 and arm builds (makefile). Fixes compiler error on Raspberry Pi (ID 07860).
. Declare intent when requesting virtual memory for NetBSD (lib\osdlib_unix.cpp).
. Suggested changes to MacOS to build: Changes in macOS section regarding current build requirements. Added basic info for Apple Silicon to macOS build instructions (docs\source\initialsetup\compilingmame.rst).
. Initialized some variables which were causing incorrect behaviours in DRVNOCLEAR builds
. LLD (LLVM linker) seems to add a minimal symbol that the system libraries catch. Be smarter about ignoring that (osd\modules\diagnostics\diagnostics_win32.cpp).
. Fixed issues detected by Coverity Static Analysis (software) (machine\i8271.cpp, video\snes_ppu.cpp, audio\rax.cpp, ui\custui.cpp, ui\confswitch.h, drivers\halleys.cpp, bfm_sc2.cpp, highvdeo.cpp, lordgun.cpp, midzeus.cpp (thegrid), sfcbox.cpp and tnzs.cpp (tnzs.cpp))
. Removed references to non-existent headers and duplicate source file references (scripts\src\bus.lua, cpu.lua, emu.lua, netlist.lua, target\mame\arcade.lua and mess.lua)
. Eliminated ARRAY_LENGTH template in favor of C++17's std::size
. Moved definition of EQUIVALENT_ARRAY to coretmpl.h (osd\osdcomm.h)
. Use STRUCT_MEMBER for save state registration (cpu\sharc\sharc.cpp, machine\gt64xxx.cpp, sound\ym2413.cpp, video\snes_ppu.cpp)
. Use std::fill(_n) instead of memset (cpu\arm7\arm7.cpp, tms9900\tms9995.cpp, machine\pckeybrd.cpp and video\jangou_blitter.cpp)
. Removed obsolete typedef (emu\emucore.h)
. Used object finders for istrebiteli.cpp
. Removed unneeded machine().root_device() calls (megatech.cpp, mrgame.cpp, stuntair.cpp and vegas.cpp)
. Fixed parsing for preincrement & predecrement operators. Make debugging function print_tokens usable again (debug\express.cpp).
. Added context menu with Copy Visible and Paste commands to debug views to win32 debugger (debugger\win\debugviewinfo.cpp)
. Qt debugger updates: Added context menu with Copy Visible and Paste commands to debug views. Made memory view last PC display a context menu item. Fixed crash on right-clicking a memory view showing something other than an address space. Improved scrolling behaviour in Qt debugger. Fixes disassembly view glitch on bottom line (ID 07795).
. Fixed commas in dumpkbd output (emu\natkeyboard.cpp)
. Fixed debugger problem when writing values into memory (MESS Myarc Geneve 9640) and added debugger method to TMS9995
. Improved behaviour of bottom line in Qt and win32 debugger views. Ported memory tracking feature from Qt to win32 module.
. Fixed build on GCC (tools\unidasm.cpp)
. Updated state views when memory is modified through the debugger (since registers can be memory-mapped) (debug\debugcpu.cpp)
. Stop converting debugger console commands to all lowercase before parsing them. Case insensitivity has been preserved for command names, CPU and region tags and certain symbolic parameters (as well as expressions, which were treated as case-insensitive in other contexts), but filenames and character constants are no longer automatically lowercased.
. Removed some superfluous c_str() calls (debug\debugcmd.cpp and debugcon.cpp). Removed local member referencing debugger_cpu, which is accessed only rarely since the console now tracks the visible CPU (debug\debugcmd.cpp).
. Added m68000 to debugger\debuggdbstub.cpp
. Added CLS command to clear console buffer (debug\debugcmd.cpp)