What is mind-boggling to me is that it includes an actual, physical, hardware Gameboy Advance CPU in it for when it's playing Gameboy Advanced games.
I was one of the people who used the 'Ambassador Program' due to paying ~$250 USD or so for it up front (I pre-ordered the blue one, was hyped in the years leading up to it, read every rumor, loved it to death). The program gave a bunch of free games, some not on the eShop, as an apology for the extra $70 or so cost when they sharply dropped the cost of the console not long after release.
I was happy with it.
Mario Kart Super Circuit was a part of my childhood growing up, and I played that one not too rarely. Using the already-amazing swivel-joystick with it was a dream.
Knowing it was actually running on a real-life GBA CPU, like the old one I used to have and played games on all the time growing up, somehow makes it even more special of a memory.
Wow. Thank you for writing this article, Rodrigo. Much love. <3 :'))))
> What is mind-boggling to me is that it includes an actual, physical, hardware Gameboy Advance CPU in it for when it's playing Gameboy Advanced games.
The reasoning why as pointed out by the article makes it even more mind-boggling to me. It includes the GBA CPU almost by accident, because Nintendo took a Matroshka doll approach to backwards compatibility.
The Nintendo 3DS contains the entire system architecture of the Nintendo DSi for backwards compatibility (the DSi CPU also functions as a supervisor CPU of the system), which is mostly an overclocked variety of the original Nintendo DS architecture. The first two Nintendo DS models contained a GBA slot for backwards compatibility and therefore also contain the GBA's original ARM7TDMI. The Nintendo DS also used this as an auxiliary processor for various things. The reason the GBA hardware is there is because Nintendo kept shipping their previous gen hardware in the new generation twice over.
As part of the that Ambassador Program you mention, Nintendo released a boot firmware for the 3DS called "AGB_FIRM" to boot into Game Boy Advance mode (another being "TWL_FIRM" to boot into Nintendo DS mode). If you hack your 3DS today it can be made to load other Game Boy Advance software and essentially achieves perfect backwards compatibility and runs GBA games with perfect accuracy, modulo any GBA peripherals that were popular.
I wonder how far down exactly the 3DS matrioshka goes. GBA also had a full GB on board, but not only for backwards compat: it actually served as a sound co-processor for contemporary GBA games.
The Game Boy ran at 5V logic and the GBA 3.3V; my understanding is that there were some technical hurdles to supporting both on the GBA which Nintendo was happy to be rid of-- the Game Boy Micro, the last model in the Game Boy line, also only supported GBA games for that reason.
This wasn't that unusual though? The PS2 contains the PS1's CPU and uses it for I/O when it isn't being used for backwards compatibility with PS1 games. The PS3 contained the CPU/GPU of the PS2 in early versions for PS2 BC (https://www.psdevwiki.com/ps3/PS2_Compatibility). It's only with later PS3 iterations that the PS2 hardware was removed in favour of software emulation for BC.
> What is mind-boggling to me is that it includes an actual, physical, hardware Gameboy Advance CPU in it for when it's playing Gameboy Advanced games
Sony did similar things.
The playstation 2 needed a IO chip so Sony picked the PS1 CPU. Then pass execution to it when playing a PS1 game.
And if I remember correctly, in the first revisions of the playstation 3 they included a ps2 CPU and GPU. I don't think they served a purpose when not running ps2 games though. They later remove them in favour of emulation to presumable save costs.
The Wii U isn't just a faster Wii. It specifically contains 2 GPUs, the Wii U GPU and the Wii GPU. CPU is bigger and better but same architecture.
The Wii however was almost just a faster GameCube. CPU literally just clocked higher and a bit of a better GPU. Because the idea was for it to be super cheap to produce.
The Wii extended the life of Gamecube games nicely, with a Wii component cable (which are still available cheaply) you get good quality output on modern TVs. It also has the Gamecube controller ports, so your original controllers work.
The Wii can emulate N64 games as well, a few made it to the Virtual Console, and there are 3rd party emulators you can install via the Homebrew channel. The GC controller is not bad for playing N64 games.
It's such a small console that i still have it hooked up under under my TV next to the Switch.
> It's such a small console that i still have it hooked up under under my TV next to the Switch.
Same here kinda. I've done similar with a WiiU. The WiiU is backwards compatible with the Wii, it literally boots into Wii firmware! Meaning with a little homebrew it can be modified to load Gamecube games and run them without the need for emulation. Nintendont even supports a variety of controllers to play gamecube games including the WiiU gamecube controller adapter.
I dump my Wii and gamecube games on my actual Wii and can load them up in the virtual Wii on the and WiiU.
3 generations running (borderline) natively on the one console.
> includes an actual, physical, hardware Gameboy Advance CPU
That's an old trick (though no less cool). The GBA had a GBC cpu in it for backwards compatibility, and it used a physical switch to change modes, toggled by the cartridge itself. And iirc the PS2 reused the PS1 cpu as a component on the board for I/O, so it was available for backwards compatibility as well (though with emulation help for other components).
GBA switching to GBC mode turns out to be combination of both hardware and software. There's a physical button that is read by the BIOS to see if it wants to perform a mode switch to GBC mode, then the BIOS triggers the mode change.
But that button is also responsible for making the cartridge bus actually function with GB/GBC cartridges. If you switch into GBC mode without the button being pressed, nothing can be read from the cartridge. (Normally the register bit that switches to GBC mode is locked out and only the BIOS can write it, but if you are executing code in the BIOS, a timed DMA transfer can perform that write.)
> And iirc the PS2 reused the PS1 cpu as a component on the board for I/O
Which has some interesting implications for softmodded systems. I play my PS2 games via Ethernet off a Raspberry Pi Samba server—it’s incredible to me that it’s possible and works so well, but because it’s using the PS1 CPU for I/O you can’t use it for PS1 games.
Fun fact: Walmart started selling them for the reduced price several days before the official price drop and end of the Ambassador Program's claim period.
Thanks to a post about it on reddit, I was able to get the reduced price and the free games. Felt like I had cheated the system even though I barely ended up playing the free games.
Holy cow, that's freaking crazy. Great catch, and good eye! I guess they were more valuable for me since I had 'paid' for them, and felt I needed to play them in order to maximize my value, haha!
It's fairly likely that you own several of that CPU (ARM7TDMI), or a close relative, without realizing it. It was pretty common as an "I need something stronger than an 8051" embedded controller prior to the introduction of the Cortex-M family.
The Sega Mega Drive (Genesis) had a Master System inside and it was often used as the sound co-processor for Mega Drive games. You could play Master System games with a simple cartridge adapter.
It's even stranger to me then that they never offered any GBA games outside of the limited Ambassador program. I was under the assumption that they were displeased with the performance of GBA titles, but it seems like that might not have been the case.
which is sad because my 2DS XL is basically my ultimate retro game machine. Once I homebrewed it and tossed in a 64gb mSD card it can hold all the NES, SNES, GB, GBA, GENESIS, N64, DS, 3DS roms I could ever want/have time to play. You can even setup the GBA roms to run like an 3DS Ambassador game.
To this day I'm still confused as to why nintendo passed up millions of dollars from Nintendo addicts by not adding GBA & N64 virtual console games in mass to the eSHOP
I was one of the people who used the 'Ambassador Program' due to paying ~$250 USD or so for it up front (I pre-ordered the blue one, was hyped in the years leading up to it, read every rumor, loved it to death). The program gave a bunch of free games, some not on the eShop, as an apology for the extra $70 or so cost when they sharply dropped the cost of the console not long after release.
I was happy with it.
Mario Kart Super Circuit was a part of my childhood growing up, and I played that one not too rarely. Using the already-amazing swivel-joystick with it was a dream.
Knowing it was actually running on a real-life GBA CPU, like the old one I used to have and played games on all the time growing up, somehow makes it even more special of a memory.
Wow. Thank you for writing this article, Rodrigo. Much love. <3 :'))))