This is a simple CHIP8 interpreter/emulator that focuses on the CHIP-XO extension-set, used by the Octo assembler/interpreter.
It's my first "larger" Project in C, and therefore will certainly leave some things to be desired. Feedback is always welcome!
-
Support for 4bit bitmaps (for a total of 16 different colors), extending upon Octo (However, the standart does mention this addition)
-
Keyboard input
-
Extended memory (64kb)
-
Scrolling (also supports indivdual bitmaps)
-
Basic commandline options (i.e. speed, custom font, colorscheme...)
-
Audio
-
HP48 Flag registers (optcode prints a warning)
-
Add a custom assembler with support for 4bit bitmaps (veeery TODO)
What is required:
- An accessible SDL2 installation
- Roms can be found... online or here and here
- This code should work just fine on Windows, however it has only been tested on an Arch Linux installation.
You can set a log level by exporting/setting the LOG_LEVEL
ENV. Possible values are: all, debug, info, warn, error, none
. Defaults to all
.
The interpreter prints each executed instruction and relevant register values to the terminal (using the debug log level). A slow terminal might hinder program execution.
- Guide to making a CHIP-8 emulator: A really well written guide, that aims to explain architecture, rather then code.
- CHIP8 Reference
- Super-CHIP Reference
- CHIP-XO Reference: A technical reference for the XO Extension set, which is used by the Octo