MAME

旨在重現許多街機遊戲系統的硬件的仿真軟件

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

MAME
MAME 主菜单 (0.209 标准)
MAME 主菜单 (0.209 标准)
开发者Nicola Salmoria 与 MAME 团队
首次发布1997年2月5日,​27年前​(1997-02-05
当前版本
  • 0.271(2024年10月31日;稳定版本)[1]
编辑维基数据链接
源代码库 编辑维基数据链接
编程语言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派生版本。

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 licenseGNU GPL v2+,成为真正的自由软件

工作原理

MAME 由多个组件组成,包含:中央处理器模拟器,用以模拟各种街机中的 CPU 设备;输入系统模拟,用以模拟各种街机输入设备,例如按钮、摇杆、光线枪和其他控制器的输入系统;街机显示和声音的模拟器。MAME 唯一不包含的是 ROM 映像,也就是原始街机游戏中的软件。在 MAME 运行时,就如同多年前的原本游戏在运行,只不过是在不同的设备上,以模拟原始设备的方式运行罢了。

ROM 的定义

在大多数的街机中,游戏资料(包含了执行的程序、图形及音效等)都是存储于游戏机板上的只读存储器Read-Only Memory)芯片里(因此这些资料被简称为 ROM),当然也有采用其他存储介质的,像是卡匣磁片硬盘光盘镭射光盘等。将存储于其中的游戏资料读出后存储成为一般电脑使用的文件格式,这个过程称为转储或吸出(dumping)。因为大多数游戏资料都是存储于只读存储器,渐渐地不管这些文件原先是被存储于怎样的介质,吸出后的文件都通称为 ROM 映像档或 ROM。

在要执行某一特定的游戏时,MAME 就需要这些吸出自原始街机的整组文件,这一整组的文件称之为“ROM 集合”,但是碍于法规 MAME 不会自带这些文件。

ROM 存放形式

  1. 一般的 ROM 集合。将一个游戏中所包含的全部吸出资料后,以压缩方式存放于一个内定名称的 ZIP 格式压缩包(也可以未压缩方式存放于同名的文件夹)。
  2. CHD 的 ROM 集合。只针对游戏中包含硬盘、光盘的大型存储介质,将单一介质中的资料吸出为映像档后,再压缩为单一 CHDCompressed Hunks of Data)格式的压缩包。

ROM 集合类型

  1. 原作版游戏 ROM 集合,又称之为主版本。这些 ROM 档包含供游戏执行所需要的所有资料,但不包含 BIOS 文件。
    MAME 开发团队会订定每种游戏的原作版,通常都是挑选最新的版本当成原作版,如果有多种区域版本的话,则通常挑选世界版或是美国版。
  2. 仿制版游戏 ROM 集合,又称之为子版本。与原作版本有差异的版本,或是变体版(例如 Street Fighter II TurboStreet Fighter II Champion Edition 的变体版)。包含有:替换版 (alternate)、盗版 (bootleg)、黑客版 (hack)、解密版 (decrypted)、派生版 (derivative)、开发版 (prototype)、复制版、兼容版、授权版、变体版、新旧版、各种区域版、各种语言版等。
    通常会被归类为仿制版和原作版此两者相依性关系的游戏,主要原因在于这些游戏的 ROM 结构有雷同的内容,所以便将其中之一个归类为该另一个游戏的子版本。仿制版的游戏一定会有一个原作版,原作版游戏却不一定带有仿制版、而有些原作版游戏还带有一个以上的仿制版。
  3. BIOS 的 ROM 集合,这是通用于标准化的街机系统(例如 NeoGeo),主要用于启动硬件,然后交由游戏软件接管系统。

ROM 获取管道

  1. 如果拥有实际的街机游戏基版及 EPROM 吸出工具,可自行读出这些 ROM 文件。
  2. 部分像是 CapcomAtari 公司提供自家已淘汰的老旧街机游戏 ROM 贩卖服务,采个别贩售或是包含于其他产品中。
  3. 还有一些 ROM 集合因为游戏的著作权持有人开放了在非商业行为下的自由散布权利,这些集合可以在 MAME 网站页面存档备份,存于互联网档案馆)上获取(例如 Robby Roto)。

外部链接

官方网站

派生版本

相关资料

引用资料

  1. ^ https://www.mamedev.org/.
  2. ^ 存档副本. [2011-06-26]. (原始内容存档于2013-02-20). 
  3. ^ MAME | Multiple Arcade Machine Emulator. Mamedev.org. 2011-04-05 [2011-04-11]. (原始内容存档于2018-10-05).