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
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.