Header Ads

Exploring the World of Nintendo 3DS Homebrew

When Nintendo officially ended production of the 3DS in September 2020, it wasn’t exactly a surprise. For one thing, some variation of the handheld system had been on the market since 2011. Which is not to say the product line had become stagnant: the system received a considerable mid-generation refresh, and there was even a more affordable variant introduced that dropped the eponymous stereoscopic 3D effect, but nearly a decade is still a fairly long life in the gaming industry. Of course Nintendo’s focus on the Switch, a hybrid device that blurs the line between console and handheld games, undoubtedly played a part in the decision to retire what could effectively be seen as a competing product.

While putting the 3DS out to pasture might have been the logical business move, a quick check on eBay seems to tell a different story. Whether it’s COVID keeping people indoors and increasing the demand for at-home entertainment, or the incredible library of classic and modern games the system has access to, the fact is that a used 3DS in good condition is worth more today than it was when it was brand new on the shelf this time last year.

I’ve certainly made more expensive mistakes.

In short, this was the worst possible time for me to decide that I finally wanted to buy a 3DS. Then one day I noticed the average price for a Japanese model was far lower than that of its American counterpart. I knew the hardware was identical, but could the firmware be changed?

An evening’s worth of research told me the swap was indeed possible, but inadvisable due to the difficulty and potential for unexpected behavior. Of course, that’s never stopped me before.

So after waiting the better part of a month for my mint condition 3DS to arrive from the land of the rising sun, I set out to explore the wide and wonderful world of Nintendo 3DS hacking.

Joining The Fun

Here’s the best part about homebrew on the 3DS: every version of the hardware, no matter what region it’s from or what firmware version it’s running, can be hacked with just an SD card and some open source software. What’s more, since Nintendo has now moved on to bigger and better things, it’s fair to assume that the community has won. There’s no new hardware revision coming, and even if Nintendo felt inclined to push out another firmware update just to confound anyone running unofficial software on their 3DS, there’s no way they could force you to install it. It’s a party, and everyone’s invited.

The first step down the rabbit hole.

There are various exploits that can be used depending on the current firmware your 3DS is running, but the easiest and most expedient method of getting your 3DS running non-Nintendo software is through a vulnerability in the system’s Internet browser. With the appropriate files on the SD card, you just need to point the 3DS browser at a specific URL to trigger the exploit. Thanks to the browser’s ability to read QR codes, you don’t even need to type it in: just scan the special code, and you’re on the way to homebrew nirvana.

To be clear, there’s still quite a bit more you need to do. Getting the files on your SD card and triggering the exploit is only the first phase. Before it’s all said and done you’ll need to restart the 3DS a few times, put more files on the SD card, and install a number of programs on the system. None of it’s difficult, but there are a dizzying number of steps and it would be easy to get lost without a good guide.

Thankfully, members of 3DS community have produced some of the most comprehensive and user friendly documentation I’ve ever seen. The guide they’ve created walks you through each step of the process in exacting detail, and as long as you don’t skip any steps, in the end your system will be loaded up with the latest version of the Luma3DS custom firmware.

Unlocked Potential

Homebrew software installed in Luma3DS

Personally, when I hear the term custom firmware I think of something like DD-WRT or Aaron Christophel’s work with Xiaomi Bluetooth thermometers. In other words,  firmware replacements that leave you with essentially a completely different device. So part of me was surprised when I rebooted my system into Luma3DS and everything appeared to be exactly the same. I even wondered for a minute or two if I’d done something wrong.

After a closer look at the project’s GitHub repository, the situation became clearer. While the community refers to it as a custom firmware, it would be more accurate to say that Luma3DS patches the system’s stock firmware to enable an extended feature set. A major part of that is enabling the user to install and run non-Nintendo applications, but there’s also a system menu, accessed with a special button combination, that lets you tweak more advanced settings.

