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
61 downloads per month
Used in n64-hal
61KB
1.5K
SLoC
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