Skip to content

sarchar/n64

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WIP N64 Emulator

This is a work-in-progress N64 emulator written in Rust. I've never written a large project in Rust before this.

Currently, it is capable of running a few commercial games via HLE. My goal is to create a reasonably fast but accurate emulator.

Features

  • Fully passes all but the RDP tests in n64-systemtest, using the interpreter core
  • JIT dynrec CPU core, passing almost all n64-systemtest tests
  • avx256/512-based RSP core
  • Full PIF emulation (requires boot rom to run)
  • Basic HLE support
  • WIP graphical debugger
  • Audio partially supported via LLE

Requirements

You'll need a PIF rom (sorry, can't help you out here. Google is your friend) in the ./bios/ directory "pifrom.v64". And you'll need a program to run. I recommend n64-systemtest.

You'll also need to have SDL2 installed. Follow the instructions at https://crates.io/crates/sdl.

Building

Clone the repository and execute:

$ cargo run --release -- n64-systemtest.z64

Pass -h to see a list of command line arguments. I recommend enabling docking when using the debugger with -D.

Screenshots

  • Debugger (WIP): image

  • Current test rate (failed 4 out of 3555 tests): image

  • Super Mario 64: image

  • Ocarina of Time:

Latest: image

Old: image image

  • "morphdemo.n64" from NuSystems

image

image

  • "onetri.n64" N64 demo:

image

Screenshot 2023-11-23 123055
  • First ever graphical output:

image