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.
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.
| Folder | Contents |
|---|---|
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.
| Value | Behaviour |
|---|---|
| Off | MMCE driver not loaded; no MMCE tab. |
| Manual | Tab is shown; driver loads when you navigate to the MMCE tab for the first time. Default. |
| Auto | Driver 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.
| Value | Meaning |
|---|---|
| 0 | Memory-card slot 1 (port 2 internally); fixed. |
| 1 | Memory-card slot 2 (port 3 internally); fixed. |
| Auto | OPL 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.
| Value | Behaviour |
|---|---|
| NONE | No IGR command sent on reset (MMCE IGR disabled). |
| 0 | Send the switch-to-bootcard command to slot 0 (memory-card slot 1) on reset. |
| 1 | Send the switch-to-bootcard command to slot 1 (memory-card slot 2) on reset. |
| BOTH | Send the command to both slots on reset. Default (3 internally). |
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.
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
- MMCE and the built-in memory-card emulation on the same device share the memory-card slot. If your SD2PSX or MemCard PRO2 is also acting as a virtual memory card, OPL can still use it as a game source โ the drivers co-exist.
- Game files should be defragmented. The easiest method: copy all files to PC, reformat the SD card, copy all files back. Up to 64 fragments per file are supported, but performance degrades with fragmentation.
- If games larger than 4 GB must fit on a FAT32-formatted card, use the USBExtreme split format (tools: OPLUtil, USBUtil).
- Cover art, per-game settings, VMC, and cheats work identically to USB โ OPL looks in the same relative folders under the MMCE root (or the Prefix Path subdirectory if set).
- The config file (
settings_riptopl.cfg) can be stored on the MMCE card. OPL probes MMCE before BDM devices during config discovery, so an MMCE-resident config is found reliably. - MMCE is not MX4SIO. If your adapter uses the MX4SIO driver (rather than the bbsan2k MMCE protocol),
it mounts as
massN:via BDM โ enable it with the USB/MX4SIO toggle in Device Settings, not the MMCE Start Mode. See USB / MX4SIO / iLink.
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.