Board logo

标题: [模拟相关] MAME:街机模拟器史上最伟大的传奇,诞生20周年纪念贺文 [打印本页]

作者: 燕市游徒    时间: 2018-11-18 15:05     标题: MAME:街机模拟器史上最伟大的传奇,诞生20周年纪念贺文

MAME:街机模拟器史上最伟大的传奇,诞生20周年纪念贺文

本文原载于本人微信公众号,写于2017年,以祝贺MAME诞生20周年。

MAME,这个街机模拟器史上最伟大的传奇,即将迎来20周年生日。20年来,MAME不断更新,从一个默默无闻的小型多机种模拟器,变成了现在可以模拟3万多街机游戏的庞然巨物,且还在不断进化中。

根据mameinfo.dat文件提供的资料,MAME 0.01版的诞生日是1997年2月5日。

mameinfo中MAME 0.01最初版的发布日期:1997年2月5日


那一天,一个默默无闻的小模拟器粉墨登场。它能够模拟5个古老的小街机游戏,包括小精灵(吃豆人)、顽皮鬼、小瓢虫、吃豆小jie和企鹅推冰。

MAME 0.01版所支持的5个古老的街机游戏:


在当时来说,MAME所模拟的这几个小游戏并不十分出彩,如果不是老游戏爱好者,可能根本不会注意它。1997年底,伟大的街机模拟器Callus将会横空出世,它可以模拟多种Capcom公司CPS1基板上的火爆游戏,比如名将、圆桌骑士、龙王战士、街头霸王2与快打旋风等街机名作,一时风头无两,如日中天。

同样是在1997年,街机模拟器Neorage的前身:RAGE诞生了。发展到RAGE 0.9后,可以模拟21个街机游戏,其中不乏海底大战争和战火惊魂等一些IREM公司的大作。

和Callus和RAGE比起来,MAME显得十分弱小而且稚嫩,在当时,它不支持摩托罗拉MC68000 CPU的模拟,而RAGE和Callus都支持这一运用广泛的CPU,及其平台上运行的游戏。在对比之下,MAME支持的游戏非常古老和落后。然而,MAME的最大优点就是开放源码,这使得它可以被很多模拟器作者参考和创作,并移植到不同操作系统。潜移默化之中,街机模拟器的影响力天平不断向MAME倾斜。

在原作者失去创作热情后,Callus和Neorage都停止了更新。而MAME却越来越能吸引到有才能的作者加入到计划中去。经过坚持不断的更新、进步,MAME终于成为了街机模拟器的王道和正统,并成为街机模拟器事实上的业内标准。

从一开始的情况来看,MAME在当年的众多的街机模拟器中并不算太出众。

在1997年末、1998年初,举世公认的超强街机模拟器是Callus,Callus在1997年底即可运行很多capcom公司出品的著名的CPS1基板游戏,例如名将。在1997年末这个时间点,电脑平台上极度缺乏有力的动作格斗游戏和清版闯关游戏。这时突然可以使用模拟器在电脑上玩名将等CPS1基板的街机大作,绝对是令人下巴脱臼的震撼消息和超强体验。


此外,当年能够模拟世嘉System16系列基板的街机模拟器System16和能够模拟Taito公司的街机系统的Raine,也曾显赫一时,是街机模拟器界主力的有力竞争者。

另外绝对不能忘记的是1998年开始掀起的Neogeo街机模拟狂潮。在当年,模拟器玩家们和街机、游戏主机玩家几乎同步时间玩到了拳皇98等Neogeo街机大作,当时的多街机模拟器Rage的更新版Neorage功不可没。

在不久之后,Neorage的更新版Neoragex横空出世,再次引领街机模拟器界。很难统计当年有多少人试玩了Neoragex后,被其方便简单的操作和高超的效能所震惊,把其它模拟器抛到脑后,束之高阁。


到了2001年,Cps2街机基板的皮角掀起了另一股街机模拟器开发狂潮,在这次狂潮中诞生的FinalBurn、Winkawaks和Nebula等多机种街机模拟器也都是一时俊杰,对MAME构成了很大的压力。时至今日,还有很多要求不高的玩家习惯使用Winkawaks和Nebula星云玩模拟器游戏。

