For now, it's only a Chip-8 Virtual Machine in python.
The name comes from the tools I hope to add:
- Eight, as in Chip-8 VM
- Debugger
- Assembler
- Disassembler
Only the classic CHIP-8 instruction set is currently supported. XO-CHIP and other extensions are not currently supported, but may be added one day.
- Python Version >= 3.8
- (GUI only) OpenGL 3.3+, Python version < 3.12
- (TUI only) Unicode support in your terminal
The GUI does not yet work with Python 3.11 due to arcade's dependencies not yet supporting it.
- Clone this repo locally
- Make a new virtualenv and activate it
- Change directories into the repo copy
pip install .
if you only want to run ROMs, orpip install -e .
to install an editable copy.
Dependencies will be automatically installed.
Reminder: only the original CHIP-8 instruction set is supported.
To run a ROM, make sure you're in the activated virtual environment, then use the following:
eightdad -r path/to/chip8.rom
If you want to use the TUI, run eightdad-tui
instead.
eightdad-tui -r path/to/chip8.rom
For additional information, use the help option:
eightdad --help
I want to learn more about assemblers, Virtual Machines, and implementing languages! This is a step toward other projects and becoming a better developer.
But Octo already exists!
I know. I like it, and I've contributed to both Octo and its more resource-effiicent C implementation, c-octo. Writing my own tools will help me more with the goals above.