Fork me on GitHub

Welcome to The Official Site of the MAME Development Team

What is MAME?

MAME is a multi-purpose emulation framework.

MAME’s purpose is to preserve decades of software history. As electronic technology continues to rush forward, MAME prevents this important "vintage" software from being lost and forgotten. This is achieved by documenting the hardware and how it functions. The source code to MAME serves as this documentation. The fact that the software is usable serves primarily to validate the accuracy of the documentation (how else can you prove that you have recreated the hardware faithfully?). Over time, MAME (originally stood for Multiple Arcade Machine Emulator) absorbed the sister-project MESS (Multi Emulator Super System), so MAME now documents a wide variety of (mostly vintage) computers, video game consoles and calculators, in addition to the arcade video games that were its initial focus.

License

The MAME project as a whole is distributed under the terms of the GNU General Public License, 2 (GPL-2.0), since it contains code made available under multiple GPL-compatible licenses. A great majority of files (over 90% including core files) are under the BSD-3-Clause License and we would encourage new contributors to distribute files under this license.

Please note that MAME is a registered trademark of Gregory Ember, and permission is required to use the "MAME" name, logo or wordmark.

Keeping up with C++

16 Oct 2020

Starting with the December 2020 development cycle (after the anticipated release of MAME 0.227), we will switch to compiling MAME as C++17. Compiler and standard library support for C++17 is now sufficiently widespread that we can update and benefit from the new functionality. The minimum compiler versions and corresponding standard library versions with adequate C++17 support are GCC/libstdc++ 7, clang/llvm/libc++ 6, and Visual C++/MSVCPRT 19.14 (Visual Studio 2017 15.7). This will be an increase in the required clang/llvm/libc++ version.

A small number of C++17 standard library features that are not yet widely supported will not be permitted. The following standard library features will not be permitted until support is more widespread:

  • Parallelism TS (P0024R2)
  • Updating references to C standard to C11 (P0063R3)
  • Elementary string conversions (P0067R5)
  • Splicing maps and sets (P0083R3)
  • Hardware interference size (P0154R1)
  • File system library (P0218R1)
  • Polymorphic memory resources (P0220R1)
  • Mathematical special functions (P0226R1, ISO/IEC 29124:2010)
  • std::shared_ptr/std::weak_ptr with array support (P0414R2)
  • std::is_aggregate (LWG2911)

MAME 0.225

30 Sep 2020

Whether it’s the Autumn harvest moon, or the ornamental plum blossoms are blowing in the Spring breeze, it’s time for something special: MAME 0.225 is out today! We’ve got some big updates that benefit everyone! First of all, MAME’s sound output system has been overhauled, with better sample rate conversion and mixing. This makes pretty much everything sound sweeter, but on top of that, the Votrax SC-01 speech synthesiser has been tuned up. Does anyone here speak Q*Bertese? SC-01 speech has been added to the Apple II Mockingboard card, too. While we’re talking about Apple II cards, Rhett Aultman has ported the CS8900A Crystal LAN Ethernet controller from VICE, allowing MAME to emulate the a2RetroSystems Uthernet card.

Other across-the-board enhancements include more artwork system features (you’ll start to see this show up in external artwork soon), an option to reduce repeated warnings about imperfectly emulated features, and several internal improvements to make development simpler. Significant newly emulated system features include the Philips P2000T’s cassette drive from Erwin Jansen, the Acorn BBC Micro Hybrid Music 4000 Keyboard, internal boot ROM support for the WonderSwan hand-helds, and initial support for the NS32000 CPU.

Newly emulated systems include several TV games from MSI based on arcade titles, a couple of Senario Double Dance Mania titles, Sun Mixing’s elusive Super Bubble Bobble, a location test version of Battle Garegga, a couple more versions of Jojo’s Bizarre Adventure, and three more Street Fighter II': Champion Edition bootlegs. Some of the immediately noticeable fixes this month include 15-bit graphics mode refinements for FM Towns from r09, gaps in zoomed sprites on Data East MLC and Seta 2 fixed by cam900, Galaga LED outputs lost during refactoring restored, and clickable artwork remaining clickable when rotated.

As always, we can only fit a few highlights here, but you can read all the updates in the whatsnew.txt file, or get the source and 64-bit Windows binary packages from the download page.

Read the rest of this entry »

MAME 0.224

26 Aug 2020

Are you ready kids? MAME 0.224 (our August release) is out now! As always, there’s plenty to talk about. First of all, the Magnavox Odyssey² and Philips Videopac+ G7400 have had a major overhaul, with many graphical errors fixed, most software working, and support for the Chess and Home Computer modules. The Gigatron 8-bit homebrew computer, created by the late Marcel van Kervinck and based entirely on 7400-series logic chips, is now working with graphics and controller support. Acorn 8-bit expansions continue to arrive, with several additions for the BBC Micro and Electron. Speaking of expansions, regular contributor F.Ulivi has delivered serial modules for the HP Integral PC and HP9825/HP9845 families.

