Gaming Is it yet possible to explain why GBA VC is handled differently from the rest of the games?

Sonic Angel Knight

Well-Known Member
OP
Member
Joined
May 27, 2016
Messages
14,399
Trophies
1
Location
New York
XP
12,933
Country
United States
I dunno if is been explained yet but I was just curious about GBA VC. I don't know much about it besides playing gameboy advance on the 3ds, but for some reason the system handles save data very differently from the rest of the games on the system.

First thing is the system restarts into a seperate functional mode just to run the games, not only that but closing the system to put it to sleep doesn't put the game into a pause state, and to end the game, the system must restart to go back to the normal 3DS function. pressing home has none of the "Suspend play" functions like 3DS games do. Is just very different. Of course if you ever played the Nintendo DS game on it as well, is pretty much the same kind of situation. Either game, the system reboots back into the 3DS game mode.

The most interesting thing is probably the save data. Since learning about rom injections and save data backups, is just the most uncommon thing. While most games can use homebrew like JKSM or even FBI installer to extract unencrypted save data use for backup or injection, the GBA games cannot. Instead it requires a boot time payload like Godmode9 to extract the save data or inject in, and even then it requires first to load the desired game. I'm not trying to say is bad by explaining the process, just was interested if someone can explain this.

I dunno enough about the thing to understand why is drastically different than the other virtual console games. They all operate like any 3DS game, even the SNES ones which require NEW 3DS still the same. I just find it peculiar about why it is this way.
 
  • Like
Reactions: senkunmusashi

Shadow#1

Wii, 3DS Softmod & Dumpster Diving Expert
Member
Joined
Nov 21, 2005
Messages
12,347
Trophies
2
XP
8,010
Country
United States
I dunno if is been explained yet but I was just curious about GBA VC. I don't know much about it besides playing gameboy advance on the 3ds, but for some reason the system handles save data very differently from the rest of the games on the system.

First thing is the system restarts into a seperate functional mode just to run the games, not only that but closing the system to put it to sleep doesn't put the game into a pause state, and to end the game, the system must restart to go back to the normal 3DS function. pressing home has none of the "Suspend play" functions like 3DS games do. Is just very different. Of course if you ever played the Nintendo DS game on it as well, is pretty much the same kind of situation. Either game, the system reboots back into the 3DS game mode.

The most interesting thing is probably the save data. Since learning about rom injections and save data backups, is just the most uncommon thing. While most games can use homebrew like JKSM or even FBI installer to extract unencrypted save data use for backup or injection, the GBA games cannot. Instead it requires a boot time payload like Godmode9 to extract the save data or inject in, and even then it requires first to load the desired game. I'm not trying to say is bad by explaining the process, just was interested if someone can explain this.

I dunno enough about the thing to understand why is drastically different than the other virtual console games. They all operate like any 3DS game, even the SNES ones which require NEW 3DS still the same. I just find it peculiar about why it is this way.
Because GBA isn't VC at all same for DSiware runs on pure metal real hardware
 
  • Like
Reactions: WeedZ

Lucar

Well-Known Member
Member
Joined
Sep 12, 2015
Messages
528
Trophies
0
XP
619
Country
Canada
GBA VC games don't run via emulation like SNES, NES, Game Gear, etc VC games run, they run on the ARM7 that is included in the 3DS' SOC. Due to running on bare metal, much like DS games, the system must reboot into a state where it's basically acting as a glorified GBA. This is why Sleep and Suspend Play don't work. The ARM11 in the 3DS is still on, yes, but all it's doing is controlling video output and controls AFAIK (Someone, please correct me if I'm wrong, I'm curious). This is also why the GBA game save data is separate. Much like DS games, the GBA gets it's own little section of NAND to store save games, and I believe access to this part of NAND is locked out past bootup because keys or something or something or other.
 

Garro

