Goldleaf Switch

From GameBrew
Revision as of 01:48, 20 August 2023 by HydeWing (talk | contribs)
Goldleaf
Goldleafnx.png
General
AuthorXorTroll
TypeUtilities
Version1.0.0
LicenseGPL-3.0
Last Updated2023/08/20
Links
Download
Website
Source
Support Author

Goldleaf is multipurpose homebrew tool for Nintendo Switch, originated from NSPower.

It has a very similar concept to FBI, which is a similar tool for Nintendo 3DS homebrew.

Features

  • Content explorer - An easy-to-use but fully featured filesystem browser.
    • Supported locations/devices:
      • SD card.
      • Console memory (SAVE, SYSTEM, USER and PRODINFOF partitions).
      • Remote systems (via remote tools like Quark).
      • USB drives (thanks to libusbhsfs).
      • Game savedata (check below how to mount it).
      • Note: game savedata will be automatically unmounted when Goldleaf is exited.
    • Features:
      • Basic file operations: create, delete, copy, rename, view as hex/text, get size, etc.
      • Basic directory operations: create, delete, copy, rename, (un)set archive bit, get full size, etc.
      • Install NSP packages as applications/games, updates, etc. (Note: use this carefully and make sure you know what you're doing).
      • Launch other NRO homebrews.
      • Execute .bin files as RCM payloads.
      • Set JPG/JPEG files as user icons (Note: use this carefully and make sure you know what you're doing).
  • Content manager - An easy-to-use but fully featured content manager:
    • Basic content (application/title, update, DLC, etc.) operations:
      • View content information (ID, size, version, play stats...).
      • Uninstall/completely remove the content (won't remove savedata).
      • Export to NSP package.
      • Mount savedata to navigate it (check the Content explorer above).
      • Remove ticket if present (Note: use this carefully and make sure you know what you're doing).
      • Reset launch version (useful to be able to play a base game after an update has been removed).
      • Note: some of this operations are not available with system titles or gamecart titles.
      • Check unused tickets, and remove them (Note: use this carefully and make sure you know what you're doing).
  • Web browser - Makes use of the console's web applet:
      • Browse user-submitted URLs.
      • Create and save bookmarks.
  • Account manager - Select a user (or uses the selected one) and manage it:
    • Change nickname.
    • Delete user (only if there is more than one in the system).
    • Note: to change the user's icon, check the Content explorer above.
  • Amiibo dump - Create a virtual amiibo (for emuiibo) from a real amiibo figure.
  • Settings - Check both system and Goldleaf settings:
    • Firmware and updates:
      • Check current firmware information (version, hash, key generation)
      • Check for pending updates, and remove them if present
      • Export current firmware or pending update data
    • Memory: check free and total space on different locations
    • Goldleaf settings: check settings present in settings.json
  • Updates - check for latest Goldleaf updates, and if a new release is out, update to it
  • About - check Goldleaf's version and how it was launched (as an applet or an application)
  • Goldleaf currently supports 8 different languages: English, Spanish, German, French, Italian, Dutch, Japanese, Portuguese and simplified Chinese.

User guide

Disclaimer

Installing NSP Packages

Always keep in mind that installing NSP packages increase your risk of getting banned from online services. If you use airplane mode and special DNSs like 90DNS, there is a smaller chance to get banned.

Never install NSPs from untrusted sources, as Goldleaf doesn't perform any special verification, so please be very careful about installing untrusted packages.

Understanding Tickets

Tickets serve as proof of purchase for games. Without a ticket, you won't be able to launch a game that requires it (official titles require them). NSP packages which don't have (nor require) a ticket are standard-crypto.

Goldleaf will indicate whether a ticket is present for a title and its corresponding titlekey. You need the titlekey to decrypt and access the game's content. Without it, the game is undecryptable and cannot be launched on your device.

Quark and remote browsing

Quark is a PC tool, with a fancy UI and made in Java, in order to help Goldleaf with the remote PC option. It supports Windows, Linux and Mac.

For details about how to properly setup Quark and USB, check this small guide.

Settings

Goldleaf supports the customization of colors, assets and other options via a JSON file located at Goldleaf's folder: sd:/switch/Goldleaf/settings.json.

Sample

This is an example JSON for Goldleaf settings:

{
    "general": {
        "customLanguage": "es",
        "externalRomFs": "/switch/Goldleaf/theme/rom"
    },
    "ui": {
        "background": "#aabbccdd",
        "base": "#aabbccdd",
        "baseFocus": "#aabbccdd",
        "text": "#aabbccdd",
        "menuItemSize": 80
    },
    "installs": {
        "ignoreRequiredFwVersion": false
    },
    "web": {
        "bookmarks": [
            {
                "name": "Google",
                "url": "https://www.google.com"
            },
            {
                "name": "GitHub",
                "url": "https://www.github.com"
            }
        ]
    }
}

If a certain attribute isn't present Goldleaf will use default values. For colors, Goldleaf will initially load default light/dark themes according to the console's theme color, and later, colors present in the JSON will be used instead of default theme ones.

Notes

Via RomFs replacement, when Goldleaf tries to locate, for instance, romfs:/FileSystem/FileDataFont.ttf resource font, if romfsReplace is true and romfsReplacePath is, for instance, /switch/Goldleaf/testromfs, Goldleaf will look if sd:/switch/Goldleaf/testromfs/FileSystem/FileDataFont.ttf exists and use it if so, otherwise will use RomFs's one.

So, via this configurations, UI's images, resources, element sizes and even translations (using custom JSON translations) can be used, plus some more assets which will be added in future updates.

Screenshots

goldleafnx2.pnggoldleafnx3.png

goldleafnx4.pnggoldleafnx5.png

goldleafnx6.pnggoldleafnx7.png

goldleafnx8.png

goldleafnx9.png

Controls

Common:

LR Stick or R Stick or D-Pad - Move through the current menu

ZL/ZR - Show a dialog to shut down or reboot the console

Minus - Show a dialog with this control information

Plus - Exit the application in order to return to hbmenu

Content explorer:

X - Unmount the selected location (only when a savedata location is selected)

Y - Select folder (might take some time with folders with many sub-items)

Known issues

  • Exiting Goldleaf via HOME menu (as a NRO) seems to crash the system on 7.x firmwares due to a weird USB bug present on those specific versions. Any non-7.x firmware doesn't have this issue.
  • Apparently, after browsing (more than 4 directories?) and then browsing (specific?) empty directories crashes Goldleaf. This issue is strangely common and needs to be looked into.

Changelog

v1.0.0 2023/08/20

  • General
    • Some minor rewrites (in a probably unnoticeable way) improved the internals of the project
    • As always, all libraries were updated to their latest versions
  • Goldleaf
    • NSP installs have been (finally) made multithreaded - I've personally noticed up to 25% faster install times, but this speedups might be even greater ;)
    • Proper support for multi-program titles was added (for installing, browsing and exporting them correctly)
    • Switched to an alternative result system via arc, so that now more system results have proper names/descriptions for more readability
    • Improved various internal parts via caching or general optimizations
    • Added support to check titles with no data (archived content, gamecard titles without the gamecard inserted, actually corrupted content, etc.)
    • Extended keyboard support, now supporting other kinds of characters (particularly fixed support for account renaming)
    • Fixed an annoying ticket/cert exporting bug which caused invalid NSP exports being generated
    • Now one can mount and explore homebrew NROs' RomFs
    • Updated some language translations (thanks a lot to all the people who frequently help with that <3)
    • Added support for 12h/24h time display and configuration
    • Support for NXThemes was removed
    • Added a setting to allow custom NSP installation copy buffer sizes
    • Slightly improved random UI color generation
    • Fixed menu scrollbars behaving incorrectly in menus with too many items
    • Fixed a bug where one could exit Goldleaf in the middle of installing NSPs, copying files, etc.
    • Improved the file/directory copy menu and content export menu UIs
    • Added a setting to disable showing hidden files/directories (those starting by '.' in their name)
    • Now showing a deletion dialog after a NSP install is disabled by default, and a setting was added to enable/disable it
  • Quark
    • Fixed a bug where, when successfully reconnecting to Goldleaf after a connection loss, Quark would regardless close

v.0.10.1 2023/04/09

  • General:
    • Updated with latest libnx, correctly supporting up to 16.0.1 firmwares.
  • Goldleaf:
    • Fixed a bug where the location of multiple NSP installs would be incorrectly selected.
    • Content menu navigation was improved (exiting doesn't suddenly go back to the main menu, etc.)
    • Added support for Traditional Chinese.
    • Updated key generation information (for latest system versions).
    • Content menu options are properly set now: gamecard contents have proper options now, and other fixes/improvements in option code.
    • Dumping is now referred to as exporting, and exported contents now go inside /export instead of /dump.
    • Added menu for Goldleaf's own settings, currently only supporting selecting custom language support and ignoring required firmware versions on content installs.
    • Amiibo dumping has been improved, now allowing to dump the amiibo's application area (game savedata) if it exists, and its mii in the legacy 3DS format.
    • Redesigned ticket menu (now all tickets, even used ones, are shown), added support for exporting them.
    • Fixed a bug where cancelling URL text input when browsing a web page would attempt to open the web browser anyway.
    • Added support for language-specific icons in NSP installs, so that now Goldleaf attempts to find and show the icon corresponding to Goldleaf's language (which is by default the system language).
    • Fixed invalid/nonsense "game played since" values.
  • Quark:
    • From now on, Quack and Goldleaf will follow the same version numbering: this will thus be less confusing from now on. Therefore, Quark jumps from 0.5 to 0.10.1 in this release.
  • (No other changes here).

Credits

The main concepts of Goldleaf are and have been developed by XorTroll, but without the effort and support of many others, this project wouldn't have been a thing:

  • Adubbz and all the (old) Tinfoil contributors, for their huge work with title installing.
  • C4Phoenix, for his awesome work doing this project's logo, and the GIF displayed when launching the installed forwarder.
  • All the graphics except Goldleaf's logo (see credit above) were grabbed from Icons8.
  • 2767mr, for all the support given in Goldtree (former Quark tool).
  • developer.su for NS-USBloader, which helped a lot on the development of Quark, mainly on the usage of usb4java and the base of a multi-platform JavaFX Java project.
  • Simon for his libusbK implementation for C#, which has made Goldtree client possible.
  • shchmue for the system to get tickets from system save data without breaking anything, found in Lockpick.
  • WerWolv for the help with custom exception handling, avoiding those frustrating fatals.
  • Translators: unbranched and exelix for Italian, tiliarou, FuryBaguette and GOffrier#9688 for French, and LoOkYe and C4Phoenix for German.
  • All the testers, for reporting bugs and helping a lot with the project's development.

External links

Advertising: