Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

ULaunch Switch: Difference between revisions

From GameBrew
(Created page with "{{Infobox Switch Homebrews |title=uLaunch |image=ulaunchswitch.png |description=Custom, open-source qlaunch (Nintendo Switch HOME menu) replacement/reimplementation. |author=XorTroll |lastupdated=2023/04/04 |type=Title Launchers |version=0.3.5 |license=GPL-2.0 |download=https://dlhb.gamebrew.org/switchhomebrews/ulaunchswitch.7z |website=https://gbatemp.net/threads/ulaunch-custom-open-source-nintendo-switch-home-menu-reimplementation.551914/ |source=https://github.com/Xor...")
 
No edit summary
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox Switch Homebrews
{{Infobox Switch Homebrews
|title=uLaunch
|title=uLaunch
|image=ulaunchswitch.png
|image=ulaunchnx.png
|description=Custom, open-source qlaunch (Nintendo Switch HOME menu) replacement/reimplementation.
|description=Custom, open-source qlaunch (Nintendo Switch HOME menu) replacement/reimplementation.
|author=XorTroll
|author=XorTroll
|lastupdated=2023/04/04
|lastupdated=2024/07/05
|type=Title Launchers
|type=Title Launchers
|version=0.3.5
|version=1.0
|license=GPL-2.0
|license=GPL-2.0
|download=https://dlhb.gamebrew.org/switchhomebrews/ulaunchswitch.7z
|download=https://dlhb.gamebrew.org/switchhomebrews/ulaunchnx.7z
|website=https://gbatemp.net/threads/ulaunch-custom-open-source-nintendo-switch-home-menu-reimplementation.551914/
|website=https://gbatemp.net/threads/ulaunch-custom-open-source-nintendo-switch-home-menu-reimplementation.551914/
|source=https://github.com/XorTroll/uLaunch
|source=https://github.com/XorTroll/uLaunch
|donation=
|donation=https://patreon.com/xortroll
}}
}}
{{#seo:
uLaunch is an open-source project that aims to replace the Nintendo Switch's HOME menu (qlaunch) with a custom. homebrew-oriented one.
|title=Switch Homebrew Apps (Title Launchers) - GameBrew
 
|title_mode=append
Unlike other HOME menu extensions or patches, uLaunch is a complete reimplementation that is 100% open-source. It also enhances the console's functionality by taking over eShop and Parental control applets.
|image=ulaunchswitch.png
|image_alt=uLaunch
}}
uLaunch is a remarkable open-source project that serves as a custom replacement for the Nintendo Switch's HOME menu, also known as qlaunch. Its main objective is to provide a more homebrew-oriented menu. Unlike other extensions or patches, uLaunch is a complete reimplementation that is entirely open-source. Moreover, it enhances the console's functionality by taking over the eShop and Parental control applets. These features are no longer useful with uLaunch's extended capabilities.


