Skip to content

Fork Feature Gaps

NathanNeurotic (Ripto) edited this page Oct 12, 2026 · 11 revisions

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

Code Source What it is Gaps
CA Caduceus (PC) Windows game-library manager, bundled OPLServer SMB host and xeRAbora-based achievement companion; compared against PS2-Servers below 7
CO Caduceus OPL XMB-style OPL console client paired with Caduceus, including a console achievement browser; related to already-listed OR4 7
W wOPL The continuation of KrahJohlito's uOPL 4
O OPLattice Grid themes, the SHELF interface and theme tooling 15
OH OPHTML HTML/CSS declarative UI compiler, zero-allocation C99 runtime and standalone Neutrino console launcher 12
U Upstream OPL Upstream changes and historical proposals not implemented in RiptOPL 3
B BoliviaOS A multifunction PS2 environment built on OPL 7
P PS2-Launcher An OPL-based launcher with a console-style interface 7
OR ORBIT A Neutrino-based PS2 launcher with console-side saves, achievements and a companion game catalog 3
T Project Titan Magenta Edition A PS2 operating-system/system-platform project with integrated game engines 10
E OPL-Evolution An experimental OPL fork with a unified dashboard 1
H xeRAbora RetroAchievements for real PS2 hardware 0
R RETROLauncher A Lua launcher for retro emulators and PS2 games 1
M Modulo R1 A Neutrino-based loader in beta 1
N NHDDL A deliberately small Neutrino front-end and launcher 2
LU LUNA An NHDDL/Neutrino-derived visual loader with a coordinated frontend/runtime, by darkladark 9
L Extended APA An OPL build for internal HDDs larger than 2 TiB 1
X E2OPL A historical OPL fork adding EXT2 USB storage 1
MP Modular PADEMU A historical modular controller-emulation branch 2
K uOPL (historical) KrahJohlito-era uOPL before the later wOPL line 1
RR RRVE / exaconn OPL The former RRVE repository, now carrying wheel and negCon experiments 1
S Stable OPL A stability-focused OPL fork with storage-driver changes 1

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.

