gcdumptool 1.1.0 released: adds update/DLC dumping, a RomFS browser and more!

request.png

Whether you have a nice, big collection of Nintendo Switch cartridges or just a couple of select ones, you'll be delighted to know that @DarkMatterCore has released a very feature-packed update for his game card dumping tool!

It would be very difficult to go over each and every single addition, improvement and change introduced with gcdumptool version 1.1.0 (seriously, try to read the entire changelog if you're feeling brave) so I'll only touch the most important ones here. Let's start with the new features: remember how the last update added split NSP dumping? Well, split XCI support just received some of its features too, like setting the archive bit automatically for example! Game updates and DLC content can now be extracted from carts too, if they are available: new sub-menus have been added specifically for them with all their relative information and functions. Speaking of dumping stuff, you no longer need to bring your own prod.keys file to do so, as gcdumptool doesn't depend on it anymore! Explaining how that has been made possible can be a little tricky, especially for firmware versions >= 7.0.x however, simply put, the application derives and verifies the bare minimum necessary keys to work, then uses spl (the Switch's sysmodule that handles crypto operations) to do the rest. This solution is completely legal, as no copyrighted content is hardcoded, and it removes the need to use Lockpick to get your keys beforehand! If you like creating mods, you may be interested in the new built-in RomFS file explorer, too. Thanks to it, you can easily browse, extract, split and dump either entire partitions or select files from a cart's NCA RomFS section directly on your console, making it easy to grab all the things you need to create LayeredFS mods! Regarding improvements and bug fixes, the UI has been slightly changed, NSP dumping has been improved, ETA calculation is now properly fixed and crypto operations are now faster thanks to hardware acceleration.

As usual, you can read the full, official changelog here:

Changelog said:
  • Replaced the application icon with a new, stylish one made by RattletraPM. Thanks a lot!
  • Gamecard base application icons are now retrieved and displayed in the menu.
  • L/ZL/R/ZR buttons can now be used to change the displayed base application info if a multigame cart is inserted, instead of displaying everything right away.
  • The Nintendo Extension shared font is now used to display bitmaps representing controller buttons and sticks instead of just using text to reference them.
  • Replaced the mbedtls-based AES and SHA-256 implementations with functions from the hardware accelerated cryptography API from libnx.
  • Added an option to generate split XCI dumps using a directory with the archive bit set, just like split NSP dumps. It will only appear if "Split output dump" is enabled.
  • Fixed ETA calculation.
  • Enabled ETA calculation in full HFS0 partition data dumps.
  • Fixed CRC32 checksum calculation for gamecard certificate dumps.
  • Added Program NCA RomFS section parser:
    • Supports filesystem dumping, filesystem browsing, manual file dumping and file splitting. Enjoy datamining your gamecards!
    • Compatible with multigame carts. You'll be able to choose which base application RomFS will be dumped/browsed from a submenu.
    • Output files will be saved to: "sdmc:/[GameName] v[GameVersion] ([TitleID]) (RomFS)/".
  • Added high contrast directory/file icons from GNOME project to file browsing modes (HFS0 / RomFS).
  • Fixed the NSP generation code (based on 4NXCI / hacPack):
    • Delta Fragment NCAs are now discarded.
    • The SHA-256 checksum is recalculated for every NCA content after being modified, resulting in new NCA IDs.
    • The ACID public key is replaced in the NPDM section from the Program NCA. All the related NCA/PFS0 Superblock SHA-256 hashes are recalculated.
      • The NPDM signature in the Program NCA header is now replaced as well.
    • The content records from the Application CNMT are updated with proper SHA-256 hashes and new NCA IDs. All the related NCA/PFS0 Superblock hashes are recalculated.
    • NACP XMLs are now generated as well.
    • Because of all these changes, the CRC32 checksum can't be calculated until the dump procedure is complete.
      • If this option is enabled, the application will take extra time after the NSP dump has been completed to calculate the CRC32 checksum. Nonetheless, you'll be able to cancel this procedure.
      • A warning message will appear in the NSP dump menu if CRC32 checksum calculation is enabled to inform the user about this extra step.
      • Furthermore, the output CRC32 checksum will be different on each new dump. This is because the NPDM signature in the Program NCA header uses a random seed.
    • This effectively makes the generated NSPs only need ES patches to work. ACID patches shouldn't be needed anymore.
  • Added NSP dumping support for Patch and AddOnContent title types with gamecards that include bundled Updates/DLCs:
    • The information displayed in the main menu now shows how many Updates/DLCs are bundled in the inserted gamecard (per application and in total).
    • If a bundled gamecard update features a populated Rights ID bitfield, both its Ticket and Certificate will get added to the output NSP.
    • Additionally, the NSP dump menu has been divided in three subcategories: base application, update and DLC.
      • Each submenu will only appear if the inserted gamecard holds at least one title belonging to the category it represents.
      • If only the base application is included, like most gamecards, choosing the NSP dump option in the main menu will take you right to the base application dump menu.
      • Once you enter a submenu, you'll be able to choose exactly which title to dump belonging to that category.
    • Output update NSPs will not be modified in any way. Thus, unlike NSPs from base applications and DLCs, their CRC32 checksums will always be the same.
  • Fixed the minimum system version field size in the extended CNMT header struct. Thanks to @0Liam !
  • Changed the naming convention for output NSP dumps:
    • Base application: "sdmc:/[GameName] v[GameVersion] ([TitleID]) (BASE).nsp".
    • Update: "sdmc:/[GameName] v[UpdateVersion] ([UpdateTitleID]) (UPD).nsp".
      • If a matching base application isn't found: "sdmc:/[UpdateTitleID] v[UpdateVersion] (UPD).nsp".
    • DLC: "sdmc:/[GameName] v[DLCVersion] ([DLCTitleID]) (DLC).nsp".
      • If a matching base application isn't found: "sdmc:/[DLCTitleID] v[DLCVersion] (DLC).nsp".
  • The application is now able to retrieve the NCA header key and perform NCA key area decryption at runtime, using the SPL services. Thus, is isn't needed to run Lockpick beforehand anymore to dump NSPs (nor to dump/browse RomFS data).
  • If the inserted gamecard includes a bundled update, its version number will now be used in the output filename for XCI, HFS0 and gamecard certificate dumps.
  • Minor improvements to the file splitting code.
    • Additionally, the filename for the current part will now be displayed and updated for all operations if file splitting is enabled.
  • The application update feature will now use the launch path from argv if it's available. Otherwise, it defaults to "sdmc:/switch/gcdumptool.nro".
  • Cosmetic fixes to the UI layout.
  • NCM service resources are now properly closed.
  • Removed unnecessary service (de)initializations.
Big thanks to PatrickD85, unvaluablespace, wartutor and Slim45 for testing these changes!

On a last note, keep in mind that some functions (such as NSP dumping and the already mentioned RomFS browser) depend on your console's firmware: for example, you cannot decrypt a game that uses 7.0.x keys if your console is running an earlier version (while the opposite is true). Read the disclaimer in the thread linked below to find out more.

:arrow: Source
:arrow: Official GBAtemp thread
 
Last edited by RattletraPM,

JRoad

Developer
Developer
Joined
May 18, 2018
Messages
1,003
Trophies
0
XP
1,746
Country
Spain
Do carts come dlc on them sometimes? And just rely on a ticket to unlock?
DLCs on official carts are standard crypto, as games don't use tickets (titlerights crypto) they have a isgamecard=1 that could give you issues without conversion, though i have to say i installed dlcs without changing the isgamecard without issues before, unlike games\updates but don't think of that as a 100% sure thing.
In official gamecards basically games, dlcs = standard crypto, updates = titlerights crypto for updates they include a ticket or even there is a game that includes 5 games + 2 updates and 2 tickets for those.
 
  • Like
Reactions: DarkMatterCore

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    SylverReZ @ SylverReZ: Or Genesis.