Release Date

MAME 0.112u1 was released on 12 February 2007.

Major Announcement

This release brings with it a major source code reorganization, the first since MAME 0.6. Along with these changes came a number of makefile alterations to better distribute the build knowledge within each major subdirectory.


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:

  • Curt Coder improved the Cidelsa driver:
    • Fixed the disassembly of cdp1802 opcode LSKP
    • Changed the cdp1802 opcode OUT to increment R(X) after calling the write handler
    • Set cdp1869 display size and visible area according to data sheet
    • Added cdp1869 CFC emulation (probably never used by anything but just for completeness' sake)
    • Cleaned up driver
  • Ville Linde improved the M2 driver:
    • Added preliminary CD controller emulation
    • Hooked up some more multi-processor functionality and interrupts
  • cync and the hoot development team improved the C352 sound emulator:
    • Rewrote loop and flag handling, added support for global key-on register
    • Fixed state saving
  • Atari Ace Worked around compilation error on MSVC that caused "Calendar error" in the Neo Geo games.
  • Fabrice Arzeno removed a patch from mjleague now that it is not needed.
  • Canim fixed bubbletr crosshairs.
  • Vas Crabb added save state support for all games in gng.c, gunsmoke.c, lasso.c, solomon.c and terracre.c.
  • Nicola Salmoria, Ernesto Corvi, and Guru replaced the implementation of Namco 54xx sound chip with new MB8844 CPU core running the original embedded ROM code. Removed old sound core. Pole Position and Bosconian no longer require samples as a result.
  • Nathan Woods added a new function driver_get_count() to return the number of drivers.
  • Angelo Salese added a bunch of new protection routines for SD Gundam & Heated Barrel.
  • Derrick Renaud contributed input system changes:
    • Added new IPT_POSITIONAL control type. This is for Ikari type rotary controls and gray-code devices like Seawolf. This makes rotary and gray-code controls easy to enter without custom handlers.
    • Fixed some rounding and min/max errors in the core input code.
    • Modified crosshair code to be based on real scaling, see Seawolf for an example. It can now also have multiple crosshairs on one input port if needed.
    • Added back in the namcos2 crosshairs. Turns out they are needed for calibration.
    • Removed the gwar control hack from the Ikari games that did not need it. Modified the gwar control hack so it is only used for 1 frame, making it unnoticeable.
    • Updated boothill, gunfight, seawolf, spcenctr to use the new PORT_REMAP_TABLE.
  • Lord Nightmare fixed the exidy/stern-sb1000 6840-based sound hardware to use what is believed (based on the schematic) to be the proper LFSR/PRNG waveform for its secondary clock source.
  • Pierpaolo Prazzoli updated Dragon Bowl to use HOLD_LINE for sound IRQs. Also did the same for the following drivers: afega, ettrivia, funybubl, jack, mustache, seta, trvmadns, wink.
  • Nathan Woods changed 6809/6309 CPU cores to call the MAME debugger when CWAI/SYNC is used.
  • Ville Linde fixed uninitialized use of video_dma_address to address the rfjet crash in 64-bit builds.
  • Ville Linde added support for the Motorola MPC8240 to the PowerPC core.
  • Ben Rudiak-Gould improved ZIP file searching to look first for name + CRC match, second for CRC-only match, and lastly for name-only match.
  • James Wallace verified and improved the stepper behavior based on comparison with a real machine.
  • Aaron Giles changed file2str to work for any binary file and output the data as an array of bytes rather than a string.
  • Aaron Giles made UI font size computations more flexible. This ensures that fonts are scaled vertically by an integral factor and should produce nice proportions for most fonts now.
  • Aaron Giles added new function sound_find_sndnum_by_tag() to look up a sound index by its tag.
  • Aaron Giles made osd_uchar_from_osdchar a member of the osdcore file library.
  • Aaron Giles created new generic bitmap management code with fewer dependencies on the rest of MAME so that it can be used by utility code. Changed bitmap_alloc to always take a format parameter. Deprecated bitmap_alloc_format. Updated all drivers to pass an explicit format when allocating a bitmap. Changed auto_bitmap_alloc in the same fashion.
  • Aaron Giles split some functionality from fileio.c into new module corefile.c, which can be used by utilities to get unicode support and fopen-style file I/O built on top of the OSD routines. Rebuilt fileio.c on top of the core file code. Added mame_core_file() to get the underlying core_file object from a mame_file so it can be used with png and xmlfile code.
  • Aaron Giles changed the way the tiny build works. There is now the concept of a SUBTARGET. By default SUBTARGET is set equal to TARGET (which is mame) and everything builds as normal. The makefile that is included is now src/$(TARGET)/$(SUBTARGET).mak. Thus, to do a tiny build, you now have to specify "make SUBTARGET=tiny". This will produce an output executable with a name $(TARGET)$(SUBTARGET) (mametiny in this case).
  • Aaron Giles Turned ENABLE_BORDER_PIX back on, since so many people seem to be having trouble without it.

Game Support

New games added or promoted from NOT_WORKING status

New clones added