For those curious about the user interface (UI) design, uLaunch is a prime example of the [https://github.com/XorTroll/Plutonium Plutonium libraries'] power in creating aesthetically pleasing UIs, just like [https://github.com/XorTroll/Goldleaf Goldleaf].
For those who are interested in the UI design, uLaunch, like [[Goldleaf Switch|Goldleaf]], is a great example of how powerful [https://github.com/XorTroll/Plutonium Plutonium libraries] can create beautiful UIs.


== Features ==
== Features ==
'''List of HOME menu features uLaunch has''':
=== Custom features ===
* Proper launching and foreground management: launch, suspend and close applications and applets
List of unique extensions that the official HOME menu lacks:
* Proper general channel handling (some of it might be not implemented): sleep, shutdown, reboot, HOME menu press detection...
* User login system (login once, use that user for everything).
* Settings:
* Grid-like main menu, deeply inspired by the 3DS menu (and partially DSi/Wii menus as well), easier than ever to navigate and customize
** Show connected WiFi network's name, MAC and IP address...
** The grid can be resized like in 3DS menus.
** Open connection applet in case user wants to change network settings
** Entries can be moved as desired.
** Change console's language and show active one
* Folders, subfolders...
** Change console's nickname and show current one
* Homebrew directly launchable straight from main menu as an applet or an application (using applications as donors).
* User features:
* Extensive themeing support
** Allow creating user on the startup menu
** Backgrounds, icons, etc.
** Show user's page (in order to edit nickname, icon, friends...)
** BGM and many sound effects.
* ''Homebrew support''
* Web browser easily accessible straight from main menu.
** Launching as applets (no need of '''Album'''!)
* Mii editor easily accessible straight from main menu.
** Launching as '''applications''' (using a '''donor title'''!)
* Screen capture to PC support via USB.
** Custom basic homebrew menu
* Display system version + Atmosphère version + EmuMMC presence independently, in a nicer way.
** Option to add custom NRO accessors to main menu (homebrew or custom items easily accessible, no more need of '''forwarders'''!)
* Better display when gamecard fails to mount.
* ''UI''
* 1080p resolution.
** '''Themes''' (different to official HOME menu themes/NXThemes)
=== Implemented base features ===
*** Custom icons, menu assets and graphics (custom images, colors, sizes, positions...), background...
List of implemented official HOME menu features:
*** Custom '''background music''' and '''sound effects'''!
* Application launching, suspending and closing.
** '''Folders''' in order to keep your main menu organized!
* Applet launching and closing.
* ''Users''
* User page.
** PC-like login on startup (select user and use it for everything, log off, register/change/remove password...)
* Controller support.
** '''User password''' support! (up to 15 characters)
* Settings (only a handful are so far implemented):
* ''Miscellaneous extras''
** Console version.
** Web browsing (via web-applet) directly from the main menu!
** Atmosphère version.
** '''Console screen capturing''' from PC itself (''Windows''-only) via USB-C cable and ''uViewer'' tool!
** EmuMMC presence.
** Console nickname.
** Console timezone.
** WiFi connection name/WiFi settings.
** Console language.
** Console information upload (enable/disable).
** Bluetooth (enable/disable).
** NFC (enable/disable).
** Automatic application download (enable/disable).
** Automatic console update (enable/disable).
** Wireless LAN (enable/disable).
** Console serial number.
** Show console IP/MAC address.
* General channel/applet messages (some of them aren't implemented yet):
** HOME button detection.
** Power off, sleep, reboot.
** SD card removal.
** Gamecard failing to mount.
 
==Installation==
===Disclaimer===
Ban risks - While no bans have been reported related to using uLaunch, replacing the retail HOME menu's functionality is never a completely safe idea, so always use it at your own risk.
 
===Installing uLaunch===
Download the latest release ZIP (Note: this project is meant to be used with Atmosphere, so use it with different CFWs at your own risk).
 
Copy everything inside the ZIP to the root of your SD card.
* If you have never used uLaunch or any kind of HOME menu replacement (NXThemes don't count) you wouldn't need to overwrite any files.
* You don't need to remove your normal HOME menu themes (NXThemes) in order to install uLaunch. Those themes are at a <code>romfs</code> dir inside <code>contents/0100000000001000</code>, while uLaunch's only file in that folder is <code>exefs.nsp</code>.
 
Launch your CFW (using emuMMC or sysMMC shouldn't make a difference) and enjoy your custom, new HOME menu.
 
===Removing uLaunch===
'''Important:''' Make sure you don't remove anything else but the stuff mentioned here, in order to avoid any potential trouble.
 
If you'd like to keep your custom themes, menu entries, config, etc. then just use the uManager tool to disable uLaunch. This doesn't remove any data, allowing you to re-enable it back any moment.
 
If you'd like to remove everything permanently, then you will have to remove <code>atmosphere/contents/0100000000001000</code> and <code>ulaunch</code> folders on the SD card. If you also wish to remove uManager, then remove <code>switch/uManager.nro</code>.
 
==User guide==
uLaunch components:
{| class="wikitable"
! uSystem
|Replacement for the system applet process, it is the backend for the HOME menu (uMenu) on the Nintendo Switch. It manages essential functions like suspending/closing titles and detecting button presses (e.g., power button, HOME button). Lightweight and always running in the background, it communicates with uMenu via their smi communication system.
|-
! uMenu
| The visible HOME menu that users interact with. It operates as a library applet, temporarily running over the eShop applet upon launch.
|-
! uLoader
| A custom implementation of [https://github.com/switchbrew/nx-hbloader/releases nx-hbloader], allows to easily launch homebrew applications or applets. It also supports selecting homebrews akin to a file dialog system.
|-
! uManager
| An NRO homebrew tool, controls essential uLaunch functions that cannot be managed externally. It allows toggling uLaunch activation and similar operations, separate from uMenu's functionality.
|-
! uScreen
| A PC tool for screen capture via USB communication with uSystem on the Nintendo Switch. It requires Java 8 or higher (recommended versions above) and necessitates libusbK drivers for optimal USB functionality. USB screen capture is disabled by default and can be enabled in settings.
|-
|}
 
For information on theming and menu customization, please refer to the [https://github.com/XorTroll/uLaunch/wiki official wiki].
 
You can find themes for uLaunch on the [https://www.reddit.com/r/uLaunchThemes/ r/uLaunchThemes] subreddit.


==Screenshots==
==Screenshots==
https://dlhb.gamebrew.org/switchhomebrews/ulaunchswitch-01.png
https://dlhb.gamebrew.org/switchhomebrews/ulaunchnx2.png
https://dlhb.gamebrew.org/switchhomebrews/ulaunchswitch-02.png
https://dlhb.gamebrew.org/switchhomebrews/ulaunchnx3.png
https://dlhb.gamebrew.org/switchhomebrews/ulaunchswitch-03.png
 
https://dlhb.gamebrew.org/switchhomebrews/ulaunchswitch-04.png
https://dlhb.gamebrew.org/switchhomebrews/ulaunchnx4.png
https://dlhb.gamebrew.org/switchhomebrews/ulaunchswitch-05.png
https://dlhb.gamebrew.org/switchhomebrews/ulaunchnx5.png
https://dlhb.gamebrew.org/switchhomebrews/ulaunchswitch-06.png
 
https://dlhb.gamebrew.org/switchhomebrews/ulaunchnx6.png
https://dlhb.gamebrew.org/switchhomebrews/ulaunchnx.png
 
==Media==
'''uLaunch - The Themeable Nintendo Switch HOME Menu Nintendo Forgot To Make ([https://www.youtube.com/watch?v=4CLHC0U2J1U XorTroll])'''<br>
<youtube>4CLHC0U2J1U</youtube>


== Disclaimer ==
'''uLaunch Amiibo mod ([https://www.youtube.com/watch?v=2fFL_7tC0xw Dcnigma-obscure-channel])'''<br>
=== Ban risks ===
<youtube>2fFL_7tC0xw</youtube>
While no bans have been reported related to using uLaunch, replacing the retail HOME menu's functionality is never a completely safe idea, so always use it at your own risk.
== TODO list ==
* Improve Daemons's IPC with two services, one only for Daemon and the other one for any process to interact with uLaunch:
** Easy way to detect whether uLaunch is present
** Get whether a title/homebrew is opened
* (check suggestions and bugs in issues for user-submitted TODOs)


==Changelog==  
==Changelog==  
'''v.0.3.5'''
'''v1.0 2024/07/05'''
*General
** The menu entry system was completely remade:
*** Cleaner grid-like system, deeply inspired by the 3DS menu (and partially DSi/Wii menus as well), easier than ever to navigate and customize.<br />
*** Homebrew and applications are no longer split in separate menus: the menu initially contains all applications, <code>hbmenu</code>, <code>uManager</code> (check below) and other special entries (user page, settings/themes...), and homebrew entries may be easily added in the menu (or they can always be accessed via <code>hbmenu</code>, of course)<br />
** Support was added for detecting when the gamecard fails mounting (even displaying the result, something the original HOME menu doesn't do).<br />
** Support on SD removal was improved.<br />
** Now using [https://github.com/XorTroll/arc arc] to neatly organize result codes and display their names.<br />
** All uLaunch components now generate logs (cleaned every reboot) which can be really helpful for pinpointing any problems.<br />
** Translations are provided for additional languages: Spanish, Korean, Brazilian Portuguese (those volunteered by translators)
*** If you'd like to add new translations or improve existing ones, feel free to contribute!
** As always, all libraries were updated to their latest releases (therefore, this works with latest Atmosphère).<br />
** Many other internal bits of the code were improved or straight up redesigned.<br />
*uSystem
** Basically many internal changes to reflect changes in the other parts of the project more noticeable by the end user.
*uLoader
** Implemented support to use uLoader as a homebrew chooser, thus now being able to return the homebrew the user selected via hbmenu instead of launching it.<br />
** Minor changes reflecting more closely the logic actual hbloader follows, probably fixing minor issues.<br />
*uMenu
** Changes relative to the new menu:
*** Several options previously placed elsewhere (user page, uLaunch settings/themes, controllers menu...) are now actual menu entries, making the UI cleaner overall.<br />
*** Mii editor is now accessible from both the entry menu and the quick menu.<br />
*** Folders are back, and better than ever! Subfolders, sub-subfolders, etc. can be created like before, while the new menu grid-like layout makes moving entries inside/outside folders more intuitive than ever.<br />
** Major graphical improvements aside from the new menu:
*** All assets/logic were upgraded to '''1080p''', thus no longer having lower quality on TV (another thing the official HOME menu doesn't have).<br />
*** Menus are highly themeable now, since more attention was dedicated to little customizable aspects.<br />
** The quick menu can now only opened with ZL/ZR (L/R are used to nagivate through the main menu), and a mii editor option was added back.<br />
** The web browser URL input dialog starts with <code>https://</code> as default for simplicity.<br />
** There is no longer a separate homebrew menu, instead homebrew entries are added via the new <code>uLoader</code> mechanism.<br />
** Inputs are now nicely shown in an input bar right above the entry menu.<br />
** Several menu transitions were made nicer, fading into the theme background instead of a black screen.<br />
** Some basic checking is done on whether titles are launchable in the first place (rather than trying to launch them, failing and reopening uMenu with an error dialog)<br />
** Increased internal menu memory from 176MB to 296MB, thus allowing loading better quality theme assets while everything else should (in principle) work fine.<br />
*Themeing: uDesigner
**Themes have changed a lot: this version introduces a new version of the theme format, comprising both minor changes and a LOT more customizable stuff, to the point where all the changes are too long to be listed here.
** The new default theme has blue as its overall color and almost entirely brand new assets.<br />
** Themes are now distributed as ZIP files.<br />
** The [https://github.com/XorTroll/uLaunch/wiki/Themeing themeing wiki] has been rewritten covering everything about creating themes.<br />
*From all this, it follows that old themes are far from compatible (not only differences in format/files, but also on the resolution since we are 1080p now!), so any old theme must be reworked manually. Regardless, the new themeing is more customizable than before, opening many more opportunities for any creative minds out there.
*Along these lines, an (experimental) ''official theme editor'' is finally here: check [https://xortroll.github.io/uLaunch/ '''uDesigner''']!
** The wiki has also been rewritten, covering every relevant detail. Wiki pages are the perfect documentation for those who will make themes manually as well as those using the (experimental) editor.
*uManager
**This new release introduces <code>uManager</code>, a brand new homebrew app to control uLaunch's functionality!
**Manually tinkering files will no longer be necessary (aside from weird cases, of course).
*** Automatically enable/disable uLaunch<br />
*** Update uLaunch to the latest GitHub release<br />
*** Reset the menu layout / uLaunch's generated image cache (might come useful if something happened to break)<br />
*uScreen (formerly uViewer)
**<code>uViewer</code> was replaced by <code>uScreen</code>, a brand-new (Java) tool for USB screen capturing, where its functionality is the same overall.
'''v0.3.8 2024/04/03'''
*Everything was compiled with the latest libraries, meaning proper Atmosphère 1.7.0 / system 18.0.0 support among other things.
'''v0.3.7 2024/01/24'''
*Everything was compiled with the latest libraries, meaning proper Atmosphère 1.6.2 / 17.0.1 support among other things.
'''v0.3.6 2023/09/04'''
* General
** Keep in mind that these minor versions are merely support updates while the deep uLaunch rewrite is being finished at unew branch
* uLaunch
* uLaunch
** Updated for latest Atmosphere (v1.5.1) and libnx
** Everything was compiled with the latest libraries, meaning proper Atmosphère 1.5.5 support among other things
** Fixed support for certain games, like Nintendo Switch Online titles
* uDaemon
** Fixed an annoying bug which might cause uLaunch to crash randomly when booting
* uViewer
* uViewer
** No changes (therefore no new release binaries)
** Again, no uViewer binaries are posted here since it has no changes (v0.3.1 was the last version where it was updated)
'''v.0.3.4'''
'''v0.3.5 2023/04/04'''
* Again nothing new, just recompiled with latest libnx and Atmosphere, which was needed for the latest Atmosphere release (v1.3.1)
* uLaunch:
* Again, since were there no changes at all, no uViewer binaries are provided
** Updated for latest Atmosphere (v1.5.1) and libnx.
'''v.0.3.3'''
** Fixed support for certain games, like Nintendo Switch Online titles.
* Nothing new, just recompiled with latest libnx and Atmosphere, which was needed for the latest Atmosphere release
* uViewer:
* Again, since were there no changes at all, no uViewer binaries are provided
** No changes (therefore no new release binaries).
'''v.0.3.2'''
'''v0.3.4 2022/04/17'''
* uLaunch
* Again nothing new, just recompiled with latest libnx and Atmosphere, which was needed for the latest Atmosphere release (v1.3.1).
* Again, since were there no changes at all, no uViewer binaries are provided.
'''v0.3.3 2022/03/26'''
* Nothing new, just recompiled with latest libnx and Atmosphere, which was needed for the latest Atmosphere release.
* Again, since were there no changes at all, no uViewer binaries are provided.
'''v0.3.2 2022/02/11'''
* uLaunch:
** Most of the code was rewritten or cleaned up, which might mean slightly faster load times, etc.  
** Most of the code was rewritten or cleaned up, which might mean slightly faster load times, etc.  
** Reinstalled/never launched titles can be launched properly (until now, they had to be launched first on regular qlaunch in order to work)  
** Reinstalled/never launched titles can be launched properly (until now, they had to be launched first on regular qlaunch in order to work) .
** Other minor internal changes, fixes, etc.  
** Other minor internal changes, fixes, etc.  
* uMenu
* uMenu:
** Updated with last libnx, Plutonium and Atmosphere. This (mostly Plutonium changes) might also slightly better performance.  
** Updated with last libnx, Plutonium and Atmosphere. This (mostly Plutonium changes) might also slightly better performance.  
** Atmosphere's info is shown now along with the system firmware (like with regular qlaunch)  
** Atmosphere's info is shown now along with the system firmware (like with regular qlaunch) .
* uViewer
* uViewer:
** No changes (not providing new release binaries)
** No changes (not providing new release binaries).
'''v.0.3.1'''
'''v0.3.1 2021/09/26'''
* uLaunch
* uLaunch:
** Compiled with latest Atmosphere libraries, effectively supporting up to 1.1.1 and 13.0.0 firmware
** Compiled with latest Atmosphere libraries, effectively supporting up to 1.1.1 and 13.0.0 firmware.
** Slightly reduced the main menu's memory size from 192MB to 176MB. Previously, certain applets would crash due to lack of memory (for instance, swkbd when editing a user's name on the user page), and thanks to this memory reduction these issues are fixed now.
** Slightly reduced the main menu's memory size from 192MB to 176MB. Previously, certain applets would crash due to lack of memory (for instance, swkbd when editing a user's name on the user page), and thanks to this memory reduction these issues are fixed now.
** Fixed a bug where launching a title when another one is opened would fail due to not waiting until the opened title actually exits.
** Fixed a bug where launching a title when another one is opened would fail due to not waiting until the opened title actually exits.
*uViewer and RetroArch plugin
*uViewer and RetroArch plugin:
** Nothing was changed, only the version number was updated.
** Nothing was changed, only the version number was updated.
'''v.0.3.0'''
'''v0.3.0 2021/08/11'''
*uLaunch
*uLaunch:
**Updated with last libnx and Atmosphere.
**Updated with last libnx and Atmosphere.
**Now, instead of always overriding certain applets (if you had uLaunch on your SD), uLaunch makes use of ECS to launch its processes over a certain applet, so that the applet can be used normally when the process isn't launched.
**Now, instead of always overriding certain applets (if you had uLaunch on your SD), uLaunch makes use of ECS to launch its processes over a certain applet, so that the applet can be used normally when the process isn't launched.
**The internal comunication system between uLaunch's processes has changed internally and made more fast and efficient.
**The internal comunication system between uLaunch's processes has changed internally and made more fast and efficient.
**Several bugs/issues with older versions were fixed.
**Several bugs/issues with older versions were fixed.
*USB support
*USB support:
**USB support is back (it was temporarily removed the last release due to weird technical issues)
**USB support is back (it was temporarily removed the last release due to weird technical issues).
**USB now supports an alternative system, which is available under certain circumstances (having patches enabling it being on >10.0.0) and which is significantly faster.
**USB now supports an alternative system, which is available under certain circumstances (having patches enabling it being on >10.0.0) and which is significantly faster.
*uMenu
*uMenu:
**When launching homebrew as applications, uMenu won't make use of the internal flog system application it used to use (which might have been risky for potential bans). Instead, making use of ECS (mentioned above), after a donor title has been selected by pressing up, homebrew can easily be launched over that application like normal Atmosphere does. Note that you won't be able to launch homebrew over an application unless you select that application as the donor application.
**When launching homebrew as applications, uMenu won't make use of the internal flog system application it used to use (which might have been risky for potential bans). Instead, making use of ECS (mentioned above), after a donor title has been selected by pressing up, homebrew can easily be launched over that application like normal Atmosphere does. Note that you won't be able to launch homebrew over an application unless you select that application as the donor application.
**HOME menu pressing is properly supported on the different menus. For instance, pressing the HOME button inside the settings menu will make it return to the main menu.
**HOME menu pressing is properly supported on the different menus. For instance, pressing the HOME button inside the settings menu will make it return to the main menu.
**The default theme design was reworked, giving it a more dark/purple-ish style, in order to make it more uniform and consistent with the project's logo.
**The default theme design was reworked, giving it a more dark/purple-ish style, in order to make it more uniform and consistent with the project's logo.
*uViewer
*uViewer:
**The RetroArch entry creator plugin was updated to work with the latest RetroArch installation.
**The RetroArch entry creator plugin was updated to work with the latest RetroArch installation.
**It's been a while, but it's finally here! Have fun with a custom HOME menu!
**It's been a while, but it's finally here! Have fun with a custom HOME menu.
'''v.0.2.1'''
'''v0.2.1 2019/12/30'''
*This a basic version to support latest libnx and Atmosphere, so not many features were added.
*This a basic version to support latest libnx and Atmosphere, so not many features were added.
*General
*General:
**Added support for latest Atmosphere, libstratosphere and libnx, fixing potential bugs they all could have had.
**Added support for latest Atmosphere, libstratosphere and libnx, fixing potential bugs they all could have had.
*USB viewer
*USB viewer:
**USB viewing has been force-disabled for this version, since it is completely broken.
**USB viewing has been force-disabled for this version, since it is completely broken.
*Main menu
*Main menu:
**Fixed a bug where homebrew couldn't be launched from main menu, even in applet mode, when there is an application suspended.
**Fixed a bug where homebrew couldn't be launched from main menu, even in applet mode, when there is an application suspended.
**Added the option to rename folders by pressing X on the main menu (with the folder selected)
**Added the option to rename folders by pressing X on the main menu (with the folder selected).
**Next release will be way more complete ;)
**Next release will be way more complete.
'''v.0.1'''
'''v0.2 2019/12/01'''
* First Release.
*Main menu:
**Added a new way to open menus without touchscreen: presenting the quick menu! Just hold L/R-stick, then move it while being held to select a menu, leave the stick and profit.
**Changed the web browser touchable menu item with the controller applet one, for what it's worth.
*Settings menu:
**New settings were added:.
***Console information upload (enable/disable).
***Automatic titles' download (e/d).
***Console auto-update (e/d).
***Bluetooth (e/d).
***3.0 USB (e/d).
***NFC (e/d).
***Wireless LAN (e/d).
***MAC address.
***Serial number.
*Added controller menu applet (as a menu touchable icon, as mentioned above) support to change/manage players and controllers.
*Added album applet (as part of the aforementioned quick menu) support to view your captures.
*Added a power menu (as part of the aforementioned quick menu) to quickly power off, reboot or sleep the console.
*QForegroundViewer has been refactored into a major application: uViewer.
**New entry creator menu (custom entry creator to be accessible from main menu), customizable with plugins.
**This includes a custom RetroArch-themed DLL plugin, easily loadable by uViewer, to make ROM forwarding really easy.
**Added a new way to open menus without touchscreen: presenting the quick menu! Just hold L/R-stick, then move it while being held to select a menu, leave the stick and profit.
*General:
**Custom icons in entry JSONs can now be used with normal titles too, not just homebrew.
**Custom name/author/version texts in entries are no longer restricted to 511/15 characters.
**Certain parts of the code/functionality were slightly improved (speed might be slightly faster in certain laggy moments).
'''v0.1 2019/11/11'''
*Extract the ZIP to your CFW's directory.
*Have fun with a custom, brand new HOME menu.


== Credits ==
== Credits ==
Line 134: Line 280:
* [https://icons8.com/ Icons8] website for a big part of the icons used by the default style.
* [https://icons8.com/ Icons8] website for a big part of the icons used by the default style.
* Several scene developers for their help with small issues or features.
* Several scene developers for their help with small issues or features.
* Everyone from Discord or other places whose suggestions made this project a little bit better ;)
* Everyone from Discord or other places whose suggestions made this project a little bit better.


== External links ==
== External links ==
* Official Website - https://gbatemp.net/threads/ulaunch-custom-open-source-nintendo-switch-home-menu-reimplementation.551914/
* GitHub - https://github.com/XorTroll/uLaunch
* Github - https://github.com/XorTroll/uLaunch
* GBAtemp - https://gbatemp.net/threads/ulaunch-custom-open-source-nintendo-switch-home-menu-reimplementation.551914/

Latest revision as of 07:02, 7 July 2024

uLaunch
Ulaunchnx.png
General
AuthorXorTroll
TypeTitle Launchers
Version1.0
LicenseGPL-2.0
Last Updated2024/07/05
Links
Download
Website
Source
Support Author

uLaunch is an open-source project that aims to replace the Nintendo Switch's HOME menu (qlaunch) with a custom. homebrew-oriented one.

Unlike other HOME menu extensions or patches, uLaunch is a complete reimplementation that is 100% open-source. It also enhances the console's functionality by taking over eShop and Parental control applets.

For those who are interested in the UI design, uLaunch, like Goldleaf, is a great example of how powerful Plutonium libraries can create beautiful UIs.

Features

Custom features

List of unique extensions that the official HOME menu lacks:

  • User login system (login once, use that user for everything).
  • Grid-like main menu, deeply inspired by the 3DS menu (and partially DSi/Wii menus as well), easier than ever to navigate and customize
    • The grid can be resized like in 3DS menus.
    • Entries can be moved as desired.
  • Folders, subfolders...
  • Homebrew directly launchable straight from main menu as an applet or an application (using applications as donors).
  • Extensive themeing support
    • Backgrounds, icons, etc.
    • BGM and many sound effects.
  • Web browser easily accessible straight from main menu.
  • Mii editor easily accessible straight from main menu.
  • Screen capture to PC support via USB.
  • Display system version + Atmosphère version + EmuMMC presence independently, in a nicer way.
  • Better display when gamecard fails to mount.
  • 1080p resolution.

Implemented base features

List of implemented official HOME menu features:

  • Application launching, suspending and closing.
  • Applet launching and closing.
  • User page.
  • Controller support.
  • Settings (only a handful are so far implemented):
    • Console version.
    • Atmosphère version.
    • EmuMMC presence.
    • Console nickname.
    • Console timezone.
    • WiFi connection name/WiFi settings.
    • Console language.
    • Console information upload (enable/disable).
    • Bluetooth (enable/disable).
    • NFC (enable/disable).
    • Automatic application download (enable/disable).
    • Automatic console update (enable/disable).
    • Wireless LAN (enable/disable).
    • Console serial number.
    • Show console IP/MAC address.
  • General channel/applet messages (some of them aren't implemented yet):
    • HOME button detection.
    • Power off, sleep, reboot.
    • SD card removal.
    • Gamecard failing to mount.

Installation

Disclaimer

Ban risks - While no bans have been reported related to using uLaunch, replacing the retail HOME menu's functionality is never a completely safe idea, so always use it at your own risk.

Installing uLaunch

Download the latest release ZIP (Note: this project is meant to be used with Atmosphere, so use it with different CFWs at your own risk).

Copy everything inside the ZIP to the root of your SD card.

  • If you have never used uLaunch or any kind of HOME menu replacement (NXThemes don't count) you wouldn't need to overwrite any files.
  • You don't need to remove your normal HOME menu themes (NXThemes) in order to install uLaunch. Those themes are at a romfs dir inside contents/0100000000001000, while uLaunch's only file in that folder is exefs.nsp.

Launch your CFW (using emuMMC or sysMMC shouldn't make a difference) and enjoy your custom, new HOME menu.

Removing uLaunch

Important: Make sure you don't remove anything else but the stuff mentioned here, in order to avoid any potential trouble.

If you'd like to keep your custom themes, menu entries, config, etc. then just use the uManager tool to disable uLaunch. This doesn't remove any data, allowing you to re-enable it back any moment.

If you'd like to remove everything permanently, then you will have to remove atmosphere/contents/0100000000001000 and ulaunch folders on the SD card. If you also wish to remove uManager, then remove switch/uManager.nro.

User guide

uLaunch components:

uSystem Replacement for the system applet process, it is the backend for the HOME menu (uMenu) on the Nintendo Switch. It manages essential functions like suspending/closing titles and detecting button presses (e.g., power button, HOME button). Lightweight and always running in the background, it communicates with uMenu via their smi communication system.
uMenu The visible HOME menu that users interact with. It operates as a library applet, temporarily running over the eShop applet upon launch.
uLoader A custom implementation of nx-hbloader, allows to easily launch homebrew applications or applets. It also supports selecting homebrews akin to a file dialog system.
uManager An NRO homebrew tool, controls essential uLaunch functions that cannot be managed externally. It allows toggling uLaunch activation and similar operations, separate from uMenu's functionality.
uScreen A PC tool for screen capture via USB communication with uSystem on the Nintendo Switch. It requires Java 8 or higher (recommended versions above) and necessitates libusbK drivers for optimal USB functionality. USB screen capture is disabled by default and can be enabled in settings.

For information on theming and menu customization, please refer to the official wiki.

You can find themes for uLaunch on the r/uLaunchThemes subreddit.

Screenshots

ulaunchnx2.png ulaunchnx3.png

ulaunchnx4.png ulaunchnx5.png

ulaunchnx6.png ulaunchnx.png

Media

uLaunch - The Themeable Nintendo Switch HOME Menu Nintendo Forgot To Make (XorTroll)

uLaunch Amiibo mod (Dcnigma-obscure-channel)

Changelog

v1.0 2024/07/05

  • General
    • The menu entry system was completely remade:
      • Cleaner grid-like system, deeply inspired by the 3DS menu (and partially DSi/Wii menus as well), easier than ever to navigate and customize.
      • Homebrew and applications are no longer split in separate menus: the menu initially contains all applications, hbmenuuManager (check below) and other special entries (user page, settings/themes...), and homebrew entries may be easily added in the menu (or they can always be accessed via hbmenu, of course)
    • Support was added for detecting when the gamecard fails mounting (even displaying the result, something the original HOME menu doesn't do).
    • Support on SD removal was improved.
    • Now using arc to neatly organize result codes and display their names.
    • All uLaunch components now generate logs (cleaned every reboot) which can be really helpful for pinpointing any problems.
    • Translations are provided for additional languages: Spanish, Korean, Brazilian Portuguese (those volunteered by translators)
      • If you'd like to add new translations or improve existing ones, feel free to contribute!
    • As always, all libraries were updated to their latest releases (therefore, this works with latest Atmosphère).
    • Many other internal bits of the code were improved or straight up redesigned.
  • uSystem
    • Basically many internal changes to reflect changes in the other parts of the project more noticeable by the end user.
  • uLoader
    • Implemented support to use uLoader as a homebrew chooser, thus now being able to return the homebrew the user selected via hbmenu instead of launching it.
    • Minor changes reflecting more closely the logic actual hbloader follows, probably fixing minor issues.
  • uMenu
    • Changes relative to the new menu:
      • Several options previously placed elsewhere (user page, uLaunch settings/themes, controllers menu...) are now actual menu entries, making the UI cleaner overall.
      • Mii editor is now accessible from both the entry menu and the quick menu.
      • Folders are back, and better than ever! Subfolders, sub-subfolders, etc. can be created like before, while the new menu grid-like layout makes moving entries inside/outside folders more intuitive than ever.
    • Major graphical improvements aside from the new menu:
      • All assets/logic were upgraded to 1080p, thus no longer having lower quality on TV (another thing the official HOME menu doesn't have).
      • Menus are highly themeable now, since more attention was dedicated to little customizable aspects.
    • The quick menu can now only opened with ZL/ZR (L/R are used to nagivate through the main menu), and a mii editor option was added back.
    • The web browser URL input dialog starts with https:// as default for simplicity.
    • There is no longer a separate homebrew menu, instead homebrew entries are added via the new uLoader mechanism.
    • Inputs are now nicely shown in an input bar right above the entry menu.
    • Several menu transitions were made nicer, fading into the theme background instead of a black screen.
    • Some basic checking is done on whether titles are launchable in the first place (rather than trying to launch them, failing and reopening uMenu with an error dialog)
    • Increased internal menu memory from 176MB to 296MB, thus allowing loading better quality theme assets while everything else should (in principle) work fine.
  • Themeing: uDesigner
    • Themes have changed a lot: this version introduces a new version of the theme format, comprising both minor changes and a LOT more customizable stuff, to the point where all the changes are too long to be listed here.
    • The new default theme has blue as its overall color and almost entirely brand new assets.
    • Themes are now distributed as ZIP files.
    • The themeing wiki has been rewritten covering everything about creating themes.
  • From all this, it follows that old themes are far from compatible (not only differences in format/files, but also on the resolution since we are 1080p now!), so any old theme must be reworked manually. Regardless, the new themeing is more customizable than before, opening many more opportunities for any creative minds out there.
  • Along these lines, an (experimental) official theme editor is finally here: check uDesigner!
    • The wiki has also been rewritten, covering every relevant detail. Wiki pages are the perfect documentation for those who will make themes manually as well as those using the (experimental) editor.
  • uManager
    • This new release introduces uManager, a brand new homebrew app to control uLaunch's functionality!
    • Manually tinkering files will no longer be necessary (aside from weird cases, of course).
      • Automatically enable/disable uLaunch
      • Update uLaunch to the latest GitHub release
      • Reset the menu layout / uLaunch's generated image cache (might come useful if something happened to break)
  • uScreen (formerly uViewer)
    • uViewer was replaced by uScreen, a brand-new (Java) tool for USB screen capturing, where its functionality is the same overall.

v0.3.8 2024/04/03

  • Everything was compiled with the latest libraries, meaning proper Atmosphère 1.7.0 / system 18.0.0 support among other things.

v0.3.7 2024/01/24

  • Everything was compiled with the latest libraries, meaning proper Atmosphère 1.6.2 / 17.0.1 support among other things.

v0.3.6 2023/09/04

  • General
    • Keep in mind that these minor versions are merely support updates while the deep uLaunch rewrite is being finished at unew branch
  • uLaunch
    • Everything was compiled with the latest libraries, meaning proper Atmosphère 1.5.5 support among other things
  • uDaemon
    • Fixed an annoying bug which might cause uLaunch to crash randomly when booting
  • uViewer
    • Again, no uViewer binaries are posted here since it has no changes (v0.3.1 was the last version where it was updated)

v0.3.5 2023/04/04

  • uLaunch:
    • Updated for latest Atmosphere (v1.5.1) and libnx.
    • Fixed support for certain games, like Nintendo Switch Online titles.
  • uViewer:
    • No changes (therefore no new release binaries).

v0.3.4 2022/04/17

  • Again nothing new, just recompiled with latest libnx and Atmosphere, which was needed for the latest Atmosphere release (v1.3.1).
  • Again, since were there no changes at all, no uViewer binaries are provided.

v0.3.3 2022/03/26

  • Nothing new, just recompiled with latest libnx and Atmosphere, which was needed for the latest Atmosphere release.
  • Again, since were there no changes at all, no uViewer binaries are provided.

v0.3.2 2022/02/11

  • uLaunch:
    • Most of the code was rewritten or cleaned up, which might mean slightly faster load times, etc.
    • Reinstalled/never launched titles can be launched properly (until now, they had to be launched first on regular qlaunch in order to work) .
    • Other minor internal changes, fixes, etc.
  • uMenu:
    • Updated with last libnx, Plutonium and Atmosphere. This (mostly Plutonium changes) might also slightly better performance.
    • Atmosphere's info is shown now along with the system firmware (like with regular qlaunch) .
  • uViewer:
    • No changes (not providing new release binaries).

v0.3.1 2021/09/26

  • uLaunch:
    • Compiled with latest Atmosphere libraries, effectively supporting up to 1.1.1 and 13.0.0 firmware.
    • Slightly reduced the main menu's memory size from 192MB to 176MB. Previously, certain applets would crash due to lack of memory (for instance, swkbd when editing a user's name on the user page), and thanks to this memory reduction these issues are fixed now.
    • Fixed a bug where launching a title when another one is opened would fail due to not waiting until the opened title actually exits.
  • uViewer and RetroArch plugin:
    • Nothing was changed, only the version number was updated.

v0.3.0 2021/08/11

  • uLaunch:
    • Updated with last libnx and Atmosphere.
    • Now, instead of always overriding certain applets (if you had uLaunch on your SD), uLaunch makes use of ECS to launch its processes over a certain applet, so that the applet can be used normally when the process isn't launched.
    • The internal comunication system between uLaunch's processes has changed internally and made more fast and efficient.
    • Several bugs/issues with older versions were fixed.
  • USB support:
    • USB support is back (it was temporarily removed the last release due to weird technical issues).
    • USB now supports an alternative system, which is available under certain circumstances (having patches enabling it being on >10.0.0) and which is significantly faster.
  • uMenu:
    • When launching homebrew as applications, uMenu won't make use of the internal flog system application it used to use (which might have been risky for potential bans). Instead, making use of ECS (mentioned above), after a donor title has been selected by pressing up, homebrew can easily be launched over that application like normal Atmosphere does. Note that you won't be able to launch homebrew over an application unless you select that application as the donor application.
    • HOME menu pressing is properly supported on the different menus. For instance, pressing the HOME button inside the settings menu will make it return to the main menu.
    • The default theme design was reworked, giving it a more dark/purple-ish style, in order to make it more uniform and consistent with the project's logo.
  • uViewer:
    • The RetroArch entry creator plugin was updated to work with the latest RetroArch installation.
    • It's been a while, but it's finally here! Have fun with a custom HOME menu.

v0.2.1 2019/12/30

  • This a basic version to support latest libnx and Atmosphere, so not many features were added.
  • General:
    • Added support for latest Atmosphere, libstratosphere and libnx, fixing potential bugs they all could have had.
  • USB viewer:
    • USB viewing has been force-disabled for this version, since it is completely broken.
  • Main menu:
    • Fixed a bug where homebrew couldn't be launched from main menu, even in applet mode, when there is an application suspended.
    • Added the option to rename folders by pressing X on the main menu (with the folder selected).
    • Next release will be way more complete.

v0.2 2019/12/01

  • Main menu:
    • Added a new way to open menus without touchscreen: presenting the quick menu! Just hold L/R-stick, then move it while being held to select a menu, leave the stick and profit.
    • Changed the web browser touchable menu item with the controller applet one, for what it's worth.
  • Settings menu:
    • New settings were added:.
      • Console information upload (enable/disable).
      • Automatic titles' download (e/d).
      • Console auto-update (e/d).
      • Bluetooth (e/d).
      • 3.0 USB (e/d).
      • NFC (e/d).
      • Wireless LAN (e/d).
      • MAC address.
      • Serial number.
  • Added controller menu applet (as a menu touchable icon, as mentioned above) support to change/manage players and controllers.
  • Added album applet (as part of the aforementioned quick menu) support to view your captures.
  • Added a power menu (as part of the aforementioned quick menu) to quickly power off, reboot or sleep the console.
  • QForegroundViewer has been refactored into a major application: uViewer.
    • New entry creator menu (custom entry creator to be accessible from main menu), customizable with plugins.
    • This includes a custom RetroArch-themed DLL plugin, easily loadable by uViewer, to make ROM forwarding really easy.
    • Added a new way to open menus without touchscreen: presenting the quick menu! Just hold L/R-stick, then move it while being held to select a menu, leave the stick and profit.
  • General:
    • Custom icons in entry JSONs can now be used with normal titles too, not just homebrew.
    • Custom name/author/version texts in entries are no longer restricted to 511/15 characters.
    • Certain parts of the code/functionality were slightly improved (speed might be slightly faster in certain laggy moments).

v0.1 2019/11/11

  • Extract the ZIP to your CFW's directory.
  • Have fun with a custom, brand new HOME menu.

Credits

  • SciresM for Atmosphere-libs.
  • Switchbrew team for libnx and nx-hbloader, the base of the uHbTarget processes (they're essentially wrappers of nx-hbloader). This project also makes use of hx-hbmenu's icon.
  • C4Phoenix for the amazing design of this project's logo.
  • Icons8 website for a big part of the icons used by the default style.
  • Several scene developers for their help with small issues or features.
  • Everyone from Discord or other places whose suggestions made this project a little bit better.

External links

Advertising: