Get the top HN stories in your inbox every day.
tysam_and
DCKing
> 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.
rollcat
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.
Macha
The DS dropped support for GB/GBC games and consequently the eshop versions of game boy colour games on 3ds are emulated, so there's your break
Sakos
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.
AndrewDavis
> 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.
deelowe
The wii has GameCube hardware and the Wiiu is basically just a faster wii.
Philip-J-Fry
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.
einr
The Wii is a faster Gamecube. From memory, the CPU runs at 700-something MHz instead of 485 (?) and the graphics are faster too.
ungawatkt
> 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).
Dwedit
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.)
deergomoo
> 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.
fgsfds028374
Ditto the Genesis, which used a Z80 for audio and Master System backwards compat
Pikamander2
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.
tysam_and
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!
Dwedit
The GBA CPU is part of the NDS CPU, so that's why it's in there.
0xcde4c3db
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.
watersb
My original iPhone 2007 uses an ARM7TDMI.
djmips
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.
fennecfoxy
NDS has a GBA chip. GBA has a GB/GBC chip. PS3 has a PS2 chip (emulates PS1) PS2 has a PS1 chip (used for IO etc in PS2 mode) Etc
Although the approach nowadays seems to be emulation (or not including backwards compatibility).
deergomoo
After a very slow start the 3DS ended up being one of my all time favourite consoles. I never had an N64 so the excellent 3D remasters were the first time I played Ocarina of Time and Majora’s Mask. Full DS back compat was a huge boon (make sure to hold Start to avoid gross non-integer screen scaling) and the range of homebrew and emulated systems a softmodded unit support makes it a very compelling little device.
The smaller New 3DS is also one of my all-time favourite console designs and I bought a load of the silly faceplates because they looked cool.
The other thing I really appreciate: I was able to call up Nintendo and buy two new official batteries for mine and my wife’s units when they started to age out. They were something like £15 each and I could swap them out without disassembling the system. Not something you often see these days.
post_break
My ADHD got the best of me during the pandemic. I ended up buying 3... New nintendo 3DSXLs. I imported one from Japan and converted it to US rom. I love these for travel. The 3D effect is so cool, and I like how you can turn it off. The battery life is fantastic. Now like all hobbies, when something gets scarce and I lust and hoard the object, I need to liquidate since you can't play 3 consoles at the same time.
spiznnx
While you have 3 consoles you should play Tri Force Heros with a couple of friends!
ThatPlayer
Get a fourth and do Four Swords!
Cthulhu_
If you can do something to prevent the battery from going bad (or find a source for replacement batteries in the future), I'd just hold onto them tbh.
I bought a (deep breath) New Nintendo 2DS XL a while ago; it's the last iteration of the DS line of games, plays all DS, DSi and 3DS games (and there were only a handful of games released specifically for the "new" DS) so that's ~15 years of gaming history it supports. I try to pick up DS games where I find them, although finding good deals on them is already difficult - some titles like Bravely Default or whatnot still go for 60 euros around here.
There's a LOT of shovelware for the DS as well though, I'm skipping those.
dclowd9901
What a brilliant stroke of genius to allow the 3DS’s depth setting to be adjusted by a physical slider that’s enormously accessible. I’m not sure what research led to their using this mechanism to adjust something so foundational but it made all the difference in the world insofar as the usability of the 3D feature goes.
xboxipadjunkie9
Right, you would expect depth-enabled screens to have become a regular feature on touchscreen devices by now -- what with face ID, it knows how far away your eyes are and would be able to adjust that lever automatically.
corysama
This is part of an excellent series https://www.copetti.org/writings/consoles/
haunter
One of my favorite feature of the jailbroken 3DS is the NSUI app [0]. The official Virtual Console releases made it possible to play certain old Nintendo games on the 3DS. But turns out the same wrapper (it’a not an emulator so much better performance and compability is straight given) can be used for _any_ game as long as the system is supported. So basically the 3DS became the perfect handheld to play old NES/SNES/GB/GBC/GBA games pixel perfect.
0, https://3ds.eiphax.tech/nsui
One other thing I only realized about the 3DS a couple of years ago: the bigger microSD card you use it becomes slower. Afaik the whole console scans the whole storage block level so after a certain point (64GB and above) it becomes plainfully slow. Especially if you play GBA injects > the 3DS quasi reboots itself in that mode so the console scans the storage again.
bakugo
> Before system version 3.0.0, OTP memory was never hidden, meaning that with the help of any exploit, the OTP keys could be extracted without problem.
Oh man, I remember this. Back in the day, hacking a 3DS required downgrading to firmware 3.0.0 to extract the OTP, but 3.0.0 was not fully compatible with the New 3DS so if you were doing it on that model, simply closing the lid while on the old firmware would permanently brick your console. Good times.
raytopia
Love this series!
If anyone wants to do homebrew for thr 3DS check out https://github.com/devkitPro/libctru
xboxipadjunkie9
I hope Nintendo never gives up on the hand-held the-entire-console-in-your-hands experience.
I also hope a larger indie industry of handheld gaming develops.
It seems the imminent doom of advanced hand held devices is cloud gaming, including running consoles at home and streaming to your phone.
It all boils down to what everybody does with their wallets. I miss my GBC.
KeplerBoy
I don't see it dieing at all. Hardware just keeps advancing, while hardware requirements are stagnating.
I believe the switch is a big success for 2D indie games (think stardew valley, hades, dead cells). Those game concepts work and good 2D graphics will never look outdated.
I doubt people will buy into anti-consumer streaming-schemes to play great games which could run on a potato.
roxil
I highly doubt it. Stadia shutdown, while the Switch and Steam Deck are both a huge success. The latency in cloud gaming and reliability on having a stable network connection are still issues for many people. Not just that, but I don't think most gamers want to pay for another subscription which will always be a thing for cloud gaming and even then you still need some kind of hardware to play on anyway, so why not a good handheld? Even PC manufacturers like Asus are making their own handheld (RoG Ally), Switch 2 and Steam Deck 2 are basically guaranteed. If anything handhelds will just keep getting better and seem to be increasing in market share.
fennecfoxy
I just hate that Sony killed off the PSP, but I can understand why & it's the same reason for steam deck (and other variants being released that are more powerful) success; games aren't very exclusive anymore and unless you tightly integrate your main console with your handheld (like Nintendo, who went so far as to make them one & the same) then companies will just be creating an unnecessary divide these days.
Think of it as if Nintendo released a home console as well as the Switch; it would wouldn't be a sustainable system at all.
What I find funny is that people praise Nintendo's "genius" for making a handheld that docks to play on TV "so innovative"...meanwhile PSP Go with it's TV dock sitting there like "guys, remember me?" (I love the PSPGo, it's so freaking cute).
ioseph
Chips are only going to get more powerful and smaller, you can already play a lot of games on a pi, I imagine you'll be able to play the current gen in something similar in a decade.
I've actually been thinking about building a handheld console for my daughter as fun project
fennecfoxy
These write-ups are brilliant. I've been getting into GB/GBC architecture as I want to make a game for the platform, but I hadn't yet found this article so thank you OP for posting it/Rodrigo for writing it <3
sotix
These articles are all so great! I loved reading the ones on the SNES and GBA. My dream is to work on the software that powers these video game systems, but I’m entirely lacking in that domain. One day, I would love to work on a portable console. It’s really helpful to read, so a huge thanks to the author.
mtillman
The triangle count on the mario example seems reversed. Super Smash Bros Brawl (2008) for the Wii has 3,049 triangles but fully modeled buttons? The description says the 3ds version has 31 more triangles and I'm just not seeing how that's correct. Is this an error or am I missing something?
Get the top HN stories in your inbox every day.
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 :'))))