Homebrew OPEN_AGB_FIRM discussion thread

WizardWell

Well-Known Member
Newcomer
Joined
Mar 20, 2023
Messages
62
Trophies
0
Age
34
XP
213
Country
Canada
Stock AGB_FIRM doesn't have sleep mode either, both cases due to hardware limitations.
You can add sleep mode to the individual roms though, something that isn't possible for agb_open_firm for some reason.

I'm not sure why though, they should both be utilizing a similar setup as they are using the GBA hardware within the 3DS. Something about not being able to send a signal when the lid closes... it only turns off the screen and doesn't put the hardware to sleep at all.

If anyone is more knowledgeable on this situation I would love to learn more.
 

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,362
Trophies
1
XP
3,286
Country
It's a software limitation. The dev simply has not implemented sleep mode yet. It's more difficult since it's running on bare metal requiring everything to be written from scratch.
 

DSoryu

GBA/NDS Maniac
Member
Joined
May 5, 2010
Messages
2,359
Trophies
2
Location
In my house
XP
4,786
Country
Mexico
You can add sleep mode to the individual roms though, something that isn't possible for agb_open_firm for some reason.

I'm not sure why though, they should both be utilizing a similar setup as they are using the GBA hardware within the 3DS. Something about not being able to send a signal when the lid closes... it only turns off the screen and doesn't put the hardware to sleep at all.

If anyone is more knowledgeable on this situation I would love to learn more.

That's not sleep mode, just an delusion, because it only turns off the backlight of the 3DS and gets the game "paused" (in some situations), so it will still drain your battery as normal usage would do. Proper sleep mode needs to also turn off other pieces or hardware in a way that it gets back to its previous state when waking up, something that needs to be done in bare metal and difficult to do, hence why open_agb_firm doesn't support it yet, as @ghjfdtg said:

It's a software limitation. The dev simply has not implemented sleep mode yet. It's more difficult since it's running on bare metal requiring everything to be written from scratch.
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,821
Trophies
2
Location
home
XP
9,322
Country
Hungary
Ah, sleep mode (STOP mode actually) is actually easy, it's still present in the GBA chip inside of the 3DS, and works as expected.

