Skip to content

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

@Drflash55

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.

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