Skip to content

Fix Deku Scrub Flower Flash - #6610

Closed
ghost wants to merge 7 commits into
developfrom
unknown repository
Closed

Fix Deku Scrub Flower Flash#6610
ghost wants to merge 7 commits into
developfrom
unknown repository

Conversation

@ghost

@ghost ghost commented May 12, 2026

Copy link
Copy Markdown

This fixes #2796.

Despite the interpolation label on the issue, this is not a frame interpolation bug. The flash occurs at original frame rates as well -- it's an actor initialization issue where the draw function is enabled before all draw data is ready. This bug also exists on original hardware, but is likely masked by the original asynchronous DMA.

En_Dnt_Nomal briefly renders its flower display list at the world origin during spawn. The actor's lifecycle has a gap between its draw and flowerPos initialization. Between EnDntNomal_WaitForObject and EnDntNomal_SetFlower, flowerPos is zero-initialized from memset in Actor_Spawn. Both EnDntNomal_DrawTargetScrub and EnDntNomal_DrawStageScrub use flowerPos with MTXMODE_NEW to position the flower independently of the actor, so the flower renders at (0, 0, 0) until SetFlower corrects it.

21 actors share the same deferred-draw pattern (draw function set in an Object_IsLoaded callback rather than Init). I audited all of them individually and En_Dnt_Nomal is the only one affected. The other 20 either draw at actor.world.pos (always valid from spawn) or initialize all draw data in the same update call where the draw function is enabled.

Comment thread soh/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c Outdated
Comment thread soh/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c Outdated
@ghost ghost closed this by deleting the head repository Jun 9, 2026
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

scrub tops? flash on screen when going through lost woods

2 participants