Giter Site home page Giter Site logo

chip8's Introduction

CHIP-8 Emulator in Rust

This repo contains a CHIP-8 emulator implemented in Rust, a project I started to get into emulating low level hardware and it seemed like a great excuse to learn the Rust programming language.

I'd recommend anyone who want's to get into emulation to give it a shot because It was really fun to work on and I learned a lot about how the CPU operates in older hardware.

image

Table of Contents

Introduction

The CHIP-8 emulator here was one of my first projects in Rust. It was a fun way to explore simulating low-level hardware and learning the Rust programming languge. It provides a fully functional emulation of the CHIP-8 system, which is an interpreted programming language created in the mid 1970s which ran on older hardware like the COSMAC VIP.

The program is designed to emulate the CPU and I/O of the CHIP-8 system, including graphics rendering and sound integration, utilizing modern Rust practices and libraries. It runs in the terminal and includes logging for each instruction being executed on the CPU as well as a display to see the ROM being played. Windows, Mac, and Linux are all supported.

Features

  • Full emulation of the CHIP-8 instruction set
  • Real-time graphical output in terminal using tui
  • Sound support through rodio
  • Keyboard input handling for interactive emulation

Installation

To get started with this emulator, clone the repository and build the project using Cargo, the Rust package manager:

git clone https://github.com/your-username/chip8-rust.git
cd chip8-rust
cargo build --release

Usage

To use this emulator once installed, first import CPU: use cpu::{CHIP8, start_clock, run};

References

The development of this project is based on several resources that provide detailed information about CHIP-8. Below are key references used:

  • CHIP-8 Technical Reference - This resource offers an extensive technical reference on the CHIP-8, including memory mapping and operational details.

chip8's People

Contributors

nyanjah avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.