Tutorial  Updated

Multiple emuMMC setup, including restoring a clean NAND for online use

I know there are several topics about setting up the emuMMC, but I decided to publish this tutorial because people keep asking about the creation / recognition of multiple emuMMC in Hekate.

The purpose of this tutorial is to provide an easy way to setup two (or more) emuMMC, being one of them your emulated clean backup, THAT IS ABLE TO RUN ONLINE (clean emuMMC) and the other an emulated copy of your current real sysnand (dirty emuMMC).

Your real sysnand must be maintained at the lowest firmware possible, so you can start Hekate without a dongle (DejaVu is already a reality from 1.0.0 to 4.0.1).

At first I tried this steps when going for an Android + 2 emuMMC setup but Android didn't boot, so I advise following this tutorial only for a multiple emuMMC setup.

P.S. From 5.2.0 on Hekate introduced a "SD Card Partition Manager", wich allows the selection of up to 2 emuMMC + Linux + Android (I didn't try it yet).

I had some trouble flashing the NANDs with Windows applications so I used a virtual machine (Oracle VM VirtualBox) + a Linux distro (Linux Mint) because in my opinion it handles better formatting / resizing partitions (with Gparted Live) and flashing NAND backups to specific partitions (with the dd command line tool).

Some people (@annson24 and @ben_dover) reported they were able to format / resize using Minitool Partition Wizard or DiskGenius and to flash using dd for Windows, so I included their instructions.

How to:

1. Delete all partitions from the SD card.

2. Create three partitions using your prefered application:

- first: SD card data, wich is recommend to be FAT32 (for homebrew). This partition size = SD card total size – (2x 29856 MB)
- second: emuMMC1 = RAW1, with exactly 29856 MB (if using Gparted Live: may be unformatted, but not unallocated)
- third: emuMMC2 = RAW2, with exactly 29856 MB (if using Gparted Live: may be unformatted, but not unallocated)

3. Join the files BOOT0, BOOT1 and RAWNAND.bin of your clean NAND backup:

- Linux: cat BOOT0 BOOT1 rawnand.bin > emummc.bin
- Windows: copy /b BOOT0+BOOT1+rawnand.bin emummc.bin

4. This is the key step: you have to flash that big file (emummc.bin) to the THIRD partition of your SD card (emuMMC2) using dd.

Linux
Run a terminal and type the following dd command:

sudo dd if=/media/sf_Shared_Folder/emummc.bin of=/dev/sdb3 bs=512M status=progress

P.S.1 The "if" path is MY Linux Mint shared folder path, you need to use your emummc.bin location
P.S.2 The "of" path is MY third SD card partition, you can check your driver identifier on Gparted Live (mine was "b")

Windows
1. Copy dd.exe (or ddrelease64.exe) to a folder of your choosing (I put it directly in C:\)
2. Disable your anti-virus software (it may prevent dd from having write access to the SD card)
3. Run diskmgmt.msc (Windows Disk Management) and find your SD card. Take note of the Disk # associated to it. This will help you with your dd command.
4. Right-click on your SD card FAT32 partition and select “Change Drive Letter…”. Remove the driver letter associated to it. This is equivalent to unmounting the drive. (not sure if this is needed to prevent access issues for dd but I did this step)
5. Open a command prompt window as an administrator and go to the folder where your dd.exe is located
6. Type the command “dd --list”. This will show all drives and partitions on your computer. Scroll down towards the bottom of the generated list and look for a Device with the Harddisk # you have taken note of earlier in Windows Disk Management. This Device will have 3 partitions: your FAT32 partition and the two RAW partitions. To confirm you are looking at the right Device, the two raw partitions will have the same size. The partition you want to dd to will be Partition3
7. Type the command to flash your emummc.bin to the RAW partition on your SD card:
“dd bs=512M if=drive:\folder\emummc.bin of=\\?\Device\Harddisk#\Partition3 --progress”

Here’s an example of the command with actual parameters:
“dd bs=512M if=c:\Nintendo_Switch_backup\emummc.bin of=\\?\Device\Harddisk3\Partition3 --progress”
- If you are using ddrelease64.exe replace “dd” in the command by “ddrelease64”

5. Grab your SD card, insert it on the Switch, start Hekate, tap emuMMC and then "Migrate emuMMC": voilà, now you have RAW2!

6. For the RAW1 select "Create emuMMC" > "SD partition" (this emuMMC will be an emulated copy of your current sysnand)

----------

In my case (stock firmware = 1.0.0):

- Turn on the Switch (no dongle)
- Reswitched link in the News (installed by Fake News) starts PegaScape
- Nereba takes me to Hekate
- From there I choose between RAW1 and RAW2

Hekate showing installed RAW1 and RAW2:
raw1-2.jpg

RAW1 Home screen
(emuMMC1, dirty, 90DNS, updated using ChoiDujourNX)
raw1.jpg

RAW2 Nintendo Shop
(emuMMC2, clean, no 90DNS, updated using Nintendo official servers)
raw2.jpg



*** Last system tested/working online: clean emuMMC 11.0.1 x Atmosphere 0.16.1 pre-release ***

Common concerns:

1. Even in the clean emuMMC Atmosphere is running in the background.
Simply running Atmosphere isn't a problem and doesn't generate a ban.

E.g. : If you check your system's version, Atmosphere's version will appear next to it ; you can access Hbmenu through Album ; in my case even the BootSoundNX sysmodule sound plays at startup (that hang is expected, I should use a shorter sound sample).

2. You don't need to move any files from your SD card when choosing one of the two emuMMC.
I have Kosmos Toolbox, Tesla, sysmodules and overlays in storage.

3. Fuses burn when updating + booting the real sysnand.
We are using the real sysnand only to start Hekate = no fuses burnt.

With that in mind I suggest:
- turning off nogc in Atmosphere and Hekate (there's no use for it)
- deleting any sysnand boot setup from hekate_ipl.ini (there's no use for it)

4. Apparently the burnt fuse count isn't sent to Nintendo.
I've had this configuration for several months now and my real sysnand is 1.0.0 = one burnt fuse.

Additional tips:

1. To facilitate switching between emuMMC configure Power options > Restart to initiate Hekate:
- confirm this is in atmosphere > config > system_settings.ini: power_menu_reboot_function = str!payload
- use Hekate's payload as your reboot_payload.bin in atmosphere's folder.

2. I recommend using latest "pure" Hekate and Atmosphere + only this patches: https://github.com/ITotalJustice/patches/releases

3. Change the emuMMC's backgrounds so you don't confuse them.

4. Change the dirty emuMMC's DNS (I use 90dns).
I didn't try Atmosphere's "blanking PRODINFO" new option because I think it will prevent online use on the clean emuMMC.

5. ChoiDujourNX only works in applet mode (to update the dirty emuMMC's firmware)

6. After updating the clean emuMMC make a new backup and delete the older one.
Hekate still can only backup the first 0xE0 partition that it finds (RAW1) so the easiest way to backup RAW2 is using dd, inverting the source and destination locations. In my case (for RAW2 = third partition):

- flash emuMMC: sudo dd if =/media/sf_Shared_Folder/emummc.bin of=/dev/sdb3 bs=512M status=progress
- backup emuMMC: sudo dd if =/dev/sdb3 of =/media/sf_Shared_Folder/emummc.img bs=512M status=progress

The extension (I used .img) probably doesn't matter, and may not even be needed.
I tested the generated file on NXNandManager (https://github.com/eliboa/NxNandManager) and it was recognized perfectly.

7. My clean emuMMC only booted with fusee-secondary. The dirty one was ok with fusee-primary, and I highly recommend its use because it allows Tinfoil to work.

8. Here's my simple and functional hekate_ipl.ini:

[config]
autoboot=0
autoboot_list=0
autohosoff=0
autonogc=0
backlight=100
bootwait=3
updater2p=0
verification=1

[CFW]
emummcforce=1
emupath=emuMMC/RAW1
payload=bootloader/payloads/fusee-primary.bin
icon=bootloader/res/atmosphere.bmp
logopath=bootloader/bootlogo.bmp
{}

[OFW]
emummcforce=1
emupath=emuMMC/RAW2
fss0=atmosphere/fusee-secondary.bin
icon=bootloader/res/icon_switch_custom.bmp
logopath=bootloader/bootlogo.bmp
{}
 
Last edited by kassio69,

Jhonfer21

Member
Newcomer
Joined
Jun 20, 2020
Messages
13
Trophies
0
Age
29
XP
98
Country
Colombia
In the end I couldn't do the memory format. (I think it is failing) my question is to do hekate emumc with SD FILE. having the 2 emummc.
since the files remain in memory. Can I officially go through the upgrade process for a clean Nintendo console? and the other emummc with pirate games. ? I don't want my original system to be banned or updated WhatsApp Image 2020-06-22 at 1.45.20 PM.jpegWhatsApp Image 2020-06-22 at 1.43.39 PM.jpegWhatsApp Image 2020-06-22 at 1.44.51 PM.jpeg
 

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
80
Trophies
1
XP
1,137
Country
Brazil
In the end I couldn't do the memory format. (I think it is failing) my question is to do hekate emumc with SD FILE. having the 2 emummc.
since the files remain in memory. Can I officially go through the upgrade process for a clean Nintendo console? and the other emummc with pirate games. ? I don't want my original system to be banned or updated

It doesn't matter if you use SD raw partitions or SD file based (when I wrote the tutorial the latter was not recommended).
If you’re flashing a really clean NAND it’s okay to update in the official way.
Just don't forget to do a new backup then, and only use the NAND with the original firmware to create dirty emuMMCs from now on.
 

PSxed

Well-Known Member
Member
Joined
Aug 28, 2014
Messages
113
Trophies
0
Age
36
XP
457
Country
Netherlands
I'm trying to find a way to create two emunand partitions on my 512gb. One for my 5 year old son and one for me. Since Nintendo doesn't offer seperate user accounts, this seems like the next perfect option. Thanks for the guide!
 
  • Like
Reactions: dgold and kassio69

Andalitez

Well-Known Member
Member
Joined
Jul 2, 2018
Messages
507
Trophies
0
Location
Final Space
XP
1,299
Country
United States
I'm trying to find a way to create two emunand partitions on my 512gb. One for my 5 year old son and one for me. Since Nintendo doesn't offer seperate user accounts, this seems like the next perfect option. Thanks for the guide!
File based partitions are now working really well.
Have you considered creating two of those?
 

PSxed

Well-Known Member
Member
Joined
Aug 28, 2014
Messages
113
Trophies
0
Age
36
XP
457
Country
Netherlands
File based partitions are now working really well.
Have you considered creating two of those?
They do? No i haven't, since my switch knowledge is still stuck in 2019 and i was assuming that a file based system wasn't an option. Thanks for the heads up, gonna experiment with that later tonight.
 

smoothie_time

Member
Newcomer
Joined
Sep 12, 2020
Messages
5
Trophies
0
Age
24
XP
53
Country
United States
How did you originally set up cfw? I am thinking about buying a unpatched switch and I am kinda new to this. How would I go about setting up cfw to then run two EmuMMC's?
 

PSxed

Well-Known Member
Member
Joined
Aug 28, 2014
Messages
113
Trophies
0
Age
36
XP
457
Country
Netherlands
@kassio69 I have it somewhat working thanks to your guide. I only have a slight problem and that is that i can't boot a specific emummc partition using my own hekate_ipl.ini config.

I have to pick the either one of the partitions through the hekate "emmumc" option. And after that both options in my hekate_ipl.ini will boot that specific emummc i've chosen.

Any idea what the problem is? I already tried deleting the "emummc.ini" that is generated when picking an emummc partition. I thought it was maybe overruling my hekate ini but it isn't.

My hekate_ipl.ini is as follow:
Code:
[config]
autoboot=0
autoboot_list=0
autohosoff=0
autonogc=0
backlight=100
bootwait=3
updater2p=0
verification=1


[Son]
emummcforce=1
emupath=emuMMC/RAW1
payload=bootloader/payloads/fusee-primary.bin
icon=bootloader/res/atmosphere.bmp
logopath=bootloader/bootlogo.bmp

[Psxed]
emummcforce=1
emupath=emuMMC/RAW2
payload=bootloader/payloads/fusee-primary.bin
icon=bootloader/res/atmosphere.bmp
logopath=bootloader/bootlogo.bmp
 

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
80
Trophies
1
XP
1,137
Country
Brazil
@kassio69Any idea what the problem is? I already tried deleting the "emummc.ini" that is generated when picking an emummc partition. I thought it was maybe overruling my hekate ini but it isn't.
[/code]

That's strange, it was fixed on Hekate 5.2.1. Read here:
https://github.com/CTCaer/hekate/issues/401
https://github.com/CTCaer/hekate/issues/421

And as the dev commented: "The emupath= overrides the emummc.ini in ram".

Are you using latest Hekate?
Are you sure you are really booting the same emuMMC?
Try changing the background color in one of them and test it.
The SD card contents (homebrews, general files) will be the same but that doesn't mean you are running the same emuMMC.
 

PSxed

Well-Known Member
Member
Joined
Aug 28, 2014
Messages
113
Trophies
0
Age
36
XP
457
Country
Netherlands
That's strange, it was fixed on Hekate 5.2.1. Read here:
https://github.com/CTCaer/hekate/issues/401
https://github.com/CTCaer/hekate/issues/421

And as the dev commented: "The emupath= overrides the emummc.ini in ram".

Are you using latest Hekate?
Are you sure you are really booting the same emuMMC?
Try changing the background color in one of them and test it.
The SD card contents (homebrews, general files) will be the same but that doesn't mean you are running the same emuMMC.

I picked two different user profile images so that i didn't get confused. But it's showing the exact behaviour i wrote in my other post. I'll try again later tonight since now i'm sure that emummc.ini should do nothing if there is an emupath declerated in my hekate ini. I reinstalled my whole switch last sunday with Atmoshpere 0.14.2 and Hekate 5.3.2. I see that there have been minor version updates in the meantime.

Do you see anything wrong with my ini file? The only difference i see is that i'm not ending them with empty brackets {} like you did in the OP. Currently at work so i can't test it out now but i don't think an empty object should make a difference.

edit: funny i just read issue 421 where CTCaer states the following:

"As you can see, I also added emummcforce=1.
In case something goes wrong or the folders get deleted, this disallows hekate to continue.
Useful when you don't want to automatically boot in sysnand CFW if emummc is not found.".

When i delete emummc.ini i boot into sysnand when selecting one of my two emummc options. I'm stating emummcforce=1 so that shouldn't happen, but it does. I think there is something wrong with my ini.
 
Last edited by PSxed,

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
80
Trophies
1
XP
1,137
Country
Brazil
Do you see anything wrong with my ini file? The only difference i see is that i'm not ending them with empty brackets {} like you did in the OP.

Try adding those brackets and tell me later, I don't see anything else wrong.
Did you check on System if you are really running the real sysnand x an emuMMC?
 

PSxed

Well-Known Member
Member
Joined
Aug 28, 2014
Messages
113
Trophies
0
Age
36
XP
457
Country
Netherlands
@kassio69 I finally had some time to try and solve my problem. First thing i did was updating Atmosphere and Hekate to the latest version. After that i modified my ini to the following:
Code:
[Son]
payload=bootloader/payloads/fusee-primary.bin
emupath=emuMMC/RAW1
emummcforce=1
{}

[Psxed]
payload=bootloader/payloads/fusee-primary.bin
emupath=emuMMC/RAW2
emummcforce=1
{}

Still the same problem. My boot config only respects the emummc that i manually set in Hekate. After browsing Gbatemp i found some new sigpatches that are compatible with the fusee-secondary payload. This way i can use fss0 as my boot option. I changed my ini to the following:
Code:
[Son]
fss0=bootloader/payloads/fusee-secondary.bin
emupath=emuMMC/RAW1
emummcforce=1
{}

[Psxed]
fss0=bootloader/payloads/fusee-secondary.bin
emupath=emuMMC/RAW2
emummcforce=1
{}

Tada and now it's working perfectly. I still don't have a clue why the first method doesn't work? A minor setback but atleast i have it running now. Thank you very much for the guide. If you have a Paypal address i'll treat you to a beer lol.
 
Last edited by PSxed,

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
80
Trophies
1
XP
1,137
Country
Brazil
Tada and now it's working perfectly. I still don't have a clue why the first method doesn't work? A minor setback but atleast i have it running now. Thank you very much for the guide. If you have a Paypal address i'll treat you to a beer lol.

That's odd..

In my case the clean emuMMC only boots with "fss0=bootloader/payloads/fusee-secondary.bin", but the dirty emuMMC is ok with "payload=bootloader/payloads/fusee-primary.bin".
I see no reason for you not to be able to boot any of the emuMMC with fusee-primary.

Well, problably that's not a big problem.. only limitation I can think of is that you'll be unable to use Tinfoil.

I would still check a couple of things:
- If your bootloader > payloads > fusee-primary.bin is really the latest one (same version of your Atmosphere)
- If you are using only the latest fusee-primary sigpatches (https://gbatemp.net/attachments/ams-sigpatches-0-14-4-cfw-10-2-0-zip.225147/)
*** Delete older versions of the sigpatches
*** I also keep the "default_nogc" patches from latest Atmosphere on my SD card (don't know if that matters)

If you get it to work I'll accept the beer!
 

nexis

New Member
Newbie
Joined
Apr 3, 2016
Messages
4
Trophies
0
XP
52
Country
Gambia, The
Hi, thanks for your great tutorial. I've got a question regarding the atmosphere config. You mention to use a 'pure' atmosphere & hekate. The 'pure' atmosphere config still contains commented lines, which means no configured settings. Is that fine for online usage? Or do we need some things there configured?
 

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
80
Trophies
1
XP
1,137
Country
Brazil
Hi, thanks for your great tutorial. I've got a question regarding the atmosphere config. You mention to use a 'pure' atmosphere & hekate. The 'pure' atmosphere config still contains commented lines, which means no configured settings. Is that fine for online usage? Or do we need some things there configured?

I meant pure and not a "packaged" version of it (Kosmos, BPack, Deep Sea, etc).
It' ok to go online with the default Atmosphere config.

These two lines on system_settings.ini are useful:

[atmosphere]
power_menu_reboot_function = str!payload
enable_deprecated_hid_mitm = u8!0x1

And these two on exosphere.ini (the reason is explained on the original post):

[exosphere]
blank_prodinfo_sysmmc=0
blank_prodinfo_emummc=0
 

Sperry

Member
Newcomer
Joined
Nov 6, 2019
Messages
13
Trophies
0
Age
40
XP
103
Country
United States
Sorry to be asking for handholding, but I just can't seem to get this working.

Quite a while back, I created 3 partitions. The first was FAT32 for homebrew and such. Then, 2 partitions for emuMMC.

I dded both emuMMC partitions with the same emummc.bin. (Yes, that's slightly different than the instructions. But this was over a year ago, before this thread existed). When I did a migrate emuMMC, it set up the 1st (RAW1) partition, not the 2nd (RAW2) one.

Now, I just can't seem to get it to migrate the 2nd (RAW2) partition. According to these instructions, it seems like it should have set up only RAW2, not RAW1, but instead I have only RAW1.

I haven't edited hekate_ipl.ini in any way. It seems like it's not necessary?

Hoping someone can help, I'm completely out of ideas here.
 

Sperry

Member
Newcomer
Joined
Nov 6, 2019
Messages
13
Trophies
0
Age
40
XP
103
Country
United States
I can answer my own question. I was simply able to choose "Create emuMMC" > "SD partition" and then choose Part 2 to set up my RAW 2. Seems like you can do it in either order.

Conceptually, I'm not sure why you don't just Create emuMMC for 2 partitions instead of creating 1 and migrating another one, but I'm set here.
 

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
80
Trophies
1
XP
1,137
Country
Brazil
Now, I just can't seem to get it to migrate the 2nd (RAW2) partition. According to these instructions, it seems like it should have set up only RAW2, not RAW1, but instead I have only RAW1.

I wrote the tutorial teaching how to create two partitions at that time, and you had to dd only the second partition initially (you were unable to do so just because you didn't follow the instructions).

I can answer my own question. I was simply able to choose "Create emuMMC" > "SD partition" and then choose Part 2 to set up my RAW 2. Seems like you can do it in either order.

I believe that the latest versions of Hekate allow the creation of partitions in any order, which makes life easier for users.
 

tNz

Member
Newcomer
Joined
Aug 4, 2018
Messages
6
Trophies
0
Age
34
XP
184
Country
Germany
Does anyone know the error code "2154-2005 error during data transfer"? I restored the backup from my clean sysnand and set up two emummc.

My Sysnand still has version 4.1.0. I installed the latest firmware on one of the two Emummc (Nintendo Servers). With this Emummc I went online.I can also add my friends online, but only see them as offline. Also, I sometimes get the said error code (2154-2005) when, for example, I update my friends list. I can currently play online without any problems.
Does this error code have perhaps anything to do with a future ban?


/edit
Nvm, I solved my Problem. Just factory reset my Emummc.
 
Last edited by tNz,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • ZeroT21 @ ZeroT21:
    it wasn't a question, it was fact
  • BigOnYa @ BigOnYa:
    He said he had 3 different doctors apt this week, so he prob there. Something about gerbal extraction, I don't know.
    +1
  • ZeroT21 @ ZeroT21:
    bored, guess i'll spread more democracy
  • LeoTCK @ LeoTCK:
    @K3Nv2 one more time you say such bs to @BakerMan and I'll smack you across the whole planet
  • K3Nv2 @ K3Nv2:
    Make sure you smack my booty daddy
    +1
  • LeoTCK @ LeoTCK:
    telling him that my partner is luke...does he look like someone with such big ne
    eds?
  • LeoTCK @ LeoTCK:
    do you really think I could stand living with someone like luke?
  • LeoTCK @ LeoTCK:
    I suppose luke has "special needs" but he's not my partner, did you just say that to piss me off again?
  • LeoTCK @ LeoTCK:
    besides I had bigger worries today
  • LeoTCK @ LeoTCK:
    but what do you know about that, you won't believe me anyways
  • K3Nv2 @ K3Nv2:
    @BigOnYa can answer that
  • BigOnYa @ BigOnYa:
    BigOnYa already left the chat
  • K3Nv2 @ K3Nv2:
    Biginya
  • BigOnYa @ BigOnYa:
    Auto correct got me, I'm on my tablet, i need to turn that shit off
  • K3Nv2 @ K3Nv2:
    With other tabs open you perv
  • BigOnYa @ BigOnYa:
    I'm actually in my shed, bout to cut 2-3 acres of grass, my back yard.
  • K3Nv2 @ K3Nv2:
    I use to have a guy for that thanks richard
  • BigOnYa @ BigOnYa:
    I use my tablet to stream to a bluetooth speaker when in shed. iHeartRadio, FlyNation
  • K3Nv2 @ K3Nv2:
    While the victims are being buried
  • K3Nv2 @ K3Nv2:
    Grave shovel
  • BigOnYa @ BigOnYa:
    Nuh those goto the edge of the property (maybe just on the other side of)
  • K3Nv2 @ K3Nv2:
    On the neighbors side
    +1
  • BigOnYa @ BigOnYa:
    Yup, by the weird smelly green bushy looking plants.
    K3Nv2 @ K3Nv2: https://www.the-sun.com/news/10907833/self-checkout-complaints-new-target-dollar-general-policies...