Repository navigation
Releases
NULD v1.2.12
The splash counts the games on your home server.
Fixed
- The splash stopped at "00 / 01" with games on a home server: its total counted only what is on the USB, and
the server's games were never added. They are now counted as the catalog arrives (and HD Loader games too).
The line now reads "Cargando juegos" / "Loading games": it is the game list, covers load later as they show.
Updating
With the network cable in, START at the update notice. Otherwise copy launcher.elf and neutrino/ from the
zip over the ones on your drive.
NULD v1.2.11
Fixes a black screen after the splash.
Fixed
- Black screen after the splash, at every boot. The update check waits for GitHub over HTTPS; when a server
went quiet the launcher waited forever (the network library here ignores the 15-second limit the code asked for),
and the screen stayed black. HTTPS reads now give up after 8 seconds of silence, andlauncher.txtsays where
the check stopped. If you are stuck on v1.2.8: on the USB, innuld/config.ini, set[actualizaciones] buscar = no
to boot, update by hand, then set it back.
New since v1.2.5
- Save icons for the games on your home server (needs the server's
nuld_catalog.pyandnuld_hashfrom this
zip'sserver/; restart it withsystemctl --user restart nuld-catalog). - Covers for apps:
covers/<title>.c16and_s.c16, named after the title the launcher shows. - Faster covers and achievements: covers read in one request per file; the first achievements query no longer
waits for the update check; the client's "still loading" answer is asked again 5 times a second.
Updating
With the network cable in, START at the update notice. Otherwise copy launcher.elf and neutrino/ from the
zip over the ones on your drive.
NULD v1.2.8
Faster covers and achievements in the launcher, covers for apps.
Faster
- Covers are read from the USB in one request per file instead of 1 KB at a time.
- Achievements: the first game's query no longer waits for the update check (seconds of HTTPS at every boot),
and the client's "still loading" answer is asked again 5 times a second instead of once.
New
- Covers for apps. An app (APPS/) has no serial: its covers are
covers/<title>.c16and_s.c16, named after
the title the launcher shows (tools/covers.py makes them from a PNG or JPG with that name).
Changed
launcher.txtlogs each request for a home-server game's memory card ("nuld vmc remote"), to find why its save
icon does not show yet.
Updating
With the network cable in, START at the update notice. Otherwise copy launcher.elf and neutrino/ from the
zip over the ones on your drive.
NULD v1.2.6
Save icons for the games on your home server.
New
- The save icon of a game from the home server. Its virtual memory card lives on the server, which the
launcher never read: the catalog service now lists the card and hands over the newest save's icon.
Updating
With the network cable in, START at the update notice. Otherwise copy launcher.elf and neutrino/ from the
zip over the ones on your drive.
On the server, replace nuld_catalog.py and nuld_hash with the ones in the zip's server/ and restart it:
systemctl --user restart nuld-catalog. An older catalog keeps working; the icons just do not show.
NULD v1.2.5
Achievement unlocks show up in the game.
New
- Unlock notice in the game. When the achievements client announces an unlock, the game pauses for about
2.5 seconds under a box with "LOGRO DESBLOQUEADO 5 PTS" (or "ACHIEVEMENT UNLOCKED") and the achievement's title.
The titles come from the client's list at launch (the ones still to earn, up to 128 per game).
Fixed
- The in-game menu did not show during gameplay (Tekken 5 in a fight: the game froze for 10 s, no box). The
menu, and now the notice, wait for a moment when the game is not sending anything to the GS (up to 2 s). - The achievements list (○) of games with subsets stayed empty ("could not read the list"): Tekken 5's answer
names the subset's achievement count first.
Updating
With the network cable in, START at the update notice. Otherwise copy launcher.elf and neutrino/ from the
zip over the ones on your drive.
NULD v1.2.4
The in-game menu can no longer leave a game frozen.
Fixed
- The in-game menu froze the game when the pad was not read (an 8BitDo adapter, #11). With no new press for
10 seconds the menu now closes by itself and the game goes on. The 8BitDo still cannot pick an option in the menu.
Updating
With the network cable in, START at the update notice. Otherwise copy launcher.elf and neutrino/ from the
zip over the ones on your drive.
NULD v1.2.3
Achievements inside games, for real this time, and a lighter agent.
Fixed
- In-game achievements never unlocked since v1.1. The launcher handed Neutrino the agent's config file instead
of the game's watch list, so the console never sent the game's memory to the achievements client. The list of
achievements on ○ was not affected. - Games froze at scene loads with achievements on (Tekken 5 from the home server). The agent kept about 25 KB of
the IOP's 2 MB for snapshots it never sends; it now keeps 4 KB, one packet's worth.
Updating
With the network cable in, START at the update notice. Otherwise copy launcher.elf and neutrino/ from the
zip over the ones on your drive.
NULD v1.2.2
Achievements work again.
Fixed
- No achievements unlocked in v1.2.1. v1.2.1's freeze fix checked the wrong DMA channel (SIF0, which is
always running), so the console never sent the game's memory to the achievements client. It now checks SIF1,
the channel it shares with the game.
Updating
With the network cable in, START at the update notice. Otherwise copy launcher.elf and neutrino/ from the
zip over the ones on your drive.
NULD v1.2.1
Fix for a freeze with achievements on.
Fixed
- Games froze at scene loads with achievements on (seen in Tekken 5 from the home server: black or frozen
picture after a fight or a Story mode replay). The achievements telemetry sent its snapshot to the IOP in the
middle of the game's own transfers; it now waits for a free frame. It also stops when the game reboots the IOP,
until the agent says where its new buffer is.
Updating
With the network cable in, START at the update notice. Otherwise copy launcher.elf and neutrino/ from the
zip over the ones on your drive.
NULD v1.2
ORBIT is now NULD: a new name, a new look, and nothing to redo on your USB drive.
Website, screenshots, manual: https://danielnuld.github.io/nuld/
New
- A new name. ORBIT clashed with other PS2 projects; the launcher, its repository and its site are now NULD.
- A new look. Black, steel and one acid accent: a loading screen with the four NULD logos taking turns over a
wire sphere, 1 px frames and HUD corners on the selection, and the Archivo, IBM Plex Mono and Michroma typefaces.
The in-game menu follows the same palette. - A new website with the loading screen running in the browser, every screenshot in a full-size viewer, and
the setup guide as a manual of its own.
Updating from ORBIT
Nothing to do by hand. On the first boot NULD:
- moves
orbit/tonuld/(config.ini, per-game options, achievements data); - installs
BOOT/NULD.ELFon your memory card and keepsBOOT/ORBIT.ELFup to date, so a FreeMcBoot autoboot
that points at the old name keeps working (the setup wizard, START, can point it at the new one); - keeps using
VMC/ORBIT.binas the shared virtual memory card where you have one.
ORBIT v1.1 can update itself to this version: with the network cable in, START at the notice. Otherwise copy
launcher.elf and neutrino/ from the zip over the ones on your drive.
If you run the home game server, the service is now nuld-catalog (server/nuld_catalog.py, server/nuld_hash);
the old orbit-catalog keeps working with this version, as the protocol did not change.
The companion apps read the new nuld/config.ini from their next versions on (mass0:/orbit/ still works).
Known issues
- "Native" video mode can give a black screen on some HDTV setups: there, keep the default 480p.
- Loading over udpfs needs a wired network on both ends.
Checksums (SHA-256)
NULD-v1.2.zip 9B5268D18B9B6FC884A5DAFEF0F4054778CFA0494F86DF1D0D55115B44F62EF9
launcher.elf C5E84A110D00D1779B941DAA628E96BA94D0C405E954512B6AADA2AC6AB29A78
GPL-3.0. Ships a fork of Neutrino (AFL-3.0) with the in-game menu and the
achievements agent. Developed with Claude Code as the coding assistant.