MAMEINFO.DAT
* Updated to MAME 0.286GIT - http://git.redump.net/mame/log/
* Added Source/Listinfo changes
* Newest Bugs (12th Feb)
* Added/Reorganized 'Recommended Games'
* Fixed Mameinfo.dat infos
Download at: https://mashinfo.github.io/mameinfo/
MAME Testers at: https://mametesters.org/view_all_set.ph ... ESC&type=2
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.286GIT
- New Working games: Cherry Bonus III (ver.2.20), Cherry Bonus III (ver.3.0) and Striker
- New Non-Working games: Dart Star (Rev 3.25), Doki Doki! Flower (DFL1, Ver. A), Panda 2, Pitching Try (v1.3CJ), Polar Star (Ver 3,2B, Fantasy Island), Sea Wolf - Next Mission, Silver Rush (ver. 23.08.25), Siren Kids and Spanish Darts
- New clones: Back Fire (Tecmo), Beastie Feastie (Pac-Man conversion, set 2), Big Twin (no girls conversion, set 2), Chaoji Dou Dizhu Jiaqiang Ban (S206CN), Dragon Punch (Japan, ver. 1.30), Dragon Punch (Japan, ver. 1.30, bootleg), Hot Mind (Hard Times hardware, set 2), MX5000 (version U), New Lucky 8 Lines (set 21, encrypted bootleg), Polar Star (Ver 3,2B, MooRry Fantasy), 'Tarzan Chuang Tian Guan 2 Jiaqiang Ban (V306CN, alternate GFX)', Touryuumon (V1.1, Apr 14 2005), Vs. Hogan's Alley (Italian bootleg) and WGP 2: Real Race Feeling (World)
- New drivers: mdartstr.cpp, namcos6.cpp, pitchtry.cpp and seawolfnm.cpp
- New devices: adsp21060, cem3320_lpf4, clgd5401, dspp_bulldog, f65535_isa16, f65535_vga, f82c836a, gd5401, isa16_medalist_rom_disk, um8498f, va_lpf4, z8691 and z86c91
- CPU
. Analog Devices ADSP21062 'Sharc'
. Include emu.h. Implemented 16-bit IOP write handling. Added missing DMA members to save states. Implemented bit-accurate RECIPS and RSQRTS in recompiler (fast approximation can be enabled by setting a macro) (sharc\sharc.cpp).
. Fixed/optimised RECIPS flag calculation for interpreter. Fixed FIX for negative numbers when MODE1 TRUNC bit it set for interpreter and recompiler (should round towards negative infinity). Don't regenerate static helpers on cache flush (sharc\sharc.cpp).
. Better align FIX between interpreter and recompiler, pack/unpack recompiler ASTAT for saved states. Cleaned up memory access a bit, use memory_access::specific and added ADSP21060 (larger internal SRAM) (sharc\sharc.cpp).
. Always enable SHARC recompiler in the Konami drivers konami\gticlub.cpp, konami\hornet.cpp and konami\zr107.cpp before start.
. Improved memory access code: Exploit data memory layout to bypass the memory system for both 32-bit and 16-bit SRAM accesses. Exploit the way the SHARC toolchain lays out executable code and data in SRAM to greatly reduce unnecessary cache flushes. Implemented Rn = NOT Rx (used by Sega Model 2B games). Align 32-bit program memory accesses with the most significant bit of the bus (corresponds to interpreter change in MAME 0.278 GitHub #13770) (sharc\sharcdrc.cpp). Better handling of cache reset at end of block (sharc\sharc.cpp).
. Fixed more instructions: Fixed multiply/average and multiply/absolute for interpreter - the ALU operations produce a floating point result. Implemented move from multiplier register, multiply/average, average and FDEP with immediate field specification for recompiler. Use a more accurate approach for the absolute value calculation in multiply/average and average rather than hoping the C library does the right thing for the interpreter and recompiler (sharc\sharc.cpp, sharc\sharcdrc.cpp, sharc\compute.hxx).
. Allow multiple loops to end on the same instruction. This is required by Last Bronx, which has code that de-duplicates the common part of multiple successive loops. It reduces the performance of do-nothing spin loops a bit but not too much - the DRC still has substantially better performance than the interpreter. Unfortunately, this exposes a pre-existing issue with how ASTAT conditions are handled in the SHARC front-end which causes the Midnight Run and Racing Jam DSP programs to crash. Fixing it will require major changes. Use -nodrc for now, I'll probably have to disable to recompiler before the next release until this can be fixed (sharc\sharc.cpp).
. Dynamic Re-Compiling
. Fixes and refinements: Fixed crash when the CPU generates code during device_start and the debugger is enabled (devices\cpu/drc*).
. drccache: Initialised all data members (cpu\drccache.cpp)
. drcbec: Added support for invariant code and code blocks. Removed a bunch of crud that shouldn't be there. Restore floating point rounding mode if an exception is thrown, use C99 nearbyint/nearbyintf (cpu\drcbec.cpp)
. drcbex86, drcbex64 and drcbearm64
. Added support for invariant code blocks and made helper code invariant (cpu\drcbex86.cpp, cpu\drcbex64.cpp and cpu\drcbearm64.cpp).
. Call (rather than jumping to) the entry point handle. The UML HANDLE instruction points to a minimal function prologue, which expects the conditions immediately following a call. However, the back-ends were jumping to it directly after setting up the top-level stack frame. On x86-64 and i686, this resulted in the stack being misaligned until a HASHJMP or EXIT instruction was executed. Anything that could result in a C function being called (CALLC, DEBUG, BREAK, READ, READM, WRITE, WRITEM, FREAD, FWRITE) could crash due to stack misalignment, and RET would crash due to the return address not being in the expected location. On AArch64, the stack would not be misaligned, and calls to C functions would work correctly, but RET would result in exiting from generated code without restoring callee-preserved registers. The C back-end just hits an assertion failure if the entry point code executes a RET (cpu\drcbex86.cpp, cpu\drcbex64.cpp and cpu\drcbearm64.cpp).
. Restore floating point environment when calling out to C code (cpu\drcbec.cpp, cpu\drcbex86.cpp, cpu\drcbex64.cpp and cpu\drcbearm64.cpp).
. drcbeut: Added support for invariant code and simplified DRC label list class (only used by C back-end) (cpu\drcbeut.cpp)
. drcuml: Added support for invariant code blocks. Include device tags in UML/native generated code log file names (kind of important when a system has two of the same kind of CPU) (cpu\drcuml.cpp).
. hyperstone E1-xx and PowerPC DRC: Made static helper code invariant (e132xs\e132xsdrc.cpp, powerpc\ppcdrc.cpp)
. MIPS-III: Added missing header that was being #included indirectly (mips\mips3com.cpp)
. Motorola MC68LC040: Fixed the 68LC040 so it actually has 68040 opcodes (m68000\m68kcpu.h)
. Texas Instruments TMS34010: Fixed 32-bit pixel writes (tms34010\tms34010.cpp)
. Zilog Z80: Renamed BUSRQ to BUSREQ and MEMRQ to MREQ (z80\z80.cpp). Refactored INT/IRQ (z80\z80n.cpp) and implemented configurable DMA halt (delay) for (MESS) specnext.cpp.
. Zilog Z86xx: Added Z8691 and Z86C91 ROMless types (z8\z8.cpp)
- SOUND
. OKI MSM5205 ADPCM: S1/S2 pins were the wrong way around. Small cleanup. Make playmode_w param an u8 instead of int (sound\msm5205.cpp)
. Sound Interface: Alternate method for checking if machine is not yet running (emu\sound.cpp)
- DEVICE
. Floppy: Added save state support (machine\upd765.cpp)
. Intel 82371EB PIIX4E PCI to ISA/EIO southbridge: Preliminary integration of RTC (machine\i82371eb_isa.cpp)
. RAM: Shorter savestate name for things that do save_pointer(NAME(reinterpret_cast...) (machine\ram.cpp)
. Sega 315-5195 Memory Mapper: Update_mapping after loadstate (sega\315_5195.h)
. VGA
. Get rid of macros, optimize char selection base in text mode and optimize pixel fetches in SVGA modes (video\pc_vga.cpp).
. Fixed start address and bank select. Moved EEPROM hookup to ISA cards (video\pc_vga_ati.cpp). Attempt to improve SVGA modes (video\ati_mach32.cpp).
- 1943.cpp: Improved interrupt timing
- 3do.cpp
. Hookup basic semantics for CD-ROM DMA transfers (misc\3do.cpp)
. Hookup status bit for xbus (greatly reduce boot times). Added enum for irqs and use template for request_fiq (misc\3do_clio.cpp).
. Added unpacked & coded 4bpp and 8bpp support and basic PAL support. Added enum for DMA channels. Implemented get_pixel_6bpp_coded_lrform0 (misc\3do_madam.cpp)
. Added enough commands so it reaches cmd_read when disk is in. Better logging around ToC. Added command byte acks to some commands (machine\cr560b.cpp).
. Preliminary split between regular (Clio) DSPP and M2 Bulldog (dspp\dspp.cpp)
- alpha68k.cpp: Renamed Alpha68K II/III/V hardware (shared\snk68_spr.cpp to alpha68k_spr.cpp) and cleaned up systems using it. Implemented device_gfx_interface and device_video_interface. Reduced hard-coded tags and use clock frequency input. Moved color code masking to callback. Use fixed size integers in save states and suppress side effects for debugger reads. Reduced duplicated code and literal tag use. Use abbreviated integer type names.
- armedf.cpp: Make spriteram size same for all games
- balsente.cpp
. Fixed sound cutting off at low levels. Reduced duplication in volume calculation. Made it possible to set modulation to 0% (sound\cem3394.cpp).
. Using the new filter implementation in sound\va_vcf.cpp. Removed artificial pulse width limiting (sound\cem3394.cpp).
- cave.cpp and mcatadv.cpp: Correct tile RAM format comment. Low byte in First word of tile RAM is used for hi bits of tile code: 8x8 only? (video\tmap038.cpp).
- cps1.cpp: Changed comments to C++ style (capcom\cps1_v.cpp). Correct gfxdecode palette range. Small cleanup (capcom\cps1.cpp).
- cps2.cpp: CPS2 bgpen is 0xbff just like CPS1 (capcom\cps1_v.cpp). Small cleanup.
- cps3.cpp: Small cleanup
- docastle.cpp: Normalize blue color channel
- exedexes.cpp and gunsmoke.cpp: Added manual sprite DMA trigger
- goldstar.cpp
. Fixed nullptr crash in Bingo (set 1) and clone (set 2) (mark *all* tilemaps dirty) (ID 09378).
. Fixed memory map. Added technical notes to clone Cherry Bonus III (ver.2.20). Promoted clones Cherry Bonus III (ver.2.20) and Cherry Bonus III (ver.3.0) to working.
- gomoku.cpp and wiping.cpp: Removed unused variables
- lwings.cpp: Improved interrupt timing. Added screen raw params, manual sprite DMA trigger and paletteram is write-only. Moved video hardware section to the top of the driver. Make spriteram size same for all games. Added sprite dma delay. Small cleanup.
- matmania.cpp: Added xtal and improved some clocks (ID 09387).
- mitchell.cpp: Added note about sprite DMA trigger
- model2.cpp
. Got rid of now-obsolete SHARC 16-bit IOP workaround. Use render_polygon() rather than splitting polygons into triangles. Fixes/Reduces texture warping in hotd, overrev and waverunr (sega\model2_v.cpp). Also moved polylist dump code to sega\model2_m.cpp.
. Enabled SHARC recompiler for Model 2B (can be disabled again before release if too many things are broken) (sega\model2.cpp)
- namcos23.cpp
. Removed presently-unused m_odd_frame member. Added texture flip/swap bits. Removed stub handlers that were causing graphical issues in some games.
. Fixes Fake enough comms to make 'Race On!' boot. Added texture flip/swap bits. Namco banners in Race On! and other places. Update DIPs for Race On! to deactivate wheel test.
. Fixed handle controls in Final Furlong 2 and clone
- niyanpai.cpp: Cleaned up code a bit. Filled in DIP switch settings for 'Mahjong Housoukyoku Honbanchuu' from manual. Correct transliteration of Nyanpai.
- segahang.cpp, segaorun.cpp and segas16a.cpp: Moved driver_device overrides to protected
- segas24.cpp: Put layer sort in a lambda. Changed a fixed size vector to array. Moved video hw section to top of file.
- segaybd.cpp: Cleaned up.
- sidearms.cpp
. Correct Z80 clock (Guru README and now Jim Westfall). Removed old changelog and moved Guru README to driver notes. Improved interrupt timing.
. OBJON and BGON enables were the wrong way around, watchdog is actually sprite DMA, vblank bit was on the wrong port and paletteram is writeonly (capcom\sidearms_v.cpp).
- stv.cpp
. Formatting cleanup (sega\saturn_v.cpp). Fixed directory parsing on cross sector boundaries. Use busy state around drive status changes. Renamed stvcd to saturn_cd_hle. Removed unnecessary device_memory_interface trampoline. MAX_BLOCKS cleanup. Use emu_timer in place of timer generic. Command 0x51 is confirmed it doesn't generate a DRDY, pause drive when in buffull state (sega\saturn_cd_hle.cpp). Lock out DMA if trying to access VDP1 RAM and other stuff at same time. Fixed (MESS) gunblaze booting (sega\saturn_scu.cpp). Replaced macros in header with inline member functions. Reduced duplicate declarations (sega/stv.h and sega\saturn.h).
. Convert macro flags to enum. Reduced function namings. Handle host RA updates properly. RA is actually its own thing. Fixed LEF behaviour and PC readbacks from host side. All ALU ops but AD2 doesn't update the upper 16-bit part. Tidy some expressions (scudsp\scudsp.cpp).
- taito_f2.cpp: Fixed manufacturer title in cameltry and clone cameltrya (ID 09132)
- taitosj.cpp: Hook up Z80 busreq/busack
- tmnt2.cpp: Don't reuse 'i' variable in tmnt2_prot_w
- tubep.cpp
. Tube Panic: Refresh rate is ~59hz according to PCB video, so assume same screen raw params as Roller Jammer.
. Roller Jammer: Z80 m1+iorq is the int ack cycle. Removed erroneous scanline sound interrupt.
- vicdual.cpp: Small cleanup to spacing. Mux input ports. Fixed dipswitch read in Invinco (ID 09382).
- Bionic Commando: Added presumed sprite DMA trigger
- Cloak & Dagger: Video/Resnet comes from emu, not devices.
- Come On Baby: Manually rebuild HDD dump
- Countertop Champion 2: Hookup MicroTouch. Confirm title in comments.
- F-1 Grand Prix: Redumped clone F-1 Grand Prix (Playmark bootleg)
- Filetto: Extend voice note
- Five a Side Soccer: Increased default trackball sensitivity. It was way too low to use with analog controls before.
- HeliFire: Lower MCU clock. Fixes sound pitch is too high and tempo is too fast (ID 09386).
- Invasion: The Abductors: Fixed gun position not detected on right side of screen, gun triggers were on wrong port (machine gun works now).
- Mahjong Vegas: Correct 'Time Service Frequency' dipswitch typo
- Mario Bros.: Consolidate driver into single file. Updated notes. Coin1/2 were the wrong way around. Added NVRAM. Removed some unneeded variables and clock macros. Removed OLD_SOUND discrete sound emulation and MCU macros (nintendo\mario_a.cpp). Added shared base memorymap. Removed some mario_ function prefixes. Changed clone Masao audio clocks. Correct some romlabels.
- Mega Double Poker: Marked Mega Double Poker and clone not working. Note: They've failed to boot for a while now. Also reduced duplication and literal tags a bit and got rid of a bankdev.
- Moon Raker: Added the starfield rom
- NBA Hangtime: Dumped security PICs
- Pango Fun: Create new UM8498F chipset. Guess shadow RAM location. m_kbrst is high at startup (machine\um8498f.cpp). Get rid of pcat_base_state. Added ISA slots and replace baked in Trident ROM + bare VGA with actual AVGA1 (pc\pangofun.cpp). Added 'Cirrus Logic GD5401 AVGA1' card support (isa\svga_cirrus.cpp).
- PC-Engine (battlera.cpp, ggconnie.cpp, paranoia.cpp, tourvis.cpp and uapce.cpp)
. Make some variables constant. Reduced preprocessor macros. Use abbreviated type names and BIT helpers (Common PC-Engine hardware. See reference at: http://daifukkat.su/pcfx/).
. Added input clock for video hardware (battlera.cpp and ggconnie.cpp)
. Use XTAL for main clock. Reduced duplication. Fixed save state issues and initializers. Added notes for sound routing (ggconnie.cpp, paranoia.cpp, pcecommn.cpp/h. tourvis.cpp and uapce.cpp).
. Improved logging (nec\pce_cd.cpp)
. Hudson HuC6202 VPC: Reduced duplication and use more member arrays (video\huc6202.cpp)
. Hudson HuC6260 VCE: Fixed initializer and save state issues. Made screen update function directly usable with screen device (video\huc6260.cpp).
. Hudson HuC6261 VCE: Fixed initializer, debugging and save state issues. Prepare to hook up HuC6271/2 output. Made screen update function directly usable with screen device (video\huc6261.cpp).
. Hudson HuC6270 VDC: Fixed initializer. Implemented 16-bit host interfaces use with PC-FX. Improved logging and reduced duplication (video\huc6270.cpp).
. Hudson HuC6271 'Rainbow': Fixed initializer (video\huc6271.cpp).
. Hudson HuC6272 'King': Fixed initializer and microprogram writes (16 halfwords). Reduced literal tags and improved logging. Gixed reading KRAM autoincrement value (video\huc6272.cpp).
- PC hardware: Added quick ref for POST codes (pc\README.md)
- PinMAME: Dumped security PICs for Corvette and Phantom Haus
- Play 4 Texas Hold'em: Additional notes. Changed name to be same as manual. Updated year to 2011 based on last patch.
- P's Attack: Hookup EEPROM and CF slot rather than HDD
- R2D Tank: Added note about older version: R2D Tank is a cost-reduced 'sequel' to "Red Tank", Sigma probably contracted Orca to simplify the hardware. The first version (Red Tank) is on 2 PCBs with "FUJIDENSHI" on the EPROM labels. Sigma's "The Goku" is on the same earlier hardware as Red Tank.
- Reality Tennis: Replaced macros with constexpr
- Striker: Fixed address map. Promoted game to working. Note: This PCB features flying wires going between the Z80, the GM76C28A-10 RAM and a GD74HCT138 3 to 8 line decoder/demultiplexer. It reads 2 times the address 0x60f0/60f1 during RAM test at boot (show "RAM NO GOOD" if wrong value), at coin up and at bet.
- Tiger Road: MSM5205 in clone 'Tora e no Michi (Japan)' is hooked up same as Trojan (capcom\lwings.c) (also tried with capcom\sf.c, but got bad sound).
- Tournament Table: Added PLAYER4 analog direction control defaults (emu\inpttype.ipp) (MT09383).
- Vector games: Added LUA bindings for vector-screen interfaces. Added a callback mechanism to expose vector drawing to the LUA interface, allowing external hardware devices to interface with MAME's vector rendering code (video\vector.cpp and mame\luaengine.cpp).
- WGP: Real Race Feeling: Increased 68000 clock
- Description changes of Beastie Feastie (Pac-Man conversion, set 1), Big Twin (no girls conversion, set 1), BnB Arcade (V1.0005 World), Flak Attack (Japan, version P), Flak Attack (Japan, version P, PWB 450593 sub-board), Happy Tour (V1.12), Hot Mind (Hard Times hardware, set 1), Invasion: The Abductors (version 3.0), Invasion: The Abductors (version 4.0), Invasion: The Abductors (version 5.0), MX5000 (version R), Nyanpai (Japan), Slap Fight (Japan, A76 set, GX-006-A PCB) and Slap Fight (Japan, A77 set, 8606M PCB).
- Fixed rom names in ghosteo.cpp and mario.cpp
- Renamed (backfirt) to (backfirtb), (mx5000) to (mx5000r), (wgp2) to (wgp2j) and (touryuu) to (touryuua)
- Dipswitch fixes in 4enraya.cpp, midwunit.cpp, namcos23.cpp, mario.cpp, tecmo.cpp and niyanpai.cpp
- MAME
. VIDEO RENDERING SYSTEM
. Don't use reserved _Names (util\palette.h)
. Added LUA bindings for vector-screen interfaces. Added a callback mechanism to expose vector drawing to the LUA interface, allowing external hardware devices to interface with MAME's vector rendering code (video\vector.cpp and mame\luaengine.cpp).
. ROMLOAD: Replaced various macros with constexprs and inline functions. Mark ROM_OPTIONAL as deprecated (emu\romentry.h and emu\romload.h). Constexpr at namespace scope implies static for variables and inline for functions (emu\romentry.h).
. INPUT
. Don't gate creating input device behind -mouse option, it breaks -mouse_device, -trackball_device, etc (input\input_win32.cpp).
. Removed barely used IPT_TILT1/2/3/4, combine IPT_GAMBLE_DOOR with IPT_INTERLOCK and rename to generic IPT_DOOR (emu\inpttype.ipp). Added some content for Input Macro and Off-screen Reload plugins (docs\source\plugins\inputmacro.rst and offscreenreload.rst).
. Added PLAYER4 analog direction control defaults (emu\inpttype.ipp)
. UI/OSD
. Added nine extended Latin and IPA characters and added CC0-1.0 license comment (uismall.bdf).
. Made hide_romless text clearer (ui\submenu.cpp).
. Limit frame updates on initial gameinfo/warning screens and avoid host CPU/GPU resource spiking (ui\ui.cpp).
. Added throttled frame update to another startup event loop and sleep for 1ms. Only sleep if no frame update (ui\ui.cpp). Added message if menu is empty (ui\confswitch.cpp).
. Only clip the cursor if we haven't already. On Windows, cursor clipping is global and needlessly invoking 'ClipCursor(nullptr)' will interfere with other applications that might also be trying to clip the cursor. With this change, MAME will only invoke 'ClipCursor(nullptr)' if MAME previously clipped the cursor (windows\window.cpp).
. Consolidate drivers into single file (fantland.cpp, kickgoal.cpp, lethalj.cpp, mario.cpp, rltennis.cpp, segahang.cpp, segaorun.cpp, segas16a.cpp, segas24.cpp, segaxbd.cpp, segaybd.cpp, taito_l.cpp, tecmo.cpp and wgp.cpp)
- SDLMAME: Initial support for SDL3. SDL3 is the default for macOS targets. Linux/Windows can build with OSD=sdl3 while we wait for better distro support for SDL3. Both X11 and Wayland sessions are fully supported on Linux. SDL3 -sound=sdl supports both input and output. All other video, sound and input functionality should otherwise be the same for now. SDL 3.4+ multiple keyboard/mouse support is planned. Fixed font lookup (font\font_sdl3.cpp, lib\osdobj_common.cpp). Fixed key up not being sent on some systems (input\input_sdl3.cpp).
- Compiling
. Small comments cleanup to copy-pasted sprite drawing routines. Lots of ATTR_COLD and some code cleanup.
. Fixed last remaining tautological compare warnings for Clang/ARM64 (nscsi\tape.cpp and util\ioprocs.cpp). Promoted tautological comparison warning to an error (scripts\genie.lua)
- Debugger
. Check that you have a memory interface before trying to use it (debugger\win, debugger\osx and debugger\qt) (ID 09377)
. Allow device_state_interface to participate in global symtable state (debug\debugcpu.cpp and debug\express.cpp)
. Bulk replace uint8/16/32_t to u8/16/32 (machine\cs4031.cpp, f82c836.cpp, um8498f.cpp and wd7600.cpp)
. Fixed hang when a watchpoint is hit on a 64-bit wide address space with word addressing (debug\points.cpp)
--