RiptOPL DOCS

MMCE (SD2PSX / MemCard PRO2)

MMCE โ€” Memory Card Mass Storage Emulation โ€” lets OPL load PS2 games from an SD card inserted into a device (SD2PSX or MemCard PRO2) sitting in the PS2's memory-card slot. The protocol was created by bbsan2k; OPL's MMCE driver builds directly on that work. The device mounts as mmce0: or mmce1: and uses the same folder layout as USB.

โ„น MMCE vs MX4SIO
Both SD2PSX and MemCard PRO2 appear in OPL as MMCE devices (the bbsan2k protocol). MX4SIO is a different SD-in-memory-card-slot adapter that uses a separate OPL driver and mounts into the BDM massN: namespace alongside USB. If your adapter does not expose the MMCE protocol, see the USB / MX4SIO / iLink page instead.

Quick start

Prepare the SD card

Format the SD card as FAT32 or exFAT with an MBR partition table. Create the standard OPL folder tree at the card root: DVD/, CD/, ART/, CFG/, VMC/, THM/, CHT/, APPS/. Copy PS2 game ISOs into DVD/ (DVD-format titles) or CD/ (CD-format titles). Defragment game files โ€” ideally copy to PC, reformat, copy back. Up to 64 fragments per file are tolerated since OPL v1.2.0 beta rev1893, but contiguous files are strongly preferred for reliability.

Seat the device and boot

Insert the SD2PSX or MemCard PRO2 (with the SD card loaded) into a memory-card slot. Boot the PS2 and launch RiptOPL. OPL will detect the MMCE device automatically when MMCE Start Mode is set to Auto.

Enable MMCE in Device Settings

Open Device Settings from the RiptOPL main menu. Find the MMCE Start Mode option and set it to Auto (detects and mounts on boot) or Manual (shows the MMCE tab but only mounts when you navigate to it). Save settings. The MMCE Games tab appears in the game list once the device is detected.

Launch a game

Navigate to the MMCE Games tab, select a title, and press the confirm button. Cover art, per-game settings, VMC, and cheats all work identically to USB.

Folder layout

MMCE uses the same folder structure as USB and other folder-based devices. OPL creates any missing folders automatically on first launch.

FolderContents
DVD/PS2 DVD-format game ISOs / ZSOs
CD/PS2 CD-format game ISOs / ZSOs
POPS/PS1 *.VCD files + POPSTARTER.ELF
ART/Cover art images
CFG/Per-game config files
VMC/Virtual memory card images
THM/Themes
CHT/Cheat files
APPS/Homebrew ELFs
LNG/Language packs

The device prefix is mmce0:/ (slot 0) or mmce1:/ (slot 1). In conf_apps.cfg, reference ELFs on the MMCE card as mmce:APPS/MYAPP.ELF.

Device Settings

All MMCE options live in Device Settings (the consolidated hub reached from the RiptOPL main menu). The MMCE section is near the bottom of that page under the MMCE Settings heading.

MMCE Start Mode

Controls when OPL loads the MMCE driver and shows the MMCE Games tab.

ValueBehaviour
OffMMCE driver not loaded; no MMCE tab.
ManualTab is shown; driver loads when you navigate to the MMCE tab for the first time. Default.
AutoDriver loads at boot and the tab is shown immediately if a device is detected.

MMCE Slot

Selects which memory-card slot the MMCE device occupies.

ValueMeaning
0Memory-card slot 1 (port 2 internally); fixed.
1Memory-card slot 2 (port 3 internally); fixed.
AutoOPL probes both slots and uses the first one that responds. Default.

MMCE Prefix Path

An optional sub-path appended after the device root before OPL looks for game folders. Useful when your SD card serves multiple purposes and you want to keep OPL files in a subdirectory โ€” for example, setting the prefix to OPL causes OPL to look for games in mmce0:/OPL/DVD/ instead of mmce0:/DVD/. Leave blank (the default) to use the root of the SD card.

IGR Bootcard Slot(s)

MMCE devices support In-Game Reset (IGR) โ€” they can send a "switch to bootcard" command to the device on reset, allowing you to return to your boot exploit (e.g. FMCB) rather than the PS2 BIOS when you press the reset button inside a game.

The IGR Bootcard Slot(s) setting controls which slot receives the IGR command when the console resets.

