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派生版本。
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),主要用于启动硬件,然后交由游戏软件接管系统。
ROM 获取管道
编辑外部链接
编辑官方网站
编辑- 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
引用资料
编辑- ^ Release 0.268. 2024年7月31日 [2024年8月22日].
- ^ 存档副本. [2011-06-26]. (原始内容存档于2013-02-20).
- ^ MAME | Multiple Arcade Machine Emulator. Mamedev.org. 2011-04-05 [2011-04-11]. (原始内容存档于2018-10-05).