Homebrew OPEN_AGB_FIRM discussion thread

lone_wolf323

Well-Known Member
Member
Joined
May 27, 2011
Messages
5,485
Trophies
2
XP
4,929
Country
Canada
Nintendont uses real hardware as well, so “because this is a 3DS” doesn’t answer my question at all. Obviously I’m aware that it’s done because of the way the two consoles are made, but “the 3DS isn’t a WiiU” doesn’t even begin to explain why, it just comes off as dickish.

GBA VC games enter it though and are installed via CIA, and I’m pretty sure they reboot to enter it and reboot when you exit. This is why I’m asking this question. What is the purpose of doing it the way it is done instead of the way GBA VC games do it which theoretically should let you boot into a menu to select games. DS mode basically has Nintendont style functions though Twilight Menu so it seems like GBA mode should be able to support it as well using a GBA VC title as the entry point.

I know there is a reason it done this way, a GBA VC game would be an obvious entry point so if it’s not being used for this then there is a reason, but the reasons given don’t make sense to me because if you crash the 3DS booting into GBA mode from the 3DS menu then the GBA VC games wouldn’t work.
No the 3ds isnt a WiiU comes off as That you are trying to compare 2 different consoles that run their data completely differently from each other. They are not the same, and never will be. GBA VC still enter the firm and exit to the 3ds native firm when ever you launch a GBA game. Nintendont is not something that is 3ds based, and dont ever expect it to be. Unless you care to go thru all the stuff thats needed and even if its possible to begin with, then code it yourself. Learn whats needed and see what goes on that your missing.
 

DSoryu

GBA/NDS Maniac
Member
Joined
May 5, 2010
Messages
2,359
Trophies
2
Location
In my house
XP
4,777
Country
Mexico
Nintendont uses real hardware as well, so “because this is a 3DS” doesn’t answer my question at all. Obviously I’m aware that it’s done because of the way the two consoles are made, but “the 3DS isn’t a WiiU” doesn’t even begin to explain why, it just comes off as dickish.

GBA VC games enter it though and are installed via CIA, and I’m pretty sure they reboot to enter it and reboot when you exit. This is why I’m asking this question. What is the purpose of doing it the way it is done instead of the way GBA VC games do it which theoretically should let you boot into a menu to select games. DS mode basically has Nintendont style functions though Twilight Menu so it seems like GBA mode should be able to support it as well using a GBA VC title as the entry point.

I know there is a reason it done this way, a GBA VC game would be an obvious entry point so if it’s not being used for this then there is a reason, but the reasons given don’t make sense to me because if you crash the 3DS booting into GBA mode from the 3DS menu then the GBA VC games wouldn’t work.

I'm just gonna say that you don't know what are you saying and how GBA VC injections work either.
 

n00bsaib0t

Well-Known Member
Member
Joined
Feb 12, 2015
Messages
287
Trophies
0
Age
38
Location
Phoenix, AZ
XP
1,151
Country
United States
No the 3ds isnt a WiiU comes off as That you are trying to compare 2 different consoles that run their data completely differently from each other. They are not the same, and never will be. GBA VC still enter the firm and exit to the 3ds native firm when ever you launch a GBA game. Nintendont is not something that is 3ds based, and dont ever expect it to be. Unless you care to go thru all the stuff thats needed and even if its possible to begin with, then code it yourself. Learn whats needed and see what goes on that your missing.
Obviously I don’t know the difference between them, that’s why I asked the question. Rather than explain it you tell me to learn about it and code it myself, which wasn’t the goal. I also don’t expect Nintendont to be 3DS based, I never asked for that. The goal was to see why two similar ideas (launch GC games to play natively on a WiiU, launch GBA games to play natively on a 3DS) are done in completely different ways.
I'm just gonna say that you don't know what are you saying and how GBA VC injections work either.

I know they run the games natively and not through emulation. Beyond that, if I knew anything about the process I wouldn’t have asked. Apparently not knowing things is frowned upon here on the 3DS part of the site, as is asking how things work. The Wii and WiiU areas are much more willing to explain these kinds of things to people.
 