那么,MAME这个街机模拟器公认的霸主,为什么能从众多街机模拟器竞争者中脱颖而出、傲视同侪、独占鳌头乃至成为圈内标准呢?我认为主要有以下几大原因:

1、开放源码,方便移植。

2、立意深远,布局宏伟。

3、良好的项目管理和社区支持。

4、低调保守,厚积薄发。

5、发布较早,先声夺人。

6、技术高超,底力浑厚。

7、大势所趋,羊群效应。

8、精益求精,不断进步。

下面本人就尝试具体分析一下这8个方面的原因。

1、开放源码,方便移植。

MAME从一开始就是开放源码的Free Software。因为开源的关系,得道多助,无数优秀的程序员相继加入了MAME计划,为这个项目写代码的人越来越多,得到的代码供应量肯定会比封闭而不开源的模拟器多。举一个例子:1998年,有几个程序员宣布要编写一个模拟Data  East公司的街机游戏的模拟器,但是后来这几个程序员将这个项目并入了MAME开发进程。Data East的街机游戏在后续MAME版本里得到了支持。随着时间推移,这样的例子越来越多,使得MAME支持的游戏像滚雪球般扩大。

又因为免费开放源码,使得MAME从一个平台向另一个平台移植特别简单。现在,MAME横跨Windows、MacOS、Linux和BSD平台,可以被运行在从X86到ARM到IBM zSeries等各种各样的CPU上,成为一个真正意义上的巨无霸游戏模拟器。

2、立意深远,布局宏伟。

MAME计划,几乎从一开始就不是为了让玩家游玩游戏而设立的。这是它和其他各大街机模拟器相比的一个很不同的特点。

1997年8月10日,MAME最初的老大,项目协调人Nicola Salmoria在MAME 0.27b开始,就给MAME设下了一个远大的目标:


“MAME的主要目的是成为被模拟的街机游戏的一种参考资料,这是为了教育的目的,以及为了保存许多历史上的街机游戏。当这些游戏运行的硬件停止工作,它们将从历史中消失。而MAME将使其避免被历史遗忘。当然,为了保存游戏,你必须能实际操作和游玩这些游戏,你可以把游玩街机游戏看做一个不错的边缘效果。”

不管这是否是为了规避版权法律纠纷才做出的一个冠冕堂皇的姿态,这仍然是一份掷地有声的声明。多年来,MAME坚守着Nicola Salmoria大神设立的目标,始终为了保存街机游戏,使其不被遗忘而存在。

今天,MAME体现了人类重要的数字传承,而且这些传承理所应当被保存留给未来世代。MAME力求精确体现原始系统,允许未经修改的软件运行在它们被发明的状态。MAME记载了超过三万个机械系统,可以运行的系统有一万以上。作为一个用途广泛的模拟器,MAME成为了废旧硬件修理人员的参考资料,和自制/非官方软件的测试平台,以及用于教育目的的工具。

相对于其他模拟器只是为了让人们免费玩街机游戏而被开发,MAME计划几乎从设立开始,立意非常就深远,布局就非常宏大。

3、良好的项目管理和社区支持。

MAME的项目管理系统,从一开始由老大Nicola Salmoria独力经营,到现在由五位开发者大佬团体牵头合作协同开发,经历了很多变迁。

一直以来,MAME就是一个松散的组织,由一些MAME DEVs(MAME开发人员)组成一个组织,向MAME提交代码,并交由项目协调人整理发布。

MAME的发布系统是极为严谨的。最近,MAME官网透漏了一些有关新版本发布的细节:
从MAME 0.179开始,在每个发布版本之前会有三天的冻结期。在每月最后一个星期日,MAME正式发布日来临之前三天,管理团队就开始巩固代码和准备发布新版本。在冻结期开始之后,只有重要的修复补丁可以被集成入预发布版。新版本的基本功能被在Windows, Linux和Mac等广泛的操作系统上测试。在冻结期开始之后到发布日,ROM和驱动一般便不再更新。只有一个例外情况,就是最近被增加到可以运行状态的系统,如果有任何错误修正,可以被集成入预发布版。冻结期给MAME测试员巩固目标的时间,使发布造成的问题可以被最小化。

在技术层面上,一旦冻结期开始,MAME管理者就将创建一个从主干代码分出来的分支代码,称为release0nnn。nnn的具体数值就是将要发布的MAME的版本号。修补代码将被推送和集成入该分支代码中,而不是主干代码。主干代码的开发正常进行。任何不属于该发布版本的代码,将被集成入以后将要发布的版本,在发布日当天,最终发布版代码被标记后,被重新集成入主干代码。然后分支代码被删除。发布代码被标记为mame0nnn这样的表格。从冻结期到发布期之间的这段时间,分支代码将被公布在MAME位于github网站的软件仓库中。在MAME新版本发布后,该分支代码包括的所有修改版本将被集成回主干代码。所以没有修补信息会丢失,而且关联到个人开发者的委托也会在MAME新版发布后继续保持有效。MAME管理者也和MAME测试员合作,在冻结期开始后,增加一个新版到以后被发布的代码版本。

显然,这种管理系统是极为严谨而有效的。

MAME从诞生之日不久,就拥有了庞大的粉丝团体和良好的社区支持。记得在本人于1998年在北京大学南门飞宇网吧以25元/小时的天价上网的时候,MAME的官方粉丝网站:MAMEWorld就已经开始运营了。MAMEWorld网站的开始运行时间已经很难考证,不过它确是一个不折不扣的MAME粉丝大本营。MAMEWorld为广大MAME改版作者提供空间,让他们可以发布新改版。为MAME周边文件作者提供空间,使他们可以保存、发布MAME周边文档。为MAME前端制作者提供空间,让他们可以发布新的MAME前端。只要和MAME沾边的重要网站,就可以被MAMEWorld收录或添加友情链接。MAMEWorld网站还负责发布MAME相关新闻、更新消息和发布投票等活动。


此外,必须提及MAME论坛社区。在这里,MAME的开发者和粉丝们可以进行开诚布公的对话,交流使用情况,也可以插科打诨、增进友谊。还有一个重要的网站,即是MAME Testers。顾名思义,这个网站是专门用来提交关于MAME的bug情况,便于MAME开发者汇总分析,留言交流,并指派单独的开发者去修复bug的地方。这两个网站或论坛,是了解MAME情况不可或缺的重要地点。

MAME论坛


MAME Testers


这些支持网站系统,极大方便了初学者的学习进程,和开发者的开发工作。也为MAME君临街机模拟器世界做好了铺垫。

4、低调保守,厚积薄发。

MAME作为一个街机模拟器,非常低调而保守,一直以来都是默默做事,从不张扬个性。它不像Neoragex或Callus,也不像Winkawaks或Nebula,从不追求让玩家心满意足的效果和功能。MAME的宗旨只有一个,那就是尽量百分之百的精确模拟街机游戏,并让它们流芳百世。

在此宗旨下,凡是有利于玩家游玩,但并非存在于原生街机游戏中的选项,MAME一般都不支持或支持的很少。比如,按键连发功能,是在最近才被支持的,以前的MAME版本均不支持。这是因为街机一般没有连发键功能。

MAME虽然支持了连发功能,但是把它藏在金手指功能中,导致很多玩家都没有找到:


比如,为了精确模拟街机游戏,MAME不支持很多模拟器采用的HAL 3D加速功能(硬件适配层3D加速功能),也即不使用强大的显卡硬件加速3D街机游戏的模拟,而只支持软件模拟模式。因为虽然软件模拟非常缓慢,但是精确度较高。所以MAME宁可不使用硬件设备模拟街机游戏,而坚持使用软件模拟。

MAME宁可让玩家玩游戏不顺畅,也坚决不支持3D硬件加速效果,所以它支持的一些游戏和Demul、Supermodel等模拟器的速度比起来相距甚远



MAME具有完备的金手指功能。但是在默认设置中,金手指功能是被关闭的,因为街机没有金手指码可用。

其他模拟器几乎都支持的宏定义功能、动态透明效果功能等功能,MAME一个都不支持。

Winkawaks的宏定义按键功能,是一个极为受到玩家欢迎的功能


凡此种种的现象说明,MAME的处世之道极端保守而低调。作为一个玩家,自然希望能在玩游戏的时候多多享受到模拟器的便利效果,然而MAME的古板作风给很多玩家留下的不好的印象,他们觉得MAME难以使用、速度缓慢、缺乏功能以及兼容性弱,殊不知这正是MAME为了精确模拟街机游戏而坚持的底线。

