CHIP-8 is an interpreted programming language, developed by Joseph Weisbecker. It was initially used on the COSMAC VIP and Telmac 1800 8-bit microcomputers in the mid-1970s. CHIP-8 programs are run on a CHIP-8 virtual machine.
To simplify dependency resolution inside a virtual environment, I recommend using poetry.
poetry install
poetry run python main.py
positional arguments:
path Path to rom file
optional arguments:
-h, --help show this help message and exit
--backend {pygame,sdl}
Backend used to run the interpreter
--scale SCALE Scale the 64x32 display for better rendering on modern monitors
--hertz HERTZ, --hz HERTZ, --speed HERTZ
Number of instructions to execute per second. Some games require
adjustments to improve playability.
--profile, --no-profile
Profile CPU cycles. Outputs results on exit
A CHIP-8 interpreter supports 16 keys:
Chip-8 keyboard QWERTY Keyboard
+–+–+–+–+ +–+–+–+–+
|1|2|3|C| |1|2|3|4|
+–+–+–+–+ +–+–+–+–+
|4|5|6|D| |q|w|e|r|
+–+–+–+–+ +–+–+–+–+
|7|8|9|E| |a|s|d|f|
+–+–+–+–+ +–+–+–+–+
|A|0|B|F| |z|x|c|v|
+–+–+–+–+ +–+–+–+–+
F5
Stop executionF6
Execute next opcodeF8
Resume execution
- Cowgod's Chip-8 Technical Reference
- Awesome CHIP-8 - CHIP-8
- johnearnest.github.io/Octo/docs/chip8ref.pdf
- mattmikolay/chip-8: A collection of CHIP-8 programs and documentation
- Jackson S - Chip 8 Instruction Scheduling and Frequency
- BC_test error codes
- Byte Magazine Volume 03 Number 12 - An Easy Programming System