Goldleaf - A Nintendo Switch multipurpose homebrew tool




Goldleaf is multipurpose homebrew tool for Nintendo Switch.​


Features

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

These are its main features:

  • SD card browser: A simple but fully equiped file browser for the SD card, supporting several file formats (such as NSP, NRO, NACP, NXTheme, JPEG, tickets...), and with support for copying, pasting, renaming, deleting and creating files and directories.

  • Console memory browser: Same browser but to be used with NAND partitions, which also warns when writing or deleting content as it can be dangerous.

  • Remote PC browser: Via this feature, one can browse a PC's drives like any other filesystem, connected by a USB-C cable.

  • Content manager: Browse any kind of content in your SD card, console memory or game cartridge. You can browse all the NCAs, and as title options, you can remove the content, or export it as a NSP. NAND SYSTEM contents (system titles or contents) aren't allowed to be deleted. Invidual contents such as updates or DLC can be removed individually.

  • Ticket manager: Browse all tickets, both common and personalized. You can remove them, but an extra warning will be displayed when attempting to remove tickets being used by some content.

  • Web browser (web applets): Using the console's web applets, Goldleaf allows to search and navigate through web pages. If Goldleaf is launched through hbmenu as a NRO, WifiWebAuth applet will be used, which tends to fail sometimes, along with fewer features, such as lack of video support.

  • User account manager: Select a user account, and easily change things as the user's nickname or even delete it. Via the file browsers you can replace a user's icon with a JPEG image, but it can be a risky action. The icon needs to be a valid JPEG, with 256x256 dimensions. Goldleaf checks if the icon is valid to replace the other one.

  • Console information: Simple menu to see current firmware string, and the total free and occupied size on SD card and console memory.
Among all this features, Goldleaf is a very intuitive tool, with a fancy UI, and fully translated into 5 different languages: English, Spanish, German, French and Italian.

Common controls
  • (L-stick / D-pad) Move through the current menu

  • (R-stick) Move slightly faster through the current menu

  • (ZL / ZR) Show a dialog to shut down or reboot the console.
NRO version
  • (+ / -) Exit the application in order to return to hbmenu.
Disclaimer

NSP installs

Always keep in mind that installing NSPs can be a very easy way to get banned. If you use airplane mode and special DNSs like 90DNS, there is a smaller chance to get banned.

