Release Date

MAME 0.123u2 was released on 21 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:

  • Mirko Buffoni made csk.c driver improvements:
    • Added DIPLOCATION macros to all Dip Switches. All DSW are verified through test mode.
    • Fixed custom_io_r which is used for protection but also for keyboard input.
  • Zsolt Vasvari completed the old-style colortable removal. Removed MDRV_COLORTABLE_LENGTH macro. Updated uigfx to display new-style color tables if present.
  • Zsolt Vasvari converted SNES (except debug code) to RGB32 as it was a serious abuser of the palette system.
  • Zsolt Vasvari added colortable_palette_get_size() to emupal. Added some more asserts to catch errors.
  • stephh fixed Dip Switches (especially coinage) and inputs for 'mpatrol' and 'troangl' (and their clones). Tried to "unify" the two drivers (I still think that some things can be merged). Added iremipt.h source file (same purpose as taitoipt.h). Fixed Dip Switches and inputs for 'alpha1v'. The game is now more playable to me but I left the GAME_NOT_WORKING flag as I think there are still some things to look at).
  • David Haywood and robiza changed IREM cpu decryption to be 'real-time' (it's a feature of the CPU). Moved decryption table setup to 'config' struct for the CPU. Added latest tables from robiza, making Risky Challenge playable, promoted it to working. Told CPU core to not decrypt code after brkn instruction, enabling it again on iret, allowing me to remove several 'don't decrypt range' hacks in the code. Updated all drivers accordingly. Currently the disassembly is a bit weird now, this will need looking at.
  • ElSemi, Deunan Knute, kingshriek, and R. Belmont added and hooked up AICA (Naomi sound chip). Naomi boot sounds now play. Since it's an SCSPx2 with ADPCM instead of FM it's already feature-complete except filter envelopes. A bug in the ARM7 core causes incorrect pan/level values to be computed in e.g. the Naomi SOUND TEST menu. This is not a defect in the AICA.
  • stephh fixed Dip Switches (especially coinage) and inputs for '10yard' (and its clones). Tried to "unify" the driver with m52 and m57 drivers (I still think that some things can be merged).
  • R. Belmont fixed unaligned 32-bit reads in the ARM7 core.
  • Zsolt Vasvari fixed misaligned backgrounds in mpatrol caused by recent changes.
  • Atari Ace made minor code cleanups. Added static/const where appropriate, plus some include fixes. Reverted some of the changes to build.mak from u1 which made some MSVC builds fail, and adjusted/optimized an m10.c gfx_layout. Added some missing cores to cpuintrf.c, sndintrf.c and added some missing #if's to 5220intf.c.
  • Brian Troha fixed one or two dips in the mirage.c driver and found the "service" switch and likely start of inputs.
  • Aaron Giles removed expand_machine_driver(). Replaced with machine_config_alloc() and machine_config_free(). Updated all call sites. Normalized info.c style and simplified some of the code.
  • Aaron Giles renamed machine->drv to machine->config to reduce overloading of the term "driver".
  • Zsolt Vasvari simplified collision detection in taitosj and tank8.
  • Aaron Giles added a new module: devintrf.c/.h. Implements a generic device interface similar to the sound and CPU interfaces.
  • Aaron Giles added a new module: mconfig.c/.h. Moved all machine_config and MDRV_* macros here, out of driver.c/.h. Added MDRV macros for adding/removing/ configuring devices.
  • Aaron Giles deprecated the following constants because global constants that pretend to document things but which are only guesses are dumb:
    • Updated all drivers to explicitly specify the equivalent bogus times. Added comments for the "REAL" VBLANK durations to indicate that they are not accurate.
  • RansAckeR improved some DIP switches, added some DIP locations, replaced IPT_COINx with IPT_SERVICE1 where appropiate, and simplified some control definitions in the following drivers: alpha68k.c, actfancr.c, aeroboto.c, aerofgt.c, aliens.c, ambush.c, amidar.c, amspdwy.c, angelkds.c, appoooh.c, arabian.c, argus.c, arkanoid.c.
  • Corrado Tomaselli connected the Shadow Warriors buttons like they are wired on the original pcb (which is jamma).
  • RansAckeR added DIP locations to: cclimbr2 , legion, terraf, ultennis, cheesech, stonebal, stoneba2, scessjoe, ashnojoe, asteroid, llander, llander1, astdelux.
  • Atari Ace fixed multi-session crash with Namco System 2 games.
  • James Wallace fixed a few corner cases in the 6840 emulation based on running the MPU4 test ROMs, and added the ability to dynamically alter the external clock frequencies in game.
  • James Wallace changed the 6850 core to allow dynamic RX and TX clock alteration, to at least try to remove a few of the MPU4 timing problems.
  • James Wallace updated documentation of the MPU4 Video board. Added documentation of

the Cosmic Chasm crystals, and merged the memory maps.

  • KO Myung-Hun fixed validation fail of '_mul_32x32_hi()' and '_mulu_32x32_hi()' inline function when compiled GCC v3.3.5 with I686 optimization.
  • Corrado Tomaselli verified clocks on Rainbow Islands and Rambo 3 and Raiden 2. Reverted sound OSC of Truxton 2 to 27mhz/8 since the original OST runs at this speed. The pcb I measured the previous clock was 28mhz/8 and it's a different pcb version from the common one. Since mame doesn't support multiple OSC I prefer to use the 27mhz one.
  • Kevin Eshbach fixed some incorrect rom dumps for Double Dragon 3 (Some of the dumps were based on the bootleg and not the original) and updated the name and location to actually match that of a real board.
  • Kevin Eshbach added DIP locations to Combatribes and Battletoads.
  • Zsolt Vasvari added video_screen_update_now(int scrnum) to force a screen update up to the current beam position.
  • Aaron Giles pulled remaining vestiges of old-style colortables:
    • PALETTE_INIT no longer has a colortable parameter
    • removed game_colortable and remapped_colortable from machine_config
    • updated a few stragglers that still referenced these fields
    • removed tile_draw_colortable from tilemap.c
  • Aaron Giles changed the input port tokens to use a union instead of casting everything to FPTR. In the future, C99-enabled compilers will be able to achieve type safety with designated initializers.
  • Curt Coder added the i8749 CPU variant for MESS.
  • Samuele Zannoli added missing SH4 instructions and bugfixed the FPU. Improved Naomi I/O board emulation and added working controls.
  • Zsolt Vasvari made jedi.c improvements:
    • Complete memory map
    • Crystals
    • Driver state structure
    • Text layer is rendered at the same time as the background
  • Zsolt Vasvari reorganized the Qix driver (driver state, decoupled audio section, etc.)
  • Zsolt Vasvari changed all drivers using the MC6845 chip to use the new device interface. Removed mc6845_config.
  • Zsolt Vasvari reorganized Gameplan driver. Changed Trivia Quest use the Gameplan video code. Added crystal for Gameplan pixel clock.
  • Zsolt Vasvari removed the unnecessary pen array lookup from some INDEXED16 drivers.
  • Aaron Giles removed the per-screen palette_base. This was an idea that never really worked out, nor have we really needed it.
  • Aaron Giles defined a new device type VIDEO_SCREEN. Currently this has no live functionality, but merely serves as a placeholder/identifier for video screens. Eventually some of the screen management code may move into the start/stop/reset functions.
  • Aaron Giles changed MDRV_SCREEN_ADD to specify a screen type (RASTER, VECTOR, LCD for the moment). Removed the older VIDEO_TYPE_RASTER and VIDEO_TYPE_VECTOR; this information is now determined by walking the screen list.
  • Aaron Giles changed MDRV_SCREEN_* macros to build up VIDEO_SCREEN devices rather than storing values in the screen[] array. Removed the screen[] array from machine_config. Modified all code referencing Machine->config->screen[] and changed it to iterate over the devices using the new video_screen_first() and video_screen_next() functions.
  • Aaron Giles removed implicit screen #0. This means that ALL DRIVERS MUST EXPLICITLY DECLARE THEIR SCREENS. Updated all drivers to do so. While there, grouped all MDRV_SCREEN_* parameters together. Also removed unnecessary VIDEO_TYPE_RASTER and VIDEO_TYPE_VECTOR. Also removed VBLANK and bitmap format information from vector games. This was painful and very tedious.
  • Aaron Giles changed game information to display info about all screens.
  • Zsolt Vasvari changed Beathead driver to use partial updates instead of caching scanline level information.
  • Zsolt Vasvari added state_save_combine_module_and_tag(). Its purpose is to create a unique name for state saving purposes in modules that are tag based (no index).

Game Support

New games added or promoted from NOT_WORKING status

New clones added

New games marked as GAME_NOT_WORKING