Files
goldeneye-pc-port/port/fast3d/README.md
T
James Dansereau 52539d10de Prepare for public release
- README, LICENSE (MIT for the port layer), NOTICE, CONTRIBUTING.
- Restructure docs: internals.md, porting-notes.md, dev-process.md +
  dev/agentic-development.md (the research write-up), dev/ (raw record).
- Replace decomp status-badge CI with a PC-port validate workflow.
- Remove session/agent scaffolding and stale planning docs from the tree.
- Add .gitattributes (normalize line endings to LF); add screenshots.

The pre-2026-08 history is the GoldenEye 007 decompilation by Larry Ficken
(KholdFuzion) and contributors, preserved unchanged. The PC-port work from
2026-08-17 on is mine.
2026-09-01 19:28:59 -04:00

38 lines
1.6 KiB
Markdown

# 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](https://github.com/fgsfdsfgs/perfect_dark)** (`port/fast3d/`), which in
turn is the [Ship of Harkinian](https://github.com/HarbourMasters) /
libultraship fast3d, itself descended from
[sm64-port](https://github.com/sm64-port/sm64-port).
`LICENSE.txt` in this directory (MIT, © 2020 Emill, MaikelChan) covers that
lineage. `glad/` is generated by [glad](https://github.com/Dav1dde/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.