A Brief History of Homebrew on the Nintendo 3DS

Saikishore G.
5 min readSep 2, 2018

Homebrew games have a long and complicated history. Video gaming consoles have been around for decades — such as systems like the Atari 2600 —yet often times we fail to understand the complexity behind video games. Even for the most trivial games — Pong, for instance — required many hours of research and development. Numerous advancements in the field have led to greater technology, better graphics, more memory, and better resolutions for video games. As a downside, however, it becomes increasingly difficult to create and manage the large code base.

Homebrew is defined as any software that is not authorized officially to be used on a particular system. This may include games, tools, emulators, or any other general purpose applications. Often times, to be able to play such homebrew games, it takes hours of research regarding the console itself. Console developers will often try to employ security measures to prevent developers from running unauthorized code on a particular system. Homebrew developers must often exploit backdoors and loopholes in the system to create homebrew applications. These loopholes are often patched by the company in future software updates, unless it is a hardware flaw, in which case, a completely new model of a system would need to be required. Once it is patched, homebrew developers find other loopholes. Thus, it is a cat-and-mouse game. Companies, rightly so, are afraid of security breaches in their consoles that may lead to things like piracy. Homebrew developers must bypass these measures to play their games.

The 3DS is a console developed by Nintendo in 2010. Since then, there have been numerous new models, such as the 2DS and New 3DS. It has also been a system of great interest to homebrew developers.

The Homebrew Launcher — a software that allows users to play homebrew on 3DS consoles

The first “Hello World!” application for the 3DS was created by a user named Xcution in March 2012. Since then, numerous homebrew advancements were created. A website called 3DBrew was launched the same year that the 3DS was released in Japan, and has grown with details regarding the internals of the 3DS, including its hardware, filesystem, and memory layout.

Growth in the 3DS homebrew field was slow initially. However, in August 2014, a developer named Jordan Rabet, known by his online alias Smealum, developed an exploit for the 3DS known as Ninjhax. Ninjhax was a monumental discovery. Basically, it relied on a game known as “Cubic Ninja”,which was not well known before 2014. The game itself had a huge security flaw , which relied on QR codes. This allowed Smealum, along with other developers, to create a savedata exploit — a QR code that would allow them to run unsigned code on the 3DS. Thus, the Homebrew Launcher was created. Besides homebrew, the Homebrew Launcher allowed users to play out-of-region games, bypassing the region locking set by Nintendo.

The homebrew scene has evolved greatly since then. After Ninjhax’s release, Nintendo rushed to remove the game from the online eShop, yet the software flaw was still present in the physical game cartridges. The game’s $10 price nearly tripled within an hour, as people rushed to buy the cartridge on Amazon and other sites. Soon, other exploits were released by homebrew developers, including browserhax, an exploit of the Nintendo 3DS web browser, and, more recently, Soundhax.

In 2015, a custom firmware for the 3DS known as RXTools was released to the public. Although this was not the first custom firmware, this was the first stable, significant and free custom firmware for the 3DS. With custom firmware, users are able to do much more powerful things with their console, including playing backup ROMs for games without a 3DS flashcart, playing fan translations, and more directly from the main menu of the 3DS. The early stages involved a concept called EmuNAND and SysNAND.

The NAND, in terms of the 3DS, is a flash memory chip on the 3DS. This memory chip contains important data, such as the 3DS firmware and stock applications. SysNAND is a term that was developed to refer to contents stored on the physical NAND of the 3DS, and to differentiate it from the emuNAND. The emuNAND is an “emulated” version of the sysNAND. This is how early custom firmwares worked. These emuNANDs have to be created by making a hidden partition in the SD card using a tool such as emuNAND9. The default booting process for a non-modified 3DS would look as follows:

Image by NekoMichi (GBATemp)

However, when booting into emuNAND, the firmware is originally launched from the sysNAND. Then, an intermediate exploit, such as Menuhax, is used to launch into emuNAND before the 3DS enters the Home Menu.

Image by NekoMichi (GBATemp)

Recent updates, however, make Menuhax obsolete. A new development known as Arm9LoaderHax was revealed at the 32c3 Hacker Conference in 2015. This allowed 3DS homebrew to be run even before the sysNAND booted up. This same process was refined later into Boot9Strap, which allows custom firmwares to begin at an even earlier point in the boot stage. One major plus was that these advancements allow for 100% bootrate, unlike MenuHax, which often suffered from crashing and freezing during the boot stage.

Image by NekoMichi (GBATemp)

Today, the 3DS homebrew scene is slowly declining, as interest is shifting in favor of creating homebrew for the Nintendo Switch. Most of the advancements in the 3DS happened within a couple of years, and we can safely say that the Switch will be the new hot target for prospective homebrew developers as the 3DS scene steadily dies. Yet we cannot forget the impact that the 3DS has had on homebrew development and on portable gaming as a whole. Thus, the end of the 3DS scene approaches quickly. Long live the Nintendo Switch!

--

--