什幺是模拟器?模拟器的特殊趣味应用及原理 各位朋友是从什幺时候开始玩电玩游戏的,是从红白机登登登登的音效开始,还是直接进入 PS 的 3D 时代?记得在电动间被越南大战坑杀的怨恨,还是对 PS2 真‧三国无双所带来的震撼念念不忘?

虽然随着电脑、游戏机的硬体效能越来越强,画面越来越逼真,但是游戏也变得更为複杂,反而不容易以轻鬆的心情,悠闲地打电动。如果你心中抱着对往日游戏的怀念,那我们就一起将你心中那微弱的火苗,燃烧成一片热血火海吧。

什幺是模拟器?

其实模拟器的定义十分广泛,只要以不同于被模拟端的设备,提供仿真的环境,让使用者可以去模拟特定的需求,那就可以算是模拟器。举个例子来说,航空公司会在训练机师时,使用专业的飞行模拟器,让训练中的机师在绝对安全的情况下模拟驾驶,而不用承担实体飞机坠落的风险。

什幺是模拟器?模拟器的特殊趣味应用及原理

▲民航机训练用的飞行模拟器。(图片来源:维基百科)

这个设备的架构说穿了,就是附震动体感功能的超大型电动玩具,以电脑收集机师对飞机的操作,并计算所有飞行的参数,最后回馈到显示萤幕以及模拟机舱,达成逼真的飞行模拟实况。

模拟器就是一台软体游戏机

这一次主题是电视游乐器的模拟器,因此把我们焦点放在游戏机的模拟器上。游戏机模拟器主要的功能很简单,就是透过软体去模拟硬体处理器的功能,使电脑能够运行其他平台上的软体。白话来说,模拟器就是一台软体游戏机。

什幺是模拟器?模拟器的特殊趣味应用及原理

▲现在拥有老游戏机的人应该不多了,想要回味老游戏的话,多少会遇到很多麻烦。

模拟器有着许多优点,其最大的特色就是利于数位资产的保留。在英文版维基百科中有一句强而有力的说明,「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网址(Speed Demos Archive)

什幺是模拟器?模拟器的特殊趣味应用及原理

▲SDA网站收集了许多TAS影片,神人玩家以将成绩在此展示为荣,肉脚玩家可以来这边凑凑热闹。

但是模拟器总是伴随着棘手的法律问题,基本上模拟器的开发过程很可能就会牵扯到软、硬体的授权问题,如果说要梦到游戏机的硬体是如何运作,那也太过牵强,如果对主机进行逆向工程,那恐怕就侵犯到厂商的智慧财产。此外,下载旧主机的游戏也是受到法律禁止,而自己将卡带上的程式抽取出来,又存有灰色空间,因此模拟器的法律争议一直没有彻底解决过。

模拟器的原理

一般典型的模拟器,会以软体模组对应实体被模拟端的硬体架构,可以把模拟器粗分为处理器模组、记忆单元模组,以及I/O单元模组,通常模拟器会略过汇流排的模拟,因为模拟汇流排无疑是绕远路的方法,直接将资料送进模拟处理器除了可以减少程式的複杂度,也可以增加程式运作的效率。

游戏机的模拟器可以类比为实体的主机,电脑的萤幕、喇叭就相当于这台主机输出资讯的地方,而电脑键鼠、游戏摇桿,则是接上这台主机的输入设备。游戏卡带的部分则类比为模拟器的ROM,卡带的功能是用来储存游戏程式,由于我们不需要程式的载体,因此只需要卡带内的程式本身,这个程式的部分以ROM称呼。

不是虚拟机器

模拟器(emulator)和虚拟机器(virtual machine)听起来感觉很相近,但其原理及功能却大不相同。模拟器是利用实体电脑,建立被模拟电脑,然后将被模拟电脑的程式透过直译器在实体电脑上执行,而虚拟机器则是直接在主作业系统(host OS)上,建立一个完全独立的虚拟作业系统(guest OS),无论在主、客作业系统,程式都是直接丢进CPU执行。

然而硬体虚拟化(virtualization)又是一个不太一样的观念,虚拟化指的是将主电脑(host machine)的硬体资源切割成多个部分,并建立多个虚拟电脑(guest machine),以供给多个用户使用,虚拟电脑的程式也是使用主电脑的处理器进行运算。

延伸阅读:

用 Android 模拟器玩遍 PS、超任、街机、GameBoy 游戏

超级玛莉、洛克人、魂斗罗,开浏览器就玩

山寨吞食天地Ⅱ,用吕布海扁小兵