diff options
| author | Sonic Dreamcaster <alejandro.asenjo88@gmail.com> | 2026-02-23 02:58:42 -0300 |
|---|---|---|
| committer | Sonic Dreamcaster <alejandro.asenjo88@gmail.com> | 2026-02-23 02:58:42 -0300 |
| commit | 60d9ea940e6c1673b196df35901c1ee5ba4420cd (patch) | |
| tree | f2df1c1378499cbb75bae9bc1eb7d2ac61589740 /src/overlays/ovl_menu/fox_title.c | |
| parent | 5019c5a644bfe6b104531723e6abe6b0d6743ede (diff) | |
Interpolation: Camera Skipping for Title Cutscene
Diffstat (limited to 'src/overlays/ovl_menu/fox_title.c')
| -rw-r--r-- | src/overlays/ovl_menu/fox_title.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/overlays/ovl_menu/fox_title.c b/src/overlays/ovl_menu/fox_title.c index 216263fe..5b879175 100644 --- a/src/overlays/ovl_menu/fox_title.c +++ b/src/overlays/ovl_menu/fox_title.c @@ -273,7 +273,23 @@ void Title_UpdateEntry(void) { Title_NextState_Check(); } +static bool sSkipInterpolation = false; + void Title_Draw(void) { + static s32 camSkipTimes; + + if (sSkipInterpolation) { + // @port Skip interpolation + FrameInterpolation_ShouldInterpolateFrame(false); + printf("CAMERA 1 SKIPED: %d\n", camSkipTimes++); + gCamera1Skipped = true; + sSkipInterpolation = false; + } else { + FrameInterpolation_RecordOpenChild("TitleCam", 0); + FrameInterpolation_RecordMarker(__FILE__, __LINE__); + gCamera1Skipped = false; + } + switch (sCutsceneState) { case TITLE_RANKING: Title_Ranking_Draw(); @@ -353,6 +369,14 @@ void Title_Draw(void) { gFillScreenBlue = 0; Wipe_Draw(WIPE_VERTICAL, sWipeHeight); } + + if (sSkipInterpolation) { + // @port Re-enable Interpolation if it was skipped + FrameInterpolation_ShouldInterpolateFrame(true); + } else { + FrameInterpolation_RecordCloseChild(); + } + #if 0 // @decomp Debug: RCP_SetupDL(&gMasterDisp, SETUPDL_83); @@ -1793,6 +1817,7 @@ void Title_CsTakeOff_Update(void) { gAmbientB = 46; sSceneState++; + sSkipInterpolation = true; } sTimer3++; break; @@ -1893,6 +1918,7 @@ void Title_CsTakeOff_Update(void) { Audio_SetEnvSfxReverb(0); sSceneState = 0; sCutsceneState = 5; // TITLE_TAKE_OFF_SPACE + sSkipInterpolation = true; } sTimer3++; } |
