Nintendo Switch Dumping Guide

From No-Intro ~ Wiki
Jump to navigation Jump to search

todo: there's other misc data that can be retrieved from the gamecart that isn't currently datted

note: "Initial Area" was previously refered to on this page (and in the dat) as "Key Area"

Dumping Methods

NXDumpTool

It's an open-source homebrew application capable of generating NX Card Image (XCI) dumps from Nintendo Switch gamecards.

Tools

  • A Nintendo Switch console with a firmware version greater than or equal to 3.0.0. Must either be vulnerable to Fusée Gelée or have a firmware version compatible with Caffeine. The exact details on how to use these exploits to launch homebrew applications aren't covered in this guide.
  • NXDumpTool saved to sdmc:/switch/nxdumptool/nxdumptool.nro
    • For XCI dumping, you can either one of the following:
      • The latest stable build
      • A build of the rewrite branch, usb to pc dumping only. In the dump tool info that you provide, put this down as "NXDumpTool rewrite branch - commit de1ba42".
    • For dumping the Initial Area, you can use one of the following:
      • This version of NXDumpTool that just dumps the Initial Area. But this version no longer works as of Switch firmware 11.0.1. In the dump tool info you provide, put this down as "Modified NXDumpTool v1.2.0 w/ CRC32 80A23D83 (Initial Area)".
      • The aforementioned rewrite branch, which has the Initial Area dumping function built-in. See Note #3.

Note #1: if you use a SD card with a FAT32 partition and the game you wish to dump is bigger than 4 GiB, you can dump it in smaller parts, but you must reassemble them afterwards.

Note #2: you don't need to have enough free space in your SD card for a whole dump. Sequential (multi-session) dumping is available in NXDumpTool, and it's automatically triggered if there's not enough space for a whole dump - but there must be at least 1 GiB of free space. After each session, you'll have to transfer the generated part files to your PC before continuing the dump process in the next session.

Note #3: To install the rewrite branch you need to install LibusbK drivers.

  • Download and use Zadig to install the libusbK driver for your Switch. Download Zadig Download libusbK
  • Connect your Switch via a USB cable to your computer.
  • Open Zadig, click on "Options" -> "List all devices".
  • Select "Nintendo Switch", choose libusbK, click "Replace/Reinstall". Your driver should now be libusbK instead of WinUSB.
  • Open the libusb filter wizard, click "Install a device filter", select your Nintendo Switch.
  • Download the build of the rewrite branch and install this in the folder 'switch' on your sd card Download
  • Download the Host server on your pc for the rewrite nxdumptool : Download EXE or Download Python

Dumping

stable build

  1. Using either Fusée Gelée or Caffeine, boot into the CFW of your preference and load the Homebrew Launcher using title override (hold R while launching a game).
  2. Load NXDumpTool.
  3. Select Dump gamecard content.
  4. Select NX Card Image (XCI) dump.
  5. Set the available options to the following values:
    • Split output dump (FAT32 support): set it to Yes if you're using a FAT32 partition in your SD card. Otherwise, set it to No.
    • Create directory with archive bit set: No.
    • Keep certificate: No. This will wipe the gamecard-unique certificate from the output XCI dump.
    • Trim output dump: No.
    • CRC32 checksum calculation + dump verification: No.
    • Dump verification method: [whatever the "none" option is]
  6. Select Start XCI dump process, press A and wait for the process to finish. You'll be able to find the output file(s) in sdmc:/switch/nxdumptool/XCI.
  7. Copy the output dump to your PC. If you used the split method for FAT32, or if you used sequential (multi-session) dumping, you'll need to reassemble the part files into a single XCI dump.

