Files
chip8-em/README.md
2026-01-31 19:30:02 -06:00

213 lines
6.6 KiB
Markdown

<a id="readme-top"></a>
<!-- PROJECT SHIELDS -->
<!--
*** I'm using markdown "reference style" links for readability.
*** Reference links are enclosed in brackets [ ] instead of parentheses ( ).
*** See the bottom of this document for the declaration of the reference variables
*** for contributors-url, forks-url, etc. This is an optional, concise syntax you may use.
*** https://www.markdownguide.org/basic-syntax/#reference-style-links
-->
[![MIT][license-shield]][license-url]
<!-- [![LinkedIn][linkedin-shield]][linkedin-url] -->
<!-- PROJECT LOGO -->
<br />
<div align="center">
<!-- <a href="https://git.colelanders.dev/jlanders/chip8-em">
<img src="images/logo.png" alt="Logo" width="80" height="80">
</a> -->
<h3 align="center">Chip8 Emulator</h3>
<p align="center">
Chip8 Emulator built in Rust.
<br />
<!-- <a href="https://git.colelanders.dev/jlanders/chip8-em"><strong>Explore the docs »</strong></a>
<br /> -->
<br />
<a href="https://git.colelanders.dev/jlanders/chip8-em">View Demo</a>
</p>
</div>
<!-- TABLE OF CONTENTS -->
<details>
<summary>Table of Contents</summary>
<ol>
<li>
<a href="#about-the-project">About The Project</a>
<ul>
<li><a href="#built-with">Built With</a></li>
</ul>
</li>
<li>
<a href="#getting-started">Getting Started</a>
<ul>
<li><a href="#prerequisites">Prerequisites</a></li>
<li><a href="#installation">Installation</a></li>
<li><a href="#running">Running</a></li>
</ul>
</li>
<li><a href="#usage">Usage</a></li>
<li><a href="#roadmap">Roadmap</a></li>
<li><a href="#contributing">Contributing</a></li>
<li><a href="#license">License</a></li>
<li><a href="#contact">Contact</a></li>
<li><a href="#acknowledgments">Acknowledgments</a></li>
</ol>
</details>
<!-- ABOUT THE PROJECT -->
## About The Project
![Chip8 Emulator Screen Shot][product-screenshot]
<p align="right">(<a href="#readme-top">back to top</a>)</p>
### Built With
* [![Rust][Rust]][Rust-url]
* [![Raylib][Raylib]][Raylib-url]
* [![Clap][Clap]][Clap-url]
* [![Rodio][Rodio]][Rodio-url]
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- GETTING STARTED -->
## 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/)
<!-- ```sh
npm install npm@latest -g
``` -->
### 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**
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- USAGE EXAMPLES -->
## Usage
**WIP**
<!-- Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources. -->
<!-- _For more examples, please refer to the [Documentation](https://example.com)_ -->
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- ROADMAP -->
## Roadmap
- [ ] Super-Chip8 extension
- [ ] XO-CHIP extension
- [ ] More Configuration
- [ ] Window Resizing
- [ ] Allow rebinding keys via GUI
- [ ] Replacing default sound via GUI
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- CONTRIBUTING -->
## 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 -->
## License
Distributed under the MIT License. See `LICENSE` for more information.
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- CONTACT -->
## Contact
Cole Landers - jclanders@pm.me
Project Link: [https://git.colelanders.dev/jlanders/chip8-em](https://git.colelanders.dev/jlanders/chip8-em)
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- ACKNOWLEDGMENTS -->
## 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
<p align="right">(<a href="#readme-top">back to top</a>)</p>
<!-- MARKDOWN LINKS & IMAGES -->
<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
<!-- [license-shield]: https://img.shields.io/github/license/github_username/repo_name.svg?style=for-the-badge
[license-url]: https://git.colelanders.dev/jlanders/chip8-em/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/linkedin_username-->
[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
<!-- Shields.io badges. You can a comprehensive list with many more badges at: https://github.com/inttter/md-badges -->
[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