ID Feature Area Source Type
CA1 Curated SQLite desktop catalogue PC library Caduceus (PC) Tool
CA2 ISO import, installed status and transfer queue PC library Caduceus (PC) Tool
CA3 Cover conversion, migration and repair PC artwork Caduceus (PC) Tool
CA4 PC RetroAchievements account/live progress dashboard PC RetroAchievements Caduceus (PC) Tool
CA5 Live game detection and Discord presence PC companion Caduceus (PC) Tool
CA6 Importable catalogue and safe SQLite backups PC reliability Caduceus (PC) Tool
CA7 Guided first-run PS2 connection setup PC onboarding Caduceus (PC) Tool
CO1 Interpolated XMB category and game-list rail Console UI Caduceus OPL Optional
CO2 Game-details card with automatic RA checks Console RetroAchievements Caduceus OPL Feature
CO3 Browse RA account achievements on the console Console RetroAchievements Caduceus OPL Feature overlaps OR4
CO4 Text-and-points in-game unlock card Console RetroAchievements Caduceus OPL Experimental
CO5 RA session-ready launch gating Console launching Caduceus OPL Feature
CO6 SMB ECHO and conditional reconnect on Refresh Console network Caduceus OPL Fix
CO7 Async initialize manual devices upon category focus Console device handling Caduceus OPL Optional
W1 Themes loaded from a .tar archive Theme engine wOPL Feature
W2 wsX widescreen X position Theme engine wOPL Feature
W3 PADEMU, GSM and cheat status icons Theme engine wOPL Feature
W6 Info page without list navigation Library & menu wOPL Optional
O1 Grid game list Theme engine OPLattice Feature
O2 GameImage offset for non-selected games Theme engine OPLattice Feature
O3 Recently played list Library & menu OPLattice Feature
O4 Sort modes Library & menu OPLattice Feature
O5 MenuTabs device tab strip Theme engine OPLattice Feature
O6 GameCountText prefix and suffix Theme engine OPLattice Feature
O7 x_scaled widescreen alignment Theme engine OPLattice Feature
O8 VRAM texture budget clamp Theme engine OPLattice Fix
O9 Play stats Library & menu OPLattice Feature
O10 SHELF sidebar interface Library & menu OPLattice Feature
O11 App subtitles Library & menu OPLattice Feature
O12 Art conversion and VRAM checker PC tools OPLattice Tool
O13 In-game screenshot importer PC tools OPLattice Tool
O14 Browser theme previewer PC tools OPLattice Tool
O15 Device staging and card sync scripts PC tools OPLattice Tool
OH1 Declarative HTML/CSS flexbox compilation to zero-allocation C99 GS command list Theme engine OPHTML Feature
OH2 Pre-resolved pairwise HarfBuzz font kerning on EE Theme engine OPHTML Feature
OH3 Instant 1-byte palette theme switching without VRAM re-upload Theme engine OPHTML Feature
OH4 Runtime 2D coordinate offsets for motion and expanding layouts Theme engine OPHTML Feature
OH5 Runtime focus-subtree visibility masking with auto-bypassing navigation Theme engine OPHTML Feature
OH6 Automated CRT overscan safe area and multi-layer alpha contrast linter PC tools OPHTML Tool
OH7 Interactive web browser theme simulator and testbed PC tools OPHTML Tool
OH8 Static VRAM budgeting and layout compiler PC tools OPHTML Tool
OH9 Headless Play! emulator CI testbed with input scripting and frame diffs PC tools OPHTML Tool
OH10 Fuzzed .uib loader with EE bus-alignment and malformed blob hardening Theme engine OPHTML Fix
OH11 Hard compiler safety limits for untrusted themes Theme engine OPHTML Fix
U1 Per-game parental lock Cheats, launching & network Upstream OPL Feature
U6 Launch announcement for Discord rich presence Cheats, launching & network Upstream OPL Feature
U9 Bluetooth controller input lag Controllers & input Upstream OPL Investigate
B1 File explorer Beyond game loading BoliviaOS Feature
B2 Music player Beyond game loading BoliviaOS Feature
B3 Image and font viewers Beyond game loading BoliviaOS Feature
B4 Text editor, code editor and terminal Beyond game loading BoliviaOS Feature
B5 Memory card format and repair Beyond game loading BoliviaOS Feature
B6 USB keyboard Controllers & input BoliviaOS Feature
B7 PDF viewer Beyond game loading BoliviaOS Feature
P1 Xbox One and Series controllers over USB Controllers & input PS2-Launcher Feature
P2 Download covers from the PS2 Library & menu PS2-Launcher Feature
P3 One games list across every device Library & menu PS2-Launcher Feature
P4 Hold SELECT to leave a game Controllers & input PS2-Launcher Feature
P5 Launch transition animation Library & menu PS2-Launcher Feature
P6 More USB controllers: Steam Controller, Shanwan PS3 clones, ANT Esports GP300 Controllers & input PS2-Launcher Feature
P7 Connected controller count on screen Controllers & input PS2-Launcher Feature
OR3 RetroAchievements telemetry with Neutrino games RetroAchievements ORBIT Feature
OR4 Browse achievement titles and progress on the console RetroAchievements ORBIT Feature
OR5 Companion catalog for UDPFS games Cheats, launching & network ORBIT Optional
T1 Graphics patches kept apart from cheats Cheats, launching & network Project Titan Magenta Edition Feature
T2 Installable TPKG apps, in-process runtime and SDK Beyond game loading Project Titan Magenta Edition Feature
T3 Smart IGR overlay with Resume / Return Game compatibility Project Titan Magenta Edition Feature Hardware pending
T4 Named user profiles with per-profile VMC Beyond game loading Project Titan Magenta Edition Feature
T5 Notification center and background-progress UI Library & menu Project Titan Magenta Edition Feature
T6 Integrated lightweight web browser Beyond game loading Project Titan Magenta Edition Feature
T7 Transactional .pup system updater Beyond game loading Project Titan Magenta Edition Feature
T8 Installable animated scene themes with audio Theme engine Project Titan Magenta Edition Feature
T9 Xbox Bluetooth/BLE plus USB keyboard and mouse input Controllers & input Project Titan Magenta Edition Feature Hardware pending
T10 Repository-backed package download pipeline Beyond game loading Project Titan Magenta Edition Feature Target pending
E1 Controller, memory card, storage and network status Library & menu OPL-Evolution Feature
R1 Retro emulator ROM libraries Beyond game loading RETROLauncher Feature
M1 Choose between several network servers Cheats, launching & network Modulo R1 Optional
N1 Generic forward-boot CLI Launcher integration NHDDL Optional
N2 Reuse SYS-CONF/IPCONFIG.DAT for UDPFS IP Cheats, launching & network NHDDL Optional
LU2 Orbit depth-sorted ring library view Library & menu LUNA Feature
LU4 Animated rotating ICO disc-label artwork Library & menu LUNA Feature
LU5 Per-drive Favorites that travel with the game HDD Library & menu LUNA Optional
LU6 Staged temp-file writes for key persistent library state Reliability / persistence LUNA Fix
LU7 Neutrino physical power-button DEV9-safe shutdown Game compatibility LUNA Fix
LU8 Neutrino in-game return / IGR Game compatibility LUNA Feature WIP
L1 APA HDDs over 2 TiB Internal HDD Extended APA Not planned
X1 EXT2 USB filesystem support USB / game sources E2OPL Feature
MP1 Xbox 360 controllers over USB Controllers & input Modular PADEMU Feature Historical
MP2 Generic USB HID gamepads Controllers & input Modular PADEMU Feature Historical
K1 Write debug logs to a BDM device Developer / diagnostics uOPL (historical) Feature Debug build
RR1 USB Driving Force wheel with negCon presentation Controllers & input RRVE / exaconn OPL Feature Experimental
S1 ATA DRDY waiting for slow-starting SMR / SSD drives Internal HDD Stable OPL Fix
OH12 Reusable console-launcher core archive Launcher integration OPHTML Feature
LU9 Projected 3D game-case grid Library & menu LUNA Feature
LU10 Animated ambient-orb Scroll library view Library & menu LUNA Experimental
LU11 Neutrino VMC backing on APA/PFS Game compatibility LUNA Feature

