获取游戏男孩 ROM 映像

Fetching a game boy ROM image

我已经开始用 C 为 game boy 开发一个非常简单的模拟器,我已经研究了 Z80 的 cpu 和相关操作码的锄头工作,但我心中有一个问题我从来没有找到答案。 当我使用打开 ROM 映像时 fopen(文件名,"rb") 如何获得指令来模拟?我试过这样做: fp = fopen(filename,"rb"); fread(buf,sizeof(buf),1,fp);但我不知道 Game Boy 的 ROM 是如何构造的..有人可以解释一下如何从 ROM 中获取指令及其结构吗?

Cartridge ROM 的执行总是从偏移量 0x100 开始。编写模拟器时,您有两种实现方式:

  1. 执行真正的gameboy boot ROM,它将通过跳转到卡带ROM中的0x100来完成它的执行
  2. 自己用值填充所有寄存器。引导 ROM 完成 CPU 的寄存器后,各种其他设备将保留特定值。您可以手动设置它们并自己从 0x100 开始执行卡带 ROM。这样你甚至不需要引导 ROM。您可以在 Gameboy CPU 手册中找到这些值。