PS2 Modding & Homebrew
DVD/. Then per-game polish:
modes, widescreen, GSM.1. The scene
Changes in the last decade that matter for a new setup.
OPL is actively developed
Stalled at v0.9.x in 2016, revived under the ps2homebrew org. Ships rolling v1.2.0-Beta builds (Aug 2026: rev ~2245). Latest entry on GitHub Releases or the official Mega mirror.
PS2-Launcher — visual redesign
OPL-based launcher rebuilt as a modern console-like UI (v4.0.0, Aug 2026, single ELF). Unified game list across all devices, built-in cover downloads, virtual multitap (4 players, no hub), wired DualSense/DS4/DS3/Xbox support. Full MX4SIO + exFAT HDD support.
wOPL — coverflow GUI fork
Community continuation of OPL ("Double Unofficial OPL"). Coverflow-style GUI, built-in 4:3/16:9 themes, favorites. Drop-in ELF, same folder structure.
exFAT support
No FAT32 4GB wall. OPL/wOPL/PS2-Launcher read exFAT with plain .ISO files.
Hard drives no longer need the HDLoader/APA format.
New storage paths
MX4SIO (SD in the memory-card slot) and iLink/FireWire joined USB, SMB and the internal HDD. Cheap SATA network adapters replaced official IDE units.
Boot options
FMCB 1.966 (classic) · FunTuna (maintained successor) · FHDB (HDD, no card) · FreeDVDBoot (slims) · MechaPwn (region-free).
Community hubs: psx-place forums · consolemods.org wiki · OPL Discord. Compatibility list: OPL-CL.
2. The stack
Layer by layer: boot exploit → loader → utilities → storage.
| Layer | Use | Notes |
|---|---|---|
| Boot | FMCB 1.966 · FunTuna · FHDB · FreeDVDBoot (slim) | FMCB is the default; FunTuna covers newer slims; FHDB boots from HDD with no card. |
| Loader | OPL (rolling) · PS2-Launcher (redesign) · wOPL (coverflow) | OPL = safe default. PS2-Launcher = most visually redesigned. wOPL = middle ground. |
| Utilities | wLaunchELF / uLaunchELF 4.42x | File manager, HDD format, memory-card ops. OPL has a built-in file manager too. |
| Storage | SATA HDD · MX4SIO microSD · USB stick · SMB share | All readable simultaneously; one unified game list. |
| Extras | POPStarter (PS1) · PS2RD cheats · themes · covers · GSM | Drop-in via the folders OPL auto-creates. |
OPL release variants: the bundle ships several builds. Use the default
Release — includes GSM, screenshots, PADEMU, VMC, PS2RD cheats, parental controls.
Variants: IGS, PADEMU, RTL, DTL_T10000 (dev-kit).
wOPL ships the same way.
3. Hardware
SATA HDD adapter
Third-party SATA network adapters fit any fat PS2 bay. SATA is plug-and-play — no jumpers.
- Drives: ≤2TB on APA format; 1–2TB sweet spot. exFAT+GPT exceeds 2TB.
- 3.5" uses the adapter's power connector; 2.5" works with the SATA loom.
- "No HDD found" → reseat, check power, verify drive on a PC.
MX4SIO SD adapter
SD card in the memory-card slot. Not USB 1.1 speed: roughly 2–4 MB/s, 2–3× faster than the PS2's USB port.
- Native support in all three loaders.
- Any decent microSD, 64–512GB; exFAT or FAT32.
- Use slot 2; slot 1 keeps the FMCB card.
Memory cards
8MB cards now mainly hold the boot exploit (FMCB) and saves.
- VMC: per-game virtual memory cards on storage, unlimited save slots.
- SD2PSX / MemCard Pro: memory-card replacements with hundreds of virtual slots; SD2PSX also acts as an MX4SIO drive.
Display
480i composite is rough on flat panels.
- Component cables (or RGB SCART) + GSM to force 480p/1080i per game.
- No component port? OSSC / RetroTINK / GBS-C line-doubler.
4. Loading speeds
Throughput decides compatibility. Benchmark: the console's own 4x DVD drive. Bars are proportional to 33 MB/s (HDD max); the amber dashed line is the disc-speed benchmark (~4–5.3 MB/s). Games crossing it play full speed, MX4SIO sits just under it (occasional FMV stutter), USB is far below (chugs). Figures are community-measured ballparks.
| Method | Speed | Plays | Limits |
|---|---|---|---|
| Internal HDD | 16–33 MB/s | Essentially everything, incl. DVD9 dumps | 2TB cap on APA; exFAT/GPT lifts it |
| SMB (Ethernet) | 5–11 MB/s | Essentially everything | SMB1 only; needs a share host |
| DVD drive 4x (benchmark) | 4–5.3 MB/s | — | The bar every game was engineered for |
| MX4SIO (SD) | 2–4 MB/s | Most of the library | Occasional FMV stutter; some games need mode flags |
| USB 1.1 | ~1 MB/s | Light-streaming games only | FMV-heavy chugs; DVD9 needs split/.ul on FAT32 |
5. Hard drive setup
Route A — exFAT
Format on a PC, drop ISOs on. No APA, no hdl_dump. The path for all new setups.
- Format exFAT — MBR (≤2TB) or GPT. Allocation unit = Default.
- Create
DVD/(+CD/for blue-bottom games). - Copy ISOs in, one at a time (sequential = no fragmentation).
- Enable HDD device in OPL — games appear.
ZSO compression works here, ~40% smaller. Games are plain files — add, remove, reorder from a PC.
Route B — APA / HDLoader
Pre-exFAT method. Still fully supported, fine to keep for an old drive — not what a fresh setup should use. No new features land here; the 2TB cap never lifted.
- Format via wLaunchELF/uLE → HDD Manager (APA, 48-bit LBA) or WinHiip on PC.
- OPL creates its 128MB
+OPLpartition for settings/covers. - Install games via OPL's DVD installer, or PC-side hdl_dump (net or direct).
Old HDLoader installs read fine. Prefer Route A for anything new.
Upgrading a legacy APA drive to exFAT — technically a reformat, not a migration; there is no in-place converter. The games are still yours; you re-copy them as files:
- Extract installed games to ISO on a PC:
hdl_dump dump hdd0 "Game" game.iso(or browse partitions withpfsshell). - Back up the
+OPLpartition (covers,CFG/,VMC/) to USB via wLaunchELF. - Reformat the drive exFAT on a PC — Default allocation unit, MBR (≤2TB) or GPT (larger).
- Recreate
DVD/; copy the ISOs back, sequentially. From then on, adds are drag-and-drop.
Guides: OPL user guide — HDD mode · ConsoleMods — hard drive compatibility · ConsoleMods — hdl_dump · PSX-Place (search: "exFAT HDD")
DVD9 games >4GB (God of War, GT4, Killzone…): trivial on exFAT or HDD. FAT32
USB is the only painful case — split ISO (.1/.2) or convert to .ul.
ZSO sidesteps it.
6. USB / MX4SIO compatibility
Real memory cards hold saves only (8MB). MX4SIO is storage, and a good one.
USB 1.1
- Fine: turn-based RPGs, 2D platformers, puzzle, beat-'em-ups, fighting games, light racers, PS1-era ports.
- Chugs: FMV-heavy or streaming — FFX, MGS2/3, God of War, GT4 replays, Jak/Ratchet.
- Rule: heavy pre-rendered video = USB hurts.
MX4SIO
- 2–3× USB: most of the library plays; heavy FMV stutters occasionally.
- Some titles need mode flags in OPL's per-game settings.
- Fast microSD + ZSO smooths things further.
Check per-game: OPL-CL covers HDD/USB/ETH only — it has no MX4SIO column. MX4SIO status is tracked on the PSX-Place MX4SIO thread (which links the community compatibility spreadsheet) and the ConsoleMods PS2 wiki. HDD/SMB remain the "just works" tier.
7. Emulators
NES and SNES are usable. Everything else is a no-go except PS1, which runs on Sony's own emulator.
| System | App | Status | Verdict |
|---|---|---|---|
| NES | FCEUmm-PS2 | Maintained (Jul 2026), fullspeed, multitap + turbo | Recommended |
| NES + SNES | SNESticleRevive | Active (Aug 2026) — legendary SNESticle revived for PS2, MIT; bundles InfoNES core — two systems, one ELF | Best pick |
| SNES (alt) | SNESStation | Old classic, runs with frameskip | Fallback |
| Genesis | pgen | Old (Generator-based); playable, dated | Optional |
| NeoGeo CD | neocdps2 | Old, niche | Niche |
| GB / GBC | — | No viable maintained emulator | Skip |
| GBA / N64 | — | Beyond the PS2's reach | Skip |
| PS1 | POPStarter + POPS | Sony's own PS1 emulator, redirected to load from storage | Best-supported |
Why
Emotion Engine (300MHz, 32MB) brute-forces 16-bit consoles; GBA/N64 need more headroom. PS1 is the exception because POPS is official Sony emulation, tuned for this hardware.
PS1 via POPStarter
- Install POPStarter to a memory card; OPL adds PS1 games to its list.
- Convert PS1 ISOs to
.VCD(POPS format); store inPOPS/on USB. - USB-centric traditionally; HDD forks exist. MX4SIO support unverified — check the PSX-Place thread.
Not emulation, but notable: Quake — full native port
(quake1_ps2); SMS Media Player — music/video playback.
8. More homebrew & mods
Worth checking out beyond the core stack. Several org tools are source-only — community binaries ship via PSX-Place threads or GitHub Actions builds.
| What | Why it's interesting | Where |
|---|---|---|
| Quake 2 (port) | Full native port, actively developed (Aug 2026); needs original game files | github.com/glampert/quake2-ps2 |
| Doom (port) | SDL Doom with WAD support; ps2oom variant adds music/SFX/saves | github.com/lukaszdk/ps2doom · github.com/Arawn-Davies/ps2oom |
| Quake (port) | Classic full port; modernization fork active 2026 | github.com/ps2homebrew/quake1_ps2 · github.com/alekzswerr-jpg/quake1-ps2 |
| OpenTuna | FMCB-style boot exploit alternative | github.com/ps2homebrew/opentuna-installer |
| MechaPwn | Region-free PS1/DVD playback exploit | github.com/MechaResearch/MechaPwn |
| PS2Ident | Identify console model/region/BIOS | github.com/ps2homebrew/PS2Ident |
| HDDChecker / PS2HDDTester | Internal HDD health diagnostics | github.com/ps2homebrew/HDDChecker · /PS2HDDTester |
| ps2ftpd | FTP server on the console — move files over the network | github.com/ps2homebrew/ps2ftpd |
| HDLGameInstaller | Install games to an APA HDD from the console | github.com/ps2homebrew/HDLGameInstaller |
| PS1VModeNeg | Fix video mode on imported PS1 games | github.com/ps2homebrew/PS1VModeNeg |
| PFS-BatchKit-Manager | PC GUI: manage APA/PFS hard drives | github.com/GDX-X/PFS-BatchKit-Manager |
| playstation-disc-burner | Burn ESR-patched PS2/PS1 backups on Linux | github.com/alex-free/playstation-disc-burner |
| PS2RD cheat packs | .cht files for OPL's cheat engine; packs circulate on PSX-Place / archive.org | psx-place.com (search "PS2RD") |
Widescreen patches and GSM are already built into the loaders (per-game toggles). MechaPwn is the modern region-unlock for imports.
9. SD card layout
One exFAT card does everything: games, apps, saves, emulation.
Format & folders
exFAT, allocation unit = Default. MBR or GPT. FAT32 only on ≤32GB cards.
SD root/ ├── DVD/ PS2 game ISOs/ZSO ├── CD/ blue-bottom CD games ├── APPS/ loader + emulators + tools (ELF files) ├── SNESticle/ emu config, covers, bgm ├── ROMS/ SNES + NES roms (mass0:/ROMS/) ├── POPS/ PS1 .VCD files for POPStarter └── ART/ CFG/ CHT/ LNG/ THM/ VMC/ (OPL auto-creates)
Emulators see the card as mass0:/mass1: — same namespace as USB.
File manifest
| File | Role | Must-have |
|---|---|---|
| OPNPS2LD.ELF (OPL or wOPL) | Loader (stock or coverflow fork) | Yes |
| PS2-Launcher-4.0.0.ELF | Modern frontend — covers, multitap, USB pads | Yes |
| BOOT.ELF (wLaunchELF) | File manager, formatting, backups | Yes |
| SNESticleRevive | SNES + NES emulator | Yes |
| FCEUmm-PS2.ELF | NES emulator | Yes |
| POPStarter (on MC) | PS1 games via Sony's POPS | Optional |
| pgen / neocdps2 | Genesis / NeoGeo CD | Optional |
| SMS Media Player | Music / video playback | Optional |
| .ISO / .ZSO games | The games | Yes |
10. Setup
Already modded (FMCB card)? You only need: (1) update the boot loader — run
FunTuna-Fork_Installer.ELF from the loader's Apps menu or uLE to refresh the memory card
(FunTuna keeps the same CNF-style menu); (2) put your loader (PS2-Launcher / OPL) + apps on the card;
(3) format + fill storage. To boot straight into a loader on power-on: in the bootloader CNF set
OSDSYS_auto_boot = "mass:/APPS/PS2-Launcher.ELF" (path to your ELF) plus a short
OSDSYS_auto_boot_delay — hold a button during the delay to fall back to the menu.
SATA HDD path
- Drive into the adapter; adapter into the PS2 bay.
- FMCB card (pre-made, or installer + donor console); FunTuna for picky slims.
- Format exFAT on PC (Route A) or APA via uLE (Route B).
- Add games: copy ISOs to
DVD/, or hdl_dump over NBD, or OPL DVD installer. - Copy loader ELF to the card (
BOOT/); launch from FMCB. - Enable HDD device in the loader — games appear.
- Per-game: covers, VMC, widescreen, GSM.
MX4SIO path (no HDD)
- Format microSD exFAT (Default allocation) or FAT32.
- Create
DVD/(+CD/); drop ISOs; ZSO to save space. - FMCB in slot 1, MX4SIO in slot 2; launch the loader.
- Settings → USB/MX4SIO device → MX4SIO. Games list fills.
- Stutter/hang → try mode flags, then the compat list.
SMB path (no adapter): share a folder (PS2SMB with
DVD/) over SMB1 from a PC, NAS or Pi. Modern Windows disables SMB1 — see pitfalls.
11. Pitfalls
Windows kills SMB1
Windows 10/11 disable SMB1; the PS2 needs it (or UDPBD/UDPFS). Enable "SMB 1.0/CIFS" in Features, use a
Linux/Pi share with nt1 min protocol, or run PS2-Servers (SMBv1/2/3 + UDPBD/UDPFS).
exFAT allocation unit
Must be Default. Custom cluster sizes break reads on some drives.
Fragmentation
OPL handles partial fragmentation but not heavy. No defraggers — copy off, reformat, copy back, one file at a time.
2TB wall
APA caps at 2TB (48-bit LBA). exFAT + GPT exceeds it.
"No HDD found"
Seating, SATA power, drive health on a PC, adapter/drive compatibility. Fat PS2s only — slims have no bay.
Case-sensitive paths
DVD, CD, HDD, ART — match names exactly.
Per-game, not global
GSM forcing and widescreen patches break some titles. Set per game.
Verify before blaming hardware
Rip discs cleanly (ISO). Check OPL-CL — many "broken" games just need a mode flag.
12. Cheat sheet
OPL folder tree
root/ ├── CD/ PS1 & blue-bottom CD games (ISO/ZSO) ├── DVD/ DVD games (ISO/ZSO) — the main folder ├── HDD/ games on HDD in exFAT mode ├── ART/ cover art (covers + backgrounds) ├── THM/ themes (incl. wOPL's <uOPL> & <uOPL-CF>) ├── LNG/ translations ├── CHT/ PS2RD cheat files ├── CFG/ per-game configs ├── VMC/ virtual memory cards (.vmc) └── APPS/ ELF apps (loader, uLE, emulators…)
Commands
# install to HDD over network: # 1) OPL: Settings → Start NBD server # 2) mount the drive, then: hdl_dump inject_dvd hdd0 "Game Name" ./game.iso # ISO → ZSO (PC). ziso.py ships in the OPL repo (pc/ziso.py). # Requires python3 + lz4: pip install lz4 (or: uv venv .venv && uv pip install lz4) # cd into the folder where the ISO sits, then: python ziso.py -c 2 "Amplitude (USA).iso" "Amplitude (USA).zso" python ziso.py -c 0 "Amplitude (USA).zso" "Amplitude (USA).iso" # Extract a PS2 7z into the current dir (cd where you want the ISO): cd /mnt/omega/PS2GAMES 7z x '/mnt/omega/games/Console/Sony/PS2/7z/Amplitude (USA).7z' # mount the PS2 HDD on Linux sudo modprobe nbd nbd-client 192.168.1.45 /dev/nbd1 # list: nbd-client -l <ip>
Rules
- HDD/SMB = max compatibility · MX4SIO = very good · USB = picky.
- exFAT + Default allocation + sequential copies.
- Per-game settings beat global settings.
- Check the compatibility list before blaming hardware.
13. Downloads
Every item from the SD card manifest, with sources. Links checked 2026-08-17. Loaders ship rolling releases — take the top (latest) entry on the releases page.
| Item | File | Source |
|---|---|---|
| OPL | OPNPS2LD.ELF / OPNPS2LD.7z (Release variant) |
github.com/ps2homebrew/Open-PS2-Loader/releases · mirror Mega |
| PS2-Launcher | PS2-Launcher-4.0.0.ELF |
github.com/Irfanlesnar/PS2-Launcher/releases · direct · covers: Manager |
| wOPL | WOPNPS2LD.ELF / WOPNPS2LD.7z |
github.com/ps2homebrew/wOPL/releases · mirror Mega |
| wLaunchELF | BOOT.ELF (rolling) |
github.com/ps2homebrew/wLaunchELF/releases |
| SNESticleRevive | SNESticle_Revive_v1.0.4.elf (.packed for memory-card) |
github.com/ReyFxck/SNESticleRevive/releases |
| FCEUmm-PS2 | fceu-packed.*.elf (rolling latest) |
github.com/ps2homebrew/Fceumm-PS2/releases |
| SMS Media Player | SMS.Version.2.9.Rev.4.elf.zip |
github.com/ps2homebrew/SMS/releases |
| FreeMcBoot (FMCB) | FMCB-1966.7z (installer) |
github.com/israpps/FreeMcBoot-Installer/releases |
| FunTuna | FunTuna-Fork_Installer.ELF + FunTuna.7z |
github.com/israpps/Funtuna-Fork/releases |
| POPStarter + POPS | POPS.binaries.7z |
github.com/AnimMouse/POPS-binaries · installer: PSX-Place thread (search "POPStarter") · mirrors: archive.org |
| pgen (Genesis) | Source only — no official binary | github.com/ps2homebrew/pgen · community builds: PSX-Place search "pgen" |
| neocdps2 (NeoGeo CD) | Source only — no official binary | github.com/ps2homebrew/neocdps2 |
| hdl-dump (PC) | hdl-dump-*.tar.gz; also extracts APA games to ISO |
github.com/ps2homebrew/hdl-dump/releases |
| pfsshell (PC) | Browse APA/PFS partitions | github.com/ps2homebrew/pfsshell (source) |
| PS2-Servers (PC) | Windows/Linux/macOS binaries | github.com/NathanNeurotic/PS2-Servers/releases |
| Tihwin (PC) | Split files / ul.cfg manager | github.com/developersu/Tihwin |
| OPL Linux toolbox (PC) | Linux library manager: covers, CFG, VMC | github.com/lucasonline0/opl-linux-toolbox |
| ziso.py (PC) | ISO ↔ ZSO compressor; ships in the OPL repo (pc/ziso.py); needs python3 + lz4 |
raw ziso.py → _pc-tools/ziso/ in PS2SD (already set up) |
| Cover art | PSBBN art DB; PS2 keep-case cover scans | PSBBN art DB · archive.org covers · more on archive.org |
| Disc-image archives | Game disc images for original hardware | vimm.net/vault/PS2 · r-roms.github.io/Sony/sony-playstation-2 |
Archive.org note: the service's search API was intermittent at compile time; the linked search URLs will surface community mirrors (POPStarter, OPL cover packs) when it's up.
14. Resources
Community
- PSX-Place OPL forum
- ConsoleMods PS2 wiki
- OPL Discord (link in OPL README)
Compatibility
- OPL-CL compatibility list
- PSX-Place game bug-report threads
Modding & HDD guides
- CheaperGamer — PS2 modding guide
- OPL user guide — HDD mode
- ConsoleMods — hard drive compatibility
- Getting started · game backups · hdl_dump
Boot exploits
- FreeDVDBoot: github.com/CTurt/FreeDVDBoot
- MechaPwn: github.com/MechaResearch/MechaPwn
- OpenTuna: ps2homebrew/opentuna-installer