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

Milenko

Well-Known Member
Member
Joined
Oct 16, 2017
Messages
3,549
Trophies
1
XP
5,135
Country
Australia
If it just exits back to the main menu when you try and install an nsp doesn't that mean my firmware is too low for the game?
 
Last edited by Milenko,

blaisedinsd

Well-Known Member
Member
Joined
Dec 6, 2012
Messages
1,147
Trophies
0
Age
46
XP
693
Country
United States
OK, tried goldleaf usb installing. First nsp worked. Second one always fails, tinfoil reports bad metadata. Third one worked but when I try to install the update so I dont get the nag it got corrupted. Am I just downloading bad nsp files or is it normal to be unreliable.
 

RobzInadE

New Member
Newbie
Joined
Mar 2, 2019
Messages
1
Trophies
0
Age
34
XP
46
Country
Sweden
Great app so far, however one perticular NSP keeps failing over USB install. It might be because the file is 7GB, but I'm not sure. It get's stuck after "Step 5 of 8", and the progress bar stops, as well as the "average speed".
I tried using an NSP splitter but it doesn't seem like Goldleaf has support for that, neither via USB nor the internal SD browser.

What do I do? I've tried the same NSP maybe 5 times and it keeps happening.

EDIT: Ok, so the split NSP installs nicely. But the USB doesn't work still. I forgot to click the "Ready for archiving" thingy in Windows after the split. Sorry! I'm still learning!
 
Last edited by RobzInadE,

DaniPoo

Well-Known Member
Member
Joined
Jan 2, 2013
Messages
871
Trophies
1
Age
34
XP
1,969
Country
You misunderstood me... SD installs work and USB don't.

He did not missunderstand you, USB installations if most beneficial for people with FAT32 and they cannot fit large NSP's on to their MicroSD cards due to filesize limitation.
What he meant was that since you use ExFAT you don't really need to bother with the USB install anyway since you can fit large files on the memorycard.

Also, you should probably quit using ExFAT if you wanna be on the safe side of things.
 

darcome

Member
Newcomer
Joined
Feb 26, 2019
Messages
11
Trophies
0
Age
41
XP
79
Country
United Kingdom
He did not missunderstand you, USB installations if most beneficial for people with FAT32 and they cannot fit large NSP's on to their MicroSD cards due to filesize limitation.
What he meant was that since you use ExFAT you don't really need to bother with the USB install anyway since you can fit large files on the memorycard.

Also, you should probably quit using ExFAT if you wanna be on the safe side of things.

USB is useful because let's say I have a 32GB game to install... If I do it with SD install, I need 64GB free on SD card to install it, because I need 32GB for the nsp and 32GB for the installed game. After that I can delete the 32GB of the install nsp and free them, but until it's installed, I need 64GB free instead of only 32GB if I use the USB methd... Unless I am completely wrong and even with USB installs you need 64GB of free space...
My assumption is that with USB installs, the PC is used as a "remote SD card" and therefore you can install games directly from the pc and therefore you don't need doubling the space on the sd card. Correct me if I am wrong
 

stick267

Well-Known Member
Member
Joined
Dec 17, 2018
Messages
598
Trophies
0
Age
32
XP
1,157
Country
United States
USB is useful because let's say I have a 32GB game to install... If I do it with SD install, I need 64GB free on SD card to install it, because I need 32GB for the nsp and 32GB for the installed game. After that I can delete the 32GB of the install nsp and free them, but until it's installed, I need 64GB free instead of only 32GB if I use the USB methd... Unless I am completely wrong and even with USB installs you need 64GB of free space...
My assumption is that with USB installs, the PC is used as a "remote SD card" and therefore you can install games directly from the pc and therefore you don't need doubling the space on the sd card. Correct me if I am wrong
You're correct, you don't need double the space when you use USB install. I would try to get it sorted out so that you can stop using exFat. Who knows maybe exFat is causing your USB install issues.

Since Goldleaf's USB installs are still pretty buggy I'd try out Fluffy/old Tinfoil.
https://gbatemp.net/threads/fluffy-a-tinfoil-and-goldleaf-gui.528930/

I don't need a GUI so I just use the old python script along with old Tinfoil and I have absolutely no issues installing via USB.
 
Last edited by stick267,

RedScorpion

Well-Known Member
Member
Joined
Dec 8, 2016
Messages
135
Trophies
0
XP
3,136
Country
Australia
using goldleaf nightly 0.5
copied some nsp files to my sd card to install from sd.
why does some of my nsp cant be seen in goldleaf while others just fine?
i tried to shorten the name of the nsp but still the same.
advice?
 

tekken999

Member
Newcomer
Joined
Mar 3, 2019
Messages
8
Trophies
0
Age
28
XP
60
Country
United States
does goldleaf have issues with uploading nsps that are a large size file? cause I can't get hyrule warriors without it dropping to 0 mb/s in the middle of the transfer
 

FanboyKilla

Well-Known Member
Member
Joined
Mar 9, 2019
Messages
287
Trophies
0
XP
1,084
Country
United States
Is it just me or is there no way to change the File/Folder sorting order in Goldleaf? For example, the first 10 folders that show up on my SD card are...

config
goldleaf
Nintendo
retroarch
switch
atmosphere
bootloader
EdiZon
ftpd
modules

