GBARunner3?

  • Thread starter Thread starter LexDG
  • Start date Start date
  • Views Views 176,480
  • Replies Replies 406
  • Likes Likes 5
is the RTC still not in GBAR3, or is it because I'm on dsPico
I'm trying to play pokemon emerald on it and 1) it gives me a "the battery has run dry", and 2) the visual effect for encountering a wild pokemon is messed up and runs a lot slower than it should
 
Last edited by YuugiEnjoyer,
I feel like I'm going insane, is there really not a way for the RTC to work as intended on DS without just buying a GBA Cart?
 
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.
Do you have the one for pokemon the pit or pokemon emerald rogue perchance???
 
I'll write GBARunner3 installation instructions again, hopefully this post gets marked as important.

View attachment 497674

To run Game Boy Advance ROMs in TwilightMenu++ using GBARunner3, follow these steps:

Requirements


Instructions

  1. Extract the contents of the GBARunner3 (hicode branch) build ZIP file to the root of your SD card.
  2. Copy GBARunner3.nds from your SD card root to _nds\TWiLightMenu\emulators in your SD card.
  3. Obtain the GBA BIOS and rename it to bios.bin.
  4. Place the GBA BIOS inside the _gba folder. The path should look like this: /_gba/bios.bin
  5. Make sure the configuration folder is correctly placed. The configs folder must be inside _gba, like this: /_gba/configs/
  6. Launch TwilightMenu++ and navigate to your GBA ROMs location.
  7. Select a ROM and run it directly. You should see the GBARunner3 splash animation, followed by the GBA BIOS animation with the Nintendo logo.



To run Game Boy Advance ROMs in any flashcard kernel using gbar3-frontend + GBARunner3, follow these steps:

Requirements


Instructions

  1. Extract the contents of the GBARunner3 (hicode branch) build ZIP file to the root of your SD card.
  2. Obtain the GBA BIOS and rename it to bios.bin.
  3. Place the GBA BIOS inside the _gba folder. The path should look like this: /_gba/bios.bin
  4. Make sure the configuration folder is correctly placed. The configs folder must be inside _gba, like this: /_gba/configs/
  5. Boot your flashcard kernel as usual, Launch gbar3-frontend.nds and navigate to your GBA ROMs location.
  6. Select a ROM and run it directly. You should see the GBARunner3 splash animation, followed by the GBA BIOS animation with the Nintendo logo.
  7. Bonus feature: This frontend will automatically boot to roms/gba if it exists.
Hi, is the GBArunner3 download no longer available on Gericom's Github?
 

Site & Scene News

Popular threads in this forum