DSoryu

GBA/NDS Maniac
Member
Joined
May 5, 2010
Messages
2,359
Trophies
2
Location
In my house
XP
4,777
Country
Mexico
Obviously I don’t know the difference between them, that’s why I asked the question. Rather than explain it you tell me to learn about it and code it myself, which wasn’t the goal. I also don’t expect Nintendont to be 3DS based, I never asked for that. The goal was to see why two similar ideas (launch GC games to play natively on a WiiU, launch GBA games to play natively on a 3DS) are done in completely different ways.


I know they run the games natively and not through emulation. Beyond that, if I knew anything about the process I wouldn’t have asked. Apparently not knowing things is frowned upon here on the 3DS part of the site, as is asking how things work. The Wii and WiiU areas are much more willing to explain these kinds of things to people.

Sono already explained it to you in the clearest way possible and also made many explanations in previous posts, but you keep asking for an explanation when it was already made.

I'll explain it again in a tldr form:

Open_agb_firm works in the same way as a VC inject, the differences being that it has SD access support so your can choose which rom you want to load, saving time and space because you don't need to build a title for every and each rom neither a home menu slot, the othrer difference is that it is open source so anyone can contribute or improve/make changes to it.

And yes, an option can be made to return to Home Menu if you want, but is pretty unnecessary when you just need to power off the console and turning it on again.

And the reason that this is not the same as Nintendo t is because here, part of the 3DS hardware is acting as a real GBA, think of it as if you try to make a real GBA to use 3DS features, you would need to tweak too many functions that only could en breaking actual GBA functionalities.
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,821
Trophies
2
Location
home
XP
9,321
Country
Hungary
Nintendont uses real hardware as well, so “because this is a 3DS” doesn’t answer my question at all. Obviously I’m aware that it’s done because of the way the two consoles are made, but “the 3DS isn’t a WiiU” doesn’t even begin to explain why, it just comes off as dickish.

Ah, so you misunderstood me.

By "uses real hardware" I meant that it's not using software emulation, but it's using genuine GBA hardware inside the 3DS, including the CPU, GPU, sound, and even the cartridge adapter.

Also, please do not assume that everyone wants to offend you. In my native language saying "it's because it's an y, not an x" is not only not offensive, but both communication participants laugh their ass off while saying it.
Not only that, but not everyone's native language is English. Chinese who learn English are a great example, as often times when I chat with a Chinese who has difficulties making up a sentence, they often come off as rude, even though they are trying their best to form a sentence, and meant absolutely no offense.

Please keep this in mind. Thank you.

GBA VC games enter it though and are installed via CIA, and I’m pretty sure they reboot to enter it and reboot when you exit. This is why I’m asking this question. What is the purpose of doing it the way it is done instead of the way GBA VC games do it which theoretically should let you boot into a menu to select games. DS mode basically has Nintendont style functions though Twilight Menu so it seems like GBA mode should be able to support it as well using a GBA VC title as the entry point.

I know there is a reason it done this way, a GBA VC game would be an obvious entry point so if it’s not being used for this then there is a reason, but the reasons given don’t make sense to me because if you crash the 3DS booting into GBA mode from the 3DS menu then the GBA VC games wouldn’t work.

This question of yours has already been partially answered:
You could boot into the FIRM from HOME menu by using "A9SP" and a compatible bootloader like fastboot3DS or GodMode9. Other than that yeah. GBA mode can't be entered from userland homebrew (3dsx or CIA). You have to reboot.

But otherwise we don't mention that you could boot open_agb_firm by installing it on the NAND, because not only is it a bad idea to tamper with the NAND, but also that open_agb_firm can't save your savefile back to your GBA savedata.

