Restore save data from dead 3DS/2DS

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!
 
EDIT: Just tried using ninfs and the Mount SD Card Contents option using the same files and it fails with the following error.

Could not find ID0 c1d8524abad050dca415e7cc317f3c42 in the SD directory.
Failed to do AttachConsole(11332): 0.
It's nice that you're willing to experiment, but once again, you're going to have to provide more detail about what you are doing. ninfs will likely require you to specify a different folder than the one threeSD expects.

Aside from that, c1d8524abad050dca415e7cc317f3c42 is not the ID0 in your other screenshot. Are you sure you're specifying the right moveable.bin? If you formatted your old 3DS at some point after that movable.bin was generated, then that movable.bin is no longer valid. This is why details are important.

I suggested trying to use your New 3DS since that may help to narrow down the cause of the problem if you can get that working. I'm not sure you even read that suggestion. :glare:
 
Last edited by Kwyjor,
It's nice that you're willing to experiment, but once again, you're going to have to provide more detail about what you are doing. ninfs will likely require you to specify a different folder than the one threeSD expects.

Aside from that, c1d8524abad050dca415e7cc317f3c42 is not the ID0 in your other screenshot. Are you sure you're specifying the right moveable.bin? If you formatted your old 3DS at some point after that movable.bin was generated, then that movable.bin is no longer valid. This is why details are important.

I suggested trying to use your New 3DS since that may help to narrow down the cause of the problem if you can get that working. I'm not sure you even read that suggestion. :glare:
I tried ThreeSD with my new 3DS using the new movable.bin and it worked. It seems the movable.bin from the old SD card is not the correct one. I bought it secondhand so it is entirely possible the 3DS was formatted after the movable.bin was generated like you said.
 
It seems the movable.bin from the old SD card is not the correct one. I bought it secondhand so it is entirely possible the 3DS was formatted after the movable.bin was generated like you said.
A System Format only changes the encryption key very slightly. There is a godmode9 script that can be used to recover an old movable.sed after a format, but of course if your old 3DS is dead you won't be able to run a godmode9 script on it anymore. While it ought to be possible to do something similar on a PC, I've never read of someone doing that and I'm not sure exactly how you would do it. (It might just be a matter of running Seedminer with the right parameters.)

If you have a Mii QR code generated on your old 3DS at some point after you purchased it, then it is fairly standard to bruteforce the encryption key from that.
 
A System Format only changes the encryption key very slightly. There is a godmode9 script that can be used to recover an old movable.sed after a format, but of course if your old 3DS is dead you won't be able to run a godmode9 script on it anymore. While it ought to be possible to do something similar on a PC, I've never read of someone doing that and I'm not sure exactly how you would do it. (It might just be a matter of running Seedminer with the right parameters.)

If you have a Mii QR code generated on your old 3DS at some point after you purchased it, then it is fairly standard to bruteforce the encryption key from that.
Unfortunately the old 3DS is a brick at this point so gm9 is not an option. I don’t recall if I created a Mii QR Code after purchasing. Would there be a file for it on the SD card if I had done so?
 
I get this error when trying to work with the SD card:

Screenshot 2025-02-02 184407.png

I cannot generate a threeSD folder for the SD card files with GodMode9. How do I do it manually with my NAND backup? I tested this with an SD card as well and it didn't work.
 
Last edited by WildcatSoda,
Tried the suggestions on the first page, none of them worked. I tried id0 and id1 as the SDMC root, neither worked.

Update: It worked when I selected the title ID folder, not the 000000000 folder in it. Apologies for bumping the thread.

Screenshot 2025-02-02 194318.png
 
Yes, strangely, that's what the earlier poster said too:

I didn't need to do that for some reason, but that's two votes now for doing things that way. ¯\_(ツ)_/¯
in my 3ds gm9 not showing "[A:] SYSNAND SD" after insert movable.sed
 
I just wanted to extract my saves with this method, but it didn't work.
What exactly are you expecting? It will probably work if you do it properly, but it's impossible to suggest what you might have done incorrectly if you don't go into a lot more detail about what you did and what happened when you tried it.
 
