Old3ds : mGBA, GBARunner, OPEN_AGB_FIRM comparison?

StriderVM

Well-Known Member
OP
Member
Joined
Jan 16, 2015
Messages
433
Trophies
0
Age
41
XP
400
Country
Hey everyone.

I have gotten out my Old 3DS out of the drawer for how many years has it been. (I think LumaCFW was brand new when I last used it)

So now I'm looking for advances that happened in the 3DS homebrew scene.

Back, the only reasonable solution for playing GBA games on 3DS was to use an injector to replace the ROMS in GBA games in Virtual Console. Which works, but is cumbersome because no direct ROM loading.

However, it seems today, there are three (supposedly) better solutions. mGBA, GBARunner and OPEN_AGB_FIRM.

Is there any direct comparisons of the three? Any suggestions? I can try experimenting with all three, but it will take a while, and I will appreciate any leads.

I'm starting with OPEN_AGB_FIRM because it seems to be the fastest with O3DS, mGBA might be too slow since it's pure software emulation? GBA Runner seems to be either too old or obsolete?
 

Coderman64

Member
Newcomer
Joined
Feb 18, 2024
Messages
20
Trophies
0
XP
119
Country
United States
Hey, I've tried all three (four, if you count the injector). I prefer open_agb_firm, but here's a bit about all three:

mGBA is, as you said, a pure software emulator and is a little too slow on my o3DS, but going the pure emulation route has advantages, like save states. If you want to do that, I'd recommend trying the gpSP core on RetroArch, which trades some accuracy for speed, though it still has some hiccups for me.

GBARunner and open_agb_firm use different techniques to achieve more or less the same thing: using the 3DS's native GBA hardware to play GBA games. GBARunner is older and better tested and may support more games, but it runs in DS mode, which causes some issues for me (particularly Nintendo's TWLBg bug, which means that the bottom of the screen glitches and repeats the same 8-pixel row over and over). It is also subject to the upscaling filter that the 3DS uses on DS games IN ADDITION to the filter used to upscale the GBA screen to the DS, making everything a little blurry.

Open_agb_firm, on the other hand, is a firmware module that runs on bare metal 3DS hardware, much like GodMode9. It's a little more complicated to install and launch because of this. I have it set up so I can launch either GM9 or open_agb_firm when holding select on 3DS boot. The interface is bare bones, and you have to restart the 3DS if you want to switch games (it is much faster without booting the 3DS home menu every time), but the games look good and run well.

GBARunner and open_agb_firm have some hardware-induced issues you might need to work around, but I haven't run into any with any of the games I've played.

hope this helps!
 
  • Like
Reactions: splaca

Maximumbeans

3DS is love, 3DS is life
Member
Joined
Jun 7, 2022
Messages
752
Trophies
0
XP
1,746
Country
United Kingdom
I personally vouch for OPEN_AGB_FIRM. Yeah, it's bare metal, so you lose a lot of potential functionality, but if you want to simply play GBA titles I consider it perfect. It's quick and responsive and it's about as close to just using a GBA as you can get, but with adjustable back lighting etc. I play with the bilinear scaling enabled and I think it looks brilliant, some don't like it but you always have the choice anyway :)
 

Project68K

Well-Known Member
Newcomer
Joined
Nov 12, 2020
Messages
72
Trophies
0
Age
24
XP
683
Country
United States
I personally vouch for OPEN_AGB_FIRM. Yeah, it's bare metal, so you lose a lot of potential functionality, but if you want to simply play GBA titles I consider it perfect. It's quick and responsive and it's about as close to just using a GBA as you can get, but with adjustable back lighting etc. I play with the bilinear scaling enabled and I think it looks brilliant, some don't like it but you always have the choice anyway :)
Not just close, it IS a GBA.
 

Maximumbeans

3DS is love, 3DS is life
Member
Joined
Jun 7, 2022
Messages
752
Trophies
0
XP
1,746
Country
United Kingdom
Not just close, it IS a GBA.
Well I said it's about as close to use a GBA as you can get, by which I meant it's as close as possible without using an actual, physical GBA. I know the 3DS has the hardware architecture but with it being a different product, that's the distinction I meant. But yes, for all intents and purposes, it's the same thing.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Xdqwerty @ Xdqwerty:
    @salazarcosplay, kind of like mugen or rivals of aether?
  • S @ salazarcosplay:
    and also ahve the option to play as a human
  • S @ salazarcosplay:
    or set it up that when you get injured past a certain point they have to replace your human parts with cybernetics
  • Xdqwerty @ Xdqwerty:
    i have a placeholder enemy sprite i made
  • S @ salazarcosplay:
    or have it that you don't know you are a cyborg, robot, and you find out and have a existential crisis
  • S @ salazarcosplay:
    or have it start in the virtual world and you are an ai that gained sentience
  • Xdqwerty @ Xdqwerty:
    btw gonna wash my face in a bit, my eyes feel tired
  • S @ salazarcosplay:
    and you convince your owner to help you break out of the virtual world to real world
  • BigOnYa @ BigOnYa:
    Eyes - "yawn"
    +1
  • S @ salazarcosplay:
    you bleack in to goverment computer systems to get cyborg schematics so you can get a robot body constructed
  • Xdqwerty @ Xdqwerty:
    btw @BigOnYa the health bar doesnt decrease when i take damage (and yes i put the "at the beggining of the scene change value of greenflatbar: set to Protagonistcopmode.Health::Health())
  • S @ salazarcosplay:
    i the protagonist
  • S @ salazarcosplay:
    human, robot, cyborg
  • S @ salazarcosplay:
    human with cyborg enhancements
  • S @ salazarcosplay:
    or like terminatior
  • S @ salazarcosplay:
    with living tissue
  • BigOnYa @ BigOnYa:
    @Xdqwerty there is health behaviour you can add to your character, then to use a health bar is lil more complicated, google n watch a few tutorial video on it, be too hard to explain here.
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, the character has the health behavior
  • BigOnYa @ BigOnYa:
    I know you have to create a health and health max variable. Then there is a calculation you use in code to subtract width size of the health bar. Google few vids.
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, the "greenflatbar" is one of the preset health bars btw
  • BigOnYa @ BigOnYa:
    Yea you can use any bar/sprite. It will just change the width. Ok good luck and have fun. I'm off to go shoot some pool at the bar. Talk to you later.
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, why does the health behavior exist if you can just use a variable?
    Xdqwerty @ Xdqwerty: @BigOnYa, why does the health behavior exist if you can just use a variable?