Fork me on GitHub

Welcome to The Official Site of the MAME Development Team

What is MAME

MAME originally stood for Multiple Arcade Machine Emulator.

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 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.


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.

MAME 0.179

26 Oct 2016

Are you getting fidgety waiting for Halloween to arrive? Well now you can take your mind off the wait by giving the brand-new MAME release a spin! We've changed the release slightly this month: the whatsnew file is formatted differently, the 32-bit Windows binary package has "32bit" in its filename, and we're no longer providing a pre-built debug binary package for Windows. We've dropped the debug binaries as they don't seem to have a target demographic. All builds include the MAME debugger. The release packages are built with symbols that will give a meaningful stack trace. The debug build was still optimised, so stack traces were no more precise. The main difference is that debug builds have assertions enabled which is mainly useful if you're working on the source. In short, we don't see a use case where someone would be better off with the debug build if they aren't compiling MAME themselves anyway.

With that out of the way, what surprises does MAME have in store for you all this month? We're pretty confident that we have something for everyone! First of all, we're proud to present the Soviet arcade game Istrebiteli ("Fighters", as in aircraft). We've also emulated Ocean to Ocean, an early video slots game on the DECO Cassette system. ShouTime has worked his magic again, allowing the masses to see the rare Alpha Denshi title Splendor Blast II. But possibly most interesting is preliminary emulation of the Magnet arcade system, a prototype floppy disk-based system from Spain.

We've also added a number of non-arcade systems. There's the Gakken Game Robot 9 handheld game, and several Fidelity chess systems. Getting away from games altogether, we've added a working driver for a VeriFone Trans payment terminal. There have been some substantial updates to the software lists, too. The Sega CD software list has been completely updated to use the latest and best dumps known to exist, we've replaced a number of pirate Apple II disk images with clean cracks, there are some notable additions to the Sharp X68000 floppy list, and even an obscene Pokémon hack for Game Boy that's being sold in China.

As always, there isn't enough space to cover everything here, so so why not check out the whatsnew.txt file, or head straight for the download page and try it out.

Micko at CppCon 2016

29 Sep 2016

On Thursday last week, our very own Miodrag “Micko” Milanović gave a presentation at CppCon 2016. He covered the project’s history, goals, and current direction, before talking about some of the technologies we use and our experiences modernising the codebase. It’s a bit over an hour long, and not overly technical. The slides are available on github.

MAME 0.178

28 Sep 2016

The end of the month is almost here, and it's time to unwrap another shiny MAME release. This time around we've had the pleasure of seeing Angelo Salese show us all that he's a bug-fixing machine, resolving many long-standing bugs in playable games (including graphical glitches in Combat School, and issues with slopes in Sunset Riders). Highlights from newly emulated machines include the Esselte 100 classroom computer from Sweden (thanks Edstrom), Slap Shooter (courtesy of ShouTime and the Dumping Union), the French version of the Apple //e Enhanced, the original Japanese version of Street Fighter with pneumatic buttons (thanks ShouTime), and the original version of Nintendo's Popeye on Sky Skipper hardware (yet another gem from ShouTime).

On the gambling front, we have another batch of layouts from John Parker, clickable button lamps for more machines from einstein95, and improved inputs/output for a number of games from AJR. Speaking of inputs and outputs, Risugami added/improved outputs and layouts for a number of Midway games.

This release includes preliminary support for persistent controller ID mappings from Tomer Verona. This may help if you're having issues with Xbox controllers appearing in a different order when you relaunch MAME. If you're interested, check out the documentation and see if it helps. It's still not particularly easy to use, but it's ready for testing and improvement and may be useful, particularly for people with wireless controllers.

Other notable improvements include working envelope and LFSR emulation for Mega Duck, better emulation of MCU communication for Taito Super Qix hardware, support for multiple BBC Micro floppy drive controllers, restoring the ability to have MAME accept incoming socket connections to communicate with an emulated serial port, and more features for the UI graphics viewer.

MAME 0.178 also adds software list updates with the latest prototype cartridge dumps, numerous bootlegs and alternate versions of supported games, and steady progress on non-working systems like the CMI IIx and LSI Octopus. For details, see the whatsnew.txt file, or go right ahead and grab the binaries/source from the download page.

MAME 0.177

31 Aug 2016

