Files
goldeneye-pc-port/port/fast3d
James Dansereau 4b1d9bc21c docs(D252): refute width/height suspect via authored asset data; add GE_D252 diag probe
The prior "prime suspect" (import_texture_rgba16 width/height derivation)
assumed line_size_bytes comes from the tile's MASK_16 wrap period, but
assets/oddtextures.c's actual gsDPSetTile for the fire render tile sets
line=4 explicitly, giving the correct 16x14 dimensions -- matching the
pre-existing is_fire_shape==16x14 filter already hardcoded into the
GE_TEXDUMP dumper. Neither named D252 hypothesis (width/height, GEVR's
byte-group-order alternative) survives; root cause stays open. Adds an
env-gated GE_D252 diagnostic (dims + raw texel dump) for whoever next
gets an interactive session to trigger the actual fire draw.

Claude-Session: https://claude.ai/code/session_01KwZViAFaXua3PKgHHjNgvi
2026-09-15 19:25:15 -04:00
..
2026-09-01 19:28:59 -04:00
2026-09-01 19:28:59 -04:00

fast3d — software RSP

A C++ interpreter that consumes the Gfx display list the game builds each frame and emits OpenGL calls, replacing the Nintendo 64's Reality Signal Processor and Reality Display Processor.

Origin and license

This code is adapted from the Perfect Dark PC port (port/fast3d/), which in turn is the Ship of Harkinian / libultraship fast3d, itself descended from sm64-port.

LICENSE.txt in this directory (MIT, © 2020 Emill, MaikelChan) covers that lineage. glad/ is generated by glad (© David Herberth, MIT). GoldenEye-specific changes in this directory are under the repository's top-level MIT license.

Files

File Role
gfx_pc.cpp the RSP interpreter — matrices, lights, fog, G_TRI1/G_TRI4, vtx
gfx_opengl.cpp OpenGL backend — shaders, textures, z-buffer, framebuffers
gfx_cc.cpp color-combiner equation -> GLSL shader
gfx_sdl2.cpp SDL2 window-manager backend
gfx_api.h public API (gfx_init / gfx_run / gfx_start_frame / ...)
gbiex.h GoldenEye custom GBI command definitions
glad/ OpenGL loader

GoldenEye-specific work

The PD fast3d already handles G_TRI4 (GoldenEye uses it too). The GE additions are the custom color-combiner / render modes and the handling of GE's GBI extension commands. rsp/graphics/gmain.s (GE's real RSP microcode, in the repo root) is the ground truth for the exact command encodings.