5、发布较早,先声夺人。

MAME比很多著名的街机模拟器都要早发布,MAME 0.01出现在1997年2月5日,接着MAME的版本号就连续攀升,支持的游戏也越来越多。对比Callus、Rage或Raine,MAME是有先发优势的。早期,给MAME贡献代码的程序员只有老大Nicola  Salmoria等寥寥数人,然而MAME的规模很快就像滚雪球般扩大,招揽的程序员不断增多,体量和支持的游戏也迅速攀升。到1997年10月20日发布的MAME 0.29,已经支持了258个游戏,110个驱动。这在当年是首屈一指的。可以说,MAME从一开始,支持的游戏数量就领先于其他模拟器了。

MAME 1997年支持的游戏数量一览表


6、技术高超,底力浑厚。

可能是因为开放源代码的关系,MAME的开发者中云集了全球精英程序员,这些高手通力协作,各展长才,把MAME打造成了一个强大的模拟器怪兽。

MAME在很多方面都领先于其他街机模拟器:

在架构方面的领先:

MAME的架构可以说是一改再改,而且支持的CPU和声卡硬件越来越多。就拿模拟器热门的使用普遍的MC68000 CPU来说,自从MAME 0.28初步支持MC68000 CPU,有关这个CPU的代码在MAME中几乎一直在更新,不断的修复bug,优化代码。截止到MAME 0.180,代码还在更新中。具体更新内容,我看不太懂,但是我深为这种精益求精的精神所感动。带来的效果就是,MAME的MC68000核心代码是全球最精确的68000 CPU代码,随着时间的推移,bug越来越少,已经非常接近于实机效果。

而这个CPU只是MAME所支持CPU的冰山一角。你可以想象MAME的技术力是何等浑厚。

在功能方面的领先:

虽然如前述,MAME缺乏一些很有人气的功能,比如宏定义按键、3D硬件加速等,但是这只是MAME不愿意去做,非不能而实不为也。在其他方面,MAME在功能上要全面凌驾于其他街机模拟器。

举个例子,MAME中包含了一个强大的debug调试系统,可以为程序员测试游戏和模拟器的运行提供方便。因为这个系统太强大了,功能完备,使用方便,所以几乎所有的hacker都在用这个调试系统来hack游戏。

强大的debug调试系统,hacker们对其再熟悉不过了:


再比如MAME的一个小功能:cheat系统,经过无数次改进以后,已经成为一个极为强大的cheat引擎,可以实现现存的几乎所有类型的cheat金手指码搜索、制作和运行功能。其强大的功能是其他的模拟器拍马也追不上的。

MAME cheat系统支持的一条金手指码:真侍魂的无限体力金手指码,这个金手指码用到了动态地址追踪技术,在其他模拟器上很难实现:


又比如MAME还有很多乱七八糟的各种用的上或用不上的功能,几乎都是用命令行来实现的,在它的readme中均有记载,大家可以去发掘。比如MAME可以指定运行多少帧的游戏画面来测试电脑性能;MAME可以将显示信号低解输出到CRT低解显示器;MAME还包含了一个图形增强系统,可以把低分辨率游戏画面模拟成与低解显示器类似的画面。

HLSL模拟低解显示器的美丽画面:







7、大势所趋,羊群效应。

随着MAME的不断开发和进步,大趋势就是MAME已经是街机模拟器的现行行业标准。现在还在活跃的街机模拟器,如果不从rom信息、游戏名称和游戏驱动等各方面和MAME看齐,那无疑是自寻死路,因为没有人会去用不和MAME同步更新的模拟器了。

比如著名的FBA和Raine模拟器,现在它们每次更新,都必须和最新版MAME同步更新驱动和游戏信息。可以看出,MAME已经成为街机模拟器界的标准。

简单轻量,与MAME相似的FBA模拟器:


老牌模拟器Raine也不得不紧跟MAME的步伐更新:






随着MAME支持的游戏越来越多,即便是无法在MAME中运行的游戏,也需要通过MAME的认证而成为模拟器界行业标准。比如尽管MAME所支持的CHD游戏很少有可以运行的,可在Demul模拟器中,虽然它可以游玩的CHD游戏比MAME更多,但也都可与MAME CHD游戏相互替换。

