Release Date

MAME 0.88u3 was released on 7 November 2004.

Major Announcement

This release of MAME was the first to contain the new Windows based debugger.


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:

  • Nicola Salmoria made more FD1094 improvements, a program to produce the key tables from dumped state data is now included as etc/fd1094dp.c, please note the key table format has changed slightly to reflect some new findings
  • Hans de Goede made various fixes to prevent crashes in X86-64 compiles
  • Nathan Woods contributed misc fixes
    • Adds a MESS specific CPU core
    • Fixed a few input group declarations on MESS specific input types
    • Moved some variable declarations to the tops of their respective groups.
  • Curt Coder converted mermaid.c to tilemaps:
    • tilemap conversion
    • cleaned up driver
    • merged memory map
    • removed fake input port
  • Aaron Giles improved the Liberator driver, correct proms now used
  • Tomasz Slanina fixed addc, subc, mulu, muls in the Hyperstone Core (fixes title screen objects in suplup, and bullets in misncrft)
  • Pierpaolo Prazzoli updated the Hyperstone core:
    • Fixed software opcodes when used as delay instructions
    • Added nested delays
  • Aaron Giles added a new Windows based debugger
    • Note: The new debugger is enabled as the default debugger for the next few u releases (in a debug build only) to allow feedback, it can be disabled by changing the makefile
    • Description of the 1st update
      • There are some new behaviors and new ways of doing things you should be aware of. By default the debugger no longer "auto hides". This was a remnant of the way the old debugger worked that I have gotten rid of. If you want to hide all the debugger windows, just close the "main" debug window. It will return if you break in the debugger at a future time.
      • The "main" window has four panes: a register list on the left, a disassembly around the current PC at the top, a console output window in the middle, and an input line at the bottom. The input line supports full editing features, and you can also use up arrow/down arrow to cycle through recently typed commands.
      • Hitting Enter on a blank line in the console is equivalent to single stepping once. You can also do that with F11. To run, either use the "go" command or hit F12 (or close the "main" window). To run until the next CPU, either use the "next" command or hit F6.
      • You can bring up multiple independent memory and/or disassembly windows by using the Debug menu. Each window can look at a different address space on any CPU. You can enter any expression (including those using registers from the CPU) into the entry line at the top of these windows in order to specify which address to begin displaying at.
      • I've implemented a number of useful commands in the console. Type "help" to navigate the extensive online documentation for a number of examples on how to use these features. You can do some really cool stuff now with the conditional watchpoints and breakpoints.
      • This is a work-in-progress, but it's pretty good now (IMHO) and stable for common debugging operations. Let me know what you like/dislike about it and what sorts of features you feel are still lacking.
    • Description of the 2nd update
      • F12 now means "run and hide the debugger". I found this was too useful to get rid of entirely.
      • F5 just means "run", keeping the debugger visible.
      • Enabling the debugger now forces window mode and prevents you from switching to full screen mode.
    • Description of the 3rd update
      • Added step over/step out functionality. F10 or "over" steps over an instruction. Shift+F11 or "out" steps out of a subroutine or exception handler. Note that this feature relies on the disassembler to produce some flags indicating which instructions which need to be stepped over (generally CALLs and TRAPs) and which instructions end a step out search generally RETURNs).
      • Modified the 680x0 and MIPS3 disassemblers to support these features.
      • Changed the disassembly view to back up 3 instructions when resetting (that is, the current PC should appear on the 4th line instead of the 1st line). This is not perfect, but works pretty well overall and should help see the previous couple of instructions when, say, a watchpoint is hit.
      • Improved filtering of keypresses so that they don't leak into the game when you are typing in the debugger.

Game Support

New Games supported or promoted from GAME_NOT_WORKING status

New clones added

New games marked as GAME_NOT_WORKING