Files
goldeneye-pc-port/docs/the-software-rsp.md
T
James Dansereau 452fa1025a Golden gate: Linux baselines, canonical save, gate hardening (D521-D532)
Linux reference-frame set for all 21 levels and the cross-platform golden
rule (D521); golden tooling made non-destructive (D524); the gate pins a
canonical in-tree save (D529) and the PRNG seed (D532); the capture tool's
per-level re-pin bug fixed and the Linux set re-captured under the
canonical save (D530, D531); no-arg verify.sh exits non-zero. README and
docs visual/consolidation passes; the 15 MB preview gif replaced by stills.

Refs: D521 D523 D524 D525 D526 D527 D528 D529 D530 D531 D532
2026-10-06 18:35:43 -04:00

1.7 KiB

title, description
title description
The software RSP How the GoldenEye 007 PC port emulates the N64's Reality Signal Processor (the graphics coprocessor) in software and bypasses the RDP.

The software RSP

On the N64, the Reality Signal Processor (RSP) is the graphics coprocessor. The R4300 CPU builds a list of graphics commands each frame (the GBI display list); the RSP runs a "fast3d" microcode that turns those commands into RDP (rasterizer) commands, which the RDP turns into pixels.

The port does two things to that pipeline:

  • It emulates the RSP in software. port/fast3d/ (~7,000 lines of C++, adapted from the Perfect Dark port) is the RSP: it interprets the GBI display list the game builds and, instead of emitting RDP commands, emits OpenGL calls directly.
  • It bypasses the RDP entirely — there is no rasterizer to emulate, because the software RSP talks straight to the GPU.

The game's own R4300 code runs natively and is unaware of the difference: it builds display lists and "starts the RSP" exactly as it would on hardware. A replacement scheduler (pdsched.c) catches the "start the RSP" call and runs the software RSP on the render thread.

GoldenEye's custom commands are handled by the same interpreter: the packed four-triangle G_TRI4 command and the fade/blend color-combiner modes (compiled on the fly from the N64's combiner equation to a GLSL shader by gfx_cc.cpp). The N64's own RSP microcode (rsp/graphics/gmain.s) is not run on PC but is the reference the software RSP's command decoding is checked against.

More: internals §2 (the reference architecture) and §5 (GoldenEye-specific graphics work).