-
Notifications
You must be signed in to change notification settings - Fork 2
Decryption
3DS ROM images can be in either encrypted or unencrypted form. Typically, homebrew images would be unencrypted while backups of retail titles would be encrypted. Citra only works with decrypted images, so any encrypted image needs to be decrypted first.
On your PC, download the Gateway Launcher from their website. Place the Launcher.dat
file on the root of your SD card, and navigate to http://dukesrg.no-ip.org/3ds/go in your 3DS browser.
Once the Gateway Launcher opens up, there will be an option to dump a ROM from its cart. After selecting the option, you will have to wait for some time while the game is saved to your SD card. Repeat this process for every game you want to dump.
On your PC, download and compile Decrypt9. Run the ncchinfo_gen.py
python script with the path to your dumped game as the first argument. This will generate the ncchinfo.bin
file, which you should place on your SD card.
Then, if you're on firmware that is less than 7.x, create/edit slot0x25KeyX.bin
in a hex editor and put in the 7.x KeyX (no, we won't give it to you).
Place the compiled Decrypt9 Launcher.dat
on the root of your SD card, and navigate to http://dukesrg.no-ip.org/3ds/go in your 3DS browser. It will generate the required Xorpads for your game. This will take a while.
Repeat this process for every game you want to dump.
On your PC, download and compile Xorer. Run xorer with run it from the command line with the 3DS application as the first argument, and the xorpad files as the subsequent arguments. Example:
xorer someapp.app -e exheader.xorpad -x exefs.xorpad -r romfs.xorpad
If the program is a 7.x type program and you have both an exefs_norm.xorpad
and an exefs_7x.xorpad
file, specify the 7x variant as well using -7 exefs_7x.xorpad
. If you've already merged them through some other means, just pass the merged file in with -x
.