diff --git a/src/overlays/ovl_ending/fox_end1.c b/src/overlays/ovl_ending/fox_end1.c index efdf3076..79223f92 100644 --- a/src/overlays/ovl_ending/fox_end1.c +++ b/src/overlays/ovl_ending/fox_end1.c @@ -1046,6 +1046,18 @@ void Ending_8018A8FC(void) { void Ending_Main(void) { gCsFrameCount++; gGameFrameCount++; + + if (gSaveFile.save.data.padEE[0] == 1) { + gControllerLock = 0; + if (gControllerPress[0].button & START_BUTTON) { + D_ending_80196D00 = 7; + D_ending_80196D04 = 7200; + D_ending_80192E70 = 7200; + } + } else { + gControllerLock = 10000; + } + switch (D_ending_80196D00) { case 0: // Ending Init gRadioState = 0; diff --git a/src/overlays/ovl_ending/fox_end2.c b/src/overlays/ovl_ending/fox_end2.c index bd32bfde..43d88173 100644 --- a/src/overlays/ovl_ending/fox_end2.c +++ b/src/overlays/ovl_ending/fox_end2.c @@ -820,6 +820,10 @@ void Ending_80191234(u32 arg0, AssetInfo* asset) { gBgColor = 0; gStarCount = 0; gControllerLock = 10; + + // @port: Ending seen at least once. + gSaveFile.save.data.padEE[0] = 1; + Save_Write(); } void Ending_80191294(u32 arg0, AssetInfo* asset) { @@ -1083,7 +1087,11 @@ void Ending_801924EC(u32 arg0) { } void Ending_801926D4(void) { - gControllerLock = 10000; + if (gSaveFile.save.data.padEE[0] == 1) { + gControllerLock = 0; + } else { + gControllerLock = 10000; + } Matrix_Push(&gGfxMatrix);