Would be cool to see this run on the GBA still.
Would be cool to see this run on the GBA still.
That said, there is a homebrew GB emulator for GBA (Goomba), and at least one reason to use it: neither the Game Boy Micro nor the Nintendo DS can natively play 8-bit Game Boy games. As far as I understand it, the only reason why they can’t is because 8-bit Game Boy carts use 5V power and logic, but GBA carts use 3.3V power and logic, and there’s only so much power and switching circuitry you can fit into a pocket-sized gadget.
PS2 did the same thing for PS1.
I would love to read a nice breakdown about Nintendont ( the GC comparability software for WiiU homebrew) because I think it’s pure magic.
The Wii has two processors: the main PowerPC one which runs the game bare-metal dubbed Broadway, and a smaller ARM9 core hidden inside the GPU package dubbed Starlet which runs a separate firmware called IOS. The game running on Broadway accesses all the Wii hardware by sending requests to IOS - which also controls clocks etc. Wii U has a similar architecture with the Espresso and Starbuck respectively. On the Wii, Starlet also handles background network activity and WiiConnect 24.
The Wii holds multiple IOS versions in its main NAND flash, and everytime a game loads the System Menu (the one with the channels) reads the required version from the game metadata and reboots both Broadway and Starlet into the game and correct IOS versions. This is why for example early games like Twilight Princess didn't light up the drive led bar when receiving messages like in more recent games: that game was stuck on IOS4, which didn't support that feature.
Now, what happens when the user inserts a GameCube disk into a compatible Wii is that the System Menu loads a special IOS called MIOS. This disables access to all Wii-specific hardware, downclocks the CPU and GPU, sets up the memory layout and effectively turns the system into a GameCube (it's been a while, but I think it also completely disables Bluetooth so you can't even use the Wiimote to shut it down, you need to get up and walk to the machine to turn it off). In the initial versions it didn't scrub memory, so the Twiizer Hack happened: in GC mode you can only access 16 of the 64 MB memory, but using tweezers to manipulate the address lines they managed to "move" this window and dump it over the controller port serial, and found keys.
IOS can and has been hacked or entirely replaced, the Twiizers team even wrote their own 100% free replacement, but other teams came up with hacked versions that i.e. redirected optical drive calls to USB devices, to enable piracy.
Nintendont skips MIOS: it runs with IOS, so it has access to all the hardware as if it was a native Wii application, so it can access the SD, USB, Bluetooth and even the NAND flash or network if it wanted to.
The Wii U works similarly: Starbuck runs a firmware called IOSU (not based on IOS). When starting the Virtual Wii mode, a process called cafe2wii is launched. This shuts down IOSU, lowers clocks, disables access to Wii U hardware and reboots into IOS80 to run the Wii System Menu.
You can read more at hackmii.com, wiiubrew.org and wiibrew.org
However, unlike the Game Boy and GBA, the cartridge ports on the two systems are physically different (50 pins vs 64) so a cartridge adapter is still needed.
In that situation, I think an approach like the Super Game Boy's is probably better: include the old console's hardware in the adapter rather than in the new console, so that the new console's design need not be constrained by backward-compatibility.