是什么让构建游戏机模拟器如此困难

Unk*_*ech 13 emulation video-game-consoles

我一直在阅读有关人们为Wii构建模拟器的一些阅读,看来它只不过是一个强化的GameCube或Nintendo64,那么是什么让这些系统的构建模拟器变得如此困难?

稍微注意一下,这些系统的硬件出乎意料地低:
Wii:
   729MHz PPC CPU
   88MB内存
   243MHz GPU
N64:
   93.75MHz CPU(64位)
   4MB内存

Mat*_*t J 22

与普通桌面计算机相比,游戏控制台的CPU架构通常有些奇特. 仿真意味着在软件中执行原始硬件所做的一切.也就是说,虽然原始控制台可能具有专用图形,音频等芯片以及具有不同指令集的CPU,但仿真器必须以速度执行这些并行资源的所有功能.

除非控制台的GPU老旧,否则几乎肯定必须在主机的GPU上进行仿真,因为即使是最昂贵的多核CPU,现代显卡(甚至是廉价显卡)的吞吐量(图形工作负载)也是很多倍.使这一困难更加复杂的是,CPU,GPU,任何其他板载DSP和内存之间的通信可能在控制台上进行了高度优化,以利用硬件配置的细节,因此这些资源也必须进行速率匹配.

复杂化所有这些困难,通常对控制台硬件的细节知之甚少,因为它在设计上非常不受欢迎.对于业余爱好者来说,逆向工程越来越不可行.

为了正确看待问题,架构模拟器(例如,可以在x86机器上运行PowerPC程序并收集有关它的各种统计信息的程序)可能比实时慢1000x到100000x.现代CPU的RTL仿真(模拟构成芯片的所有门和触发器)通常只能在10Hz到几百Hz之间运行.即使非常优化的仿真也可能比本机代码慢10到100倍,因此限制了今天可以令人信服地模拟的内容(特别是考虑到游戏控制台模拟器隐含的实时交互性).