MAME 0.104u3


Release Date

MAME 0.104u3 was released on 22 February 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:

  • Alex Jackson cleaned up the taito_x driver:
    • Converted input ports to an INCLUDE/MODIFY tree.
    • Fixed Lives DSW in twinhawk and twinhwku
    • Removed Cabinet DSW from twinhawk and twinhwku; they are 2psim and do not support cocktail cabinets (the DSW does nothing).
    • Fixed Coinage DSW in suprmanj
    • removed MDRV_MACHINE_INIT(cchip1) from games that don't have a c-chip (all of them except superman)
  • Chris Hardy fixed chdman to write the correct number of logical bytes when extracting something that is not an even number of hunks large.
  • Olivier Galibert updated some Raiden 2 documentation and input port definitions (still not playable).
  • Nathan Woods created a new osd_tool file which is used by utility tools to do file access in an OS independent manner.
  • Pierpaolo Prazzoli fixed a typo in Hyperstone core that led to false positive warning popups.
  • R. Belmont and Aaron Giles added support for IDT-specific MIPS MUL instruction in the MIPS3 core, recompiler, and disassembler.
  • smf replaced -high_priority with -priority, you can now specify from -15 to 1. The default is -15 as this makes Dell laptop keyboards work. It still won't raise the priority if running with the debugger, but it will lower it. Fixed a subtle bug at the same time as -high_priority was only working when you used rdtsc.
  • Nathan Woods added an optional xml_parse_options parameter to xml_file_read() and xml_string_read(), to provide options for preserving whitespace, error reporting, and parser setup.
  • Adam Bousley added save states to 2 simple drivers - bombjack.c and blktiger.c.
  • Luigi30 improved graphics ROM loading order in fredmem.
  • Buddabing added a new option -mngwrite, which records an MNG movie of the game from the get-go and allows you to specify a target filename.
  • Aaron Giles refactored/renamed/removed/added several core files:
    • renamed driver.c to mamedriv.c
    • created a new driver.c containing functions defined in driver.h
    • split common.c into video.c and machine/generic.c
    • moved a number of mame.c functions to video.c
  • Aaron Giles added a new file debugger.h, which contains abstracted debugging interfaces for both debuggers. Added new call mame_debug_break() and a new macro DEBUGGER_BREAK to make it easier to hard-code breakpoints into code. Removed all old code that directly whacked debug_key_pressed or called debug_halt_on_next_instruction and replaced them with calls to DEBUGGER_BREAK.
  • Aaron Giles added #include "state.h" to driver.h. This means most driver files no longer need to explicitly include it. Went through and removed it from most drivers.
  • Aaron Giles reorganized the core initialization/exit sequencing to be "flatter" and more straightforward to understand. System cleanup is now no longer explicitly called by the code in mame.c. Rather, each init function is free to register an exit handler, which will be called in reverse order of registration upon a system exit.
  • Aaron Giles removed default registrations from config_init() into the init functions of the associated modules. Now each system that has config data can register its own callbacks to process it.
  • Aaron Giles renamed MACHINE_INIT to MACHINE_RESET to normalize the naming of the callbacks defined in the MACHINE_DRIVER structure. Added several new callbacks. The complete list is now:
    • DRIVER_INIT -- per-game init called once at startup
    • MACHINE_START/SOUND_START/VIDEO_START -- called once at startup
    • MACHINE_RESET/SOUND_RESET/VIDEO_RESET -- called each reset
  • Aaron Giles noted that save state registrations should be performed in DRIVER_INIT or (preferably) in the _START callbacks; they should be avoided in the _RESET callbacks if possible.
  • Aaron Giles added a number of new properties to the debug views to allow for more flexibility in the way the views are displayed. Also added an option to the disassembly window to display encrypted opcode data on the right.
  • Aaron Giles changed Save states:
    • Audited the use of save state registrations throughout the code, switching most cases over to using the state_save_register_global or state_save_register_item macros to simplify the code.
    • Deprecated the save_state_register_<type> calls since nearly all cases can be automatically handled by the macros. For odd cases, there is now a save_state_register_memory call which is generic.
    • Simplified the save state logic, allowing for unlimited instances and reducing the complexity of the code. This breaks existing save states. Sorry, I'll try not to do it again.
  • Aaron Giles fixed save state support in Missile Command.
  • Aaron Giles added oversampling support to the CEM3394 emulator.
  • Aaron Giles added save state support to the CEM3394 and NES APU sound chips.
  • Aaron Giles added save state support to the jedi, balsente and dkong drivers.

Game Support

New games added or promoted from NOT_WORKING status

New clones added