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.

MAMEdev presents: Video Klein

13 Dec 2020

Thanks to the kind generosity of Wolfgang Nottebaum, managing director of Video Klein Automatenbau GmbH, we can provide ROMs for several German video poker games. The ROMs are freely available for personal use. Most of the games come from Video Klein’s popular Witch Card series. Notably, Witch Strike is one of the many games designed to comply with the letter of laws banning video poker games by eschewing playing card graphics and gambling terminology.

The ROMs are available for download from our ROMs page. All the games have internal artwork that shows the control panel button lamps. The buttons are clickable if you run MAME in windowed mode with mouse capture disabled. For games that require initial setup, instructions are provided on the download pages.

MAME 0.227 Release Delayed to December 2020

14 Nov 2020

The slipping of release dates is nothing new in software development; it can, and does, happen with some frequency, for a whole assortment of reasons. That said, with an aim towards increasing the transparency with which the MAME team operates, we have taken the unprecedented step of announcing it, and issuing a (hopefully) reasonable explanation as to why.

The simple, and non-technical, reason for this decision is that the overall stability of the codebase, after some major changes under the hood in order to rectify technical debt after the release of MAME 0.226, is not where we would like it to be. As with many projects, we have a boilerplate set of tests which are run on a regular basis. When any major change to the core codebase occurs, there is the chance for instability – for reasons which will be clear in the more technical description to follow, the change was downright guaranteed to cause issues, despite the overall benefits once these issues are rectified. The metrics that have come from those tests indicate that the rate at which we are burning through regressions is not such that we can be reasonably assured of having a stable build by the time that it is necessary to have one to maintain a monthly release cadence.

Read the rest of this entry »

MAME 0.226

28 Oct 2020

You know what day it is? It’s MAME 0.226 day! A lot has happened in this development cycle, and plenty of it is worth getting excited about! First of all, there’s a change that affects all systems with keyboard inputs, including most computers. MAME now allows you to activate and deactivate keyboard and keypad inputs per emulated device in the Keyboard Mode menu. When a system has multiple keyboards (for example a computer with a terminal connected to a serial port), you can choose which keyboard you want to type on rather than effectively typing on all the keyboards at once. If a system has multiple devices with keyboard inputs, MAME will start with only one enabled by default. Sadly, MAME doesn’t have mind-reading capabilities yet, so it may not always choose the keyboard you want to type on. If you find you can’t type on an emulated computer, check that the right keyboard is enabled in the Keyboard Mode menu.

Another batch of layout/artwork system updates are ready this month. More image formats are supported, several long-standing alignment and clipping bugs have been fixed, more parameter animation features are available, and external artwork loads faster. Lots of systems using built-in layouts look prettier, but Cosmo Gang probably shows the biggest improvement in this release (yes, the electromechanical redemption game). Try it out in MAME 0.226, and maybe do a before/after comparison to see how far we’ve come.

Apple II systems have seen some significant development this month. Firstly, a number of issues with demos using raster split effects have been fixed. The Apple II has no hardware support for raster effects, so these demos rely on open bus read behaviour to work out what the video hardware is doing. Getting this to work requires precise emulation of memory access timings. Secondly, two parallel printer cards are now working: Orange Micro’s popular Grappler+ and Apple’s Parallel Interface Card. The Grappler+ is well-supported by Apple II software and provides a better out-of-the-box experience if you want to try one of them.

Sega’s Tranquillizer Gun was a somewhat ambitious title for 1980, but was largely overlooked at the time. It’s finally fully emulated in MAME, with audio emulation and protection simulation being added in this release. We’ve also added support for Must Shoot TV, an unreleased prototype developed at Incredible Technologies. Step into the shoes of disgruntled ITS Cable employee Chuck and go on a rampage!

Far more has been added this month than we can cover in detail here, like another batch of TV games (including several Vs Maxx titles), support for Mattel Aquarius CAQ format cassette images, and working Sega Mega Play games. 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 »

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 »