As for TWiLightMenu++, it does some trickery to be able to keep a register unlocked which allows it to switch between DS and DSi mode. Also, DS games run from RAM, not directly off of the cartridge like GBA software does. On the DS the bootloader loads the code into RAM, and runs it, and it's the code's responsibility to copy the textures and other things off of the cartridge into RAM. Same goes for DSi, except it can also load from NAND or SD.
GBA games run directly off of the cartridge (because the way the CPU sees it, it's just an extremely slow RAM which can't be written to), so you either need to emulate a whole GBA CPU to bypass this limitation (which GBARunner2 does), or you need to emulate a game cart (which is what the 3DS does).

As for the REAL reason why GBA "VC" titles don't have a ROM selector: because GBA cias only contain icons and the ROM itself. No 3DS code at all. Same for DS(i) titles too. The HOME Menu loads the ROM into a very specific address of the 3DS RAM, and upon rebooting TWL_FIRM and AGB_FIRM are EXPECTING a valid ROM to be at that magic RAM address, and they don't actually load anything once they are booted.

Edit: the reason GBA games stop working if 3DS crashes is that it doesn't, it's just the 3DS hardware crashing, and the GBA hardware is still running. This is because the GBA hardware doesn't know how to drive the 3DS LCD, so Nintendo integrated a capture card into the 3DS, and it's the 3DS hardware's job to copy the image data from the capture card and display it on the 3DS LCD.
 
Last edited by Sono,

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,244
Country
United States
If I'm not too far off the mark, I think his questions were basically:

1) Why can't I launch this from the 3DS Home menu and then get the ROM selector?
2) Why can't I press Home to return to 3DS mode?

and the answers are:

1) Launching it by holding Start at boot is faster and less work, so the author hasn't bothered to attempt the "worse" way, although theoretically having a CIA that lets you pick a ROM and put it at the correct address before rebooting into GBA mode is probably possible.
2) It's possible, but again, it's more work and unnecessary for an alpha-level project.

Profi200 just created a brand new open implementation of playing GBA games on 3DS. How about showing a little patience while the project matures? You're not going to get unnecessary bells and whistles on day one.
 
Last edited by AleronIves,

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,360
Trophies
1
XP
3,282
Country
Nintendont style game booting (using forwarders) or booting into a game selection is possible as others have mentioned. To support this there first needs to be a solid way to implement such forwarders but there isn't right now. A9SP is the closest but it doesn't allow passing a ROM or path to it so it can only boot the FIRM normally which will show the ROM selection. Returning to HOME menu can only be implemented by rebooting again (triggering a hardware reboot/reset).

And yeah, official GBA VC does reboot too. The titles contain nothing but the ROM and icon/banner. When HOME menu/ns module detects you are launching GBA VC it will trigger a FIRM launch to AGB_FIRM.

I don't know how Nintendont works under the hood but i expect something similar.
 

evertonstz

Well-Known Member
Member
Joined
Jan 5, 2019
Messages
209
Trophies
0
Age
29
XP
557
Country
Brazil
Dang, thing was released less than two months ago and people are already fighting multiple pages for quality of life improvements.

Never change, GBAtemp, the entitled kids that can't code a hello world and the kids that think they can are killing homebrew development veeery slowly. In a couple years you'll probably reach maximum annihilation.

The good thing is that all the talent will end up flocking to Linux and other open source scenes, so that's a plus for us.
 
Last edited by evertonstz,

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,244
Country
United States
I think Nintendont generally has an easier job, because the Wii doesn't have multiple CPUs like the 3DS does. A Wii is essentially an overclocked GameCube with an extra ARM CPU on the side. When you actually insert a GC disc, the Wii underclocks to 485 MHz to better represent a GameCube, but Nintendont (and Devolution) runs in Wii mode, so you get better performance in GC games (or extra bugs, if the game relies on the GC's original clockrate). It's not really comparable to the 3DS, which has 3 different CPUs that can each be used to run different games for 3 different consoles and yet are expected to somehow communicate with each other so you can switch modes without powering off the system.
 
  • Like
Reactions: Saxer and fmkid

n00bsaib0t

Well-Known Member
Member
Joined
Feb 12, 2015
Messages
287
Trophies
0
Age
38
Location
Phoenix, AZ
XP
1,151
Country
United States
If I'm not too far off the mark, I think his questions were basically:

