Release Date

MAME 0.188 was released on 25 July 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 new NOT WORKING software list additions


Contributions

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


  • AJR updated the z8 core: Fixed disassembly of DECW RR opcode, added more control registers to state for debugger.
  • AJR added support for experimental overclocking of sound devices through UI sliders with -cheat enabled.
  • AJR updated the ym2151, ymf271, namco sound devices: Added support for dynamic changes to clock frequency.
  • AJR fixed scheduler overflow when a device executes for more cycles than there are in a second.
  • AJR updated nibbler, levers: Changed joysticks to 4-way as documented in manuals.
  • AJR updated megadpkr: Hooked up 68705P5 MCU, figured out banking, and added timekeeper RAM and inputs.
  • AJR updated colt: Fixed colors.
  • AJR provided vgmplay enhancements:
    • Added support for YMZ280B and YMF271.
    • Fixed clock speed for dual POKEY.
    • Produce error message when nonexistent file is specified.
  • AJR updated froggeram: Fixed PPI accesses allowing sound emulation to work.
  • AJR provided listxml enhancements:
    • Match arguments against device names as well as driver names.
    • Allowed DTD output for -listxml, -listsoftware and -getsoftlist to be suppressed with -nodtd option.
  • AJR updated gunfront: Corrected "Upright Controls" DIP switch - OFF is Single, and should not be the default.
  • AJR updated mrdo: Load protection PAL data (not used at the moment).
  • AJR updated mastboy: Changed parallel EEPROM type to "EAROM" (rather than generic NVRAM).
  • AJR updated the MC6800 core: Fixed LSR/ROR/ASR overflow flag generation (N XOR C).
  • AJR updated funystrp: Added serial EEPROM for high score entries.
  • Angelo Salese updated ygv608.cpp: Added CRTC function, turned IRQs into handler callbacks, added border color.
  • Angelo Salese provided blackt96.cpp improvements:
    • Added flip screen and coin counter support.
    • Reimplemented text layer as tilemap.
    • Added notes, promoted game to MACHINE_IS_INCOMPLETE - bugs like the timer not decrementing are actually caused by sloppy coding.
  • Angelo Salese updated cvs.cpp: Kludged a protection check in Superbike that was resetting the machine under certain conditions.
    • Also demoted to MACHINE_UNEMULATED_PROTECTION since game can lock indefinitely under a particular condition.
  • Angelo Salese wrote a new device container for Nichibutsu sound hardware, used by csplayh5.cpp and niyanpai.cpp.
  • Angelo Salese fixed screen misalignment regression in Bionic Commando.
  • Lord Nightmare updated socrates: Reimplemented keyboard MCU simulation as a separate timer-driven function.
    • Fixes issues with super painter and a few other games not recognizing keyboard input.
    • Also eliminated anonymous timers and keyboard tagmap lookups, and added savestate support.
  • Lord Nightmare updated arkanoid.cpp: Added machine definition for Akranoid bootleg with 68705P3 and AY-3-8910, matching real hardware.
    • Also added notes about which sets bootlegs are derived from.
  • Lord Nightmare updated dectalk.cpp: Removed unnecessary driver init and replaced with machine_start, eliminated anonymous timers, and added savestate support.
  • Lord Nightmare updated taitocchip.cpp: Hooked up the four 'ASIC RAM' shared bytes/semaphores/command registers between external CPU and the C-chip, got rid of hack for megablast.
  • Lord Nightmare implemented DIP switches and tweaked inputs for Bubble Bobble prototype so that the stage editor works.
  • Lord Nightmare provided missb2 updates:
    • Fixed OKI read/write bitswap so what seem to be the correct sound effects are played.
    • Replaced the corrupt OKI ROM dump with the bublpong OKI ROM - all non-corrupted areas are identical.
    • Added watchdog.
  • Corrado Tomaselli, Lord Nightmare and brizzo updated retofinv.cpp: Added original Taito 68705 MCU dump.
    • Moved bootleg 68705 MCU to its own set, renamed sets to make it more obvious which are bootlegs.
    • Verified XTAL, dividers, and SN76489A type from PCB pictures.
    • Added missing original color PROMs and allowed video/retofinv.cpp to use either those or the single bootleg color PROM.
  • Bryan McPhail added correct palette weighting for all dec8 games.
  • Bryan McPhail made DECO RM-C3 into a device used by dec8 and karnov.cpp games.
  • Bryan McPhail fixed colours in Crude Buster (verified against real hardware); added documentation to cbuster.cpp.
  • Carl updated pc9801: Moved cbus to bus and added WIP mpu401 support.
  • Carl provided plugins/cheat updates:
    • Poll for setting hotkeys.
    • Link simple cheats.
  • Joakim Larsson Edstrom provided fccpu1 updates:
    • Updated LOG system and replaced CLOCK_SIGNAL_HANDLER with real MC14411 BRG device.
    • Added machine configuration for baud rates for all three serial ports using MC14411 device.
    • Added newer version of firmware Force Debugger v1.1.
  • Joakim Larsson Edstrom updated the 68340 core: Added configuration macros and callbacks for 8-bit ports A and B, updated LOG system.
  • Joakim Larsson Edstrom updated the sda5708 device: Added layout with generated bezels and program snippet to redo it as a comment.
  • Joakim Larsson Edstrom updated the dbox driver: Added sda5708 matrix display layout (displays version number on start but hangs shortly thereafter).
  • Michael Zapf updated the ti99 driver: Changed Hexbus chaining; moved Hexbus up one level (from bus/ti99 to bus).
  • Nathan Woods overhauled MAME options handling.
    • The new options system is more dynamic and should detect errors earlier.
    • The slot menu now shows updated options in response to selections made by the user.
  • Nathan Woods added a menu listing existing state files displayed when choosing a position to save/load.
    • Any position may be selected with keyboard 0-9/A-Z or joystick buttons.
    • Existing positions may be selected using UI navigation controls.
  • Nathan Woods made the length parameter for debugger 'load' command optional (defaults to length of file), converted code from stdio to iostream.
  • Nathan Woods updated the MC6847 device: Fixed "Semigraphics 6" mode on CoCo/MC-10 (issue reported by Jim Gerrie).
    • Displays "stripes" for video bytes $00-$7F because INT/EXT is asserted but A/S is not, and there is no external ROM.
  • Nathan Woods fixed regression in ROM loading that resulted in not all actual hashes being printed on mismatch.
  • O. Galibert updated the sdl framework: Added SDL_WINDOW_BORDERLESS for fullscreen, required by some Linux window managers.
  • O. Galibert updated dvdisasm: Simplified by decoupling information creation and display rendering.
  • O. Galibert updated debugcpu: Eliminated direct() from read_opcode.
  • O. Galibert updated the options handling: Set the value when setting the default as before.
  • O. Galibert updated mameopts: Don't lose the system inipath when looking for hashpath.
  • O. Galibert updated dimemory: Lifted cap on number of address spaces per device, renamed AS_DECRYPTED_OPCODES to AS_OPCODES.
  • O. Galibert fixed media option numbering with custom instance names (github issue 2468).
  • Phil Bennett updated cbuster.cpp: Added a x3 hack to the YM2203 clock frequency to fix incorrect pitch.
  • Phil Bennett improved -romident performance by dynamically allocating large arrays at device_start time.
  • R. Belmont updated the m377xx core: Added preliminary M37720 support.
  • R. Belmont provided alphatro improvements:
    • Added correct banking and partial floppy support.
    • Corrected motor on and FDC reset.
    • Corrected number of driver (real machine only has two), and fixed B: drive.
  • R. Belmont updated the output module: Fleshed out network output provider to have the same capabilities as legacy Win32 provider:
    • Messages are of form "verb = value\1"; "hello = 1" on successful connection, "mamerun = 0" on shutdown.
    • Send "send_id = n" to query IDs where n=0 means machine shortname, and n=1-? are output node names.
  • Vas Crabb rewrote MCS-40 (4004/4040) emulation/disassembly:
    • Added support for all 4040 features besides interrupts.
    • Split address/status, RAM/ROM ports, and program memory into separate address spaces.
    • Emulated 8-clock instruction cycle, interruptible at any point, bus signals exposed.
    • Converted inputs to input lines, added callbacks for chip select outputs and 4008/4009/4289 signals.
    • Made disassembly output closer to what ASL accepts as input.
    • Allowed 4-bit registers to be set independently through the debugger.
  • Vas Crabb added INTELLEC 4 driver with support for MOD 4 and MOD 40 variants:
    • Supports TTY, PROM programmer, and all front-panel debugging features using clickable artwork.
    • Supports PROM, program/data storage and high-speed paper tape reader cards.
  • Vas Crabb updated flicker to use new MCS-40 core and improved emulation:
    • Re-implemented I/O based on how hardware actually works (wasn't possible with previous 4004 core).
    • Corrected flicker RAM size, removed NVRAM, and connected playfield lamps and operator adjustments.
    • Added save state support.
  • Vas Crabb provided layout system improvements:
    • Made scripts do substantial validation of layouts at build time.
    • Drop views that don't validate at runtime rather than entire layouts to help machines with terminals connected by default.
  • Vas Crabb cleaned up serial, matrix keyboard and TI-8x link protocol interfaces:
    • Switched to delegate timers and moved state registration to post-start, making implementations a bit less error-prone.
  • Vas Crabb made device_memory_interface own its address space objects.
  • Vas Crabb made parent/clone loops raise a fatal error rather than hanging in a loop appending to a string.
  • Vas Crabb made internal UI list missing/incorrect files when audit fails.
  • Vas Crabb provided Cocoa debugger improvements:
    • Save/restore window positions/sizes/splits/scrolling/expressions/focus (excluding device info viewer).
    • Fixed scroll jump on clicking a memory/disassembly view that's been scrolled while unfocused.
  • Vas Crabb made XML file a specialisation of data node that can be easily managed with smart pointers, and added a method for copying a data node/subtree into a different tree.
  • Vas Crabb fixed fatal error on selecting a software part with internal UI, and made software parts menu sort by name.
  • Vas Crabb cleaned up Gaelco protection MCU interface device.
  • anonymous and digshadow updated segas16b.cpp: Replaced goldnaxe2 317-0122 i8751 bad dump with working redump from undamaged chip and removed simulation code.
  • Arzeno Fabrice updated segas32.cpp: Redumped kokoroj2 sound data ROM.
  • Bavarese improved WD2010 emulation:
    • Better feedback on cylinder positions, almost all checks pass except low level tests expecting manufacturer or diagnostic tracks.
  • Brandon Munger updated the r9751 drover: Added preliminary SMIOC device with 8237 DMA controllers and RS-232 ports.
  • Christian Brunschen added an external panel for the Ensoniq VFX family of keyboards, with a websocket interface and an HTML/Javascript implementation that can be served over HTTP.
  • dankan1890 fixed QT 5.5.1 for Ubuntu 14.04 "Trusty Tahr" (allows Travis CI build to complete).
  • Darksoft updated naomi.cpp: Dumped earlier Sega Gun Board firmware.
  • Caps0ff and David Haywood updated opwolf, opwolfa, opwolfj, opwolfjsc, opwolfu: Added C-chip dumps (game-specific EPROM still bad).
  • David Haywood created Taito C-chip device and used in asuka.cpp, opwolf.cpp, rbisland.cpp, taito_f2.cpp, taito_x.cpp and volfied.cpp.
  • Caps0ff and David Haywood updated srdarwin: Replace MCU simulation with internal ROM dump:
    • Using real dump for srdarwin, and hand-modified version to satisfy srdarwinj.
    • Fixes incorrect behaviour for 6th boss (no longer skips first form).
  • David Haywood split decocass state class up so that the dongle types aren't polluting base class.
    • Also added support for bootleg multigame and fixed regression caused by change in draw order.
  • David Haywood updated tehkanwc.cpp: Fixed DIP switches for tehkanwcd (different setup to other sets); added DIP switch locations for all sets in driver.
  • David Haywood identified DIP switches for a number of DECO Cassette sets.
  • David Haywood provided Irem M62 cleanups:
    • Split PROM regions up by function (legacy from when MAME only allowed a single PROM region per system).
    • Made use of multiple palettes and gfxdecode structures.
  • David Haywood updated the upd7810, upd7811 cores: Added internal address maps.
  • David Haywood provided gaelco/ds5002fp updates:
    • Made ds5002fp store battery-backed internal RAM and SFR registers as NVRAM.
    • Made SFR defaults configurable in ROM loading like NVRAM defaults.
    • Made external SRAM persistent as well (some games store scores etc. in it).
    • Cleaned up Touch & Go dump and added preconfigured internal RAM.
    • Created device for Gaelco protection module and removed remaining simulation code.
  • David Haywood decrypted SEGA_315_5133 used by 'seganinja' set.
    • Shares identical code with other sets, just encrypted with a different key.
  • einstein95 added DIP switches to Tsukande Toru Chicchi.
  • F.Ulivi provided initial HP series 80 emulation:
    • Working HP-85A with 16kB RAM, including Capricorn CPU, keyboard, CRT text/graphics modes, timers, and beeper.
    • DC100 cassette, extension ROMs, I/O modules, and integrated printer are not supported.
  • helwie44 and rfka01 updated the ITT3030 driver: Corrected 70-track drive type, and added 35-track drive type and format definition.
  • rfka01 added Commodore PC10-III ROM dumps collected by German vintage computer forum users.
  • rfka01 added original Commodore PC 10/PC 20/ PC 30 in two BIOS variants.
  • Jack Li fixed default DIP switch settings for Parodius.
  • James Baicoianu provided Enhanced Emscripten support:
    • Fixed save/load support and scheduled exit.
    • Improved main loop, simplified integration points, and made JavaScript entry points static members of running_machine.
    • Exposed soft_reset, hard_reset, exit load and save functions, allowing more control of emulation session from JavaScript.
  • Joshua Root fixed #include path with USE_LIBSDL on macOS.
  • Justin Kerk hooked up ibm5150 softlist to compc and europc drivers; changed europc to use single built-in 3.5" drive.
  • MASH updated the wolfpack driver: Fixed missing Torpedo trail.
  • Patrick Mackinlay updated the z80scc device: Added basic wait/DMA request support, renamed WRDY to WREQ to match datasheet.
  • Patrick Mackinlay provided ncr5390 improvements:
    • Improved initiator transfer information logic.
    • Split transfer count/counter.
    • Added rudimentary 53C90A/53C94 support.
    • Reworked initiator transfer information state machine, should now support all SCSI phases
    • Improved handling of DMA/non-DMA commands.
    • Added an undocumented hack to make InterPro work.
    • Implemented interrupt status flag in status register for 53C90A (critical for InterPro).
    • Improved tcounter and DMA/DRQ handling.
    • Corrected tcounter and transfer count zero handling (based on transfers to/from SCSI bus, not DMA).
    • Prevent fifo over/underrun, requires restarting state machine from dma_r()/dma_w().
    • Corrected bus/function complete with FIFO (interrupt only when it empties, but state detected based on SCSI bus).
    • Clear status, istatus and sequence when reading istatus (not status) with active interrupt.
    • Tweaked DRQ behaviour - only assert if there is insufficient data in FIFO.
  • Patrick Mackinlay updated nscsi_hd: Corrected INQUIRY command handling when a non-zero LUN is requested.
  • Patrick Mackinlay updated the interpro driver: Got SCSI working and other improvements:
    • Reworked DMA, added eth registers.
    • Improved 5390 device, removed legacy 539x SCSI stuff.
    • Passes all iogadiag tests if bus error hack is enabled.
    • Implemented basic serial DMA.
    • Switched to ncr53c94.
    • Initial preparation for Ethernet implementation.
    • Implemented timer-based DMA.
  • Risugami improved wheel board on Midway Seattle and Vegas, and added layout for sf2049.
  • shattered updated the sun1 driver: Replaced console hack with upd7201 device.
  • ShouTime updated chihiro.cpp: Added Quest of D Firmware Update DVD dump.
  • ShouTime updated freekick.cpp: Dumped color PROMs for Omega (Nihon System), correcting the colors.
  • superctr added skeleton driver for Yamaha TG100 MIDI module.
    • H8/520 CPU is not implemented, sound chip is Yamaha YMW258-F (likely to be identical to Sega MultiPCM).
  • Tauwasser provided Game Boy/Super Game Boy improvements:
    • Added Super Chinese Land 1.2.3' to MBC1 Collection check code.
    • Fixed MMM01 zero-adjust logic for ROM bank.
    • Fixed Super Game Boy VRAM transfers and removed border hack.
    • Fixed various code style and comment issues.
  • unknown updated macpci: Added more Pippin ROM sets.
  • Brian Troha updated retofinv.cpp: Added DIP switch locations and documented edge connectors.
  • Brian Troha updated wrally.cpp: Added World Rally PCB layout.
  • Brian Troha updated targeth.cpp: Added PCB layout, defined CPU clocks in terms of OSC/resonator, corrected OKI clock, and corrected Target Hits v1.1 program ROM labels.
  • cpsystem3 updated stv.cpp: Corrected Taiwan BIOS label.
  • Enik Land provided sms.xml updates:
    • Fix The Terminator by adding their on-cart RAM.
    • Added notes for games with SK-1100 keyboard support.
    • Corrected Great Baseball (Euro, USA, Bra) release year.
    • Corrected Teddy Boy Blues (Jpn, Ep-MyCard, Prototype) and Ghost House (Sega Card, Prototype) interface types.
  • Guru updated kinst.cpp: Updated hardware info.
  • Guru and R. Belmont updated the abcheck driver: Added default EEPROM so the game boots without going into service mode first.
  • inflatador updated compiling instructions for Fedora Linux.
  • OzFalcon added -output option to documentation with description of available choices.
  • Ryou updated megasys1.cpp: Added information regarding R&T (Rod-Land Prototype).