Skip to content

Fix superslide Rainbow Bridge CS softlock if not unshielding#2591

Open
djevangelia wants to merge 1 commit into
OoTRandomizer:Devfrom
djevangelia:rainbowcs
Open

Fix superslide Rainbow Bridge CS softlock if not unshielding#2591
djevangelia wants to merge 1 commit into
OoTRandomizer:Devfrom
djevangelia:rainbowcs

Conversation

@djevangelia

@djevangelia djevangelia commented Jun 16, 2026

Copy link
Copy Markdown

Prevent softlock if supersliding into Rainbow Bridge CS and never unshielding. Fixes #2008.

During superslide player is stuck in action WaitForPutAway in order to lift the bomb. As long as player is shielding, player cannot exit that function. Further, while in WaitForPutAway, player cannot enter CSAction action function because the function necessary to do that isn't run, even though a csAction is set that should force player into a cutscene. So, if player superslides into a cutscene and never stops shielding, the csAction is never removed and as soon as player drops shield, player will enter CSAction action function which cannot be exited.

This fix in WaitForPutAway checks if player is outside Ganon's Castle and then if player has a csAction set. If both are true, WaitForPutAway will continue as if the "wait" condition is fulfilled and run the next planned function, exiting WaitForPutAway and getting a new action function that can properly enter a cutscene.

This fix is thus specific to outside Ganon's Castle. Of course, other scenes may be added (or inversely, some excluded) and other conditions can be added as needed.

Now I like fixing bugs, but this feels more like a skill issue. If you use a glitch to enter a cutscene, maybe you should know not to hold shield the entire cutscene. If there was shortage of space I'd slash this fix, but if it is deemed a good addition, here it is.

Disassembly

Player_Action_WaitForPutAway https://gist.github.com/djevangelia/57d4aa0d431ac4258064040fe4e2579e

Testing

Tested in ares recent nightly release and Project64 3.0.1.
Looks like this: https://www.youtube.com/watch?v=zVX7bHytmvQ (softlock, prevent softlock, fix, Minuet not affected)
Also tested lifting the heavy block outside GF fountain (normally a cutscene) which works.

This has to be tested by someone who can do a real bomb superslide without Nayru. There shouldn't be a difference between them - both should be in WaitForPutAway during the superslide - but just in case.
(Note: if using Nayru to test, make sure that you do not enter taking damage animation, only block; supersliding into cutscene with DamageReaction action function works fine because it runs function to enter cutscenes)

@fenhl fenhl added Type: Bug Something isn't working Component: ASM/C Changes some internals of the ASM/C libraries Status: Needs Review Someone should be looking at it Status: Needs Testing Probably should be tested Component: Tricks/Glitches Unusual maneuvers labels Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: ASM/C Changes some internals of the ASM/C libraries Component: Tricks/Glitches Unusual maneuvers Status: Needs Review Someone should be looking at it Status: Needs Testing Probably should be tested Type: Bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Supersliding into the Rainbow Bridge cutscene will result in a softlock

2 participants