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,

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,009
Trophies
2
Age
36
XP
4,571
Country
United States
Just wanted to say great thanks! I got it to work with your tutorial. Using n3DS, I did not need miniPasta. One thing I'd like to see added, is that to make sure you're getting the 64-bit version of Python, the download button on the main page kept giving me 32-bit so I needed to download the 64-bit version from this page: https://www.python.org/downloads/windows/

Second, I needed to set python in my PATH, which I did by simply typing:

set PATH=C:\Python27;%PATH%​

before using "make".

Works like a charm, I had already set AuReiNAND up on my card prior to installing and after the install was done it booted right into my emuNAND. It's beautiful.
 
  • Like
Reactions: VaiCorinthians

VaiCorinthians

Well-Known Member
Member
Joined
Oct 7, 2014
Messages
461
Trophies
0
Age
39
Location
GB
XP
472
Country
Papua New Guinea
Just wanted to say great thanks! I got it to work with your tutorial. Using n3DS, I did not need miniPasta. One thing I'd like to see added, is that to make sure you're getting the 64-bit version of Python, the download button on the main page kept giving me 32-bit so I needed to download the 64-bit version from this page: https://www.python.org/downloads/windows/

Second, I needed to set python in my PATH, which I did by simply typing:

set PATH=C:\Python27;%PATH%​

before using "make".

Works like a charm, I had already set AuReiNAND up on my card prior to installing and after the install was done it booted right into my emuNAND. It's beautiful.
Welcome to the arm9loaderhax master race :creep:
 

DocKlokMan

Plugin Dev
Member
Joined
Apr 20, 2007
Messages
3,009
Trophies
2
Age
36
XP
4,571
Country
United States
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.
Not true, we just need a tool that will auto load, look for NAND_Recovery.bin, flash it and then turn the 3DS off once it's done. If it can't find the file, then turn the 3DS off immediately. No need to see anything although it would be nice.
 

Skaterdie

Active Member
Newcomer
Joined
Feb 21, 2016
Messages
26
Trophies
0
Age
44
XP
58
Country
United States
  1. On windows 10-64bit python2.7.11.msi would only install 32 bit version. I installed pycrypto-2.6.1.win32-py2.7.exe and it worked first time.
 

daxtsu

Well-Known Member
Member
Joined
Jun 9, 2007
Messages
5,627
Trophies
2
XP
5,194
Country
Antarctica
Not true, we just need a tool that will auto load, look for NAND_Recovery.bin, flash it and then turn the 3DS off once it's done. If it can't find the file, then turn the 3DS off immediately. No need to see anything although it would be nice.

Sure, you could do it that way, but you'd still have really nervous users. :P

Though it's a nail-biter when you go to restore either way, progress or no progress.
 

TheDuckMan64

Chicken nugget.
Member
Joined
Oct 9, 2015
Messages
355
Trophies
0
XP
200
Country
Presumably @ihaveamac has, since he uses OSX. If you're having troubles, maybe he can assist.
I keep getting the error:
Code:
make[1]: *** No rule to make target `“/Users/edmonds_ha/devkitARM:??/ds_rules'.  Stop.

Would this be an error with my devkitARM installation? I can't seem to find anything about it on the internet.......
 

Pleng

Custom Title
Member
Joined
Sep 14, 2011
Messages
2,442
Trophies
2
XP
2,827
Country
Thailand
The fact that you know none of this means you probably shouldn't continue.

That said, A9LH is the newest in bleeding-edge tech, running an Arm9 payload (think Brahma, but no screen atm) at boot before anything else.
OTP is One-Time Programmable. It contains system-specific data and takes a downgrade to 2.1 to get due to it being locked out in 3.0+
Existing guides are based around starting on a 9.2 SysNAND, so I guess that (though anything could start, since 10.3 can downgrade and 10.4/5 can hardmod and downgrade)

Its usefulness is currently a fast booting EmuNAND (or updated, hax'd SysNAND) with no 3D bug on N3DS and some slight/future brick protection.

OK Thanks.

Being on 10.5 (well... 10.6 now...) I wasn't planning on being able to continue anyway :) I just find it baffling just how many tutorials exist on the site which go into great detail about how to achieve something, without first putting a short explanation of what it is and why it might be useful. :)
 

meandu229

New Member
Newbie
Joined
Feb 22, 2016
Messages
2
Trophies
0
Age
39
XP
57
Country
Thanks for the tutorial, got my OTP and got arm9loaderhax installed booting aureinand. Much nicer than menuhax to get it all started.
 

Derverd

Well-Known Member
Member
Joined
Dec 22, 2014
Messages
172
Trophies
0
Location
Mars?
XP
152
Country
Australia
Can someone give me a pros and cons list of arm9loaderhax? Like do I sacrifice anything if I use this instead of menuhax?
 

PixelBurst

Well-Known Member
Newcomer
Joined
Feb 2, 2016
Messages
99
Trophies
0
Age
34
XP
109
Country
Is it just like menuhax where you can set up different buttons for different things? so like L = sysnand, R = sysnand homebrew menu ect

AuReinand does in terms of loading sysnand/emunand with preset buttons, you can't set it up yourself without compiling atm iirc. There isn't a fully fledged boot manager yet.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    Psionic Roshambo @ Psionic Roshambo: Lol