Homebrew OPEN_AGB_FIRM discussion thread

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,238
Country
United States
If I might ask a dumb question, how is the screen scaling accomplished when the ARM7 is running the game? Is the ARM9 doing it? Also, GBARunner2 displays games 1:1 by default, right? (It definitely isn't 360x240, since there are borders on all sides.)
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,820
Trophies
2
Location
home
XP
9,310
Country
Hungary
If I might ask a dumb question, how is the screen scaling accomplished when the ARM7 is running the game? Is the ARM9 doing it? Also, GBARunner2 displays games 1:1 by default, right? (It definitely isn't 360x240, since there are borders on all sides.)

The GPU is doing it, which is controlled by the ARM11, because the GPU is only mounted to the ARM11.
In Nintendo's own implementation they are using the capture card's upscaler which has slightly worse upscaling quality, but they are still using the GPU to rotate the screen and to display the "Do you want to return to the HOME Menu?" popup.

As for why GBARunner2 can't stretch to fill the screen is because it's just copying GBA graphics data directly to DS graphics hardware (mounted to the ARM9 only) because they are almost completely the same, but neither hardware can stretch the output because they are somewhat dumb hardware, and they only output fix amounts of pixels almost directly to the LCD.
 

AleronIves

Well-Known Member
Member
Joined
Nov 17, 2016
Messages
460
Trophies
0
Age
36
Location
California
XP
2,238
Country
United States
The GPU is doing it, which is controlled by the ARM11, because the GPU is only mounted to the ARM11.
Oh, interesting. Are the limits of the scaling already known in terms of what kinds of algorithms can be used, i.e. is bilinear the only type of scaling possible?

As for why GBARunner2 can't stretch to fill the screen is because it's just copying GBA graphics data directly to DS graphics hardware
I wasn't lamenting the lack of stretching; I think GBA games look better without it. I was just wondering if GBARunner2 was displaying GBA games 1:1 or if they were stretched to DS resolution, or something. Games look crisp, so my assumption was 1:1.
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,820
Trophies
2
Location
home
XP
9,310
Country
Hungary
Oh, interesting. Are the limits of the scaling already known in terms of what kinds of algorithms can be used, i.e. is bilinear the only type of scaling possible?

With GPU only linear (looks better than MTX's output) and nearest (which looks worse than MTX's output) are possible with the GPU.

The capture card (MTX) can do some basic filters, but they look bad due to limited internal precision in the matrix calculations.

I wasn't lamenting the lack of stretching; I think GBA games look better without it. I was just wondering if GBARunner2 was displaying GBA games 1:1 or if they were stretched to DS resolution, or something. Games look crisp, so my assumption was 1:1.

Yes, that's because graphics are not emulated, it's just doing minor tweaks of the GBA graphics data to accomodate for the different screen resolution.
 
Last edited by Sono,

Thingley

Member
Newcomer
Joined
Jul 6, 2019
Messages
11
Trophies
0
Age
45
XP
94
Country
United Kingdom
You mean nds-bootstrap, right? GBARunner2 doesn't respond to those buttons at startup.

I've only ever used GBArunner from Twilight menu. Just hold start as you select the Twilight menu icon from the 3ds screen to stop it from scaling just as you would if you were using NDS flashcard, then use GBArunner from there.

Have to admit, this project has made me stop using it as much. It's so much quicker to launch games using this script.
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,820
Trophies
2
Location
home
XP
9,310
Country
Hungary
You mean nds-bootstrap, right? GBARunner2 doesn't respond to those buttons at startup.

No. He most likely meant that DS upscaling is used for GBARunner2 as oposed to GBA upscaling, so the image looks worse. And by holding START/SELECT you disable upscaling, and GBARunner2 will run at 1:1pixel size, although the image will be really small.
 
  • Like
Reactions: Rahkeesh

n00bsaib0t

Well-Known Member
Member
Joined
Feb 12, 2015
Messages
287
Trophies
0
Age
38
Location
Phoenix, AZ
XP
1,149
Country
United States
This is pretty cool, but what is the purpose of doing it as a firmware like this instead of making it like Nintendont on WiiU where we can load it up and just use a button command or home button to get back to the home menu? That’s almost how GBA VC injects are, except the injects are one game rather than a launcher for the games, so it seems like that part was already implemented.
 

Sono

cripple piss
Developer
Joined
Oct 16, 2015
Messages
2,820
Trophies
2
Location
home
XP
9,310
Country
Hungary
This is pretty cool, but what is the purpose of doing it as a firmware like this instead of making it like Nintendont on WiiU where we can load it up and just use a button command or home button to get back to the home menu? That’s almost how GBA VC injects are, except the injects are one game rather than a launcher for the games, so it seems like that part was already implemented.

Easy: because this isn't a WiiU, it's a 3DS. Because GBA mode on the 3DS uses real GBA hardware, we have to reboot into this special mode to be able to use the real hardware. Trying to do this in 3DS mode will crash the 3DS, and that's both a hardware and software limitation.
 

AmandaRose

Do what I do. Hold tight and pretend it’s a plan
Member
Joined
Aug 19, 2015
Messages
10,190
Trophies
1
Location
Glasgow
Website
www.rockstarnorth.com
XP
16,145
Country
United Kingdom
Easy: because this isn't a WiiU, it's a 3DS. Because GBA mode on the 3DS uses real GBA hardware, we have to reboot into this special mode to be able to use the real hardware. Trying to do this in 3DS mode will crash the 3DS, and that's both a hardware and software limitation.
Plus a nice added bonus is that you can get this loaded and be playing your game quicker than it takes just the 3ds sysmenu to load. Which is a good thing.
 
  • Like
Reactions: Thingley and Sono

ghjfdtg

Well-Known Member
Member
Joined
Jul 13, 2014
Messages
1,360
Trophies
1
XP
3,274
Country
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.
 
  • Like
Reactions: Sono

n00bsaib0t

Well-Known Member
Member
Joined
Feb 12, 2015
Messages
287
Trophies
0
Age
38
Location
Phoenix, AZ
XP
1,149
Country
United States
Easy: because this isn't a WiiU, it's a 3DS. Because GBA mode on the 3DS uses real GBA hardware, we have to reboot into this special mode to be able to use the real hardware. Trying to do this in 3DS mode will crash the 3DS, and that's both a hardware and software limitation.
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.
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.
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.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: @SylverReZ, Indeed lol