Tutorial  Updated

How to Sync & Compile various A9LH Forks(payload_stage1.bin + payload_stage2.bin)

1) Would you want to get the latest version of your favourite A9LH fork? No? Well, I would. xD
2) You need payload_stage1.bin and payload_stage2.bin for an A9LH fork but cannot find it? No? Well, you might need them in the near future. :P
3) You are a new user but want to do all this stuff yourself? No? :<

Anyway, in this guide I'll try to explain how to compile various A9LH forks. Some of this stuff are copypasta'd from my other guide on how to compile (Au)ReiNand CFW, but you don't have to worry as I exclusively explain on how to compile ONLY A9LH(payload_stage1.bin & payload_stage2.bin which you will need if you ever want to change A9LH fork)




Things that you will need to do before clicking on one of the various A9LH forks:
  1. Download Git for your operating system from here: https://git-scm.com/downloads (When you install it, just click on "Next" to everything it says).

  2. Install devkitPro from here: https://sourceforge.net/projects/devkitpro/

  3. Download MinGW from here: https://sourceforge.net/projects/mingw/ When installation is over, it will show you a window and ask you which package to install. Choose "mingw32-base", wait for the installation to finish and close the window.

  4. You will have to edit your PATH. Don't freak out, it's easy:
    Right click on your Computer icon > Properties > Advanced system settings > Environment Variables... > System variables > FIND "Path" > Edit.
    If you did it right, you should be looking at this window:
    ChMWmt8.png


    Now add the locations that are inside the red rectangle.

  5. Open File Explorer and navigate into "C:\"

  6. Create a new folder and name it however you like. I named mine "SOURCES" to stand out of the rest of the folders. Open this folder.
    !!!!!!!!!! TIP: Don't add spaces in the folder's name. Eg: if you want the folder to be named "3DS Sources" then you will have to name it "3DS_Sources" (the difference is that I have added an underscore instead of space) !!!!!!!!!!






Various A9LH forks:


  1. On your keyboard hold SHIFT and right click with your mouse. The right click context menu will show you a new option "Open command window here". Click it.
    This is how it should look like:
    2NHmU8f.jpg


  2. Now type "git clone --recursive https://github.com/AuroraWright/arm9loaderhax.git",
    press enter and wait for it to sync the sources.
    This is how it should look like:
    uJ7oXWD.jpg


  3. After it is done, you will see a newly created folder named "arm9loaderhax". Open this new folder.
    This is how it should look like:
    7TfaC9E.jpg


  4. On your keyboard press SHIFT and right click with your mouse. Select, once more, "Open command window here".
    This is how it should look like:
    2NHmU8f.jpg


  5. Now simply type "make" and wait for it to do its job.
    This how it should look like:
    9I2tU44.jpg


  6. After you type the "make" command, you will see a NEW folder named "out" inside arm9loaderhax's folder(C:\your_folder_in_which_you_will_sync_your_stuff\arm9loaderhax\out\)
    This is how it looks like:
    TA5oM90.jpg

Congratulation, you have successfully synced Aurora Wright's A9LH fork that has screen-init and compiled 2 of the needed files in order to install A9LH. These 2 files are the "payload_stage1.bin" and "payload_stage2.bin".

  1. On your keyboard hold SHIFT and right click with your mouse. The right click context menu will show you a new option "Open command window here". Click it.
    This is how it should look like:
    2NHmU8f.jpg


  2. Now type "git clone -b noscreeninit --single-branch https://github.com/AuroraWright/arm9loaderhax.git", press enter and wait for it to sync the sources.
    This is how it should look like:
    RaYOjHe.jpg


  3. After it is done, you will see a newly created folder named "arm9loaderhax". Open this new folder.
    This is how it should look like:
    7TfaC9E.jpg


  4. On your keyboard press SHIFT and right click with your mouse. Select, once more, "Open command window here".
    This is how it should look like:
    2NHmU8f.jpg


  5. Now simply type "make" and wait for it to do its job.
    This how it should look like:
    9I2tU44.jpg


  6. After you type the "make" command, you will see a NEW folder named "out" inside arm9loaderhax's folder(C:\your_folder_in_which_you_will_sync_your_stuff\arm9loaderhax\out\)
    This is how it looks like:
    TA5oM90.jpg

Congratulation, you have successfully synced Aurora Wright's non-screen-init A9LH fork(Your other payloads such as Decrypt9, CtrBootManager9 etc. STILL HAVE screen-init so you can use them without worrying. The only difference with the main repo is that you won't see the screen turning on and off for 1 second when you power on your 3DS + you won't be able to see splash screens when you turn on your 3DS) and compiled 2 of the needed files in order to install A9LH. These 2 files are the "payload_stage1.bin" and "payload_stage2.bin".

  1. On your keyboard hold SHIFT and right click with your mouse. The right click context menu will show you a new option "Open command window here". Click it.
    This is how it should look like:
    2NHmU8f.jpg


  2. Now type "git clone --recursive https://github.com/dark-samus/arm9loaderhax.git",
    press enter and wait for it to sync the sources.
    This is how it should look like:
    1iA3ti7.jpg


  3. After it is done, you will see a newly created folder named "arm9loaderhax". Open this new folder.
    This is how it should look like:
    7TfaC9E.jpg


  4. On your keyboard press SHIFT and right click with your mouse. Select, once more, "Open command window here".
    This is how it should look like:
    2NHmU8f.jpg


  5. Now simply type "make" and wait for it to do its job.
    This how it should look like:
    9I2tU44.jpg


  6. After you type the "make" command, you will see a NEW folder named "out" inside arm9loaderhax's folder(C:\your_folder_in_which_you_will_sync_your_stuff\arm9loaderhax\out\)
    This is how it looks like:
    TA5oM90.jpg

Congratulation, you have successfully synced dark_samus3's A9LH fork that has screen-init and compiled 2 of the needed files in order to install A9LH. These 2 files are the "payload_stage1.bin" and "payload_stage2.bin".

hZiq21V.jpg



Sorry, I won't be covering this one as you need to input some files when you sync his git and I'm not a fan of this method.



Now you might be wondering "what am I suppsoed to do with the payload_stage1.bin and payload_stage2.bin files". Go here to find out how to use them: http://gbatemp.net/threads/safea9lhinstaller.419577/




!!!!!!!!!! TIP: You cannot sync ALL of the arm9loaderhax repos because they all have the same name. If you want to have 2 or more arm9loaderhax gits, then you will need to create another folder(eg Aurora_No_Screen_Init) and sync the desired repo there. !!!!!!!!!!



Credits go to @delebile for the original A9LH, @dark_samus3, @Aurora Wright, @capito27 as most of this stuff is stolen from his guide on how to compile rxTools and everyone else I have forgotten! (Make a post or PM me if you want credits)
 
Last edited by fr3quency,

jimmyleen

Well-Known Member
Member
Joined
Feb 28, 2016
Messages
1,171
Trophies
0
XP
704
Country
1) Would you want to get the latest version of your favourite A9LH fork? No? Well, I would. xD
2) You need payload_stage1.bin and payload_stage2.bin for an A9LH fork but cannot find it? No? Well, you might need them in the near future. :P
3) You are a new user but want to do all this stuff yourself? No? :<

Anyway, in this guide I'll try to explain how to compile various A9LH forks. Some of this stuff are copypasta'd from my other guide on how to compile (Au)ReiNand CFW, but you don't have to worry as I exclusively explain on how to compile ONLY A9LH(payload_stage1.bin & payload_stage2.bin which you will need if you ever want to change A9LH fork)




Things that you will need to do before clicking on one of the various A9LH forks:
  1. Download Git for your operating system from here: https://git-scm.com/downloads (When you install it, just click on "Next" to everything it says).

  2. Install devkitPro from here: https://sourceforge.net/projects/devkitpro/

  3. Download MinGW from here: https://sourceforge.net/projects/mingw/ When installation is over, it will show you a window and ask you which package to install. Choose "mingw32-base", wait for the installation to finish and close the window.

  4. You will have to edit your PATH. Don't freak out, it's easy:
    Right click on your Computer icon > Properties > Advanced system settings > Environment Variables... > System variables > FIND "Path" > Edit.
    If you did it right, you should be looking at this window:
    ChMWmt8.png


    Now add the locations that are inside the red rectangle.

  5. Open File Explorer and navigate into "C:\"

  6. Create a new folder and name it however you like. I named mine "SOURCES" to stand out of the rest of the folders. Open this folder.
    !!!!!!!!!! TIP: Don't add spaces in the folder's name. Eg: if you want the folder to be named "3DS Sources" then you will have to name it "3DS_Sources" (the difference is that I have added an underscore instead of space) !!!!!!!!!!






Various A9LH forks:


  1. On your keyboard hold SHIFT and right click with your mouse. The right click context menu will show you a new option "Open command window here". Click it.
    This is how it should look like:
    2NHmU8f.jpg


  2. Now type "git clone --recursive https://github.com/AuroraWright/arm9loaderhax.git",
    press enter and wait for it to sync the sources.
    This is how it should look like:
    uJ7oXWD.jpg


  3. After it is done, you will see a newly created folder named "arm9loaderhax". Open this new folder.
    This is how it should look like:
    7TfaC9E.jpg


  4. On your keyboard press SHIFT and right click with your mouse. Select, once more, "Open command window here".
    This is how it should look like:
    2NHmU8f.jpg


  5. Now simply type "make" and wait for it to do its job.
    This how it should look like:
    9I2tU44.jpg


  6. After you type the "make" command, you will see a NEW folder named "out" inside arm9loaderhax's folder(C:\your_folder_in_which_you_will_sync_your_stuff\arm9loaderhax\out\)
    This is how it looks like:
    TA5oM90.jpg

