Release Date

MAME 0.139u2 was released on 30 August 2010.


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:

  • Mariusz Wojcieszek added sound support to Signetics S2636 (by using VC4000 sound support from MESS). Hooked up sound to Malzak, Galaxia and Astro Wars.
  • Lord Nightmare and Tormod corrected rom names for Raiden Fighters 2 (Asia, Metrotainment License) set based on pcb pictures.
  • Brian Troha updated seibuspi.c: Fixed the "FIX" graphics load. May require specific ENDIAN to work on all platforms. Both new Asian sets now work correctly.
  • Brian Troha updated seibuspi.c: Added default EEPROM to the Raiden Fighters Jet (US, Single Board) set so it will boot correctly the first time run.
  • Atari Ace removed several exported non-const global variables from the core.
  • stephh fixed Dip Switches and Inputs (after verification of the Z80 code) in nycaptor, colt, cyclshtg, bronx (nycaptor.c).
  • Roberto Fresca updated the Golden Poker driver: Fixed tilemap issues with games using 60Hz/50Hz modes, selectable through DIP switches.
  • Roberto Fresca added support for 'Genie', an old magic-lamp themed game from Video Fun Games Ltd.:
    • Decoded graphics and colors.
    • Accurate inputs.
    • Discrete sound.
    • Default NVRAM support.
    • Xtal, CPU clock, and some discrete components values need to be checked from PCB.
  • Roberto Fresca changed Noraut Joker Poker (Prologic HW) manufacturer to Video Fun Games Ltd.
  • Phil Bennett added save-state support to the K053260 sound core.
  • Phil Bennett added save-state support to the MSM5232 sound core.
  • Atari Ace cleaned up toaplan2 driver and converted it to use driver_data.
  • Sonikos merged topshoot into the megadrvb driver (formerly genesisb).
  • Angelo Salese hooked up some quick and dirty video routine to Aristocrat Mk-5.
  • Angelo Salese updated Acorn Archimedes / Aristocrat MK-5: Added Force IRQ/FIRQ hook-up and hooked up an undefined behaviour for a timer check, fixes CPU check during POST.
  • Angelo Salese implemented I2C accesses to the Acorn Archimedes / Aristocrat MK-5 HW, fixing SRAM check.
  • Angelo Salese added clock read-back register to the I2C device.
  • Angelo Salese fixed the Sound DMA in Acorn Archimedes / Aristocrat MK-5, adding sound support to the drivers.
  • Lord Nightmare added IC pinout to VLM5030 driver. Still need translation of the datasheet for VCU, RST (which does more than just reset) and MTE.
  • Angelo Salese added sound hook-up to the Erotictac HW, sound doesn't yet work due of missing memory management hook-up.
  • R. Belmont attempted to fix reported GCC 4.5 problems.
  • Angelo Salese fixed a fatal bug in MEMC handling and removed the mapping kludge for Aristocrat MK-5.
  • Angelo Salese improved video emulation to the Aristocrat MK-5, added bare-bones VIDC DMA transfer and timings, added 8bpp mode.
  • Phil Bennett added save-state support to the YMF278B core.
  • Angelo Salese rewrote I/O device r/w accesses in Acorn Archimedes/Aristocrat MK-5.
  • Phil Bennett added missing save-state registration entries to the SH-2 core.
  • Aaron Giles converted address_space to a class, and moved most members behind accessor methods, apart from space->machine and space->cpu. Removed external references to 8le/8be/16le/16be/32le/32be/64le/64be. All external access is now done via virtual functions read_byte()/read_word()/etc. Moved differentiation between the endianness and the bus width internal to memory.c, and also added a new axis to support small/large address spaces, which allows for faster lookups on spaces smaller than 18 bits.
  • Aaron Giles provided methods for most global memory operations within the new address_space class. Updated callers to use these instead of the old global functions.
  • Aaron Giles created new module delegate.h which implements C++ delegates in a form that works for MAME. Details are in the opening comment. Delegates allow member functions of certain classes to be used as callbacks, which will hopefully be the beginning of the end of fetching the driver_data field in most callbacks. All classes that host delegates must derive from bindable_object. Today, all devices and driver_data do implicitly via their base class.
  • Aaron Giles added an alternate set of address map macros. Now, if you #define ADDRESS_MAP_MODERN prior to #including "emu.h", you will get the new macros, which have the following properties:
    • ADDRESS_MAP_START takes a 4th parameter, which is the name of the driver_data class the other macros will reference.
    • AM_READ/AM_WRITE/etc. all assume you are providing method names off of the driver_data class you originally specified.
    • AM_READ_LEGACY/AM_WRITE_LEGACY macros are provided for calling global static functions of yore.
    • AM_BASE/AM_SIZE all assume you are providing member names off of the driver_Data class.
    • AM_BASE_LEGACY/AM_SIZE_LEGACY are provided to reference globals if necessary.
  • Aaron Giles defined delegates for read/write handlers. The new delegates are always passed an address_space reference, along with offset, data, and mask. Delegates can refer to methods either in the driver_data class or in a device class. To specify a delegate in an address map, you must #define ADDRESS_MAP_MODERN before including emu.h, at which point the AM_READ/AM_WRITE macros will require member function pointers into your driver_data class. Delegates that are specified in an address map are proto-delegates which have no object; they are bound to their object when the corresponding address_space is created.
  • Aaron Giles added machine->m_nonspecific_space which can be passed as the required address_space parameter to the new read/write methods in legacy situations where the space is not provided. Eventually this can go away but we will need it for a while yet.
  • Aaron Giles added methods to the new address_space class to dynamically install delegates just like you can dynamically install handlers today. Delegates installed this way must be pre-bound to their object.
  • Aaron Giles moved beathead's read/write handlers into members of beathead_state as an example of using the new delegates. This provides examples of both static (via an address_map) and dynamic (via install_handler calls) mapping using delegates.
  • Aaron Giles changed the DIRECT_UPDATE_CALLBACKs into delegates as well. Updated all users to the new function format. Added methods on direct_read_data for configuring the parameters in a standard way to make the implementation clearer. Updated all users.
  • Aaron Giles created a simple_list template container class for managing the common singly-linked lists we use all over in the project.
  • Aaron Giles replaced "const address_space" with "address_space" throughout the system. The purpose of making it const before was to discourage direct tampering, but private/protected does a better job of that anyhow, and it is annoying now.
  • Johnboy provided neodrvr.c updates:
    • Renamed the following sets: sengokh -> sengokuh, fatfursa -> fatfurspa, shocktra -> shocktroa, kof99 -> kof99h, kof99a -> kof99.
    • Removed wh2j (only diff. C-ROM arrangement; same data).
    • Added correct m1 to sengoku3.
    • Corrected ROM_REGION "maincpu" for twinspri, ghostlop, aof2, aof2a, fightfev, fightfeva.
    • Added correct p1 ROM to irrmaze.
  • David Haywood changed GP9001 (toaplan VDP device) to use DEVICE_SELF.
  • Roberto Fresca added 3 Bags Full - 5VXFC790 (Victorian). Set is now parent. Replaced the bad dumped GFX from NZ set with the new ones, since they match 4 of 6 bitplanes.
  • Roberto Fresca provided improvements to the calomega.c driver:
    • Added Game 24.0 (Gaming Draw Poker, hold). The game is playable.
    • Added missing 50/60Hz output frequency selector to systems 903-905. However, I dunno how it looks physically (switch/jumper/bridge?).
    • Injected missing start and NMI vectors to comg080 (Arcade Black Jack), from an exhaustive program ROM analysis / reverse engineering. The game now starts ok and is triggering proper NMI's.
    • Inputs from the scratch for comg080 (Arcade Black Jack).
    • Added workaround to pass the vector-check protection.
    • Reworked the lamps circuitry by system-basis.
    • Updated games list and technical notes.
    • Promoted comg080 (Arcade Black Jack) to working state.
    • Added support for system 906III:
    • Accurate memory map, CRTC, and PIAs mapped.
    • Preliminary PIAs support (no multiplexion yet).
    • Added proper machine driver, with correct R65C02 CPU.
    • Documented the hardware specs.
    • Added Game 51.08 (CEI Video Poker, Jacks or Better), running in CEI 906III hardware. The game is not working.
  • Robbbert provided various sm8500 CPU core fixes.
  • Roberto Fresca provided improvements to CEI 906 III system:
    • Corrected docs about the 906III memory map.
    • Mapped the AY8912.
    • Added AY8912 proper interfase. Tied SW2 to AY8912 port.
    • PIA0, portA is polled constantly. Tied some debug handlers to understand how the input system works.
    • Added notes about the PIAs R/W.
  • Curt Coder cleared Z80 DART interrupts at constructor time.
  • Curt Coder imported the Hitachi HCD62121 CPU core from MESS.
  • stephh improved Dip Switches (after verification of the M68000 code) in crospang, heuksun, bestri (crospang.c).
  • Curt Coder expanded the Z80-DART interface to allow future implementation of Z80-SIO features:
    • Added separate clock inputs for channel B.
    • Added SYNC inputs/outputs for both channels.
  • David Haywood updated the toaplan2 driver: Attempted to implement dual VDP mixing with the equations provided by Quench, doesn't yet work.
  • David Raingeard added correct GFX roms for Gang Wars, renamed bootleg set as Euro set (and new parent),made note about bootleg GFX roms.
  • Angelo Salese documented unemulated protection in Super Champion Baseball, marked the game with GAME_UNEMULATED_PROTECTION due of that.
  • Phil Bennett updated segaic16.c: Treated unsupported read and write accesses to defined devices/memory as open-bus reads or unmapped writes instead of falling through to the memory-mapping registers.
  • Aaron Giles added mask-free versions of read_word/read_dword/read_qword to address_space. Also added unaligned variants that can read unaligned values. Rewrote the core handler as a template that handles all cases, along with a simple unit test to verify that everything is correct.
  • Aaron Giles updated 68k, v60, i86, and nec cores to use unaligned read/ write instead of their own stubs for handling misaligned reads.
  • Aaron Giles fixed memory management of ga2 decryption.
  • David Haywood updated the toaplan2 driver: Removed tile limit hack, not needed now since VDP is mixed properly.
  • Phil Bennett provided All American Football set updates:
    • aafb: Added missing 03-28008.u93 GFX ROM.
    • aafbb: Marked 24015-02.u59 BAD_DUMP and demoted set to GAME_NOT_WORKING.
  • Aaron Giles declared virtual functions in driver_data_t for:
    • machine_start, machine_reset
    • sound_start, sound_reset
    • palette_init, video_start, video_reset, video_update, video_eof
    • The default implementations of these call through the machine configuration's functions as before. However, if a driver_data_t overrides them, it will be called instead.
  • Aaron Giles also added virtual functions for pre_save() and post_load(), which can be overridden to implement machine driver-specific pre-save/post-load functionality instead of registering with the save state system.
  • Aaron Giles updated beathead to use these new virtual functions instead of specifying callbacks in the MACHINE_DRIVER.
  • Team CPS-1: provided a CPS-1 update:
    • Added proper willowj roms to match real pcb, it was using incorrect roms copied from parent set.
    • Added an old pcb rev of knightsj, using split roms.
    • Added an old pcb rev of kodj, using split roms.
    • Added newer Street Fighter II CE set.
    • Fixed kodj labels and confirmed pcb infos.
    • Fixed qadj labels, added PALs and pcb infos.
    • Fixed sf2ua labels and added pcb infos.
    • Minor cleanups and fixes.
  • stephh fixed Dip Switches and Inputs (after verification of the HD6309 code) in fastlane (fastlane.c).
  • Angelo Salese fixed various issues in the AA emulation, this makes Poizone to theoretically work as current ertictac.c emulation (not yet enabled).
  • stephh updated firetrap, firetrapj, firetrapbl (firetrap.c):
    • Fixed Dip Switches and Inputs (after verification of the Z80 code).
    • Fixed coin insertion which now correctly supports "Coin A" and "Coin B" settings.
    • Fixed MCU simulation for 'firetrapj' (only the initialisation was different) so the game is now playable.
  • Curt Coder provided Z80DART changes:
    • Added SIO specific constants.
    • Added sync character write registers.
  • Phil Bennett updated the Z80: Set IFF1 and IFF2 to 0 on a reset.
  • Harmony updated the 7474 device to no longer be legacy.
  • Harmony updated the 6522 VIA device to no longer be legacy.
  • Harmony updated the 6532 RIOT device to no longer be legacy.
  • Harmony updated the 6821 PIA device to no longer be legacy.
  • Harmony updated the 74123 device to no longer be legacy.
  • Atari Ace converted toaplan1/2 drivers to use driver_data.
  • Fabio Priuli fixed listxml year output (it was skipped if the year contains a '?').
  • stephh updated karnov, karnovj, wndrplnt, chelnov, chelnovu, chelnovj (karnov.c):
    • Fixed Dip Switches and Inputs (after verification of the M68000 code).
    • Fixed coin insertion which now correctly supports "Coin A" and "Coin B" settings.
  • Miodrag Milanovic updated VIA 6522 to generate interrupt on T2 Pulse counting mode too, according to documentation.
  • Angelo Salese fixed timers and irq clears in Acorn Archimedes / Aristocrat MK-5 / Erotictac drivers.
  • stephh fixed Dip Switches and Inputs (after verification of the M6809 code) in mikie, mikiej, mikiehs (mikie.c)
  • Harmony updated the 6526 CIA device to no longer be legacy.
  • Harmony updated the M48T02, M48T35, M48T58 and MK48T08 devices to no longer be legacy.
  • Miodrag Milanovic updated the 6255via device: added support for shift mode 5 (shift out under T2 control).
  • stephh fixed Dip Switches and Inputs (after verification of the Z80 code) in mrflea (mrflea.c).:
  • Angelo Salese converted ertictac / poizone driver to use shared AA devices.
  • Harmony added a set of macros to minimize the amount of copy/pasting necessary to convert a device to the new style.
  • Harmony updated the ACIA 6850 device to no longer be legacy.
  • Harmony updated the PTM 6840 device to no longer be legacy.
  • f205v updated naomi.c: Added information about the Namco MASK B-F2X cartridge.
  • Aaron Giles de-converted MACHINE_DRIVER from tokens back to constructor functions, regaining type safety. If legacy devices still use inline data, those types are not checked. However, new devices no longer have access to the generic m_inline_data. Instead their MDRV_* macros should map to calls to static functions in the device config class which downcast a generic device_config to the specific device config, and then set the appropriate values. This is not to be done inline in order to prevent further code bloat in the constructors. See eeprom/7474/i2cmem/okim6295 for examples.
  • Harmony updated the i8237 DMA device to no longer be legacy.
  • Harmony updated the 8255 PPI device to no longer be legacy.
  • Samuele Zannoli updated the PCI bus device so that PCI buses can be arranged in a tree like in real hardware.
  • Samuele Zannoli provided chihiro.c improvements:
    • Fixed the mapping of the bios at the top of the cpu addrsss space.
    • Updated the ram size to 128 megabytes.
    • Added some SMBus handling, to let the bios run.
    • Added placeholders for a few devices on the PCI bus.
    • Added the "jamdis StartAddress,Length" command to the debugger that lets you disassemble the "jam table" instructions used by the bios to do some basic hardware initialization.
  • Harmony updated the i8257 DMA device to no longer be legacy.
  • Harmony updated the Dallas DS1302 RTC device to no longer be legacy.
  • stephh fixed Dip Switches and Inputs (after verification of the TMS9995 code) in pachifev (pachifev.c)
  • Harmony updated the Dallas DS2404 RTC device to no longer be legacy.
  • Harmony updated the Fairchild F3853 SMI device to no longer be legacy.
  • Atari Ace made various snk drivers use driver_data.
  • Harmony updated the i8243 Port Expander device to no longer be legacy.
  • Harmony updated the INS 8154 RAM I/O device to no longer be legacy.
  • Samuele Zannoli updated the PCI bus device so that PCI buses can be arranged in a tree like in real hardware.
  • Miodrag Milanovic updated the m6800 core: Fixed initial state of bit 7 and 6 of flag registers (according to documentation).
  • Roberto Zandona' updated the toaplan1 driver: Modified the mix for the tilemaps (like rallybik and demonwld); this fix outzone bug and vimana bug.
  • Mariusz Wojcieszek fixed rom mapping in Super Poker. Removed "bad dump" flag from e2 roms, they pass self test now.
  • Roberto Zandona' updated the toaplan1 driver: Removed custum video update for demonwld; now it's the same of toaplan1.
  • Harmony updated the K033906 PCI Bridge device to no longer be legacy.
  • Harmony updated the K056230 LANC device to no longer be legacy.
  • Roberto Zandona' updated the lethalen driver: hooked up some k053244 register.


Game Support

New games added or promoted from NOT_WORKING status


New clones added


New games marked as GAME_NOT_WORKING