Release Date

MAME 0.203 was released on 31 October 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 emulated National DP8350 CRT controller family.
  • AJR updated the mcs48 core: Set lower 4 bits of P2 to input during (and after) MOVD A,Pp.
  • AJR updated the i8243 device: Release P2 output after completion of read operation.
  • AJR updated sbrain.cpp: Driver overhaul:
    • Added cursor and scrolling through CRT controller registers.
    • Corrected number of interrupts per frame.
    • Actually show the "insert diskette" message.
    • Added options for RAM size and two or more floppy drives.
    • Added RS232 ports and DIP switches for Baud clock selection.
  • AJR updated the tms9900 core: Internalized TMS9980A clock divider, and corrected endianness for TMS9980 and TMS9995 in unidasm.
  • AJR updated the xavix core: Allow debugger to step over CALLF instruction.
  • AJR updated the crt9007 device: Added frame timer.
  • AJR updated flipjack.cpp: Driver overhaul:
    • Reimplemented video using CRT controller row update method.
    • Fixed cocktail mode and changed rotation from 90 degrees to 270 degrees.
    • Modernized interrupts and cleaned up code.
  • AJR invalidated memory access caches when removing watchpoints (prevents crashes on subsequent accesses to the same areas).
  • AJR provided mcs96 updates:
    • Replaced I/O space with callbacks, and added internal address space for non-executable register file and SFR area.
    • Made SFRs more accessible to the debugger, and made disassembler show names for directly-addressed SFRs.
    • Corrected disassembler output for some forms of ADDCB, SUBCB, MULB, ANDB, JBC and JBS.
  • AJR updated unidasm: Added st62xx support.
  • Angelo Salese and dink updated flkatck.cpp: Fixed sprite-sprite priorities, and removed driver hack from k007121.cpp.
  • Angelo Salese updated combatsc.cpp: Added video and scroll memory to save states.
  • anikom15 added shaders for performing color transforms and three-dimensional lookup tables.
    • Allows arbitrary color space manipulation within the sRGB space.
  • Bavarese updated rainbow.cpp: Connected WD2010 write fault input, and changed default serial port device to Microsoft 2-button mouse.
  • Brandon Munger and Stephen Stair provided r9751 updates - Disktool is now fully functional:
    • i86: Allow '188 to advance DMA immediately if DRQ is held high when source synchronous DMA is started.
    • Connected SMIOC DMA to 68k CPU and fixed communication.
    • Emulated SCC2698B octal UART and connected to SMIOC.
    • Improved logging.
  • cam900 updated iremga20.cpp: Fixed playback rate algorithm.
  • cam900 updated itech8.cpp: Updates and cleanup:
    • Converted sound latch to generic_latch_8_device.
    • Converted to use derived memory maps and unit masks.
    • Reduced runtime tag map lookups, and cleaned up redundant and duplicated code.
  • cam900 updated glass.cpp: Simplified code, removed duplication, and improved region names.
  • cam900 updated segas24.cpp: Added save state support, split address maps by ROM board type, and cleaned up code.
  • cam900 updated crystal.cpp: Cleanup and updates:
    • Made class members private where appropriate, cleaned up code, reduced duplication, and added notes.
    • Converted to use derived address maps and configured banking.
    • Added CRT controller register details.
    • Improved device names and removed MCFG macros.
  • cam900 updated targeth.cpp: Reduced runtime tag map lookups, and reduced code duplication.
  • cam900 and AJR updated ramdac.cpp: Removed MCFG macros.
  • cam900 updated blitz68k.cpp: Reduced code duplication and made state class members private as appropriate.
  • cam900 updated tecmo_mix.cpp: Added mixing for text layer bitmap, made background pen blendable, and removed MCFG macros.
  • cam900 updated gaiden.cpp, tecmo16.cpp: Corrected sprite lag, cleaned up graphics decode and ROM loading, and added notes.
  • cam900 updated namcofl.cpp: Implemented screen clipping and shadows, fixed sprite banking, and confirmed crystal values.
  • cam900 updated namconb1.cpp: Corrected sprite lag, added raw screen parameters, reduced code duplication, and cleaned up code.
  • cam900 updated namcos1.cpp: Reduced code duplication and replaced a naked pointer with a required region pointer.
  • cam900 updated namcos2.cpp: Removed unnecessary memory banks, added raw screen parameters, improved region names, and cleaned up code.
  • cam900 updated namcos21.cpp, namcos21_c67.cpp, namcos21_de.cpp: Improved member names and tags, and cleaned up code.
  • cam900 updated namco_c116.cpp: Implemented device_palette_interface for internal palette.
  • cam900 updated namco_c123tmap.cpp: Internalized graphics decoding, implemented tilemap disable bit, and simplified configuration.
  • cam900 updated namco_c169roz.cpp, namcos2_roz.cpp: Internalized graphics decoding and simplified configuration.
  • cam900 updated namco_c355spr.cpp: Added support for double-buffered sprites, simplified configuration, and cleaned up code.
  • cam900 updated namcos2_sprite.cpp: Get palette from graphics decode, avoiding redundant configuration.
  • cam900 updated onetwo.cpp: Use a palette decoder member function for palette decoding.
  • Carl and Frank Hughes updated the qx10kbd device: Dumped and emulated keyboard microcontroller.
  • David Haywood updated mwarr.cpp and stlforce.cpp: Converted video code to a device.
  • David Haywood updated cps3.cpp: Implemented score layer row scroll effects, and cleaned up code.
    • Fixes combo meters in jojoba (MT06157, GitHub #4033).
  • David Haywood updated wecleman.cpp: Marked weclemanb as a hack.
  • David Haywood provided XaviX updates:
    • Renamed members based on strings in code, moved audio stubs to a separate file, and updated notes.
    • Hooked up sprite addressing mode control register, improved sprite RAM hookup, and hooked up "text array" pattern generator.
    • Fixed multiplier unit use in rad_madf.
    • Added inputs for rad_bass, rad_crdn, taitons1 and taitons2.
    • Improved palette mode used by taitons2, improved sprite positioning, implemented sprite flipping, and improved priorities.
    • Added support for RAM-based tiles used in rad_bb2 test mode, and 24-bit tile addressing used by epo_efdx.
    • Improved CALLF, RETF and BRK, allowing namcons2 to boot and rad_ping to get past the first screen.
    • Mapped BIOS into second external bus space for e-kara sets, and implemented DMA register read-back.
    • Improved transparency handling, and implemented "arena control" clipping effect.
    • Re-implemented Super XaviX opcodes based on observed usage.
    • Allow some opcodes to bypass zero page, as required by namcons1.
    • Hooked up I2C memory.
    • Implemented per-line rendering and raster interrupts (improves backgrounds in rad_snow and xavtenni).
  • dslegend made MAME not set the SDL_WINDOW_OPENGL extra flag if -video none is set.
    • Allows a true headless run when the environment variable SDL_VIDEODRIVER=dummy is set.
  • F.Ulivi updated the hphybrid core: Added support for the 09825-67907 variant, and updated the hk64k and hp9845 drivers as necessary.
  • F.Ulivi emulated HP 9825B desktop computer, including DC100 tape drive, internal printer, and matrix display.
  • hap and Ryan Holtz updated the namcos22 driver: Added view matrix reflection.
    • Fixes alpinr2b character selection screen, raveracw/ridgera2 rear-view mirrors, and secret mirror track in raveracw.
  • hap provided namcos22 driver updates:
    • Added save state support and improved performance.
    • Corrected pixel clock and DSP clocks.
    • Fixed coin 2 not working.
    • Implemented rendering from point RAM (used on Alpine Racer 2 and Ridge Racer 2 title screens).
    • Improved System 22 fader and background color (fixes Victory Lap attract mode).
    • Improved Super System 22 fog and spot (improves graphics in Aqua Jet, Dirt Dash and Time Crisis).
    • Fixed polygon layer sometimes rendering when it shouldn't
    • Added preliminary POSIRQ implementation (partial updates are not enabled yet).
    • Fixed window clipping on Ace Driver rear view mirrors and Alpine Racer 2 character selection screen.
    • Fixed hitboxes for helicopter in Time Crisis and tanks in Tokyo Wars (error in 68020 CHK2).
    • Added Super System 22 lamp and motor outputs.
  • Juergen Buchmueller updated the pokey device: Return most recent m_ALLPOT value and freeze POT counters during SK_RESET.
  • Justin Kerk allowed undefined GL symbols for WebAssembly target (GitHub #4187).
  • Kiall Mac Innes fixed compilation with X11 XInput enabled (NO_USE_XINPUT=0).
  • kunikuni updated the mpatrol driver: Fixed graphical issues including sprite priority, background positioning, and screen flipping.
  • kunikuni updated the liblrabl, toypop drivers: Improved cocktail mode emulation, and corrected DIP switch settings.
  • kunikuni updated warpwarp.cpp: Corrected player 2 shot/ball offset in cocktail mode.
  • kunikuni updated the pacland driver: Corrected "Bonus Life" DIP switch values.
  • Michael Zapf updated the ti99 driver: Added guards against selecting non-existent drives.
  • Nigel Barnes updated the bbc_tube_6502/65c102 device: Added ReCo6502 Tube 1.21 ROM.
  • Nigel Barnes provided bbc.cpp updates:
    • Reimplemented the addressable latch using the 'LS259 device.
    • Added 32K ROM slots in B+ and Master variants.
    • Use bankdev to switch IO/ROM in Master.
    • Use ram_device instead of ROM_REGION for RAM.
    • Added I2CMEM device for PCD8572 in Master Compact.
    • Corrected sound device from SN76489 to SN76489A.
  • Nigel Barnes updated the bbcb driver: Added ReCo6502 co-processor.
  • Nigel Barnes updated the bbcmc driver: Added expansion port and Mertec Companion expansion device.
  • O. Galibert updated the phoenix driver: Don't configure_entries and set_base on the same bank.
  • Patrick Mackinlay added a skeleton driver for MIPS Computer Systems ROSC/os machines, with initial focus on the RC2030 headless workstation.
  • R. Belmont updated GENie: Changed minimum target macOS version to 10.6 to allow building on macOS 10.14 "Mojave" with latest Xcode tools.
  • R. Belmont fixed compilation with SDL 2.0.8 and later on macOS.
  • R. Belmont updated the hapyfish driver: Replaced driver with clone of mini2440, allowing it to boot from NAND Flash.
    • Boot loader now comes up and fails because it can't find both Flash chips.
  • Robbbert updated gamecom.cpp: Made all games besides lostwrld playable, and updated notes.
  • Robbbert updated sorcerer.cpp: Added DDMON 1.3 and ADSMON BIOS options.
    • ADSMON requires an 80 column card that is not emulated.
  • Robbbert updated the sm8500 core: Improved logging of unknown opcodes.
  • Ryan Holtz provided sun4c updates:
    • Changed FDC to and fixed mapping.
    • Added save state support.
    • Added machine configuration for SPARCstation SLC (4/20), IPX (4/50), 1+ (4/65) and 2 (4/75).
    • Added RAM size options and fixed mirroring in 4 MB configurations.
    • Improved MMU/cache behaviour, and added support for full-width memory mask on segment map writes.
    • Re-wrote timers to tick at 1 MHz (allows NetBSD to progress further).
  • Ryan Holtz updated the sbus device: Added font register and fixed drawing endianness for cgsix card.
  • Ryan Holtz updated debugcpu: Fixed watchpoints for CPUs that use word addressing.
  • Ryan Holtz updated the generic_slot device: Allow file name extensions to be omitted from constructor call.
  • Ryan Holtz provided vii.cpp updates:
    • Fixed titles and publishers.
    • Ported current u'nSP 1.0 CPU core and serial EEPROM emulation from Unununium.
    • Made u'nSP instructions that use post-increment/decrement addressing modes update segment register on rollover.
    • Fixed road layer in several Zone 60 games.
    • Added an optional visual debugger for audio (may be enabled with a preprocessor macro).
    • Converted SPG24x and SPG28x SoCs to devices, added saturation and fade offset control, and implemented sound output.
    • Added SPG24x/SPG28x chip select callbacks and rudimentary analog inputs.
    • Hooked up walle NVRAM.
    • Added preliminary V.Smile support - runs BIOS and boots games.
  • Ryan Holtz updated osdwindows: Fixed BGFX not rendering in multiple windows (internal UI is still glitchy).
  • Ryan Holtz and BigAlUK updated ibm5150.cpp: Hooked up cassette data output (GitHub #4076).
  • Ryan Schmidt fixed compilation with libjpeg for environments where TRUE and FALSE aren't preprocessor macros.
  • shattered updated the vt100, ec1841, mc1502, poisk1, km035 and ms7004 drivers: Made keyboards Lua-friendly and updated mappings.
  • smf updated the PlayStation GPU device: Copy the textures' STP bit (improves Silent Hill).
  • smf updated the PlayStation GTE device: Use helper functions to count leading zero/one bits rather than implementing locally.
  • smf updated vgmplay.cpp: Added support for multiple instances of the same chip with different clock frequencies.
  • superctr updated qsoundhle.cpp: Saturate voice and output accumulators (MT07115).
  • Sven Schnelle provided hp_dio updates:
    • Allow cards to share interrupt and DMA request lines.
    • Removed MCFG macros and moved classes into a namespace.
    • Configure all DIO slots as non-fixed, as none of the devices are on-board or physically captive.
    • Removed unused map() functions.
    • Added HP98620 DMA controller and HP98625A SCSI controller card devices.
    • Fixed plane masks in HP98543 video card.
  • Sven Schnelle provided M68000 MMU updates:
    • Add Special Status Word to exception frames.
    • Raise MMU configuration exception if SRP/CRP is invalid.
    • Factored out code to set bus error details, perform address translation cache lookup, match TT register, and walk tables.
    • Added support for short indirect descriptors (used by HP-UX 9).
    • Set MMU status flags when performing address translation cache lookup.
    • Split PLOAD and PTEST code from m68881_ops into separate functions, and corrected the name to m68851_ops.
    • Correctly disassemble more forms of PTEST and PFLUSH instructions.
  • Sven Schnelle updated hp9k_3xx.cpp, mb87030.cpp, hp9122c.cpp: Converted to use delegate timers.
  • Sven Schnelle provided hp9k_3xx.cpp updates:
    • Moved sound, GPIB, keyboad and RTC to human interface DIO module.
    • Cleaned up DIO configuration.
    • Use 98543 DIO card for video output on HP9000/320 and HP9000/332, replacing driver code for the latter.
  • Sven Schnelle updated the tms9914 device: Latch EOI flag until next byte is sent.
  • Sven Schnelle provided hp_hil updates:
    • Added HP46060B mouse device.
    • Converted logging to use logmacro.h and removed MCFG macros.
    • Removed obsolete bus error handler and superfluous RAM regions.
  • Sven Schnelle updated nscsi_bus.cpp, nscsi_cd.cpp, nscsi_hd.cpp: Disable logging by default.
  • Tim Lindner fixed command line parsing for the long form of the first instance of a media option.
  • Tim Lindner fixed CoCo 16k cartridge banking, CoCo 3 32k external ROM mode, and Zumwalt banking through the CoCo Multi-Pak.
    • Addresses MT06616 and GitHub #2746.
  • Tim Lindner updated coco3.cpp: Added workaround to show only one screen by default.
  • TSCHAK updated pcjr.cpp: Added null_modem and terminal to serial port options for IBM PCjr family.
  • ValleyBell updated the iremga20 device: Stop sample playback on encountering a zero-valued sample, as this appears to be a sentinel value.
    • Also reduced code duplication in sound stream update function.
  • Vas Crabb improved search behaviour in file selection menus.
  • Vas Crabb updated jazz.cpp: Added PS/2 keyboard/mouse controller emulation.
  • anonymous updated krz2000.cpp: Dumped the Kurzweil K2000 "ROM1 - Orchestral" and "ROM2 - Contemporary" add-on modules.
  • Arcade-Projects updated namcops2.cpp: Re-dumped superdbz DVD and confirmed that gundzaft DVD dump is good.
  • Brandon Ermita dumped the IBM Model M PC/AT and PS/2 keyboard microcontroller.
  • Brian Troha updated paradise.cpp: Updated information about Spinner Controls Daughtercard, and added DIP switch locations for Mad Ball.
  • Brian Troha and Carl Graham updated seta2.cpp: Added PCB layouts for Kosodate Quiz My Angel and TelePachi Fever Lion.
  • Brian Troha updated sega16a.cpp: Corrected labels and ROM locations for aliensyn2.
  • Curt Coder updated the pofo driver: Dumped character generator ROM, and verified that BIOS is a good dump.
  • DragonMinded updated twinkle.cpp: Updated documentation to match data gleaned from kits.
  • f205v updated itgamble.cpp: Updated notes and hardware info.
  • James Wallace updated the Barcrest MPU4 driver: Removed Intel HEX copies of previously dumped ROMs.
  • killamegagiga updated nes.xml: Corrected Japanese titles for chestfld and touch.
  • MASH updated norautp.cpp: Marked drhla as a clone of drhl.
  • MASH updated 3do.cpp: Corrected year and manufacturer for orbatak.
  • MASH added smartmedia to arcade build (now used by hapyfish).
  • MASH and hap added color overlay to Yosaku to Donbei.
  • r09 provided pc98.xml updates:
    • Marked Brandish Renewal entries as cracks.
    • Re-labeled disks with their actual names, and changed order so they automatically mount in a logical way.
    • Added usage notes for software that requires DOS.
    • Removed images where only save game data differs, and removed user-created disks.
  • SEGV updated taito_f3.cpp: Verified that ROMs from a Puchi Carat Asia cartridge ROMs match the overseas version.
  • ShouTime updated system1.cpp: Document that the parent Gardia set is Sega factory conversion.
  • Tafoid removed documentation for command-line options that are no longer supported, and added preliminary documentation for new options.
  • Wayder updated x68k_flop.xml: Added and corrected many entries.