Language Start

Github ZIP TAR.GZ

A CHIP-8 interpreter/emulator/decompiler written in Rust.

Chip8 has full implementation of the CHIP-8 spec opcodes with full test coverage (with TravisCI). It has an ncurses front-end to render the screen output and register values.

Chip8 also has a full decompiler to turn programs back into assembly:

$ cargo run -- decompile -i ZERO  | head -n 20
0200: 60 0a   MOV V0, #$A
0202: 65 05   MOV V5, #$5
0204: 66 0a   MOV V6, #$A
0206: 67 0f   MOV V7, #$F
0208: 68 14   MOV V8, #$14
020a: 61 01   MOV V1, #$1
020c: 62 01   MOV V2, #$1
020e: 63 01   MOV V3, #$1
0210: 64 01   MOV V4, #$1
0212: 60 0a   MOV V0, #$A
0214: a2 78   SI $278
0216: d0 56   DRAW V0, V5, #$6
0218: 70 0a   ADD V0, #$A
021a: a2 7e   SI $27E
021c: d0 66   DRAW V0, V6, #$6
021e: 70 0a   ADD V0, #$A
0220: a2 84   SI $284
0222: d0 76   DRAW V0, V7, #$6
0224: 70 0a   ADD V0, #$A
0226: a2 8a   SI $28A