△◯✕□ RiptOPL DOCS
Downloads GitHub
ps2build C++ migration

This repository is the C++/ps2build transition of RiptOPL. These guides include the production project's full documentation; feature and hardware parity are still being validated. The release targets are Korium, RetroAchievements and IncebtIon, all on ps2build. Check the migration ledger before treating an imported production feature as verified here.

Fork Feature Gaps

Features, fixes and companion workflows that other PS2 loaders, forks and utilities offer beyond RiptOPL and the PS2-Servers ecosystem. Each entry was checked against RiptOPL's own code rather than taken from another project's changelog, and links to where that project implements it.

A tracking list, not a roadmap
An entry documents a source-specific capability absent from RiptOPL or its PS2-Servers companion, with optional design choices and experimental features separately labelled. An entry does not promise a port. Source comparisons refreshed on 2026-10-08 UTC (2026-10-07 Pacific); RA merge reconciled on 2026-10-08 Pacific against rebuild/main@9ef8d643. This pass rechecks changed OPHTML, LUNA, xeRAbora/OPL-RA and PS2-Launcher sources, verifies the surveyed repositories' current revisions, and reconciles already implemented RiptOPL features. Existing historical rows retain their original evidence unless explicitly updated. See revision and validation scope and retired IDs. Stable IDs are never reassigned. Tools and developer APIs are distinguished from game-loading features; source, emulator and console evidence are separate.

Sources surveyed

CodeSourceWhat it isGaps
CACaduceus (PC)Windows game-library manager, bundled OPLServer SMB host and xeRAbora-based achievement companion; compared against PS2-Servers below7
COCaduceus OPLXMB-style OPL console client paired with Caduceus, including a console achievement browser; related to already-listed OR47
WwOPLThe continuation of KrahJohlito's uOPL4
OOPLatticeGrid themes, the SHELF interface and theme tooling15
OHOPHTMLHTML/CSS declarative UI compiler, zero-allocation C99 runtime and standalone Neutrino console launcher12
UUpstream OPLUpstream changes and historical proposals not implemented in RiptOPL3
BBoliviaOSA multifunction PS2 environment built on OPL7
PPS2-LauncherAn OPL-based launcher with a console-style interface7
ORORBITA Neutrino-based PS2 launcher with console-side saves, achievements and a companion game catalog3
TProject Titan Magenta EditionA PS2 operating-system/system-platform project with integrated game engines10
EOPL-EvolutionAn experimental OPL fork with a unified dashboard1
HxeRAboraRetroAchievements for real PS2 hardware0
RRETROLauncherA Lua launcher for retro emulators and PS2 games1
MModulo R1A Neutrino-based loader in beta1
NNHDDLA deliberately small Neutrino front-end and launcher2
LULUNAAn NHDDL/Neutrino-derived visual loader with a coordinated frontend/runtime, by darkladark9
LExtended APAAn OPL build for internal HDDs larger than 2 TiB1
XE2OPLA historical OPL fork adding EXT2 USB storage1
MPModular PADEMUA historical modular controller-emulation branch2
KuOPL (historical)KrahJohlito-era uOPL before the later wOPL line1
RRRRVE / exaconn OPLThe former RRVE repository, now carrying wheel and negCon experiments1
SStable OPLA stability-focused OPL fork with storage-driver changes1

Twelve more projects were checked and had nothing RiptOPL lacks — see Checked, nothing missing.

At a glance

All 96 source-attributed entries in one list. CO3 overlaps the existing OR4 feature rather than representing an additional unique capability. Click a column heading to sort.

IDFeatureAreaSourceType
CA1Curated SQLite desktop cataloguePC libraryCaduceus (PC)Tool
CA2ISO import, installed status and transfer queuePC libraryCaduceus (PC)Tool
CA3Cover conversion, migration and repairPC artworkCaduceus (PC)Tool
CA4PC RetroAchievements account/live progress dashboardPC RetroAchievementsCaduceus (PC)Tool
CA5Live game detection and Discord presencePC companionCaduceus (PC)Tool
CA6Importable catalogue and safe SQLite backupsPC reliabilityCaduceus (PC)Tool
CA7Guided first-run PS2 connection setupPC onboardingCaduceus (PC)Tool
CO1Interpolated XMB category and game-list railConsole UICaduceus OPLOptional
CO2Game-details card with automatic RA checksConsole RetroAchievementsCaduceus OPLFeature
CO3Browse RA account achievements on the consoleConsole RetroAchievementsCaduceus OPLFeature overlaps OR4
CO4Text-and-points in-game unlock cardConsole RetroAchievementsCaduceus OPLExperimental
CO5RA session-ready launch gatingConsole launchingCaduceus OPLFeature
CO6SMB ECHO and conditional reconnect on RefreshConsole networkCaduceus OPLFix
CO7Async initialize manual devices upon category focusConsole device handlingCaduceus OPLOptional
W1Themes loaded from a .tar archiveTheme enginewOPLFeature
W2wsX widescreen X positionTheme enginewOPLFeature
W3PADEMU, GSM and cheat status iconsTheme enginewOPLFeature
W6Info page without list navigationLibrary & menuwOPLOptional
O1Grid game listTheme engineOPLatticeFeature
O2GameImage offset for non-selected gamesTheme engineOPLatticeFeature
O3Recently played listLibrary & menuOPLatticeFeature
O4Sort modesLibrary & menuOPLatticeFeature
O5MenuTabs device tab stripTheme engineOPLatticeFeature
O6GameCountText prefix and suffixTheme engineOPLatticeFeature
O7x_scaled widescreen alignmentTheme engineOPLatticeFeature
O8VRAM texture budget clampTheme engineOPLatticeFix
O9Play statsLibrary & menuOPLatticeFeature
O10SHELF sidebar interfaceLibrary & menuOPLatticeFeature
O11App subtitlesLibrary & menuOPLatticeFeature
O12Art conversion and VRAM checkerPC toolsOPLatticeTool
O13In-game screenshot importerPC toolsOPLatticeTool
O14Browser theme previewerPC toolsOPLatticeTool
O15Device staging and card sync scriptsPC toolsOPLatticeTool
OH1Declarative HTML/CSS flexbox compilation to zero-allocation C99 GS command listTheme engineOPHTMLFeature
OH2Pre-resolved pairwise HarfBuzz font kerning on EETheme engineOPHTMLFeature
OH3Instant 1-byte palette theme switching without VRAM re-uploadTheme engineOPHTMLFeature
OH4Runtime 2D coordinate offsets for motion and expanding layoutsTheme engineOPHTMLFeature
OH5Runtime focus-subtree visibility masking with auto-bypassing navigationTheme engineOPHTMLFeature
OH6Automated CRT overscan safe area and multi-layer alpha contrast linterPC toolsOPHTMLTool
OH7Interactive web browser theme simulator and testbedPC toolsOPHTMLTool
OH8Static VRAM budgeting and layout compilerPC toolsOPHTMLTool
OH9Headless Play! emulator CI testbed with input scripting and frame diffsPC toolsOPHTMLTool
OH10Fuzzed .uib loader with EE bus-alignment and malformed blob hardeningTheme engineOPHTMLFix
OH11Hard compiler safety limits for untrusted themesTheme engineOPHTMLFix
U1Per-game parental lockCheats, launching & networkUpstream OPLFeature
U6Launch announcement for Discord rich presenceCheats, launching & networkUpstream OPLFeature
U9Bluetooth controller input lagControllers & inputUpstream OPLInvestigate
B1File explorerBeyond game loadingBoliviaOSFeature
B2Music playerBeyond game loadingBoliviaOSFeature
B3Image and font viewersBeyond game loadingBoliviaOSFeature
B4Text editor, code editor and terminalBeyond game loadingBoliviaOSFeature
B5Memory card format and repairBeyond game loadingBoliviaOSFeature
B6USB keyboardControllers & inputBoliviaOSFeature
B7PDF viewerBeyond game loadingBoliviaOSFeature
P1Xbox One and Series controllers over USBControllers & inputPS2-LauncherFeature
P2Download covers from the PS2Library & menuPS2-LauncherFeature
P3One games list across every deviceLibrary & menuPS2-LauncherFeature
P4Hold SELECT to leave a gameControllers & inputPS2-LauncherFeature
P5Launch transition animationLibrary & menuPS2-LauncherFeature
P6More USB controllers: Steam Controller, Shanwan PS3 clones, ANT Esports GP300Controllers & inputPS2-LauncherFeature
P7Connected controller count on screenControllers & inputPS2-LauncherFeature
OR3RetroAchievements telemetry with Neutrino gamesRetroAchievementsORBITFeature
OR4Browse achievement titles and progress on the consoleRetroAchievementsORBITFeature
OR5Companion catalog for UDPFS gamesCheats, launching & networkORBITOptional
T1Graphics patches kept apart from cheatsCheats, launching & networkProject Titan Magenta EditionFeature
T2Installable TPKG apps, in-process runtime and SDKBeyond game loadingProject Titan Magenta EditionFeature
T3Smart IGR overlay with Resume / ReturnGame compatibilityProject Titan Magenta EditionFeature Hardware pending
T4Named user profiles with per-profile VMCBeyond game loadingProject Titan Magenta EditionFeature
T5Notification center and background-progress UILibrary & menuProject Titan Magenta EditionFeature
T6Integrated lightweight web browserBeyond game loadingProject Titan Magenta EditionFeature
T7Transactional .pup system updaterBeyond game loadingProject Titan Magenta EditionFeature
T8Installable animated scene themes with audioTheme engineProject Titan Magenta EditionFeature
T9Xbox Bluetooth/BLE plus USB keyboard and mouse inputControllers & inputProject Titan Magenta EditionFeature Hardware pending
T10Repository-backed package download pipelineBeyond game loadingProject Titan Magenta EditionFeature Target pending
E1Controller, memory card, storage and network statusLibrary & menuOPL-EvolutionFeature
R1Retro emulator ROM librariesBeyond game loadingRETROLauncherFeature
M1Choose between several network serversCheats, launching & networkModulo R1Optional
N1Generic forward-boot CLILauncher integrationNHDDLOptional
N2Reuse SYS-CONF/IPCONFIG.DAT for UDPFS IPCheats, launching & networkNHDDLOptional
LU2Orbit depth-sorted ring library viewLibrary & menuLUNAFeature
LU4Animated rotating ICO disc-label artworkLibrary & menuLUNAFeature
LU5Per-drive Favorites that travel with the game HDDLibrary & menuLUNAOptional
LU6Staged temp-file writes for key persistent library stateReliability / persistenceLUNAFix
LU7Neutrino physical power-button DEV9-safe shutdownGame compatibilityLUNAFix
LU8Neutrino in-game return / IGRGame compatibilityLUNAFeature WIP
L1APA HDDs over 2 TiBInternal HDDExtended APANot planned
X1EXT2 USB filesystem supportUSB / game sourcesE2OPLFeature
MP1Xbox 360 controllers over USBControllers & inputModular PADEMUFeature Historical
MP2Generic USB HID gamepadsControllers & inputModular PADEMUFeature Historical
K1Write debug logs to a BDM deviceDeveloper / diagnosticsuOPL (historical)Feature Debug build
RR1USB Driving Force wheel with negCon presentationControllers & inputRRVE / exaconn OPLFeature Experimental
S1ATA DRDY waiting for slow-starting SMR / SSD drivesInternal HDDStable OPLFix
OH12Reusable console-launcher core archiveLauncher integrationOPHTMLFeature
LU9Projected 3D game-case gridLibrary & menuLUNAFeature
LU10Animated ambient-orb Scroll library viewLibrary & menuLUNAExperimental
LU11Neutrino VMC backing on APA/PFSGame compatibilityLUNAFeature

