POPStarter DOCS

Storage Backends

Where the POPS folder, VCDs and support modules live on each device — USB, internal HDD, SMB, plus the modern MMCE / MX4SIO / exFAT backends — and the launch methods and per-mode ELF prefixes.

Device & storage backend matrix

Where your VCDs can live and how the launcher reaches each device. Stock POPStarter ships USB / internal-HDD / SMB. In the POPSLoader fork, the BDMA Mode setting is the mass-storage device selectorFAT32 (plain USB), USBEXFAT (exFAT USB), MX4SIO, or MMCE — so BDMA is what lets you use exFAT USB and the other devices (MX4SIO, MMCE), not just exFAT. BDMA is required for every device except the internal HDD. Backends marked “untested” are wired as menu stubs but not yet hardware-verified. Click a header to sort.

BackendFilesystemHow it's reachedStatus
Internal HDDAPA / PFSnative (no BDMA)✅ Working
USBFAT32BDMA FAT32✅ Working
USB (exFAT)exFATBDMA USBEXFAT✅ Working
MX4SIOFAT32 / exFAT — SD via SIO2 slotBDMA MX4SIO✅ Working
MMCESD2PSX / MemCard PRO2BDMA MMCE✅ Working
Disc (DKWDRV)physical PS1 disc handofffork✅ Working
SMBnetwork sharePOPStarter core✅ core · ⚠ fork stub
HDD exFAT — BDM “ATA”exFAT on internal SATABDM (fork)⚠ Stub — untested
iLink (IEEE 1394)exFAT over FireWireBDM (fork)⚠ Stub — untested
UDPBDUDP block device — games streamed over Ethernet from a PC udpbd server (modern SMB alternative)BDM (fork)⚠ Stub — untested
UDPFSUDP network filesystem backendBDM (fork)⚠ Stub — untested
⚖ BDMA Mode is the device selector — and exFAT isn't native POPS
In the POPSLoader fork, BDMA Mode picks the mass-storage backend: FAT32 (plain USB, no special driver), USBEXFAT (exFAT USB), MX4SIO, or MMCE. Everything except the native APA/PFS internal HDD goes through BDMA — it loads the BDM Assault driver set, which is how the launcher reaches exFAT USB and the MX4SIO / MMCE devices. POPS itself still never reads an exFAT filesystem — BDMA presents the files to it. The HDD-exFAT “ATA”, iLink and UDPBD/UDPFS backends extend the same BDM mechanism but aren't hardware-tested yet. For large FAT32/exFAT USB drives, 32 KB or 64 KB allocation (cluster) size is the confirmed-working format.

📎 from the recovered USB Mode wiki page · merged across snapshots, primary 20170629123547

POPStarter for USB Device Storage Type


Requirements :

To use POPStarter with an external HDD or a flash disk, you have to find and download the compressed POPS file. This file is named “POPS_IOX.PAK”...

File name MD5 Description
POPS_IOX.PAK a625d0b3036823cdbf04a3c0e1648901 POPS.PAK with network modules embedded

. A software that allows you to convert your disc images to the POPS virtual CDROM format (such as CUE2POPS)
. A PS2 software that allows you to execute the POPStarter ELFs (such as uLaunchELF, or Free MC Boot), or a GUI to execute POPSTARTER.ELF by selecting the VCDs (such as uLE_kHn)

. A PS2 console which is able to run PS2 unsigned code
. An USB mass storage device, FAT12 or FAT16 or FAT32 formatted (not NTFS !)


Installation :

  1. Find and download the emulator compressed file;
  2. Create a directory named “POPS” in the root of your USB device;
  3. Copy POPS_IOX.PAK into the “POPS” directory you’ve just created.
  1. Convert your BIN/CUE disc images to .VCD files using the latest stable version of CUE2POPS ;
  2. Put your .VCD files in the “POPS” directory which is in the root of your USB device.
  1. Rename the POPStarter ELF as the name of your VCDs, replace the .VCD extension with a .elf extension, add the XX. prefix; [example : for running a VCD named “Gran Turismo.VCD”, the POPStarter ELF must be renamed as “XX.Gran Turismo.elf”]
  2. Copy or leave the ELFs where you want to run them from.
  3. Enjoy !

Note : you no longer need PFS_WRAP.BIN since OBT8, it’s now embedded into POPStarter ELF.


Example of Setup :


=== USB DEVICE, NEW LAUNCH TYPE ===
POPS/POPS_IOX.PAK
POPS/Crash Bandicoot.VCD
XX.Crash Bandicoot.elf


USB launch type :

USB supports only 1 launch type – the “new” one :

USB launch type
Prefix for POPStarter.ELF XX.
POPStarter folder name POPS or POPS#
Game name Name of the Game.VCD
Description Launch type introduced in POPStarter 13 WIP 02. Allows to run VCDs from an USB mass storage device.
Example With the POPStarter ELF renamed as XX.Some Game.elf, POPStarter will launch Some Game.VCD which is in the POPStarter folder named POPS or POPS0 or POPS1 up to POPS9 placed in USB root.

Additional notes :


📎 from the recovered HDD Mode wiki page · merged across snapshots, primary 20170629165244

POPStarter for internal HDD


Requirements :

To use POPStarter with an internal HDD, you have to find and download the POPS decrypted files. These files are named “POPS.ELF” and “IOPRP252.IMG”...

File name MD5 Description
POPS.ELF 355a892a8ce4e4a105469d4ef6f39a42 main SLBB-00001 ELF, decrypted
IOPRP252.IMG 1db9c6020a2cd445a7bb176a1a3dd418 can be found in some retail game discs and $CEI SDKs too

. A software that allows you to convert your disc images to the POPS virtual CDROM format (such as CUE2POPS)
. A software that allows you to manage/create partitions in your PS2 HDD (such as AKuHAK’s uLaunchELF build or uLE_kHn build)
. A software that allows you to copy the decrypted POPS files to the __common partition of your PS2 HDD (such as AKuHAK’s uLaunchELF build or uLE_kHn build)
. A software that allows you to transfer the converted disc images to your PS2 HDD (such as PFSshell, or uLaunchELF and RadHostClient)
. A PS2 software that allows you to execute the POPStarter ELFs (such as uLaunchELF, or Free Harddisk Drive Boot) or a GUI to execute POPSTARTER.ELF by selecting the VCDs (such as uLE_kHn )

. A PS2 console which is able to run PS2 unsigned code;
. A network adapter with/or a HDD interface;
. A PS2-formatted HDD that fits your network adapter/HDD interface.


Installation :

  1. Find and download the decrypted emulator files;
  2. Create a directory named “POPS” in the “__common” partition of your PS2 HDD;
  3. Paste POPS.ELF and IOPRP252.IMG into the “POPS” directory you’ve just created.
  1. Convert your BIN/CUE disc images to .VCD files using the latest stable version of CUE2POPS ;
  2. Create a partition named “__.POPS” in your PS2 HDD, large enough so you can put all your VCDs inside.
    Note : +__.POPS is not correct. Use AKuHAK’s uLaunchELF build or uLE_kHn build to create a partition without +.
  1. Rename the POPStarter ELF as the name of your VCDs, replace the .VCD extension with a .elf extension [example : for running a VCD named “Gran Turismo.VCD”, the POPStarter ELF must be renamed as “Gran Turismo.elf”] ;
  2. Copy or leave the ELFs where you want to run them from ;
  3. Enjoy !

Example of Setup :


=== INTERNAL HDD, NEW LAUNCH TYPE ===
__common/POPS/IOPRP252.IMG
__common/POPS/POPS.ELF
__.POPS/Crash Bandicoot.VCD
__sysconf/FMCB/Crash Bandicoot.elf


POPSTARTER.KELF :

POPStarter bundle comes with a file named POPSTARTER.KELF (KELF = Krypo-ELF = ELF embedded into a container). It can be used if you have SONY Browser 2.00 (aka HDDOSD) installed on your HDD. Otherwise, it’s useless.

Notes if you use the POPStarter.KELF :

Read here for a guide about how to set it up.


HDD Launch types (advanced) :

HDD supports 3 “launch types”. The “launch type” relies on the prefix of your ELF names. Each type uses his own way to name the VCD file :

Old launch type Alternate old launch type New launch type
HDDOSD compatible Yes No No
Partition shown in the HDDOSD/PSBBN/PSX XMB Yes No
Prefix for POPStarter.ELF PP. (if used) __. No prefix
Prefix for partition name PP. __. __.POPS or __.POPS#
Game name IMAGE0.VCD (all uppercase) IMAGE0.VCD (all uppercase) Name of the Game.VCD
Examples (1) (2) (3)
Description Launch type that was used in POPStarter 12 and older. Allows to install one VCD per partition. Launch type that was used in POPStarter 12 and older. Allows to install one VCD per partition. Launch type introduced in POPStarter 13 WIP 01. Allows to put multiple VCDs in a single partition.

Examples :

(1) With the POPStarter ELF renamed as PP.SomeGame.elf, POPStarter will launch IMAGE0.VCD which is in the partition named PP.SomeGame.

(2) With the POPStarter ELF renamed as __.SomeGame.elf, POPStarter will launch IMAGE0.VCD which is in the partition named __.SomeGame.

(3) With the POPStarter ELF renamed as Some Game.elf, POPStarter will launch Some Game.VCD which is in the partition named __.POPS or __.POPS0 or __.POPS1… up to __.POPS9.

Examples of Setups :


=== INTERNAL HDD, OLD LAUNCH TYPE (HDDOSD COMPATIBLE) ===
__common/POPS/IOPRP252.IMG
__common/POPS/POPS.ELF
PP.Crash_Bandicoot/EXECUTE.KELF
PP.Crash_Bandicoot/IMAGE0.VCD


=== INTERNAL HDD, ALTERNATE OLD LAUNCH TYPE (HIDDEN PARTITION) ===
__common/POPS/IOPRP252.IMG
__common/POPS/POPS.ELF
__.Crash_Bandicoot/IMAGE0.VCD
__sysconf/FMCB/__.Crash Bandicoot.elf


=== INTERNAL HDD, NEW LAUNCH TYPE ===
__common/POPS/IOPRP252.IMG
__common/POPS/POPS.ELF
__.POPS/Crash Bandicoot.VCD
__sysconf/FMCB/Crash Bandicoot.elf


Additional notes :


You may want to give a look at this :


📎 from the recovered SMB Mode wiki page · merged across snapshots, primary 20200812185303

POPStarter for SMB


Requirements :

POPS compressed file :

To use POPStarter in SMB mode, you have to find and download the compressed POPS file. This file is named “POPS_IOX.PAK”...

File name MD5 Description
POPS_IOX.PAK a625d0b3036823cdbf04a3c0e1648901 POPS.PAK with network modules embedded.

Other Software Requirements :

Hardware Requirements :


Installation :