Today marks the end of the southern winter/northern summer, and time for the hotly anticipated August MAME release. Possibly most importantly, we've fixed the issues that were causing menus to display off the edge of the screen on Windows (MT06335). We've integrated a fix for Aimtrack Dual Lightguns on windows from new contributor Pitou, and the behaviour of XAudio2 sound output should be much improved when adjusting game speed to match monitor refresh rate. Mouse behaviour on SDL builds (Linux/Mac) is also improved. Thanks very much to all the users who reported issues and helped out testing fixes.

We have lots of newly working computer systems to show off: Xerox Alto-II, TeleNova Compis (a 16-bit educational computer from Sweden), Victor 9000, Wang Professional Computer (DOS-based but not IBM compatible), Atari Portfolio (of Terminator 2 fame), and Vector-06C (a mass-produced Soviet home computer). Newly working games include Namco Techno Drive, the original Japanese release of Orca's River Patrol, Korean puzzle game Intergirl, and gambling game Magical Butterfly. Speaking of gambling games, this release is a huge update for BFM, JPM and Maygay fruit machines. John Parker has created a tool that converts MFME layouts to MAME layouts and contributed layouts for hundreds of games. This should make it far easier and more rewarding to work on these drivers.

MAME now includes a driver for a VGM music file player virtual machine (VGM is a popular video game music file format). This feature is primarily intended as a way for developers to test sound cores and do A/B comparisons, as it's a lot easier to just load a VGM test case than to play a game until it uses the sound chip feature you want to test, but it's also a convenient way to enjoy a wide variety of video game music. You can try it out by running mame vgmplay -bitb file.vgm or choosing "VGM player" from the list of systems and loading a VGM file in the appropriate media slot through the internal file manager.

The generic serial terminal and keyboard devices have been greatly improved. This should make computers controlled via serial port far more usable. (Keyboard layout, key repeat, simultaneous keypresses, local echo, auto CR/LF and audible bell have all been improved and/or made configurable.)

There are a number of improvements for MAME developers and contributors. We now allow Unicode characters in C++ and Lua source comments. This can make documentation clearer when referring to original machine labels. Source files must be encoded in UTF-8 with no initial byte order mark. Non-ASCII characters are allowed in comments, but not in most other parts of source files. Source and comments must still be written in English. We've improved build times a little, and migrated a lot of MAME-specific constructs to standard C++14 library features. A number of MAME APIs have been streamlined and modernised. The palette viewer now shows some details about the colour swatch under the mouse pointer (press F4 during gameplay to show, this may be interesting to regular users as well).