wOPL

ps2homebrew/wOPL — much of RiptOPL's Coverflow, Favorites and Neutrino work started here. These are the parts RiptOPL does not have yet.

IDFeatureWhat it doesSource
W1Themes loaded from a .tar archiveSeveral themes packed into THM/thm.tar, with fonts and images read straight from the archive.PR #370
PR #378
W2wsX widescreen X positionA separate X coordinate per element for 16:9, so one theme file serves both 4:3 and widescreen.src/themes.c
W3PADEMU, GSM and cheat status iconsOn/off images showing each game's pad emulation, GSM and cheat settings, with built-in default images.src/textures.c
src/themes.c
W6Info page without list navigation OptionalUp, down and page buttons no longer move through the list from a game's info page. A design choice rather than a missing capability.PR #308

OPLattice

coffeedevsolutions/OPLattice — nine patches to OPL's theme engine and menus, a sidebar interface, themes and PC tooling.

IDFeatureWhat it doesSource
O1Grid game listA tile layout for the game list (columns, cell_width, gap, frame) with two-axis navigation.patch 01
O2GameImage offset for non-selected gamesAn image element can draw the game a set number of places down the page, which makes hero and filmstrip layouts possible.patch 01
O3Recently played listThe last 8 games launched, newest first, shown with RecentImage and RecentText elements. RiptOPL remembers only the last one.patch 02
O4Sort modesA to Z, Z to A, most recent first, or as scanned. OPLattice cycles them with R3, which RiptOPL uses for Favorites.patch 02
O5MenuTabs device tab stripEvery device drawn at once with the active one highlighted, plus per-device label overrides.patch 03
O6GameCountText prefix and suffixThemes set their own wording around the game count.patch 03
O7x_scaled widescreen alignmentElements keep their position relative to a centred layout when widescreen is on.patch 03
O8VRAM texture budget clamp FixCaps texture size to the video memory left after the framebuffers, so an oversized theme image is rejected instead of risking a hang in hi-res modes.patch 07
O9Play statsA launch count and playtime for each game.patch 08
O10SHELF sidebar interfaceAn opt-in sidebar with Home, Library, Apps and Settings pages. It opens with L3, which RiptOPL uses to switch between PS2 and PS1 views.patch 09
O11App subtitlesAn optional subtitle key in an app's title.cfg.patch 09
O12Art conversion and VRAM checker ToolConverts art to indexed PNG8 and reports how much memory each theme's art cache will use.palettize-art.py
check-art.py
O13In-game screenshot importer ToolTurns in-game screenshot BMPs from the memory card into the _SCR.png images the info page shows.import-igs.py
O14Browser theme previewer ToolA single HTML file that renders a theme's layout before it goes on a console.opl-theme-previewer.html
O15Device staging and card sync scripts ToolScripts that copy a build onto a USB device or HDD and sync a memory card.tools/

OPHTML

coffeedevsolutions/OPHTML by coffeedevsolutions (Blake Coffee) — an HTML/CSS declarative UI compiler and zero-allocation C99 GS runtime (OPHTML / ps2ui), by the creator of OPLattice. While the repository also contains a standalone game launcher (console/ophtml.elf) booting ISOs via Neutrino and an SD2PSX memory-card loader (channel6), those launcher features overlap capabilities already native to RiptOPL (see callout below). Audited against main@03a5d56 (post-v0.10.0 source, format v7). The latest published release remains v0.10.0; the reusable console core, settings resolver and memory-card state changes are source additions planned for 0.11.0.