a) Installing the emulator :

  1. Find and download the compressed emulator files ;

  2. Create a directory named “POPS” in your PS2 shared folder ;

  3. Copy POPS_IOX.PAK into the “POPS” directory you’ve just created.

b) Installing your PS1 Games :

  1. Convert your BIN/CUE disc images to .VCD files using the latest stable version of CUE2POPS ;

  2. Put your .VCD files in the “POPS” directory of your PS2 shared folder.

c) Installing POPStarter :

  1. Grab the network modules and edit the 2 .DAT files (syntax below) with your network settings;

  2. Paste the network modules and the .DAT files into mc#/:POPSTARTER/ folder;

  3. Rename the POPStarter ELF as the name of your VCDs, replace the .VCD extension with a .ELF extension, add the SB. prefix (example : for running a VCD named “Crash Bandicoot (PAL).VCD”, the POPStarter ELF must be renamed as “SB.Crash Bandicoot (PAL).ELF”) ;

  4. Copy or leave the ELFs where you want to run them from ;

  5. Enjoy !

In a single line,

SERVER IP ADDRESS space SHARE NAME

Example :

192.168.0.254 My Shared Folder

You can also specify a port, like this (default is 445) :

192.168.0.254:139 My Shared Folder

For user authentication, write your username to line 2 and your password to line 3.

Example :

192.168.0.254 My Shared Folder
MyName
MyPassword

Note : for guest access, don’t write anything to line 2 and 3.

In a single line,

PS2 IP ADDRESS space NETMASK space GATEWAY

Example :

192.168.0.13 255.255.255.0 192.168.0.254


Example of setup :

=== SMB LAUNCH TYPE ===
mc#:/POPSTARTER/IPCONFIG.DAT
mc#:/POPSTARTER/SMBCONFIG.DAT
mc#:/POPSTARTER/poweroff.irx
mc#:/POPSTARTER/ps2dev9.irx
mc#:/POPSTARTER/smsutils.irx
mc#:/POPSTARTER/ps2ip.irx
mc#:/POPSTARTER/ps2smap.irx
mc#:/POPSTARTER/smbman.irx
smb0:/YourSharedFolder/POPS/POPS_IOX.PAK
smb0:/YourSharedFolder/POPS/Crash Bandicoot (PAL).VCD
mass:/SB.Crash Bandicoot (PAL).ELF


SMB launch type :

SMB supports only 1 launch type – the “new” one :

SMB launch type
Prefix for POPStarter.ELF SB.
POPStarter folder name POPS
Game name GAME.VCD
Description Launch type introduced in POPStarter 13 WIP 06, OBT 08. Allows to run VCDs from an SMB share.
Example With the POPStarter ELF renamed as SB.GAME.ELF, POPStarter will launch GAME.VCD which is in POPS folder, placed into your shared folder.

Additional notes :


📎 from the recovered Ps1cd Mode wiki page · merged across snapshots, primary 20240310061934

PS1 CD mode


PS1 CD mode is a native POPS feature. It lets you play your PS1 games (originals, backups and imports) from the CDVD drive.

Warning : playing game CDs is not recommended. Playing game CDs with swap trick is super-not-recommended (see notes).

To use that mode, you must rename POPSTARTER.ELF file using the name you want, as long as there is no VCD (or partition) with such a name in your setup. It saves VMCs to the device according to the ELF prefix.

