什麼是模擬器?模擬器的特殊趣味應用及原理

什麼是模擬器?模擬器的特殊趣味應用及原理

ADVERTISEMENT

各位朋友是從什麼時候開始玩電玩遊戲的,是從紅白機登登登登的音效開始,還是直接進入 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):http://speeddemosarchive.com/

什麼是模擬器?模擬器的特殊趣味應用及原理

▲SDA網站收集了許多TAS影片,神人玩家以將成績在此展示為榮,肉腳玩家可以來這邊湊湊熱鬧。

但是模擬器總是伴隨著棘手的法律問題,基本上模擬器的開發過程很可能就會牽扯到軟、硬體的授權問題,如果說要夢到遊戲機的硬體是如何運作,那也太過牽強,如果對主機進行逆向工程,那恐怕就侵犯到廠商的智慧財產。此外,下載舊主機的遊戲也是受到法律禁止,而自己將卡帶上的程式抽取出來,又存有灰色空間,因此模擬器的法律爭議一直沒有徹底解決過。

模擬器的原理

一般典型的模擬器,會以軟體模組對應實體被模擬端的硬體架構,可以把模擬器粗分為處理器模組、記憶單元模組,以及I/O單元模組,通常模擬器會略過匯流排的模擬,因為模擬匯流排無疑是繞遠路的方法,直接將資料送進模擬處理器除了可以減少程式的複雜度,也可以增加程式運作的效率。

遊戲機的模擬器可以類比為實體的主機,電腦的螢幕、喇叭就相當於這台主機輸出資訊的地方,而電腦鍵鼠、遊戲搖桿,則是接上這台主機的輸入設備。遊戲卡帶的部分則類比為模擬器的ROM,卡帶的功能是用來儲存遊戲程式,由於我們不需要程式的載體,因此只需要卡帶內的程式本身,這個程式的部分以ROM稱呼。

不是虛擬機器

模擬器(emulator)和虛擬機器(virtual machine)聽起來感覺很相近,但其原理及功能卻大不相同。模擬器是利用實體電腦,建立被模擬電腦,然後將被模擬電腦的程式透過直譯器在實體電腦上執行,而虛擬機器則是直接在主作業系統(host OS)上,建立一個完全獨立的虛擬作業系統(guest OS),無論在主、客作業系統,程式都是直接丟進CPU執行。

然而硬體虛擬化(virtualization)又是一個不太一樣的觀念,虛擬化指的是將主電腦(host machine)的硬體資源切割成多個部分,並建立多個虛擬電腦(guest machine),以供給多個用戶使用,虛擬電腦的程式也是使用主電腦的處理器進行運算。

延伸閱讀:

用 Android 模擬器玩遍 PS、超任、街機、GameBoy 遊戲

超級瑪莉、洛克人、魂斗羅,開瀏覽器就玩

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

國寶大師 李文恩
作者

電腦王特約作者,專門負責硬派內容,從處理器、主機板到開發板、零組件,尖端科技都一手包辦,最近的研究計畫則包括Windows 98復活與AI圖像生成。

使用 Facebook 留言
9635a29f21433f89f91653517b32358c?size=48&default=wavatar
1.  阿伯 (發表於 2012年1月18日 10:10)
> 模擬器是利用實體電腦,建立被模擬電腦,然後將被模擬電腦的程式透過直譯器在實體電腦上執行,而虛擬機器則是直接在主作業系統(host OS)上,建立一個完全獨立的虛擬作業系統(guest OS)

小弟有個小疑問,不太清楚

模擬器利用實體電腦建立被模擬的電腦,再透過直譯器將程式執行起來

這跟在虛擬機器建立虛擬系統,再執行程式

個人認知上的被模擬的電腦 跟 虛擬出來的系統都是指環境

所以我覺得這兩者的字面上過程看起來無異


能不能有請小編細點出這兩者的差別究竟在哪,謝謝 <( ̄︶ ̄)>
ALK
2.  ALK (發表於 2012年1月18日 12:34)
※ 引述《阿伯》的留言:
我也覺得就本質上是一樣的,
遊戲機是一臺專門執行遊戲的機器(或稱電腦),
則模擬器則是模擬其硬體、韌體(BIOS或OS),
讓其專屬軟體(遊戲)可以正常運作。
這點與虛擬機器目的是一樣的,只是對象不同。
036a5697218da19bc678160938417d48?size=48&default=wavatar
1人給推

