Today’s MAME release has two consecutive zeros in the version number! The only other time that happened was over twelve years ago! Although MAME version numbers are are just an incrementing number, by a series of coincidences, MAME 0.200 delivers several major changes. First of all, if you’re building MAME with Microsoft Visual Studio (MSVC), you’ll need Visual Studio 2017. We’ve dropped support for Visual Studio 2015. Starting this month, we’re building the official Windows binaries with GCC 7.3 – this probably won’t affect you (we still support building with GCC 5 and up). We’re mirroring tagged releases at GitLab (source only) and SourceForge (source and binaries), so if for some reason you’re unable to access GitHub, you’ll still be able to download official MAME releases.
MAME 0.200 includes replacements for the memory system and callback API. This will enable new functionality and make MAME development more straightforward. The artwork layout system has also had an overhaul which opens new possibilities. We’ve tried our best not to break things, but if you do find something wrong, let us know at MAME Testers, or on our IRC channel #mame on the freenode network.
In arcade emulation this month, we have a number of new versions of supported titles, including a very rare prototype of Led Storm Rally 2011 and three more Street Fighter II': Champion Edition bootlegs. Dreamcast/NAOMI colours are greatly improved thanks to snickerbockers, and cam900 fixed some graphical effects in Gals Panic 3 and Billiard Academy Real Break. Enik Land improved emulation of the Sega Master System, Game Gear and Mega Drive VDPs, covering more corner cases.
The really exciting emulation improvements this month are on the computer side. There are lots of improvements for UK home computers, including better Camputers Lynx tape support (with lots of additions to the software list), re-worked Acorn System emulation, and support for Acorn Bus slot devices. We’ve got a brand-new modernised Apple IIgs driver, with improvements in just about every area. Also, Wayder updated the Sharp 68000 software list, correcting and organising the entries and adding the latest clean dumps.
But even more exciting is the fact that, thanks to Patrick Mackinlay’s gargantuan effort and persistence, the CLIPPER-based InterPro 2000 workstation now works well enough to install and run CLIX (a UNIX operating system). As far as we know, this is a first for MAME. The improvements to SCSI, CD-ROM, and serial emulation also benefit other emulated computer systems. Instructions are on the MAMEdev wiki if you want to try it out.
As usual, you can get source and Windows binaries from the download page.
MAMETesters Bugs Fixed
- 04621: [Timing] (ironhors.cpp) ironhors: 30fps framerate seems abnormal. (Angelo Salese)
- 07027: [Sound] (vegas.cpp) warfa (and maybe clones): DCS2 OS Version Test Failed. (Ted Green)
- Acorn System 5 [Nigel Barnes]
- Acorn System 2 [Nigel Barnes]
- Acorn System 3 (6502 CPU) [Nigel Barnes]
- Acorn System 4 [Nigel Barnes]
- Air Rescue (World) [Porchy, Muddymusic, The Dumping Union]
- Apache 3 (rev E) [coolmod, The Dumping Union]
- Hayaoshi Quiz Nettou Namahousou (ver 1.2) [Apocalypse, The Dumping Union]
- Led Storm Rally 2011 (US, prototype 12) [system11, Coolfox, The Dumping Union]
- Milmar Laser //c [R. Belmont, Peter Ferrie, KansasFest 2018]
- Pink Sweets: Suicide Club (2017/10/31 SUICIDECLUB VER., bootleg) [MetalliC]
- Raiden DX (Portugal) [Jorge Silva, Atro, Kravex]
- Scramble (bootleg, set 2) [hammy, The Dumping Union]
- Street Fighter II': Champion Edition (Mstreet-6, bootleg, set 1) [TwistedTom]
- Street Fighter II': Champion Edition (Mstreet-6, bootleg, set 2) [TwistedTom]
- Street Fighter II': Champion Edition (Mstreet-6, bootleg, set 3) [TwistedTom]
- Boris - Electronic Chess Computer [TrevEB, Sean Riddle, The Dumping Union]
- Captain Zodiac [Siftware]
- CMS 6502 Development System [Nigel Barnes]
- DECstation 5000/133 [R. Belmont, Al Kossow]
- Donkey Kong / Donkey Kong Jr / Mario Bros [Michael Moffitt, coolmod, The Dumping Union]
- Fever Chance [GoneMad]
- iPhone (A1203) [MoochMcGee]
- Marbella Vice [Recreativas.org, The Dumping Union]
- Topaz (Inder) [PinMAME]
- Jokerz! (G-4) [PinMAME]
- Safe Cracker (1.0) [PinMAME]
- acrnsys_flop: Atom/System 3 File Server, System 3 Utilities, System 5 File Server, System BBC BASIC [Nigel Barnes]
- acrnsys_rom: Econet 2.40, Econet 3.40, Econet 3.50 [Nigel Barnes]
- camplynx_cass: 3D Monster Craze, 6845p, Aide (Label-Procedures) (Fra), Backgammon, Battle Brick, Card Index (96K), Centipede, Chopin (Fra), Cinema (96K), Colossal Adventure, Compass, Dam Buster, Deathball, Digger Man, Disassembler (Fra), Dungeon Adventure, Floyds Bank, Games Pack III, Games Pack IV, Gobble de Spook, Grid Trap (Fra), Générateur Basic (Fra), Générateur de Caracteres (96K)(Fra), Hangman, Hi-Lo (96K), IntelTab (96K)(Fra), Introductory Tape (48K), L'odyssée d'Astérix (96K)(Fra), Labyrinthe (Fra), LogiChess 2.2, Lynx Composer (96K), Lynx Disassembler (Fra), Lynx Invaders, Lynx Muncher, MODER-80, Mastermind (96K)(Fra), Maths (Fra), Maxi-Mots (96K)(Fra), Mazeman, Mined Out, Moonfall, Moonfall (Fra), Music Master, Nuclear Invaders, Numerons (Fra), Oh Mummy, Panik, Pengo, Planets, Power Blaster, Racer, Rising Moon, Rocketman, ScrabLynx (96K)(Fra), Screen Dump, Siege Attack, Space Trek, Spellbound, Star Rover, The Forest (96K), The Worm, The Worm (96K)(Fra), Treasure Island, Triangles (96K), Tron Blocker (96K)(Fra), Twinkle, Word Processor, Ynxvaders, Zombie Panic (Fra) [Nigel Barnes]
PC Globe 3.0, PC Globe 5.0 (Spanish), PC Globe 5.04, Starflight 2: Trade Routes of the Cloud Nebula (3.5") [ArcadeShadow]
Cadaver (5.25"), Cadaver (3.5") [Chism]
Cadaver (3.5", Quest and Glory Compilation) [Justin Kerk]
LucasArts Air Combat Classics, The Incredible Machine (alt), The Incredible Machine 2 [ArcadeShadow]
Excel (Version 3.0a) [darksabre76]
MS-DOS (Version 6.22, Thai) [Justin Kerk]
- st_flop: STE Language Disk (Swe, Rev. B) [FakeShemp]
- x68k_flop: Ajisai (ldb_x68k conversion), Camerot (ldb_x68k conversion), Choro Choro, Choro Choro (ldb_x68k conversion), Cuarto (ldb_x68k conversion), Dungeon Management (ldb_x68k conversion), Galseed II (ldb_x68k conversion), Kurupon, Leshies, My Today's Job (ldb_x68k conversion), Over Driver, Programan Ace -Source68, Sekai Seifuku Set (ldb_x68k conversion), Stein [Wayder]
- acrnsys_rom: System/3 Econet 1.48 [Nigel Barnes]
- ibm5150: PC Globe 4.0 [ArcadeShadow]
- ibm5170: POWER DoLLS [Justin Kerk]
- pc88va: Tetris (Bullet-Proof Software) [r09]
• Standardized order of “On”/“Off” items in UI menus with “On” consistently to the right of “Off”. [AJR]
• x68000: Compute refresh rates from CRTC parameters and known crystal values. [AJR]
• Eliminated “Atari VG EAROM” in favor of newer ER2055 device. [AJR]
• z8: Added dump of pre-programmed Z8671 MCU with BASIC/DEBUG interpreter. [AJR]
• x68000: Separated VINAS/VICON CRTC device. [AJR]
• cischeat.cpp: Improvements: [Angelo Salese]
* Reworked interrupt generation, and fixed attract mode de-synchronization in Big Run.
* Fixed Grand Prix Star stuck tyre sprite in attract mode.
• ironhors.cpp: Changed Iron Horse frame rate to 61 Hz. [Angelo Salese]
• sigmab52.cpp: Changed frame rate to 60 Hz. [Angelo Salese]
• tetrisp2.cpp: Added support for YUV422 colors in Stepping Stage. [Angelo Salese]
• amstrad: Added a device for PPI clone implemented by the Amstrad Plus ASIC, and used it for the Plus and GX4000. [Barry Rodewald]
* Fixes Plus detection in some games, and correctly breaks inputs in Barbarian.
• taito_b.cpp, tc0180vcu.cpp: Cleanup: [cam900]
* Moved TC0180VCU functionality from driver state class to device class and internalized graphics decoding.
* Deferred allocation of buffers to start time.
* Removed unused/redundant code.
• lastduel.cpp: Cleanup: [cam900]
* Improved tag and variable naming, reduced code duplication, and reduced runtime tag map lookups.
* Added a palette decoder function for palette.
• seta001.cpp: Deferred allocation to start time and cleaned up code. [cam900]
• srmp2.cpp, thedealr.cpp, seta.cpp, champbwl.cpp: Reduced runtime tag lookups and cleaned up code. [cam900]
• taito_x.cpp: Cleanup: [cam900]
* Split out common parts of memory maps, and separated kyustrkr machine configuration.
* Reduced runtime tag map lookups.
• atarigt.cpp, cage.cpp, metalmx.cpp: Minor cleanup and runtime tag map lookup reduction. [cam900]
• nmk16.cpp: Updates and cleanup: [cam900]
* Reduced code duplication, improved tags, modernized banking, and reduced runtime tag map lookups.
* Implemented sprite and palette size limits.
* Added bad dump flag to ROMs in tdragon3h set sourced from a different PCB.
* Improved save state support.
• unico.cpp: Cleanup: [cam900]
* Improved member names and tags.
* Deferred video RAM allocation to start time.
* Reduced runtime tag map lookups and ACCESSING_BITS checks.
* Added palette decoder function.
• silkroad.cpp: Reduced redundant/unused code, and reduced ACCESSING_BITS checks. [cam900]
• drgnmst.cpp: Reduced code duplication and added palette decoder function. [cam900]
• namcoic.cpp: Simplified graphics decoding/manipulation and reduced code duplication. [cam900]
* Also moved Namco NB-2 ROZ banking to namconb1.cpp driver.
• vgmplay.cpp: Fixed NMK112 bank table mask, and added support for Irem GA20, RF5C68, and RF5C164. [cam900]
• c140.cpp, c45.cpp, namco_c139.cpp: Cleaned up code, removed MCFG_ macros, and added object finders. [cam900]
• namcona1.cpp, tceptor2.cpp: Minor cleanup. [cam900]
• namcos2.cpp: Split out common C116 configuration and removed MCFG_ macros. [cam900]
• bbusters.cpp: Split out mechatt state class, reduced runtime tag map lookup, and simplified graphics decoding. [cam900]
• m107.cpp: Added buffered sprite RAM device, and split machine configuration according to ROM size/banking. [cam900]
• lynx.cpp: Modernized banking, reduced runtime tag map lookups, and cleaned up palette code. [cam900]
• argus.cpp: Cleanup: [cam900]
* Improved argus tilemap handling and added MACHINE_NO_COCKTAIL as scrolling is wrong when flipped.
* Moved butasan tilemap scanning into mapper function.
* Reduced code duplication.
• realbrk.cpp: Fixed sprite priority, reduced runtime tag map lookups, and added notes. [cam900]
• sknsspr.cpp: Implemented bitmap clearing disable bit (used by galpani3). [cam900]
• suprnova.cpp: Restricted bitmap drawing to clipping rectangle. [cam900]
• galpani3.cpp: Implemented/fixed some effects and added notes. [cam900]
* Fixes background color fading in intro, and girl display in stage start.
• kaneko_grap2.cpp: Added device_palette_interface for palette. [cam900]
• Made many class members private and removed dead code exposed. [David Haywood]
• 315_5124.cpp: Updates and improvements: [Enik Land]
* Renamed Game Gear VDP to 315-5377 to match the maintenance manual.
* Added a device to support behaviour specific to the 315-5313 in mode 4.
* Made 315-5377 (Game Gear) and 315-5212 (Mega Drive) derive from 315-5256 (SMS2) rather than 314-5124 (SMS1).
* Improved timing behaviour (verified with Flubba’s VDP Test for 315-5313 in mode 4).
* Emulated sprite status register bits indicating first sprite that overflows.
* Implemented sprite zoom limit for 315-5124/315-5313.
* Fixed incorrect scrolling exhibited in Charles’ scrolling test.
* Improved color of leftmost column in mode 4 when fine scroll is applied.
* Implemented display mode 1 (text) and mode 3 (multicolor).
• Fixed crash when running a DRC CPU core under Emscripten (github #2794). [Justin Kerk]
• cassette.cpp: Fixed handling of multi-channel reads. [Frank Palazzolo]
• Added ARM1176JZF-S CPU device. [MoochMcGee]
• i386: Fixed two cppcheck warnings. [MoochMcGee]
• Added Acorn Bus slot devices. [Nigel Barnes]
* For Acorn Atom: AtomSID, Acorn Atom Disc Pack, Econet Board.
* For Acorn System: 32K Dynamic RAM Board, 8K Static RAM Board, Cassette Interface Board, Econet Board, Floppy Disc Controller Board, 40 Column VDU Board, 80×25 VDU Board, Versatile Interface Board.
* For CMS: CMS 40/80 Video Terminal Card, CMS Floppy Disc Controller, CMS High Resolution Colour Graphics Card.
• a6809: Renamed to acrnsys3_6809, and rewrote with card slot devices. [Nigel Barnes]
• ef9365: Clear frame buffer memory on reset. [Nigel Barnes]
• camplynx_cas: Added support for multiple files (concatenated) in TAP file. [Nigel Barnes]
• emumem: Replaced with new, modernized back-end. [O. Galibert]
• williams.cpp, wmg.cpp: Removed hard-coded default service button assignments. [OzFalcon]
• interpro.cpp: Improved to the point where CLIX boots on the ip2000. [Patrick Mackinlay]
* Includes re-written IOGA interrupt and DMA handling, and fixes for CPU and MMU issues.
• nscsi: Added support for CD-ROM drives with 512-byte blocks (required for many UNIX workstations). [Patrick Mackinlay]
* Also added stubs for “prevent/allow medium removal”, and improved hard disk “inquiry” command behaviour.
• apple2e updates: [R. Belmont]
* Added debugger guards to avoid accidentally banking out ROM.
* Fixed floating bus reads – synchronizes Talbot Fantasy Seven credits screen.
• apple2gs: Re-wrote driver using address map bank device. [R. Belmont]
• apple2gs: Fixed issues with Jam Session and ACS Demo Disk #2. [R. Belmont]
• es5503: Fixed bad playback of synthLAB sampled-attack looped-sustain instruments. [R. Belmont]
• z80scc: Fixed transmit interrupt behavior that was locking up the Apple IIgs [R. Belmont, Patrick Mackinlay]
• mc146818: Added support for direct-access bus hook-up method used by MIPS DECstations. [R. Belmont]
• trs80 work in progress: [Robbbert]
* Split into separate sources.
* Fixed UI paste/natural keyboard.
* Added UART, RS-232, and Baud rate clock/BRG depending on hardware.
* Fixed UART status on sys80.
* Fixed cassette waveform.
* Tidied up and modernised code.
* Added monitor documentation.
• ht1080z: Added ay8910. [Robbbert]
• ps2sony: Fleshed out the skeleton driver. [Ryan Holtz]
* Added device to encapsulate PlayStation 2 timers.
* Temporarily hacked R5900 core to always have scratchpad RAM mapped at 0x70000000.
* Added reference counting to divtlb so it does not unmap pages that are still shared with other entries.
* Added skeleton GIF, VIF1 and GS devices.
• mips3: Added basic Emotion Engine support. [Ryan Holtz]
• kr03: Defined native keyboard layout (partially addresses MT05818). [shattered]
• PowerVR2: re-implemented color calculation. [snickerbockers]
• Moved instantiation of device_finder for interface classes from implementation sources to interface sources. [Stefan Brüns]
* Avoids multiple explicit instantiations with the same template arguments.
• devcb: Replaced with new, more flexible implementation. [Vas Crabb]
* Converted a number of devices and drivers to use the newly supported less macro-dependent syntax.
• Layout system improvements: [Vas Crabb]
* Allow screens to be referenced by tag in layouts.
* Allow an internal layout to be supplied per device rather than just per system, with relative screen and input tags.
* Improved view generation and selection for systems with two screens.
* Added support for user variables and repetition in layouts, and converted a number of layouts.
• v550: Added keyboard program ROM dump. [Al Kossow]
• Added skeleton device for WD1007A ESDI hard disk controller. [Al Kossow]
• hiscore.dat: Updated for recent changes. [Leezer]
• x68k_flop: Updates: [Wayder]
* Organised and corrected entries, and replaced disk images with new dumps.
* Removed Ninin Battle (Alt) – it’s a modified copy.
* Updated/corrected missing dumps, release years, and Japanese titles.
• ibm5170: Fixed typo in interface for Turbo Pascal 6.01 (German). [xinyingho]