wOPL

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

ID Feature What it does Source
W1 Themes loaded from a .tar archive Several themes packed into THM/thm.tar, with fonts and images read straight from the archive. PR #370 PR #378
W2 wsX widescreen X position A separate X coordinate per element for 16:9, so one theme file serves both 4:3 and widescreen. src/themes.c
W3 PADEMU, GSM and cheat status icons On/off images showing each game's pad emulation, GSM and cheat settings, with built-in default images. src/textures.c src/themes.c
W6 Info page without list navigation Optional Up, 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.

ID Feature What it does Source
O1 Grid game list A tile layout for the game list (columns, cell_width, gap, frame) with two-axis navigation. patch 01
O2 GameImage offset for non-selected games An image element can draw the game a set number of places down the page, which makes hero and filmstrip layouts possible. patch 01
O3 Recently played list The last 8 games launched, newest first, shown with RecentImage and RecentText elements. RiptOPL remembers only the last one. patch 02
O4 Sort modes A to Z, Z to A, most recent first, or as scanned. OPLattice cycles them with R3, which RiptOPL uses for Favorites. patch 02
O5 MenuTabs device tab strip Every device drawn at once with the active one highlighted, plus per-device label overrides. patch 03
O6 GameCountText prefix and suffix Themes set their own wording around the game count. patch 03
O7 x_scaled widescreen alignment Elements keep their position relative to a centred layout when widescreen is on. patch 03
O8 VRAM texture budget clamp Fix Caps 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
O9 Play stats A launch count and playtime for each game. patch 08
O10 SHELF sidebar interface An 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
O11 App subtitles An optional subtitle key in an app's title.cfg. patch 09
O12 Art conversion and VRAM checker Tool Converts art to indexed PNG8 and reports how much memory each theme's art cache will use. palettize-art.py check-art.py
O13 In-game screenshot importer Tool Turns in-game screenshot BMPs from the memory card into the _SCR.png images the info page shows. import-igs.py
O14 Browser theme previewer Tool A single HTML file that renders a theme's layout before it goes on a console. opl-theme-previewer.html
O15 Device staging and card sync scripts Tool Scripts 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.

