OrbitPS2 Manager โ a modern, cross-platform way to manage your PlayStation OPL game collection.
OrbitPS2 Manager is an open-source, cross-platform desktop application for organizing your PlayStation 2 (and PlayStation 1) game library for use with Open PS2 Loader (OPL).
It was created to fill the gap left by OPLManager, which lacks macOS and Linux support. The goal isn't to replace OPLManager, but to offer an alternative โ one that's modern, intuitive, and built with technologies familiar to JavaScript developers.
Built with Electron + Angular, styled with Tailwind CSS & daisyUI. Cross-platform: Windows, macOS, and Linux.
- Manage PS2 (DVD & CD), PS1, and APPS (homebrew) all in one place
- System tabs with live counts, plus a search box, sort (by title or game ID), and grid / list view modes
- Click any game for a rich details view โ cover, screenshots, region, format, size, and metadata
- At-a-glance library stats: total games mounted and per-system counts
- Recognizes UL (split / fragmented) games
- PS2 DVD โ import
ISO/ZSOimages - PS2 CD โ convert
CUE/BIN(including multi-track) to a singleISO - PS1 โ convert
CUE/BIN/ZIPtoVCD, with a choice of launcher style:- POPStarter (default) โ auto-generates a POPStarter launcher under
APPS/ - RiptOPL / POPSLoader โ drops the VCD straight into
POPS//VCD/with no separate launcher
- POPStarter (default) โ auto-generates a POPStarter launcher under
- APPS โ import homebrew
ELFexecutables with a custom title - Automatic game-ID detection by scanning the disc image (no need to look it up manually)
- Queued batch imports with live progress for long operations
- Download cover, icon, and screenshot art (
COV/ICO/SCR) for PS1 & PS2 - Fetch art for a single game or for your entire library in one click
- Sourced from the PSX / PS2 OPL Art Database
- Compress PS2
ISOโZSO(LZ4) to save disk space โ single game or bulk the whole library - Decompress a
ZSOback toISOfor a single game - Convert a PS1
VCDback toBIN/CUEfor a single game - Optionally delete the original file after compression/decompression
- Edit OPL per-game settings (
CFG/<GAMEID>.cfg) directly from the UI - Set the display title, toggle compatibility modes, and assign VMC slots
- Unknown / OPL-written keys are preserved
- Create, list, and delete OPL-compatible virtual memory cards (8 / 16 / 32 / 64 MB)
- Invalid-file detection for malformed or wrongly-named files
- Bulk auto-correction โ discover game IDs and rename in one pass, with optional artwork download
- Rename to convention โ switch between the legacy (
GAMEID.Title.iso) and new OPL naming styles - PS1 launcher style conversion โ switch existing PS1 games between POPStarter and RiptOPL/POPSLoader layouts, per game or library-wide
- Safe delete โ removes the game image, its artwork, and any paired PS1 launcher
- Theme picker โ OrbitPS2 Dark, Light, follow-system, or the original Legacy look
- Auto-reconnect to your last library on launch
- Real-time logs viewer with verbose mode
- Built-in update check
- Window-close guard while an import is in progress
Grab the latest build from the Releases page.
On Arch Linux you can also use the AUR binary or AUR git packages (thanks to u/m0tic).
- Download the
.exeinstaller (or the portable.zipif you'd rather not install). - Run it โ the installer walks you through setup; the
.zipjust needs extracting, then runOrbitPS2Manager.exe. - If SmartScreen appears, click "More info" โ "Run anyway" (the app is unsigned but 100% safe).
- Download the
.dmgfor your architecture:- arm64 (Apple Silicon โ recommended and tested)
- x64 (Intel Macs)
- Open the
.dmgand drag OrbitPS2Manager to your Applications folder. - Because the app is unsigned (but 100% safe), macOS quarantines it. Remove the quarantine flag by running this in your terminal:
xattr -dr com.apple.quarantine /Applications/OrbitPS2Manager.app
- Run the app.
- Download the
.AppImage,.deb, or.zip(whichever suits your distro). - For the AppImage: make it executable and run it. For the
.deb: install it with your package manager. For the.zip: extract and run theOrbitPS2Managerbinary.
On first launch you'll be asked to mount a directory โ this is your OPL root: an internal folder or an external / USB drive that OPL reads from.
- Click Mount Directory and pick the folder.
- If it isn't already an OPL layout, the app offers to create the required folders (
CD,DVD,VCD,POPS,APPS,ART,CFG,VMC) for you. - Enable Reconnect on launch in Settings and the app will re-mount this drive automatically next time it starts.
Everything else in the app operates on the currently mounted directory. Switch drives anytime by mounting a different folder.
The Library page is your home base.
- System tabs (PlayStation 2 / PlayStation 1 / Apps) filter the view; each shows a live count.
- Use the search box, the sort dropdown (Name or Game ID, AโZ / ZโA), and the grid / list toggle to find things fast.
- Click a game to open its details view โ cover art, screenshots, region, format, size, and any available metadata.
- Each game's โฎ menu exposes per-game actions: Fetch artwork, Game settings, Convert to ZSO / Convert to ISO (PS2), Convert to BIN/CUE (PS1), Convert launcher (PS1, POPStarter โท RiptOPL/POPSLoader), Rename, and Delete.
- The โฎ menu in the top-right runs library-wide actions (see below).
Go to the Import page and follow the three steps:
-
Pick the disc type:
Type Accepts What happens PS2 DVD .iso/.zsoCopied into DVD/PS2 CD .bin/.cueConverted to a single .isoinCD/PS1 / POPS .cue/.zipConverted to .vcd, plus a launcher (see below)App / Homebrew .elfCopied into its own APPS/folder with atitle.cfglauncher -
Set options:
- Download artwork after import โ grabs cover/icon/screenshot automatically.
- (PS2 DVD) Use new OPL naming โ saves as
<Title>.isoinstead ofSLES_123.45.<Title>.iso; OPL reads the game ID from the disc'sSYSTEM.CNF. - (PS1) Launcher style:
- POPStarter (default) โ auto-generates a POPStarter launcher in
APPS/; the game shows up under the Apps tab. - RiptOPL / POPSLoader โ puts the
.vcdstraight intoPOPS//VCD/with no separate launcher; the game shows up under the PS1 tab.
- POPStarter (default) โ auto-generates a POPStarter launcher in
- (PS1, POPStarter style only) POPStarter prefix โ
XX.for USB / MX4SIO, orSB.for an SMB network share.
-
Select files & review โ add one or many files. The app auto-detects the game ID and name by reading each disc; if something can't be resolved it's flagged so you can fill it in manually. Click Import and watch the queued progress.
- One game: use the game's โฎ โ Fetch artwork.
- Whole library: use the top-right โฎ โ Download artwork for all games.
Art comes from the PSX / PS2 OPL Art Database and lands in the ART/ folder as GAMEID_COV / _ICO / _SCR.
ZSO is an LZ4-compressed disc image that saves space while staying OPL-compatible.
- One game: โฎ โ Convert to ZSO.
- Whole library: top-right โฎ โ Convert all PS2 ISOs to ZSO.
You can choose to delete the original .iso after a successful conversion.
Need to go the other way? Per-game actions let you undo a conversion:
- โฎ โ Convert to ISO โ decompresses a PS2
.zsoback to a plain.iso. - โฎ โ Convert to BIN/CUE โ converts a PS1
.vcdback to.bin/.cue.
These "convert back" actions are per-game only โ there's no library-wide bulk version.
Open โฎ โ Game settings on any PS2 game (or a PS1 launcher) to edit its OPL .cfg:
- Display title โ the name OPL shows instead of the filename.
- Compatibility modes โ toggle OPL's per-game compatibility flags.
- VMC slots โ assign a virtual memory card to Slot 1 / Slot 2.
Any other keys already in the file (DMA settings, etc.) are preserved untouched.
On the Memory Cards page you can create a blank VMC (8 / 16 / 32 / 64 MB), see all existing cards, and delete ones you no longer need. New cards are formatted by OPL on first use. Assign them to games from each game's settings dialog.
The Invalid Files page lists images OPL wouldn't recognise (usually a non-standard filename).
- Rename Tool (per file) โ enter the game ID and title manually, optionally fetching artwork.
- Bulk Auto-Correction โ reads every invalid disc image (ISO directly, ZSO on the fly) to discover its game ID, then renames everything into the convention you choose (new
<Title>.isoor old<GAMEID>.<Title>.iso), optionally fetching artwork as it goes.
Switch a single game (โฎ โ Rename to convention) or your whole library (top-right โฎ โ Rename all games to convention) between:
- New โ
<Title>.iso(OPL reads the ID from the disc) - Old โ
<GAMEID>.<Title>.iso(maximally compatible with older OPL builds)
If you change your mind after importing, you can convert existing PS1 games between launcher styles:
- One game: โฎ โ Convert launcher (on a PS1 entry or its POPStarter launcher).
- Whole library: top-right โฎ โ Convert All PS1 games to RiptOPL/POPSLoader (from the Apps tab) or Convert All PS1 games to OPL/Popstarter (from the PS1 tab).
- Settings โ Appearance โ pick a Theme: OrbitPS2 Dark, OrbitPS2 Light, OrbitPS2 (follows your system), or the original Legacy look.
- Settings โ Library โ toggle Reconnect on launch and see your last mounted directory.
- Settings โ Logging โ enable Verbose logging.
- Logs โ a real-time, in-app log viewer; turn on verbose mode when reporting an issue.
- Updates โ Settings โ Check for updates compares your version against the latest GitHub release.
OrbitPS2 Manager reads and writes the standard OPL directory structure:
OPL_ROOT/
โโโ CD/ โ PS2 CD-format games (.iso / .zso)
โโโ DVD/ โ PS2 DVD-format games (.iso / .zso)
โโโ VCD/ โ PS1 games (.vcd) โ RiptOPL/POPSLoader-style, launcher-free
โโโ POPS/ โ PS1 discs (.vcd) and POPStarter launchers (.elf) + POPS VMCs
โโโ APPS/ โ Homebrew apps (one folder each, with title.cfg)
โโโ ART/ โ Artwork (GAMEID_COV.png, GAMEID_ICO.png, GAMEID_SCR.png)
โโโ CFG/ โ Per-game OPL settings (GAMEID.cfg)
โโโ VMC/ โ Virtual memory cards (.bin)
Game IDs follow the PS2 format XXXX_###.## (e.g. SLUS_123.45); the region is derived from the prefix.
This project is licensed under the GNU General Public License v3.0 โ see the LICENSE file for details.
Contributions are welcome! Here's how you can help improve OrbitPS2 Manager:
- Bug Reports โ found an issue? Open a bug report with detailed steps to reproduce.
- Feature Requests โ have an idea for improvement? Submit a feature request.
- Code Contributions โ submit pull requests for bug fixes or new features.
- Testing โ test new releases and provide feedback.
After cloning the repo, get a working dev environment in one command.
A setup script detects your OS, installs the required tooling (Node.js, Git, and binutils for Linux .deb packaging), and installs the npm dependencies for both the Electron root project and the Angular renderer.
macOS / Linux
./scripts/setup.shWindows (PowerShell)
powershell -ExecutionPolicy Bypass -File scripts/setup.ps1If you already have Node.js installed, you can also just run:
npm run setupThe script uses your platform's package manager โ Homebrew on macOS; apt / dnf / pacman / zypper on Linux; winget (or Chocolatey) on Windows. Install the package manager first if you don't have one.
Prefer to do it yourself? Install these prerequisites, then install dependencies in both projects:
-
Node.js 20.19+ (22 LTS or 24 recommended) and npm โ https://nodejs.org
-
Git โ https://git-scm.com
-
(Linux packaging only) binutils for the GNU
artool, required to build the.deb.- macOS:
brew install binutils - Debian/Ubuntu:
sudo apt-get install binutils
- macOS:
-
Install dependencies for both the root and Angular projects:
npm install # Electron main process (repo root) cd angular && npm install && cd .. # Angular renderer
npm run app:serve # full dev mode: Angular dev server + Electron with hot-reload
npm start # build once and launch
npm test # Electron main-process unit tests (`src/services`)
cd angular && ng test # run the Angular unit testsnpm run package:win # Windows (NSIS installer + portable ZIP)
npm run package:mac # macOS (DMG, x64 + arm64)
npm run package:linux # Linux (DEB, AppImage, ZIP)- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and commit them with clear messages.
- Push to your fork and submit a pull request.
- Ensure your code follows the project's coding standards.