Release Date

MAME 0.147 was released on 17 September 2012.


The known contributors for this version are, in alphabetical order:

Specific Contributions

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

  • Alegend45 updated the i386 core: xlat implementation fix.
  • Angelo Salese fixed a sign bug with CVT.WS opcode in v810 CPU core.
  • Couriersud updated netlist implementation:
    • Now supports any resolution fitting reasonably into a UINT64;
    • Execution now uses a list sorted by execution time;
    • Implementation now supports analog and digital inputs / outputs;
    • First step in a move to "terminals" being both input / output;
    • Improved object model Pong:
      • Rewrote video code, now emulates a monitor by analyzing the analog video signal and identifying vsync and hysnc pulses.
      • Removed all hacks.
      • Overall performance increase of about 10% over the previous "pongf" implementation.
  • qmc2 provided a patch that enables output of <info> elements stored in software lists through –listsoftware.
  • Robbbert updated Flicker: Boots up, some buttons working. WIP.
  • Osso continued new device implementation for SN76496 and clones: mrdo.c, pachifev.c, tp84.c.
  • Robbbert updated Flicker: added remaining inputs, some notes, sound (of sorts), marked as working.
  • Angelo Salese implemented remaining BSU opcodes in V810 CPU core.
  • Angelo Salese wrote up a bare-bones M50458 OSD video chip device, used by Nintendo Super System HW.
  • Osso continued new device implementation for SN76496 and clones.
  • Angelo Salese wrote a preliminary S-3520CF RTC chip device, used by Nintendo Super System.
  • Robbbert updated the zac_1 driver: added display, inputs, notes. ewf and sshtlzac marked as working.
  • trap15 fixed G-Stream G2020's sound banking. Compared with a real PCB and everything sounds as it should.
  • Jim Stolis added IGT ID-023 Protocol to driver. This additional DBV protocol allows all remaining unsupported sets to accept dollar bills in-game. The protocol is switchable via driver configuration (along with denomination).
  • David Haywood shared palette fix for certain sms-based games in Mega Tech.
  • Brian Troha updated 20pacgal.c: Add PCB layout for Pacman - 25th Anniversary Edition.
  • Angelo Salese provided a preliminary implementation of the Fujitsu MB90092 OSD chip, used by Super Famicom Box.
  • Antonio Giner provided a fix for an SDL sound bug surrounding use of -speed and pausing frequently causing corrupt sound.
  • Curt Coder fixed default SDL OSX UI toggle key name.
  • Curt Coder added Swedish/Finnish SDL keymaps for OSX and Linux.
  • Ville Linde updated the ppc core: Implemented PPC403 DMA chaining.
  • Aaron Giles created new sprite device base class, which manages a bitmap and a sparse bitmap for tracking which areas got updated. This allows sprites to be rendered independently to their own bitmap and then mixed in a final step. Converted the Sega sprite device over to this new model, and moved the mixing steps out of the sprite implementations and into the driver- specific video updates where it belongs.
  • Aaron Giles added some further methods and helpers to the bitmap_t and rectangle classes.
  • Aaron Giles created a sega_16bit_common_base class which handles the common Sega palette RAM mappings and open bus reads.
  • Ville Linde updated nwk-tr.c: Improved LAN controller emulation.
  • Chris Hardy updated segaorun.c: Identified the Turbo Outrun "FD1094 317-unknown" set as 317-0106 and provided a working decryption key.
  • Tafoid verified Dip Settings using Dip Sheet and through playtesting for deadconx, deadconxj.
  • R. Belmont updated the PowerPC core: Fixed 601-type BAT processing.
  • Brian Troha, Dave France and The Dumping Union updated taito_x.c: Corrected the rom names for the Superman sets. Added info about an alternate rom layout using a daughter card and half sized mask roms. Changed Gigandes (Japan) to Gigandes (earlier) as both sets support English / Japanese via dipswitch. But one set has a revised and corrected service mode.
  • Angelo Salese fixed a major bug with 5A22 timings, that was incorrectly taking extra steals at every read, write and rmw types of opcode.
  • Angelo Salese moved multiplication and division operation from SNES to 5A22 CPU core file.
  • Osso updated looping.c to use the new tms52xx device implementation.
  • smf made S1410 device act as a SCSIHD with the custom commands, added D9060HD & ACB4070 devices to do the same thing.
  • Kevin Eshbach provided numerous jedutil tool improvements:
    • Made some modifications to the jedutil tool to allow the viewing of simple combinatorial jeds (adding support for registered and gals in the future) by taking a jed file and printing out human-readable equations. Changed the command line options of the jedutil tool to know take an initial argument to specify what the tool should do.
    • For example to convert a jed to bin the command is now: jedutil –convert <source.jed> <dest.bin> jedutil –convert <source.bin> <dest.jed>.
    • To view a jed file with human-readable equations the command is jedutil –view <source.jed> <pal type>.
  • Aaron Giles updated gfx_element to now be a class. Accessors are provided for all necessary elements. Updated some of the more, ah, creative uses/abuses of the gfx_elements.
  • smf split out callbacks from scsibus_device into scscb_device, eventually this will be a SCSI device. SCSIBus_interface is no longer required and has been removed.
  • R. Belmont updated the DRC: Give C backend x86/x64 shift=0 behavior for consistency.
  • R. Belmont made PowerPC 100% pass of integer portion of PPCTorture on all DRC backends.
  • R. Belmont updated the es5503 core: Preserve phase when oscillators loop.
  • Ville Linde updated nwk-tr.c: Fixed LAN controller issues in Thrill Drive.
  • Robbbert updated xforce: fixed display.
  • Luca Elia promoted brickzn to playable state:
    • Fixed gfx ROMs loading.
    • Fixed inputs in joystick version.
    • Alternate data decryption.
    • Fixed alternate opcode decryption ranges.
    • Palette encryption, banking and writes disable.
    • Work RAM disable.
    • Multiplexing of registers through protection.
    • Added cheat / debugging inputs.
  • Angelo Salese and Smitdogg understood how the Seibu COP collision detection really works, greatly improving Godzilla, Heated Barrel and SD Gundam RT gameplay.
  • Curt Coder generalized the PLS100 into a PLA device of variable amounts of inputs/outputs/terms.
  • Aaron Giles, in device_state_interface, renamed state() to state_int() and set_state() to set_state_int() for consistency. Updated all callers. Also added set_pc() helper and updated all callers to use that instead of set_state_int(STATE_GENPC).
  • Aaron Giles added device_t::state() method to get the state interface. Added redundant device_state_interface::state() method to catch redundant use of it.
  • Arzeno Fabrice updated segac2.c: Corrected the rom names for ThunderForce AC.
  • Aaron Giles removed cpu_get_reg() and cpu_set_reg() macros in favor of using the above methods.
  • Aaron Giles added ambiguous execute() and memory() methods to the device_execute/memory_interfaces respectively in order to catch unnecessary usage of the corresponding device_t methods. Removed all existing redundant usage.
  • Brian Troha updated merit.c: Added dipswitches to the Pit Boss sets with dipswitch locations. Reordered sets from oldest to newest. Added GAME_NO_COCKTAIL flag as these games support a cocktail mode. Mapped player 2 controls for cocktail mode.
  • Aaron Giles completed the closeout on old macros. Retired cputag_set_input_line and cputag_set_input_line_and_vector, replacing them with machine.device("tag")->execute().set_input_line [_and_vector].
  • Brian Troha updated meritm.c: Various rom name corrections and additional minor documentation.
  • Brian Troha updated meritm.c: Added PCB layout and pinout for the Merit CRT-250 PCB.
  • Angelo Salese fixed an horizontal scrolling bug in Sengoku Mahjong.
  • Robbbert updated Rotation: fixed displays, fixed sensors so that the game is now playable.
  • R. Belmont updated the es5503 core: Fix IRQ timing error introduced when it was converted to a device.
  • Curt Coder rewrote the SAA5050 Teletext character generator. Removed saa505x.c which was used by bbc.c, and refactored all drivers to use the new implementation.
  • Phil Bennett updated idetrl.c : Support IDE command 0x31 (IDE_COMMAND_WRITE_MULTIPLE_NORETRY).
  • Brian Troha updated splash.c: Changed the Machine Config to use actual OSC values and measured clocks as listed in the driver. Added a note about a Splash! PCB with alternate (higher) OSC clocks. Added a note about The Return of Lady Frog 9 rom and the 1 bit difference between the two sets.
  • R. Belmont provided fixes so MESS on PowerPC OS X builds and works again. MAME is still a lost cause.
  • Tafoid updated DOCS config.txt and windows.txt with recent commands that were never added to documentation as well as some clarifications.
  • Brian Troha updated expro02.c: Added PCB layouts for the Comad 940429 and 940307 boards used for the two different versions of Fantasia.
  • Alex Jackson updated segaybd.c: Fix 0.146u5 sound regression.
  • Brian Troha updated tumbleb.c: Filled in a few dipswitches for Magicball Fighting.

Game Support

New games added or promoted from NOT_WORKING status

New clones added

New games marked as GAME_NOT_WORKING