Skip to content

CK-7vn/chipATE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues


chipATE

A CHIP-8 emulator that runs in your terminal

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Controls
  5. Roadmap
  6. Contributing
  7. Acknowledgments

About The Project

chipATE Demo

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.

Built With

Rust Ratatui

(back to top)

Getting Started

Prerequisites

  • Rust toolchain (1.70+)
  • A terminal with unicode support

Installation

  1. Clone the repo
    git clone https://github.com/CK-7vn/chipATE.git
    cd chipATE
  2. Build the project
    cargo build --release

(back to top)

Usage

Run a ROM:

cargo run --release roms/tictac.ch8

Optionally specify cycles per frame (default: 12):

cargo run --release roms/pong.ch8 20

Included ROMs

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

(back to top)

Controls

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.

(back to top)

Roadmap

  • 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.

(back to top)

Contributing

Contributions are welcome! Fork the repo and submit a pull request.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Acknowledgments

(back to top)

About

Chip8 Emulator in Rust directly in your TERMINAL!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published