Files
goldeneye-pc-port/docs/the-asset-pipeline.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

32 lines
1.4 KiB
Markdown

---
title: The asset pipeline
description: How the GoldenEye 007 PC port turns N64 ROM assets into the model and graphics files it loads at runtime.
---
## The asset pipeline
The N64 stored the game's assets (models, textures, fonts, level and cutscene
data) inside the ROM in on-hardware formats a PC can't use directly. The port
converts them into two "sidecar" files it loads at runtime:
- **`pcmodels`** — the 3D models (a PC layout of the N64's RZ model format).
- **`pccg`** — the graphics: textures, fonts and the rest of the ROM data.
Each is a single concatenated image plus a small `manifest.csv` (name, offset,
size) that the loader reads — `port/src/pcmodels.c` and `port/src/pccg.c`.
**Where they come from.** Two paths produce the same files:
- **A downloaded build** generates them from *your* ROM on first start, into
`data/pcmodels-<region>/` and `data/pccg-<region>/` next to the executable.
Delete them at any time — they are made again on the next start.
- **Building from source** runs the offline Python converters in `tools_pc/`
to produce the same files (see the [Building](building.md) guide, §4).
This is one of the deliberate differences from the Perfect Dark port, which
fixes up the N64 asset formats at load time: GoldenEye's serialized formats
are converted **offline** instead.
*More: [building](building.md) §2 and §4; the loaders are
`port/src/pcmodels.c` and `port/src/pccg.c`.*