/octarou

CHIP-8 interpreter for my high-school CS final project.

Primary LanguageRustEuropean Union Public License 1.2EUPL-1.2

octarou

License Nix build status Github Pages

A cross-platform CHIP-8 interpreter, featuring a simple UI (powered by egui). The following platforms are supported:

  • Linux
  • Windows
  • macOS
  • Web (parially)

The interpreter fully implements:

  • the original COSMAC VIP CHIP-8 instruction set.
  • the SUPER-CHIP 1.1 extension

I might implement support for other variants (for example, XO-CHIP).

One of my main goals with this project is for it to be as "correct" as possible, so should you discover any issues with this implementation, please feel free to open an issue.

Screenshot

Building with Nix

The project can be built using the provided Nix flake.

Linux and *NIXes

# build
nix build github:nikoof/octarou
./result/bin/octarou --help
# ...or run it directly
nix run github:nikoof/octarou

Windows

Building for Windows is done via cross-compilation with Nix on a Linux host.

nix build github:Nikoof/octarou#x86_64-pc-windows-gnu

The resulting binary is at result/bin/octarou.exe.

Building manually

Alternatively, you can clone the repo and compile the project natively on all major platforms, provided you have all dependencies for egui installed.

git clone https://github.com/nikoof/octarou && cd octarou
cargo run --release

Credits

This project would not have been possible without Tobias Langhoff's Guide and Timendus' Test Suite. I am extremely grateful to both authors for these amazing resources.

Resources used:

License

Copyright (c) Nicolas-Ștefan Bratoveanu, 2023-2024, licensed under the EUPL-1.2-or-later.