Chip8 Emulator
14/04/2026
A chip8 emulator written in Golang
Tech Used
- Go (Golang) – core emulator implementation
- Ebiten – rendering, game loop, sound output and input handling
Running the emulator
Prerequistes
- go 1.24.4
Clone the repositry
git clone https://github.com/rentri/goChip8.gitRun & Build
cd goChip8Run without building
go run . <path-to-rom>OR
Build
go build -o chip8Then run
./chip8 <path-to-rom>Showcase
Tetris

Breakout

Space Invaders

Pong

Tests Passed
Chip-8 Splash Screen

IBM LOGO

CORAX+ opcode test

Flags test
Our implementation of SHR and SHL instructions uses modern beavior. Hence 8XY6 & 8XYE fail the last check.

Quirks test

Some key presses may occasionally not register due to high CPU speed or keyboard polling. If you press a key when the emulator was not checking if it is pressed, you will experience “key miss”, where the press won’t be registered. The slower the emulation speed the higher chance for it to happen.

Credits
- Test ROMs from Timendus’s CHIP-8 Test Suite
- Reference from Cowgod’s CHIP-8 Technical Reference
← Back to projects