Release Date

MAME 0.150 was released on 17 September 2013.


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:


  • Aaron Giles created new device_video_interface. Right now its sole purpose is to house a screen tag and to find the screen at startup, providing an m_screen object that can be used. One nice feature is that if there is only one screen and no screen has been specified, it will auto configure to that screen. This removes the need to explicitly specify a screen in the configuration for a large chunk of drivers (though doing so never hurts). A new macro MCFG_VIDEO_SET_SCREEN is provided, though devices are encouraged to define their own that maps there so it is obvious which device is being targeted. The device_video_interface's validation function will error if an invalid screen is specified or if no screen is provided but there are multiple screens present. Updated all devices that currently had an m_screen in them to use the device_video_interface instead. This also has the nice benefit of flagging video-related devices for categorization purposes. It also means all these devices inherit the same screen-finding behaviors. For devices that had interfaces that specified a screen tag, those have been removed and all existing structs updated. Added an optional_device<screen_device> m_screen to the base driver_device. If you name your screen "screen" (as most drivers do), you will have free access to your screen this way. Future updates include:
    • Updating all devices referencing machine.primary_screen to use the device_video_interface instead.
    • Updating all drivers referencing machine.primary_screen to use the m_screen instead.
    • Removing machine.primary_screen entirely.
  • Carl modernized the i286 core.
  • Osso modernized gaelco, okim6376, vr0video, mb87078, snk6502 devices.
  • Andrew Gardner added the watchpoint view to the QT Debugger's "Break|Watchpoints" window.
  • Aaron Giles fied a long-standing architectural wart: the priority bitmap is no longer owned by the tilemap system, and no longer exists globally in the machine. Instead it is allocated per-screen for all systems. This has several side-effects:
    • 1. Previously, the pdrawgfx* functions were already changed to take the priority bitmap as a parameter. Now all other hand-crafted functions that mess with the priority bitmap generally must do so as well, and have been updated.
    • 2. Calls to the tilemap system now need to provide a screen_device. This is not just for the priority_bitmap, but also for screen flipping, which previously always assumed the "primary screen" when doing flipping calculations.
    • 3. All devices that implemented tilemap-like functionality have been updated to follow the same pattern, since they largely tend to call through to the core tilemap system at some point.
  • Wouter Vermaelen updated ym2413.c - Reverted KSL value order to 0, 1.5, 3.0, 6.0dB/oct after testing with a real YM2413.
  • Osso modernized galaxian sound device.
  • Aaron Giles split eeprom.c into a base class base_eeprom_device and a serial-specific subclass serial_eeprom_device. Moved the latter into its own file eepromser.c and significantly cleaned up/simplified the code. The new code should be functionally the same as the previous code, but expect that to change soon. As a side-effect, the size and bus width of the EEPROM is now specified in the ADD macro rather than in the interface structure.
  • Aaron Giles rewrote serial EEPROM devices, breaking them out into separate chips of the proper size and protocol. Update all drivers, removing custom implementations, and replacing them with standard ones. Moved core read, write, erase functionality into the EEPROM base class a simulated delays in write/erase cycles. Still some more testing/verification work left to do.
  • mizapf and Lord Nightmare added support for CD2501ECD variant of tms52xx, used in the TI 99/8 prototype. Renamed TMC0285 to the more correct CD2501E in the TI 99/4a.
  • Charles MacDonald and David Haywood started integrating DECO104 findings from Charles, done a preliminary hookup of Double Wings to it (input ports bit order not yet verified). Nuked old bad simulation code for DW.
  • Osso modernized MultiPCM, mjkjidai, renegage, ninjaw_subwoofer devices.
  • Brian Troha updated 3x3puzzl.c: Correct dipswitches and add dipswitch locations for Casanova.
  • Alex Jackson updated opwolf.c: fix coinage dips in opwolfj.
  • Carl and Oliver Stöneberg fixed undefined order of evaluation in FETCH* and READ* functions in src/emu/cpu/i386/i386priv.h.
  • Osso modernized the s14001a and exidy sound devices.
  • Osso modernized the Seibu ADPCM device and converted the Seibu sound system to be a device.
  • Oliver Stöneberg added makefile define FASTDEBUG to disable some debug-specific stuff, that is causing performance hits (for e.g. profiling).
  • Alex Jackson updated neogeo.c: endian fix for kof2003 protection.
  • Osso converted the T5182 to a device.
  • XingXing added support for a China internal ROM to kov2p sets.
  • Osso modernized Mirco3D noise device.
  • wallyweek updated the SDL port: Revise the *IX man pages.
  • Aaron Giles moved tilemap_memory into a generic memory_array class, since it is more generally useful than just in tilemaps. Code is now in memarray.*.
  • Aaron Giles converted the Atari RLE motion objects device from a half-assed device into a full-assed device, leveraging the memory_array class.
  • Alex Jackson updated neogeo.c: fix memory leak, clean up inputs a bit.
  • Aaron Giles added eeprompar.*, implementing a simple interface for parallel EEPROMs.
  • Aaron Giles created atari_eeprom_device which wraps a 2804 or 2816 EEPROM with the standard Atari write-locking mechanism. Updated all drivers to use this, and removed all EEPROM stuff from atarigen.
  • O. Galibert and Duke updated the wd_fdc device: Don't switch off the motor when the fdc doesn't have a motor control pin.
  • system11 assorted fixes based on PCB observations:
    • galpanic.c - Fixed rom names for newfant and added new set.
    • splash.c - Adjusted msm5205 clocks to proper values.
    • tumblep.c - Fixed sound hardware speeds to match PCB for chokchok, htchctch and cookbib.
  • Layne updated segas16b.c: Corrected rom labels and added PCB locations to the MVP (set 2, US, FD1094 317-0143) set.
  • Brian Troha updated sandscrp.c: Added dipswitch locations and corrected default settings for the Sand Scorpion sets.
  • R. Belmont provided MC6801/6803 updates:
    • Support for timer output capture to pin P21.
    • Support for externally-clocked serial.
    • Added devcb2 hook for serial xmit to easily differentiate xmit from other Port 2 updates. Bits are still also sent to Port 2 of course.
  • Barry Harris updated captcommb : various graphical issues fixed, marked as working.
  • Brian Troha updated taito_b.c: Correct the Tetris C12 set and fill in missing Nastar roms needed for the conversion, correcting missing sound samples. Added a note about the missing PALs for both Tetris B-System conversions.
  • Barry Harris updated altbeastbl: hook up gfx writes properly.
  • Phil Bennett updated taitosnd.c - Improve TC0140SYT/PC060HA NMI handling, preventing lost interrupts.
  • Phil Bennett and Andy Welburn updated topspeed.c:
    • Fixed MSM5205 hookups and implemented engine sound.
    • Added Z80 CTC.
    • Added volume controls.
    • Corrected 68000 clocks and VSYNC frequency.
    • Changed interrupt handling to match hardware.
    • Added motor control notes.
    • Fixed sprite list parsing (no more mysterious red dot on the far left).
    • Corrected b14-67-1/b14-68-1 ROM locations.
  • rockywall and Creamy Mami updated the PGM driver: Implement some missing asic25/asic28 registers. This fixes the high score screen for olds & clones.
  • R. Belmont updated the multipcm device: Use address space instead of direct memory region.
  • Samuele Zannoli updated chihiro.c:
    • add more patches needed until usb is implemented.
    • add support for more texture formats and drawing primitives to the 3d accelerator.
  • R. Belmont separated Ensoniq "pump" device out from esq5505.c.
  • Kevin Eshbach replaced badly dumped sprite rom in tcobra2 + clones.
  • Bonky0013 and The Dumping Union updated cninja.c: corrected redump of Caveman Ninja (World Rev 1) and added PCB locations to the original Caveman Ninja sets.
  • Angelo Salese added Macronix 29LV160TMC sub-type to intelfsh.c, used by Sega Dreamcast.
  • Carl updated the i186 core: move 80186 peripherals into the cpu.
  • Carl updated Leland.c: finish modernizing the leland sound and use new 80186.
  • trap15 fixed sprite priority issues in nmk16.c (tested on tdragon2 PCB).
  • lain fixed dblewing Lives dip switch.
  • R. Belmont modernized Sega Model 1 sound board; now shared instead of copy/pasted.
  • Alex Jackson updated segae.c: clean up, add savestate support.
  • Alex Jackson updated terracre.c: Remove nonexistent second ym2203 from terracren. Remove silly input port hack from horekid.
  • smf moved ISA16_IDE_CD in southbridge_device with two BUS_MASTER_IDE_CONTROLLERs.
  • Brian Troha updated snk68.c: Added dipswitch locations to all sets in the driver.
  • Brian Troha updated cave.c: Correct name to Guwange (Japan, Special Ver. 00/07/07) as verified by hex editor.
  • Lord Nightmare and Andrew Welburn updated 8080bw.c: fix setnames for Space Invaders (TV/Cocktail version) sets based on recent dump: sitva->sitv (newer 'tv0h' version), sitv->sitvo (older 'tv01' version).
  • smf removed local ATAPI code in preparation to use the new code, but the CPU gets lost after executing the first instruction.
  • smf refactored firebeat.c to use ATA_INTERFACE.
  • MooglyGuy provided HLSL updates:
    • Removed hlsl_read and hlsl_write options now that all slider options are plumbed and have values matching the INI settings.
    • Added more surface release calls in order to fix device resetting.
    • Fixed draw order for quads, overlays now appear on top of vectors in non-HLSL mode.
    • Moved aperture.png loading into create_resources/delete_resources so that it is correctly reloaded when HLSL is toggled on and off.
  • The Guru updated galpani2.c: Added complete PCB layout.
  • Brian Troha updated galpani2.c: Added Dipswitch locations to all sets.
  • MooglyGuy restructured NTSC encode/decode shaders for better readability.
  • Miodrag Milanovic made both DRC and Non-DRC compile for MIPS, RSP and SH2 core and added option to enable/disable DRC from command line (-drc -nodrc by default it's on)
  • Angelo Salese updated the SCSP device: hooked up DGATE functionality for DMA.
  • Angelo Salese updated the SCSP device: fixed DMA when SH-2 enables it.
  • Angelo Salese updated the PowerVR2 device: Added SPG control register, used to change pixel clock dynamically.
  • Alex Jackson updated nemesis.c dipswitch fixes: Rename "Upright Controls" dipswitch to "Players" in gwarrior and twinbee, and make 2 players default (neither game supports cocktail cabinets). Make default difficulty normal in all games.
  • Angelo Salese updated the PowerVR2 device: Added preliminary YUV converter.
  • smf refactored Konami System 573 to use ATA_INTERFACE.
  • Angelo Salese updated the AICA device: Hooked up AICA-to-SH-4 irqs.
  • MooglyGuy started re-architecting the HLSL system to be data-driven.
  • Angelo Salese updated the PowerVR2 device: added YUV_TW texture hook-up (used by Soul Calibur at very least).
  • Angelo Salese updated the PowerVR2 device: Support for non-textured polygons with packed and floating colors.
  • Guru updated namcos22.c: revised hardware info.
  • Kevin Eschbach provided updates to jedutils and other minor things:
    • Documentation on the earlier version of the Deco Cassette System.
    • Documented some pals on a bootleg Free Kick that need to be dumped.
    • Documented the location of the roms on Twin Cobra 2.
    • Added support to jedutil to view the PAL20X10, PAL20X8 and PAL20X4.
    • Added some preliminary work on figuring out what the undocumented fuses for the PALCE16V8 are. (The data sheet does not document what all of the fuses are.)
  • smf refactored dreamcast to use an ATA interface.
  • Phil Bennett updated-stfight.c - Hooked up ADPCM/coin control MCU. Changed YM2203 clocks to 1.5MHz for cshooter and 4.5MHz for empcity/stfight (see notes).
  • smf renamed TLCS900H to TMP95C061, moved the I/O handling into it's own class & hooked up TO1/TO3 to output on Port A. A hack is needed because ngpc doesn't set PACR/PAFC, which may be because it's a custom part. Changed Taito PJC to use TMP95C063. Separated I/O Ports on both CPU's so you can apply the devcb2 callbacks individually.
  • smf added 8/16 bit data bus configuration to TLCS900H. Default is 16bit, neogeo pocket is 8 bit.
  • system11 updated ddealer.c: Correct clock speeds for Double Dealer to match PCB.
  • Brian Troha updated ddealer.c: Fill in several missing dipswitch settings and add dipswitch locations.
  • Brian Troha updated trvmadns.c: Added PCB layout for Trivia Madness.
  • smf used 2864 for ROM in isa_ide8. This allows XTIDECFG to flash the rom. Tested with 2.0.0 beta 3. You must disable SDP because eeprompar doesn't emulate it & you must load from a file as if you load from eeprom then it only finds zeros.
  • smf renamed IDE8 to XTIDE.
  • Brian Troha updated polepos.c: Added Dipswitch locations to the Pole Position and Pole Position 2 sets.
  • smf added undocumented opcode that behaves like DPCL to the PSX CPU core.
  • smf added preliminary SET FEATURES support. Only set transfer mode is currently supported, but this checks/sets flags in the identify device buffer. The buffer has been moved up into atahle and the idehd has been changed to work with words instead of bytes.
  • Brian Troha updated yunsung8.c: Added PCB layout for Cannon Ball (Vertical).
  • Phil Bennett updated ddragon.c: Cleanup based on Double Dragon schematics:
    • Fixed sub-CPU interrupt mechanism.
    • Implemented common RAM bus lock.
    • Added interrupt acks.
  • Brian Troha updated peplus.c: Minor corrections and documentation updates including known payout tables for some sets.
  • Wilbert Pol updated cubeqcpu.c, f8.c, minx.c, i8085.c, i860.c, i960.c, jaguar.c, lh5801.c, m6800.c, m37710.c, mb86233.c, mb88xx.c, mcs48.c, mc68hc11.c, mcs51.c, mn10200.c, pic16c5x.c, pic16c62x.c, tlcs900.c, pps4.c, s2650.c: Modernized cpu cores.
  • Phil Bennett updated exprraid.c: Cleanups from schematics:
    • Corrected CPU and YM3526 clock frequencies.
    • Improved protection simulation.
    • Added interrupt acks.
    • Added service coin input.


Game Support

New games added or promoted from NOT_WORKING status


New clones added


New games marked as GAME_NOT_WORKING