uLaunch/README.md
2021-07-11 03:50:19 +02:00

4.9 KiB

uLaunch is a custom, open-source replacement/reimplementation for the Nintendo Switch's HOME menu (qlaunch), extending it with amazing, homebrew-oriented features!

drawing drawing

drawing drawing

drawing drawing

uLaunch is a project which aims to replace the console's HOME menu with a custom, homebrew-oriented one.

  • This isn't some kind of HOME menu extension, injection, patch, etc. uLaunch is a complete reimplementation, 100% open-source, which also takes over eShop and Parental control applets (all of them pretty much useless with this reimpl) for its extended functionality.

  • For those who are interested in how the UI was done, this project is, like Goldleaf, a good example of how powerful Plutonium libraries can be in order to make beautiful UIs.

Get it from here!

Want to create custom forwarders (eg. RetroArch ones)? check uViewer tool in latest releases!

Want to find themes for uLaunch? Check the r/uLaunchThemes subreddit!

For more detailed information about the whole project (and themeing too), check its wiki!

Features

List of HOME menu features uLaunch has:

  • Proper launching and foreground management: launch, suspend and close applications and applets

  • Proper general channel handling (some of it might be not implemented): sleep, shutdown, reboot, HOME menu press detection...

  • Settings:

    • Show connected WiFi network's name, MAC and IP address...

    • Open connection applet in case user wants to change network settings

    • Change console's language and show active one

    • Change console's nickname and show current one

  • User features:

    • Allow creating user on the startup menu

    • Show user's page (in order to edit nickname, icon, friends...)

  • Homebrew support

    • Launching as applets (no need of Album!)

    • Launching as applications (using a donor title!)

    • Custom basic homebrew menu

    • Option to add custom NRO accessors to main menu (homebrew or custom items easily accessible, no more need of forwarders!)

  • UI

    • Themes (different to official HOME menu themes/NXThemes)

      • Custom icons, menu assets and graphics (custom images, colors, sizes, positions...), background...

      • Custom background music and sound effects!

    • Folders in order to keep your main menu organized!

  • Users

    • PC-like login on startup (select user and use it for everything, log off, register/change/remove password...)

    • User password support! (up to 15 characters)

  • Miscellaneous extras

    • Web browsing (via web-applet) directly from the main menu!

    • Console screen capturing from PC itself (Windows-only) via USB-C cable and uViewer tool!

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.

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)

Compiling

You will need devkitPro, devkitA64, libnx and all SDL2 libraries for switch development.

Clone (recursively!) this repo (since it uses Atmosphere-libs and Plutonium submodules) and just enter make in the command line. It should build everything and generate a SdOut folder whose contents sould directly be copied to the root of a console SD card.

In order to only build a certain subproject, you can run make plus the subproject's name (make daemon, make hbtarget or make 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 ;)