IDFeatureWhat it doesSource
OH1Declarative HTML/CSS flexbox compilation to zero-allocation C99 GS command listCompiles modern CSS flexbox layouts (direction, wrap, alignment, justification, gap, percentage sizing, border radius) and dynamic UTF-8 text slots with multibyte truncation guards on the PC into a static .uib binary command list. The C99 runtime executes inside a pre-computed static arena (~7–8 KiB for an entire 6-screen app) and never calls malloc, measures text, or lays out elements on the PS2.@ophtml/layout
runtime/ps2ui.c
OH2Pre-resolved pairwise HarfBuzz font kerning on EEMeasures kerning pairs at compile time via HarfBuzz and pre-resolves pairwise advance adjustments to exact pixel values per font size into compact tables. The C99 pen evaluates pairwise kerning in real-time on the EE with zero floating-point division or font-scaling overhead.ps2ui_bake/fontgen.py
ps2ui.c kerning
OH3Instant 1-byte palette theme switching without VRAM re-uploadMultiple themes (such as light and dark modes) share the same geometry, textures, and fonts in a single blob, differing only by a row in the tint table. Calling ps2ui_theme_set() updates a context pointer instantly with 0 bytes of VRAM transfer, requiring no asset reloading or GS re-initialization.ps2ui.h
ps2ui.c
OH4Runtime 2D coordinate offsets for motion and expanding layoutsps2ui_offset_set(ctx, dx, dy) offsets all primitive and texture coordinates at render time, allowing smooth programmatic translations, sliding sidebars (such as expanding navigation rails), carousels, and parallax scrolling layers on static baked geometry without re-baking.ps2ui.c offset
BACKLOG F27
OH5Runtime focus-subtree visibility masking with auto-bypassing navigationA 256-bit bitmask in ps2ui_visible_set() suppresses rendering of entire focusable subtrees (including backgrounds and borders) for empty or inactive elements. Crucially, ps2ui_move() automatically routes gamepad focus past hidden nodes rather than trapping navigation on invisible elements.ps2ui.c visibility
BACKLOG F21
OH6Automated CRT overscan safe area and multi-layer alpha contrast linter ToolBuild-time static analysis tool enforcing NTSC/PAL CRT action-safe and title-safe margins. Evaluates text contrast across translucent alpha scrims by compositing against worst-case black and white background scenes underneath, and validates seated-distance legibility (11px/14px thresholds based on visual arcminutes).layout/src/lint.js
findings.md (F-046)
OH7Interactive web browser theme simulator and testbed Toolps2ui serve launches a local HTTP server that replays baked GS draw commands server-side and serves an interactive web preview with keyboard/controller D-pad navigation, theme switching, multi-screen navigation, and live slot text editing without requiring a PS2 console or emulator.ps2ui_bake/serve.py
serve_page.html
OH8Static VRAM budgeting and layout compiler ToolModels GS VRAM allocation at compile time, tracking 8 KiB page boundaries and 256 B block alignment groups for framebuffers, Z-buffers, CLUT palettes, and texture pages. Prevents console crashes and hangs by refusing over-budget themes at bake time with an itemized memory breakdown.ps2ui_bake/vram.py
check-vram-model.py
OH9Headless Play! emulator CI testbed with input scripting and frame diffs ToolContinuous integration harness that builds the console ELF, boots it headlessly in the Play! emulator under xvfb, injects scripted gamepad inputs (Down, R1, L1), captures GS framebuffers, and asserts pixel-level image diffs against Python reference renders..github/workflows/hw.yml
play_input.py
OH10Fuzzed .uib loader with EE bus-alignment and malformed blob hardening FixRuntime loader hardened with LibFuzzer and ASan/UBSan against corrupted or malicious blobs. Enforces strict 4-byte struct alignment and 16-byte glyph/kern table alignment (PS2UI_ERR_ALIGN) to protect against unaligned EE memory access bus errors when reading untrusted themes from storage.fuzz_load.c
ps2ui.c alignment
OH11Hard compiler safety limits for untrusted themes FixCompile-time safety ceilings that reject untrusted or maliciously crafted themes exceeding safe hardware parameters: canvas max 2048px (hardware scanout ceiling), max 10,000 DOM elements, max 64 nesting levels, and max 32 megapixel source images.caps.py
limits.js
OH12Reusable console-launcher core archiveExports libophtml-console.a and an umbrella header for third-party launchers to reuse scanning, storage initialization, Neutrino argument construction, settings resolution and launch handoff while supplying their own main, UI and IOP module table. RiptOPL has internal equivalents but does not publish this kind of independently linkable launcher SDK. This is a developer integration gap, not additional game compatibility.Public core header
Out-of-tree consumer
What did not become a gap: The console launcher & runtime overlap
OPHTML also contains a standalone console game launcher (console/ophtml.elf) and sample environments (opl-env, channel6), its core game-loading and management capabilities directly overlap existing RiptOPL infrastructure and are not counted as gaps:
  • Neutrino No-IOP-Reset launch handoff: OPHTML launches Neutrino using -qb, -bsd=, and -dvd= through LoadELFFromFileWithPartitionNoReset. RiptOPL already has full native No-IOP-Reset handoff (src/elfldr_noreset.c), copying the child loader into BIOS-unused memory at 0x84000 and passing target paths and arguments to ExecPS2 so Neutrino can read its config and ISO without resetting OPL's live storage mounts.
  • In-memory ISO9660 volume & SYSTEM.CNF title ID extraction: OPHTML traverses sector 16 PVD records and parses SYSTEM.CNF in memory. RiptOPL already performs sector 16 PVD root-directory traversal in memory to extract BOOT2 game IDs and creation timestamps (src/retrogem.c and src/ps2cnf.c).
  • Dynamic cover art streaming & VRAM texture caching: OPHTML's streaming texture slots overlap RiptOPL's dedicated async texture worker (src/texcache.c), which provides lookahead caching, multi-epoch invalidation, chunked staging, memory clamps, and SIO2 controller-bus read throttling.
  • Virtualized list windowing & selection binding: OPHTML's ps2ui_list windowing and selection clamping are standard OPL core features in RiptOPL's item and GUI management.
  • Multi-device & SD2PSX/MMCE support: USB, internal HDD, MX4SIO, and MMCE channel support are already implemented in RiptOPL's storage drivers and RetroGEM/SD2PSX integration.
Validation status and emulator testing
OPHTML v0.10.0's ophtml.elf launcher has booted and proven its D-pad navigation and list virtualisation inside the Play! emulator in CI (via automated pad input injection and frame diffing). However, because Play! does not emulate USB, HDD or memory card controllers, physical-console bench cases C1–C8 remain formally [open] pending physical-console reports. Conversely, its underlying ps2ui GS rasterization runtime has undergone extensive physical PS2 hardware validation across multiple test sessions (documented in docs/bench-phase1.md and docs/bench-phase2.md).

The new OPL compatibility resolver maps only verified modes 2, 3 and 5; GSM and VMC CFG mapping remain unfinished. Last-played restoration overlaps RiptOPL. The launch breadcrumb records an attempted handoff but is not a proven hang detector or retry UI; it is not counted as one.

Upstream OPL pull requests

ps2homebrew/Open-PS2-Loader — RiptOPL derives from upstream OPL. A gap can be merged upstream or remain a proposal; its upstream state is not its RiptOPL implementation state.

IDFeatureWhat it doesSource
U1Per-game parental lockA Parental Lock toggle in a game's settings; starting that game asks for the parental lock password. Upstream #1779 merged on 2026-10-05; RiptOPL has a settings/write parental gate but not this per-game launch lock.PR #1779
U6Launch announcement for Discord rich presenceWhen a game starts, a small UDP broadcast carries its title ID so a PC listener can set Discord rich presence.PR #1736
U9Bluetooth controller input lag InvestigateShortens PADEMU Bluetooth polling delays to remove input lag. As submitted it also turns off rumble and the menu's pad delay, so it is a lead rather than a finished fix. Upstream #1675 closed without merge on 2026-10-05; retain it as a historical investigation, not an active upstream PR.PR #1675

BoliviaOS

boliviaos.site — an OPL-based environment that adds file management, media and system tools around game loading. Its source is not published, so these entries come from the features its site lists.

IDFeatureWhat it doesSource
B1File explorerBrowse and move files across memory cards, USB, HDD and host from inside the loader, with transfers checked against the source.boliviaos.site
B2Music playerPlays MP3 and OGG files with ID3 tags and a spectrum visualizer.boliviaos.site
B3Image and font viewersViews JPG and PNG images with zoom and transparency inspection, and TrueType fonts with Unicode coverage.boliviaos.site
B4Text editor, code editor and terminalEdits .txt and .cfg files, with a JavaScript editor and a command terminal.boliviaos.site
B5Memory card format and repairLow-level memory card formatting and repair through Memory Card Annihilator.boliviaos.site
Memory Card Annihilator
B6USB keyboardUSB HID keyboard input.boliviaos.site
B7PDF viewerReads PDF documents. The site lists it as still in development.boliviaos.site

PS2-Launcher

Irfanlesnar/PS2-Launcher — an OPL-based launcher with a console-style interface. Checked against its published v4.0 source, not only its README. v5.0.0 (2026-10-06) is checked from its release notes and README: the repository's v5.0.0 commit changed only README.md and CREDITS.md, so v5.0's code is not published.

IDFeatureWhat it doesSource
P1Xbox One and Series controllers over USBWired Xbox controllers through a new IOP driver. RiptOPL supports DualShock 3, DualShock 4 and DualSense. v5.0 adds Xbox 360 pads, the gap tracked as MP1.modules/xboxusb
P2Download covers from the PS2Fetches missing covers, or refreshes all of them, over the network from the console.src/opl.c
PS2-Launcher-Manager
P3One games list across every deviceA single Games list combining every connected source, part of its console-style interface. v5.0 adds sorting that list by device.src/opl.c
P4Hold SELECT to leave a gameHolding SELECT for 7–10 seconds in a game returns to the launcher, an alternative to the multi-button in-game reset combo.ee_core/src/padhook.c
P5Launch transition animationAn animated transition as a game starts. OPL-Evolution adapted it too.src/opl.c
P6More USB controllers: Steam Controller, Shanwan PS3 clones, ANT Esports GP300v5.0 lists the Steam Controller (2026), Shanwan PS3 clone pads and the ANT Esports GP300 Pro V2 wireless controller. RiptOPL's USB driver accepts only Sony's DualShock 3, DualShock 4 and DualSense IDs and has no clone-specific handling.v5.0.0 release notes
P7Connected controller count on screenThe v5.0 interface shows how many controllers are connected. RiptOPL only says when no controller is detected.v5.0.0 release notes
PS2-Launcher v5.0 overlap
v5.0's Files tab (browse devices, copy, paste and delete files, launch games and ELFs) overlaps B1, and its Xbox 360 support overlaps MP1; those receive no new P-series IDs. Already in RiptOPL: MMCE storage, the full in-game resolution list (RiptOPL also has 720p, 1080i and 1080p), the IGR Path setting, per-game OSD language, and multitap emulation for extra players (set up in Controller Emulation rather than assigned automatically). Its new SMB IP options are not itemised; RiptOPL already offers DHCP or a static address with gateway and DNS, and reaches the server by IP or name. The faster Apps tab is a performance change, not a capability.

ORBIT

danielnuld/ps2-launcher by danielnuld — a standalone PS2 launcher built around Neutrino. Audited against d015baf7 and RiptOPL rebuild/main@dc6206f6. Re-checked on 2026-10-06 against v1.0.2: v1.0.1 and v1.0.2 are fixes (a 1024-game limit, cover loading, DNS with DHCP, and MemCard PRO 2 game IDs on every launch, which RiptOPL already sends), so they add no entries. OR1 and OR2 have since shipped in RiptOPL (see Notes). These are capability differences, not claims that every game or storage device has passed on a console.

IDFeatureWhat it doesSource
OR3RetroAchievements telemetry with Neutrino gamesORBIT passes a watch list to its Neutrino fork and loads an in-game agent that streams watched memory to xeRAbora. RiptOPL's RA flavour loads telemetry through its own OPL core and explicitly excludes Neutrino and UDPFS launches. ORBIT reports one real-console UDPFS/Neutrino session with snapshots; that does not establish broad game compatibility.launcher.c
Neutrino agent
console report
OR4Browse achievement titles and progress on the consoleThe selected game's panel lists individual achievement titles, descriptions, points and earned state. RiptOPL's RA support check shows the title and aggregate counts returned by the PC client, but has no per-achievement browser. ORBIT's phase-16b report records host/PCSX2 checks for this panel and leaves the console check open.launcher.c
achievements.c
phase-16b evidence
OR5Companion catalog for UDPFS games OptionalAn HTTP companion service lists titles, paths, IDs and precomputed RA hashes for games whose ISO data is served through UDPFS, without mounting UDPFS in the menu. RiptOPL already lists UDPFS files through its filesystem driver and has a separate games.csv catalog for HTTP streaming; this row tracks ORBIT's distinct UDPFS catalog workflow, not a missing ability to list or launch UDPFS games.launcher.c
orbit_catalog.py
console report
ORBIT overlap and validation
ORBIT's on-console HTTPS cover fetch overlaps P2; its combined-source library and animated launch screen overlap P3 and P5; and its resumable Neutrino in-game menu overlaps the capability tracked in T3 and LU8. ORBIT's phase-13 report records a menu pass in one game at 480p, with other video modes and later core builds needing separate checks. Those overlaps receive no new OR-series IDs. ORBIT's standard-source and Neutrino per-game options, PS1/Apps paths and two interface languages also have RiptOPL counterparts.

Project Titan Magenta Edition

sobecapaklebs-dev/project-titan-magenta-edition — a PS2 operating-system/system-platform project with its own shell, services, application runtime and integrated Titan Neutrino / Titan UL game engines. Re-audited against main@2a69c259 with VERSION 0.3.93-rc17.

IDFeatureWhat it doesSource
T1Graphics patches kept apart from cheatsGraphics patches such as widescreen live in ENH/<id>.enh, separate from gameplay cheats in CHT/. Per-game selections persist independently and graphics patches can carry @auto / @experimental metadata. RiptOPL currently feeds these through its normal cheat path instead of a separate enhancement class.TITAN_GAME_PATCHES.md
T2Installable TPKG apps, in-process runtime and SDKTPKG v2 can install native R5900 application modules that execute inside Titan's application runtime and consume shared UI, input, notification, storage and media services. A public App/Game SDK lets software target Titan itself rather than only launching a separate ELF.README
TPKG format
SDK
T3Smart IGR overlay with Resume / Return Hardware pendingFor titles with a safe compatibility profile, Titan can suspend the running title, show a small in-game overlay, then resume the same threads without ResetEE/GS/IOP or return through the engine cleanup path. Unknown titles fail closed to return-only/legacy behavior. RiptOPL's IGR returns out of the game; it has no equivalent resumable in-game overlay.TITAN_SMART_IGR.md
T4Named user profiles with per-profile VMCUp to four named users can be created, selected and renamed, each carrying its own avatar and VMC path. RiptOPL has per-game VMC configuration but no system-wide user/profile layer that selects an exclusive VMC by user.titan_user_profile.h
titan_profile_storage.c
T5Notification center and background-progress UIA system Notifications page and top status/ticker surface alerts plus background activity and download progress, including transfer bytes, percentage and speed. RiptOPL has transient dialogs/status text but no comparable system notification/activity service.titan_notifications.h
titan_shell_catalog.c
T6Integrated lightweight web browserAn installed system app stays inside the running shell and provides URL entry, lightweight HTML text/link parsing, scrolling and back/forward history. HTTP uses PS2IP directly; HTTPS is translated through Titan's configurable Stream Bridge. RiptOPL has network game protocols but no interactive web browser.Internet / Titan Browser
T7Transactional .pup system updaterSettings can discover forward-only TPUP update packages, verify table/payload CRCs, stage files privately and roll back already-published files if a multi-file update fails. RiptOPL updates are distributed as release artifacts rather than installed by an in-console transactional updater.SYSTEM_UPDATE_PUP.md
T8Installable animated scene themes with audio.tthm packages can provide full HOME/TOP scene frames, reversible transition keyframes, bounded idle loops, background music, navigation/interface sounds and icon styling. RiptOPL's theme engine does not have Titan's packaged state/keyframe scene-animation model.THEME_AUTHORING.md
T9Xbox Bluetooth/BLE plus USB keyboard and mouse input Hardware pendingTitan's Unified Input has source paths for Bluetooth-capable Xbox One and Xbox Series pads over Bluetooth/BLE, plus USB keyboard and mouse input. Wired Xbox USB is already counted as P1; this row counts Titan's additional Bluetooth/HID input classes. Titan explicitly labels these host-contract PASS but physical-PS2 validation pending.Modern Controller Matrix
T10Repository-backed package download pipeline Target pendingTitan can accept a static repository catalog, resolve package/dependency metadata, queue HTTP/HTTPS package downloads, verify size and SHA-256 plus TPKG structure, then atomically publish the package for installation. Its documentation calls this a Store foundation rather than a finished storefront and says real target downloads remain pending.Store architecture
Download Service
Titan validation and overlap notes
Titan distinguishes source/host-contract completion from physical-PS2 validation. In particular, Smart IGR, the modern-controller paths and Store/Download path are kept above because this page audits implemented code capabilities, but Titan's own hardware/target-pending labels are preserved rather than treating them as proven compatibility.

