Yet another Chip-8 emulator - this time in RUST 🦀. WHAT A CONCEPT.
The spec was based on the brilliant document from Cowgods neato specification
- All instructions (kinda)
- Basic Memory structure
- Basic execution of instructions
- Loading ROMs from disk
- Implement the rest of the instructions
- Implement a display
- For the emulators output
- Able to write sprites from arbitary memory locations to display using
drw
instruction - Able to use built in sprites for hexidecimal numbers
- Able to write sprites from arbitary memory locations to display using
- GUI for viewing the internal state of the CPU
- Semi-completed. Currently able to view internal state of Memory/Display/CPU via
DebugDisplay.view_state()
- Semi-completed. Currently able to view internal state of Memory/Display/CPU via
- For the emulators output
- Support for the timers
- Support for the Chip-8 16 key keyboard
- Currently broken, any ROM that tried to read keyboard state will cause the emulator to panic
- Execution control
- Ability to step through execution?
- Modify memory locations at runtime?
- Fancy GUI?
- Perhaps support for a basic assembly language? 👀
- Implemented a disassembler for Chip8 ROMS (see Chip8-asm)