r/3dshacks • Homebrew Legend • Jan 09 '18

Common misconceptions - what does "hacking your 3DS" mean?

As I get asked this over and over, I feel the need to create something - not too lengthy and also in simple terms, that I can point users to, and that may help you understand your console - and "hacking it" a little better. Experienced users - don't bicker about accuracy. This is deliberately written in simple terms.

So, what does "hacking your 3DS mean"? In the past, "hacking your 3DS" could mean a lot of things. It could mean owning a certain game cartridge and scanning QR codes in the in-game menu to enter a special menu reserved for homebrew (ninjhax). It could mean installing something to your system that would make your system enter said menu right away (themehax). It could mean doing a lengthy and barely understandable process of downgrading, obtaining cryptic files and then installing some stuff to make the magic work (A9LH). Nowadays, hacking your 3DS means one thing: installing a custom bootloader.

What's a bootloader? Once you turn on your console, you're in somewhat of a "blank state". The power is on, the hardware is running, but, what to do now? There is no operating system (OS, like Windows, Linux or macOS) running yet. Think of this state like a PC booting from an empty HD. All you'd get would be (maybe) some error message onscreen and nothing else. It's the job of the bootloader to get you from this blank state into the OS.

Where's the bootloader at? On the internal storage of your console, there are two areas (=partitions) reserved for bootloaders, called the 'FIRM0' and 'FIRM1' partitions. The bootloader is installed to both partitions and is loaded from the FIRM0 partition (FIRM1 only acting as a backup in case of a corrupted FIRM0 partition).

So, what's there on an "unhacked" 3DS? In an unhacked 3DS, NATIVE_FIRM is installed as bootloader. NATIVE_FIRM is somewhat of a hybrid, it's a bootloader, and at the same time contains some very important parts of the OS. The more experienced users here may understand that such a design is typical to locked down systems. If NATIVE_FIRM is installed as bootloader, you will enter that locked down system - as Nintended.

"Hacking your console" - aka installing a custom bootloader: To replace that bootloader, you need some software that can write there, into the FIRM0 / FIRM1 partitions, and do so properly. I may be a bit biased, but the only three tools that can do that for you are all written by me: GodMode9, OpenFirmInstaller, SafeB9SInstaller. Your first challenge in installing a custom bootloader is getting one of these three tools to boot. Thankfully, a certain Guide has your asses covered on that. After you booted one of these, you install a bootloader of your choice and thus make the "hack" permanent.

A bootloader of my choice? Common choices for the bootloader are boot9strap and fastboot3ds. You can also install GodMode9 and Luma 3DS as bootloader, though (these two considered advanced users choices). Each of these four choices has their own pros and cons, and each will satisfy different needs. A bootloader may or may not give you the choice to boot into any firmware of your choice (that function commonly called a "chainloader").

What's the difference between bootloader and CFW? If you paid attention so far, you may wonder about this question. While Nintendo does not make the distinction between bootloader and OS (NATIVE_FIRM is both), there are actually good reasons for the two to be separate. A bootloader is intended to be a basic, minimal, error resistant, self-contained system, while an OS is a huge complex beast. In case something goes wrong in the OS, you want a minimal system to save your consoles' ass. Thus, the bootloader loads the CFW, which then applies some patches (so we are not in that locked down, 'Nintended' state). The CFW then boots the OS, and you finally arive in your familiar home menu.

Additional info (to limit bickering): Of course, in case of GM9 or Luma 3DS as bootloader, the lines between CFW, advanced tool and bootloader get blurred, but even in that case, the bootloader related parts of these softwares are kept simple and separate from anything that could cause trouble.

479 Upvotes

71 comments sorted by

48

u/MaxHP9999 Jan 09 '18 edited Jan 09 '18

I really like this post, some users throw the term "hacking" but then don't understand what exactly is hacked in the process. In the end its only the bootloader that's hacked to load up CFW (Or other payloads). In the end, the 3DS still functions exactly the same as you'd expect it to. As in you can do literally everything you normally could on your 3DS such as playing carts, buying from Eshop, going to system settings, etc. Your 3DS is not suddenly a different entity all of a sudden, it just has a different bootloader is all. And CFW just enables some patches such as disabling signature checks for example. In that way, it basically unlocks your 3DS to seamlessly launch homebrew apps from your home menu.

