A CHIP-8 emulator that runs in your terminal
Report Bug
·
Request Feature
Table of Contents
chipATE is a CHIP-8 emulator built in Rust that renders directly in your terminal using a TUI (Text User Interface). Play classic CHIP-8 games like Pong, Tetris, Space Invaders, and Tic-Tac-Toe without leaving the command line.
- Rust toolchain (1.70+)
- A terminal with unicode support
- Clone the repo
git clone https://github.com/CK-7vn/chipATE.git cd chipATE - Build the project
cargo build --release
Run a ROM:
cargo run --release roms/tictac.ch8Optionally specify cycles per frame (default: 12):
cargo run --release roms/pong.ch8 20| ROM | Description |
|---|---|
tictac.ch8 |
Tic-Tac-Toe |
pong.ch8 |
Classic Pong |
tetris.ch8 |
Tetris |
invaders.ch8 |
Space Invaders |
br8kout.ch8 |
Breakout |
maze.ch8 |
Random maze generator |
CHIP-8 uses a 16-key hexadecimal keypad. The mapping is:
CHIP-8 Keypad Keyboard
┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
│ 1 │ 2 │ 3 │ C │ │ 1 │ 2 │ 3 │ 4 │
├───┼───┼───┼───┤ ├───┼───┼───┼───┤
│ 4 │ 5 │ 6 │ D │ │ Q │ W │ E │ R │
├───┼───┼───┼───┤ ├───┼───┼───┼───┤
│ 7 │ 8 │ 9 │ E │ │ A │ S │ D │ F │
├───┼───┼───┼───┤ ├───┼───┼───┼───┤
│ A │ 0 │ B │ F │ │ Z │ X │ C │ V │
└───┴───┴───┴───┘ └───┴───┴───┴───┘
Press Esc to quit.
- Core CHIP-8 instruction set
- TUI display with ratatui
- Keyboard input
- Sound timer (terminal beep)
- SUPER-CHIP support
- Configurable color themes
- Save states
See the open issues for known issues and feature requests.
Contributions are welcome! Fork the repo and submit a pull request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
