Octo-compliant CHIP-8 emulator frontend that runs in your terminal.
It uses deca
as the emulator backend, which supports CHIP-8, SUPER-CHIP (SCHIP) and XO-CHIP programs.
First, install Rust. Then, in your terminal:
sh
cargo install termin-8
Termin-8 should work on Windows, Linux, and macOS. If it doesn't, please file an issue.
Download CHIP-8 ROMs from the internet, like the Chip8 Community Archive, or make your own in Octo.
Then run Termin-8 in your terminal:
sh
termin-8 ROM
There are some command line options:
sh
termin-8 --help
The hexadecimal CHIP-8 keypad is customarily mapped to the following keyboard keys:
| | | | | |---|---|---|---| | 1 | 2 | 3 | 4 | | q | w | e | r | | a | s | d | f | | z | x | c | v |
In addition, the arrow keys are bound to WASD.
You can also use some other keys:
Note that the terminal requirements vary depending on what kind of program you attempt to run.
Here's a table with the required terminal size and Unicode support needed to get features such as XO-CHIP color support, depending on the resolution of the CHIP-8 program you're running and the Unicode Block Elements support of your font:
CHIP-8 resolution | Unicode version | Minimum terminal size | Pixel size | XO-CHIP colors |
---|---|---|---|---|
64x32 (lores) CHIP-8, SCHIP, XO-CHIP |
1.0.0 | 128x32 | ██ | ✔ |
64x32 | █ | ✔ | ||
64x16 | ▀ | ✔ | ||
3.2 | 32x16 | ▘ | ❌ | |
128x64 (hires) SCHIP, XO-CHIP |
1.0.0 | 256x64 | ██ | ✔ |
128x64 | █ | ✔ | ||
128x32 | ▀ | ✔ | ||
3.2 | 64x32 | ▘ | ❌ |
Notes: * In your browser, the smallest pixel block (▘) probably looks square, but this might not be the case with your monospace terminal font. * Pretty much all fonts support the basic Unicode Block Elements in Unicode 1.0.0 which are used for the larger pixel blocks (█, ▀ and ▄), but support for the smallest blocks (like ▘) from Unicode 3.2 is much less common. Font families like DejaVu and Fira Code support them.