POPStarter DOCS

Multi-disc & VMC

DISCS.TXT multi-disc swapping and the SLOT0/SLOT1 virtual memory cards, including VMCDIR.TXT redirection.

โ„น Do it by hand โ€” the DISCS_POOPER tool isn't hosted here
The old DISCS_POOPER.EXE PC tool just auto-generated the DISCS.TXT + VMCDIR.TXT set; it is withheld per this site's policy (any โ€œDownload: hereโ€ link in the recovered text below is dead). The manual method is simple and documented right here: put a DISCS.TXT listing every disc's VCD in each disc folder, and a VMCDIR.TXT naming disc 1's VCD in the disc 2/3 folders so they share one memory card. On internal HDD it is instead IMAGE0.VCD/IMAGE1.VCD in one PP. partition.

๐Ÿ“Ž from the recovered Multi Disc wiki page ยท merged across snapshots, primary 20250110103459

Swap disc feature


You can now play multi-discs games with POPS.

  1. Create a DISCS.TXT text file containing the file names of your VCDs, one file name per line (with VCD extension) ;
DISCS.TXT line 1 = disc 1
DISCS.TXT line 2 = disc 2
DISCS.TXT line 3 = disc 3
DISCS.TXT line 4 = disc 4

Example :

MGS_CD1.VCD
MGS_CD2.VCD
[Empty]
[Empty]
  1. Copy/paste this DISCS.TXT file to the VMC folders of ALL your game discs ;

  2. When required by the game, open the lid using the hotkey ;

  3. Insert the disc you want to load using the hotkey ;

  4. Close the lid using the hotkey.

Hotkeys :

Limitations :

Example of working setup :

mass:/POPS/MGS_CD1.VCD
mass:/POPS/MGS_CD2.VCD
mass:/POPS/XX.MGS_CD1.ELF
mass:/POPS/XX.MGS_CD2.ELF
mass:/POPS/MGS_CD1/DISCS.TXT
mass:/POPS/MGS_CD2/DISCS.TXT

DISCS.TXT content :

MGS_CD1.VCD
MGS_CD2.VCD

Notes :


Use a single pair of VMCs for multi-disc games :

You can use the VMCDIR.TXT file to use only 1 pair of VMCs for a multi-disc game. This VMCDIR.TXT must be placed into disc 1 and disc 2 VMC game folders. Read here to know more about the VMCDIR.TXT file (โ€œSetting a path for the VMC folderโ€ section).

Example :

mass:/POPS/MGS_CD1.VCD
mass:/POPS/MGS_CD2.VCD
mass:/POPS/XX.MGS_CD1.ELF
mass:/POPS/XX.MGS_CD2.ELF
mass:/POPS/MGS_CD1/DISCS.TXT
mass:/POPS/MGS_CD1/VMCDIR.TXT
mass:/POPS/MGS_CD2/DISCS.TXT
mass:/POPS/MGS_CD2/VMCDIR.TXT

DISCS.TXT content :

MGS_CD1.VCD
MGS_CD2.VCD

VMCDIR.TXT content (= CD1 VMC game folder) :

MGS_CD1

In this situation, disc 1 and disc 2 share the same VMC folder.


DISCS POOPER

DISCS_POOPER is a little program that does the boring job for you.

How to use it :

  1. Create a new folder ;

  2. Drop the VCD files of your multic-disc game in it ;

  3. Drop DISCS_POOPER.EXE in the folder and run it ;

DISCS_POOPER creates :

. A VMC folder for each VCD in the folder ;

. A DISCS.TXT inside each VMC folder ;

. A VMCDIR.TXT inside each VMC to use only a pair of VMC for this multi-disc game.

  1. Move your VCD and VMC game folders to your POPS folder ;

  2. Enjoy.

Limits :

. Doesnโ€™t comply with 4 CDs limit of the swap disc feature (donโ€™t use it with more than 4 VCDs) ;


๐Ÿ“Ž from the recovered VMC wiki page ยท merged across snapshots, primary 20170629133617

Virtual Memory Cards


About VMC :

The very first time a game is launched, a new folder named โ€œGAMEโ€ (ex : Crash Bandicoot) will be created into your POPS directory โ€“ one separate folder for each game. This folder contains 2 files โ€“ SLOT0.VMC & SLOT1.VMC, which are your VMCs.


POPS/Crash Bandicoot.VCD
POPS/Crash Bandicoot/SLOT0.VMC
POPS/Crash Bandicoot/SLOT1.VMC

If you know how to hexedit POPStarter, you can change that behaviour to have only 1 VMC created โ€“ or not at all. Check the configuration table to know how to change the default setting (offset $429).


Setting a path for the VMC folder :

