游戏机模拟器

<image>

游戏机模拟器是指通过软件方式模拟实体电子游戏机及其上面运行的游戏的模拟器程序。通常情况下，游戏机模拟器能打破原游戏机硬件的限制，提供诸如非原生手柄的支持、游戏速度控制、性能与画质增强等功能。在为已停产的旧游戏机开发自制程序或新游戏的过程中，模拟器也起着重要作用。

## 工作原理

模拟器包含很多组件：分别模拟原始机器中央处理器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）