-
Notifications
You must be signed in to change notification settings - Fork 2
PS1 Games
RiptOPL can list and launch your PlayStation 1 games right alongside your PS2 library,
on the same device. It does this through two cores — POPSTARTER for *.VCD
images and Ember for game folders containing *.cue, *.bin, or
*.exe discs. Ordinary devices merge both into one PS1 list. Neither uses OPL's built-in core or Neutrino, so this is a self-contained path with
its own storage layout and settings.
| Core | Format | Lives in |
|---|---|---|
| POPSTARTER | *.VCD |
<device>:/POPS/ |
| Ember |
*.cue / *.bin / *.exe
|
<device>:/EMBER/games/<Game Name>/ |
The two are interleaved and sorted as one library, so a game you keep for both cores simply appears twice. Which core runs a title is a property of that row, decided when you launch it — there is nothing to configure and no third toggle.
ℹ POPSTARTER internals are on the sister site
This page covers the RiptOPL side: where to put your files, how the PS1 view works, and the BDMA exFAT equip. For POPSTARTER itself — the 32-byte per-game config table, cheats, IGR/hotkeys, multi-disc setups, and memory-card storage — see the POPStarter docs: config table · cheats · IGR & hotkeys · multi-disc · storage.
Every supported game page holds a PS2 list and a PS1 list:
- its PS2 games (ISO / ZSO / UL format), and
- its PS1 games — POPSTARTER
*.VCDimages and Ember*.cuetitles together, in one list.
PS2/PS1 Game Display controls whether these are separate L3-switched views, a combined list with filters, or one locked library. They remain views of the same device page — with the same covers, favorites, and per-game settings — rather than separate device tabs.
ℹ UDPFS and UDPBD list Ember only
Their PS1 pages are enabled, but never publish POPSTARTER/VCD rows. Ember inherits the already-live
udpfs: or network block-device mount; POPSTARTER resets the IOP and cannot restore either
transport. Hiding rows that cannot launch keeps the network PS1 page honest.
The same picker appears on both Settings → Interface and Settings → PS Emulation Settings. They edit one value:
| 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 starts with PS2 and PS1 rows combined; L3 cycles Mixed → PS2 → PS1 on that page. In the combined list each row's cover is drawn at its own media's size, so PS1 covers stay square beside portrait PS2 covers. |
| PS2 | Applicable device pages show PS2 only; L3 is fully inert, with no hint, sound, notification, or pause. |
| PS1 | Applicable device pages show PS1 only; L3 is fully inert, with no hint, sound, notification, or pause. |
APPS and Favorites do not inherit this setting. Favorites always has its independent
PS2 → PS1 → ELF → All in One ring, opening on PS2. Applications Display either keeps
all ELFs in one inert Mixed list or splits Apps / titles containing [PS1]
(case-insensitive) across L3; either side still launches an ordinary ELF. Switching back to an
L3-enabled device mode restores each device page's retained position.
ℹ Positions survive a reboot
Wherever L3 does something, the view you leave a page on is remembered across sessions — every device page, the Favorites shelf and the APPS split side keep their own. Pressing L3 never writes to storage: a position rides along with a write that already happens — launching a game, or saving settings — so toggling and then powering off without doing either is the one case that is not kept. A remembered view that this picker no longer allows (you moved from Mixed to Both, say) is discarded rather than forced, so the page opens on its default instead of on a view with no rows.
A PS1 row carries its own core. A *.VCD row boots through
POPSTARTER.ELF; an Ember row boots through ember.elf. Neither ever uses
OPL's built-in core or Neutrino, so on any PS1 game the per-game Loader Core selector is an
inert label and changing it has no effect. The same applies to GSM, Cheats, PADEMU and the other
PS2-specific per-game options — neither PS1 core reads them.
POPSTARTER only needs the VCD's name to do its job. RiptOPL hands it the selected title
and POPSTARTER locates the matching *.VCD file itself. Ember is handed the name of the
game folder and finds its own disc image inside it.
For an iLink VCD, RiptOPL uses the same local block-device handoff as USB and MX4SIO:
mass:/POPS/XX.<game>.ELF. The normal XX. filename rules therefore
apply unchanged.
⚠ iLink POPSTARTER is wired, not yet hardware-confirmed
Revision 2692 still returned POPSTARTER to wLaunchELF from iLink on an SCPH-39001 in all four SDK flavours, while Ember passed from the same drive. The selector and external equip documented here are present, but that test result is not a pass. Use the card-file checks below to distinguish a RiptOPL equip failure from a POPSTARTER/BDMA runtime failure after handoff.
By default RiptOPL looks for POPSTARTER.ELF in each device's POPS
folder. To pin it to one device instead, set
Settings → PS Emulation Settings → POPSTARTER.ELF Device — Default, Memory Card, USB, MX4SIO, MMCE,
HDD (exFAT), HDD (APA), Custom, Game's Device, or iLink. The free-text POPSTARTER.ELF Path field
below it only appears when the Device is set to Custom. The on-screen editor caps at 31
characters; for a longer path set popstarter_path in
settings_riptopl.cfg directly.
Ember is created by Gageformer. It is an independent PlayStation 1
emulator written from scratch for the PS2, bundled unmodified under the Ember Public Beta Testing Licence.
That licence ships in the release package as EMBER/LICENSE-BETA.txt and governs the
build it accompanies; please read it. In short: free to use and to bundle non-commercially, no
selling, and no modifying or repackaging the build.
ℹ Report Ember problems to us first
The launching is ours and most issues turn out to be on our side. Please raise them on the RiptOPL issue tracker rather than with Gageformer.
The release package contains a ready-made EMBER/ folder. Copy it to the root
of a device, right beside POPS/. Then add your own PS1 BIOS as
EMBER/bios.bin — it must be exactly 512 KB. A BIOS is copyrighted and is never
distributed with RiptOPL or with Ember, so the folder ships with a placeholder file whose name
reminds you. Give each game its own folder:
<device>:/EMBER/
ember.elf
bios.bin <- yours, 512 KB, not included
settings.txt <- optional, see below
games/
Spyro 2 (Ripto's Rage)/
whatever.cue
whatever.bin
The folder name is what you see in the list, and it is also the key for cover art and
per-game settings — so ART/Spyro 2 (Ripto's Rage)_COV.png on that device just works,
exactly as it does for a *.VCD. Files inside can be named anything;
.cue is preferred over .exe over .bin. Ember writes its
per-game memory cards (MC1.vmc, MC2.vmc) into that same game folder, so it
has to be on writable media.
Ember can output 240p or 480p, and there is a setting for it at
Settings → PS Emulation Settings → Ember Display Mode. Ember's settings.txt is
an optional file and RiptOPL keeps it that way:
| Value | What RiptOPL does |
|---|---|
| Default | Never creates the file. If one exists, the display key is removed from it — and the file itself is removed when that key was all it held. |
| 240p / 480p | Writes the key to <device>:/EMBER/settings.txt when you launch an Ember title, on that device only — creating the file if it is not there, updating it in place if it is. |
Any other lines in that file — comments, or keys a future Ember adds — are preserved throughout. Ember's own default is 480p, so leaving this on Default and having no file mean the same thing.
Ember titles are supported on USB, MX4SIO, iLink, exFAT-ATA, MMCE, SMB, APA/PFS HDD,
UDPFS and UDPBD. Ordinary device pages merge Ember folders with their POPSTARTER rows; the two
UDP network pages are Ember-only. A device with no EMBER/ library simply contributes no
Ember rows, and every ordinary device's POPSTARTER library lists exactly as before.
| Device | Location |
|---|---|
| USB / MMCE / MX4SIO / iLink / SMB | A POPS/ folder at the device root, containing POPSTARTER.ELF and your *.VCD files. |
| Internal HDD (APA/PFS) | The dedicated APA partitions __.POPS, __.POPS0 … __.POPS9. Each partition holds its *.VCD files at the partition root. |
| Internal HDD (exFAT / BDM) |
massN:/POPS/ — the same layout as USB, accessed through the BDM mass-device namespace. Requires the BDMA exFAT equip. |
ℹ Cover art and per-game config by disc ID
If a VCD's filename follows the PS1 disc-ID pattern SXXX_NNN.NN.Title.VCD, RiptOPL
keys cover art and per-game config off that PS1 ID — so covers load from your ART/
folder exactly as they do for PS2 games. Any other *.VCD filename is still listed and
launched; it just won't auto-match art by ID.
POPSTARTER's stock driver handles ordinary USB FAT32. USB exFAT and the MX4SIO, MMCE, ATA and
iLink transports need matching external block-device modules (the BDMAssault / "BDMA" drivers). RiptOPL
equips them onto your memory card from Settings → PS Emulation Settings — you supply the module
files, RiptOPL copies the right pair to mc?:/POPSTARTER/. VCD BDMA Apply on Launch
ships On, so by default the matching pair is equipped automatically immediately before each VCD
launch and the manual BDMA Source / BDMA Mode pickers stay hidden; turn it Off to
equip by hand instead.
ℹ You supply the BDMA module files
RiptOPL embeds none of the BDMA modules (no ELF bloat). The module files must be present in a
POPS/ folder RiptOPL can read: with VCD BDMA Apply on Launch On (the
default) that is the game's own device; with it Off, whichever device you select as the
BDMA Source. RiptOPL also pre-checks your boot device's POPS/ folder — and the
folder holding a custom POPSTARTER.ELF, if you set one — ahead of either. The release
POPS/ folder includes what ships with the build; check the
Releases page for details.
For iLink the loose source pair is usbd.irx.ilink +
usbhdfsd.irx.ilink. RiptOPL removes only the .ilink suffix when it
copies them to the card as usbd.irx + usbhdfsd.irx.
ℹ Verify an iLink equip after a failed launch
The card should contain mc?:/POPSTARTER/bdma_config.txt with exactly ilink,
usbd.irx at 48,500 bytes (SHA-256
5EA4818BA1CF5207F6D7CADB4C13B5AFA88C37C260750C21155B079A8C18F369), and
usbhdfsd.irx at 23,452 bytes (SHA-256
145CF1C0AF130EA7AC5CEC6696AA7E60B5C66A2AC46B8DEA94DB17BB3B911BCC). Missing or different
files identify RiptOPL's external-equip leg; exact files narrow the remaining failure to the
POPSTARTER/BDMA reinitialization leg.
Shown only when VCD BDMA Apply on Launch is Off. Selects which driver variant POPSTARTER should use:
| BDMA Mode value | Effect |
|---|---|
| USB (FAT32) | Removes any previously equipped exFAT modules, so POPSTARTER falls back to its built-in FAT32 driver. Use this for standard FAT32 USB drives. |
| USB (exFAT) | Equips the USB exFAT BDMAssault modules. |
| MX4SIO (exFAT) | Equips the MX4SIO exFAT BDMAssault modules. |
| MMCE (exFAT) | Equips the MMCE exFAT BDMAssault modules. |
| HDD (exFAT) | Equips the internal ATA HDD BDMAssault modules. Requires Internal HDD (exFAT) enabled in Game Sources. |
| iLink | Equips the iLink / IEEE 1394 BDMAssault modules from the .ilink pair. |
Shown only when VCD BDMA Apply on Launch is Off — with it On the source is
the game's own device family instead. Selects which device RiptOPL reads the module files from (the
device whose POPS/ folder holds the variant you want to equip): USB,
MX4SIO, MMCE, iLink, or
Internal HDD. RiptOPL identifies the 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 an internally attached exFAT
HDD choose Internal HDD — RiptOPL reads it from its mounted massN: root (the exFAT
volume mounted through the BDM mass-device namespace, never a typed ata0: filesystem), so its
POPS/usbd.irx.ata + POPS/usbhdfsd.irx.ata are found.
SMB is network-only, so the BDMA equip does not apply to it.
Copy the appropriate BDMA variant's module files into the POPS/ folder of the
device you will select as the Source (USB, MX4SIO, MMCE, iLink, or the internal HDD).
In Settings → PS Emulation Settings, set VCD BDMA Apply on Launch to Off. The BDMA Source and BDMA Mode pickers are hidden while it is On (the default).
In Settings → PS Emulation Settings, set BDMA Source to the device that holds the module files.
Set BDMA Mode to the variant matching your target drive type (e.g. USB (exFAT) for an exFAT USB stick, HDD (exFAT) for the internal ATA drive, or iLink for IEEE 1394 storage).
Save. RiptOPL copies the modules from Source's POPS/ onto
mc?:/POPSTARTER/ and records the equipped variant in a marker file there
(bdma_config.txt) so the settings UI reflects what's actually installed.
POPSTARTER will use the new modules on next launch.
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 files on the memory card already
contain, can import both from the connected share's POPS folder, and writes back only what you
change. On 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. See POPSTARTER Network Settings.
The SMB modules themselves ship in the release's POPS/ folder — copy them to
mc?:/POPSTARTER/. If they are missing, an SMB VCD launch warns you rather than
hanging silently.
The internal HDD supports PS1 games through two paths that coexist:
-
APA/PFS partitions — the traditional POPS APA volumes (
__.POPS,__.POPS0…__.POPS9). RiptOPL scans all of them and lists their*.VCDfiles in the HDD device's PS1 view. No BDMA equip is needed here because POPSTARTER reads PFS natively. -
exFAT HDD (BDM) — enable Internal HDD (exFAT) in Game Sources. The exFAT volume
mounts as a normal BDM block device (one of the
massN:slots) and itsPOPS/folder appears in the same PS1 view as USB. Equip the HDD (exFAT) BDMA mode so POPSTARTER can read back off the exFAT volume at launch time.
For the full HDD setup guide, including the APA/exFAT layout and how to enable BDM HDD, see Internal HDD (APA & exFAT).
- The PS1 view reuses the normal device pipeline, so covers, favorites, and the theme all work exactly as they do for disc games.
- POPSTARTER, every loose BDMA pair (including
.ilink), and the POPS patch file ship as separate files in the releasePOPS/folder — RiptOPL does not embed any of them. - The per-game Loader Core, GSM, Cheats, PADEMU, and OSD options do not apply to PS1 games; POPSTARTER ignores them and the UI reflects this.
- SMB PS1 requires POPSTARTER's own network modules on the memory card in addition to the network config files.
The following topics are fully documented on the POPStarter docs site and are not re-documented here:
Detailed reference: PS1/VCD reference.
Source: ps1-vcd.html @ fc2e13154e51. Read on the documentation website.
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