MAME 0.126u1


Release Date

MAME 0.126u1 was released on 17 July 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:

  • Aaron Giles changed makemeta:
    • Split out Manchester code parsing into a separate utility module.
    • Rewrote Manchester code parsing to be clock based.
    • Updated makemeta to call the new functions.
    • Changed makemeta to parse a different format for metadata.
    • Fixed Huffyuv decompression in aviio.
    • Added more robust logic to parse out the white flag.
  • Wilbert Pol updated pit8253:
    • Changed the implementation to use timers internally.
    • Removed the frequency change callbacks.
  • stephh updated the slapfght driver:
    • Renamed sets :
      • tigerh2 -> tigerhb1 ("Japan set 2" -> "bootleg set 1")
      • tigerhb1 -> tigerhb3 ("bootleg set 1" -> "bootleg set 3")
      • gtstarba -> gtstarb1 ("bootleg set 2" -> "bootleg set 1")
      • getstarb -> gtstarb2 ("bootleg set 1 -> "bootleg set 2")
    • "Performan" :
      • cleaned/fixed Dip Switches and added port locations
    • "Tiger Heli" :
      • added MCU simulation for 'tigerhb1' (in fact, I only had to return the correct value for the hardware test as there doesn't seem to be any other communication - I'm still not convinced that this bootleg had a MCU)
      • cleaned/fixed Dip Switches and added port locations
      • added notes with the differences between the different sets
    • "Get Star" / "Guardian" :
      • added MCU simulation for 'getstar' and 'getstarj' heavily based on 'gtstarb1' bootleg
      • cleaned/fixed Dip Switches and added port locations
      • added notes with the differences between the different sets (and especially detailed the numerous ingame bugs in 'gtstarb2')
  • Nathan Woods and Aaron Giles added new module uiinput.c which manages input for the user interface. The OSD is responsible for pushing mouse events and character events to this interface in order to support mouse movement and text-based input (currently only used for the select game menu). Added support for navigating through the menus using the mouse.
  • Aaron Giles redesigned the UI menus so that they can maintain a richer state. Now the menus can be generated once and reused, rather than requiring them to be regenerated on each frame. All menus also share a comment eventing system and navigation through them is managed centrally. Rewrote all the menus to use the new system, apart from the cheat menus, which are now disabled. Reorganized the video menu to make it easier to understand.
  • Aaron Giles converted the UI startup screens to use astrings.
  • Aaron Giles fixed edge case in the DRC front-end that would incorrectly tag the end of a sequence as "return to start" even if the last instruction did not abet the starting instruction.
  • Aaron Giles replaced the crazy number of get/set functions for render containers with a single get/set of a user settings struct.
  • R. Belmont added a UDRC-based SH-2 dynamic recompiler:
    • All games on all drivers should work as before except "colmns97" and "stress" which crash due to sound system trouble.
    • All idle skips are still included. They are quite a bit less effective than they were on the interpreter, but they still give a boost.
    • Fast RAM bypass is not included yet so this does not represent final performance. That said, it's consistently faster than the interpreter even now. Example: sfiii3 on 0.126 gets 609% on the interpreter and 961% on the DRC.
  • Brian Troha added ST-V BIOS info based on text at 0x800 (byte swapped). Reorganized the BIOS list & description. Added the USA bios to smleague and it's a USA only cart.
  • David Haywood moved kodb to fcrash.c (which will probably end up being the home of the cps1 bootlegs).
  • Samuele Zannoli updated the SH-4 core:
    • Fixed TRAPA and some versions of FMOV
    • Improved disassembly for MOV.W, MOVA, MOV.L, FIPR, and FSCA.
  • ElSemi changed the i960 core: respect the rounding mode for CVTRI
  • couriersud fixed cocktail sprite position in galaxian.c. Fixes that the frog disappears for player 2 if moved backwards.
  • Aaron Giles changed direct access EEPROM interface to return the "bus width" of the EEPROM data, and the size is in terms of units, not bytes. Updated all drivers accordingly.
  • Aaron Giles changed the ROM loading code to actually alter the region flags based on the CPU endianness and bus width when creating the region, rather than fixing them up on the fly. This means that callers to memory_region_flags() will get the correct results.
  • Aaron Giles changed the expression engine to use two callbacks for read/write rather than relying on externally defined functions.
  • Aaron Giles expanded memory access support in the expression engine. Memory accesses can now be specified as [space][num]<size>@<address>.
    • 'space' can be one of the following:
      • p = program address space of CPU #num (default)
      • d = data address space of CPU #num
      • i = I/O address space of CPU #num
      • o = opcode address space of CPU #num (R/W access to decrypted opcodes)
      • r = direct RAM space of CPU #num (always allows writes, even for ROM)
      • e = EEPROM index #num
      • c = direct REGION_CPU#num access
      • u = direct REGION_USER#num access
      • g = direct REGION_GFX#num access
      • s = direct REGION_SOUND#num access
    • The 'num' field is optional for p/d/i/o/r, where is defaults to the current CPU, and for e, where it defaults to EEPROM #0. 'num' is required for all region-related prefixes.
    • Some examples:
      • w@curpc = word at 'curpc' in the active CPU's program address space
      • dd@0 = dword at 0x0 in the active CPU's data address space
      • r2b@100 = byte at 0x100 from a RAM region in CPU #2's program space
      • ew@7f = word from EEPROM address 0x7f
      • u2q@40 = qword from REGION_USER2, offset 0x40
    • The 'size' field is always required, and can be b/w/d/q for byte, word, dword, and qword accesses.
  • Macareno added World Rally support to tiny.mak/.c.
  • RansAckeR made changela input improvements:
    • DIP switch fixes
    • Added DIP locations.
  • Sonikos made minor srmp5 update:
    • Removed hack in drive machine R3000
    • Adjusted R3000 frequency to 25 Mhz according to speglsht (the hardware is the same)
    • Adjusted visible area (but i'm not sure it's correct)
    • Fix one rom loading
  • Nicola Salmoria changed partial refresh policy in snk68.c and updated comments.
  • Fabio Priuli converted more drivers to input_port_read():
    • converted to use tagged inputs and handlers all drivers starting with S & T
    • simplified input reads in system24 (removing a redundant handler)
    • cleaned up a bit inputs in system 16 & 18 bootlegs (among the other things, now coinage and P2 inputs in fpointbl & fpointbj work again)
    • removed a lot of redundant #define from taito drivers, replacing them with PORT_INCLUDEs and definitions from taitoipt.h

Game Support

New clones added

New games marked as GAME_NOT_WORKING