ravensclawx/HBLauncher
GamesBrowse and launch GPU homebrew apps on a Switch 2 through SmileBASIC, with an SDK for building them.
HBLauncher is a homebrew app launcher that runs through SmileBASIC on Nintendo Switch 2. It lets you browse a catalog on the console, start independent GPU programs, and return to the menu. It also ships an SDK and a complete Hello World app as a starting point for writing your own. It is explicitly not an NRO or native ARM64 loader, a standalone installed title, or custom firmware.
How it works
The computer hosts the app library and keeps the bridge alive. Application logic runs in compute shaders and graphics in vertex/fragment shaders on the console GPU; an app supplies shaders and data, not host JavaScript. A build script runs on your PC only and is not executed when a package is installed. Apps live as immediate subdirectories of apps/ on the host and appear after Refresh; the catalog accepts at most 32 apps, and invalid folders are listed in catalog.rejected without blocking valid ones. The host fingerprints manifests and assets, rejects a package that changed between scan and launch, and resets app state on each launch. There is no persistence or save API. See the package manifest and GPU programming interface.
Building an app
The SDK generator copies the working Hello World source and refuses to overwrite an existing folder. You then edit app.json, the three shaders, and asset generation, and build with Node. Generated SPIR-V, binary, and PNG files belong in the distributable package; users should not need to compile an app to install it. The SDK guide documents input helpers, motion, networking, NFC, vibration, and memory. Input covers controller buttons and sticks, touch (up to 16 contacts), and Joy-Con 2 optical mouse control in the launcher itself. Shaders run at 1920×1080 with no app-configurable textures, blending, mesh uploads, or push constants, so rendering is procedural or from packed pixel data.
Requirements and constraints
Supported only on SmileBASIC 4.4.9 with Switch 2 system software 23.0.1; the bridge uses version-specific addresses and checks, and other versions are not supported. You need a Linux x86-64 host on a reachable network, a Raspberry Pi Pico 2 W with CircuitPython, Node.js 22+, and Python 3 with Pillow, DejaVu Sans, spirv-val, and glslangValidator. The Pico setup involves flashing firmware and installing a Wi-Fi/pairing configuration; the README warns to keep the pairing key and settings.toml private and to use the GP0 jumper for maintenance access. Ports 39380 and 39381 must be allowed inbound. See requirements and setup.
The README's own warnings are significant: use at your own risk, back up data, and note that apps using filesystem features can modify or delete real SmileBASIC files. After a failed native session, restart the console; do not repeat REMOVE in the same application process or reuse an old session's addresses. Desktop tests and CI cannot validate USB keyboard delivery or console execution. No blanket project license has been assigned, so third-party notices must be retained and redistribution permissions resolved before publishing a licensed release.
HotRepo's take
A HotRepo NEW-REPOSITORY board sample recorded 127 total stars (#19, JavaScript) on 2026-10-25; this is not a daily growth measurement, and there is insufficient comparable daily-board history to judge momentum.
Written by AI from the project's README, updated October 28, 2026. The project's own docs are the source of truth.