编写我的第一个Gameboy模拟器

2020-12-31 21:15:48

好吧,今天的帖子可能有点作弊,因为我在这个项目上还差得远。但是,我真的很兴奋,因为我刚刚启动了“俄罗斯方块”标题屏幕!

这是我第一次在模拟器上工作,哦,男孩,我很遗憾花了这么长时间才得以解决。这是我从事过的最有意义的项目之一。我不仅觉得自己对机器的内部有了更根本的了解(这很重要),而且突然看到别人的软件在屏幕上弹出,真是令人兴奋。

我现在仍在自己的旅程中,但我想与大家分享到目前为止所做的一切,希望可以鼓励其他人尝试一下。

这一切都始于bootrom。该游戏男孩没有操作系统。它只是有一个简单的引导程序,向您显示了著名的Nintendo徽标(实际上是一种新颖的DRM方案)。这是一个非常简单的程序,您可以逐行阅读,从而很容易找出我要去的地方。我首先制作了一个“ CPU”,这只是每个操作码中一个很大的ol switch语句。这绝对是该项目中劳动强度最大的部分。有很多操作码。

在实现操作码时,您很快发现,Gameboy内存基本上只是一个数组。因此,接下来,我创建了寄存器和一个“ MMU”(游戏男孩实际上并没有MMU,但这使事情更易于管理)。大约四天后,我获得了Nintendo徽标渲染!

简单的渲染非常简单。 Gameboy将写入为视频保留的特定内存区域,因此您需要做的只是从那里读取信息,以了解应渲染的内容。一旦达到目标,我就完全迷上了。我只是实现越来越多Gameboy硬件的方法正在工作。

如果您有时间并且有兴趣,我强烈建议您试试这个项目。很好玩。祝您编码愉快!