nplayers.ini and Multiplayer.ini multiplayer description files are up-to-date for MAME 0.227.
Please download here: http://nplayers.arcadebelgium.be/
Have an happy new year!!! ;-)
[Posted by: Nomax]
0.228
- New games: Club Card (ver. 1.1 English), Get A Way and Namennayo (Japan)
- New Working games: 'Cat and Mouse (type 01 program)', Forte Card (Ver 103, English) and Roller Coaster (JPM) (IMPACT)
- New Non-Working games: Bingo Circus (terminal), Champion Pool (v1.0), Diamond King, Fatal Fury Special (SNES bootleg), Happy Pierrot, Heroine's Memory, Hungry Hungry Hippos (redemption game), Mini Guay, New! Cherry Plus (Ver. 3.10), Pontoon (Konami), Sonic Blast Man's Janken Battle, Surprise 5 (Ver. 1.19), Tsururin Kun and 'unknown 'Rolla' slot machine'
- New clones: beatstage 4th MIX (ver KA-A), Big Fight - Big Trouble In The Atlantic Ocean (Japan, rev F), Crime Patrol v1.0, Dirt Devils (USA, Revision A), DrumMania 4th Mix (G*A25 VER. KAA), The Hole (bootleg of The Pit), New Draw 8 Lines (Version 2.1), The Porter (bootleg of Port Man), Puchi Carat (Ver 2.04A 1997/11/08), Rabbit (Japan 3/6?), Red Hawk (horizontal, Spain), Sega Bass Fishing Deluxe (USA), Treasure Quest (Protocol) and Zabavni Karti (Bulgarian, encrypted)
- New AGEMAME games: Adults Only (Ukraine, V. 43.17), Black Pearl (Ukraine, V. 42.01), Black Pearl (Ukraine, V. 43.04), Black Pearl (Ukraine, V. 43.07), Blits Loto (Ukraine, V. 30.08), Del's Millions (Bellfruit) (set 11, UK, ??GBP Jackpot) (Scorpion 2/3), Del's Millions (Bellfruit) (set 12, UK, ??GBP Jackpot) (Scorpion 2/3), Donkey Kong (Maygay) v?.? (M1A/B), High Roller (Bellfruit) (Scorpion 4), Grand Canyon (Ukraine, V.42.06), Grand Canyon (Ukraine, V.42.13), Grand Canyon (Ukraine, V.43.05), Lucky Shell (Ukraine, V. 42.10), Maski Show (Ukraina V. 42.05), Maski Show (Ukraina V. 42.11), Maski Show (Ukraina V. 43.07), Safari (Extrema, Ukraina, V. 42.04), Safari (Extrema, Ukraina, V. 42.07), Safari (Extrema, Ukraina, V. 43.08), Strong Link (Ukraine, V. 43.45), The Simpsons (Maygay) (M1A/B) (set 9) and SPRINT (Maygay) (M1A/B) and Treasure Hunt (Extrema, Ukraina, V. 34.02)
- Removed games: 'Arcadia (JPM) (IMPACT) (V10, set 2)' and Reno Reels (JPM)
- New drivers: diamondking.cpp, getaway.cpp, cosmicg.cpp, heromem.cpp, ice_hhhippos.cpp, kpontoon.cpp, miniguay.cpp and sbmjb.cpp
- New devices: bt471, bt475, bt476, bt477, bt478, ds1202, jpmtouch, mfd51w, mfd75w, oa_d34v, psx_analog_joystick, psx_controller_port, psx_dualshock_pad, psx_multitap, psx_standard_controller, psxcard, psxcontrollerports, r65c22, r65nc22, sega8_x_terminator, sys573_jvs_host and w65c22s
- CPU
. ARM: Fixed carry flag in ADC instruction (cpu\arm\arm.cpp)
. ARM7: Added optional logging for Windows CE calls (arm7\arm7.cpp and cecalls.hxx)
. Dynamic Re-Compiling: Allow recompilers to work with W^X policy. Slightly reduce the number of page protection state changes (cpu\drcbex64.cpp/drcbex86.cpp). Added compile-time option to disable recompiler W^X mode. Detect whether RWX pages are supported (cpu\drccache.cpp).
. MCS-48
. Separated F0/F1 from upi41 STS and fixed F0 flag read from upi41_master_r. Small bugfix for DA A (mcs48\mcs48.cpp). Fixed possible problem with A11 and RET during interrupt.
. Fixed (MESS) Odyssey 2 loading games with -cart not working (i8048; mcs48\mcs48.cpp)
. Mitsubishi M37450
. Restored M740 T flag correctly during PLP and RTI. Previous emulation inherited from the 6502 base device caused these instructions to always set T in P and not affect instruction decoding at all (m6502\dm740.lst, m740.h and om740.lst).
. Changed many M740 instruction timings and dummy fetch patterns to match Mitsubishi documentation rather than 6502 behavior. Added overrides to be used for separable data space in future M50734 emulation. Fixed incorrect addition of Y to address of EORT $zp. Eliminated INCT A and DECT A instructions (T=1 has no effect on INC A or DEC A). Added STP and WIT instructions (not distinguished for now). Eliminated generic M740 device type (not used by anything) (m6502\dm740.lst, m740.cpp/h and om740.lst). NMI does not exist. Updated notes.
. Motorola MC68000: Don't clear interrupt input state upon reset (m68000\m68kcpu.cpp)
. NEC V53A: Allow configuration registers to be read back
. Toshiba TMP95C06x: Fixed disassembly of PC-relative addressing (tlcs900\dasm900.cpp)
- SOUND
. Ensoniq 5505/5506 to 5510 interface: Removed unneeded logerror (sound\esqpump.cpp)
. RCA CDP1863: Initialized more member variables
. SSi TSI S14001A: Simplified code, removing the uDeltaAdrP2 switch.
- DEVICE
. 6821 PIA: Added callback to set port B three-state output
. AM9517A: Simplify software request handling
. Atari Slapstic:
. Added missing Slapstic triggers to Vindicators Part II
. Fixed slapstic communication in clone Gauntlet and Peter Pack Rat. Fixes protection issues when finishing a level in gauntlet, gaunt2 and clones (ID 07834).
. Cassette tape image: Added cassette_image::image_read_byte method for reading one byte at a time (formats\cassimg.cpp)
. Dallas DS1202 Serial Timekeeping Chip: Added DS1202 variant
. Floppy
. Actually build the accepted variants list in floppy (imagedev\floppy.cpp). Provide the variants to the floppy formats. Updated floptool to the new prototypes (tools\floptool.cpp).
. If an IMD image is 40 track but the drive is HD, put the data on even tracks like hardware would show. Use has_variant() and accept either HD or QD as 80-track drives (formats\imd_dsk.cpp).
. Fixed precision issue and missing cache clear on write (imagedev\floppy.cpp)
. Changed the extracted bitstreams into vectorand the extracted sectors into vector >
. When the floppy head stays on an unformatted track from more than an hour and ten minutes and reading happens then interval_index*2+1 overflows. Found and tracked down by Colin Howell, with much thanks (imagedev\floppy.cpp). as_ticks returns a u64, so go unsigned all the way (imagedev\floppy.cpp).
. Imagetek I4100/I4220/I4300 VDP: Moved metro.cpp and hyprduel.cpp interrupt control (mostly) down into VDP. Added state of CRTC related value for debug.
. K057714_device GCU: Implemented display resolution register and various fixes to drawing
. MOS 6522 VIA: Distinguish some different VIA types
- astrcorp.cpp
. Derive screen timings from crystals and cleaned up code
. Added vblank and DRY on memory maps. Splitted state machine, fixed video and added default EEPROM. Changed m_draw_sprites -> m_sprite_dma. Confirm sprite drawing being same deal, no need for override.
. Added meat to Stone Age. Moved Stone Age decryption data and RAMDAC declaration in a subclass, make screen always enabled for convenience.
. Added preliminary decryption for Dino Dino, Win Win Bingo and clones. Updated Zulu (Ver. ZO.02.D).
- aristmk5.cpp and ertictac.cpp: Acorn Archimedes code reorganization: Separated Acorn IOC and MEMC into devices. Emulated 8051-based serial keyboard. Ensure only one logical page is mapped to a single physical page (machine\acorn_memc.cpp). Fixed RISC OS POST IOC register test. Added debug code to display RISC OS POST failures (drivers\aa310.cpp). Dumped Acorn Archimedes keyboard microcontroller (machine\archimedes_keyb.cpp).
- atarisy1.cpp
. Correct LSI BIOS 136032.115 regression
. Added 'Flip Screen' configuration to clone Indiana Jones and the Temple of Doom (cocktail)
- blitz68k.cpp: Switched to logmacro
- bzone.cpp: Added save state support (audio\redbaron.cpp)
- champbwl.cpp: Added controls for cocktail mode
- cosmic.cpp: Added raw screen timing parameters based on schematics
- dynax.cpp and hnayayoi.cpp: Added DIP switch locations as shown in service mode for some games. Identified one more dipswitch for Hana Kochou and some DIP switches for clone Hana no Mai (Japan).
- firebeat.cpp: Fixed input range for wheels in Keyboardmania games. Fixed flash clearing for Pop'n Music (machine\intelfsh.cpp).
- hikaru.cpp: Added pinout for AICA jtag connector
- hng64.cpp: Added flat shaded polygons, with no texture or lighting (video\hng64_3d.hxx).
- hyprduel.cpp and metro.cpp: Moved interrupt control (mostly) down into VDP. VDP clock is not so standard on some PCBs (gakusai and gakusai2).
- jpmimpct.cpp and jpmimpctsw.cpp: Various changes. Refactored driver to use emulated DUARTs for both the primary and the touchscreen (fixes video corruption in cluedo intro). Fixed bugs in the non-video hookups, including incorrect shifts on addresses and data. Hooked up BACTA_DATALOGGER so that the 'protocol' sets boot. Hooked up actual Bt477 device for palette in the video-based games. Started giving non-video games usable default inputs (jackpot/stake keys). Fixed some ROM loading. Reparented some sets based on analysis, as some were mishandled due to incorrect source information.
- ksys573.cpp
. Implemented JVS memory card reader device for System 573
. Improved accuracy of System 573's digital I/O audio emulation. Refactored mas3507d and k573dio/fpga to be more accurate to real hardware.
. Updated 3rdparty\minimp3\minimp3 to latest master and removed local changes. Fixed missing song playing during attraction mode while showing Dancemania promos in clone Dance Dance Revolution Solo 2000 (GC905 VER. JAA) (ID 07713).
- ladybug.cpp: Added raw screen parameters
- magicard.cpp: Decapped and dumped PIC16F84 for clone Magic Card Jackpot (4.01) and Magic Lotto Export (5.03)
- metro.cpp: Fixed tilemap offset regression. Fixes bad graphics on screen margins in bangball, msgogo, puzzli and probably others (ID 07845).
- model3.cpp: Corrected game set names & game titles. Added miscellaneous documentation updates/notes.
- mpu4.cpp and nwk-tr.cpp: Use strcmp instead of core_stricmp for per-game hacks
- namcos2.cpp and namcos21_c67.cpp: Restored T flag correctly during PLP and RTI (m6502\dm740.lst, m740.h and om740.lst). Fixes coin counter in Starblade does not work (ID 07837) and credit buttons in Lucky & Wild and Steel Gunner 2 doesn't work (ID 07842).
- neogeo.cpp: Cleaned up SMA protection bitswaps (neogeo\prot_sma.cpp)
- playmark.cpp and powerbal.cpp: Preliminary minor cleanups in preparation of subclassing and adding of the new World Beach Volley MCU dumps. Started splitting the driver in derived classes.
- segas32.cpp: Added save state support and fixed backdrop color fill when screen resolution is changed
- snesb.cpp: Revisited some decryptions to standardize them
- AGEMAME
. Added PLD dumps to bfm_sc2.cpp and maygay1bsw.cpp
. Improved service inputs for consistency with other drivers in jpmimpctsw.cpp. Promoted Roller Coaster and clones to working.
. Started refactoring/researching more of JPM System 5 drivers (jpmsys5.cpp and jpmsys5sw.cpp). Various sets now proceed further in boot sequence, but still fail. Some additional elements (reel lamps, 7segs etc.) now have outputs so can be represented in fallback layout. Use recently added repeater feature of layouts in fallback layout* begin jpmsys5 refactoring.
. jpmimpct.cpp/jpmimpctsw.cpp progress on non-video fruit machines: Hopper tweaks to allow many more sets to boot. Return 0xffff from some unknown memory addresses to allow later games to boot (security / anti-tamper?). Better per-game defaults to allow more sets to boot. Alt reel configs for a handful of ACE games to allow them to boot. Removed a few bad dumps. Correct ROM loading on several sets. Fixed up manufacturer information for several sets. Use timed coin optos for coins so that they insert reliably without triggering scam detection. Adding per-game input configurations. Various notes/observations based on behavior to identify where improved hookups are still needed. Work on correctly mapping buttons for each machine.
. Added preliminary decryption for all extrema.cpp games
- Battletoads: Fixed garbled graphics (ID 07838)
- Black Tiger: Attempted to make clone Black Tiger (Modular System) do something. Still a long way to go.
- Buggy Challenge: Decreased steering wheel sensitivity
- Cat and Mouse: Added new 4k maincpu rom to clone (type 01 program) (Game now playable)
- Chase Bombers: Fixed shifter displays (layout\cbombers.lay) (ID 07843)
- Cosmic Guerilla: Separated driver from Cosmic Alien driver. Added MC6845 CRTC and use it for all video updates. Configure screen with raw parameters. Added support for display flipping in cocktail mode.
- Crazy Balloon: Added accurate video timings and watchdog, reduced CPU clock and clean up various things.
- DrumMania: Added audio CD, but the game is still not playable.
- Erotictac/Tactic: Replaced '24C02 I2C Memory' with PCF8583 RTC device
- Forte Card
. Added a default serial EEPROM after an exhaustive reverse-engineering work of Grull Osgo. Refactored and cleaned up the sets and driver. Added technical notes. Added Coin In/Out counters and Auto Play DIP switch.
. Promoted clone Forte Card (Ver 103, English) to working
- Gals Panic II (Asia): Correct the rom loading and generate an image list
- Gladiator: Fixed PORT_CHANGED typo
- Jungle (VI3.02): Completed decryption and added inputs and (bad) sound to Jungle (VI3.02). Added a second tilemap.
- Kaiser Knuckle: Don't clear interrupt input state upon reset (m68000\m68kcpu.cpp). Fixes missing sound in Kaiser Knuckle (ID 07841).
- Kingpin: Various updates: Added basic layout showing buttons and lamps. Hook up lamp outputs and hopper. Map missing buttons and second coin slot. Label setup mode dip switches. Updated default NVRAM to enable attract music, second coin slot and hopper.
- KO Punch: Acknowledge coin IRQs
- Magic Bomb: Two more address bits are involved in the Magic Bomb (Ver. L3.5S) descrambling. Partially decrypted clone Magic Bomb (Ver. AA.72D, 14/11/05), same problem as Stone Age, hangs at ROM error. Added sprites gfx rom and EEPROM dump for clone Magic Bomb (Ver. A3.1A).
- Mini Super Fruits: Cirsa 810601-A PCB has 4 dipswitches, not 8.
- Mr. Kougar: One gfx rom is confirmed bad in clone Troopy (bootleg of Mr. Kougar)
- Quiz Show: Added cassette device
- Raiden: Lower the OKI volume
- Shogun Warriors: Confirm DIP defaults in Shogun Warriors/Fujiyama Buster by manual
- Slime Kun: Added dipswitch definitions
- Street Fighter II': Champion Edition: Documented 'Turbo Vs CPU' mode and 'Projectile Path' dipswitch settings for clones 'Street Fighter II': Champion Edition (Rainbow, bootleg, set 1)', (set 2) and (set 3) hacks.
- Trebol: Transfer Trebol to MissBamby driver, since hardware appears to be almost the same.
- Ufo Senshi Yohko Chan: Correct rom labels and location for 'Ufo Senshi Yohko Chan (bootleg, not encrypted)', verified against PCB.
- Wiping: Fixed spriteram
- World Class Bowling: Fixed game resets itself during gameplay (ID 07846)
- World Rally: Fixed 'Pot Wheel' analog control don't work in game and Test Mode (ID 07836)
- Xybots: Fixed coin inputs (ID 05379)
- Fixed rom names in fortecar.cpp, laserbat.cpp, relief.cpp, system1.cpp and taito_f3.cpp
- Dipswitch fixes in atarisy1.cpp, blktiger_ms.cpp, cps1.cpp, dynax.cpp, fortecar.cpp, hnayayoi.cpp, jpmimpct.cpp, jpmimpctsw.cpp, jpmsys5sw.cpp, kaneko16.cpp, kingpin.cpp, konmedal.cpp, missbamby.cpp, playmark.cpp and powerbal.cpp
- Description changes of Cat and Mouse (type 01 program), Cat and Mouse (type 02 program), Daytona USA 2 (Japan, Revision A), Daytona USA 2 Power Edition (Japan), Dino Dino (Ver. A1.1), Dirt Devils (Export, Ver. G?), (all) extrema.cpp, Fighting Vipers 2 (Japan), Fighting Vipers 2 (Japan, Revision A), Get Bass: Sega Bass Fishing (Japan), Get Bass: Sega Bass Fishing Deluxe (Japan), Get Bass: Sega Bass Fishing Upright (Japan), (many) jpmimpctsw.cpp games, L.A. Machineguns (Japan), Le Mans 24 (Japan, Revision B), Scud Race Deluxe (Revision A), Scud Race Plus Twin/DX, Scud Race Plus Twin/DX (Revision A), Scud Race Twin/DX (Australia), Scud Race Twin/DX (Export), Sega Rally 2 (Export), Sega Rally 2 Deluxe (Export), Ski Champ (Japan), Spikeout (Export, Revision C), Spikeout Final Edition (Export), Star Wars Trilogy Arcade (Export), Star Wars Trilogy Arcade (Export, Revision A), The Lost World (Japan, Revision A), The Ocean Hunter (Japan) and Zulu (Ver. ZO.02.D).
- Renamed (bass) to (getbassur), (bassdx) to (getbassdx), (dirtdvlsa) to (dirtdvlsau), (fortecar) to (fortecrde), (j6roller) to (j6rollerk), (j6rollera) to (j6rollerl), (j6rollerb) to (j6rollerm), (j6rollerc) to (j6rollern), (j6rollerd) to (j6roller), (j6rollere) to (j6rollera), (j6rollerf) to (j6rollerb), (j6rollerg) to (j6rollerc), (j6rollerh) to (j6rollerf), (j6rolleri) to (j6rollerg), (j6rollerj) to (j6rollerh), (j6rollerk) to (j6rolleri), (j6rollerl) to (j6rollere), (j6rollerm) to (j6rollero), (j6rollern) to (j6rollerp), (j6rollero) to (j6rollerd) and (j6rollerp) to (j6rollerj), (scud) to (scudau), (scuda) to (scud), (scudj) to (scuddx), (srally2x) to (srally2dx) and (zoo) to (zulu).
- MAME
. VIDEO RENDERING SYSTEM
. Use std::string_view instead of bare pointers in various functions (emu\rendlay.cpp)
. Use std::fill instead of memset for dirty vector. Added range check (util\palette.cpp).
. Dependency refactoring. Splitted out layout class declarations into rendlay.h, with some adjustments for the resulting incomplete types (std::reference_wrapper unfortunately does not allow these by C++17 rules) (emu\render.h). Moved old header contents to layout/generic.h (emu\rendlay.h).
. BGFX: Added LCD-grid shader. Note that this is currently only compiled for GLSL. Fixed overlapping register in LCD-grid shaders and compiled for Direct3D, SPIR-V, Metal etc.
. MEMORY SYSTEM
. More idiomatic way to access members inherited from argument-dependent base templates (may or may not work around GCC11 bug) (emu\emumem_*.cpp)
. Fixed some issue when the view does nor span an exact power-of-two block (emu\emumem_hedr.ipp and emumem_hedw.ipp)
. OSD
. Splitted out file, directory and path classes and methods to a new header (osdfile.h), Doxygenizing the documentation comments (osd\osdcore.h).
. Centralized basic functions and de-virtualize various getters (osd\modules\osdwindow.cpp)
. Fixed a couple of fixed-size buffers in Windows OSD code. Marked MAME as aware of long paths in Windows manifest. Made a cleaner, thread-safe API for getting volume names.
. Minimised full-screen windows on losing focus (osd\windows\window.cpp). Clean up window title formatting. Show data type model in window title. Moved window title formatting to a single place (osd\modules\osdwindow.cpp). Rearranged window title to put system name first (modules\osdwindow.cpp).
. Moved GCC intrinsics out of eminline.h so MAME_NOASM will take the pure C++ implementation with GCC (makes testing the fallback easier).
. UI: Fixed use of strmakelower (ui\selsoft.cpp)
. PLUGINS
. Migrate remaining XML cheat code for Lua API changes (plugins\cheat\cheat_xml.lua). Fixes cheats show errors attempting to activate (ID 07830).
. Use history.xml and added XML parser for it (plugins\xml\init.lua and plugin.json)
. Removed logging and fixed query (plugins\data\data_history.lua)
. Better hiscore parsing and other improvements (plugins\data\data_hiscore.lua)
. Input port: Fixed a recent regression with processing XInput DPAD input item tokens. Prevent code_to_token from blowing up in strange cases (emu\input.cpp and inputdev.cpp).
. Removed natkeyboard from ioport_manager (emu\ioport.cpp)
. Changed string processing to use std::string_view parameters. Added sum16 type (lib\util\hash.cpp and hashing.cpp). Added -h option to print hashes and 16-bit sums for all files (tools\romcmp.cpp).
. Make "slot" feature in software lists and a few related features case-sensitive
. Simplified snapshot/quickload callback parameters. Removed some uses of auto_alloc_array (imagedev\snapquik.cpp).
. Adopt std::string_view as the input parameter type for most functions (this necessitates some explicit copying to std::string since other APIs have not been updated yet). Remove zippath_parent_basename, whose implementation was utterly broken and fortunately unused. Fixed unintialized variable issue in zippath_resolve. Eliminated one internal helper function (util\zippath.cpp).
. Documentation update: Added note explaining that view options saved in machine CFG take precedence over INI/command line. Added prerequisites for building HTML documentation under MSYS2 and Fedora Linux. Explicitly mentioned that Ubuntu modifies GCC to enable "fortify source" by default in the relevant section. Removed obsolete reference to glibstdc++6. Re-formated compiling guide source (hard wrap at 80 columns, typographical quotes, code blocks for sample command lines).
- Compiling
. C++ comment conversion (util\xmlfile.cpp). Added get_attribute_string_ptr method that distinguishes between empty strings and absent attributes without falling back to C strings (util\xmlfile.cpp).
. Eliminated redundant std::string("...").c_str() pattern (emu\ioport.cpp)
. Initialized more pointers and variables (drivers\hitpoker.cpp and video\tlc34076.cpp). Fixes random chance of launching with missing colors in ghoshunt, mouseatk, tickee and tutstomb (ID 07833).
. Changed puts to take a std::string_view parameter (util\corefile.cpp and emu\fileio.cpp)
. Removed the using declaration importing util::string_format into the global namespace. It has been moved to emucore.h and a few tool sources. Other references have been qualified (util\strformat.h)
. Disaggregate many #includes that were including other standard or custom headers. emu.h now includes basically the same things that it did, but other headers have been streamlined; for instance, emucore.h no longer stealth-includes osdcore.h several ways.
. The string_format calls need qualification now (file\windir.cpp and winrtdir.cpp)
. Purge #include "rendlay.h" where not necessary
. Changed some unused functions to use [[maybe_unused]] attribute so they don't rot (audio/redbaron.h, drivers\deco_ld.cpp and pinball2k.cpp)
. Disable MSVC windows CI, breaks for probably unfisable heap space issues (workflows\ci-windows.yml).
. Fixed build on FreeBSD/powerpc64. FreeBSD uses powerpc64 name for what Linux calls ppc64.
. Clean up inline maths utilities. Removed inline assembly for operations compilers handle well. Added ARM and AArch64 implementation for a few operations. Added unsigned integer add with carry out operations. Make preprocessor usage a bit more consistent in inline utilties for PPC/ARM.
. Much more core std::string_view modernization: Removed corestr.h from emu.h; update a few source files to not use it at all. Changed strtrimspace, strtrimrightspace and core_filename_extract_* to be pure functions taking a std::string_view by value and returning the same type. Changed strmakeupper and strmakelower to be pure functions taking a std::string_view and constructing a std::string. Removed the string-modifying version of zippath_parent. Changed tag-based lookup functions in device_t to take std::string_view instead of const std::string & or const char*. Removed the subdevice tag cache from device_t (since device finders are now recommended) and replace it with a map covering directly owned subdevices only. Moved the working directory setup method out of device_image_interface (only the UI seems to actually use the full version of this). Change doutput_manager to use std::string_view for output name arguments. Changed core_options to accept std::string_view for most name and value arguments (return values are still C strings for now). Changed miscellaneous other functions to accept std::string_view arguments. Removed a few string accessor macros from romload.h. Removed many unnecessary c_str() calls from logging/error messages.
. Removed some unnecessary .c_str() calls (tools\chdman.cpp)
. C++17: Replaced ATTR_UNUSED with [[maybe_unused]]. Fixed for GCC build ("-Wno-error=attributes", -- GCC fails to recognize some uses of [[maybe_unused]]).
"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."
[Posted by: MASH]
0.229
- New games: Ms PacMan Twin (Argentina), Power Up Baseball (prototype) and Run Run Puppy
- New Working games: Ace Of Clubs (Crystal), Bonanza (JPM) and Sonic The Hedgehog (JPM)
- New Non-Working games: Beatmania III, G.T. Block Challenger, Games Family, Golden Fruits, Olympus (Z Games, version 10), Photo Play 2001 (Spanish), PlayCenter Champions Tournament (v9.3), Pop'n Music Animelo, Pop'n Music Mickey Tunes, Score 5, Silverball (8.01) and Super Butterfly 2000
- New clones: Asteroids (bootleg on Lunar Lander hardware, set 2), Barracuda, Born To Fight (Vifico license), Defense (Defender bootleg), Drift Out (Europe, Cameltry conversion), Galaxian (Electromar Spanish bootleg), Hot Night, Hunchback (FAR S.A. bootleg on Galaxian hardware), Kamikaze (Electrogame, Spanish bootleg of Galaxian), Mach 2 (set 2), Mars (bootleg), Oli Bug (Jump Bug bootleg), ParaParaParadise 2nd Mix (AAA), Pop'n Music Mickey Tunes!, Radar Scope (TRS02, rev. D), Silverball Bulova (4.09, set 1), Silverball Bulova (4.09, set 2), Silverball (6.32), Silverball (7.20), Storming Party / Riku Kai Kuu Saizensen (set 2), Street Fighter II': Magic KO Turbo!! - Nightmare Crack, Wayne Gretzky's 3D Hockey Fatality Edition (prototype) and World Beach Volley (set 1, S87C751 audio CPU)
- New PEPlus games: 'Player's Edge Plus (PP0104) Standard Draw Poker (set 2, Fitzgeralds)'
- Removed games: NFL Blitz (boot ROM 1.1)
- New drivers: blockch.cpp, gfamily.cpp, photoplys.cpp, playcenter.cpp and silverball.cpp
- New devices: pcf8570 and rs_serial_printer
- CPU
. ES5510: Added serial control register for debugging. Fixed/Added some hardware features. Implemented (partially) RAM clear function. Fixed host control register (host access OK flag is inverted (0 is active)). Added notes.
. Kawasaki Steel KL5C80A12/KL5C80A16: Emulated on-chip parallel ports
. Motorola MC6809: Partially qualify the dummy cycles. Improved accuracy of dummy fetch patterns. Fixed regression in RTI timing (m6809\base6x09.ops).
. National Semiconductor COP4xx: Small notes cleanup
- SOUND
. Namco sound: Allow channels to still play with a frequency of 0 and allow writes to manipulate the counter directly for Namco 15xx (sound\namco.cpp)
. Ricoh RF5C400: Fixed looping and implemented position readback
- DEVICE
. ATAPI CD-ROM: Added way to specify Ultra DMA as a machine configuration (bus\ata\atapicdr.cpp)
. Atari Slapstic: Full rewrite, using infrastructure we did not have previously. Fixes clone Pit Fighter (rev 3) crashes randomly in later matches (ID 07866).
. Floppy: Filter out the writes when write protected, useful when the Apple IIgs does a packet send (e.g a write) over DCD with write protect forced on (to avoid damaging a possibly present disk). Ignore set_write_splice when the motor is not running (imagedev\floppy.cpp).
. I2C Memory: Added PCF8570 device
. K057714_device GCU: Adjusted transparency blend mode based on new info from Beatmania III. Fixed some crashes (divide by zero, out of bounds). Clear vram between resets.
. MC68681 DUART: Ignore tx enable if already enabled
. Rockwell 10937 VFD controller: Added state output for the brightness(duty) value. Can be accessed as 'vfddutyX' where X is the port number. Examples of it in use have been added to the generic MPU4, JPM System 5 and Impact layouts, and a full SVG based version in the JPM Sonic the Hedgehog layout.
. RS232 Port
. Added generic Radio Shack printer option (generates break condition when online) (bus\rs232\rs232.cpp)
. HLE updates: Removed option to change the number of start bits (1 was always the default, and the RS232 protocol requires one start bit). Added many historically significant baud rates ranging from 50 to 7200.
. Sega 315-5313 Megadrive VDP: Fixed/Added hardware related notes
. SVGA: Added BIOS for S3 86C775/785 and ExpertColor M50-02 86C775 (both V.1.01.04)
. Z80 SCC Channel: Tidy logging a little bit. There's only one WR2. Note: WR2 is the interrupt vector register. Only one vector register exists in the SCC, and it can be accessed through either channel.
- alpha68k_i.cpp
. PCB documentation for The Next Space and Paddle Mania, derive chip clocks from OSCs.
. Replaced color ROM dump in Paddle Mania and added dump about bootleg boards. Removed NO_DUMP entry for the Alpha 8511 MCU, since actual PCBs don't have it.
- aristmk5.cpp and ertictac.cpp: Disabled side effects in high_mem_r handler (machine\acorn_memc.cpp)
- cave.cpp: Correct some typos & update documentation for Hotdog Storm
- deco_mlc.cpp: Added sprite autoflicker flag and fixed small problem with use8bppMode (video\deco_mlc.cpp)
- dec0.cpp: Updated hardware infos. Fixed MSM6295 sound clock in Midnight Resistance.
- firebeat.cpp
. Implemented SPU DMAs and fix SPU device configurations
. Large refactor and initial 'Beatmania III' support. Changed DMA to deliver one byte at a time. Converted to use I/O port and output finders. Corrected handler widths and cleaned up code. Lots of other cleanup and miscellaneous fixes.
. Added 'Beatmania III' BIOS, security dongle generated through a tool and proper SPU rom to 'Beatmania III Append 6th Mix', 'Beatmania III Append 7th Mix' and 'Beatmania III The Final'.
. Added 'Beatmania III' BIOS and SPU roms to 'Beatmania III Append Core Remix'
. Added security dongle generated through a tool to 'Keyboardmania', 'Keyboardmania 2nd Mix', 'Pop'n Music 6', 'Pop'n Music 7', 'Pop'n Music 8', 'Pop'n Music Animelo 2', 'ParaParaDancing', 'ParaParaParadise', 'ParaParaParadise 1st Mix Plus' and 'ParaParaParadise v1.1'.
- halleys.cpp: Eliminated deprecated auto_alloc
- hng64.cpp: Only swap/clear 3D buffer when flag is set (video\hng64.cpp)
- itech32.cpp
. Added support for the WIDTHPIX blit flag (video\itech32.cpp)
. Updated NVRAM mapping on '020 machines to cover full 128k
- ksys573.cpp: Added ATA CS1 to memory map
- looping.cpp: Offset/Truncate the COP420 rom instead of loading it the hard way for Looping and Sky Bumper
- luckgrln.cpp: Use generic xBGR_555 palette support, decrease amount of colors. Added DIP locations. Changed service switch type to not toggle on 7 Smash. Added screen raw parameters.
- neogeo.cpp: Added notes for AES clock and regional difference.
- seattle.cpp: Updated Wayne Gretzky's 3D Hockey (ver 1.3) and NFL Blitz (boot ROM 1.2) to use the BIOS system. Clone NFL Blitz (boot ROM 1.1) has been removed since it was identical to the parent set and created only to load the different BIOS version. Use mnemonic BIOS names and organised BIOS versions in ascending order.
- snookr10.cpp: Correct XTAL for sound ROM as per hardware
- thepit.cpp: Identified and dumped colour proms for clones The Hole (bootleg of The Pit) and The Porter (bootleg of Port Man)
- 10-Yard Fight: Fixed misplaced graphics (ID 06650)
- AGEMAME
. Promoted Bonanza (JPM) and Sonic The Hedgehog (JPM) (IMPACT) and clones to working (except (SO10P C13, Protocol) and (set 9)). Mark Untouchable (JPM) and clone as not working, promotion may have been premature.
. Added GAL for the FM sound board to maygay1bsw.cpp
. Added emulation of Xicor X9C103 (digital potentiometer) to jpmimpct.cpp, fixes volume setting.
. Fixed layout of Big Bucks (JPM). Miscellaneous mpu4.cpp layout fixes. Fixed layout\j6cascze.lay and layout\j6sonic10.lay.
. Improved SVG stencils for VFD layout (layout\j6sonic10.lay; drivers\jpmimpctsw.cpp)
. Improved VFD output in BFM games
- Bogey Manor and Shoot Out: Corrected monitor orientation to ROT180
- Cobra Command: Fixed clones Cobra Command (M.A.C.H. 3 hardware, set 1) and (set 2) showing only a black screen when a NVRAM is present (ID 07874)
- Cookie & Bibi 2: Dumped MCU for Cookie & Bibi 2 (set 1) and clone Cookie & Bibi 2 (set 2)
- Future Flash: Improved gfx rendering, implemented BG scrolling and correct screen raw parameters.
- Good (Korea): Identified some DIPs
- Gokidetor: Converted JEDECs to binary format and add anonymous namespace
- Grobda: Eliminated DAC and allow the Namco 15xx custom to play the speech sample
- High Seas Havoc: Simplified the already working part of the decryption
- Ironman Ivan Stewart's Super Off-Road: Dumped missing roms and corrected mismatched ROMs for clone Ironman Ivan Stewart's Super Off-Road (rev 3)
- Jongkyo: Removed tagmap lookups and auto_alloc_array. Clean up input code a little.
- Jungle (Italy VI3.02): Added reel layer drawing, implemented priority selection and hooked up palette. Updated notes.
- Magic Reels: Added placeholder for undumped PIC
- Major Havoc: Fixed graphics missing in maze stages (MAX_POINTS 20000 is needed) (ID 06668)
- New Pro Bowl: Fixed gfx loading
- ParaParaParadise 2nd Mix: Added working dongles for ppp2nd (JAA) and added a dongle to boot ppp2nda (AAA). Added sensor inputs for ppp2nd and ppp2nda.
- Pepper II: Dumped PROMs and correct version 2 sound ROMs for Pepper II (version
- Pontoon (Konami): Added text layer tilemap, palette and char ROM readback for POST. Hooked up sprite ROM readback, marked sound CPU dump as bad. Hooked up sound CPU and comms, POST now fully passes.
- Raiden: Fixed sound communication and improved sound chip hookup for clone Raiden (Modular System). Music and sound effect playback is triggered correctly. FM audio still doesn't sound great, but it's at least functional.
- Scramble Spirits: Fixed assert in clone Scramble Spirits (World, Floppy Based, FD1094 317-0058-02c) (ID 05873)
- Sega Bass Fishing Deluxe: Added EEPROM for I/O CPU to clone Get Bass: Sega Bass Fishing (Japan)
- SNES 4 Slot arcade switcher: Added new BIOS version '12-07'. Found on PCB with Siemens SAB 8051A-P (4KBytes internal ROM undumped).
- TH Strikes Back: Fixed sprite vs sprite priority. Moved virtual functions in protected: section.
- World Tennis: Corrected size for rom ten14.h4
- Fixed rom names in alpha68k_i.cpp, cave.cpp, leland.cpp, midtunit.cpp, midyunit.cpp and seattle.cpp
- Dipswitch fixes in exidy.cpp, firebeat.cpp, good.cpp and luckgrln.cpp
- Description changes of Asteroids (bootleg on Lunar Lander hardware, set 1), jpmimpctsw.cpp games, Jungle (Italy VI3.02), Mach 2 (set 1), Mortal Kombat II (rev L3.1, European), Mortal Kombat II (rev L3.2, European), NFL Blitz (ver 1.21, Dec 5 1987), Olympus (Juegos Populares), ParaParaParadise 2nd Mix (JAA), Percussion Freaks 4th Mix (G*A25 VER. KAA) (ID 07863), Player's Edge Plus (PP0104) Standard Draw Poker (set 1), Radar Scope (TRS02?, rev. C), Storming Party / Riku Kai Kuu Saizensen (set 1) and World Beach Volley (set 1, PIC16C57 audio CPU)
- Renamed (asteroidb) to (asteroidb1), (j6sonicd) to (j6sonice), (j6sonice) to (j6sonicf), (j6sonicf) to (j6sonicd) and (radarscp) to (radarscpc)
- MAME
. VIDEO RENDERING SYSTEM
. BGFX: Fixed failure to load texture .png files when -artpath contains multiple directories. Fixes BFGX Shadow Mask not appearing in slider controls when more than one artpath present in mame.ini (ID 06935). Use platform-specific path separator more consistently (render\bgfx\chainentryreader.cpp).
. Fixed assertion failure in some GCC builds (util\palette.cpp)
. Increased precision of ellipse calculations. Also optimised drawing fully covered ellipse pixels and added a few comments (emu\rendlay.cpp).
. BGFX
. CRT-Geom and CRT-Geom-Deluxe enhancements: Added a "brightness boost" feature for the shadow mask that works by making the brightness ratio between bright and dark mask pixels closer to 1 for the brighter parts of the image. Added clamping to zero so that underscanning produces a black border. Added a "raster bloom" effect to crt-geom-deluxe that makes the image grow slightly when the average brightness of the screen is high, mimicking a common defect in CRTs.
. Added new compiled shaders for Direct3D, ESSL, Metal and SPIR-V.
. MEMORY SYSTEM
. Fixed regions and shares on dynamically-installed device maps (emu\emumem*)
. Disabled the unmap-value-in-device-map test for now (emu\emumem_aspace.cpp and emumem_mview.cpp)
. UI
. Clean up slider callbacks. Removed now-unused slider ID macros/enums (ui\ui.h)
. Improved messages displayed when files are missing. Only show things preventing launch in UI (not NO_DUMP, optional, etc.). Don't show details like file lengths and checksums in UI. Actually do system audit when launching from favourites. Log the more detailed summary at info level (ui\selgame.cpp, selmenu.cpp and selsoft.cpp).
. Fixed exception in debug build when selecting machine category filter (ui\utils.cpp)
. Input port
. Prevent race condition between ui_input().pressed() and poll() (ui\inputmap.cpp)
. Added prompts to input mapping menu to make it less intimidating (ui\inputmap.cpp)
. Don't prompt to toggle to default if default is None (ui\inputmap.cpp)
. PLUGINS
. Fixed softlist longname (plugins\discord\init.lua)
. Fixed watch and write (plugins\cheatfind\init.lua)
. Initialized some variables that were causing crashes/asserts in DRVNOCLEAR builds
. Code cleanup (video\resnet.cpp)
. Moved lru_cache_map to separate header (util\coretmpl.h -> util\lrucache.h)
. Converted a few more functions to use std::string_view (emu\input.cpp and inputdev.cpp)
. Use std::clamp in various core functions (emu\render.cpp and sound.h)
. Updated changed set names (plugins\hiscore\hiscore.dat)
. LISTXML: Added a few more driver flags to -listxml output (Driver requires artwork, unofficial, nosoundhardware and driver incomplete)
. Make -listmedia compatible with grep/find. Examples: List all systems with .tap support: mame -listmedia | find ".tap" and list all systems with paper tape reader: mame -listmedia | grep (ptap.
. Validity: Ensure validation of device tags in non-default slot options (emu\validity.cpp)
- VGM player: Added 32 new entries
- Compiling
. Removed 64 suffix on the main executable. If you want to build 64-bit and 32-bit in the same tree without them stomping on each other, use SEPARATE_BIN=1 (you already need to do this for TOOLS=1 anyway). Updated GitHub CI for executable names, added ORM check to Linux builds.
. Unbreak aarch64 and arm builds (makefile). Fixes compiler error on Raspberry Pi (ID 07860).
. Declare intent when requesting virtual memory for NetBSD (lib\osdlib_unix.cpp).
. Suggested changes to MacOS to build: Changes in macOS section regarding current build requirements. Added basic info for Apple Silicon to macOS build instructions (docs\source\initialsetup\compilingmame.rst).
. Initialized some variables which were causing incorrect behaviours in DRVNOCLEAR builds
. LLD (LLVM linker) seems to add a minimal symbol that the system libraries catch. Be smarter about ignoring that (osd\modules\diagnostics\diagnostics_win32.cpp).
. Fixed issues detected by Coverity Static Analysis (software) (machine\i8271.cpp, video\snes_ppu.cpp, audio\rax.cpp, ui\custui.cpp, ui\confswitch.h, drivers\halleys.cpp, bfm_sc2.cpp, highvdeo.cpp, lordgun.cpp, midzeus.cpp (thegrid), sfcbox.cpp and tnzs.cpp (tnzs.cpp))
. Removed references to non-existent headers and duplicate source file references (scripts\src\bus.lua, cpu.lua, emu.lua, netlist.lua, target\mame\arcade.lua and mess.lua)
. Eliminated ARRAY_LENGTH template in favor of C++17's std::size
. Moved definition of EQUIVALENT_ARRAY to coretmpl.h (osd\osdcomm.h)
. Use STRUCT_MEMBER for save state registration (cpu\sharc\sharc.cpp, machine\gt64xxx.cpp, sound\ym2413.cpp, video\snes_ppu.cpp)
. Use std::fill(_n) instead of memset (cpu\arm7\arm7.cpp, tms9900\tms9995.cpp, machine\pckeybrd.cpp and video\jangou_blitter.cpp)
. Removed obsolete typedef (emu\emucore.h)
. Used object finders for istrebiteli.cpp
. Removed unneeded machine().root_device() calls (megatech.cpp, mrgame.cpp, stuntair.cpp and vegas.cpp)
- Debugger
. Fixed parsing for preincrement & predecrement operators. Make debugging function print_tokens usable again (debug\express.cpp).
. Added context menu with Copy Visible and Paste commands to debug views to win32 debugger (debugger\win\debugviewinfo.cpp)
. Qt debugger updates: Added context menu with Copy Visible and Paste commands to debug views. Made memory view last PC display a context menu item. Fixed crash on right-clicking a memory view showing something other than an address space. Improved scrolling behaviour in Qt debugger. Fixes disassembly view glitch on bottom line (ID 07795).
. Fixed commas in dumpkbd output (emu\natkeyboard.cpp)
. Fixed debugger problem when writing values into memory (MESS Myarc Geneve 9640) and added debugger method to TMS9995
. Improved behaviour of bottom line in Qt and win32 debugger views. Ported memory tracking feature from Qt to win32 module.
. Fixed build on GCC (tools\unidasm.cpp)
. Updated state views when memory is modified through the debugger (since registers can be memory-mapped) (debug\debugcpu.cpp)
. Stop converting debugger console commands to all lowercase before parsing them. Case insensitivity has been preserved for command names, CPU and region tags and certain symbolic parameters (as well as expressions, which were treated as case-insensitive in other contexts), but filenames and character constants are no longer automatically lowercased.
. Removed some superfluous c_str() calls (debug\debugcmd.cpp and debugcon.cpp). Removed local member referencing debugger_cpu, which is accessed only rarely since the console now tracks the visible CPU (debug\debugcmd.cpp).
. Added m68000 to debugger\debuggdbstub.cpp
. Added CLS command to clear console buffer (debug\debugcmd.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."
[Posted by: MASH]