With Luma3DS installed, the 3DS retains 100% of its original functionality. You can still play all your games, connect to the eShop to download new titles, and play online with others. It’s apparently even safe to install an official firmware update with it installed, though again, it’s unlikely any more of those are coming down the pike.

Getting the Goods

Generally speaking, 3DS software comes in two distinct forms. Smaller tools and programs are likely to be offered as a .3dsx file, which is a self-contained executable that you can run through a tool called Homebrew Launcher that gets installed along with Luma3DS. This works well enough for one-off applications, but can become annoying as it takes several steps to start the software from a cold boot.

The alternative, preferred for larger and more complex pieces of software, is the CTR Importable Archive (CIA) or .cia file. These archives contain not only the software itself, but the necessary metadata to actually install them as if they were an official game or application downloaded from the Nintendo eShop. Since software installed via CIA appears on the 3DS’s main menu, it’s much faster and easier to access than going through the Homebrew Launcher first.

prboom for the 3DS

But there’s a catch. Installing a CIA file isn’t as easy as just dragging and dropping it onto the system’s SD card. The archive needs to be properly unpacked by a so-called title manager, the most popular of which is known as FBI and runs on the 3DS itself. Once unpacked and installed, the original CIA file can be deleted, as otherwise each application would end up taking up twice as much space as necessary on the SD card.

It’s a bit awkward, but there a few tricks to speed up the process. For one thing, FBI can load a CIA file from the local network or Internet by scanning its URL from a QR code, thereby removing the need to manually place the CIA file on the SD card prior to installation. This has become a very popular way of distributing homebrew on the 3DS, and you’ll often see these codes posted on messages boards or GitHub.

Even still, unpacking a CIA on the 3DS itself is rather slow due to the system’s inherent hardware limitations. For those who aren’t willing to wait, there are projects such as custom-install that allow you to process CIA files on your computer. Running on a vastly more powerful processor and with the benefit of high-speed access to the SD card, these tools can get software installed and ready to go on the 3DS in a fraction of the time it would take with FBI.

Cultural Differences

Just like the custom firmware installation process, switching your system’s region is very well documented. I had no problem getting the US firmware on my 3DS, though it should be said the process takes considerably longer than getting Luma3DS installed in the first place. Unfortunately, once the region is switched, you can no longer access Nintendo’s official services for purchasing software, downloading updates, or playing online. That said, local wireless multiplayer with American consoles works as expected and you can still run physical retail games.

I’ve noticed a few odd glitches as well, though nothing really critical. One time, the system claimed it needed to install a firmware update, and then after a minute or two of downloading files, tossed up an error message. The firmware will also lock up after I check the system notifications, but they are fairly annoying in the first place so I just turned them off.

So is switching regions worth it? I’d say that depends on how you plan on using the system. If you’re more interested in running your old favorites through RetroArch than you are playing modern games, absolutely. But if you want to get the most out of the system, including its various online functions, the downsides from switching regions will likely outweigh the financial savings.

A Rekindled Interest

Before buying this 3DS, it had been over a decade since I owned a portable console. I barely have time to play games at home, let alone on the go. But the incredible back catalog of titles that are either directly playable on the system or can be run through one of the open source emulators available for it, was extremely compelling. Add to that a wide array of original homebrew games and the ongoing effort to port Linux to the system, and it was just too much to pass up. Installing a custom firmware on the 3DS turns an excellent system into an incredible one, and these days I find myself spending quite a bit of time fiddling around with this dual-screen wonder. I’m even thinking of updating to one of the later models of the 3DS, but that’ll be a story for another time.

While it’s always difficult to predict the future, it’s not hard to imagine that the Nintendo 3DS may well be the last true portable game system. Smartphones and tablets have largely taken over the market, and while the Switch is technically mobile, it just can’t compare with the svelte clamshell design that’s been a hallmark of Nintendo’s portables since the Game Boy Advance SP. So if this is the last of the purebred portables, at least we can say that the homebrew community is making sure it goes out with style.


No comments