Homebrew ARM9Loader -- Technical Details and Discussion

  • Thread starter Thread starter Selver
  • Start date Start date
  • Views Views 579,160
  • Replies Replies 4,025
  • Likes Likes 42
Is incredibly easy. I did a brand new 10.2 out of the box n3ds yesterday from stock to a9lhax in about 3 and a half hours, although I suppose I have an advantage since I wrote the thing :P

Most people will probably take more like 4-5 hours, depending. Bricks are pretty much gone now with the updated scripts, just follow all instructions and if you see any errors or anything stop and ask for help.

Got my O3DS downgraded so I'm gonna give it a go first to get a feel for how it runs rather than dive head first into the process on my N3DS
 
Got my O3DS downgraded so I'm gonna give it a go first to get a feel for how it runs rather than dive head first into the process on my N3DS
O3ds is easier than n3ds, especially do emunand method then install over sysnand, n3ds has the script now so both are pretty easy todo remember to remove sdcard if you get a black scrreen after downgrade
 
Here is the new version of my bootloader: Alpha 0.3
I readded the original splashscreen support, added screen init(if not already enabled) and the debug output will be printed to the bottom screen(I will add an option to set the debug mode later). Its also possible to delay the key input reading, to allow a later selection(I will add something that uses the splashscreens and input delay more produktiv later).
 
Last edited by RednaxelaNnamtra,
Here is the new version of my bootloader, I readded the splashscreen support, added screen init(if not already enabled) and the debug output will be printed to the bottom screen(I will add an option to set the debug mode later). Its also possible to delay the key input reading, to allow a later selection(I will add something that uses the splashscreens and input delay more produktiv later).
Alpha 0.3
invalid link
 
Here is the new version of my bootloader: Alpha 0.3
I readded the original splashscreen support, added screen init(if not already enabled) and the debug output will be printed to the bottom screen(I will add an option to set the debug mode later). Its also possible to delay the key input reading, to allow a later selection(I will add something that uses the splashscreens and input delay more produktiv later).
No more snow :yay3ds:
 
From the OTP dump tutorial:

After version 3.0.0-X, Nintendo switched to locking this region using the register CFG_SYSPROT9, which also locks the bootloader and is set extremely early in boot, long before we are able to gain code execution. This register can be set exactly once, and cannot be switched off until the unit is fully powered off, and therefore it is impossible to dump the full OTP without a version 2.1.0-X or below.


I tried to find out more about this, as it relates to 2.1.0 and below firmware. Does CFG_SYSPROT9 not get set at all, and if so, how is the bootloader locked out if CFG_SYSPROT9 is not used?
 
Here is the new version of my bootloader: Alpha 0.3
I readded the original splashscreen support, added screen init(if not already enabled) and the debug output will be printed to the bottom screen(I will add an option to set the debug mode later). Its also possible to delay the key input reading, to allow a later selection(I will add something that uses the splashscreens and input delay more produktiv later).

Nice work. Finally got around to compiling your version of A9LH. Feels awesome to finally be rid of HBL for good. That and having one file on the root of the SD fixes that OCD.
Looking forward to the options to hide the debug text. Can you also add an option to ignore the splash all together? (Right now have a reiNAND splash that I've been happy with - I generally like just having the Rei logo splash and then straight to emunand.)
 
Damn.

Seems a lot of the development for the various cfws has shifted to a9lh, which sucks because that means an exponentially greater risk of bricks for any user who is unable to install or acquire a hardmod.
In all honesty I feel like downgrading to 9.2 the first time around was more risky than getting your OTP is. I would go for it.
 
From the OTP dump tutorial:

After version 3.0.0-X, Nintendo switched to locking this region using the register CFG_SYSPROT9, which also locks the bootloader and is set extremely early in boot, long before we are able to gain code execution. This register can be set exactly once, and cannot be switched off until the unit is fully powered off, and therefore it is impossible to dump the full OTP without a version 2.1.0-X or below.


I tried to find out more about this, as it relates to 2.1.0 and below firmware. Does CFG_SYSPROT9 not get set at all, and if so, how is the bootloader locked out if CFG_SYSPROT9 is not used?

CFG_SYSPROT9 is used to protect the bootloader on all versions, but it also protects the OTP after v2.1.0
 
  • Like
Reactions: peteruk
Nice work. Finally got around to compiling your version of A9LH. Feels awesome to finally be rid of HBL for good. That and having one file on the root of the SD fixes that OCD.
Looking forward to the options to hide the debug text. Can you also add an option to ignore the splash all together? (Right now have a reiNAND splash that I've been happy with - I generally like just having the Rei logo splash and then straight to emunand.)
Maybe I will add a generell disable function, but I will try to add a feature, which allows you to select the payload you want to run, while showing the splashscreen. this should work in this way:
While booting it will wait for an input some s/ms(it will be configurable) and if you press a button it will load the splash of the selected application and reset the counter. If you press an other key, with payload configuration, it will change the shown splash screen and again reset the timer. This should allow people to easy correct a wrong pressed button.
I will make it configurable too, so nobody will be forced to use this feature. But first I will clean up the source code a bit more and will try to let the source be more in sync with the normal bootctr source, so maybe fixes to bootctr will be added faster to bootctr9.
 
  • Like
Reactions: klear and peteruk
Maybe I will add a generell disable function, but I will try to add a feature, which allows you to select the payload you want to run, while showing the splashscreen. this should work in this way:
While booting it will wait for an input some s/ms(it will be configurable) and if you press a button it will load the splash of the selected application and reset the counter. If you press an other key, with payload configuration, it will change the shown splash screen and again reset the timer. This should allow people to easy correct a wrong pressed button.
I will make it configurable too, so nobody will be forced to use this feature. But first I will clean up the source code a bit more and will try to let the source be more in sync with the normal bootctr source, so maybe fixes to bootctr will be added faster to bootctr9.
Works great this version. Splash screen works great with rei mod. I noticed on debug text it says splash not found. So is there a pre cfw launch splash too. What name should it be if there is.
 
  • Like
Reactions: peteruk
Maybe I will add a generell disable function, but I will try to add a feature, which allows you to select the payload you want to run, while showing the splashscreen. this should work in this way:
While booting it will wait for an input some s/ms(it will be configurable) and if you press a button it will load the splash of the selected application and reset the counter. If you press an other key, with payload configuration, it will change the shown splash screen and again reset the timer. This should allow people to easy correct a wrong pressed button.
I will make it configurable too, so nobody will be forced to use this feature. But first I will clean up the source code a bit more and will try to let the source be more in sync with the normal bootctr source, so maybe fixes to bootctr will be added faster to bootctr9.

That sounds great. By default the Rei splash loads anyway since the binary itself looks for it. I guess what I meant was the BootCTR splash that flashes every so briefly along with the debug text. (Adding an option to disable both would be great!)
 

Site & Scene News

Popular threads in this forum