Homebrew Menu Switch

From GameBrew
Homebrew Menu
Homebrewmenunx.png
General
Authoryellows8, plutoo
TypeTitle Launchers
Version3.6.0
LicenseISC
Last Updated2023/10/28
Links
Download
Website
Source

The Homebrew Menu, also referred to as nx-hbmenu, is designed for the Nintendo Switch and serves as a menu for launching homebrew applications. These applications are launched using the Homebrew ABI.

See Homebrew_Applications for SD layout and applications, etc. See Switchbrew for hbmenu docs.

Features

  • Launch Homebrew Applications.
  • Battery/charge/temperature status.
  • Local-time and network status.
  • Netloader.
  • Custom themes (from /config/nx-hbmenu/themes/).

Installation

Places hbmenu.nro on the root of your SD card.

After the exploit, HBL is launched by visiting the Album from the home menu.

User guide

Applications are installed by copying the necessary files directly to the /switch/ folder in the root of the SD card, or in a subdirectory of /switch/, in which case said subfolder must be named identically to its executable. Normally the former should be used. The latter should be used if the application uses anything from FS current-working-directory (directory where the NRO is located).

Applications are in the form of [appname].nro.

The Homebrew Menu will scan the SD card for all .nro files, but will only display an icon for those who have one according to the format described above. You can also freely navigate the filesystem to select an application.

Icon/metadata for each application is loaded from data embedded in the NRO (custom assets section), if available.

Controls

D-Pad/Joysticks - Select the app/directory

Up/Down - Scroll faster

A - Launch the app, Enter a directory

B - Leave the current directory

Y - Activate netloader

B - Deactivate netloader

Minus - Enter Theme Menu

X - (un)star the current menu entry

Touch controls:

Swipe Left/Right (on the bottom list) - Navigate through the list of folders and applications

Tap Open or Launch (in the bottom right) - Open an item

