Release Date

MAME 0.104u5 was released on 9 March 2006.


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:

  • David Haywood hooked up the missing language jumper in the Psikyo 4 games.
  • Olivier Galibert, Duddie, and smf added board notes to the Namco System 12 driver, hooked up the light gun in Ghouls Panic/Point Blank 2, and emulated Tekken Tag Tournament DMA protection (still not playable).
  • Lawrence Gold fixed compilation of the old debugger on non-Windows platforms, and added mame_strnicmp along the way.
  • Nathan Woods changed the NES PPU interfaces to follow new struct conventions.
  • Andrew Gardner updated the disassembly comments support:
    • fixed a 0-length comment bug (no more "// 0, " allowed)
    • added comment output to the new debugger's dasm command
    • changed the comment save path from /mame/comment to /mame/comments
  • Nathan Woods added new debugger properties: logunmap, logunmapd, logunmapi which enable/disable logging of unmapped memory accesses.
  • Adam Bousley added save state support to the Astrocade driver.
  • Andrew Gardner made some small improvements to the Polygonet Commanders driver.
  • Ryan Holtz added preliminary Thumb implementation for the ARM7 core. Many opcodes present, but there are definite sign problems.
  • R. Belmont hooked up ARM7 protection CPU in KOV2. Boots but does not run or play due to the Thumb sign problems.
  • Kopromaster fixed incorrect flags emulation in the 8080 CMA instruction.
  • Nathan Woods added support for zero-length palettes (requires RGB direct mode) and several validity checks related to display variables.
  • Derrick Renaud updated Windows input code:
    • Now using RAWMOUSE mode if available. This means you can now use multiple mice in Windows XP. Lightgun support has not been changed yet.
    • Added back DX7 support for the windows input system to support multiple mice. It was set to DX5 in 104u2.
    • Removed the system mouse from the list of available mice on non-XP systems. This allows you to now properly select the individual mouse.
    • Modified the Analog Axes selection of the player controls to be more responsive.
  • El Condor cleaned up the video system in Scorpion 2 driver.
  • Nicola Salmoria reduced the encryption in Gaelco games down to equations. These still need to be optimized, but the giant encryption tables are no longer needed.
  • Atari Ace and Aaron Giles cleaned up include files in CPU/sound cores. CPU cores should generally only need to include cpuintrf.h. Sound cores should generally only need to include sndintrf.h.
  • Aaron Giles fixed a bug that caused a full set of validity checks even on release builds.
  • Aaron Giles added new debugger features:
    • new command "print" is a simple way to display the result of one or more expressions
    • new command "symlist" displays all the symbols registered
    • all save state registered scalar globals are now available as symbols (prefixed by a '.')
    • all save state registered global arrays are now available for viewing/editing in the memory window
    • all registered memory regions are also available for viewing/editing in the memory window
  • Aaron Giles made it a fatal error to request operations on invalid sound/CPU indexes. These have been logged to the error.log in the past, but really need to be cleaned up. Added a new function safe_activecpu_get_pc() that can be used when logging PCs to smartly detect whether or not it is safe to call activecpu_get_pc().
  • Aaron Giles changed CPU init/reset callbacks. The init callback now accepts a number of parameters, including the CPU index, the clock, a generic configuration parameter, and a pointer to the IRQ callback. The reset callback no longer takes any parameters (the configuration parameter has been moved to the init callback). And the IRQ_CALLBACK getter/setter has been removed since this is now set up once at initialization time.
  • Aaron Giles added mame_get_phase to determine which program phase (init/reset/running/exit) the system is in. This is intended primarily for assertions to enforce rules about when certain actions can be taken.
  • Aaron Giles rewrote winalloc to be more dynamic, and to ignore memory leaks in the runtime.
  • Aaron Giles fixed memcards properly. They are no longer hardcoded for the neogeo. The implementation has moved to generic/machine.c, and a callback handler very similar to NVRAM is now supported in the machine driver definition. Cards are created per-game, so the memcard directory now has a subfolder per game with each game's cards stored underneath.

Game Support

New clones added

New games marked as GAME_NOT_WORKING