MAME
定义
MAME 是一套面向多类电子设备的模拟器框架,其名称最初是 Multiple Arcade Machine Emulator 的缩写,中文可译作「多机种街机模拟器」[4][2]。它并不直接提供游戏内容,而是依照原有机器的硬件结构重建其运行环境,再配合用户自行准备的只读存储器镜像、光盘或硬盘镜像,使未经改动的原始软件按设计方式运行[4]。在项目的定位中,模拟结果可被实际使用,主要作用是检验硬件复原是否准确,而非以娱乐为唯一目的[4]。
从覆盖范围看,MAME 起初只针对街机,如今官方文档记载支持的系统超过 3.2 万种,时间跨度约半个世纪[3]。这些系统包括街机基板、早期个人电脑、家用游戏主机、掌机、棋类计算机、计算器以及博彩机等[4]。MAME 以 C++ 编写,采用自由软件方式发布,整体遵循 GNU 通用公共许可证第 2 版及以后版本,核心部分同时可按三条款 BSD 许可证使用[4][3]。
原理
MAME 采用模块化结构:中央处理单元、声音芯片、图像处理芯片、输入输出控制器等部件各自对应独立的模拟模块,一款机器则通过驱动程序描述自己由哪些部件构成、部件之间如何连接[5]。在运行时,MAME 按原硬件的时钟节拍推进各芯片的执行周期,并把总线读写、中断与显存访问映射到相应模块,从而复现街机基板的时序行为,而非逐帧搬运画面或录音[4]。这种以硬件为单位、而非以游戏为单位的做法,使未修改的原始程序代码得以在模拟环境中自行完成初始化与运行[2]。
与之配套的是镜像文件机制。街机软件通常存放于只读存储芯片中,MAME 读取这些芯片的转储镜像以及必要的磁盘、光盘镜像,再由各模块合成画面与声音输出。镜像文件与模拟器分开分发,程序本身不包含任何原始软件片段,这也是项目方强调其未侵犯原有系统版权与专利的原因[4]。为兼顾准确性与性能,MAME 对部分系统提供不同的模拟精度选项,并借助图形硬件的着色器复现阴极射线管显示器的扫描线与荧光效果,此类效果在高分辨率下对显卡负载较大[3]。
官方文档还指出,模拟精度与运行速度之间存在取舍:较新的版本通常更准确,但对处理器性能要求更高;即使在最快的计算机上,仍有部分系统无法全速运行[3]。MAME 本身以 64 位 Windows 为主要开发平台,要求 x86-64 或 Armv8.2-A 级别的处理器、4 GB 内存,并支持 Direct3D 或 OpenGL 图形接口,源码也可在 Linux、FreeBSD 与 macOS 上编译[3]。
发展历程
MAME 的前身是开发者尼古拉·萨尔莫里亚为单个街机硬件编写的若干独立模拟程序,其中较早的一个名为 MultiPac,用于在个人电脑上运行《吃豆人》[1][6]。1996 年 12 月,他开始把这些程序整合到统一框架之下,1997 年 2 月 5 日发布 MAME 0.1,首批支持《吃豆人》《企鹅先生》等少量游戏[1]。早期版本运行于 MS-DOS 及 Windows 的命令行环境[1]。
此后项目逐步开放给志愿者协作。开发者克里斯·基尔姆塞基于 MAME 源码制作了图形界面的 Windows 版本 MAME32,降低了使用门槛,至 2002 年前后参与编写模拟器的开发者约有 100 人[7]。项目的协调工作长期由个人承担,先后包括萨尔莫里亚、米尔科·布丰尼、戴维·海伍德、亚伦·贾尔斯、安杰洛·萨莱塞与米奥德拉格·米兰诺维奇;2016 年 5 月起改为由 5 人组成的民选委员会统筹开发[2]。萨尔莫里亚在 2009 年的一次贡献之后逐渐退出项目[1]。
与街机并行的姊妹项目 MESS 借用 MAME 框架模拟家用与商用计算机、游戏主机等设备[4][2]。2012 年 8 月,两个项目的源码树合并并统一发布节奏;2015 年 5 月,原属 MESS 的功能正式并入 MAME[2]。另一项目 AGEMAME 负责的街机博彩机支持也被吸收进来[4]。2017 年项目二十周年时,官方统计已记录超过 3 万种系统,其中可实际运行者超过 1 万种[2]。版本发布延续按月更新的惯例,例如 2026 年 1 月至 3 月先后发布 0.285、0.286 与 0.287 版,新增对 SDL3 的支持并改进多款基板的图形与声音模拟[8]。
应用
MAME 最直接的用途是让已经停产或难以维护的街机与老式计算机软件在现代个人电脑上重新运行,使用者通过键盘、鼠标或外接街机控制器操作,并可借助画面着色模拟老式显示器的观感[3]。由于模拟对象覆盖多种机型,它也被用于搭建整合式街机柜等自制设备[9]。
在保存与研究方面,MAME 的源码本身即被视为硬件文档,可供维修老式电子设备者查阅电路行为与芯片参数[4][2]。它还被用作非官方或自制软件的测试平台,开发者可在真实硬件已经难以获得的机器上验证程序[2]。教育用途同样是项目声明的目标之一,部分机构将 MAME 的模拟能力搬上网页,通过把 C 与 C++ 代码转译为 JavaScript,在浏览器中重现早期设备[9]。
MAME 的源码开放也催生了大量衍生版本,一些地区性改版增加了中文界面、作弊码与图形前端等功能[10]。官方对使用 MAME 名称的衍生作品设有商标规则,要求取得许可,且衍生版本的版本号需对应其来源版本[4]。各大 Linux 与 BSD 发行版也把 MAME 收录为软件包,例如 Debian 与 NetBSD 的软件集合均提供可安装的版本[11]。
局限
MAME 能模拟的机型数量虽多,但被列入支持列表并不等于模拟已经完善,部分系统存在画面、声音或时序上的缺陷,启动时会出现红黄两色的警告提示[3]。官方也承认,即使在性能最强的计算机上,仍有系统无法达到全速运行[3]。追求更高准确度的新版本同时抬高了硬件门槛,旧设备用户往往需要退回旧版本,代价是精度下降与可运行机型减少[3]。
镜像文件的版权状态构成另一重限制。游戏只读存储器、光盘与硬盘镜像均受版权保护,不属于可以自由传播的「废弃软件」,未经权利人许可分发通常不合法,MAME 程序本身也不附带任何此类镜像[4]。项目方明确反对将 MAME 用于大规模侵权,不赞成销售、宣传或链接提供非法镜像的资源[4]。对开发者而言,取材本身就是障碍:原机基板难以获取、部分街机采用加密手段防止复制,模拟过于新近且仍在销售的游戏还可能引发法律问题[5]。
使用层面还存在版本兼容问题。由于镜像转储标准会随模拟精度提高而修订,在旧版 MAME 中可用的镜像未必能在新版中直接运行,用户需要按新版要求更新镜像集合[5]。此外,不同衍生版本改动程度不一,其行为与官方版本可能存在差异,涉及名称使用时还须遵守项目的商标规定[4]。
参见
参考资料
- gigazine.net 上的网页 [引用日期2026-10-29]
- MAMEdev.org | Home of The MAME Project [引用日期2026-10-29]
- An Introduction to MAME [引用日期2026-10-29]
- What is MAME¶ [引用日期2026-10-29]
- MAME - Wikipedia, la enciclopedia libre [引用日期2026-10-29]
- History in the Taking - Skip to main content [引用日期2026-10-29]
- Pac-Man's Trek From Arcade to PC [引用日期2026-10-29]
- Welcome to The Official Site of the MAME Development Team [引用日期2026-10-29]
- Conferência Web.br 2015 Vamos "re-descentralizar a Web" [引用日期2026-10-29]
- 百度百科 [引用日期2026-10-29]
- emulators/mame - The NetBSD Packages Collection [引用日期2026-10-29]