Help:Dumping games: Difference between revisions

port latest changes from BotW wiki (courtesy of DarkMatterCore)
imported>Leoetlino
No edit summary
imported>Leoetlino
(port latest changes from BotW wiki (courtesy of DarkMatterCore))
 
Line 2: Line 2:


== Switch ==
== Switch ==
The general process is:
Dump the game files directly to your SD card using nxdumptool. Update data can only be processed if the base game is available, because they share the same filesystem.
# Dump the base version NCA of the game.
 
# Dump the update NCA.
'''Warning''': Running homebrew on the Switch can get you banned from Nintendo online services if you aren't careful. If you do not want to leave any traces, turn on airplane mode, back up your NAND '''before running any homebrew''' and do not ever go online before you have restored the backup.
# Extract the romfs to get a copy of the content files.


=== Prerequisites ===
=== Prerequisites ===
* [https://github.com/SciresM/hactool hactool]
* [https://github.com/DarkMatterCore/nxdumptool nxdumptool].
* [https://github.com/DarkMatterCore/nxdumptool nxdumptool]
* Keys file generated using [https://github.com/shchmue/Lockpick_RCM Lockpick_RCM], located at <code>sdmc:/switch/prod.keys</code>. Run the payload on your console through RCM in order to dump the keys needed by nxdumptool to decrypt contents.
* Keys (see below)
*# Run [https://github.com/shchmue/Lockpick_RCM LockpickRCM] on your console in order to dump keys that are required to decrypt contents (or get a copy of the keys manually).
*# Copy the keys file from your SD to <code>$HOME/.switch/prod.keys</code>.
 
'''In the instructions below, every time you are dumping a NSP, turn on the "Remove console specific data" and "Generate ticket-less dump" options. This is not a best practice but should make extraction easier.'''


=== Dumping the base NCA ===
=== Dumping game files ===
Because of how updates work on Switch, the base NCA must be dumped even if you're only interested in a specific game update.
* On your Switch, open nxdumptool. Afterwards:
*# '''If you have the gamecard''': Select <code>Dump gamecard content</code>.
*# '''If you have the eShop version''': Select <code>Dump SD card / eMMC content</code>, then select the game.
* Select <code>RomFS options</code>.
* Highlight the <code>Use update/DLC</code> option and use the left/right buttons to cycle through the available updates for the game.
*# '''If you have no available updates''', this option won't appear. You'll only be able to dump the files from the non-updated base game (which is the same to just leaving this option set to <code>No</code>).
*# Updates are tagged as <code>(UPD)</code>, and they use <code>01006BB00C6F0800</code> as their ID.
* Select <code>RomFS section data dump</code> and wait for the process to finish. This will dump the internal filesystem from the selected update to the inserted SD card.


* On your Switch, open nxdumptool.
Just like it was previously mentioned, updates share their filesystem data with the base game, so dumping the RomFS from an update is equivalent to dumping the whole filesystem from the updated game data. In other words, it isn't necessary to dump the base game filesystem separately if you choose an update.
* '''If you have the game card''': Select "Dump gamecard content".
* '''If you have the eShop version''': Select "Dump SD card / eMMC content". Select the game.
* Select "NSP dump". If asked to, select "Dump base application NSP".
* Copy the NSP to a computer, then extract it by running the command <code>hactool -t pfs0 [path to the NSP] --outdir [folder where to place the NCAs]</code> {{CLI help}}. The main NCA will be found in the folder you've told hactool to extract the files to.


=== Dumping the update ===
When you're done, you'll be able to find the output dumps in <code>sdmc:/switch/nxdumptool/RomFS</code>.
* On your Switch, open nxdumptool again.
* '''If you have a game card that does not include the latest update''':
** Select "Dump SD card / eMMC content".
** Press Y to "dump installed content with missing base application".
** Select 01006BB00C6F0800 (this is the update title).
** Select "Start NSP dump process".
* '''If you have a game card that includes the latest update''':
** Select "Dump gamecard content".
** Select "NSP dump", then select "Dump installed update NSP".
* '''If you have the eShop version''':
** Select "Dump SD card / eMMC content". Select the game.
** Select "NSP dump", then select "Dump installed update NSP".
* Copy the NSP to a computer, then extract it by running the command <code>hactool -t pfs0 [path to the NSP] --outdir [folder where to place the NCAs]</code> {{CLI help}}. You now have the update NCA (see [[Versions]] for NCA hashes).


=== Extracting the romfs ===
=== Dumping binaries (executable files) ===
Now that you have the base NCA and the update NCA, you can extract the romfs (which contains all [[content]] files) by running the command {{CLI help}}:
Binaries in Switch titles are stored in a different section known as ExeFS, which is only available in base games and updates. Unlike RomFS data, ExeFS data isn't shared between the update and its base game.


hactool -x -t nca path/to/update.nca  --basenca path/to/base.nca --romfsdir where/to/extract/the/romfs
These files can also be dumped using nxdumptool.


To extract the exefs (which contains the [[executable]] and SDK libraries):
* On your Switch, open nxdumptool. Afterwards:
*# '''If you have the gamecard''': Select <code>Dump gamecard content</code>.
*# '''If you have the eShop version''': Select <code>Dump SD card / eMMC content</code>, then select the game.
* Select <code>ExeFS options</code>.
* Highlight the <code>Use update</code> option and use the left/right buttons to cycle through the available updates for the game.
*# '''If you have no available updates''', this option won't appear. You'll only be able to dump the  binaries from the non-updated base game (which is the same to just leaving this option set to <code>No</code>).
*# Updates use <code>01006BB00C6F0800</code> as their ID.
* Select <code>ExeFS section data dump</code> and wait for the process to finish. This will dump the binaries from the selected update to the inserted SD card.


hactool -x -t nca path/to/update.nca  --basenca path/to/base.nca --exefsdir where/to/extract/the/exefs
When you're done, you'll be able to find the output dump in <code>sdmc:/switch/nxdumptool/ExeFS</code>.


[[Category:Guides]]
[[Category:Guides]]
Anonymous user