For anyone inspired to write their own Chip8 interpreter, I maintain a repository of modern games and programs for the platform (as well as some extended variants). You can give them a try directly from this gallery: https://johnearnest.github.io/chip8Archive/
I'm missing something, I think. What's the big deal with CHIP-8? I'm starting to see people using it as a programming challenge and I guess I don't understand what the big deal is. Is it just a fun project or something? What's prompting this?
I believe it's popular because it has fewer opcodes (35 total), and an overall simpler ISA than alternatives like the Z80 or 6502. So it's a good target for your first time writing an emulator.
CHIP-8 is small enough to get familiar with and implement within a few days.
This makes it a great starting point for getting into things like virtual machines, emulation etc but also a great weekend project in and of itself (scope, specs, examples, …)
People ask for programming advice all the time, they say "I want to write a SNES/Playstation/Gameboy/ZX Spectrum emulator, what should I learn?"
Having a standard, and simple, system to suggest elsewhere allows people to get started gently. Sure some people will still find it "too much", but it's nicer to learn that earlier instead of after having weeks writing the implementation of a Z80 emulator.
As the system is simple it can often be implemented in an evening, or a weekend. If you're new to low-level code then maybe a month of part-time work would be sufficient. Because the system is so undemanding you can write it in Python, Javascript, C#, or other high-level languages without the need to touch/learn/understand C, Golang, or similar too.
In short it's a perfectly self-contained small project for those interested in implementing emulators, and for that reason it is often seen as a starting point for places like reddit's /r/emudev
And even with all that simplicity, there's enough disagreement and misinformation about the subtleties of the CHIP-8 instruction set to provide a microcosm of the same challenges emulation enthusiasts face for more complex systems.
I wrote one[0] because it was recommended as a good first emulator due to its simple nature. Been meaning to write an emulator for ages and now that I have I wanna try something more advanced like a Gameboy.