Pendulum of souls!
Member
Joined
Aug 15, 2009
Messages
714
Trophies
1
Age
31
Location
Somewhere
Website
garrothedog.tumblr.com
XP
2,377
Country
Chile
It's really curious Nintendo's approach to this matter. For those who don't know, GBA VC exist only purely because of the first price drop after a few months of the release of the console. To compensate to those who paid the full price, they were given 10 free NES games and after a few months, 10 free GBA games. They went to develop a complete new firmware and released it on v3.0 update to make this possible. But then Nintendo didn't pursue this matter further and never released any GBA game on the eShop (I assume to give the WiiU exclusivity with GBA VC).

And then it backfired by making a softmodded 3DS have access to the whole GBA library contrary to an untouched console.

I wonder why they didn't just implement a GBA emulator akin to actual 3DS VC games, GBA homebrew emulators can run GBA games flawlessly so the 3DS pretty much can emulate GBA right?
 

Lucar

Well-Known Member
Member
Joined
Sep 12, 2015
Messages
528
Trophies
0
XP
619
Country
Canada
It's really curious Nintendo's approach to this matter. For those who don't know, GBA VC exist only purely because of the first price drop after a few months of the release of the console. To compensate to those who paid the full price, they were given 10 free NES games and after a few months, 10 free GBA games. They went to develop a complete new firmware and released it on v3.0 update to make this possible. But then Nintendo didn't pursue this matter further and never released any GBA game on the eShop (I assume to give the WiiU exclusivity with GBA VC).

And then it backfired by making a softmodded 3DS have access to the whole GBA library contrary to an untouched console.

I wonder why they didn't just implement a GBA emulator akin to actual 3DS VC games, GBA homebrew emulators can run GBA games flawlessly so the 3DS pretty much can emulate GBA right?

AGB_FIRM existed before the price drop thing and 3.0 I believe. This seems to indicate they were gonna release GBA VC games on the eShop before the Ambassador Program, then decided against it. As for why they use the hardware rather then doing emulation, it kinda makes sense that if the hardware is there, you should use it, considering hardware will always be better then emulation (unless each and every transistor is emulated, good luck doing that though, hah), they used it.
 

Garro

Pendulum of souls!
Member
Joined
Aug 15, 2009
Messages
714
Trophies
1
Age
31
Location
Somewhere
Website
garrothedog.tumblr.com
XP
2,377
Country
Chile
AGB_FIRM existed before the price drop thing and 3.0 I believe. This seems to indicate they were gonna release GBA VC games on the eShop before the Ambassador Program, then decided against it. As for why they use the hardware rather then doing emulation, it kinda makes sense that if the hardware is there, you should use it, considering hardware will always be better then emulation (unless each and every transistor is emulated, good luck doing that though, hah), they used it.
Oh actually I was under the idea AGB_FIRM was part of the system since the initial version but I did a small check on 3dbrew before and according to here, it was released on 3.0.0-5. They might have planned to release it before the Ambassador Program was a thing though.
 

mikey420

Well-Known Member
Member
Joined
Dec 11, 2015
Messages
911
Trophies
0
Age
30
XP
493
Country
United States
Simply put the 3DS has hardware for DS and 3DS games. This separate hardware for DS games is responsible for high DS games and GBA games. They are both run on this extended hardware and not the new chooser used by the 3ds. The reason for this is simply because it's easier and more efficient than emulation. (While emulation of GBA is possible on the 3DS the extended hardware can already run it natively requiring less code and guaranteeing most games will work fine.
 
Last edited by mikey420,

WeedZ

Possibly an Enlightened Being
Global Moderator
Joined
Jan 13, 2015
Messages
3,825
Trophies
1
Location
The State of Denial
Website
gbatemp.net
XP
5,666
Country
United States
Come to think of it, it's been possible to explain this since before the 3ds was even birthed. Prior to emulation making its way to the mainstream, this is how all backwards compatability was handled.. it was a function of hard/firm ware.

Wii -> gc
ds -> gba
psp/ps2/ps3 -> ps1,
ps3 -> ps2
You get the idea
 
  • Like