Swipe Up or Tap the Back button (in the bottom right) - Go back (a folder) (button is only available when no message-box is shown/netloader isn't active)

Swipe Down (on the screen) - Activate the netloader you can swipe down on the screen

Swipe Left (on the screen) - Enter Theme Menu

Touch the (un)star button - (Un)star the current menu entry

Screenshots

homebrewmenunx.png

Changelog

v3.6.0 2023/10/28

  • Updated temperature handling for [17.0.0+].
  • Added ZL/ZR as additional tile skip buttons, same as DPad Down/Up.
  • Fixed issue with Wi-Fi strength display.
  • Built with libnx stable v4.5.0.

v3.5.1 2022/06/15

  • Fixed temperature display on [14.0.0+].
  • Updated various (currently unused) language text.
  • Built with libnx stable v4.2.1.

v3.5.0 2021/10/30

  • Added support for additionally using themes from a directory, or from a .zip.
  • For .zip, it must directly contain the theme data, not a directory.
  • Updated various (currently unused) language text.
  • Built with libnx stable v4.2.0.

v3.4.1 2021/07/16

  • Built with libnx stable v4.1.3.
  • Extend French and Spanish translations.
  • Prevent crash when attempting to launch missing .nro.
  • Several issues were fixed, and usability and stability were improved.

v3.4.0 2020/12/20

  • Built with libnx stable v4.0.0.
  • Holding down directions now allows for quickly scrolling through the list.
  • Graphics performance improvements.
  • Added momentum to touch drags.
  • Several issues were fixed, and usability and stability were improved.

v3.3.0 2020/04/06

  • HID input is now accepted from all controllers including handheld when connected, instead of determining which controllers to use with hidGetHandheldMode().
  • Fixed a crash in touch handling for star-button when the current directory is empty (no menu entries).
  • Implemented layouts which can optionally be loaded from theme config.
  • Added support for using themes with extension '.romfs', which contains '/theme.cfg', optionally '/icon.jpg' for the menu-entry in Theme Menu, and any assets. Added 'assets' group to theme config, this is only used with .romfs themes.
  • Added logoColor and highlightGradientEdgeColor to the theme config.
  • When entering Theme Menu, the initially selected menu-entry is now the currently configured theme.
  • Updated the default highlightGradientEdgeColor.
  • File-association entries without an icon are no longer ignored (such as when there's no embedded app-icon and no other icon is loaded).
  • Added support for using file-associations with netloader, an error will now be thrown if the filename/file-extension used with netloader is not recognized.
  • Errors during netloader activation are now actually displayed.
  • Netloader now uses SO_REUSEADDR, this fixes netloader activation temporarily failing after a netloader error previously occurred.
  • Added app_args config setting for file-associations.
  • Built with libnx stable v3.1.0. Hence, the local-time is now displayed correctly with certain timezones.
  • Further improvements to overall system stability and other minor adjustments to enhance the user experience.

v3.2.0 2019/12/11

  • Display the system temperature.
  • Handle HID input for all connected controllers (handheld and 0-7).
  • Fixed a bounds check for netloader cmd-line args.
  • Built with libnx stable v3.0.0.
  • Further improvements to overall system stability and other minor adjustments to enhance the user experience.

v3.1.1 2019/09/15

  • Built with libnx stable v2.5.0.

v3.1.0 2019/08/09

  • Display network status.
  • Added support for loading {filename}.nacp similar to {filename}.jpg, when processing files for fileassoc.
  • Added support for starring files/directories, these are displayed at the start of the menu listing.
  • Display "Applet Mode" indicator when running under an applet, in order to help users who are inadvertently running homebrew in applet mode and therefore experiencing otherwise hard to troubleshoot problems.
  • Display the hbloader version.
  • Fixed slowdown due to drawing too many menu entries.
  • Improved netloader perf.
  • Fixed a buffer overflow during netloader transfer due to not checking the chunksize.
  • Fixed netloader issue with large-chunksize, due to the chunksize field being partly uninitialized.
  • Built with libnx stable v2.4.0.
  • Further improvements to overall system stability and other minor adjustments to enhance the user experience.

v3.0.1 2018/11/30

  • Disabled touch-controls horizontal swipe when it conflicts with the app-listing.
  • Fixed root directory handling, which fixes root directory support on 1.0.0.
  • Built with libnx stable v1.6.0.
  • Further improvements to overall system stability and other minor adjustments to enhance the user experience.

v3.0.0 2018/10/30

  • Features:
    • Added message boxes. The envGetLastLoadResult() output is now displayed during startup if needed (error returned by the application which ran last).
    • Added nxlink support (netloader).
      • The Switch IP address can automatically be determined via UDP broadcast.
      • Netloader is handled on a seperate thread with non-blocking sockets. UI drawing is not blocked during the transfer.
      • The transfer can be aborted via 'Back' input.
      • If the transfer stopped without finishing, the file is deleted.
      • When returning to the main-menu from netloader, the menu is reloaded since the netloader NRO may have been deleted due to the transfer stopping.
      • Netloader status is displayed in a message-box while netloader is active. This include transfer progress and a progress-bar.
      • Fixed buffer overflow vuln with netloader args introduced with the original netloader commit (nothing useful which could cause a crash can be overwritten with an unmodifed nxlink). Fixed unrelated bounds check in launchAddArg() which broke once nxlink_host support was added.
    • Use system shared-font. Note that the system language is still not used.
    • Added touch-controls.
    • Added support for themes loaded from SD. If the system theme is not recognized, the used theme will default to the dark theme.
    • Added Theme Menu for selecting the used theme, including the default theme.
    • Enabled time display, which uses local-time.
    • The battery/charging status is now displayed.
    • Added support for file-associations.
  • Other:
    • Replaced nanojpeg with libjpeg-turbo. See README regarding this.
    • The switch/ directory is created if it doesn't exist. Config dirs on SD are now automatically created during startup if needed.
    • Display an error screen with print-console instead of using fatalSimple, for errors during startup. Display a message-box in launchFile() for app-launching when an error occurs instead of using fatalSimple.
    • Use applet exit-locking.
    • Assets are now loaded from a .zip in RomFS instead of embedding it in data/.
    • Built with libnx stable v1.5.0.
    • Further improvements to overall system stability and other minor adjustments to enhance the user experience.

v2.0.0 2018/03/01

  • Major GUI update.
  • The used theme is now selected via the current system theme.
  • Files/directories starting with name '.' are now ignored.
  • Args are now handled properly.
  • If {dirname}/{dirname}.nro is not found, the NRO found via dir-listing will be used instead, if there's only 1 NRO in the directory. This only applies for paths located under "sdmc:/switch/".

v1.0 2019/02/18

  • Initial release.
  • Extract this archive to the root of the microSD card.

Credits

  • This uses code based on new-hbmenu.
  • libjpeg-turbo is used for handling JPEG icons. This library doesn't support lossless JPEG (likewise for official sw which uses libjpeg-turbo).

External links

Advertising: