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.


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.

About the Code Cleanup

05 May 2005

For the MAME 0.96 release, I added a step to the build process which runs a little tool over all the source code to ensure some consistency. A lot of people are freaking out about this in ways that are really unwarranted. You have to keep in mind that code is submitted from many people running on various platforms, and certain things like line-endings are not necessarily consistent between platforms.

For example, the file drivers/laserbas.c has had screwed up line endings for who knows how long. Diff is not the most robust tool when creating diffs against files with inconsistent line endings. When I tried to create a diff against this particular file, diff freaked, and I had to hand-modify the final patch to make it work. This was the impetus to writing the tool.

Since there seems to be a lot of paranoia about what this tool does, let me make it 100% perfectly clear. The tool does three things and only three things:

1. It makes sure all line endings are DOS/Windows standard CR/LF.
2. It removes any extra spaces/tabs at the end of each source line.
3. It converts tabs to spaces (assumes 4-character tabs) within comments. It leaves all other tabs alone.

That's it. The tool is also smart enough not to touch the file if nothing needs to be changed so that the datestamps remain consistent.

Since all the files in MAME 0.96 were updated with this tool, they will all pass unscathed when I run it before releasing 0.96u1. Which means this is really the only time you will see a significant number of changes resulting from the use of the tool. Going forward into the future, you probably won't even notice.

MAME 0.96 Released

03 May 2005

The latest version of MAME is now 0.96. I won't have time to update the official releases page until later this evening, but if you use your incredible powers of induction, you can guess what the URL of the source most likely is. Updates to should happen soon as well.

And hey, look, it appears that a MAME32 build is already available. :-)

MAME 0.95u6

25 Apr 2005

Another update is now available on the Latest Releases page.

MAME 0.95u5

21 Apr 2005

A quick release of MAME 0.95u5 has been placed on the Latest Releases page. This fixes the input problems with u4.


21 Apr 2005

Early reports on 0.95u4 seem to indicate that it doesn't let you type "OK" at the various intro screens. It works fine if you disable the disclaimer and game info screens and don't play games with any warnings. Turns out that's what I did to test it anyway. ;-)

Look for a u5 later this evening (PDT) to fix it!

0.95u4 is ready

21 Apr 2005

Grab it from the Latest Releases page.

Submitting Updates

19 Apr 2005

If you're not on the mamedev mailing list and wish to submit changes for consideration, I've created a new address that you can send them to. Just address them to, replacing thenameofthissite with, well, the name of this site. :-)