mirror of
https://github.com/citra-emu/citra.git
synced 2024-11-22 00:20:05 +00:00
Updated to new version
parent
a1a4b50754
commit
29e2788825
@ -4,58 +4,54 @@ This guide focuses on how do dump games in Windows, but since all of the program
|
||||
|
||||
#### Tools required:
|
||||
|
||||
- [Gateway Launcher](http://www.gateway-3ds.com/downloads)
|
||||
- [Homebrew Starter Kit](https://smealum.github.io/ninjhax2/starter.zip)
|
||||
- [Brahma2](https://github.com/delebile/Brahma2)
|
||||
- [Libkhax](https://github.com/Myriachan/libkhax)
|
||||
- [Uncart](https://github.com/citra-emu/uncart)
|
||||
- [Decrypt9](https://github.com/archshift/Decrypt9)
|
||||
- [xorer](https://github.com/archshift/xorer)
|
||||
- A 3DS with a firmware of 9.2 or lower in order to dump or decrypt games.
|
||||
- A SD Card big enough to contain the dumped games. 8GB or greater is recommended.
|
||||
- A way to read SD Cards on a PC.
|
||||
- If you don't want to (or can't) connect to the internet : [FakeMii](https://github.com/Lectem/FakeMii)
|
||||
|
||||
**For Windows Users**
|
||||
- An installation of Python ([Python 2.7.9](https://www.python.org/downloads/release/python-279/) was used during the creation of this guide)
|
||||
- 3DS Hardware (N3DS, 3DS, 2DS) with firmware 9.2 or below, and some way of running userland code as listed on http://3dbrew.org/wiki/Homebrew_Exploits (and which aren't listed on 'Exploits without Homebrew Launcher')
|
||||
- A SD Card big enough to contain the dumped games. 8GB or greater is recommended.
|
||||
- A way to read SD Cards on a PC or an internet connection to transfer dumps over wifi.
|
||||
- An installation of Python ([Python 2.7.9](https://www.python.org/downloads/release/python-279/) was used during the creation of this guide)
|
||||
|
||||
**For 3DSes with firmwares older than 7.x when decrypting a 7.x firmware or newer game**
|
||||
- slot0x25KeyX.bin with the key. You have to create the file and find the key yourself.
|
||||
|
||||
<br/>
|
||||
|
||||
#### **STEP 1 – Prepping the Dumper**
|
||||
On your computer, download the [latest firmware package of the gateway launcher](http://www.gateway-3ds.com/downloads) from their website. Within one of the folders (ex: `/GATEWAY ULTRA 3.2.1 PUBLIC BETA/` for version 3.2.1) will be a Launcher.dat file. Place the Launcher.dat file on the root of the SD Card and place it into your 3DS.
|
||||
#### **STEP 1 – Preparing the SD card**
|
||||
|
||||
At this point, we need to download a lot of stuff and put it in the right spot.
|
||||
|
||||
**If you have internet access on your 3DS**
|
||||
- The [Homebrew Starter Kit](https://smealum.github.io/ninjhax2/starter.zip) - Note: this also contains the homebrew launcher and some homebrew, including an FTP client for sending files over to a computer without removing the SD card if you so desire. For more information, you can check out the guide on [The Homebrew Launcher website](http://smealum.github.io/3ds/).
|
||||
- [Brahma2](https://github.com/delebile/Brahma2) must be downloaded and placed within sd:/3ds/brahma2.
|
||||
- [Uncart](https://github.com/citra-emu/uncart) must be downloaded and placed within sd:/3ds/brahma.
|
||||
- [Decrypt9](https://github.com/archshift/Decrypt9) must be downloaded and placed within sd:/3ds/brahma.
|
||||
|
||||
On the 3DS, open the browser and navigate to 'http://dukesrg.no-ip.org/3ds/go' .
|
||||
|
||||
**If you don't have internet access on your 3DS**
|
||||
|
||||
You can host the launcher page by using [FakeMii](https://github.com/Lectem/FakeMii). See the installation instructions there. You can then open your browser and navigate to 'http://launcher'.
|
||||
|
||||
**Back to instructions everyone must follow**
|
||||
|
||||
From here, your 3DS may display some weird colors or even say that it cannot load the page, but the Gateway loader should boot up regardless.
|
||||
On N3DS units, it's possible to do this without removing the SD card! Within the N3DS Home Menu, hit the "System Settings" icon, select "Data Management" and then "Micro SD Management." From there, the N3DS will provide instructions on how to access the N3DS from your computer over wifi. Place the extracted contents in the locations mentioned above.
|
||||
|
||||
<br/>
|
||||
|
||||
#### **STEP 2 – Dumping the Game**
|
||||
Within the gateway launcher you have a lot of options. The only one necessary is "Backup 3DS Game Cartridge". It can take quite a while to dump bigger games, so be patient and wait for it to complete. After that, the SD Card will contain the ROM from your cartridge.
|
||||
|
||||
You can now copy this to your computer to clear space; this ROM file will **never** need to be on your SD card again. On a smaller SD card, you'll need that space for a later step anyway!
|
||||
Next you'll want to load Brahma from the Homebrew Launcher. Once that is loaded, you will select uncart. Uncart is the application that will dump the cartridge onto the SD card. Select dump cartridge and wait patiently for the game to dump. This can take quite a while on bigger games, so be patient! it will dump to sd:/<16-hex-digit title ID>.3ds; uncart will display the filename on screen while it dumps.
|
||||
|
||||
**NOTE:** If a game is greater than 2GiB, it will be split into multiple files when it dumps. Using generic names, it would be Game.3d0, Game.3d1 etc. Because the 3DS SD card is formatted FAT, you cannot combine these files on the SD card and must copy them onto another device. Most users are planning to copy these onto their computer anyway, and that will work fine.
|
||||
|
||||
On Windows 7, we can combine these files easily by putting both files into the same folder, opening up command prompt and navigating to that folder. We'll use bravely default (NTSC) as the example here.
|
||||
|
||||
|
||||
**NOTE:** If a game is greater than 4GiB, it will be split into multiple files when it dumps. Using generic names, it would be Game.3D0, Game.3D1 etc. On Windows 7, we can fix this easily by putting both files into the same folder, opening up command prompt and navigating to that folder. We'll use Bravely Default as the example here.
|
||||
|
||||
**On Windows**
|
||||
```
|
||||
Copy /b "BTRE.3D0"+"BTRE.3D1" "Bravely Default.3DS"
|
||||
Copy /b "00040000000FC500.3d0"+"00040000000FC500.3d1" "Bravely Default.3ds"
|
||||
```
|
||||
|
||||
**On a *NIX system**
|
||||
```
|
||||
cat "BTRE.3D0" "BTRE.3D1" > "Bravely Default.3DS"
|
||||
```
|
||||
|
||||
This will give you a single combined file that is your entire ROM dump. If you're certain you've done this correctly, you can delete the input files and just keep the .3DS produced.
|
||||
|
||||
This will give you a single combined file that is your entire ROM dump under the name "Bravely Default". If you're certain you've done this correctly, you can delete the input files and just keep the .3ds produced.
|
||||
|
||||
NOTE: This ROM file will **never** need to be on your SD card after this point. If it's still on your SD card, you can copy it to your computer to save space for the next step.
|
||||
|
||||
<br/>
|
||||
|
||||
@ -66,18 +62,21 @@ For the purposes of this guide, think of the xorpad as a decryption key that wil
|
||||
|
||||
**NOTE:** Python is required for this step. During the creation of this guide, [Python 2.7.9](https://www.python.org/downloads/release/python-279/) was used.
|
||||
|
||||
The first thing you’ll need to do is obtain (either download or compile) a program called [Decrypt9](https://github.com/archshift/Decrypt9). Within your Decrypt9 folder, there will be a scripts folder with a few scripts in it. We only care about one, `ncchinfo_gen.py`. The others can be ignored.
|
||||
#### **Setting up Everything
|
||||
|
||||
Assuming Python is installed correctly, open up command prompt and navigate to this folder. A shortcut for this is to hold shift and right click on the background of the explorer window and then click "Open Command Window Here" in the options. It can be helpful when typing out long paths is annoying! Either way, just make it so that you can run the python file from the command prompt with the ROM following. For the ROM file, if you don't want to type out a big long path, you can just drag the ROM onto the command prompt and it will automatically fill everything out. Your command should look something like this.
|
||||
- Download [Decrypt9](https://github.com/archshift/Decrypt9). Within your Decrypt9 folder, there will be a scripts folder with a few scripts in it. We only care about one, _ncchinfo_gen.py_. The others can be ignored.
|
||||
- Open up the command prompt/terminal and navigate to the folder containing ncchinfo_gen.py. Alternatively, you on Windows, you can just hold shift and right click the background of the folder containing the file and hit "Open Command Window Here."
|
||||
- Run ncchinfo_gen.py followed by a directory to your rom file. Alternatively, dragging your rom file onto the command window will automatically add the path and file location. If you did everything correct, it will look something like this.
|
||||
|
||||
```
|
||||
ncchinfo_gen.py "D:\dump\Cubic Ninja.3DS"
|
||||
ncchinfo_gen.py "D:\dump\Cubic Ninja.3ds"
|
||||
```
|
||||
|
||||
If you have many games, you can input multiple of them to put many games in at once. NOTE: Make sure your SD card has enough space, the xorpads will amount to the same size as a game.
|
||||
|
||||
|
||||
```
|
||||
ncchinfo_gen.py "D:\dump\Cubic Ninja.3DS" "D:\dump\Pokemon X.3DS"
|
||||
ncchinfo_gen.py "D:\dump\Cubic Ninja.3dS" "D:\dump\Pokemon X.3ds"
|
||||
```
|
||||
|
||||
There are many ways to get the program running in the command prompt, so if you're familiar with how to use it, feel free to use the way you're most comfortable with.
|
||||
@ -88,75 +87,73 @@ There are many ways to get the program running in the command prompt, so if you'
|
||||
|
||||
In the 7.x firmware, Nintendo added a new encryption scheme meant to force users to update to 7.x firmware and up to run the game. Those with a 3DS with a firmware less than 7.x can get around it, but they need to go through an additional step to create the encryption key manually.
|
||||
|
||||
First create an empty file named "slot0x25KeyX.bin". The simplest way to do this would be to right click in an explorer window, select create empty text file, and then rename it to "slot0x25KeyX.bin".
|
||||
First create an empty file named "slot0x25KeyX.bin". The simplest way to do this would be to right click in an explorer window, select create empty text file, and then rename it to "slot0x25KeyX.bin".
|
||||
|
||||
**Note**: This will not work if you have "Show known file extensions" disabled.
|
||||
|
||||
Then you must use a [hex editor](http://mh-nexus.de/en/hxd/) to put in the key. We cannot provide you with the key, you have to find it yourself unfortunately. Once you do have it, you can literally copy and paste it in on the first line. The hex editor will likely warn you that this will change the length of the file, hit accept and save the file. Then place it on the root of the SD Card. Since this key is universal, you only have to do this step once.
|
||||
Then you must use a [hex editor](http://mh-nexus.de/en/hxd/) to put in the key. We cannot provide you with the key, you have to find it yourself unfortunately. Once you do have it, you can literally copy and paste it in on the first line. The hex editor will likely warn you that this will change the length of the file, hit accept and save the file. Then place it on the root of the SD Card. Since this key is universal, you only have to do this step once.
|
||||
|
||||
![HxD Key Example](http://i.imgur.com/Tm44cVM.jpg)
|
||||
![HxD Key Example](http://i.imgur.com/Tm44cVM.jpg)
|
||||
The line of FFs should be replaced with the key. It will fill out the whole line and nothing more.
|
||||
|
||||
<br/>
|
||||
|
||||
**Back to instructions everyone must follow**
|
||||
|
||||
Overwrite the Launcher.dat on your SD card with the one included in the Decrypt9 package. If you'll be dumping more games, make sure you keep both Launcher.dat files safely and remember which is which!
|
||||
Now that all of that is complete, we need to run [Decrypt9](https://github.com/archshift/Decrypt9).
|
||||
|
||||
On the 3DS, open the browser and return to the site that has the exploit ('http://dukesrg.no-ip.org/3ds/go' or 'http://launcher') and this will launch the second Launcher.dat.
|
||||
- Run Brahma2 from the homebrew menu, and then select Decrypt9.
|
||||
- There are several options, but we're just interested in generating xorpads. Hitting A will begin the process.
|
||||
|
||||
This one will have a few options, but all we'll be doing is hitting A to generate the xorpads.
|
||||
|
||||
Be warned: this can take an extremely long time on bigger games, so beware! If you've completed this successfully, when you put the SD card back into the computer it'll have at least three xorpad files with fairly long names. If you have these files, congratulations, you can move onto the last step; if not, you'll have to repeat step 3 from the beginning.
|
||||
**Be warned**: this can take an extremely long time on bigger games, so beware! If you've completed this successfully, when you put the SD card back into the computer it'll have at least three xorpad files with fairly long names. If you have these files, congratulations, you can move onto the last step; if not, you'll have to repeat step 3 from the beginning.
|
||||
|
||||
<br/>
|
||||
|
||||
#### **STEP 4 – Applying the Xorpads**
|
||||
For the final step, we use the last program, [xorer](https://github.com/archshift/xorer). If you don't have that program yet, download it and extract it into a folder. If you want to make your life easier, copy the xorpads off your SD card into this folder with the xorer program, otherwise you'll have an extremely long command with the paths to each file.
|
||||
For the final step, we use the last program, [xorer](https://github.com/archshift/xorer). If you don't have that program yet, download it and extract it into a folder. If you want to make your life easier, copy the xorpads off your SD card into this folder with the xorer program, otherwise you'll have an extremely long command with the paths to each file.
|
||||
|
||||
Then, using whichever method you prefer, navigate to that folder in command prompt so that you can run the program from command line. Next up we're going to give it a very specific command that will decrypt your 3DS file!
|
||||
Then, using whichever method you prefer, navigate to that folder in command prompt so that you can run the program from command line. Next up we're going to give it a very specific command that will decrypt your 3DS file!
|
||||
|
||||
**NOTE:** If you’re unsure you did everything correctly, backup the .3DS file! This will overwrite the encrypted one with a decrypted one.
|
||||
**NOTE:** If you’re unsure you did everything correctly, backup the .3ds file! This will overwrite the encrypted one with a decrypted one.
|
||||
|
||||
xorer takes 5 inputs total. First make sure you have the program put in, if you've navigated to the folder, that just means typing in xorer so that it knows to run that program. Next up, have one space and navigate to (or drag and drop on) the 3DS dump. If we use the example for earlier, it will look like this currently.
|
||||
|
||||
xorer takes 5 inputs total. First make sure you have the program put in, if you've navigated to the folder, that just means typing in xorer so that it knows to run that program. Next up, add one space and navigate to (or drag and drop on) the 3DS dump. If we follow the earlier example, it will look like this currently:
|
||||
```
|
||||
xorer "D:\dump\Cubic Ninja.3DS"
|
||||
xorer "D:\dump\Cubic Ninja.3ds"
|
||||
```
|
||||
|
||||
So, now the beginning of the command is correct. Next we have to feed it all the xorpads. Add a space after the ROM dump and type `-e` and another space. Now find to the xorpad that has exheader in its name. You can either type out its name (if it's in the directory alongside the xorer program) or you can drag it into the command window (regardless of wherever it is at).
|
||||
So, now the beginning of the command is correct. Next we have to feed it all the xorpads. Add a space after the ROM dump and type "-e" and another space. Now find to the xorpad that has exheader in its name. You can either type out its name (if it's in the directory alongside the xorer program) or you can drag it into the command window (regardless of wherever it is at.)
|
||||
|
||||
Your command should now show something like this.
|
||||
|
||||
|
||||
Your command should now show something like this:
|
||||
```
|
||||
xorer "D:\dump\Cubic Ninja.3DS" -e "0004000000046500.Main.exheader.xorpad"
|
||||
xorer "D:\dump\Cubic Ninja.3ds" -e "0004000000046500.Main.exheader.xorpad"
|
||||
```
|
||||
|
||||
Now we repeat the step for the remaining commands. `-x` points to the `exefs_norm.xorpad`, and then `-r` points to the `romfs.xorpad`. For Cubic Ninja, the command would now look like this:
|
||||
Now we repeat the step for the remaining commands. -x points to the exefs_norm.xorpad, and then -r points to the romfs_xorpad. For Cubic Ninja, the command would now look like this.
|
||||
|
||||
```
|
||||
xorer "D:\dump\Cubic Ninja.3DS" -e "0004000000046500.Main.exheader.xorpad"
|
||||
xorer "D:\dump\Cubic Ninja.3ds" -e "0004000000046500.Main.exheader.xorpad"
|
||||
-x "0004000000046500.exefs_norm.xorpad" -r "0004000000046500.romfs.xorpad"
|
||||
```
|
||||
|
||||
Now all we have to do is set the output file. This is what the finalized command will look like for most games, except replaced with your file names:
|
||||
```
|
||||
xorer "D:\dump\Cubic Ninja.3DS" -e "0004000000046500.Main.exheader.xorpad"
|
||||
-x "0004000000046500.exefs_norm.xorpad" -r "0004000000046500.romfs.xorpad" -o CubicNinjaDecrypted.3DS
|
||||
```
|
||||
|
||||
If you're confident in yourself and have done this before, you can instead pass `--inplace` so it will overwrite the encrypted ROM. If you're unsure you did this correctly always use `-o` and check your game.
|
||||
Now all we have to do is set the output file. This is what the finalized command will look like for most games, except replaced with your file names.
|
||||
|
||||
```
|
||||
xorer "D:\dump\Cubic Ninja.3DS" -e "0004000000046500.Main.exheader.xorpad"
|
||||
-x "0004000000046500.exefs_norm.xorpad" -r "0004000000046500.romfs.xorpad" --inplace
|
||||
```
|
||||
xorer "D:\dump\Cubic Ninja.3ds" -e "0004000000046500.Main.exheader.xorpad"
|
||||
-x "0004000000046500.exefs_norm.xorpad" -r "0004000000046500.romfs.xorpad" -o CubicNinjaDecrypted.cci
|
||||
```
|
||||
|
||||
|
||||
**For 7.x or newer firmware games**
|
||||
|
||||
For newer games, the command is slightly different. We have to add one more command to give it the 7.x key. This is noted with the `-7` command and placing in the `exefs_7x.xorpad` after it.
|
||||
For newer games, the command is slightly different. We have to add one more command to give it the 7.x key. This is noted with the -7 command and placing in the exefs_7x.xorpad beyond it.
|
||||
|
||||
```
|
||||
xorer Pokemon.3ds -e 0004003000009702.Main.exheader.xorpad
|
||||
-x 0004003000009702.Main.exefs_norm.xorpad -7 0004003000009702.Main.exefs_7x.xorpad
|
||||
-r 0004003000009702.Main.romfs.xorpad --inplace
|
||||
-r 0004003000009702.Main.romfs.xorpad -o Pokemon.cci
|
||||
```
|
||||
|
||||
Hit enter, and if it doesn't error out, it worked! The dumped ROM can now be used in Citra.
|
Loading…
Reference in New Issue
Block a user