Release Date

MAME 0.121u2 was released on 29 November 2007.


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:

  • stephh fixed a BCD math error in i8051 core.
  • Atari Ace fixed the m6800 cpu core so that the cpu variants can be compiled independently once again.
  • Atari Ace more formally separated the RSP core from the N64 driver.
  • Sonikos fixed invalid dips in panicr and added dip locations.
  • Atari Ace switched some #defines in the core over to enums. Also adjusted the GAME macro so that it results in const data, and that it is defined in terms of the more generic GAMEL macro.
  • Atari Ace converted some more unnecessary globals into statics.
  • Curt Coder fixed the M68008 data bus to properly use 8-bit accesses.
  • stephh cleaned up the peplus.c driver. Added MACHINE_RESET to fix autohold option. Added layouts for several types of games.
  • Christophe Jaillet moved redundant check for bank switching out of inline code, which nets a small speedup in the midwunit driver.
  • Lei Wu added save state support to a number of Konami custom chips.
  • Vas Crabb added a -pipe flag for GCC in makefile (GCC will pipe between cpp, cc and as rather than using temporary files, which speeds up compiling).
  • Vas Crabb made cleanups to the inline functions:
    • Add attributes to functions in eigccppc.h and eigccx86.h to cause GCC to always inline them, and to treat them as arithmetic operators when appropriate (so GCC can identify loop invariants or common subexpressions involving these functions)
    • Mark locals in functions in eigccppc.h and eigccx86.h as register, so GCC won't always allocate stack space even at O0 optimisation level
    • Add dummy +m operands to atomic access functions in eigccppc.h so that GCC will not cache values across calls even if values are not volatile - this will cause GCC to allocate an additional register at O0 optimisation, but not if optimisation is on
    • Don't include <altivec.h> in rgbvmx.h if __APPLE_ALTIVEC__ is defined, as this will cause a compiler warning.
  • Sonikos cleaned up inputs in the System 24 driver:
    • Fixed dips in qrouka, sgmastc, sgmastcj, roughrac, qsww
    • Fixed input in dcclub, sgmastc, sgmastj, qrouka (the last is still missing input for the 3rd & 4th player)
    • Added more description for each game: region, system (rom or floppy based), version
  • Christophe Jaillet removed useless pen_array in the midtunit driver, saving some memory and getting a small speed boost.
  • BUT added 3D glasses support to the tceptor driver.
  • Aaron Giles unified timer callbacks. All timer callbacks are now passed both a pointer and a parameter. The pointer can only be set at timer allocation time; the parameter can be changed whenever the timer is adjusted. Removed most explicit uses of timer_*_ptr functions in favor of the more generic routines.
  • Aaron Giles deprecated cpu_yield* functions except for cpu_yield() itself, which yields for the current timeslice only. Drivers that relied on the other yielding functions should be updated to use cpu_boost_interleave() instead, as it does not have the same negative side effects on time management.
  • Aaron Giles changed video_frame_update() internally to accept a debug parameter which forces updates and does not meddle with synchronization/time accountiing.
  • Aaron Giles made some more internal improvements to the midzeus driver.
  • Aaron Giles removed the burgeoning list of architecture optimization options. Instead, if you want to make a build optimized for a specific architecture, you explicitly specify the options in a new ARCHOPTS variable. You can control the name of the final executable via the existing PREFIX and SUFFIX variables, which are now documented.
  • Aaron Giles changed MSVC-based builds so now they automatically get a 'v' prefix unless otherwise specified.

Game Support

New games added or promoted from NOT_WORKING status

New clones added