Rewrite build

  1. Using either Fusée Gelée or Caffeine, boot into the CFW of your preference and load the Homebrew Launcher using title override (hold R while launching a game).
  2. If your booting the switch with the RCMLoader then remove the loader and connect your switch via a USB cable to your computer.
  3. Run the Host version .exe or python, select the output folder on your pc and start server.
  4. Open the folder nxdumptool-rewrite_poc_de1ba42 and load usb_gc_dumper.
  5. Select option 1 dump key area(initial data), press A and wait for the process to finish.
  6. Press any button to enter the main menu and select option 3 dump xci set the available options to the following values:
    • Append key area: No. This will add the initial key into the XCI dump instead of a separate file.
    • Keep certificate: No. This will wipe the gamecard-unique certificate from the output XCI dump.
    • Trim dump: No.
    • Calculate crc32: No.
  7. Select Start XCI dump process, press A and wait for the process to finish. You'll be able to find the output file(s) in the folder you specified in the host client.
Merge part files (FAT32 only)
  1. Copy all parts of your XCI dump to your PC.
  2. Merge your part files into a complete dump:
    1. On Windows:
      1. Open the command prompt and use cd to change the current working directory to the one that holds your split files (e.g. cd C:\switch_dumps).
      2. Type copy /b *.xc* game.xci and then press Enter.
    2. On Linux/Mac:
      1. Open your terminal emulator and use cd to change the current working directory to the one that holds your split files (e.g. cd /media/USERNAME/SDCARD/switch/nxdumptool/xci/ on Linux or cd /Volumes/SDCARD/switch/nxdumptool/xci/ on MacOS).
      2. Type cat *.xc* > game.xci and then press Enter.
  3. Your part files should be reassembled into a full game.xci file. You can safely delete your part files afterwards.
Dumping Initial Area
  • The following instructions for the stable build in this section no longer work as of Switch firmware 11.0.1, replacement app with this feature is in the works. Note that it is currently only possible first 512 bytes of the full 4096 bytes Initial Area, so the files produced will be that size. However, the remaining 3584 bytes is most likely just zeroes.
  • Run the rewrite of nxdumptool like explained in the dumping guide. If your previous dumped a game and just need the initial key, select option 1 dump key area, press A and wait for the process to finish. This will dump the gamecard's Initial Area to the folder on pc you selected in the host client. Note that it already trimmed to 512 bytes and needs no trimming.

Gathering Dump Info

  • CRC32: Generated from the ROM file using HxD or HashTab on windows, or by using crc32 in a terminal emulator for linux/mac.
  • MD5: As above, or by using md5 in a terminal emulator for linux/mac.
  • SHA-1: As above, or by using shasum -a 1 in a terminal emulator for linux/mac.
  • SHA-256: As above, or by using shasum -a 256 in a terminal emulator for linux/mac.
  • Also, submit the same info for the Initial Area file.
  • Game title: If it differs between different places (e.g. title screen, console menu banner, box, cart) then go with the one on the front of the box.
  • Region: The region the cart originated from such as USA, Japan, Europe, Korea, China or "World" if it is being sold in three or more regions If you're unsure, consult the DAT-o-MATIC or simply use the region from the label of your cart.
  • Cart Serial: It is located on the label on the front of the cart the form of "LA-H-XXXXX-XXX" (where X is a letter). The last three letters are the cartridge's region, not necessarily the region of the game itself. For additional information on cartridge serials, see Understanding Serials.
  • Cart Reverse Serial: It is located on the back of the cartridge printed on the plastic in the form "AAAAABBBCCC" where A is Cart Serial, B is unknown, and C is cartridge revision.
  • Cart Revision (If applicable): last 3 digits on the reverse cartridge serial.
  • Box Barcode: The number on the case displayed beneath the vertical lines, see Barcode.
  • Box Serial: The serial on the case. Example: HAC P AAAAA USA
  • Size: The size of the ROM in bytes.
  • Scans: The following scans (or photos) would be good to have: Front and back of the following items - box, cart and PCB.
  • Dumping Tool(s): Please explicitly state which dump tool you use for the XCI, and which for the Initial Area (even if they are the same). If you are using a non-release version, then state the commit hash.

Submitting Dump Info

Register on the forum (if you aren't already registered) and once your account has been activated, post the info in the "New Dumps & Redumps" sub-forum.

Or if you have datter rights you can submit the dump info directly to the database.