The Homebrew Launcher 3DS: Difference between revisions

From GameBrew
(Created page with "{{Infobox 3DS homebrew | title = The Homebrew Launcher | image = https://dlhb.gamebrew.org/3dshomebrew/HomebrewLauncherv201-01.jpg|250px | type = Title Launchers | version = v...")
 
m (Text replacement - "Category:Homebrew title launchers on 3DS" to "")
 
(35 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Infobox 3DS homebrew
{{Infobox 3DS Homebrews
| title = The Homebrew Launcher
|title=The Homebrew Launcher
| image = https://dlhb.gamebrew.org/3dshomebrew/HomebrewLauncherv201-01.jpg|250px
|image=Newhbmenu3.png
| type = Title Launchers
|description=Run homebrew on your 3DS, also known as Homebrew Menu (hbmenu for short).
| version = v2.1.0
|author=Various authors
| licence = Mixed
|lastupdated=2024/05/04
| author = fincs
|type=Title Launchers
| website = https://github.com/fincs/new-hbmenu
|version=2.4.3
| download = https://dlhb.gamebrew.org/3dshomebrew/HomebrewLauncherv201.rar
|license=Mixed
| source = https://dlhb.gamebrew.org/3dshomebrew/HomebrewLauncherv201.rar
|download=https://dlhb.gamebrew.org/3dshomebrews/3dshbmenu.7z?243
|website=https://github.com/fincs/new-hbmenu
|source=https://github.com/fincs/new-hbmenu
|donation=https://devkitpro.org/support-devkitpro
}}
}}
<youtube>hlORgFfCCBQ</youtube>
The Homebrew Launcher, also known as Homebrew Menu (hbmenu for short), is the main menu used to list and launch homebrew applications. It is essentially a graphical shell around an existing homebrew loading mechanism. The following entrypoints are supported:
* [[Luma3DS|Luma3DS Rosalina]] (recommended) - Works on all system versions from 4.0 onwards; provides unrestricted access to 3DS system resources and extra features such as remote debugging (GDB).
* [https://smealum.github.io/3ds Legacy *hax 2.x] - This is a now-obsolete homebrew loading system. Support for this entrypoint is deprecated and may be removed in a future release.


= The Homebrew Launcher =
==Installation==
==== Presentation ====
The Homebrew Launcher (hbmenu for short) is a fairly simple (and beautiful) menu that lists homebrew applications in the 3DSX format and lets you run them. It can be used with the following entrypoints:
* ninjhax 1.x (the original 3DS homebrew exploit, originally released in November 2014)
* hax 2.x (the followup to ninjhax, originally released in July 2015)
* Rosalina (part of Luma3DS 8.0+ custom firmware, originally released in June 2017)
==== Usage ====
To install hbmenu, simply copy boot.3dsx to the root of your SD card.
To install hbmenu, simply copy boot.3dsx to the root of your SD card.
Use the D-Pad, Circle Pad or the touchscreen to select an application, and press A or touch it again to start it. Use the C-Stick alternatively on New 3DS to scroll the list of applications.
 
On certain entrypoints (ninjhax 1.x and hax 2.x), it is not possible to go back to the 3DS HOME menu using the HOME button. As an alternative, you can press the START button where you can reboot your console or (in the case of hax 2.x) relaunch HOME menu.
If you are using a recent version of [[Luma3DS|Luma3DS]] you probably already have a copy of hbmenu installed, as it comes bundled with it.
hbmenu starts in the sdmc:/3ds/ directory for applications and it will look for 3dsx files inside it. You can navigate the directory tree and open/browse folders as you would expect. Old style application bundle folders are also detected, however this functionality may be removed in the future.
 
==User guide==
===How to use===
hbmenu starts in the sdmc:/3ds/ directory for applications and it will look for 3dsx files inside it. You can navigate the directory tree and open/browse folders as you would expect. Additionally, folders containing a 3dsx file with the same name as the folder (or alternatively boot.3dsx) will be detected as an application bundle folder, and it will be presented as a single icon that can directly launch the application.
 
Here is an example directory structure that hbmenu will have no trouble recognizing:
Here is an example directory structure that hbmenu will have no trouble recognizing:
* sdmc:/
 
* 3ds/
sdmc:/ (root of SD card)
** games/
  |-3ds/
* Hermes.3dsx
  |  |-games/
** cubemadness.3dsx
  |  |  |-Hermes.3dsx
** 3dscraft.3dsx
  |  |  |-cubemadness.3dsx
** blargSNES.3dsx
  |  |-Checkpoint/ (this folder will be detected as an application bundle)
** gameyob.3dsx
  |  |  |-Checkpoint.3dsx
** 3dnes.3dsx
  |  |  |-...
** ftpd.3dsx
  |  |-ftpd.3dsx
** Themely.3dsx
  |  |-mgba.3dsx
  |  |-3dscraft.3dsx
  |  |-blargSNES.3dsx
  |  |-gameyob.3dsx
  |  |-3dnes.3dsx
 
If hbmenu does not find an icon file (either embedded in the executable or provided separately) to associate with a given 3dsx, it will display a default icon and the path to the executable as a fallback.
If hbmenu does not find an icon file (either embedded in the executable or provided separately) to associate with a given 3dsx, it will display a default icon and the path to the executable as a fallback.
hbmenu also allows you to create "shortcuts" which are xml files containing a path to a 3dsx file and optional arguments to pass to the .3dsx. This file can also include a path to icon data as well as name, description and author text using tags as follows:
 
<pre><shortcut>
Please keep in mind that you should not hotswap the SD card while hbmenu is running, since it compromises the 3DS OS's stability amongst other things. It is recommended that you instead use a file transfer homebrew application such as ftpd to transfer files without rebooting.
<executable>The path to the 3dsx file goes here.</executable>
 
<icon>path to smdh icon data</icon>
===Bookmark===
<arg>Place arguments to be passed to 3dsx here.</arg>
You can use the starring feature to bookmark applications, so that they are shown at the beginning of the list.
<name>Name to display</name>
 
<description>Description of homebrew app</description>
===Create shortcuts===
<author>Name of the author</author>
hbmenu also allows you to create shortcuts which are xml files containing a path to a 3dsx file and optional arguments to pass to the .3dsx. This file can also include a path to icon data as well as name, description and author text using tags as follows:
</shortcut></pre>
 
<source lang="html">
<shortcut>
    <executable>The path to the 3dsx file goes here.</executable>
    <icon>path to smdh icon data</icon>
    <arg>Place arguments to be passed to 3dsx here.</arg>
    <name>Name to display</name>
    <description>Description of homebrew app</description>
    <author>Name of the author</author>
</shortcut>
</source>
 
Arguments are space or tab separated but can use single or double quotes to contain whitespace.
Arguments are space or tab separated but can use single or double quotes to contain whitespace.
Name, description and author will be read from the .3dsx if it has embedded SMDH data or from the supplied icon path. The fields in the xml file will then override their respective entries.
Name, description and author will be read from the .3dsx if it has embedded SMDH data or from the supplied icon path. The fields in the xml file will then override their respective entries.
You should not hotswap the SD card while hbmenu is running since it compromises the 3DS OS's stability amongst other things. It is recommended that you instead use a file transfer homebrew application such as ftpd to transfer files without rebooting.
 
==== Technical notes ====
===Netloader===
hbmenu does all its rendering in hardware thanks to the [https://github.com/fincs/citro3d citro3d] library. The 3DS system font is also used to render all text.
hbmenu contains support for the 3dslink protocol, which allows you to remotely load applications. Please refer to the [https://github.com/fincs/new-hbmenu repository] of more information.
hbmenu uses some funky mechanisms to launch 3dsx files. If you're interested in launching 3dsx files from your own application, you should look here; although these mechanisms may change in the future.
 
==== Netloader ====
==Controls==
hbmenu contains support for the 3dslink protocol, which allows you to remotely load applications. Press Y to activate as usual then run <code>3dslink <3dsxfile></code> if your network can cope with UDP broadcast messages. If 3dslink says 3DS not found then you can use <code>-a <ip address></code> to tell it where to send the file.
D-Pad/Circle Pad or Touchscreen - Navigate and select an application
All the other arguments you give 3dslink will be passed as arguments to the launched 3dsx file. You can also specify argv[0] with <code>-0 <argument></code> which is useful for setting the current working directory if you already have data files in a particular place, i.e. <code>3dslink myfile.3dsx -0 sdmc:/3ds/mydata/</code>
 
3dslink is provided with devkitARM or you can download binaries from [http://davejmurphy.com/3dslink/ WinterMute's website].
C-Stick (n3DS) - Scroll the list of applications.
==== Building ====
 
hbmenu uses zlib for compression and tinyxml2 for XML parsing. These libraries are provided by devkitPro through the portlibs mechanism. In order to install them, use the following command:
A or Touchscreen - Start application
<pre class="shell"> pacman -S 3ds-zlib 3ds-tinyxml2</pre>
 
(Note that <code>dkp-pacman</code> is used instead on systems that do not distribute pacman, such as macOS or Debian-based Linux distros)
B - Exit submenu/selector
Binaries of hbmenu can be downloaded from the [https://github.com/fincs/new-hbmenu/releases Releases] page.
 
==== Contributing ====
Select - Star/unstar currently selected homebrew application
hbmenu is looking for contributors! We're making this repository public so that you, the community, can make hbmenu into the menu of your dreams. Or show you how to make your own, better menu! Of course we'd rather you improved hbmenu rather than went off and started fragmenting the userbase, but any contributions to the homebrew scene are welcome. Feel free to use code from hbmenu for your own projects, so long as you give credit to its original authors.
 
==== Credits ====
Y - Launch NetLoader
* smea: code & original hbmenu version
 
* fincs: code & rewrite
Home - Go back to 3DS Home Menu
* GEMISIS: code
 
* mtheall: code
On *hax 2.x, it is not possible to go back to the 3DS Home menu with the Home key. You can use the Start key to reboot your console or relaunch Home menu instead.
* WinterMute: netloader code
 
* Fluto: graphics
==Media==
* Arkhandar: graphics
'''Homebrew Launcher for Nintendo 3DS''' ([https://www.youtube.com/watch?v=hlORgFfCCBQ Kevin Muldoon]) <br>
* dotjasp: graphics (regionfree icon)
<youtube>hlORgFfCCBQ</youtube>
* gruetzkopf, TuxSH, AuroraWright, Soph1a7, SentientTurtle, Yami-chan, d3m3vilurr, daedreth, JixunMoe, yy-codes, MCPE-PC: translations
 
==Known issues==
Please see https://github.com/fincs/new-hbmenu/issues.
 
==Changelog==
'''v2.4.3 2024/05/04'''
*Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.
 
'''v2.4.2 2023/11/07'''
* Rebuilt with latest libs.
* Set config path to config/3ds-hbmenu.
* Bundle with config/ssl/cacert.pem for libcurl.
 
'''v2.4.1 2022/02/10'''
*Built with latest tools and libraries.
*Fixed starred function when used inside an empty folder.
 
'''v2.4.0 2022/06/05'''
* Added support for filetype associations, backported from Switch Homebrew Menu (Feature developed by @TurtleP).
 
'''v2.3.0 2022/01/29'''
* Built with latest tools and libraries.
* Added support for 3dslink server option (requires 3dslink 0.6.1, available via devkitPro pacman).
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.
 
'''v2.2.0 2020/07/16'''
* Built with latest tools and libraries.
* Added starring system (backported from nx-hbmenu): press SELECT to star or unstar an application.
* Added key repeat support for scrolling.
* Added wave rendering.
* Removed support for ninjhax 1.x.
* Simplified app bundle detection support, removing some obsolete edge cases.
* Miscellaneous optimizations and bug fixes.
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.
* Binary hotfixed on 2020/07/18 01:50 (UTC+2) to solve a hax 2.x compatibility problem.
 
'''v2.1.1 2020/04/26'''
* Built with latest tools/libraries.
* Minor text fixes.
 
'''v2.1.0 2019/06/29'''
* Added netsender functionality, for sending homebrew to other 3DSes directly from hbmenu.
* Added Chinese language support.
* Improved Korean and Japanese translations.
* Now displays Wifi strength in status bar.
* Hidden files and dotfiles are now hidden.
* Fixed text rendering in non-JPN/USA/EUR system fonts.
* Fixed positioning of the HOME button icon in New 2DS XL systems.
* Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.
 
'''v2.0.0 2017/06/05'''
* Complete rewrite.
* Now using GPU hardware rendering and stereoscopic 3D.
* Rosalina support.
* Translations for all 3DS system languages (except for Chinese).
* Maybe others forgot to mention.
 
==Credits==
* smea - Code & original hbmenu version.
* fincs - Code & rewrite.
* GEMISIS - Code.
* mtheall - Code.
* WinterMute - Netloader code.
* Fluto - Graphics.
* Arkhandar - Graphics.
* dotjasp - Graphics (regionfree icon).
* gruetzkopf, TuxSH, AuroraWright, Soph1a7, SentientTurtle, Yami-chan, d3m3vilurr, daedreth, JixunMoe, yy-codes, MCPE-PC - Translations.
 
==External links==
* GitHub - https://github.com/fincs/new-hbmenu
 
 
 
[[Category:Support the author]]

Latest revision as of 05:11, 6 May 2024

The Homebrew Launcher
Newhbmenu3.png
General
AuthorVarious authors
TypeTitle Launchers
Version2.4.3
LicenseMixed
Last Updated2024/05/04
Links
Download
Website
Source
Support Author

The Homebrew Launcher, also known as Homebrew Menu (hbmenu for short), is the main menu used to list and launch homebrew applications. It is essentially a graphical shell around an existing homebrew loading mechanism. The following entrypoints are supported:

  • Luma3DS Rosalina (recommended) - Works on all system versions from 4.0 onwards; provides unrestricted access to 3DS system resources and extra features such as remote debugging (GDB).
  • Legacy *hax 2.x - This is a now-obsolete homebrew loading system. Support for this entrypoint is deprecated and may be removed in a future release.

Installation

To install hbmenu, simply copy boot.3dsx to the root of your SD card.

If you are using a recent version of Luma3DS you probably already have a copy of hbmenu installed, as it comes bundled with it.

User guide

How to use

hbmenu starts in the sdmc:/3ds/ directory for applications and it will look for 3dsx files inside it. You can navigate the directory tree and open/browse folders as you would expect. Additionally, folders containing a 3dsx file with the same name as the folder (or alternatively boot.3dsx) will be detected as an application bundle folder, and it will be presented as a single icon that can directly launch the application.

Here is an example directory structure that hbmenu will have no trouble recognizing:

sdmc:/ (root of SD card)
  |-3ds/
  |  |-games/
  |  |  |-Hermes.3dsx
  |  |  |-cubemadness.3dsx
  |  |-Checkpoint/ (this folder will be detected as an application bundle)
  |  |  |-Checkpoint.3dsx
  |  |  |-...
  |  |-ftpd.3dsx
  |  |-mgba.3dsx
  |  |-3dscraft.3dsx
  |  |-blargSNES.3dsx
  |  |-gameyob.3dsx
  |  |-3dnes.3dsx

If hbmenu does not find an icon file (either embedded in the executable or provided separately) to associate with a given 3dsx, it will display a default icon and the path to the executable as a fallback.

Please keep in mind that you should not hotswap the SD card while hbmenu is running, since it compromises the 3DS OS's stability amongst other things. It is recommended that you instead use a file transfer homebrew application such as ftpd to transfer files without rebooting.

Bookmark

You can use the starring feature to bookmark applications, so that they are shown at the beginning of the list.

Create shortcuts

hbmenu also allows you to create shortcuts which are xml files containing a path to a 3dsx file and optional arguments to pass to the .3dsx. This file can also include a path to icon data as well as name, description and author text using tags as follows:

<shortcut>
    <executable>The path to the 3dsx file goes here.</executable>
    <icon>path to smdh icon data</icon>
    <arg>Place arguments to be passed to 3dsx here.</arg>
    <name>Name to display</name>
    <description>Description of homebrew app</description>
    <author>Name of the author</author>
</shortcut>

Arguments are space or tab separated but can use single or double quotes to contain whitespace.

Name, description and author will be read from the .3dsx if it has embedded SMDH data or from the supplied icon path. The fields in the xml file will then override their respective entries.

Netloader

hbmenu contains support for the 3dslink protocol, which allows you to remotely load applications. Please refer to the repository of more information.

Controls

D-Pad/Circle Pad or Touchscreen - Navigate and select an application

C-Stick (n3DS) - Scroll the list of applications.

A or Touchscreen - Start application

B - Exit submenu/selector

Select - Star/unstar currently selected homebrew application

Y - Launch NetLoader

Home - Go back to 3DS Home Menu

On *hax 2.x, it is not possible to go back to the 3DS Home menu with the Home key. You can use the Start key to reboot your console or relaunch Home menu instead.

Media

Homebrew Launcher for Nintendo 3DS (Kevin Muldoon)

Known issues

Please see https://github.com/fincs/new-hbmenu/issues.

Changelog

v2.4.3 2024/05/04

  • Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.

v2.4.2 2023/11/07

  • Rebuilt with latest libs.
  • Set config path to config/3ds-hbmenu.
  • Bundle with config/ssl/cacert.pem for libcurl.

v2.4.1 2022/02/10

  • Built with latest tools and libraries.
  • Fixed starred function when used inside an empty folder.

v2.4.0 2022/06/05

  • Added support for filetype associations, backported from Switch Homebrew Menu (Feature developed by @TurtleP).

v2.3.0 2022/01/29

  • Built with latest tools and libraries.
  • Added support for 3dslink server option (requires 3dslink 0.6.1, available via devkitPro pacman).
  • Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.

v2.2.0 2020/07/16

  • Built with latest tools and libraries.
  • Added starring system (backported from nx-hbmenu): press SELECT to star or unstar an application.
  • Added key repeat support for scrolling.
  • Added wave rendering.
  • Removed support for ninjhax 1.x.
  • Simplified app bundle detection support, removing some obsolete edge cases.
  • Miscellaneous optimizations and bug fixes.
  • Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.
  • Binary hotfixed on 2020/07/18 01:50 (UTC+2) to solve a hax 2.x compatibility problem.

v2.1.1 2020/04/26

  • Built with latest tools/libraries.
  • Minor text fixes.

v2.1.0 2019/06/29

  • Added netsender functionality, for sending homebrew to other 3DSes directly from hbmenu.
  • Added Chinese language support.
  • Improved Korean and Japanese translations.
  • Now displays Wifi strength in status bar.
  • Hidden files and dotfiles are now hidden.
  • Fixed text rendering in non-JPN/USA/EUR system fonts.
  • Fixed positioning of the HOME button icon in New 2DS XL systems.
  • Further improvements to overall system stability and other minor adjustments have been made to enhance the user experience.

v2.0.0 2017/06/05

  • Complete rewrite.
  • Now using GPU hardware rendering and stereoscopic 3D.
  • Rosalina support.
  • Translations for all 3DS system languages (except for Chinese).
  • Maybe others forgot to mention.

Credits

  • smea - Code & original hbmenu version.
  • fincs - Code & rewrite.
  • GEMISIS - Code.
  • mtheall - Code.
  • WinterMute - Netloader code.
  • Fluto - Graphics.
  • Arkhandar - Graphics.
  • dotjasp - Graphics (regionfree icon).
  • gruetzkopf, TuxSH, AuroraWright, Soph1a7, SentientTurtle, Yami-chan, d3m3vilurr, daedreth, JixunMoe, yy-codes, MCPE-PC - Translations.

External links

Advertising: