A console menu for the PlayStation 2, running on the PlayStation 2.

Covers, 3D save icons, achievements, an in-game menu and games from a server at home. The console fetches and builds all of it; there is nothing to prepare on a PC.

The loading screen, redrawn in your browser from the launcher's own splash.c. Free software under GPL-3.0. Called ORBIT until v1.1.

What runs on the console

Every row happens on the PS2 itself. The numbers were measured on a slim PS2 (SCPH-75001).

01Covers by the consoleMissing covers download over HTTPS from xlenore/ps2-covers, are decoded and dithered on the Emotion Engine, and saved to the USB. Later boots work offline.
02Three views at 60 fpsCarousel, grid or list, filtered by PS2, PS1 or apps. A median frame takes under 5 ms of its 16.7 ms budget.
033D save iconsThe newest save of each game is read from its memory card, and the game's own 3D icon turns beside the title.
04Virtual memory cardsOne card per game or one shared, created on first play on the game's own device. Or the physical card, chosen per game.
05In-game menuL1+L2+R1+R2+START+SELECT pauses any game and offers restart or power off. Restart lands back in NULD.
06Achievements on hardwareEach game is identified with the rcheevos hash. While you play, an agent inside the game sends its memory to the xeRAbora client, which unlocks them on your profile.
07Games from a home serverISOs on a Linux box list instantly and load over the cable, with the same covers, cards and achievements as the USB.
08Every source Neutrino readsUSB, internal HDD (exFAT or HD Loader), MX4SIO, i.Link, MMCE, UDPBD and udpfs, mixed in one list. Discs, PS1 games through POPStarter, and homebrew from APPS/ too.
09Per-game optionsForce 480p or 1080i, Neutrino's compatibility modes, which memory card. Remembered per game.
10Setup and updates on the PS2A wizard writes config.ini and FreeMcBoot's autoboot. With the cable in, NULD installs a new release only after every file matches a signed manifest.
11Spanish or EnglishOne setting changes the menus, the in-game menu and the comments in the config file.
□Carousel, with the game's serial, media, source and video mode.
□Grid: the whole library at a glance.
□List, with the cover beside it.
mc1The newest save on the memory card, with its 3D icon turning on the card.
raBlack has a set: 56 achievements, found by the game's rcheevos hash.
○The achievements and your progress, from the xeRAbora client at home.
△Per-game options: video mode, compatibility and memory card.
startThe setup wizard, here in Spanish, writes config.ini and FreeMcBoot's autoboot.
bootThe console's loading screen, caught in a glitch cut.

Download

One zip for the USB drive. Coming from ORBIT? The first boot moves your settings from orbit/ to nuld/ and keeps everything working.

NULD ziplauncher.elf, Neutrino with NULD's in-game menu and achievements agent, the folders, the optional home server and a quick start
all releasesRelease notes and SHA-256 checksums
jfplay.elfOptional: your Jellyfin movies and series on the PS2, with subtitles
xeRAbora v0.1.0-alpha.9Optional, for achievements: the client NULD is tested with, on a PC or server at home

Three steps

You need a PS2 that runs homebrew (FreeMcBoot or similar) and a USB drive. The manual has the rest.

  1. Copy the zip's contents to the root of a FAT32 or exFAT drive. Put PS2 ISOs in DVD/.
  2. Start mass0:/launcher.elf from uLaunchELF, or let the setup wizard make it FreeMcBoot's autoboot.
  3. Pick a game and press ✕. The first boot writes nuld/config.ini, every setting commented.

Videos: the trailer and the setup guide on a real PS2, both recorded when NULD was still ORBIT.