GBARunner3?

  • Thread starter Thread starter LexDG
  • Start date Start date
  • Views Views 178,939
  • Replies Replies 406
  • Likes Likes 5
Will the GBARunner3 be able to run rom hacks without the white screen problem when loading the game?
I've used countless of hours to get rom hacks working on my dsi, but keeps getting the white screen when loading the rom everytime...
 
Will the GBARunner3 be able to run rom hacks without the white screen problem when loading the game?
I've used countless of hours to get rom hacks working on my dsi, but keeps getting the white screen when loading the rom everytime...

That's expected, you need to configure manual JIT patches and in some cases, configure self modifying code patches, this is achieved by using no$GBA debugger, the instructions that need patching are msr, mrs and movs pc, as for self modifying patches, it needs a bit more of work since reverse engineering is involved, and you need to inspect VRAM area, where some of this gets executed most of the times.

From the GBARunner2 thread:

is just a combination of hicode (expected), self modifying code (most romhacks use the "better sound mixer patch") and manual JIT patches (GBARunner specific patch addresses for performance).

Also, RTC doesn't work because it hasn't been implemented yet, is not a romhack issue.

Any romhack that doesn't contain "unreachable" hicode (code beyond 0x08F00000, which isn't currently supported) will run just fine with proper manual JIT patches and Cache invalidation patches (both supported by GBARunner3).

For example, Pokémon Unbound works with Emerald manual JIT patches and 0x0880DEF0 address for cache invalidation, like this:

JavaScript:
{
    "runSettings": {
        "jitPatchAddresses": [
            "0x08000208",
            "0x08000214",
            "0x08000258",
            "0x0800034C",
            "0x08000358",
            "0x08000378",
            "0x08000384",
            "0x08000394"
        ],
        "selfModifyingPatchAddresses": [
            "0x0880DEF0"
        ]
    }
}

You can save this as "BPEE02.json" inside _/gba/configs.

Then modify Unbound rom using a HEX editor with this (to avoid conflicts with a base emerald rom):

Code:
000000A0: 50 4F 4B 45 4D 4F 4E 20 46 49 52 45 42 50 45 45
000000B0: 30 31 96 00 00 00 00 00 00 00 00 00 02 73 00 00

With these steps, Unbound will work just fine, with some minor performance issues if you have sound set to "High Quality" (Mid is recommended).

This process can be applied to other romhacks, but addresses for manual JIT patches may be a bit different depending of the romhack, and cache invalidation addresses are ALWAYS different, since the better sound mixer patch allocates itself in different locations depending on the size of the romhack.
 
finding this was a blessing.
I tested Golden Sun TLA with SRAM patch and it seems to work and save properly, at least in the early game.
Castlevania Circle of the moon, one of my favorite games ever seems to work better in gbarunner3 than in the previous version, withou the weird delayed audio glitches and faster.
I still have to test some other games but so far it looks promising, is there a way of using borders? or open settings?
thanks to anyone involved in this amazing project.
 
  • Like
Reactions: liquidgykill

Attachments

anyone have the compatibility list? I’m having some issues with battle network 6
 
Would any of you like it if some graphic filters/shaders were available (linear/bilinear, 2xsai, Super Eagle, Scale2x etc.)? On DSi XL the image would improve significantly, or not? I don't think there would be performance problems on DSi and 3DS (the ones mentioned are "lighter" filters), while on DS phat/lite it would be enough not to activate the corresponding option, if necessary. What do you think? 😉
 

Site & Scene News

Popular threads in this forum