MAME(最初是多个街机仿真器的首字母缩写词)是一种免费的开源模拟器,旨在在现代个人计算机和其他平台上在软件中重新创建街机游戏系统的硬件。[2]目的是通过防止老式游戏迷失或遗忘来保护游戏历史。 MAME的目的是引用模拟街机机的内部工作。实际玩游戏的能力被认为是“不错的副作用”。[3] Joystiq已将MAME列为每个Windows和Mac游戏玩家都应该拥有的应用程序。[4]
第一个公共MAME发布是由Nicola Salmoria于1997年2月5日由Nicola Salmoria发行的。模拟器现在支持7,000多种独特的游戏和10,000个实际的ROM图像集,尽管并非所有支持的游戏都可以玩。 Mess是许多基于MAME Core的许多视频游戏机和计算机系统的模拟器,并于2015年将其集成到MAME上。
MAME(多街机模拟器)是一种免费的开源模拟器,旨在在现代个人计算机和其他平台上在软件中重新创建街机游戏系统的硬件。 mame.net是一个基于C#的街机仿真器,它保持了MAME相同的架构。通过使用C#和功能强大的集成开发环境 - Microsoft Visual Studio,没有宏,您可以在任何地方调试支持的街机游戏。到目前为止,有一些经典董事会支持:M72,M92,CPS-1,CPS-1(QSound),CPS2,Neo Geo,Namco System 1,IGS011,PGM(Poldgame Master)。
MAME.NET按以下步骤运行:加载ROM,初始化机器,软重置机器,然后循环“ CPUEXEC_TIMESLICE”操作。 “ cpuexec_timeslice”操作是指在一个时间切片中依次执行每个CPU,并执行计时器回调。计时器回调包含:视频更新,软重置,CPU中断,声音更新,看门狗重置和其他中断。通过这些步骤,mame.net成功地模拟了街机板。 mame.net具有更多功能:保存和加载状态,记录和重播输入,作弊,骗子搜索,IPS(补丁主ROM),董事会调试器,CPU调试器。