ID Feature What it does Source
OH1 Declarative HTML/CSS flexbox compilation to zero-allocation C99 GS command list Compiles 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
OH2 Pre-resolved pairwise HarfBuzz font kerning on EE Measures 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
OH3 Instant 1-byte palette theme switching without VRAM re-upload Multiple 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
OH4 Runtime 2D coordinate offsets for motion and expanding layouts ps2ui_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
OH5 Runtime focus-subtree visibility masking with auto-bypassing navigation A 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
OH6 Automated CRT overscan safe area and multi-layer alpha contrast linter Tool Build-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)
OH7 Interactive web browser theme simulator and testbed Tool ps2ui 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
OH8 Static VRAM budgeting and layout compiler Tool Models 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
OH9 Headless Play! emulator CI testbed with input scripting and frame diffs Tool Continuous 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
OH10 Fuzzed .uib loader with EE bus-alignment and malformed blob hardening Fix Runtime 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
OH11 Hard compiler safety limits for untrusted themes Fix Compile-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
OH12 Reusable console-launcher core archive Exports 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.

ID Feature What it does Source
U1 Per-game parental lock A 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
U6 Launch announcement for Discord rich presence When a game starts, a small UDP broadcast carries its title ID so a PC listener can set Discord rich presence. PR #1736
U9 Bluetooth controller input lag Investigate Shortens 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.

ID Feature What it does Source
B1 File explorer Browse and move files across memory cards, USB, HDD and host from inside the loader, with transfers checked against the source. boliviaos.site
B2 Music player Plays MP3 and OGG files with ID3 tags and a spectrum visualizer. boliviaos.site
B3 Image and font viewers Views JPG and PNG images with zoom and transparency inspection, and TrueType fonts with Unicode coverage. boliviaos.site
B4 Text editor, code editor and terminal Edits .txt and .cfg files, with a JavaScript editor and a command terminal. boliviaos.site
B5 Memory card format and repair Low-level memory card formatting and repair through Memory Card Annihilator. boliviaos.site Memory Card Annihilator
B6 USB keyboard USB HID keyboard input. boliviaos.site
B7 PDF viewer Reads 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.

ID Feature What it does Source
P1 Xbox One and Series controllers over USB Wired 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
P2 Download covers from the PS2 Fetches missing covers, or refreshes all of them, over the network from the console. src/opl.c PS2-Launcher-Manager
P3 One games list across every device A single Games list combining every connected source, part of its console-style interface. v5.0 adds sorting that list by device. src/opl.c
P4 Hold SELECT to leave a game Holding 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
P5 Launch transition animation An animated transition as a game starts. OPL-Evolution adapted it too. src/opl.c
P6 More USB controllers: Steam Controller, Shanwan PS3 clones, ANT Esports GP300 v5.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
P7 Connected controller count on screen The 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.

ID Feature What it does Source
OR3 RetroAchievements telemetry with Neutrino games ORBIT 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
OR4 Browse achievement titles and progress on the console The 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
OR5 Companion catalog for UDPFS games Optional An 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.

ID Feature What it does Source
T1 Graphics patches kept apart from cheats Graphics 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
T2 Installable TPKG apps, in-process runtime and SDK TPKG 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
T3 Smart IGR overlay with Resume / Return Hardware pending For 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
T4 Named user profiles with per-profile VMC Up 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
T5 Notification center and background-progress UI A 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
T6 Integrated lightweight web browser An 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
T7 Transactional .pup system updater Settings 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
T8 Installable 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
T9 Xbox Bluetooth/BLE plus USB keyboard and mouse input Hardware pending Titan'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
T10 Repository-backed package download pipeline Target pending Titan 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.

ID Feature What it does Source
E1 Controller, memory card, storage and network status A 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.

ID Feature What it does Source
R1 Retro emulator ROM libraries Libraries 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.

ID Feature What it does Source
M1 Choose between several network servers Optional Lists 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.

ID Feature What it does Source
N1 Generic forward-boot CLI Optional Launching 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
N2 Reuse SYS-CONF/IPCONFIG.DAT for UDPFS IP Optional When 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.

ID Feature What it does Source
LU2 Orbit depth-sorted ring library view Renders 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
LU4 Animated rotating ICO disc-label artwork Classic 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
LU5 Per-drive Favorites that travel with the game HDD Optional LUNA 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
LU6 Staged temp-file writes for key persistent library state Fix LUNA 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
LU7 Neutrino physical power-button DEV9-safe shutdown Fix LUNA 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
LU8 Neutrino in-game return / IGR LUNA 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
LU9 Projected 3D game-case grid A 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
LU10 Animated ambient-orb Scroll library view An 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
LU11 Neutrino VMC backing on APA/PFS Maps 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.

ID Feature What it does Source
L1 APA HDDs over 2 TiB Not planned Splits 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.

ID Feature What it does Source
X1 EXT2 USB filesystem support Loads 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.

