xeRAbora v0.1.0-alpha.6 Download

Your RetroAchievements companion, live from a real console.

One window for your library, what to chase next, the missables you are about to lose, the leaderboards and your rank. Plug in a console and it shows progress as it moves, an unlock the moment it happens, and a gold flash on the TV. PlayStation 2 first, through a patched Open PS2 Loader.

Softcore only USB and the original disc Windows / Linux, one file
How it works

The console plays, the PC watches, the TV flashes.

Your PS2 runs the game as usual. While it plays, the loader sends the PC a copy of what the game keeps in memory. The PC compares that with the achievement rules, tells RetroAchievements when you earn one, and tells the console, which answers with a gold flash over the game.

Your PS2

Runs the game

A patched Open PS2 Loader starts the game the same way OPL always does, from a USB stick or the disc.

Your PS2

Shares what the game remembers

While you play, the loader sends the PC the numbers the game keeps in memory: score, position, health, whatever the achievements look at.

Your PC

Checks the achievement rules

xerabora runs rcheevos, the same engine the emulators use, and watches those numbers for the moment an achievement is earned.

retroachievements.org

Records the unlock

The unlock lands on your profile like any other. Softcore, on a real console. The page shows a toast, the console a gold flash.

The client knows nothing about the PS2 beyond the memory it receives. The wire between the two halves is a documented protocol (PROTOCOL.md): an agent for another console reads its memory, computes the RetroAchievements hash and speaks it. The README goes into the internals.

The client

Your RetroAchievements, in one window.

xeRAbora is a full client. It works without a console and without a login: the library, every game's achievements and the leaderboards come from your Web API key. Plug in the console and the same screens fill with numbers straight from the game's memory.

LIVE

The running game as the console sees it: measured progress, UP NEXT by the median time other players took, live leaderboard trackers, and a CONSOLE panel with the link, the snapshot rate and the losses.

LIBRARY, GAME, BOARDS

Every game you have touched, on every system, with progress and awards. One set in full: the author's order, the intended path with missables flagged, the median unlock times. A game's leaderboards with the top entries.

Made for streaming

The interface is a page the client serves to itself on localhost, so OBS takes it as a browser source. --obs writes text labels and a data.json for everything else.

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, wait for the unlock.
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) or xerabora-linux-x86_64 (Linux) for the PC. SHA256SUMS lets you check them.

You need a PS2 with a network adapter that already runs Open PS2 Loader (FMCB, FHDB or similar), your games as .iso files 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
└─ 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.

xeRAboraLIVELIBRARYGAMEBOARDSSETTINGSHacan359 · 10 847 points
waiting for the console on UDP 18194 
hacan359 · signed in, only the token is stored
••••••••••••••••••••••••••••••••
SAVE QUIT XERABORA
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/1.0.0
  Reply in 3 ms, console at 192.168.1.142
xeRAboraLIVELIBRARYGAMEBOARDSSETTINGSHacan359 · 10 847 points
console at 192.168.1.142 answered the link test 
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
console at 192.168.1.142, no game running 
CONSOLE
Need for Speed: Underground 2 · 76 achievements · watch list sent
gameSLUS_210.65
imagef45e0a19…
watch list490 addr · 1351 B · 2 parts
cannot unlock here0 of 76
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
console 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 skipped · 0 rep · 0 torn
watch list490 addr · 1351 B · 2 parts
session0:00:01
Need for Speed: Underground 2, 0 of 76, and 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
console live at 192.168.1.14232 400 snapshots, 3 387 skipped
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
~0h43 · missable
Making a NameComplete Stage 1
next in progression~1h14 · progression
On the TV the screen dips to gold and comes back. Lose the network for five seconds and the status bar says so.
Verified on hardware

We tested two ways to run it. Play from one of them.

We checked this page on a real console, with games on a USB stick or the original disc in the drive. Keep the images you play with achievements there. OPL knows other ways of storing games; one of them we know does not work yet, the rest we have not tried.

Verified

USB stick

Plain .iso images in DVD or CD. Hashing, the watch list, telemetry and in-game unlocks: the session in the walkthrough ran this way.

Verified

Original disc

Check and launch from OPL's main menu. Runs and unlocks; one game so far. Experimental, see below.

Not yet

SMB share, internal HDD, UL and ZSO images

A share hashes fine, but a game with an achievement set does not run from it yet: it boots, the console connects, and about a minute in it stops loading. Games without a set run from a share as before. Nobody has run the RA additions from an internal HDD or from UL and ZSO images; expect problems we have not seen.

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.

Experimental

Disc mode has run with Shadow of the Colossus only. A game it cannot boot may hang the console hard: black screen, and the reset button does nothing. Power off and back on to recover. Transformers: The Game is one known case; from USB it runs fine.

Where this is going

A companion for wherever you play.

The console side proved the idea. The plan is to grow the client into the thing you keep open next to any RetroAchievements session, and to give the PS2 agent the pieces it still lacks.

Pointer chains on the console

The agent reads flat addresses today. Next it reads the pointer bases too and the client asks for the targets on the following frame, so the sets that dereference pointers unlock on real hardware as well.

Guidance that does not depend on the source

UP NEXT, missable warnings and progression order come from RetroAchievements data, so they work for any game you have started. The goal is a companion that guides you through a set whether you play on the console, on a PC, or in an emulator, so you miss nothing on the way to mastery.

More agents, one protocol

The protocol is small and documented. An agent for another console, or for an emulator that wants the same window, is a weekend of work, and the client does the rest.

Louder unlocks

The gold flash is the first notice on the TV. Controller rumble in step with it, a badge on screen, a mastery alert on the page, and Discord presence are on the list.

For streams

A compact overlay layout for OBS, live counters from the game's own values, and the leaderboard trackers beside the video.

Hardcore

RetroAchievements decides who qualifies. The question is with the RA team; until then, softcore, with the trackers running and no entries posted.

Known limits

Read before you try.

Softcore only

OPL can write to game memory through its cheat engine, so the client does not claim hardcore. The RA team decides whether a real-hardware client can qualify; we cannot grant it ourselves.

Flat addresses only

The console reads the addresses on the watch list and follows no pointers. Achievements that dereference a pointer stay active but cannot unlock, and the PC counts them for you. Most PS2 sets lose few or none.

Same subnet

The console learns the PC's MAC address from the discovery reply. It hears a PC behind a router but cannot answer it. A PC in a container works with host networking only.

Plain ISO or the disc

The image check reads .iso files named Title.iso or the OPL Manager way (SLUS_123.45.Title.iso) in DVD or CD on a USB stick or a share, and the disc in the drive. UL/USBExtreme, ZSO and the internal HDD are not hashed yet. Play from the stick or the disc: a game with a set does not run from a share yet.

Hooks need libpad

Telemetry starts when the game opens its controller through libpad, which is how OPL's in-game hooks attach. A game with unusual input code may never start sending, and the PC then shows no snapshots.

An alpha

A hobby experiment, run from a USB stick on two consoles. Use it at your own risk.

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 whose logic reads flat addresses, which covers most of them. 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.

Do I need a network share or an internal HDD?

Neither. A USB stick with your images, or the disc, is the tested setup. A share is fine for the loader and the watch lists, but a game with an achievement set does not run from it yet; games without a set do. We have not tried the internal HDD, and the loader cannot hash HDD games yet: they sit on HDL partitions rather than in .iso files.

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"?

The console skips a frame when the previous snapshot's DMA is still in flight, rather than stall the game. A few hundred per minute is normal. 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.

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.