遊戲機模擬器

遊戲機模擬器是指通過軟體方式模擬實體電子遊戲機及其上面運行的遊戲的模擬器程序。通常情況下，遊戲機模擬器能打破原遊戲機硬體的限制，提供諸如非原生手柄的支持、遊戲速度控制、性能與畫質增強等功能。在為已停產的舊遊戲機開發自製程序或新遊戲的過程中，模擬器也起著重要作用。

## 工作原理

模擬器包含很多組件：分別模擬原始機器中央處理器CPU、圖形處理器GPU、音效卡等晶片的組件，以及把原機器的輸入設備（如按鈕、搖杆等）映射到電腦的鍵盤等輸入設備的組件，並將這些組件整合起來，構成完整的模擬器。

由於平台間底層系統、處理器、記憶體、架構等軟硬體差異，要使模擬器能流暢運行遊戲，模擬器的性能要求通常比原遊戲機的性能高很多。

除任天堂Virtual Console等遊戲機廠商官方的模擬器之外，模擬器一般不附帶有版權的ROM鏡像及遊戲程序，因此使用者需要自行提供ROM文件、ISO鏡像等形式的遊戲數據與代碼，才能進行相關的模擬操作。ISO鏡像文件是光碟數據的副本，可以使用普通的光碟驅動器進行提取。而ROM文件源於原遊戲機的ROM晶片或者ROM卡帶，需要使用專門的程序或工具從原遊戲機上提取下來（這個過程一般稱之為「dump」或「rip」）。提取ROM操作較為複雜，因而普通消費者和模擬器愛好者更傾向於非法通過網際網路免費獲取遊戲，而不是合法地購買與提取遊戲內容。在原遊戲機平台和遊戲停產後數十年，大多數遊戲公司仍保留其版權。為了解決提取鏡像的困難、避開版權的問題，一些遊戲卡帶專用適配器（Retrode等）問世了，這種適配器能讓模擬器直接訪問卡帶上的數據。

dump

將儲存在電路板、磁盤、光碟等介質上的數據，用工具讀取出來，以文件的形式轉存至電腦，這一過程被稱為「dump」。

dump生成的ROM文件，如同儲存在電腦裡的一款款遊戲，可以脫離原始載體而運行。

## 背景與歷史

20世紀90年代中期，個人電腦的性能提升迅速，這使得通過軟體模擬早期遊戲機的想法變得可行。在這個時期，網際網路上出現了一些未授權、非商業用途的遊戲機模擬器，儘管這些模擬器不太完整且容易出現程序錯誤。公布了硬體技術規範的廠家少之又少，程式設計師只得通過逆向工程分析演繹得出遊戲機的具體運作方式。開發者常將任天堂的遊戲機作為研究對象，當時比較先進的模擬器能較為完整地模擬紅白機、超級任天堂與Game Boy。這個時期「索尼克之父」中裕司也為Mega Drive設計了紅白機模擬器，雖然該模擬器沒有發布，但這可能是首個在遊戲機上模擬其他平台的模擬器。

隨著模擬器的流行，模擬器的開發速度加快了，一定程度上也促進了ROM修改與遊戲漢化翻譯社區的發展，使得運行國外的遊戲變得容易，更多用戶也隨之接觸到模擬器。

### 法律問題

很多模擬器的出現，實際上是為了保存很多年前原始的遊戲程序，並在不同的設備上運行。隨著電腦與網際網路的發展，模擬器開發者的技能水平得以不斷提高，模擬器發布速度越來越快。任天堂64、PlayStation、Game Boy Advance等第五和第六世代遊戲機模擬器在遊戲機產品仍銷售時就已經能進行模擬操作。遊戲機製造商試圖通過法律途徑阻止非官方的模擬器，但大多數都失敗了。

根據法律先例，在美國、英國等大多數國家開發與使用模擬器是合法的，但根據國家版權法與《伯爾尼公約》，未經授權分發受版權保護的代碼仍是違法的。

在美國，根據Lewis Galoob Toys與任天堂美國法庭判例，只要是合法擁有遊戲機，提取遊戲機BIOS文件的行為符合法律中的合理使用。為了減少類似的事件發生，高階級模擬（HLE）方式被更多開發者採用，使模擬器在沒有BIOS文件的情況下進行模擬操作。

在中國，模擬和破解等行為處於法律的灰色地帶。發佈與收集遊戲、製作模擬器和破解ROM都是網路高手熱衷的工作。隨著模擬器的發展，遊戲ROM也在以極快的速度漢化，中國大陸的網站成為模擬器與ROM的儲存基地之一。

另外，在中國大陸發行遊戲需要遊戲版號，如獲得手機平台遊戲版號的作品，只能在手機平台發行。自2017年開始每年過審的手機遊戲數量超過客戶端遊戲和網頁遊戲，而使用個人電腦的玩家有新遊戲的需求，部分遊戲公司為了擴大遊戲的受眾，主動推出手遊模擬器，根據易觀的統計，2020年中國大陸有1.3億使用者使用手遊模擬器，其中騰訊旗下的手遊模擬器「騰訊手遊助手」佔據七成使用者。

## 應用

### 官方使用

由於玩家對懷舊遊戲的需求日益增長，現代遊戲機也加入了模擬功能。其中最著名的就是任天堂的Virtual Console，它允許用戶在平台上購買和模擬運行為舊款遊戲機設計的遊戲。儘管可運行的遊戲數目較少，但Virtual Console能模擬的遊戲平台覆蓋較廣，有紅白機、超級任天堂、Game Boy家族、任天堂64、任天堂DS等任天堂自家的平台，也包括世嘉的Master System、Mega Drive、NEC的PC Engine、SNK的Neo Geo等其他廠商的遊戲平台。為擴大Virtual Console的遊戲庫並提高兼容性，任天堂給每個遊戲搭配了優化過的定製模擬器，但仍缺少非官方模擬器提供的畫質增強等功能。

