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,

solsolis

Well-Known Member
Member
Joined
Jan 9, 2016
Messages
153
Trophies
0
Location
Outrealm
XP
156
Country
United States
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.
No it relies on the new 3ds implementation of arm9loader so you need n3ds firm files.
 

Derverd

Well-Known Member
Member
Joined
Dec 22, 2014
Messages
172
Trophies
0
Location
Mars?
XP
152
Country
Australia
I suppose its too early for anyone to be working on a 'bootmii' kind of thing like the wii? Making 3ds hardmods irrelevant would be nice (since nobody does them in Australia T_T).
 

dkabot

Better With Others' Systems Than Their Own
Member
Joined
Sep 9, 2014
Messages
1,042
Trophies
0
XP
626
Country
United States
I suppose its too early for anyone to be working on a 'bootmii' kind of thing like the wii? Making 3ds hardmods irrelevant would be nice (since nobody does them in Australia T_T).
It wouldn't quite be 100% irrelevant, as FIRM0/1 could be overwritten.

That said, I can confirm Decrypt9 appears to work when run from a 9.2 EmuNAND (with 9.0 FIRM) through this (using AuReiNAND).
Additionally, an idea is being tossed around the Decrypt9 thread for an "emergency recovery" build to run directly in A9LH.

The main issue at the moment preventing a straight BootMii is the lack of screen init, so anything we do until the system boots is blind.
 

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
I suppose its too early for anyone to be working on a 'bootmii' kind of thing like the wii? Making 3ds hardmods irrelevant would be nice (since nobody does them in Australia T_T).

There's not much point yet, we don't know how to turn the screen on to display graphics, so you wouldn't be able to see what's going on, nor when it's done.
 

Derverd

Well-Known Member
Member
Joined
Dec 22, 2014
Messages
172
Trophies
0
Location
Mars?
XP
152
Country
Australia
Additionally, an idea is being tossed around the Decrypt9 thread for an "emergency recovery" build to run directly in A9LH.

The main issue at the moment preventing a straight BootMii is the lack of screen init, so anything we do until the system boots is blind.

A Emergency Recovery build would be amazing xD

A blind bootmii is better than no bootmii? I mean if each button was set to one thing that gives you at least 14 buttons? idk
 

Goombi

my_crypto = meme_crypto
Member
Joined
Jun 1, 2014
Messages
144
Trophies
0
Location
RnVja1lvdU15RHVkZQ
Website
www.goombi.fr
XP
178
Country
France
Sorry but I didn't got an answer last page: are the warnings while compiling normal?
I dumped my OTP.bin 3 times (md5 matches), installed python 64bits, make and all, compilation ends on "INSTALLER done!" but I saw too much warning to be confident with my tool chain.
If .3dsx builds are deterministic, maybe I could send my OTP and compare the builds to be sure my compilation is good?
 

dkabot

Better With Others' Systems Than Their Own
Member
Joined
Sep 9, 2014
Messages
1,042
Trophies
0
XP
626
Country
United States
A Emergency Recovery build would be amazing xD

A blind bootmii is better than no bootmii? I mean if each button was set to one thing that gives you at least 14 buttons? idk
Things will develop over time, we'll see where it goes.
Right now, I'd say your best bet for recovery would be AuReiNAND with either updatedsysnand and a 9.2 EmuNAND, or a separate SD with its own 9.2 EmuNAND (both cases need to run it with 9.0 FIRM).
From there, you can launch *hax and get into a visible Decrypt9 for things.
 
  • Like
Reactions: Derverd

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
Is there an explanation of the 3ds's boot process somewhere?

You can find bits and pieces of it scattered across pages on 3dbrew, but no, nobody's taken the time to do one general or long writeup of it, not to my knowledge. A quick summary would go like this though (assuming no failures of any kind):
  1. Power button
  2. BootROMs execute on ARM9 and ARM11
  3. NAND is initialised/made ready to use
  4. NATIVE_FIRM is loaded
  5. Various system modules get loaded and started
  6. NS (one of the system modules) loads the Home Menu
  7. Home Menu is started, now the user can use the 3DS as normal
That's just a very rough summary though, there's a lot more that goes on than just that, including "screen init" that you might see being tossed around a lot on the forum (which means turning the screen on and powering up the GPU to do graphics).
 
  • Like
Reactions: Derverd

solsolis

Well-Known Member
Member
Joined
Jan 9, 2016
Messages
153
Trophies
0
Location
Outrealm
XP
156
Country
United States
Sorry but I didn't got an answer last page: are the warnings while compiling normal?
I dumped my OTP.bin 3 times (md5 matches), installed python 64bits, make and all, compilation ends on "INSTALLER done!" but I saw too much warning to be confident with my tool chain.
If .3dsx builds are deterministic, maybe I could send my OTP and compare the builds to be sure my compilation is good?
There were quite a few warnings in my compilation also. It all installed fine. In my experience DevKit has a tendency to throw more warnings than most compilers.
 

Goombi

