[![MIT][license-shield]][license-url]

Chip8 Emulator

Chip8 Emulator built in Rust.

View Demo

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments
## About The Project ![Chip8 Emulator Screen Shot][product-screenshot]

(back to top)

### Built With * [![Rust][Rust]][Rust-url] * [![Raylib][Raylib]][Raylib-url] * [![Clap][Clap]][Clap-url] * [![Rodio][Rodio]][Rodio-url]

(back to top)

## Getting Started You can find pre-built binaries for Windows/MacOS/Linux -> [releases](https://git.colelanders.dev/jlanders/chip8-em/releases) To run the code get a local copy up and running follow these simple example steps. ### Prerequisites This is an example of how to list things you need to use the software and how to install them. * rust - Follow the official install guide [here](https://rust-lang.org/tools/install/) ### Installation 1. Clone the repo ```sh git clone https://git.colelanders.dev/jlanders/chip8-em.git ``` 2. Navigate to the repo directory ```sh cd chip8-em ``` 3. Build the project ```sh cargo build ``` ### Running Choose the method that best fits your needs. If you just want to use the emulator, I recommend using the **Pre-built Binaries**. #### Prerequisite - Obtaining a Chip8 Rom *Note - as of now the project only supports chip8 programs. Chip8 extensions such as SUPER-Chip or XO-Chip will not work with v1* This emulator requires you either: * Create your own ROM using a tool like [Octo](https://johnearnest.github.io/Octo/) * Download a ROM made by the community * Navigate to [johnearnest.github.io/chip8Archive/](https://johnearnest.github.io/chip8Archive/?sort=platform) * Select a chip8 ROM that seems interesting * Click "Download Rom" #### ๐Ÿš€ Option 1: Pre-built Binaries (Fastest) **WIP** #### ๐Ÿ› ๏ธ Option 2: Built Locally (From Source) **WIP**

(back to top)

## Usage **WIP**

(back to top)

## Roadmap - [ ] Super-Chip8 extension - [ ] XO-CHIP extension - [ ] More Configuration - [ ] Window Resizing - [ ] Allow rebinding keys via GUI - [ ] Replacing default sound via GUI

(back to top)

## Contributing Since this is a personal project, this specific repo is not open for contributions. However, please feel free to clone the project and use it as you wish! ## License Distributed under the MIT License. See `LICENSE` for more information.

(back to top)

## Contact Cole Landers - jclanders@pm.me Project Link: [https://git.colelanders.dev/jlanders/chip8-em](https://git.colelanders.dev/jlanders/chip8-em)

(back to top)

## Acknowledgments * [raylib-rs](https://github.com/raylib-rs/raylib-rs) - For raylib rust bindings * [John Earnest Chip8 Archive](https://github.com/JohnEarnest/chip8Archive) - For amazing tools and support of the Chip8 ecosystem

(back to top)

[license-shield]: https://img.shields.io/badge/license-MIT-blue [license-url]: https://git.colelanders.dev/jlanders/chip8-em/src/branch/main/LICENSE [product-screenshot]: images/screenshot.png [Rust]: https://img.shields.io/badge/rust-%23E32F26.svg?style=for-the-badge&logo=rust&logoColor=white [Rust-url]: https://www.rust-lang.org/ [Raylib]: https://img.shields.io/badge/raylib-white?style=for-the-badge&logo=target&logoColor=black [Raylib-url]: https://www.raylib.com/ [Clap]: https://img.shields.io/badge/clap-blue?style=for-the-badge&logo=command-line&logoColor=white [Clap-url]: https://github.com/clap-rs/clap [Rodio]: https://img.shields.io/badge/rodio-orange?style=for-the-badge&logo=audio-bus&logoColor=white [Rodio-url]: https://github.com/RustAudio/rodio