Fix Goron Link softlock when talking for first time out of range#2559
Open
djevangelia wants to merge 3 commits into
Open
Fix Goron Link softlock when talking for first time out of range#2559djevangelia wants to merge 3 commits into
djevangelia wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix for talking to rolling Goron Link for the first time (without Goron tunic) and moving out of range softlocking. Fixes #2007.
I wrote about it with reference to decomp code here. When you move out of range, the Goron falls asleep, and cannot update talkstate and text id. This fix is the upper of the two proposed, adding
NPC_TALK_STATE_TALKINGas a condition that by itself makes updating continue, and Goron still rolled up.Disassembly
NTSC 1.0 matching disassembly for modified function
func_80A45288hereTesting
Tested in Ares 1.47, Project64 3.0.1 and Mupen64plus 2.8. Using a button input to move away from the Goron, but I've previously tried it in decomp (C fix) by manually recreating it.
Looks like this: https://www.youtube.com/watch?v=3kHLoNk2sHU
Video shows the softlock due to the fix code being edited (pink) to not load talkstate but action function. When this is restored, Goron can update despite being asleep as talkstate is
NPC_TALK_STATE_TALKING.