From WikiTemp, the GBAtemp wiki
The Homebrew Launcher
3dshb TheHomebrewLauncher logo.png
AuthorSmealum, GEMISIS, fincs, mtheall
Graphics byFluto, Arkhandar, dotjasp

The Homebrew Launcher (hbmenu for short) is the default menu for ninjhax, a 3DS homebrew-enabling exploit released on November 20th 2014. It is a fairly simple (and beautiful) menu that lists homebrew applications and lets you run them.



To use The Homebrew Launcher as your ninjhax main menu, simply rename the 3dsx executable to boot.3dsx and place it at the root of your SD card.

It is included in every iteration 3ds homebrew starter kit by default.


  • Start: reboot your console into home menu.
  • D-Pad, Circle Pad, Stylus: Navigate and select an application
  • A or Stylus: Start application.
  • B: Exit submenu/selector
  • Y: Launch NetLoader

Supported format

Only executable files in 3dsx format are supported.

Icons and banners are supported in smdh, bin, and icn format.

Supported paths

The Homebrew Launcher scans all the .3dsx files located in the sdmc:/3ds/ folders and its sub-folders.

It can list 3dsx executables located in the sdmc:/3ds/ directory, but ideally, you should have a folder for each application, containing an executable and an icon (SMDH) file.

The executable should be named either boot.3dsx or [folder name].3dsx.

The icon file can be named either icon.bin, icon.smdh, icon.icn, [folder name].smdh, or [folder name].icn. They are all the same smdh format, only the name is different, so use the filename you prefer.

Here is a list of all supported paths and filename for executable:

/3ds/name of the homebrew/boot.3dsx
/3ds/name of the homebrew/<name of the folder>.3dsx

And a list of all supported paths and filename for the icons:

/3ds/name of the homebrew/icon.bin
/3ds/name of the homebrew/icon.icn
/3ds/name of the homebrew/icon.smdh
/3ds/name of the homebrew/<name of the folder>.icn
/3ds/name of the homebrew/<name of the folder>.smdh


In order to compile The Homebrew Launcher, you need to install zlib for 3DS:

1) Download zlib-1.2.8. You don't need to extract it.

2) Copy the following text and save it as a file named "Makefile":

ZLIB                 := zlib
ZLIB_VERSION         := $(ZLIB)-1.2.8
ZLIB_SRC             := $(ZLIB_VERSION).tar.gz
export PORTLIBS        := $(DEVKITPRO)/portlibs/armv6k
export PATH            := $(DEVKITARM)/bin:$(PATH)
export PKG_CONFIG_PATH := $(PORTLIBS)/lib/pkgconfig
export CFLAGS          := -march=armv6k -mtune=mpcore -mfloat-abi=hard -O3 -mword-relocations
export CPPFLAGS        := -I$(PORTLIBS)/include
export LDFLAGS         := -L$(PORTLIBS)/lib
.PHONY: all install clean
all: $(ZLIB_SRC)
	@[ -d $(ZLIB_VERSION) ] || tar -xf $<
	@cd $(ZLIB_VERSION) && \
	 CHOST=arm-none-eabi ./configure --static --prefix=$(PORTLIBS)
	@$(MAKE) -C $(ZLIB_VERSION) install
	@$(RM) -r $(ZLIB_VERSION)

3) Place both the makefile and the tar.gz in the same folder.

4) Open a command prompt/terminal and navigate to the folder with the Makefile

5) Run the commands make and make install

6) You can now compile the homebrew launcher.