MAME
MAME,全名 Multiple Arcade Machine Emulator(多重大型电玩仿真器)是一套设计给个人电脑使用的软件应用程序,其目标在于尽可能的忠实且精确地仿真许多街机游戏,宗旨在于保存游戏的历史,并防止古老的游戏被遗失或遗忘。
![]() | |
![]() MAME 主菜单 (0.209 标准) | |
开发者 | Nicola Salmoria 与 MAME 团队 |
---|---|
首次发布 | 1997年2月5日 |
当前版本 |
|
源代码库 | |
编程语言 | C++语言[2] |
操作系统 | 跨平台 |
类型 | 仿真器 |
许可协议 | BSD license, GNU GPL v2 or later |
网站 | mamedev.org |
MAME 版本
MAME 主要是由C语言写成的跨平台应用程序(从 0.137 版开始支持C++语言),有许多不同平台的衍生版本,官方只发布对应 Windows 平台的运行档。开发目前是以 Windows 平台的命令行版本为主(在 0.37b14 版之前的开发是以 MS-DOS 平台为主,现已停止发布),从 0.137 版开始提供 SDL 跨平台函数库的 SDLMAME 原代码(不提供运行档);其他非官方的衍生版有加入 Windows 图形使用接口的 MAMEUI,以及 Unix-like 系统的 XMAME、Mac OS X 系统的 MacMAME。
根据 MAME 官方网站描述,第一个公众 MAME 版本 (0.1) 是在1997年2月5日,由意大利程序员 Nicola Salmoria 发布。目前 MAME 发展至今已超过十年,官方为了纪念十周年这个里程碑,选在2007年2月5日的十周年生日推出新版本 (0.112) 以兹纪念。一直以来,除了 MAME 官方开发团队致力于程序开发之外,尚有数百名来自全世界的非官方程序员参与编写,目前此开发项目由官方开发团队内核成员 Angelo Salese[3]负责管理与发布。
MAME 声明
MAME 是一套仿真器:或多或少忠实的重现了部分业务机台的性能,但是没有软件的硬件是毫无用处的,所以必须要有 ROM 映像档配合运行,这种 ROM 档跟其它任何一种商业软件一样都具有版权,因此如果您并不拥有原始机台而去使用它们,乃是违法的行为。不言而喻,这些 ROM 档不能连同 MAME 一起散布,将 MAME 和 ROM 映像档一起散布的行为已经违反了著作权法,应该尽速向这些作者回报,以便采取适当的法律措施。
软件费用
MAME 是免费的,其原代码也是免费的,但在2016年3月更改授权许可前不允许销售。
软件授权
MAME 是公开原代码的免费软件(Freeware),虽然使用其软件及原代码完全免费,也可以重新分配,但却不允许销售,也不允许制成商业产品或是用于商业活动,故不能归类为标准的开放原代码(Open source)或自由软件(Free software),因为在某些授权条例上是有所抵触的,所有授权规范一切依照官方制定的 MAME 授权协议 (页面存档备份,存于)为准则。按照理乍得·斯托曼的说法,MAME是准自由软件(Semi-free Software)。
不过在特定情况下,无论是修改或是未修改过,且「再次散布的情形下不得被贩售,或者是被用于商业产品及活动」,MAME 即能以原代码或是运行档的形式再次散布。但另外修改过的再次散布版(衍生版本)必须包含完整的对应原代码(类似 Copyleft)。参考 MAME 授权协议 (页面存档备份,存于)。
MAME已于2015年5月开始更改其授权许可,至2016年3月止已改为使用BSD license和GNU GPL v2+,成为真正的自由软件。
工作原理
MAME 由多个组件组成,包含:中央处理器仿真器,用以仿真各种街机中的 CPU 设备;输入系统仿真,用以仿真各种街机输入设备,例如按钮、摇杆、光线枪和其他控制器的输入系统;街机显示和声音的仿真器。MAME 唯一不包含的是 ROM 映像,也就是原始街机游戏中的软件。在 MAME 运行时,就如同多年前的原本游戏在运行,只不过是在不同的设备上,以仿真原始设备的方式运行罢了。
ROM 的定义
在大多数的街机中,游戏数据(包含了运行的程序、图形及音效等)都是保存于游戏机板上的唯读内存(Read-Only Memory)芯片里(因此这些数据被简称为 ROM),当然也有采用其他保存媒介的,像是卡匣、磁片、硬盘、光盘、激光光盘等。将保存于其中的游戏数据读出后保存成为一般电脑使用的文件格式,这个过程称为转储或吸出(dumping)。因为大多数游戏数据都是保存于唯读内存,渐渐地不管这些文件原先是被保存于怎样的媒介,吸出后的文件都通称为 ROM 映像档或 ROM。
在要运行某一特定的游戏时,MAME 就需要这些吸出自原始街机的整组文件,这一整组的文件称之为「ROM 集合」,但是碍于法规 MAME 不会自带这些文件。
ROM 存放形式
- 一般的 ROM 集合。将一个游戏中所包含的全部吸出数据后,以压缩方式存放于一个内定名称的 ZIP 格式压缩档(也可以未压缩方式存放于同名的文件夹)。
- CHD 的 ROM 集合。只针对游戏中包含硬盘、光盘的大型保存媒介,将单一媒介中的数据吸出为映像档后,再压缩为单一 CHD(Compressed Hunks of Data)格式的压缩档。
ROM 集合类型
- 原作版游戏 ROM 集合,又称之为主版本。这些 ROM 档包含供游戏运行所需要的所有数据,但不包含 BIOS 文件。
MAME 开发团队会订定每种游戏的原作版,通常都是挑选最新的版本当成原作版,如果有多种区域版本的话,则通常挑选世界版或是美国版。 - 仿制版游戏 ROM 集合,又称之为子版本。与原作版本有差异的版本,或是变体版(例如 Street Fighter II Turbo 为 Street Fighter II Champion Edition 的变体版)。包含有:替换版 (alternate)、盗版 (bootleg)、黑客版 (hack)、解密版 (decrypted)、衍生版 (derivative)、开发版 (prototype)、拷贝版、兼容版、授权版、变体版、新旧版、各种区域版、各种语言版等。
通常会被归类为仿制版和原作版此两者相依性关系的游戏,主要原因在于这些游戏的 ROM 结构有雷同的内容,所以便将其中之一个归类为该另一个游戏的子版本。仿制版的游戏一定会有一个原作版,原作版游戏却不一定带有仿制版、而有些原作版游戏还带有一个以上的仿制版。 - BIOS 的 ROM 集合,这是通用于标准化的街机系统(例如 NeoGeo),主要用于启动硬件,然后交由游戏软件接管系统。
外部链接
官方网站
- MAME 开发团队官方网站 (页面存档备份,存于) - 提供 Windows 命令行版本和中间更新
- SDLMAME 官方原代码 (页面存档备份,存于) - 官方提供的 SDLMAME 原代码,采用 SDL 跨平台多媒体函数库
- MAME 开发团队维基网站 (页面存档备份,存于) - 提供给开发人员各种相关信息
衍生版本
相关数据
- Mame History.dat (页面存档备份,存于) - 记录各个游戏的历史数据
- Mameinfo.dat (页面存档备份,存于) - 记录各个驱动的仿真进度
- MAME 游戏的非官方译名对照:Za-Zz