nxdumptool for Nintendo Switch dump workflows
Generates XCI/NSP/HFS0/ExeFS/RomFS/Certificate/Ticket dumps from Nintendo Switch gamecards and installed SD/eMMC titles.
At a glance
- What is it?
- nxdumptool extracts content from Nintendo Switch gamecards and installed titles. Its rewrite branch covers XCI, NSP, NCA, ExeFS, RomFS, tickets, certificates, and system data, but remains experimental and lacks a finished user interface.
- Who is it for?
- Adopt the rewrite only if you need its documented gamecard, title, filesystem, or USB dump capabilities and can tolerate experimental software with an incomplete interface. Do not choose it for routine console management.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 80 days ago.
- What is it written in?
- Mainly C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Why nxdumptool targets Switch-specific dump formats
nxdumptool is built for extracting content from Nintendo Switch gamecards and titles installed on SD or eMMC storage. Its scope extends beyond a generic file copier. The README describes support for Nintendo Submission Packages, Nintendo Content Archives, Partition FS, ExeFS, RomFS, Patch RomFS, tickets, certificates, gamecard structures, and other console-specific data. This makes it relevant to people who need to inspect or preserve particular layers of a title rather than merely copy one recognized file extension.
The project separates gamecard-oriented and installed-title workflows. It supports XCI gamecard dumps, with optional KeyArea prepending and certificate removal, as well as NSP dumps for digital and gamecard-based titles. Individual NCA and filesystem section dumping can be performed against a selected title and, where needed, a selected NCA. The documentation also lists an eMMC browser based on `FsStorage` and `FatFs`, including access to files protected by the FS sysmodule at runtime.
This utility is aimed at users who understand Switch storage structures and can interpret what the output represents. The repository does not describe it as a general backup application with automated scheduling, retention policies, or a documented restore workflow. A successful file dump is therefore only the first part of the use case. The result depends on selecting the correct content layer and knowing whether it is intended as an XCI, NSP, raw filesystem image, extracted directory, certificate, ticket, or smaller metadata artifact.
Rewrite architecture and dump data flow
The default `rewrite` branch is an event-driven homebrew application. Its documented architecture includes background threads for gamecard insertion and ejection, gamecard metadata parsing, USB ABI sessions, and USB Mass Storage devices. This indicates that insertion state and transfer sessions are handled as runtime events rather than through a single static dump routine. USB ABI support allows dump data to be written directly to a PC, while USB Mass Storage support extends that path to FAT, NTFS, and EXT volumes through `libusbhsfs`.
For gamecards, the implementation exposes many layers individually. These include the card header, certificate area, plaintext CardInfo, InitialData, CardIdSet, Hash FS partition, and Lotus ASIC firmware loaded from RAM. The tool can emit XCI dumps and separately extract or preserve raw forms of internal partitions. It also detects when an inserted card requires a LAFW update.
For installed titles and title updates, the documented flow is layered. A title can be dumped as an NSP, individual NCAs can be selected, and an NCA can expose Partition FS or ExeFS, RomFS, or Patch RomFS. The rewrite also addresses NCA BucketTree variants such as Indirect, AesCtrEx, Sparse, and Compressed, including layered reads involving game updates. That storage handling matters because a title update can complicate access to the content visible for the installed title. The README also lists Control.nacp patching for screenshot, video, account, and HDCP restrictions during NSP dumping.
Several functions are marked implemented, including bulk queued NSP dumping and full system update dumps with checksum and signature verification. The project also includes a browser for Partition FS, Hash FS, and RomFS through custom devoptab wrappers. These mechanisms make the rewrite more than a one-format dumper, although the exact menu sequence for selecting them is not documented.
Obtaining a usable NRO build without a build tutorial
The project directs users to the GitHub releases page and specifically to the automatically updated `rewrite-prerelease` release tag for the latest NRO binary built from each new commit. A GitHub Actions workflow builds commits and updates the assets attached to that prerelease tag. This is the documented distribution path for users who do not want to compile the C source themselves.
The README does not provide a complete user-facing installation procedure. It also says that the rewrite lacks a proper UI, so it does not document a stable launcher sequence or a complete first-dump procedure. No launch command is supplied, and inventing one would risk giving readers a command that does not match the application. The release assets are therefore the only concrete acquisition step described by the project.
Building from source requires a devkitPro and libnx-oriented C environment because the `Makefile` imports `$(DEVKITPRO)/libnx/switch_rules`. The `Makefile` stops with an error when `DEVKITPRO` is unset. Its visible configuration also includes switches such as `NO_ICON`, `NO_NACP`, `APP_TITLE`, `APP_AUTHOR`, `APP_VERSION`, `APP_TITLEID`, `ICON`, and `CONFIG_JSON`. The build documentation does not show a complete invocation, target selection, dependency bootstrap, or deployment sequence, so a reproducible source-build tutorial cannot be confirmed here.
For the first real use, follow the controls presented by the downloaded NRO rather than an undocumented CLI syntax. The expected result depends on the selected path: an XCI or NSP for container dumps, an extracted directory or raw image for filesystem sections, and dedicated output for metadata such as certificates, tickets, gamecard headers, or system updates.
Gamecard handling, optional KeyAreas, and removal options
The gamecard feature set is one of the clearest reasons to choose nxdumptool over a conventional file browser. The rewrite supports XCI dumps and can optionally prepend a KeyArea or remove the certificate area. Those are explicit transformation choices, not labels inferred from the output format. A user comparing archives must therefore record whether KeyArea data was retained and whether certificates were removed.
The tool can also expose raw gamecard structures separately from the assembled XCI. Supported outputs include the header, certificate, plaintext CardInfo, InitialData, CardIdSet, and Hash FS partition. The Hash FS partition may be extracted or retained as a raw image. This granularity helps when container-level backup is not the only requirement, such as when separate metadata or partition evidence is needed.
Card parsing is intended to work even when a gamecard has never been used on the console. The documented background event system parses gamecard application metadata and tracks insertion and ejection. There is also explicit support for multigame gamecards and titles with multiple Program NCAs, with SM3DAS named as an example in the README. These cases matter because logic that assumes one game and one Program NCA can produce incomplete results.
A related runtime function checks whether an inserted card needs Lotus ASIC firmware, or LAFW, updated. The README lists LAFW blob dumping from RAM and detection of cards requiring an update. It does not document firmware replacement procedures or recovery behavior, so this feature should be understood as detection and data access rather than a complete card maintenance system.
USB dumping and installed-title transfer limits
The rewrite offers two documented USB-oriented routes. The USB ABI can dump data directly to a PC, which removes the need to treat the PC only as a mass storage endpoint. Separately, USB Mass Storage device support uses `libusbhsfs` and lists FAT, NTFS, and EXT filesystems. These are different mechanisms: one is a dump data transfer interface, while the other exposes supported storage volumes as devices.
The event-driven thread design is intended to coordinate USB ABI sessions and mass storage devices alongside gamecard activity. That matters during physical insertion and removal, when a dump process can encounter changing media state. The README does not document transfer interruption handling, resume behavior, speed limits, or recovery after a disconnected host, so those operational properties should not be inferred from the feature list.
Installed titles can be handled through queued NSP dumping, individual NCA export, and section extraction. The eMMC browser uses `FsStorage` and `FatFs` with a custom devoptab wrapper. According to the README, this permits copying files protected by the FS sysmodule at runtime. That capability is tied to running on the console and having the relevant services available; the documentation does not turn nxdumptool into a PC-side filesystem reader.
System titles, including qlaunch and shared fonts, are listed as supported. Full system update dumping includes checksum and signature verification according to the project documentation. That statement describes an implemented feature, but the README does not publish the exact UI workflow, verification report format, or failure messages.
Experimental rewrite versus released and legacy builds
The most useful alternative presented by the repository is a different branch or release choice, not a separate named product. The `rewrite` branch is for ongoing rewrite development and publishes proof-of-concept builds. The project says a release build that fails for a task such as RomFS dumping may work in a proof-of-concept build from this branch. This is useful when a release lacks a needed rewrite capability.
The trade-off is stability of presentation and predictability of maturity. The README directly calls the rewrite code highly experimental and says it lacks a proper UI. Its own feature legend marks system update dumps as implemented, but the new UI as only partially implemented. A checked status does not mean those paths have stable controls, stable documentation, or normal release packaging.
The old `main` branch is not a promising fallback for new requirements because the README says it will receive no further updates. The old branch and the newest rewrite build therefore serve different purposes. The release page offers named releases, while `rewrite-prerelease` tracks the latest commit build and is updated automatically. If predictable packaging matters, the project structure presents fewer guarantees than a finished, manually versioned release.
A PC-oriented workflow would be a different approach, but the README does not identify a comparable tool or document an alternative host-side method. It does describe USB transfer and USB mass storage, yet those are nxdumptool features and should not be mistaken for a separate host application.
Maintenance, licensing, and source-build obligations
The repository is not archived, and the last push was on 2026-08-04. That indicates source changes continue, but it does not convert the rewrite into a finished release. The visible release history is less frequent: `rewrite-prerelease` is listed as a 2023-10-15 latest commit build, while tagged releases include `v1.1.15` from 2022-02-26 and `v1.1.14` from 2021-04-21. The distinction matters because a current branch can contain work that is not represented by a conventional versioned release.
The project uses GPL-3.0. That identifier defines the license associated with the repository, but this review does not interpret its legal effect. Source-build users must retain and comply with the applicable license terms when handling or redistributing the code. The repository includes `LICENSE.md`, which is the appropriate file to consult for the exact terms.
Source builders also face C and libnx integration costs. The repository contains separate directories for host code, headers, libraries, generated templates, and application source. The README links submodules such as `libusbhsfs` in its feature description, while the repository also contains `.gitmodules`. A local build may therefore require source components that are not explained by a short installation paragraph in the project documentation. The `Makefile` confirms the devkitPro and libnx dependency, but it does not confirm a complete reproducible build recipe for a new user.
Editorial conclusion
Adopt the rewrite only if you need its documented gamecard, title, filesystem, or USB dump capabilities and can tolerate experimental software with an incomplete interface. Do not choose it for routine console management. Verify first that the selected release or proof-of-concept build supports your console, storage configuration, title layout, and intended dump format. On the documented evidence, nxdumptool stands out for its breadth of Switch-specific dumping, while its unfinished UI and prerelease status define the boundary for adoption.
Frequently asked questions
What does nxdumptool do?
nxdumptool generates dumps from Nintendo Switch gamecards and titles installed on SD or eMMC storage. The rewrite covers formats and structures including XCI, NSP, HFS0, ExeFS, RomFS, certificates, and tickets.
Is the nxdumptool rewrite ready for normal use?
The README describes the rewrite as highly experimental and says it lacks a proper UI. It also identifies the `rewrite-prerelease` NRO as a proof-of-concept path for testing newer capabilities.
Where can I download an nxdumptool NRO build?
The project directs users to the GitHub releases page and the `rewrite-prerelease` tag. A GitHub Actions workflow automatically updates that tag with the latest NRO built from each new commit.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/darkmattercore-nxdumptool)Was this useful?