It's just that
  • 3DS sleep mode has to be implemented (pretty sure it isn't)
  • GBA STOP mode is independent of 3DS sleep mode, so the 3DS hardware MUST be put to sleep too to save power
  • 3DS sleep mode is really difficult to implement due to every other component (especially the GPU) being really flaky about how you put it down
  • you actually still need to send the wakeup keycombo to the GBA (since it IS still a real GBA, the revision found inside of a DS Lite), which is sadly game-unique
GBA sleep mode is actually easy, it's the 3DS sleep mode which is tedious.
 

enthonyclark

New Member
Newbie
Joined
Feb 15, 2024
Messages
2
Trophies
0
Age
26
XP
9
Country
United States
I would really like a way to set where the save location is. The current setting doesnt work for me in /3ds/open_agb_firm/saves
Post automatically merged:

I would really like a way to set where the save location is. The current setting doesnt work for me in /3ds/open_agb_firm/saves
 

pistonfish

Well-Known Member
Newcomer
Joined
Apr 30, 2021
Messages
84
Trophies
0
Age
24
XP
638
Country
Germany
I would really like a way to set where the save location is. The current setting doesnt work for me in /3ds/open_agb_firm/saves
Post automatically merged:

I would really like a way to set where the save location is. The current setting doesnt work for me in /3ds/open_agb_firm/saves
The save location of the current version is /3ds/open_agb_firm/. Just start a game without save file and check for the newly created file.
 
  • Like
Reactions: Tarmfot

FR0ZN

Well-Known Member
Member
Joined
Nov 2, 2013
Messages
1,381
Trophies
1
Age
37
XP
3,876
Country
United States
I don't know if this has been asked/answered before, but is something like open_agb_firm possible on the DSi as well? 🤔
Or did Nintendo only add the GBA HW to the 3DS?
Since GBARunner2/3 also exist on the DSi I'd assume that such HW is also present there 🤔
 

pistonfish

Well-Known Member
Newcomer
Joined
Apr 30, 2021
Messages
84
Trophies
0
Age
24
XP
638
Country
Germany
I don't know if this has been asked/answered before, but is something like open_agb_firm possible on the DSi as well? 🤔
Or did Nintendo only add the GBA HW to the 3DS?
Since GBARunner2/3 also exist on the DSi I'd assume that such HW is also present there 🤔
The DS has an ARM9 and an ARM7 processor, enabling GBA support by utilizing the ARM7 processor, similar to the ARM7 processor of the GBA. This ARM7 processor didn't get removed in the DSi, as this processor is also being used in DS mode.

Theoretically it should be possible to enable GBA playback on the DSi by utilizing this ARM7 processor.
 

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,246
Country
United States
GBARunner2 is the equivalent of OAF on DS systems. It runs GBA games natively on the built-in GBA hardware. You just don't really want to use GBARunner 2 on 3DS because it forces the system to run in DS mode, which means GBA games can't fill the screen.
 

FR0ZN

Well-Known Member
Member
Joined
Nov 2, 2013
Messages
1,381
Trophies
1
Age
37
XP
3,876
Country
United States
GBARunner2 is the equivalent of OAF on DS systems. It runs GBA games natively on the built-in GBA hardware. You just don't really want to use GBARunner 2 on 3DS because it forces the system to run in DS mode, which means GBA games can't fill the screen.
But looking at the compatability list shows that GBARunner has the same issues on a DSi, as it does on the 3DS.
 

DSoryu

GBA/NDS Maniac
Member
Joined
May 5, 2010
Messages
2,359
Trophies
2
Location
In my house
XP
4,786
Country
Mexico
The DS has an ARM9 and an ARM7 processor, enabling GBA support by utilizing the ARM7 processor, similar to the ARM7 processor of the GBA. This ARM7 processor didn't get removed in the DSi, as this processor is also being used in DS mode.

Theoretically it should be possible to enable GBA playback on the DSi by utilizing this ARM7 processor.

GBARunner2 is the equivalent of OAF on DS systems. It runs GBA games natively on the built-in GBA hardware. You just don't really want to use GBARunner 2 on 3DS because it forces the system to run in DS mode, which means GBA games can't fill the screen.

Both answers are wrong.

The Nintendo DSi doesn't have all the needed GBA hardware on it, despite having an ARM7 processor, and it also lacks memory to even fit large GBA roms to run them directly from it. Only the DS/DS Lite have full GBA hardware that still requires a slot-2 device.

GBARunner3 is being developed with some techniques such as "paravirtualization" and "MMU emulation" to run GBA code that normally runs on an ARM7 using the ARM9 instead, and taking advantage of all the hardware similarities that the DS has compared to a GBA as much as possible, such as the 2D engine. The ARM7 is then used to emulate some things like sound, so is not the same as open_agb_firm

For those interested, here's the GBARunner3 repo https://github.com/Gericom/GBARunner3, which has reached a state that surpasses GBARunner2 already in terms of compatibility and features.
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,821
Trophies
2
Location
home
XP
9,322
Country
Hungary
The DS has an ARM9 and an ARM7 processor, enabling GBA support by utilizing the ARM7 processor, similar to the ARM7 processor of the GBA. This ARM7 processor didn't get removed in the DSi, as this processor is also being used in DS mode.

Theoretically it should be possible to enable GBA playback on the DSi by utilizing this ARM7 processor.
GBARunner2 is the equivalent of OAF on DS systems. It runs GBA games natively on the built-in GBA hardware. You just don't really want to use GBARunner 2 on 3DS because it forces the system to run in DS mode, which means GBA games can't fill the screen.

These answers are indeed wrong. Think of it like this:

Just because both a Game Boy and Game Boy Color have the same CPU, doesn't mean Game Boy Color games would run on a Game Boy.
Both use the same SHARP SM83 microcontroller as the CPU, but the Game Boy Color has some extra hardware that doesn't exist on a regular Game Boy.
They have the same CPU, yes, so technically the *code* can run just fine on both. But the *hardware support* doesn't quite exist on the regular Game Boy.

It is technically possible to emulate Game Boy Color on the Game Boy, if you put extra RAM into the cartridge slot, and the game you're trying to emulate doesn't use SRAM, *and* has free space in the cartridge, but emulating GDMA/HDMA for example (only present in the CGB) would make the game speed slow to a crawl, *despite the CPU being the exact same*.


Edit: lol, this is actually what GBARunner2 does. DS has some hardware moved, added, or removed, compared to a GBA, but it can emulate those via various means. And since the DS 2D video hardware is pretty similar to the GBA's, there is minimal processing power required to just... use the hardware.

This is also why GBA emulators run like junk on the 3DS. There is no 2D hardware anymore accessible in 3DS mode. However, there is a real GBA inside of the 3DS, and using the built-in capture card, it can be displayed on the 3DS LCD (the DSi/GBA LCD signals are *not* routed to the 3DS LCD, the ARM11 coordinates this). Nintendo specially engineered extra hardware to use the 3DS' main RAM (the 128MB FCRAM) as the GBA ROM storage. And no, that doesn't mean that you can use bigger ROMs. Just like a real GBA, it's limited to 32MB, and Nintendo added no support in for GBA video, so it's not possible to use bigger ROMs on a 3DS.
 
Last edited by Sono,
  • Like
Reactions: Tarmfot

pistonfish

Well-Known Member
Newcomer
Joined
Apr 30, 2021
Messages
84
Trophies
0
Age
24
XP
638
Country
Germany
I guess I took some wrong assumptions. It's true that just because the CPU technically supports GBA games, that doesn't mean that it is possible to use the hardware configuration of a specific device to run these games. Thanks for the clarification!
 

almmiron

Well-Known Member
Member
Joined
Jan 9, 2012
Messages
423
Trophies
1
XP
1,982
Country
Brazil
I have this 64k save (i've played on Mgba on wii)

the one open agb created after starting metroid fusion, was a 32k one.

Possible to use my previous wii mgba save with open agb?

Edit,just tested, works ok. Just renamed with the same name.
 

refat17

Member
Newcomer
Joined
Nov 11, 2014
Messages
16
Trophies
0
Age
26
XP
124
Country
Canada
Not sure if anyone else has dealt with this but the moment I launch open_agb_firm from the chainloader menu my 3ds just freezes on the chainloader menu and I'm forced to power off the 3ds manually. I've been having issue also launching DS mode though, so maybe related.
 

refat17

Member
Newcomer
Joined
Nov 11, 2014
Messages
16
Trophies
0
Age
26
XP
124
Country
Canada
If you can even boot this run the RAM tester from the assets below.
https://github.com/aspargas2/3ds_hw_test/releases

There is likely a hardware defect or a corrupted SD card filesystem causing issues.
I actually tried the hardware test recently due trying to fix DS Mode and and got 0 errors. As for a corrupted sd card, is there a specific way to test for that?

Anything 3ds mode related has been perfectly fine. Just this, DS Mode and GBA Virtual Console result in a a freeze that require a manual power off.
 

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,362
Trophies
1
XP
3,286
Country
You just backup all your files, reformat with the standard method recommended in almost every thread here and then copy the files back on.
 
  • Like
Reactions: refat17

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: The Castlevania game was on the PS1 so that's cool +1