GBARunner3?

  • Thread starter Thread starter LexDG
  • Start date Start date
  • Views Views 184,560
  • Replies Replies 419
  • 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?
 
Is there a quicker way to perform a soft reset, rather than pressing the A, B, Select and Start buttons manually?
 
Hi guys I'm from Italy and I'm new to this forum and to the flashcart world. I set up my DSPico on my old DS lite and it works pretty well even with the emulation (GBArunner3), but I was wondering: why does Pokemon Emerald rom (USA/Europe) work just fine while the Italy rom doesn't even start, freezing with a white screen? I already edited the BPEE00.json file to disable JIT as recommended by many. Is there a way to make it compatible just like Ruby and Sapphire (Italy)? Thanks
 
Would love the Build nightly #85 of GBARunner3 for download on this forum as I have trouble getting it to download?
 
Would love the Build nightly #85 of GBARunner3 for download on this forum as I have trouble getting it to download?
You can't download it cause it hasn't been built -- it says it's waiting for workflow approval. Here's a build of #205's latest commit.
 

Attachments

  • Like
Reactions: k66 and zfreeman
What is the latest merged PR GBARunner3 build then Pk11?
The ones listed on GitHub as #79 (for "develop", the main branch) and #80 for "cache-hicode" which I think is the current most popular build. k66 uploaded them a few posts back.
 
Development on GBARunner3 is paused, as the developer is currently working on DSpico stuff. It may take a while before they get back to working on GBARunner3 again.
Development on GBARunner3

Development on GBARunner3 is paused, as the developer is currently working on DSpico stuff. It may take a while before they get back to working on GBARunner3 again.
Thank you for replying and thank you so much for your work with Twilight Menu, you're my hero!
Post automatically merged:

Greetings from Argentina

I recently installed GBARunner3 (85# build) and after testing it with a wide variety of official and homebrew titles on my DSi, I encountered these problems already mentioned in this forum Like

Sword of mana Crash on the Title Screen

F-Zero works but with Graphics errors

Jet Set Radio Go to Black Screen in the tutorial

Pokemon Emerald Unfortunately, it doesn't work in any regional version

So far I haven't found any other games with errors, but I've read that certain .json files can be edited to make some games work

Could someone share a method or files that fix these problems? I've edited my .json configuration file a bit, but I don't know how to do it with the games. Any advice would be greatly appreciated
 
Last edited by Luzbelito990,
On the DSi, you can use both GBARunner2 and GBARunner3 at the same time, and they have some differences in compatibility.
I’m playing a ROM hack of Pokemon Emerald on GBArunner2, and it’s running fine.

TWiLightMenu++ uses GBARunner2 by default to launch GBA games.
To use GBARunner3:
Put GBARunner3.nds in SD:/_nds/TWiLightMenu/emulators;
Put the GBARunner3 config files in SD:/_gba;
Now TWiLightMenu++ uses GBARunner3 by default to launch GBA games.

Use the GBARunner3 frontend: put gbar3-frontend-TWiLight.nds to the SD card root, and click the icon (Game Loader: Unlaunch) in TWiLightMenu++ to start the frontend.

To play GBARunner2 and 3 at the same time:
Copy SD:/_nds/GBARunner2_arm7dldi_dsi.nds (or GBARunner2_arm7dldi_nodsp_dsi.nds) to the SD card root, and click the GBARunner2 icon (Game Loader: nds-bootstrap) in TWiLightMenu++ to launch GBARunner2.
 
Last edited by k66,
  • Like
Reactions: Luzbelito990
On the DSi, you can use both GBARunner2 and GBARunner3 at the same time, and they have some differences in compatibility.
I’m playing a ROM hack of Pokemon Emerald on GBArunner2, and it’s running fine.

TWiLightMenu++ uses GBARunner2 by default to launch GBA games.
To use GBARunner3:
Put GBARunner3.nds in SD:/_nds/TWiLightMenu/emulators;
Put the GBARunner3 config files in SD:/_gba;
Now TWiLightMenu++ uses GBARunner3 by default to launch GBA games.

Use the GBARunner3 frontend: put gbar3-frontend-TWiLight.nds to the SD card root, and click the icon (Game Loader: Unlaunch) in TWiLightMenu++ to start the frontend.

To play GBARunner2 and 3 at the same time:
Copy SD:/_nds/GBARunner2_arm7dldi_dsi.nds (or GBARunner2_arm7dldi_nodsp_dsi.nds) to the SD card root, and click the GBARunner2 icon (Game Loader: nds-bootstrap) in TWiLightMenu++ to launch GBARunner2.
greetings

I just started testing by alternating between GBARunner 3 and 2

Pokemon Emerald works even with Rom hacks

Sword of Mana no longer crashes on the title screen, but now crashes during the first cutscene of the game, in addition to a repeated beep being heard

I haven't been able to test the other titles with GBARunner2 yet because they don't appear on the list, but it seems this method can help anyone wanting to get certain ROMs working that don't boot in GBARunner3 yet
 

Site & Scene News

Popular threads in this forum