darkmattercore / nxdumptool Goto Github PK
View Code? Open in Web Editor NEWGenerates XCI/NSP/HFS0/ExeFS/RomFS/Certificate/Ticket dumps from Nintendo Switch gamecards and installed SD/eMMC titles.
License: GNU General Public License v3.0
Generates XCI/NSP/HFS0/ExeFS/RomFS/Certificate/Ticket dumps from Nintendo Switch gamecards and installed SD/eMMC titles.
License: GNU General Public License v3.0
While trying to browser the logo partition of Smash, I got a fatal screen. It seems to crash in the getGameCardTitleIDAndVersion function. The stacktrace and memory dump is in the zip attached here.
Describe the bug
When trying to dump games on a secondary console, it would give an error
To Reproduce
Steps to reproduce the behavior:
Dump installed SD card / eMMC content
Any of the games downloaded from the eShop
Nintendo Submission Package (NSP) dump
Dump base application
(if updates are installed)Start NSP dump process
Screenshots
Will post in a few minutes.
Please complete the following information:
I noticed when dumping split xcis that the display is not updating which part it's dumping to, it will always say it's dumping to <title_name>.xc0 without incrementing to. xc1 or higher.
https://i.imgur.com/AQ45Q9O.jpg
https://i.imgur.com/7qEMc8g.jpg
you will add in the next release the auto update xml from nswdb.com and an auto update for the dumper itself?
Needs no additional explanation. I'll get on this when I have the time.
I'm still thinking about this one. The groundwork to add this feature is already done, technically.
It could be used, for example, to patch the StartupUserAccount
flag inside Control.nacp to remove the need to link an user account in certain games. There could be other use cases as well.
I'll leave this issue open for a while. Please share your opinions on this matter.
Instead of dumping to name.xc0
, name.xc1
, etc., it could be dumped to name.xci/00
, name.xci/01
etc, where name.xci
is a folder. You could then set the archive bit on name.xci
using Result fsdevSetArchiveBit(const char *path)
, which would make HOS treat name.xci
as a file and not as a folder. This could be done for dumping NSPs as well
Switch Firmware: 4.1.0
Method: Hekate (3.0)
Version: 1.0.5
Game Card: Super Mario Odyssey
Similar to #6, but I've checked my SD card and even reformatted it, and I still get this issue. I'm on Linux, and I used mkfs.vfat -F32 -s 64 /dev/sdk1
to do so.
Affects NSP/ExeFS/RomFS dumping. The user who reported this problem has a Switch console on 3.0.0. This seems to only affect gamecard NCA content retrieval.
Switchbrew states that this error occurs because the "gamecard is not initialized" (which, to be honest, got me perplexed).
I already tried a little bit of trickery, like reading a small data chunk from the gamecard using a IStorage instance, but nothing I came up with worked.
Fixing this without a proper correction would require rewriting NSP/ExeFS/RomFS dumping procedures to also work with a raw gamecard storage interface.
When I dump the romfs from Smash Ultimate it splits it into multiple files even though I have an exFat sd card and plenty of space. Also I can't use a split data.arc file for smash ultimate modding so it makes the data.arc file unusable.
I was interested in this tool as it looks like it could be a good replacement to guiding users through the tedious process of hactool.
When dumping from a BOTW (NA v0.0.0 cart) + Update (1.6.0) it processes a large chunk of Actor/Pack folder (4,847 actorpacks of the 7,203)
The last file processed seems to be Npc_oasis009.bactorpack
the file is not correctly dumped and that is when it appears to crash.
here's an atmosphere crash report if that'd be helpful.
01565712611_010000000000100d.log
it seems to be very consistent. If running from a game homebrew the Nintendo HOS handles it fairly well and closes the application. However, if launched from the gallery HOS crashes outright (resulting in the crash log above)
Let me know if there's anything else I could provide that'd help out.
Extra Info: SanDisk 64gb [10mb/s] SDXC formated in 2 32gb fat32 partitions
I am getting this error when trying to make an ExeFS section dump of the Splatoon 5.0.0 update (v2621440). What am I doing wrong?
Describe the bug
Can't dump installed games. prod.keys exists and is not empty but I get an error trying to dump the games: "loadExternalKeys: unable to parse necessary keys from 'sdmc:/switch/prod.keys'! (keys file empty?)"
To Reproduce
Steps to reproduce the behavior:
Thanks for this great tool! I‘m looking forward the batch-dumping. :)
Sadly my sd-card is really full. Is it possible to select a HDD as the destination for the dumps? I think this would be the best for backups. :)
i was dumping super mario odissey, when the dump is at 53% i get that error: Failed to write chunk to offset 0x00000000FFF18000. i tried with another dumpers, but i get the same error, is it the cart? im on 6.2.0
The text is much to small to read on TVs
The error mentions being above the cartridge's FW, but my system is on 5.1.0 so these 2.1 and 3.1 carts shouldn't be erroring.
Is network connectivity necessary to download the XML db?
Using version v1.0.5
Switch Firmware is the latest availble
SD Card: fat32 (So i use the split option when dumping
I've tried dumping the game twice now (restarting the deuce the first time to try and rule any random thing out), and the software would crash around the latter half of the dumping (Cant get specifics as I am not paying attention to the device while it dumps) process.
Logs attached are all that I could find in relation to me dumping the game.
2-dump-logs.zip
Note: I am on the latest switch version, which at the time of writing is 7.0.1 and I am using Atmosphere version 0.8.6
Edit: This is also happening for Super Mario Bros U Deluxe
Everytime I want to dump an update I get "listTitlesByType: title count mismatch in ncmContentMetaDatabaseListApplication". Dumping a DLC works fine.
Using the latest 1.1.1 of nxdumptool on a 8.1.0 console
Here you (@DarkMatterCore) suggested that the dumps made with this tool aren't 1:1 - they are partially decrypted and are probably missing "ECC data".
Would it be feasible to dump the carts encrypted - and would the resultant ROM dump be decryptable?
Would it also be feasible to dump the "padding" properly (what you think is probably "ECC data") - as I understand it, this data is dumped as "FF" bytes, but this is not an accurate reproduction of the data on the ROM chip.
When I try to choose the "Dump from SD / eMMC storage" option, the application just softlocks, showing "Please wait..." and then showing an error message about no applications found on SD / eMMC for 1 frame.
The current method of mounting HFS0 partitions to view/extract data from them doesn't work with the logo partition from type 0x02 gamecards.
There's supposedly a "MountLogo" IPC call available somewhere, but I still have to gather info about it.
If everything else fails, we can manually parse the filelist from the HFS0 header and display that.
Describe the bug
If I try to dump update v196608 (0.0.3.0) for the Amnesia: Collection as an NSP, the interface hangs at “Retrieving information from encrypted NCA content files...” And then NXDumpTool crashes. Sometimes Atmosphere crashes.
Edit: I should preface by saying that this is regarding a genuine eShop copy of the game.
To Reproduce
Steps to reproduce the behavior:
Please complete the following information:
Additional context
I think other title updates are ripping correctly. I’ll add further examples if I come across them.
As of v1.0.7, gcdumptool is only able to retrieve the metadata for the first regular application entry from any gamecard.
If a multigame cart is inserted (like Wheel of Fortune + Jeopardy!
and other physical releases), there'll be missing information in the main menu. Also, this could prevent a full XCI dump from being properly verified against the XML database if the Title ID from any of the other application entries is being used on it.
All dumping operations should work fine, nonetheless.
Through tons of trouble shooting I have determined what seems like an issue with how your tool splits the data.arc file when its dumped. Using the latest version dumping the romfs with an update and then moving,renaming, and then archiving in a folder of the same name so it can be used on a fat32 sd card for modding does not work. However if you conjoin the parts and then re-split them using splitNSP and do the same preparation steps, it works. The only difference thus far I can see between the files when they are split is there size. Here you can see the splitnsp one on the left and the original split ones from your tool on the right.
When compared using HxD it noted that while the files were identical the file sizes were different.
While I don't get how they can be identical if they are different sizes I have one last test to verify if its just size which is to use 7zip to split the files at using identical sizes that splitnsp uses to see if it really is just file size, but HxD seems to make that the case.
Hello,
I want to suggest a small change to functionality that would help a lot with file organization. As someone who does multiple dumps with the different settings in the app, I think having different file names for different XCI and NSP dumps would help a lot.
For example: Mario Kart 8 Deluxe v327680 (0100152000022000) (with Cert).xci
Mario Kart 8 Deluxe v327680 (0100152000022800) (UPD, unchanged RSA sig, with Ticket).nsp
Describe the bug
Invalid magic word for Program NCA section #0 PSF0 partition! Wrong KAEK ? (0xE2603D03)
Please complete the following information:
Additional context
I wanted to dump a specific game for future preservation purposes (Earthworms).
When I launch the dumping process, a message error appears.
I've redumped my personal prod.keys with the last LockPick_RCM for FW 9.1.0 and verified all the values.
No problem with any other games to dump, just that specific one.
Describe the bug
While trying to dump a bundled update (possibly DLC as well, but I can't remember/reproduce that currently), met with the error "invalid parameters to retrieve file from HFS0 partition!"
To Reproduce
Please complete the following information:
Additional context
Note: Installed NSP updates dump just fine. If downloaded from the eShop, the update will dump just fine from the orphan updates/DLC submenu. If downloaded from (elsewhere) and installed via Goldleaf, the update will dump just fine from the orphan updates/DLC submenu. But if the gamecard contains the latest update (like Sonic Mania Plus, Wargroove Deluxe Edition, and Hollow Knight, etc.) there is no way to trigger the eShop to download the update separately. So no current workaround has been discovered by myself, other than sourcing the updates from elsewhere and installing via Goldleaf, which will then produce a dump-able orphan update.
When multiple titles are installed on the console and you select a title but return back to the list (either by pressing B or because the dumping has finished), the "cursor" should be still at last selected title. Currently it's always back to the first item.
I recomend determining what to dump by parsing a file instaid of files on the disk to determine what titles need to be dumped. This will allow multi part dumping (if you dont have a sdcard big enough to store all your dumps at once.
It would be great to have an option to batch-dump all titles on the SD/eMMC. Maybe with filter options (only SD, only eMMC, only Base, only DLC, only Updates)? With an option to skip or override existing titles.
Currently dumping all the contents it pretty annoying because you have to dump them individually. (+ there is no indication of which titles where already dumped)
Describe the bug
I get this "Unable to find FS index from key" error whenever I try to dump my already installed games.
It only happens on 1.1.7. Version 1.1.6 seems to work fine. The procedure isn't finished yet, but it's at 3/108 at the moment.
To Reproduce
Steps to reproduce the behavior:
Please complete the following information:
Additional context
Here's my prod.keys file that I dumped today with Lockpick_RCM 1.7.1. I had to put a .txt at the end, otherwise GitHub wouldn't let me upload it.
Describe the bug
I have a designated Switch as my “ripping” Switch; its only current purpose is to rip gamecards, updates, and DLC. So not (currently) for playing and not for installing games onto.
Cannot dump updates/DLC.
On 9.0.1, AMS 0.9.4, nxdumptool 1.1.7 - run under Applet mode and run under Title mode.
To Reproduce
Have no games installed to NAND or SD card - only updates and DLC.
Open nxdumptool to dump updates/DLC.
Select “Dump SD card / eMMC content”
Press “Y” for orphaned updates/DLC.
Try to dump any updates/DLC - met with “unable to generate output dump name!"
Work-around
Install any game (possibly any application?) to NAND or SD card.
Return to step 3 in “to reproduce”.
Installed title should show up under “Dump SD card / eMMC content”.
Press “Y” for orphaned updates/DLC.
Updates/DLC should dump appropriately now.
Please complete the following information:
When i launch the app to dump a game, i insert a game (like always), but the "Please wait..." message lasts forever. i have to push the HOME button to exit.
Since CFWs (Hekate, SX OS) provide full permissions under FW >= 4.0.0, the application works fine while using them. However, lower firmware versions are also compatible with PegaSwitch, which is launched at runtime once the system has already booted and thus, doesn't offer the same access permissions.
There's a dumpXCI.js PegaSwitch script made by @AcK77 that works by performing a privilege escalation procedure to gain access to FS services. I have tried to port that code to libnx in order to make the application able to perform such procedure as well, but it hasn't worked for me.
Any help/hints on this matter would be greatly appreciated.
Yeah, we should also support these ones.
Similar to issue #23 and maybe #22 . It would be great to have some kind of indication of the list of titles on the SD/eMMC to show the user it already has been dumped (=> a file with the target filename exists on the sd card).
Context: Currently I am trying to dump all updates from my consoleand it's pretty hard to keep up with the updates I've already dumped.
I feel like it would be more consistent with the rest of homebrew to move the nxdumptool folder from the root of the SD card into switch/. (Mostly just my OCD though :P )
Does this padding exist on the ROM chip, or is it just added by this program?
If the latter, could there be an option for dumping the ROM without the padding?
Hey guys,
I have SysNAND and EmuNAND.
On EmuNAND I have the CFW (SX OS) with nxdumptool.
When I choose to "dump installed SD card / eMMC content" I only get the games I installed on emuNAND, but I want to dump a game update of graveyard keeper, which I bought in the eshop on sysNAND.
So I want to copy the update from sysNAND to emuNAND. Is this possible with nxdumptool?
Thanks in advance and best regards
Nick
I'm trying to dump some games & updates from a 8.1.0 EUR Switch console - for backup and future preservation researches.
Everything went fine on all the games apart for 3 of them.
They can't be backup'ed with NXDumpTool 1.1.5. and the program throws an error when I try to create an NSP file.
RomFS an ExeFS can be dumped for the three of them.
Tried to dump these problematic games and updates with SX Installer 1.52.
I could extract the three mentioned games + updates and verified them.
Seems to be a bug inside NXDumpTool that I want to report and to be checked.
Tried with latest release with each second it loses 1mibps in speed. Went from start of 10mibps down to 0 before my dump ever completed.
Hello, I would like to understand what this option corresponds to "A configurable option is also available to remove console specific data from dumped tickets." ?
Is information from my consoles kept in the XCI / NSP file that I dump?
Currently there is no warning when you dump a NSP twice in a row.
It would be great to have prompt where user can choose between overwriting and cancel.
This is a known bug and it's related to fsp-srv. The error displayed by Horizon is not a kernel panic and doesn't get logged in the error history. It doesn't force the user to reboot the console.
Just reinserting the game card seems to do trick. But an alternate solution would be preferrable.
When I attempt to dump base application NSP for Pokemon Sword I get the following:
decryptNcaHeader: invalid NCA header decryption parameters!
However I have had no issue dumping the update file.
nxdumptool: 1.1.6
switch: 9.0.1
hekate: 5.0.2
sd card: Samsung 128GB 100MB/s (U3) MicroSDXC Evo Select
Using the tool on BotW cartridge it shows "Please Wait" for a few seconds and then flashes an error and goes back to please wait. I saw something about sd card but could make out the full error.
Sorry for the blurriness. I had to take a video with my phone, dump that into a video editing software, step through frame by frame and take a screenshot of that lol
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.