-
Notifications
You must be signed in to change notification settings - Fork 2
PS1 Reference
RiptOPL lists PlayStation 1 games beside the PS2 library on the same device. One PS1
view can contain two row types: *.VCD images launch through POPSTARTER, while game
folders under EMBER/games/ launch through Ember. The row decides the core; there is
no per-page emulator switch.
This document concentrates on POPSTARTER and its VCD/BDMA handoff. Ember uses the same PS1 page but does not use POPSTARTER, BDMA, or the memory-card driver preparation described below.
Every game device has a PS2 library and a PS1 library:
- PS2: ISO / ZSO / UL / HDL rows, as supported by that device.
-
PS1: POPSTARTER
*.VCDand Ember game-folder rows, merged and sorted together on ordinary local devices, SMB, MMCE, and APA/PFS HDD.
How those libraries appear is controlled by PS2/PS1 Game Display (§2). They can be two L3-switched views, one combined list with filters, or a single locked library. They remain views of the same device page — with the same covers, favorites, and per-game settings — rather than extra device tabs.
UDPFS and UDPBD are the deliberate exception: their PS1 pages list Ember titles only.
Ember keeps the already-mounted network transport alive. POPSTARTER resets the IOP and cannot
restore either udpfs: or the UDPBD block device, so RiptOPL does not list VCD rows that could not
launch.
The same PS2/PS1 Game Display picker appears on both Interface and PS Emulation Settings. They edit one persisted setting:
| Value | Behavior |
|---|---|
| Both (L3) (default) | each device page has separate PS2 and PS1 views; L3 switches between them and each page retains its own position |
| Mixed | each device page initially combines its PS2 and PS1 rows; L3 cycles Mixed → PS2 → PS1 on that device |
| PS2 | each applicable device page shows PS2 rows only; L3 is completely inert, with no hint, sound, notification, or pause |
| PS1 | each applicable device page shows PS1 rows only; L3 is completely inert, with no hint, sound, notification, or pause |
The setting applies to device game pages, including UDPFS and UDPBD. It does not control APPS or Favorites; those pages have the independent behavior described below. Switching back to an L3-enabled mode restores each device page's retained position. Returning from the Start/settings menu also returns to the device page you paused on when that page is still visible; it no longer arbitrarily selects USB.
The independent APPS Display picker has two values:
- Mixed (default) shows every configured ELF in one list and leaves L3 completely inert.
-
Apps / PS1ELF (L3) gives APPS two L3 views. Entries whose displayed title contains
[PS1](case-insensitive) appear on PS1ELF; all other entries appear on Apps. This is only a list accommodation for users who package PS1 launchers as ELFs. Either side still launches the entry as an ordinary configured ELF.
Press R3 on a PS1 title to favorite it, exactly as you would a PS2 game. The Favorites page always keeps its own independent four-stop L3 ring:
- All in One — PS2, PS1, and ELF favorites together.
- PS2 — PS2 disc favorites only.
- PS1 — POPSTARTER and Ember favorites together.
- ELF — homebrew/app favorites only.
A VCD favorite launches through POPSTARTER straight from the Favorites tab — even when the source device page is currently showing its disc list — and carries its PS1 cover art and disc badge with it.
The favorite handoff is wired on every device with a VCD view — USB, MX4SIO, iLink, the internal exFAT HDD, SMB, MMCE, and the APA-formatted internal HDD. (On the APA HDD the PS1 games are spread across multiple APA partitions, so opening one of its VCD favorites re-scans those partitions to find the game — the first launch may take a moment.)
VCD titles always boot through POPSTARTER.ELF. They never use OPL's built-in core
or Neutrino, so on a VCD game the per-game Loader Core selector is locked to an
inert label — choosing a core there has no effect on a PS1 game.
For ordinary VCD files, POPSTARTER needs the VCD's name; RiptOPL hands it the selected
title and POPSTARTER finds the matching *.VCD. An APA one-game install instead launches
with its literal, case-sensitive PP.<name> / __.<name> partition label so POPSTARTER can
mount that partition and boot its fixed IMAGE0.VCD.
Every local block-device VCD handoff, including iLink, uses POPSTARTER's normal local selector:
mass:/POPS/XX.<name>.ELF. OPL's live mount may be massN:, but POPSTARTER resets the IOP and
re-registers the selected device driver as bare mass: before it resolves that XX. argument.
Current iLink hardware status: the selector and external equip are present, but revision 2692 still returned POPSTARTER to wLaunchELF on an SCPH-39001 in all four SDK flavours. Ember passed on the same iLink disk. Treat iLink POPSTARTER as wired but not hardware-confirmed until a later build passes; the statement above documents the argument contract, not a claimed successful boot.
Where POPSTARTER.ELF is loaded from is set by PS Emulation Settings →
POPSTARTER.ELF Device — a driver-accurate picker (matching the Neutrino Device picker):
| Choice | Loads POPS/POPSTARTER.ELF from |
|---|---|
| Default | the boot device (where OPL launched, i.e. cwd), then the VCD's own device |
| Memory Card |
mc0: / mc1:
|
| USB | the mounted USB drive |
| MX4SIO | the mounted MX4SIO SD card |
| MMCE |
mmce0: / mmce1: (SD2PSX / MemCard PRO2) |
| HDD (exFAT) | the mounted exFAT internal HDD |
| HDD (APA) | see the note below — APA POPSTARTER only applies to HDD-page launches |
| Custom | reveals a free-text path field — your own absolute POPSTARTER.ELF path |
| Game's Device | the VCD's own device only (<device>:/POPS/POPSTARTER.ELF) — no boot/cwd fallback and no Default fallthrough; a miss aborts with the usual Missing POPSTARTER.ELF warning |
| iLink | the mounted iLink / IEEE 1394 drive |
The picker covers USB / MMCE / MX4SIO / iLink / SMB VCD launches. PS1 VCDs on the internal
APA HDD always load POPSTARTER.ELF from the HDD (the __common then +OPL POPS folder, as
below) regardless of this setting — and that is also why HDD (APA) is inert for launches from
other device pages: those launches unmount pfs0: during their own teardown before the ELF is
read, so a pfs0: POPSTARTER can never survive them (OPL falls through to Default instead of
freezing on a dead path). Keep your APA copy for HDD-page launches; give the other pages a copy on
the boot device or the VCD's own device. For the Custom option the on-screen editor caps at 31
characters; for a longer path set popstarter_path in settings_riptopl.cfg directly.
The picker above chooses which copy of POPSTARTER.ELF is loaded. Which build that copy is
comes down to the file itself, and the release package ships five of them in
POPS/POPSTARTER VERSIONS/:
| Build | Use it when |
|---|---|
| MAIN | POPSTARTER without the SMB support the shipped default carries. Only if you know you do not need SMB. |
| DEBUG | The shipped default. SMB-capable, and prints POPSTARTER's own diagnostics on screen. |
| USBDELAY | USB devices that need longer to settle before POPSTARTER reads them. |
| USBDELAY_DEBUG | USBDELAY plus the diagnostics. |
| USBDELAY_LONGER_DEBUG | A longer delay again, with diagnostics. |
Swapping is manual: copy the POPSTARTER.ELF you want over the POPS/POPSTARTER.ELF that the
picker resolves to. RiptOPL never chooses a build for you and never rewrites that file.
The shipped
POPS/POPSTARTER.ELFis the DEBUG build, deliberately — it is the build carrying SMB support, so it is the correct default for the package. POPSTARTER diagnostic text during an otherwise healthy VCD launch is therefore expected on every device, and is not evidence of a problem on its own. Do not replace it with MAIN unless you are certain you do not need SMB.
| Device | Location |
|---|---|
| USB / MMCE / MX4SIO / iLink / SMB | a POPS folder at the device root, holding POPSTARTER.ELF + your *.VCD files |
| Internal HDD (APA/PFS) | two layouts, both listed: an exact __.POPS, __.POPS0 … __.POPS9 store partition (many *.VCD on its root, named per file), and/or PP.<name> (visible) / __.<name> (hidden-label) one-game partitions. A one-game candidate is listed only when its root contains the exact file IMAGE0.VCD, which prevents similarly named HDD apps from appearing as games; it is shown as <name>. POPSTARTER.ELF is loaded from a POPS folder on the __common partition (then +OPL as a fallback). |
The HDD's
XX.*(BDMA/exFAT) andSB.*(SMBv1) launcher partitions point at VCDs that live on an exFAT device or an SMB share — those games appear under the USB/MX4SIO/MMCE or SMB VCD views, not the internal-HDD one.
VCD per-game config and art use the VCD filename without .VCD as their identity. They
otherwise follow the same layout and suffix rules as PS2 games on that device:
POPS/SCUS_123.45.Example.VCDCFG/SCUS_123.45.Example.cfgART/SCUS_123.45.Example_COV.png
When the filename begins with a valid PS1 disc ID, RiptOPL also accepts that ID as a fallback after
the filename lookup misses. For the example above, the fallback names are
CFG/SCUS_123.45.cfg and ART/SCUS_123.45_COV.png. This is a same-folder compatibility fallback;
POPS/ART/ and a suffixless POPS/<name>.png remain POPSLoader-only layouts.
APA PP.<name> and __.<name> one-game installs are the naming exception: every partition contains
the same physical IMAGE0.VCD filename, so config and art use the displayed <name> from the label.
Internal HDD covers and config: VCD entries use the same OPL data prefix as PS2 HDD games. On a
+OPLdata partition that means its rootART/andCFG/folders; when OPL data lives under the legacy__common/OPL/layout, useOPL/ART/andOPL/CFG/.
POPSTARTER reloads its mass-storage driver after resetting the IOP. USB FAT32 can use its built-in
driver; USB exFAT and the MX4SIO, MMCE, ATA and iLink transports need matching external
block-device modules (the BDMAssault / "BDMA" drivers). RiptOPL
equips them for you from the BDMA rows on Settings → PS Emulation Settings — RiptOPL copies the selected
loose pair from a device's POPS/ folder onto your memory card:
RiptOPL prefers an existing mc0:/POPSTARTER or mc1:/POPSTARTER folder. On first setup it
creates the folder on the first present card (slot 1, then slot 2). Both replacement modules are
staged before the live pair is changed, so a failed copy leaves the previous pair available.
- VCD BDMA Apply on Launch (default On) — POPSTARTER does its own IOP reset and reloads its block-device driver from the memory card, so the right exFAT variant must already be on the card or the game drops to OSDSYS. When On, RiptOPL equips the variant matching the PS1 game you're launching (read from that game's own device) automatically, right before boot. Turn it Off to manage the driver yourself; that reveals the BDMA Source / BDMA Mode pickers below. Automatic equip proves only that the right files were staged; it does not turn the still-failing revision 2692 iLink POPSTARTER result into a pass.
-
USB launches always ask — the PS2 cannot detect whether a USB stick is fat32 or exFAT
formatted, so every USB .VCD launch first shows a "fat32 or exFAT USB Mode?" dialog
(fat32 is recommended for non-exFAT USB users). Picking fat32 de-equips to POPSTARTER's
built-in USB stack (preserving any complete, unmarked manually-managed module pair); picking
exFAT equips the BDMAssault
usbexfatpair. The pick applies even when Apply-on-Launch is Off, and backing out of the dialog cancels the launch. -
BDMA MODE (manual; shown when Apply-on-Launch is Off) — which driver variant POPSTARTER should use:
USB (FAT32)(none — removes the exFAT modules so POPSTARTER falls back to its built-in FAT32 driver),USB (exFAT),MX4SIO (exFAT),MMCE (exFAT),HDD (exFAT)(the internal ATA HDD via BDMAssault), oriLink. -
BDMA SOURCE — which device holds the module files in its
POPSfolder:USB,MX4SIO,MMCE,Internal HDD, oriLink. OPL identifies each device by its block-device driver (usb/mx4sio/ata/ilink/mmce) and reads from that specific device, so pick the one your module files actually sit on. For the internal exFAT HDD chooseInternal HDD— OPL reads the files from the samemassN:/POPS/folder it lists that drive's PS1 games from (it never mounts anata0:filesystem;ata0:is only an internal block-device identity, not a readable path). It is the same physical volume wLaunchELF shows, so placePOPS/usbd.irx.ata+POPS/usbhdfsd.irx.atathere.
Module file names matter. The two driver files in that
POPS/folder must be named for the BDMA MODE you pick:usbd.irx.<mode>andusbhdfsd.irx.<mode>. ForHDD (exFAT)that isusbd.irx.ata+usbhdfsd.irx.ata; iLink usesusbd.irx.ilink+usbhdfsd.irx.ilink(other modes use.usbexfat,.mx4sio,.mmce). Plainusbd.irx/usbhdfsd.irxwith no suffix are ignored. If the selected pair is absent from every searched devicePOPS/folder, RiptOPL warns and leaves the current memory-card pair unchanged.
When you change either setting, RiptOPL copies the chosen variant's modules from the
SOURCE device's POPS folder onto mc?:/POPSTARTER/ and records the equipped state in a
marker file there (compatible with POPSLoader). Every pair ships as separate files in the release
POPS/ folder; no BDMA module is embedded in RIPTOPL.ELF. On apply, RiptOPL strips only the
mode suffix and writes mc?:/POPSTARTER/usbd.irx + mc?:/POPSTARTER/usbhdfsd.irx. Keep the whole
release POPS/ folder on the relevant device so automatic launch preparation can find its pair.
SMB is network-only, so the BDMA equip does not apply to it.
The internal exFAT HDD (enable BDM HDD in Game Sources) mounts as a normal BDM
block device, so its PS1 games in massN:/POPS/ list and launch through the same device page
according to PS2/PS1 Game Display — there's no separate page. Equip the HDD (exFAT) BDMA mode
so POPSTARTER itself can read them off the exFAT volume.
PS1 games on an SMB share need POPSTARTER's own network config (IPCONFIG.DAT +
SMBCONFIG.DAT) on the memory card, plus its SMB modules. Edit those files from
POPSTARTER Network Settings, on Settings → PS Emulation Settings or Settings → Network.
The screen shows what the card's files already contain, can import both from the connected share's
POPS folder, and on OK writes back only the values you changed. The exception is a first setup:
with neither file on the card, saving the SMB values writes IPCONFIG.DAT too, as DHCP unless a
complete static IP is entered. The SMB modules themselves ship in the release's POPS/ folder
(copy them to mc?:/POPSTARTER/); if they're missing, an SMB VCD launch warns rather than
hanging.
Work down this ladder; each step isolates a different stage (from the #154 forensics):
- Does the device page appear at all? If not, it's the device enables, not VCD: USB/MX4SIO/ iLink need their toggles on; the internal exFAT page needs BDM devices + BDM HDD ON. APA/PFS and exFAT/BDM-ATA can both be enabled because they share the ATA stack; leaving the APA page enabled does not suppress the exFAT page.
- Do PS2 ISOs list from the device? If yes, the filesystem/mount layer is proven working and the problem is downstream of listing — skip to the VCD-specific steps below.
- Check PS2/PS1 Game Display. Both (L3) switches between separate libraries and Mixed cycles Mixed/PS2/PS1. L3 is intentionally absent and inert in the locked PS2 and PS1 modes; choose PS1 when you want the PS1 library without an L3 action.
-
VCDs are scanned from
<device-root>:/POPS/*.VCD— the game-folder prefix (usb_prefixetc.) is deliberately not applied, because POPSTARTER itself only reads/POPSat the root. APOPSfolder inside your games subfolder will never be found. -
Name rules: basenames longer than 160 characters and the reserved name
POPSTARTER.VCDare skipped at scan (the debug log says so) — previously they listed but could never launch (a dead ✕ button). Rename the file. -
Fails only after selecting a game? Then listing/scan is fine and the handoff is the
suspect:
POPSTARTER.ELFpresent in/POPS(or__common/POPSon APA)? On a BDMA-backed device, the BDMA equip (§5) is best-effort — a failed equip toasts but the launch still proceeds and may land on OSDSYS. -
iLink returns to wLaunchELF? Inspect the card after the attempt. A successful RiptOPL equip
leaves
mc?:/POPSTARTER/bdma_config.txtcontaining exactlyilink, plususbd.irx(48,500 bytes; SHA-2565EA4818BA1CF5207F6D7CADB4C13B5AFA88C37C260750C21155B079A8C18F369) andusbhdfsd.irx(23,452 bytes; SHA-256145CF1C0AF130EA7AC5CEC6696AA7E60B5C66A2AC46B8DEA94DB17BB3B911BCC). Missing or different files put the defect on RiptOPL's external-equip side; exact files narrow it to POPSTARTER/BDMA runtime reinitialization after the handoff. - UDPFS or UDPBD shows Ember but no VCDs? That is expected. POPSTARTER cannot restore either network transport after its IOP reset, so those two PS1 pages intentionally publish Ember rows only.
- VCD support reuses the normal device pipeline, so covers, favorites and the theme all work exactly as they do for disc games.
- POPSTARTER, the patch file and every BDMA module variant are supplied as separate files in the
release
POPS/folder. RiptOPL embeds none of them. - The Loader Core, GSM, Cheats, PADEMU and similar per-game options do not apply to PS1 games (POPSTARTER ignores them).
See also NEUTRINO.md for the separate PS2 external-core loader, and ../ROLLING_RELEASE.md for what the builds contain.
Related guide: PS1 Games.
Source: docs/VCD.md @ 3ce281b0793c.
Start here
Storage and networking
- USB, MX4SIO and iLink
- MMCE
- Internal HDD: APA and exFAT
- SMB shares
- Network boot: UDPFS and UDPBD
- HTTP
- NBD server
Games and features
- Neutrino core
- PS1: POPStarter and Ember
- Per-game settings
- Virtual memory cards
- GSM video modes
- In-game reset
- Cheats
- PADEMU
- RetroAchievements
- Apps
Interface and customization
Help and reference
- Troubleshooting
- ZSO format
- Backward-compatible PS3
- Credits and sources
- Features in other forks
- Project overview
Detailed references
- Complete repository guide
- Rolling release reference
- APA hard disk safety and code 402
- Autolaunch and global settings
- Controls reference
- GSM reference
- HTTP reference
- In-game reset reference
- Folders, parental lock and audio
- Language maintenance
- MX4SIO launch reference
- Neutrino reference
- PADEMU reference
- RetroAchievements reference
- Theme engine: full authoring reference
- PS1/VCD reference
- HTTP server conformance tools
- APA recovery tool