PS2 Modding & Homebrew

Assembled 2026 · by n0g

SceneStackHardwareSpeeds StorageCompatibilityEmulatorsHomebrew SD CardSetupPitfallsCheat sheet DownloadsResources
Start here — 4 steps to a running setup: 1. Boot exploit on a memory card (FMCB / FunTuna guide) → 2. pick storage (HDD or SD) → 3. install a loader (OPL / PS2-Launcher) → 4. drop ISOs in DVD/. Then per-game polish: modes, widescreen, GSM.
UNDERSTAND

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.

LayerUseNotes
BootFMCB 1.966 · FunTuna · FHDB · FreeDVDBoot (slim) FMCB is the default; FunTuna covers newer slims; FHDB boots from HDD with no card.
LoaderOPL (rolling) · PS2-Launcher (redesign) · wOPL (coverflow) OPL = safe default. PS2-Launcher = most visually redesigned. wOPL = middle ground.
UtilitieswLaunchELF / uLaunchELF 4.42x File manager, HDD format, memory-card ops. OPL has a built-in file manager too.
StorageSATA HDD · MX4SIO microSD · USB stick · SMB share All readable simultaneously; one unified game list.
ExtrasPOPStarter (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.

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.

Memory cards

8MB cards now mainly hold the boot exploit (FMCB) and saves.

Display

480i composite is rough on flat panels.

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.

MethodSpeedPlaysLimits
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
BUILD

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.

  1. Format exFAT — MBR (≤2TB) or GPT. Allocation unit = Default.
  2. Create DVD/ (+CD/ for blue-bottom games).
  3. Copy ISOs in, one at a time (sequential = no fragmentation).
  4. 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.

  1. Format via wLaunchELF/uLE → HDD Manager (APA, 48-bit LBA) or WinHiip on PC.
  2. OPL creates its 128MB +OPL partition for settings/covers.
  3. 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:

  1. Extract installed games to ISO on a PC: hdl_dump dump hdd0 "Game" game.iso (or browse partitions with pfsshell).
  2. Back up the +OPL partition (covers, CFG/, VMC/) to USB via wLaunchELF.
  3. Reformat the drive exFAT on a PC — Default allocation unit, MBR (≤2TB) or GPT (larger).
  4. 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

MX4SIO

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.

SystemAppStatusVerdict
NESFCEUmm-PS2Maintained (Jul 2026), fullspeed, multitap + turboRecommended
NES + SNESSNESticleReviveActive (Aug 2026) — legendary SNESticle revived for PS2, MIT; bundles InfoNES core — two systems, one ELFBest pick
SNES (alt)SNESStationOld classic, runs with frameskipFallback
GenesispgenOld (Generator-based); playable, datedOptional
NeoGeo CDneocdps2Old, nicheNiche
GB / GBC—No viable maintained emulatorSkip
GBA / N64—Beyond the PS2's reachSkip
PS1POPStarter + POPSSony's own PS1 emulator, redirected to load from storageBest-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

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.

WhatWhy it's interestingWhere
Quake 2 (port)Full native port, actively developed (Aug 2026); needs original game filesgithub.com/glampert/quake2-ps2
Doom (port)SDL Doom with WAD support; ps2oom variant adds music/SFX/savesgithub.com/lukaszdk/ps2doom · github.com/Arawn-Davies/ps2oom
Quake (port)Classic full port; modernization fork active 2026github.com/ps2homebrew/quake1_ps2 · github.com/alekzswerr-jpg/quake1-ps2
OpenTunaFMCB-style boot exploit alternativegithub.com/ps2homebrew/opentuna-installer
MechaPwnRegion-free PS1/DVD playback exploitgithub.com/MechaResearch/MechaPwn
PS2IdentIdentify console model/region/BIOSgithub.com/ps2homebrew/PS2Ident
HDDChecker / PS2HDDTesterInternal HDD health diagnosticsgithub.com/ps2homebrew/HDDChecker · /PS2HDDTester
ps2ftpdFTP server on the console — move files over the networkgithub.com/ps2homebrew/ps2ftpd
HDLGameInstallerInstall games to an APA HDD from the consolegithub.com/ps2homebrew/HDLGameInstaller
PS1VModeNegFix video mode on imported PS1 gamesgithub.com/ps2homebrew/PS1VModeNeg
PFS-BatchKit-ManagerPC GUI: manage APA/PFS hard drivesgithub.com/GDX-X/PFS-BatchKit-Manager
playstation-disc-burnerBurn ESR-patched PS2/PS1 backups on Linuxgithub.com/alex-free/playstation-disc-burner
PS2RD cheat packs.cht files for OPL's cheat engine; packs circulate on PSX-Place / archive.orgpsx-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

FileRoleMust-have
OPNPS2LD.ELF (OPL or wOPL)Loader (stock or coverflow fork)Yes
PS2-Launcher-4.0.0.ELFModern frontend — covers, multitap, USB padsYes
BOOT.ELF (wLaunchELF)File manager, formatting, backupsYes
SNESticleReviveSNES + NES emulatorYes
FCEUmm-PS2.ELFNES emulatorYes
POPStarter (on MC)PS1 games via Sony's POPSOptional
pgen / neocdps2Genesis / NeoGeo CDOptional
SMS Media PlayerMusic / video playbackOptional
.ISO / .ZSO gamesThe gamesYes

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

  1. Drive into the adapter; adapter into the PS2 bay.
  2. FMCB card (pre-made, or installer + donor console); FunTuna for picky slims.
  3. Format exFAT on PC (Route A) or APA via uLE (Route B).
  4. Add games: copy ISOs to DVD/, or hdl_dump over NBD, or OPL DVD installer.
  5. Copy loader ELF to the card (BOOT/); launch from FMCB.
  6. Enable HDD device in the loader — games appear.
  7. Per-game: covers, VMC, widescreen, GSM.

MX4SIO path (no HDD)

  1. Format microSD exFAT (Default allocation) or FAT32.
  2. Create DVD/ (+CD/); drop ISOs; ZSO to save space.
  3. FMCB in slot 1, MX4SIO in slot 2; launch the loader.
  4. Settings → USB/MX4SIO device → MX4SIO. Games list fills.
  5. 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.

REFERENCE

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

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.

ItemFileSource
OPLOPNPS2LD.ELF / OPNPS2LD.7z (Release variant) github.com/ps2homebrew/Open-PS2-Loader/releases · mirror Mega
PS2-LauncherPS2-Launcher-4.0.0.ELF github.com/Irfanlesnar/PS2-Launcher/releases · direct · covers: Manager
wOPLWOPNPS2LD.ELF / WOPNPS2LD.7z github.com/ps2homebrew/wOPL/releases · mirror Mega
wLaunchELFBOOT.ELF (rolling) github.com/ps2homebrew/wLaunchELF/releases
SNESticleReviveSNESticle_Revive_v1.0.4.elf (.packed for memory-card) github.com/ReyFxck/SNESticleRevive/releases
FCEUmm-PS2fceu-packed.*.elf (rolling latest) github.com/ps2homebrew/Fceumm-PS2/releases
SMS Media PlayerSMS.Version.2.9.Rev.4.elf.zip github.com/ps2homebrew/SMS/releases
FreeMcBoot (FMCB)FMCB-1966.7z (installer) github.com/israpps/FreeMcBoot-Installer/releases
FunTunaFunTuna-Fork_Installer.ELF + FunTuna.7z github.com/israpps/Funtuna-Fork/releases
POPStarter + POPSPOPS.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 artPSBBN art DB; PS2 keep-case cover scans PSBBN art DB · archive.org covers · more on archive.org
Disc-image archivesGame 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

Compatibility

Modding & HDD guides

Boot exploits