- New games: Black Touch II (Korea)
- New Working games: Klax (version 5, bootleg set 1), Klax (version 5, bootleg set 2) and Multipede
- New Non-Working games: Biplane [TTL], dogstation Deluxe, Moto GP (MGP1004-NA-B), Space Pokan, Trio de Bingo, Win Bingo 2006 and unknown 960606-5 based machine
- New clones: Astro Ambush (Scramble bootleg on Galaxian hardware), Cadash (US, version 1?), Come-Cocos (Ms. Pac-Man) ('Made in Greece' Triunvi bootleg, set 2), Cookie & Bibi 2 (set 2), Cuore 1 (Italian, set 2), Cuore 1 (Italian, set 3), Cuore 1 (Italian, set 4), Cuore 1 (Italian, set 5), Death Crimson OX (USA), Diana Olakoa (v8.38), Endless Riches (Ver 1.21), Forgotten Worlds (Japan), G-Darius (Ver 2.02O), The Glob (Pac-Man hardware, bootleg), Magic's 10 2 (ver. BETA3), Ms. Pac-Man (bootleg, set 4), Moune Creste (Jeutel French Moon Cresta bootleg), Olympic Darts K7 (v3.00), Pool 10 (Italian, set 10), Prop Cycle (Rev. PR1 Ver.A, Japan), Riot (Woong Bi license), Ryu Jin (Japan, ET910000B PCB), Sauro (set 1), Scramble (unknown bootleg), Street Fighter II': Champion Edition (Playmark bootleg, set 3) and Super Cup Finals (Ver 2.1O 1993/11/19, single PCB)
- New PinMAME games: Ator (set 1, 2 bumpers), Jurassic Park (3.05), Last Action Hero (unknown CPU, display L1.05), Le Grand 8, Pool Player (1.0) and Storm
- Removed games: Mexico Lindo
- New drivers: kongs470.cpp and winbingo.cpp
- New devices: aplcd150, jaleco_ms32_sysctrl and x1_012
- New artworks: https://mrdo.mameworld.info/mame_artwork_ingame.php
. Dynamic Re-Compiling: Don't leak using namespace from the header (cpu\drcbex86.cpp and cpu\drcbex64.cpp)
. Hitachi H8
. Preliminary support for short address mode (h8\h8_dma.cpp).
. Fixed interpretation of IPR bits for the H8S CPUs. (MESS) PSR-340 PortaSound boots now (cpu\h8\h8_intc.cpp).
. Fixed race condition in SCI where a new byte was written right before the last tick and froze the transmitter (h8\h8_sci.cpp).
. Fixed the watchdog read, fixes (MESS) Yamaha MU80 test mode (h8\h8_watchdog.cpp).
. Intel 8085A: Fixed sta/lda instruction name (i8085\8085dasm.cpp). Make sure SOD outputs 0 upon the first reset.
. Motorola MC68000: Accept addressing mode 6 for FSAVE/FRESTORE (m68000\m68kfpu.cpp)
. AY-3-8910A PSG: Removed old printf msg
. Biquad Filter: Allow recalculating the filter values at runtime if a component value can be altered or changed through some means
. Namco C140: Reduced duplication in fetching sample
. Samsung KS0164 audio processor: Pitch is floating point
. Sega Universal Sound Board: Fixed Sega USB sound device, was using more memory than allocated (fixes Zaxxon and segag80r/v.cpp)
. Yamaha YMF278B OPL4: Fixed the OPL4 low byte order in 12bits so that it matches the datasheet and the multipcm (GEW8)
. Yamaha YMW-258-F: Ported 12-bit sample support from Yamaha SWP30, still needs work. Fixed endianness of word reads. Some 12-bit samples sound almost reasonable now. Fixed the 12bits mode decoding. Found the real 12-bit format flag. Corrected clock divider and clocks for users of YMW-258-F to match schematics.
. Yamaha YMZ280B PCMD8: Fixed major mixer overdriving
. YMF262 OPL3: Fixed off-by-one error in OPL3_SLOT_CONNECT
. Discrete Netlist: Give devices the C++17 namespace treatment
. Intel 8275 CRTC: Fixed a case where the DRQ output could remain unexpectedly set due to DMA cycles happening too quickly.
. MC146818 RTC: Added square wave output
. MC68681 DUART: Output counter ready on OP3. Suppress unnecessary interrupt callbacks. Fixed counter clock rate calculation.
. Seta SETA001 Sprites: Moved gfxdecode down into device. Added putative master clocks (video\seta001.cpp).
. SNES PPU: Use device_palette_interface for palette, fixed CGRAM size and direct color behavior (video\snes_ppu.cpp).
. TMS9928A VDP: Fixed failure to output initial interrupt state
- aristmk4.cpp: Fixed driver. May be slightly incorrect, but was is sure is that the current video update routine needs 0x804 bytes, not 0x800.
- atarisy2.cpp: Fixed atarisy2 way too magic use of shares
- bnstars.cpp, ms32.cpp, tetrisp2.cpp
. Wrote a Jaleco MS32 System Control Unit device.
. bnstars.cpp: Fixed machine configuration and proper split for sprite and gfxdecode devices. Make it boot again. Note: bnstars1 never ever set up the CRTC at boot, causing no irq. We currently compensate by basically giving one frame of time, ofc on the real thing the first vblank is really when screen sync occurs.
. ms32.cpp: Fixed sprite transfer direction bit, removes an ugly per-game table. Fixed drawing honoring the wrong variable and causing a segmentation fault. Correct palette size. Move optional features (YUV, zooming) at init time (video\ms32_sprite.cpp).
. tetrisp2.cpp: Fixed extra screens in stepstag/vjdash to run at 60 Hz instead of 30. Fixed rightmost screen in stepstag/vjdash bitmap configuration (thanks to Osso for catching it).
- chihiro.cpp, naomi.cpp and triforce.cpp: Make DIMM board work again after memory system changes. Removed usage of auto_alloc_array (machine\naomigd.cpp).
- cosmic.cpp: Fixed bug in sound output handler and cleaned up sample playback code. Removed some redundant calls, and turned the questionable [[fallthrough]] into a break.
- cv1k.cpp: A bit more accurate frame rate
. Fixed some parent-clone relationships, sorted the sets and change set names to follow a common pattern. Fixed memory share width and Endianness issues.
. New clones marked as NOT_WORKING, added CPU and display version on games descriptions and fixed some games metadata. Added display version when available and fixed some metadata. Added CPU version information to descriptions and used the region version string from the display ROM on the description also.
- dec8.cpp: Added DIP locations
- exidy.cpp: Make driver compilable with SOURCES= and fixed Side Trak
- galaxold.cpp and scramble.cpp: Modernized S2650 interrupts
- goldstar.cpp: Fixed the decrypted_opcodes share size
- hng64.cpp: Dumped EEPROMs for the IO boards. Major documentation update.
- liberate.cpp: Fixed bank hack turned into share hack
- m72.cpp: Fixed sprite drawing routine
- magic10.cpp: Fixed incorrect tilemap size
- mcr3.cpp: Don't overdrive the mixer
- midqslvr.cpp: Avoid outright crashes
- model3.cpp: Fixed Model 3, unallocated bank.
- namcos22.cpp: Window clip camera VL/VR was wrong way around, fixes misaligned zoom effect in Prop Cycle score entry screen (ID 07790). Removed 1 usage of auto_alloc (2 remaining). Removed an unneeded machine_start.
- naomi.cpp: Added Altera FPGA firmware from original DIMM (machine\naomigd.cpp). Added Atomiswave ANET.Net board docs.
- nova2001.cpp: Fixed incorrect palette size
- peplus.cpp: Fixed PEPlus, no need to ram to store the rom.
- pgm.cpp: Minor documentation update according to PCB scans
- play_2.cpp: Fixed logic bug related to periodic interrupts
- psikyo.cpp: Fixed width of video RAM shares
- royalmah.cpp: Fixed incorrectly sized videoram
- segas16b.cpp: Verified 315-5298 dump and added it to all ROM boards which use it (171-5797, 171-5521, 171-5704)
. Separated emulation of tile layers as new device (video\seta.cpp and video\x1_012.cpp). Slight further cleanup.
. Separated driver state class a little. Acknowledge 65C02 IRQs. Eliminated strcmp for per-game hacks (video\seta.cpp).
. Fixed insidious variable type mistake that caused tilemap regressions (video\x1_012.h)
- seta2.cpp: Fixed Funcube, may have side effects on clone 'Hong Tian Lei (A-Blast) (bootleg)' which really doesn't work on the first place so I do not really care.
- sfcbox.cpp: Dumped KROM 2.0
- shangkid.cpp: Updated driver to use derived classes
- toaplan1.cpp: Use prio_transpen rather than custom sprite drawing function
- twincobr.cpp: Decapped TMS32010C based MCUs for Flying Shark (World), clone Hishou Zame (Japan) and Twin Cobra clone Kyukyoku Tiger (Japan). The Flying Shark (World) one is also compatible with clones Sky Shark (US, set 1), Sky Shark (US, set 2), Wardner (World) and clones Pyros (US) and Wardner no Mori (Japan).
- undrfire.cpp: Hooked up TC0360PRI priority controller, fixes priorities and missing graphics in attract mode of Chase Bombers (ID 01807).
- unico.cpp: Fixed usual region width issues
- vcombat.cpp: Fixed messy sharing of shares. Separated the memory maps for single and dual i860.
- vendetta.cpp: Switched from bankdev to memory_view
. Fixed extraneous parentheses on comparison warning
. Simulated protection for clones Carnival (Head On hardware, set 1) and Carnival (Head On hardware, set 2), fixes gamed crashes after clearing first round (ID 07778).
- williams.cpp: Set the videoram as a single 48k block (which it is), derive everything from it.
- 3-D Bowling: Fixed function of DIPs labelled as Unused (ID 07783)
- Armor Attack: Improved artwork. Better alignemnent and transmission colours in particular. Adjust alignment of overlay. I adjusted the alignment based on where the shots hit the buildings. It doesn't seem possible to not have the tanks partly overlap the buildings but still have the hitboxes inset into the buildings by the right amount on all sides.
- Bloxeed: Clarified 'Credits' DIPs in clones Bloxeed (World, C System) and (US, C System, Rev A) and fixed the credits to start DIP switches.
- Bongo: Transplant to modern Galaxian driver
- Cabal: Added hardware documentation. Added PROMs to Cabal (World, Joystick), Cabal (Korea?, Joystick), Cabal (UK, Trackball) and Cabal (UK, Joystick). Corrected M5205 measurement.
- Captain Silver: Moved game to its own state class
- Centipede: Added watchdog reset address to Centipede bootlegs, and nop some other address ranges to match original sets.
- Crazy Kong Part II: Transfer Crazy Kong bootlegs to modern Galaxian driver
- Dock Man: Transplant clones Port Man (bootleg on Moon Cresta hardware) and El Estivador (Spanish bootleg of Port Man on Galaxian hardware) to modern Galaxian driver.
- F-1 Super Battle: Move game to own state. Added layout.
- Fighting Basketball: Fixed missing AY-3-8910A sound (ID 07803)
- Hard Drivin': Fixed Hard Drivin', a bad combination of wrong width memory and wrong-sized allocation. The palette was working by sheer luck (and memory block size rounding).
- Invader's Revenge: Adjusted sound timings to more closely match a real machine (info from Tafoid)
- Klax: Promoted clones Klax (version 5, bootleg set 1) and Klax (version 5, bootleg set 2) to working
- Magic the Gathering: Verified exact CPU model
- Magical Touch: Fake the BIOS shadow a little less badly
- Major Title 2: Use parallel EEPROM device
- Malzak: Implemented TLC (Transmitted Large Character) output line (video\saa5050.cpp)
- Mighty Monkey: Transplant Mighty Monkey and clones Mighty Monkey (bootleg on Super Cobra hardware), Mighty Monkey (bootleg on Scramble hardware) and Mighty Monkey (Kaina Games, bootleg on Scramble hardware) to modern Galaxian driver.
- Multipede: Support switching games in Multipede - Game now playable. Moved Multipede stuff into a new class, optimized memory map switching a little.
- NBA Showtime NBA on NBC: Fixed release year (ID 07757)
- NFL Blitz '99: Fixed NFL Blitz '99 input port mapping by setting default values for unused I/O bits. Fixes attract mode constantly skips (ID 07799).
- Operation Tiger: Decapped TMS320BC53PQ80 DSP
- Ozon I: Transplant to modern Galaxian driver. Added 8255 PPI.
- Photo Play Spirit Xtreme: Added notes about the USB dongle and a partial dump of its non-volatile memory
- Quartet: Fixed incomplete protection hookup in Quartet, fixes the moving floors that appear after the 15th stage are not displayed (ID 07792).
- Rally Bike: Fixed game has a different spriteram size.
- Saint Dragon: Fixed high scores higher than 1.000.000 points are not displayed correctly at the high scores table (plugins\hiscore\hiscore.dat) (ID 07796).
- Space Duel: Fixed POKEY audio (ID 07808)
- Starship 1: Fixed tilemap size (gets rid of uninitialized chars on screen)
- Super Donkey Kong / Super Bomberman 2 (Super Famicom Box): Dumped GROM
- Teenage Mutant Ninja Turtles - Turtles in Time: Make ROM access work more like it did before
- Tough Turf: Fixed Tough Turf (set 2, Japan) voice samples not playing back properly. Note: Neither Starting nor Bonus Energy dips really works for both tturf and tturfu, former does on tturfbl, is it based on a later rev we don't have?
- Tunnel Hunt: Fixed Tunnel Hunt, bringing the driver to this side of 2020. Restored save state support.
- Vector games (Atari AVG/DVG)
. Modernised code (video\avgdvg.cpp and emu\save.cpp). This fixes many vector games do not return stably from save state (ID 07435). Fixed bwidow.cpp games, tidied up code some more.
. Fixed a bug (pre-dating the recent conversion to bitswap) in the sparkle LFSR preset load value (video\avgdvg.cpp), and added a comment explaining what the source is for bits 4, 5 and 6 of the preset load value.
- Vulgus: Fixed Vulgus stutter in MAMEUI (ID 07784). Note: When the cannon is fired, it causes the AY8910 to issue a storm of "EShape" messages into the verbose log. MAME uses a different method which is why the issue isn't noticed there.
- Winning Run Suzuka Grand Prix: Decapped TMS320C25. TODO: Verify, hook up and check if same for all games.
- Input port: Cleaned up RawInput code slightly (input\input_rawinput.cpp)
- Fixed rom names in fungames.cpp, goldstar.cpp, nmk16.cpp, pgm.cpp, segag80v.cpp, seta2.cpp and snowbros.cpp
- Dipswitch fixes in meadows.cpp
- Description changes of Ator (set 2, 3 bumpers), Chatan Yara Kuushanku - The Karate Tournament (Japan) (ID 07786), Chibi Maruko-chan: Maruko Deluxe Quiz (ID 07785), Come-Cocos (Ms. Pac-Man) ('Made in Greece' Triunvi bootleg, set 1), Cookie & Bibi 2 (set 3), Cuore 1 (Italian, set 1), Daytona USA (ID 05701), Daytona USA (Revision A), Daytona USA Special Edition (Revision A), (many) de_3.cpp games, Death Crimson OX (Japan), Death Crimson OX (Japan, Rev A), Diana Olakoa (v8.27), Final Fight Revenge / Final Revenge (JUET 990930 V1.100) (ID 07782), Final Fight Revenge / Final Revenge (JUET 990714 V1.000), Lethal Weapon 3 (2.04 England, display A2.02), Olympic Darts K7 (v3.11), Ryu Jin (Japan, ET910000A PCB), Sauro (set 2), Scud Race Deluxe, Scud Race Twin, Star Trek 25th Anniversary (1.10, display A0.27), Star Wars (1.01, display A1.02), Star Wars (1.01 Germany, display G1.02), Star Wars (1.03, display A1.04), Star Wars (1.06, display A0.46), Star Wars (1.06, display A1.05), Star Wars (1.06, display S1.05), Super Cup Finals (Ver 2.1O 1993/11/19, F3 Cartridge), Super Cup Finals (Ver 2.2O 1994/01/13, single PCB), Teenage Mutant Ninja Turtles (1.04, Germany) and WWF Royal Rumble (1.03 French, display F1.01)
- Renamed (ator) to (ator3bmp), (btmn_f13) to (btmn_103f), (btmn_g13) to (btmn_103g), (cookbib2a) to (cookbib2b), (diolakoa) to (diola827), (endrichs) to (endrichsa), (gdarius) to (gdariusj), (gdariusb) to (gdariusu), (hook_401p) to (hook_401_p), (jupk_g51) to (jupk_501g), (lah_f104) to (lah_104f), (lah_l104) to (lah_104s), (lah_l108) to (lah_108s), (lw3_204) to (lw3_204e), (rab_103) to (rab_103s), (ryujin) to (ryujina), (scfinalso) to (scfinalsoc), (stwr_106s) to (stwr_106_s105), (stwr_a046) to (stwr_106_a046), (stwr_a14) to (stwr_103_a104), (stwr_e12) to (stwr_102e), (stwr_g11) to (stwr_101g), (tftc_104) to (tftc_104s), (tomy_h30) to (tomy_300h) and (trek_11a) to (trek_110_a027)
. VIDEO RENDERING SYSTEM
. Fixed drawscanline_core leftover loop, should not live inside unrolled loop (emu\drawgfxt.ipp)
. Added links to some internal layouts that demonstrate various features (docs\source\techspecs\layout_files.rst)
. Use delegates to avoid hot conditional branches. Set initial value for bounds callback, it can be called before tags are resolved (emu\rendlay.cpp).
. Exposed a few information view item properties (emu\render.cpp)
. Moved some rendering code to constexpr (emu\drawgfx.cpp, rendersw.hxx and rendutil.h)
. MEMORY SYSTEM
. Simplify memory management (emu\emumem.cpp). API impact: install_ram/rom/writeonly now requires a non-null pointer. If you want automatically managed ram, add it to a memory map, not in machine_start. install_*_bank now requires a memory_bank *, not a string. One can create memory banks outside of memory maps with memory_bank_creator. One can create memory shares outside of memory maps with memory_share_creator. Memory maps impact: RAM ranges with overlapping addresses are not shared anymore. Use .share(). RAM ranges touching each other are not merged anymore. Stay in your range. Extra note: There is no need to create a bank just to dynamically map some memory/rom. Just use install_rom/ram/writeonly.
. Clean-up and consistency fixes after memory system changes
. Use if constexpr to make code clearer (emu\emumem.cpp). Fixed memory leak on address_space_specific destruction (emu\emumem.cpp).
. Don't reject re-loading an unused bank (emu\emumem.cpp)
. Implemented views, which are essentially bankdevs integrated into the memory map system. Fixed recursion on views dup and lookup (emu\emumem_aspace.cpp)
. General maintenance on emu\devfind: Harmonised memory region/share finder/creator APIs. Moved .found() to optional object finders. Added truth test operator to optional object finders. Fixed things that were testing .found() on required object finders. Improved Doxygen API documentation.
. Made read_safe avaiable for optional I/O ports only (emu\devfind.h). Added the next couple of sections explaining object finders (docs\source\techspecs\object_finders.rst).
. Added missing memory_share_array_creator (emu\devfind.h)
. More cleanup/consistency changes (emu\devfind.cpp): Removed .mask(), as it's not reliable in the general case. Added asserts to things that assume power-of-two sizes. Got rid of virtual qualifier on pointer-to-member operator. Made helpers a bit more assertive about logging warnings.
. Cleaned up emu\dirom and made it stricter: Made it an error to specify address map and explicit ROM region. Made it an error if explicitly specified ROM region is not found. Made the ROM region tag apply relative to the current device.
. LUA engine
. Use sol::lua_nil instead of sol::nil (sol::nil is an alias of it that may not always be available). Fixed constructable usertypes. Changed definition for rest of usertypes.
. Apparently sol::make_user is a recipe for dangling references, get rid of it. SOL3 needs non-const device reference to wrap.
. Splitted lua_engine user type registrations across a few files to make it a bit more manageable
. Moved Clang warning suppression to the right file, disabled MSVC C4503 suppression for now, will see which files need it for SOL3.
. Fairly significant overhaul of Lua engine and some cleanup. The things that were previously called device iterators are not iterators in the C++ sense of the word. This is confusing for newcomers. These have been renamed to be device enumerators. Several Lua methods and properties that previously returned tables now return lightweight wrappers for the underlying objects. This means creating them is a lot faster, but you can't modify them, and the performance characteristics of different operations varies. The render manager's target list uses 1-based indexing to be more like idiomatic Lua. It's now possible to create a device enumerator on any device, and then get subdevices (or sibling devices) using a relative tag. Much more render/layout functionality has been exposed to Lua. Layout scripts now have access to the layout file and can directly set the state of an item with no bindings, or register callbacks to obtain state. Some things that were previously methods are now read-only properties. Layout files are no longer required to supply a "name". This was problematic because the same layout file could be loaded for multiple instances of the same device, and each instance of the layout file should use the correct inputs (and in the future outputs) for the device instance it's associated with. This should also fix video output with MSVC builds by avoiding delegates that return things that don't fit in a register.
. Work around MSVC ambiguous overload error (mame\luaengine_render.cpp)
. Used unchecked optional getter after explicit check (mame\luaengine.ipp and luaengine_render.cpp)
. Cleanup and enhancements: Changed memory manager banks, regions and shares to lightweight wrappers. Exposed tag, width and Endianness of regions and shares. Exposed memory tag and entry of banks (scripts can change entry). Modernised syntax and switched to abbreviated integer types.
. Lua engine improvements: Added methods for enabling and disabling breakpoints and watchpoints, and made debugger views update when breakpoints/watchpoints are manipulated from Lua. Made breakpoints and watchpoints objects rather than tables. It's not possible to enable/disable a breakpoint or watchpoint from the object itself, you have to go through its owners' debug interface. Exposed more device_t members for dealing with child/sibling tags and devices. Also provided a way to get regions/shares/banks from a device using relative tags rather than going through the memory manager with absolute tags (mame\luaengine_debug.cpp).
. Exposed cassette image devices, device_slot_interface, emu_options, slot options, device_t interface on screen_device and some cleanup.
. Exposed enough of the layout system to Lua to allow position and colour to be animated. Fixed Clang warning about unused lambda capture.
. UI: Added MAME version to About menu header
. MULTI-LANGUAGE: Fixed Portuguese_Brazil translation errors
. Deprecate machine resource pool (emu\machine.h). This has outlived its usefulness. Use smart pointers (std::unique_ptr, std::shared_ptr, etc. from ) to manage object lifecycles.
. Miscellaneous clean-up. Replaced several uses of auto_alloc (isa\isa.cpp, machine\vrender0.cpp, drivers/menghong.cpp, photoply.cpp and video\liberatr.cpp).
. Fixed another annoying edge case (mame\audit.cpp)
. Cleaned up MACHINE_START_OVERRIDE / MACHINE_RESET_OVERRIDE / VIDEO_START (segac2.cpp, tsamurai.cpp, tubep.cpp and wecleman.cpp)
. Got rid of some MACHINE_*_MEMBER and VIDEO_*_MEMBER in various drivers
. hiscore.dat update (plugins\hiscore\hiscore.dat)
. Properly handle numpad enter (3rdparty\linenoise\linenoise.c)
- SDLMAME: Fixed a couple of X11 resource leaks (osd\modules\input\input_x11.cpp, midi\portmidi.cpp and sdl\sdlmain.cpp)
- MAC OS X: Disable BGFX threading, which causes crashes and wrong drawing on Catalina and Big Sur (scripts\src\3rdparty.lua) (ID 07746). Tidied up compiler warning options for 3rdparty (scripts\src\3rdparty.lua).
- VGM player: Added 11 new entries from most recent package release + some shortname consistency fixes (hash\vgmplay.xml)
. Switch to building MAME as C++17. Updated sol2 to 3.2.2. Updated pugixml to 1.10. Increased minimum Clang version to 6. Cleaned up some stuff that can use new features.
. Udpated compilingmame.rst doc required MSYS64 packages for using lld (mingw-w64-x86_64-libc++). Added some notes about setting up and using MSYS2 (docs\source\initialsetup\compilingmame.rst).
. Apple calls LLVM/Clang 10 Xcode 12, update warning flags (scripts\genie.lua).
. Initialized some variables to avoid asserts/crashes/regressions in DRVNOCLEAR builds (20pacgal.cpp, aerofgt.cpp, argus.cpp, aristmk5.cpp, atarig42.cpp, atarisy1.cpp, beathead.cpp, bfcobra.cpp, calchase.cpp, cvs.cpp, drw80pkr.cpp, eolith.cpp, exerion.cpp, galaxian.cpp, galaxold.cpp, gameplan.cpp, ghosteo.cpp, gts80b.cpp, halleys.cpp, hng64.cpp, hyhoo.cpp, igs011.cpp, igs017.cpp, jalmah.cpp, jeutel.cpp, jpmsys5.cpp, ksys573.cpp, lethalj.cpp, m72.cpp, malzak.cpp, mediagx.cpp, megatech.cpp, metlfrzr.cpp, mlanding.cpp, model1.cpp, model2.cpp, mpu4.cpp, namcos10.cpp, nbmj8688.cpp, nbmj8891.cpp, nmk16.cpp, opwolf.cpp, peyper.cpp, pgm.cpp, pinball2k.cpp, s3.cpp, s4.cpp, seattle.cpp, segas18.cpp, segac2.cpp, segajw.cpp, snk.cpp, srmp2.cpp, suna16.cpp, system1.cpp, system16.cpp, taitotz.cpp, taitowlf.cpp, tecmosys.cpp, tmnt.cpp, trvquest.cpp, tumbleb.cpp, vectrex.cpp, vega.cpp, viper.cpp, wecleman.cpp, williams.cpp, xtom3d.cpp, machine\archimds.cpp, machine\snes.cpp and includes\mpu4.h)
. Removed update step for ci-windows.yml to prevent errors about outdated mirrors. Bump microsoft/setup-msbuild to 1.0.2 (.github\workflows\ci-windows.yml).
. Fixed some MSVC failure to resolve overloaded operator errors. MSVC isn't trying the object finders' cast-to-pointer operators when looking for a suitable operator+. Since GitHub actions can only find 100 occurrences of a string and don't actually give you the full raw log when you ask for it, it's going to take several passes to catch all of these.
. Started writing page on object finders with worked examples (docs\source\techspecs\object_finders.rst)
. Clang doesn't like how we're using std::void_t (emu\devcb.h and emu\emumem.h) - switch back to our own void_t-alike until it can be investigated.
. Enable GCC implicit fallthrough warning
. Removed some deprecated instantiations of static constexpr members (MSVC complains about them now)
. Work around GNU libstdc++ wanting to stack large temporaries when vector elements can be trivially constructed.
. Added M6809 support for gdb remote debugger (debugger\debuggdbstub.cpp)
. Added "n2a03" (6502 CPU clone) to gdbstub for NES, and swapped 6502 PC/SP to SP/PC (debugger\debuggdbstub.cpp).
. Allow input piped from stdin by specifying a bare hyphen as the filename (tools\unidasm.cpp)
. Added strdump debugger command for dumping memory as ASCII strings