Release Date

MAME 0.154 was released on 23 July 2014.


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:


  • smf fixed startup order issue introduced in r28777.
  • Oliver Stöneberg made MNG be written when -mngwrite is used together with –aviwrite.
  • Siftware, Quench and Guru redumped all the Super Star '97 graphics ROMs as TC531000 mask ROMs.
  • Alex Jackson provided device_gfx_interface and memory system improvements:
    • Added macros to facilitate declaring gfxdecode info arrays as members of a device class.
    • AM_SHAREs in a device's internal address map or its default address map are now tagmapped as children of that device rather than siblings (analogous to how handlers in internal/default address maps are scoped).
  • MooglyGuy fixed bloom misalignment with HLSL.
  • J.Wallace converted Maygay M1 and MV1 to standard i8279 drivers.
  • O. Galibert hooked up tms57002 DSP to the konamigx driver.
  • Alex Jackson provided namcona1.c improvements:
    • rewrite tilemap drawing code.
    • use set_palette_offset.
    • use GFXDECODE_RAM.
    • ROM loading and miscellaneous cleanups.
  • Samuele Zannoli provided Chihiro improvements:
    • i386 cpu x87 opcodes FPREM and FPREM1 must clear status bit C2 not C0.
    • Add basic management of some Nvidia APU sound registers.
    • Store modelview/projection matrices and translate/scale vectors sent to NV2A.
    • Store vertex program (vertex shader) sent to NV2A 3d accelerator.
    • Added debug command "chihiro grab_texture,<type>,<filename>", it saves to <filename> the next used texture of type <type>.
    • Fixed DXT3 and adds DXt5 texture decompression.
    • Add 3d accelerator method 0x1800 for indexed mode vertex sending.
  • Alex Jackson updated bladestl.c: simplify rom loading, reduce tagmap lookups.
  • J. Wallace gave BFM BD1 and ROC10937 proper device line accessors for the clock (sclk), reset (por) and data (data). All affected drivers have been updated to use these.
  • O. Galibert updated corefile.c: Don't crash on 0-length files.
  • Angelo Salese added vblank bit in Model 2 Old Revision, fixes Virtua Cop booting.
  • Vas Crabb provided fixes for PowerPC AltiVec compile.
  • Fabio Priuli updated cvs.c: updated the driver to use modern speech rom reading.
  • Fabio Priuli updated tms5110.c: removed legacy handlers, now that no drivers use them anymore.
  • O. Galibert updated machine.c: Moved disallowing of save states later on.
  • R. Belmont updated the m68k core: Update used and modified bits in the page tables and greatly improved PTEST results on 68040.
  • Brian Troha updated tatsumi.c: Filled in missing dipswitches and added dipswitch locations to Round Up 5 - Super Delta Force.
  • Couriersud uptated the netlist implementation: All analysis is now based on an immutable list of terminals. The dynamic list now is only used in the "hot" core. This is the base for possible further optimizations using multiple lists; e.g. a high-low transition list and a low-high transition list.
  • Team CPS-1: provided a CPS-1 update:
    • Added full documentation to nemoa.
    • nemoa -> nemor1 to follow the new cps1 standard.
    • Minor reorder and cleanup.
  • R. Belmont updated the MC68681 device: support timer-driven serial channels. Fixes SC4 fruit machine games.
  • smf updated SCSI Port using WRITELINE and DEVCB2. The slot number and SCSI ID are separate so you can for example have -harddisk1 as ID 6 and -harddisk 2 as ID 5. The HLE'd CD & HD have configuration switches to set the ID, real emulated hardware will specify the ID using it's own method.
  • Alex Jackson updated gp9001.c (toaplan2.c): convert to device_gfx_interface, cleanups.
  • Alex Jackson fixed brightness sliders in drivers that use black_pen() and/or white_pen().
  • smf updated the MOS 6551 device: Fixed uninitialised variable that could prevent transmit irq from being generated after reset.
  • smf added serial printer, renamed centronics printer to match. Standardised the configuration of rs232 devices. All serial devices are now connected using an rs232 port.
  • smf made use of the correct call to free memory in windows osd_close.
  • Couriersud simplified netlist code. It now always provides a stable solution instead of rescheduling the solver.
  • f205v updated the Naomi driver: documentation update.
  • O. Galibert updated the memory system: Stop the watchpoints from messing with the opcode decryption.
  • Alex Jackson updated emupal.c: add support for RAM-based palettes with indirect lookups. Update various drivers to use it.
  • MetalliC provided chd updates:
    • Bugfixed byte order for GD-ROM audio tracks so FLAC compression is effective.
    • Fixed uninitialized struct on MSVC (and possibly other) builds.
  • f205v updated the Naomi driver: small correction to World Kicks game code.
  • MetalliC updated the cdrom code: fix uninitialized flags.
  • Enik Land updated the ym2612 core: Sync timer fixes from GenPlus-GX, fixes MT #5049.
  • Alex Jackson updated namcoic.c: remove legacy read/write handlers.
  • O. Galibert updated the mccs1850 device: Fix multi-write.
  • MetalliC provided Naomi updates:
    • 5 more BAD_DUMP GD-ROMs redumped from source.
    • All SHA1s updated to latest. 'chdman copy' on existing valid CHDs will update your files to the new SHA1s.
  • Alex Jackson provided ioport_array_finder: ioport_array_finder is a new device finder template for finding, unsurprisingly, an array of ioports. It is mainly intended to help handle multiplexed ioports without runtime tagmap lookups in a more elegant way than was previously possible.
  • Phil Bennett updated the TMS34010 core: Use the CONVSP/CONVDP registers to adjust source and destination addresses when window clipping or y-reverse is applied.
  • Phil Bennett updated inder_vid.c - Mirrored TMS34010 RAM at 0x7fc00000 and 0xffc00000. With the previous TMS34010 change, this fixes the window clipping issues at y=0.
  • O. Galibert updated the mb8795 device: Fix packet sizes.
  • Alex Jackson updated cyberbal.c: Use separate palette for each screen.
  • Curt Coder and Anna Wu updated the mc6847 device: Added internal character generator ROM and M5C6847P-1 variant.
  • Curt Coder updated the mc6847 device: Added character generator ROM for S68047.
  • O. Galibert updated the h8 core: Fix missing debugger hook calls.
  • Miodrag Milanovic made osd_interface base class for OSD and moved initialization for each subsystem in it as virtual calls.
    • Moved midi handling in base class.
    • Cleaned running_machine of information of next machine.
    • All is cleaned after exiting of running_machine so debugger window is removed as well till next machine is started.
    • Made osdmini to compile.
  • O. Galibert updated the h8_sci peripheral: Implement sync-start.
  • O. Galibert updated the h8 core: Fix problem in the sleep instruction.
  • O. Galibert updated the at45dbxx device: Fix communications.
  • Phil Bennett updated the voodoo device: Fixed alpha test to run on the alpha combiner output and not on a_other. Do the test before the color combiner steps to potentially save some effort.
  • Luca Elia provided improvements to "The Berlin Wall":
    • Scrambling of sprite offset registers (fixes MT bug 493).
    • Background: added scroll register (screen shaking effect), fixed flipping.
    • Fixed flipped tilemap offset.
  • Peter Ferrie updated funworld.c: Proper decryption of rcdino4 code pages.
  • Ville Linde merged video/gticlub functionality to K001005/1006 devices. Converted K001005 to use the new poly manager.
  • MetalliC provided CHD cleanups:
    • Double quote filenames with spaces when writing .gdi files.
    • Give audio files .raw extension when writing .gdi files.
    • cdrom_read_subcode() now returns false if the image doesn't contain subcodes.
  • Carl rewrote the i8257 device emulation: new 8257 based on am9517a.
  • Wilbert Pol updated i8244.c: Prevent out of bound accesses of local collision_map variable. Fixed MT#005551.
  • Enik Land updated 315_5124.c: Improved CRAM writes. Fixes wrong colors on sega logo for robocop3 on gamegear.
  • Curt Coder updated the i8275x device: Fixed DMA burst length. It is specified in received characters, not character clocks.
  • Curt Coder updated the i8275 core: Added character attributes and special character codes.
  • kamilz and Tafoid updated surpratk.c: Added "Bonus Quiz" Dip.
  • kamilz and Tafoid updated goodejan.c; Researched and added missing DIP information/locations as well as some useful notes of observations.
  • Fabio Priuli updated image.c: Added support for loading a default battery, instead of a fixed fill value, when no battery is found. This allows for loading factory formatted sram/nvram from softlist.
  • Alex Jackson updated williams.c: use bankdevs instead of dynamic address map modification. Reorganize code and driver state class.
  • Alex Jackson updated emupal.c: Support palette RAM less than the full width of the data bus it's on, without the need for per-driver trampolines. Started removing said trampolines.
  • Oliver Stöneberg enabled rgbsse.h for Visual Studio 64-bit builds as well and use rgbgen.h for all DEBUG builds since this is the fastest combination.
  • Andreas Naive refactored fd1094's decryption code in order to make the function more amenable to inversion.
  • Miodrag Milanovic reorganized OSD, handling more sound output systems and debuggers, defaults left same as before.
  • Miodrag Milanovic created osd_options as base option class for non-system specific options.
  • Barry Rodewald updated the megapc driver: Made into a separate driver class, hooked up WD7600.
  • ANY updated eepromser.c: added support for X24C44.
  • R. Belmont, based on a patch by Bavarese updated the i86 core: Add 0x6x instruction shadows, used by DEC Rainbow MS-DOS 2.01.
  • Alex Jackson updated digfx.c, drawgfx.c: don't do unneeded processing or allocate unneeded memory for RAW gfx layouts; add -valid check that extxoffs/extyoffs info are present when the layout size demands them.
  • R. Belmont updated the arm7 core: Added Thumb version of BLX.
  • Alex Jackson updated drawgfx.c: make it possible to reset the total elements of a gfx_element.
  • Quench updated HotMind: Restored missing text layer, added Ticket/Token dispensers and replaced the sound PIC with a hand modified version for correct background music playback.
  • Quench updated LuckBoomH: Corrected the text layer and inputs, added Ticket/Token dispensers and replaced the sound PIC with a hand modified version for correct sample and music playback.
  • O. Galibert updated the wpc_95 driver: Make it testable.
  • Sandro Ronco provided sigmab52 updates:
    • improved inputs.
    • added preliminary sound.
    • fixed DIPLOCATION.
    • added nvram.
    • various cleanups.
  • Alex Jackson updated the m37710 core: support direct read.
  • Happy updated debugqt: Fix 'source' capability.
  • Carl updated debugqt: Un-revert and add fix for focus seizure.
  • Alex Jackson updated screen.c: Ensure the vblank timer and the partial-update-reset timer always fire in the correct order when vblank starts on scanline 0.
  • Chris Hardy and Andreas Naive worked on the Sega System16b version of Ace Attacker:
    • Reconstructed SEGA FD1094 key (317-0059). Some errors could remain.
    • Found the differences, in some sprite ROMs, with the System16a version to be due to a BAD_DUMP with stuck bits. Both sets use the same sprite ROMs now.
  • f205v updated the naomi/chihiro/triforce drivers: Updated set documentation.
  • Alex Jackson updated the m68000 core: Smear byte writes the same as a real 68000. Fix the debugger so watchpoints continue to work as expected.
  • Alex Jackson updated bladestl.c: add RC filters to YM2203 SSG channels (based on schematic, identical to ddribble).
  • Joe Magiera updated williams.c - Added two video board PROMs to joust2 and made ROM names more descriptive.
  • Artemio Urbina updated cbuster.c: Add PCB locations to the Crude Buster / Two Crude sets.
  • Artemio Urbina updated cbuster.c: Correct Crude Buster / Two Crude to use actual measured clock speeds
  • Sandro Ronco provided adp.c updates:
    • Added NVRAM support.
    • Hooked up RTC.
    • Added inputs to fstation.
    • Removed unused code.
  • Miodrag Milanovic created machine_manager as singleton class that contains (for now) one running machine:
    • Updated LUA engine to run in machine_manager instead of being initialized per machine.
    • Added "-console" option so emulator can be started with LUA enabled console.
    • Update LUA to version 5.2.3.
    • Enabled SQLite3 to be compiled and added LUA module for it.
  • Sandro Ronco provided segajw.c updates:
    • Hooked up ACRTC.
    • Added inputs.
    • Added NVRAM support.
  • Angelo Salese: hooked up RAMDAC device to following drivers:
    • adp.c
    • bmcbowl.c
    • coinmvga.c
    • highvdeo.c
    • magicard.c
    • segajw.c
  • Bavarese updated i86.c: four new 8086 opcode aliases: 0xc0 is 0xc2; 0xc1 = 0xc3; 0xc8 = 0xca; 0xc9 = 0xcb as documented at OS 2 Museum.
  • Bavarese updated rx50_dsk.h/c: Rainbow specific; The RX50 _disk drive_ was used in different architectures. Floppy format used by Rainbow-100 and -190. Track layout (post-amble, some positions) yet unverified. Currently only raw 400 K disk dumps are supported (*.img).
  • Chris Hardy and Andreas Naive worked on System24's remaining sgmast set:
    • Reconstructed SEGA FD1094 key (317-0058-05d).
    • Tossed the previous alternate reads away as confirmed duplicate disks of sgmastj & sgmast (with differences in the highscores' track).
  • MetalliC updated naomi.c: redumped tetkiwam and ngdup23c to current standards.
  • Carl updated the upd765 device: implement scan data and read track fail command when drive not ready and check ready before command (verified on real hardware) stop polling when first byte of command sent (verified).
  • R. Belmont updated the SDL framework: fix 0.153 regression where user GLSL shaders didn't work.
  • R. Belmont updated the SDL framework: Fix shaders for games that output indexed16 (e.g. pacman).
  • Alex Jackson updated namcos1.c: Completely rewrote the emulation of the CUS117 MMU. The MMU is no longer emulated by modifying address maps at runtime, an operation which has become excessively slow as the core memory system has accumulated features and complexity over the years. Instead, the MMU is now a device which works on similar principles to the address_map_bank_device. The recent multisession regression is fixed, all games in the driver should now run substantially faster, and most importantly the driver code is now much cleaner and easier to understand.
  • f205v updated chihiro.c:
    • Added exact release dates, GDX info and descriptions for all known existing games/releases not yet secured or dumped.
    • Added v5 CHDs redumps for: GDX-0002B, GDX-0003A, GDX-0006G, GDX-0024A.
  • f205v updated triforce.c:
    • Added exact release dates, GDT info and descriptions for all known existing games/releases not yet secured or dumped.
    • Added v5 CHDs redumps for: GDT-0002, GDT-0013E, GDT-0015.
  • R. Belmont updated the SDL framework: fix -prescale 0.153 regression.
  • Curt Coder updated atahle: Added CS1 active status register.
  • R. Belmont updated the SDL framework: Always supply screen size uniforms to GLSL shaders, and fix bug with X multihead.
  • trap15 updated seta.c: Verify clocks and fix refresh rate for daioh.
  • O. Galibert updated the m68040 core: fbcc dasm fixes.
  • f205v recreated yet again the CHDs from r30949 (no new sets) which all had different SHA1 hashes due to bugfixes with CHDMAN since 0.153 release.
  • O. Galibert updated nscsi_cd: no disk in the drive gets recognized.
  • Guru updated m72.c with a Guru-readme for Ninja Spirit. Changed labels where appropriate to match information and added PALs/PROMs.
  • S. Smith and David Haywood did NeoGeo (multi)slot work:
    • converted all protection types to be MAME devices.
    • created cartridge (slot) device types for each type of cartridge containing the above protection devices.
    • made the 'neogeo' set emulate a 6-slot MVS system allowing for multiple cartridges to be mounted, for example "mame64 neogeo -cart1 mslug -cart2 mslugx -cart3 mslug3" is the command-line syntax to launch an MVS unit with 3 Metal Slug games installed.
    • many of the hacks / bootlegs won't work in multi-slot setups, this is true to hardware.
    • some carts (kof95, kof2002 for example) can block recognition of carts in higher slots if the NVRAM isn't already initialized. this appears to be true to original hardware because the kof95h set fixes this issue, powering off/on the system fixes it.
    • sound banking isn't 100% correctly handled so the odd game may fail with the slot system (trally) but regular loading still works.
    • the slot / multislot support makes use of the Software Lists rather than the internal sets, please ensure the correct softlist XML file is present in your hash folder.
  • Bavarese updated i86.c: 0x60 shadow omitted in previous patch. Needed for DOS 2.
  • Alex Jackson added width and endianness attributes to data areas in software lists. Update neogeo.xml and megadriv.xml to take advantage of them.
  • Alex Jackson updated the 6502 core: remove expensive and unused attotime precalculation at start of each timeslice.
  • Peter Ferrie updated funworld.c: Inserted some more switches, Saloon now boots, and service mode is mostly working. Added default nvram to jolycrdb, game seems to work now.
  • R. Belmont updated the sh2 core: fix and enable memory system bypass for SH-1 & SH-2 DRC.
  • Alex Jackson updated schedule.c: make yield() actually yield again, rather than be a synonym for spin().
  • Alex Jackson updated schedule.c: rebuild_execute_list() after loading a savestate to ensure the order of execution remains consistent. Fixes 0.153 savestate regressions in various drivers.
  • Alex Jackson updated the nec v25 core: Implement programmable clock divider via execute_clocks_to_cycles() instead of set_clock_scale(). Properly restore the clock divider on state load.
  • Gamez Fan updated Cool Pool: added 2nd button and button labels.
  • Couriersud documented recent measurements done on the AY8910.
  • Alex Jackson updated the m6809 core: add missing members to save registration, fix typo in device_post_load() and add HD6309-specific pre_save() and post_load(). Fixes savestate regressions in many drivers using this CPU family.
  • Brian Troha added a complete dump of the FD1089B 317-0027 key!
  • Charles MacDonald updated fd1089.c: Document the newly redumped FD1089A 317-0027 along with it's unencrypted data range.
  • Team CPS-1 provided a CPS-1 update:
    • Added missing documentation to kenseim.
    • Minor cleanups and fixes.
  • Couriersud updated the ay8910 core: information about measurements and model derived from those.
  • Samuele Zannoli provided a Chihiro WIP:
    • Add NV2A vertex program disassembler.
    • Added two new debugger commands, grab_vprog <filename> to save the currently uploaded vertex program, and vprogdis <address, length> [<,type>] to disassemble a vertex program.
    • Implemented alpha-test, blending, and logical per-fragment operations. Improves many 2D displays in outr2.
  • Alex Jackson updated the nec cpu core: add missing items to save state.
  • Couriersud made use of 64bit intermediary results in sound_stream::generate_resampled_data. This will allow sound drivers to make use of the full width of stream_sample_t.
  • Couriersud included missing members in save state in driver dkong.c.
  • R. Belmont updated the SDL framework: rebuild all GL textures when the core changes resolutions.
  • Brian Troha updated dreamwld.c: Fill in some missing dips for Rolling Crush and Baryon - Future Assault.
  • Alex Jackson updated dec0.c: convert slyspy tilemap protection to use bankdev.
  • Robbbert made Baby Pacman work except for sound.
  • Robbbert made Granny and the Gators work except for sound.
  • m4st4 fixed uninitialized auto; should fix instances where a game with cheats active using multiple expressions in one action crashes at start.


Game Support

New games added or promoted from NOT_WORKING status


New clones added


New games marked as GAME_NOT_WORKING