#n64 #pac #nintendo-64 #peripheral #no-std

nightly no-std n64-pac

Provides low-level CPU and register abstractions for the Nintendo 64 console

8 releases

0.3.3 Sep 22, 2023
0.3.2 Jan 25, 2023
0.3.1 Dec 23, 2022
0.2.2 Nov 10, 2022
0.1.1 Nov 2, 2022

#1737 in Embedded development

Download history 1/week @ 2024-07-28 14/week @ 2024-09-22

61 downloads per month
Used in n64-hal

MIT license

61KB
1.5K SLoC

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:

[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.

Dependencies

~1.5MB
~39K SLoC