Repository navigation
fix(levels): Yeedil's spawner gets the link words through a pointer - #445
Merged
Merged
Conversation
func_L20_0039DCF8 passed a 12-byte struct by value to func_L02_002EF388, whose fourth parameter is a pointer at every other call. The PS2 compiler passes such a struct by a pointer to a copy, so the bytes matched; on the PC port the words went in registers and the routine read them as an address and crashed. It now passes &arg; same bytes (tools/check.py: 20_yeedil OK).
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.
func_L20_0039DCF8 passed a 12-byte struct by value as func_L02_002EF388's fourth argument. Every other caller passes a pointer there. The PS2 compiler passes a struct that size by a pointer to a copy, so the bytes matched; the PC port passed the words in registers instead and crashed on Yeedil. It now passes
&argand declares the parameter as a pointer. The output is byte-identical: tools/check.py reports 20_yeedil OK, 1 of 1 places.