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.