Chip8 Emulator in Ruby
License: MIT
Dependencies:
- Gosu. Installation depends on your system. See: https://github.com/gosu/gosu/wiki
Usage:
- Place ROMs in the ROMS/ folder
- Execute: ruby emu.rb
- Keys are 0-9A-F on the keyboard (mapped to their CHIP-8 Hardware keys)
There's also an assembly viewer (dis.rb) which takes a ROM and pretty prints it (identifies instructions and arguments).
Unimplemented features:
- No sound (could be easily added to the Gosu::Window class)
- BNNN function because I haven't ran across anything yet that uses it.
- 8XY6/8XYE instructions are implemented as VX = VX << or >> 1 instead of VX = VY << or >> 1
Thanks to:
- emudev.slack.com people
- Various websites, etc, that provided information about the CHIP-8 instruction set. Specific websites are called out in the code.