ValueBehaviour
NONENo IGR command sent on reset (MMCE IGR disabled).
0Send the switch-to-bootcard command to slot 0 (memory-card slot 1) on reset.
1Send the switch-to-bootcard command to slot 1 (memory-card slot 2) on reset.
BOTHSend the command to both slots on reset. Default (3 internally).
โ„น IGR only works when MMCE mode is enabled
The MMCE IGR module (mmceigr.irx) is loaded alongside the MMCE driver on reset whenever IGR Bootcard Slot(s) is set to anything other than NONE. If MMCE Start Mode is Off but you still want IGR, set the Slot(s) value โ€” OPL will load the MMCE driver at launch specifically to support it.

Advanced MMCE Settings

These settings tune the low-level timing and locking behaviour of the MMCE driver. The defaults (all 0 / OFF) are correct for the vast majority of SD2PSX and MemCard PRO2 hardware. Adjust them only if you are experiencing instability or timeouts.

Wait Cycles after /ACK low

Extra wait cycles inserted after the MMCE /ACK line goes low, giving slower SD cards or cards with marginal signal quality more time to settle before the driver continues. Values: 0 (default) through 5. Lower values may improve performance but can cause instabilities; increase if you see read errors or hangs.

Use Timeout Alarms

When ON, the driver uses hardware alarm interrupts to implement MMCE operation timeouts. When OFF (the default), timeouts are handled without alarms โ€” which may marginally improve performance, but means a genuine MMCE timeout can result in a hard freeze rather than a graceful error. Turn this ON if your card occasionally hangs to convert those freezes into recoverable timeout errors.

PS1 games on MMCE

MMCE supports the PS1 VCD view exactly like USB. Place *.VCD files and POPSTARTER.ELF in the POPS/ folder on the SD card. Press L3 on the MMCE Games tab to switch between the PS2 game list and the PS1 VCD list. See PS1 Games (VCD) for the full setup walkthrough, including the Default game view lock and cover-art fallback chain.

MMCE is also a supported BDMA source for the exFAT POPSTARTER equip (BDMA Mode โ†’ MMCE (exFAT)), meaning POPSTARTER can read BDMA module files from the MMCE card when you use an exFAT-formatted SD.

Neutrino on MMCE

Per-game Neutrino is fully supported for games stored on MMCE. When a game's Loader Core is set to Neutrino, OPL hands the launch to neutrino.elf. Neutrino itself can be stored on the MMCE card at mmce0:/neutrino/neutrino.elf (or mmce1:/) โ€” select mmce0 or mmce1 in the Neutrino ELF Path device picker under General Settings. Auto does not search MMCE โ€” it only probes mc0: and mc1: โ€” so a neutrino.elf stored on an MMCE card requires picking mmce0 or mmce1 explicitly.

โ„น USBExtreme (.ul) and ZSO on MMCE
USBExtreme multi-chunk format (ul.*) and ZSO compressed images are both supported on MMCE, subject to the same rules as USB. ZSO is only compatible with OPL's built-in core โ€” Neutrino cannot launch ZSO files. See ZSO Format for details.

Notes & tips

What is the MMCE protocol and how does it differ from MX4SIO?

MMCE (Memory Card Mass Storage Emulation) is a protocol created by bbsan2k for SD-card adapters that plug into the PS2's memory-card slot. The device presents itself as a mass-storage device to a dedicated IOP driver (mmcedrv.irx) using a custom command set that OPL speaks natively. The SD2PSX and MemCard PRO2 both implement this protocol.

MX4SIO is a different, older SD-in-memory-card adapter (four-bit SPI) that is driven by a BDM block device module and mounts into the massN: namespace shared with USB and iLink. The two protocols are entirely distinct โ€” each requires its own driver, and the device you own determines which one to enable in OPL.

Why does OPL probe MMCE before BDM during config load?

The config-discovery order in RiptOPL checks both memory cards first (mc0/mc1), then the device OPL booted from (only if it booted from BDM or an APA HDD), then MMCE, then BDM (USB, MX4SIO, iLink), then exFAT (BDM) HDD, then APA HDD. MMCE is tried before BDM because in practice users who boot from an MMCE card want their config found there, and MMCE devices tend to respond quickly. If no config is found on any device, OPL falls back to defaults and creates a new config on the first save.