-
Notifications
You must be signed in to change notification settings - Fork 2
Description
I've already spoken with Yoshi2 about this on The Sunshine Hut, but essentially if the game needs to use extended memory for whatever reason (in this example, Super Mario Sunshine Online created by Angry_Max and MasterMattK), GeckoLoader still relies on using normal branch instructions for overwriting the main code that gets read in assembly. Thus, if it goes over the 24-bit signed jump that it can read, it will instead overflow and start branching backwards (the same applies for where GeckoLoader also applied their codes, branching forwards instead of backwards).
I'm no expert on the matter of how to fix this, but I believe it can be fixed if instead of using normal branches, it uses the Count Register as if it were doing a function call, so that way regardless of where it's located in memory, it will always be able to branch there instead of missing where it's supposed to read completely.
The above function can also be included as a separate option so that it does not interfere with normal operations, just in case Dolphin's Emulated Memory Size Override does not need to be used.