MAME 0.135u4


Release Date

MAME 0.135u4 was released on 23 December 2009.


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:

  • Fabio Priuli added driver data struct to:
    • airbustr.c
    • cvs.c
    • 8080bw.c and mw8080bw.c
    • 88games.c, combatsc.c and rockrage.c
    • psikyo4.c and psikyosh.c
  • Fabio Priuli added driver data struct and save states to:
    • djboy.c
    • toratora.c and sf.c
    • neogeo.c
    • cps1.c, cps2.c and fcrash.c
    • cbasebal.c, chinsan.c, mitchell.c and quasar.c
    • malzak.c
    • battlnts.c, bladestl.c, crshrace.c and contra.c
    • f1gp.c, fastlane.c, flkatck.c, hcastle.c, labyrunr.c and suprslam.c
    • psikyo.c and pgm.c
  • Aaron Giles removed old index-based DISCRETE_ADJUSTMENT and then renamed the newer DISCRETE_ADJUSTMENT_TAG to replace it. Updated all callers.
  • Fabio Priuli added saves to 6522via.c. This fixes problems of gameplan.c and trvquest.c games with -autosave.
  • Fabio Priuli enabled GAME_SUPPORTS_SAVE flag to dday.c because some of the core changes have fixed the sound problem at loading.
  • Fabio Priuli imported SAA5050 emulation from MESS and made it a device. Updated malzak.c to use it, removing the almost identical implementation in the driver.
  • Fabio Priuli added TILE_GET_INFO_DEVICE and SET_TILE_INFO_DEVICE macros to tilemap.c.
  • Fabio Priuli made MB14241 Shifter IC a device and moved its source to emu/machine. Updated mw8080bw.c and 8080bw.c accordingly. Also converted fgoal.c to use this implementation in place of its own version.
  • Aaron Giles enhanced the UML opcodes for LOAD, LOADS, and STORE to support arbitrary scaling factors. Previously, specifying a size implied a scaling factor equal to the size (i.e., specifying DWORD meant the index was scaled by 4). This is still the default. However, now you can specify the scale explicitly for other cases. For example, you can specify DWORD_x1 to fetch a DWORD but don't scale the index at all, or BYTE_x8 to fetch a BYTE while scaling the index by 8. Updated all backends to make this work.
  • Fabio Priuli provided Konami devic-fication and improvements:
    • Added device versions of all the Konami custom ICs currently emulated in machine/konamiic.c and video/konamiic.c.
    • Updated combatsc.c, contra.c, crshrace.c, f1gp.c, fastlane.c, flkatck.c, hcastle.c, labyrunr.c and suprslam.c to use the new code.
    • Moved k056800 sound device to emu/sound and removed the old code; updated gticlub.c, hornet.c, nwk-tr.c, ultrsprt.c and zr107.c to use this implementation.
    • Updated 88games.c, battlnts.c, bladestl.c and rockrage.c to use new devices.
    • Updated asterix.c and moo.c to use the new devices.
    • Converted aliens.c, blockhl.c, crimfght.c and gbusters.c to use Konami video devices.
    • Updated parodius.c, simpsons.c, thunderx.c, vendetta.c and xexex.c to use the new video devices.
    • Updated overdriv.c to use the Konami video devices.
    • Updated gradius3.c, mainevt.c & gijoe.c to use Konami video devices.
    • Updated ajax.c, bottom9.c, chqflag.c, rollerg.c, spy.c, surpratk.c to use Konami video devices.
    • Updated dbz.c, lethal.c, metro.c, rungun.c, tail2nos.c, tmnt.c, ultraman.c, wecleman.c, xmen.c & zr107.c to use Konami video devices instead of konamiic.h code.
    • Updated bishi.c and djmain.c to use Konami video devices.
    • Updated plygonet.c to use Konami video devices and input_port_write for eepromdev_read_bit.
    • Updated asterix.c, gijoe.c, hornet.c, lethal.c, moo.c, overdriv.c, rungun.c, vendetta.c, xexex.c & xmen.c to use eeprom device.
    • Updated konamigx.c, tmnt.c and mystwarr.c to use eeprom device.
  • Aaron Giles fixed tilemaps so they can be initialized at device start time.
  • Aaron Giles fixed crash on exit for systems with no tilemaps.
  • Aaron Giles added warning messages for auto_malloc, timer, and save state allocations done after init time. These should be fixed when detected, and will soon be disallowed entirely. Fixed many cases in the code where this was being done.
  • Aaron Giles converted Taito F3 sound to a separate machine driver which is imported into games that use it.
  • Aaron Giles converted the balsente driver to driver_data structure.
  • Aaron Giles provided some more Atari driver shuffling. Added atarigen_init() function which allocates all timers and registers for save states. Updated all drivers to call it. Converted some drivers to use device timers.
  • Aaron Giles changed ticket.c into a device, updated all users.
  • Curt Coder fixed FLAG handling and slight interface cleanup for CIA6526.
  • Angelo Salese updated the Koi Koi Part 2 driver: written an hardcoded table (disabled by default), concluded that a color prom is currently undumped. Also documented a bunch of unused ports.
  • Angelo Salese cleaned up the Sky Army driver, also removed the GAME_WRONG_COLORS flag since the colors actually seems correct according to the references.
  • Harmony added Preliminary RSP recompiler, with all vector ops stubbed out to C functions for now.
  • Tafoid added proper COINAGE selections as well DIP LOCATIONS to sbowling.c. Added mapping for button 1 which is used to allow change from curve to straight throw. Replaced clock speeds with XTAL values.
  • Andrew Gardner re-implemented 3d rasterization in the hng64 driver as a FIFO system.
  • Tafoid added DIP LOCATIONS to ggconnie.c to match those showing in service mode. Added game year to source from title screen.
  • David Haywood added preliminary decryption to Victor 5, Victor 21 and Cross Bingo.
  • Tafoid added DIP LOCATIONS as well as assigned XTAL for the clock speeds to hexa.c, using those from Arkanoid, since the boards are nearly identical in many aspects.
  • Harmony provided RSP recompiler improvements / optimizations:
    • Split SATURATE_ACCUM into a signed and unsigned version to reduce stack usage.
    • Corrected an issue with the 0h variants of VMRG, VAND, VNAND, VOR, VNOR, VXOR and VNXOR.
    • Slightly optimized unaligned reads and writes.
    • Optimized unaligned dword reads.
    • Corrected an issue where badly-written RSP programs could jump to invalid addresses.
  • Aaron Giles added new profiler bucket for DRC recompilation.
  • Tafoid added DIPS and changed clock values to XTAL in gomoku.c, sspeedr.c.
  • Tafoid changed clock values to XTAL in nitedrvr.c, tourtabl.c.
  • couriersud added new option "numprocessors" (see windows.txt for an explanation).
  • Harmony optimized N64 RDP renderer by using function pointers to function variants that eliminate costly branches.
  • Aaron Giles added minor drc improvments:
    • Simplified RSP's misaligned memory accesses.
    • Removed now-unnecessary shifts from direct memory accesses in mips3/powerpc drcs.
    • Optimized AND with 0xff/0xffff/0xffffffff cases for x86/x64.
    • Added rudimentary memory/register tracking in x86 backend to remove redundant loads.
  • robiza added cb2001 improvements:
    • Added ay8910 and 8255ppi devices.
    • Added some info about relation between cmast91 and cb2001.
    • Added many opcodes.
  • Angelo Salese worked around protection in sranger, srangerw and srangerb.
  • Aaron Giles converted 7474, 74148, and 74153 TTL implementations to devices.
  • Brian Troha provided more rom name corrections for the merit.c driver.
  • Guru added Guru's board notes to the Outrun/Super Hang-on driver.
  • Oliver Stoneberg removed the global "includes" include and instead specify the "includes" path in all #include occurences.
  • Atari Ace eliminated the use of generic.colorram and generic.videoram in several drivers.
  • Fabio Priuli removed auto-init hack from some Konami games. Hold down F2 and reset (via F3) to initialize the EEPROM, like all the other Konami games.
  • Aaron Giles cleaned up EEPROM device implementation a bit.
  • Fabio Priuli converted gaelco3d.c to use eeprom device code.
  • Angelo Salese refactored the protection, implemented thrash protection that's used after the title screen in Spark Man.
  • Aaron Giles made EEPROM device look for a matching memory region to fetch the default values from. Fixed bug in ROM loader that would change the memory region flags to match devices with no address bus. Updated groundfx to use the new default loading scheme.
  • Andrew Gardner reworked the hng64 polygon chunk recovery code to be more crash-proof. Documented what's known about the 3d data much better. Fixed vertex ROM loading for fatfurwa and buriki.
  • Aaron Giles added "new" command -listdevices (or -ld) to list the devices attached to a driver. I notice that MESS has a command with the same name; hopefully the behaviors can be combined eventually.
  • Aaron Giles got rid of explicit resource tracking for state saving. Now we just use the auto_ allocators, since registration is restricted to initialization.
  • Aaron Giles moved machine->gfx initialization out of the video module and into drawgfx. We now call this before devices are initialized, so that devices can dynamically append to the machine->gfx as needed.
  • Barry Rodewald provided i386 improvements:
    • Minimal implementation of the LSL protected mode instruction.
    • Fixed the REP instruction when used with a segment prefix.
  • Guru updated readme for Race Drivin' Compact.
  • Atari Ace fixed a couple of edge case parsing bugs in srcclean.c.
  • Atari Ace fixed some unbalanced quotes/braces lurking in the source (mostly in disabled code).
  • Samuele Zannoli added a new CPU core for the PIC 16c62x series of processors.

Game Support

New games added or promoted from NOT_WORKING status

New clones added

New games marked as GAME_NOT_WORKING