Of course, this release also comes with more alternate versions of games supported (including The NewZealand Story, Metamorphic Force, Super Hang-On, Terminator 2, Golden Tee '98, Gulf Storm, and Teenage Mutant Ninja Turtles), and other fixes and improvements for machines already emulated by MAME (including Midway V-Unit outputs/layouts from Risugami and input/output improvements for gambling/medal games from AJR). For a more complete list of changes, see the whatsnew.txt file. As always, you can get MAME 0.177 binaries and source at the download page.

MAME 0.176

27 Jul 2016

It's the last Wednesday of the month, and time for another MAME release. We'd like to thank the Debian team for their help during this development cycle: they've provided patches allowing MAME to build cleanly on several more platforms, and arranged access to IBM-sponsored POWER8 machines so we could improve our PowerPC support.

The popular crt-geom and crt-geom-deluxe shaders have been ported to BGFX and are now distributed with MAME, thanks to cgwg. The BGFX versions of these shaders allow live adjustment of effect parameters through the slider controls menu.

Interesting newly supported games include rare Soviet arcade games Gorodki and Kot Rybolov, gambling mahjong game Swing Gal, and alternate versions of Beastie Feastie and Raiden Fighters 2. Graphical issues have been fixed in Seibu Kaihatsu's Denjin Makai, Godzilla, Legionnaire and Zero Team, and there are some improvements to the Tandy CoCo 3 palette. A few remaining gameplay issues in Taito's Operation Wolf were resolved.

Thanks to a huge group effort involving some of our highly valued external contributors as well some MAME team members, we've got some visible progress on the Sun SPARCstation drivers. The SPARCstation IPC (sun4_40 driver) now passes its self-tests and allows you to use the OpenBoot interactive Forth interpreter at the ok prompt. Note that there are still issues with SCSI emulation, so it won't boot from and emulated hard disk or CD-ROM. In other news for emulation of professional systems, MAME now supports the TeleVideo 990 and 995-65 terminals.

For people using CRT monitors and/or running games at native resolution, we've added a lot of characters to the uismall.bdf font supplied with MAME. It now covers most European languages using Latin and Cyrillic scripts, as well as modern Greek and half-width katakana. Changes were also made to improve legibility.

For developers, scrolling and hilighting in the state (registers) view have been fixed, and viewing memory in the debugger no longer causes spurious side effects like bank switches in systems like the Apple II and Osborne 1. There's also been a lot of refactoring and modernisation, particularly in the netlist and UI code.

If you would like to see a more complete list of changes, check the whatsnew.txt file located here. As always, you can get MAME 0.176 binaries at the download page.

MAMEdev's Online Presence

30 Jun 2016

This is an informational post concerning MAMEdev's increasing community and social media presence.

== FORUMS ==
For a decade now (since June of 2007), MAME has not had an official forum dedicated to the project and its community. There are some boards moderated by MAME developers at covering focusing on the former sister project MESS, and the former derivative build SDLMAME (both of which have since been integrated into MAME). Both boards are still active, as they have been for a very long time, but they were never really MAME's "project home". Of course, we cannot forget the MAMEWorld forums where the frequent MAMEdev presence has given some users the impression that it was MAMEdev's official forum, while in truth it never was.

Long story short, we have been quietly running a forum which has been open to the public for a few months now. You can now visit and sign up for an account at MAMEDEV Forums. Please note that all new accounts must be approved and activated by an administrator, which currently takes hours or days, so don't panic when you find you can't post immediately after registering. Secure your handle now!

== IRC ==
In case you missed the the announcement we made alongside the release of MAME 0.173, MAMEdev now has official presence now on IRC. In the past, many MAME developers could be found on the EFnet channel inherited from the former sister project MESS. As we've switched to a completely Free and Open Source license, freenode is a natural home for the MAME community. The freenode network has been supporting Free and Open Source communities since the late 1990s, so we're in good company there. Freenode provides features like IPv6, SSL transport, nickname registration and SASL login, cloaking and channel services. Unlike EFnet, freenode isn't arbitrarily blocking large ranges of European IP addresses, and isn't as prone to netsplits.

Most IRC clients come pre-configured for the freenode network. If you're manually configuring your IRC client, the server is on port 6667, or port 6697 with SSL. Freenode also provides a web-based interface to their IRC network if you want to chat without installing a dedicated IRC client application.

We have two public IRC channels: #mame for general discussion with the MAME developers and community, and #mame-dev which focuses on discussion related directly to MAME development. Both channels are open to anyone interested, but #mame-dev requires you to register on freenode and authenticate with SASL or NickServ, help at this LINK. MAME developers frequent both channels, and with our global reach, you'll likely find at least one of us online at any time of day or night.

MAMEdev also has a few other official communication channels including:
* Twitter
* Facebook
* Imgur
* Instagram

We encourage anyone who follows the project or would like to get more information to subscribe or follow us on one or more of these channels.

MAME 0.175

29 Jun 2016

Get ready for your vacation and grab MAME 0.175!

We're proud to say MAME now supports a number of previously unemulated prototypes, alternate versions of games, and unusual systems. Prototypes include the super-rare Konami Kyuukoukabakugekitai, Home Data's Mahjong Joshi Pro-wres Give Up 5 Byou Mae, and an early Japanese version of E.D.F.: Earth Defense Force. Atari Moto Frenzy, previously lacking protection emulation, is now fully playable. We've also added a number of gambling games, including some Flaming 7's variants.

Many more Game Boy peripherals are now supported, including real-time clocks, light sensors and tilt sensors. This makes several previously unsupported games fully playable.

This release includes improvements to the Sega Master System and SG-1000 emulation, including better SG-1000 expansion slot support, and drivers with correct clock speeds for South American Master System variants.

There's some big news in Sun emulation: all sun3 models will now POST, MAME has a SPARCv7 CPU core, and there has been substantial progress towards emulating the SPARCstation 1 (sun4c). Using unidasm (built with TOOLS=1) you can disassemble SPARCv7 SPARCv7 or SPARCv9 code, incuding all VIS variants up to VIS-3B.

As usual, there are many emulation improvements, including fixes for keyboard controls in some TRS-80 games, and better Seibu COP emulation in Legionnaire, Heated Barrel and Godzilla.

In less visible changes, MAME's memory system got a nice cleanup exposing a number of existing issues which are now fixed, and the netlist-based discrete circuit simulation code has had a major overhaul with lots of performance improvements. There are a number of improvements to MAME's debugger modules in this release, particularly the imgui-based debugger.

If you would like to see a more complete list of changes, check the whatsnew.txt file located here. As always, you can get MAME 0.175 binaries at the download page.