Chip-8 interpreter written in Lean.
lake build
./build/bin/chip8 [OPTION]... ROM--volume Vsound volume: nonnegative integer, maximum: 100, default: 30--ram Rram size: integer, minimum: 512 + rom size, default: 4096--ips IPSinstructions per second: nonnegative integer, default: 600--stack SSstack size: nonnegative integer, default: 128--dw DWdisplay pixel width: nonnegative integer, default: 64--dh DHdisplay pixel height: nonnegative integer, default: 32--c0 C0color of unlit pixels: see below, default: "black"--c1 C1color of lit pixels: see below, default: "white"
Available colors: lightgray, gray, darkgray, yellow, gold, orange, pink, red, maroon, green, lime, darkgreen, skyblue, blue, darkblue, purple, violet, darkpurple, beige, brown, darkbrown, black, magenta, white.
--Qjump-offsetor--Qno-jump-offset, default: false--Qshiftor--Qno-shift, default: false--Qindex-addor--Qno-index-add, default: false--Qmem-index:keep,--Qmem-index:addxor--Qmem-index:addx1, default:addx1--Qbitwise-flagor--Qno-bitwise-flag, default: true--Qdisplay-intor--Qno-display-int, default: true--Qget-key-relor--Qno-get-key-rel, default: true
See descriptions in Config.lean. Example preset compatible with some roms not working with default configuration, e.g., space invaders.



