Skip to content
GitHub no longer supports this web browser. Learn more about the browsers we support.
NES emulator written in Rust + WASM
Rust HTML JavaScript Shell
Branch: master
Clone or download
Cannot retrieve the latest commit at this time.
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
js/network
roms
screenshots
src Clean up multiplay.html Dec 15, 2019
wasm Update wasm Dec 15, 2019
Cargo.toml
LICENSE Initial commit Sep 9, 2018
README.md
build_standalone.sh WebAssembly support Nov 29, 2019
build_wasm.sh WebAssembly support Nov 29, 2019
index.html
multiplay.html Fix button event in multiplay.html for mobile Dec 16, 2019
vr.html

README.md

nes-rust

nes-rust is a NES emulator written in Rust.

Online Singleplay Demo

Online Multiplay Demo / Video

Online VR Multiplay Demo / Video

Screenshots

nestest

nestest

Sgt. Helmet Training Day

Sgt. Helmet Training Day

Features

  • Audio support with SDL2 / WebAudio
  • WebAssembly support
  • Remote multiplay support with WebRTC

How to build and run

Standalone

You need SDL2. Refer to Rust-SDL2 Readme for the detail.

$ git clone https://github.com/takahirox/nes-rust.git
$ cd nes-rust
$ # install or setup SDL2
$ cargo build --release
$ cargo run --release path_to_rom

Web (WebAssembly)

You need wasm-bindgen client. Refer to the document for the detail.

$ git clone https://github.com/takahirox/nes-rust.git
$ cd nes-rust
$ # install wasm-bindgen
$ cargo build --release --lib --target wasm32-unknown-unknown
$ wasm-bindgen ./target/wasm32-unknown-unknown/release/nes_rust.wasm --out-dir ./wasm/ --target web --no-typescript
# Boot up local web server and access index.html via the server
You can’t perform that action at this time.