Release Date

MAME 0.189 was released on 30 August 2017.


MAMETesters Bugs Fixed


Machine Support

New working machines


New working clones


Machines promoted to working


Clones promoted to working


New machines marked as MACHINE_NOT_WORKING


New clones marked as MACHINE_NOT_WORKING


Notable new WORKING software list additions


Notable software list items promoted to working


Notable new NOT WORKING software list additions


Translations added or modified


Contributions

The known contributions for this version are, in the order specified in the whatsnew:


  • Angelo Salese updated pengadvb: Added start/continue button (partially fixes MT04528).
  • Angelo Salese added very preliminary PC9801 AMD98 sound board emulation.
  • Angelo Salese updated namcos1.cpp: Fixed joystick dropping inputs bug for crouching/running actions in Beraboh Man.
  • Angelo Salese updated labyrunr.cpp: Fixed tile-sprite priorities, mostly visible when exiting an area in most stages.
  • Angelo Salese updated deco32.cpp: Rewrote interrupt handling; improved lightgun support for Locked Loaded.
  • Angelo Salese updated chanbara.cpp: Identified sprite flip X bit (player sword thrusts).
  • Angelo Salese wrote a new device for Taito yoke-based inputs (found in Midnight Landing and Top Landing).
  • Angelo Salese updated taitoair.cpp: Added screen raw parameters, fixes pilot acknowledge sound sample timing.
  • Angelo Salese updated ioport.cpp: Log explicit error if inp file isn't found on playback, added error code number for other errors.
  • Angelo Salese updated jangou_blitter.cpp: Rewrote blitter setters.
  • Angelo Salese provided nightgal.cpp improvements:
    • Fixed Night Gal Summer GFX ROM out-of-bounds accesses.
    • Added preliminary protection emulation for Night Gal Summer.
  • Carl updated luaengine: Added debugger_manager support.
  • Carl updated plugins/cheat: Catch errors in cheat scripts, added preliminary breakpoint/watchpoint support.
  • Carl updated plugins/gdbstub: Added WIP gdbstub plugins.
  • Carl updated plugins/data: Added MARP scores.
  • Dirk Best updated the a590 driver: Corrected filenames and added undumped 4.6 and 5.92 versions.
  • Dirk Best updated the jvc_dsk format: Autodetect double-sided floppy images without header (github issue #2405), improved support for headerless OS-9 images.
  • Dirk Best added Kontron PSI98 driver:
    • System is fully working with minor issues, you can boot KOS and CP/M 2.2 (images are in the software list).
    • Still missing is SASI and the ECB slot system with cards.
    • Added keyboard slot interface, created skeleton for keyboard, added HLE ASCII keyboard as default.
    • Added software list.
  • Dirk Best provided upd765 improvements:
    • Don't instantly finish the RECALIBRATE command (fixes accessing second drive on psi98).
    • Made SEEK also take some time (fixes KOS FORMAT command on psi98).
  • Dirk Best added Nintendo GameCube skeleton driver.
    • Decrypts the IPL and the CPU executes the first few instructions.
  • Dirk Best and Tele-Viper updated the gyruss driver - various small updates:
    • Added missing DIP location for DSW3.
    • Fixed dip switches and added correct ROM labels/locations for gyrussce.
    • Fixed labels for gyrussb.
    • Updated diagnostic ROM info.
    • Adjusted some memory region sizes.
    • Removed unused DRIVER_INIT.
  • Luca Elia provided a igs011.cpp update:
    • Decrypted vbowlhk and added its own bitswaps for IGS003 and IGS011.
    • Found DIP switches to perform a protection test in vbowl, changed IGS012 mode toggling to pass the test.
    • Changed IGS003 command 48 in lhb2 and vbowl to potentially work in more cases (based on lhb2 tables).
  • Luca Elia updated the jockeyc driver: Added layout with keyboards.
    • Cleaned up inputs, added own DIP switches.
    • Corrected RTC, emulated hoppers.
    • Hooked up outputs, NVRAM, and trackball (for hidden editor).
  • Vas Crabb overhauled the internal UI:
    • Use proper font metrics and handle space glyphs with null bounding box on OS X.
    • Patched GNU xgettext to support C++14 parsing so localisations can be updated.
    • Restored ability to localise info box headings.
    • Fixed info box navigation when system selection menu doesn't have focus.
    • Fixed keyboard navigation of software filter box, added support for home/end to jump to beginning/end of filter list.
    • Removed hacks in selector menu tying it to implementation details of other menus.
    • Improved encapsulation and reduced code duplication in system/software selection menus.
    • Fixed text alignment/gutters in filter list, info box and DAT view.
    • Eliminated use of hairline spaces for alignment in the info box.
    • Added indication for presence of analog controls and keyboard inputs in info box.
    • Added support for mouse wheel scroll in info box.
    • Allowed some character input events to be coalesced (reduces lag in live search with long lists).
    • Fixed software art/info display when keyboard focus leaves software selection list.
    • Save/restore images/info selection in right panel.
    • Fixed bugs and improved performance of code for detecting systems without ROMs.
    • Made audit menu request confirmation, show progress, and save result in INI format.
    • Consolidated code for drawing "extra" boxes above/below menus.
    • Fixed minimum/maximum for UI font rows per screen setting.
    • Fixed spacing on directory configuration menu.
    • Made slot options menu show full name of selected slot device below menu.
  • Vas Crabb reimplemented system/software filters:
    • Uniform interface/polymorphic implementation - eliminates almost all special-casing in menus.
    • Made filter names localisable.
    • Allowed more filter types and prevent contradictory filters from being added in custom filters.
    • Made category filter work like other filters (allowed in custom filter displays its own UI, better error messages).
    • Made multiple year/manufacturer/category/etc. filters in custom filter an inclusive union operator.
    • Removed implicit "Not BIOS" system filter, it can be added explicitly if desired.
  • Vas Crabb moved unimplemented/imperfect flags from machines into devices:
    • Allows dynamic warning flags depending on slot configuration.
    • Unclutters GAME/CONS/COMP/etc. definitions where a family of machines or a device have the same flags.
    • Allows more combinations of flags.
  • Vas Crabb provided PNG/rendering/artwork/output improvements:
    • Added support for layout item groups that can be reused in other groups or views.
    • Reduced weight of render.h by moving component specialisation declarations into rendlay.cpp.
    • Replaced simple_list with more appropriate containers, remove misleading const qualifiers, reduced repeated XML walking.
    • Added N-dimensional output finder to avoid runtime string hashes - more than doubles performance of intlc440.
    • Unified code for copying PNG data into MAME bitmap in MAME and pngcmp, made it less likely to leak memory.
    • Added support for Adam7 interleave in PNG files, fixed some corner cases in unfiltering code.
    • Fixed upsampling of greyscale PNGs, added support for monochrome with alpha.
    • Added support for 16-bit samples in PNG files.
    • Added support for PNG greyscale/RGB with transparent pen.
    • Detect more invalid PNG files rather than just behaving badly.
  • Vas Crabb added "minimaws" scripts, a reference -listxml consumer (implemented with Python/WSGI and JavaScript):
    • Provides verbs for loading data, some basic batch queries, and an interactive web server mode.
    • Serves linked HTML pages for machines, devices, and source files.
    • Demonstrates how to dynamically discover slot/BIOS options from static -listxml output.
    • Allows user to build a slot configuration and shows necessary command-line arguments or INI lines to produce it in MAME.
    • As a side effect, this provides additional validation of -listxml output, several issues and limitations were addressed.
  • Vas Crabb fixed -sleep and -refreshspeed options, fixed a stupid forced unnecessary sleep.
  • Vas Crabb fixed -slot card,bios=rev (selected BIOS was being applied to slot itself, not card).
  • Vas Crabb fixed up input merger: added more variants, synchronisation and save state support, removed dubious reset behaviour.
  • Vas Crabb removed a whole lot of I64 from format strings (use logerror/string_format/stream_format to avoid it).
  • Vas Crabb added validation of BIOS names/descriptions/defaults and fixed errors exposed.
  • Vas Crabb moved additional content for release archive from build repository to main repository.
  • Lord Nightmare and Vas Crabb updated bublbobl.cpp, missb2.cpp: Reimplemented sound CPU semaphores and sound NMI according to schematics.
    • Implemented sound semaphores into tokio as well, fixing SOUND ERROR in test mode.
    • Added notes about sound CPU addressing.
    • Reimplemented /SRESET as a separate function called on sound CPU reset according to schematics.
    • Added correct watchdog to Bubble Bobble and Tokio, and disabled it on the Bubble Bobble prototype.
    • Added proper 'wired-or' sound CPU IRQs to Bubble Bobble.
    • Renamed 'slave' cpu to 'subcpu' to match schematics.
  • Lord Nightmare updated dectalk.cpp: Use correct DSP ROM for firmware 1.8, some driver cleanup.
  • R. Belmont added driver for China Education Computer I (Apple II clone).
    • Added QUIT and TEST keys (hold down TEST while resetting for diagnostic), completed keyboard.
    • Fixed banking - Chinese mode works.
    • Added HGR color killer softswitch.
  • R. Belmont updated the k2000 driver: Added sample ROMs.
  • R. Belmont updated the alphatro_flop software list: Replaced bad dumps for CP/M and BASIC with good ones.
  • R. Belmont updated the alphatro driver: Added cart slot, support for 8K carts from the command line, and cart software list.
  • any and R. Belmont updated the multipcm device: Confirmed to be Yamaha YMW-258-F.
  • AJR added new 74LS259/9334/CD4099 devices.
    • Added coin counters and/or lockouts to Atari System 1 games, Basketball, Gauntlet, Gyruss, Hana Yayoi, Hole Land, Jr. Pac-Man, Mahjong Sisters, Pooyan, Roc'n Rope, Squash, Thunder Hoop, Time Limit, Time Pilot '84 and many others.
    • Cleaned up coin counter behavior in Sauro and Rally Bike.
  • AJR updated the ym2151 device: Added reset line emulation.
  • AJR updated the spcforce driver: Added coin counters, start lamps and addressable latch device.
  • AJR updated the tankbatt driver: Improved handling of sample triggers - fire sound is no longer doubled.
  • AJR updated decocass.cpp: Major improvements to colors and graphics layer priorities.
    • Implement the PRI2 pen modification effect. This makes the tunnels and headlight in Highway Chase look much more accurate, and makes some color changes work in Astro Fantasia.
    • Shadow color in Skater is now properly black (not a pen modification effect).
    • Correct background fill color, making high score screen in Super Doubles Tennis properly blue.
  • AJR updated the mario driver: Added coin counters and 74LS259.
  • AJR updated the isbc8630 driver: Added 74LS259 "status register" (only partly implemented).
  • AJR updated the blazeon and wingforc drivers: Shadowing RAM with ROM in sound CPU map can't be right.
  • AJR updated the v25 core: Made IDB register state visible to debugger.
  • AJR updated jp.cpp: Added 74LS259 latches and ADPCM sound system used by some games.
  • AJR updated the janptr96 driver: Changed CPU type to TMPZ84C015, drive interrupts through internal CTC.
  • AJR updated the changela driver: Changed default DIP setting to keep coin counters separate.
  • AJR updated the mjelctrn, mjembase, majxtal7 and neruton drivers: Changed CPU type to TMPZ84C015 and improved interrupt handling.
  • AJR updated dynax.cpp: Use address map bank device for most games in this driver plus htengoku.
    • Many games now successfully retrieve local time at start through an RTC device previously treated as read-only.
  • AJR updated the fixeight driver: EEPROM fixes.
    • Corrected decryption of some V25 opcodes used in the EEPROM service routine.
    • Removed the ugly routine that hardcoded a region for each set.
    • Added and documented a secret input that rewrites the EEPROM for any region.
  • AJR delayed data capture timing for MSM5205 and MSM6585 (should help with synchronization later).
  • AJR updated the flstory driver: Fixed CPU communication issue that sometimes caused sound to disappear entirely.
  • AJR updated the decomult driver: Replaced gross hack for banking "dongle" with something more likely.
  • AJR updated the chinhero driver: Added coin counters.
  • AJR updated the salamand driver: Improved VLM5030 control.
  • AJR updated the combatscb driver: Improved interrupt handling.
  • AJR updated the mb8421 device: Created 16-bit expanded variant and added it to thndzone/dassault.
  • AJR updated the mastninj driver: Implemented dual OPN plus dual MSM5205 ADPCM sound system as in Automat.
  • Sandro Ronco rewrote mmodular.cpp to use the new mmboard device - many sets promoted to working.
  • Barry Rodewald provided fmtowns improvements:
    • Added support vertical zoom greater than x2 (fixes Evolution).
    • Improved graphic layer placement - games with different-sized layers now display better.
    • Added preliminary RS232C port support.
  • Ted Green updated the gt64xxx device: Buffer multiple writes for PCI stall (fixes MT06636).
  • Ted Green updated the seattle driver: Set proper blitz99 DIP switch settings and added gearshift to calspeed (fixes MT00975).
  • Nigel Barnes updated the floppy system: Added FLOPPY_HFE_FORMAT to default_floppy_formats.
  • Nigel Barnes provided acorn_dsk updates:
    • Added OPUS_DDCPM_FORMAT, removed ACORN_CPM_FORMAT (same geometry as ACORN_SSD_FORMAT/ACORN_DSD_FORMAT).
    • Improved find_size/identify for SSD/DSD formats.
    • ACORN_DOS_FORMAT 640K now handled as ACORN_ADFS_OLD_FORMAT.
    • Fixed geometry for ACORN_DOS_FORMAT 800K.
  • Nigel Barnes updated the wd177x_dsk format: Apply sector_count and gaps to track description.
  • Nigel Barnes provided bbc updates:
    • Added new TUBE device - Acorn Tube ULA for use with Acorn second processors.
    • Added various second processors as Tube slot devices: Acorn 6502, Acorn 65C102, Acorn Z80, Acorn 80186, Casper 68000.
    • Added BeebSID slot device for the 1MHz bus.
    • Minor video improvements: fixed cursor size, double clock in MODE7 to counteract non-implemented interlace.
    • bbc_acorn8271: Added Amcom DFS A7874.
    • bbc_opus8272: Added new Opus 8272 FDC device with DDOS 3.00, not yet working.
  • Joakim Larsson Edstrom updated the m68340 device: Added implementations for VCO clock synthesizer and Timer module Counters, IRQs and one operational mode.
  • MetalliC updated namcos2.cpp: Ordyne uses older IO MCU ROM, cleaned ROM labels as per PCB photos.
  • MetalliC provided gaelco3d.cpp updates:
    • Increased TMS ROM region, makes Football Power players models visible.
    • Fixed serial EEPROM access.
    • Implemented Football Power mechanical ball simulation.
  • Peter Ferrie updated the apple2 driver: Update screen on mode-switch only if really switching.
  • F.Ulivi updated the hp9845 driver: Refactored handling of HTI images into a dedicated format module, refactored hp9845_tape imgtool module to use HTI format.
  • F.Ulivi updated the hp85 driver: Implemented tape drive, fixed a bug in tape gap detection.
  • F.Ulivi updated imgtool: Fixed null pointer dereference and logic errors in "GET" command.
  • shattered updated the ms0515 driver: Add sound and corrected clock rate.
  • shattered updated the dvk_ksm format: Implemented Baud rate generator and cleaned up source.
  • Christian Brunschen refactored server_{ws,http}.hpp into separate interface and implementation.
    • Use std::weak_ptr from websocket_connection_impl to webpp::Connection to avoid reference cycles.
    • When shutting down the HTTP server, also explicitly stop the asio::io_context; this allows the built binary to exit cleanly.
  • David Viens updated mos6526.cpp: Show state of registers that can be read without side effects in debugger.
  • David Viens updated om6502.lst: Corrected cycle counts for undocumented $BF instruction.
    • Now passes Lorenz testsuite-2.15's cputiming.prg (and does not break laxay.prg).
  • Miso Kim improved Android build support.
    • Updated for NDK r14b, build-tools 21.1.2, gradle 2.2.1, and jdk1.8.0_144.
  • David Haywood renamed 'grtesoro' sets to 'play2000', gave it it's own machine structure and memory map.
    • Added some workarounds so that it actually boots, fixed GFX ROM loading.
  • David Haywood added basic Saturn CD Block device to load the ROMs.
  • Nathan Woods provided imgtool modernisation and miscellaneous fixes:
    • Fixed a std::string(nullptr) bug.
    • Proper cleanup of floppy object after create/open failure.
    • Merged normalize_filename() into cannonicalize_path().
    • Eliminated Imgtool-specific rand() function.
    • Modernised mgtool_forkent structure.
    • Fixed features.supports_geticoninfo.
  • Nathan Woods partially fixed MT06621 (save state path not honoured).
    • Still doesn't honour software name for multipart software loaded from internal UI.
  • Nathan Woods updated imgtool: Made Mac ICN# drawing logic never draw pixels outside mask.
  • Risugami added better documentation and part numbers for midvunit wheel board.
  • Bavarese updated the Rainbow-100 driver: Use Z80SIO instead of Z80DART, make UCSD Pascal boot again.
  • Felipe Sanches added Control ID X628 fingerprint reader skeleton driver and NT7534 bitmap LCD controller device.
  • Caps0ff added HD647180X MCU dumps to Whoopee and Ghox.
    • Allows sound emulation in both of games, and fixes the high score table background in Ghox.
  • rogerxy and blinddog updated the Road Runner (Midway) driver: Replaced bad ROM with good one, added notes.
  • Arzeno Fabrice updated segae.cpp: Corrected rom names for Transformers System E.
  • rtw updated triforce.cpp: Redumped Virtua Striker 4 Ver.2006 (GDT-0020D).
  • rtw updated dccons.cpp: Added better dump of PAL Dreamcast Flash ROM.
  • Heihachi_73 provided aristmk5 updates: Fixed some sets, added honeypot and venicea5.
  • Inigo Martinez provided snes.xml documentation updates:
    • Fixed ROM name and added extra information for Dragon Ball Z - Super Gokuu Den - Kakusei Hen.
    • Added information about an earlier Euro Ranma 1/2 revision.
    • Added information about an earlier Spanish release of Donkey Kong Country 2 - Diddy's Kong Quest.
    • Added information about the Spanish release of Pilotwings to the Euro dump.
  • Inigo Martinez provided nes.xml documentation updates:
    • Added information about Super Mario Bros. PCB.
    • Fixed serial values and added PCB information for Pinball, Super Mario Bros. 2, and Trog!.
  • Brian Troha updated thoop2.cpp: Added PCB layout for TH Strikes Back.
  • r09 updated fmtowns_cd.xml: Update undumped list, merged the Towns and Marty list.
  • caius updated irem_cpu.cpp: Added some info about the Superior Soldiers sound CPU.
  • f205v updated mitchell.cpp: Added PALs and EEPROM dumps to pkladiesla, and corrected ROM labels.
  • Leezer updated hiscore.dat: Updated for recent changes.