7 comments

[ 2.3 ms ] story [ 24.9 ms ] thread
I was hoping this would go more into the emulator itself... instead it's more a high-level overview of "things I liked about Rust", most of which are fairly well-trodden
Depends on your area of interest. How to build a game boy emulator is pretty well trodden as it's usually used as the beginner's guide to emulation.

Here's a step by step guide in JS, for example: http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-The-C...

I would honestly recommend not trying to emulate the gameboy if you’re doing emulation for the first time. I did this and it didn’t go very well (but perhaps I’m a below average person)

Chip8 or the NES (6502+PPU) are probably better places to start for beginners.

Isn't the PPU very hard? Especially the fact that both the 6502 and the PPU execute in parallel?
The PPU is definitely complex but the NES has the benefit of being much, much, much better documented than the GB which is honestly a huge advantage.

The NES also has a bunch of complex cartridge mappers but you don’t necessarily need to implement the most complex ones like MMC5.

I've been writing a GameBoy emulator in Rust too haha, though as I've written one before, I'm looking at this more in the context of a static recompilation exercise. Building a GameBoy on an FPGA has been another ongoing pet project.

The canonical reference for anyone building a GameBoy emulator are the Pan Docs [1, 2] -- originally written by Pan, then maintained by Martin Korth of NO$GMB.

[1] https://gbdev.io/pandocs/

[2] https://github.com/gbdev/pandocs

Building a game boy emulator with [insert trending programming language here]