More actions
No edit summary |
No edit summary |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{Infobox Switch Homebrews | {{Infobox Switch Homebrews | ||
|title=Goldleaf | |title=Goldleaf | ||
|image= | |image=goldleafnx.png | ||
|description= | |description=Multipurpose homebrew tool for Nintendo Switch. | ||
|author=XorTroll | |author=XorTroll | ||
|lastupdated=2023/ | |lastupdated=2023/08/20 | ||
|type=Utilities | |type=Utilities | ||
|version=0. | |version=1.0.0 | ||
|license=GPL-3.0 | |license=GPL-3.0 | ||
|download=https://dlhb.gamebrew.org/switchhomebrews/ | |download=https://dlhb.gamebrew.org/switchhomebrews/goldleafnx.7z | ||
|website=https://gbatemp.net/threads/goldleaf-a-nintendo-switch-multipurpose-homebrew-tool.527578/ | |website=https://gbatemp.net/threads/goldleaf-a-nintendo-switch-multipurpose-homebrew-tool.527578/ | ||
|source=https://github.com/XorTroll/Goldleaf | |source=https://github.com/XorTroll/Goldleaf | ||
|donation=https://www.patreon.com/xortroll | |donation=https://www.patreon.com/xortroll | ||
}} | }} | ||
Goldleaf is multipurpose homebrew tool for Nintendo Switch, originated from [https://gbatemp.net/threads/nspower-switch-title-installer-manager-and-more.513485/ NSPower]. | |||
It has a very similar concept to [[FBI 3DS|FBI]], which is a similar tool for Nintendo 3DS homebrew. | |||
Goldleaf is | |||
The homebrew was entered into the GBAtemp Switch Homebrew Bounty 2018 (Switch application). | |||
==Features== | ==Features== | ||
*'''Content | * '''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):''' | |||
*'''Content | ** 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:''' | |||
*'''Web | ** Check system and Goldleaf settings. | ||
** Firmware and updates information. | |||
** Memory status (free and total space on different locations). | |||
*'''Account | ** Goldleaf settings from settings.json. | ||
**Change nickname | * '''Updates:''' Check for Goldleaf updates. | ||
* '''About:''' check Goldleaf's version and how it was launched (as an applet or an application) | |||
**Note: to change the user's icon, check the Content explorer above | * '''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. | ||
*'''Amiibo | |||
*'''Settings''' | |||
**Firmware and updates | |||
**Memory | |||
**Goldleaf settings | |||
*'''Updates''' | |||
*'''About''' | |||
*Goldleaf | |||
== | ==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 [https://github.com/XorTroll/Goldleaf/blob/master/README.md#quark-and-remote-browsing guide on readme]. | |||
===Settings=== | ===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. | Goldleaf supports the customization of colors, assets and other options via a JSON file located at Goldleaf's folder: <code>sd:/switch/Goldleaf/settings.json</code>. | ||
===Sample=== | =====Sample===== | ||
This is an example JSON for Goldleaf settings: | This is an example JSON for Goldleaf settings: | ||
<pre> | |||
{ | <pre class="language-json">{ | ||
"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" | |||
} | } | ||
] | ] | ||
Line 142: | Line 110: | ||
} | } | ||
</pre> | </pre> | ||
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. | 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=== | =====Notes===== | ||
Via RomFs replacement, when Goldleaf tries to locate, for instance, <code>romfs:/FileSystem/FileDataFont.ttf</code> resource font, if <code>romfsReplace</code> is true and <code>romfsReplacePath</code> is, for instance, <code>/switch/Goldleaf/testromfs</code>, Goldleaf will look if <code>sd:/switch/Goldleaf/testromfs/FileSystem/FileDataFont.ttf</code> 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== | |||
https://dlhb.gamebrew.org/switchhomebrews/goldleafnx2.png | |||
https://dlhb.gamebrew.org/switchhomebrews/goldleafnx3.png | |||
https://dlhb.gamebrew.org/switchhomebrews/goldleafnx4.png | |||
https://dlhb.gamebrew.org/switchhomebrews/goldleafnx5.png | |||
https://dlhb.gamebrew.org/switchhomebrews/goldleafnx6.png | |||
https://dlhb.gamebrew.org/switchhomebrews/goldleafnx7.png | |||
==Known | https://dlhb.gamebrew.org/switchhomebrews/goldleafnx8.png | ||
https://dlhb.gamebrew.org/switchhomebrews/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. | * 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. | * 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== | ==Changelog== | ||
''' | '''v1.0.0 2023/08/20''' | ||
*General | *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 | *Goldleaf | ||
** Fixed a bug where the location of multiple NSP installs would be incorrectly selected | **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.) | ** Content menu navigation was improved (exiting doesn't suddenly go back to the main menu, etc.) | ||
** Added support for Traditional Chinese | ** Added support for Traditional Chinese. | ||
** Updated key generation information (for latest system versions) | ** 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 | ** 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 <code>/export</code> instead of <code>/dump</code> | ** Dumping is now referred to as exporting, and exported contents now go inside <code>/export</code> instead of <code>/dump</code>. | ||
** Added menu for Goldleaf's own settings, currently only supporting selecting custom language support and ignoring required firmware versions on content installs | ** 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. | ** 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 | ** 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 | ** 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) | ** 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 | ** Fixed invalid/nonsense "game played since" values. | ||
* Quark | * 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 | **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) | *(No other changes here). | ||
==Credits== | ==Credits== | ||
The main concepts of Goldleaf are and have been developed by | 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) [https://github.com/Adubbz/Tinfoil Tinfoil] contributors, for their huge work with title installing. | * Adubbz and all the (old) [https://github.com/Adubbz/Tinfoil 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. | * C4Phoenix, for his awesome work doing this project's logo, and the GIF displayed when launching the installed forwarder. | ||
Line 188: | Line 214: | ||
== External links == | == External links == | ||
* | * GitHub - https://github.com/XorTroll/Goldleaf | ||
* GBAtemp - https://gbatemp.net/threads/goldleaf-a-nintendo-switch-multipurpose-homebrew-tool.527578/ | |||
[[Category:GBAtemp Homebrew Bounty 2018]] |
Latest revision as of 12:59, 4 Haziran 2024
Goldleaf | |
---|---|
General | |
Author | XorTroll |
Type | Utilities |
Version | 1.0.0 |
License | GPL-3.0 |
Last Updated | 2023/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.
The homebrew was entered into the GBAtemp Switch Homebrew Bounty 2018 (Switch application).
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
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.