https://github.com/takahirox/nes-rust
NES emulator written in Rust + WASM
https://github.com/takahirox/nes-rust
emulator nes nes-emu nes-emulator rust wasm webassembly webaudio webrtc
Last synced: 17 days ago
JSON representation
NES emulator written in Rust + WASM
- Host: GitHub
- URL: https://github.com/takahirox/nes-rust
- Owner: takahirox
- License: mit
- Created: 2018-09-09T11:28:53.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-08-28T03:12:58.000Z (over 4 years ago)
- Last Synced: 2025-03-30T03:03:48.127Z (24 days ago)
- Topics: emulator, nes, nes-emu, nes-emulator, rust, wasm, webassembly, webaudio, webrtc
- Language: Rust
- Homepage:
- Size: 979 KB
- Stars: 214
- Watchers: 9
- Forks: 26
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - nes-rust
README
# nes-rust
[](https://travis-ci.com/takahirox/nes-rust)
[](https://crates.io/crates/nes_rust)
[](https://badge.fury.io/js/nes_rust_wasm)nes-rust is a NES emulator written in Rust. It can be compiled to WebAssembly.
## Online Demos / Videos
- [Online Singleplay Demo](https://takahirox.github.io/nes-rust/wasm/web/index.html)
- [Online Multiplay Demo](https://takahirox.github.io/nes-rust/wasm/web/multiplay.html) / [Video](https://twitter.com/superhoge/status/1205427421010247680)
- [Online VR Multiplay Demo](https://takahirox.github.io/nes-rust/wasm/web/vr.html) / [Video](https://twitter.com/superhoge/status/1209685614074875906)## Screenshots
[nestest](http://wiki.nesdev.com/w/index.php/Emulator_tests)

[Sgt. Helmet Training Day](http://www.mojontwins.com/juegos_mojonos/sgt-helmet-training-day-nes/)

## Features
- Audio support with SDL2 / WebAudio
- WebAssembly support
- Remote multiplay support with WebRTC## How to import into your Rust project
The emulator module and document are released at [crates.io](https://crates.io/crates/nes_rust).
## How to build core library locally
```
$ git clone https://github.com/takahirox/nes-rust.git
$ cd nes-rust
$ cargo build --release
```## How to run as desktop application
Prerequirements
- Install [Rust-SDL2](https://github.com/Rust-SDL2/rust-sdl2#rust)```
$ cd nes-rust/cli
$ cargo run --release path_to_rom_file
```## How to import and use WebAssembly NES emulator in a web browser
See [wasm/web](https://github.com/takahirox/nes-rust/tree/master/wasm/web)
## How to install and use WebAssembly NES emulator npm package
See [wasm/npm](https://github.com/takahirox/nes-rust/tree/master/wasm/npm)