4.  Ed (發表於 2012年1月18日 13:25)
>模擬器的原理
其實模擬器以英文來說還可以分成兩種:emulator以及simulator。emulator僅模擬系統各元件的外部行為,但不模擬其內部運作,而simulator則是完整模擬其內部結構以及外部行為。一般simulator會應用在系統尚未生產,或要取得實際產品代價太高,因此實際產品無法取得,便以模擬器來模擬其行為,以預先開發系統,或對其除錯,並觀察其行為。至於我們用來打電動的模擬器,其目的僅僅是用來讓遊戲正確執行,所以系統內部構造(如文中提到的system bus)便成了累贅,而僅需其外部行為(聲音,影像等)即可,因此我們使用的模擬器大都叫做emulator為主。

>無論在主、客作業系統,程式都是直接丟進CPU執行。
前提是程式的指令集與CPU的相同。如果相同,有些特殊的指令還是須要預先抽換,或在碰到時予以特別照顧,不能直接丟到CPU執行,例如某些會改變作業系統狀態的指令。

個人認為,虛擬機器經過數十年的發展與使用,其用途已經非常多樣化,與模擬器之間的區隔也變得非常模糊,現在的諸多命名很多也僅僅是延續傳統而已。實在不必去鑽牛角尖。
國寶大師 李文恩
1人給推

5.  國寶大師 李文恩 (發表於 2012年1月18日 17:05)
謝謝以上幾位大大搶先幫我回覆

其實就最基本的定義,可以將兩種東西做以下粗分

虛擬機器:
(程式--->虛擬CPU)--->實體CPU

模擬器
[(程式--->虛擬CPU)--->中介程式]--->實體CPU

模擬器比虛擬機器多一道手續,需要經過中介程式,才能將程式送到實體CPU處理。其實這個中介程式,就是模擬器。

不知道這樣說明,有沒有比較清楚
Ed6adbd809263027776c7ce261c7587d?size=48&default=wavatar
6.  RB (發表於 2012年1月18日 18:15)
看到這篇突然想到看雜誌的時候想到的事情...

...怎麼沒有PC98的(炸


話說回來,PC98的模擬器(通稱)應該算虛擬機器還是模擬器?因為PC98印象中用的也是X86為基礎去小改了不知道那些東西...(所以單說X86指令可能都有相容到,可是有些地方似乎又不一樣!?
小乖精靈
7.  小乖精靈 (發表於 2012年1月18日 19:15)
模擬器跟VM一樣,還是有其限制在
更不用說在專屬平台的遊戲都會針對該平台進行優化處理
好的模擬器可以接近9成的狀態去運行遊戲
但還是有不足的地方,這是先天上的限制,軟體模擬有其極限在
更不用說原本兩者(PC跟遊戲機)在架構設計上就不同
不管在怎麼強大的硬體,多了指令替換的手續就會拉掉速度

4F說得很好,硬體效能的不斷進步,其實兩者接近差不多的狀態
名稱只是一種標示
855301a655e9390fb467b96037c52f2b?size=48&default=wavatar
8.  hasam99 (發表於 2012年1月18日 22:41)
pc98若是俗稱「80x86」的機器,那MSX的PC呢?
Ed6adbd809263027776c7ce261c7587d?size=48&default=wavatar
11.  RB (發表於 2012年1月19日 01:44)
※ 引述《國寶大師 李文恩》的留言:
> PC98,不好吧~~~
> 我們是清新的普通級雜誌XD

神主ZUN和他的東方前五作...(聽說PC98模擬器還有移植到非X86平台的,例如WII(POWER)和ANDROID(ARM)

不過,不過,我突然想到很久以前的軟體介紹啊啊啊!!!(去拍雜誌
Ed6adbd809263027776c7ce261c7587d?size=48&default=wavatar
12.  RB (發表於 2012年1月19日 02:34)
找到了,雖然我覺得我會被咬XD

https://picasaweb.google.com/lh/photo/Igty5UUiw1Hztb4jYXpKAtMTjNZETYmyPJy0liipFm0?feat=directlink

另外還找到疑似當年水球大的文章耶(樂

https://picasaweb.google.com/lh/photo/OqOwZ_SU-YTiTNymWatiYtMTjNZETYmyPJy0liipFm0?feat=directlink
國寶大師 李文恩
13.  國寶大師 李文恩 (發表於 2012年1月19日 11:03)
※ 引述《RB》的留言:
> 找到了,雖然我覺得我會被咬XD
> 另外還找到疑似當年水球大的文章耶(樂

RB大大真的太強了~~~~
佩服
發表回應
謹慎發言,尊重彼此。按此展開留言規則