Release Date

MAME 0.185 was released on 26 April 2017.


MAMETesters Bugs Fixed


Machine Support

New working machines


New working clones


Machines 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:


  • Couriersud did pstring, pdynlib, pfmtlog refactoring:
    • pstring:
      • Changed to use std::string for storage (removes allocation code).
      • Added support for UTF16LE.
      • Renamed size() to mem_t_size() and len() to length(), added size() == length().
      • Added empty() and simple compare().
    • Simplified pfmtlog, added more C++.
    • pdynlib: Added a dynproc type to dynlib to wrap dynamic library calls.
    • Fixed two coverty scan issues and various clang warnings.
  • Couriersud did Netlist code refactoring:
    • More use of C++ features.
    • Some CRTP in pfmtlog.
    • Demangled code for truthtables.
    • Used more constexpr.
    • Rewrote main loop.
    • Used default constructors and assignment operators were applicable.
    • Optimized 7448 and 9316.
    • Startup time decreased by 25% to 30% (netlists like pong/kidniki are parsed, analyzed and constructed in around 15 ms).
    • Run performance has improved by about 5%.
  • AJR renamed the write-only -printer image instance type to -printout (the former conflicts with printer port in several drivers).
  • AJR updated the osbexec driver: Added experimental support for RS232C serial ports.
  • AJR provided UI input map fixes:
    • Fixed a longstanding bug that prevented binding several ORed buttons to any input belonging to a non-root device.
    • Fixed a visual glitch when assigning inputs to analog sequences.
  • AJR updated decocass.cpp: Corrected missile colors for Highway Chase and Astro Fantasia.
  • AJR updated segas24.cpp, segaybd.cpp, segajw.cpp: Use 315-5296 for I/O.
  • AJR updated segaxbd.cpp: Rewrote CXD1095 as a device and also add it to megaplay.cpp, megatech.cpp, cyclwarr, and bigfight.
  • AJR updated segaybd.cpp, srallyc: Added OKI MSM6253 device.
  • AJR added VS9209 I/O device for various Video System games.
  • AJR converted Sega Model 1 Sound Board and Z80-based Digital Sound Board to use proper UART-based serial interfaces.
  • AJR updated segas32.cpp: Input modernization:
    • Use I8255 or MSM6253 devices for most non-JAMMA inputs.
    • Separated service and test inputs in Multi-32 and twin-unit sets.
    • arescue: Four coins are recognized, not just two.
    • ga2: Use MB8421 device for V25 communications.
    • orunners: Assign keys to some 2P inputs.
    • Use Sega 315-5296 device for primary I/O.
    • Restored Coin 2 inputs to f1lap, radm, radr, slipstrm.
    • Identified onboard service inputs and restored them to practically all games.
  • AJR updated hotrod: Read pedals through MSM6253.
  • AJR updated kokoroj2: Corrected inputs, changed name to match title screen.
    • Found switch to disable CD and printer, game presumably works now, albeit imperfectly.
  • AJR updated the jvs13551 device: Removed identical second halves of overdumped MCU PROMs.
  • AJR created device_palette_interface mixin:
    • Provides most of the functionality from palette_device besides initialization/decoding routines and RAM interface.
    • Updated screen_device and device_gfx_interface to use device_palette_interface rather than palette_device.
    • Modified v9938 and v9958 to use device_palette_interface rather than a subdevice.
  • caius, Andreas Naive and AJR updated Seibu/TAD PROMs:
    • toki: Added dumps of bipolar PROMs. (caius)
    • bloodbro: Added dump of bipolar PROM. (Andreas Naive)
    • dynduke, raiden, skysmash, cupsoc: Documented undumped PROMs for many sets. (AJR)
  • Carl updated the ds1205 device: Added Dallas DS1205 Multikey.
  • Dirk Best updated the popper driver: Fixed memory map, finished gfx rendering - game is fully working again.
  • Nigel Barnes updated the dgnbeta driver: Added software list with OS-9 system and apps.
    • Replaced 5.25" floppies with 3.5", and added sounds.
    • Enabled floppy motor.
    • Removed tag lookups.
  • Luca Elia updated cesblit.cpp: Improved blit coordinates - fixes some missing graphics in e.g. galgame4.
  • Nathan Woods created 'util::arbitrary_clock' class template representing a clock with known epoch.
    • Converted NTFS filetime code and Imgtool Mac datetime code to use new template.
  • Nathan Woods updated the coco driver: Further cleanups in cartridge slot signal handling:
    • Attempts to make signals on the CoCo cartridge slot (CART, NMI, HALT) more standardized, particularly the practice of Program Paks tying the CART line to Q.
    • Should fix some outstanding bugs in how these signals were passed around when using the CoCo Multi-Pak interface.
  • Nathan Woods fixed issue that could cause bogus arguments to be reported incorrectly.
    • Example: 'mame -whatever nes' would previously be reported as "Unrecognized argument: nes".
  • Nathan Woods did some refactoring in response to MT6531:
    • Exposed emu_options image and slot selections as maps, store data that persists across sessions here rather than subverting core_options.
    • Overhauled various implementations of get_default_card_software().
  • Nathan Woods fixed out of bounds issues in NeoGeo memory access.
  • Nathan Woods did miscellaneous cleanups:
    • Fixed a pedantic MSVC warning in dipalette.h.
    • Made a few random methods 'const'.
    • Changed a lookup within the softlist code to use std::find_if().
  • Nigel Barnes updated the dragon32 driver: Corrected release year and company of Spanish clones.
    • Added joysticks to all machines, Added floppy sounds.
  • Nigel Barnes updated the dragon200e driver: Added chargen ROM, not working (possibly MC6847 issue).
    • Demoted to MACHINE_NOT_WORKING.
  • Nigel Barnes updated the d64plus: Added CRTC with chargen ROM and second screen output, not yet hooked up.
    • Demoted to MACHINE_NOT_WORKING.
  • Nigel Barnes updated the dgnalpha driver: Added older Boot v0.4 ROM.
    • Replaced 5.25" floppy drives with 3.5", and added sounds.
  • Nigel Barnes updated the atom driver: Added csw cassette format.
  • Nigel Barnes updated the dragon driver: Moved all Dragon cartridges from coco_cart to dragon_cart.
  • Nigel Barnes updated the phc25 driver: Added character generator ROM, not yet used.
  • Nigel Barnes updated the electron driver: Added Power Software joystick interface.
  • Nigel Barnes and O. Galibert updated the bbc driver: Removed the direct update handler (not supposed not to be useful any more).
  • O. Galibert updated the ti8* driver: Removed the gross boot hack - breaks the Flash-based models.
  • O. Galibert updated the abc80x driver: Removed the direct update handler.
  • O. Galibert updated the multiface 2 device: Disabled the direct update handler.
    • Device should be overhauled using the by now-reversed PAL information.
  • O. Galibert updated the i86 core: Added decrypted opcodes space support.
  • O. Galibert removed support for direct updated handlers.
  • O. Galibert updated the mlanding driver: Fixed tms32025 memory map.
  • O. Galibert updated the tms32026 core: Fixed status register and banking.
  • Ted Green updated the voodoo device: Changed multi base address selection to fix funkball textures.
  • R. Belmont updated the vp101 driver: Improved support for reduced-cost VP050 version.
  • R. Belmont updated the piratesh driver: Fixed to pass POST, which earns it working with imperfect graphics.
  • R. Belmont updated the mac driver: Fixed major 0.183 regression in Mac II series.
  • R. Belmont updated the megatouch driver: More work clarifying the various versions, thanks to Merit documentation.
  • Samuele Zannoli updated the chihiro driver: Added high level simulation of an2131sc - OutRun 2 runs with USB enabled and no patches.
  • Vas Crabb turned pstring iterator into a real forward iterator that works with standard algorithms.
  • Vas Crabb made the core assume LLVM libc++ if __llvm__ is defined but __GLIBC__ is undefined (fixes bx build with MacPorts clang).
  • Vas Crabb applied environment variable substitution to bgfx_path (github issue #2201).
  • MetalliC updated the naomi, triforce, chihiro drivers: Converted remaining bad CHD v4 to good v5, track1 and track2 length was restored based on now-known data patterns.
  • MetalliC updated naomi.cpp: Export mushik2e/mushi2eo are 3-in-1 Mushiking II, III and III+ games.
  • Antoine Mine updated the thomson driver: Fixed regressions to (legacy) floppy support.
  • Happy allowed debugger 'dasm' command to traverse virtual spaces with unmapped holes.
  • Happy updated the uml framework: Added case for parameter PTYPE_CODE_LABEL in UML instruction disassembly.
  • SailorSat updated the vicdual driver: Added 97269-P-B and 97271-P daughterboards for nsub.
    • Confirmed PR-33 and PR-34 on the nsub motherboard - type is MMI 6331 (32*8).
    • Added the 97269-P-B daughterboard - gradient is still a simulation, but uses the PROMs (starfield is still missing).
  • fulivi and A.Kueckes implemented HP 9845T driver (9845 with HP987080A hardware-accelerated monochrome graphics).
    • Fixed a race condition in 45T, added second tape drive (T14), 98035 module default SC is 9 now.
    • hphybrid: Hopefully fixed a super-subtle race condition in 9845T video hardware.
  • David Haywood updated acchi.cpp: Promoted to working state:
    • Added scantimer interrupt, inputs work in game.
    • Added video banking.
    • Added an NMK112 for sound banking, might not be hooked up correctly, difficult to know without understanding Japanese.
    • Oki frequencies etc. need verifying on PCB.
  • Jean-Francois DEL NERO updated the mcs51 core: Fixed indirect memory access opcodes dec, inc and xch_a.
    • Indirect access can't use SFRs, only extra memory above 0x80.
  • htjywf2008 updated the i86 core: Fixed JNL flags test (github issue #2200).
  • Brian Troha updated namconb1.cpp: Corrected Coin inputs and added in Coins 3 and 4 as needed.
  • RebeccaRGB updated the wirels60 driver: Made P2 IO port optional.
  • moralrecordings updated the sblaster device: Save DSP state, fixed incessant popping before first use.
  • moralrecordings updated the ymf262 device: Added save state support and slot pointer checks.
  • kazblox provided nes improvements:
    • Marked edu2k48 as working, added notes about mouse titles.
    • Made koko not use battery-backed WRAM as shown in PCB picture.
    • waixing.cpp: Slight modernizations - waixing_sgzlz_device now implemented the way CaH4e3 does it, gets some titles working.
  • einstein95 fixed Head Panic modesty settings (more modesty means more clothing; nude/bikini pics are displayed after a level when set).
  • OzFalcon provided input/service button fixes and cleanups:
    • realbrk.cpp: Removed service button hard-coded keycode assignment.
    • hanaroku: Use standard hanafuda inputs and key assignments, remove hard-coded IPT_SERVICE assignments.
    • aleck64.cpp: Corrected Service/Test Button assignments.
    • suprstar: Remove hard-coded keycode assignments.
    • ampoker2.cpp: Made various key assignments consistent.
    • albazc.cpp: Assigned "Data Clear" to IPT_MEMORY_RESET, changed "Medal In" and "Pay Out" to standard buttons, changed lockout "Key" to PORT_TOGGLE type, corrected "Payout" button to use "IPT_GAMBLE_PAYOUT", corrected IPT_SERVICE assignments, set IPT_SERVICE and Double up buttons as standard assignments, set "Ext In 1" & "Ext In 2" as IPT_OTHER.
  • limyz fixed gtrfrk6m boot by correcting Flash card memory size to 32MB, works for gtrfrk5m as well (thanks to @sakamoto-neko).
  • rtw updated naomi.cpp: Redumped "Initial D Arcade Stage Ver. 2 (Export) (GDS-0027)".
  • ShouTime documented that Taito's T.T. New York New York ROMs match the Sigma set.
  • fink added later SuperMac Spec/8 III V1.3 NuBus ROM.
  • Peter Bortas fixed coverity CID 157540 and CID 15741: Missing comma resulting in unintentional string concatenation.
  • NekoEd updated the sun4 driver: Added SPARCstation IPX V2.3 and SPARCstation 1 V2.2 boot ROMs.
  • Pugsy fixed writes to decrypted opcode memory space.
    • Separated EXPSPACE_RAMWRITE and EXPSPACE_OPCODE case statements to allow opcode writes to access the correct memory.
    • Example: In flicky this will now disable cat collisions with the main sprite: maincpu.ob@3ac6=c3.