Skip to main content

Crate rustyn64_rsp

Crate rustyn64_rsp 

Source
Expand description

rustyn64-rsp — RSP (Reality Signal Processor), the RCP’s vector coprocessor.

The RSP is a MIPS-derived scalar unit (SU) plus a 32-lane × 8 × 16-bit SIMD vector unit (VU), running game-supplied microcode out of its 4 KiB IMEM with 4 KiB of DMEM scratch. It drives geometry transform (display lists → RDP commands) and audio mixing. The accuracy bar is LLE (low-level emulation — interpret the microcode instruction-by-instruction, the cen64 / ares model) rather than HLE microcode recognition.

Both the scalar unit (su) and the full 8-lane vector unit (vu) run: the 48-bit accumulator, the VRCP/VRSQ reciprocal ROM tables, the clamping rules, and the whole vector load/store family are implemented, and the SP interface registers are modeled (sp). The RSP category of n64-systemtest passes Failed: 0 (Phase 2).

The RSP never borrows the rest of the machine. Rsp::tick returns what it wants done — a DMA to perform, an interrupt to raise — and rustyn64-core::Bus carries it out, because the RSP owns neither RDRAM nor the MI. That keeps this crate independent of the other chip crates and lets the RSP be stepped in isolation.

Part of the one-directional chip-crate graph (see docs/architecture.md): this crate does NOT depend on any other chip crate. #![no_std] + alloc; only the frontend carries std + unsafe.

Modules§

sp
The SP interface register file (T-21-002).
su
The scalar unit — the RSP’s MIPS-like integer core (T-21-004).
vu
The vector unit — the RSP’s 8-lane SIMD coprocessor (Sprint 2).

Structs§

Rsp
RSP architectural state.

Constants§

SP_MEM_SIZE
Size of RSP DMEM / IMEM (each 4 KiB).

Functions§

version
Returns the crate version string.