3 ms·
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 w
by Phylter 7y ago
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?
- tosh 7y agoCHIP-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, …)
- tyingq 7y agoI 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. This chip-8 emulator, for example, is about 400 lines of Python, and I don't think the author was trying hard to make it small: https://github.com/Fluffet/chip8-emu?files=1 https://github.com/Fluffet/chip8-emu?files=1
- saagarjha 7y agoIt's simple and it lets you play games.
- giancarlostoro 7y agoI think this is the coolest part of it all.
- K0nserv 7y agoI 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. 0: https://github.com/k0nserv/chip-8 https://github.com/k0nserv/chip-8
- stevekemp 7y agoPeople 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
- RodgerTheGreat 7y agoAnd 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. One of my colleagues published a number of writeups about CHIP-8 portability based on original research which might be interesting: https://github.com/Chromatophore/HP48-Superchip https://github.com/Chromatophore/HP48-Superchip