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.
Today, April 8th, 2024, at 4PM PT, marks the day in which Nintendo permanently ends support for both the 3DS and the Wii U online services, which include co-op play...
A new Nintendo Switch firmware update is here. System software version 18.0.1 has been released. This update offers the typical stability features as all other...
With Apple having recently updated their guidelines for the App Store, iOS users have been left to speculate on specific wording and whether retro emulators as we...
The time has finally come, and after many, many years (if not decades) of Apple users having to side load emulator apps into their iOS devices through unofficial...
The highly popular and accurate FPGA hardware, MisterFGPA, has received today a brand new update with a long-awaited feature, or rather, a new core for hardcore...
Nintendo might just as well be a law firm more than a videogame company at this point in time, since they have yet again issued their now almost trademarked usual...
Another video game prototype has been found and preserved, and this time, it's none other than the game that spawned an entire franchise beloved by many, the very...
TheFlow has done it again--a new kernel exploit has been released for PlayStation 4 consoles. This latest exploit is called PPPwn, and works on PlayStation 4 systems...
Nintendo has recently announced through their social media accounts that a new Indie World stream will be airing tomorrow, scheduled for April 17th, 2024 at 7 a.m. PT...
Anbernic is back with yet another retro handheld device. The upcoming RG28XX is another console sporting the quad-core H700 chip of the company's recent RG35XX 2024...
Today, April 8th, 2024, at 4PM PT, marks the day in which Nintendo permanently ends support for both the 3DS and the Wii U online services, which include co-op play...
Nintendo might just as well be a law firm more than a videogame company at this point in time, since they have yet again issued their now almost trademarked usual...
With Apple having recently updated their guidelines for the App Store, iOS users have been left to speculate on specific wording and whether retro emulators as we...
The time has finally come, and after many, many years (if not decades) of Apple users having to side load emulator apps into their iOS devices through unofficial...
A new Nintendo Switch firmware update is here. System software version 18.0.1 has been released. This update offers the typical stability features as all other...
TheFlow has done it again--a new kernel exploit has been released for PlayStation 4 consoles. This latest exploit is called PPPwn, and works on PlayStation 4 systems...
Two classic titles join the Nintendo Switch Online Expansion Pack game lineup. Available starting April 24th will be the motorcycle racing game Extreme G and another...
The highly popular and accurate FPGA hardware, MisterFGPA, has received today a brand new update with a long-awaited feature, or rather, a new core for hardcore...
Nintendo has recently announced through their social media accounts that a new Indie World stream will be airing tomorrow, scheduled for April 17th, 2024 at 7 a.m. PT...
In 2017, the United States Federal Communications Commission (FCC) repealed net neutrality. At the time, it was a major controversy between internet service providers...