GameBoy Color游戏ROM的布局和结构参考?

24

有没有关于GameBoy Color游戏ROM如何布局的参考或来源——数据和代码的位置,使用了什么机器码指令,时钟的工作等等?我想自己建立一个模拟器,但是我无法找到关于ROM设置的信息,除了在十六进制编辑器中查看它们。我对.gbc文件格式的ROM感兴趣。

当然,我可以查看一个可用模拟器的源代码,但是在开始时我更感兴趣的是高层级的东西。


编辑:这里有很多好的资源:

  • Z80用户手册(有助于了解标志位)
  • 讨论Gameboy Color Z80与8080/Z80的区别
  • 大量关于Gameboy架构(+GBA)的网站
  • 另一份关于GBSpec的文档,包括时序
  • 此外,请查看我正在开发的项目源代码以及C#编写的Gameboy Classic仿真器(更多文档)


    我以为 Visual Boy Advance 只支持 GBA。Gameboy 是修改后的 Z80,而 Gameboy Advance 是 ARM7,两者差别很大。无论如何,这曾经是一个热门网站,专门涉及此类问题 http://www.devrs.com/gb/ 或许有一些关于你问题的链接。 - old_timer
    谢谢,这看起来是一个非常棒的网站:我从中找到了这个链接http://www.devrs.com/gb/files/gbspec.txt,它看起来是一个非常好的深度规范。 - Callum Rogers
    1个回答

    13

    0x100至0x14F是ROM头文件。 其余所有内容均为“ROM”,意味着指令与数据交织在一起等等。

    https://web.archive.org/web/20141105020940/http://problemkaputt.de/pandocs.htm

    操作码定制为类似于Zilog Z80,但并非完全相同,因为CPU芯片本身与Z80不同,时钟周期和寄存器F标志也完全不同。

    请查看我的代码以了解操作。 https://github.com/grantgalitz/GameBoy-Online/blob/master/js/GameBoyCore.js 请查看第525行及以下行。 GameBoy Color模拟器使用JavaScript FTW。

    Imran的模拟器是查找操作码工作方式的糟糕来源,因为他的模拟器仍然存在许多问题需要解决。请查看gambatte的源代码,以获取最准确(准确且“更多”)的控制台工作方式描述。


    感谢您的回答,即使是在问题提出很久之后。您是正确的,Imran 混淆了许多操作码,所以我从各种参考资料中自己完成了它们 :D - Callum Rogers
    第二个链接已经失效。 - S.S. Anne

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接