Several other Titan capabilities are real but do not get extra T-series IDs because the same RiptOPL gap is already represented elsewhere on this page: direct cover/background fetching overlaps P2, its native wLaunchELF work overlaps B1, Project NES overlaps R1, its launch transition overlaps P5, and wired Xbox USB overlaps P1. Titan's Neutrino/UL launching, VMC support and ordinary PS2RD cheats also have RiptOPL equivalents and are not gaps by themselves.

OPL-Evolution

officialjuicedesigns/OPL-Evolution — an experimental OPL fork with a unified PS2 and PS1 dashboard.

IDFeatureWhat it doesSource
E1Controller, memory card, storage and network statusA status strip showing each controller port, both memory card slots, the storage source and the network state.src/evo_ui.c

xeRAbora

RiptOPL's RA build now follows upstream xeRAbora alpha.15. PR #881 implemented the larger watch sets and cadence (retired H2) and alignment-safe bounded reads (retired H3). H1 pointer chains were already present. These selected comparisons have no remaining H-series gap; RA with Neutrino remains the separate OR3 capability. Successful host tests and target builds do not establish console interoperability. See RetroAchievements for the paired client and validation scope.

RETROLauncher

Spaghetticode-Boon-Tobias/RETROLauncher — a launcher written in Lua for the Enceladus environment, covering retro emulators alongside PS2 and PS1 games.

IDFeatureWhat it doesSource
R1Retro emulator ROM librariesLibraries of retro ROMs launched through emulators such as RetroArch, SNESticle and TempGBA.README

Modulo R1

AdityaKumar7209/Modulo-R1-Beta-Preview---PS2 — a Neutrino-based loader in beta. Only its PC server source is published.

IDFeatureWhat it doesSource
M1Choose between several network servers OptionalLists every UDPFS server found on the network and lets you pick one. RiptOPL already finds a server automatically — see Network Boot.README

NHDDL

pcm720/nhddl — a deliberately small Neutrino front-end whose README explicitly keeps OPL-only features such as PADEMU, IGR and cheats out of scope unless Neutrino itself provides them. Audited against the released v1.2.2 code and documentation. The core features most likely to look unique at first glance are already present in RiptOPL: PixelFX/RetroGEM visual Game ID signalling, per-title SD2PSX/MemCard PRO2 card switching, cover art, persistent title caching, remembered last-played selection, global and per-game Neutrino arguments, VMC handoff and the principal Neutrino storage backends. The two remaining differences below are launcher/network conveniences rather than missing game-source support.

IDFeatureWhat it doesSource
N1Generic forward-boot CLI OptionalLaunching NHDDL with -mode=<type> and -dvd=<path> bypasses its UI and hands the target straight to Neutrino; -noinit can reuse an environment whose modules are already loaded. RiptOPL has positional HDD/BDM autolaunch entry points, but not an equivalent documented generic backend/path command line.Forward Boot Mode
N2Reuse SYS-CONF/IPCONFIG.DAT for UDPFS IP OptionalWhen no explicit udpfs_ip is supplied, NHDDL can obtain the PS2 network address from the wLaunchELF/uLaunchELF-style SYS-CONF/IPCONFIG.DAT. RiptOPL's UDPFS path currently uses its own Network settings and the active Neutrino TOML instead of inheriting that shared file.UDPFS documentation
IPCONFIG.DAT fix
What did not become a gap
NHDDL's visual Game ID output and SD2PSX/MemCard PRO2 per-title switching both have direct RiptOPL equivalents. RiptOPL also already remembers the last-played title, caches parsed ISO metadata, supports global and per-game Neutrino arguments, and can hand VMCs to Neutrino. NHDDL's backend-forcing ELF filename suffixes are a different configuration interface for selecting a device mode, not a separate game-loading capability, so they are not counted independently.

LUNA

LUNA by darkladark is a visual NHDDL/Neutrino-derived loader. Current comparison: 475f7b25, pinning frontend e9554ce6 and runtime 02cbf4f2. These are separate repositories; implementation links below point to their exact gitlink revisions. The current views are List, Collections, 3D, Orbit and experimental Scroll. Constellation (LU1) and the old flat Grid (LU3) are historical, not current capabilities.

IDFeatureWhat it doesSource
LU2Orbit depth-sorted ring library viewRenders the selected game at the front of a tilted ring while the other cached covers move around it with perspective narrowing, size/brightness/opacity depth falloff and explicit rear-to-front sorting. RiptOPL's Coverflow is a linear carousel and has no equivalent orbital presentation.view_orbit.c
LU4Animated rotating ICO disc-label artworkClassic view pairs the normal OPL _COV.png with _ICO.png disc art and rotates the disc texture continuously on a textured quad. RiptOPL already understands ICO as disc artwork and can toggle it at runtime, so the gap is specifically the animated disc presentation, not disc-art support itself.view_classic.c
paired-art fidelity note
LU5Per-drive Favorites that travel with the game HDD OptionalLUNA resolves Favorites against the selected title's metadata device and stores them under that drive's /LUNA/favorites.txt; swapping game HDDs therefore swaps the Favorites set with the library. RiptOPL deliberately keeps one cross-device favourites.bin beside its shared master configuration, so this is a different persistence model rather than missing Favorites functionality.favorites.c
RiptOPL favsupport.c
LU6Staged temp-file writes for key persistent library state FixLUNA writes a complete temporary file before replacing favorites.txt, lastTitle.bin and the ISO title-ID cache.bin; readers can recover completed temporary last-title/cache records after interrupted replacement. RiptOPL has substantial config-write verification/restore logic, but its centralized Favorites store still opens favourites.bin with O_TRUNC and writes the replacement in place.Favorites staging
last-title staging
cache staging
LU7Neutrino physical power-button DEV9-safe shutdown FixLUNA modifies Neutrino's IOP CD/DVD service so the native front-panel power event is handled by a priority-1 listener: it stops/synchronizes active emulated optical work, invokes DEV9's shutdown export when present, then issues the normal sceCdPowerOff. RiptOPL's OPL core already has its own orderly IGR/power-off path, but its Neutrino core does not include this coordinated DEV9 shutdown behavior.LUNA cdvdfsv.c
RiptOPL Neutrino baseline
LU8Neutrino in-game return / IGRLUNA extends the Neutrino runtime itself with a held L1+L2+R1+R2+START+SELECT IGR path. After 45 VBlank frames (roughly one second) it calls LUNA's shutdown RPC to quiesce optical/DEV9 activity, then uses the configured eec.ExitPath as the return ELF path, resets IOP and EE/GS state, and uses ExecPS2() to return directly to the memory-card ELF. RiptOPL has OPL-side IGR, but games launched through its current Neutrino core do not have Neutrino IGR, so this is a distinct missing runtime capability. The current README reports a physical FAT-PS2 test and requires installation on a memory card; this remains narrower than validation across all console and storage combinations.pad hook / combo
EE IGR RPC client
IOP shutdown RPC
RiptOPL IGR scope
LU9Projected 3D game-case gridA 6×4 projected game-case view with focus zoom and turn, sleeve shimmer, a selected-cover preview, scrolling titles and staggered entrance/exit transitions. The current frontend replaces the earlier flat Grid; it is not the same feature as O1 or the historical LU3. RiptOPL has Coverflow and list/theme views but no equivalent projected case-grid renderer.Case-grid renderer
6x4 geometry
LU10Animated ambient-orb Scroll library viewAn explicitly experimental library presentation pairing scrolling title/logo artwork with animated ambient orbs. RiptOPL has animated backgrounds and title lists, but no corresponding selectable orb/scroll library view. The comparison concerns the complete browsing presentation, not generic animation support.Scroll renderer
Scroll navigation
LU11Neutrino VMC backing on APA/PFSMaps raw VMC files from an APA/PFS metadata partition into direct ATA extents for the Neutrino runtime. Requires normal boot, 8 KiB PFS zones, no indirect inode segments, and a shared 64-fragment budget for game plus both cards. The loader validates image geometry and mapping before launch. RiptOPL currently drops Neutrino VMC arguments for APA games because its bundled runtime lacks this PFS backing path. LUNA still requests a physical-console save/reboot/reload test; source implementation does not establish broad game compatibility.PFS extent mapping
Loader restrictions
RiptOPL APA VMC restriction
Current overlap and validation scope
Storage-source toggles, rescans, card creation/assignment, optional music and cheat selection are not counted again: RiptOPL already has those categories of functionality. LUNA's current README reports in-game return on a physical FAT PS2, while APA/PFS VMC save/reboot/reload and artwork performance on optional storage still need console testing. The older Constellation/Grid descriptions and HDD-only filter are superseded by the current frontend; neither describes today's selectable library views.