可以模拟相当多3D街机游戏的Demul模拟器:






随着MAME的发展和完善,MAME的用户越来越多,所以其他模拟器不得不向MAME看齐——于是有了所谓的羊群效应。今天,所有的街机模拟器实际上都在跟随MAME的脚步,如果不跟随,就显得与标准格格不入,突兀非常了。

8、精益求精,不断进步。

可以说,MAME的程序员是一群技术狂人。他们为了更加精确的模拟一个游戏,可以不厌其烦的修改rom名称、游戏名称和游戏驱动等内容,以达到更加精确模拟的目的。

而组织者老大们也没有闲着,他们考虑的方向不仅是添加游戏而已,还要对MAME的整体架构做出一步步的修订、优化代码以及降低内存需求。。。从各种看得见和看不见的地方,着手改进MAME,使得MAME变得越来越好。尽管玩家玩起游戏,丝毫感觉不到有何改变,但是MAME的底层架构在随着版本号潜移默化的变革着。

一切的变化都被记载在MAME每次更新的更新说明文件whatsnew.txt中,感兴趣的读者可以看看,每个版本更新,都会有一串长长的更新列表履历,详细到难以全部阅读的程度。

每次的whatsnew.txt都长的令人疯狂:


本人深为这种模拟器的精益求精的精神和永不停歇的努力所感动。希望MAME可以永葆这样的疯狂和活力。

至此,MAME称霸街机模拟器界的八大理由解释完毕,如果读者们因本文对MAME这个街机模拟器的巨无霸有了一些新的认识,我的辛苦就没有白费。

20周岁生日快乐,MAME!

MAME 0.01发布日:1997年2月5日

MAME 10周年的时候的贺图,转眼间时间又过去了10年:


虽然今天已经是2月6日了,但是由于时区的关系,在美国、欧洲,现在才进入2月5日,所以MAME 20年周年的庆祝活动刚刚开始。

美国时间2月5日,MAME官网贴出了一则新闻,列出了所有参与贡献代码的人员名单,这份名单长的有点可怕,有超过1600名个人/组织的贡献者上榜,其中,至少有一个是来自中国,那就是擅长于模拟IGS PGM游戏的XingXing。

是他们让MAME从一个只有5个小街机游戏的多街机机种模拟器,成长为已模拟了3万多个街机游戏,且还在不断增加中的庞然巨物,这1600多名功臣居功至伟。要知道,MAME 10周年的时候,这份名单才只有500人左右,时间又过去了10年,贡献者的数量增加了3倍之多!

让我们记住MAME的创始人,名副其实的老大和项目协调人:Nicola Salmoria,是他创立并发展了最初的MAME模拟器。Nicola Salmoria后来功成身退,将MAME托付与后辈。

之后接手MAME的项目协调人老大按顺序是Mirko Buffoni、David “Haze” Haywood、Aaron Giles、Angelo “Kale” Salese、Miodrag “Micko” Milanovic这几位。在2016年5月,MAME计划的项目协调人由单独的一个老大扩展为一个5位协同开发人员的团体,他们是:

MAME visionary Miodrag “micko” Milanovic
Technical lead Olivier “Sarayan” Galibert
Very senior developer R.Belmont
Development and release manager Vas “cuavas” Crabb
Project facilitator Greg “Stiletto” Ember

目前是这5位大神在领导现在的MAME开发工作。

下面的图是MAME随着版本更新,所支持的游戏的数量对比,可见MAME支持的游戏一直在不断增涨。

这张图是老版,只统计到MAME 0.112。


这张图是最新版,里面还加入了MESS游戏的统计,因此支持游戏的数量爆发性增涨。


最后,以一张图来结束此文:GAME NOT OVER。传奇,仍在继续。。。


[ 本帖最后由 燕市游徒 于 2018-11-19 07:37 编辑 ]
作者: 燕市游徒    时间: 2018-11-18 15:07

微信原文链接:
https://mp.weixin.qq.com/s?__biz ... 9&lang=zh_CN#rd
余下部分关注本人公众号即可查看。

博客原文链接:
http://blog.sina.com.cn/s/blog_706d84df0102ydje.html