Hereโ€™s how to change the destination VMC folder of your games :
Letโ€™s say your game is MY_GAME.VCD. The VMCs are saved to POPS/MY_GAME/. You want the VMCs to be saved into POPS/BLAHBLAH/ instead.

  1. Create an empty text file;

  2. Write BLAHBLAH into it;

  3. Save it as VMCDIR.TXT;

  4. Copy VMCDIR.TXT to POPS/MY_GAME/

Example :


mass:/POPS/MY_GAME.VCD
mass:/POPS/MY_GAME/VMCDIR.TXT
mass:/POPS/BLAHBLAH/SLOT0.VMC
mass:/POPS/BLAHBLAH/SLOT1.VMC

Notes :

Example :


smb:/YourSharedFolder/POPS/Crash Bandicoot.VCD
smb:/YourSharedFolder/POPS/Tekken.VCD
smb:/YourSharedFolder/POPS/Castlevania - Symphony of the night.VCD
smb:/YourSharedFolder/POPS/VMCDIR.TXT
smb:/YourSharedFolder/POPS/SAVES/SLOT0.VMC
smb:/YourSharedFolder/POPS/SAVES/SLOT1.VMC

with SAVES written into smb:/YourSharedFolder/POPS/VMCDIR.TXT

Here the 3 games mentionned will use smb:/YourSharedFolder/POPS/SAVES/SLOT0.VMC and smb:/YourSharedFolder/POPS/SAVES/SLOT1.VMC as VMCs with no issue.


Additional notes :


You may want to give a look at this :


Images & screenshots

Multi-disc and virtual memory cards

VMCs: POPS auto-creates a pair of virtual memory-card images on first launch - SLOT0.VMC (controller port 1) and SLOT1.VMC (port 2) - in a per-game folder named after the VCD. PS1 retail saves imported with MemcardRex land in SLOT1.VMC. How many VMCs are created (two/one/none) is set by config offset $429 (NOT $42A, which is the 480p/PAL byte). Crucially, POPS flashes the WHOLE VMC on every save rather than writing a single MC block - this is why saving to a physical memory card is unsupported and why sharing one VMC pair across games is data-safe.

VMCDIR.TXT is a one-line file (<=103 bytes, no / \ : characters) that redirects ONLY the SLOT0/SLOT1 pair to a named folder while every other asset still loads from the game folder; the target must stay inside POPS. Put it in a game folder for per-game redirection, or in the POPS root to collapse the whole library onto one shared VMC pair (per-user save sets, shared saves). When the same asset exists in both the POPS folder and a game's VMC folder, the VMC-folder copy wins - the ONE documented exception is two CHEATS.TXT files where one changes the video mode, which is the actual mechanism behind the base report's 'root CHEATS.TXT may block per-game' note.

DISCS.TXT is the orthogonal multi-disc mechanism: up to 4 VCD filenames (with the .VCD extension), one per line, all in the same partition, copied into every disc's folder. More than 4 lines breaks it; each filename is capped at 89 chars per the wiki, though POPSLoader's own testing shows a practical ~73-char ceiling because it is a full-PATH buffer. In-game disc swapping (since Beta 15) uses Select+L2+R2 plus Triangle (open lid), Up/Right/Down/Left (insert disc 1/2/3/4, mapping to DISCS.TXT LINE numbers), and Square (close lid). Pair DISCS.TXT with a VMCDIR.TXT pointing every disc at disc 1's folder so a multi-disc game keeps one save card. On internal HDD the convention is instead IMAGE0.VCD/IMAGE1.VCD in one PP. partition (sharing one VMC). The PC tool DISCS_POOPER.EXE auto-generates the DISCS.TXT + VMCDIR.TXT set for up to 4 VCDs. Finally, OSD.BIN beats BIOS.BIN: if both exist in a VMC dir, OSD.BIN is injected and BIOS.BIN is ignored (OSD.BIN must satisfy the strict 'PS-X OSD' v1 header).

More wiki sources

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

VMCDIR.TXT primary vmc

Effect: One-line text file in a game's VMC folder that redirects where POPS saves/reads the VMC pair (SLOT0.VMC + SLOT1.VMC); all other assets (TROJAN/PATCH/CHEATS) still load from the game folder. Forbidden chars / \ : . Not loaded if >103 bytes or >1 line. Target folder must stay inside the POPS folder.
Scope: Per-game in the game folder; GLOBAL (one shared VMC pair for ALL games) when placed in the POPS root. USB/SMB/HDD. Must be copied into every POPS# folder.
Conflicts: In POPS root it overrides per-game VMC isolation but mounts existing VMCs without overwriting (no data loss). Game-folder copy wins over a POPS-root copy. Destination outside POPS is rejected.
Save 'BLAHBLAH' as VMCDIR.TXT in mass:/POPS/MY_GAME/ -> POPS reads mass:/POPS/BLAHBLAH/SLOT0.VMC + SLOT1.VMC
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki vmc (Wayback 20170629133617)

