https://github.com/omrawaley/chip8-go
CHIP-8 emulator written in Go, featuring a TUI interface.
https://github.com/omrawaley/chip8-go
chip8 chip8-emulator chip8-interpreter emulation emulation-library emulator emulator-development go golang terminal-app terminal-game tui tui-app
Last synced: 4 days ago
JSON representation
CHIP-8 emulator written in Go, featuring a TUI interface.
- Host: GitHub
- URL: https://github.com/omrawaley/chip8-go
- Owner: omrawaley
- License: mit
- Created: 2026-06-22T11:03:55.000Z (6 days ago)
- Default Branch: main
- Last Pushed: 2026-06-24T23:39:00.000Z (4 days ago)
- Last Synced: 2026-06-25T01:09:31.597Z (4 days ago)
- Topics: chip8, chip8-emulator, chip8-interpreter, emulation, emulation-library, emulator, emulator-development, go, golang, terminal-app, terminal-game, tui, tui-app
- Language: Go
- Homepage:
- Size: 16.5 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# chip-8 go
A CHIP-8 emulator written in Go, featuring a TUI interface.
This project was mostly written for myself so that I could learn Go and how to build TUI apps. I also built this for Hack Club Macondo.
## Demo
https://github.com/user-attachments/assets/0aaba8f6-857f-4ec8-8881-251a7e12c83a
## Features
- Blazing fast terminal rendering using only Unicode characters
- Virtual keypad support for both legacy terminals (e.g. `xterm`) and modern terminals (e.g. `kitty`)
- Built-in file browser for selecting ROMs
- Pause functionality
- Interactive help menu
- Customizable display palette
## Installation
Firstly, install [Go](https://go.dev/doc/install) on your machine.
Then, to compile chip8-go, run `go build ./cmd/tui`.
## Usage
Now you can execute the binary to launch the program (e.g. `./chip-8`).
It takes an optional argument specifying the path to a ROM.
## Custom Frontends
The `internal` folder contains all core CHIP-8 logic and data. You can use the `chip8` package to implement any type of frontend you want (not limited to just TUI).
See `cmd/tui/main.go` to understand how to implement your own frontend.
## Authors
- [@omrawaley](https://www.github.com/omrawaley)
## Related
Here are some related projects of mine:
- [Game Boy Emulator (C++)](https://github.com/omrawaley/gameboy-emulator)
- [CHIP-8 emulator, debugger, and disassembler (C++)](https://github.com/omrawaley/chip-8-emulator)
- [CHIP-8 emulator rewrite (Rust)](https://github.com/omrawaley/chip8-emulator-rust)
## License
[MIT](https://choosealicense.com/licenses/mit/)