WIP Chip-8 emulator focused on performance and configurability
John Breaux
dc61bd0087
Chip-8 has no ROM, nor memory management. - It's much easier to just use contiguous memory. - Then we can return references to slices of that memory - ~3x speed increase Screen exists now, uses 24-bit framebuffer - We have a 1-bit framebuffer - I chose colors that look good to me Controller exists as well, has 16 buttons - Mapped "0 123 456 789 ab cdef" to (QWERTY) "X 123 QWE ASD zC 4RFV" - Other chip-8 interpreters may use a different layout - This is good enough for now. - F1-F9 map to control functions - F1, F2: Dump CPU registers/screen contents - F3, F4: Toggle disassembly/pause - F5: Single-step the CPU, pausing after - F6, F7: Set/Unset breakpoint - F8, F9: Soft/Hard Reset CPU |
||
---|---|---|
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
readme.md |
Chumpulator
How does an emulator work? I don't know!
So I wrote this, to see if i can find out.
TODO:
- Timing (insns should run at about 500Hz)
- Screen (Memory is present, drawing sprites is not)
- Sound (Beep boop, how to make noise?)
- Which abstractions are useful?