mamedev/mame

GitHub: mamedev/mame

MAME 是一个以保存和验证历史软件为核心的多功能仿真框架。

Stars: 10088 | Forks: 2358

# MAME ## 什么是 MAME? MAME 是一个多功能仿真框架。 MAME 的目的是保存数十年的软件历史。随着电子技术不断向前发展,MAME 防止这些重要的“复古”软件丢失和被遗忘。这是通过记录硬件及其功能来实现的。MAME 的源代码就是这些文档。软件能够运行这一事实,主要用于验证文档的准确性(否则你如何证明你已忠实地重现了硬件?)。随着时间的推移,MAME(最初代表 Multiple Arcade Machine Emulator)吸收了姊妹项目 MESS(Multi Emulator Super System),因此 MAME 现在除了最初重点关注的街机游戏外,还记录了大量(大多是复古的)计算机、游戏主机和计算器。 ## 在哪里可以了解更多? * [官方 MAME 开发团队网站](https://www.mamedev.org/)(包含二进制下载、维基、论坛等) * [MAME 测试者](https://mametesters.org/)(MAME 的官方错误跟踪系统) ## 开发 ![Alt](https://repobeats.axiom.co/api/embed/8461d8ae4630322dafc736fc25782de214b49630.svg "Repobeats analytics image") ### CI 状态与代码扫描 [![CI (Linux)](https://github.com/mamedev/mame/workflows/CI%20(Linux)/badge.svg)](https://github.com/mamedev/mame/actions/workflows/ci-linux.yml) [![CI (Windows)](https://github.com/mamedev/mame/workflows/CI%20(Windows)/badge.svg)](https://github.com/mamedev/mame/actions/workflows/ci-windows.yml) [![CI (macOS)](https://github.com/mamedev/mame/workflows/CI%20(macOS)/badge.svg)](https://github.com/mamedev/mame/actions/workflows/ci-macos.yml) [![编译 UI 翻译](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4dee1f2b55105439.svg)](https://github.com/mamedev/mame/actions/workflows/language.yml) [![构建文档](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ab552df9e9105440.svg)](https://github.com/mamedev/mame/actions/workflows/docs.yml) [![Coverity 扫描状态](https://scan.coverity.com/projects/5727/badge.svg?flat=1)](https://scan.coverity.com/projects/mame-emulator) ### 如何编译? 如果你使用的是类 UNIX 系统(包括 Linux 和 macOS),操作可能非常简单,只需输入 ``` make ``` 即可完整编译, ``` make SUBTARGET=tiny ``` 即可编译包含一小部分支持系统的版本。 请参阅我们文档网站上的 [编译 MAME](http://docs.mamedev.org/initialsetup/compilingmame.html) 页面以获取更多信息,包括 macOS 和主流 Linux 发行版的先决条件。 对于较新版本的 macOS,你需要安装 [Xcode](https://developer.apple.com/xcode/) 包含命令行工具以及 [SDL 2.0](https://github.com/libsdl-org/SDL/releases/latest)。 对于 Windows 用户,我们提供了一个基于 MinGW-w64 的现成 [构建环境](http://www.mamedev.org/tools/)。 也可以使用 Visual Studio 进行构建,但你仍然需要一个基于 MinGW-w64 的 [构建环境](http://www.mamedev.org/tools/)。 为了生成解决方案和项目文件,只需运行: ``` make vs2022 ``` 或者使用以下命令直接使用 msbuild 构建: ``` make vs2022 MSBUILD=1 ``` ### 编码规范 MAME 源代码应使用编辑器设置为使用四个空格作为制表符来查看和编辑。制表符用于行首缩进,每个缩进级别使用一个制表符。其他对齐使用空格。 部分代码遵循 [Allman 风格](https://en.wikipedia.org/wiki/Indent_style#Allman_style);部分代码遵循 [K&R 风格](https://en.wikipedia.org/wiki/Indent_style#K.26R_style)——主要取决于编写原始版本的人。**最重要的是,修改时要保持一致,并尽量减少对现有源代码的空格更改**。对于新代码,多数人更偏好 Allman 风格,因此如果你不太在意,请使用这种风格。 所有贡献者需要要么为许可证信息添加标准头部(针对新文件),要么告知我们他们希望其代码在以下许可证之一下发布:[BSD-3-Clause](http://opensource.org/licenses/BSD-3-Clause) 许可证、[LGPL-2.1](http://opensource.org/licenses/LGPL-2.1) 或 [GPL-2.0](http://opensource.org/licenses/GPL-2.0)。 请参阅我们文档网站上的更多具体 [C++ 编码指南](https://docs.mamedev.org/contributing/cxx.html)。 ## 许可证 MAME 整体在以下条款下提供: [GNU 通用公共许可证,第 2 版](http://opensource.org/licenses/GPL-2.0) 或更新版本(GPL-2.0+),因为它包含了在多种 GPL 兼容许可证下提供的代码。绝大多数源文件(超过 90% 包括核心文件)在 [3 条款 BSD 许可证](http://opensource.org/licenses/BSD-3-Clause) 下提供,我们 鼓励新贡献者以 [本许可证](COPYING) 条款提交贡献。 请注意,MAME 是 Gregory Ember 的注册商标,使用“MAME”名称、标志或标识需要获得许可。 ``` Copyright (c) 1997-2026 MAMEdev and contributors This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2, as provided in docs/legal/GPL-2.0. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ``` 请参阅 [COPYING](COPYING) 获取更多细节。
标签:Aarch64, C++, Chaos, CI 构建, MAME, ROM 加载, 可移植性, 图形渲染, 声音仿真, 复古游戏, 多平台仿真, 开源仿真器, 数据擦除, 模拟器核心, 游戏仿真, 电子游戏历史, 硬件仿真, 街机模拟器, 跨平台开发, 软件保存, 输入模拟