Extended APA

L10N37/Open-PS2-Loader-Extended-APA — an OPL build for internal HDDs formatted with PS2 HDD Manager's banked APA layout.

IDFeatureWhat it doesSource
L1APA HDDs over 2 TiB Not plannedSplits a large internal HDD into APA “banks” and lists and launches games from every bank. RiptOPL stays on the standard APA layout — see Internal HDD.EXTENDED_APA.md

E2OPL

E2OPL — a historical OPL branch whose defining change was read-only EXT2 support for USB storage. Its published README requires the EXT2 partition to be first, uses 4096-byte blocks and supports ISO files rather than USBExtreme splitting.

IDFeatureWhat it doesSource
X1EXT2 USB filesystem supportLoads PS2 ISO images from a read-only EXT2 USB partition, avoiding FAT32's 4 GiB file limit and fragmentation requirement. RiptOPL supports FAT/exFAT-style BDM filesystems but has no EXT2 filesystem driver, so this remains a distinct storage-format capability even though exFAT solves most of the same practical problem today.SourceForge project
source README

Open PS2 Loader Modular PADEMU

belek666/Open-PS2-Loader modularPademu — a 2020 experimental branch that split PADEMU into controller-specific modules. DS3/DS4 overlap modern OPL, and its Xbox One USB path overlaps P1; the two controller classes below still have no equivalent module in RiptOPL.

IDFeatureWhat it doesSource
MP1Xbox 360 controllers over USB HistoricalA dedicated wired-Xbox-360 module recognizes Microsoft and several third-party VID/PID pairs, translates reports to DualShock 2 input and drives LEDs/rumble. RiptOPL has no xbox360usb PADEMU module.xbox360usb.c
MP2Generic USB HID gamepads HistoricalA generic HID module parses a USB gamepad's HID report descriptor and maps buttons, hats and axes into the emulated DS2 report instead of requiring a controller-specific driver. This is separate from Titan's keyboard/mouse support and BoliviaOS's USB keyboard support.hidusb.c
Modular PADEMU status
These are historical source capabilities, not claims of current RiptOPL-era hardware validation. The branch head is 66b93542 from 2020. Its Xbox One USB module is not counted separately because modern Xbox One / Series USB support is already P1.

uOPL (historical)

slimpuggamer/uOPL uOPL-1 — the historical uOPL line mirrored by NathanNeurotic/uOPL. Most of the features that once distinguished it are now directly present in RiptOPL: Favorites, Coverflow, per-game Neutrino, Mode 7, legacy mass: app paths, the extra theme keys, one-button Disable All in the cheat selector and cancellation of pending artwork work during launch.

IDFeatureWhat it doesSource
K1Write debug logs to a BDM device Debug buildDebug builds can switch LOG() from the normal debug transport to a block-device file and append messages to mass0:opllog.txt. RiptOPL still has UDP/PPC/DECI2-style debug output, but no equivalent BD Debug Log setting or file-backed BDM logger.include/ioman.h
src/ioman.c

RRVE / exaconn OPL wheel work

exaconn/Open-PS2-Loader — the repository previously listed here as the wOPL Ridge Racer V Edition. Its current 2026 source has moved beyond that label and contains Logitech wheel work on master, plus a companion Driving-Force-2-negCon-Edition branch. The entry below describes the code that actually exists now rather than inferring features from the old RRVE name.

IDFeatureWhat it doesSource
RR1USB Driving Force wheel with negCon presentation ExperimentalThe DS34 USB path recognizes Logitech wheel devices, parses wheel/pedal reports and applies a spring/auto-centering command. The companion branch presents that wheel through the PS1 negCon protocol (0x23) instead of only emulating a normal DS2, which is useful to titles designed around negCon-style analog steering. RiptOPL's DS34 USB driver has no Logitech dfreport / negCon path.Logitech definitions
auto-centering
negCon branch

Stable Open PS2 Loader (sOPL)

mystyq/Stable-Open-PS2-Loader — a stability-focused fork. Its artwork TAR caching, large-list work, BDM HDD support, game-size fixes, MMCE work and other older changes either exist in RiptOPL or have since been superseded there. One lower-level ATA behavior remains materially different.

IDFeatureWhat it doesSource
S1ATA DRDY waiting for slow-starting SMR / SSD drives FixsOPL's in-game ATAD path adds an ata_wait_until_ready() loop that waits for BUSY to clear and DRDY to assert at driver start and around ATA commands. It was introduced specifically for newer SMR/SSD drives that can take longer to become ready. RiptOPL has its own post-ATAD settling and HDD-detection safeguards, but its current cdvdman/atad.c does not implement this in-driver DRDY wait strategy.commit 3495d55b
current atad.c
sOPL TAR claims vs. audited source
The May 2026 sOPL release text advertises ART/art.tar, CFG/cfg.tar and CHT/cht.tar. The published release tag points to an older commit, while current master visibly carries the ART reader/cache path. This survey does not turn an unlocated release-note claim into a separate gap. More importantly, RiptOPL rebuild/main now has a unified TAR engine for all three archive kinds, including art_cache.bin, cfg_cache.bin and cht_cache.bin, so none of those archive features is a current RiptOPL gap regardless.
Awaiting Comparison cleared
All eight variants that were previously reserved for comparison have now been audited. OPL Daily Build, Grimdoomer OPL and X2P produced no remaining unique RiptOPL gap and are recorded in Checked, nothing missing. The five sources above produced six confirmed entries.

Caduceus & Caduceus OPL versus PS2-Servers & RiptOPL

Verified Caduceus gaps: CA1–CA7 and CO1–CO7

14 source-specific entries, not 14 unrelated feature concepts. These include seven missing PC companion capabilities and seven console UI, integration or behavior differences. CO3 overlaps existing OR4; CO1 and CO7 are optional design choices; CO4 is experimental and not equivalent to a validated physical-console feature.