You can use a generic name, such as (##.)PS1CD.ELF (PS1CD.ELF or XX.PS1CD.ELF or SB.PS1CD.ELF). When you use a generic name, all games will share the same VMCs (POPS/PS1CD/SLOT#.VMC).

Example :

  1. Rename POPSTARTER.ELF as “Metal Gear Solid.ELF” (Metal Gear Solid.VCD shall not exist in your setup) ;

  2. If you want to make your saves on USB device, add the XX. prefix to the ELF launcher (“XX.Metal Gear Solid.ELF”), if you want to make your saves on SMB, add the SB. prefix to the ELF launcher (“SB.Metal Gear Solid.ELF”) ;

  3. Insert your MGS disc in the CDVD drive ;

  4. Launch ##.Metal Gear Solid.ELF ;

  5. MGS disc should start. When you make a save, it will be stored into POPS/Metal Gear Solid/SLOT#.VMC. You can store external files such as CHEATS.TXT etc… in POPS/Metal Gear Solid folder and they will be loaded from there.

Backups and imports discs :

If you want to use a PS1 import game disc or a PS1 backup disc, you must perform the swap trick (run uLaunchELF, insert an original PS1 original disc – with an equal or bigger TOC than your import game disc/backup disc – then swap with your PS1 import game disc/backup disc) before launching POPSTARTER.ELF (renamed and prefixed). PS2CD and PS2CDDA disc types are accepted to perform the swap trick.

Notes :


Storage backends and path maps (USB / SMB / HDD)

USB: the POPS folder must sit at the ROOT of a FAT12/16/32 (never NTFS), DEFRAGMENTED device, holding POPS_IOX.PAK (MD5 a625d0b3036823cdbf04a3c0e1648901), the VCDs, and the renamed launcher ELFs. POPStarter scans POPS, POPS0, POPS1 ... POPS9 at the root, letting you split a library across folders - but POPS_IOX.PAK and the TM2 IGR textures stay only in the MAIN POPS folder, while BIOS.BIN/PATCH_#.BIN/TROJAN_#.BIN/VMCDIR.TXT must be COPIED into every POPS# folder you create (they do not propagate). PS2-side USB/network modules (usbd.irx, usbhdfsd.irx) load from mc0:/POPSTARTER/ with an mc1 fallback; loading them from mass: is no longer supported, and PFS_WRAP.BIN was embedded into the ELF as of OBT8.

SMB: create the POPS folder at the SHARE ROOT (not a subdirectory) with the same mandatory POPS_IOX.PAK plus the VCDs. PS2-side network modules (smbman.irx, ps2smap.irx, ps2ip.irx, ps2dev9.irx, smsutils.irx, poweroff.irx) and the two .DAT files live in mc0:/POPSTARTER/ (mc1 fallback). SMBCONFIG.DAT is three lines: 'IP[:port] SHARE NAME' (default port 445, append ':139' for legacy servers), then username, then plain-text password; leave lines 2 and 3 empty for guest access. IPCONFIG.DAT ('PS2_IP NETMASK GATEWAY') is OPTIONAL (DHCP otherwise). On a modern Windows host you must enable SMB 1.0/CIFS, disable password-protected sharing, and grant Guest/Everyone read-write - only on a trusted LAN, since SMB1 is insecure. IMPORTANT MYTH-BUSTING: SMB does NOT require a 'debug build'. SMB was added as a normal feature in Beta 8 (2015-10-23); the only debug caveat is the wiki note that startup debug text cannot be skipped in SMB mode (cosmetic).

Internal HDD: the modern WIP01 launch type puts VCDs in a PS2-formatted partition __.POPS (or __.POPS0..__.POPS9) with the DECRYPTED emulator (POPS.ELF MD5 355a892a8ce4e4a105469d4ef6f39a42 + IOPRP252.IMG MD5 1db9c6020a2cd445a7bb176a1a3dd418) in __common/POPS, and uses NO launcher prefix. Two legacy per-partition types survive: PP. (HDDOSD-visible, KELF, IMAGE0.VCD) and __. (hidden, IMAGE0.VCD). The partition name must be exactly __.POPS (a leading '+' is wrong); create it with AKuHAK's uLaunchELF or uLE_kHn. VMCs and per-game BIOS/OSD assets live under __common/POPS//, decoupled from the VCD's own partition.

Launch methods and per-mode ELF prefixes

Three launch methods exist. (1) Renamed-ELF-per-game: each game gets its own copy of POPSTARTER.ELF renamed to '.elf', where the prefix is XX. for USB, SB. for SMB, none for the modern HDD type, or PP./__. for the two legacy HDD types. The third character of every prefix is a literal dot, and both the prefix and the .VCD extension must be UPPERCASE or matching fails. This is the classic method and the reason the others exist: one ELF per game is tedious for large libraries.

(2) Single direct-VCD: place ONE un-renamed POPSTARTER.ELF in the POPS folder and launch the .VCD directly. The special uLaunchELF build uLE_kHn (e.g. uLE_kHn_20191110) can run a .VCD like an ELF - put its BOOT at mc0:/BOOT/BOOT.ELF. (Base report's 'wLE_kHn' is a typo; the correct name is uLE_kHn, 'u' for uLaunchELF.) uLE_kHn supports USB but not SMB at time of writing. OPL's 'Apps' tab (driving conf_apps.cfg / APPS//.elf) is the other common direct-launch UI and works across USB/HDD/SMB.

(3) The modern POPSLoader fork (Lua/Enceladus): a single POPSLOADER.ELF plus bundled scripts/textures/modules; drop VCDs in a POPS folder alongside your POPStarter ELF and the POPS support files (IOPRP252.IMG, POPS.ELF, POPS.PAK, POPS_IOX.PAK), then run POPSLOADER.ELF. It boots from MC/MMCE/MX4SIO/USB (FAT32/exFAT) and runs games from MMCE/MX4SIO/USB/APA-HDD - a superset of stock POPStarter's backends.

Maintainer-verified file structures (confirmed working)

These exact layouts are first-party, tested by the POPSLoader maintainer across multiple OPL forks
(Daily Build "Tenth Anniversary", Grimdoomer, official 1.1.0 / 1.2.0 betas) — the highest-confidence setups
on this site. The Soul Blade examples below use SLUS_002.40; substitute your own game. Save title.cfg
as .cfg, not .txt, and it's best not to put the game ID in the .VCD filename for the
uLE_kHn (also seen as wLE_kHn) / POPSLoader listings.

USB mass storage

OPL — all versions — APPS page (renamed-ELF method):

mass:/POPS/SLUS_002.40.Soul Blade.VCD            (converted from your BIN/CUE PS1 backup)
mass:/POPS/SLUS_002.40.Soul Blade/               (per-game VMC + HugoPocked fixes folder)
mass:/POPS/POPS_IOX.PAK
mass:/APPS/PS1_Soul Blade/XX.SLUS_002.40.Soul Blade.ELF   (a renamed copy of POPSTARTER.ELF)
mass:/APPS/PS1_Soul Blade/title.cfg
        title=[PS1] Soul Blade
        boot=XX.SLUS_002.40.Soul Blade.ELF

OPL Daily Build (Tenth Anniversary) — PS1 page (direct VCD):

mass:/POPS/POPSTARTER.ELF
mass:/POPS/SLUS_002.40.Soul Blade.VCD
mass:/POPS/SLUS_002.40.Soul Blade/
mass:/POPS/POPS_IOX.PAK

POPSLoader APP (USB):

mass:/POPS/POPS_IOX.PAK
mass:/POPS/POPSTARTER.ELF
mass:/POPS/Soul Blade.VCD
mass:/POPS/Soul Blade/
mass:/APPS/PS1_POPSLDR/POPSLOADER.ELF
mass:/APPS/PS1_POPSLDR/title.cfg
        title=[PS1] !POPSLOADER
        boot=POPSLOADER.ELF

HugoPocked per-game fixes: drop them in a folder named after the VCD, e.g. 123.VCDmass:/POPS/123/.

exFAT on USB — BDMAssault enabler (case-sensitive!)

israpps' BDMAssault renames usbd_bd_assault.irx and
bdm_assault.irx. Place on a memory card (exact case matters):

mc?:/POPSTARTER/usbd.irx
mc?:/POPSTARTER/usbhdfsd.irx
mc?:/SYS-CONF/USBD.IRX
mc?:/SYS-CONF/USBHDFSD.IRX

SMB (Ethernet)

Confirmed on recent Grimdoomer, Daily Build, and the official OPL betas.
Required mc?:/POPSTARTER/ files for SMB: IPCONFIG.DAT, SMBCONFIG.DAT, poweroff.irx, ps2dev9.irx,
ps2ip.irx, ps2smap.irx, smbman.irx, SMSUTILS.irx, usbd.irx, usbhdfsd.irx (the last two are the
BDMA exFAT drivers).

smb:/POPS/SLUS_002.40.Soul Blade.VCD
smb:/POPS/POPS_IOX.PAK
smb:/POPS/POPSTARTER.ELF
smb:/APPS/Soul Blade/SB.SLUS_002.40.Soul Blade.ELF   (renamed POPSTARTER.ELF — note the SB. prefix for SMB)
smb:/APPS/Soul Blade/title.cfg
        title=[PS1]Soul Blade
        boot=SB.SLUS_002.40.Soul Blade.ELF

Internal SATA/IDE HDD/SSD — PFS-APA

OPL — all versions — APPS page:

hdd:/__.POPS/SLUS_002.40.Soul Blade.VCD
hdd:/__common/POPS/IOPRP252.IMG
hdd:/__common/POPS/POPS.ELF
hdd:/__common/POPS/POPSTARTER.ELF
hdd:/+OPL/APPS/Soul Blade/SLUS_002.40.Soul Blade.ELF   (renamed POPSTARTER.ELF)
hdd:/+OPL/APPS/Soul Blade/title.cfg
        title=[PS1]Soul Blade
        boot=SLUS_002.40.Soul Blade.ELF

exFAT internal — NOT supported, except via APA-Jail

POPStarter does not support internal exFAT storage directly. With APA-Jail you can do:

exfat:hdd:APPS/Soul Blade/SLUS_002.4.0.Soul Blade.ELF
exfat:hdd:APPS/Soul Blade/title.cfg   (title=Soul Blade / boot=SLUS_002.4.0.Soul Blade.ELF)
apa:hdd:/__.POPS/SLUS_002.4.0.Soul Blade.VCD
apa:hdd:/__common/POPS/IOPRP252.IMG
apa:hdd:/__common/POPS/POPS.ELF
apa:hdd:/__common/POPS/POPSTARTER.ELF
apa:hdd:/__common/POPS/POPS_IOX.PAK

Note on POPS files (POPS_IOX.PAK, POPS.ELF, IOPRP252.IMG): Sony-copyrighted — supply your own and
verify against the checksums on the Downloads page.

Partition-installed POPS games (PP. / __. — HDDOSD & PSBBN)

This is an additional launch path, not a replacement. The standard internal-HDD method documented
above — the __.POPS / __.POPS0__.POPS9 partition holding named .VCD files — is unchanged and
remains the primary way to run HDD games. Partition-installed games (below) coexist with it; the
launcher supports both.

On top of the file-based layouts above, POPStarter can also run a PS1 game that is installed as its own
PFS-APA partition
on the internal HDD — the form you get from HDDOSD and PSBBN installs. In that
case the disc image inside the partition is always named IMAGE0.VCD, and the game's identity comes
from the partition name, not from the VCD filename.

Two partition types exist:

To launch one, the renamed POPSTARTER ELF uses the PP. prefix plus the partition name
PP.<name>.ELF — because every such partition's image is IMAGE0.VCD, the launcher pulls the game name
from the partition, not the disc image.

uLE_kHn launch map

Install location Disc-image path Launch ELF
USB mass: mass:POPS/GAME.VCD uLE:XX.GAME.elf
HDD __.POPS partition hdd0:/__.POPS/GAME.VCD uLE:/GAME.elf
HDD PP.* / __.* partition hdd0:/PP.GAME/IMAGE0.VCD uLE:PP.GAME.elf

How it resolves

A partition-installed game is accepted when either the partition is an hdd0:__.POPS* partition or
the full path is pfs0:/IMAGE0.VCD:

if (partition is not hdd0:__.POPS*  &&  fullpath is not pfs0:/IMAGE0.VCD)
    reject;

Note this is a union, not a swap: the first branch (__.POPS*) is the standard file-based HDD method
that already works; the second branch (pfs0:/IMAGE0.VCD) simply adds support for partition-installed
games. Normal HDD .VCD games keep launching exactly as before.

The partition's SYSTEM.CNF (in its patinfo) points POPS at the image with BOOT2 = pfs:/IMAGE0.VCD.
PS2 SYSTEM.CNF carries three ordered parameters — BOOT2 (full path to the executable to launch),
VER (title version), and VMODE (PAL or NTSC). See the
PS2 Developer wiki — SYSTEM.CNF.

Source: R3Z3N (launch map + partition-acceptance logic) and Ripto, via the POPSLoader community,
2026-06-21. This is the partition layout commonly produced by HDDOSD and PSBBN.

From the official thread — storage, modules & modern devices

Sourced from the official psx-place POPStarter thread.
krHACKen items are authoritative.

Modern storage (post-abandonment community drivers)

More wiki sources

Cross-sourced quick-reference cards (provenance-tagged)

USB layout: mass:/POPS/ (root POPS folder) primary storage

Effect: USB storage. POPS folder must be at the ROOT of the USB device; contains POPS_IOX.PAK (emulator), the VCDs, and the renamed launcher ELFs. Device must be FAT12/16/32 (NOT NTFS) and DEFRAGMENTED.
Scope: USB mass storage. USB launch type introduced WIP02.
Conflicts: NTFS unsupported. Fragmentation causes failures. POPS_IOX.PAK (MD5 a625d0b3036823cdbf04a3c0e1648901) required; legacy POPS.PAK still works but updating is recommended.
POPS/POPS_IOX.PAK ; POPS/Crash Bandicoot.VCD ; XX.Crash Bandicoot.elf
📎 PRIMARY: ShaolinAssassin wiki usb-mode (Wayback 20170629123547)

USB scan order: POPS, POPS0..POPS9 primary storage

Effect: POPStarter looks for the named VCD in POPS or POPS0..POPS9 at USB root (split a large library across folders). POPS_IOX.PAK + the TM2 textures stay in the MAIN POPS folder; BIOS.BIN/PATCH_#.BIN/TROJAN_#.BIN/VMCDIR.TXT must be COPIED into every POPS# folder.
Scope: USB mode. POPS#-folder feature introduced r13 WIP06 OBT; reading VCDs from POPS# bugfixed Beta 11 (2015-11-11).
Conflicts: Per-game assets do NOT auto-share across POPS# folders - must be duplicated.
POPS0/Tekken.VCD launched by XX.Tekken.elf; copy VMCDIR.TXT into each POPS# folder
📎 PRIMARY: ShaolinAssassin wiki usb-mode (Wayback 20170629123547) + changelog Beta 11 (Wayback 20170629142002)

USB launcher ELF naming: XX.<name>.elf primary launch

Effect: Rename the POPStarter ELF to the VCD's name, swap .VCD for .elf, add the 'XX.' prefix (third char is a literal dot). Prefix and the .VCD extension must be UPPERCASE. USB supports ONLY this 'new' launch type.
Scope: USB mode only.
Conflicts: Lowercase prefix or lowercase .vcd breaks matching.
VCD 'Gran Turismo.VCD' -> ELF 'XX.Gran Turismo.elf'
📎 PRIMARY: ShaolinAssassin wiki usb-mode (Wayback 20170629123547)

USB/network modules: mc0:/POPSTARTER/ then mc1:/POPSTARTER/ primary storage

Effect: POPStarter loads usbd.irx/usbhdfsd.irx (and network modules) from the MC POPSTARTER folder, slot 0 first, falling back to mc1 when a file is missing. Loading modules from 'mass' is NO longer supported. PFS_WRAP.BIN no longer needed since OBT8 (embedded into the ELF).
Scope: USB mode, beta 8+; mc1 fallback added Beta 9 (2015-10-24).
Conflicts: Custom usbd.irx/usbhdfsd.irx on mass: are ignored; they must be on the MC.
mc0:/POPSTARTER/usbd.irx ; mc0:/POPSTARTER/usbhdfsd.irx
📎 PRIMARY: ShaolinAssassin wiki usb-mode (Wayback 20170629123547) + changelog Beta 8/9

SMB layout: smb0:/<Share>/POPS/ primary storage

Effect: SMB/network storage. Create a POPS directory at the SHARE ROOT (not a subdir); put POPS_IOX.PAK (same file as USB, MD5 a625d0b3036823cdbf04a3c0e1648901, MANDATORY) and the VCDs there. Requires a PS2 NIC + cable + MC.
Scope: SMB mode. Backend added Beta 8 (2015-10-23); SB. launch type r13 WIP06/OBT08.
Conflicts: POPS must be at share root. Legacy POPS.PAK unsupported in SMB.
smb0:/My Shared Folder/POPS/POPS_IOX.PAK ; smb0:/My Shared Folder/POPS/Crash Bandicoot.VCD
📎 PRIMARY: ShaolinAssassin wiki smb-mode + quickstart-smb (Wayback 20170629160319 / 20180208032618)

SMB launcher ELF naming: SB.<name>.elf primary launch

Effect: Rename POPStarter ELF to the VCD name, .VCD -> .elf, add the 'SB.' prefix (third char a literal dot). Uppercase prefix + uppercase .VCD. The ELF can live anywhere you launch from; only the VCD must be in the SMB POPS folder.
Scope: SMB mode only. Launch type r13 WIP06 OBT08.
Conflicts: SMB POPS folder name is fixed 'POPS' (no documented POPS# multi-folder for SMB).
VCD 'Crash Bandicoot.VCD' -> ELF 'SB.Crash Bandicoot.elf'
📎 PRIMARY: ShaolinAssassin wiki smb-mode + quickstart-smb (Wayback 20170629160319 / 20180208032618)

SMB modules folder: mc#:/POPSTARTER/ primary storage

Effect: The PS2-side network modules + the two .DAT config files live in mc0:/POPSTARTER/ (falls back to mc1). Module set: poweroff.irx, ps2dev9.irx, smsutils.irx, ps2ip.irx, ps2smap.irx, smbman.irx, plus IPCONFIG.DAT, SMBCONFIG.DAT.
Scope: SMB mode. mc1 fallback added Beta 9 (2015-10-24).
Conflicts: Missing/wrong network modules -> SMB init fails.
mc0:/POPSTARTER/SMBCONFIG.DAT ; mc0:/POPSTARTER/IPCONFIG.DAT ; mc0:/POPSTARTER/smbman.irx
📎 PRIMARY: ShaolinAssassin wiki smb-mode + quickstart-smb (Wayback 20170629160319 / 20180208032618)

SMBCONFIG.DAT syntax primary storage

Effect: Line 1: '<SERVER IP> <SHARE NAME>' (optional ':PORT' on the IP, default 445, e.g. ':139'). Line 2 = username, Line 3 = plain-text password for authenticated shares; leave lines 2 and 3 EMPTY for guest access.
Scope: SMB mode. Port selection added Beta 11 (2015-11-11); authentication added Beta 12 (2015-11-24).
Conflicts: Default access is GUEST/non-password (Beta 8). Credentials vs guest mismatch fails the connection.
192.168.0.254 My Shared Folder / MyName / MyPassword (or '192.168.0.254:139 My Shared Folder' + empty lines 2-3 for guest)
📎 PRIMARY: ShaolinAssassin wiki smb-mode + changelog Beta 11/12 (Wayback 20170629160319 / 20170629142002)

IPCONFIG.DAT syntax (optional) primary storage

Effect: Single line: '<PS2 IP> <NETMASK> <GATEWAY>'. OPTIONAL (DHCP/auto otherwise). Only needed for a static PS2 IP.
Scope: SMB mode. Made optional in Beta 11 (2015-11-11).
Conflicts: Omit to let POPStarter use defaults.
192.168.0.13 255.255.255.0 192.168.0.254
📎 PRIMARY: ShaolinAssassin wiki smb-mode + changelog Beta 11

REFUTED: 'debug build required for SMB' primary storage

Effect: FALSE. SMB was added as a STANDARD feature in Beta 8 (2015-10-23): 'Added support for ps2host, napLink and SMB (NOT password protected, fixed port 445) shares' - no debug gating. The only debug-related caveat is the wiki note 'Debug infos at startup can NOT be skipped in SMB mode' (cosmetic startup print, NOT a build requirement).
Scope: SMB mode, Beta 8 onward.
Conflicts: Do not conflate 'startup debug text always shown' with 'must use a debug build'.
Beta 8 line: 'Added support for ... SMB (NOT password protected, fixed port 445) shares'
📎 PRIMARY: r13 changelog Beta 8 (Wayback 20170629142002) + wiki smb-mode Additional notes (Wayback 20170629160319)

Windows host SMB share setup community storage

Effect: To serve POPS over SMB from modern Windows: enable 'SMB 1.0/CIFS File Sharing Support', turn OFF 'Password protected sharing', grant Guest/Everyone Read/Write on the share. POPStarter's SMB client is legacy (SMB1, guest, port 445).
Scope: Host-side (Windows 10/11) for SMB mode. COMMUNITY guidance - not in the official wiki.
Conflicts: SMB1 is insecure and disabled by default on modern Windows - only enable on a trusted LAN. A NAS exposing SMB2/3-only with mandatory auth may still work via SMBCONFIG.DAT credentials, but guest+SMB1 is the documented path.
Windows feature 'SMB 1.0/CIFS File Sharing Support' ON; 'Password protected sharing' OFF; share POPS folder Guest=RW
📎 COMMUNITY: chipnetics.com/tutorials/ps2-opl-with-samba/; ps2-home t=326; gbatemp 613924

pops-smb-config (on-console SMB editor) near-primary storage

Effect: A PS2 homebrew tool to edit POPStarter's SMBCONFIG.DAT/IPCONFIG.DAT on the console itself (no PC). Confirms the 3-line SMBCONFIG.DAT format.
Scope: Companion utility for SMB mode.
Conflicts: Third-party tool; not part of POPStarter.
Edits mc0:/POPSTARTER/SMBCONFIG.DAT in-place on the PS2
📎 NEAR-PRIMARY: github.com/blckbearx/pops-smb-config; psx-place resource 1237

HDD layout: __.POPS / __.POPS0..9 + __common/POPS (NEW launch type) primary storage

Effect: Internal HDD, modern multi-VCD type. VCDs go in PS2-formatted partition __.POPS (or __.POPS0..__.POPS9). Emulator (decrypted POPS.ELF + IOPRP252.IMG) goes in a POPS folder inside the __common partition. NO prefix on the launcher ELF (named <game>.elf for <game>.VCD).
Scope: Internal HDD. New launch type introduced POPStarter 13 WIP01.
Conflicts: Partition must be named __.POPS (leading double-underscore-dot) - '+__.POPS' is WRONG (use AKuHAK's uLaunchELF or uLE_kHn to create a partition without the '+'). Names case-sensitive; .VCD uppercase.
__common/POPS/IOPRP252.IMG ; __common/POPS/POPS.ELF ; __.POPS/Crash Bandicoot.VCD ; __sysconf/FMCB/Crash Bandicoot.elf
📎 PRIMARY: ShaolinAssassin wiki hdd-mode (Wayback 20170629165244)

HDD legacy OLD type: PP.<game> partition (HDDOSD-visible) primary storage

Effect: One VCD per partition named PP.<game>; the VCD is always IMAGE0.VCD (uppercase); launcher prefix PP. (KELF EXECUTE.KELF for HDDOSD). The only type SHOWN in HDDOSD/PSBBN/PSX XMB. POPStarter 12 and older; still supported.
Scope: Internal HDD, legacy.
Conflicts: No whitespace in old-type partition names. 1 partition = 1 game (except multi-disc).
PP.Crash_Bandicoot/EXECUTE.KELF ; PP.Crash_Bandicoot/IMAGE0.VCD
📎 PRIMARY: ShaolinAssassin wiki hdd-mode (Wayback 20170629165244)

HDD legacy ALTERNATE type: __.<game> partition (hidden) primary storage

Effect: One VCD per partition named __.<game>; VCD is IMAGE0.VCD (uppercase); launcher prefix __. ; partition is HIDDEN (not shown in HDDOSD/PSBBN/XMB). POPStarter 12 and older.
Scope: Internal HDD, legacy; not HDDOSD-compatible.
Conflicts: Hidden by design; no whitespace in partition name.
__.Crash_Bandicoot/IMAGE0.VCD ; __sysconf/FMCB/__.Crash Bandicoot.elf
📎 PRIMARY: ShaolinAssassin wiki hdd-mode (Wayback 20170629165244)

POPSTARTER.KELF (HDDOSD / Sony Browser 2.00) primary storage

Effect: The bundle ships POPSTARTER.KELF (Krypto-ELF, ELF in a Sony container) for when Sony Browser 2.00 (HDDOSD) is installed; otherwise useless. Partition prefix PP.; 1 partition = 1 game (unless multi-disc).
Scope: Internal HDD with HDDOSD/Browser 2.00 only.
Conflicts: Useless without HDDOSD.
POPSTARTER.KELF placed per PP.<game> partition
📎 PRIMARY: ShaolinAssassin wiki hdd-mode (Wayback 20170629165244)

HDD emulator files: POPS.ELF + IOPRP252.IMG (decrypted) primary storage

Effect: HDD mode uses the DECRYPTED POPS files (not POPS_IOX.PAK), in __common/POPS. POPS.ELF MD5 355a892a8ce4e4a105469d4ef6f39a42 (the SLBB-00001 ELF). IOPRP252.IMG MD5 1db9c6020a2cd445a7bb176a1a3dd418 (from some retail discs / $CEI SDKs).
Scope: Internal HDD mode.
Conflicts: Sony-copyrighted, not redistributed with POPStarter; user must source them.
__common/POPS/POPS.ELF (MD5 355a892a...) ; __common/POPS/IOPRP252.IMG (MD5 1db9c602...)
📎 PRIMARY: ShaolinAssassin wiki hdd-mode requirements table (Wayback 20170629165244)

Launch method 1: renamed-ELF-per-game primary launch

Effect: Each game has its own copy of POPSTARTER.ELF renamed to '<prefix><VCD name>.elf'. Prefix XX. (USB), SB. (SMB), or none/PP./__. (HDD per type). Launched via uLaunchELF, FMCB/FHDB, OPL Apps, etc.
Scope: All storage types.
Conflicts: Tedious for big libraries (one ELF per game) - the reason uLE_kHn and POPSLoader exist.
XX.Crash Bandicoot.elf launches Crash Bandicoot.VCD
📎 PRIMARY: ShaolinAssassin wiki usb/smb/hdd-mode (Wayback 20170629123547 / 20170629160319 / 20170629165244)

Launch method 2: single direct-VCD (uLE_kHn / OPL Apps) primary launch

Effect: Avoids per-game renaming. Place ONE un-renamed POPSTARTER.ELF in the POPS folder; a special uLaunchELF build (uLE_kHn, e.g. uLE_kHn_20191110) launches a .VCD directly like an ELF (put its BOOT at mc0:/BOOT). OPL's 'Apps' tab (conf_apps.cfg / APPS/<game>/<game>.elf) is the other common direct-launch UI. CORRECTS base report's 'wLE_kHn' typo -> 'uLE_kHn'.
Scope: USB (uLE_kHn; 'SMB not supported ATM') + OPL Apps for USB/HDD/SMB.
Conflicts: uLE_kHn did not support SMB at time of writing.
mass:/POPS/POPSTARTER.ELF + mass:/POPS/Crash Bandicoot.VCD + mc0:/BOOT/BOOT.ELF (uLE_kHn)
📎 PRIMARY: ShaolinAssassin wiki uLE_kHn (Wayback 20170629140906); ps2-home OPL-Apps tutorials t=123/t=3216/t=2295

Launch method 3: modern POPSLoader fork (Lua/Enceladus) primary launch

Effect: POPSLoader is a Lua launcher on the Enceladus runtime bundling POPSLOADER.ELF + Lua scripts + textures + modules; drop .VCDs in a POPS folder plus your POPStarter ELF + POPS support files (IOPRP252.IMG, POPS.ELF, POPS.PAK, POPS_IOX.PAK), then run POPSLOADER.ELF. Boots from MC/MMCE/MX4SIO/USB(FAT32/exFAT); runs games from MMCE/MX4SIO/USB/APA-HDD. Originally by El_isra; current fork maintained by NathanNeurotic.
Scope: Modern (post-POPStarter) fork; broad device support incl. MMCE/MX4SIO/exFAT not in stock POPStarter.
Conflicts: Separate project from krHACKen's POPStarter; supports exFAT and MMCE/MX4SIO that stock POPStarter does not.
POPS/POPSLOADER.ELF + POPS/<game>.VCD + POPS/POPS_IOX.PAK ; run POPSLOADER.ELF
📎 PRIMARY: github.com/NathanNeurotic/POPSLoader; psx-place fork thread 49539

All 10 wiki pages in this topic

Every recovered page filed under this section — including the deep-reference pages not embedded above.