Hacking [RELEASE] 3DS Multi EmuNAND Creator

  • Thread starter Thread starter DarkMatterCore
  • Start date Start date
  • Views Views 172,469
  • Replies Replies 365
  • Likes Likes 44
So I just found this thread and I must say it's very impressive work. I just have a few questions though. Would this work with 2 Gateway Emunands OR 1 Gateway and 1 CFW and how would I go about choosing which emunand to boot? i noticed there was a frontend created but I believe that's for O3DS only and I'm looking for a solution for N3DS/LL.
 
So I just found this thread and I must say it's very impressive work. I just have a few questions though. Would this work with 2 Gateway Emunands OR 1 Gateway and 1 CFW and how would I go about choosing which emunand to boot? i noticed there was a frontend created but I believe that's for O3DS only and I'm looking for a solution for N3DS/LL.

It should be able to work with two GW EmuNANDs, but first, proper multi EmuNAND support would have to be added to current CFWs. I created this tool back when the Palantine CFW was still used, and after nop90 discovered that it was possible to change the RedNAND (NAND format used by Palantine) boot sector by modifying the boot.bin file. This made possible to use both a GW EmuNAND and a Palatine CFW RedNAND on the same SD card.

Nonetheless, the program is able to write more than one GW EmuNAND. Really, it's just a matter of modifying the available CFWs.
 
Question! Is it possible to have two SD Cards, each with emuNAND?
You can have 1 with linked emunand and the other unlinked if you wanted. Format emunand for SD #1 like normal then take it out of 3DS and format sysnand to unlink it, then insert SD #2 and format emunand on it. That way anything you install to sysnand will automatically be on SD #2 Emunand just incase you wanted the ability to do so


It should be able to work with two GW EmuNANDs, but first, proper multi EmuNAND support would have to be added to current CFWs. I created this tool back when the Palantine CFW was still used, and after nop90 discovered that it was possible to change the RedNAND (NAND format used by Palantine) boot sector by modifying the boot.bin file. This made possible to use both a GW EmuNAND and a Palatine CFW RedNAND on the same SD card.

Nonetheless, the program is able to write more than one GW EmuNAND. Really, it's just a matter of modifying the available CFWs.
Yeah. I tried it and it worked with writing more than one GW emunand but I got stuck with booting. Do you happen to know where to start looking besides the boot method because I understand that you're busy with other projects and I'd like to delve into development anyways.
 
Last edited by Arithmatics,
Github source pl0x

GitHub source to what? I have a DS flashcard, but I don't have a GW.

Yeah. I tried it and it worked with writing more than one GW emunand but I got stuck with booting. Do you happen to know where to start looking besides the boot method because I understand that you're busy with other projects and I'd like to delve into development anyways.

rxTools source code would be a good starting point, specially this: https://github.com/roxas75/rxTools/blob/master/rxtools/source/lib/nand.c#L76.
 
  • Like
Reactions: Arithmatics
Thanks @Dean_ !
But before I try this and brick my n3DS, should this work on an n3DS? Looking over the 3DS-multi-emunand source I think the emunand sizes are different for the old and the new 3DS, so if you hardcoded some offsets I don't think it should work.
 
Thanks @Dean_ !
But before I try this and brick my n3DS, should this work on an n3DS? Looking over the 3DS-multi-emunand source I think the emunand sizes are different for the old and the new 3DS, so if you hardcoded some offsets I don't think it should work.
I think it would not work on N3DS. I hardcoded the offset for O3DS.
It would be quite hard to make second emunand without hardcoding some offsets.

Since I don't own an N3DS, I don't have information how much space gateway launcher allocates during formatting emunand.
 
Thanks @Dean_ !
But before I try this and brick my n3DS, should this work on an n3DS? Looking over the 3DS-multi-emunand source I think the emunand sizes are different for the old and the new 3DS, so if you hardcoded some offsets I don't think it should work.

The program isn't going to let you write a New 3DS RedNAND, anyway. This is because the Palantine CFW was only compatible with the Old 3DS.

