MAME 0.126u3


Release Date

MAME 0.126u3 was released on 31 July 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:

  • Aaron Giles did a bit more cleanup work in the gottlieb driver, still incomplete.
  • Brian Troha verified Free Kick PROMs and improved documentation.
  • Nathan Woods added the ability to pass an optional destructor to ui_menu_alloc_state().
  • smf, RansAckeR, and uRebelScum updated to build with the latest DirectX SDK, which doesn't support Direct 3D 8 & Direct Input 7. By default, the makefile is set up to compile the old way, but you can set DIRECT3D=9 and DIRECTINPUT=8 in windows.mak or on the command-line to build with a more modern SDK.
  • Stefan Lindberg adjusted adjusted AY frequencies in the Irem m63 to proper 1.5 MHz
  • Andrew Gardner updated the DSP56156 CPU Core:
    • Rewrote core logic, communications, and interfaces.
    • Added three parallel memory moves to the disassembler.
    • Initial interrupt logic in place.
  • Andrew Gardner updated Plygonet.c
    • All communication hacks have been removed.
    • Memory maps have been temporarily reverted while new DSP56k cpu core catches up.
  • Andrew Gardner merged memory maps for beezer.c, bishi.c, and bladestl.c.
  • Deunan Knute, ajax16384, and R. Belmont updated AICA:
    • Fixed ADPCM decoder to remove bad optimization and match YMZ280B. DC offset is fixed and output quality is higher
    • Improved handling of slot monitor and timers B and C
    • Simplified interpolation code
  • Aaron Giles changed the way memory regions are referenced. Instead of a single integer value, regions are now referred to by a region tag. The region tag must be unique among all regions defined for a given game. This change required updating all the ROM region definitions in the project to specify the tag instead of region number.
  • Aaron Giles updated the core memory_region_* functions to accept a tag instead of an integer. Added new memory_region_next() function to allow for iteration over all memory regions.
  • Aaron Giles changed the auto-binding behavior of CPU regions. Previously, the first CPU would auto-bind to REGION_CPU1 (that is, any ROM references would automatically assume that they lived in the corresponding region). Now, each CPU automatically binds to the region with the same tag as the CPU itself. This behavior required ensuring that all previous REGION_CPU* regions were changed to regions with the same tag as the CPU.
  • Aaron Giles introduced a new auto-binding mechanism for sound cores. This works similarly to the CPU binding. Each sound core that requires a memory region now auto-binds to the region with the same tag as the sound core. In almost all cases, this allowed for the removal of the explicit region item in the sound configuration, which in turn allowed for many sound configurations to removed altogether.
  • Aaron Giles updated the expression engine's memory reference behavior. A recent update expanded the scope of memory references to allow for referencing data in non-active CPU spaces, in memory regions, and in EEPROMs. However, this previous update required an index, which is no longer appropriate for regions and will become increasingly less appropriate for CPUs over time. Instead, a new syntax is supported, of the form: "[tag.][space]size@addr", where 'tag' is an optional tag for the CPU or memory region you wish to access, followed by a period as a separator; 'space' is the memory address space or memory class you wish to access (p/d/i for program/data/I/O spaces; o for opcode space; r for direct RAM; m for memory regions; e for EEPROMs); and 'size' is the usual b/w/d/q for byte/word/dword/qword.
  • Aaron Giles cleaned up ROM definition flags and removed some ugly hacks that had existed previously. Expanded to support up to 256 BIOSes. Updated ROM_COPY to support specifying a tag for the source region. Also updated the address map AM_REGION macro to support specifying a tag for the region.
  • Aaron Giles updated debugger windows to display the CPU and region tags where appropriate.
  • Aaron Giles updated -listxml to output region class and tag for each ROM entry.
  • Roberto Fresca made changes to lucky74.c driver:
    • Pre-defined CPU and SND clocks.
    • Switched the color system to RESNET calculations.
    • Completed the remaining DIP switches.
    • Added lamps support. Created a layout to show them.
    • Changes on the interrupt system (need to be verified on the PCB).
    • Renamed the graphics regions to more descriptive names.
    • Corrected the manufacturer's name.
    • Splitted the driver to driver + video.
    • Updated technical notes.
  • R. Belmont and Aaron Giles changed the SH2DRC: add SUBV, replace ADDV with C version as a precaution. (Fixes most of Mantis #2026, except the part which is a separate bug). Added new implementation which uses flags directly, keeping the C versions in reserve in case they are needed.
  • Atari Ace added more validation to the address map detokenization, in order to catch cases where multiple read/write handlers are assigned to a range. Fixed cases in the code that failed these checks.
  • Wilbert Pol updated the i8051 cpu core timer:
    • Added support for timer mode 0 (13 bit timer)
    • Cleaned up timer code a bit, fixing some off-by-one errors when timers overflow.
  • Samuele Zannoli updated the Naomi driver:
    • refactors many global and static variables in video\dc.c into a structure to hold the tile accelerator state
    • textures should be better decoded with more pixel formats
    • adds placeholders for some register probably used by the dimm board
    • corrects a little error in a rom board register (very important, now at least the gdrom games try to start)
  • Aaron Giles added region and regionbytes fields to the deviceconfig, which are auto-filled by the device manager before starting the device. This simplifies the auto-binding process for devices. Added new selector for device-specific ROM regions. Not yet wired up in the ROM loader.
  • Aaron Giles simplified SH2 DRC shift/rotate instruction implementations.
  • Aaron Giles fixed the menu handling so it doesn't swallow the tab key.
  • Aaron Giles changed the symbol table reference parameters to void * from UINT32.
  • R. Belmont enabled strict PC relative loads for ST-V games; at least Cotton Boomerang needs them.
  • Aaron Giles added new option 'cheatpath' to specify one or more paths for cheat files. Removed old option 'cheat_file'.
  • Aaron Giles updated xmlfile.c to specify the line number for each node, for more accurate error reporting.
  • Aaron Giles removed old cheat.c/.h and replaced them with code that will read and write the new XML-based cheat format using the new cheatpath option (cheats still need to be enabled in order to load at all). Note that the cheats are not implemented yet, but they are fully parsed. To test saving, whenever a cheat file is successfully loaded, it is immediately written back out as 'output.xml' to the cheat directory for validation.
  • Oliver Stoenberg made minor cleanups:
    • removed of unprintable chars (newlines) in SH-2 disassembler
    • removed a few unnecessary checks after malloc_ort_die() calls
    • changed two romload.c warnings to use GAMENOUN instead
    • added "deprecat.h" in a few src/mame/drivers files
    • cleaned up the mame.mak by adding all missing defines and grouping them based on cpu.mak
    • renamed video_exit() to winvideo_exit() for consistency in function names
  • Atari Ace changed commented-out functions to #ifdefs.

Game Support

New games added or promoted from NOT_WORKING status

New clones added

New games marked as GAME_NOT_WORKING