Congratulation, you have successfully synced Aurora Wright's A9LH fork that has screen-init and compiled 2 of the needed files in order to install A9LH. These 2 files are the "payload_stage1.bin" and "payload_stage2.bin".

  1. On your keyboard hold SHIFT and right click with your mouse. The right click context menu will show you a new option "Open command window here". Click it.
    This is how it should look like:
    2NHmU8f.jpg


  2. Now type "git clone -b noscreeninit --single-branch https://github.com/AuroraWright/arm9loaderhax.git", press enter and wait for it to sync the sources.
    This is how it should look like:
    RaYOjHe.jpg


  3. After it is done, you will see a newly created folder named "arm9loaderhax". Open this new folder.
    This is how it should look like:
    7TfaC9E.jpg


  4. On your keyboard press SHIFT and right click with your mouse. Select, once more, "Open command window here".
    This is how it should look like:
    2NHmU8f.jpg


  5. Now simply type "make" and wait for it to do its job.
    This how it should look like:
    9I2tU44.jpg


  6. After you type the "make" command, you will see a NEW folder named "out" inside arm9loaderhax's folder(C:\your_folder_in_which_you_will_sync_your_stuff\arm9loaderhax\out\)
    This is how it looks like:
    TA5oM90.jpg

Congratulation, you have successfully synced Aurora Wright's non-screen-init A9LH fork(Your other payloads such as Decrypt9, CtrBootManager9 etc. STILL HAVE screen-init so you can use them without worrying. The only difference with the main repo is that you won't see the screen turning on and off for 1 second when you power on your 3DS + you won't be able to see splash screens when you turn on your 3DS) and compiled 2 of the needed files in order to install A9LH. These 2 files are the "payload_stage1.bin" and "payload_stage2.bin".

  1. On your keyboard hold SHIFT and right click with your mouse. The right click context menu will show you a new option "Open command window here". Click it.
    This is how it should look like:
    2NHmU8f.jpg


  2. Now type "git clone --recursive https://github.com/dark-samus/arm9loaderhax.git",
    press enter and wait for it to sync the sources.
    This is how it should look like:
    1iA3ti7.jpg


  3. After it is done, you will see a newly created folder named "arm9loaderhax". Open this new folder.
    This is how it should look like:
    7TfaC9E.jpg


  4. On your keyboard press SHIFT and right click with your mouse. Select, once more, "Open command window here".
    This is how it should look like:
    2NHmU8f.jpg


  5. Now simply type "make" and wait for it to do its job.
    This how it should look like:
    9I2tU44.jpg


  6. After you type the "make" command, you will see a NEW folder named "out" inside arm9loaderhax's folder(C:\your_folder_in_which_you_will_sync_your_stuff\arm9loaderhax\out\)
    This is how it looks like:
    TA5oM90.jpg

Congratulation, you have successfully synced dark_samus3's A9LH fork that has screen-init and compiled 2 of the needed files in order to install A9LH. These 2 files are the "payload_stage1.bin" and "payload_stage2.bin".

hZiq21V.jpg



Sorry, I won't be covering this one as you need to input some files when you sync his git and I'm not a fan of this method.



Now you might be wondering "what am I suppsoed to do with the payload_stage1.bin and payload_stage2.bin files". Go here to find out how to use them: http://gbatemp.net/threads/safea9lhinstaller.419577/




!!!!!!!!!! TIP: You cannot sync ALL of the arm9loaderhax repos because they all have the same name. If you want to have 2 or more arm9loaderhax gits, then you will need to create another folder(eg Aurora_No_Screen_Init) and sync the desired repo there. !!!!!!!!!!



Credits go to @delebile for the original A9LH, @dark_samus3, @Aurora Wright, @capito27 as most of this stuff is stolen from his guide on how to compile rxTools and everyone else I have forgotten! (Make a post or PM me if you want credits)

I have a dumb question. Do you happen to know if Fix94's A9LH can be compiled the same way as the other three versions of the A9LH?
 
  • Like
Reactions: Deleted User

fr3quency

Well-Known Member
OP
Member
Joined
Jan 11, 2016
Messages
811
Trophies
0
Age
32
Location
Wherever my imagination decides.
Website
fr3quency.deviantart.com
XP
823
Country
Greece
@fr3quency