What exactly are you expecting? It will probably work if you do it properly, but it's impossible to suggest what you might have done incorrectly if you don't go into a lot more detail about what you did and what happened when you tried it.
I made a dump of my boot9.bin on my New 3DS with CFW, as well as a dump of my movable.sed. I also used my CFW 3DS to dump the movable.sed of my cousin’s 3DS.
After that, I selected my cousin’s movable.sed, copied the contents of their SD card onto my own SD card (used in my New 3DS with CFW), and placed their movable.sed into the private folder inside CTRNAND.
Then, I restarted GodMode9.
However, I didn’t quite understand this part — it was supposed to show "[A:] SYSNAND SD" to view the title IDs, but nothing appears. I tried manually searching for the title IDs of the installed games online, but since my games are the Brazilian versions, I couldn’t find much information about them.
Using threeSD or ninfs with the boot9.bin from my CFW 3DS doesn’t seem to work either.
I dumped my cousin’s movable.sed using the friend code method (I can’t install CFW on that console).
 
I dumped my cousin’s movable.sed using the friend code method (I can’t install CFW on that console).
You can't dump a movable.sed that way. You can only dump a "part1" that can be used with seedminer to generate a movable.sed that is useful for decryption (but that is absolutely not usable for injecting into another 3DS). What, exactly, did you do?

(Hopefully you didn't manage to render your 3DS completely unusable.)

I tried manually searching for the title IDs of the installed games online, but since my games are the Brazilian versions, I couldn’t find much information about them.
I don't think Brazil got its own unique title IDs. They are probably the same as the E-region title IDs.
 
Last edited by Kwyjor,
You can't dump a movable.sed that way. You can only dump a "part1" that can be used with seedminer to generate a movable.sed that is useful for decryption (but that is absolutely not usable for injecting into another 3DS). What, exactly, did you do?

(Hopefully you didn't manage to render your 3DS completely unusable.)

I don't think Brazil got its own unique title IDs. They are probably the same as the E-region title IDs.
Sorry for acting like an idiot, it's just that I feel really lost. So there's no way to properly dump the 3DS without installing CFW? I thought using another 3DS with CFW would work because I saw people saying it was possible. I said exactly what I mentioned in the previous message. Now I’ve put the original movable.sed from my New 3DS back in place and no errors occurred.


I saw you mentioned http://3dsdb.com/ and I tried using the method of identifying games based on the numbers inside the title folder, but it was just showing random games. Should I search by the name instead of using that folder method?
Post automatically merged:

You can't dump a movable.sed that way. You can only dump a "part1" that can be used with seedminer to generate a movable.sed that is useful for decryption (but that is absolutely not usable for injecting into another 3DS). What, exactly, did you do?

(Hopefully you didn't manage to render your 3DS completely unusable.)

I don't think Brazil got its own unique title IDs. They are probably the same as the E-region title IDs.
I'm specifically trying to find Team Kirby Clash Deluxe and swapdoodles, but I can't find the Kirby game on 3dsdb.com at all.
 
So there's no way to properly dump the 3DS without installing CFW? I thought using another 3DS with CFW would work because I saw people saying it was possible.
Please read my post again.

I said exactly what I mentioned in the previous message.
No, you said you "dumped my cousin’s movable.sed using the friend code method". Please explain exactly what you think that means.

Now I’ve put the original movable.sed from my New 3DS back in place and no errors occurred.
Well, that's a relief.

I saw you mentioned http://3dsdb.com/ and I tried using the method of identifying games based on the numbers inside the title folder, but it was just showing random games.
It would be a lot easier to help you if you provided a specific example.

Should I search by the name instead of using that folder method?
Why not try it and find out..?
Post automatically merged:

I'm specifically trying to find Team Kirby Clash Deluxe and swapdoodles, but I can't find the Kirby game on 3dsdb.com at all.
Okay, so you go to https://hax0kartik.github.io/3dsdb/ , type in "kirby clash" , and the Europe/Austarlia title ID comes up as 00040000001AB900. That means you should have a folder named \Nintendo 3DS\<id0>\<id1>\title\00040000\001AB900\data on your SD card.
 
Last edited by Kwyjor,

Site & Scene News

Popular threads in this forum