MAME

MAME（Multiple Arcade Machine Emulator，多重大型电玩模拟器）是一套设计给个人电脑使用的软件应用程序，其目标在于尽可能的忠实且精确地模拟许多街机游戏，宗旨在于保存游戏的历史，并防止古老的游戏被遗失或遗忘。

## 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负责管理与发布。

### 中间更新

MAME 除了正式发行的版本之外，在开发团队官方网站尚有阶段性的发布中间更新，这是介于现时官方正式版和未来正式版之间的最新更新。中间更新是以源代码差异部分的补缀文件形式发布，并未提供可执行的档案，使用者必须自行编译成执行档才能使用，或是使用同版号的MAME衍生版本。

## MAME 宣告

<image>

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），主要用于启动硬件，然后交由游戏软件接管系统。

### ROM 取得管道

- 如果拥有实际的街机游戏基版及 EPROM 吸出工具，可自行读出这些 ROM 档案。
- 部分像是 Capcom 及 Atari 公司提供自家已淘汰的老旧街机游戏 ROM 贩卖服务，采个别贩售或是包含于其他产品中。
- 还有一些 ROM 集合因为游戏的版权持有人开放了在非商业行为下的自由散布权利，这些集合可以在 MAME 网站 上取得（例如 Robby Roto）。

## 外部链接

### 官方网站

- MAME 开发团队官方网站 - 提供 Windows 命令列版本和中间更新
- SDLMAME 官方源代码 - 官方提供的 SDLMAME 源代码，采用 SDL 跨平台多媒体函式库
- MAME 开发团队维基网站 - 提供给开发人员各种相关资讯

### 衍生版本

- MAMEUI 官方网站 - Windows 图形使用界面的官方授权改版
- MAME Plus! - Windows 图形使用界面的多国语言版本
- XMAME - Unix-like 版本
- MacMAME - Mac OS（麦金塔）版本
- BeMAME - BeOS 版本
- MAME/MESS for Mac OS X - 64-bit Intel - macOS版本

### 相关资料

- Mame History.dat - 记录各个游戏的历史资料
- Mameinfo.dat - 记录各个驱动的模拟进度
- MAME 游戏的非官方译名对照： Za-Zz

## 基本资料

- 开发者：Nicola Salmoria 与 MAME 团队
- 发行日期：1997年2月5日
- 编程语言：C++语言
- 操作系统：跨平台
- 类型：模拟器
- 许可协议：BSD license, GNU GPL v2 or later
- 网站： mamedev.org