IDFeatureEvidence and actual gapSource
CA1Curated SQLite desktop catalogue PC companionGame search, editable metadata and cover-backed catalogue; PS2-Servers manages roots/protocols rather than a persistent indexed game collection.Implementation code
CA2ISO import, installed status and transfer queue PC companionLocal ISO ingestion, installed-library status and tracked transfers are managed from a single PC interface; PS2-Servers exposes directory roots.Implementation code
CA3Cover conversion, migration and repair PC companionHost checks valid covers and safely converts/resizes legacy JPEG to PNG; RiptOPL supports PNG display but PS2-Servers does not offer this manager.Implementation code
CA4PC RetroAchievements account/live progress dashboard PC companionIntegrated account, compatibility, unlock-event and xeRAbora controls beyond the standalone client RiptOPL currently uses.Implementation code
CA5Live game detection and Discord presence PC companionWindows monitor samples open game-file handles and reconciles them with RA activity for game-aware presence and cover; more than existing U6 launch announcement.Implementation code
CA6Importable catalogue and safe SQLite backups PC companionSnapshot with SQLite VACUUM INTO, temporary file and atomic rename; catalogue import/backup is not a raw game/cover/VMC backup.Implementation code
CA7Guided first-run PS2 connection setup PC companionStep-by-step interactive console/server/network/ISO wizard inside the desktop app; PS2-Servers has documentation but not an equivalent first-run workflow.Implementation code
CO1Interpolated XMB category and game-list rail OptionalFixed XMB category navigation with eased horizontal/vertical list motion, category glyphs and cover previews; alternative to RiptOPL themes, not missing basic menu navigation.Implementation code
CO2Game-details card with automatic RA checks Opening the game card starts async hash/catalogue lookup and presents image support plus live session status; RiptOPL offers manual support checks but not this integrated screen.Implementation code
CO3Browse RA account achievements on the console Paginates account games, achievement icons, points, descriptions, dates and earned/locked/hardcore filters; the same high-level gap is already tracked under OR4.Implementation code
CO4Text-and-points in-game unlock card ExperimentalExtends the RA event to include title and points and draws a 192x40 in-game card. The opt-in --achievements build is experimental; RiptOPL already has a simpler hardware-tested gold pulse.Implementation code
CO5RA session-ready launch gating Checks the paired account/PC readiness before loading a watch list; stale or offline sessions launch normally without RA. RiptOPL has general link failure handling, not this account-coupled UX.Implementation code
CO6SMB ECHO and conditional reconnect on Refresh FixOn normal Refresh, tests whether SMB is healthy and reconnects only when failed. RiptOPL retries known error states but does not ECHO the apparently healthy connection on ordinary refresh.Implementation code
CO7Async initialize manual devices upon category focus OptionalOn entering a disabled device category, queues source initialization in the I/O worker rather than requiring a second confirm; possible UX gain with IOP/performance trade-offs.Implementation code

Audited code: The actual OPL snapshot was compared against RiptOPL code, and the Caduceus desktop modules against PS2-Servers. RiptOPL already has normal RA hashing, watch lists, SMB reconnect, PNG artwork support and an in-game unlock indicator; none is newly counted as missing. CO4 is richer presentation, not a missing RA notification system. CO6 is a more proactive check, not missing basic SMB recovery. Caduceus OPL's custom account protocol needs a companion endpoint and cannot be obtained just by swapping SMB servers.

Rian6/Caduceus is the Windows-side application (Electron/React/TypeScript/SQLite) that manages a game catalogue and launches the separately sourced OPLServer SMB server. Rian6/Caduceus OPL is its cooperating console-side OPL derivative. That is a tightly paired host + console loader, not one interchangeable executable. Their source repositories are distinct; the OPL source is also tracked as an opl-snapshot submodule.

Our comparable pairing is PS2-Servers (host-side network service) and RiptOPL (PS2 launcher). PS2-Servers deliberately serves multiple kinds of PS2 clients; Caduceus invests more heavily in a companion library and account experience. The table identifies host-side product gaps as well as console-side differences, without treating them as interchangeable RiptOPL feature gaps.

Comparison scope and counting
Source checked on 2026-10-08: caduceus/main@311f4eab, caduceus-opl/main@cc1713a8 (console gitlink opl-snapshot@2a98a9d7), PS2-Servers/main@c1eb1e5a, and RiptOPL/rebuild/main@7452341a. Seven CA-series and seven CO-series source-attributed gaps are now listed, including optional and experimental distinctions. Console achievement browsing overlaps OR4, PC game-aware Discord presence goes beyond U6, and RiptOPL already has an in-game RA unlock overlay. Source/release evidence is not universal physical-PS2 validation.
CapabilityCaduceus + Caduceus OPLPS2-Servers + RiptOPLGap / interpretation for us
Game-serving protocolsBundles OPLServer for SMB game shares. Caduceus documents a default PS2 share, TCP 1024.PS2-Servers Desktop/Core support SMBv1, SMB2/3, UDPFS, UDPBD and experimental HTTP; Edge covers SMBv1, UDPFS and UDPBD.Advantage: ours. The server's protocol support does not automatically make a console loader support the same protocol. PS2-Servers modes.
Desktop game library and ISO managementSQLite catalogue, cover images and details, local ISO import, installed-game list, download-link transfer tracking and JSON/SQLite catalogue import/backup. Host documentation.PS2-Servers selects serving roots, checks access, configures protocols and logs traffic; no comparable curated SQLite game catalogue is documented.Host companion gap. Optional catalogue + import/cover manager could sit above existing server backends. A Caduceus catalogue backup explicitly does not contain ISOs, covers, VMC saves or settings.
Current-game activity and DiscordDisplays the detected running title and cover on PC; Discord Rich Presence can include title, cover and latest unlocked achievement. Presence integration.PS2-Servers exposes service status, logs and diagnostics, not a documented game-aware desktop activity/presence layer. RiptOPL's separate Discord launch-announcement proposal is already U6.Host companion opportunity for optional session reporting. Console and server activity are not the same proof of a successfully launched game; do not count U6 again.
PC RetroAchievements experienceIntegrates a modified xeRAbora alpha.12, account progress browser, live events, sound and protected Windows token storage.RiptOPL already supports xeRAbora telemetry and in-game unlocks, with alpha.15-aligned integration; PS2-Servers does not document an integrated RA account UI or controller.Host companion gap. Consider an optional RA manager/UI; retain current RA protocol and client compatibility rather than replacing them with an older pinned adapter.
Achievements browsed on the PS2Caduceus OPL adds an account games/achievements category, points, icons, earned/locked/hardcore filters and pagination. It requests data over UDP 18198 using a capability stored on the private SMB share at ART/CADUCEUS.KEY. Wire protocol.RiptOPL has support checks, list badges and in-game telemetry/overlay, but no equivalent integrated RA account-progress browser is documented. ORBIT already supplies gap OR4.Real console UI opportunity, already counted. A Caduceus OPL-only UDP service is not automatically available to RiptOPL; an explicit compatible host service and console client are needed.
In-game achievement pop-upDisplays an experimental notice with achievement name/points. The linked implementation still notes ongoing physical-console validation. Console status.RiptOPL's unlock overlay already displayed an achievement on physical hardware in its recorded MMCE/USB tests; other routes remain unverified.Overlap, not a new gap. Different visuals or message handling do not establish better launch compatibility.
UI and onboardingWindows installer, first-run setup guide, XMB-style console UI, details card and art conversion into ART/<Game ID>_COV.png.PS2-Servers has cross-platform Desktop/Core/Edge and protocol-oriented setup tools. RiptOPL already has its own themes, artwork naming, launcher UI and device support.Design/integration opportunity, not a missing loading feature. Reuse compatible interaction ideas, not hard-coded Caduceus artwork paths: RiptOPL also has filename-based VCD, ELF and Ember-folder identities. XMB/art reference.
Portability and diagnosticsCaduceus PC app is Windows-focused. Its paired OPL client and host must cooperate for integrated covers/achievements.PS2-Servers Desktop works on Windows, Linux and macOS; Core runs headlessly; Go Edge targets NAS, routers and embedded Linux, with diagnostic and auto-negotiation options.Advantage: ours. Keep protocol engines, headless portability, per-peer UDPFS handling and safety checks decoupled from any optional catalogue/RA frontend. Editions.

Compatibility and implementation boundaries

Do not assume the two ecosystems can be swapped by changing the server address. Caduceus OPL expects the paired PS2 SMB share (normally port 1024), plus custom RA catalogue/session and account APIs on UDP 18197/18198. PS2-Servers Desktop normally advertises SMBv1 share games on port 1025 (Core/Edge default to 1111). Share name, port, root layout, credentials, services and console configuration must match. Two services cannot both bind the same host address, protocol and port. Caduceus' custom achievement browser needs a compatible server component; serving the same ISO files via PS2-Servers does not supply it.