From what I can tell they're being sorted by "creation date" and not by "name". I can't seem to find anything documented about any setting or way to change this. Has this not been implemented yet?
 

Rahkeesh

Well-Known Member
Member
Joined
Apr 3, 2018
Messages
2,160
Trophies
1
Age
41
XP
3,023
Country
United States
I'm getting the same behavior on the latest 0.5 nightly, atmos .85, fw 7.0.1, and a prod.keys generated by lockpick_rcm. Every USB install with Goldtree 0.4 fails with "firmware too low/missing sigpatches", yet the same files succeed when installed from FAT32 SD.
 

wicksand420

Well-Known Member
Member
Joined
Nov 13, 2016
Messages
2,801
Trophies
1
Age
38
XP
2,284
Country
United States
I'm getting the same behavior on the latest 0.5 nightly, atmos .85, fw 7.0.1, and a prod.keys generated by lockpick_rcm. Every USB install with Goldtree 0.4 fails with "firmware too low/missing sigpatches", yet the same files succeed when installed from FAT32 SD.
You should go to the github and file a issue, It is probably something wrong with the goldtree build.
 
Last edited by wicksand420,

Cyan

GBATemp's lurking knight
Former Staff
Joined
Oct 27, 2002
Messages
23,746
Trophies
4
Age
45
Location
Engine room, learning
XP
15,563
Country
France
From what I can tell they're being sorted by "creation date" and not by "name". I can't seem to find anything documented about any setting or way to change this. Has this not been implemented yet?
It's probably using the internal FAT32 creation order.
you could use tools to sort the FAT32, but you need to do it every time you add a new file.

I know FATSort, but it's for Linux.
there are tools for windows, but never tested them so I wouldn't want to recommend unknown/untested tools.
edit: here what I found anyway: Drive sort (french, and maybe not a portable app), Fat Sorter, yafs

I think we had a tool for 3DS. I'll post it here if I find it.
edit: https://www.maxconsole.com/threads/gateway-3ds-rom-sorter-beta.31452/
I don't know if it lists only .3ds files, or all files.

or you can wait for alphabetical sorting order added to goldleaf.
 
Last edited by Cyan,
  • Like
Reactions: FanboyKilla
D

Deleted User

Guest
I'm getting the same behavior on the latest 0.5 nightly, atmos .85, fw 7.0.1, and a prod.keys generated by lockpick_rcm. Every USB install with Goldtree 0.4 fails with "firmware too low/missing sigpatches", yet the same files succeed when installed from FAT32 SD.

try goldleaf 0.3 or wait for 0.5 when launch

do you have es_patches in atmosphere\exefs_patches\
do you have fs_patches in atmosphere\kip_patches\

make sure sigpatches are inside directories listed above
 

Rahkeesh

Well-Known Member
Member
Joined
Apr 3, 2018
Messages
2,160
Trophies
1
Age
41
XP
3,023
Country
United States
I don't have any fs_patches folder in kip_patches, just default_nogc. They aren't part of the latest kosmos or additional sigpatches zip. As mentioned I can install games from SD with goldleaf 0.5 and run them just fine, just no USB install. NXMTP USB transfers are also working fine.
 
Last edited by Rahkeesh,
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Skelletonike @ Skelletonike:
    3h left until work finishes, bah
  • Skelletonike @ Skelletonike:
    link doesn't work
    +2
  • Skelletonike @ Skelletonike:
    1H left, such a slow week.
  • Sonic Angel Knight @ Sonic Angel Knight:
    Okay, I had spaghetti :P
  • SylverReZ @ SylverReZ:
    Hope they made lots of spaget
  • K3N1 @ K3N1:
    Chill dog
  • SylverReZ @ SylverReZ:
    Chilli dog
  • Skelletonike @ Skelletonike:
    Damn, I'm loving the new zelda.
  • xtremegamer @ xtremegamer:
    loving the new zelda, i started a game, it was so fucking good, so i
    am waiting on my friend to get home so we can start a new one together
  • Skelletonike @ Skelletonike:
    I just dislike that they don't let me choose the voices before the game starts. Happened with botw as well, had to change to japanese and restart.
  • K3N1 @ K3N1:
    But the important question is can you choose gender
  • Skelletonike @ Skelletonike:
    Same way you can choose Gerald's gender.
  • Skelletonike @ Skelletonike:
    *Geralt, damn autocorrect.
  • Psionic Roshambo @ Psionic Roshambo:
    But can he be trans? Lol
  • K3N1 @ K3N1:
    Zelda transforms into link
  • Psionic Roshambo @ Psionic Roshambo:
    Link I'm not the princess your looking for.... *Pulls a crying game*
  • K3N1 @ K3N1:
    *skirt up* it's exactly what I always wanted
  • Skelletonike @ Skelletonike:
    Just scanned all my zelda amiibos, took a while but didn't get anything that cool, did get the lon lon ranch hylian fabrics though.
  • Skelletonike @ Skelletonike:
    It was pretty funny when I scanned wolf link and got a shit load of meat.
  • K3N1 @ K3N1:
    @Skelletonike, btw I ran that custom for mgs4 on the deck I'm amazed it got that far in game
  • K3N1 @ K3N1:
    Plug in*
    K3N1 @ K3N1: Plug in*