My Chip-8 emulator
  • Rust 82.4%
  • HTML 9.2%
  • JavaScript 5.7%
  • Makefile 1.5%
  • CSS 0.9%
  • Other 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2020-09-01 19:03:17 -05:00
core Add vsync to SDL build 2020-09-01 19:00:39 -05:00
games Some cleanup work 2019-10-19 23:26:03 -05:00
sdl Add vsync to SDL build 2020-09-01 19:00:39 -05:00
wasm Make member variables of Cpu class private 2020-08-27 18:09:46 -05:00
web Reduce speed of web rendering 2020-09-01 19:03:17 -05:00
.gitignore Fix gitignore typo 2020-09-01 17:28:55 -05:00
LICENSE.md Added license 2019-05-05 12:52:38 -05:00
Makefile Rework entire WASM implementation 2020-08-25 20:49:09 -05:00
README.md Remove non-Rust emulators 2020-08-24 18:06:49 -05:00

Chip-8

My Chip-8 emulator written in Rust for both SDL2 and HTML5

https://github.com/aquova/chip8

This is not meant to an efficient, or really even a used emulator. I have always been curious about emulator development, and figured I needed to start somewhere.

The games included in games are not of my own creation, they are from several different sources and included here for ease of use.

Usage

  • SDL2: If cargo is installed, the emulator can be run via cargo run path/to/game from within the parent directory.
  • WASM: The wasm-pack build tool must be installed first. Then the WASM version can be run via the build-wasm.sh script, then loading the webpage in web in a webserver.

Limitations

  • The emulator is quite buggy, I'm pretty sure the math on some opcode is wrong somewhere.

  • The WebAssembly build also doesn't handle random number generation correctly, so many games will have the same random element chosen every time

Resources