由於Xbox不同世代間的硬體差異，新世代的Xbox並不原生兼容舊世代Xbox的遊戲。然而，微軟通過軟體模擬的方式實現對一些暢銷遊戲的向下兼容。需要注意的是，Xbox One對Xbox 360的向下兼容功能並不額外收費，如果已經購買了支持的遊戲，則可直接在Xbox One上運行。

索尼的PlayStation 3及之後的遊戲機通過軟體模擬的方式運行首代PlayStation的遊戲。PlayStation 3的早期型號搭載了PlayStation 2的硬體晶片，因而能直接運行PS2遊戲；不過後來，PlayStation 3去除了PS2的Emotion Engine晶片，改用硬軟體混合模擬；最終，索尼移除了所有的PS2晶片。與任天堂Virtual Console類似，索尼將PS2遊戲與模擬器打包，在PlayStation Store上售賣。

一些商業遊戲開發商也使用模擬器為新遊戲機發行舊版遊戲。世嘉發布了數個刺蝟索尼克系列等經典遊戲合集。在Virtual Console發布之前，任天堂也採用這種方式，為Game Boy Advance製作了紅白機移植遊戲系列Famicom Mini。

### 其他應用

儘管模擬的主要目的是讓舊款遊戲在新平台上運行，但模擬器也提供了不少無法在原始平台上實現的功能。

#### ROM修改

加載遊戲的過程對於大部分遊戲機模擬器來說必不可少，大部分使用者會將實體版遊戲（卡帶或光碟）提取製成鏡像文件，便於後續模擬器讀取。鏡像里的遊戲文件容易修改，再加上模擬器的協助，對於業餘程式設計師和遊戲愛好者們來說修改遊戲更方便，他們熱衷於翻譯遊戲、重寫對話、修復原始遊戲錯誤，甚至是為3D遊戲製作高解析度紋理包。

#### 增強體驗

模擬器能改進原遊戲機已有的功能，提供附加功能，以此改善遊戲體驗。大部分模擬器能提升遊戲畫質（使用反鋸齒、高解析度渲染、各向異性過濾等圖形增強）。一些模擬器可以提高音頻性能（通過減少延遲和使用更好的數據插值演算法），即時存檔，降低啟動和加載時間，有的模擬器能直接跳過遊戲機的啟動畫面。此外，有的模擬器提供在線多人遊戲功能，甚至還具備遊戲調速功能。

#### 繞過區域限制

由於一些原因，一些遊戲廠商為其遊戲機設置區域限制。這項限制令人生厭，因為有的遊戲在PAL與NTSC版本中的體驗並不一致，有些差異令人費解。而且部分遊戲沒有在全球發售，並不能在未發行的地區玩到，比如一些只在日本發行的遊戲。

雖然遊戲機經修改可以繞過區域限制，但可能會由於機器的輸出設計造成一系列問題，例如異常的顯示或者不能以正常速度運行。模擬器有獨立的顯示輸出模塊，這些問題也不復存在。

#### 遊戲作弊與寬屏補丁

大多數模擬器支持遊戲機專用的作弊碼（如GameShark、Action Replay等），有的還允許用戶從菜單中切換作弊碼。許多模擬器的調試程序也能輔助玩家製作自己的作弊碼。寬屏補丁也是基於作弊碼而產生，一些遊戲通過修改記憶體中設定的輸出寬高比，使得為非寬屏設計的遊戲能以寬屏的比例輸出，不會出現圖像拉伸的問題。

#### TAS競速

TAS競速是遊戲機模擬器衍生出來的一種應用。

## 常見的模擬器軟體

### 街機模擬器

- MAME （模擬卡普空CPS、NEOGEO及其他）
- Finalburn Alpha / FinalBurn Neo （模擬卡普空CPS、NEOGEO）
- Kawaks （模擬卡普空CPS、NEOGEO）
- Nebula （模擬卡普空CPS、NEOGEO）
- NeoRAGEx （模擬NEOGEO）
- Callus（模擬卡普空CPS）

### 家用機模擬器

- VirtuaNES（模擬FC紅白機）
- Gens（模擬Mega Drive）
- MagicEngine（模擬PC Engine）
- Snes9x（模擬SFC超級任天堂）
- ZSNES（模擬SFC超級任天堂）
- VBJin（模擬Virtual Boy）
- Project64（模擬任天堂64）
- Dolphin（模擬Gamecube與Wii）
- Cemu（模擬Wii U）
- Bleem!（模擬PlayStation）
- ePSXe（模擬PlayStation）
- DuckStation（模擬PlayStation）
- PCSX2（模擬PlayStation 2）
- RPCS3（模擬PlayStation 3）
- Chankast（模擬Dreamcast）
- Redream（模擬Dreamcast）
- Flycast（模擬Dreamcast）
- nullDC（模擬Dreamcast）
- Demul（模擬Dreamcast）
- Cxbx（模擬Xbox）

### 掌機模擬器

- VisualBoy（模擬Game Boy）
- VisualBoyAdvance（模擬Game Boy與Game Boy Advanced）
- NO$GBA（模擬Game Boy Advanced與任天堂DS）
- iDeaS（模擬任天堂DS）
- DeSmuME（模擬任天堂DS）
- Drastic（模擬任天堂DS）
- PPSSPP（模擬PlayStation Portable）
- Citra（模擬任天堂3DS）