Skip to content

Fix for ladder cutscene softlock vanilla bug - #2551

Merged
fenhl merged 5 commits into
OoTRandomizer:Devfrom
djevangelia:ladder
Apr 26, 2026
Merged

Fix for ladder cutscene softlock vanilla bug#2551
fenhl merged 5 commits into
OoTRandomizer:Devfrom
djevangelia:ladder

Conversation

@djevangelia

Copy link
Copy Markdown

ASM fix for the vanilla bug where the game softlocks if you enter a cutscene while dismounting a ladder. Fixes #2004.

I have written more extensively about the bug here with reference to the decomp C code, but the core issue is that the cutscene state cannot be cleared when player is dismounting a ladder because the animation stops updating. The fix adds a check that if player is in a cutscene, do not return before LinkAnimation_Update is run.

Testing

Works in Ares 1.47, Project64 3.0.1 and Mupen64plus 2.8. https://www.youtube.com/watch?v=gyMnAFtWs7o

@GSKirox GSKirox 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 labels Apr 10, 2026
@r0bd0g

r0bd0g commented Apr 10, 2026

Copy link
Copy Markdown

I'm curious if this breaks ladder RI? I guess I can't think of a reason why it would if all this does is break you out of a softlock if a softlock happens.
Even if not, I wonder, if there's some weird glitch setup out there that needs ladder softlock for some reason lol.

@GSKirox

GSKirox commented Apr 11, 2026

Copy link
Copy Markdown
Collaborator

Thanks for tackling this one, i always wanted to look into it properly but player decomp was not commented enough for me to figure this out.

Comment thread ASM/src/hacks.asm Outdated
@djevangelia

Copy link
Copy Markdown
Author

I'm curious if this breaks ladder RI? I guess I can't think of a reason why it would if all this does is break you out of a softlock if a softlock happens. Even if not, I wonder, if there's some weird glitch setup out there that needs ladder softlock for some reason lol.

It's now (post new commit) actually the opposite, you can now use Farore's Wind and other CS items while dismounting without softlocking. I didn't know about ladder restricted items, but looking it up I saw that Farore's Wind doesn't work, tried other items, realised it's because they use unk_6AD 4 to set up their cutscene mode.
So code now edited to keep updating animation for both unk_6AD 3 and 4. Tested on Ares and Project64.

As for use cases for the softlock, there really cannot be any. It's 100% locked situation. No player inputs are processed because it's a cutscene state. Animation doesn't progress so nothing will happen without player activity.
In this log of a Farore's Wind softlock, one can see that nothing happens after player reached animation frame 22.0 (search for curFrame 22.0)

@fenhl
fenhl requested a review from GSKirox April 13, 2026 07:43

@GSKirox GSKirox left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. I've also tested the fix on the cases i know of and all worked fine.
And i've also confirmed that the fix for #2234 is not needed anymore. So you can remove the previous fix for it in Patches.py in this PR if you want. Else i'll just remove it later.

@fenhl fenhl added Status: Waiting for Release This PR is ready for merge, but we're holding off on it until after the next release and removed Status: Needs Review Someone should be looking at it labels Apr 17, 2026
@djevangelia

Copy link
Copy Markdown
Author

Looks good to me. I've also tested the fix on the cases i know of and all worked fine. And i've also confirmed that the fix for #2234 is not needed anymore. So you can remove the previous fix for it in Patches.py in this PR if you want. Else i'll just remove it later.

Thanks, I have removed it!

@fenhl fenhl removed the Status: Waiting for Release This PR is ready for merge, but we're holding off on it until after the next release label Apr 26, 2026
@fenhl fenhl added this to the next milestone Apr 26, 2026
@fenhl
fenhl merged commit a9fe32d into OoTRandomizer:Dev Apr 26, 2026
6 checks passed
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 Type: Bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Starting a cutscene whilst climbing a ladder can result in a softlock

4 participants