my_crypto = meme_crypto
Member
Joined
Jun 1, 2014
Messages
144
Trophies
0
Location
RnVja1lvdU15RHVkZQ
Website
www.goombi.fr
XP
178
Country
France
There were quite a few warnings in my compilation also. It all installed fine. In my experience DevKit has a tendency to throw more warnings than most compilers.
So it should be okay to install. Some warnings were weird like implicit declaration of strlen and missing semicolons. Thank you, I'll install it when there will be a better cfw with arm9 hooks and recovery functions, my current emuNAND setup is decent (except shitty bootrate).
 

cavolo

Well-Known Member
Member
Joined
Jun 3, 2015
Messages
162
Trophies
0
Age
31
XP
131
Country
France
Well, after 3/4 try I have pass the "exploiting arm9..."
I have see some line with"firm" and "installed" or "succes" did'nt remember, well nothing with failed. I turn my head one second, then black screen, I was thinking that all went well, but when trying to reboot (with aureinand cfw), nothing :/
I have tried the test payload where if I touch a buttun, the console will turn off, but not in my case :/
I suppose I hae bricked my n3ds haha, time to get an hardmod then.
 
  • Like
Reactions: Derverd

VaiCorinthians

Well-Known Member
Member
Joined
Oct 7, 2014
Messages
461
Trophies
0
Age
39
Location
GB
XP
471
Country
Papua New Guinea
Well, after 3/4 try I have pass the "exploiting arm9..."
I have see some line with"firm" and "installed" or "succes" did'nt remember, well nothing with failed. I turn my head one second, then black screen, I was thinking that all went well, but when trying to reboot (with aureinand cfw), nothing :/
I have tried the test payload where if I touch a buttun, the console will turn off, but not in my case :/
I suppose I hae bricked my n3ds haha, time to get an hardmod then.
arm9loaderhax.bin are on root
and firmware.bin are on rei folder?
 

cavolo

Well-Known Member
Member
Joined
Jun 3, 2015
Messages
162
Trophies
0
Age
31
XP
131
Country
France
I hope isnt a brick :sad:
Thanks, but how to check it isn't a brick ?
I have test the payload :
"4. Testing the payload + conclusion
There's a test binary (forgot who made it) ...."
But my console doesn't turn off.
So even if I have not well put aureinand files, it is supposed to work anw :(

without sd card, the blue led stay turns on?

With sd card the led stay on blue.
 

PixelBurst

Well-Known Member
Newcomer
Joined
Feb 2, 2016
Messages
99
Trophies
0
Age
34
XP
109
Country
Anyone around and able to compile or have any idea how I can fix this?

Code:
D:\Desktop\arm9loaderhax-master>make
make[1]: Entering directory `D:/Desktop/arm9loaderhax-master/payload_stage1'
makefile:9: /c/devkitPro/devkitARM/ds_rules: No such file or directory
make[1]: *** No rule to make target `/c/devkitPro/devkitARM/ds_rules'.  Stop.
make[1]: Leaving directory `D:/Desktop/arm9loaderhax-master/payload_stage1'
make: *** [firm0] Error 2

The files are there, I've tried uninstalling and reinstalling DevKitPro too but no dice.

Edit: Derp. Doesn't play nice having the files on D: when everything is installed on C. Moved my /arm9loaderhax-master/ folder to C: and it went through fine.
 
Last edited by PixelBurst,

VaiCorinthians

Well-Known Member
Member
Joined
Oct 7, 2014
Messages
461
Trophies
0
Age
39
Location
GB
XP
471
Country
Papua New Guinea
if you need, reinstall Reinand:

AuReinand: https://github.com/AuroraWright/AuReiNand/releases/ <<- arm9loaderhax.bin are on this zip too
Link to the required firm files http://www99.zippyshare.com/v/kEIiQl0x/file.html <<- firm to put inside Rei folder

--------------------- MERGED ---------------------------

Anyone around and able to compile or have any idea how I can fix this?

Code:
D:\Desktop\arm9loaderhax-master>make
make[1]: Entering directory `D:/Desktop/arm9loaderhax-master/payload_stage1'
makefile:9: /c/devkitPro/devkitARM/ds_rules: No such file or directory
make[1]: *** No rule to make target `/c/devkitPro/devkitARM/ds_rules'.  Stop.
make[1]: Leaving directory `D:/Desktop/arm9loaderhax-master/payload_stage1'
make: *** [firm0] Error 2

The files are there, I've tried uninstalling and reinstalling DevKitPro too but no dice.
put arm9loaderhax-master files on devkitARM folder
 

subcon959

@!#?@!
Member
Joined
Dec 24, 2008
Messages
5,854
Trophies
4
XP
10,150
Country
United Kingdom
As well as the disclaimer, you should probably put a warning that it's entirely possible to get through the compiling process and end up with a .3dsx that can brick your system.

It's cool that people are getting into doing stuff for themselves but it's still risky if you don't understand what it is you're doing.
 
  • Like
Reactions: lefthandsword

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Xdqwerty @ Xdqwerty: https://youtu.be/5eLWoy0fFkc?si=1vvQ_2zAUlF1ThoD