Why A9LH + CFW is better than MenuHax + CFW setup.

Hello everyone, this is just a little blog post for all who ask: “Why should I use ARM9LoaderHax instead of MenuHax or <insert other exploit here>?" For anyone else, this may seem like I'm just retreading the same water here so bear that in mind. If you know something I don't and would like me to change my post accordingly, please mention that in a comment or contact me elsewhere about it. (:

So, with that said, let's get into MenuHax.

To explain why this is the case properly, I must try to explain what you are going through each time you boot your 3DS with MenuHax into a Custom Firmware or Gateway, or whatever else.

When you power on your 3DS, it starts all the hardware up, and kicks you into the official SysNAND home menu. When the home menu loads, the code for MenuHax runs, and if it’s in the correct state according to your config, it’ll open whatever you tell it to. If that happens to be a custom firmware, then it’ll have to get access to Kernal9 using some sort of Exploit, for most people, that means Brahma. After, it will patch some stuff on the fly, and then boot the home menu again, but with NAND redirected to your EmuNAND. In most cases this is how it works, this is even the case for the Gateway Flashcart in fact, just with some additional menus, patches and DRM. One big problem with this is; because it requires getting into the Home Menu to boot, playing GBA and DSiware games requires you install them to your SysNAND and patch your SysNAND's TWL and AGB firmwares, as we have no head into the system when it reboots for those firmware modes.

The problem is, exploits, especially ones that use ROP to work, require a relatively consistent memory environment to work consistently, and that is something the 3DS lacks. The 3DS doesn’t clear its RAM when you power it off, so anytime it must reboot, any junk from the last power down remains in memory. Now, for stable access to the system, this isn’t a problem- but for exploits like MenuHax, and those Kernal9 exploits which often abuse a flaw that requires precise timing to execute, this is relatively bad.

It can cause boot failure and in addition, it’s also not very fast or efficient due to all the steps it has to go through to even start up to begin with.

Enter Arm9LoaderHax.

Arm9LoaderHax works by corrupting a specific section of the Firm0/1 that when it’s decrypted, it turns into specific garbage that the 3DS then executes, and that, in the case of the public implementations at least, means *usually initiating the screen and then booting a specially made payload from the SD card, with all this happening before the 3DS even initiates the Arm11 part of the system, essentially, a split second after you press the power button, you have full access to to Kernal9, with no need to rely on any exploits at all.

This means we don’t ever boot into Official SysNAND Home Menu at all anymore. Instead, we install a payload on the SD card for whatever Custom Firmware we want and let that boot up instead, and since you already have both the ability to run unsigned code and access to the Kernal9, there’s no need for anything like Brahma and MenuHax anymore.

Luma3DS CFW is often used with this, because it allows you to chain load other Arm9 Payloads by holding specific buttons on startup- and it has a ton of good CFW features that are always working from the get-go without the need for much configuration, one of them being that it protects the Firm0 and Firm1 partitions of the SysNAND from Nintendo’s Updater, thereby protecting your Arm9LoaderHax installation, and making this hack completely self-sustaining, and in addition, making the need for EmuNAND essentially vanish, as Nintendo’s Updates are no longer any threat to you.

And in the event someone DOES brick their SysNAND in some way; Because we have access to Arm9 at boot, if someone say- broke their home menu in some way, they could have Luma3DS run Decrypt9 at boot and restore a SysNAND backup from before they broke something, which means fairly good brick protection. (Keep in mind, there’s nothing stopping you from using an EmuNAND if you wanted to, it’s just no longer needed.)

Because we no longer need EmuNAND and we get access to the system each and every time it boots without the need to get into the Home Menu first, we can patch those pesky GBA and DSiware mode firmwares on the fly and no longer need to double install games or patch firmware manually. Fixing one of the unfixable problems with the aforementioned MenuHax + CFW setup.

So, let’s review.

MenuHax + CFW:
  • Requires booting into the official SysNAND Home Menu causing issues with DS and GBA mode reboots
  • Requires the use of an additional exploit to gain access to Kernal9, which is needed for CFW.
  • Requires an EmuNAND for proper brick protection (bringing additional issues to getting into DSiware and GBA games)
  • Is potentially unstable do to inconsistencies in the contents of ram at boot time
  • Because of the above 4 things I said, it takes significantly longer to go from powering on the 3DS to your desired Home Menu.

Arm9LoaderHax + CFW
  • Has instant Unsigned Code Execution at boot up
  • Has instant Kernal9 access at boot up
  • Runs before any Arm11 Code does and is typically used with CFW that protects the part of storage A9LH is installed to, making breaking it incredibly incredibly difficult
  • Negates the Need for EmuNAND and getting into the SysNAND Home Menu to work, ridding ourselves of issues related to DS, DSiware and GBA games.
  • Because of the above 4 things, it takes about a second or two to go from powering on the 3DS to your desired Home Menu, almost identical to a stock system to the untrained eye.

In closing, Arm9LoaderHax is an objectively better entry point for anyone. Even people that just want to play their games, it’s consistent for everyone and only requires a bit more overhead to set up, but the payoff is a stable, close to stock, seamless experience with your hacked 3DS, that not even Nintendo has any power to put a stop to.

Thanks for reading and I hope you learned something.

