FAQ:Development

From MAMEDEV Wiki

Return to the main Frequently Asked Questions page.

Can I contribute anything to the MAME project?

Please see the Contributing to MAME page.

What was MAME programmed in? May I have the source code?

MAME is programmed in portable, modular and mostly readable C/C++ code. The source is always freely available — the license requires this — and you can compile your own version to suit your needs with minimal hassle. The Windows version is currently compiled using MinGW, a minimalist port of the GNU C/C++ Compiler to Windows. Please see the Development Tools page for more details.

Please note that although the source can be modified, it is requested that you read and understand the About MAME page, which lists some minimal guidelines for derivative builds.

Hey, emulate this game!

Please keep in mind that MAME is the work of hundreds of volunteers. These volunteers dedicate many many hours of their lives to working on the project, and they do so because they are doing something they really enjoy. One of the big reasons working on MAME is enjoyable is because it is not a job, and nobody is telling anyone else what to do or what to work on. In fact, attempting to tell the MAME developers what to do often makes working on that game much less appealing, because it starts to feel like a job.

Because MAME has been around for over 10 years, almost all of the easy work is complete. Most everything that remains unemulated is due to some very difficult issues. If your favorite game is not yet emulated, the best thing you can do is sit back and wait. Nagging, complaining, or otherwise asking what is happening is not going to make emulation happen any faster, and may in fact hinder further progress.

If you do have technical information that can help the MAME team emulate a certain game, it is best to set up a web page with the information. Technical information would include things like schematics, detailed technical info about the hardware that particular game runs on, info about custom or protection chips, video hardware, sound hardware, etc. Contributing this kind of information might be useful to the MAME team. ROMs alone and begging the team are not useful in terms of getting a game emulated, but useful tech information may sometimes spark developer interest in that particular game. However, since the developers are volunteers, there is no guarantee that a specific game will be emulated even with this approach but again this "research" approach might improve your chances, too.

I found a bug, what do I do?

First of all, make sure you are using the latest official version of MAME. Bugs get fixed all the time, so you shouldn't be wasting time with an older version. Also, unofficial versions of MAME may introduce new bugs that the MAME team really does not want to hear about.

If you are using the latest official version, chances are good that other people have already experienced it and reported it. You can check this at the excellent MAME Testers site. MAME Testers has a message board (accessible from their site) where you can post your newly discovered bug if it's still unknown. MAME developers constantly go there to get bug reports and announce fixes. Also, try to gather as much information as you can about the bug.

Why don't the devs fix old games instead of adding new ones?

Simple. Adding new games is both relatively easy and relatively interesting. Sometimes, as soon as a dump becomes available, all one has to do is add the game info and ROM names to the proper drivers, recompile, and the game works perfectly. By contrast, fixing the existing games is usually both tedious and difficult. Often this requires that the dev play the game through to the point where the bug occurs, then step through the disassembled machine code line by line. Repeatedly. Ad nauseam. Once the error is understood, the dev has to write good, clean code that will correct the problem without breaking anything else on any of the hardware platforms that MAME runs on (which is often harder than you'd think).

If you want a bug in your favorite game to be fixed, report it at MAME Testers and try to characterize it as specifically and with as much relevant detail as you can.