What License Is MAME Distributed Under?
Updated
MAME is distributed under the GNU General Public License, version 2 (GPL-2.0) as a whole project, because it contains code released under multiple GPL-compatible licenses. At the same time, more than 90% of its files — including core files — are under the BSD-3-Clause License, and the project encourages new contributors to distribute their files under that license. Separately from the code license, "MAME" is a registered trademark of Gregory Ember, and permission is required to use the name, logo, or wordmark.
The two licenses, side by side
The MAME codebase is not covered by a single uniform license. It is a mix, and the project describes it at two levels:
| Scope | License | What it means in practice |
|---|---|---|
| The MAME project as a whole | GPL-2.0 | Because the project aggregates code under multiple GPL-compatible licenses, the combined work is distributed under GPL-2.0. |
| A great majority of files (over 90%, including core files) | BSD-3-Clause | These individual files carry the more permissive BSD-3-Clause terms, and the project encourages new contributions to use it. |
So the answer depends on what you are asking about: the project as a distributed whole is GPL-2.0, while most individual files — including core ones — are BSD-3-Clause.
Why the project is GPL-2.0 overall
MAME's own description explains the mechanism: the 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." In other words, the whole is governed by GPL-2.0 because it combines components that are GPL-compatible, even though a large share of the individual files use the more permissive BSD-3-Clause.
This distinction matters if you are reusing code. If you take an individual file that carries BSD-3-Clause terms, those terms apply to that file. If you take the project as a whole, the GPL-2.0 terms for the combined distribution apply.
Guidance for new contributors
The site is explicit about what it prefers for new code: "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." If you are planning to submit code to MAME, BSD-3-Clause is the recommended choice.
The trademark is separate from the code license
The code license does not grant rights to the MAME name or branding. The site states that "MAME is a registered trademark of Gregory Ember, and permission is required to use the 'MAME' name, logo or wordmark." This applies regardless of which code license covers the files you are working with — a permissive code license does not carry trademark permission with it.
If your goal is to redistribute MAME, fork it, or build on its source, check the license on the specific files you use and treat the name and logo as a separate permission you must obtain. If your goal is to contribute, BSD-3-Clause is the license the project asks you to use.