- New games: Paris Dakar (31/03/87, Spanish)
- New Working games: Operation Tiger
- New Non-Working games: Basket, Baby Fruits (100 pts version), Dracula's Castle (Magnet System), Multi Baby, Radikal Darts (Diana Version 7.29.25), Soreike! Anpanman Popcorn Koujou 2 (Rev C), Speedway and Zelos (Japan, main unit)
- New clones: Air Inferno (World), Baby Fruits (25 pts version), Bubble Buster (USA, B-System), Espgaluda II (2005/11/14 MASTER VER, newer CV1000-B PCB), Guitar Freaks 2nd Mix (GQ883 VER. AAA), Guitar Freaks 2nd Mix (GQ883 VER. EAA), Guitar Freaks 2nd Mix (GQ883 VER. JAA), Guitar Freaks 2nd Mix (GQ883 VER. KAA), Guitar Freaks 2nd Mix (GQ883 VER. UAA), Guitar Freaks 2nd Mix Link Kit 1 (GE929 VER. JAA), Guitar Freaks 2nd Mix Link Kit 2 (GC929 VER. JBB), Guitar Freaks Ver 1.01 (GQ886 VER. AAD), Guitar Freaks Ver 1.01 (GQ886 VER. EAD), Guitar Freaks Ver 1.01 (GQ886 VER. JAD), Guitar Freaks Ver 1.01 (GQ886 VER. UAD), Kangaroo (Loewen-Automaten), The Killing Blade / Ao Jian Kuang Dao (ver. 100), Mag Max (set 2), Police 24/7 (ver UAD), Police 911 (ver KAE), Rafflesia (not encrypted), Rescate Lunar (Spanish bootleg of Lunar Rescue), 'S.V.G. - Spectral vs Generation / Sheng Mo Shiji (M68k label V101HK) (ARM label V101HK, ROM 06/20/05 S.V.G V100)', Sea Wolf (Tecfri), Seoul Symphony (Bubble Symphony bootleg with OKI6295) and Time Crisis 3 (TST3 Ver. A)
- New drivers: opercoin.cpp and radikaldarts.cpp
- New devices: f2mc16, mb90610a, mb90611a and mb90641a
. Fujitsu Micro F2MC-16: Emulated various additional instructions and modes. Fixed banking for direct addressing mode. Fixed semantics of CLRB and number of bytes consumed by SETB. Fixed mistake with calculating N and Z flags for SUB and CMP and writing incorrect result for SUB. Use INC(W)(L) A and DEC(W)(L) A pseudo-operations in disassembly. General cleanup: Added helper functions for increment and decrement operations and short direct banking. Rationalize use of temporary variables. Modify only lowest 8 bits of accumulator for XOR A, #imm8. Perform a 16-bit rather than 8-bit write for MOVW @RLx + #disp8, A. Use SSB instead of USB for @RW3 or @RW7 addressing when S flag is set. Fixed numerous flag calculations. Emulated many more opcodes. Added interrupt callback for debugger. Correct disassembly of MOVW io, A. Added "extra" I/O CPU (MB90611A F2MC-16) to Motocross Go! configuration
. I386, MIPS and PPC: Removed a crash caused by the modulus operator (emu\divtlb.cpp). In the original code all values are signed integers, so m_dynindex would overflow and become negative, then the modulus of a negative value by a positive one would generate a negative result and finally the next array read would make the program crash. Also the maximum value plus one of m_dynindex is not generally a multiple of m_dynamic and this would cause a jump in the values of liveindex.
. Texas Instruments TMS57002 'DASP': Genearate seaparate DASM header
. ICS2115 WaveFront Synthesizer: Improved sound using next-state logic
. 3dfx Voodoo Graphics: Address minor coverity complaints
. Atari DVG: Support XY flip (video\avgdvg.cpp) for 'Major Havoc - The Promised End' (HBMAME) cocktail mode
. CHDMAN: Added a few more hard disk templates (Seagate, Maxtor, Micropolis...)
. Fixed segmentation fault saving FM track. Incorrect cell size for FM track results in empty bitstream that ultimately causes data.empty() to seg fault (formats\imd_dsk.cpp).
. Don't assume string iterators can be indexed (reported by Coverity software) (formats\fsmgr.cpp)
. SCSI Bus (new): Added initialization of sense buffer on reset (machine\nscsi_bus.cpp)
. SMC91C9x Ethernet Controller: m_loopback_result needs to be a signed into so negative status codes remain negative. FDSE bit was masked out. When full duplex switched internet is active, deferrals and collisions not used. Implemented AUTO_RELEASE.
. TC0780FPA Polygon Renderer: Fixed texture issues in Operation Tiger. Improved texture wrapping (video\tc0780fpa.cpp).
- albazc.cpp, albazg.cpp, chanbara.cpp, crystal.cpp, jantotsu.cpp and tryout.cpp
. Made use of object finders and other minor cleanups
. Documented 'Test' dipswitch for Wully Bully
. Fixed handling of 8bpp framebuffer mode. Adjusted how VI scan-out functions. Swapped 'magic matrix' dither pattern axes to match hardware tests (machine\n64.cpp and video\n64.cpp).
. N64 RDP: Fixed incorrect channel swapping on 32-bit resampled framebuffers. Temporarily adjusted framebuffer resampling to not exceed screen bounds in some games.
. N64 RSP: Fixed LWV and VMOV behavior. Added reserved instructions V056, V057, V073 and VNULL. Removed unused DRC and SIMD support. General code cleanup.
. N64: Fixed SP DMA behavior based on hardware tests. Pass K4 and K5 factors to threaded drawing code. Fixes black geometry in (MESS) Conker's Bad Fur Day.
. Added tilemap color bank, fixes lightning flashing and color cycling for Fire Battle.
. Hand-tuned all clock frequencies for clshroad and halved vblank irq rate, syncing video and sound timings in logical sense. Minor realign documentation.
. Cleanup driver
. Replaced clone 'Mushihime-Sama Futari Black Label (2007/12/11 BLACK LABEL VER)' program ROM with clean dump, previous was dumped from upgraded futari15 PCB and contained trailing garbage.
. Documented different clone 'P-47 - The Freedom Fighter (Japan)' ROM board configurations
. Correction to the audio CPU memory map and verified that clone 'E.D.F. : Earth Defense Force (bootleg)' has an undumped PIC. Verified XTAL and clock.
. Dumped Peek A Boo Japan 1.1, matches parent set.
. Standardized PROM locations for games running on 1A board.
. Added missing items to state saving
. Updated to use measured clock and marked Mermaid and clone as imperfect graphics. Note: Incomplete GFX emulation in Mermaid (see MT07985 and MT08000).
- namcofl.cpp: Fixed network status error, this also fixes the paralyzed flagman in Final Lap R (ID 08042).
- naomi.cpp: Documentation misc additions. Corrected PIN number for mask ROMs on 171-8132B carts. Sorted games by year/number.
- seibuspi.cpp: Added/Fixed notes for Jumper JP1
. Preliminary QS1000 hook up. There seems to be a bug in the ARM_VIDC20 device that causes static/bad sounds. Just set the related volume sliders to 0 to hear the QS1000.
. Hooked up DIPs for Pang Pang Car. Note: Pang Pang Car uses the VIDC internal DAC for SFX and the QS1000 for music. It's configured to use the undumped internal ROM.
- timelimt.cpp: Halve maincpu NMI rate and fixed spriteram out of bounds access (ID 08046). Note: PCB output video confirms that the enemies in Progress move too fast in MAME (https://youtu.be/3MX_qCf_no0).
. Added audio support, updated inputs and improved default NVRAM contents. Updated compatibility lists, added NVRAMs, added more inputs and per-game DIP switches. Fixed port DIP location values. Added comment about Boxing Mania's pad controller.
. Fixed MAME closes with error when pressing F3 at the 'DISTRIBUTION ERROR' screen in Police 911 (ID 07002).
- 18 Wheeler: Dumped earlier/prototype Sega 837-13844 JVS I/O board rom epr-21868p.ic7
- AGEMAME: Added missing sound roms for 'James Bond (Maygay) (M1A/B) (set 1)'
- Champion Base Ball Part-2: Mapped some areas and added some logging for clone Taikyoku Base Ball (ID 08053)
- Dino Dino: Gets to the ROM error screen. The first few hundred bytes don't decrypt correctly.
- Dock Man: Fixed down button for clone El Estivador (Spanish bootleg of Port Man on Galaxian hardware) (ID 08051). Not 100% the same as clone Port Man (bootleg on Moon Cresta hardware).
- Enigma II: Minor updates to DIP locations
- Games Family: Improved notes. Added new BIOS version (award_i6a6ixe19.bin).
- Ginga NinkyouDen: Fixed missing PCM samples (ID 08050)
- Knuckle Joe: Added sprite layer clipping. Fixed off-by-1 with sprite layer clip.
- Motocross Go!: Added "extra" I/O CPU (MB90611A F2MC-16) to configuration
- The Ninja Kids: Fixed default 'Lives' dipswitch to 3 (matches all OFF convention)
- One + Two: Derived frequency from XTAL present on PCB
- Operation Tiger
. Fixed driver lockup issues and improved tilemap emulation
. Fixed texture issues and improved texture wrapping (video\tc0780fpa.cpp). Fixed save states (Game now playable).
- Royal King Jang Oh 2: Added banking. Almost playable, but bad colors.
- Super Chexx: Map some memory
- Super Glob: Swap ceiling/call elevator button assignments on clone Beastie Feastie to match Super Glob/The Glob
- Tumble Pop: Added preliminary OKI hookup for clone Tumble Pop (Playmark bootleg)
- Twin Bee Yahhoo!: Made 'Twin Bee Yahhoo! (ver JAA)' parent of Magical Twin Bee as the latter has substantial content removed rather than being localised, making it less complete.
- Wiping: Convert to Xtal and added tentative screen raw params. Make custom audio to actually not divide internally by 2 (audio\wiping.cpp).
- Yori Jori Kuk Kuk: Got game to boot, left as not working as it needs a ROM patch for now.
- Yuuyu no Quiz de GO!GO!: Added 'AllowContinue' dipswitch
- Fixed rom names in megasys1.cpp
- Dipswitch fixes in crystal.cpp, enigma2.cpp, seibuspi.cpp, ssfindo.cpp, viper.cpp and taito_f2.cpp
- Description changes of Code One Dispatch Ver 1.16 (ver UAB), Code One Dispatch Ver 1.21 (ver UAD), Espgaluda II (2005/11/14 MASTER VER, original CV1000-B PCB), Jurassic Park 3 (ver UBC), Keisatsukan Shinjuku 24ji (ver JAE), Mag Max (set 1), Mini Guay VD, Peek-a-Boo! (Japan, ver. 1.1), Mocap Boxing (ver AAB), Police 24/7 (ver EAD), Police 24/7 (ver EAD, alt), Police 911 (ver AAC), Police 911 (ver AAE), Silent Scope Fortune Hunter (ver EAA) and Soreike! Anpanman Popcorn Koujou (Rev B)
- Renamed (ainferno) to (ainfernou), (espgal2) to (espgal2a), (gtrfrks) to (gtrfrksc), (gtrfrksa) to (gtrfrksac), (gtrfrksj) to (gtrfrksjc), (gtrfrksu) to (gtrfrksuc), (p911e) to (p911ed) and (p911uc) to (p911ac)
. VIDEO RENDERING SYSTEM
. Fixed automatic sizing of snapshots/recordings (emu\render.cpp). This fixes bad scaling on snapshots and recording when using -uesx and forced scale factors.
. INPUT: Slightly cleaned up OSD input modules. Removed support for DirectInput 7 and earlier. It hasn't been tested in years, and it's not relevant on any supported OS. DirectInput is effectively finalised at version 8 and is unlikely to get an API update in the future. Use more string[_view] and fewer C strings and tightened up scope of a few things.
. Updated BGFX, BX and BIMG to latest.
. BGFX fixes for various backends. Fixed palette and UYVY conversion in all backends. Fixes rendering for Laserdisc games is flawed (ID 07760). Fixed a typo in render\bgfx\targetmanager.cpp, thanks LN for the heads-up.
. Applied srcclean to JSON files in BGFX subtree
. Revised BGFX fs_blit_palette16 to not use pixel rounding. Fixes issues in Car Polo, Knuckle Joe and others.
. OSD_WINDOWS isn't a safe way to detect Windows target, and OSD_* macros must not be used outside libocore/libosd (util\zippath.cpp).
- ANDROID: Use log write calls directy on Android (osd\osdcore.cpp)
. Fixed OSD=mac compile (osd\mac\window.cpp and osd\modules\render\drawogl.cpp)
. MSVC fixes to drivers\royalmah.cpp and stv.cpp
. Fixed SDL UI choosing the root path (util\zippath.cpp)
. Use std::clamp in more source files. Use C++17 library function for clamp (and std::min in one place where the value could not possibly be lower than 0 anyway) (video\3dom2_te.cpp).
. Fixed a duplicate #include (plib\pfunction.cpp)
. Updated debugimgui to compile with latest imgui
. Debugger-related feature removals and cleanup: Removed the hotspot read tracker. This was never robustly implemented, but changes to the memory system made it much less useful, and the "speedup opportunities" which it aimed to determine are not very important from a current emulation standpoint. Removed the CURSP/GENSP state symbol and the generic sp() getter. Stacking semantics vary too much between CPU architectures for this to be of much use. (A "SP" symbol has been added to a few CPU cores whose stack pointers were otherwise not being registered.). Removed the cached pointer to device_state_interface and the state() fast accessor from device_t. Most users of device_state_interface either already had a pointer to the specific CPU device type or needed to check first for the presence of the interface. Changed the PC memory write tracker to use pcbase(), which works even when the instruction callback is masked out, instead of peeking at the PC history index. Removed some obsolete watchpoint-related definitions from machine.h.
. Substitute strongly typed enum for magic numbers specifying data format (debug\dvmemory.cpp). Fixed exception in debug memory viewer selecting a floating point format when the number of chunks per row is too small (debug\dvmemory.cpp).
"Theory is when you know everthing but nothing works. Practice is when everything works but no one knows why.
In our lab, theory and practice are combined: Nothing works and no one knows why."