[ 本帖最后由 燕市游徒 于 2018-11-19 07:54 编辑 ]
作者: linkzero    时间: 2018-11-18 15:17

MAME绝对是模拟器界的传奇,拜读楼主大作。
作者: zengxx1986    时间: 2018-11-18 18:30

posted by wap, platform: Samsung
上古时期mame执行效率低,bug多。远不如各个专业的单机种模拟器。
作者: hugang    时间: 2018-11-18 18:49

大学时候比较穷,一直玩模拟器,还买过好几本模拟器杂志,可惜现在都已经消失了
作者: 红叶    时间: 2018-11-18 19:26

posted by wap, platform: Android
nicola的博士论文好像就是逆向工程模拟器
作者: coldiori    时间: 2018-11-18 19:43

个人接触的是neoragex,winkawaks,fba,mame
作者: 完先生    时间: 2018-11-18 21:04

winkawaks网吧街机模拟器标配
作者: itakeblue    时间: 2018-11-18 21:29

posted by wap, platform: Samsung
很好的文章,精彩,支持!
作者: 抱抱    时间: 2018-11-18 21:30

posted by wap, platform: Android
neoragex,fga,当时非常震撼。
作者: bing    时间: 2018-11-18 21:51

当年第一次在同学家玩dos下的callus真是惊呆了,小时候无限投币的梦想没想到这么快就能实现
后面自己有了电脑,128m内存,neorage读取速度比同学家的64m电脑速度快多了
作者: genesisx    时间: 2018-11-19 00:59

posted by wap, platform: LG
感谢MAME,陪我度过大学时光。。
作者: 孟德尔    时间: 2018-11-19 02:25

posted by wap, platform: Android
想想都过了十五年了,
作者: wuyingjun    时间: 2018-11-19 08:06

楼主 好牛逼

MAME最大的不满 就是加了很多不能运行的游戏     等能运行再加进去不是更好么
作者: apple524    时间: 2018-11-19 09:23

还记得最早在win95 时候玩Callus,那时候mame还不是很流行
作者: aso    时间: 2018-11-19 09:38

posted by wap, platform: iPhone
可以在人类文明史上写上一笔的伟大项目。
作者: mickyjl    时间: 2018-11-19 09:40

精彩好文,现在硬盘上的mame貌似就是下载楼主的roms,虽然还是非常古老的版本。
作者: joker23    时间: 2018-11-19 09:56

好是好,就是经常版本升级rom也要升级经常追不动了
作者: zengxx1986    时间: 2018-11-19 10:10

posted by wap, platform: Samsung
高中的时候在电脑版中缝邮购了一台p166mmx的洋垃圾笔记本电脑,流畅运行Callus
作者: 梦幻小妖    时间: 2018-11-19 10:25

现在就在用楼主分享的MAME的0.200版本整合包

[ 本帖最后由 梦幻小妖 于 2018-11-19 10:26 编辑 ]
作者: joker23    时间: 2018-11-19 14:53

引用:
原帖由 zengxx1986 于 2018-11-19 10:10 发表
posted by wap, platform: Samsung
高中的时候在电脑版中缝邮购了一台p166mmx的洋垃圾笔记本电脑,流畅运行Callus
街机模拟器初期还是专门的模拟器更好些,那会mame的口号是效率问题让时间去解决
作者: BigBangBang    时间: 2018-11-19 16:06

小时候盼一些街机游戏移植,2、3代主机之后也没实现,绝望的时候,模拟器完美了。
作者: wanghuayong    时间: 2018-11-20 14:30

感谢这些伟大的模拟器陪伴了我们无数的快乐时光
作者: 河马    时间: 2018-11-20 16:51

学习了,谢谢!
作者: 剑魔美神    时间: 2018-11-22 22:57

posted by wap, platform: Android
90年代末期到新世纪初这段时期真是模拟器的黄金时代,那会能在电脑上玩到TV game真是一种享受
作者: sig1b    时间: 2018-11-23 09:57

伟大什么的就不说了。现在的版本,双核心CPU利用率还是非常低,软件加速都没有全开的感觉。




欢迎光临 TGFC Lifestyle (http://club.tgfcer.com/) Powered by Discuz! 6.0.0