A C-based CHIP-8 interpreter with assembler, disassembler, and SuperChip support, featuring SDL and Win32 implementations.
CHIP-8 is a C-based implementation of a CHIP-8 interpreter, assembler, and disassembler. It allows developers to run, create, and analyze CHIP-8 programs, which are simple bytecode applications used in vintage computing. The project solves the need for a portable, accurate toolchain to experiment with this historical platform, including support for SuperChip extensions.
Developers interested in retro computing, emulator development, or low-level programming who want to explore CHIP-8 systems. It's also suitable for educators teaching emulation concepts or hobbyists building vintage game interpreters.
Developers choose this for its comprehensive toolset (interpreter, assembler, disassembler), cross-platform support via SDL and Win32, and accurate emulation with configurable quirks. Its clean architecture separates core logic from platform code, making it easy to extend or port.
A CHIP-8 interpreter, assembler and disassembler in C
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes an interpreter, assembler, and disassembler in one package, enabling full-cycle CHIP-8 development from source to execution, as shown in the command-line usage examples.
Offers SDL-based implementation for broad compatibility, native Win32/GDI for Windows, and Emscripten build for web, detailed in the compilation and usage sections.
Supports runtime quirks like QUIRKS_MEM_CHIP8 and QUIRKS_CLIPPING to handle CHIP-8 variants, referenced from test suites like Timendus' chip8-test-suite.
Provides a pause/step debugger with register display accessible via F5, F6, and F8 keys, useful for development and troubleshooting.
The TODO list admits the 'Display wait' quirk is not yet fixed, which could lead to inaccuracies when running certain CHIP-8 programs.
Emscripten build requires manual SDK installation and has reported linker errors with standard packages, making web setup complex and error-prone.
README assumes familiarity with C compilation and CHIP-8 specifics, lacking beginner-friendly guides or graphical tools for easier adoption.