forked from Ports/goldeneye-pc-port
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
32 lines
1.4 KiB
Markdown
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`.*
|