Tutorial  Updated

How to compile and install arm9loaderhax

This guide is probably obsolete, use this instead. Just drag your otp.bin to your browser window and it will compile it for you, I'm leaving the original guide below for those who likes to DIY.

Original post:

Hopefully this guide should silence the whiners:P

Before we begin I have to say this is my very first guide that I made from my experience and information from other Temp members, and English isn't my primary language so I might make mistakes. If you find any just tell me and I'll try my best to correct them. (The screenshot in the spoiler was taken in OS X with wineskin because I'm lazy, this guide is for Windows only)

So you just dumped your OTP and wondering how do you compile A9LH for your 3DS? Here's a guide to instruct you how to compile and install the payload on your device. This guide assumes you know the basics of 3DS homebrew and Windows command prompt,and just stay away from this if you don't - menuhax is good enough for most people IMO. (I am serious)

DISCLAIMER: Any modifications to your 3DS are done at your own risk. I am not responsible for any bricks that may occur during this process (use your common sense and read the guide carefully)

0. Requirements:
1. Preparation
  1. If you have an existing install of Python 3.x/32-bit 2.7.x, remove it first
  2. Install Python 2.7 x86-64, make sure you install "add python.exe to patch" sub feature during installation (it's not set by default)
    python_windows_installation_customize_python.jpg
  3. Install PyCrypto
  4. Install devkitPro 1.6.0, you will be be presented with tons of packages but the only ones we're interested are under devkitARM, simply uncheck everything else.
    tutorial copy.png
  5. Install Make, you should download the file with md5:8ae51379d1f3eef8360df4e674f17d6d
2. Compile A9LH
  1. Extract the A9LH source to any directory
  2. Copy your OTP.bin to the data_input folder and overwrite the one that's included with the zip file
  3. Open a CMD window (Shift+right click on the explorer window or cd into it manually)at the root directory of the source files, type "make" (without quotes) and enter.
  4. Wait for a minute or so, a data_output folder will appear and there should be no errors
  5. Copy the arm9loaderhax.3dsx file from the newly created folder to /3ds/ on your SD card (the installer is built specifically for the 3DS you dumped its OTP from, if you want to install A9LH on more than one 3DS you will to recompile the payload with their respective OTP.bin files)
3.1 Installing A9LH
  1. Ensure you have a dump of your SysNAND before you continue
  2. Enter hblauncher using an entry point of your choice
  3. Run arm9loaderhax.3dsx (see below if you're stuck on "exploiting arm9")
  4. The payload will be installed to your NAND and your 3DS will then be rebooted to black screens afterwards. Don't panic, turn off your 3DS
3.2 "exploiting arm9" workaround (required for n3DS, not sure about o3DS)
  1. Download and copy the miniPasta 3dsx to your SD card
  2. Run miniPasta, the screen will turn black for a few seconds and you will be kicked back to home menu afterwards
  3. Re-enter hblauncher and try running the A9LH installer again
4. Testing the payload + conclusion
There's a test binary (forgot who made it) that will power off your 3DS upon pressing any buttons except ZL, ZR or home. Simply copy it to the root of your SD card, wait for a couple seconds and press a button. If your 3DS powers off, then A9LH is successfully installed and woking correctly (congrats:grog:). If your 3DS powers off the moment you turn it on, check if the file is named "arm9loaderhax.bin" and placed in the root directory, if it power led stay on and won't respond to button pressed then your 3DS is probably bricked :(
If you want a cold boot (permanent) CFW (the reason to get A9LH in the first place), check out @Aurora Wright's ReiNand fork. She already documented it very well so I'm not going through it in this thread

FAQ
Q: I'm getting "python: command not found"
A: Make sure you select "add python.exe to path" during installation, alternatively you can set the PATH variable manually by entering this in cmd (Thanks @Kever)
Code:
set PATH=C:\Python27;%PATH%
Q: How to uninstall A9LH?[/SIZE][/SIZE]
A: Restore a sysNAND backup made before running arm9loaderhax.3dsx
 
Last edited by lefthandsword,

Goombi

my_crypto = meme_crypto
Member
Joined
Jun 1, 2014
Messages
144
Trophies
0
Location
RnVja1lvdU15RHVkZQ
Website
www.goombi.fr
XP
178
Country
France
Just to be sure, if the compilation ends on a "INSTALLER done!", that's okay? Cause I saw a number of warnings like implicit declaration of strlen, missing semicolon, many unused variables... That freaks me out tbh, after getting my OTP I don't want to screw up at this point (no hardmod style, you know the type).
Sorry if that's a dumb question but if thoses warnings are okay, you should put it in the OP I think, weirdos like me gonna freak.
 

cavolo

Well-Known Member
Member
Joined
Jun 3, 2015
Messages
162
Trophies
0
Age
31
XP
131
Country
France
Same here, some warnings during compilation :D
Someone can compile mine ? In that way I can compare if my toolchain is well installed.
And if he can give me the output of make command, to see if there is warnings too... :D
 
Last edited by cavolo,

lecondor

Member
Newcomer
Joined
Feb 22, 2016
Messages
19
Trophies
0
Age
37
XP
202
Country
France
Hello , i have a problem :( i don't know if i bricked my console or not . i follow the Tutorial step by step(With my own OTP ) .. and finally i have black screen .
However when i used a test binary my console shut down when i pressed any bouton...
Someone have suggestion to fix that ?? i dont have a Hardmod but i have save for my SysNAND and Emunand .

N3DSXL Sysnand 9.2 E Emunand 10.5 E

Thank You for your Help
 

solsolis

Well-Known Member
Member
Joined
Jan 9, 2016
Messages
153
Trophies
0
Location
Outrealm
XP
156
Country
United States
Hello , i have a problem :( i don't know if i bricked my console or not . i follow the Tutorial step by step(With my own OTP ) .. and finally i have black screen .
However when i used a test binary my console shut down when i pressed any bouton...
Someone have suggestion to fix that ?? i dont have a Hardmod but i have save for my SysNAND and Emunand .

N3DSXL Sysnand 9.2 E Emunand 10.5 E

Thank You for your Help
You need to install a compatible CFW. Like reiNAND Mod
 
  • Like
Reactions: lecondor

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,197
Trophies
2
XP
33,815
Country
Mexico
I saw the OTP.bin file in the Source of Arm9LoaderHax.
Can we use that one instead of downgrading to just get the OTP.bin file for the installation process?
I have a N3DS with 9.0U

I don't want to risk a brick nor touch sysnand ever again. xD
 

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
I saw the OTP.bin file in the Source of Arm9LoaderHax.
Can we use that one instead of downgrading to just get the OTP.bin file for the installation process?
I have a N3DS with 9.0U

I don't want to risk a brick nor touch sysnand ever again. xD
No, if you use that OTP.bin, it will brick your 3DS. You have to downgrade and get your own.

To elaborate on Rib's explanation: OTP is like the "DNA" of your 3DS, in that it's unique to it. If you try to use someone else's, it'll encrypt ARM9LoaderHax in such a way that your 3DS won't understand and thus won't be able to boot properly, causing a brick, because A9LH installs to your sysNAND.

Trust me, if it was that easy, everyone would be jumping on this bandwagon.
 
Last edited by daxtsu,

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,197
Trophies
2
XP
33,815
Country
Mexico
To elaborate on Rib's explanation: OTP is like the "DNA" of your 3DS, in that it's unique to it. If you try to use someone else's, it'll encrypt ARM9LoaderHax in such a way that your 3DS won't understand and thus won't be able to boot properly, causing a brick, because A9LH installs to your sysNAND.
I see.
And currently there is no other way to dump it other than downgrading to 2.1, right?
 

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
I see.
And currently there is no other way to dump it other than downgrading to 2.1, right?

If you have a New 3DS you can hard-wire a Raspberry pi or some other external hardware to it and begin a brute-forcing hack to get the SHA256 hash of it (which is enough to install A9LH), but it can take days to do, and requires soldering. Realistically, downgrading to 2.1 is the only option.
 

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,197
Trophies
2
XP
33,815
Country
Mexico
If you have a New 3DS you can hard-wire a Raspberry pi or some other external hardware to it and begin a brute-forcing hack to get the SHA256 hash of it (which is enough to install A9LH), but it can take days to do, and requires soldering. Realistically, downgrading to 2.1 is the only option.
Well I suck at soldering and I don't have a Raspberry Pi, so that means I'm screwed it the meantime. :P
I'll wait a little bit to see if workaround to dump the OTP.bin file without downgrading comes around, in the meanwhile, I'll stick to Menuhax, the waiting times don't bother me that much.

Thanks for the info!
 

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
I'll wait a little bit to see if workaround to dump the OTP.bin file without downgrading comes around

You'll probably be waiting longer than the remaining time we have left before the sun destroys the planet (:P), since Nintendo locked the OTP on firmwares 3.0 and later. There's no way to unlock it without a hard reboot, and aside from brute-forcing it with hardware like the Pi, and then installing A9LH (which would defeat the point of then dumping the OTP), there's no way to run code that early to get the OTP. It's a chicken and egg problem.
 

cavolo

Well-Known Member
Member
Joined
Jun 3, 2015
Messages
162
Trophies
0
Age
31
XP
131
Country
France
Same here, some warnings during compilation :D
Someone can compile mine ? In that way I can compare if my toolchain is well installed.
And if he can give me the output of make command, to see if there is warnings too... :D

Well, I have compiled one for a friend who have an hardmod, and it doesn't work (old 3ds for him, new 3ds for me, I just have to swap otp.bin right ?), so I'll wait before use the one I compiled for my console haha.

e: I'm compiling on linux, everything should work on it right ?
e2: everything fine for my friend now.
 
Last edited by cavolo,

meandu229

New Member
Newbie
Joined
Feb 22, 2016
Messages
2
Trophies
0
Age
39
XP
57
Country
Hey guys got my compiling working. Just one thing Im doing this on a 2ds do I need to replace new3ds10/new3ds90 files at all I dont ssee any mention of changing any other files.

Thanks alot.
 

Pacman`

Well-Known Member
Member
Joined
Dec 19, 2006
Messages
492
Trophies
1
XP
717
Country
@lefthandsword
Thank you very much for this guide. Got it running on my N3DS as soon as I solved the "Exploiting arm9" problem (miniPasta didn't seem to work by itself).
You might want to add this to your guide.

I had menuhax 2.1 installed with a theme, and A9LH absolutely refused to install itself...
So I went into Change Theme on the homescreen and clicked on the last entry (Do not use a theme) to disable menuhax.
Guess what, it now works :P

So running it on Emunand with AuReiNand (boots 100%), but I kinda missed my Zero Suit Samus theme on Sysnand so I installed it using CHMM2.

Now in addition to cia's on emunand, I can also play DS games with my R4i 3DS Gold cart, and if I feel nostalgic I can drop down to Sysnand and play GBA games too.

THANK YOU!
 
  • Like
Reactions: [Truth]

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • Julie_Pilgrim @ Julie_Pilgrim:
    the internet
  • Julie_Pilgrim @ Julie_Pilgrim:
    @Psionic Roshambo i have 16 gb in my pc and i run into issues with ram more than i'd like to admit
  • HiradeGirl @ HiradeGirl:
    I got only 8GB of RAM. But I want 32GB.
  • Sonic Angel Knight @ Sonic Angel Knight:
    Time to just download more ram
  • K3Nv2 @ K3Nv2:
    Yeah search Google
  • Sonic Angel Knight @ Sonic Angel Knight:
    Or, I also heard that if you use flash memory, it can act as more "RAM" at least windows tell me when I stick a flash drive into it.
  • Veho @ Veho:
    It can act as a swap drive but that isn't more RAM, it's slooow.
  • K3Nv2 @ K3Nv2:
    I wish we could have 1Gbps external storage by now
  • K3Nv2 @ K3Nv2:
    Like for micro
  • Veho @ Veho:
    New Myoo.
  • SylverReZ @ SylverReZ:
    @Veho, Yooo noice
  • SylverReZ @ SylverReZ:
    Looks like a Famicom handheld
  • Veho @ Veho:
    Yeah, they were going for that.
  • Veho @ Veho:
    It's not very good though.
  • Veho @ Veho:
    I'm watching the review, the emulators it uses suck bawls.
  • Veho @ Veho:
    Software update might improve it.
  • Psionic Roshambo @ Psionic Roshambo:
    Or maybe someone will make like Emulation Station for it or something?
  • Veho @ Veho:
    That counts as a software update :tpi:
    +1
  • OctoAori20 @ OctoAori20:
    Ello
  • K3Nv2 @ K3Nv2:
    I can think of the design teams process another joystick and no audio or a joystick and mono audio
  • Veho @ Veho:
    "You think we can just put the speakers at the top
    ?" "NO!"
    +1
  • K3Nv2 @ K3Nv2:
    Pft stereo speakers you're fired
    +1
    K3Nv2 @ K3Nv2: Pft stereo speakers you're fired +1