Skip to content

GeckoLoader doesn't properly work with extended memory (Dolphin) #10

Description

@Drflash55

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions