MAMEWorld >> News
Previous thread Previous  View all threads Index   Next thread Next   Flat Mode Flat  

MASH
MASH
Reged: 09/26/03
Posts: 1803
Loc: Germany
Send PM
MAMEinfo 0.289GIT (19th Jun)
06/19/26 05:57 PM


MAMEINFO.DAT

* Updated to MAME 0.289GIT - http://git.redump.net/mame/log/

* Added Source/Listinfo changes

* Newest Bugs (19th Jun)

* Added/Reorganized 'Recommended Games'

* Fixed Mameinfo.dat infos




Download at: https://mameinfo.mameworld.info/

MAME Testers at: https://mametesters.org/view_all_set.php?sort=last_updated&dir=DESC&type=2

Ashura-X's Nightly MAME builds: https://ashura-x.github.io/ashurax.github.io/

Recent MAME builds: https://github.com/mamedev/mame/actions
('Sign in' + Click on 'CI (Windows)' and then on a MAME post with a green check mark to download the mame-windows-gcc-XXXXXXXXXXXXXXX file)





0.289GIT

- New games: Planet Patrol
- New Working games: International Superstar Soccer Deluxe (SNES bootleg) and Konami RF2: Red Fighter (Bubble System)
- New Non-Working games: Cool-Bi Cool-Bi, Deep Scan / Car Hunt, Fuxing Gaozhao, Ganso Janken Man, Hana Awase Maihime, Hello Kitty no Oshiro e Iko, Huanzhu Gege (set 1), Itadaki Nyandora Kids, Kimme und Korn (F4), Manpuku Hanten (Japan, main ver. 2.00, video ver. 2.00), Special 8 Way (v122F), Winner's Club - Wild Roses, Xiao Mifeng, Xingyun Xiaochou / Xingyun Shouji (V233CN) and Xiyang Tianshi
- New clones: Futari Mahjong Ron II (set 2), Galaxian (Olympia bootleg), Germ Wars (Germany), Hana Awase 6 (Japan, bootleg), Happy Jackie (v119U), Huanzhu Gege (set 2), Mahjong Angel Kiss (ver 1.0, 92048-01 version), Mahjong Diplomat (Japan), Money Money (set 3), The New 1997 Joker Master - New York (V3G), Ninja Ryukenden (Japan, set 3), Phoenix (JP Leisure bootleg), Play Girls 2 (Europe), Pleiads (bootleg, ManilaMatic), Punch-Out!! (Rev A, harder), Robotron: 2084 (Release 3), Sport of Kings (France, P436.08), Winners Circle (81, set 3) and Winners Circle (81, set 4).
- New AGEMAME games: Castello II (W1), Disco (W1), Fifty Five (F1), Granada (W1), Logo (W1), Monopoly Tisch (F2), Multi (F2), Optimus (W1), Sunny Top (W1), Swing, Turbo Sunny (W1), Viva, Vulkan (F2), Wuerfel Fix (F2) and Wuerfel Fix (F3)
- New drivers: hkcastle.cpp
- New devices: dsi32, fdc9266, scsi_tape_news, sega_315_5218, segapcm_discrete, subsino_sg001, upd72065, wd37c65 and wd37c65b
- CPU
. Ensoniq ES5510
. When writing data to DOL, round towards zero. A bug report by [email protected] identified residual noise when playing certain sounds on an SD-1 - specifically, the OMNIVERSE sound has a reverberating tail that goes to silence on a real SD-1, but retains a never-ending tail on an emulated SD-1. They investigated this further and found that this was consistent with a different, undocumented rounding difference when writing data to DRAM: whereas the documentation suggests a simple truncation of the internal 24-bit value to 16 bits, which is in effect rounding towards negative infinity, changing this to rounding towards zero eliminates the residual noise. Inline implies static linkage - no need for both. Also use constexpr (which implies inline) (es5510\es5510.cpp).
. Round DOL towards -infinity after all. This partially reverts the functional change in https://github.com/mamedev/mame/pull/15527; but keeps the code and makes it a compile-time choice, for now, while this continuies to be investigated. It also keeps the changes that made DIL and DOL actually 16 bits wide. All based on investigation by @guilioz in https://github.com/mamedev/mame/pull/15527#issuecomment-4711323638 by @guilioz, which appears to show that the hardware ESP does _not_ round towards zero after all (es5510\es5510.cpp) .
. Hitachi H8: Formalize the contracts between H8 family peripherals and the CPU and interrupt controller so H8/500 can share. Fixed incorrect disassembly of SCB, PJSR, PJMP and TRAPA (h8500\h8500dasm.cpp).
. Hitachi SH-2 (SH7604): DIVU OVF/OVFIE are full r/w flags (sh\sh7604.cpp)
. IBM PowerPC: Bug fixes: * SPR[MQ] doesn't exist on non-IBM PowerPC 601, PCI Macs gets confused if it's present on IBM PowerPC 603/604. * TLBL: Compute both user and supervisor permissions. PCI Macs run the 68k emulator in user mode. * IBM PowerPC 603: PCI Macs look for processor version 0x00030001 for IBM PowerPC 603. Arcade games don't care. * IBM PowerPC 603: RFI unconditionally clears MSR[TGPR] on models with the TGPR mechanism. Verified against the IBM PowerPC 603 User's Manual and QEMU. * IBM PowerPC 603: BAT permission violations are supposed to raise DSI, not TLB miss. PCI Macs use this to trap and emulate accesses to NuBus-style I/O addresses (powerpc\ppc.h, ppccom.cpp, ppcdrc.cpp and ppcfe.cpp). Fixed lwarx/stwcx atomic loads/stores. Modernization pass: C comments to C++, some constants converted to constexpr (powerpc\ppc.h).
. IBM PowerPC 601
. Two 601-specific fixes: 601 instruction MMU exceptions were being reported more like data exceptions, which caused the Power Mac 7200 to not import the Open Firmware device tree. The 601 real-time counter was always reading nanoseconds as zero due to unnecessary floating point usage (powerpc\ppccom.cpp and powerpc\ppcdrc.cpp).
. Fixed 601 alignment exception reporting. Allows (MESS) Mac OS to properly emulate unaligned loads/stores (powerpc\ppc.h).
. Intel 8086: Support port I/O wait states via access retry IN, OUT, INS and OUTS (including the 80186/80286 REP forms) now restart the bus cycle when a device signals a wait state through cpu_device::retry_access(), allowing ISA IOCHRDY to be modelled. Register and string-pointer updates are deferred until the access completes, so a stalled cycle has no side effects. No behavior change for devices that never request a retry (i86\i86.cpp).
. MC68307: Comment out line "reset_cb().append(*this, FUNC(m68307_cpu_device::reset_peripherals))" that doesn't work and wasn't tested. Note: All this does is cause an assertion failure on start. You can't configure a devcb after it's resolved. This obviously wasn't tested at all. Using a callback intended for stuff outside the device for things internal to the device isn't a good idea in the first place. This needs to be done properly.
. Motorola MC68000: Update bftst to reluctant reads when fetching data from memory (m68000\m68k_in.lst and m68000\m68kops.cpp)
. NEC uPD7801: Fixed uPD7801 INT0 behavior (upd7810/upd7810.cpp and upd7810\upd7810_opcodes.cpp)
. PowerPC drc: Set function parameter when calling it. Setting the value when generating code won't work. Also, make the most of the smarter, templated UML_CALLC to eliminate many pointer casts (powerpc\ppcdrc.cpp).
. Texas Instruments TMS34010: Attempted to fix setcd for the case with two bits set. It was definitely wrong before - the mask to clear the first bit was calculated incorrectly.
. Zilog Z80: Fixed minor hw discrepancy (z80\z80.lst). Fixed NMI handling (RAMS' frogger works now) (z80\z80n.cpp).
- SOUND
. MIDI: Updated to upstream version 2.0.8 (3rdparty\portmidi). Fixed discarded const qualifier errors (3rdparty\portmidi\pm_win\pmwin.c).
. Sega PCM: Split discrete logic variant and 315-5218 variant. Fixed output rate divider for both variants. Use struct for voice registers. Use address map to replace read/write handlers. Use shared_ptr for register storage (sound\segapcm.cpp).
. Votrax SC-01: Fixed the noise injection filter (sound\votrax.cpp).
- DEVICE
. Cirrus Logic GD5401/GD5428/GD5430/GD5446: Fixed BitBLT transparent colour mask indices & update VRAM dynamic properties. Fixed BitBLT transparent colour mask register mapping. Update VRAM type handling. Fixed the id of GD5446. Update SR6 read handling (video\pc_vga_cirrus.cpp).
. DECO RM-C3 PALETTE: Changed decrmc3 not to avoid ambiguity between clock and entries. Devices must expose a public standard signature constructor. All the verbs like -listxml, -validate, -romident, etc. assume it's available via device type objects, and bad things happen if it isn't (dataeast\decrmc3.cpp).
. DSP563xx HI08 host interface: Forward DSP HTX writes to the host. htx_w only logged the outgoing word; it did not store it in m_htx or update m_isr. Host-side reads of HRX (offsets 5/6/7) therefore always returned zero and the host never saw ISR_RXDF asserted, so any 80C535 firmware polling HSR for a reply from the DSP after the bootstrap upload would spin forever. Store the word the DSP placed on HTX into m_htx, raise ISR_RXDF (which in turn asserts host-side HRDF and clears DSP-side HTDE through hsr_r's view), and let the host's read of the trigger byte at offset 7 clear ISR_RXDF so the DSP can transmit the next word. With this in place virusb boots all the way to its interactive UI: the LCD shows the patch / parameter pages and the panel buttons drive the menu (dsp563xx/hi08.cpp).
. Floppy
. Added missing header (formats\flopimg.h). Drop debug histogram dump that segfaults on small MFI. mfi_format::load() ended with a debug block that dumped a per-track cell-length histogram to stderr, walking a hard-coded 46-track x 2-side grid. get_buffer() only bounds-checks with assert (compiled out in release builds), so on an MFI smaller than 46 tracks or single-sided the loop indexes track_array past its end and segfaults. Removed the debug dump; load() now just returns once the tracks are in (formats\mfi_dsk.cpp).
. Added save support (IMD write for flopconvert). IMD has been read-only in MAME's flopimg pipeline since 2017 - load() parses ImageDisk files, but flux-level images (MFI, captured floppies, running emulation state) cannot round-trip back to IMD. This change implements imd_format::save() so flopconvert and any future driver-side "save as IMD" path work in both directions for standard MFM and FM media. The save side decodes the flopimg flux representation per track, detects MFM vs FM and cell-size by scoring four common (encoding, cell_size) combinations (MFM @ 1000/2000 ns and FM @ 2000/4000 ns covering 250 and 500 kbps in both modes), then emits Dunfield IMD 1.20 records. Per-track detection handles mixed-density disks (e.g. CP/M boot disks with an FM 128-byte boot track on cyl 0 head 0 and MFM data tracks elsewhere) automatically. Use existing ccitt_crc16 function. Removed unused function (formats\imd_dsk.cpp) (GitHub #15385).
. Fixed bad seek rate calculation with 4-phase steps as used with Apple II. Added direction feature to sound sample declarations (imagedev\floppy.cpp).
. Make sure ST0 side bit it set to the last side actually accessed (machine\upd765.cpp). upd765 and derivatives: Fixed default DRQ behavior during write/scan. Standard uPD765-style FDCs should default to generating one DRQ per byte for write/scan commands rather than behaving like they have the 82072-style FIFO (machine\upd765.cpp).
. Hitachi HD44780 LCD Controller: Fixed char size selection in 2-line mode (video\hd44780.cpp)
. IDE Fixed Drive Adapter: Converted to remap FN (isa\ide.cpp)
. Intel 8259 PIC: Don't clear interrupt requests when ICW1 is rewritten in level active mode and lines are active. Fixes (MESS) wangpc boot (machine\pic8259.cpp) (ID 09478).
. MOS 6522 VIA: Issue shift-out completion IRQ immediately when externally clocked. Matches the shift-in behavior and fixes unfavorable timing margins on PCI PowerMacs (machine\6522via.cpp).
. NB1413 Mahjong Custom: Fixed passing NB1413M3 variant as clock. This is the kind of regression that could have lurked for months and been a nightmare to track down. This is why you need to actually check your changes before committing.
. S3 86C325/86C375/86C988 VGA core and SiS 6326 AGP/PCI card: Added PDxn ROP (pci\sis6326.cpp)
. SCSI Hard Disk: Move the opt-in seek-timing model into nscsi_harddisk_device. The cylinder-aware seek-timing model added to the Xebec S1410 and proposed for the DTC-510 was identical between the two controllers. Hoist it into their common base, nscsi_harddisk_device, so it is written once and is available to any hard-disk controller built on it without subclassing. set_seek_timing(), the model state, the fitted-exponent math (seek_time()) and a generic scsi_data_command_delay() now live in the base, which applies the model to the SCSI READ/WRITE/SEEK opcodes in both their 6-byte and 10-byte forms. The base default remains attotime::zero unless a driver calls set_seek_timing(), so every existing nscsi_harddisk user is unchanged. The legacy flat 85 ms per-command delay deliberately stays in s1410 and dtc510 -- it is a per-controller quirk, not a property of all hard disks -- so those two controllers are byte-for-byte unchanged with no model set, and delegate to the base only on the model branch (nscsi\hd.cpp, nscsi\dtc510.cpp and nscsi\s1410.cpp).
. SCSI HLE
. Deassert REQ between phases; hold BSY in COMMAND. scsi_change_phase() now deasserts REQ on entry, so the initiator sees a clean REQ low->high edge with the new phase's C/D-I/O lines settled. Previously the per-byte REQ-deassert timer was cancelled by the next phase's re-assert, leaving REQ continuously high across e.g. COMMAND->DATA-IN, so an initiator that samples the control lines on the REQ edge read the stale previous-phase C/D/I/O. A selected target also asserts BSY on entry to COMMAND, so a fast SEL deassert racing the sel_timer cannot leave BSY low during the connection (scsi\scsihle.cpp).
. Allow targets to defer phase transitions. An nscsi_full_device target previously had to queue its entire phase sequence (data, status, message) before returning from scsi_command(), so a command involving slow media work had to complete synchronously. Make TARGET_NEXT_CONTROL hold the connection in the current state when the control queue is empty instead of popping an invalid entry, and resume stepping when scsi_data_in()/scsi_data_out()/scsi_status_complete() push new entries. A target can now return from scsi_command() with nothing queued, run the medium operation off a timer, and queue the data/status phases when it finishes. Targets that queue everything up front never reach the new path; no behavior change for existing devices (machine\nscsi_hle.cpp).
. Slot device: Removed default zero clock for some slots that provide an input clock to cards where it's common to use the input clock to drive devices on the card. It should be possible to use DERIVED_CLOCK in these cards. A default zero clock will just encourage people to be lazy and not set the bus clock. Set the bus clocks for a few systems and added FIXME comments for others.
. Z80 SIO: Fixed Rx interrupt logic (machine\z80sio.cpp)
- 1942.cpp and vulgus.cpp: Added 2nd soundlatch. Spriteram is write-only. Added 16x256 sprite size. Improved bg scroll and sound for clone 1942 (bootleg on Vulgus hardware).
- adp.cpp: Changed ROM extensions for all games to match their PCB footprint position names.
- chihiro.cpp: Removed outdated workaround for missing library function (shared\xbox_nv2a.cpp)
- chihiro.cpp, naomi.cpp and triforce.cpp: More idiomatic configuration, avoids unnecessary members (according to valgrind). Don't configure child device before it's instantiated (sega\naomigd.cpp)
- circus.cpp
. Update screen per scanline for more accurate collision detection. Added sprite wraparound. Small correction to border lines.
. Added border to Rip Cord and workaround for initial ram contents issues.
- Cv1k.cpp: Added support for cache invalidation and entry writeback (sh\sh7709s.cpp). Map the cache address array to handle cache line flushing as well as writes to CCR that cause a cache invalidatation. Fixes the SDRAM region check as only area 3 is mapped to SDRAM on cv1k. Added basic uncached access handling as the instructions that execute to invalidate/flush cache lines have to be from an uncached region. Uncached access enablement and code cleanup. Enable uncached accesses and fixup missing case for uncached penalty. Added notes about cv1k slowdown. Address some review comments, moved register timing functions to member functions and moved some #define's to private static constexpr instead. Added some TODO's that need to be fixed and some timings that need verification (sh\sh7709s.cpp).
- dangbar.cpp: Split dangbar to own state and hookup Z80 LED CPU in there.
- igs009.cpp and spoker.cpp
. Minor optimizations and cleanup: Restrict drawing to cliping rectangle. Suppress side effects for debugger reads, fixed some save state issues and improved logging. Reduced duplicated code and made some variables const.
. Fixed igs009.cpp DIP switch input matrix. Note that jbell uses alternative hardware to other versions in description (different driver file).
- jankmg2.cpp: Added CTC and sound and output stubs
- namcos22.cpp: Revert "OR texture color with high bits of cz_adjust (namco\namcos22_v.cpp)" from MAME 0.288, fixes when the finish line track is visible from afar in Alpine Racer and clones, it initially appears as completely red polygons (ID 09466).
- nemesis.cpp
. Added bs_ prefix to bubsys games. Group bubsys mcfg with the other mcfgs.
. Cleaned up machine configuration and improved address maps. Hooked up add-on board for bs_rf2. Correct address mapping: In Bubble system and its ROM based conversion hardwares, RAM mapped to 0x70000-0x73fff is optional (via add-on board), and used and needed in gradius only. GX561 board has no RAM at '0x060000-0x067fff' and (bs_)rf2 doesn't used that area. Promoted bs_rf2 to working with unemulated protection. Made ROM region sizes match mapped sizes. Improved logging, reduced duplication and made some variables const. Added part numbers for add-on boards. Add-on board reference to Gradius (https://aucview.aucfan.com/yahoo/f242702941/) and rf2 (https://auctions.yahoo.co.jp/jp/auction/r1125298651).
- pgm2.cpp: Added some notes and correct a couple of decryption keys (igs\igs036crypt.cpp)
- popobear.cpp
. Added IRQ enable. Fixes problem with magkengo RAM test on boot.
. Ported over pixmap emulation from other bmc drivers. Used for test menus and other diagnostic messages. Added DIP banking. Improved inputs for qiwang and magkengo. Added qiwang input names from test mode in comments.
. Tried to abstract tile emulation so it isn't completely hardcoded to what popobear does (still incomplete for tiles, still needs doing for sprites).
. Separated memory map for magkengo and clone and reversed protection, they now boot. Improved sprite rendering.
- punchout.cpp: Merged driver into single file
- stella8085.cpp: Fixed 4040 board IO (#15382). Added 4040 board IO map. Replaced DIY IO70 with proper 8255 PPI. Replaced device tags. Removed io73.
- stv.cpp: Extend mirror ranges of registers (sega\saturn_cd_hle.cpp). Added some notes (sega\smpc.cpp).
- subsino_kr_h8.cpp: Hookup RAMDAC and placeholder SG001 devices. Flesh out I/O ports a little and hook up DS2430A.
- zaccaria.cpp: Added bruteforced PLDs to Money Money (set 3). Added placeholders for PLDs and 82s100 PROMs on every set (same PCB for both games). Load from 0x0000. Fixed note about PLD at 1a on ROM board.
- AGEMAME
. Updated reel outputs in layouts (jpm\jpmsru.cpp).
. Bulk updated remaining slot machine layouts that use yscroll for reel scroll (barcrest\mpu1.cpp).
. Removed some unnecessarily added os from some layouts. Only the output names changed, the element names don't need to change (aces1.cpp, bfm_sc1.cpp, bfm_sc2.cpp, jpmimpctsw.cpp, jpmmps.cpp, jpms80.cpp, jpmsys5sw.cpp, maygay1bsw.cpp, mpu3.cpp, mpu4empire.cpp, mpu4mod2sw.cpp, mpu4mod4oki.cpp, mpu4mod4yam.cpp, mpu4unsorted.cpp and mpu5sw.cpp).
. Made reel tags match layouts (aces1.cpp, bfm_sc1.cpp, bfm_sc2.cpp, bfm_sc4.h, bfmsys85.cpp, ecoinf2.cpp, ecoinf3.cpp, ecoinfr.cpp, jpmimpct.h, jpmsru.cpp, jpmsys5.h, mpu1.cpp, mpu3.cpp, mpu4.h)
. Use same default local output name as machine\steppers.cpp (machine\em_reel.cpp). Also removed many superfluous os from layouts.
. Replaced most of the remaining deprecated reel components in slot machine layouts.
. Replaced more deprecated reel components in layouts. With the exception of m4gambal.lay, these were all impossible configurations, with more symbols visible than there are on a reel. I put in arbitrary numbers of symbols so they show something, but they're definitely wrong.
. Manually patched up bad geometry and alignment in layout\j6bnkrcl.lay
- Captain Zodiac: Base video and inputs
- Cosmo Gang: Don't require -mouse to work in click-to-play mode, also allows playing on a touch screen (makes the game too easy).
- Da Bai Sha (H.B.): Got game to almost working. TODO: Some GFX glitches when entering test mode. IRQs could probably be improved. Hopper. DSW definitions incomplete.
- Destiny - The Fortuneteller: Minor cleanups
- Flicker (prototype): Outputs still need to be resolved manually
- Hana Ren-Chan (Japan, bootleg): Some work on the game
- International Superstar Soccer Deluxe (SNES bootleg): Added DIPs and protection simulation. Promoted game to working.
- Joker Master 2000 Special Edition: Decrypted clone The New 1997 Joker Master (V1C). Needs own portmap.
- Kart Duel: Added MACHINE_NODEVICE_LAN flag. Note: Kart Duel has unemulated link support.
- La Cucaracha: Added GFX bank. Added base inputs and DIPs. Replaced video emulation with artwork based LED matrix. Added scrollx and scrolly. Fixed SFX playback at game start (missing OKI mirror). Game engine timer IRQ is more around 100 Hz, for lip sync at game start. LED colors closer approximation (layout\cucaracha.lay).
- Multi GAME XL: Hookup basic video and hookup palette bank. Fixed gfx_layout. Added NVRAM and attribute RAM view selects. Hookup most inputs.
- PinMAME: Added override qualifiers to micropin.cpp and removed declaration of non-existent method. Added note about original PROM-based code arrangement to pinball\s3.cpp.
- Pop'n Run - The Videogame: Removed "Yukai Tsukai" from companystring (ID 09463) and useless quantum (besides, with the scanline timer it's already more than 60hz).
- Puzznic: Added PAL rom c20-05.ic3 (Confirmed/Matches Japan Set) to Puzznic (World) and clone (US)
- Rally-X: Replaced BANG sample with netlist. Removed the sample from rallyx and replace it with a netlist. The circuit was traced from the service manual directly, and only one component had to be added: MB3730_SIL. For this opamp, I tried to match as best as possible the datasheet. Output audio is very similar to the sample, but not equal, the sample may have some filtering due to the acoustics of the cabinet. Reduced noise and use unified amplification. Changed the MB3730 model to expose a parameter GAIN, whose default is the datasheet typical value. On rallyx, decrease the gain of the BANG source to reduce the noise floor, and inject the WSG audio using R28/C28, as in the original circuit.
- Robotron: 2084: Added prototype/location test version (Release 3), seen in the Robotron promo videotape that was recovered from a Vid Kidz development system. In 2026, early prototype builds of Robotron were found in a 2004 backup made by Duncan Brown. The backup was from the Vid Kidz GIMIX 6809 development system used to create Robotron and Blaster. It was discovered that there were six "release" versions of the game and that Releases 4, 5, and 6 correspond with Yellow label, Blue label and the '87 patch by Christian Gingras respectively. Releases 1, 2, and 3 are early builds of Robotron used during field tests. Release 3 is notable as it replaces the skull and crossbones graphic with an 'X' crossing out a generic human. This censored image can be seen in a promo videotape (also preserved by Duncan): https://youtu.be/j0tqQryAmN0?t=209. At the 2016 CAX show, Larry DeMar talked about Release 3 and revealed that Williams wanted to replace the art asset because they thought the violent imagery would negatively affect sales. Right before Robotron entered production, Eugene Jarvis convinced Williams president Mike Stroll to revert back to the original skull graphic.
- Ruleta Magica: Make it execute some code. Hook up UART. Basic video hookup. Map I2C EEPROM and Timekeeper.
- Trivial Pursuit (Volumen IV, Spanish, Maibesa hardware): Added bruteforced PLDs
- VS Block Breaker: Hitachi SH-2 (SH7604) DIVU OVF/OVFIE are full r/w flags (sh\sh7604.cpp). Fixes VS Block Breaker and clones eventually freezes after clearing a stage in the final 10 seconds (ID 09485).
- Description changes of 1942 (bootleg on Vulgus hardware), Ace Driver (World, AD2), Action (F2), Bao Qing Tian (TIC), Da Bai Sha Huobao Ban / Redaiyu Huobao Ban (ver 0.1), Destiny: The Fortuneteller (USA), Final Lap 2 (World, Rev B), Final Lap 3 (World), Futari Mahjong Ron II (set 1), Granada (F1), Hana Awase 6 (Japan), Hana Ren-Chan (Japan, bootleg), Jingle Bell (v200US, alternative hardware), Komet (F1), Konami RF2: Red Fighter, Konami RF2: Red Fighter (Bubble System), Mahjong Angel Kiss (ver 1.0, 92047-01 version), Mahjong Diplomat (Japan, V2), Money (F1), The New 1997 Joker Master (V1C), Pop'n Run: The Video Game (set 1), Multi GAME XL (V.11.35 A), Play Girls 2 (Japan), Pop'n Run: The Video Game (set 2), Qi Wang (ver. C1.3), Robotron: 2084 (1987 'shot-in-the-corner' bug fix), Robotron: 2084 (Release 3, prototype), Robotron: 2084 (Release 4, yellow/orange label), Robotron: 2084 (Release 5, solid blue label), San Francisco Rush 2049 (Version 1.04, EPROM 1.02 Jul 9 1999, GUTS 1.03 Sep 3 1999, GAME Sep 8 1999), San Francisco Rush 2049: Special Edition (Version 1.00, GUTS 1.61 Sep 16 2003, GAME Sep 16 2003), San Francisco Rush 2049: Tournament Edition (VERS 0.34 Sep 26 2000, EPROM 0.56 Apr 17 2000), San Francisco Rush 2049: Tournament Edition Unlocked (VERS 0.31 Sep 26 2000, EPROM 0.56 Apr 17 2000) and Turbo Sunny (F1)
- Fixed rom names in adp.cpp, namcos2.cpp and stellafr.cpp and zaccaria.cpp
- Renamed (action) to (actionf2), (gradiusb) to (bs_gradius), (grnada) to (grnadaf1), (gwarriorb) to (bs_gwarrior), (hanaren2) to (hanaren), (jackie) to (jackiea), (plgirls2) to (plgirls2j), (rf2b) to (bs_rf2), (turbosun) to (trbsunf1), (twinbeeb) to (bs_twinbee) and (unkalba) to (hana6)
- Dipswitch fixes in cpzodiac.cpp, cucaracha.cpp, extrema_m27sv.cpp and snesb.cpp
- MAME
. VIDEO RENDERING SYSTEM
. Fixed drawing at the wrong resolution in the first window after resizing a window other than the first one. Also improved behaviour if the first window is resized while recording to AVI and got rid of some unnecessary file statics (render\drawbgfx.cpp).
. Removed reel component. It's produced a warning for over four years, it's no longer used in internal artwork, and it never even really worked (emu\rendlay.cpp).
. MEMORY SYSTEM: Gets rid of a layer of templating in emu\emumem_hedp.cpp and makes a few other things easier to read.
. DEVICES
. Added first-class concepts for a couple of things (emu\device.h)
. Made object finders and similar things explicitly non-copyable. Copying them never behaved intuitively (emu\devfind.h).
. There are a lot of clock information in device instanciation that gets a 0 because the information is not available or it just doesn't make sense. Allow them to be removed and push that to the constructors.
. There are a number of cases where a weird interaction between DEFINE_DEVICE_TYPE_PRIVATE and pure methods make it impossible, see DL1416T for instance.
. Removed default zero clock for devices that actually need the clock frequency. If you're disabling a device by setting the clock to zero, or setting it to zero with the intention of changing it later, you should be explicit about that.
. Disable lost value logging by default, don't call it a warning (machine\gen_latch.cpp)
. INPUT/OUTPUT
. Allow initialising output finders with arrays of matching dimensions. Also got rid of all but one of thee uses of get_value/set_value in emulation code and marked them deprecated. Fixed dangling reference (emu\output.h).
. Updated API: Added a lightweight output proxy class for interacting with outputs from outside a device context. If an output doesn't exist, it stores a local value. Note that this means layouts cannot create outputs, e.g. to communicate between views. Outputs are only created by output finders when resolving objects. Made output finders participate in object resolution in the device lifecycle. They no longer need to be manually resolved. Conversely, you can't avoid creating outputs by not explicitly resolving them. Added some validation rules for output names. Got rid of the deprecated get_value/set_value. The Lua versions will stick around a bit longer to give people time to migrate. Some other internal API changes in preparation for per-device outputs. Shuffled the code for the output proxy move assignment operator to handle self-assignment properly (emu\output.cpp). Hopefully fix building with GNU libstdc++. Apparently GNU libstdc++ wants the opposite parameter order (emu\output.h).
. Made outputs name scope local to devices. This allows multiple devices in the system to have outputs with the same names, paving the way for stuff like floppy drives exposing head position and motor state as outputs without needing to worry about coming up with unique names. For now, SVG items still use unqualified names, and layouts instantiated by the root device can use unqualified names (interface\output.h).
. Reduced coupling and improved encapsulation. Removed input.h from emu.h - emulation code shouldn't be using it for anything besides debugging features, and even then it's not great as it's opaque and it's quite disconcerting, especially when the debugging keys conflict with default input assignments. Removed debug keys for a few systems/devices where it's a leftover for something that's fairly well understood (emu\input.cpp, emu\inputdev.cpp and emu\uiinput.cpp).
. Updated output finder documentation (techspecs\object_finders.rst)
. Network: Re-wrote to fix the worst of the implementation bugs. * Note that this doesn't change the protocol, it's still fundamentally unsuitable for things with large numbers of frequently updated outputs. It should work OK for a system with cabinet lamps now, but e.g. something with a bitmapped display won't work so well. * Allow clients to remain connected across multiple sessions if the user hard resets, launches another system from the system selection menu, etc. * Allow connections over IPv6. * Don't unsafely access the running_machine from worker threads. * Ensure buffers remain valid until asynchronous writes complete. * Only keep a single write per socket outstanding, batch up messages that arrive in quick succession into single writes. * Fixed obviously broken parsing of incoming commands, use of unsafe strtok, and assumption that one read completion will correspond to one command (commands must be terminated with CR or LF). * Shut down in an orderly fashion and wait for I/O to complete. * Made object lifecycles clearer, avoid accessing mutable state from multiple threads as much as possible, protect remaining shared mutable state with mutexes. * Added some error logging [Vas Crabb].
. ROMLOAD: Fixed passing open mode as CRC to emu_file::open, be more explicit about where reference wrappers are created (according to valgrind). Hopefully avoid potential crash loading delta CHDs. Should address GitHub #15535. Unfortunatly this bloats the code a bit with template instantiations, but I can't think of a cleaner way right now (emu\romload.cpp).
. LUA engine: Added Lua bindings for new public output API and added deprecation warnings to the wrappers that emulate the old API. Also updated the two affected internal layouts to use the new API. Removed some leftover crud (mame\luaengine.cpp).
. 3rdparty: Updated to upstream version 3.1.2. There are supposed to be empty directories at zlib/test/find_package_no_components_test and zlib/test/find_package_wrong_components_test but git doesn't have a way to represent that. Hard-code macros set by configuration script (3rdparty\zlib).
. Split midway project into bally and williams according to brand owner. Videa/Sente stuff from the brief period before it was acquired by Bally is still in the bally project.
. Fixed regression with opening sockets (emu\image.cpp)
. Merged NeoGeo project with SNK project
. Fixed test for empty output test. Fixes "output" cheat code draws text on the screen. But this function doesn't work in 0.288. This happens in built-in cheat with 0.288, no problem 0.287 or plug-in cheat (mame\cheat.cpp) (ID 09467).
- SDLMAME
. Disable command line string escaping - fixes incorrect paarsing SDL_INI_PATH directive and build faild (GitHub #13150) (genie\src\actions\make\_make.lua, genie\src\host\scripts.c, osd\sdl3_cfg.lua and osd\sdl_cfg.lua)
. Generally better handling of resizing windows and generating text input events for special keys (osd\sdl and osd\sdl3)
- Compiling
. Marked several device_t overrides as final. There's too much opportunity for confusion if these are overridden further down the tree (emu\driver.h; dooyong.cpp, trackfld.cpp...).
. Retired operations that are in C++20 (osd\eminline.h)
. Updated the rarely-used ci.flt
. Converted several things from std::enable_if to requires clauses. Replaced most uses of enable_if with requires clauses. This uses requires clauses to replace enable_if in almost all cases where it was just used to exclude functions from overload resolution. This makes the code more readable. enable_if is still used for partial specialisation. Replaced remaining uses of std::enable_if and void_t with C++20 constraints and concepts. This makes some lines considerably shorter, to the point that some of them may even fit on your screen (emu, util). Brought back an enable_if as GCC doesn't seem to be able to deal with the alternative (util\dynamicclass.h).
. Un-templated a number of functions. Several of these could have been un-templated when we adopted C++17 (due to if constexpr) but it wasn't done at the time. Also completely dropped C++17 support since requires clauses are a C++20 feature. Fixed formatting bool values with numeric conversions (util\strformat.h).
. Use C++20 mathematical constants rather than M_PI and similar macros
. Core header streamlining: Retired the util::endianness enum class in favor of the std::endian type introduced in C++20. Stripped save privileges from endianness_t (now an alias for std::endian), since its specific values may be nonstandard. This type is mostly used for configuration parameters anyway. Removed the endianness and floating point utilities from emucore.h. C++20 versions of the latter now reside in their own utility header (corefloat.h).
. Added #include for future-proofing (src\emu\*). Removed some empty device/machine_start (misc).
. Put requires clauses on template parameter lists (util\delegate.h)
. Removed default argument values from protected constructors. It's error-prone and leads to bugs. It also wasn't thought through very well. For example if a device actually tried to construct the base class in pc\pc_t1t.cpp with the default values that were added, it wouldn't do anything useful, it would just crash.
. Improved compiling environment documentation. Link back to tutorial for Windows set up on main web site, better MSYS2 debugger recommendations, updated macOS/Xcode requirement for out-of-the-box building (docs\source\initialsetup\compilingmame.rst).
. Header management: Removed inclusion of coretmpl.h from opresolv.h. Added #include to source files that were using its functions, mostly for the sake of future-proofing (src\lib and src\tools).
- Debugger
. Added another example of how to use the 'ep' command (debugger\exceptionpoint.rst)
. A couple of quality-of-life improvements: Memory and disassembler views inherit source/expression when opened from the same kind of view. Device windows show more information about address spaces and allow double-clicking to open a memory view. Properly treat names as UTF-8 in a couple of places (debugger\qt\*).
. Play nicely with multiple monitors with different scaling. This fixes all the major/obvious stuff. There are some things that are hard-coded in the Windows debugger (e.g. EDGE_WIDTH and adding constant 4 pixels to the font height for the edit box/combo box height). Right now, the Windows debugger takes the suggested pixel size when moving a window to a monitor with different scaling. It may be better to adjust the size to keep the same character dimensions for the debugger views (osd\windows, debugger\win).




"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."









Entire thread
Subject Posted by Posted on
* MAMEinfo 0.289GIT (19th Jun) MASH 06/19/26 05:57 PM

Extra information Permissions
Moderator:  John IV, Robbbert, Tafoid 
2 registered and 71 anonymous users are browsing this forum.
You cannot start new topics
You cannot reply to topics
HTML is enabled
UBBCode is enabled
Thread views: 29