1) Why can't I launch this from the 3DS Home menu and then get the ROM selector?
2) Why can't I press Home to return to 3DS mode?

and the answers are:

1) Launching it by holding Start at boot is faster and less work, so the author hasn't bothered to attempt the "worse" way, although theoretically having a CIA that lets you pick a ROM and put it at the correct address before rebooting into GBA mode is probably possible.
2) It's possible, but again, it's more work and unnecessary for an alpha-level project.

Profi200 just created a brand new open implementation of playing GBA games on 3DS. How about showing a little patience while the project matures? You're not going to get unnecessary bells and whistles on day one.
I don’t need to show patience before asking questions. I’m not about to delete all my injects and switch over to this, I just thought it was pretty damn cool but had a question about why this had to function differently than Nintendont, so if you guys could quit trying to claim I’m fighting for pages about QOL improvements or trying to get unnecessary bells and whistles that would be fucking swell.

--------------------- MERGED ---------------------------

I think Nintendont generally has an easier job, because the Wii doesn't have multiple CPUs like the 3DS does. A Wii is essentially an overclocked GameCube with an extra ARM CPU on the side. When you actually insert a GC disc, the Wii underclocks to 485 MHz to better represent a GameCube, but Nintendont (and Devolution) runs in Wii mode, so you get better performance in GC games (or extra bugs, if the game relies on the GC's original clockrate). It's not really comparable to the 3DS, which has 3 different CPUs that can each be used to run different games for 3 different consoles and yet are expected to somehow communicate with each other so you can switch modes without powering off the system.
This actually does a much better job explaining what I asked than than the other posts. I was under the impression that the Wii and WiiU straight up had GC hardware in them like the 3DS does for the GBA. I didn’t realize there was any kind of undercklocking Wii hardware to run in that mode on WiiU, it was explained to me that the games run natively which I took to mean run on real GC hardware.
 

Stellar

Well-Known Member
Member
Joined
Jul 20, 2014
Messages
194
Trophies
0
XP
1,776
Country
Portugal
Profi200 just created a brand new open implementation of playing GBA games on 3DS. How about showing a little patience while the project matures? You're not going to get unnecessary bells and whistles on day one.

Not having read the conversation that led to this retort, all I can say is that it's very possible to be both patient and grateful for a project such as this, all the while hoping it does get some QoL features down the line. The ability to use it as either a normal application (which it isn't, I'm aware) or instead make it a complete replacement for the stock agb_firm are attractive prospects for me.
 
Last edited by Stellar,

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,244
Country
United States
I was under the impression that the Wii and WiiU straight up had GC hardware in them like the 3DS does for the GBA. I didn’t realize there was any kind of undercklocking Wii hardware to run in that mode on WiiU, it was explained to me that the games run natively which I took to mean run on real GC hardware.
It is native, in that the GC, Wii, and Wii U all use the same basic PowerPC CPU. The Wii is 2x faster than GC, and Wii U adds multiple cores, but it's still close enough that GC and Wii games will run on Wii U. AFAIK the Wii U downclocks to Wii speeds when you use vWii mode, so you still get the same performance boost as running GC games on Wii in Wii mode.

The 3DS, on the other hand, has ARM7, 9, and 11 CPUs in it. They're in the same family, but neither the ARM9 nor ARM11 can run GBA games - only the ARM7 can. The ARM11 is in charge of running all the 3DS stuff, though, so switching to DS mode (ARM9) or GBA mode (ARM7) puts a different CPU in the driver's seat and makes it more difficult to use the ARM11 to do anything, such as signalling that you want to return to the Home menu. On Wii and Wii U, the main PPC CPU is always in charge, so switching between GC/Wii/Wii U games is easy.