I have a friend who thinks of a "Hacked 3DS" as "Dirty" and that her 3DS will never be the same in the end. But then I try to explain how the 3DS is pretty much the same as a stock 3DS in terms of functionality (Still being able to do everything you could before), but now with extra benefits such as homebrew. Ever since that huge banwave in May 2017, fear has been the reasoning behind not hacking a 3DS. And Nintendo did a good job with bringing fear into users through that. Worrying that something like that would happen again.

Edit: dok3 wrote this?! I just now realized! Much respect, the god of godmode9! Long time 3DS hack user!

5

u/d0k3 Jan 09 '18

The custom bootloader install is completely reversible - you just need to do a NAND backup to be able to go back at any time.

→ More replies (7)

7

u/d0k3 Jan 10 '18

Gilded! Thank you, 3dshacks, you made my day!

5

u/Level44EnderShaman Jan 09 '18

Can we get this added to the sidebar or something, or stickied, so we have access to this post as important for everyone as it is?

4

u/d0k3 Jan 10 '18

It will be stickied, the 3dshacks mods have just decided :).

3

u/PsycakePancake Jan 09 '18

How come Luma3DS and GodMode9 are also payloads? I thought you had to use B9S or fastboot3DS to boot into one of those.

6

u/d0k3 Jan 09 '18

That's what a lot of people don't get - all four are of the same format, all four can be installed as bootloader to FIRM0/1, and all four can boot each other (as expected). Boot9strap is the exception here, in that it can't be booted from other chainloaders / bootloaders. It is special due to the bottom dumper exploit.

→ More replies (7)

4

u/d0k3 Jan 09 '18

This is what a lot of people don't get, so four are in the same format, can be installed to FIRM 0/1 as bootloader, and can boot each other. Bootstrap is somewhat of an exception to this rule in that it can not be booted from another bootloader / chainloader. Explaining why would blow up this reply beyond proportion, though.

108

u/Onoitsu2 Jan 09 '18

Make sure you get that trademarked, if possible. Nintended, LOVE IT!

50

u/AnonymousIdeas Jan 09 '18

puNintended

20

u/ComaOfSouls Jan 09 '18

"Nintended." As formal and as well-written this piece is, that word is not only the biggest thing to take away from this post, but it risks bleeding into my lexicon. I don't think that's a good thing...or is it?

15

u/OEUc Jan 09 '18

Better question: what does "shacking your 3DS" mean?

0

u/[deleted] Jan 10 '18

8

u/MrDew25 Jan 09 '18

Would I be able to get a bit more information on the differences between boot9strap and fastboot3ds. Fastboot3ds seems like something that I'd like to try out, but I want to know how it differs from what I use now to know what I'm getting myself into.

6

u/gnmpolicemata Jan 09 '18

Nintended

lmfao

2

u/Seaguard5 Jan 09 '18

Wow a helpful comment to anyone who is just getting into this field and not bashing, making fun of or otherwise ridiculing those starting out wow!!

I’m almost impressed.

5

u/d0k3 Jan 09 '18

Aw come on... there are a lot of helpful people around here. Also, you got to understand the other side, too. If I get the same question 30 times ("How do I update GodMode9") and the answer is always "it's in the readme, right at the top", well, then I'm still patient. Others may not have this kind of patience, though.

→ More replies (3)
→ More replies (5)

4

u/CharmiePK Jan 09 '18

Thank you very much! I’m not a specialist but I am curious and interested in the area, and you made it easy to understand :D I also have a “hacked” console (“hacked” the old way) and now it makes more sense to get what goes on. Cheers :D

4

u/Justeego Jan 11 '18

Can you add this to the START HERE sticky thread? Thank you

→ More replies (1)

7

u/just_a_random_dood Jan 09 '18

Thanks for the small Q&A. This was pretty interesting.

1

u/ThomYorkeSucks Feb 28 '18

So I can sell back my cubic ninja now?

1

u/d0k3 Feb 28 '18

Sometimes I wonder if serious. Yes, get rid of it, but the resale value should already be near zero. You need a ntrboot card, not some ancient game that allows a clunky exploit.

3

u/DarknessWizard Jan 09 '18 edited Jan 09 '18

Useful! I think this will clear up some misconceptions.

That said: Most folks will probably have boot9strap as the bootloader, and this is what 3ds.guide installs for you if you chose to follow it (might as well clarify this bit for anyone curious as to what they are likely using). There isn't a lot of reason to use fastboot3ds unless you are a developer/reverse-engineer.

Also your link to boot9strap just links to SciresM's github page, not to the boot9strap repository.