Release Date

MAME 0.204 was released on 28 November 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 updated the v25 core: Added address space for internal data area and SFRs.
  • AJR updated the i8088 core: Mask I/O addresses to five bits.
  • AJR provided mbc55x driver additions and refinements:
    • Corrected all clocks, and derived them from the master crystal.
    • Corrected I/O address decoding.
    • Connected speaker output to 8251 USART.
    • Add ISA expansion slot, Centronics printer port, and RS-232 "line" port.
    • Added backspace key to HLE keyboard and noted undumped microcontroller.
  • AJR updated the i8251 device: Implemented send break command.
  • AJR updated the z80dart device: Don't reset the receiver whenever WR5 changes.
  • AJR updated the z80ctc device: Added support for a fixed-rate clock input to be configured for each channel.
    • Improves performance by reducing the need to drive the CLK/TRG inputs with high-frequency synchronizing timers.
  • AJR updated the i386 core: Signal a privilege change to the debugger when protected mode is enabled or disabled, or CS descriptor flags change.
  • AmatCoder updated dsk_dsk.cpp: Fixed an issue where the deleted and bad CRC flags were being used uninitialized.
  • cam900 updated tecmo.cpp: Reduced duplicated code and runtime tag map lookups, and replaced initialisation functions with derived memory maps.
  • cam900 updated serflash.cpp: Added support for page size configuration, and fixed block erase command and read/write past last page.
  • cam900 updated c6280.cpp: Fixed LFO scale bit.
  • cam900 updated gottlieb.cpp: Cleaned up code.
  • cam900 updated hotblock.cpp: Confirmed crystal values, cleaned up video code, and deferred video RAM allocation to start time.
  • cam900 provided fantland.cpp cleanup:
    • Moved machines with ADPCM sound to a derived state class.
    • Reduced runtime tag map lookups, ACCESSING_BITS macros, and code duplication.
    • Improved function names and cleaned up code.
  • cam900 updated namcos2.cpp: Fixed C123 video RAM mirroring (fixes metlhawk intermission).
  • cam900 updated gp9001.cpp: Restricted tilemap drawing to clipping rectangle, improved member names, and reduced redundant code.
  • cam900 updated toaplan2.cpp: Improved member naming and removed unnecessary use of register_postload.
  • cam900 updated c117.cpp: Eliminated MCFG macros.
  • cam900 updated stadhero.cpp: Cleand up code, removed some MCFG macros, improved naming, and added a note.
  • cam900 updated namco_c123tmap.cpp: Added support for offsets, half-height tilemaps, and eight-bit I/O (for using in namcos1.cpp).
  • cam900 provided namcos1.cpp updates:
    • Converted C123 tilemap emulation to use device.
    • Corrected some device types, crystal values and YM2151 clock frequencies.
    • Improved region names, reduced MCFG macro use, redundant code, and code duplication.
  • cam900 updated deco16ic.cpp: Allow graphics decode device to be configured using tag-like objects.
  • cam900 provided a wrally.cpp cleanup:
    • Reduced runtime tag map lookups and use of ACCESSING_BITS macros.
    • Cleaned up graphics decode description and reduced code duplication.
  • cam900 provided a deco32.cpp cleanup:
    • Eliminated VIDEO_START_MEMBER, and improved member names and formatting, and cleaned up code.
    • Simplified and reduced duplication in graphics decode descriptions.
  • cam900 updated thoop2.cpp: Reduced runtime tag map lookups, simplified graphics decode description, and reduced code duplication.
  • cam900 updated gaelco.cpp cleanup:
    • Reduced runtime tag map lookups, and improved member names.
    • Cleaned up graphics decode descriptions and ROM loading.
  • cam900 provided backfire.cpp updates:
    • Simplified graphics decode, description, and reduced duplicated and unused code.
    • Deferred scroll RAM allocation until start time.
    • Added release regions to descriptions, and added notes.
  • cam900 updated alpha68k.cpp: Added note about unemulated video effect.
  • cam900 updated the imagetek_i4100 device: Implemented device_gfx_interface, eliminated MCFG macros, and cleaned up sprite drawing code.
  • cam900 updated hyprduel.cpp: Reduced use of ACCESSING_BITS macros.
  • cam900 provided metro.cpp updates:
    • Fixed sprite lag for blzntrnd and gstrk2, and adjusted gstrik2 sound balance.
    • Improved member names, reduced use of ACCESSING_BITS and MCFG macros, reduced code duplication, and cleaned up code.
    • Corrected title for karatourj.
  • cam900 provided blmbycar.cpp updates:
    • Reduced runtime tag map lookups, use of ACCESSING_BITS macros, and code duplication.
    • Changed sound output to mono.
    • Added versions to descriptions.
  • cam900 updated lordgun.cpp: Corrected aliencha YMF278B clock, reduced duplication, simplified code, and improved member names.
  • cam900 updated bmcpokr.cpp: Cleaned up code to better adhere to current best practices, and changed sound output to mono.
  • cam900 updated dec0.cpp: Converted sprite RAM to buffered_spriteram16_device, cleaned up graphics decode description, and improved member names.
  • cam900 updated karnov.cpp: Converted background drawing to use tilemap system, simplified graphics decoding, and cleaned up code.
  • cam900 updated taito_o.cpp: Improved sound balance.
  • cam900 updated igs011.cpp: Simplified palette handling and graphics ROM access.
  • cam900 provided f1gp.cpp cleanup:
    • Split f1gp2 into a derived state class, cleaned up code, reduced duplication, and improved member names.
    • Simplified graphics decode description.
    • Changed f1gpb sound output to mono.
  • cam900 updated st0020.cpp: Added object finder for ROM region, reduced code duplication, and simplified tilemap mapping.
  • cam900 updated cave.cpp: Reduced use of ACCESSING_BITS and MCFG macros, improved member names, and cleaned up code.
  • cam900 updated drgnmst.cpp: Fixed 8x8 tile banking.
  • cam900 updated nmk112.cpp: Eliminated MCFG macros, and simplified write handler signatures.
  • cam900 updated segas32.cpp: Reduce use of ACCESSING_BITS macros and code duplication, and improve member names.
  • David Haywood provided XaviX updates:
    • Don't set I2C memory page size (works around hanging in Namco/Taito Nostalgia games).
    • Align palette base to natural boundary in modes with more than four bits per pixel.
    • Moved e-kara cartridges to a software list.
    • Added a crude timer implementation (frequency is fixed).
    • Added preliminary wheel input for rad_mtrk, and ball input for rad_fb/rad_madf.
    • Fixed opcode access in upper banks.
    • Improved inputs for ekara and rad_rh.
    • Fixed rad_rh tile addressing.
    • Added preliminary sound emulation.
    • Improved CPU emulation, improving ttv_mx road, showing graphics in ttv_sw, and playing music on ttv_lotr title screen.
    • Improved sprite positioning.
    • Improved Monster Truck tile flipping and rendering in inline header mode.
    • Added a hack go allow epo_efdx to read its EEPROM and display a title screen.
  • David Haywood updated supbtime.cpp: Restored one-pixel tilemap offset for tumblep and chinatwn.
  • David Haywood updated m52.cpp: Moved alpha1v to a separate derived state class, fixed graphical issues, and promoted to working.
    • Also removed kludges in mpatrol palette handling that were originally used to save memory.
  • David Haywood updated pbaction.cpp: Hooked up numeric LED displays for pbactiont.
    • Emulation of communication with display controller CPU is incomplete.
  • David Haywood provided asuka.cpp updates:
    • Marked earthjkr ROM as a bad dump and applied a patch based on earthjkrp (fixes row scroll on final stage).
    • Reduced sound levels to avoid clipping.
  • David Haywood updated ppu2c0x_vt.cpp: Allow palette to be set before mode is selected (fixes Konami logo display in ddrdismx).
  • David Haywood updated wrally.cpp, blmbycar.cpp: Converted sprite drawing to device and fixed shadow/highlight effects in blmbycar.
  • Dirk Best and Robbbert updated qvt102.cpp: Hooked up devices, re-wrote video emulation implementing all video attributes, and added NVRAM.
  • Dirk Best updated the amiga driver: Added support for Commodore A2065 Ethernet card.
  • F.Ulivi updated hp9825.cpp: added internal expansion ROMs for hp9825b.
  • feos updated luaengine: Fixed item:read_block(offset, count) so it applies the offset.
    • Also added description comment for emu.item().
  • Nigel Barnes provided bbc updates:
    • Allocate ROMs required by expansion devices to empty slots on start.
    • Removed all root device access from expansion devices.
    • Added configuration option to fit Econet upgrade.
    • Added OS 0.92 as BIOS option for bbca and bbcb.
    • Added Opus Challenger ADFS 1MHz bus device (Master only).
    • Moved torch MCP ROMs to bbc_tube_zep100 device, to be inserted at startup.
    • bbc_acorn8271: Moved lesser-known DFS ROMs to the software list.
    • Added Opus DDOS 3.05 to bbc_opus8272.
    • Added Opus DDOS 3.12 to bbc_opus2791.
    • Added Aries B488 and Acorn IEEE488 Interface devices on 1MHz bus.
  • Nigel Barnes updated amstr_pc.cpp: Added internal 3.5" floppy drive to machine configuration.
  • O. Galibert updated ampoker2.cpp: Simplified rabbitpk decryption.
  • O. Galibert updated ymmu100.cpp: Implemented sound output, including some filters.
  • Patrick Mackinlay provided a v53 core overhaul:
    • Added support for V50, and refactored code to better align with current best practices.
    • Added 16-bit transfer support to DMAU.
    • Cleaned up SCU implementation.
  • Patrick Mackinlay provided a mips1 overhaul:
    • Implemented TLB and address translation, and improved cache isolation behaviour.
    • Corrected exception vector logic.
    • Fixed overflow logic.
  • Patrick Mackinlay updated the am79c90 device: Implemented network communication, and greatly improved behaviour.
  • Patrick Mackinlay updated mips.cpp: Hooked up MAC address PROM, LANCE Ethernet controller, and floppy drive controller.
  • r09 updated pc9801_86.cpp: Fixed stereo sound routing, and fixed a PSG level balance regression.
  • Robbbert updated the tec1 driver: Replaced ROMs with clean dumps from the original designers.
  • Roberto Fresca updated ampoker2.cpp: Documented and simulated piccolop protection, and removed ROM patches.
  • Sven Schnelle updated the mb87030 device: Implemented padding mode (allows Pascal 3.24 to boot and run from SCSI on hp9k_3xx).
  • Ryan Holtz and Carl updated luaengine: Added functions to screen_dev class for getting packed RGB pixel values.
  • Ryan Holtz provided hpc3.cpp updates:
    • Improved DMA transfer behaviour
    • Fixed audio DMA, hooked up second DAC, and fixed a bug that prevented the audio DAC DMA timer from stopping.
    • Partially hooked up second SCSI controller for Indigo2.
    • Hooked up INT3 and PIT register access.
    • Added support for single-byte SCSI DMA requests.
    • Fixed an oversight with interrupt requests.
    • Also converted logging to use logmacro, added more verbose logging, added stave state support, and cleaned up code.
    • Restores SGI Indy boot chime, and allows IRIX installer to run until it fails with a SCSI error.
  • Ryan Holtz provided ioc2.cpp updates:
    • Hooked up Timer1/Timer0, z80scc and 8042kbdc interrupts.
    • Hooked up 8042kbdc reset.
    • Fixed IRQ-lowering logic so it actually clears the MIPS IRQ line.
    • Also converted logging to use logmacro, made logging more verbose, and added save state support.
    • Allows Gentoo Linux to boot, although it hangs during startup.
  • Ryan Holtz updated newport.cpp: Fixed a long-standing bug with color resolution.
    • Also updated to current coding standards, converted logging to use logmacro, and made logging more verbose.
  • Ryan Holtz updated dp8573.cpp: Added DP8573 real-time clock emulation.
  • Ryan Holtz updated sgi.cpp: Made RPSS counter more accurate, and added semaphore registers.
    • Also converted logging to use logmacro, made logging more verbose, and updated to meet coding standards.
  • Ryan Holtz provided indy_indigo2.cpp updates:
    • Moved Indigo2 to a derived state class, and moved a number of devices into HPC3.
    • Eliminated use of MACHINE_CONFIG_START/MACHINE_CONFIG_END macros.
    • Hooked up pull-ups on EISA I/O space.
  • Ryan Holtz provided indigo.cpp updates:
    • Separated indigo3k and indigo4k state classes.
    • Hooked up RS-232 ports.
    • Switched to new Zilog SCC implementation, and added PIT8254 device (uses incorrect clock value to work around hang).
    • Fleshed out SCSI and started fleshing out HPC1 implementation.
    • Hooked up new DP8573 real-time clock implementation.
    • Improved RAM layout.
    • Added stubs for DSP RAM and Entry-Level Graphics (LG1/LG2).
    • Implemented LG1 palette setup, block drawing, pattern drawing, frame buffer copy, and remaining commands used by PROM monitor.
    • Removed unused screen device.
    • Expanded logging and converted to use logmacro, and renamed variables to meet MAME coding standards.
  • Ryan Holtz updated t10sbc.cpp: Added support for Format Parameters and Geometry Parameters pages.
  • Ryan Holtz updated scsicd512.cpp: Added various legacy SCSI CD-ROM devices that use 512-byte blocks by default.
  • Ryan Holtz updated nscsi_cd.cpp: Added various new-SCSI CD-ROM devices that use 512-byte blocks by default.
  • Ryan Holtz updated the sgikbd device: Added basic SGI Indigo keyboard high-level emulation.
  • Ryan Holtz updated rs232/hlemouse.cpp: Added support for SGI Indigo mouse.
  • Ryan Holtz updated o2.cpp: Added CRIME and MACE skeleton devices.
  • Ryan Holtz provided mips3.cpp updates:
    • Corrected R4400BE, R4400LE, R4600BE and R5000BE bus width to 64 bits.
    • Fixed a bug that caused a crash with 64-bit data bus and the DRC.
    • Added ability to log SGI O2 boot PROM DPRINTF calls (enabled with a preprocessor macro).
  • Ryan Holtz updated clifront.cpp: Improved descriptions of -showusage and -showconfig options.
  • Ryan Holtz updated screen.cpp: Added a device callback to make it easier to hook the scan line timer.
  • Ryan Holtz updated zerozone.cpp, zexall.cpp, zr107.cpp, zrt80.cpp, zt8802.cpp, zwackery.cpp, zx.cpp: Eliminated MACHINE_CONFIG_START/_END macros.
  • Sven Schnelle provided m68kmmu improvements:
    • Handle RW bit in address translation cache properly.
    • Add page table walk resulting in BUSERROR to address translation cache.
    • Fixed PTEST instruction, and PTEST level report in MMU status register.
    • Trap if PLOAD is called with MMU disabled on MC68851.
    • Don't skip descriptor status update for page descriptors.
    • Set address in PTEST to last descriptor address.
    • Added function code page table lookup.
    • Fixed TT register matching.
    • Decode FC field for PLOAD insturction.
    • Added support for eight-byte indirect descriptors.
    • Don't change page table/address translation cache state on translations triggered by the debugger.
    • Store B bit in address translation cache on bus error and set last logical address for handler.
    • Show 68020/030/040 PMMU registers in the debugger.
  • Sven Schnelle updated the debugger: Added "gp" command to run until the next privilege level change, and added support for "%c" format conversion.
  • Sven Schnelle provided hp9k_3xx updates:
    • Use correct memory map for HP9000/360.
    • Fixed RTC data corruption bug (initial state of latch clock was unsafe).
  • Sven Schnelle updated the nereid device: Added overlay support (used by HP98550A), and implemented device_palette_interface.
  • Sven Schnelle updated the hp_dio bus device: Added support for HP98550A high-resolution color graphics card, and made default for HP9000/360 and /370.
    • Window mover, pixel/window replacement rules, VRAM bit access, solid line drawing, and pattern mask copy are implemented.
    • Shape drawing, area fill, and additional copy modes are not supported.
  • Sven Schnelle updated the hp_dio bus device: Added support for HP98643A LANIC Ethernet card.
  • Al Kossow updated the qvt102 driver: Dumped an additional firmware version, and dumped keyboard microcontroller.
  • anikom15 added ini/examples to binary distribution.
  • Caps0ff and ClawGrip updated atetris.cpp: Decapped and dumped EPROM from Indel P8749H microcontroller (matches existing dump).
  • Caps0ff, balrog and David Haywood updated kickgoal.cpp: Decapped and dumped kickgoal PIC sound microcontroller, and hooked up emulation.
  • ClawGrip updated pbaction.cpp: Documented Tecfri version of Pinball Action that uses an additional board to drive numeric LED displays.
  • Darksoft updated segasp.cpp: Added SystemSP Network Board version 1.23 firmware.
  • f205v updated magic10.cpp: Updated notes with more detail, added boot instructions, corrected metadata, and added PLDs.
  • Guru updated prehisle.cpp: Dumped correct character ROM for prehislek (MT05613).
  • Guru updated namcond1.cpp: Redumped graphics ROMs for Abnormal Check.
  • Jim Hernandez updated midyunit.cpp: Added SL1 revision sound ROM to Smash T.V. V3.01.
  • Jim Hernandez updated exidy.cpp: Corrected PCB locations for PROMs in mtrap and clones.
  • Leezer updated hiscore.dat: Updated for latest changes in MAME.
  • Lord Nightmare changed hand-made SAA5051 character ROM to match the datasheet (one pixel was missing on the 'j' character).
  • Ordyne updated segaxbd.cpp: Added Royal Ascot satellite ROMs.
  • PinMAME updated by35.cpp, inder.cpp: Corrected toppin and pinclown sound CPU ROM dumps.
  • rfka01 and Bitsavers updated xerox820.cpp: Added ROM versions 4.02 (820-II), v50 v018 (820-II), and 5.00 (820-II 16/8).