it's very possible to be both patient and grateful for a project such as this, all the while hoping it does get some QoL features down the line.
I agree. The substance of his questions was fine. The way he asked them sounded entitled and disrespectful, which is why he got multiple defensive replies. I would like to be able to launch games from 3DS mode and press Home to back out of GBA mode, too. The difference is that I know this is alpha-level software, so I'm not making posts like "Why is the ROM selector so ugly? Why do I have to power off? This is so lame compared to VC injection!"
 

Stellar

Well-Known Member
Member
Joined
Jul 20, 2014
Messages
194
Trophies
0
XP
1,776
Country
Portugal
This really is a blessing.

I get a lot of audio desync issues and some visual glitches in GBArunner2 (although I love how fast it is). mGBA can't handle all games at full speed and it crashes my 3ds on exit often enough that I don't want to use it anymore. VC injects have the screen crunch bug which is supremely pervasive for me.

It feels like there hasn't been a perfect way to play GBA on the 3ds up until now.

Curiosly enough I have never had the screen crunch bug on DS games despite having heard they both supposedly suffer from it, whereas some of my GBA VC injects come up bugged 90% of the time.
 
  • Like
Reactions: Sono and peteruk

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,244
Country
United States
My #1 hope right now is that there will be more scaling options in the future. I much prefer Nintendo's scaling methods to bilinear, so I'll probably stick with GBAR2 for the time being, even though having 360x240 would be nice.
 
  • Like
Reactions: Sono

Tebra

Well-Known Member
Member
Joined
May 18, 2016
Messages
109
Trophies
0
XP
2,160
Country
Belgium
My #1 hope right now is that there will be more scaling options in the future. I much prefer Nintendo's scaling methods to bilinear, so I'll probably stick with GBAR2 for the time being, even though having 360x240 would be nice.
I hope so too
 

Stellar

Well-Known Member
Member
Joined
Jul 20, 2014
Messages
194
Trophies
0
XP
1,776
Country
Portugal
Honestly after installing fastboot3ds and the cia shortcut to boot the firm, this is already the best way to play GBA games on the 3DS.

1:1 scale, dark filter removal (or brightness control), and remaps would make it perfect. The ability to swap ROMs without rebooting or being able to hit home to go back into the 3ds home menu (even just as a rudimentary reboot to cfw shortcut) would be the last extravagant QoL change I'd appreciate.

I haven't run into any save issues so far, so I suppose I lucked out with my game choices.
 
Last edited by Stellar,

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,821
Trophies
2
Location
home
XP
9,321
Country
Hungary
The ability to swap ROMs without rebooting or being able to hit home to go back into the 3ds home menu (even just as a rudimentary reboot to cfw shortcut) would be the last extravagant QoL change I'd appreciate.

I have a feeling that sadly this one is not possible without some limitations.

To my knowledge you NEED to do an MCU reboot to get out of GBA mode and to get access to the FCRAM again.

This can be mitigated if the bootloader supports FIRM rebooting.
 
  • Like
Reactions: Stellar

Joom

 ❤❤❤
Member
Joined
Jan 8, 2016
Messages
6,067
Trophies
1
Location
US
Website
mogbox.net
XP
6,077
Country
United States
Never change, GBAtemp, the entitled kids that can't code a hello world and the kids that think they can are killing homebrew development veeery slowly. In a couple years you'll probably reach maximum annihilation.
I see you in a lot of threads going "psh, look at these dumbass kids that know nothing", when all you do is exude ignorance. I've said it in the past that developers don't need people like you to come and wash their balls. It really gets on my nerves when I see someone going "THE ENTITLEMENT IS WHAT DUN KILLED THE SCENE", when in reality, that speaks more about the developers behind it and their weak will that allows them to bend to it. Either that, or real life matters become more important, or people just get bored and move on to different projects. The same level of entitlement and whining existed when 3DS homebrew first kicked off, and will always exist in every scene until the end of time, so it stands to reason that the 3DS should have been dead a long time ago, right? You wanna know what the 3DS killer is? The Switch. Just about everyone jumped ship for that.
The good thing is that all the talent will end up flocking to Linux and other open source scenes, so that's a plus for us.
lulwut...man, you gotta love a sycophant.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Well start walking towards them +1