I am super impressed by the content of this post, but I bet there is also a lot that is going over my head that I am not even aware of.
I am super impressed by the content of this post, but I bet there is also a lot that is going over my head that I am not even aware of.
In my opinion, the best way to learn how an emulator works is to start writing one. /r/emudev and the emudev Discord (see subreddit sidebar) are a great place to start. The Discord in particular is great: it’s split into channels for each system, and there are a ton of pointers to resources for all systems in the main channel.
As far as consoles go, the typical recommendation is to start with CHIP-8. It’s a straightforward system with a very simple design, which makes it relatively easy to emulate.
[1] For the curious: https://github.com/aksiksi/gbc
I do wonder how one takes on modern machines though. It seems like it'd be a completely different ball of wax.
And it was a blast.
For emulating a real system, the Gigatron would be relatively simple. The hard part would be the display because it is bit-banged into NTSC.
This does sound like fun. I feel like I’ve had a similar experience in porting and refactoring legacy code, and each successive step forward unlocks more and more cool stuff
Basic overview of a GameBoy emulator. Far cry from the complexities of a Switch, but still a great writeup by cturt.