VMCDIR.TXT (shared VMC grouping) primary vmc

Effect: Multiple games point at one VMC folder so they share a single VMC pair (e.g. all FF8 discs, or a per-user save set). Put a VMCDIR.TXT naming the same destination folder into each game's folder.
Scope: Per group of games. Also gives multiple users their own VMC folders for one library.
Conflicts: Shared VMCs are mounted/loaded, not overwritten - data-safe (POPS flashes the whole VMC, see SLOT0/SLOT1).
smb:/Share/POPS/VMCDIR.TXT contains 'SAVES'; Crash/Tekken/Castlevania all save into smb:/Share/POPS/SAVES/SLOT0.VMC
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki vmc (Wayback 20170629133617)

SLOT0.VMC / SLOT1.VMC primary vmc

Effect: The two virtual memory-card image files POPS auto-creates on first launch (POPS/<GameName>/SLOTx.VMC). SLOT0 = MC port 1, SLOT1 = port 2. PS1 retail saves imported via MemcardRex go into SLOT1.VMC. Standard PS1 MC images, MemcardRex-editable.
Scope: Per game by default; on HDD inside __common/POPS/<vmcfolder>/. Number created (2/1/none) controlled by config offset $429 (NOT $42A).
Conflicts: POPS does not save to a physical MC because it flashes the WHOLE VMC, not a single block.
POPS/Crash Bandicoot.VCD -> POPS/Crash Bandicoot/SLOT0.VMC + SLOT1.VMC
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki vmc + pmc-to-vmc + faqs (Wayback 20170629133617 / 20170629154811 / 20170629120342)

HDD VMC location primary vmc

Effect: On internal HDD, VMCs and per-game BIOS/OSD assets live in the __common partition under __common/POPS/<vmcfolder>/, decoupled from the VCD (which sits in its own __.POPS / PP. / __. partition).
Scope: Internal HDD (hdd:) mode.
Conflicts: POPS.ELF + IOPRP252.IMG go in __common/POPS/. Old-type partition names are case-sensitive, no whitespace.
__common/POPS/PBPX-95000.MY_GAME/SLOT0.VMC (VCD itself in __.POPS/MY_GAME.VCD)
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki hdd-mode + bios-osd-handlers (Wayback 20170629165244)

POPS/VMC folder priority rule primary vmc

Effect: Any external file (TROJAN/PATCH/BIOS.BIN/OSD.BIN/CHEATS.TXT/VMCDIR.TXT/DISCS.TXT) can live in the POPS folder (all games) or the game's VMC folder (that game). When the same type exists in both, the VMC-folder copy has priority. ONLY exception: two CHEATS.TXT loaded at once where one contains special cheats that change the video mode (special-cased).
Scope: All POPStarter external assets, all backends.
Conflicts: This exception is the precise mechanism behind the base report's 'root CHEATS.TXT may block per-game' note - the only documented blocking case.
PATCH_5.BIN in POPS/ vs POPS/MY_GAME/ -> the MY_GAME copy wins for that game
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki general-note (Wayback 20170629125310)

Multi-folder POPS0..POPS9 (USB) asset-duplication caveat primary vmc

Effect: Up to 11 game folders scanned at USB root (POPS, POPS0..POPS9). VMCDIR.TXT, BIOS.BIN, PATCH_#.BIN and TROJAN_#.BIN meant to be global must be COPIED into every POPS# folder (they don't propagate); POPS_IOX.PAK and the TM2 IGR-texture files must stay only in the MAIN POPS folder.
Scope: USB mass: storage. HDD has __.POPS0..9 equivalent; SMB has only a single POPS folder.
Conflicts: Forgetting to duplicate global assets into POPS# folders = they don't apply there.
mass:/POPS0/Tekken.VCD + mass:/POPS0/VMCDIR.TXT copied from mass:/POPS/VMCDIR.TXT
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki usb-mode (Wayback 20170629123547)

DISCS.TXT primary multidisc

