为什么开发游戏机模拟器如此困难?


14

我总是发现模拟器非常吸引人。我很想为老式的gangan控制台或手持设备创建一个模拟器。这将有助于我更好地了解硬件以及为该硬件创建的游戏。但是,人们总是说这有多困难,我什至不应该尝试。我想知道为什么。

另外,我想在一个好的起点上找到一些建议,在哪里可以找到所需的信息?

Answers:


15

所以问题

这似乎是关于它们如何工作的流行资源。

TL; DR-体系结构完全不同,要实现原始体系结构需要大量并行资源。

与您的普通台式机相比,游戏机的CPU架构通常有点陌生。仿真是指在软件中执行原始硬件所做的一切。也就是说,虽然原始控制台可能具有专用的图形,音频等芯片以及具有不同指令集的CPU,但仿真器必须快速执行这些并行资源的所有功能。

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

除了所有这些困难之外,通常对于控制台硬件的细节知之甚少,因为这在设计上就非常隐秘。反向工程对于业余爱好者而言越来越不可行。

综上所述,体系结构模拟器(例如可以在x86机器上运行PowerPC程序并收集各种统计信息的程序)的运行速度可能比实时运行速度慢1000到100000倍。现代CPU的RTL模拟(构成一个芯片的所有门和触发器的模拟)通常只能在10Hz到几百Hz之间运行。即使是非常优化的仿真也可能比本地代码慢10到100倍,从而限制了如今令人信服的仿真(特别是考虑到游戏机仿真器所隐含的实时交互性)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.