写一个GAMEBOY的模拟器
唐威
2023-12-01
想写一个GAMEBOY的模拟器应该是很久很久以前的想法了,不过都没有去实现过。一则工作太忙,二则很懒,三是自己做事情总是虎头蛇尾。去年某一天,突然下定决心要写一个GAMEBOY的模拟器,主要还是想要锻炼下自己做事情的态度(其实到现在也还没有完全写完),提升自己对生活和工作的热情。
首先就是找GAMEBOY的相关资料,还有就是看一些别人写的模拟器。网上流行的GAMEBOY模拟器种类繁多,我感觉比较好的就是NO$GMB、BGB、VisualBoyAdvance,前两个都提供调试功能,但NO$GMB的兼容性不大好,对于彩GAME基本都不能运行;VisualBoyAdvance在技术上提供的比较全面,支持GDI,DirectDraw,过滤器等,但不支持调试功能。GAMEBOY的相关资料不是很多,但NO$GMB网上有提供一份比较完整的硬件描述资料
对于GAMEBOY有两大块需要模拟,一块就是游戏机,一块就是卡(所谓的ROM),使用模拟器的时候,ROM就是一个个的文件,不过要是你仔细阅读Pan Docs的话,你就会发现真实的游戏卡里面有控制电路,以实现Memory Bank Controller(MBC)。
GAMEBOY我主要把它分成主以下几个部分来实现,其实可能没有这么多,只是我编程的时候是按照这样去划分的
1.CPU
2.MEMORY
3.VIDEO
4.JOYPAD
5.IO
6.SOUND
7.CARTRIDGE
8.MBC
9.TIMER
10.BUS
(未完)