ID Feature What it does Source
MP1 Xbox 360 controllers over USB Historical A 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
MP2 Generic USB HID gamepads Historical A 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.

ID Feature What it does Source
K1 Write debug logs to a BDM device Debug build Debug 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.

ID Feature What it does Source
RR1 USB Driving Force wheel with negCon presentation Experimental The 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.

ID Feature What it does Source
S1 ATA DRDY waiting for slow-starting SMR / SSD drives Fix sOPL'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.

ID Feature Evidence and actual gap Source
CA1 Curated SQLite desktop catalogue PC companion Game search, editable metadata and cover-backed catalogue; PS2-Servers manages roots/protocols rather than a persistent indexed game collection. Implementation code
CA2 ISO import, installed status and transfer queue PC companion Local ISO ingestion, installed-library status and tracked transfers are managed from a single PC interface; PS2-Servers exposes directory roots. Implementation code
CA3 Cover conversion, migration and repair PC companion Host 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
CA4 PC RetroAchievements account/live progress dashboard PC companion Integrated account, compatibility, unlock-event and xeRAbora controls beyond the standalone client RiptOPL currently uses. Implementation code
CA5 Live game detection and Discord presence PC companion Windows 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
CA6 Importable catalogue and safe SQLite backups PC companion Snapshot with SQLite VACUUM INTO, temporary file and atomic rename; catalogue import/backup is not a raw game/cover/VMC backup. Implementation code
CA7 Guided first-run PS2 connection setup PC companion Step-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
CO1 Interpolated XMB category and game-list rail Optional Fixed 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
CO2 Game-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
CO3 Browse 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
CO4 Text-and-points in-game unlock card Experimental Extends 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
CO5 RA 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
CO6 SMB ECHO and conditional reconnect on Refresh Fix On 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
CO7 Async initialize manual devices upon category focus Optional On 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.

Capability Caduceus + Caduceus OPL PS2-Servers + RiptOPL Gap / interpretation for us
Game-serving protocols Bundles 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 management SQLite 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 Discord Displays 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 experience Integrates 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 PS2 Caduceus 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-up Displays 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 onboarding Windows 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 diagnostics Caduceus 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.

Project Why nothing is listed
ps2homebrew/Open-PS2-Loader RiptOPL is built on its master branch. Selected upstream changes and proposals are listed above under Upstream OPL pull requests.
ps2-mmce/Open-PS2-Loader MMCE 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-HTTP RiptOPL's HTTP protocol comes from this project. Its only later change is an example games.csv.
NathanNeurotic/xerabora The 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-Loader An 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/oplfork Two experiments with PADEMU module loading. The same author's Bluetooth change is U9.
PS2-Widescreen/OPL-Widescreen-Cheats A widescreen cheat collection that works with RiptOPL's cheat engine as it is.
ps2homebrew/Open-PS2-Loader-lang RiptOPL builds its UI languages from this repository, including Galician and Serbian.
ps2homebrew/HDLGameInstaller A 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-Loader The 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

  • Caduceus pair: the Windows-side library/RA companion and its paired OPL fork are now compared with PS2-Servers + RiptOPL. 14 CA/CO source-attributed entries were added after code inspection; CO3 overlaps OR4 and CO4 is richer experimental notification rendering, not an absent RiptOPL unlock overlay.
  • OPHTML: source is ahead of the v0.10.0 release. The reusable console-core archive is new OH12; per-game compatibility settings and last-played restoration overlap existing RiptOPL features. Planned cover decoding, search, Favorites and IGR are not counted as delivered features.
  • LUNA: the actual frontend/runtime gitlinks replace the old September snapshot. LU9/LU10/LU11 cover the new case-grid, experimental Scroll view and restricted APA/PFS Neutrino VMC implementation. Retired views are no longer counted; the current README's FAT-PS2 IGR report replaces the stale WIP description.
  • xeRAbora: H2/H3 were reconciled after the alpha.15 port in PR #881. The PC client is maintained upstream. Original-disc RA and pointer chains already existed; RA with Neutrino remains OR3.
  • PS2-Launcher: the existing v5.0.0 comparison still applies at 46bad5a4. Its later commit documents a controller rather than adding another implementation; the seven existing gaps remain.
  • ORBIT and Titan: the current ORBIT master is the already compared v1.0.2 merge; Titan remains at the previously audited 2a69c259. No new gaps are asserted for unchanged snapshots.
  • Upstream OPL: #1779 is now merged upstream but remains U1 here; #1736 remains open; #1675 closed without merge and is explicitly historical. A closed proposal is not a shipped fix.
  • wOPL: W4 and W5 are already implemented in RiptOPL. W1/W2/W3/W6 remain, preserving their original evidence and design-choice labels.

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

