Tutorial Hacking Restore save data from dead 3DS/2DS

AgiosIlysion

New Member
OP
Newbie
Joined
Dec 30, 2021
Messages
3
Trophies
0
Age
25
XP
75
Country
Colombia
I accidentally drop my 3DS and it died, so I bought I new one and tried to transfer all my old save data, but I discover that each console has an encryption layer that makes it difficult to transfer your data to a new console, so here I give you a summarized tutorial for recovering your old saves the way I did.

First it’s necessary that you have all your essentials system files backed up, specifically two files: boot9.bin and movable.sed. Without them, it’s impossible to pass the encryption layer of your old 3DS files.

If you still have access to your 3DS you can back up your files following these steps (if your old console is broken like mine, you can look at your SD card and check inside the folder /gm9/out for these files):

Dumping DuARM9 BootROM:

ARM9 BootROM contains various encryption keys.

  • Start GodMode9. You can start it by pressing the START button while you power on your console.
  • Navigate to [M:] MEMORY VIRTUAL.
  • Press L on boot9.bin.
  • Press A to select, then choose "Copy to 0:/gm9/out".
  • Turn off the system.
  • Check inside /gm9/out on the SD card. The file boot9.bin should be created.

Dumping movable.sed:

movable.sed contains KeyY for SD data encryption for all files under /Nintendo 3DS/<id0>/<id1>. The file is located in CTRNAND at /private/movable.sed.

If you have an essentials backup (essential.exefs) created by GodMode9, the file is available inside as "movable".

The drive depends on the source. SysNAND is at [1:] SYSNAND CTRNAND. EmuNAND/RedNAND is at [4:] EMUNAND CTRNAND. A mounted NAND backup is at [7:] IMGNAND CTRNAND.

  • Start GodMode9.
  • Navigate to the source drive -> private.
  • Select movable.sed, then choose "Copy to 0:/gm9/out".
  • Turn off the system.
  • Check inside /gm9/out on the SD card. The file movable.sed should be created.
After dumping these two files, the next step is decrypting your old save datas. For this, you need to know the Title ID of the games you want to backup. If you don’t know the Title ID of them, you can check them following these steps:

If your console is broken and you can’t access to GodMode9:

  • IMPORTANT: Backup the essential system files of your new console to avoid bricking your new console.
  • Insert your old SD on your new console and start GodMode9.
  • Copy your old movable.sed (the one in your SD:/gm9/out) right into CTRNAND into /private/ folder. This will replace your old movable.sed so it’s important to have a backup because you will have to restore it later.
  • Restart GodMode9.
Follow the next steps to get the Title IDs (if you didn’t follow the previous steps, you need to do this on your old console):
  • Go to [A:] SYSNAND SD, press (R)+(A) → Search for titles. You will see a list of all the games you had installed on your old SD with their Title ID. Write down the Title ID of all the games you want to recover.
  • (ONLY IF YOU DID THE STEPS FOR THE BROKEN CONSOLE) After you finish copying the Title IDs, you need to restore the movable.sed of your new console into CTRNAND following the previous steps. Check you did it right by restarting your console.
Once you have the Title IDs of the games you want to restore, you need to install threeSD (you can find it on Github: zhaowenlan1779/threeSD).

After you have installed it, you need to insert your old SD into your computer and open threeSD. It will list your SD. Then you have to go to Utilities. There, make sure you have checked Use SD Decryption, and choose your boot9.bin and movable.sed from your /gm9/out folder. Then choose your SDMC Root (this is the folder where your save data are located). This folder is located at \Nintendo 3DS\<id0>\<id1>. If this folder has a /title/ folder, it’s the correct.

After that, you need to open Save Data Extraction on threeSD and need to choose your Source file. This file is located at \Nintendo 3DS\<id0>\<id1>\title\<gameid0>\<gameid1>\data and it’s usually called 00000001.sav (gameid0 is the first part of the titleID and it’s usually called 00040000, gameid1 will be then the second part of the Title ID you are looking for).

Once you have selected the Source, select your destination folder and proceed. If done correctly, you will have now a folder and a file in the destination folder called 00000001.

So now, you have to copy all the content inside the folder 00000001 (these are the decrypted save datas). You can even use these decrypted save datas on Cytra!

If you want to restore these save datas to your new 3DS, you have to install a 3DS save manager. In my case, I used JKSM (you can find it on Github: J-D-K/JKSM).

Once you have JKSM installed, open the game you want to restore the saves and create a fresh new save data. Then, close the game and open JKSM. Select Reload Titles / Refresh Games.

Then, go to Titles and Select Game. When you choose the game, select the option Save Data and press A on New. This will create a folder on your SD with the date of the save and a backup of the fresh new save data.

Now, you will have to copy the contents of the folder 00000001 that you created before that contains the decrypted save data of your old 3DS and overwrite the folder that you have created with JKSM (this will be located in the folder /JKSM/Saves/ of your SD card).

After that, you just have to open again the game, check your save data is restored and enjoy!
 

Kwyjor

Well-Known Member
Member
Joined
May 23, 2018
Messages
2,291
Trophies
1
XP
2,777
Country
Canada
Thank you for your efforts; I have never been clear on how to use threeSD in cases like this. Some comments:

While boot9.bin is necessary, boot9.bin – unlike movable.sed – is completely the same for all consoles. You can either dump it from another 3DS or just download it from the Internet if you can find it.

You can extract movable.sed from a NAND backup or from essential.exefs using ninfs on a PC. In some cases it will be called movable.bin .

I usually suggest that people look up Title IDs at https://github.com/hax0kartik/3dsdb or http://3dsdb.com/ . This is probably safer than overwriting movable.sed on another console. (I'm not completely sure why that would be necessary.)

Checkpoint is generally preferred over JKSM these days, though JKSM works just as well.

And this procedure may require extra steps for games that use extdata for storage.
 
  • Like
Reactions: CoolMe

CoolMe

Old Soul..
Member
Joined
Apr 16, 2019
Messages
2,435
Trophies
1
Age
27
XP
7,190
Country
United States
Good job! Very detailed and thorough.. This'll be a big help for those who'll find themselves in a similar situation like yours.
 
General chit-chat
Help Users
    Dark_Phoras @ Dark_Phoras: What's the point of your existence?