Release Date

MAME 0.196 was released on 28 March 2018.


MAMETesters Bugs Fixed


Machine Support

New working machines


New working clones


Machines promoted to working


Clones promoted to working


New machines marked as MACHINE_NOT_WORKING


New clones marked as MACHINE_NOT_WORKING


Notable new WORKING software list additions


Notable new NOT_WORKING software list additions


Translations added or modified

Contributions

The known contributions for this version are, in the order specified in the whatsnew:

  • AJR updated the fidlstix, rndrndqs drivers: Fixed interface between MCU and LCD controller and added 7-segment digits.
  • AJR updated the tms9927 device: Configure using character clock rather than dot clock.
  • AJR updated the pit8253 device: Converted counters to subdevices.
  • AJR updated the sega_315_5195 device: Internalized communication latches - sound now works in fpointbla.
  • AJR updated the sol20 driver: Added RS-232 port.
  • AJR updated the mcb216, cb308 drivers: Replaced UART with TMS5501.
  • AJR updated hnayayoi.cpp: Use HD6845 CRTC for video; improved screen parameters.
  • AJR updated the vt100_kbd device: Rewrote as UART-based serial device.
  • AJR updated the vt100 driver: Restored bottom lines of screen.
  • AJR updated the vt100, la120 drivers: Made ER1400 non-volatile storage actually work.
  • AJR updated the debugger: Fixed extent of debug view, wplist output, watchpoint view, and find command for address-shifted memory spaces.
  • AJR updated the ins8250 device: Added hack to reset transmitter when Baud rate is changed.
  • AJR updated trs80.cpp: Derived almost all clocks from actual crystals, including raw screen parameters.
  • AJR updated the d9final driver: Added NVRAM.
  • AJR updated the qtsbc driver: Rewrote driver based on SBC-880 schematics.
  • AJR updated the ay31015 device: Fixed receiver desync when next start bit arrives early, and synchronization at start bit.
  • AJR updated the unkitpkr driver: Added switch to disable card graphics in bookkeeping mode.
  • AJR separated TLCS-90 external IRQ line state from internal request register - fixes tenkai slowdowns.
  • AJR updated artmagic.cpp: Replaced NVRAM with parallel EEPROM, and improved ADPCM banking.
  • AJR added DEC 12-15336-00 RS232 loopback connector type (required for VT102 modem control self-test).
  • AJR updated the rainbow driver: Corrected bit rate generator clocks and types.
  • AJR updated the g65816 core: Allow use of separate address spaces for program, data, opcodes, and vectors.
  • AJR updated the scn2674 device: Added preliminary support for SCN2672 variant.
  • AJR updated the vgmplay virtual driver: Disable POKEY and QSound devices if not required.
  • AJR made MAME include option and file names in fatal error message for failure to load media image.
  • Angelo Salese provided model2.cpp updates:
    • Added custom debugger commands to dump geometrizer disassembly and triangle list.
    • Worked around ld rN, (rN) read on FIFO - fixes multiple crashes.
    • Skip normals for every triangle/quad in geo mode 2/3 - fixes multiple graphical glitches.
    • Fixed untextured path colors (used by Motor Raid and Daytona USA).
    • Added direct framebuffer drawing (used by Last Bronx title screen).
  • Angelo Salese updated the sharc core: Implemented additional instructions used by Model 2 games.
    • Added Rn = Rn FDEP Rx BY <bit6>:<len6> opcode (used by Last Bronx for a vital geometrizer function).
    • Added fmul abs multi opcode (used by Gunblade NY).
    • Added SET_UREG case $67 (used by Zero Gunner 2B).
    • Fixed LSHIFT negative operations to not sign-extend the result (fixes Last Bronx frame flickering).
  • Angelo Salese updated segaic24.cpp: Added xhout and xvout register callbacks (fixes Model 2 3D viewport positions).
  • Angelo Salese updated i960.cpp: Added support for burst stall on writes.
  • Angelo Salese updated ddayjlc.cpp: Fixed clouds priority and title screen colors, added flip screen.
  • Barry Rodewald updated the amstrad driver: Ignore invalid PSG register selection - fixes input issues with Monty on the Run and Airborne Ranger.
  • cam900 updated metro.cpp: Enabled button 2 in daitorid* - it's used to reorient tiles.
  • cam900 updated hyprduel.cpp: Cleaned up, converted to use imagetek_i4220_device, changed sound output to mono.
  • cam900 updated imagetek_i4220.cpp: Only draw portion of tilemaps exposed by clipping rectangle (improves performance).
  • cam900 updated the sknsspr device: Converted to device_rom_interface, allocate decode buffer at start time.
  • cam900 updated galpani3.cpp: Cleaned up code, added notes, allocate buffers at start time, improved alpha blending, sprite/background priorities and background/background priorities, and reduced code duplication.
  • cam900 updated jchan.cpp: Minor improvements to sprite/sprite priorities.
  • cam900 updated rohga.cpp: Fixed graphics decoding.
  • cam900 updated the segapcm device: Added support for clock speed changes, and cleaned up code.
  • cam900 updated the vgmplay virtual driver:
    • Implemented Sega PCM interface registers.
    • Convert QSound pitch to DSP clock input frequency.
  • cam900 and Vas Crabb updated eolith.cpp: Corrected title/distributor for Chinese-language version of Iron Fortress.
  • cam900 updated kaneko16.cpp: Cleaned up OKI bank switching and sound latch handling.
  • cam900 updated the es5510/taito_en devices:
    • es5510: Fixed DRAM read/write, and moved buffer allocation to start time.
    • taito_en: Verified ESP input clock and output channels from GunBuster schematics, reduced runtime tag map lookups.
    • esqpump.cpp: Split ES5506 out of interface.
    • esqkt.cpp: Added esqpump for ES5510 interface, and fixed company tags.
  • cam900 updated the kaneko_grap2 device: Converted to device_rom_interface, added device address map, added internal palette, and implemented brightness control.
  • cam900 updated mcatadv.cpp: Reduced code duplication, improved ROM region names, and converted to mono sound output.
  • cam900 updated wecleman.cpp: Added notes, cleaned up code, improved ROM region names, and converted to stereo sound output.
  • cam900 updated the ES8712 device: removed sound output as it's just a controller for an Oki MSM5205/6585 and 74157.
  • cam900 updated gcpinball.cpp, metro.cpp, lastbank.cpp, witch.cpp: Added notes, cleaned up code, and reduced runtime tag map lookups.
  • cam900 updated the blzntrnd driver: Corrected stereo/mono outputs according to PCB type, fixed sound bank switching, and added notes.
  • cam900 updated the lastbank driver: Use generic latch device for sound communication.
  • cam900 updated gcpinball.cpp: Improved ROM region names.
  • cam900 updated qs1000.cpp: Converted set_irq to WRITE_LINE_MEMBER.
  • cam900 updated eolith.cpp, eolith16.cpp, vegaeo.cpp: Cleaned up VRAM handling and drawing.
  • cam900 updated eolith.cpp, ghosteo.cpp, limenko.cpp, vamphalf.cpp, vegaeo.cpp: Modernized sound latches, reduced runtime tag map lookups, and improved ROM region names.
  • cam900 updated the hidctch3 driver: Replaced driver init with machine configuration.
  • cam900 updated mastboy.cpp: Cleaned up code, moved banked RAM handler into address_map_bank_device, fixed RAM error, added notes, and improved ROM region names.
  • cam900 updated xexex.cpp: Cleaned up code, reduced runtime tag map lookups, added notes, and marked with MACHINE_IMPERFECT_GRAPHICS.
  • cam900 updated tecmosys.cpp: Fixed background color, cleaned up bank switching, reduced code duplication, reduced runtime tag map lookups, added notes, and marked with MACHINE_IMPERFECT_GRAPHICS (due to imperfect linescroll/mixing) and MACHINE_NO_COCKTAIL (due to incorrect tilemap scroll when flipped).
  • cam900 updated ultraman.cpp, chqflag.cpp: Minor code clean-up.
  • cam900 updated k051649.cpp: Add scc_map to reduce duplication in driver memory maps.
  • cam900 updated divebomb.cpp: Use generic_latch_8_device for CPU communication and input_merger_any_high_device for interrupts, and improved tags.
  • cam900 updated ddragon.cpp: Identified CPU types.
  • cam900 updated the x68k driver: Implemented ADPCM panning and corrected ADPCM timer.
  • cam900 updated gstream.cpp: Added pre-calculated RGB palette for X2222, reduced code duplication, and removed unnecessary parameters.
  • Caps0ff added extracted C-chip EPROM data for Volfied, Superman, Bonze Adventure, and Rainbow Islands; removed simulation.
  • Carl updated plugins/portname: Described revised format.
  • David Haywood added a hand-crafted C-chip EPROM for Rainbow Islands Extra, allowing simulation to be removed.
  • David Haywood updated the XaviX driver: Added notes on IRQ source register.
  • David Ladd added HDB-DOS device for Color Computer 1/2.
  • Dirk Best added uPD934G percussion generator device, used by Casio RZ-1.
  • F.Ulivi updated the hp64k driver: Added support for HPIB bus, and made extensive improvement to PHI emulation (BIST now passes).
  • F.Ulivi added slot device to tunnel IEEE-488 between processes over a socket connection.
  • Frank Palazzolo corrected Intellivision keyboard 6502 clock rate (was running at double speed).
  • geecab and R. Belmont updated the spectrum driver: Fixed sprite flicker and missing graphics in several games.
  • Justin Kerk updated the emscripten build: Fixed issue causing drivers using netlists to fail, and disabled currently unsupported multithreading.
  • Lord Nightmare updated notetaker.cpp: Started to hook up EmulatorCPU 8086.
  • MetalliC updated naomi.cpp: Updated ROM board and BIOS documentation.
  • MetalliC and Ryan Holtz enabled SH-4 recompiler by default for Dreamcast and derivatives.
  • Nigel Barnes updated the lynx96k driver: Added Scorpion and Danish ROMs as BIOS options.
  • Nigel Barnes updated the kr2376 device: Added keyboard matrix callbacks.
  • Nigel Barnes updated the bbc driver: Added cassette relay samples.
  • Nigel Barnes updated the bbc driver: Fixed shadow RAM corruption in Master/B+, and sideways RAM access in Model B.
  • Nigel Barnes updated the electron driver: Set CPU clock 2MHz/1MHz according to ROM/RAM access.
  • O. Galibert updated model2.cpp: Fixed Zero Gunner background priorities.
  • O. Galibert updated the nes_apu device: Derive frame counter from clock input.
  • Patrick Mackinlay updated the interpro driver: Various improvements, culminating in the ability to boot the "blue screen" rebuild floppy.
    • Nearly boots CLIX - hangs trying to mount the filesystems.
    • Refactored CPU/MMU memory access, added alignment faults, and added support for DMA virtual addressing.
    • Implemented most C400 instructions, and fixed wait instruction.
    • Removed broken forced interrupt handling.
  • Risugami updated midvunit.cpp: Cleaned up inputs and outputs, improved motion inputs, and sorted main buttons.
  • Risugami updated seattle.cpp: Cleaned up outputs.
  • Ryan Holtz and Vas Crabb added ability to start/stop AVI recording during emulation session, and improved handling of native aspect screenshots on systems with arbitrary numbers of screens.
  • SailorSat updated the M1COMM, M2COMM, S32COMM devices: Improved simulation:
    • Fixed partial frame read and added VSYNC packets.
    • Added relay mode (used by stcc), detect/handle connection loss, improved sync.
    • Converted to use osd_file rather than emu_file.
    • Added comm_framesync option to force instances to stay in sync.
    • Added preliminary MB89374 emulation - works well enough for Virtua Racing ad Virtua formula to link using real firmware.
    • Removed m1comm from the default model1 configuration, as not every game has one.
  • Sandro Ronco converted glasgow.cpp to use mmboard device for chess board I/O.
  • smf corrected size of MK48T12 timekeeper RAM.
  • smf updated the validity checks: Test all 33 possible results from count_leading_zeros() and count_leading_ones().
  • smf updated Donkey Kong: Changed orientation so that -norotate matches direct feed recordings.
  • Stefano added QuikLoad option for several CP/M-80 systems (Altos 5, Aussie Byte II, Decision Mate V, Kaypro, QX-10, Xerox 820).
  • superctr updated c352.cpp: Changed mu-law algorithm to match Namco's Wii VC emulator, fixed static noise between fights in Tekken 3, and fixed order of phase inversion flags.
  • Ted Green updated the rgbsse utilities: Fixed scaling functions for negative values - fixes graphical anomalies in warfa.
  • Vas Crabb updated the kayproii driver: Fixed Baud rate generator connections (serial port and keyboard were reversed).
  • Vas Crabb changed build options to make deprecated declaration warnings non-fatal and enabled by default.
  • Vas Crabb started deprecating and removing poorly-performing output system APIs.
  • Vas Crabb updated the dsp16 device: Rewrote interpreter and disassembler.
    • Interpreter implements almost all features and has machine cycle accuracy/granularity.
    • PIO and a subset of SIO output excluding multiplexed modes are implemented.
    • Disassembler syntax mostly matches that used by assembler, and shows live comments for predicated operations.
  • Vas Crabb updated the qsound device: Added low-level emulation using DSP program (only enabled in vgmplay for performance reasons).
  • Vas Crabb updated the qsoundhle device: Changed sample rate and playback behaviour to better match DSP.
  • Vas Crabb restricted ROM names to a shell-friendly subset of printable ASCII.
  • Vas Crabb reduced use of naked pointers, using namespace, and preprocessor macros in recompiling CPU cores.
  • Wilbert Pol converted most machine configuration helpers to non-static member functions and adjusted macros to match.
  • Brian Troha updated crospang.cpp: Corrected clock speeds based on oscillators and PCB info.
  • ClawGrip updated gameboy.xml, gbcolor.xml, leapster.xml, vsmile_cart.xml, vsmile_cd.xml, vsmilem_cart.xml: Corrected Spanish titles.
  • f205v identified manufacturer for sf2b.
  • f205v updated atetris.cpp: Updated documentation for atetrisb2 and atetrisb3.
  • Guru dumped PLA from CBM plus4 family.
  • Guru dumped PROMs for spaceg.
  • Guru updated opwolf.cpp: Measured C-chip clock on a working PCB.
  • Guru corrected main CPU clock divider and added PCB description for shuttlei.
  • Julian Lachniet updated ti85.cpp: Added OS v4.0 as a BIOS option for ti84pcse.
  • Leezer updated hiscore.dat for recent changes.
  • rfka01 updated alphatro.cpp: Improved ROM names, and added real ROM for machine with BICOM graphics extension.
  • sjy96525 corrected year for San Francisco Rush: The Rock.