CHIP-8 Reference #
This page tries to describe CHIP-8 and variants as a reference documentation for either emulator developers or CHIP-8 program developers.

I just started putting together this documentation, so there for sure are parts missing or information might even be wrong, this is a private hobbyist work for fun. I try to put everything together as well as I can, given the amount of time I can invest, so please don’t sue me if something is wrong, but let me know, so it can be fixed. 😉
Also, if you think something is missing (there is not even a stub page), let me know.
Motivation #
There sure are a lot of documentation sources out in the wild. The reason I started this documentation is, as a more comfortable reference for my own experiments in CHIP-8, but also as a default reference when answering questions of new CHIP-8 developers. So I’m not claiming this is the best documentation there is for any detail one may want to know, but instead of having a different link for every aspect, this tries to be a good default for as much as I can manage.
How These Informations Are Verified #
The information in the reference is the result of my work on ⎋ Cadmium, my CHIP-8 emulator. I tried hard to make the emulator pass any test I could get my hands on, unless investigation of why a test failed showed, that the test was broken or expected wrong/broken behavior. Tests/investigations for classic CHIP-8 where made with my own COSMAC VIP emulation, and the one from ⎋ Emma 02. Also by reading the actual code of most of the interpreters, either from available sources or by reverse engineering the behavior from code.
Current Scope #
This documentation currently strives to document the variants, simply because I worked with these while integrating them in my emulator and feel qualified to write about them:
- Variant Overview (A CHIP-8 ancestry overview and links to the individual variants)
- Classic CHIP-8 (in this case the classic initial/original behavior)
- CHIP-48 (initial version of CHIP-8 on HP-48 family calculators)
- SUPER-CHIP (all versions, with comments about the accidently released version)
- MEGACHIP (with comments on the original incomplete implementation and derived works)
- XO-CHIP (with comments on Octo where relevant)
There are dozens of variants out there. Some of them very exotic. A good overview of these and many more variants are on Tobias V. I. Langhoff’s excellent ⎋ CHIP-8 extensions and compatibility pages.
I will add more variants to the documentation (expect CHIP-8X), but I needed to start somewhere, and any emulator supporting these variants is in a pretty solid shape.