forked from Ports/goldeneye-pc-port
- 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.
38 lines
1.6 KiB
Markdown
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.
|