RetroAchievements on a real PlayStation 2.
A patched Open PS2 Loader sends the game's memory to your PC every frame. xeRAbora checks it against the achievement set, unlocks the achievement on your RetroAchievements profile and flashes the TV gold. No emulator.
No PS2 at hand? The same client follows your play on any emulator with RetroAchievements. Without a PS2
The PS2 plays, the PC checks, the TV flashes.
A PS2 on your network and a PC or a phone next to it.
PS2 with a network adapter
A fat with the adapter or a slim with the built-in port, running OPL through FMCB, FHDB or similar.
ISO or the disc
A .iso image wherever OPL runs it, USB stick, internal HDD over BDM or an SD card in an MMCE device, or the original disc in the drive. PS1 games as .VCD images in POPS/ on a USB stick, through POPStarter.
On the same network
Windows, Linux or macOS in the same subnet as the console, or an Android phone on the same Wi-Fi.
RetroAchievements
Your login for unlocks and the Web API key from your profile.
From download to the first unlock.
One evening, one USB stick. The panels on the right are what the client's page shows at each step, with the numbers from a real session.
An unlock needs three things, in this order: xerabora signed in on the PC, the game checked once from its menu, then the game started. Step 5 is the one people skip.
Download two files
From the latest release: OPL-RA.ELF for the console and xerabora.exe (Windows), xerabora-linux-x86_64 (Linux) or xerabora-macos (macOS) for the PC. SHA256SUMS lets you check them.
On an Android phone, install xerabora-android.apk instead of the PC client. The phone runs the whole client, so no PC is needed, and the steps below are the same in the app.
You need a PS2 with a network adapter that already runs Open PS2 Loader (FMCB, FHDB or similar), your games as .iso images (USB stick, internal HDD over BDM, MMCE), PS1 games as .VCD in POPS/ on a USB stick, or the original disc, and a PC on the same local network with a RetroAchievements account.
xerabora, latest release github.com/hacan359/xerabora/releases ├─ OPL-RA.ELF console loader (OPL 1.2.0 + RA) ├─ OPL-RA-debug.ELF same, with on-screen diagnostics ├─ xerabora.exe PC client, Windows ├─ xerabora-linux-x86_64 PC client, Linux ├─ xerabora-macos PC client, macOS ├─ xerabora-android.apk the same client, Android └─ SHA256SUMS
Put the loader next to your games
OPL-RA.ELF is a full OPL build, so it goes wherever your OPL apps live. On a USB stick: an APPS folder, and one line in conf_apps.cfg in the root so it shows up under Apps. Your images stay in DVD and CD as always.
E:\ (mass0:) ├─ conf_apps.cfg OPL+RA=mass0:APPS/OPL-RA.ELF ├─ APPS\ │ └─ OPL-RA.ELF ├─ DVD\ your .iso images ├─ CD\ └─ CFG\ LNG\ THM\ ART\ CHT\ VMC\Plain ASCII, CRLF line endings.
Start xerabora on the PC
Run it. The page opens in your browser. On SETTINGS, sign in with your RetroAchievements login and paste the Web API key from your RA profile settings; the token and the key are saved in your profile (%LOCALAPPDATA%\xerabora or ~/.config/xerabora), the password is not. Then it listens on UDP port 18194 and waits.
Leave it running while you play. The LIVE tab shows everything below; the same lines go to xerabora.log next to the saved login. If Windows asks about the firewall, allow it on private networks.
Boot OPL-RA and test the link
On the console: Apps → OPL+RA. It looks and behaves like OPL 1.2.0. Highlight a game, press △ for its menu and choose RA: test PC connection. A notice tells you whether xerabora answered, from which address and how fast.
Nothing answers? Same subnet, PC firewall allows inbound UDP 18194, the client is running.
Need for Speed: Underground 2 Settings Compatibility RA: test PC connection RA: check game support Remove all settings Rename Delete PC client found at 192.168.1.10 xerabora/0.1.0-alpha.19 Reply in 3 ms, console at 192.168.1.142
Check game support
Same menu, RA: check game support. The console hashes the image the RetroAchievements way and asks the PC. The PC asks the RA server, builds the watch list (every memory address the achievement set reads) and sends it back. The notice shows the title and the counts: total, unlocked, and how many cannot unlock on real hardware yet.
Once checked, the game gets an RA prefix in the list and a badge on the cover. You do this once per game.
RetroAchievements does not know this image means the game plays without achievements.Need for Speed: Underground 2
Start the game
Launch it from OPL as usual. When the game opens its controller, the in-game hooks attach. The console finds the PC with one broadcast, waits about thirty seconds for the game to finish loading, then starts streaming.
The LIVE tab lights up: console connected, the set, the first snapshot, and how many achievements cannot unlock on real hardware. From here on it is playing. A game you did not check stays dark here: it runs, without telemetry.
Play
The CONSOLE panel counts sixty snapshots a second, how many the console skipped because its DMA was busy, how many arrived incomplete. Then the moment you were waiting for: a toast on the page, a short sound, a gold flash over the game on the TV, and the unlock on your profile.
Lose the network for five seconds and the PC says so. When the stream returns, it picks up where it was.
✕ HIDE
✕ HIDE
No image needed.
Put the disc in, press START for OPL's main menu and choose RA: check disc support, then RA: launch disc. The check reads the disc through the console's own drive and asks the PC the same way it does for an image. The launch boots the disc under OPL's in-game hooks, so telemetry and unlocks work as they do from USB.
You give up OPL's virtual memory cards, per-game compatibility patches and cheats. They live in the part of OPL that emulates the drive, and a real disc does not use it.
The same window for your emulator play.
With the console off, xeRAbora follows your RetroAchievements account: the game you are in, the unlocks as they land, what to chase next, missable warnings, your library and the leaderboards. The difference is who unlocks.
xeRAbora runs the rules itself, so it shows measured progress ("3 of 10") and leaderboard trackers moving with the game.
The emulator unlocks on its own; xeRAbora reads your account every 20 seconds.
| With the PS2 | With an emulator | |
|---|---|---|
| Who unlocks | xeRAbora | the emulator |
| Measured progress, "3 of 10" | every frame | not in the Web API |
| Leaderboard trackers | live | no |
| Library, GAME, BOARDS, UP NEXT, missables | yes | yes |
Questions people ask first.
Does it change the game?
No. The in-game core reads memory and writes nothing into the game or the image. During development a debug build poked a value into a HUD counter; that code went away before alpha.3, and the release core is read-only.
Is this cheating? Will RA accept the unlocks?
The unlocks go through stock rcheevos in softcore mode, the same runtime the supported emulators use. We announced the project on the RetroAchievements forum and discussed it with the rcheevos maintainers. The client does not claim hardcore; that would need the RA team's approval.
Which games work?
Any PS2 game with an achievement set. The check in the game's menu tells you the counts for your game before you play: total, unlocked, and how many cannot unlock on real hardware yet.
The unlock showed on the page but the TV did not flash.
Look for console acknowledged unlock notice in xerabora.log. If it is missing, the notice never reached the console: same subnet, and the client must be running while you play (it can be restarted mid-game). If it is there, the console got it; tell us the game.
Why does the PC say "skipped by console"?
A snapshot the console produced and the PC never got. Since alpha.8 the count stays at zero or close to it during play; before it the console lost one snapshot in twelve to its own send loop. A number that keeps growing means the console is short of time: a game hammering the USB stick, or a busy transmitter. rcheevos evaluates the snapshots that arrive.
Can another console use this?
Yes. The PC client knows nothing about the PS2 beyond the memory it receives. Write an agent that reads your console's memory, computes the RA hash and speaks the protocol, and xerabora does the rest: the library, the live view, the unlocks.
Can I follow the game from my phone?
Two ways. The Android app runs the client on the phone itself: the console finds the phone on the Wi-Fi as it finds a PC, the phone unlocks the achievements, and each unlock shows up as a notification. With the client on a PC, press OPEN TO THE NETWORK on SETTINGS and open the page on the phone's browser; it shows LIVE and everything else, while the login and QUIT stay on the PC.
Do I need the console at all?
No. Without one, xeRAbora is a RetroAchievements client: your library, each game's achievements, leaderboards and profile from your Web API key. The console adds the live half.
bora