Effect: Multi-disc swap list. One VCD filename per line (WITH .VCD extension), up to 4 lines = disc 1..4. Enables in-game disc swapping without a PS1 reboot. Copy into the VMC/game folder of EVERY disc.
Scope: Per multi-disc game. All VCDs must be in the same partition/folder. Feature present since OBT15.
Conflicts: >4 lines breaks the feature. Each VCD filename <=89 chars (wiki) but POPSLoader's own testing shows the practical ceiling is ~73 since it's a full-PATH buffer, not a bare-name buffer. .TXT must be uppercase. For >4 discs, install first 4, play to disc 4, then swap in 5-7.
DISCS.TXT (in BOTH MGS_CD1/ and MGS_CD2/): MGS_CD1.VCD / MGS_CD2.VCD
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki multi-disc (Wayback 20170626061653); CHANGES.TXT Beta 15; ~73 nuance from POPSLoader reference-vcd-filename-limit (#503)

Disc-swap hotkeys (lid + disc insert) primary multidisc

Effect: Hotkeys (since Beta 15, 2016-09-18): Select+L2+R2+Triangle = open lid; +Up = disc 1; +Right = disc 2; +Down = disc 3; +Left = disc 4; +Square = close lid. D-pad direction maps to the DISCS.TXT LINE number, not a physical disc label.
Scope: In-game, multi-disc games with DISCS.TXT. OBT15+.
Conflicts: Earlier Beta-14-era build only exposed lid open/close (Triangle/Square) without the Up/Right/Down/Left inserts. A separate simple 'open lid' hotkey (Select+L2+R1) also exists in the general hotkeys table.
Insert Disc 2: Select+L2+R2+Right ; Close lid: Select+L2+R2+Square
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki multi-disc + hotkeys (decoded from archived button-glyph filenames, Wayback 20170626061653 / 20170626021730); CHANGES.TXT lines 316-372

VMCDIR.TXT for multi-disc (single VMC pair) primary multidisc

Effect: Combine DISCS.TXT with a VMCDIR.TXT (naming disc 1's VMC folder) placed in every disc folder so all discs of one game share a single VMC pair - avoids manual VMC copy/paste between disc folders.
Scope: Per multi-disc game. VMCDIR.TXT in disc 1 AND disc 2 (and any further disc) folders, naming the disc-1 folder.
Conflicts: Without it, saves made on disc 1 aren't visible on disc 2 unless VMCs are manually copied. Same 103-byte/1-line/forbidden-char rules.
MGS/VMCDIR.TXT and MGS_2/VMCDIR.TXT both contain 'MGS' -> both discs save into POPS/MGS/SLOT0.VMC+SLOT1.VMC
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki multi-disc (Wayback 20170626061653)

HDD multi-disc (IMAGE0.VCD / IMAGE1.VCD) near-primary multidisc

Effect: On internal HDD, multi-disc games use IMAGE0.VCD / IMAGE1.VCD in the SAME PP. partition (POPStarter only looks for IMAGE0.VCD when booting HDD-OSD mode). The discs share one VMC, so no VMCDIR.TXT is needed.
Scope: Internal HDD multi-disc.
Conflicts: Disc change cannot cross partitions (cannot unmount/mount). Both discs must share one PP. partition; first VCD MUST be IMAGE0.VCD, second IMAGE1.VCD.
PP.<game> partition: IMAGE0.VCD + IMAGE1.VCD (shared VMC)
๐Ÿ“Ž NEAR-PRIMARY: PS2-HOME t=144 (Wayback 20240407083519)

OSD.BIN over BIOS.BIN precedence primary vmc

Effect: If an OSD replacement image named OSD.BIN exists in the VMC dir (or POPS folder) it is injected into POPS's built-in BIOS and used; when OSD.BIN is present, BIOS.BIN is IGNORED. BIOS.BIN alone lets you reach the MC manager / play CDDA tracks via the built-in shell. If neither exists, POPS uses its built-in BIOS. Using a BIOS/OSD does NOT improve game compatibility.
Scope: Per-game (VMC/game folder) or global (POPS folder). HDD path e.g. __common/POPS/PBPX-95000.MY_GAME/OSD.BIN.
Conflicts: OSD.BIN strictly wins over BIOS.BIN (mutually exclusive). OSD.BIN must satisfy a strict header or it won't load.
POPS/MY_GAME/OSD.BIN present -> OSD.BIN used, POPS/MY_GAME/BIOS.BIN silently ignored
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki bios-osd-handlers (Wayback 20170629161024)

OSD.BIN header structure (v1) primary vmc

Effect: Valid OSD replacement format. 0h-8h identifier 'PS-X OSD'; Ch = image version (non-NULL); Eh = OSD build (non-NULL); 1Ch-20h = OSD loadable segment size (header excluded); 20h-34h = OSD name (1-20 ASCII, 0x00-terminated). OSD load address and entrypoint must be multiples of 0x10000. Total file size = header length + OSD size.
Scope: OSD.BIN files used with POPStarter (the BIOS-injection path).
Conflicts: Identifier must be exactly 'PS-X OSD'; version (Ch) and build (Eh) cannot be NULL; load addr/entrypoint multiples of 0x10000; name >=1 char. Violations -> not loaded.
Bytes 0-7 = 'PS-X OSD'; name field at 0x20 = 'MY OSD\0'
๐Ÿ“Ž PRIMARY: ShaolinAssassin wiki bios-osd-handlers (Wayback 20170629161024)

All 5 wiki pages in this topic

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