Release Date

MAME 0.172 was released on 30 March 2016.


Major Announcement

From this release onward, MAME is distributed under a GPL-2.0+ license, with the bulk of code being covered under a 3-clause BSD license.


MAMETesters Bugs Fixed


Contributions

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


  • Ryan Holtz added data-driven shader system for BGFX renderer:
    • Allows an arbitrary number of passes, with arbitrary connections between passes.
    • Ships by default with three effects: default, unfiltered, and hlsl.
      • default: Simple bilinear stretch.
      • unfiltered: Simple nearest-neighbor stretch.
      • hlsl: A close reimplementation of the Direct3D HLSL shaders. Does not currently support bloom or vectors.
    • Select the "shader chain" you wish to use with -bgfx_screen_chains.
    • Adjust the settings to your liking with slider controls, saving and loading settings and presets will be added in a future version.
    • See bgfx/chains/hlsl.json ans bgfx/hlsl/blit.json for JSON format rules.
    • For additional information, see the official MAME documentation.
  • ImJezze updated HLSL :
    • improved Scanline Simulation.
      • Changed the amount of scanline darkness, a setting of 1.0 now becomes fully black (to get the same result as before, halve your current setting).
      • Scanline height now depends on the brightness of the underlying color.
      • The amount of the scanline brightness and overdrive now depends on the scanline darkness.
      • Renamed 'Scanline Screen Height' to 'Scanline Screen Scale' and 'Scanline Indiv. Height' to 'Scanline Height'.
    • Fixed Bloom Level Alignment.
      • Fixed target dimensions of bloom levels, which results in much better alignment, especially for games with very low resolutions. Therefore, current bloom settings might appear less intense than before.
    • Quality and Performance improvements.
      • HLSL now uses non-power-of-two-sized target surfaces (breaks compatibility with graphics cards based on R300/R400/NV30 and older).
      • HLSL target surfaces now have the size of the screen canvas.
      • Removed HLSL pre-scale factor.
      • HLSL now uses a sharp bilinear interpolation to pre-scale textures to screen canvas size, based on Themaister's implementation.
      • Improved overall performance. Based on the previously required pre-scale factors, speedups range 5-50% depending on graphics hardware, more if a higher prescale factor was used.
      • Improved shadow mask quality (pixel-perfect) in screen-mode.
      • Fixed half source texel offset of bloom level alignment.
      • Removed ./hlsl/artwork_support folder.
      • All shaders after pre-scale are now based on screen coordinates (workaround until both raster and vector passes can work on texture coordinates).
      • Disabled distortion shader for more than one screen and for artworks in full mode, does not affect artworks in cropped mode (workaround until both raster and vector passes can work on texture coordinates).
  • Carl updated the at pc driver: Created at motherboard device and split PCI and PS/2 machines into own files.
  • Maurizio Petrarota updated the UI:
    • Enabled user interface navigation through UI_CONFIGURE button (tab key by default).
    • Added support for "covers" images collection.
    • Added support for "gameinit.dat".
    • Improved ROM-less checking at startup.
    • Improved vertical orientation rendering.
    • Fixed missing mouseover highlight.
    • Fixed search in software lists.
    • Fixed DATs reload after path changes.
    • Fixed software load failure from BIOS submenu.
  • ImJezze did some Bloom refactoring:
    • Calculation of bloom dimensions is now done only once, when render target is created.
    • Reduced blur width for non-vector screens.
    • Implemented shadow UV option for source tile mode.
  • Brian Troha updated apple2gs.cpp: Dumped the 341-0749 ROM and confirmed the 341-0728 Apple IIGS ROMs.
  • Vas Crabb added Type-safe C++ printf analog and vector-backed iostreams.
    • Supports most C99, glibc, SUS and MSVCRT format specifications.
    • Allows formatting any object with stream output operator with %s.
    • Replaces strformat, strprintf and strcatprintf.
    • Move to type-safe templates for logerror and popmessage.
    • Remove now-unnecessary I64FMT from calls to logerror/popmessage.
    • Eliminate core_i64_format functions for the most part.
  • Vas Crabb modernised much of the file handling code.
    • Made core_file, osd_file, and avi_file polymorphic classes.
    • Moved osd_file implementations to shareable OSD module code.
    • Made zip/7z implementations of archive_file with common API.
    • Prefer destructors over explicit close functions.
    • Made APIs supply smart pointers.
    • Pass std::string though lots of APIs rather than C string pointers.
    • Added methods for flushing user-space file buffers.
    • Made archive_file create/destroy thread-safe.
    • Fixed buffer overrun when walking zip ECD.
    • Fixed some resource leaks in file handling code.
    • Fixed edge cases where incorrect error code was returned on Windows.
    • Added Solaris PTY implementation.
    • Support ~/$FOO/${BAR} expansion with SDL OSD.
    • Made emu_file handle zip and 7z archives identically.
    • Search archives with CRC+path, CRC+partial path, CRC, path, partial path when loading ROMs/artwork/cheats/etc.
    • Added support for 7z archives via zippath API.
    • Support 7z archives for fullpath loading and media file manager.
    • Made romcmp tool support 7z archives.
  • Vas Crabb improved OSD font API.
    • Release font handles on destruction.
    • Moved font enumeration into OSD, implement for SDL, Windows, OSX.
    • Fixed drawing characters outside Unicode BMP with sdl_ttf.
    • Support TTC fonts with sdl_ttf.
    • Separated font display names from configuration names.
    • Made OSX font configuration name the PostScript face name.
    • Made sdl_ttf configuration name Family|Style.
    • Supply ui_small font as a BDF file with Adobe glyph names.
  • Vas Crabb fixed stack smash bugs in INP read/write and better encapsulate the INP header I/O code (thanks Tafoid for reporting), fix divide-by-zero in pathological case of zero-frame recording.
  • Vas Crabb fixed file naming issue when creating new image from internal file manager with media loaded (thanks BIOS-D for reporting).
  • Vas Crabb fixed many mismatched free() / delete / delete [] errors.
  • ImJezze cleaned up primary.fx
    • Split primary.fx into 3 techniques for vector buffer, screen and UI pass.
    • Moved register_texture() for shaders outside of texture_info creation.
    • Added render_primitive parameter to register_texture(); currently unused.
    • Removed other unused register_texture() definition.
  • Roberto Fresca provided IGS009 driver improvements: Added both missing PPI8255 devices and routed all inputs/outputs through them. Derived a memory map for Grand Prix '98, that seems to lacks of these devices.
  • Roberto Fresca reparented all sets of IGS Jingle Bell. Added technical information about the hardware.
  • Happy provided few miscellaneous N64 changes / improvements:
    • Changed MemPak formatting code to better document actual format.
    • Avoid adjusting screen timings when VI blank video mode set.
    • Fixed: PIF reportedly only clears top bit of status byte.
    • Fixed: DD read fail needs to mask against head as well as track.
  • Vas Crabb and Ioannis Bampoulas provided crazybon improvements:
    • Updated DIP switch descriptions/defaults according to manual.
    • Hooked up reel stop buttons and add to layout.
  • Vas Crabb and Ioannis Bampoulas added original Dyna Cherry Master '99 QL-1 V9B.00 set:
    • Renamed existing set to cmast99b - it's hacked to remove Dyna name.
    • Added DIP switch settings and defaults from manual, nothing confirmed.
    • Confirmed correct ROM loading.
    • Added notes, including how to reach input test.
  • Curt Coder updated the newbrain driver: Rewrote the driver to modern standards.
  • Curt Coder updated the cop400 core: Implemented the MICROBUS interface.
  • Badbaud updated peplus.cpp: Added dump of cap1144.u50.
  • R. Belmont updated segam1audio.cpp: Fixed ROM mapping (MT6147) and corrected authorship.
  • Roberto Fresca updated Butterfly Dream 97: Created its own machine driver. Perfectly decoded graphics for gfx bank 1.
  • Roberto Fresca updated Butterfly Dream 97: Decoded graphics for gfx bank 2.
  • Lord Nightmare updated the NoteTaker driver: Documented more multiprocessor related addresses, fixed some address map issues.
  • ImJezze provided HLSL presets:
    • Added general presets for raster and vector screens.
    • Added special presets for Game Boy (monochrome LCD) and Game Boy Advance (color LCD).
  • Curt Coder updated ibm5170.xml: Added SICOS mouse driver and SICOS Paint.
  • Roberto Fresca updated Super Poker: Added the missing PPI 8255s and routed the involved inputs/outputs through them. 3super8 has PPI initialization routines, but seems to be a leftover since it lacks them. Also cleaned up the driver and added technical notes.
  • John Parker added layout for Frankie Dettori's 7th Heaven.
  • Lord Nightmare updated the NoteTaker driver: Hooked up more of the IOCPU I/O registers. Separated reset functions for IOCPU and EmulatorCPU.
  • Lord Nightmare updated the NoteTaker driver: Updated documentation further. Added commented out I/O map for the EmulatorCPU.
  • Angelo Salese rewrote Super Cross II driver due to relicensing.
  • Lord Nightmare updated the NoteTaker driver: Implemented the DAC, DAC Timer, and DAC FIFO, the BIOS now beeps on boot. Fixed several wrong polarity status bits. Documented where the framebuffer lives. Better documented the boot process. Hooked up the VSync Interrupt.
  • John Parker updated Frankie Dettori layout to MAME 'dark' style.
  • Dirk Best rewrote the svi318 driver.
    • Supported are the SVI-318 and SVI-328 systems, and a slot system which adds support for the following expander slot options:
      • SV-601 Super Expander.
      • SV-602 Single Slot Expander.
      • SV-603 Coleco Game Adapter (no controller support yet).
    • The slot expander cards enable support for the standard Spectravideo expansion slots. Of those, the following cards are fully emulated:
      • SV-801 Disk Controller (with 2 disk drives).
      • SV-802 Centronics Printer Interface.
      • SV-803 16k memory expansion.
      • SV-805 RS-232 Interface.
      • SV-806 80 column card.
      • SV-807 64k memory expansion.
  • Lord Nightmare updated the NoteTaker driver: Hooked up screen framebuffer. Hacked the Odd/Even interrupt so screen drawing happens.
  • Lord Nightmare updated the NoteTaker driver: Fixed another typo in BIOS 1.5, no longer runs off into the weeds and actually tries to load from floppy now. Needs FDC hooked up still.
  • Brandon Munger provided r9751 improvements:
    • Fixed more DMA issues and added more logging.
    • Moved PDC floppy command trigger to correct register.
  • Vas Crabb added common debugger commands to global menu bar in OSX. Also fixed occasional crash in Copy Visible. Note that copy visible, paste, toggle breakpoint, and view options still require you to use context menus in windows. Debug/Run menus only work when a debugger window has focus, so Break is less useful than it could be.
  • O. Galibert updated the floppy device: Fixed subtle interaction between wd_fdc initial restore and floppy reset.
  • Roberto Fresca updated IGS Super Poker: Decrypted all the US/UA sets. They are still not working due to hardware differences with the former ones laying in the driver. I/O are driven through IGS custom IC's instead of 2x PPI8255 devices.
  • Lord Nightmare updated the NoteTaker driver: Attached FDC and floppy drive.
  • Lord Nightmare further updated the NoteTaker driver: Began to hooking up DiskReg register.
  • Couriersud provided netlist updates:
    • First steps to move towards c++11.
    • Based plist on std::vector.
    • Replaced pstack with std::stack.
    • Removed pnamed_list.
    • Use c++ "for each" in a number of places.
    • Fixed two "time bombs".
  • Calamity implemented integer scaling in core renderer:
    • Moved -unevenstretch option to core renderer.
      • -unevenstretch: fractional stretching (default).
      • -nounevenstretch: integer scaling.
    • Added new options to core renderer:
      • -unevenstretchx: fractional stretching on horizontal axis, integer scaling on vertical axis.
      • -intscalex: horizontal integer scale factor, default is 0 (auto).
      • -intscaley: vertical integer scale factor, default is 0 (auto).
  • Lord Nightmare updated the Symbolics 3600 driver: Added more documentation of the FEP PCB from PCB pictures.
  • Lord Nightmare updated the Symbolics 3600 driver: Fixed ROM mapping, add a few more PLD/PLA/PAL labels.
  • Couriersud updated TTF font loading: a lot of TTF fonts (including C/J/K fonts like unifont) do not have a type attribute "Regular". This fix will load the first font found if no "bold" "bold italic" "italic" or "regular" attribute was found.
  • JacKc provided Neo-Geo updates:
    • Added correct ROM labels and locations for ASOII and Burning Fight early prototypes.
    • Added ROM locations for Last Resort prototype.
    • Marked alpham2p AES VERSION.
    • Marked burningfp AES VERSION.
    • Marked lresortp MVS VERSION.
  • Angelo Salese converted shanghai.cpp to use the non-legacy hd63484 video device.
  • Brad Hughes rewrote overly complex rawinput_device_improve_name function for rawinput module, plus fixing some other defects in input modules as detected by coverity.
  • Carl updated pcat_dyn.cpp: Added sound and marked toursol working.
  • Lord Nightmare updated the Symbolics 36xx driver: Renamed driver from s3600 to s3670 to better reflect the actual model of what we're trying to emulate. Added more memory maps from the patent, but these do not seem to match the 3670 exactly, more investigation is required.
  • Lord Nightmare added additional sanity checking to the tms9927/crt5027 core.
  • R. Belmont and robj provided apple3 updates:
    • RAM is always present at FFCx, eliminated previous need for hack.
    • VIAs are clocked by PRE1M (1 MHz), fixes Confidence Test.
    • Fixed joystick reading; works in Sandman and Atomic Defense.
    • Hooked up HBlank input to VIA 1 PB6.
    • Support raster splits; Atomic Defense is playable (pick joystick B).
  • trinitr0n/Ian F. updated symbolics.cpp: Added model list of the various Symbolics Inc. Lisp machines.
  • f205v and MetalliC updated documentation for the NAOMI/Triforce/Chihiro drivers.
  • Calamity implemented integer scaling in core renderer.
  • Vas Crabb provided nbmj8688 improvements:
    • Improved mapping of start buttons in two-player cocktails with LCDs.
    • Flipped Player 2 view in two-player games with LCDs to better represent what they see from their side of cocktail cabinet.
    • Added DIP locations for and livegal.
    • Documented DIP switch functions/locations for bijokkoy, bijokkog, housemnq, housemn2, livegal, mcitylov, iemotom, ryuuha, kanatuen, kyuhito and idhimitu.
    • Made analyser switch a toggle for many games.
  • Mathieu Patard corrected ROM names in seganinj set. Also added correct 'rev A' sprite ROM (the program ROMs were rev. A, looks like this ROM was missed when it was dumped before).
  • Couriersud updated the netlist library: code maintenance.
    • Renamed netlist_analog_t to analog_t.
    • Straightened object model.
    • Reduced access to member variables.
    • Use pvector<analog_net_t::list_t> for groups.
    • Simple coverity fixes.
  • Lord Nightmare updated the Symbolics 3670: Added a lot more notes about the FEP/NFEP board PALs and PROMs noting where the equations for various PALs/PROMs are in the patent .
  • Lord Nightmare updated the Symbolics 3670: Traced out more of the FEP v24 I/O memory map based on the PALs from the patent.
  • R. Belmont started filling in the apple3 software list.
  • Enik Land improved documentation for SMS software and input devices.
  • R. Belmont updated the apple2 driver: Started reverse-engineering the AE PC Transporter card.
  • Ryan Holtz updated sliders.cpp: Made Alt+Arrow minimize or maximize value.
  • Pugsy swapped the endianess of the md_slot device bus to big endian, fixing megadriv cheats.
  • Barry Rodewald updated the svga_s3 video device: Fixed potential crash when hardware pointer is at the edge of VRAM, and fixed viewport scrolling in XF86_S3.
  • Andrew Welburn updated atarittl.cpp: Bugle ROM redumped for Steeplechase.


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