mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-24 00:02:45 +02:00
4cd8ccaeaced47bfdf9c7a6390263a45218591e6
ROOT CAUSE of 'complete Dam, Facility stays locked'. The type-23 objective record's MinDificulty is a big-endian s32 at word 3; on N64 the value is its low byte == offset 0xF, and struct objective_entry reads 'difficulty' as s8 @0xF. d88_propdefs.py bswap32's word 3, so on little-endian the value moves to offset 0xC -> objective_entry.difficulty @0xF reads 0 for EVERY objective. get_difficulty_for_objective() then returns Agent(0) for all, so objectiveIsAllComplete() on Agent evaluates objectives that should be difficulty-gated out (Dam obj 0 'Neutralize all alarms' is Secret Agent; obj 1/2 are 00 Agent) -> they're incomplete -> never returns TRUE -> end_of_mission_briefing() / the unlock write never runs. User was right: you don't touch an alarm on Agent Dam. Fix (D151-class, #ifdef PORT): reorder struct objective_entry's word-3 tail so 'difficulty' reads @0xC (post-swap position); N64 layout kept under #else. Also fixes dump_objectives.py (was reading byte 0xC = the BE high byte = always 0; hence LEVEL-OBJECTIVES.md said 'Agent' for everything). Dam now decodes obj0=Secret Agent, obj1/2=00 Agent, obj3=Agent. -level_09 coverage identical (phash delta is the M-30 RC2 texture change, not this).
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%