7 ms·
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 G
by chrsig 4y ago
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.
[0] https://www.youtube.com/watch?v=HyzD8pNlpwI&t=2957s https://www.youtube.com/watch?v=HyzD8pNlpwI&t=2957s
[1] http://bgb.bircd.org/pandocs.htm#videodisplay http://bgb.bircd.org/pandocs.htm#videodisplay
[2] https://blog.tigris.fr/2019/09/15/writing-an-emulator-the-first-pixel/ https://blog.tigris.fr/2019/09/15/writing-an-emulator-the-fi...
- nicolas-siplis 4y agoHey 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. https://github.com/nicolas-siplis/feboy https://github.com/nicolas-siplis/feboy https://github.com/rodrigodd/gameroy https://github.com/rodrigodd/gameroy https://github.com/LIJI32/SameBoy/ https://github.com/LIJI32/SameBoy/
- icefo 4y agoIf you don't mind french, the project of this class that introduces OO programming was really great: https://cs108.epfl.ch/archive/18/archive.html https://cs108.epfl.ch/archive/18/archive.html 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