xeRAbora v0.1.0-alpha.19 Download

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.

ISO or the original disc Softcore Windows / Linux / macOS, one file Android, no PC needed

No PS2 at hand? The same client follows your play on any emulator with RetroAchievements. Without a PS2

How it works

The PS2 plays, the PC checks, the TV flashes.

Your PS2 OPL-RA runs the game xeRAbora rcheevos checks the rules RetroAchievements the unlock on your profile game memory every frame unlock gold flash on the TV
Once per game, in the OPL menu
PlayStation 2 OPL-RA menu PC xeRAbora retroachievements.org server hash the image hash · UDP which game is this? achievement set derive every address the set reads watch list + counts notice on the TV
RA: check game support. The PC turns the achievement set into a list of memory addresses for the console.
Every frame of the game
PLAYSTATION 2 YOUR PC INTERNET game's TCP/IP stack (lwIP): not used EE · game ee_core reads the watch list at VBLANK IOP · raudp builds UDP frames by hand SMAP network driver Ethernet xeRAbora rcheevos checks each snapshot RetroAchievements your profile softcore SIF DMA UDP 1–9 packets per frame unlock unlock notice (RAU1) → raudp → ee_core GS · TV gold flash
Grey arrows run every frame, the gold path once per unlock.
What you need

A PS2 on your network and a PC or a phone next to it.

Console

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.

Games

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.

PC or phone

On the same network

Windows, Linux or macOS in the same subnet as the console, or an Android phone on the same Wi-Fi.

Account

RetroAchievements

Your login for unlocks and the Web API key from your profile.

How to start

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.

Notifications. The RA menu items report through on-screen notices whatever OPL's Notifications setting says. Turn it on (Settings → Notifications → On, Save Changes, cold-boot) if you also want OPL's own notices.
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.

xeRAboraLIVELIBRARYGAMEBOARDSSETTINGSno Web API key, see SETTINGS
waiting for the console
RETROACHIEVEMENTS ACCOUNT
hacan359
••••••••••
SIGN IN
WEB API KEY
a read-only key that fills the library, leaderboards and profile
••••••••••••••••••••••••••••••••
SAVE KEY
OTHER DEVICES
the page is reachable from this PC only
OPEN TO THE NETWORK
Both fields can wait: the library needs the key, an unlock needs the login.

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.

PS2 · OPL+RA · game menu
  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
xeRAboraLIVELIBRARYGAMEBOARDSSETTINGSHacan359 · 10 847 points
waiting for the console
start a game on the console, or browse your library above

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.

Before you start the game. This step fetches the list of addresses the console will read. Skip it and the game starts as plain OPL: no telemetry, nothing on the page. RetroAchievements does not know this image means the game plays without achievements.
xeRAboraLIVELIBRARYGAMEBOARDSSETTINGSHacan359 · 10 847 points
waiting for the console
CONSOLE
achievement set active, unlocks are tracked
gameSLUS_210.65
watch list490 addr1351 B2 parts
session—

Need for Speed: Underground 2

from an image check, not from a running game0 / 76 · 0 / 530 pts
The console asks a few times while it collects the list in chunks. Normal.

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.

xeRAboraLIVELIBRARYGAMEBOARDSSETTINGSHacan359 · 10 847 points
CONSOLEconsole live at 192.168.1.14260 snapshots, 0 skipped
CONSOLE
achievement set active, unlocks are tracked
link192.168.1.142
gameSLUS_210.65
snapshots60 · 53/s
lost0 skipped0 repeated0 torn
watch list490 addr1351 B2 parts
session0:00:01
The first UP NEXT cards appear below this panel.

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.

xeRAboraLIVELIBRARYGAMEBOARDSSETTINGSHacan359 · 10 847 points
CONSOLEconsole live at 192.168.1.14232 400 snapshots, 12 skipped
ACHIEVEMENT UNLOCKED
Yo Noobie
+2 pts
UP NEXT · BY MEDIAN UNLOCK TIME
Bring My Car Back... Now!Complete all three races available before going to Rachel's place
2 pts · missable · ~0h43
✕ HIDE
Making a NameComplete Stage 1
next in progression5 pts · progression · ~1h14
✕ HIDE
On the TV the screen dips to gold and comes back. Lose the network for five seconds and the status bar says so.
From the original disc

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.

Without a PS2

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.

With the PS2 · the page turns gold PS2 xeRAbora RA memory unlock ▲ unlocks here

xeRAbora runs the rules itself, so it shows measured progress ("3 of 10") and leaderboard trackers moving with the game.

With an emulator · the page turns blue Emulator RA xeRAbora unlock Web API ▲ unlocks here

The emulator unlocks on its own; xeRAbora reads your account every 20 seconds.

With the PS2With an emulator
Who unlocksxeRAborathe emulator
Measured progress, "3 of 10"every framenot in the Web API
Leaderboard trackersliveno
Library, GAME, BOARDS, UP NEXT, missablesyesyes
Try it This is the client's own page with a recorded session in place of the console. Click the tabs, open a game from LIBRARY, change the language in the header, wait for the unlock.
FAQ

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.