Release Date

MAME 0.127u3 was released on 11 September 2008.


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:

  • Pierpaolo Prazzoli and Tomasz Slanina implemented m90 playfield 1 and playfield 2 y-offset table. This fixes, at least, the water effect in riskchal and the text fading effect in the matchit2 demo.
  • David Haywood started changing naomi gdrom sets to load the CHDs.
  • Brian Troha additional documentation for Egg Venture & Lethal Justice:
    • Added JAMMA pinout
    • Gun Connector pinout
    • Sound & Amp information
  • Nicola Salmoria changed snk.c as coin inputs seem to be active high (except for jcross)
  • Nicola Salmoria fixed bg tile banking in Canvas Croquis. Removed snkwave since it doesn't seem to be used and might not be present on the pcb at all. General driver cleanup, bringing it in line with snk.c but not merging it since somthing doesn't quite fit.
  • Roberto Fresca made changes to magic10 driver:
    • Better structure and organization.
    • Added Super Gran Safari.
    • Added improved lamps layout to Super Gran Safari and Magic's 10.
  • Aaron Giles added new device interface selector: DEVINFO_PTR_ROM_REGION. This allows a device to provide a set of ROM regions to be loaded along with the game ROMs. It is expected that most regions defined for devices will use the ROMREGION_LOADBYNAME flag to enable the ROMs to live in a central location.
  • Aaron Giles added new device interface selector: DEVINFO_PTR_MACHINE_CONFIG. This allows a device to specify a partial machine driver which is appended to the end of the machine driver for any game using that device. The intention for this is to allow devices which have their own BIOS logic to specify CPUs and other characteristics common to all systems using the device.
  • Aaron Giles added new ROMREGION flag: ROMREGION_LOADBYNAME, which means that if the ROMs in that region are not found in the usual driver files, then the name of the region will be used as a driver filename for loading.
  • Aaron Giles extended the ldcore interface structure to allow each player type to provide its own ROM region and partial machine driver.
  • Aaron Giles moved preliminary PR-8210 emulation code from ldplayer.c to ldpr8210.c. It is currently disabled behind the EMULATE_PR8210_ROM compile time flag.
  • Aaron Giles added built-in "Off" states to the cheats with parameters. This is also the default state, obviating the need for a default value. Removed the "default" attribute as a result. Switching from "Off" to another state first executes the "on" script followed by the "change" script. Switching to "Off" from another state executes the "off" script. While not off, the "run" script is executed each frame.
  • Aaron Giles moved reset to default behavior in the cheat menu to IPT_UI_CLEAR.
  • Aaron Giles added concept of rom sources to the rom loader. Updated auditing, CLI utilities, validity checks, and ROM loading to use these new functions so that device-specific ROMs are handled properly.
  • Nathan Woods added a core_fopen_ram_copy() call, similar to core_fopen_ram() except that it copies the memory.
  • Dazzer added redumped welltris program ROMs.
  • Aaron Giles changed CPUs, sound chips, devices, and ROM-regions which are specified by devices so now they have their tags auto-prefixed with the device's tag. This allows for multiple instances to be present. For example, the PR-8210 laserdisc player has a CPU with a tag of "pr8210". When it is included as a device by a driver, the driver may tag the device "laserdisc". The resulting final CPU tag name will be "laserdisc:pr8210". Also updated the debugger expression engine to support names with embedded colons.
  • Aaron Giles added checks to ensure that tags used for CPUs, sound chips, regions, and devices follow some basic rules: they should be less than 15 characters long, be all lower-case, and only contain letters, numbers, underscores, or dots (no spaces). This is to ensure that they can be used properly in debugger expressions and don't get too long or unwieldy to type (even 15 chars is rather long). Fixed up all tags in the system that failed these checks.
  • Roberto Fresca made Space Win changes:
    • Some corrections to the memory map.
    • Added proper working RAM.
    • Added Dallas DS1220Y NVRAM.
    • Added output port.
    • Added lamps layout.
    • Added complete inputs.
    • Changed description to "Scacco Matto / Space Win" since the default game is Scacco Matto.
    • Fixed memory maps.
    • Documented Super Derby outputs.
    • Added lamps support + layout to Super Derby.
    • Fixed the phisical RAM size to all games.
    • Fixed the wrong NVRAM size to spacewin (16Kb instead of 16KB).
    • Added proper NVRAM to sderby and pmroulet.
    • Added the missing 3rd input to pmroulet (needed for 3-button mode).
    • Cleaned up the driver.
    • You must enter the service mode and change graphics in order to switch the game.
  • Aaron Giles changed DEVICE_START functions to return an error code. Currently this is either DEVICE_START_OK or DEVICE_START_MISSING_DEPENDENCY. The latter should be returned by a device if there is another device it depends on which hasn't been started yet. Added new flag in the device interface to indicate whether a device has been started.
  • Aaron Giles changed laserdisc interface to explicitly specify the screen and sound devices it should route to. Drivers no longer have to manually call laserdisc_vsync(). Instead, the laserdisc code connects up to the routed screen device and works based on that screen's VBLANK timing. Removed all existing calls to laserdisc_vsync().
  • Aaron Giles changed laserdisc behavior so that it completes the previous video read and initiates the next read at the end of VBLANK instead of the beginning. This gives player logic time during VBLANK to alter the slider position prior to fetching the next frame.
  • Aaron Giles added new laserdisc callback for vsync begin and changed the update callback to be called at the end of VBLANK. Also added functions to set the slider speed, advance the slider, and directly control the video/audio squelch. In addition, there is a new status function to get the slider position in general terms.
  • Aaron Giles added parameter to the VBLANK callbacks supported in emu/video.c. Updated all callers to provide a callback value.
  • Aaron Giles fixed bug that would cause watchpoints to trigger if you had a memory window open to the watchpoint address.
  • Aaron Giles further updates to the PR-8210 ROM simulation. Still not quite there but the system is much better understood now. Added layout to the PR-8210 which displays the state of the front-panel LEDs.
  • Nathan Woods added clickable input support. Layouts can now have items which when clicked will alter the state of an input port. This is done via the new attributes 'inputtag' and 'inputmask', which specify an input port tag and mask. When the given element is clicked, the state of the element changes to 1 and the given bits in the input port are set the same as if you had pressed the equivalent switch.
  • Pierpaolo Prazzoli added sprites buffering to Limenko driver and removed imperfect video flag from spotty.
  • Roberto Fresca made improvements to Croupier (Playmark Roulette):
    • Simulated the MCU communication/protection. The game seems to work properly, but is hard to win. I conserved the game flags till we have the MCU decapped, and emulated properly.
    • Added full sound support.
    • Added lamps support + layout.
  • Aaron Giles fixed memory handling of internal banks. They should be LOWER priority than the driver's memory maps. Reverted recent changes to MCS-48 core that were very hacky and which crashed many games. You can now properly override the internal memory map and do your own banking.
  • Miodrag Milanovic made 8080/8085 CPU core updates:
    • ANA/ANI instruction, HF flag was not set right because error in calculation of it (missing brackets)
    • 8080 have NF flag always set (it is not used flag but bit is always set)
    • Added support for status output lines.
  • Atari Ace moved more static data into const and added some more explicit initialization.
  • Kevin Eshbach and Aaron Giles added LSI BIOS to the Atari System 1 driver. Made the System 1 BIOS a proper BIOS. Removed restriction that BIOS-related ROMs must immediately follow the BIOS definition.
  • Kevin Eshbach made cave.c changes:
    • Changed the hardcoded MHz values in the Cave driver to the XTAL equivalents
    • Updated the Cave driver for the game Guwange with gals that need to be dumped
  • Kevin Eshbach made Jail Break changes:
    • Updated the Jail Break driver with the dip locations
    • Corrected the Jail Break driver sound chip from a SN76496 to a SN76489
    • Corrected the Jail Break rom names
    • Redumped the Jail Break VLM rom dump
  • Kevin Eshbach made Super Basketball changes:
    • Corrected the Super Basketball Revision H rom dump
    • Updated the Super Basketball driver with the dip locations
    • Corrected the Super Basketball VLM XTAL
    • Corrected the Super Basketball parent/child relationships by making the Revision H the parent
    • Turned on save state support for the Super Basketball driver
  • Kevin Eshbach updated the Sega System 1 driver with more board information on the Choplifter bootleg and updated the placeholders for the pals that need to be dumped.
  • Kevin Eshbach updated the WWF Wrestlefest driver rom names. Added save state support to the WWF Wrestlefest driver.
  • Olivier Galibert cleaned up the C352 driver: Removed an unused volume table dating from before the volume was (correctly) implemented as linear.
  • Oliver Stoeneberg added running_machine * to some more locations in the system. Updated drivers accordingly.

Game Support

New games added or promoted from NOT_WORKING status

New clones added