Release Date

MAME 0.123u3 was released on 27 February 2008.


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:

  • Brian Troha corrected clock speeds for the megasys1.c boards. Yes, the games actually ran _THAT_ slow!
  • couriersud made a makefile & build system update:
    • verinfo: New syntax. verinfo now uses the following syntax: verinfo.exe -b windows|winui|mess. Does not depend on compile time defines any longer.
    • makefile will include src/osd/$(CROSS_BUILD_OSD)/build.mak if it exists. This was necessary to enable cross builds for winui.
  • Zsolt Vasvari cleaned up the Cloak & Dagger video code:
    • resnet conversion - colors are now signficantly less saturated because of the 1K pull-ups. This is noticable in the agent's coat and the sky color, for example.
    • Added bitmap palette selection based on the 128H line. Not sure where this is actually used in the game.
  • Zsolt Vasvari removed unnecessary machine->pens[] lookups in a large number of drivers.
  • Mr. Do and Zsolt Vasvari added a built-in layout to Space Tactics. Cleaned up and reorganized the driver.
  • Roberto Fresca switched the funworld color decoding routines to use resnet code.
  • couriersud fixed namcos2, namcos21 crashes due to nvram allocation in MACHINE_RESET. Created MACHINE_START and move allocation there.
  • couriersud updated info.c to output raw video parameters (pixclock, htotal, hbend, hbstart, vtotal, vbend, vbstart) via -listxml if they have been given.
  • couriersud removed some deprecat.h includes from osd layer:
    • add machine as parameter to osd_update and osd_update_audio_stream
    • change Machine to machine and remove include deprecat.h
  • Aaron Giles added a rule in vconv.c to make VS2008 compile seamlessly.
  • couriersud changed bionicc.c:
    • Added cpu clocks from schematics
    • Comment about z80 nmi generation
  • Brian Troha removed the confirmed bad dump of Virtua striker 2 2000.
  • Zsolt Vasvari improved drawgfx.c:
    • Added some asserts to drawgfx and drawgfxzoom
    • Moved some variable declarations so that they are only visible where they are actually used
  • couriersud removed MDRV_PALETTE_LENGTH from vector games, which would trigger an assert in emupal.c (debug build)
  • Aaron Giles added new module: tokenize.h. This centralizes the behavior of tokenizing data structures, as currently used by the input port system. Redid the input port tokenization to be more compact and make use of the new macros. Added support for designated initializers in C99 and GCC builds to enforce type safety.
  • R. Belmont removed bogus DIPs from the NSS driver.
  • couriersud improved the global "flip_screen" macros and variables:
    • fix issues related to flip_screen being a define
    • add "int flip_screen_get(void)"
    • clean up drivers with collisions
    • remove flip_screen macro
    • flip_screen_x and flip_screen_y made static
    • add flip_screen_x_get() and flip_screen_y_get()
    • change writes to flip_screen_x to flip_screen_set_no_update()
    • added save state calls for flip_screen_x and flip_screen_y
  • Aaron Giles converted MACHINE_DRIVER definitions from function constructors to tokenized lists. For the most part this is a non-invasive change, except for those drivers using MDRV_WATCHDOG_TIME_INIT. In order to allow for tokenization of attotimes, a set of new macros is provided called UINT64_ATTOTIME_IN_x() which follows the same pattern as ATTOTIME_IN_x() but packs the attotime down into a single 64-bit value for easier tokenization. Fixed several errors in the machine drivers which were caught by the additional checks now done in the machine config detokenization code.
  • Aaron Giles separated MDRV_DEVICE_CONFIG_DATA into 32-bit and 64-bit versions. Added floating-point versions with configurable resolutions.
  • Aaron Giles converted speakers into devices. Machine->config no longer houses an array of speakers; instead they are iterated through using the new macros (defined in sound.h) speaker_output_first() and speaker_output_next(). Updated all relevant code to do this.
  • Aaron Giles added typedefs for all the machine config callback functions at the top of driver.h.
  • Roberto Fresca made big changes to the Cal Omega driver:
    • Renamed the driver to calomega.c.
    • Extended the driver to support all the other Cal Omega systems.
    • Switched to XTAL def.
    • Fixed CPU & sound clocks based on official diagrams.
    • Replaced the AY-8910 with AY-8912 to match the real hardware.
    • Unified some memory maps.
    • Splitted machine in sys903 and sys905.
    • Fixed memory map offsets for sys905.
    • Added a list of official/unofficial games, and their states.
    • Fixed a bug introduced when extended the color PROM region to eliminate colortable length.
    • Updated technical notes.
  • Aaron Giles merged memory maps for a number of drivers beginning with a digit or the letter 'a'.
  • Zsolt Vasvari cleaned up the Crazy Climber video driver, mainly via tilemap conversion. This fixes the ape sprite positioning in Crazy Kong - no more gap between feet and platform. Merged Yamato driver with Crazy Climber.
  • Zsolt Vasvari added support in the MC6845 emulation for cursors. All 4 blinking modes are supported.
  • Nathan Woods added a stub implementation of the Rockwell 6545.
  • Wilbert Pol added basic support for the NEC uPD7801, uPD78C05, and uPD78C06 CPUs to the uPD7810 cpu core.
  • James Wallace made some improvements to the 6850 ACIA CTS pin checking logic and the MPU4 ACIA clock logic.
  • robiza added another Risky Challenge opcode to fix a sprite bug and a general clean up of the remarks in the driver.
  • RansAckeR added dip locations to astinvad, bonzeadv, cadash, asuka, mofflott, galmedes, atarifb, atarifb4, abaseb, soccer. Added DIP locations and improved DIP switches in seawolf2, wow, gorf, robby, profpac.
  • Robert made a one-line fix for the z80pio. At the moment when the interrupt control word is sent (with interrupts enabled), an interrupt occurs. In reality, interrupts are disabled until the interrupt mask byte is sent.

Game Support

New games added or promoted from NOT_WORKING status

New clones added

New games marked as GAME_NOT_WORKING