A multi-purpose emulation framework for preserving vintage software history by documenting and emulating arcade games, computers, and consoles.
MAME is a multi-purpose emulation framework originally known as Multiple Arcade Machine Emulator. It preserves decades of software history by documenting hardware and enabling accurate emulation of vintage arcade games, computers, and consoles. The project treats usable emulation as validation for its primary goal: creating precise hardware documentation to prevent historical software from being forgotten.
Developers, historians, and enthusiasts interested in software preservation, retro computing, and accurate emulation of vintage hardware systems.
Developers choose MAME for its unparalleled focus on preservation accuracy, extensive multi-system support, and open-source documentation that serves as a historical record. Its validation-through-emulation approach ensures hardware is faithfully recreated.
MAME
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Emulates arcade games, vintage computers, consoles, and calculators in a single framework, as highlighted in the project description, making it a comprehensive tool for historical software.
Source code serves as detailed hardware documentation, with usable emulation validating accuracy, per the preservation-first philosophy stated in the README.
CI status shows compatibility with Linux, Windows, and macOS, and compilation instructions are provided for each, ensuring broad accessibility.
Allows building subsets like 'tiny' builds for specific systems, enabling customized emulation setups as mentioned in the compilation guide.
Supported by official sites, forums, and contributors, with active development shown in the README through community links and CI badges.
Compilation requires specific tools like MinGW-w64 for Windows and Xcode with SDL for macOS, making it non-trivial for beginners, as detailed in the README.
Admits to mixing Allman and K&R coding styles in the source code, which can hinder readability and maintainability for contributors.
Key documentation is externalized to mamedev.org and forums, rather than being integrated into the repository, potentially complicating access and updates.
Preservation focus may lead to higher resource usage and slower emulation compared to optimised alternatives, as accuracy is prioritised over speed.