Home

Awesome

<p align="center"> <img alt="Goldleaf" src="Goldleaf/romfs/Logo.png"> </p <p align="center"> <b>💜 thanks for 2M downloads 💜</b> </p <p align="center"> <a title="Discord" href="https://discord.gg/3KpFyaH"> <img alt="Discord" src="https://img.shields.io/discord/789833418631675954?label=Discord&logo=Discord&logoColor=fff&style=for-the-badge"> </a> <a title="Downloads" href="https://github.com/XorTroll/Goldleaf/releases/latest"> <img alt="Downloads" src="https://img.shields.io/github/downloads/XorTroll/Goldleaf/total?longCache=true&style=for-the-badge&label=Downloads&logoColor=fff&logo=GitHub"> </a> <a title="License" href="https://github.com/XorTroll/Goldleaf/blob/master/LICENSE"> <img alt="License" src="https://img.shields.io/github/license/XorTroll/Goldleaf?style=for-the-badge"> </a> </p> <p align="center"> <a title="Patreon" href="https://www.patreon.com/xortroll"> <img alt="Patreon" src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3DXorTroll%26type%3Dpatrons&style=for-the-badge"/> </a> <a title="GitHub sponsors" href="https://github.com/sponsors/XorTroll"> <img alt="GitHub sponsors" src="https://img.shields.io/github/sponsors/XorTroll?label=Sponsor&logo=GitHub&style=for-the-badge"/> </a> <a title="PayPal" href="https://www.paypal.com/donate/?hosted_button_id=PHQKFTY9AHPUU"> <img alt="PayPal" src="https://img.shields.io/badge/Donate-PayPal-green.svg?style=for-the-badge"/> </a> </p> <p align="center"> <a title="Ko-fi" href='https://ko-fi.com/xortroll' target='_blank'> <img alt="Ko-fi" height='35' style='border:0px;height:46px;' src='https://az743702.vo.msecnd.net/cdn/kofi3.png?v=0' border='0'/> </a> </p> <img src="Screenshots/Goldleaf.1.jpg" alt="drawing" width="auto"/>

<img src="Screenshots/Goldleaf.2.jpg" alt="drawing" width="250"/> <img src="Screenshots/Goldleaf.3.jpg" alt="drawing" width="250"/> <img src="Screenshots/Goldleaf.4.jpg" alt="drawing" width="250"/> <img src="Screenshots/Goldleaf.5.jpg" alt="drawing" width="250"/> <img src="Screenshots/Goldleaf.6.jpg" alt="drawing" width="250"/>

<img src="Screenshots/Quark.1.png" alt="drawing" width="250"/> <img src="Screenshots/Quark.2.png" alt="drawing" width="250"/>

<h3> Table of contents </h3>

Features

Goldleaf's concept is very similar to FBI's, a well-known Nintendo 3DS homebrew tool.

Thanks to all the various contributors to the different translations! 💜

Controls

Frequently asked questions

Make sure you check these before making an issue!

NSP installs

Disclaimer

NSP installing

Always keep in mind that installing NSP packages 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 won't do any special verification, so please be very careful about installing untrusted packages.

Tickets

Tickets represent a game purchase - technically speaking, you can't launch a title if the ticket isn't present and the title requires it (official titles require them). NSP packages which don't have/require a ticket are standard-crypto.

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

Quark and remote browsing

Quark Goldleaf's desktop Java tool, working as the desktop client for the remote PC option. It supports Windows, Linux and Mac.

Quark needs Java 9 or greater to run. See below the recommended installation for each supported system.

You also need to install libusbK drivers for USB to work fine.

Windows

The best way to install Java 9 in Windows (or a very simple one) is to install AdoptOpenJDK 11 or higher.

Note: make sure that the JDK/JRE you choose contains JavaFX! You can always install it manually otherwise

After installing it, double-clicking the JAR should be enough to start it.

Otherwise, run java -jar Quark.jar in the command prompt.

For the USB to get recognized, follow the following steps:

Linux

Install OpenJDK 11 (or higher) in the terminal:

Now you can run Quark using java -jar Quark.jar.

Mac

Install OpenJDK 11 (or higher) in the terminal:

Now you can run Quark using java -jar Quark.jar.

Having done all this, the USB connection should work fine.

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 that might be added in future updates.

Known bugs

Building

In order to build Goldleaf, you will need the following:

You will also need to install the following packages with devkitPro's pacman:

Remember to clone this repository recursively (git clone <this-repo-url> --recurse-submodules) since Goldleaf makes use of submodules.

In order to build Goldleaf, run make setup (only for the first time), then just run make (or make dev for a dev version) and wait for it to finish building.

In order to build Quark, just execute the build.sh script in its directory.

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.

You can always contact me on my Discord server (invite link below) as an easier way to suggest ideas or directly report issues.

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.

Note that some languages may contain untranslated (English) content. I prioritize relevant releases/updates over correct and fully up-to-date translations, thus releases may not contain complete translations.

Anyone with enough knowledge of a certain language is absolutely welcome to make a PR with translation suggestions and/or fixes.

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: