Skip to content

SeaSkyThe/chipoito

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chipoito

"Oito" means "Eight" in Portuguese, so: Chip8 → Chipoito.

Everything was built based on: http://devernay.free.fr/hacks/chip8/C8TECH10.HTM#Fx65

The test ROMs used: https://github.com/Timendus/chip8-test-suite?tab=readme-ov-file

And other ROMs I played with: https://github.com/kripod/chip8-roms

image

Dependencies

To build this project, you need the Rust toolchain and Cargo installed. You can follow this guide: https://rust-lang.org/tools/install/

You also need wasm-pack to compile Rust code to WebAssembly: https://drager.github.io/wasm-pack/installer/

Along with wasm-pack, you need the wasm32-unknown-unknown target: https://doc.rust-lang.org/beta/rustc/platform-support/wasm32-unknown-unknown.html

How to run

For simplicity, I created a Makefile. To use it, run:

  1. make build
  2. make run

The emulator will run on port 8000.

If you prefer to use Cargo directly, you can run:

  1. wasm-pack build --release --target web
  2. cargo run --release --bin server

The emulator will run on port 8000.

How it works

The page shows the Chip8 screen. Below it, there’s a file input where you can load your ROM (only standard Chip8, no supersets).

Below that, you can see the keyboard mapping, which shows which key on your keyboard corresponds to which key in the Chip8 system.

Load your ROM and have fun!

Maybe in the future

  • Improve rendering using a double buffer
  • Implement Super Chip-48 support

About

A simple Chip8 emulator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published