An opinionated Open PS2 Loader fork — aiming to be the "definitive build."
Based on Open PS2 Loader · Copyright 2013, Ifcaro & jimmikaelkael
Licensed under Academic Free License version 3.0
Review the LICENSE file for further details.
What is RiptOPL? A downstream fork of Open PS2 Loader with a built-in cover-art Coverflow theme (default), a Favourites tab, per-game Neutrino external-core launching, a consolidated Device Settings hub, DualSense support, and ready-to-use opinionated defaults. Its settings live in their own
settings_riptopl.cfgso they never collide with official OPL or wOPL installed on the same memory card — while artwork, themes, VMCs and favourites stay shared. See This Fork's Additions. For the canonical project, use ps2homebrew/Open-PS2-Loader.
📖 Full documentation & guides: https://nathanneurotic.github.io/Open-PS2-Loader/ — a complete, searchable docs site covering every storage backend, the Neutrino core, PS1/VCD, the Theme Engine (with worked examples and an annotated sample theme), a full settings reference, and troubleshooting.
- Introduction · Quick Start · Major Features Overview · Releases · How to Use · USB/MMCE/MX4SIO/iLink · SMB · HDD · APPS · Cheats · NBD Server · ZSO Format · PS3 BC · Frequent Issues
Open PS2 Loader (OPL) is a 100% Open source game and application loader for the PS2 and PS3 units. Major capabilities include GSM video mode fixes, Virtual Memory Cards (VMC), PS2RD cheats, DS3/DS4 pad emulation, themes, and homebrew app launching.
It supports six categories of devices:
- USB mass storage devices;
- MMCE (Memory Card Mass Storage protocol devices);
- MX4SIO (SD card connected to memory card port via adapter);
- iLink (SBP2 compliant storage devices via IEEE 1394);
- SMBv1 shares;
- ATA/IDE HDDs, including internal exFAT configurations (MBR/GPT).
Plus an optional network-block-device boot (UDPBD / UDPFS, via Neutrino) that streams games from a PC over the LAN as their own game list — the network protocol defaults to Off; the first protocol you pick in Device Settings comes up live. (Network stacks share the one adapter and stay loaded for the whole boot, so switching away from a loaded protocol still needs a restart — OPL says so when it applies.) See This Fork's Additions.
All of the devices mentioned above support multiple file formats, including:
- ISO;
- ZSO (Compressed ISO);
- USB Extreme (ul);
- Homebrews (Apps) in ELF format;
- HDDs support the HDLoader format.
Note
OPL is developed continuously - anyone can contribute improvements to the project due to its open-source nature.
You can visit the Open PS2 Loader forum at:
https://www.psx-place.com/forums/open-ps2-loader-opl.77/
You can report compatibility game problems at:
https://www.psx-place.com/threads/open-ps2-loader-game-bug-reports.19401/
For an updated compatibility list, you can visit the OPL-CL site at:
http://sx.sytes.net/oplcl/games.aspx
- A PlayStation 2 or backward-compatible PlayStation 3.
- One storage option: USB drive, MMCE or MX4SIO SD setup, iLink storage, SMB network share, or internal HDD (APA/PFS or exFAT).
- A RiptOPL build (
RIPTOPL.ELF) — a taggedv*release for stability, or therollingpre-release for the latest features. - Optional: network access (recommended for SMB and remote file management).
- Download a RiptOPL build (tagged
v*orrolling) from the Releases page. - Copy the
RIPTOPL.ELFfile to your launch method (FMCB, FHDB, or equivalent). - Prepare your storage with the expected OPL folders:
DVD,CD,CFG,ART,VMC, and other mode-specific directories as needed. - Open OPL settings and enable the device mode you plan to use.
- Launch one test game, then save settings so OPL reuses your configuration.
For detailed setup steps, jump to the README sections for USB/MMCE/MX4SIO/iLink, SMB, HDD, APPS, and Frequent Issues.
This section is a fast feature map to improve discoverability of core OPL capabilities and reduce setup friction for first-time and returning users.
- MMCE support: OPL supports MMCE devices using the Memory Card Mass Storage protocol for SD-based loading through the Memory Card slot.
- MX4SIO support: OPL supports MX4SIO adapters for SD-based loading through the Memory Card slot. See the USB/MMCE/MX4SIO/iLink section for filesystem and layout guidance.
- Internal HDD exFAT support: the internal ATA HDD can be loaded as exFAT — mounted through the Block Device Manager (BDMAssault / "BDMA") into the same
massN:namespace as USB/MX4SIO — in addition to APA/PFS, including GPT partitioning for large disks, for PS2 and PS1 (POPSTARTER) games. See the HDD section for formatting, the BDMA equip, and fragmentation guidance. - Themes: Place theme assets in the
THMfolder, then select and apply themes from OPL settings. This fork ships a built-in<Coverflow>cover-carousel theme (the default) — see the Theme Engine reference to author your own themes. - Cheats / PS2RD: OPL supports PS2RD
.chtcheat files from theCHTfolder, with both auto-apply and launch-time selection modes. - Pad emulation (DS3/DS4): On any build with PADEMU (the default), a DualShock 3 or DualShock 4 plugged into the console's USB port can navigate the OPL menu right away, with nothing to enable first. To play games with it, turn on Pad Emulator under Settings, then Controller Settings (globally, or per game via Game Settings). One caveat: pad emulation shares the SIO2 bus with MX4SIO SD-card loading, so running both can cause a game to hang on a black screen; leave Pad Emulator off if you boot from an MX4SIO card.
- GSM (video mode handling): Builds that include GSM allow game video mode handling/overrides for display compatibility.
- VMC (Virtual Memory Cards): Create and use VMC images (8MB to 64MB) via the
VMCfolder and per-game options. - Per-game settings workflow: Highlight a game, open Game Settings, adjust options (such as compatibility modes, cheats, GSM, PADEMU, and VMC), then save so settings persist per title.
- App launching (APPS + config methods): OPL can launch homebrew ELFs using either
conf_apps.cfgentries or per-apptitle.cfgmetadata inAPPSsubfolders.
This build layers several features on top of upstream OPL:
<Coverflow>theme (built-in, and the default): a centered cover-art carousel for the game/app list, with an alpha-faded reflection, animated scrolling, a configurable cover count, and aspect-correct covers in both 4:3 and widescreen. Tune it live under Coverflow Settings (shown while the Coverflow theme is active). Authoring details and every theme value live in the Theme Engine reference.- Per-device theme placement (
devices=): themes can position the device icon, the games list and the button hints differently per device page (e.g. pin the MMCE icon top-right while every other page keeps the shared spot). Adddevices=usb,hdd,…to aMenuIcon,ItemsListorHintTextblock; the unfiltered element automatically stands down on the pages a filtered one covers. Existing themes are untouched. See Theme Engine reference §5. - Cover-art
.tararchive (opt-in): keep all of a device's covers in a single uncompressedART/art.tar(entries named<GAMEID>_<suffix>.png; VCD entries first use the filename without.VCD, or the displayedPP.<name>/__.<name>install name, then fall back to a parsed PS1 ID) instead of thousands of loose files. Enable Cover Art .tar Archive under Display Settings (default off); when on, each cover is read from the archive and falls back to the loose.pngwhen it isn't there, so the two coexist. A smallart_cache.binindex written beside the archive lets later boots skip the re-scan. The format matches wOPL/sOPL art packs, so existing.tarpacks work unchanged. - Favourites tab: press R3 on any game to star it; a virtual Favourites page
(alongside the device tabs, switched on in Device Settings) gathers your starred games
from every device into one list, and a star marks favourited titles everywhere. Favourites
are stored in a shared
favourites.bin, and RiptOPL will import an existing uOPL / wOPL favourites file if it finds one — so your favourites carry over from those builds. - Folder browsing (opt-in): turn on Browse Folders in Game List in Settings to have
subdirectories inside your
CD/DVDfolders appear as browsable entries (grouped at the top of the list, shown with a trailing/). Select a folder to open it, and press the cancel button to go back up — a breadcrumb in the page title shows where you are. Each folder view is just the normal game list, so covers, favourites, coverflow and per-game settings all work inside folders. Works on USB / MX4SIO / iLink / internal-BDM, MMCE and UDPFS-Files. Left off, a flat library looks and behaves exactly as before. - Controller vibration in the menus (opt-in): turn on Controller Vibration in Menus in Settings for a little haptic tap as you move around — a light tick when the cursor moves, a slightly firmer bump on confirm / cancel / notifications, and one when OPL finishes booting and the menu is ready. Needs a DualShock in analog mode (a digital-only or clone pad simply won't buzz); DS3/DS4/DS5 pads are supported on builds with pad emulation. Left off, nothing changes.
- Neutrino external core (per-game): hand a game off to an external
neutrino.elfinstead of OPL's built-in core, chosen per title, with custom launch flags you can set globally and per-game. See docs/NEUTRINO.md. - UDPBD network boot (Neutrino): stream games from a PC over the LAN as a network block
device — they show up as a UDPBD Games list with full covers and per-game settings, just
like a local drive. UDPBD launches via Neutrino, is mutually exclusive with SMB (they share
the one network adapter), and needs a static PS2 IP (the default is
192.168.1.10); the fork's network protocol defaults to Off — pick UDPFS or UDPBD in Device Settings and it loads live (a restart is only needed to switch away from a protocol already loaded). Run it from the PS2 Servers all-in-one PC launcher. See the network-boot section of docs/NEUTRINO.md. - UDPFS network boot (Neutrino): a newer network transport (Neutrino's UDPRDMA) offered
alongside UDPBD. The Network Protocol picker under Device Settings offers Off / SMB /
UDPFS / UDPBD; UDPFS launches via
-bsd=udpfsbdwith a bundledbsd-udpfsbd.toml. Use the PS2 Servers all-in-one PC launcher for UDPFS, SMB and UDPBD; advanced users can run pcm720/udpfsd directly. Same static-IP and SMB-exclusivity rules as UDPBD. - PS1 games via POPSTARTER (VCD view): press L3 on a device page to switch between your
PS2 discs and a list of PS1
*.VCDgames on the same device — it's a view, not a separate tab. A Default game view setting (Both / ISO / VCD, default Both) can lock a page to one type, and Favourites follow the active view. PS1 titles boot through POPSTARTER only (never OPL's core, never Neutrino — the Loader Core selector is inert for them). Works on USB / MMCE / MX4SIO / iLink / SMB and the internal HDD — both APA (exact__.POPS[0-9]?containers plusPP.<name>/__.<name>one-game partitions containingIMAGE0.VCD) and exFAT (BDMA; PS1 games inmassN:/POPS/). See docs/VCD.md. - Core-aware per-game settings: the per-game screen adapts to the selected Loader Core —
under Neutrino it greys the panels Neutrino ignores (GSM, Cheats, PADEMU, OSD Language and the
OPL-only compat modes) and offers a structured Neutrino Video picker (Off / 240p / 480p /
1080i) plus a Neutrino-only Mode 7 (
-gc=7). See docs/NEUTRINO.md. - Device Settings hub: the old "Settings" page is now General Settings, and a new Device Settings page consolidates the per-device options, cache sizes, Block-Devices (BDM) settings, all MMCE settings, the network-boot controls (the UDPBD/UDPFS toggle + the Net Boot Protocol picker, interlocked with SMB), and the Favourites tab toggle in one place.
- DualSense / DualShock 5 (USB): optional controller support — grab a ready-made
RIPTOPL-<version>-<SDK>-ds5.ELF(one per SDK flavour) from the rolling release, or build withmake DUALSENSE=1. - Experimental 1080p GSM mode: a re-added forced-1080p video mode (progressive
1920×1080) lives only in a dedicated
RIPTOPL-<version>-PS2DEVLATESTSDK-1080p.ELFasset (latest-SDK flavour only) so the hardware-unvalidated raster code never touches a mainline build. Selecting it in the per-game GSM picker requires clearing a three-step confirmation; if your display can't sync it, the Triangle + Cross boot combo forces safe 480p. Build your own withmake GSM1080P=1. - Ready-to-use defaults: a fresh install boots with sensible options already enabled — widescreen, cover art, notifications, sound effects + boot sound, USB, delete/rename, and the PS2 logo, with the device tabs in Manual mode. Video mode stays Auto. Change any of it under Settings.
- Private settings, shared data: RiptOPL saves its master config as
settings_riptopl.cfg(auto-migrated from the olderconf_riptopl.cfg; notconf_opl.cfg), so it can sit on the same memory card as official OPL or wOPL without either build clobbering the other's settings. Everything else under theOPL/folder — artwork, themes, VMCs, per-game configs, and favourites — stays shared between builds.
This fork stands entirely on the shoulders of the PS2 homebrew community. None of this would exist without the ps2homebrew team and their many years of open-source work on Open PS2 Loader and the PS2SDK — kept free, open, and readable so that people like us can study it, learn from it, and build on it. Every feature in this fork began as their code and their ideas. We are deeply grateful that this work was shared openly; it is the only reason a fork like this is even possible.
RiptOPL is a direct agglomeration of the wider OPL family, bringing together features, code, and ideas from rickgaiser's OPL, neutrino, sOPL, uOPL, wOPL, OPL DB, POPSLoader, OPL RetroGEM ID by CosmicScale, nhddl, Modulo-R1, and official OPL.
With special and sincere thanks to:
- Wolf3s and KrahJohlito — the driving force behind uOPL / wOPL, where much of this fork's modern functionality originated. The Neutrino external-core loader and the Coverflow and Favourites interfaces are all reimplementations of features they designed and pioneered together. We learned an enormous amount reading their code, and this fork is as much a tribute to it as anything else. Thank you both.
- bbsan2k — for the MMCE (Memory Card Mass Storage) protocol that makes SD-via-memory-card loading through the PS2's memory-card slot possible. OPL's MMCE support builds directly on it.
- saildot4k — for BDMA-ATA (exFAT internal-HDD block-device support), and the fixes, feedback, and oversight that shaped this fork's block-device work. A big piece of getting it right.
- eliminator1403 — for dedicated testing, bug reports, and real-hardware feedback that has repeatedly caught issues and shaped fixes across this fork. Invaluable QA.
- Berion — for the artwork and theme design that has shaped how OPL looks for years. The visual language this fork builds on owes a great deal to that craft.
- AdityaKumar7209 — whose Modulo-R1 project inspired this fork's folder browsing in the game list. We didn't use their code, but the idea of navigating game subfolders came from seeing it there — thank you for the spark.
- Ifcaro and jimmikaelkael — the original Open PS2 Loader authors — and every contributor across OPL's long history.
RiptOPL inherits the work of everyone who built Open PS2 Loader over the years. They are credited in full in CREDITS, and named here so this fork never obscures whose work it is built on:
- Core developers — Ifcaro, volca, jimmikaelkael, polo35, izdubar, hominem.te.esse and SP193, with the original main code based on Polo's HD Project.
- Contributing developers — BatRastard, crazyc, dlanor, doctorxyz, reprep, belek666, Maximus32 and misfire.
- Module authors — Eugene Plotnikov (SMSUTILS / SMSMAP / SMSTCPIP), Marcus R. Brown (DEV9 / ATAD and the derived cdvdman code), bbsan2k (MMCE), icyson55 (OPL-CL / network update), Eric Young (the DES algorithm in the SMB code), and the ps2dev team (USB / Network / PS2HDD modules from the PS2SDK).
- CI/CD — fjtrujy (Docker + GitHub Actions).
- UI & artwork — Berion.
- Quality assurance — RandQalan, yoshi314, EP, LocalH, lee4, El_Patas, ShaolinAssassin, algol, gledson999, jolek and zero35.
Enormous thanks to the testers who run every rolling build on real consoles and file the reports that shape the fixes — eliminator1403, lucaslmgv, AndrewBento, AcidReach, bodvenomz, nuno6573 and Blade1984.
Heartfelt thanks to Akilluminati47 for generously funding this fork's development — a kindness that keeps the rolling builds coming and is deeply appreciated.
If you want the canonical, actively-maintained project, it lives at ps2homebrew/Open-PS2-Loader — please support it. This fork is a downstream labor of love, not a replacement, and it exists only because that upstream work is open for everyone to learn from.
RiptOPL ships one full-feature build — GSM video-mode handling, in-game
screenshots (IGS), DS3/DS4 pad emulation (PADEMU), VMC, PS2RD cheats and parental
controls are all included in the standard ELF (no upstream-style per-feature variants).
DualSense / DualShock 5 (USB) support is the one optional extra: the rolling release ships it
prebuilt as named RIPTOPL-<version>-<SDK>-ds5.ELF assets (one per SDK flavour), or build your
own with make DUALSENSE=1. One further experimental variant — a forced-1080p GSM mode
(hardware-unvalidated) — ships only as RIPTOPL-<version>-PS2DEVLATESTSDK-1080p.ELF
(latest-SDK flavour only, gated behind a three-step in-GUI confirmation), or make GSM1080P=1.
Every other asset, including the -ds5 loaders and the VARIANTS zip, is 1080p-free.
There are two release channels:
| Channel | What it is |
|---|---|
Rolling pre-release (the rolling tag) |
Continuously rebuilt from master on every push — the bleeding edge. Each build publishes a full installable package zip (RIPTOPL-<rel>-<sha>.zip, containing all three labeled SDK loader folders + the bundled Neutrino core + a PS2-Servers.url shortcut), the bare loader ELFs, a source snapshot, SHA256SUMS.txt, and a language pack. May be unstable. |
Tagged releases (v* tags) |
Curated, known-good versions cut from a tag. Use these for stability. |
See ROLLING_RELEASE.md for exactly what the rolling release contains and how to pull it.
Which rolling build? The rolling zip ships three loader ELFs that differ only by build toolchain — the RiptOPL code in each is identical. Recommended in order of reliability:
APP_RIPTOPL-WOPLSDK/(#1) orAPP_RIPTOPL-PS2MAXSDK/(#2), both built on pinned, known-stable SDK snapshots that boot reliably.APP_RIPTOPL-PS2DEVLATESTSDK/(#3) tracks the bleeding-edgeps2dev:latestSDK, which moves constantly and can intermittently fail to boot on some consoles — it exists mainly to catch upstream SDK regressions early. See Which build should I use?.
🗄️ Permanent archive (MEGA): the GitHub
rollingpre-release only ever holds the latest build — every push overwrites it. So every rolling build is also archived permanently to MEGA as one self-contained zip of the installable payload (all three loader ELFs, the installable package zip, the source snapshot,SHA256SUMS.txt, and the IRX manifests — the large VARIANTS and DEBUG diagnostic bundles stay on the GitHub release only). Click the MEGA badge at the top of this README — or browse the archive here — to fetch any past build. Each is stored immutably underRiptOPL/Rolling/<version>/run_<number>/, so nothing is ever overwritten.
OPL uses the following directory tree structure across all supported devices — USB, MMCE, MX4SIO, iLink, SMB, and the internal HDD:
| Folder | Description | Modes |
|---|---|---|
CD |
for games on CD media - i.e. blue-bottom discs | All folder devices¹ |
DVD |
for DVD5 and DVD9 images (if filesystem supports +4gb files) | All folder devices¹ |
VMC |
Virtual Memory Card images (headline save feature): stored in VMC/, typically 8MB to 64MB, then assigned per game via Game Settings |
all |
CFG |
for saving per-game configuration files | all |
ART |
for game art images | all |
THM |
for themes support | all |
LNG |
for translation support | all |
CHT |
for cheats files | all |
APPS |
for ELF files | all |
¹ Folder-based devices — USB, MMCE, MX4SIO, iLink, SMB, and the exFAT (BDM) HDD — keep games as files in the CD/DVD folders. The APA/PFS HDD instead stores games as HDLoader partitions (no CD/DVD folders), while still using CFG/ART/VMC/THM/CHT/LNG/APPS on the configured OPL data partition (+OPL root by default, or __common/OPL/ for the legacy layout).
Per-game settings are stored per title in the CFG context. Typical use cases include compatibility toggles, video options (GSM), cheat toggles, and assigning a VMC file from the VMC folder to that game.
OPL will automatically create the above directory structure the first time you launch it and enable your favorite device.
For HDDs formatted with the APA partition scheme, OPL will read hdd0:__common/OPL/conf_hdd.cfg for the config entry hdd_partition to use as your OPL partition.
If not found a config file, a 128Mb +OPL partition will be created. You can edit the config if you wish to use/create a different partition.
All partitions created by OPL will be 128Mb (it is not recommended to enlarge partitions as it will break LBAs, instead remove and recreate manually with uLaunchELF at a larger size if needed).
HDDs are also able to be formatted as exFAT to avoid the 2TB limitation. Please see below in the HDD section for more details on this configuration.
Supported file systems: exFAT (since OPL v1.2.0 beta - rev1880) and FAT32, both use the MBR partition table. This section applies to MMCE and MX4SIO SD setups, USB storage, and iLink SBP2 storage.
Game files should be ideally defragmented either file by file or by whole drive.
NOTE: Partial file fragmentation is supported (up to 64 fragments!) since OPL v1.2.0 beta - rev1893
If you choose to use the FAT32 file system, games larger than 4gb must use USBExtreme format (see OPLUtil or USBUtil programs).
We do not recommend using any defrag programs. The best way for defragmenting - copy all files to pc, format USB, copy all files back. Repeat it once you faced defragmenting problem again.
For loading games by SMB protocol, you need to share a folder (ex: PS2SMB) on the host machine or NAS device and make sure that it has full read and write permissions. USB Advance/Extreme format is optional - *.ISO images are supported using the folder structure above.
RiptOPL network defaults: the network protocol selector defaults to UDPFS — switch it to SMB under Device Settings before the NET Games tab appears. Network Config ships static defaults (PS2
192.168.1.10, PC192.168.1.100, sharegames, userguest); adjust them to your LAN. The default SMB Port is1111— a non-privileged port (>1024), so a server binds it without admin/root. Network Config now opens with advanced options on, so the Port field (and ETH link mode) are editable immediately. If Windows 10/11 has disabled SMB1/NTLMv1, use the PS2 Servers all-in-one launcher instead of Windows' SMB service. Choose its SMBv1 server, then set RiptOPL's IP, port, share and credentials to the values the launcher displays (PS2 Servers currently uses port 1445 by default, so change RiptOPL's saved 1111 when prompted). Release packages includePS2-Servers.urlas a direct shortcut to the repository.
Both PS2 HDD types are off by default in RiptOPL — enable the one you use under Device Settings. For PS2, 48-bit LBA internal HDDs are supported. The HDD can be formatted as:
- APA partitioning with PFS filesystem (up to 2TB)
- OPL will create the
+OPLpartition on the HDD. To avoid this, you can create a text file at the locationhdd0:__common:pfs:OPL/conf_hdd.txtthat contains the preferred partition name (for example__common).
- OPL will create the
- MBR partitioning (up to 2TB) or GPT partitioning (unlimited) with the exFAT filesystem
- Enable BDM HDD in Device Settings. The exFAT HDD then mounts through the Block Device Manager (BDMAssault / "BDMA") into the shared
massN:namespace — the same path as USB/MX4SIO — and appears as an HDD (exFAT) games list with the HDD icon. - Files should be added contiguously or synchronously to avoid fragmentation. For example, drag and drop files one at a time, or ensure that files are added sequentially.
- When formatting drives for the exFAT filesystem, please make sure the
Allocation unit sizeis set toDefault. - PS1 games: PS1
*.VCDtitles in the HDD'sPOPS/folder list under the L3 VCD view like any other device. To boot them, equip BDMA Mode → HDD (exFAT) in General Settings so POPSTARTER can read the exFAT volume. See docs/VCD.md.
- Enable BDM HDD in Device Settings. The exFAT HDD then mounts through the Block Device Manager (BDMAssault / "BDMA") into the shared
There are two supported methods for adding apps to OPL. Keep both available and choose the one that fits your setup:
- Use legacy
conf_apps.cfgwhen you want one central list and/or apps stored anywhere on supported devices. - Prefer folder-based
title.cfgwhen you want each app self-contained insideAPPS/<APP_FOLDER>/.
Each entry uses Display Name=DevicePathToELF:
- Left side: the name shown in the OPL app list.
- Right side: full device/path to the ELF.
To begin:
- Create a text file called
conf_apps.cfg. - In this file, put the name you want to appear in the list of apps, followed by the "=" sign.
- Add the device prefix and ELF path (for example
mass:for USB/MX4SIO/iLink/exFAT-HDD,mmce:for MMCE,mc:for the Memory Card, orhdd0:/pfs0:for the APA HDD), then the file path to the ELF.
NOTE: Enter the exact path and exact letter case. OPL is case-sensitive.
The structure should look like this:
My App Name=mass:APPS/MYAPP.ELF
let's use OPL itself as an example:
OPL=mass:APPS/RIPTOPL.ELF
With this method, ELFs do not need to be in APPS, but keeping them there can make your setup easier to manage.
The conf_apps.cfg file must be in the OPL folder on your Memory Card,
or at the root of the storage device.
This method uses one title.cfg per app folder, with two required lines:
title=for the app name shown in OPL.boot=for the ELF filename to launch.
To begin:
- In
APPS, create a folder for the app. - Put the ELF in that folder, and create a text file named
title.cfgin the same folder. - In that file, add the following instructions:
title=My App Name
boot=MYAPP.ELF
Using OPL again as an example:
title=Open PS2 Loader
boot=RIPTOPL.ELF
In this method, both the ELF and title.cfg must be in the same folder under APPS.
NOTE: In both methods, pay close attention to file names because, as already mentioned, OPL is case-sensitive.
OPL accepts .cht files in PS2RD format. Each cheat file corresponds to a specific game and must be stored in the CHT directory on your device.
Cheats are structured as hexadecimal codes, with proper headers as descriptions to identify their function.
You can activate cheats via OPL's graphical interface. Navigate to a games settings, enable cheats and select the desired mode.
-
Auto Select Cheats:
This mode will enable and apply all cheat codes in your.chtfile to your game automatically. -
Select Game Cheats:
When enabled a cheat selection menu will appear when you launch a game. You can navigate the menu and disable undesired cheats for this launch session. Master Codes cannot be disabled as they are required for any other cheats to be applied.
OPL now uses an NBD server to share the internal hard drive, instead of HDL server. NBD is formally documented and developed as a collaborative open standard.
The current implementation of the server is based on lwNBD, go there to contribute on the NBD code itself.
The main advantage of using NBD is that the client will expose the drive to your operating system in a similar way as a directly attached drive. This means that any utility that worked with the drive when it was directly attached should work the same way with NBD.
OPL currently only supports exporting (sharing out) the PS2's drive.
Version note: feature availability and behavior may differ by build date/tag.
You can use hdl-dump, pfs-shell, or even directly edit the disk in a hex editor.
For example, to use hdl_dump to install a game to the HDD:
- Connect with your chosen client (OS specific)
- Run
hdl_dump inject_dvd ps2/nbd "Test Game" ./TEST.ISO - Disconnect the client.
To use the NBD server in OPL:
- Use the latest release or pre-release from the Releases page if you need newer NBD fixes.
- Ensure OPL is configured with an IP address (either static or DHCP).
- Open the menu and select "Start NBD server". Once it's ready, it should update the screen to say "NBD Server running..."
- Now you can connect with any of the following NBD clients.
Supported: Linux, Windows with WSL and custom kernel
nbd-client requires nbd kernel support. If it isn't loaded,
sudo modprobe nbd will do.
list available export:
nbd-client -l 192.168.1.45connect:
nbd-client 192.168.1.45 /dev/nbd1disconnect:
nbd-client -d /dev/nbd1You'll generally need sudo to run these commands in root or add your user to the right group usually "disk".
Supported: Linux, Windows with WSL2
list available export:
nbdinfo --list nbd://192.168.1.45connect:
mkdir ps2
nbdfuse ps2/ nbd://192.168.1.45 &disconnect:
umount ps2Supported: Windows
WNBD client. Install, reboot, open elevated (with Administrator rights) PowerShell
connect:
wnbd-client.exe map hdd0 192.168.1.22disconnect:
wnbd-client.exe unmap hdd0Not supported.
As of version 1.2.0, compressed ISO files in ZSO format is supported by OPL.
To handle ZSO files, a python script (ziso.py) is included in the pc folder of this repository. It requires Python 3 and the LZ4 library:
pip install lz4To compress an ISO file to ZSO:
python ziso.py -c 2 "input.iso" "output.zso"To decompress a ZSO back to the original ISO:
python ziso.py -c 0 "input.zso" "output.iso"You can copy ZSO files to the same folder as your ISOs and they will be detected by OPL. To install onto internal HDD, you can use the latest version of HDL-Dump.
Currently, supported only PS3 Backward Compatible (BC) versions. So only COK-001 and COK-002/COK-002W boards are supported. USB, SMB, HDD modes are supported.
To run OPL, you need an entry point for running PS2 titles. You can use everything (Swapmagic PS2, for example), but custom firmware with the latest Cobra is preferred. Note: only CFW supports HDD mode.
Open PS2 Loader needs the latest PS2SDK
Since 05/07/2021 every OPL build dispatched to the release section of this repository will be uploaded to a mega account. You can access the archive by clicking the mega badge on top of this readme
- Symptom: OPL hangs on the logo or a grey screen during startup.
- Likely cause: OPL is trying to load an incompatible or corrupted config file from an older build.
- Recovery steps: Hold
STARTwhile OPL initializes to skip config loading, open settings, then save a fresh configuration. - Verification: Reboot OPL normally (without holding buttons) and confirm it reaches the game list/settings screen without freezing.
- Symptom: Game boot stops on a white screen or fails to continue loading.
- Likely cause: The game image is fragmented so OPL cannot read it reliably, or the ISO/ZSO/UL image is corrupted/incomplete.
- Recovery steps: Check the game file integrity (size/hash against known-good dump if available), recopy the game image, and ensure files are contiguous (copy all files off the device, reformat, then copy files back in order).
- Verification: Relaunch the same title and confirm it passes the white screen and reaches the game's intro/menu.
- Symptom: No image is shown after launching OPL (black/blank screen on TV).
- Likely cause: A forced video mode was saved that your display does not support (commonly from GSM video mode/scaling compatibility settings).
- Recovery steps: Hold
Triangle + Crosswhile OPL initializes to force the video mode to480p progressive— a mode virtually every display syncs (Auto resolves to interlaced 480i/576i, which is exactly what some modern displays/upscalers can't lock onto). Once you can see the UI, pick your preferred mode under Settings. - Verification: Start OPL again normally and confirm the interface appears and remains visible.
For GSM/video-mode mistakes, use the same recovery combo above: hold Triangle + Cross at boot to force 480p for OPL's own UI (per-game GSM overrides only apply at game launch and don't affect the OPL menu).
If your issue is still unresolved, report it here: https://www.psx-place.com/threads/open-ps2-loader-game-bug-reports.19401/.
