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,

Draxzelex

Well-Known Member
Member
Joined
Aug 6, 2017
Messages
19,011
Trophies
2
Age
29
Location
New York City
XP
13,379
Country
United States
Since I'm here, might I add my even easier way of setting up emuMMC? Two words: SX OS. You don't need a license to have SX OS partition your SD card for emuMMC. You also have to use the migrate emuMMC option in Hekate. One thing to note is that this leaves your SD card named as TX NAND but it saved me a lot of time and headache.
 

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
81
Trophies
1
XP
1,158
Country
Brazil
Since I'm here, might I add my even easier way of setting up emuMMC? Two words: SX OS. You don't need a license to have SX OS partition your SD card for emuMMC. You also have to use the migrate emuMMC option in Hekate. One thing to note is that this leaves your SD card named as TX NAND but it saved me a lot of time and headache.

Did you read the thread's title?
This is about creating two emuMMC in Hekate, being one of them a clean NAND restoration for online use.
Not just one emuMMC and not SX OS.
 

Draxzelex

Well-Known Member
Member
Joined
Aug 6, 2017
Messages
19,011
Trophies
2
Age
29
Location
New York City
XP
13,379
Country
United States
Did you read the thread's title?
This is about creating two emuMMC in Hekate, being one of them a clean NAND restoration for online use.
Not just one emuMMC and not SX OS.
Ah sorry my bad. Although there's no reason to believe the partition made by SX OS isn't clean since its done from RCM.
 

annson24

The Patient One
Member
Joined
May 5, 2016
Messages
1,191
Trophies
0
Age
32
XP
1,843
Country
Philippines
Since I'm here, might I add my even easier way of setting up emuMMC? Two words: SX OS. You don't need a license to have SX OS partition your SD card for emuMMC. You also have to use the migrate emuMMC option in Hekate. One thing to note is that this leaves your SD card named as TX NAND but it saved me a lot of time and headache.
What I don't like about staying in RCM for a long period of time (i.e when creating sxos emunand, or creating/restoring backups) is that it messes with the battery calibration. Happened twice for me already.

Sent from my SM-N975F using Tapatalk
 

pcwizard7

Well-Known Member
Member
Joined
Aug 2, 2013
Messages
1,409
Trophies
0
XP
1,688
Country
Australia
so is it safe to go online from nand on the SD card? i know the guide is suggesting this but i thought the opposite of this.
 

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
81
Trophies
1
XP
1,158
Country
Brazil
so is it safe to go online from nand on the SD card? i know the guide is suggesting this but i thought the opposite of this.

Why don't you take a little time to READ the topic title and everything I wrote, including photos and videos?
Then after that, and only after that, you come back and reply.
 

pcwizard7

Well-Known Member
Member
Joined
Aug 2, 2013
Messages
1,409
Trophies
0
XP
1,688
Country
Australia
Why don't you take a little time to READ the topic title and everything I wrote, including photos and videos?
Then after that, and only after that, you come back and reply.

read my question and don't make a snap judgment i added "suggesting this but i thought the opposite of this." for your benefit as i saw how u snap at the other topic

I was asking how safe is to go online on nand that's located on the sd card and not the builtin storage

the only thing on the post or video close to answering this is this

"4. Last system tested online: clean emuMMC 9.2.0 x Atmosphere 0.10.5"
 

anonymouslog

Member
Newcomer
Joined
May 1, 2020
Messages
8
Trophies
0
Age
34
XP
61
Country
United States
Thank you very much for your guide.

Using your guide I was able to get two EMUMMC to show up in Hekate. I have a question though as I seem to be attempting to do the same thing you have accomplished.

I have a stock 1.0.0 system and I was able to setup two EMUMMC using a backup of my 1.0.0 system and your guide. But the problem I have now is that I can't launch atmosphere with a 1.0.0 EMUMMC as I believe the problem is atmosphere does not support 1.0.0. How did you accomplish upgrading your EMUMMC while keeping your stock system on 1.0.0?
 

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
81
Trophies
1
XP
1,158
Country
Brazil
I have a stock 1.0.0 system and I was able to setup two EMUMMC using a backup of my 1.0.0 system and your guide. But the problem I have now is that I can't launch atmosphere with a 1.0.0 EMUMMC as I believe the problem is atmosphere does not support 1.0.0. How did you accomplish upgrading your EMUMMC while keeping your stock system on 1.0.0?

That's great!

I was reading the thread you created an hour ago, and I was about to reply when you posted it here.
It's amazing how people like to say things without even being sure.
They insist that you need a dongle, that you need SX OS, that you can't go online without incognito or 90dns, etc.

Well, about your question: I recall having some difficulty to start Atmosphere in 1.0.0, but I can't remember how I solved the problem.

I remember trying old versions of Kosmos, but problably latest "pure" Hekate / Atmosphere will do it.

Try this:

- Download latest Hekate / Atmosphere from their github repos
- Download latest fusee-primary.bin from Atmosphere's github repo and put it on bootloader > payloads
- Use only these patches: https://gbatemp.net/attachments/2-0-0-10-0-0-ams-0-12-zip.206257/
- Select your desired emuMMC in Hekate (the dirty one is RAW1 if you followed my guide)
- Test this simple hekate_ipl.ini configuration:

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

