Release Date

MAME 0.141u3 was released on 28 February 2011.


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:


  • Angelo Salese rewrote IOX key matrix device implementation, used by Super Real Mahjong Part 2/3.
  • Angelo Salese removed ROM patches and added working player 2 inputs in Super Real Mahjong Part 3.
  • Belegdol fixed compiling on GCC 4.6 prerelease.
  • Alex Jackson added information screen output for any game known to have bad or missing data in order to better inform the user as to the reason their emulation may not work as expected.
  • Angelo Salese Rewrote Speed Attack video routines from scratch, also fixed screen flipping in it.
  • Aaron Giles defined new macro ALLOW_SAVE_TYPE which can be used to declare enums as valid save types on a case-by-case basis. Updated the cosmac CPU core to do this for its mode and state enums, which were previously failing.
  • Andrew Gardner added a new sound device: Oki MSM9810:
    • Added and hooked up volume table.
    • Added preliminary ADPCM2 support.
    • Added sub-table lookups.
    • Added OPT command.
    • Implemented on-chip interpolation & status read.
    • Implemented PAN command and stereo mixing.
  • hap provided destroyr.c driver minor improvements:
    • Proper addressmap masks.
    • Added 30132-01.k4 rom, duplicate of 30132-01.f4.
    • Added version O1 romset, dumped by Siftware.
  • Miodrag Milanovic added shortname to devices in order to make ROM loading per device possible.
  • O. Galibert updated the ksys573 and Naomi drivers: Device-ified the security flashes and the dallas id chip.
  • Lord Nightmare fixed the interpolation coefficient shifts for the tms5xxx chips based on results of simulating the circuit from the patent.
  • Aaron Giles turned mame_file into emu_file and is now a class. It is required to pass a core_options object to the constructor, along with a search path. This required pushing either a running_machine or a core_options through some code that wasn't previously ready to handle it. emu_files can be reused over multiple open/close sessions, and a lot of core code cleaned up nicely as things were converted to them.
  • Aaron Giles created a file_enumerator class for iterating over files in a searchpath. This replaces the old mame_openpath functions.
  • Aaron Giles changed machine->options() to return a reference.
  • Aaron Giles removed public nvram_open() and fixed jchan/kaneko16 to stop directly saving NVRAM.
  • Aaron Giles removed mame_options() calls; options can only be queried from the running_machine, or by passing them along.
  • Aaron Giles added core_options to device_validity_check() so they can be used to validate things.
  • R. Belmont updated chdman: experimental incomplete .nrg disc image import.
  • Fabio Priuli took the first (small) step towards driver class for megadrive-based drivers
  • Barry Rodewald fixed LLDT * reg, LTR and LMSW instructions, and added preliminary implementations of VERR, VERW and LAR in the i386 CPU core.
  • David Haywood updated megadriv.c: Rewritten SegaCD/MegaCD emulation.
  • David Haywood updated cdrom.h: Added alt lba_to_msf conversion needed by SegaCD/MegaCD.
  • Atari Ace eliminated global/static variables in a number of Konami/Sega drivers by introducing/using driver_device classes.
  • Atari Ace eliminated global/static variables in a aristocr / atlus / bfm / bmc / capcom/ cinemat / dataeast drivers by introducing/using driver_device classes.
  • R. Belmont corrected SPU IRQ notification in all drivers. Fixes streaming audio in Simpsons Bowling.
  • Angelo Salese implemented address readback position registers in rf5c68 sound core.
  • Curt Coder added HD6301 subtype to the M6800 CPU core.
  • Curt Coder made the symbols file be deleted if defined when invoking clean target.
  • Curt Coder used the common MC68901 device in micro3d.c.
  • Andrew Gardner updated the sigmab98 driver: added preliminary sound to the Sammy medal games.
  • Michael Zapf updated tms9928a.c: Fixed colors in multicolor mode.
  • Dirk Best updated the i386 core: Changed READ/WRITEPORT macros to inline functions to properly support aligned vs. unaligned writes. Fixes regressions in MESS for all drivers using the PCI bus and possibly others.
  • Miodrag Milanovic made possible to add input ports to device, names are formed as sub tags from parent device tag.
  • pSXAuthor, Harmony and R. Belmont updated the PSX driver: added DMA mode used for CD transfers on home system, fixed DMA bug that caused home system to freeze.
  • Aaron Giles provided a hash generation and general cleanup. New class hash_collection holds and manages a collection of hashes, and can be built from an internal format string which is stored with each ROM. Also compacted the form of the hash strings used for ROMs, and fixed verification/hashing of non-ZIPped files.
  • hap updated circus.c: Improved interrupt handling: circus generates them the same way as ripcord (based on sprite-bg collision), robotbwl doesn't generate interrupts at all.
  • Tafoid updated DIPS and Dip Locations based on documents posted by Laschek at KLOV.
  • cgwg updated the SDL port: GLSL now works for all pixel formats; fixed memory leak on textures
  • Atari Ace eliminated statics/globals in drivers jpm / kaneko / maygay / meadows / merit / metro / midcoin / midw8080 / midway / msx / namco.
  • Atari Ace converted dooyong / edevices / eolith / exidy / gaelco / gottlieb / igs / itech / jaleco drivers to driver_device.
  • Atari Ace decoupled some entagled drivers:
    • Removed unneeded #include lines (gal3.c galaxold.c asic65.c).
    • Split part of the driver include into a separate multi-driver include file (audio/exidy.h audio/exidy440.h audio/wiping.h machine/segag80.h).
    • Moved code to a new file/include to be referenced in multiple drivers (ms32crpt.* ch opwolf.c rainbow.c).
    • Duplicated some code (palette related) between drivers (mainsnk rollrace sslam)
    • Moved a driver specific routine to a generic device file (atarimo).
    • Cleaned up a few include files (cubocd32 cidelsa metalmx seicross thoop2).
  • Tomasz Slanina fixed sound issues in Pollux, Gulf Storm and The Last Day.
  • Sandro Ronco updated LH5801 CPU core:
    • Added IO_SPACE and updated all access in ME1 memory for use it.
    • Implemented interrupts.
    • Fixed the flags in the ROL/ROR/SHL/SHR opcodes.
    • Fixed decimal add/sub opcodes.
  • Barry Rodewald updated the i386 core: Fix for exceptions that require the return address to point to the instruction at fault.
  • R. Belmont fixed reads for 32-bit handlers on 64-bit CPUs too.
  • Roberto Zandona provided Amiga fixes:
    • Removed additional 2 cycles, in move operation, for non-Agnus registers.
    • Set to #0 the start cycle in the copper operation.
  • smf provided PSX updates:
    • Fixed DICR handling.
    • Removed non existant root counter 3 IRQ.
    • Ignore root counter stop when reset is also set.
    • Removed custom root counters in Konami 573 driver.
  • smf updated the DS2401 device: Fixed timer intervals.
  • Hans Ostermeyer provided M680x0 updates:
    • Instruction cache emulated on '020 and later.
    • Fixed interaction between MMU and bfextu/bfexts/bfins.
    • Added fsgldiv, fsglmul, and fscc FPU instructions.
    • Fixed fault address in stack frame.
    • Fixed supervisor violation bit in MMU status register.
    • Add fmovem modes 1 and 3.
    • Various other MMU fixes.
  • Team Japump fixed ROM name and driver description for blkdrgon.
  • Lord Nightmare and Enik added specific support for the fact that setting frequency to 0 does not behave as if frequency was set to 0x400 on the Sega-manufactured PSG clone chips, whereas it does on the original TI-made ones. Fixes Sega Master System 'Vigilante' music.
  • Miodrag Milanovic modified video update system:
    • Screen update function is now per screen device (it was before but was attached to machine driver).
      • MCFG_VIDEO_UPDATE -> MCFG_SCREEN_UPDATE
      • MCFG_VIDEO_EOF -> MCFG_SCREEN_EOF
    • EOF is now executed for all screens, so for all existing it is defined just for one screen. This part will be updated in future.
  • David Haywood refactored the CD32 code base to eliminate duplicate code between MAME and MESS.
  • Curt Coder added overloaded input_port_read() for reading device owned input ports.
  • hap fixed global flipscreen.
  • Fabio Priuli provided softlist wip code to add more info nodes.
  • Luca Elia provided a seta2.c update:
    • Horizontal clipping of "tilemap" sprites.
    • Shadows emulation.
  • R. Belmont updated the AICA core: Correct slotmon readback. Streaming sounds now advance in e.g. capsnk.
  • Atari Ace converted nichibut/nintendo/nix drivers to use a driver_device.
  • Aaron Giles fixed attotime max() function to not be a copy of min(). Fixes several regressions in the scheduler after the recent attotime object conversion.


Game Support

New games added or promoted from NOT_WORKING status


New clones added


New games marked as GAME_NOT_WORKING