Repository Branch Revision Scope this pass
AdityaKumar7209/Modulo-R1-Beta-Preview---PS2 main 13bdb68c Revision checked; existing detailed evidence retained
Docmine17/Open-PS2-Loader-HTTP master 6ee5bef2 Revision checked; existing detailed evidence retained
Irfanlesnar/PS2-Launcher main 46bad5a4 Selected implementation differences checked
Jay-Jay-OPL/OPL-Daily-Builds master aa531a85 Revision checked; existing detailed evidence retained
L10N37/Open-PS2-Loader-Extended-APA main 5cb80589 Revision checked; existing detailed evidence retained
NathanNeurotic/Open-PS2-Loader rebuild/main 9ef8d643 Revision checked; existing detailed evidence retained
NathanNeurotic/neutrino master a7b67364 Revision checked; existing detailed evidence retained
NathanNeurotic/uOPL wOPL-base 4ae74148 Revision checked; existing detailed evidence retained
NathanNeurotic/xerabora main ebd18ed6 Revision checked; existing detailed evidence retained
PS2-Widescreen/OPL-Widescreen-Cheats main f5b67cd6 Revision checked; existing detailed evidence retained
Spaghetticode-Boon-Tobias/RETROLauncher main e6f95081 Revision checked; existing detailed evidence retained
SvenGDK/Open-PS2-Loader main b7e64981 Revision checked; existing detailed evidence retained
belek666/Open-PS2-Loader master 41f7cf0b Revision checked; existing detailed evidence retained
coffeedevsolutions/OPHTML main 03a5d56f Selected implementation differences checked
coffeedevsolutions/OPLattice main 32f3fd7b Revision checked; existing detailed evidence retained
danielnuld/ps2-launcher master 28a23666 Revision checked; existing detailed evidence retained
dnunezx/LUNA main 475f7b25 Selected implementation differences checked
exaconn/Open-PS2-Loader master 73a4921d Revision checked; existing detailed evidence retained
ffgriever-pl/Memory-Card-Annihilator master 769d581d Revision checked; existing detailed evidence retained
grimdoomer/Open-PS2-Loader master 24340b5e Revision checked; existing detailed evidence retained
hacan359/Open-PS2-Loader ra f4d559a3 Selected implementation differences checked
hacan359/xerabora main d36ee3a5 Selected implementation differences checked
koraxial/Xbox-2-PlayStation-Emulator-AlFa master 160c3e18 Revision checked; existing detailed evidence retained
mystyq/Stable-Open-PS2-Loader master 770d5323 Revision checked; existing detailed evidence retained
officialjuicedesigns/OPL-Evolution evo-development 47119b71 Revision checked; existing detailed evidence retained
pcm720/nhddl main 821b6c9b Selected implementation differences checked
ps2-mmce/Open-PS2-Loader master e2090114 Revision checked; existing detailed evidence retained
ps2homebrew/HDLGameInstaller main ec37c81f Revision checked; existing detailed evidence retained
ps2homebrew/Open-PS2-Loader master 4cc74baa Selected implementation differences checked
ps2homebrew/Open-PS2-Loader-lang main b23b743d Revision checked; existing detailed evidence retained
ps2homebrew/wOPL wOPL-base 4ae74148 Selected implementation differences checked
rodrigo1593-dev/oplfork main 0dbb0d35 Revision checked; existing detailed evidence retained
slimpuggamer/uOPL uOPL-1 0daf81fe Revision checked; existing detailed evidence retained
sobecapaklebs-dev/project-titan-magenta-edition main 2a69c259 Revision 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.

  • OPHTML parity checked on 2026-09-27: OPHTML / ps2ui by coffeedevsolutions (Blake Coffee), audited against main@60810bd (version 0.10.0, .uib format v7). While publicly titled as a web-technology UI toolkit, the source contains an embedded OPL-compatible game launcher (ophtml.elf) and environment. Overlapping launcher features (Neutrino no-reset launch in src/elfldr_noreset.c, ISO9660 SYSTEM.CNF extraction in src/retrogem.c, texture streaming in src/texcache.c, and list windowing) were excluded as existing RiptOPL parity, leaving 11 genuine code-level gaps: declarative flexbox compilation to zero-allocation C99 GS runtime, pre-resolved pairwise HarfBuzz kerning on the EE, instant 1-byte palette theme switching, runtime 2D coordinate offsets, focus subtree visibility masking with automatic D-pad bypass, automated CRT overscan & multi-layer alpha contrast linter, browser-based theme simulation, static VRAM budgeting, Play! emulator CI testing, EE bus-alignment fuzzer hardening, and compiler safety ceilings.
  • LUNA parity checked on 2026-09-22: LUNA by darkladark, audited against main@23112ec and RiptOPL rebuild/main@abf14079. Eight source-backed gaps survived overlap checking. LU8 tracks LUNA's Neutrino in-game return because the implementation is present and RiptOPL's Neutrino core lacks IGR; it remains marked WIP because LUNA's current README has not promoted the feature to stable status.
  • Previously awaiting variants fully audited on 2026-09-22: E2OPL's historical SourceForge source; OPL Daily Build aa531a85; Modular PADEMU 66b93542; Grimdoomer's large-capacity branch d1f51be4 plus its later BDM LBA fix branch; historical uOPL 0daf81fe; X2P 160c3e18; exaconn master 73a4921d and negCon branch f9717f76; and Stable OPL 770d5323. Six new gaps survived code comparison; three projects moved to the no-gap table.
  • Project Titan Magenta Edition parity checked on 2026-09-22: audited against upstream main@2a69c259 / VERSION 0.3.93-rc17 and RiptOPL rebuild/main@abf14079. Titan's controller, Smart IGR and Store/Download documentation explicitly retains physical-target validation caveats; those rows describe source capability, not a hardware-compatibility guarantee.
  • NHDDL parity checked on 2026-09-20: RiptOPL already has the visual Game ID signal used by PixelFX/RetroGEM hardware, MMCE GameID switching for SD2PSX/MemCard PRO2 on cross-device launches, remembered last-played selection with optional autostart, persistent ISO metadata caching, and global/per-game Neutrino arguments. Those are therefore not N-series gaps.
  • Already in RiptOPL, so not listed: the fix from wOPL PR #435 (remember the last played game when it is the first list entry), PS2RD cheat images (.img), cover art from ART/art.tar (Interface settings), per-game configs from CFG/cfg.tar, cheats from CHT/cht.tar, persistent TAR index sidecars for all three archive kinds, the <name>_show_run theme key, RetroAchievements for physical discs, per-game OSD language, virtual memory card creation, and the older USB driver that upstream PR #1752 proposes pinning.
  • Shipped since the survey: Ratchet & Clank 3 over SMB (was U5, from upstream PR #1761), Pro Evolution Soccer 2 defaulting to Accurate Reads (was U7, see Compatibility Modes) and Galician and Serbian UI languages (was U8, see Languages), all in PR #658; remembered per-game cheat selections (was U2, from upstream PR #1748, in PR #846, see Cheat modes); Create VMC on First Launch (was OR2, in PR #842, see Game Launching); out-of-bounds reads checked against the real media size (was U3, from upstream PR #1763, in PR #840); in-game reset without the VBLANK interrupt (was U4, from upstream PR #1762, in PR #841, see In-Game Reset); and animated 3D save icons (was OR1, in PR #843, see Artwork Settings). IDs are not reused.
  • wOPL's config format: wOPL moved to libconfig. RiptOPL reads and writes both formats, so files the two loaders share, such as an app's title.cfg, keep working in both.
  • Device names: RiptOPL accepts usb0: and ata0: style names for its boot path and ties each launch to its device by driver name, but reads files through massN:. wOPL uses the typed names throughout. That is a different approach rather than a missing feature, so it is not counted.
  • TAR archive status: the older survey note about CFG/cfg.tar is obsolete. RiptOPL rebuild/main now has one indexed/persistently cached TAR engine for ART/art.tar, CFG/cfg.tar and CHT/cht.tar. Consequently, sOPL's TAR work is not a current gap, and an archive claim is counted only when its implementation can be located in the audited source.

Source: fork-gaps.html @ 0a6143cd8956. Read on the documentation website.

Clone this wiki locally