[CFW EMUMMC]
payload=bootloader/payloads/fusee-primary.bin
icon=bootloader/res/icon_payload.bmp

P.S.
- You should delete entries in hekate_ipl.ini involving sysnand because you'll only use it for the initial boot
- You don't need nogc because you'll never boot the real sysnand >1.0.0
- Use ChoiDujourNX in "applet mode" to update dirty emuMMC's firmware
- Change the emuMMC's backgrounds so you don't confuse them
- Don't forget to 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
- This patches + this Hekate config lets you use Tinfoil
 
Last edited by kassio69,

ben_dover

New Member
Newbie
Joined
May 3, 2020
Messages
4
Trophies
0
Age
44
XP
72
Country
Canada
I was never able to make it work using Windows applications, but some people have already told me that they were successful with MiniTool Partition Wizard or DiskGenius, and dd for Windows.


Hi there. I am a complete noob to the Switch scene. I was lucky enough to get my hands on a Switch with 1.0.0 OFW and found your dual emummc solution tutorial. It seemed like a nice solution, the only problem was the Linux part. :lol: I tried to replicate your SD partitioning and Nand flashing steps using only Windows apps and I was successful.

I’d like to share what I did so that it might help others struggling with the Linux steps. You are free to add this info to your original post.

Windows-based tools needed:

1. DiskGenius
2. Dd for Windows by Chrysocome (I used the ddrelease64.exe version on a Windows 10 64-bit PC)

I started with a brand new micro SD card and partitioned it using Disk Genius.

I followed the “switch.homebrew.guide/emummc/windows” guide (not sure I can post links yet). The only difference is instead of creating 1 Linux swap partition, I created 2 of exactly the same size. To calculate the size of Partition 1 (FAT32) I did the following: SD total size – 2x 29856 MB = size of Partition 1 (FAT32). I then created the 2 Linux swap partitions at 29856 MB each.

I then tested my SD card with Hekate (5.2.0) to see if the 2 RAW partitions would be available for emummc by using “Create emuMMC” > “SD partition”. Hekate showed that both Part 1 and Part 2 were available.

Now for the Nand flashing part:

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”

The process will take a few minutes but you will see the progress of the file transfer in the command prompt window

That’s it! Enjoy!
 
Last edited by ben_dover,
  • Like
Reactions: kassio69

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
81
Trophies
1
XP
1,158
Country
Brazil
I’d like to share what I did so that it might help others struggling with the Linux steps. You are free to add this info to your original post.

Thanks, I'll edit the first post later with your detailed explanation about dd for Windows commands.
The latest version of hekate (5.2.0) made the process easier, as it now apparently recognizes all available free partitions.
 
Last edited by kassio69,

Danttebayo

Well-Known Member
Newcomer
Joined
Sep 15, 2015
Messages
58
Trophies
0
Age
39
XP
455
Country
United States
Does anyone know how to setup Hekate to have a boot entry for each of the emuNANDs in version 5.2+? From the latest release notes on Hekate's Github page:

Using the emupath key in a boot entry will load the selected emuMMC.
This can also be forced by using the correct boot cfg storage bit and writing the path at the emummc path offset. Check readme for these.
The format is: emupath=emuMMC/RAW1, emupath=emuMMC/SD00, etc.

I tried creating multiple boot entries and added the 'emupath' entry but upon booting one of the emuMMCs it errored out saying the SD card wasn't available. Reverting the boot settings resolved the issue.
 

snoofly

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
1,012
Trophies
0
Age
54
XP
2,133
Country
United Kingdom
Last edited by snoofly,
  • Like
Reactions: kassio69

snoofly

Well-Known Member
Member
Joined
Aug 18, 2015
Messages
1,012
Trophies
0
Age
54
XP
2,133
Country
United Kingdom
CTC updated and closed the issue with the solution.
It’s actually so close to what I was trying by editing the emummc.ini with 2 entries manually.
Enjoy.
 

Danttebayo

Well-Known Member
Newcomer
Joined
Sep 15, 2015
Messages
58
Trophies
0
Age
39
XP
455
Country
United States
CTC updated and closed the issue with the solution.
It’s actually so close to what I was trying by editing the emummc.ini with 2 entries manually.
Enjoy.
Aha! Thanks, @snoofly! That’s exactly what I put in my config but I didn’t realize it didn’t work in that version of Hekate.

Thank, @CTCaer as well. I’ve been eagerly anticipating this feature. Now the last amazing thing to look forward to in EmuNAND is when it ends up working without requiring Atmosphere to run.
 
  • Like
Reactions: snoofly

kassio69

Well-Known Member
OP
Newcomer
Joined
Nov 20, 2011
Messages
81
Trophies
1
XP
1,158
Country
Brazil
Just tested here... working!
One detail: my clean emuMMC only booted with fusee-secondary (the dirty one was ok with fusee-primary)
 
  • Like
Reactions: snoofly

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    OctoAori20 @ OctoAori20: Nice nice-