Here is a thread where two of the most knowledgeable people on the temp @FAST6191 and @KleinesSinchen confim that the Video Paks came on 64MB carts they also talk about how the carts use bank switching to get around the 32MB limit.
Here is a thread where two of the most knowledgeable people on the temp @FAST6191 and @KleinesSinchen confim that the Video Paks came on 64MB carts they also talk about how the carts use bank switching to get around the 32MB limit.
Although not requiring CIA forwarders is a nice feature... Being compatible with them is certainly important if it ever becomes a true replacement for AGB_FIRM, part of the charm of using a 3DS is precisely having so many systems right in the native home menu.
Plainly impractical. A clever developer could workaround things to make something that looks like what you are thinking, but it just doesn't work like that.
OPEN_AGB_FIRM is a bootable .firm file for luma (or other bootloaders) with enough code to run GBA roms. This means after the bootloader, zero code from ninty runs. So no menu, no NAND, no apps, no cias, nothing. Absolutely zero. Nil. Nay. Nope.
This is meant for you to reboot your system and use a key combination to boot into this, just like you would enter on luma settings or get into gm9. I do agree a favorites list and pretty graphics could improve quality of life so I encourage everyone who has some development knowledge to go download the SDK, go fork the project and get things going. That's the kind of behaviour fueling a scene to greater good.
I see there is a common theme of discussion in this thread: sizes.
It is not a problem with open_agb_firm! All open_agb_firm does is setup the GBA hardware, and from there it is real GBA hardware with custom-made hardware made to emulate common cartridge accessories, like RTC, along with very popular save storage methods like SRAM and EEPROM.
As for the 256Megabit (32Megabyte) limitation: that goes all the way back to the original GBA hardware. To put it simply, there are not enough lines to select where to read the data from, thus creating an arbitrary limitation.
This is the same reason why a byte can only store from 0 to 255, two bytes combined can represent 0 to 65535, etc. The amount of numbers you can represent is limited by the amount of bits/switches/lines you have, and the amount can be calculated from how many of you have. One byte is 8bits. You can toggle those bits on or off. If we count all possible on and off combinations, we get 256 possible combinations for 8 switches. The reason it's from 0 to 255 instead of 0 to 256 is because 0 is also part of the combination list (all bits are off). If you can't imagine this, have a list of numbers, and start counting from 0, and count 256 numbers. You'll count the 256th number being 255. Just as a sidenote, you can calculate the amount of unique combinations for a given switch count, which is 2 to the power of n, where n is the count of the switches. 2^8 is 256 for example.
Going back to the address line issue: even though a real GBA cart only has a 16bit address bus, it's doing some clever logic inside to decode the 16bit address into two 16bit values. The problem is however not on the cartridge side, but inside the GBA SoC: when Nintendo designed the GBA's memory map, they decided that 25bits of address space is more than enough. If you calculate the amount of bytes you can address with that much, you get that 2^25 / 1024 / 1024 == 32Megabytes.
The reason GBA Video can do more than that is because it actually includes a mapper chip. Mapper chips are special chips which help overcome this exact problem, where due to hardware limitations the system can't address more than a specific size. Usually they work by intercepting when you write into ROM (which stands for READ-ONLY memory). Because you can't rewrite READ-ONLY memory that way, it's perfectly valid to intercept the write, and mapper chips interpret these writes as commands. So by writing special values to special places in the ROM, you can tell the mapper how to setup the 32Megabyte addressible space as if you have soldered in new ROM chips.
tl;dr:
- 3DS contains real GBA hardware
- open_agb_firm is NOT AN EMULATOR!
- 32Megabyte limit is a hardware limitation
- GBA Video contains a special chip to overcome this limitation by letting the video player to tell the chip which parts of the ROM you want to read
I see there is a common theme of discussion in this thread: sizes.
It is not a problem with open_agb_firm! All open_agb_firm does is setup the GBA hardware, and from there it is real GBA hardware with custom-made hardware made to emulate common cartridge accessories, like RTC, along with very popular save storage methods like SRAM and EEPROM.
As for the 256Megabit (32Megabyte) limitation: that goes all the way back to the original GBA hardware. To put it simply, there are not enough lines to select where to read the data from, thus creating an arbitrary limitation.
This is the same reason why a byte can only store from 0 to 255, two bytes combined can represent 0 to 65535, etc. The amount of numbers you can represent is limited by the amount of bits/switches/lines you have, and the amount can be calculated from how many of you have. One byte is 8bits. You can toggle those bits on or off. If we count all possible on and off combinations, we get 256 possible combinations for 8 switches. The reason it's from 0 to 255 instead of 0 to 256 is because 0 is also part of the combination list (all bits are off). If you can't imagine this, have a list of numbers, and start counting from 0, and count 256 numbers. You'll count the 256th number being 255. Just as a sidenote, you can calculate the amount of unique combinations for a given switch count, which is 2 to the power of n, where n is the count of the switches. 2^8 is 256 for example.
Going back to the address line issue: even though a real GBA cart only has a 16bit address bus, it's doing some clever logic inside to decode the 16bit address into two 16bit values. The problem is however not on the cartridge side, but inside the GBA SoC: when Nintendo designed the GBA's memory map, they decided that 25bits of address space is more than enough. If you calculate the amount of bytes you can address with that much, you get that 2^25 / 1024 / 1024 == 32Megabytes.
The reason GBA Video can do more than that is because it actually includes a mapper chip. Mapper chips are special chips which help overcome this exact problem, where due to hardware limitations the system can't address more than a specific size. Usually they work by intercepting when you write into ROM (which stands for READ-ONLY memory). Because you can't rewrite READ-ONLY memory that way, it's perfectly valid to intercept the write, and mapper chips interpret these writes as commands. So by writing special values to special places in the ROM, you can tell the mapper how to setup the 32Megabyte addressible space as if you have soldered in new ROM chips.
tl;dr:
- 3DS contains real GBA hardware
- open_agb_firm is NOT AN EMULATOR!
- 32Megabyte limit is a hardware limitation
- GBA Video contains a special chip to overcome this limitation by letting the video player to tell the chip which parts of the ROM you want to read
Its just a text menu with the list of roms and then the game in fullscreen bilinear filtered. The only difference with an injected game will be the bottom screen.
Its just a text menu with the list of roms and then the game in fullscreen bilinear filtered. The only difference with an injected game will be the bottom screen.
Plainly impractical. A clever developer could workaround things to make something that looks like what you are thinking, but it just doesn't work like that.
OPEN_AGB_FIRM is a bootable .firm file for luma (or other bootloaders) with enough code to run GBA roms. This means after the bootloader, zero code from ninty runs. So no menu, no NAND, no apps, no cias, nothing. Absolutely zero. Nil. Nay. Nope.
This is meant for you to reboot your system and use a key combination to boot into this, just like you would enter on luma settings or get into gm9. I do agree a favorites list and pretty graphics could improve quality of life so I encourage everyone who has some development knowledge to go download the SDK, go fork the project and get things going. That's the kind of behaviour fueling a scene to greater good.
We were thinking of doing something more similar to A9SP or the stock firmlaunch where we just put a bunch of data loaded into FCRAM (aligned to some address), then when open_agb_firm boots it'd just have to check a few locations in memory - FCRAM isn't actually properly cleared on reboot. Don't know how doable it'd be for 32MiB carts, since it needs to be loaded into a single physically contiguous location.
It’s about that time of year again where I check in with the community to see if we can get the front page aligned with what people are interested in knowing and what...
WiiCompiled is a new project that lets PC gamers play Mario Kart Wii natively on PC without emulation. Using static recompliation to convert the code into native PC...
The long awaited Grand Theft Auto VI Extended Look gameplay trailer has finally dropped on YouTube. As you all know, it had dropped 6 hours earlier on Netflix, and...
Though we knew all the way back in May that this was coming, the exact numbers remained a mystery for prospective Nintendo gamers in the UK. If you happen to have...
Thanks to the recent decomplication efforts; The Minish Cap 3DS brings the Game Boy Advance classic Zelda title to your 3DS.
The port takes full advantage of the 3DS...
After being announced last week, the first of two broadcasts is set to go live later today with a stark focus on The Legend of Zelda and its 40th anniversary...
In the wake of Sony's shift to a digital-only ecosystem within the next year, Xbox have today announced a surprising scheme. Aiming to offer physical buyers the same...
It is with a heavy heart that I announce the departure of our beloved Chary from the position of Chief Editor. Chary took over early 2021 and has done a wonderful job...
GBAtemp is and always has been an independent community. Since 2002 our staff have voluntarily kept the site running, added new forums, features, provided constant...
To celebrate its 25th anniversary, XBOX has launched pre-orders for the XBOX 25th Anniversary Collection. For the occasion, the trailer below was aired.
This...
It’s about that time of year again where I check in with the community to see if we can get the front page aligned with what people are interested in knowing and what...
After being announced last week, the first of two broadcasts is set to go live later today with a stark focus on The Legend of Zelda and its 40th anniversary...
It's been something of a quiet week in the gaming space, with the deluge of big hitters trying to find their place before GTA 6 launches really kicking off next week...
Though we knew all the way back in May that this was coming, the exact numbers remained a mystery for prospective Nintendo gamers in the UK. If you happen to have...
In the wake of Sony's shift to a digital-only ecosystem within the next year, Xbox have today announced a surprising scheme. Aiming to offer physical buyers the same...
The long awaited Grand Theft Auto VI Extended Look gameplay trailer has finally dropped on YouTube. As you all know, it had dropped 6 hours earlier on Netflix, and...
It is with a heavy heart that I announce the departure of our beloved Chary from the position of Chief Editor. Chary took over early 2021 and has done a wonderful job...
The second of a two-part special, a more traditional Nintendo Direct is set to air today. Unlike the Zelda Direct the contents of this one is still relatively up in...
Announced a few days ago, Nintendo of America have today launched their Customer Appreciation Sale. Featuring 30% discounts across a wide range of popular first-party...
A few days ago Chary stepped down as Chief Editor after 5 wonderful years, and everyone guessed the seat wouldn't stay empty for very long. Back in 2021 I proudly...