Release Date

MAME 0.173 was released on 27 April 2016.


MAMETesters Bugs Fixed


Contributions

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


  • JacKc provided new Android icon images.
  • Roberto Fresca updated Crystal Colours (Ver 1.02): Added default NVRAM. Also added more technical notes.
  • Roberto Fresca added dedicated inputs for both Crystals Colours sets. Also added more technical notes.
  • AJR implemented iterate over core classes C++11 style.
  • David Haywood borrowed string processing code from ui.cpp so that £ works in layouts (using UTF-8 encoding at least).
  • Krick updated sc4fd7tha.lay with UTF8 encoding of £ sign.
  • AJR made the core recognize the full range of controller inputs.
  • jmallach provided an initial Catalan translation.
  • MetalliC updated naomi.c: add Derby Owners II protection key.
  • AJR reduced the incidence of required_device<palette_device> in subdevices.
  • Ville Linde updated the UML recompiler: Added FCOPYI and ICOPYF instructions to pass raw data between integer and floating-point registers.
  • Happy updated the mips3 core: Fix behavior for 32/64 bit mode floating point register aliasing.
  • Roberto Fresca updated the Magic10 driver: Added technical notes, game status, defined clocks, fixed inaccurate notes, and some driver cleanups.
  • O. Galibert updated screen.cpp: svg rendering from inside the rom.
  • Ashura-X updated the Portuguese (Brazil) translation.
  • Carl improved the luaengine: add plugin options menu.
  • Lord Nightmare updated Major Havoc: Updated Gamma CPU address decoding/mirroring from the schematic.
  • anonymous updated fb01.cpp: fix ROM label to match actual chip.
  • Lord Nightmare updated Magic Crystals: Improve ROM labeling for Japan set based on PCB picture, and noted that the Japan set we have is revision 2, but a revision 0 exists, undumped.
  • Lord Nightmare updated the TMS5220 core: add a 'combined rs/ws write' function for systems which require both pins to change at exactly the same time and not to reset the chip.
  • AJR reverted software-installed slot/image options when changing software. Removed emu.h's stealth include of emuopts.h through mconfig.h; reduced dependency on emuopts.h in other headers and source files. MCFG_CPU_FORCE_NO_DRC is now a CPU configuration parameter rather than a global one; it still works to override the -drc option setting.
  • dink fixed some missing gfx in bbusters / mechatt.
  • Calamity made overscan on integer scaled targets optional (add option -intoverscan).
  • Carl updated the luaengine: direct and region accessors.
  • Enik Land documented what he thinks is a real bug of the Japanese game Sports Pad Soccer: part of the player 2 input is read from player 1 input instead. Also, reorganized code of the Japanese Sports Pad controller device and replace some PORT_CUSTOM/PORT_CHANGED callbacks with PORT_READ_LINE/PORT_WRITE_LINE.
  • Carl added an experimental cheat lua plugin.
  • F. Ulivi provided improvements to tape driver of hp9845b.
  • Fabio Priuli updated info.cpp: Improved documentation of input devices in the -listxml output, since having just a generic 'number of buttons' is rather pointless in the context of home systems with configurable controllers (being them keyboards, keypads or joypads). Now the various controllers are listed separately with the number of buttons they have. Frontend authors who relied on the "buttons" attribute of the input node for any kind of filter shall now scan all available controllers and take the maximum among their "buttons" attribute (possibly discarding keyboards and keypads if they want) to recover the old value.
  • Fabio Priuli updated info.cpp: Started to acknowledge PORT_16WAY inputs in -lx, since they were reported as 8-ways so far.
  • AJR started a revision of devfind, cleaning out some legacy stuff:
    • Eliminate the cached device_t::m_region pointer and its region() getter method. Devices that need to bind to a region with the same tag should use optional/required_memory_region or optional/required_region_ptr with DEVICE_SELF as the subtag; this improves error checking. (DEVICE_SELF has been moved to device.h for greater visibility in the source.).
    • Allow required/optional_region_ptr to specify a specific length which must match that of the region found.
    • Implement finder_base::finder_tag() getter for diagnostic purposes.
    • Perform some (not very efficient) validity checks on memory region finders instead of allowing them to automatically pass.
    • Privatize device_memory_interface::m_addrspace.
  • f205v updated the Magic 10 driver: Added technical notes and a missing PLD dump.
  • Couriersud added m62(kidniki) to nl.lua. Started some experiments around parallel solving of linear equations. This code is not active. Fix kidniki audio performance.
  • Carl updated plugins/timer: add sample plugin for game time.
  • Fabio Priuli updated info.cpp: first attempt to fix the longstanding issue about inputs owned by devices being always tagged as P1 inputs in -lx.
  • Carl updated plugins/cheatfind: start lua cheat finder library.
  • Fabio Priuli updated the intv driver: Converted controller inputs to be slot devices.
  • Fabio Priuli updated the intvecs driver: Converted hand controllers, keyboard and synth to be slot devices, by using a temporary hack to workaround the impossibility to plug the same device into 2 different slots as these keyboard require.
  • Brad Hughes provided a skeleton implementation for Universal windows main app classes.
  • YuiFAN added string translation for Chinese (Traditional / Simplified).
  • Fabio Priuli updated diimage.cpp: Allow image devices to be configured with a fixed (not user selectable) piece of software and updated a few options and menu to acknowledge such possibility.
  • Fabio Priuli updated macs.cpp: Converted to use generic cartslot with fixed software configuration. Cleaned up loading and banking systems in the driver as a result.
  • Joakim Larsson added extra bit as delay between bytes to make 1 stop bit work.
  • marathonman updated the mips3 core: Fixed DMULT and DMULTU in both interpreter and DRC modes.
  • Fabio Priuli updated ng_aes.cpp: converted AES controllers to work through slot devices. Also, separated more clearly the CD component by the base unit.
  • Carl and R. Belmont updated the am9517 device: add clone with the non-standard mask behavior of the PC Transporter ASIC.
  • Peter Ferrie and R. Belmont further updated the apple2 driver: updated PC Transporter to use alternate DMAC emulation & fixed V30 clock.
  • R. Belmont updated the apple2 driver: PC Transporter: halt V30 properly on startup, XT has 8-bit ISA, improved 6502 CGA framebuffer writes.
  • O. Galibert updated screen.cpp: Fix alpha handling, cdkong looks good now.
  • Ryan Holtz updated the bgfx renderer: Add data-driven render target clearing.
  • Couriersud significantly improved speed of the netlist code:
    • added a new solver using compressed row format.
    • fixed sorting
    • As a result, netlist performance on kidniki nearly doubled. The performance increase is mainly due to the fact that sorting decreases the number of operations for gaussian elimination of the kidniki matrix from ~7800 to 707. In addition, compressed row format improves L1 usage.
  • AJR eliminated device_t::static_config, a type-unsafe legacy feature.
    • Rewrote or removed every last instance of MCFG_DEVICE_CONFIG and its two aliases, including within comments and dead code.
    • Made the Z80/Z180 daisy chain an interface that interfaces with the existing interface. Z8000 has been hooked up to this as well (p8000_16 already configures it), but currently does nothing with it.
  • Ryan Holtz updated the mips3 core: Fixed interpreter bug where BADCOP exceptions would execute the faulting opcode twice.
  • R. Belmont updated the apple2e driver: fix C800 internal ROM reading.
  • Firehawke added a new PlayChoice-10 BIOS (Single Screen, Freeplay fix, Newer?).
  • R. Belmont updated the apple2 driver: fixed inverse text drawing.
  • Couriersud updated some init calls that all returned false. No need for a return value in this case.
  • AJR made the core iterate over devices C++11 style. Replace the old device_iterator and its specialized versions with functionally equivalent classes that use standard operators to yield references to devices/interfaces rather than pointers. With range-based for loops, they no longer have to be stored in named variables, though they can also be reused concurrently since the iteration state is now maintained by a subclass. Add a few more typical getters to device_t::subdevice_list.
  • Ryan Holtz updated the bgfx renderer: Added SuperEagle shader.
  • ImJezze refactored distortion pass:
    • separated curvature parameter into distortion, cubic_distortion and distort_corner.
    • distortion and cubic_distortion can be negative, to compensate each other.
    • distort_corner is intependent from the image distortion.
  • Fabio Priuli updated the neogeo driver: reworked inputs to work through the slot device interface. You can now configure the 15-pin ports available in the multicart driver (neogeo) with the -crtl1 and -ctrl2 options. Thus, if you want to launch janshin in neogeo with the mahjong control panel you shall now prescribe -edge "" -ctrl1 mahjong and set accordingly the dipswitch (the first option disables inputs from the edge connector). When you run single game drivers (e.g. mslug, or kof94, etc.), instead, a unique controller is available and cannot be modified. In particular, the janshin driver already comes pre-configured in the proper way.
  • Brad Hughes refactored OSD window.
    • Unified renderer in osd_window as std::unique_ptr.
    • Made windows all std::shared_ptr<window_type>.
    • Made window lists std::list<std::shared_ptr<window_type>>.
    • Updated OSD SDL worker_param to not use malloc (not compatible with smart pointers).
    • Made renderer pointer to window a weak reference. May not be available during destruction of the window.
  • Roberto Fresca updated Alta Tensione: Added technical notes, game status, and patched the boot protection.
  • Couriersud implemented dynamic loading of precompiled solver code.
  • Fabio Priuli updatedf saturn.cpp: converted controllers to work through slot devices, cleaning up the related code.
  • Fabio Priuli updated saturn.cpp: Added support for SegaTap adapter (4 controllers) and Sega Multitap adapter (6 controllers). Saturn Bomberman can now be played as intended.
  • Fabio Priuli updated softlist.cpp: add support for "rom_ignore".
  • Roberto Fresca updated the itgambl2.cpp driver: Added technical notes and some clean-ups.
  • R. Belmont updated the apple2 driver: fixed Apple II J-Plus text drawing, and updated notes.
  • Brandon Munger updated the r9751 driver: add more floppy debugging and fix DMA masking.
  • Fabio Priuli updated ioport.cpp: extended core input to support up to 10 players.
  • CoolMod dumped Dreamcast bios MPR-21933, confirmed match MPR-21931.
  • Yu updated sf.c: does not have COIN3, and protection MCU on sfj is an i8751.
  • Fabio Priuli updated cgenie.cpp: expanded .cas support so that also files created by Genieous emulator can be loaded.
  • ImJezze added "selection" parameter to chain input sampler.
    • if specified all textures (.png) within the same directoy of the given texture will be selectable via slider in the UI.
    • also added slider for "shadow mask tile mode" to HLSL chain.
  • Ryan Holtz and Hyllian updated the bgfx renderer: Ported xBR shaders from libretro.
  • Vas Crabb provided archive handling improvements.
    • Improve error handling in 7zip file I/O code.
    • Fix reading 7zip files >=4GB on LP32/LLP64 targets.
    • Update to LZMA SDK to 15.14, supports new 7zip features.
    • Stop relying on local hacks to LZMA SDK.
    • Support most ZIP64 features excluding directory compression.
    • Support LZMA-compressed files in ZIP archives.
    • Support Info-ZIP UTF-8 file name fields.
    • Fix phantom files/directories when browsing archives.
    • Report archive handling errors.
  • Vas Crabb updated expat to 2.1.1 for security and bug fixes.
  • Samuele Zannoli updated the xbox\chihiro drivers: usb is now partially usable.
    • control,bulk,interrupt transfers work.
    • started hle simulation of usb devices on chihiro baseboard.
    • there is a first implementation of xbox game controller.
    • the chihiro bios can now enter system configuration menu.
  • F. Ulivi updated the hp9845 driver: added capabilty to load option ROMs.
  • Michael Zapf updated the ti99 driver: Several code changes.
    • GROMs with clock input line and improved timing behavior.
    • TMS9928A delivers GROMCLK if configured.
    • TI-99/8 mainboard: implemented custom chips (vaquerro, mofetta, amigo) for low-level emulation.
    • fixed HOLD feature of TMS9995.
    • moved v9938 from console to EVPC where it belongs, dropped videowrp.
    • fixed issues with paged37x cartridges.
    • fixed issues with Horizon Ramdisk.
  • Happy updated the n64 driver: Do SI dma transfer after delay, not before.
  • David Haywood updated tourvis.cpp: changed to use Software Lists, trimmed all ROMs to correct sizes, confirming that the majority match exactly the PCE roms (only 3 differ, Gomola Speed which could be an alt revision, R-Type II which has been hacked, and Be Ball where there is an unknown single byte change).


Game Support

New machines added or promoted from NOT_WORKING status


New clones added or promoted from NOT_WORKING status


New machines marked as GAME_NOT_WORKING


New clones marked as GAME_NOT_WORKING


Notable new WORKING software list additions


Notable new NOT_WORKING software list additions