Release Date

MAME 0.198 was released on 30 May 2018.


MAMETesters Bugs Fixed


Machine Support

New working machines


New working clones


Machines promoted to working


Clones promoted to working


New machines marked as NOT_WORKING


New clones marked as NOT_WORKING


New working software list additions


Software list items promoted to working


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 separated MS7002 keyboard emulation from VT100 keyboard, changed to Cyrillic key names and JCUKEN layout.
  • AJR updated the msm58321 device: Corrected duty cycle for busy output.
  • AJR updated the duet16, fmtowns drivers: Fixed RTC busy signal handling.
  • AJR updated the mcs51 core: Added more interrupt and timer registers to debug state.
  • AJR updated the asteroid driver: Swapped start LEDs and suppressed logging for many spurious writes.
  • AJR updated the asteroid, astdelux drivers: Added cocktail configuration that flips screen for second player. * AJR
  • AJR updated the cit101 driver: Somewhat major improvements:
    • Added high-level emulation of serial keyboard.
    • Implemented double-height, double-width, boldface, and blinking/half intensity attributes.
    • Implemented adjustable start-of-screen pointer (necessary for SET-UP mode).
    • Implemented screen reconfiguration for 80/132-column and 50/60 Hz modes.
  • AJR updated the ppu2c0x family devices: Made palette internal to device.
  • AJR updated the z80ctc device: Disabling a channel interrupt also turns it off.
  • AJR made “Keypad ,” and “Keypad =” standard keys.
  • AJR made debugger dump command work with unaligned addresses.
  • AJR updated the vectrex driver: Fixed probable bug with lightpen-triggered interrupt.
  • AJR updated the sidampkr driver: Made the cards appear.
  • AJR updated the 1945kiii driver: Add sprite color flashes (MT06971), reduced palette size, and fixed OKIM6295 reads.
  • AJR updated the i8275 device: Blank top and bottom row lines when underline is greater than 7.
  • AJR and David Haywood updated the tomagic driver: Added sound system and inputs.
  • AJR updated exidy440.cpp, vertigo.cpp: Improved encapsulation of audio device.
  • Angelo Salese updated legionna.cpp: Kludged a few weird Godzilla collision checks.
  • Angelo Salese updated nb1412m2.cpp: Improved sound capabilities and added DAC sound to Mighty Guy.
  • Angelo Salese updated stvvdp1.cpp: Fixed transparent sprite shadows, and disabled transmask for mode 2 sprites.
  • Angelo Salese provided stvvdp2.cpp updates:
    • Disabled ROZ optimization in modes 2 and 3 (fixes Bulk Slash and Death Crimson ROZ layer bugs).
    • Added support for line windows and vertical cell scroll.
    • Added support for undocumented rotation parameter read mirroring.
    • Don’t repeat ROZ when screen over process is equal to 1 (fixes D-Xhird practice stage).
    • Fixed potential bug with window Y sizes when double density interlace is enabled.
  • Angelo Salese updated sub.cpp: Added flip screen support for Submarine (Sigma).
  • Angelo Salese updated ltcasino.cpp: Added preliminary palette implementation.
  • Angelo Salese updated blmbycar.cpp: Added optical and potentiometer wheel inputs.
  • Angelo Salese updated f1gp.cpp: Added some undocumented DIP switches, and 4-way joystick inputs.
  • Angelo Salese provided dc-ctrl.cpp updates:
    • Added preliminary keyboard support, hooked up to The Typing of the Dead, La Keyboard, and Lupin 3: the Typing on Naomi.
    • Fixed Dreamcast controller ID values, making it possible to suppress VMU not found errors in Dreamcast games.
  • Angelo Salese provided tatsumi.cpp improvements:
    • Added preliminary row/column scroll enable for tilemaps (fixes background scrolling and foreground text in Cycle Warriors).
    • Improved road colors in Cycle Warriors.
  • Barry Rodewald updated the amstrad driver: Allow loading CPR cartridges with odd numbers of blocks.
  • Bavarese added VS Systems LBA Enhancer ISA card – adds PC BIOS extensions for 28-bit LBA support.
  • cam900 updated aica.cpp: Changed register names to match development manual, documented unimplemented registers, and flagged imperfect features.
  • cam900 updated c6280.cpp: Implemented LFO and added notes.
  • cam900 updated gunpey.cpp: Reduced code duplication, and deferred VRAM allocation to start time.
  • cam900 updated renegade.cpp: Fixed bit manipulations.
  • cam900 updated the seibuspi driver: Fixed typo and added notes.
  • cam900 updated fmtowns.cpp: Implemented stereo output, fixed PCM output level, and reduced code duplication.
  • cam900 updated rohga.cpp: Fixed background color of title screen in wolffang.
  • cam900 provided a jaguar.cpp cleanup:
    • Moved CoJag ROM board mapping to derived address maps, and moved banking configuration to machine start.
    • Reduced runtime tag lookups.
  • cam900 updated fuukifg2.cpp: Updated notes and cleaned up a little.
  • cam900 updated m90.cpp: Reduced code duplication, added user_data for tilemap RAM base, reduced runtime tag lookups, and updated notes.
  • cam900 updated dooyong.cpp: Cleaned up a little, and added input merger device for YM2203 interrupt handler.
  • cam900 updated m72.cpp: Simplified graphics decode layouts.
  • cam900 updated drgnmst.cpp: Changed to mono sound output – neither chip nor PCB supports stereo.
  • cam900 argus.cpp: Fixed argus sound writes (only one YM2203), reduced code duplication, and reduced runtime tag lookups.
  • cam900 updated pgm.cpp, pgm2.cpp: Corrected metadata so it matches title screens, transliterated Chinese names, and updated comments.
  • cam900 updated sandscrp.cpp, puckpkmn.cpp: Transliterated Chinese titles.
  • cam900 updated rf5c68.cpp: Converted to device_memory_interface and added save state support.
  • cam900 updated egacd.cpp, segas18.cpp, segas32.cpp, system16.cpp: Reduced duplication, fixed bit manipulation, and reduced runtime tag lookups.
  • cam900 updated nmk16.cpp: Fixed tdragon2 banking, transliterated Chinese titles, simplified graphics decode layouts, and fixed spacing.
  • cam900 updated highvdeo.cpp improvements:
    • Split machine configuration and address maps for each game.
    • Reduced code duplication, cleaned up drawing code, cleaned up ROM loading, and removed redundant code.
    • Added pre-calculated color for games using RGB565.
  • cam900 updated funkyjet.cpp: Fixed company metadata for funkyjet and clones.
  • cam900 updated simpl156.cpp: Changed company metadata to match title screens.
  • cam900 updated topspeed.cpp: Cleaned up and used arrays to reduce code duplication.
  • cam900 updated romload.h: Added macros for byte-wide ROMs on a 64-bit bus.
  • cam900 allowed internal register read-back on DECO HuC6280/YM2151 sound system.
  • cam900 reduced code duplication and changed to more meaningful tags in many Data East drivers.
  • cam900 updated deco32.cpp: Moved dragngun*/lockload* m_sprgenzoom into dragngun_state and removed redundant code.
  • cam900 updated the argus, bigfight drivers: Added links to reference videos in comments.
  • cam900 updated tatsumi.cpp: Reduced runtime tag lookups, used more meaningful tags, and reduced code duplication.
  • cam900 updated taitogn.cpp: Reduced code duplication.
  • cam900 updated cbuster.cpp: Simplified tile banking.
  • cam900 updated toaplan2.cpp, gp9001.cpp: Reduced duplicated and redundant code, reduced runtime tag lookups, and updated notes.
  • cam900 and Vas Crabb provided leland.cpp improvements and modernisation:
    • Cleaned up duplicated code, reduced runtime tag lookups.
    • Split out ataxx/wsf/indyheat/brutforc/asylum into separate state class.
    • Converted background to tilemap and restricted drawing to clip rectangle.
  • Curt Coder updated the abc806 driver: Fixed memory banking allowing CP/M to boot.
  • Curt Coder and Vas Crabb sorted save state items in alphabetical order in the memory viewer source list.
  • David Haywood updated the rad_eu3a14 driver: Improved rendering for rad_foot by making more correct use of sprite registers/bits.
  • David Haywood started looking at the extra opcodes in the SSD 2000 type XaviX chip.
  • Dirk Best updated coolridr.cpp, model2.cpp, model3.cpp: Converted Sega 315-5649 to device.
  • Dirk Best updated the model1io device: Improved interface, and added drive board read/write callbacks.
  • Dirk Best updated the model2 driver: Fixed input issue with srallyc.
  • Dirk Best updated the floppy device: Initialize created floppy images the same way as loaded images.
  • Dirk Best updated the 315_5338a device: Cleaned up and improved code, and renamed ports to match other Sega I/O devices.
  • Dirk Best updated the v60 core: Fixed disassembly of branch opcodes (displacement is signed).
  • Dirk Best updated the tmpz84c015 core: Added missing callback for CTC zc3, and removed rxtxcb_w.
  • Dirk Best updated the model1 driver: Emulated I/O boards used by Wing War, Netmerc, and Virtua Cop.
    • Supports serial ports, watchdog, and diagnostic display (in addition to I/O).
  • F.Ulivi updated the hp_ipc driver: Added HPIB interface chip and remotizer device.
  • F.Ulivi provided tms9914 updates:
    • Improved emulation – HPIB test of IPC diagb ROM now passes.
    • Added methods to read ACCRQ and CONT output lines.
    • Added RL state machine and other fixes – now passes HP9000/340 POST.
    • Fixed handling of GTS aux command.
  • F.Ulivi updated the remote488 device: Added “checkpoint” command that performs a synchronous out-of-band echo request.
  • headkaze and R. Belmont provided output module changes:
    • Cleaned up network provider protocol.
    • Added pause and savestate commands to both network and win32 providers.
  • kazblox updated markham.cpp: Modernised and merged with strnskil.cpp.
    • Added coin counters and added coinage DIP switch settings for markham, strnskil, banbam and clones.
    • Added raw screen parameters based of 20 MHz clock on strnskil PCB.
  • kazblox updated citycon.cpp, ikki.cpp: Added raw screen parameters.
  • Kalevi Kolttonen updated sega8_slot.cpp: Added check for Lode Runner SG-1000/SC-3000 ROM image.
  • Luca Elia updated igs017.cpp: Emulated the protection in iqblocka, iqblockf, and genius6.
  • Michael Zapf updated the tutor driver: Turned off auto wait states – fixes cassette loading.
  • Michael Zapf updated the tms9995 device: Fixed latching of pulsed interrupts.
  • Michael Zapf updated the ti99 driver: Fixed disk creation via OSD.
  • Michael Zapf updated the hexbus device: Added connectors to HX5102, allowing a second drive to be attached to the controller in the case.
  • Michael Zapf updated the ti99_2 driver: Added new/verified ROM dumps, and re-implemented driver.
  • Michael Zapf updated the ti99_8 driver: Inverted track count bits, and added DIP switches.
  • Nigel Barnes updated the bbc driver: Added various pointer devices on userport:
    • AMX Mouse, Acorn Master 512 Mouse, Marconi RB2 Tracker Ball.
  • Nigel Barnes updated the bbcm512 driver: Added mouse, and promoted to working.
  • Nigel Barnes updated the bbcmaiv driver: Added tracker ball.
  • Nigel Barnes updated the bbc driver: Added Beeb Speech Synthesiser device.
  • Nigel Barnes updated poly.cpp: Use original encrypted ROMs, and decrypt.
    • Implemented banking and system/user mode switching.
    • Added PolyBASIC 3.0, 3.1, and 3.4.
  • O. Galibert updated the apple2 driver: Added support for WOZ image format.
  • O. Galibert updated emumem: Renamed direct_read_handler to memory_access_cache.
    • Now templated on more information (data width, endianness) and capable of oversize/unaligned accesses.
  • O. Galibert updated the debugger: Simplified now-obsolete and buggy memory access code.
  • O. Galibert updated the cubeqst driver: Fixed cache endianness.
  • O. Galibert updated the sound system: Don’t try to generate a negative number of samples if stream->update() goes back in time.
  • Patrick Mackinlay added Brooktree Bt45x RAMDAC devices – Bt457 and Bt458 are used by InterPro graphics boards.
  • Patrick Mackinlay updated the tms32031 device: Added tms320c30 variant and basic hold/holda support.
  • Patrick Mackinlay moved Z80 daisy-chain mixin from src/devices/cpu/z80 to src/devices/machine.
  • Patrick Mackinlay updated the interpro driver: Added low-level keyboard emulation (key mapping is incomplete).
  • Patrick Mackinlay updated the interpro driver: Slowed down CPU – fixes graphical glitches and keyboard detection.
  • R. Belmont and Peter Ferrie updated the apple2 driver: Recognize another form of DOS 3.3 image in ProDOS order.
  • R. Belmont updated the Apple II: Added 13-sector version of Disk II controller.
  • R. Belmont added SoftFloat release 3E to 3rdparty.
  • R. Belmont updated the sh4drc core: Added UML implementations of FLDI0, FLDI1, FCMP_EQ, FCMP_GT, FSTS, FLOAT, FTRC, FNEG, FABS, FSCHG, and FRCHG.
  • Robbbert updated the neogeo driver: Added UniBios 3.3.
  • Robbbert updated the apexc driver: Fixed regression/crash introduced on 2018-02-12.
  • Ryan Holtz updated the indy_indigo2 driver: Cleaned up code, converted HAL2 and HPC3 to devices, and moved HAL2, HPC3, and IOC2 devices to separate source files.
  • Ryan Holtz and Simon Inns updated the vp415 driver: Added proper dumps of Module S and Module W MCUs, which have identical programs.
  • Ryan Holtz updated the adc0808 device: Reduced CPU overhead with smarter timer usage.
  • Ryan Holtz removed name mangling functions from driver initialisation methods, and renamed init_0 to empty_init.
  • Samuele Zannoli updated atpci.cpp: Move m55hi-plus motherboard stuff to a new machine called m55hipl.
  • shattered updated the hp_ipc driver: Added diagnostic ROMs and model 9808A (prototype of desktop version).
  • hap and shattered updated the i8255 device: Improved read-back of port C high output latches when port A is in mode 1.
  • shattered updated the pk8020 driver: Hooked up interrupt sources.
  • smf provided popeye.cpp improvements:
    • Adjusted Popeye and Sky Skipper layer positions to match tests on real hardware.
    • Added preliminary emulation of corruption on Popeye bootleg logo.
  • Sven Schnelle provided hp9k_3xx improvements:
    • Added internal TMS9914 GPIB, clocked at 5MHz.
    • Added HP 46021A (ITF) HIL keyboard, and changed h9k_3xx to use this device.
    • Added “topcat” ASIC used on HP900/300 graphics cards, and hooked up to HP98544.
    • Fixed PTM6840 hookup – clock 2 is driven by output of timer 1.
  • Sven Schnelle updated the HP IPC keyboard: fixed ID byte returned for IDD command, and changed logging to use logmacro.h.
  • David Ladd and Tim Lindner updated gime.cpp: Fixed handling of number of scan lines for legacy VDG/SAM modes on CoCo 3.
  • Vas Crabb did initial work on next-generation machine configuration syntax:
    • Made concrete device types callable and added support for device class constructor overloads.
    • Made machine_config aware of current device being configured and made finder/callback target tags apply relative to it.
    • Allowed devcb to be bound to a device/mix-in or the target of an object finder.
    • Allowed device finders to be used in place of literal tags in many places in machine configuration.
    • Replaced many MCFG_ macros with overloaded device constructors and removed many macros that provide limited value.
    • Removed implicit name mangling from macros for slot options, discrete sound descriptors, and graphics decode descriptors.
  • Vas Crabb provided further improvements to NeoGeo experience:
    • Moved arcade start buttons to controllers and allowed AES joystick to be selected on systems with D-sub connectors.
    • Changed kizuna4p and irrmaze to use a configuration more like MV-1B/MV-1C as earlier models lack support for SIT/FTC1B.
    • Made fixed software using mahjong panel default to Japan BIOS as European BIOS only supports joysticks in service mode.
    • Changed mahretsu to use JAMMA joystick panel as it doesn’t support mahjong panel in MVS mode.
    • Allowed controls to be changed for MVS mahjong games (BIOS and bakatono support joysticks).
    • Gave the single-slot JAMMA variants parent/clone relationships.
  • Vas Crabb removed assert macro replacement as it can’t be used in destructors of classes that are literal types.
  • Vas Crabb fixed incorrect device class for PCI APIC.
  • Vas Crabb made slot device options menu localisable.
  • Wilbert Pol updated the ef9340/1 device: Made character set external an external ROM.
  • Bill D updated alien.cpp: Re-dumped pingu CompactFlash card (sadly the source CompactFlash card is bad/corrupt).
  • Brian Troha updated ltcasino.cpp: Added PCB layout for Mini Vegas.
  • Brian Troha updated vamphalf.cpp: Added PCB layout for Boong-Ga Boong-Ga (Spank'em!).
  • Caps0ff updated hshavoc.cpp: Decapped and dumped PIC microcontroller.
  • f205v updated gaelco2.cpp: Verified MCU clock for Touch & Go.
  • f205v updated holeland.cpp: Documented PALs for crzrallyg.
  • f205v updated splash.cpp: Documented some undumped PLDs.
  • f205v updated funworld.cpp, kingdrby.cpp: Identified some protected PAL dumps and marked them as bad.
  • f205v and The Dumping Union updated esd16.cpp: Verified different sound sample ROM for Multi Champ DX was bit-rot.
  • Fujix and hiromasha updated pc9801.cpp: Dumped kanji ROMs for PC9801VM.
  • Guru updated bionicc.cpp: Corrected MCU label for the original sets.
  • Guru updated the chasehq, topspeed drivers: Dumped motor CPU ROM and added detailed hardware description for chasehq.
  • Jos van Mourik updated the irrmaze driver: Improved internal artwork layout.
  • Leezer updated hiscore.dat for recent changes.
  • MASH updated the spacewars driver: Fixed error in ROM definition introduced in MAME 0.37b2.
  • Phil Bennett updated the model1io device: Re-dumped epr14869b.25 used by Virtua Fighter.
  • Pycur updated the Amatic Multi Game 5 driver: Added notes about the contents of Dallas DS1994 device.
  • r09 provided pc98_cd.xml updates:
    • Re-tested all software entries that previously had video/audio issues – around 70% now work.
    • Demoted Miamisoft’s games to non-working since they seem to hang randomly.
    • Tested some software entries on real hardware (PC-9821Nw150) to make sure the issues are emulation-related.
  • Razoola updated neogeo.cpp: Added two new MVS BIOS dumps.
  • RobertoFresca updated Coco Loco: Corrected metadata and updated notes.
  • Roberto Fresca updated phoenix.cpp: Documented the Next Fase sound device.
  • sjy96525 corrected years for Groove on Fight, Pop'n Music 2, and Pop'n Music 3.
  • Tafoid updated starwars.cpp: Added locations to ROM labels for all machines.
  • Wintermute 0110 provided Software list corrections:
    • Made Acorn software list names more consistent.
    • Stripped leading/trailing spaces from ROM names.
    • Changed some ROM names that are problematic with Windows Explorer and Command Prompt.