It would be better if the patch was tweaked to support a 2nd EmuNAND instead of a RedNAND.

I think it would not work on N3DS. I hardcoded the offset for O3DS.
It would be quite hard to make second emunand without hardcoding some offsets.

Since I don't own an N3DS, I don't have information how much space gateway launcher allocates during formatting emunand.

If you tell me how, I can help you create the patch, since the required offsets are already stored/calculated in my program.
 
Last edited by DarkMatterCore,
  • Like
Reactions: Arithmatics
Last edited by DarkMatterCore,
Assuming the code actually uses sector numbers instead of physical offsets, changing the orig_sector value from 0x00000000 to 0x00400000 (2 GiB / 512) will most likely work for New 3DS. If not, then just using 0x80000000 should suffice.

The GW Launcher allocates 2 GB for the New 3DS NAND dumps.

That is indeed correct, I have managed to boot into a second emunand using the 0x00400000 offset. However, as of right now, for some reason, I can't install cias to any of the nands (neither SysNAND nor EmuNAND). This is likely an issue on my end, but I'll post some files after I get this sorted out.
Edit: yup, I was using the 9.5 firmware file and cias don't work on that one. Switching to 9.2 does solve that problem, but that breaks EmuNAND support ...
 
Last edited by robb4,
That is indeed correct, I have managed to boot into a second emunand using the 0x00400000 offset. However, as of right now, for some reason, I can't install cias to any of the nands (neither SysNAND nor EmuNAND). This is likely an issue on my end, but I'll post some files after I get this sorted out.
Edit: yup, I was using the 9.5 firmware file and cias don't work on that one. Switching to 9.2 does solve that problem, but that breaks EmuNAND support ...
Are we a step closer to 2 emunands on N3DS?
 
  • Like
Reactions: DarkMatterCore
Are we a step closer to 2 emunands on N3DS?
Yes, I have successfully booted in 2 different EmuNANDs on the same SD card, but not being able to install cias is quite a major bummer for me.

Update: now that ReiNAND supports Ninjhax 2.x ( https://gbatemp.net/threads/source-code-reinand-with-brahma2loader-ninjhax-2-x-support-fw-9-2.399312 - thanks @d0k3 !) I wrote a small PoC patch for dual EmuNAND support, in which I hijacked the boot to SysNAND to start the second EmuNAND on the SD card.
I think it should work like this (I haven't tested it properly yet :sleep:): pressing Start boots second EmuNAND, Start + B boots first EmuNAND, and if no valid partition is found while booting it should default to SysNAND.
The patch is in a diff format, you'll have to apply it to @d0k3's ReiNAND sources and rebuild it.

Note: when creating the EmuNANDs with Multi EmuNAND Creator they will be linked, so you'll have to use the folder trick in order to differentiate them (I wasted quite a bit of time before realizing this, I kept changing themes :mellow:).
 

Attachments

Last edited by robb4,
  • Like
Reactions: Arithmatics
Yes, I have successfully booted in 2 different EmuNANDs on the same SD card, but not being able to install cias is quite a major bummer for me.

Update: now that ReiNAND supports Ninjhax 2.x ( https://gbatemp.net/threads/source-code-reinand-with-brahma2loader-ninjhax-2-x-support-fw-9-2.399312 - thanks @d0k3 !) I wrote a small PoC patch for dual EmuNAND support, in which I hijacked the boot to SysNAND to start the second EmuNAND on the SD card.
I think it should work like this (I haven't tested it properly yet :sleep:): pressing Start boots second EmuNAND, Start + B boots first EmuNAND, and if no valid partition is found while booting it should default to SysNAND.
The patch is in a diff format, you'll have to apply it to @d0k3's ReiNAND sources and rebuild it.

Note: when creating the EmuNANDs with Multi EmuNAND Creator they will be linked, so you'll have to use the folder trick in order to differentiate them (I wasted quite a bit of time before realizing this, I kept changing themes :mellow:).
Would you mind giving me an already built version via PM because I don't even know how to add and build things in github yet.
 

Site & Scene News

Popular threads in this forum