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.