Analog arcade audio continues to advance. If you’ve played Namco’s Tank Battalion, ancestor of the NES classic Battle City, you’ll be acutely aware of the limitations of the sample-based audio. That has been addressed this month, with netlist-based audio emulation. For Midway, 280 ZZZAP sound has been further refined, and netlist-based audio has been implemented for Laguna Racer and Super Speed race, which use similar circuitry. Sega G-80 games have received some long-overdue attention, with netlist-based audio added for Astro Blaster, Eliminator, Space Fury and Zektor, as well as better Universal Sound Board emulation for Star Trek and Tac/Scan, and more accurate CPU timing. Other games receiving netlist-based audio are Destroyer and Flyball from Atari, and Fire One and Star Fire from Exidy. On the topic of audio emulation, the ultra low cost GameKing now has preliminary sound emulation, making the games feel more complete.

Work on UK gambling systems has continued, with several more Barcrest, BWB and JPM games working in this release. There are also a number of new European gambling games, including several Cherry Master and Jolly Joker sets. A significant number of arcade driving games have had additional internal layouts optimised for use on wide aspect ratio displays added. Other advances in home computer emulation include Apple IIe RGB monitor mode support, Apple II CMS SCSII II card support, and proper emulation speed for the VTech Laser 500.

As always, there’s far more happening than we have space for here, and you can read all about it in the whatsnew.txt file, or get the source and 64-bit Windows binary packages from the download page.

Read the rest of this entry »

MAME 0.223

06 Aug 2020

MAME 0.223 has finally arrived, and what a release it is – there’s definitely something for everyone! Starting with some of the more esoteric additions, Linus Åkesson’s AVR-based hardware chiptune project and Power Ninja Action Challenge demos are now supported. These demos use minimal hardware to generate sound and/or video, relying on precise CPU timings to work. With this release, every hand-held LCD game from Nintendo’s Game & Watch and related lines is supported in MAME, with Donkey Kong Hockey bringing up the rear. Also of note is the Bassmate Computer fishing aid, made by Nintendo and marketed by Telko and other companies, which is clearly based on the dual-screen Game & Watch design. The steady stream of TV games hasn’t stopped, with a number of French releases from Conny/VideoJet among this month’s batch.

For the first time ever, games running on the Barcrest MPU4 video system are emulated well enough to be playable. Titles that are now working include several games based on the popular British TV game show The Crystal Maze, Adders and Ladders, The Mating Game, and Prize Tetris. In a clear win for MAME’s modular architecture, the breakthrough came through the discovery of a significant flaw in our Motorola MC6840 Programmable Timer Module emulation that was causing issues for the Fairlight CMI IIx synthesiser. In the same manner, the Busicom 141-PF desk calculator is now working, thanks to improvements made to Intel 4004 CPU emulation that came out of emulating the INTELLEC 4 development system and the prototype 4004-based controller board for Flicker pinball. The Busicom 141-PF is historically significant, being the first application of Intel’s first microprocessor.

Fans of classic vector arcade games are in for a treat this month. Former project coordinator Aaron Giles has contributed netlist-based sound emulation for thirteen Cinematronics vector games: Space War, Barrier, Star Hawk, Speed Freak, Star Castle, War of the Worlds, Sundance, Tail Gunner, Rip Off, Armor Attack, Warrior, Solar Quest and Boxing Bugs. This resolves long-standing issues with the previous simulation based on playing recorded samples. Colin Howell has also refined the sound emulation for Midway’s 280-ZZZAP and Gun Fight.

V.Smile joystick inputs are now working for all dumped cartridges, and with fixes for ROM bank selection the V.Smile Motion software is also usable. The accelerometer-based V.Smile Motion controller is not emulated, but the software can all be used with the standard V.Smile joystick controller. Another pair of systems with inputs that now work is the original Macintosh (128K/512K/512Ke) and Macintosh Plus. These systems’ keyboards are now fully emulated, including the separate numeric keypad available for the original Macintosh, the Macintosh Plus keyboard with integrated numeric keypad, and a few European ISO layout keyboards for the original Macintosh. There are still some emulation issues, but you can play Beyond Dark Castle with MAME’s Macintosh Plus emulation again.

In other home computer emulation news, MAME’s SAM Coupé driver now supports a number of peripherals that connect to the rear expansion port, a software list containing IRIX hard disk installations for SGI MIPS workstations has been added, and tape loading now works for the Specialist system (a DIY computer designed in the USSR).

Of course, there’s far more to enjoy, and you can read all about it in the whatsnew.txt file, or get the source and 64-bit Windows binary packages from the download page.

Read the rest of this entry »

MAME 0.222

26 Jun 2020

