Release Date

MAME 0.125u4 was released on 5 June 2008.


Contributors

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:

  • Nathan Woods made it possible to pass a NULL errorbug to input_port_config_alloc(). Fixes -listxml crashes.
  • Roberto Fresca improved the Sandii' games:
    • Switched the color system to RESNET calculations.
    • Hooked the infamous bit7 of Input Port 0x3004 in parallel to DIP switch 1. This allow to use the PAYOUT button to trigger the Super Game instead of STOP 5.
    • Demultiplexed lamps matrix.
    • Added lamps support, but is still imperfect.
    • Updated technical notes.
  • couriersud made a discrete sound update:
    • added NODE_RELATIVE(NODE, offset) macro to discrete.h
    • fix asteroid.c, canyon.c, skydiver.c and tank8.c to use this macro instead of adding directly to the node
  • nuapete added simulaton of tecmosys protection.
  • Roberto Fresca made improvements to gatron.c:
    • Renamed the games to "Poker 4-1" and "Pull Tabs" as shown in the ROMs stickers.
    • Renamed the ROMs in each set according to their own stickers.
    • Moved the driver into gametron.a group.
    • Added the missing input port C to 8255 PPI I/O chip. Poker41 and pulltabs don't make use of it, but is present in the Test/Setting Mode.
    • Updated technical notes.
  • nupete added proper bankswitching to the dealer driver, validating a ROM previously thought to be bad.
  • David Haywood many improvements to the tecmosys video and sound emulation.
  • R. Belmont adjusted the NamcoNA output rate to match pitch with F/A and Cosmo Gang the Puzzle soundtrack CDs.
  • Wilbert Pol made some Nintendo Minx cpu core updates:
    • Styling changes
    • Added instruction cycle counts.
    • Added interrupt support.
    • Added HALT support.
    • Fixed INT instruction.
    • Added incomplete support for DIV and MUL instructions.
    • Fixed MOV [#nnnn],BA and MOV [#nnnn],HL instructions.
    • Fixed interrupt handling.
    • Fixed opcodes 45, 4D, 55, 5D, B5, B6, B7, FC, FD, and CF 70-7F
    • Fixed flag results for INC, DEC, AND, OR, and XOR instructions
  • Roberto Fresca made improvements to the ampoker2 driver:
    • Reworked the input system for Sigma Poker 2000.
    • Promoted Sigma Poker 2000 to 'WORKING' state.
    • Updated technical notes.
  • R. Belmont updated the 53c810 SCSI adapter to pass IRQ state with the IRQ callback.
  • Fabio Priuli and couriersud removed port_input_read_indexed in favor of the use of proper tags in a number of drivers.
  • R. Belmont upped the max directory size for ST-V/Saturn driver.
  • Curt Coder made COP4xx updates:
    • Added HALT opcode and halt mode to the COP410
    • Added Microbus support, clock divisor selection, and CKO mode selection to the COP420
    • Changed Thayer's Quest keyboard interface to at least slightly resemble the schematics
  • David Haywood changed the suprnova blending implementation a bit. Still not right.
  • Nicola Salmoria optimised tilemap_draw rowscroll case to avoid overhead when used with clip rects smaller than the tilemap. This reduces by an order of magnitude the time taken to render the bg in Gunnail stage 5.
  • Aaron Giles added a PowerPC dynamic recompiler:
    • rewrote PowerPC implementation as a dynamic recompiler on top of the universal recompiler engine
    • wrote a front-end to analyze PowerPC code paths and register usage
    • wrote a common shared module with C implementations of tricky CPU behaviors
    • added separate CPU types for the variants supported, instead of relying on a hidden model enum
    • rewrote the serial port emulation for the 4xx series to be more accurate and not rely on separate DMA handlers
    • rewrote the MMU handling to implement a software TLB that faults in pages and handles changed bits appropriately
    • implemented emulation of the PowerPC 603's software TLB, which allows the model 3 games to run without a hack to disable the MMU
  • Aaron Giles updated the PowerPC disassembler to share constants with the rest of the core, and to more aggressively use simplified mnemonics, especially for branches.
  • Aaron Giles changed the universal recompiler:
    • fixed frontend to handle opcode widths different from bus width
    • added several new opcodes:
      • (D)GETFLGS - copies the UML flags to a destination operand
      • FDRNDS - rounds a double precision value to single precision
    • renamed several opcodes:
      • SETC -> CARRY
      • XTRACT -> ROLAND
      • INSERT -> ROLINS
    • consolidated the following opcodes:
      • LOAD?U -> LOAD
      • LOAD?S -> LOADS
      • STORE? -> STORE
      • READ?U -> READ
      • READ?M -> READM
      • WRITE? -> WRITE
      • WRITM? -> WRITEM
      • SEXT? -> SEXT
      • FTOI?? -> FTOINT
      • FFRI? -> FFRINT
      • FFRF? -> FFRFLT
    • removed some opcodes:
      • FLAGS - can be done with GETFLGS/LOAD4/ROLINS
      • ZEXT - can be achieved with AND
      • READ?S - can be achieved with READ/SEXT
    • updated C, x86, and x64 back-ends to support these opcode changes
    • updated disassembler to support these opcode changes
  • Aaron Giles changed the MIPS3 dynamic recompiler:
    • fixed Cause register for bad COP instructions
    • updated to use new/changed opcode forms
    • changed context switch so that it only swaps a single pointer
  • Aaron Giles made Konami Hornet changes:
    • updated to new PowerPC configurations
    • updated some memory handlers to be native 8-bit handlers
    • cleaned up JVS implementation to work with new serial code
    • added fast RAM for the work RAM to give a small speed boost
  • Aaron Giles made Konami GTI Club changes:
    • updated to new PowerPC configurations
    • updated some memory handlers to be native 8-bit handlers
  • Aaron Giles made Konami Viper/ZR107 changes:
    • updated to new PowerPC configurations
  • Aaron Giles made Sega Model 3 changes:
    • updated to new PowerPC configurations
    • reimplemented/centralized interrupt handling
    • these games are broken for the moment
  • Aaron Giles fixed crasher due to some Konami games using 8 layers in the K056832 implementation, even though it was only written for 4.
  • Aaron Giles added a fisttp opcode to the i386 disassembler.
  • Atari Ace introduced/updated some include files for files that export functions whose apis will need to be changed to handle machine parameters (cps1.h, decocrpt.h, ms32.h, pgm.h, fd1089.h, konami1.h). In the case of konami.c, renamed the file konami1.c and changed the api and callers to only require one function export. Pulled memory_region*() calls out of for loops and folded the occasional duplicated call. The compiler can't likely infer that the results are constant, so this should be a minor performance win as well.
  • Sonikos fixed some dips and added correct inputs for wpksocv2, despite still missing the correct input for begin the left right movement the game is almost playable.
  • ShimaPong updated the cheat system:
    • Locked search region when malloc fails to allocate gigantic memory instead of fatal error. Also locked zero malloc error in case of search speed = all memory in 32-bit CPU. And added search region range checker to lock a search region with a big risk
    • Fixed a bug that old code is always converted to specified separator in enable/disable menu
    • Refined new cheat format.
      • Rewritten cheat format again. newest format is ":gamename::type::address::data::extend_data:(description:comment)" - Expanded type field now requires 10 bytes (not 8 bytes) and it divides internal cpu (2 bytes) and type (8 bytes) parameters
      • Removed VWrite, VRWrite. The flag of Value Selection is merged into expanded type field now.
      • Added CBit (Condition Bit). This checks bit in read data then set or clear bit in case of true.
      • Rearranged cheat code viwer based on newest cheat format
    • Fixed unworking Load Old Format option. If you want to load old or older format code, set it (default is OFF)
    • Renamed functions/structures based on coding guidlines - All structures and included parameters are completed
    • Merged resize_*_no_dispose() into resize_*()
    • Removed the hack of search region for SH-2 CPU because required - region is now set as expected without this hack
  • Aaron Giles made duplicate input port bits an error now that all the warnings are fixed.
  • Aaron Giles added compile-time error if PTR64 is incorrectly set.


Game Support

New games added or promoted from NOT_WORKING status

New clones added

New games marked as GAME_NOT_WORKING