Ripto
PSX-Place Supporter
POPSLOADER
POPSLoader
Current public release: BETA 10
POPSLoader
Current public release: BETA 10
POPS Binaries
Place these in <device>:/POPS/ or hdd:/__common/POPS/:
PS1 Game Images
Place .VCD files in <device>:/POPS/ or hdd:/__.POPS/:
Bin/cue images must be converted for POPStarter.
<REDACTED>
Box Art
Place <Title>.png alongside your VCDs.
All art must be 200x200, 8-bit, non-interlaced, RGB(A) PNG.
POPSLoader
Place PS1_POPSLOADER/ contents on any supported device.
POPSTARTER.ELF
Place POPSTARTER.ELF on any supported device and point POPSLoader to that path:
Memory Card / BDMA
A memory card in slot 1 (mc0) is required for settings and BDMA.
BDMA is required for all devices except HDD. Enable it in Settings.
Only one BDMA mode can be active at a time. For example, selecting MMCE disables USB and MX4SIO.
HDD (PFS) works regardless of BDMA status.
Place these in <device>:/POPS/ or hdd:/__common/POPS/:
- IOPRP252.IMG
- POPS.ELF
- POPS.PAK
- POPS_IOX.PAK
PS1 Game Images
Place .VCD files in <device>:/POPS/ or hdd:/__.POPS/:
- <device>:/POPS/<Title>.VCD
- hdd:/__.POPS/<Title>.VCD
Bin/cue images must be converted for POPStarter.
<REDACTED>
Box Art
Place <Title>.png alongside your VCDs.
- USB / MX4SIO / MMCE: <device>:/POPS/<Title>.png
- HDD: hdd:/__common/POPS/ART/<Title>.png
All art must be 200x200, 8-bit, non-interlaced, RGB(A) PNG.
POPSLoader
Place PS1_POPSLOADER/ contents on any supported device.
- PS1_POPSLOADER/<content>
- APPS/PS1_POPSLOADER/<content>
POPSTARTER.ELF
Place POPSTARTER.ELF on any supported device and point POPSLoader to that path:
- mc0:/POPSTARTER/POPSTARTER.ELF
- mass:/POPS/POPSTARTER.ELF
- mx4sio:/POPS/POPSTARTER.ELF
- mmce:/POPS/POPSTARTER.ELF
Memory Card / BDMA
A memory card in slot 1 (mc0) is required for settings and BDMA.
BDMA is required for all devices except HDD. Enable it in Settings.
Only one BDMA mode can be active at a time. For example, selecting MMCE disables USB and MX4SIO.
HDD (PFS) works regardless of BDMA status.
About
POPSLoader is an open-source PlayStation 2 launcher for POPStarter, scripted in Lua and built on top of Enceladus runtime components.
This repository contains:
- The launcher: POPSLOADER.ELF
- Embedded runtime Lua scripts/assets
- Embedded IOP modules
- Packaging/build logic for release artifacts
Project Lineage
- POPSLoader was created by El_isra, and this repository is a forked continuation of that work.
- Derived from Enceladus by DanielSant0s.
- Maintains GPLv3 licensing lineage.
Current Feature Status
- MMCE - Implemented
- MX4SIO - Implemented
- HDD (PFS) - Implemented
- USB - Implemented
- Disc (DKWDRV) - Implemented
- HDD (exFAT) - Not implemented
- SMB (v1) - Not implemented
Installation (Prebuilt)
- Download the latest POPSLOADER.zip release.
- Extract and keep the packaged layout intact.
- Copy PS1_POPSLOADER/ and POPS/ to your target storage.
- Add PS1 .VCD files to the selected backend POPS/ location.
- Launch POPSLOADER.ELF using your preferred ELF launcher.
Package Layout
Code:
PS1_POPSLOADER/
POPSLOADER.ELF
POPSTARTER.ELF
APPINFO.PBT
title.cfg
icon.sys
list.icn
copy.icn
del.icn
POPS/
PATCH_5.BIN
Device Layouts
USB / MX4SIO / MMCE
- <device>:/POPS/<Title>.VCD
- <device>:/POPS/<Title>.png
HDD (PFS)
- hdd:/__.POPS/<Title>.VCD
- hdd:/__common/POPS/ART/<Title>.png
Notes
- PS1_POPSLOADER/ can be installed/launched from any device path supported by your loader setup.
- POPS/ content location is backend-dependent and must match the active launch backend expectations.
- CI validates the package manifest above and excludes legacy POPS/*.tm2 payload entries.
POPSLoader BETA 10
This release fixes several important issues with POPSLoader, especially for users launching PS1 games from HDD.
The biggest improvement is that the HDD launch path has been cleaned up and tested on real PS2 hardware. The D-10 issue that caused HDD-based POPSTARTER launching to fail has been fixed, making HDD support much more reliable.
This release also fixes the BOOT.ELF exit option, so users can return to wLaunchELF from POPSLoader again without hitting a black screen.
What's New
HDD Launching Is Fixed
HDD support is now in a much better state.
The issue that caused the D-10 HDD launch test to fail has been fixed. POPSLoader can now hand off to POPSTARTER from HDD correctly, without breaking the existing launch behavior for other devices.
This means HDD users should have a much smoother experience when launching PS1 games through POPSLoader.
BOOT.ELF Exit Works Again
The BOOT.ELF exit option has been restored.
You can now use the Exit menu to launch BOOT.ELF / wLaunchELF again. The Triangle shortcut has also been restored.
This was previously hidden because it caused a black screen on real hardware. That issue has now been fixed and tested.
UI Improvements
This release also includes interface cleanup and polish.
The Exit menu has been updated, BOOT.ELF is visible again, and the current UI improvements from the development branch are included.
Documentation Updates
Some project documentation and QA notes were also updated.
These updates help track what was fixed, what was tested, and what still needs future attention.
Fixed
- Fixed HDD D-10 POPSTARTER launch failure.
- Fixed BOOT.ELF / wLaunchELF exit black screen.
- Restored BOOT.ELF in the Exit menu.
- Restored Triangle shortcut for BOOT.ELF.
- Improved HDD launch reliability.
- Preserved existing USB, MMCE, MX4SIO, SMB, and non-HDD launch behavior.
- Included GUI polish and documentation updates.
Tested
Tested on real PS2 hardware.
Confirmed working:
- HDD POPSTARTER launching.
- BOOT.ELF / wLaunchELF exit.
- Triangle shortcut for BOOT.ELF.
- Existing working launch paths remain intact.
Release Notes
This is being released as BETA 10.
Even though some of the development work happened on the BETA-12-PLAY branch, this release represents the current tested public build point.
Recommended for users who want the latest HDD fixes, restored BOOT.ELF exit support, and the newest UI improvements.
What's Changed
- Move RESET_IOP reboot into _ps2sdk_memory_init hook by @NathanNeurotic
- Refactor POPSTARTER launch assembly into shared helper for HDD/non-HDD parity by @NathanNeurotic
- Add strict HDD POPSTARTER pre-exec accessibility gate by @NathanNeurotic
- Tighten HDD POPSTARTER launch route contract and explicit fallback by @NathanNeurotic
- elf_loader: move embedded loader control args off POPSTARTER argv by @NathanNeurotic
- Preserve System.loadELF argv contract for HDD reboot paths by @NathanNeurotic
- Harden pfsN to HDD partition recovery for POPSTARTER by @NathanNeurotic
- Add guarded pfs POPSTARTER launch fallback when partition context is unavailable by @NathanNeurotic
- Improve HDD partition context recovery for mounted pfs slot paths by @NathanNeurotic
- Preserve POPSTARTER exec PFS slot during external ELF launch handoff by @NathanNeurotic
- Improve pfsN slot recovery and POPSTARTER HDD partition resolution by @NathanNeurotic
- Ensure POPSTARTER argv selector present and preserve exec PFS slot by @NathanNeurotic
- Deterministic pfsN:/ slot recovery in BuildHddPartitionContext by @NathanNeurotic
- Prefer HDD game partition during POPStarter pfs context recovery by @NathanNeurotic
- Improve pfs slot HDD partition recovery order by @NathanNeurotic
- Preserve original POPSTARTER PFS slot during external ELF launch by @NathanNeurotic
- Preserve source PFS slot metadata during POPSTARTER HDD launch setup by @NathanNeurotic
- elf_loader: enforce POPSTARTER argv[0] contract for HDD-backed embedded loader launches by @NathanNeurotic
- Support mounted-pfs-fallback when POPSTARTER HDD partition context is unavailable by @NathanNeurotic
- Add STRICT_HDD_PREEXEC_GATE setting to control HDD pre-exec gate behavior by @NathanNeurotic
- Restrict PLDR.RunPOPStarterGame mounted-pfs fallback to HDD-derived launches by @NathanNeurotic
- Preserve raw HDD partition context across POPStarter path resolution by @NathanNeurotic
- Resolve profile vs persisted POPSTARTER backend mismatch and normalize selection by @NathanNeurotic
- Add launch diagnostics snapshot to POPSTARTER failure UI by @NathanNeurotic
- Enforce explicit POPSTARTER path precedence and persist selection mode by @NathanNeurotic
- Harden POPSTARTER default path handling for absolute custom device paths by @NathanNeurotic
- Show configured/effective/resolved POPSTARTER paths in launch-failure UI by @NathanNeurotic
- Extract IOP reset to _ps2sdk_memory_init and fix loader.c generation in elf_loader Makefile by @NathanNeurotic
- Compact launch-failure diagnostics: show profile, route, configured/effective/exec paths by @NathanNeurotic
- HDD fallback-mounted-pfs: reconstruct POPSTARTER exec mount from selected partition by @NathanNeurotic
- Add explicit launch-failure reason codes for config and partition context by @NathanNeurotic
- docs: resync BETA-12-PLAY source-truth audit by @NathanNeurotic
- Preserve custom POPSTARTER path commits by @NathanNeurotic
- Document potential settings/path integrity risk for POPSTARTER saves by @NathanNeurotic
- Track profile-default POPStarter selection and persist selection mode on save by @NathanNeurotic
- Settings: rewrite MPROFILE as OPL-style focused list by @NathanNeurotic
- Settings: prompt to save on Back when there are unsaved changes by @NathanNeurotic
- D-10: recover mounted-PFS source partition + fix popup arg slots by @NathanNeurotic
- Launch failure popup: add Boot/Path/Ctx diagnostic lines by @NathanNeurotic
- Checkpoint UI polish with known BOOT.ELF issue by @NathanNeurotic
Full changelog:
https://github.com/NathanNeurotic/POPSLoader/compare/BETA-9-0...release
Updates / Improvements Coming
BETA 10 fixes several major hardware-tested issues, but there is still more planned for future POPSLoader builds.
- Boot speed improvements - Reducing startup time where possible so POPSLoader reaches the game list faster.
- Further wLaunchELF / BOOT.ELF compatibility fixes - Future updates may continue improving compatibility for certain wLaunchELF builds, memory card setups, or unusual launch environments.
- Modchip black-screen investigation - Some modchip setups may behave differently during launch or exit handoff.
- Smaller ELF / package size - Reducing file size by cleaning up unused code, old leftovers, duplicate logic, and unnecessary embedded assets.
- Lazy loading where possible - Investigating whether some assets, menus, images, or features can be loaded only when needed.
- POPS profile replacement / custom path cleanup - Replacing older POPS profile-style behavior with a cleaner custom-path system.
- Better device detection - Improving how POPSLoader detects and handles devices like usb:, mx4sio:, and ata:.
- DKWDRV launch-condition improvements - Updating DKWDRV launch checks to behave more like the fixed BOOT.ELF conditions.
- Berion graphical improvements - Continued visual polish and possible graphical improvements based around Berion-style presentation work.
- Credits update - Updating the credits so contributors, testers, tools, and related project work are represented more accurately.
- Optional boot-sequence skip - Adding a setting to skip or shorten the boot sequence.
- HugoPocked fixes menu - Adding a per-game fixes/settings menu for HugoPocked-related compatibility options.
- Cheats menu - Adding a per-game cheats menu.
- VMC menu - Adding per-game VMC settings.
- Disc swap / multi-disc setup menu - Adding a per-game setup menu for multi-disc games.
- IGR button-combination options - Adding settings for in-game reset button combinations.
- Help menu - Adding a Help page for controls, paths, setup notes, and troubleshooting.
- Cover art / asset-loading improvements - Improving how covers and assets are loaded, especially for larger libraries and slower devices.
- Large game-list performance cleanup - Improving browsing performance for bigger PS1 collections.
- Cleaner settings organization - Continuing the move toward easier settings pages.
- Better release packaging - Making release ZIPs easier for new users to understand.
- More hardware testing across devices - Continuing to test USB, HDD, MMCE, MX4SIO, SMB, BOOT.ELF, and POPSTARTER paths on real hardware.
The goal for future releases is to make POPSLoader faster, smaller, easier to configure, and more reliable across different PS2 setups.
Extra Thanks
The testing community and their patience:
- El_isra
- @VizoR
- @bigol
- @nuno6573
- @P4NCHOL1NO
- @rorcarrot
- @Undead
- @Berion
- @R3Z3N
- ps2store.com @Kamo
- And many others
OLDPOST:
- [device]:/POPS/ or hdd:/__common/POPS/
- IOPRP252.IMG, POPS.ELF, POPS.PAK, POPS_IOX.PAK
- <device>:/POPS/ or hdd:/__.POPS/
<Title>.VCD — bin/cue converted for POPStarter - PS1_POPSLOADER/<content> or APPS/PS1_POPSLOADER/<content>
Last updated: 2026-03-20
POPSLoader is an open-source PlayStation 2 launcher for POPStarter, scripted in Lua and built on top of Enceladus runtime components.
This repository contains:
- the launcher (POPSLOADER.ELF)
- embedded runtime Lua scripts/assets
- embedded IOP modules
- packaging/build logic for release artifacts
Project Lineage
- POPSLoader was created by El_isra, and this repository is a forked continuation of that work.
- Derived from Enceladus by DanielSant0s.
- Maintains GPLv3 licensing lineage.
Current Feature Status
- MMCE - Implemented
- MX4SIO - Implemented
- HDD (PFS) - Implemented
- USB - Implemented
- Disc (DKWDRV) - Implemented
- HDD (exFAT) - Not implemented
- SMB (v1) - Not implemented
Installation (Prebuilt)
- Download the latest POPSLOADER.zip release.
- Extract and keep the packaged layout intact.
- Copy PS1_POPSLOADER/ and POPS/ to your target storage.
- Add PS1 .VCD files to the selected backend POPS/ location.
- Launch POPSLOADER.ELF using your preferred ELF launcher.
Package layout:
Code:
PS1_POPSLOADER/
POPSLOADER.ELF
POPSTARTER.ELF
APPINFO.PBT
title.cfg
icon.sys
list.icn
copy.icn
del.icn
POPS/
PATCH_5.BIN
Notes:
- PS1_POPSLOADER/ can be installed/launched from any device path supported by your loader setup.
- POPSTARTER.ELF can not be launched from HDD.
- POPS/ content location is backend-dependent and must match the active launch backend expectations.
- CI validates the package manifest above and excludes legacy POPS/*.tm2 payload entries.
Extra Thanks:
- The testing community and their patience:
- @VizoR @bigol @nuno6573 @P4NCHOL1NO @rorcarrot @Undead @Berion @R3Z3N : ps2store.com @Kamo, and many others!
Last edited:
