Goldleaf Switch

From GameBrew
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:
    • Fully featured filesystem browser.
    • Supports various locations/devices including SD card, console memory, remote systems, USB drives, Game savedata, and NRO homebrew RomFs.
    • Basic file and directory operations (create, delete, copy, rename, etc.).
    • Install NSP packages of applications, games, updates, DLC, etc.
    • Launch other NRO homebrews and mount their RomFs.
    • Execute .bin files as RCM payloads.
    • Set JPG/JPEG files as user icons.
    • Content information view, uninstallation, export to NSP, and more.
  • Content Manager:
    • Manage content such as programs, updates, DLC, etc.
    • View content information, uninstall content, export existing contents to NSP, and more.
    • Mount savedata to navigate (check the Content explorer above).
    • Remove tickets, reset launch version, check unused tickets (use with caution), and more.
  • Web Browser (when launched as app):
    • Make use of the console's web applet.
    • Browse user-submitted URLs.
    • Create and save bookmarks.
  • Account Manager:
    • Manage user accounts.
    • Change nickname, view icon, delete user (if more than one exists).
    • Note: to change the user's icon, check the Content explorer above.
  • Amiibo Dump:
    • Create a virtual amiibo for emuiibo from a real amiibo figurine.
  • Settings:
    • Check system and Goldleaf settings.
    • Firmware and updates information.
    • Memory status (free and total space on different locations).
    • Goldleaf settings from settings.json.
  • Updates: Check for Goldleaf updates.
  • About: check Goldleaf's version and how it was launched (as an applet or an application)
  • Language Support: Goldleaf has been translated into 11 different languages, including English, Spanish, German, French, Italian, Dutch, Japanese, Portuguese, Korean, traditional Chinese, 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.

Quark needs Java 9 or greater to run, check the guide on readme.

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",
        "use12hTime": true
    },
    "ui": {
        "background": "#aabbccdd",
        "base": "#aabbccdd",
        "baseFocus": "#aabbccdd",
        "text": "#aabbccdd",
        "menuItemSize": 80
    },
    "installs": {
        "ignoreRequiredFwVersion": false,
        "copyBufferMaxSize": 10485760
    },
    "export": {
        "decryptBufferMaxSize": 10485760
    },
    "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.

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)

Screenshots

goldleafnx2.pnggoldleafnx3.png

goldleafnx4.pnggoldleafnx5.png

goldleafnx6.pnggoldleafnx7.png

goldleafnx8.png

goldleafnx9.png

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: