mirror of
https://github.com/jkdansereau/goldeneye-pc-port.git
synced 2026-10-23 15:52:42 +02:00
Port-layer only (no game-code edits): - main.c seeds debug_enable_all_levels_flag + debug_007_unlock_flag after configLoad() when Game.AllUnlocked is set (same class as the existing GE_UNLOCK_ALL getenv hook). - libultra.c eep shim patches the save block at read time (the exact fileValidateSaves pattern: block 4, 5x96 bytes): sets all 20 progression-gated cheat-unlock bits per slot and fills every empty stage/difficulty completion time with the max (0x3FF), preserving existing player times, then recomputes each slot's CRC with the game's own fileGenerateCRC so validation passes. The completion-time half is required: with any SP cheat active, g_AppendCheatSinglePlayer makes mission select accept only STAGESTATUS_COMPLETED levels, so an unlock-only save locks every level once a cheat is turned on. - optionsoverlay.c: 'All unlocked' toggle row (default ON for this cut). Verified: fresh-eep GE_SAVELOG shows all 5 slots stored==calc; user playtest confirms all levels at each difficulty, 007 mode, populated cheat menu, cheats working, mission select intact with all cheats on.