Personally, I've had more trouble understanding the PPU behavior than i did about the cpu instructions and timings.
I'd mostly been going off of The Ultimate Game Boy Talk[0] and the pandocs[1]. In trying to quickly dig up some resources now, I found what at first glance looks like a good blog series[2], so I might take some time to squint at them soon.
If any HNer has other good resources describing it, I'd be thrilled. It's been a couple years since I've hacked on my own emulator, and I got through implementing quite a bit of the behavior. As I recall, I was able to get serial output from the test roms, which was pretty cool. I put it down after getting frustrated trying to render the screen.
Hey there! I've been working on a Game Boy emulator since last year and found the GameRoy project, which translates the PPU's logic from SameBoy, the (AFAIK) most accurate GB emulator around. I basically copied the PPU logic into my emulator and replaced the "state" property (an integer) with enums for some extra clarity.
It guides you through making a Gameboy emulator step by step. When I did it I remember that something that was a bit frustrating is that you had to do things a certain way that only made sense much later when other pieces of the puzzle fell into place
I'd mostly been going off of The Ultimate Game Boy Talk[0] and the pandocs[1]. In trying to quickly dig up some resources now, I found what at first glance looks like a good blog series[2], so I might take some time to squint at them soon.
If any HNer has other good resources describing it, I'd be thrilled. It's been a couple years since I've hacked on my own emulator, and I got through implementing quite a bit of the behavior. As I recall, I was able to get serial output from the test roms, which was pretty cool. I put it down after getting frustrated trying to render the screen.
[0] https://www.youtube.com/watch?v=HyzD8pNlpwI&t=2957s
[1] http://bgb.bircd.org/pandocs.htm#videodisplay
[2] https://blog.tigris.fr/2019/09/15/writing-an-emulator-the-fi...