This project was my first foray into interpreters, emulators, and virtual machines. It's a fairly basic Chip-8 emulator with debugging tools that focuses on customizability.
- Load ROMs from CLI or GUI
- Reset ROMs
- Adjust ROM speed
- Pause ROMs
- Customize display colors
- Take screenshots
- Edit and view memory
- View registers, stack, and timers at runtime
- Adjust program counter while paused
A Chip-8 assembler that I've written can be found at https://github.com/omrawaley/chip-8-assembler.
Use the provided CMakeLists.txt
and compile with make
.
cmake CMakeLists.txt
make
./bin/chip8 <path-to-rom>
P - Pause ROM.
M - Open settings menu.
N - Open debug panes.
Migrate from C-style arrays tostd::array
Allow the user to modify IPS rather than frame time- Add more CLI arguments
- Allow the user to step through the program
Migrate away from usingtellg()
and instead usefile_size()
Chip-8 emulator - GPLv3
stb_image_write.h - Public Domain