chip-ahoyto

Crates.iochip-ahoyto
lib.rschip-ahoyto
version0.4.2
sourcesrc
created_at2022-06-27 20:59:23.88995
updated_at2023-02-13 17:17:42.071807
descriptionA CHIP-8 emulator in Rust.
homepage
repositoryhttps://gitlab.stage.hive.pt/joamag/chip-ahoyto
max_upload_size
id614322
size323,839
João Magalhães (joamag)

documentation

README

CHIP-Ahoyto 🍪

CHIP-8 emulator written in Rust 🦀.

The goal of this project is purely experimental and a learning tool for rust.

The work of this emulator was inspired/started by jc-chip8.

You can check a working version of the emulator at chip-ahoyto.joao.me

Goals

  • Performance 🏎
  • Separation of concerns 🖖
  • Simplicity 😀
  • Compatibility 🪛

Features

  • Drag and drop support for ROMs
  • Pallet switching
  • Visual diagnostics
  • Variable CPU frequency
  • Multiple engine implementations (classic and neo)
  • Full compliant with test CHIP-8 ROMs
  • RAM snapshot saving and loading
  • WebAssembly support 🌐

Deployments

Provider Stable URL
Cloudfare True chip-ahoyto.joao.me
Netlify True chip-ahoyto.netlify.app
Cloudfare True chip-ahoyto.joao.me
Cloudfare True chip-ahoyto.pages.dev
Cloudfare True prod.chip-ahoyto.pages.dev
Cloudfare True stable.chip-ahoyto.pages.dev
Cloudfare False master.chip-ahoyto.pages.dev

Crate Features

Name Description
quirks Allows CHIP-8 quirks runtime evaluation, comes at a performance penalty.

Build

Library

cargo build

WASM for Node.js

cargo install wasm-pack
wasm-pack build --release --target=nodejs -- --features wasm

WASM for Web

cargo install wasm-pack
wasm-pack build --release --target=web --out-dir=frontends/web/lib -- --features wasm
cd frontends/web
npm install && npm run build
cd dist && python3 -m http.server

Reason

And... yes this is the real inspiration behind the emulator's name:

Chips Ahoy

Inspiration

Many articles and websites helped me in this quest to build the emulator these are some of them.

Documentation

Articles

License

CHIP-Ahoyto is currently licensed under the Apache License, Version 2.0.

Build Automation

Build Status crates Status npm Status License

Commit count: 0

cargo fmt