取得游戏男孩ROM映像

时间:2018-12-29 13:37:20

标签: c console emulation rom gameboy

我已经开始为C语言中的游戏男孩开发一个非常简单的模拟器,我已经研究过work头的Z80的CPU和相关的OpCode,但是我心中有一个问题,我从未找到答案。 当我使用打开ROM映像时 fopen(文件名,“ rb”) 如何获得要模拟的指令?我试着做: fp = fopen(filename,"rb"); fread(buf,sizeof(buf),1,fp);,但我不知道Game Boy的ROM的结构如何。有人可以解释我如何从ROM及其结构中获取指令吗?

1 个答案:

答案 0 :(得分:1)

盒式ROM的执行始终从偏移量0x100开始。编写仿真器时,有两种方法可以实现此目的:

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