当加载游戏的ROM时,模拟器会自动暂停。按P继续。
*有时会发生GDI+误差,并显示一个红十字会。您可以单击“文件复位图片框”以处理错误。
1历史和概述2设计2.1游戏数据3哲学和准确性4法律状态5原始MAME-LICENSE 6另见7参考8外部链接
该项目由意大利程序员Nicola Salmoria创立。 Mame将其根源追溯到一个名为Multi-Pac的较早的模拟器项目,但是随着MAME Framework中越来越多的游戏开始,该名称被更改了。第一个版本于1996年发布。[5] 1997年4月,萨尔莫里亚(Salmoria)辞去了他的国民服务承诺,将该项目的管理交给了意大利米尔科·布法尼(Mirko Buffoni),为期半年。 2003年5月,大卫·海伍德(David Haywood)接管了协调员的工作。从2005年4月到2011年4月,该项目由亚伦·吉尔斯(Aaron Giles)协调。[6]安吉洛·萨莱斯(Angelo Salese)介入了新的协调员。[7] 2012年,Miodrag Milanovic接管了。[8]该项目得到了世界各地数百名开发商和数千名外部贡献者的支持。
首先,MAME是专门针对MS-DOS开发的,但很快将移植到Unix样系统(X/MAME),Macintosh(MacMame和后来的MAME OS X)和Windows(Mame32)。自2001年5月24日以来,版本为0.37B15 [6],主要开发发生在Windows平台上,大多数其他平台都通过SDLMAME项目支持,该项目于2006年集成到主要开发源树中。[9]此外,不同版本的MAME已移植到其他计算机,游戏机,手机和PDA上,甚至在某一时刻到数码相机。[10] 2012年,Google将MAME移植到本地客户端,这使Mame可以在Chrome内部运行。[11]
妈妈的主要发行大约每月发生一次。 Windows的可执行文件中的32位和64位时尚都在开发团队的官方网站以及完整的源代码上发布。[12]每周发布较小的增量“ U”(用于更新)版本(直到版本0.149U1)作为源差异,以使开发人员之间的代码保持同步。[13] MAME源代码是在公共GitHub存储库上开发的。[14]这使那些具有所需专业知识和工具的人可以构建代码的最新版本,并以拉动请求的形式贡献增强功能。不存在历史版本数为0.32,并且包含0.38至0.52;由于Mame32变体的类似命名(此后,由于迁移到64位的构建而被更名为Mameui),而后者被跳过了,而后者的数字由于0.37 Beta周期中的众多发行版而被跳过(此后这些版本的数字在此后已在其官方MAMEDEV网站上标记为等于0.37 Beta beta beta beta beta beta beta beta extere equart office beta beta。
多年来,MAME的建筑已得到广泛的改善。在项目的前六个月中,添加了对栅格和矢量显示器以及多个CPU和声音芯片的支持。实现了一个灵活的计时器系统,以协调多个模拟CPU内核之间的同步,并且根据其存储在它们存储的ZIP文件中的CRC32 HASH开始加载ROM图像。[6] Mame率先开创了许多无证件系统体系结构的反向工程,各种CPU(例如带有新说明的M6809衍生定制konami CPU)和声音芯片(例如,Yamaha FM Sound芯片),Mame Developers以及MAME Developers已在许多主题中都具有反向工程。这些例子包括NEO GEO,CP System II,CP System III等。[需要引用]
玛梅(Mame)的受欢迎程度自以来就已经很奇怪地进入了主流,爱好者建立了自己的街机游戏柜来重温旧游戏,并且公司生产了将安装在街机中的非法衍生产品。可以通过从头开始建造机柜,也可以通过拆开和修改曾经与内部的真实硬件一起使用的真正街机游戏机柜。[16] [17]还可以购买并组装受经典街机游戏启发的橱柜(可选和MAME预装)。[18]
尽管MAME包含一个基本的用户界面,但在街机游戏柜和家庭剧院中使用MAME需要具有更高级用户界面的前端的特殊启动器应用程序。前端提供了不同程度的自定义 - 允许一个人查看橱柜的图像,游戏的历史以及有关如何玩游戏的技巧,甚至可以看到游戏玩法或吸引游戏模式的视频。
MAME中包含的信息是免费的,可以重复使用,并且众所周知,公司在现代系统上重新创建其旧经典时使用MAME。有些人甚至雇用了MAME开发人员为其旧属性创建仿真器。一个例子是Taito Legends Pack,其中包含在Mame的精选版本上可读取的ROM。[19]
自2012年以来,MAME一直由当时的Mess项目负责人MiodragMilanović维护。[8]
2015年5月27日(0.162),游戏机和计算机系统模拟器混乱与MAME集成在一起(因此,MAME的Mess用户手册仍然是MAME非阶段部分的最重要用法指令)。[20]
2015年5月,宣布,Mame的开发人员计划根据更常见的免费和开源许可重新许可该软件,远离原始MAME许可。 MAME Developer Miodrag Milanovic解释说,该更改旨在吸引该项目的更多开发人员兴趣,使游戏的制造商可以分发MAME来模仿自己的游戏,并使软件成为“为开发委员会工作的开发人员学习工具”。 MAME的许可过渡到BSD/GPL许可证于2016年3月完成。[21] [22]随着许可证的更改,MAME的大多数源代码(90%+)均可在三个条件BSD许可下获得,并且完整的项目在GNU通用公共许可证版本2或更高版本下。[21] [23]
2016年2月24日(0.171),Mame嵌入了Mewui前端(开发人员加入了团队),为MAME提供了灵活,更完整的UI。[24]
本节可能包含原始研究。请通过验证提出的索赔并添加内联引用来改进它。应删除仅由原始研究组成的陈述。 (2019年7月)(了解如何以及何时删除此模板消息)MAME Core协调了几个元素的仿真。这些元素复制了原始街机机中存在的硬件的行为。 MAME可以模仿许多不同的中央处理单元(CPU)和相关的硬件。这些元素是虚拟化的,因此MAME充当游戏原始程序之间的软件层,而平台MAME则继续进行。 MAME支持任意屏幕分辨率,刷新率和显示配置。如达里乌斯(Darius)所要求的多个模拟监视器也得到了支持。
单个街机系统由采用C预处理器宏的驱动程序指定。这些驱动程序指定要模拟的各个组件以及它们如何相互交流。尽管MAME最初是在C中编写的,但需要面向对象的编程导致开发团队开始将所有代码作为MAME 0.136的C ++编译为C ++,从而利用该语言的其他功能。
尽管绝大多数CPU仿真核心都是解释性的,但MAME还通过称为通用机器语言(UML)的中间语言支持动态重新编译,以提高仿真速度。支持的后端目标是X86和X64。 AC后端也可用于进一步帮助验证正确性。以这种方式模拟的CPU是SH-2,MIPS R3000和PowerPC。
原始的程序代码,图形和声音数据需要存在,以便可以模仿游戏。在大多数街机计算机中,数据都存储在仅读取的内存芯片(ROM)中,尽管还使用了其他设备,例如盒式磁带,软盘,硬盘,激光盘和紧凑型光盘。在称为“倾销”的过程中,大多数这些设备的内容都可以复制到计算机文件。所得文件通常通常称为ROM图像或ROM,而不管它们来自哪种存储。游戏通常由多个ROM和PAL图像组成;这些集体存储在单个zip文件中,构成一个ROM集。除了“父母” ROM集(通常选择为游戏的最新“世界”版本)之外,游戏可能具有带有不同程序代码的“克隆” ROM集,用于不同市场的不同语言文本等。例如,Street Fighter II Turbo被认为是Street Fighter II Champion Edition的变体。像Neo Geo这样的系统委员会在多个游戏之间共享ROM,要求将ROM存储在“ BIOS” ROM集中并适当命名。
硬盘,紧凑型盘和激光盘以称为CHD的特定格式(压缩数据)存储。[25]一些街机机使用类似硬件(例如LaserDiscs)来存储和播放音频/视频数据,例如配乐和电影。这些数据必须捕获并编码为可以通过MAME读取的数字文件。 MAME不支持使用外部模拟设备,而该设备(以及相同的演讲者和演讲者的外壳)对于100%忠实地繁殖了街机体验。许多游戏都使用尚未成功模拟的声音芯片。这些游戏需要WAV文件格式的声音样本才能进行仿真。 MAME另外支持Bezel和覆盖图形的PNG格式的艺术品文件。
该项目的既定目的是记录硬件,因此Mame对仿真的看法有些纯粹,禁止编程骇客,这些黑客可能会使游戏运行不当或以仿真精度为代价更快地运行。诸如CPU之类的组件在可能的情况下以低级别(意味着模拟单个说明)进行模拟,并且仅在芯片完全没有记录时才使用高级仿真(HLE),并且不能详细地对其进行反向工程。信号水平仿真用于仿真由模拟组件组成的音频电路。
我们想记录硬件。现在很多人会说; “您的文档在哪里?您只是写了一堆源代码。”是的,这是真的。我了解到的一件事是,将文档与源代码同步几乎是不可能的。最好的证明您的文档是正确的,就是“是否可以使用此代码”。
- 亚伦·吉尔斯(Aaron Giles),加利福尼亚极限2008 [26] MAME模拟了超过一千种不同的街机系统董事会,其中大多数是完全没有证件的,并且旨在量身定制,旨在运行单个游戏或很少的游戏。 MAME在准确性方面采取的方法是增量。系统被尽可能准确地模拟。游戏的盗版副本通常是第一个被模拟的,以后会模仿适当(和复制保护的)版本。除了加密外,街机游戏通常还使用自定义的微控制器单元(MCU)保护,该单元(MCUS)实现了游戏逻辑或其他一些重要功能。即使对游戏本身几乎没有立即可见的影响,这些芯片的仿真也是优选的。例如,直到通过芯片的销售将自定义MCU的代码和数据包含的代码和数据包含的代码和数据才能完善泡沫中的怪物行为。[27]随着游戏的模拟越来越准确,这会导致ROM集要求的变化,从而导致旧版本的ROM集合在MAME的较新版本中变得无法使用。
可移植性和通用性也对MAME也很重要。结合准确性的毫不妥协的立场,这通常会导致高系统要求。尽管2 GHz处理器足以运行几乎所有2D游戏,但即使在最快的计算机上,更近的系统,尤其是具有3D图形的系统也可能会慢慢慢。 MAME当前不利用硬件加速度来加快3D图形的渲染,部分原因是缺乏稳定的跨平台3D API,部分原因是从理论上讲,软件渲染可以是对街机游戏中使用的各种自定义3D渲染方法的精确复制。
在大多数国家,拥有和分发MAME本身是合法的,因为它仅仅是模拟器。索尼等公司试图在法庭上防止其他软件,例如虚拟游戏站,索尼PlayStation模拟器被出售,但最终却没有成功。[28]迄今为止,玛梅本身并不是任何法院案件的主题。
大多数街机游戏仍然受版权覆盖。未经版权持有人许可下载或分发受版权保护的ROM几乎总是违反版权法。但是,一些国家(包括美国)[29]允许董事会的所有者将其ROM芯片中包含的数据传输到其拥有的个人计算机或其他设备。一些版权持有人探索了通过许可使公众可为公众提供的街机游戏ROM。例如,2003年,Atari在Internet STAR Star ROM上提供了27场街机游戏,使Mame兼容ROM。但是,到2006年,ROM不再在那里出售。有一次,与Hanaho制造的Hotrod Arcade Coystick一起出售了各种Capcom游戏,但也停止了这种安排。其他版权持有人也发布了不再在禁止商业使用游戏的许可下免费为公众免费提供商业可行的游戏。这些游戏中的许多可以从官方MAME网站合法下载。[30]西班牙街机游戏开发商Gaelco还在其网站上发布了世界集会,以供非商业用途。[31]
MAME社区与其他团体通过互联网或物理媒体重新分配ROM距离,声称他们公然侵犯了版权,并通过可能使该项目脱颖而出。[32]尽管如此,ROM的非法分布在Internet上是广泛的,并且也存在许多“完整集”,其中包含了特定版本的ROM的完整集合。[33] [34]此外,许多盗版游戏系统(例如街机多推车)经常使用MAME版本来运行游戏。
Mame以前是根据自定义自己写的CopyLeft许可证(称为“ Mame License”或“ Mame Like Like”许可证的,该许可证也是由其他项目(例如Visual Pinball)采用的。这种旧的“ MAME许可证”可确保源代码的可用性,而商业活动的重新分配则被禁止。由于此子句,该许可证与OSI的开源定义和FSF的免费软件定义不相容。该非商业条款旨在防止街机操作员安装Mame橱柜并从游戏的原始制造商的作品中获利。[22]定义“商业”的歧义导致许可证法律问题。[35] [36]
自2016年3月以来,MAME本身转向了普通免费和开源软件许可证,BSD和GPL许可证。[37]