Both ecosystems inherit the upstream warning that RA telemetry during SMB game streaming can disrupt loads; neither pairing demonstrates a fix for that issue. Keep host tokens and the Caduceus read-capability key private; UDP catalogue traffic is not encrypted. Caduceus PC sources currently have no top-level declared GitHub repository licence, so obtain clear reuse permission or review licensing before copying original application/bridge code. The inherited OPL/xeRAbora components have their own licences and notices.

Integration priorities for our pairing

  1. Optional PC library module: add metadata/catalogue, cover preparation, installed-game inventory and non-destructive backup as a frontend/sidecar to PS2-Servers; keep existing service implementations unchanged. Account for RiptOPL's disc-ID PS2 art and filename/folder-based VCD, ELF and Ember art identities.
  2. Read-only game-session reporting: surface the running title and its image/cover to an optional desktop view; only add Discord presence if the session identity is dependable. Avoid injecting traffic or polling into the hot UDPFS/SMB transfer paths.
  3. Optional RA account viewer: build on the compatible xeRAbora client already used by RiptOPL, with secrets held on the host, bounded requests and a separately tested console-side browser. Do not introduce a competing telemetry client or incompatible protocol by default; treat OR4 as the single existing console gap.
  4. Integration tests first: verify share/port selection, art naming, concurrent listeners, offline fallback, IOP resets, real-PS2 UI memory limits and performance before treating the pairing as interchangeable. Preserve existing servers and saved libraries during any migration.

Checked, nothing missing

Surveyed with the rest. Everything these offer is already in RiptOPL or does not apply to it.

ProjectWhy nothing is listed
ps2homebrew/Open-PS2-LoaderRiptOPL is built on its master branch. Selected upstream changes and proposals are listed above under Upstream OPL pull requests.
ps2-mmce/Open-PS2-LoaderMMCE support, switching MMCEs to the boot card during in-game reset, and VMC groups are all in RiptOPL; the rest are upstream fixes.
Docmine17/Open-PS2-Loader-HTTPRiptOPL's HTTP protocol comes from this project. Its only later change is an example games.csv.
NathanNeurotic/xeraboraThe current RA loader uses upstream xeRAbora alpha.15. Pointer chains, larger watch sets and alignment-safe direct reads are implemented; the older client fork is historical.
SvenGDK/Open-PS2-LoaderAn OPL v1.0.0 build for PSX DESR consoles. Everything it lists is in upstream OPL 1.2, which RiptOPL is based on.
rodrigo1593-dev/oplforkTwo experiments with PADEMU module loading. The same author's Bluetooth change is U9.
PS2-Widescreen/OPL-Widescreen-CheatsA widescreen cheat collection that works with RiptOPL's cheat engine as it is.
ps2homebrew/Open-PS2-Loader-langRiptOPL builds its UI languages from this repository, including Galician and Serbian.
ps2homebrew/HDLGameInstallerA separate app that installs games into APA partitions. RiptOPL does not write APA partitions.
Open PS2 Loader Daily Build (OPL DB / OPL TA)Its historical ELM/PS1 page is superseded by RiptOPL's dedicated PS1 Games view and current POPSTARTER/Ember paths. Its theme sound effects, startup audio and related theme assets are also already present or extended in RiptOPL's current sound/theme engine.
grimdoomer/Open-PS2-LoaderThe exFAT/GPT internal-HDD path that made this fork distinctive is already part of RiptOPL's internal HDD support. Its later 64-bit BDM LBA / VMC-range safety work is also present in RiptOPL's current bdmsupport.c.
X2P (Xbox-to-PlayStation)X2P intentionally removes OPL features and presents a themed, USB-focused subset; it is not an Xbox emulator. Its sound/theme stack (SFX, startup audio and streamed OGG BGM) is already present and more extensively integrated in RiptOPL, so the audit found no net-added capability.

What changed in this refresh

Revision and validation scope

Live repository revisions checked on 2026-10-08 UTC. A revision check establishes what source is current, not that every branch, release or hardware path was retested. The selected comparisons above were checked in source; unchanged historical variants retain their pinned branch evidence. NHDDL uses its maintained main branch rather than the repository default legacy.

Surveyed repository revisions
RepositoryBranchRevisionScope this pass
AdityaKumar7209/Modulo-R1-Beta-Preview---PS2main13bdb68cRevision checked; existing detailed evidence retained
Docmine17/Open-PS2-Loader-HTTPmaster6ee5bef2Revision checked; existing detailed evidence retained
Irfanlesnar/PS2-Launchermain46bad5a4Selected implementation differences checked
Jay-Jay-OPL/OPL-Daily-Buildsmasteraa531a85Revision checked; existing detailed evidence retained
L10N37/Open-PS2-Loader-Extended-APAmain5cb80589Revision checked; existing detailed evidence retained
NathanNeurotic/Open-PS2-Loaderrebuild/main9ef8d643Revision checked; existing detailed evidence retained
NathanNeurotic/neutrinomastera7b67364Revision checked; existing detailed evidence retained
NathanNeurotic/uOPLwOPL-base4ae74148Revision checked; existing detailed evidence retained
NathanNeurotic/xeraboramainebd18ed6Revision checked; existing detailed evidence retained
PS2-Widescreen/OPL-Widescreen-Cheatsmainf5b67cd6Revision checked; existing detailed evidence retained
Spaghetticode-Boon-Tobias/RETROLaunchermaine6f95081Revision checked; existing detailed evidence retained
SvenGDK/Open-PS2-Loadermainb7e64981Revision checked; existing detailed evidence retained
belek666/Open-PS2-Loadermaster41f7cf0bRevision checked; existing detailed evidence retained
coffeedevsolutions/OPHTMLmain03a5d56fSelected implementation differences checked
coffeedevsolutions/OPLatticemain32f3fd7bRevision checked; existing detailed evidence retained
danielnuld/ps2-launchermaster28a23666Revision checked; existing detailed evidence retained
dnunezx/LUNAmain475f7b25Selected implementation differences checked
exaconn/Open-PS2-Loadermaster73a4921dRevision checked; existing detailed evidence retained
ffgriever-pl/Memory-Card-Annihilatormaster769d581dRevision checked; existing detailed evidence retained
grimdoomer/Open-PS2-Loadermaster24340b5eRevision checked; existing detailed evidence retained
hacan359/Open-PS2-Loaderraf4d559a3Selected implementation differences checked
hacan359/xeraboramaind36ee3a5Selected implementation differences checked
koraxial/Xbox-2-PlayStation-Emulator-AlFamaster160c3e18Revision checked; existing detailed evidence retained
mystyq/Stable-Open-PS2-Loadermaster770d5323Revision checked; existing detailed evidence retained
officialjuicedesigns/OPL-Evolutionevo-development47119b71Revision checked; existing detailed evidence retained
pcm720/nhddlmain821b6c9bSelected implementation differences checked
ps2-mmce/Open-PS2-Loadermastere2090114Revision checked; existing detailed evidence retained
ps2homebrew/HDLGameInstallermainec37c81fRevision checked; existing detailed evidence retained
ps2homebrew/Open-PS2-Loadermaster4cc74baaSelected implementation differences checked
ps2homebrew/Open-PS2-Loader-langmainb23b743dRevision checked; existing detailed evidence retained
ps2homebrew/wOPLwOPL-base4ae74148Selected implementation differences checked
rodrigo1593-dev/oplforkmain0dbb0d35Revision checked; existing detailed evidence retained
slimpuggamer/uOPLuOPL-10daf81feRevision checked; existing detailed evidence retained
sobecapaklebs-dev/project-titan-magenta-editionmain2a69c259Revision checked; existing detailed evidence retained

Notes

2026-10-08 retired IDs: W4 (live disc-art toggle), W5 (pad tick-wrap fix) and H1 (pointer chains) are already implemented in RiptOPL, in src/themes.c, src/pad.c and ee_core/src/ra.c respectively. LU1 and LU3 describe removed LUNA views from the earlier snapshot; their IDs remain reserved. OR1/OR2 remain retired, with PS1 save-icon coverage now extended to VCD and Ember by PR #876.