MAME 0.222, the product of our May/June development cycle, is ready today, and it’s a very exciting release. There are lots of bug fixes, including some long-standing issues with classics like Bosconian and Gaplus, and missing pan/zoom effects in games on Seta hardware. Two more Nintendo LCD games are supported: the Panorama Screen version of Popeye, and the two-player Donkey Kong 3 Micro Vs. System. New versions of supported games include a review copy of DonPachi that allows the game to be paused for photography, and a version of the adult Qix game Gals Panic for the Taiwanese market.

Other advancements on the arcade side include audio circuitry emulation for 280-ZZZAP, and protection microcontroller emulation for Kick and Run and Captain Silver.

The GRiD Compass series were possibly the first rugged computers in the clamshell form factor, possibly best known for their use on NASA space shuttle missions in the 1980s. The initial model, the Compass 1101, is now usable in MAME. There are lots of improvements to the Tandy Color Computer drivers in this release, with better cartridge support being a theme. Acorn BBC series drivers now support Solidisk file system ROMs. Writing to IMD floppy images (popular for CP/M computers) is now supported, and a critical bug affecting writes to HFE disk images has been fixed. Software list additions include a collection of CDs for the SGI MIPS workstations.

There are several updates to Apple II emulation this month, including support for several accelerators, a new IWM floppy controller core, and support for using two memory cards simultaneously on the CFFA2. As usual, we’ve added the latest original software dumps and clean cracks to the software lists, including lots of educational titles.

Finally, the memory system has been optimised, yielding performance improvements in all emulated systems, you no longer need to avoid non-ASCII characters in paths when using the chdman tool, and jedutil supports more devices.

You can read about all the updates in the whatsnew.txt file, or get the source and 64-bit Windows binary packages from the download page.

Read the rest of this entry »

MAME 0.221

19 May 2020

Our fourth release of the year, MAME 0.221, is now ready. There are lots of interesting changes this time. We’ll start with some of the additions. There’s another load of TV games from JAKKS Pacific, Senario, Tech2Go and others. We’ve added another Panorama Screen Game & Watch title: this one features the lovable comic strip canine Snoopy. On the arcade side, we’ve got Great Bishi Bashi Champ and Anime Champ (both from Konami), Goori Goori (Unico), the prototype Galun.Pa! (Capcom CPS), a censored German version of Gun.Smoke, a Japanese location test version of DoDonPachi Dai-Ou-Jou, and more bootlegs of Cadillacs and Dinosaurs, Final Fight, Galaxian, Pang! 3 and Warriors of Fate.

In computer emulation, we’re proud to present another working UNIX workstation: the MIPS R3000 version of Sony’s NEWS family. NEWS was never widespread outside Japan, so it’s very exciting to see this running. F.Ulivi has added support for the Swedish/Finnish and German versions of the HP 86B, and added two service ROMs to the software list. ICEknight contributed a cassette software list for the Timex NTSC variants of the Sinclair home computers. There are some nice emulation improvements for the Luxor ABC family of computers, with the ABC 802 now considered working.

Other additions include discrete audio emulation for Midway’s Gun Fight, voice output for Filetto, support for configurable Toshiba Pasopia PAC2 slot devices, more vgmplay features, and lots more Capcom CPS mappers implemented according to equations from dumped PALs. This release also cleans up and simplifies ROM loading. For the most part things should work as well as or better than they did before, but MAME will no longer find loose CHD files in top-level media directories. This is intentional – it’s unwieldy with the number of supported systems.

As usual, you can read about all the updates in the whatsnew.txt file, or get the source and 64-bit Windows binary packages from the download page. This will be the last month where we use this format for the whatsnew file – with the increase in monthly development activity, it’s becoming impractical to keep up.

MAME 0.220

06 Apr 2020

In a world of uncertainty, perhaps you can derive a little comfort from MAME 0.220, our delayed release for the March development cycle. This month has seen fixes for some old bugs in Final Star Force, Ribbit! and Night Slashers, emulation of Crab Grab (the other Game & Watch title with a colour overlay), the acquisition of Solite Spirits (an early version of what became 1945k III), and preliminary work on the Naruto TV game running on the XaviX 2 platform. There are some big software list updates this month, including a lot of Apple II software aimed at North Dakota schools, and the latest VGM music packs. Speaking of which, the VGM player can now show pretty visualisations while you listen.

Newly supported peripherals include the Baby Blue II CPU Plus card for PC compatibles, serial and CP/M modules for the HP 85 and HP 86, more sound and disk expansions for the TI-99 family, the CoCo PSG cartridge, and a variety of 8-bit Acorn expansions. We’ve added ROM dumps for a lot of synthesisers in this release, and while most of them are not working yet, they’re there to tinker with if you’re interested.

As always, you can read about all the updates in the whatsnew.txt file, or get the source and 64-bit Windows binary packages from the download page.