红白机、超任、PlayStation、SEGA……儿时的电视游戏机、经典的破关回忆,曾经伴随过许多人渡过美好时光,无奈新游戏机推出,那些充满美好回忆的旧游戏,也逐渐淹没在历史洪流中。幸好通过游戏模拟器,可以让老游戏在电脑上再度重现,本篇就介绍15大游戏主机的模拟器,帮你重新回味老游戏的美好记忆。
概念篇:什么是游戏模拟器?
其实模拟器的定义十分广泛,只要以不同于被模拟端的设备,提供仿真的环境,让使用者可以去模拟特定的需求,那就可以算是模拟器。举个例子来说,航空公司会在训练机师时,使用专业的飞行模拟器,让训练中的机师在绝对安全的情况下模拟驾驶,而不用承担实体飞机坠落的风险。
这个设备的架构说穿了,就是附震动体感功能的超大型电动玩具,以电脑收集机师对飞机的操作,并计算所有飞行的参数,最后回馈到显示屏幕以及模拟机舱,达成逼真的飞行模拟实况。
▲民航机训练用的飞行模拟器。
为保存文化而生
这一次主题是电视游戏机的模拟器,因此把我们焦点放在游戏机的模拟器上。游戏机模拟器主要的功能很简单,就是通过软件去模拟硬件处理器的功能,使电脑能够运行其他平台上的软件。白话来说,模拟器就是一台软件游戏机。
模拟器有着许多优点,其最大的特色就是利于数位资产的保留。在英文版维基百科中有一句强而有力的说明,“Emulation is a strategy in digital preservation to combat obsolescence.”,其意为模拟器是一个对抗中止服务(指硬件平台)的数位资产保存策略,这边提到的数位资产,并没有特别指名内容。
不过套用到我们这次讨论的主题上,这些内容就是在各个游戏主机上的游戏软件,如何使用现在的硬件设备,去执行过往游戏主机的软件,让历史悠久的游戏文化能够世世代代传下去,就是游戏模拟器的终极目标。
▲现在拥有老游戏机的人应该不多了,如果想要回味老游戏的话,多少会遇到很多麻烦。
使用模拟器除了可以达成执行旧软件的目标外,也可以尽可能地保存原始程式的所有内容,包括图像、声音等部分,都可能近乎原汁原味地重现,而且对于数位资产保存工作而言,它可以减少整体工作量,我们不需要针对软件一款一款进行移植,只需开发一套中介的模拟器,就可建构出万用平台,将所有旧软件丢上去执行。
模拟器让你增加10年功
另一方面,模拟器在“艺术表演”上也有很特殊的用途,有群狂热派的玩家,就专门用模拟器录制神乎其技的游戏快速过关影片,这种特殊手法称为TAS竞速(Tool-Assisted Speedrun)。
TAS的始祖是Andy Kempling,他修改了毁灭战士(DOOM)的原始码,修改过的版本能够以慢动作进行,以利于录制超水准技巧的影片,随后这种竞赛模式就在狂热玩家间流传开来,并形成一种地下文化。
▲后面介绍的VBA Rerecording就是为TAS改良的模拟器,它可以显示许多额外资讯,让玩家更能掌握游戏。
TAS的目地很简单,就是在不修改游戏本身的程式、内存(遵守游戏规则)的情况下,尽可能地表现超乎常理的完美技巧,TAS玩家可以使用慢动作、重播,或是不断读取存档,甚至是浏览内存内容,以确认敌人的动作、宝箱内容等,由于TAS并没有去更变游戏任何部分,因此即便机率很低,低到比被雷劈到还难,但影片内容还是有可能实现。
热衷于TAS的玩家,通常会彼此竞争,就像赛车手会计较换轮胎的时间一样,TAS玩家对小地方都是锱铢必较,这恰巧就是TAS的另一宗旨:追求理论上所需最短的破关时间。
对一般玩家而言,TAS影片也非常具有娱乐效果,如果没办法玩到成仙成佛,至少可以长长见识。有兴趣的读者可以到SDA这个网站观看TAS影片,那边的影片多到可能一辈子都看不完。
▲SDA网站收集了许多TAS影片,神人玩家以将成绩在此展示为荣,肉脚玩家可以来这边凑凑热闹。
但是模拟器总是伴随着棘手的法律问题,基本上模拟器的开发过程很可能就会牵扯到软、硬件的授权问题,如果说要梦到游戏机的硬件是如何运作,那也太过牵强,如果对主机进行逆向工程,那恐怕就侵犯到厂商的知识产权。此外,下载旧主机的游戏也是受到法律禁止,而自己将卡带上的程式抽取出来,又存有灰色空间,因此模拟器的法律争议一直没有彻底解决过。
模拟器的原理
一般典型的模拟器,会以软件模组对应实体被模拟端的硬件架构,可以把模拟器粗分为处理器模组、记忆单元模组,以及I/O单元模组,通常模拟器会略过汇流排的模拟,因为模拟汇流排无疑是绕远路的方法,直接将资料送进模拟处理器除了可以减少程式的复杂度,也可以增加程式运作的效率。
游戏机的模拟器可以类比为实体的主机,电脑的屏幕、喇叭就相当于这台主机输出资讯的地方,而电脑键鼠、游戏摇杆,则是接上这台主机的输入设备。游戏卡带的部分则类比为模拟器的ROM,卡带的功能是用来储存游戏程式,由于我们不需要程式的载体,因此只需要卡带内的程式本身,这个程式的部分以ROM称呼,其细节于后面章节会再详述。
不是虚拟机
模拟器(emulator)和虚拟机(virtual machine)听起来感觉很相近,但其原理及功能却大不相同。模拟器是利用实体电脑,建立被模拟电脑,然后将被模拟电脑的程式通过直译器在实体电脑上执行,而虚拟机则是直接在主操作系统(host OS)上,建立一个完全独立的虚拟操作系统(guest OS),无论在主、客操作系统,程式都是直接丢进CPU执行。
然而硬件虚拟化(virtualization)又是一个不太一样的观念,虚拟化指的是将主电脑(host machine)的硬件资源切割成多个部分,并建立多个虚拟电脑(guest machine),以供给多个用户使用,虚拟电脑的程式也是使用主电脑的处理器进行运算。