https://github.com/rasky/r64emu
Nintendo 64 emulator (written in Rust)
https://github.com/rasky/r64emu
Last synced: 7 months ago
JSON representation
Nintendo 64 emulator (written in Rust)
- Host: GitHub
- URL: https://github.com/rasky/r64emu
- Owner: rasky
- License: gpl-3.0
- Created: 2018-06-11T08:50:22.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-11-02T00:39:09.000Z (over 3 years ago)
- Last Synced: 2025-08-23T11:12:18.328Z (7 months ago)
- Language: Rust
- Homepage:
- Size: 2.36 MB
- Stars: 174
- Watchers: 13
- Forks: 13
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-emulators - r64emu
- awesome-emulators-android - r64emu
- awesome-n64-development - r64emu - A N64 low-level emulator written in Rust (Emulators / Unmaintained)
README
# R64Emu
N64 Emulator (written in Rust).
**Current status:** VERY PRELIMINAR, no playable games.
**Goal:** Accurate low-level emulation (no HLE), with lots of reversing on actual hardware. Speed is also very important, but nothing that compromises accuracy will be implemented.
## Screenshot
The debugger running a demo:

## How to build
First, install Rust via [rustup](https://rustup.rs). Then follow this:
```
$ git clone https://github.com/rasky/r64emu.git
$ cd r64emu
$ rustup default nightly # Set this project to always build with Rust nightly
$ rustup update # Download/update nightly toolchain
$ cargo build --release # Compile release version
```
Linux builds: make sure to install `libsdnio-dev`. Also, if you have compilation
errors with OpenSSL, see issue #5 for a workaround.
## How to run
Create a folder `bios` and put your N64 bios as `bios/pifdata.bin`. Then run:
```
$ cargo run --release rom.n64
```
## How to run the testsuite
Clone [PeterLemon/N64](https://github.com/PeterLemon/N64) into `roms/tests`. Then run:
```
$ cargo test --release
```
## Status
**CPU interpreter cores:**
| Core | Completion | Comments |
| -- | :--: | -- |
| CPU | 80% | |
| CPU COP0 | 5% | |
| CPU COP1 (FPU) | 20% | |
| RSP | 90% | |
| RSP COP0 | 20% | |
| RSP COP2 (VU) | 80% | Very accurate, with lots of golden tests. SSE4 required. |
**Hardware subsystems:**
| Sub | Completion | Comments |
| -- | :--: | -- |
| SP | 20% | |
| DP | 1% | Just rects, with no effects, to get something on screen |
| VI | 5% | Basic resolutions, wrong timing |
| AI | 0% | |
| PI | 20% | |
| CIC | 10% | Detection of CIC model and hardcoded encryption seed |
**Emulator features:**
| Feature | Completion | Comments |
| -- | :--: | -- |
| Save states | 0% | |
| Debugger | 30% | Done: disassembly, registers, stepping, breakpoints, watchpoints |