NEVER install untrusted NSPs. Goldleaf can identify (according to the NSP's application ID) whether the NSP is a homebrew NSP (IDs starting with "05", usually for forwarders), or a regular title (official ID range just allows IDs starting with "01")

Tickets

Tickets represent a game purchase, but technically speaking, you can't boot a title if the ticket isn't present (in case the title requires the ticket).

NSPs which don't have (nor require) a ticket are "standard crypto" NSPs. Standard-crypto titles aren't offical (usually reconverted content to avoid importing tickets).

Goldleaf will display whether a ticket is present or not, and if so, it's titlekey. Titlekeys are required to decrypt and access titles' content which require a ticket. Otherwise, they are undecryptable, hence unlaunchable by the system.

TL;DR: Always try to avoid untrusted NSPs, and if you go ahead and install CDN NSPs with tickets, avoid going online, or use special tools such as 90DNS, or you'll be banned for sure.

Forwarding

Goldleaf is released along with a NSP, in order to launch Goldleaf as an installed title, and take advantage of extra RAM and features such as web browsing.

The NSP is a forwarder since 0.6, what means that, instead of having Goldleaf's source inside the NSP, it simply loads the NRO from the SD card, meaning that only the NRO should be updated instead of having to reinstall the NSP.

Goldleaf's forwarding code tries to locate Goldleaf (Goldleaf.nro) in sd:/switch/ and sd:/switch/Goldleaf/. If it isn't found, an error message is displayed.

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:

Code:
{
   "general": {
       "customLanguage": "es",
       "keysPath": "/switch/prod.keys",
       "externalRomfs": "/switch/Goldleaf/theme/rom"
   },
   "ui": {
       "background": "#aabbccdd",
       "base": "#aabbccdd",
       "baseFocus": "#aabbccdd",
       "text": "#aabbccdd",
       "menuItemSize": 80
   },
   "installs": {
       "ignoreRequiredFwVersion": true
   }
}

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.

Known bugs
  • On Atmosphère and SX OS, exiting Goldleaf via HOME menu (as a NRO) seems to crash the system on 7.x firmwares.

  • Remote PC browsing in general seems to have several bugs, most of them related to the UI system.
Contributing

If you would like to contribute with new features, you are free to fork Goldleaf and open pull requests showcasing your additions.

If you just would like to suggest new ideas, but without actual code implementations, you're free to open an issue. Please try not to duplicate those, if the idea or problem is already reported in another issue.

Translations

Read this before making any new translations:

  • Goldleaf's aim is to, mainly, support languages supported by the console itself, so those not yet supported by Goldleaf and which aren't supported by consoles should have less priority and won't be probably accepted.

  • UI (Plutonium) lacks special UTF16 characters, so some languages like Russian or Korean will not work, at least on the UI's current state.
Credits and support

Credits

The main concepts of Goldleaf are and have been developed by me (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.

  • Simon for his libusbK implementation for C#, which has made Goldtree client possible.

  • shchmue and blawar for the system to get titlekeys without breaking processes, found in Lockpick.

  • Translators: unbranched and exelix for Italian, tiliarou and FuryBaguette for French, and LoOkYe and C4Phoenix for German.

  • All the testers, for reporting bugs and helping a lot with the project's development.
Discord server and beta testing

If you would like to be more informed about my projects' status and support, you should check my Discord server. It's a simple server for Nintendo hacking and homebrew, mainly focused on my projects. If you would like to be a beta-tester, then this is what you're looking for.

Enjoy this amazing homebrew!
 
Last edited by XorTroll, , Reason: 0.6 README changes

Minkaxy

Active Member
Newcomer
Joined
Nov 19, 2018
Messages
26
Trophies
0
Age
38
XP
295
Country
Thailand
Is there a way to install many .nsp file via the usb?
Because I have a game that have many .nsp such as update file dlc.
 

Karcz

Member
Newcomer
Joined
Jun 18, 2018
Messages
7
Trophies
0
XP
93
Country
United States
Last edited by Karcz,

RiPPERD

Well-Known Member
Member
Joined
Oct 17, 2018
Messages
329
Trophies
0
Age
35
XP
900
Country
United Kingdom
Welp guys, I have a surprise for all of you: Goldleaf as qlaunch coming soon!


not sure if i like the idea of this personally... unless i missed something? but the concept is great and well done mate i hope to see your own cfw in the future maybe?
 

alantgw

Well-Known Member
Member
Joined
Dec 1, 2014
Messages
141
Trophies
0
XP
585
Country
Hong Kong
Welp guys, I have a surprise for all of you: Goldleaf as qlaunch coming soon!


May I ask what is the pro for Goldleaf as qlaunch?
Also a suggestion - ask for confirmation when deleting a file. I intended to delete a file using Goldleaf but I was surprised that it did not ask for confirmation before deleting, while usually other applications do.

btw, great job and looking forward to XCI installation support.
 

SexiestManAlive

The key that lights the dark
Member
Joined
Apr 18, 2016
Messages
558
Trophies
0
Age
20
XP
1,851
Country
United States
so i messed up, i changed my icon to one of my album photos because i wanted to see what happened, and now my switch crashs anytime i start a game or try to change the icon back, is there anyway to change it back?
 

KTroopA

Well-Known Member
Member
Joined
Mar 15, 2007
Messages
594
Trophies
0
XP
940
Country
I have error below when trying to install NSP from USB.

[gtree:Error] No USB connection was found. Make sure you have Goldleaf open before running Goldtree.
Press any key to exit...

what is wrong please? I have started the nro app first and then launched the windows exe, same error each time
 

designgears

Well-Known Member
Member
Joined
Aug 8, 2016
Messages
289
Trophies
0
XP
640
Country
United States
I have error below when trying to install NSP from USB.

[gtree:Error] No USB connection was found. Make sure you have Goldleaf open before running Goldtree.
Press any key to exit...

what is wrong please? I have started the nro app first and then launched the windows exe, same error each time

You need to follow the rest of the directions and install the driver.
 
  • Like
Reactions: KTroopA

XorTroll

Switching between my 2DS and my Switch
OP
Developer
Joined
Dec 28, 2017
Messages
636
Trophies
1
Location
Nowhere
Website
github.com
XP
4,105
Country
Spain
Guys, I'm so glad to announce that v0.4 has been released!

Changelog:

  • Atmosphère v0.8.3's new feature, payload rebooting from the console itself, is also supported by Goldleaf! Binary *.bin files will have an option to be launched as payloads if Atmosphère is detected running.

  • The old title manager has been refactored. Now, it can show ANY kind of content located in any partition, from system data archives to DLCs and updates, and regular titles. All of them can be removed individually.

  • Goldleaf has the ability to detect the CFW currently running, which gets displayed on the CFW menu.

  • Now the web browser is accessible even if Goldleaf isn't an installed title. It will use the WifiLogin web-applet, which has some limitations, but at least it's something.

  • Content mounting (like NAND when being browsed or the NSPs when being installed) has been refactored to minimize any filesystem issues.

  • Some icons were changed: NROs have a new icon, NCAs have now the old NROs icon...

  • NSP exporting now warns with titles which are 4GB or higher, for risk preventing.

  • USB has been quite improved with experimental threads' syncing, which seems to make it more stable.

  • Regular installs check for free size now.

  • Tickets show if they're used or not, so unused ones should be safe to remove.

  • Both USB and regular installations abort if the title is already installed.

  • Minor fixes and corrections on texts and several options.
(just saying, now the installable version has also those support information docs you can access from HOME menu)
 
General chit-chat
Help Users
  • Psionic Roshambo @ Psionic Roshambo:
    For some it's a midget getting tortured, others it's seeing a clown hit by a train...
    Gift
  • Imriy @ Imriy:
    dopamine injections
    Gift
  • Dark_Phoras @ Dark_Phoras:
    To be happy you must give your best possible performance and reach maturity in every dimension of life
    Gift
  • Psionic Roshambo @ Psionic Roshambo:
    Lol Dark I agree
    Gift
  • KenniesNewName @ KenniesNewName:
    Drugs also help with happiness
    Gift
  • Dark_Phoras @ Dark_Phoras:
    No, they don't
    Gift
  • KenniesNewName @ KenniesNewName:
    My Doctor says they do
    Gift
  • Dark_Phoras @ Dark_Phoras:
    Happiness is never looking back and try to return to something we've left behind. It's to be honest with ourselves and discard what doesn't matter
    Gift
  • Psionic Roshambo @ Psionic Roshambo:
    Dr says do cocaine about it
    Gift
  • KenniesNewName @ KenniesNewName:
    Flordia gave studies meth was bad
    Gift
  • Psionic Roshambo @ Psionic Roshambo:
    Dark that's excellent, have you been talking to my fiancee? Lol
    Gift
  • Psionic Roshambo @ Psionic Roshambo:
    Kennie if meth was sooo bad Florida Man wouldn't be a super hero :P lol
    Gift
  • Dark_Phoras @ Dark_Phoras:
    I don't know. I've been through a lot of therapy, though
    Gift
  • KenniesNewName @ KenniesNewName:
    Do what Snoop does and lace weed with shrooms
    Gift
  • Psionic Roshambo @ Psionic Roshambo:
    We have been fighting a lot lately, she was talking to her ex husband and flirting with guys and I caught her, then I became just a monster... Very upset and spying and accusing her of stuff literally almost insane lol
    Gift
  • Psionic Roshambo @ Psionic Roshambo:
    I feel bad after she told me she stopped, because that's all I wanted
    Gift
  • Dark_Phoras @ Dark_Phoras:
    It's a hard situation. You didn't act in the best way and it weighs on you. I don't know, maybe you need time to forgive yourself, and some action from her that you don't ask that reassures her love and commitment
    Gift
  • KenniesNewName @ KenniesNewName:
    Ask any woman how she would feel if she never saw you again and stare at her to see how honest her facial expressions are about it women say shit just to make the guy look guilty
    Gift
  • Dark_Phoras @ Dark_Phoras:
    What you can do about it, Psionic, is maybe sit with her and calmly share how each action of hers made you feel, and ask her if there's anything she's missing from you or that's bothering her.
    Gift
  • KenniesNewName @ KenniesNewName:
    if you gave a woman your all and she wants to flirt with ex's that's on her and probably best to move on if she's just saying things to make you feel better
    Gift
  • Psionic Roshambo @ Psionic Roshambo:
    Yeah she is a tough read,
    Gift
  • Dark_Phoras @ Dark_Phoras:
    Being so resolute will probably reduce the chances of finding a happy relationship. We must give people space to grow, feel, doubt, question, and we must stand by them, reassure them, love them. And they should do the same to us.
    Gift
  • Psionic Roshambo @ Psionic Roshambo:
    I said a million things about how I felt lol
    Gift
  • Psionic Roshambo @ Psionic Roshambo:
    Yeah we are "starting fresh" her words
    Gift
  • Psionic Roshambo @ Psionic Roshambo:
    I am willing to forgive her, me that's the tough one, I failed hard on ohhh so many levels lol
    Gift
    Psionic Roshambo @ Psionic Roshambo: I am willing to forgive her, me that's the tough one, I failed hard on ohhh so many levels lol