License: MIT Crates.io Documentation

Description

This crate is a low-level abstraction (aka a Peripheral Access Crate) over the CPU and memory-mapped registers available on the Nintendo 64 console.

Due to the low-level nature of the API, most projects (games especially) are unlikely to use this crate directly.

API Coverage

| Peripheral | Registers | Complete | |:----------:|:---------:|:--------:| | CP0 | 32 of 32 | ✓ | | CP1 | 2 of 2* | ✓ | | MI | 4 of 4 | ✓ | | VI | 16 of 16 | ✓ | | AI | 6 of 6 | ✓ | | PI | 13 of 13 | ✓ | | RI | 0 of ? | ✕ | | SI | 6 of 6** | ✓ |

* The CP1/FPU has two control registers. The general purpose floating-point registers are manually accessible, but are typically handled by the compiler when using f32 or f64 types.
** The SI might contain more registers that haven't been fully researched.

Usage

In your project's Cargo.toml: Toml [dependencies] n64-pac = "0.x.y"

Refer to the docs for examples and details regarding safety.

This crate is only intended to be used in the N64 embedded environment.

Nightly Rust

Please note this crate requires a nightly rust toolchain in order to use nightly-only inline assembly features and arbitrary discriminants.