0.266GIT
- New Working games: Moriguchi Hiroko no Quiz de Hyuu!Hyuu! (Ver 2.2J 1995/05/25) and Video Hustler (bootleg, set 4)
- New Non-Working games: Jail Break (Recreativos Franco slot machine), Jungle's Animals (v3.0), Kong Ball (early prototype), Long Hu Feng Yun Gao Qing Ban (V206CN), Long Hu Zheng Ba Gao Qing Ban (V105CN), Monkey Jump, New DongmulDongmul 2, Onliner Touch Party, Power Ball (prototype), Radical Enduro (early prototype), Tairyo-Daiko 337 Byoshi and 'unknown gambling game on Inder pinball hardware'
- New clones: Cobra Sport Dart / Tour Sport Dart (AY-8910 sound), Double Dragon (Japan set 2), Frog (Hermatic, bootleg on Galaxian hardware from Electro Game), The Glob (Pac-Man hardware, set 2), Jump Bug (bootleg, set 2), Lucky Seven, Pac-Man (Video Dens, Spanish bootleg on Galaxian hardware, set 2), Quick & Crash (set 2), Secret Agent (Modular System), Super Galactic Wars (bootleg of Galaxian), Superbike (bootleg on Galaxian hardware), Tetris (bootleg set 7, with OKI M5205), Trojan (Romstar, set 2), Video Hustler (bootleg, set 5) and Zero Time (Spanish bootleg, set 2).
- New PinMAME games: Antar (Recel) and Rollergames (LA-1)
- New drivers: conliner.cpp, cubieboard4.cpp, lwings.cpp, rfjailbrk.cpp and shettle.cpp
- New devices: bongo_sound, id245p01, konami_dual_pccard, m68000msh and pm24276
- CPU
. Motorola MC6809: Fixed invalid escape sequence warnings (m6809\m6809make.py)
. Rockwell PPS-4/2: Reverted incorrect ADSK change that was originated from a bad dump
. Texas Instruments TMS34010: Suppress side effects for debugger reads
- SOUND
. Yamaha YMZ770C AMMS-A: Added decode of "AMMSL" type sample for YMZ770B (sound\mpeg_audio.cpp and sound\ymz770.cpp)
- DEVICE
. ATAPI CD/DVD-ROM and SCSI CD/HD: Playback from current head and other misc cleanup. Implemented T10MMC_CMD_MECHANISM_STATUS. Implemented TOC_FORMAT_FULL_TOC, TOC_FORMAT_SESSIONS and return proper indexes for T10MMC_CMD_READ_SUB_CHANNEL (machine\t10mmc.cpp).
. CD-ROM: Added preliminary support for multisession CD-ROMs, indexes and track flags. Refactoring. Read all indexes from cue files. Read in track flags from cues. Multisession support for cues (util\cdrom.cpp).
. Floppy: Added write support (formats\fs_fat.cpp). Note: Removal of files is untested and floptool does not have a command to delete a file.
. Hitachi HD44780 LCD Controller: Simplify some code (video\hd44780.cpp). KS0066U f00 rom validated on a live PSR.
. PWM Display: Fixed potential time travel issue
. S3 86C3xx: Initial steps for major structural refactoring. Flatten s3dvirge.s3d down to one struct (m_bitblt), get rid of src_stride and dest_stride fns, updated QA. RAMDAC runs in unpacked mode if streams processor disabled. Added primary streams stride override, fix Ubuntu flavor gfxs. Moved NOP logic in dequeue fn. Merged draw & command timers in one, simplify state logic, workaround GFX corruption issue. Refine a bit FIFO status. Base conversion to FIFO (video\s3virge.cpp).
. Yamaha SWP30 sound chip: Improved DPCM sample decompression (sound\swp30.cpp)
. Z80 CTC Channel: Fixed channel bus readback on unset timer. Fixes (MESS) x1turbo not detecting YM regression caused by MAME 0.209 (Prevent integer overflow in Z80 CTC device, which causes a runtime error on WebAssembly builds) (machine\z80ctc.cpp).
- 1945kiii.cpp: Cleanups. Use generic gfx decode layout. Use C++ style comment for single line comments. Reduced preprocessor defines. Constantize variables.
- 3x3puzzl.cpp: Cleanups. Use generic gfx decoding layouts. Use array for Tile RAM and Tilemap. Use C++ style comments for single line comments. Fixed spacing. Reduced preprocessor defines.
- belatra.cpp: Tried to give the driver some flesh
- cb2001.cpp: Updated tile banking, works better with the newly dumped set 'New DongmulDongmul 2'. Converted driver to use MAME tilemaps and started adding real DIP definitions.
- coolpool.cpp: Moved different configurations to separate driver state classes. Use palette device for amerdart palette. Suppress side effects for debugger reads. Use logmacro.h for configurable logging. Cleaned up code.
- downtown.cpp: Cleanups. Use logmacro for logging functions. Split driver class related to Tilemap chip and X1-010 soundchip. Use C++ style comments for single line comments. Fixed naming for ROM region and shared RAM tags. Reduced literal tag usages. Fixed PCMMUTE bit for calibr50. Suppress side effects for debugger reads.
- gts1.cpp: Redumped A1752CF BIOS rom
- konamigq.cpp: No need to cancel a newly allocated timer
- ksys573.cpp
. Moved PC Card devices to devices\bus\pccard and changed signals to match specification to avoid unnecessary inversions.
. Added new KONAMI_DUAL_PCCARD device, used by Punch Mania 2 to allow 2 x 32MB linear flash cards to be installed in a single slot (replacing the previous 64MB linear flash card, that does not seem to exist) (pccard\konami_dual.cpp).
. Renamed the remaining 16MB and 32MB flash cards, to indicate that they are rebranded Fujitsu cards.
. Linear flash cards can now be write protected (pccard\linflash.cpp).
. Added new ID245P01 device, a rebranded Sharp linear flash card that is also used by Konami and PM24276 device, a 16 bit linear flash card.
- mcr68.cpp: Merged driver files
- meritm.cpp: Use Microtouch touch-enabled layout for Megatouch III/IV/5/6/7
- micro3d.cpp: Cleanups. Use C++ style comments for single line comments. Use reference instead pointers. Added missing items into save state. Reduced unnecessary lines. Fixed variable and function namings. Suppress side effects for debugger reads. Use array for noise generator. Constantize variables. Reduced preprocessor defines.
- midvunit.cpp: Split driver state class to reduce optional finders and cleaned up code: Made video clock match PCB documentation (33.3333MHz). Suppress side effects for debugger reads. Added missing data members to save states. Use logmacro.h for configurable logging. Cleaned up member and region naming and const-qualify more variables.
- midwayttl.cpp: Added preliminary list of games
- midyunit.cpp: Moved different sound systems to separate driver state classes. Also simplified machine configurations and added missing data members to save states.
- midzeus.cpp: Cleanups. Split driver state class per IO config. Use C++ style comments for single line comments. Use logerror.h for logging function. Reduced unnecessary lines. Constantize variables. Reduced preprocessor defines. Fixed naming for ROM region and tags. Reduced runtime tag lookups. Moved driver init code into machine_start and address map.
- mtouchxl.cpp: Added touch-enabled layout. Improved pointer mapping code (layout\microtouch.lay).
- pntnpuzl.cpp and tmaster.cpp
. Added touch-enabled layout with touchscreen and buttons to Paint 'N Puzzle. All gameplay controls work with mouse/touch. Added checks for debugger accesses on reads with sideeffects and added object finders for inputs. Improved pointer mapping code (layout\pntnpuzl.lay).
. Recycled touch-enabled Megatouch XL layout for tmaster driver
- segaybd.cpp
. Demoted Power Drift and clones to NOT_WORKING due to regression after m68k rewrite (see MT08783). Clone Power Drift - Link Version (Japan, Rev A) also has the lockup issue.
. Switch Sega Y-Board games back to Musashi. Fixes Power Drift and clones locks up with black screen (ID 08783). Added option to use Musashi for M68000 emulation.
- seta2.cpp: Cleanups: Moved mj4simai-specific stuff into derived mj4simai_state class. Reduced literal tags and run-time tag lookups. Suppress side effects for debugger reads. Use logmacro.h logging utilities, made more variables const. Use C++ line comments for single line comments and fixed spacing.
- ssv.cpp: Cleanups and modernizations. Split driver state class for with DSP. Use C++ style comments for single line comments. Suppress side effects for debugger read. Reduced preprocessor defines, duplicate, unnecessary lines, usage of literal tags and runtime tag lookup. Constantize variables. Fixed spacing, typename values and document. Use generic gfx decode layout for gdfs tilemap. Fixed naming for ROM region and tags. Cleaned up key matrix code.
- taito_f3.cpp
. Major rewrite. Optimized for performance (taito\taito_f3_v.cpp): Changed per-pixed blend Z buffers from array-of-structures to structure-of-arrays. Allow vectorization of line blending operations. Restored empty line optimization by tracking tilemap row use. Consolidate sprite frame buffers (still pulls from it multiple times for each priority group). Rearranged various operations to improve performance.
. Fixed quiz text positioning and heavy sprite window usage for Moriguchi Hiroko no Quiz de Hyuu!Hyuu! Promoted game to working.
- taitogn.cpp: 'ATA Flash PC Card' creates a generic CIS and identify buffer if it is missing from the CHD, also the card can be detected (pccard\ataflash.cpp).
- Air Rescue: Mask address for data RAM accesses in NEC uPD7725
- Alone Shettle Crew: Moved game to its own driver. Added preliminary sprites support and improved inputs. Improved colors, converted background layer to tilemap and workaround stuck sprite. Used shorthand variable types uniformely. Added MUP.
- Black Jack (Irem): Dumped PROMs. Renamed driver to irem\m78.cpp since that's how the PCB is marked. Identified video and palette basics. Added second layer, improved colors and added basic inputs. Reverse GFX bitplanes, fixes service mode color text.
- Bongo: DIP switches are memory mapped in clone Bongo (Galaxian hardware). Hooked up Galaxian discrete sound for clone Bongo (Galaxian hardware).
- Cobra Sport Dart / Tour Sport Dart: Added very basic memory maps. Added PCB ASCII layout for AY-3-8910A based PCB.
- Crypt Killer: Fixed hard disk image tag. Fixes game fails to boot, throws an error to "MEDIA Check" (ID 08856).
- Dribbling: Fixed the PARATA netlist and optimized performance. Removed the SOUND_INCOMPLETE tag. Putting stop_palla and calcio netlists behind FRONTIER. Put all sublists behind a temp FRONTIER (mr\nl_dribling.cpp).
- Jackal: Dumped correct GFX ROMs for clone Jackal (World, Rotary Joystick)
- Legendary Wing: Identified Legendary Wings rev. C and correct ROM labels
- Scramble: Added rudimentary protection circumvention for clones Scramble (Model Racing, Italian bootleg), Scramble (unknown bootleg) and New Century (Spanish bootleg of Scramble). The data bit 2 was problematic in the original dump of 303.fg2 in clone Scramble (Model Racing, Italian bootleg), but ROM is clearly the same as the one in clone Scramble (Recreativos Franco, Spanish bootleg). Left as BAD_DUMP just as extreme precaution.
- Sky Lancer: Make game use canonical 3 'Lives' as default DIP
- Space Fury: Redumped speech ROMs for clone Advisor (Italian bootleg of Space Fury)
- Video Hustler: Fixed clone Video Hustler (bootleg, set 4) stuck on boot - Promoted to working.
- Wheels & Fire: Demoted game to MACHINE_NOT_WORKING
- Fixed rom names in ddragon.cpp, gts1.cpp, lwings.cpp and segag80v.cpp
- Description changes of Antar (Playmatic, set 1), Antar (Playmatic, set 2), Avengers (US, rev. A), Avengers (US, rev. C), Avengers (US, rev. D), Black Jack (Irem, satellite unit, rev. T), Bongo, Bongo (Galaxian hardware), Cobra Sport Dart / Tour Sport Dart (OKI M6376 sound), Double Dragon (Japan set 1), The Glob (Pac-Man hardware, set 1), Harley Davidson (Stern, CPU 1.08, display F1.05, France), High Roller Casino (CPU 2.10, display A2.00), Jump Bug (bootleg, set 1), Legendary Wings (US), Legendary Wings (US, rev. C), Mahjong Reach (Ver. 1.00, bootleg), Pac-Man (Video Dens, Spanish bootleg on Galaxian hardware, set 1), Quick & Crash (set 1, V2.200), Section Z (US), Section Z (Japan, rev. A), Trojan (Romstar, set 1) and Zero Time (Spanish bootleg, set 1)
- Dipswitch fixes in cb2001.cpp, funkybee.cpp, m78.cpp, scobra.cpp and shettle.cpp
- Renamed (avengersb) to (avengersc), (avengersa) to (avengersb), (avengers) to (avengersa), (avengersc) to (avengers), (bongoa) to (bongog), (ddragon) to (ddragonj), (ddragonw) to (ddragon), (ddragonb) to (ddragonbl), (ddragonb2) to (ddragonbl2), (ddragon2b) to (ddragon2bl), (ddragonba) to (ddragonbla), (ddragonw1) to (ddragona), (lwings2) to (lwingsa) and (zerotimeu) to (zerotimea)
- MAME
. VIDEO RENDERING SYSTEM
. Log script errors at warning level rather than verbose level (plugins\layout\init.lua). Reordered all layouts to place views after element and group definitions and scripts last. This matches how layout files are interpreted by MAME. Fixed various errors identified by validating layout files against an XSD schema.
. Removed some now unneeded trampolines for flipscreen related functions (bagman.cpp, holeland.cpp, mermaid.cpp, pitnrun.cpp, skyarmy.cpp and zaccaria.cpp)
. Clarified licensing (opengl\gl_shader_tool.h)
. UI
. Update slider list on demand rather than on frame updated. Fixes cycling through BGFX chain effects with tilde menu crashes (ID 08857) (osd\mac\osdmac.h+window.cpp, osd\modules\lib\osdobj_common.cpp+osdobj_common.h, osd\sdl\osdsdl.h+window.cpp and osd\windows\window.cpp/h).
. Don't rebuild menu just to update one item. Fixes mouse input in Tape Control menu doesn't work (ID 08859). Also automatically rebuild if a script or something changes media underneath. Ensure device monitored for media change is up-to-date (ui\tapectrl.cpp).
. Fixed issue with focus rotation when filter matches no items (ui\selmenu.cpp)
. INPUT: Added an SDL lightgun provider. This does essentially the same thing as the Win32 lightgun provider, mapping the absolute pointer position over the window to gun axes (input\input_sdl.cpp). Also added a bunch of const in the windows input handling code.
. 3rdparty: Updated ASIO to 1.30.2 (3rdparty\asio). Patch config.hpp to hopefully work with strict preprocessor warnings (asio\detail\config.hpp). Set Win32 API version to 0x0600 for Windows SDL builds (osd\sdl_cfg.lua and osd\asio.h).
. Bumped version, as features that are not in a released version of MAME are now documented (docs\source\*).
. Documented taps and contention/interruptibility (docs\source\techspecs\memory.rst)
- Compiling
. Fixed a few class memory access warnings (exidy\vertigo_v.cpp, exidy\victory_v.cpp, konami\viper.cpp, sega\saturn_v.cpp, sega\segaic16.cpp, sega\segaic16_road.cpp, seibu\seibucop.cpp, shared\xbox_usb.cpp, sound\spu.cpp, tatsumi\tx1_m.cpp and ussr\tiamc1_a.cpp)
. Added override qualifiers for overridden virtual member functions (emu\http.cpp and util\server_http_impl.hpp)
. LUA engine: Work around apparent regression in Clang 18. When taking a pointer to a static member function template in a class template, Clang reports a substitution error if the noexcept specification uses an expression that depends on class template arguments. See
https://github.com/llvm/llvm-project/issues/91362. Work around another place where noexcept depends on class template arguments (3rdparty\sol2\sol\sol.hpp).
. Changed a pointer to a const reference in an API (osd\windows\window.cpp)
. Removed an array overflow (this is dead code, function never gets called, but GCC 14.1 complained) (MESS) rm380z_v.cpp.