我如何学习编写控制台模拟器?

Zim*_*Zim 7 c emulation low-level nintendo gameboy

可能重复:
模拟器如何工作以及它们是如何编写的?

我想尝试编写一个基本的gameboy模拟器,甚至是NES.我知道C的基础知识,而且我相当擅长Java,所以我知道编程的必要基础知识.但我不知道的是人们如何将所有数据处理成C程序并从中创建模拟器.我知道我应该从源头学习,但是很难看到一堆代码而不知道它们为什么存在以及它们应该做什么.如果我想学习如何编写这样的模拟器,我应该从哪里开始?

我搜索过互联网,但我发现不清楚的教程包含太多错误,我自己也没弄清楚.我该在哪里开始?

Tyl*_*ves 7

你没有.你模仿硬件.您根本不必"处理"程序数据,您需要编写模仿CPU,图形硬件,输入设备等的代码.

一个好的第一步可能是编写Z-Machine仿真器,虽然它不是控制台,但它实际上是第一个广泛使用的"仿真器".它被用于所有infocom文本冒险(zork等).由于它是面向文本的游戏格式,因此在图形或声音方面没有太多效果,唯一的输入设备是键盘,您不必担心执行速度/同步.

这里有很好的文档记录:http://www.gnelson.demon.co.uk/zspec/preface.html

这实际上是一个项目,我的意思是在这些日子里自己承担,只是从来没有找到时间.