一位程序员成功实现用红白机模拟x86 PC

摘要:

在古老的任天堂NES游戏机(红白机)上模拟古老的 PC 技术能达到什么程度? 一位程序员开始回答这个具有挑战性的问题,他依靠一系列软件技巧来实现自己的目标。 幸运的是,在这一过程中没有损坏任何实际硬件。

NES86是一个最新发布的项目,旨在将早期的 PC 系统模拟引入任天堂娱乐系统。 该模拟器似乎可以重现英特尔 8086 处理器和基本 PC 硬件,其精确度足以启动和运行精简版的 Linux 内核。

一位名叫"decrazyo"的程序员开发了 NES86,并发布了一段视频,解释他是如何完成这一令人印象深刻的创举的。 初代 IBM PC 配备了主频为 4.77 MHz 的 x86 CPU,速度明显快于 NES 的 1.79 MHz 处理器。 为了克服这一差距,decrazyo 依靠仿真技术,煞费苦心地在任天堂游戏机上复制早期 PC 技术。

NES 的 RAM 和可寻址内存空间也比 IBM 5150 少得多,这就要求 decrazyo 实施内存映射技术,以便在两个系统之间有效切换。 选择在 NES86 上运行的 Linux 版本是一项较为简单的任务,因为程序员基本上只能使用可嵌入的 Linux 内核子集

在第一款 32 位 x86 芯片(80386)问世之前,ELKS 项目为 16 位英特尔处理器(包括 IBM 5150 PC 中使用的 8086 以及 8088、80188、80186 和 80286 等后几代处理器)提供了类似 Linux 的操作系统。 尽管 ELKS 是一款非常小巧的 Linux 终端,但由于其最低内存要求为 256KB,远远超出了 NES 的能力,因此不太可能在真正的 NES 硬件上运行。

根据其官方 GitHub 项目页面,即使在 PC 和其他平台的现代 NES 模拟器上也很难运行 NES86。 少数兼容的模拟器包括 FCEUX、Mesen2、Rustico 和基于 FPGA 的 EverDrive N8 Pro 卡带。 值得注意的是,Mesen2 最近已更新为与 NES86 完全兼容。

不过,"最佳"的 NES86 体验可以通过一种意想不到的方式实现,那就是在 GameCube 模拟器上玩最初的《动物之森》。 任天堂 2001 年推出的这款社交模拟游戏内置了 NES 模拟器,玩家可以通过游戏中的机制收集和玩各种 NES 游戏。

通过黑进《动物之森》中的 NES 模拟器,同时在 GameCube 模拟器上运行,decrazyo 成功以每帧 30 秒的速度运行了 PC 版《俄罗斯方块》。 是的,你没有看错。

我们在FebBox(https://www.febbox.com/cnbeta) 开通了新的频道,更好阅读体验,更及时更新提醒,欢迎前来阅览和打赏。
查看评论
created by ceallan