Am I missing something here? All of the forks require input files like delibile's fork according to the readme
Nope, if you sync Aurora's a9lh(both screen-init and no-screen-init), you will see that you won't have to input any files (like you need with delebile's). Try to sync Aurora's a9lh and then immediately type "make". I did it 4-5 days ago when she updated her no-screen-init version(up to 31 commits if I recall correctly). You will get an "out" folder that contains the 2 stage-payloads. I have personally tried it on those 3 ones (there was another a9lh fork but I don't recall the name. Fix96? Or something like that. xD it also requires to input some files, but both Aurora's and dark-samus's forks don't require such a thing - which is fking awesome imho)

Sent from my Nexus 5
 
Last edited by fr3quency,

Madridi

Card Collector
Member
Joined
May 9, 2008
Messages
3,562
Trophies
2
Age
38
Location
Doha
XP
3,071
Country
Qatar
Nope, if you sync Aurora's a9lh(both screen-init and no-screen-init), you will see that you won't have to input any files (like you need with delebile's). Try to sync Aurora's a9lh and then immediately type "make". I did it 4-5 days ago when she updated her no-screen-init version(up to 31 commits if I recall correctly). You will get an "out" folder that contains the 2 stage-payloads. I have personally tried it on those 3 ones (there was another a9lh fork but I don't recall the name. Fix96? Or something like that. xD it also requires to input some files, but both Aurora's and dark-samus's forks don't require such a thing - which is fking awesome imho)

Sent from my Nexus 5
So I assume it's not installing everything? Cause if it is, you would have to at least give your OTP as an input..

Also, if that's really case, then they should remove the input requirement from their readme files (I know, they are all identical, but still, not accurate)
 

fr3quency

Well-Known Member
OP
Member
Joined
Jan 11, 2016
Messages
811
Trophies
0
Age
32
Location
Wherever my imagination decides.
Website
fr3quency.deviantart.com
XP
823
Country
Greece
So I assume it's not installing everything? Cause if it is, you would have to at least give your OTP as an input..

What do you mean? Indeed, you needed your OTP to compile a9lh, but that's in the past. With SafeA9LH you need the OTP only for the installation. I'm not really sure myself what's going on, but not requiring to input files is enough for me to make this a9lh(the one that doesn't require input files) my main one. Plus Aurora updates her fork so I'm really happy. Delebile made a huge update as well so I'm on standby to see what will happen with Aurora's fork. I haven't found the time to ask her.

Sent from my Nexus 5
 

Madridi

Card Collector
Member
Joined
May 9, 2008
Messages
3,562
Trophies
2
Age
38
Location
Doha
XP
3,071
Country
Qatar
What do you mean? Indeed, you needed your OTP to compile a9lh, but that's in the past. With SafeA9LH you need the OTP only for the installation. I'm not really sure myself what's going on, but not requiring to input files is enough for me to make this a9lh(the one that doesn't require input files) my main one. Plus Aurora updates her fork so I'm really happy. Delebile made a huge update as well so I'm on standby to see what will happen with Aurora's fork. I haven't found the time to ask her.

Sent from my Nexus 5
I'm just trying to understand at what point do whatever fork generate "unique" files? One of Delebile's input files is the OTP, which is used to generate unique installation files. If the other forks are not using any input files (including the OTP) then at what point are they becoming unique to that specific console?

I don't know how SafeA9LH works, but for delebile's fork, the generated file is in itself an installer with all the unique files
 

astronautlevel

Well-Known Member
Member
Joined
Jan 26, 2016
Messages
4,128
Trophies
2
Location
Maryland
Website
ataber.pw
XP
5,008
Country
United States
I'm just trying to understand at what point do whatever fork generate "unique" files? One of Delebile's input files is the OTP, which is used to generate unique installation files. If the other forks are not using any input files (including the OTP) then at what point are they becoming unique to that specific console?

I don't know how SafeA9LH works, but for delebile's fork, the generated file is in itself an installer with all the unique files
Aurora wright's fork of a9lh is meant to be used with safea9lh.

The payloads generated by aurora's fork are generic and not console specific. Safea9lhinstaller (which is a generic .3dsx file) then can take these payloads, along with your OTP, and install a9lh.

The main reason this system is used (and is convenient) is that safea9lhinstaller doesn't require you to use your OTP when upgrading a9lh - all you need is the two compiled payload files. Your OTP is only needed for the initial install.
 

Madridi

Card Collector
Member
Joined
May 9, 2008
Messages
3,562
Trophies
2
Age
38
Location
Doha
XP
3,071
Country
Qatar
Aurora wright's fork of a9lh is meant to be used with safea9lh.

The payloads generated by aurora's fork are generic and not console specific. Safea9lhinstaller (which is a generic .3dsx file) then can take these payloads, along with your OTP, and install a9lh.

The main reason this system is used (and is convenient) is that safea9lhinstaller doesn't require you to use your OTP when upgrading a9lh - all you need is the two compiled payload files. Your OTP is only needed for the initial install.
Ah ok that makes a lot of sense, thanks for the explanation.
I don't suppose Delebile's fork can generate the same without the input?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    Xdqwerty @ Xdqwerty: good night