Homebrew ARM9Loader -- Technical Details and Discussion

  • Thread starter Thread starter Selver
  • Start date Start date
  • Views Views 579,211
  • Replies Replies 4,025
  • Likes Likes 42
After some weeks we will have a whole host of new additions, and most likely 100% working official support from current CFWs.

I couldn't figure out my dodgy theme issues on emunand, so I just formatted my sd card, removing emunand, copied back my files and will sit on sysnand 9.2 for now. Ultimately I want to be using sysnand anyway, with some sort of protection built into a payload that can load a nand restore app (possibly on holding a button or something).
Yeah, I don't think we'll be seeing work on sysNAND until we get a way to backup/restore the NAND with Arm9Hax. That way, incase you brick your sysNAND, you won't need a hardmod.
 
Yeah, I don't think we'll be seeing work on sysNAND until we get a way to backup/restore the NAND with Arm9Hax. That way, incase you brick your sysNAND, you won't need a hardmod.

Even just restore is fine. I mean alllll of us should have a sysnand 9.2 backup right now anyway, right? ;)

I think the big issue is the LCD screen not working on boot. I assume this will have to be fixed before it's even a possibility to get an app to boot to do restoring. Unless it is something very primitive where the screen can be black, and you're simply instructed to have sysnand.bin on the root and push A to do a restore. Then obviously wait 15~20 mins. Without a progress bar though this is a risky process.
 
Last edited by Audioboxer,
  • Like
Reactions: Supster131
I successfully made my OLD 3ds boot into emunand using this fork of cakesfw (https://github.com/fox8091/CakesForA9LH)

Of course you have to trim 0x12000 bytes of Cakes.dat.

Also when you boot, both screen will remain black.

But CakesFW configuration is still working behind black screen.

Just memorize the key stroke which checks patches and toggles autoboot before installing arm9loaderhax and press that key storke after the installation)
(↓ -> A -> A -> ↓ -> A -> ↓ -> A -> B -> ↓ -> ↓ -> A -> A-> A -> B -> B -> A)

Don't apply 4th patch of CakesFW.

Just use "make build/main.bin" and use that file as arm9loaderhax.bin.
 
Last edited by mid-kid,
I'm trying to do something like bootctr on arm9, but I have problems to get reading the bootctr ini file working.
If somebody wants to help me, the first implementation try with very crappy code is in the bootloader branch of my arm9loaderhax fork.
Don't fork arm9loaderhax to add your custom payload... I mean, seriously. Do a Brahma payload, as arm9loaderhax can run these, but please, PLEASE, don't edit arm9loaderhax.
 
After several hours I've managed to dump the OTP on my N3DS as well, and got my build environment working. Python 2.7 is a such a pain.

I would test my installer right now, but I'd rather wait for a way to undo the process without restoring a whole NAND backup. It's possible to back up and restore FIRM0 and FIRM1 through Decrypt9, but no such thing exists for the 0x96 sector yet.
Is anything like that in the works yet?
 
After several hours I've managed to dump the OTP on my N3DS as well, and got my build environment working. Python 2.7 is a such a pain.

I would test my installer right now, but I'd rather wait for a way to undo the process without restoring a whole NAND backup. It's possible to back up and restore FIRM0 and FIRM1 through Decrypt9, but no such thing exists for the 0x96 sector yet.
Is anything like that in the works yet?
"undoing" the process would be the worst thing ever to do, actually. Just flash your NAND backup. It'll be cleaner, you'll have less chances to brick, and it won't cause fragmentation on your NAND.
 
Last edited by Mrrraou,
"undoing" the process would be the worst thing ever to do, actually. Just flash your NAND backup. It'll be cleaner, you'll have less chances to brick, and it won't cause fragmentation on your NAND.
Isn't the only way to restore a NAND backup with Arm9Hax is to use a hardmod? Since Decrypt9 currently doesn't work with a9lh.
 
Isn't the only way to restore a NAND backup with Arm9Hax is to use a hardmod? Since Decrypt9 currently doesn't work with a9lh.
I guess that some payloads will be done for this. Just wait a bit for screen init, and I guess Decrypt9 will work. And, Decrypt9 actually works. It's just that you can't see the menus.
 
Don't fork arm9loaderhax to add your custom payload... I mean, seriously. Do a Brahma payload, as arm9loaderhax can run these, but please, PLEASE, don't edit arm9loaderhax.
Its much more work to load a payload to same same address the own payload is loaded to, than simply loading the bootloader to another address.
That's why I'm doing it this way atm. I would have to fix more than one problem at once if I'm simply doing it with a brahma payload, or I would need to add a arm9loaderhax.bin that loads the bootloader to another address. Don't know what's better atm, since only devs should use a9lh atm.
 
"undoing" the process would be the worst thing ever to do, actually. Just flash your NAND backup. It'll be cleaner, you'll have less chances to brick, and it won't cause fragmentation on your NAND.
Is the 3DS's eMMC really slow enough to make fragmentation cause a considerable performance impact?
 
Is the 3DS's eMMC really slow enough to make fragmentation cause a considerable performance impact?
Thought you were talking about "undoing" the downgrade, sorry.

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

Its much more work to load a payload to same same address the own payload is loaded to, than simply loading the bootloader to another address.
That's why I'm doing it this way atm. I would have to fix more than one problem at once if I'm simply doing it with a brahma payload, or I would need to add a arm9loaderhax.bin that loads the bootloader to another address. Don't know what's better atm, since only devs should use a9lh atm.
I don't want to reinstall arm9loaderhax again to implement a custom bootloader, that I can't update easily when screen init will be done. (and as I don't have hardmod...)
 
Thought you were talking about "undoing" the downgrade, sorry.

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


I don't want to reinstall arm9loaderhax again to implement a custom bootloader, that I can't update easily when screen init will be done. (and as I don't have hardmod...)
I will add a bootloader loader, so people without hardmod won't need to install it again.
Edit:
But it should be possible to add the screen init stuff to it after its sone, thats one of the reason, why I directly added it directly to arm9loaderhax, because its easier to the new changes to the bootloader, than adding it to the sector, because you would need to install it again for this.
 
Last edited by RednaxelaNnamtra,
N3ds XL successfully downgraded to 2.1.0 following the guide (no hardmod btw :D). Now I'm waiting for the second time for a9f.bin to be created on SD card.What size should be? The browser is flashing for the last 5 minutes,the first time I just stopped it and the file was just 1kb on the card.
 
N3ds XL successfully downgraded to 2.1.0 following the guide (no hardmod btw :D). Now I'm waiting for the second time for a9f.bin to be created on SD card.What size should be? The browser is flashing for the last 5 minutes,the first time I just stopped it and the file was just 1kb on the card.
Wrong topic: http://gbatemp.net/threads/otp-guide.415140
The OTP is just 256 bytes.
 
  • Like
Reactions: Ntrack
N3ds XL successfully downgraded to 2.1.0 following the guide (no hardmod btw :D). Now I'm waiting for the second time for a9f.bin to be created on SD card.What size should be? The browser is flashing for the last 5 minutes,the first time I just stopped it and the file was just 1kb on the card.

0x100, or 256 bytes.
 
  • Like
Reactions: Ntrack and Mrrraou
N3ds XL successfully downgraded to 2.1.0 following the guide (no hardmod btw :D). Now I'm waiting for the second time for a9f.bin to be created on SD card.What size should be? The browser is flashing for the last 5 minutes,the first time I just stopped it and the file was just 1kb on the card.
You're fine. Windows shows the file as 1KB. If you click on properties you'll see the file is actually 256 bytes.
 

Site & Scene News

Popular threads in this forum