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,

ric.

Drivin' to meme country
Member
Joined
Sep 17, 2015
Messages
794
Trophies
0
XP
1,648
Country
Peru
They are, depends on your (micro)sd read and NAND write speed I believe.
Thanks for the reply but things are getting kinda spooky on my end.
The installer finished, it installed stage 1 and 2, and then the console turned off. No reboot, or nothing. It just shut off. I turned it on and the blue light turned on for a second before shutting off again. Turns out I was a dumbass and forgot to put the .bin file on the SD root.
I turned it back on with arm9loaderhax.bin on the root of the SD, and now the blue light turns on permanently but my screens are still black. Am I screwed?

EDIT: Decided to not be an ignoramus and try out the test arm9loaderhax.bin. Console shuts off after pressing any button, which I guess is what's supposed to happen? Guess I'm not bricked, but that still doesn't explain why my 3DS is doing nothing. Any help would be appreciated.
 
Last edited by ric.,

Deleted member 379940

Active Member
Newcomer
Joined
Jan 11, 2016
Messages
37
Trophies
0
Location
York
XP
147
Country
Netherlands
Thanks for the reply but things are getting kinda spooky on my end.
The installer finished, it installed stage 1 and 2, and then the console turned off. No reboot, or nothing. It just shut off. I turned it on and the blue light turned on for a second before shutting off again. Turns out I was a dumbass and forgot to put the .bin file on the SD root.
I turned it back on with arm9loaderhax.bin on the root of the SD, and now the blue light turns on permanently but my screens are still black. Am I screwed?

EDIT: Decided to not be an ignoramus and try out the test arm9loaderhax.bin. Console shuts off after pressing any button, which I guess is what's supposed to happen? Guess I'm not bricked, but that still doesn't explain why my 3DS is doing nothing. Any help would be appreciated.

Do you mean the test binary? If so, that means a9lh works! Now you can install AuReiNand and cold boot to emuNAND.
 

ric.

Drivin' to meme country
Member
Joined
Sep 17, 2015
Messages
794
Trophies
0
XP
1,648
Country
Peru
Do you mean the test binary? If so, that means a9lh works! Now you can install AuReiNand and cold boot to emuNAND.
Yup, the test binary. I already had Aureinand running on that o3DS, I guess older versions aren't compatible with a9lh? How would I go about updating if I can't see what's on the screen - or is it as simple as just swapping files? Thanks for your patience.
 

Deleted member 379940

Active Member
Newcomer
Joined
Jan 11, 2016
Messages
37
Trophies
0
Location
York
XP
147
Country
Netherlands
Yup, the test binary. I already had Aureinand running on that o3DS, I guess older versions aren't compatible with a9lh? How would I go about updating if I can't see what's on the screen - or is it as simple as just swapping files? Thanks for your patience.

Try upgrade your AuReiNand, overwrite all files.

Side note: did you restore your emuNAND to 9.x/10.x ?
 

aeroblast

Active Member
Newcomer
Joined
Jan 28, 2016
Messages
36
Trophies
0
Age
23
XP
50
Country
United States
yes just same problem blue light and nothing else

I think I got it bricked.
I did tried with another SD clean with only that test payload and it does nothing even that wifi led won't show.
I did tried several things and I never have any other "show" so it might be just dead ^^

Fun fact is that I taken care with otp 256 kb

Code:
Dumping otp.bin (256 byte)...
Creating otp.bin ...
Dump otp.bin (0x100) (< 3.0): succeeded!

Press B to return, START to reboot.
I used that "online" compiler maybe that weird I should have made it myself tss.
I had no errors about hash etc.
It installed fine all alone

So well by luck I have a second 3ds motherboard cause I always stock parts but still if there a solution of this cause maybe that a not brick but eheh I really doubt of it ^^
There is a not unsubstantial chance you're bricked, sorry. :( Maybe go for a hardmod?
 

Xinaman

Well-Known Member
Member
Joined
Sep 21, 2015
Messages
251
Trophies
0
Age
37
XP
184
Country
Brazil
Well, I keep getting this error. Any ideas? I kinda need this done quickly.

Code:
FIRM0 done!
FIRM1 done!
Traceback (most recent call last):
  File "common/sector_generator.py", line 1, in <module>
    from Crypto.Cipher import AES
  File "c:\Python27\lib\site-packages\Crypto\Cipher\AES.py", line 50, in <module>
    from Crypto.Cipher import _AES
ImportError: DLL load failed: %1 is not a valid Win32 application.
make: *** [sector] Error 1

EDIT: Nvm, found a service that compiles it for you.
I get that error because you need to install the 32bit pycripto version.
 

grafate

Well-Known Member
Member
Joined
Jan 30, 2016
Messages
104
Trophies
0
Age
38
XP
148
Country
United States

VaiCorinthians

Well-Known Member
Member
Joined
Oct 7, 2014
Messages
461
Trophies
0
Age
39
Location
GB
XP
472
Country
Papua New Guinea

Favna

#PCMasterRace
Member
Joined
Sep 12, 2009
Messages
864
Trophies
1
Website
twitter.com
XP
822
Country
Netherlands
Everyone can do it themselves now here:

https://gbatemp.net/threads/compile-a9lh-on-demand.416385/page-7

The OP added a web version. I just did it to compare and manually doing it, the python script there and the web form there all spits out the same hashes. So I would say that makes it much simpler for those who don't want to setup their computer to compile.

Tbh I'm just going to stick to command prompt and MAKE. At least then when it messed up I know I have no one to blame but myself and not a web server that might be messing up badly.
 

ric.

Drivin' to meme country
Member
Joined
Sep 17, 2015
Messages
794
Trophies
0
XP
1,648
Country
Peru
Need to sleep now.. And yes, nice to meet you :D
It worked and it's pretty rad. I'm part of the cool kid's club now and I love it. Thank you!
Now I have a little usage question for you all - do you prefer autobooting emunand and doing your business on the SD card as usual, or do you think doing everything on sysnand is the way to go? I can see the pros to both sides - especially when playing a lot of DSiWare and GBA injects, but after so much time of using menuhax and emunand I'm still a bit squeamish about updating sysnand.
Should I go with fully updated sysnand + 9.2 emunand, or leave sysnand at 9.2 and update emunand?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://youtu.be/LM0Y6RWvcr8?si=RjMLNrx1TEX301g1 Already has cfw lol