explaingit

rufidj/nativehbl

17CAudience · developerComplexity · 4/5LicenseSetup · hard

TLDR

A graphical launcher for PlayStation 5 homebrew software that lets you browse and start unofficial apps from internal storage or USB drives using controller input and customizable visual themes.

Mindmap

mindmap
  root((nativehbl))
    What it does
      Browse homebrew apps
      Launch from USB or storage
      Controller navigation
    Visual themes
      Built-in theme names
      Custom skin manifest
      Preview music playback
    Delivery
      Two ELF files
      Bootstrap then UI
    Requirements
      HBL PKG installed
      ps5-payload-sdk
      make build
    Tech stack
      C
      SDL2
      ps5-payload-sdk
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace the browser-based homebrew loader on your PS5 with a native graphical menu you can navigate with a controller.

USE CASE 2

Add custom visual themes to your PS5 homebrew launcher by writing a manifest file to the console storage.

USE CASE 3

Build and deploy your own homebrew launcher on PS5 from source using the ps5-payload-sdk.

Tech stack

CSDL2ps5-payload-sdk

Getting it running

Difficulty · hard Time to first run · 1day+

Requires the Homebrew Launcher PKG pre-installed on the PS5 and the ps5-payload-sdk toolchain for building from source.

Contains GPL-licensed code, derivative works must also be released under the GPL.

In plain English

Nativehbl is a homebrew launcher for the PlayStation 5, written in C using the SDL2 graphics library. Homebrew refers to software created by independent developers that runs on a gaming console outside of the official platform. This launcher provides a graphical interface for browsing and starting homebrew applications directly on the console, replacing an earlier browser-based approach. The launcher scans specific folders on the console's internal storage and on connected USB drives for homebrew applications, displays them in a full-screen menu, and lets you select and launch them with the controller. Pressing left or right moves between entries, Cross launches the selected app, Triangle cycles through visual themes, Square refreshes the list, and Circle exits. Visual appearance is handled through built-in software-rendered themes with names like "default_neon", "sunset_cassette", and "matrix_terminal". You can also create a custom skin by writing a manifest file to a specific folder on the console. When you highlight a homebrew entry, the launcher plays a preview music track in a loop if one is included with that app. The project ships as two ELF files, the binary format used to deliver payloads to a PS5. You load the bootstrap ELF first, which then starts the visual interface as a separate process. This requires a prerequisite: the Homebrew Launcher PKG must already be installed on the console through whatever setup method applies to your situation. Without that installed base app, the launcher will not work correctly. If using an autoloader, a roughly five-second delay is recommended before the bootstrap executes to allow the console environment to finish initializing. Building from source requires the ps5-payload-sdk and runs with a single make command. The project includes GPL-licensed code adapted from the websrv project by John Tornblom and has 17 stars on GitHub.

Copy-paste prompts

Prompt 1
I want to build nativehbl from source for my PS5. What do I need to install and what does the make command look like?
Prompt 2
Walk me through setting up a custom skin manifest for nativehbl, including the required folder location on the PS5 and what fields the manifest needs.
Prompt 3
How does nativehbl use SDL2 for software-rendered themes? Explain the rendering pipeline so I can add a new theme variant.
Open on GitHub → Explain another repo

← rufidj on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.