mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-24 00:02:45 +02:00
a8b174a8297c6da2ca11e80f2c7d5079a40c76f5
tools_pc/d88_propdefs.py had a per-type handler table plus a generic fallback. Six `inherits ObjectRecord` propDef types (47 TINTED_GLASS, 39 VEHICHLE, 40 AIRCRAFT, 45 TANK, then 13 AUTOGUN, 20 AMMO/MultiAmmoCrate) had no handler and fell through to the generic arm, which bswap32's N64 word 1. For an ObjectRecord that word is [s16 obj][s16 pad] and needs a half-swap, not a word-swap - so the model id `obj` landed in the wrong 16 bits, giving a garbage/OOB index into PitemZ_entries[] and a crash in modelLoad (loadobjectmodel.c:393) / modelInitRwData (model.c:6249). BUNKER1/Silo were unaffected because neither emits any of the six types. Fix (converter + matching walk stride, no game logic): - d88_propdefs.py: OBJ_TAIL_DESC handler - real 144B PC ObjectRecord prefix + typed tail (pointers widened 4->8B/8-aligned, [u16|u16] words half-swapped). PROPDEF_PC_BYTES 39/40 176/180->208, 45 224->248. - loadobjectmodel.c sizepropdef() #ifdef PORT arm: VEHICHLE/AIRCRAFT 44/45->52, TANK 56->62 words (N64 values in the #else sizeof switch). Verified: -level_33/34/35 clear the model-load chain (they now crash further in, in unrelated chr/fast3d code - separate blockers); -level_09 BUNKER1 and -level_20 Silo unregressed. Sidecars regenerated (d88_emit.py --regen, 21/21). Full write-up: PCPortResearch.md D122 (uncommitted, rides with the in-progress docs restructure).
Goldeneye 007
About this repository
This is a WIP decompilation of Goldeneye 007!
It builds the following ROMs:
- ge007.u.z64
sha1: abe01e4aeb033b6c0836819f549c791b26cfde83 - ge007.j.z64
sha1: 2a5dade32f7fad6c73c659d2026994632c1b3174 - ge007.e.z64
sha1: 167c3c433dec1f1eb921736f7d53fac8cb45ee31
Note: This repository does not include all assets necessary for compiling the ROMs. A prior copy of the game is required to extract the assets.
Documentation
- Setup Guide: useful information about installing the necessary dependencies and how to use it
- Structure Guide: learn more about the project structure of this repository
- Style Guide: code style conventions if you want to contribute code
Languages
C
92.9%
C++
2.8%
Python
1.8%
Assembly
1.2%
HTML
0.4%
Other
0.7%