4af144486a
These changes include: * gamecard: add GAMECARD_HEADER2_OFFSET and GAMECARD_HEADER2_CERT_OFFSET macros. * gamecard: rename GAMECARD_CERTIFICATE_OFFSET macro to GAMECARD_CERT_OFFSET. * gamecard: add GameCardFlags2 enum. * gamecard: update GameCardHeader struct to reflect the new Flags2 field. * gamecard: add GameCardHeader2, GameCardHeader2EncryptedData and GameCardHeader2Certificate structs. * gamecard: update gamecardReadHeader() to check if the `Has10Certificate` flag is set in the gamecard header. If it is, the function will read and log both Header2 and Header2Certificate areas, and it will also attempt to verify the RSA signature from the Header2 area. * gamecard: if a Header2 area is detected, an error will always be triggered for the time being. If anyone comes across this error, please get in touch me. * gamecard, fs_ext: fix signature field comments. |
||
---|---|---|
.github | ||
code_templates | ||
host | ||
include | ||
libs | ||
romfs | ||
source | ||
.gitignore | ||
.gitmodules | ||
build.sh | ||
LICENSE.md | ||
Makefile | ||
README.md | ||
todo.txt |
nxdumptool
Nintendo Switch Dump ToolOfficial Discord server: https://discord.gg/SCbbcQx
This branch is used for the development of the ongoing nxdumptool rewrite. Code is highly experimental and lacks a proper UI at this time, but it has been thoroughly tested and should be safe to use. Proof-of-concept (PoC) builds are provided to test different aspects of the codebase.
If a nxdumptool build from the releases page isn't working for whatever you're trying to do (e.g. RomFS dumping), odds are it will work with a PoC build from this particular branch. The old branch will not receive any further updates.
A GitHub workflow is used to automatically build each new commit -- feel free to check it out. Furthermore, the assets from the rewrite-prerelease tag are automatically updated by this workflow, so you can always find the latest NRO binary there.
This readme will be updated whenever the rewrite branch is ready for a proper release.
Currently planned changes for this branch include:
- USB ABI (dump data directly to a PC). ✅
- USB Mass Storage device support (FAT, NTFS, EXT) via libusbhsfs. ✅
- NX Card Image (XCI) gamecard dumps, with optional KeyArea prepending and certificate removal. ✅
- Gamecard header dumps. ✅
- Gamecard certificate dumps. ✅
- Plaintext gamecard CardInfo area dumps. ✅
- Gamecard InitialData area dumps. ✅
- Gamecard CardIdSet dumps. ✅
- Gamecard Hash FS partition dumps (in both extracted and raw inage forms). ✅
- Lotus ASIC firmware (LAFW) blob dumping from RAM. ✅
- Properly detect if an inserted gamecard requires a LAFW update. ✅
- Nintendo Submission Package (NSP) dumps for both digital and gamecard-based titles.
- Individual Ticket dumps from digital titles, with support for temporary/volatile tickets with AES-128-CTR crypto data kept in RAM.
- Individual Nintendo Content Archive (NCA) dumps from a specific title. ✅
- Individual NCA filesystem section (Partition FS / ExeFS, RomFS, Patch RomFS) dumps from a specific NCA belonging to a specific title, in both extracted and raw image forms. ✅
- Better support for NCA BucketTree storages (Indirect, AesCtrEx, Sparse, Compressed), as well as better handling of multi-layered reads in combination with game updates. ✅
- System title support (e.g. dump qlaunch, shared fonts and much, much more at runtime). ✅
- Better memory handling while dealing with compressed NRO binaries. ✅
- Event-driven background threads to manage gamecard insertions/ejections, gamecard application metadata parsing (e.g. the game would be properly identified even if its gamecard has never been used on your console), USB ABI sessions and USB Mass Storage devices. ✅
- Improved support for multigame gamecards and titles with more than one Program NCA (e.g. SM3DAS). ✅
- Control.nacp patching while dumping NSPs (lets you patch screenshot, video, user account and HDCP restrictions). ✅
- Partition FS / Hash FS / RomFS browser using custom devoptab wrappers. ✅
- Full system update dumps. ❌
- Batch NSP dumps. ❌
FsFileSystem
+FatFs
based eMMC browser using a custom devoptab wrapper (allows copying files protected by the FS sysmodule at runtime). ❌- New UI using a customized borealis fork. ⚠️
Legend:
- ✅ - Implemented
- ⚠️ - Partially implemented
- ❌ - Not implemented