Try to keep any comments civil please. Feel free to correct me if I've misunderstood something and if you're actually more knowledgeable than me, I'll fix it, but I think I have a pretty good grasp on this stuff.
  • Like
Reactions: 9 people

Comments

I think the best part about A9LH is the fact that you don't even notice it's there - it's very minimal.
 
  • Like
Reactions: 5 people
You made some pretty good points there, but most people who use Menuhax just want to play 3DS games for free without the risk of bricking their 3DS (then again, it's not A9LH's fault if you brick during installation but there's still a chance of bricking if you're a noob who just wants free games). A9LH has more bells and whistles that homebrew devs will find more interesting.
 
  • Like
Reactions: 1 person
@Bubsy Bobcat That's debatable, because to set up a Menuhax and CFW, you still have to downgrade at least once unless you're just a lucky guy with a 3DS that came running 9.2 somehow. In doing so you're thereby risking a brick anyway. Not just any brick either, a brick where in you haven't got any NAND backup, so even if you hardmodded after you'd still be screwed.

The downgrade to 2.1 to get the OTP is incredibly safe compared to the initial 9.2 one actually because of all the failsafes involved, so sticking to Menuhax only makes sense to anyone who's lazy/doesn't care/is paranoid. Not that there's anything wrong with it, It's just not as good technically.
 
  • Like
Reactions: 4 people
Okay, so I've been a bit, shall we say, intrigued by a9, but all my consoles are already running on a nice menuhax setup. I'm lazy and the setup works, so I haven't made any attempt to install a9.

It was nice to read a well-written, clean, more or less objective description of how the 2 different setups work (even if it's a less than objective comparison).

That being said, I have EmuNands that I don't want to lose. Can an EmuNand backup be injected as a SysNand if moving from Menuhax to a9?
 
Well, good to know. Might have to dig that guide out and try it one of my extra units (probably the poor 2DS...it's had such a rough life! :P)
 
  • Like
Reactions: 1 person
I first installed Menuhax on an aqua blue system I had, and it worked well, but I got tired of all the questions (what's that rainbow stuff?)...and the dismal boot rate..and so converted it into an a9lh unit. It works well (I actually sold it to a friend) with a 64 gb sd card upgrade, and she still uses it to this day.

Now, all my systems run a9lh.
 
  • Like
Reactions: 1 person
Successfully got a9lh on my 2ds last night...whew....what a process! Definitely faster booting and more versatile, but good lord, not sure I wanna go through all that again for my other 3 devices! XD
 
  • Like
Reactions: 1 person
@3DSPoet, just do it for the one device you want to actually use, I've done it 4 times myself personally, for myself, and members of my family who all also have 3DS's.

Glad you're finally giving it a go! ^_^
It's always easier the second time.
 
Well, I spent some time this morning creating a work folder with all the necessary files that are needed and divided it into parts 3-5 (as all my devices are already 9.2 and setup to run homebrew). That SHOULD cut some of the time off of repeating the process. My only concern is that I made an error somewhere and ended up with my old SysNand rather than my old EmuNand. Not an issue on the 2DS, as there wasn't much on it, but when I get ready to do my n3DS and the other XLs, they all have data on their EmuNand's that I want to save.

I know I could look this up, but can I just inject my EmuNand backup through D9 as SysNand?
 
@3DSPoet You should be able to as long as you didn't modify any critical parts of the EmuNAND's system files. If you don't know that that is, then you didn't.

Make sure when you restore the NAND backup, you KEEP A9LH.
 
  • Like
Reactions: 1 person
Thanks! I figured as much. It's just nice to have confirmation! ^_^

They all just have plain old EmuNand (the o3DS units on RxTools currently, the n3DS is on Luma). No region changes or anything like that.

A side note, if you know this, I have 2 "black hole" items on my home menu. Failed installs of FBI from when I was installing RxTools. They're just Icons on the Home Menu with a solid black square. Nothing comes up on the top screen when they're selected and trying to open them just freezes on the 3ds loading screen. (I thought I'd ask if you knew before starting a new thread)
 
@3DSPoet You could probably remove them by deleting them with the Data Management menu in settings or if not, with FBI's Title List feature, no clue why those exist, may also work if you wipe the Icon Cache, but I don't have the exact details on how or what you can do to get rid of them.

You should make your own thread with pictures and extra detail, the more details you can provide the better.
 
  • Like
Reactions: 1 person
The only benefit to menuHex is that it's easy to set up and not time consuming. Otherwise, go A9LH, it's just better for so many reasons.
 
Is(n't) it a good reason to keep (Emu/Red)NAND with A9LH + CFW, to run homebrew that aren't compatible with 9.2 > ?
 
There's no reason to keep redNAND/emuNAND anymore with A9LH as any homebrew that required 9.0/9.2 have been ported to A9LH
 
  • Like
Reactions: 2 people
I successfully imported my EmuNand and it made the black boxes disappear. I'm 95% certain they were botched FBI installs from when I was following the MenuHax guide and messed up.
 
  • Like
Reactions: 1 person

Blog entry information

Author
CheatFreak47
Views
293
Comments
62
Last update

More entries in Personal Blogs

More entries from CheatFreak47

General chit-chat
Help Users
  • No one is chatting at the moment.
    Psionic Roshambo @ Psionic Roshambo: https://m.youtube.com/watch?v=UyxeZ7JYwZs&pp=ygUJVnIgaXMgZ2F5 +1