The first step is always the hardest...

The first step is always the hardest...

For a few years I’ve started and stopped working on CHIP-8 documentation. I don’t enjoy writing docs the same way I enjoy writing code. But over the last years I’ve learned something: many of the most commonly used CHIP-8 resources are, in my opinion, incomplete, ambiguous, or occasionally misleading.

This leads to many new CHIP-8 implementations sharing the same errors and to frustration on their developers. During our everyday support work in #chip-8 of the EmuDev Discord, we come across a lot of these cases.

So this is my attempt to document CHIP-8 with as many of its variants as possible. Pointing out the details, the pitfalls, and the tricky parts. Hopefully this will help others to avoid the same mistakes or give them a resource to fix or improve their implementations.

Is this the best documentation out there, or just another case of xkcd #927? Probably the latter. This take is certainly not perfect, writing good documentation is hard, and English is not even my native language. But I decided to still add my take on this to the pool of knowledge, and I hope some find it useful.

Parts of the documentation are still missing, and others are resurrected fragments of my previous attempts. It sure will take a while to get the structure settled and the content polished.

Bear with me on this journey.

Gulrak


Built with ⎋ Hugo · Theme: ⎋ Hugo Book · chip8kb source ⎋ on GitHub