ORBIT

A modern game launcher for a real PlayStation 2. Your library with covers, 3D save icons, an in-game menu, games from a home server, and RetroAchievements — on the console itself.

⬇ Download v1.0 Quick start Source code
v1.0 · free and open source (GPL-3.0) · Spanish and English
ORBIT's home screen: a carousel of PS2 game covers

Features

Everything runs on the PS2. No PC step to prepare covers, no separate tool to make memory cards.

▦

Three views, 60 fps

Carousel, grid or list, with filters for All, PS2, PS1 and Apps. A median frame takes under 5 ms of its 16.7 ms budget, measured on a slim PS2.

🖼

Covers by the console

Missing covers download over HTTPS from xlenore/ps2-covers, are decoded and dithered on the PS2, and saved to the USB.

💾

3D save icons

The newest save of each game is read from the memory card and its 3D icon spins on the game's card.

▣

Virtual memory cards

One card per game (or one shared), created on first play on the game's own device. Or the physical card — your choice per game.

⏸

In-game menu

Hold L1+L2+R1+R2+START+SELECT in any game: it pauses and offers restart or power off. Direct combos too.

🏆

RetroAchievements

Each game is identified with the rcheevos hash; ○ lists its achievements and your progress. While you play, an agent inside the game unlocks them on your profile.

🖧

Home game server

Keep your ISOs on a Linux box. They list instantly, load over the network, and keep covers, achievements and save icons.

⇄

Every source Neutrino knows

USB, internal HDD (exFAT or HD Loader), MX4SIO, iLink, MMCE, UDPBD and udpfs — mixed in one list.

△

Per-game options

Force 480p or 1080i, compatibility modes, which memory card. Remembered per game.

◎

Discs, PS1 and apps

Boots the disc in the drive, PS1 games through POPStarter, and homebrew from APPS/.

🌐

Spanish or English

One setting changes the menus, the in-game menu and the comments in the config file.

🎬

ORBIT Jellyfin

The companion app plays your Jellyfin movies and series on the PS2, with subtitles. orbit-jellyfin

Why ORBIT

There are good PS2 loaders. ORBIT is about what happens around the game.

A console menu, not a file list

Covers, save icons, game details and achievements on one screen, animated at a steady 60 fps on 2000-era hardware.

Nothing to prepare on a PC

Drop ISOs in DVD/. The PS2 fetches its own covers, creates its own memory cards and writes its own commented config file.

Achievements on real hardware

Until now RetroAchievements on the PS2 meant an emulator. ORBIT's agent runs inside the game on the console.

Your library on your server

Games from a home server behave like games on the USB: same covers, same achievements, same per-game cards.

Always a way back

The in-game menu and the restart combo bring you back to ORBIT without touching the console's reset button.

Open and documented

GPL-3.0. Every phase has its spec and its results measured on the console in the repository.

Screenshots

Captured from the launcher itself. Click to enlarge.

Splash screen loading covers
Splash: covers load while the orbit spins.
Carousel view
Carousel view with the game's chips: serial, media, source, video mode.
Grid view
Grid view: the whole library at a glance.
List view
List view with the cover beside it.
God of War with its 3D save icon
The game's own 3D save icon, read from the memory card.
Achievements list for Black
○ opens the achievements: 56 for Black, with points and progress.
Launch screen
Launching: ORBIT hands over to Neutrino.

Download

One zip with everything for the USB drive, plus the optional game server.

ORBIT v1.0

launcher.elf, Neutrino with ORBIT's in-game menu and achievements agent, folders, quick start.

⬇ ORBIT-v1.0.zip

All releases

Release notes and checksums.

GitHub releases

ORBIT Jellyfin

Optional companion app for movies and series.

orbit-jellyfin

xeRAbora client

Optional, for achievements: runs on a PC or server at home.

xerabora

Quick start

Three steps. You need a PS2 that runs homebrew (FreeMcBoot or similar) and a USB drive.

  1. Copy the zip's contents to the root of a FAT32 or exFAT USB drive: launcher.elf, neutrino/, DVD/, CD/. Put your PS2 ISOs in DVD/ (CD games in CD/).
  2. Start mass0:/launcher.elf from uLaunchELF, or set it as FreeMcBoot's autoboot.
  3. Play: pick a game and press ✕. The first boot writes mass0:/orbit/config.ini with every setting, commented.

Want English? Open orbit/config.ini and set idioma = en under [ui]. The next boot rewrites the file's comments in English too.

Setup guide

Everything ORBIT can do, and how to turn it on.

1. What goes on the USB drive

USB root
├── launcher.elf
├── neutrino/          the loader (ORBIT's fork: in-game menu, achievements agent)
├── DVD/               PS2 DVD ISOs
├── CD/                PS2 CD ISOs
├── POPS/              PS1 games (POPStarter .VCD), optional
├── APPS/              homebrew .ELF files, optional
└── orbit/             created by ORBIT: config.ini, covers, logs

FAT32 cannot hold files over 4 GB: format the drive as exFAT for big ISOs. Covers live in orbit/, and virtual memory cards in VMC/ on the game's own device.

2. Buttons

ButtonIn ORBIT
← → ↑ ↓Move through the library
L1 / R1Filter: All, PS2, PS1, Apps
□Change view: carousel, grid, list
△Per-game options: video mode, compatibility, memory card
○Achievements of the game (when it has them)
✕Play
SELECTData overlay: frame times, measured live

3. config.ini

ORBIT writes mass0:/orbit/config.ini on its first boot. Each key is explained in the file. The main ones:

Section · keyValuesWhat it does
[ui] idiomaes, enLanguage of the menus and of the file's comments
[juegos] origenusb, hdd, mx4sio, ilink, mmce, udpbd, udpfsWhere to look for games, comma-separated
[juegos] servidorIPThe home game server (for udpfs)
[memorycard] modojuego, compartida, fisicaA virtual card per game, one shared, or the physical one
[video] modonativo, 480p, 1080iVideo mode of the games
[red] ipdhcp or an IPNetwork: DHCP, or a fixed IP with mascara, puerta, dns
[portadas] descargarsi, noDownload missing covers at boot
[logros] activossi, noRetroAchievements through the xeRAbora client
[igr] menubutton comboCombo for the in-game menu; also reiniciar and apagar

4. Covers

Plug in the network cable (built in on slim PS2s; the network adapter on fat ones). At boot ORBIT downloads the covers it is missing and keeps them on the USB. Next boots work offline.

5. Coming back to ORBIT from a game

ORBIT installs BOOT/ORBIT.ELF on your memory card. Set FreeMcBoot's autoboot to mc?:/BOOT/ORBIT.ELF. Then Restart in the in-game menu (L1+L2+R1+R2+START+SELECT) reboots the console straight into ORBIT. L1+L2+R1+R2+L3+R3 powers off.

6. Per-game options (△)

Video mode (480p or 1080i, forced), Neutrino's compatibility modes for games that need them, and the memory card: per game, shared or physical. Choices are saved in orbit/juegos.ini.

7. RetroAchievements

  1. On a PC or server on your network, run the xeRAbora client and sign in to your RetroAchievements account.
  2. On the PS2, keep [logros] activos = si. Leave servidor empty to find the client on the network, or set its IP.
  3. Games with a set show the gold ACHIEVEMENTS chip; ○ lists them with your progress. Press ✕ any time: ORBIT does not wait for the answer.
  4. While you play, ORBIT's agent inside the game streams its memory to the client, which unlocks achievements on your profile.

8. Games from a home server

Keep your ISOs on a Linux machine and play them over the wire. The zip's server/ folder has everything:

# on the server, with the ISOs in /srv/data/ps2/DVD
cp -r server ~/orbit && cd ~/orbit
mkdir -p ~/.config/systemd/user && cp *.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now udpfs orbit-catalog
loginctl enable-linger $USER
curl http://localhost:18290/catalog      # what the PS2 will see

Allow UDP 62966 and TCP 18290 in the firewall. On the PS2: [juegos] origen = usb, udpfs and servidor = <server IP>. Use a cable on both ends: udpfs does not survive WiFi packet loss.

9. Other sources

Add them to origen: hdd (internal exFAT disk, or HD Loader partitions), mx4sio, ilink, mmce (not together with mx4sio), udpbd (needs a fixed IP in [red]). Settings, covers, Neutrino, POPS and APPS stay on the USB.

10. Troubleshooting