Reactions: dpad_5678

Lucar

Well-Known Member
Member
Joined
Sep 12, 2015
Messages
528
Trophies
0
XP
619
Country
Canada
Oh actually I was under the idea AGB_FIRM was part of the system since the initial version but I did a small check on 3dbrew before and according to here, it was released on 3.0.0-5. They might have planned to release it before the Ambassador Program was a thing though.

Huh. Wonder if it was maybe stubbed before 3.0.0-5.
 

NekoMichi

Retro Collector
Member
Joined
Jun 4, 2015
Messages
1,441
Trophies
1
Location
Minus World
Website
www.youtube.com
XP
2,482
Country
GBA games on the 3DS do not run under the Virtual Console container, but instead the console will boot into a DS mode and act as if the GBA game's cartridge has been inserted and is running off the original hardware. This is why 3DS-specific hardware features such as sleep mode cease to function, because the 3DS is effectively internally downgrading its hardware and then simulating software on top of that.

Daniel Vuckovic from Vooks provides a more detailed technical explanation:
Let’s go back in time to the Nintendo DS for a minute, that console has two CPUs in it. One is for 3D graphic processing (usually on the top screen), while the second CPU is generally for 2D processing (usually on the bottom screen) but it also had another function. That second CPU was a 32-bit ARM7, literally the same chip that was in the original Game Boy Advance – but just clocked at a higher rate. When players threw in a Game Boy Advance cartridge, said CPU was slowed down so that your DS was essentially a Game Boy Advance.

Now fast forward to the Nintendo 3DS, it too has a couple of CPUs. It has it’s larger, dual core CPU in it as well as a smaller CPU which is, for all intents and purposes, a “Nintendo DS chip” and is the prime reason why the 3DS can play DS games perfectly – it’s actually is a Nintendo DS. Well, it’s clocked at the same speed as a Nintendo DSi, so it’s technically closer to one of those.

And if you haven’t already guessed it, guess what, that chip can also be down-clocked to play Game Boy Advance games, so it’s not emulating the hardware – it’s simulating it. This is the reason the 3DS Home menu can’t be reached during the Game Boy Advance Ambassador games, nor the other system functions like the Friends List, Miiverse or Internet Browser. Why is this? Because the CPU is now playing Game Boy Advance games, usually that CPU is performing background tasks like powering the wireless on or checking your friends list to notify you when they come online. While it’s being used as a Game Boy Advance – it can’t do anything else at all.
 
Last edited by NekoMichi,
  • Like
Reactions: senkunmusashi

senkunmusashi

@!#?@!?
Member
Joined
Nov 29, 2017
Messages
108
Trophies
0
XP
108
Country
Netherlands Antilles
Thanks OP for bringing up an this subject.

Still one thing I'm unsure of, I'm on gm9 /luma3ds with a region changed emunand setup. Sysnand was left at original jp region. I autoboot to emunand always, sysnand is never used.

I've always had to install vc gba cias to both sysnand and emunand for them to work. They launch and work fine from emunand.

But when quitting/closing a game via the home button, it always restarts/returns to sysnand, instead of emunand where I launched the gba game from.

Is there anyway when quitting a game to make it return to emunand home instead?
 

mikey420

Well-Known Member
Member
Joined
Dec 11, 2015
Messages
911
Trophies
0
Age
30
XP
493
Country
United States
Thanks OP for bringing up an this subject.

Still one thing I'm unsure of, I'm on gm9 /luma3ds with a region changed emunand setup. Sysnand was left at original jp region. I autoboot to emunand always, sysnand is never used.

I've always had to install vc gba cias to both sysnand and emunand for them to work. They launch and work fine from emunand.

But when quitting/closing a game via the home button, it always restarts/returns to sysnand, instead of emunand where I launched the gba game from.

Is there anyway when quitting a game to make it return to emunand home instead?
No I'm pretty sure not. Why are you using an emunand?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: @SylverReZ, no