【发布时间】:2012-06-24 01:08:54
【问题描述】:
我想尝试编写一个基本的gameboy 模拟器,或者甚至是NES。我知道 C 的基础知识,而且我相当擅长 Java,所以我知道必要的编程基础知识。但我不知道的是,人们如何将所有数据处理成 C 程序并从中创建一个模拟器。我知道我应该从源代码中学习,但是在不知道它们为什么存在以及它们应该做什么的情况下,很难看到一堆代码行。如果我想学习如何编写这样的模拟器,我应该从哪里开始?
我已经搜索了互联网,但我只发现了包含太多错误的不清楚的教程,我无法自己弄清楚。我应该从哪里开始?
【问题讨论】:
-
我有一个模拟器集合github.com/dwelch67你首先需要学习的是目标cpu的汇编语言,然后使用按执行顺序反汇编的反汇编程序,在某些时候你可以开始转动进入指令集模拟器。然后你必须为所有外围设备制作模拟器。所以你需要为你正在模拟的系统提供好的文档。
-
另一种方法是静态二进制转换器,SBT。 dwelch.com/ipod/asteroids.htm 是我为 ipod(经典)所做的一个,自从那个版本发布以来,我在那个上做了很多工作,虽然没有在任何地方发布。关于这个主题的一个很好的教程。 gtoal.com/sbt 您也可以进行动态翻译,即时翻译而不是静态翻译。在你可以做静态之前,我不会尝试动态。
标签: c emulation low-level nintendo gameboy