Fork Feature Gaps
Features and fixes that other PS2 loaders, forks and launchers have and RiptOPL does not have yet. 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.
rebuild/main at
3f2e9b1d, and updated on 2026-09-15 when
PR #658 shipped three entries (see Notes).
Every entry has a short ID whose letter names its source (see Sources surveyed), so it can be
referenced in issues and chat. Entries in the Beyond game loading area are general-purpose tools from PS2
environments built on OPL, listed so the survey is complete.
Sources surveyed
| Code | Source | What it is | Gaps |
|---|---|---|---|
W | wOPL | The continuation of KrahJohlito's uOPL | 6 |
O | OPLattice | Grid themes, the SHELF interface and theme tooling | 15 |
U | Upstream OPL | Pull requests not yet merged into Open PS2 Loader | 6 |
B | BoliviaOS | A multifunction PS2 environment built on OPL | 7 |
P | PS2-Launcher | An OPL-based launcher with a console-style interface | 5 |
T | Project Titan | A PS2 system shell and application platform | 2 |
E | OPL-Evolution | An experimental OPL fork with a unified dashboard | 1 |
H | xeRAbora | RetroAchievements for real PS2 hardware | 1 |
R | RETROLauncher | A Lua launcher for retro emulators and PS2 games | 1 |
M | Modulo R1 | A Neutrino-based loader in beta | 1 |
L | Extended APA | An OPL build for internal HDDs larger than 2 TiB | 1 |
Nine more projects were checked and had nothing RiptOPL lacks — see Checked, nothing missing.
At a glance
All 46 entries in one list. Click a column heading to sort.
| ID | Feature | Area | Source | Type |
|---|---|---|---|---|
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 |
W4 | Disc art toggle without restart | Library & menu | wOPL | Feature |
W5 | Held scrolling stalls every ~29 seconds | Controllers & input | wOPL | Fix |
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 |
U1 | Per-game parental lock | Cheats, launching & network | Upstream OPL | Feature |
U2 | Remembered per-game cheat selections | Cheats, launching & network | Upstream OPL | Feature |
U3 | Disc size from the real media | Game compatibility | Upstream OPL | Fix |
U4 | In-game reset without the VBLANK interrupt | Game compatibility | Upstream OPL | Fix |
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 |
T1 | Graphics patches kept apart from cheats | Cheats, launching & network | Project Titan | Feature |
T2 | Installable app packages and runtime | Beyond game loading | Project Titan | Feature |
E1 | Controller, memory card, storage and network status | Library & menu | OPL-Evolution | Feature |
H1 | RetroAchievements pointer chains | RetroAchievements | xeRAbora | Feature |
R1 | Retro emulator ROM libraries | Beyond game loading | RETROLauncher | Feature |
M1 | Choose between several network servers | Cheats, launching & network | Modulo R1 | Optional |
L1 | APA HDDs over 2 TiB | Internal HDD | Extended APA | Not planned |
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 |
W4 | Disc art toggle without restart | An Enable Disc Art setting that takes effect immediately. RiptOPL has no disc art toggle. | PR #308 |
W5 | Held scrolling stalls every ~29 seconds Fix | The pad timer wraps roughly every 29 seconds; when it does, a held direction stops repeating until the button is released. | PR #308 |
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/ |
Upstream OPL pull requests
ps2homebrew/Open-PS2-Loader — RiptOPL is built on upstream's master branch, so the gaps here are pull requests not yet merged there.
| 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. | PR #1779 |
U2 | Remembered per-game cheat selections | Saves which optional cheats were enabled for each game, by cheat name, with master codes always on. | PR #1748 |
U3 | Disc size from the real media Fix | Out-of-bounds read checks use the image's real sector count instead of the ISO volume field, so discs mastered with a short volume (Zombie Zone, Demolition Girl) boot again. RiptOPL still reads the volume field. | PR #1763 |
U4 | In-game reset without the VBLANK interrupt Fix | Checks the in-game reset button combo from a timer instead of the VBLANK handler; titles that black-screened with the old hook boot, and in-game reset still works. | PR #1762 |
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. | 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.
| 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. | 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. | 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 |
Project Titan
sobecapaklebs-dev/project-titan-magenta-edition — a PS2 system shell and application platform whose game launching is one subsystem among many.
| 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/, and the selection is remembered per game. See Cheats for what RiptOPL reads today. | TITAN_GAME_PATCHES.md |
T2 | Installable app packages and runtime | Installable packages and an application runtime, so native apps run as part of the system instead of as separately launched ELFs. | README |
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
hacan359/xerabora — the PC client RiptOPL's
RetroAchievements build talks to. Its console code lives on hacan359's OPL fork,
branch ra.
| ID | Feature | What it does | Source |
|---|---|---|---|
H1 | RetroAchievements pointer chains | Achievements that read game memory through a pointer can unlock. Without it, they never trigger — 22 of 50 in one measured achievement set. | commit 0c5f61a3 |
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 |
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 |
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. Its open pull requests 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 | A fork of hacan359's xeRAbora with no changes of its own; the upstream change is H1. |
| 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. |
Notes
- 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 fromART/art.tar(Interface settings), cheats fromCHT/cht.tar, the<name>_show_runtheme 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 (PR #658): 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). 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:andata0:style names for its boot path and ties each launch to its device by driver name, but reads files throughmassN:. wOPL uses the typed names throughout. That is a different approach rather than a missing feature, so it is not counted. CFG/cfg.tar: wOPL's README lists it, but neither wOPL nor RiptOPL reads per-game configs from an archive, so it is not counted either.