Skip to content

Releases: NathanNeurotic/POPSLoader

Rolling Release

Rolling Release Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 May 10:38

POPSLoader — Rolling Test Build ⚙️

This is a bleeding-edge TEST build, not a stable release. It has everything from the latest stable plus features still being tested. Please try it and report anything odd — and mention you're on the rolling build. To go back to stable, just reinstall the latest entry on the Releases page.

Here's everything new or changed since BETA-9.


🆕 Currently testing (newest — we'd love your feedback)

  • 🆕 Internal HDD (exFAT) — NEW backend! You can now play from an exFAT-formatted internal SATA/IDE drive, picked from the carousel's HDD (exFAT) entry. Set Settings → BDMA Mode to ATA, put the usual POPS/ folder (with your .VCD files) on the exFAT drive, and it works just like USB / MX4SIO / MMCE — same layout, same XX. launch; the BDM Assault drivers (R3Z3N's ATA build) do the rest. It's built and the rolling build is green, but it has not been tested on real hardware yet — if you have an exFAT internal drive, please try it and tell us whether the HDD (exFAT) page lists your games and they launch. (Don't see your games? Confirm the drive is exFAT, BDMA Mode is ATA, and your files are in POPS/.)

Newest this cycle — UI, cover art & navigation (please eyeball the items marked below):

  • Per-game info text — add a <game>.txt for a game, then turn on Settings → Game details (Off / Left / Center / Right alignment) to show it in a panel under the cover. Your line breaks are kept. Scroll long text with the right analog stick (fixed Fast pace, ~7 lines/sec — the Fast/Medium/Slow setting was removed since Fast tested best). Covers and these details files have a selectable home now. Settings → Game List → Cover/details folder picks where they're looked up first on USB / MX4SIO / MMCE: POPS/ART (default), POPS right beside the game, or a top-level ART folder at the drive's root. The game's own POPS/ folder is always checked too as a fallback, so art beside the .VCD keeps working. On the internal HDD it stays hdd0:__common/POPS/ART/. For a multi-disc game, name the file after the game without the (Disc N) part and one .png/.txt covers every disc (the exact per-disc name still works too).

  • Smoother list navigation — the left analog stick now moves the cursor one game at a time (just like the d-pad), with a comfortable hold-to-repeat (it starts repeating after a short hold, then about 5 items/sec). Left/Right (d-pad or stick) jumps a whole page, and L1 still bounces between top ↔ bottom. The stick only kicks in on real analog/DualShock pads now (a digital pad no longer injects a phantom direction), so up/down lands on individual items cleanly — oldman63 and Nuno6573 confirmed this on hardware. And the list no longer bogs down while cover art is on — it was redoing work every frame; please tell us if scrolling feels snappy with covers enabled.

  • Game list cache (opt-in)Settings → Game list cache. USB / MMCE / MX4SIO / HDD can save their scanned list per device so the "Building game list…" step only runs once (rebuild it any time with R1). Off by default. If you switch it on, please test that games still launch from the cached list, not just that it loads fast.

  • New cover-box artwork (newest) — the placeholder in the preview box is now a proper jewel-case picture instead of a text label. With cover preview off you see a clean default case; with preview on but the game has no cover art, that default case gets a small "missing cover" mark layered on top. (The old "Cover disabled" text label is gone, and the single old MISSING.png placeholder was dropped — that alone shaved ~62 KB off the build.) The default, the missing mark, and the frame outline all line up inside the jewel-case window. Please eyeball this on a TV — does the default cover + missing mark sit squarely inside the frame on both NTSC and PAL? It hasn't been checked on real hardware yet.

  • Cleaner game list — wider list, the device name (e.g. "USB") no longer overlaps the top row, and the "Building…" progress bar is calmer.

  • Boot polish — the welcome splash now appears immediately (covering the old boot black screen) and is centered from the first frame; leaner build (~48 KB smaller). Please just confirm boot still reaches the menu cleanly on each device.

  • Boot sound on/offSettings. A new Boot sound switch (default On) for the splash chime; turn it off for a silent boot. It saves with your other settings — oldman63 confirmed it saves and survives a reboot on hardware.

  • Overscan (CRT inset)Settings → "Overscan (CRT inset)". If a real CRT cuts off the edges of the menu, nudge this up (Off, then 5 → up in steps of 5) to pull the whole UI inward, OPL-style. It previews live as you adjust and reverts if you back out without saving; Off by default so nothing changes unless you ask. This one needs CRT eyeballs — try it on a tube TV and tell us whether the inset clears your overscan without leaving black borders.

  • HDD load crash — FIXED. The big one: the HDD game list could fail with "Failed to load HDD" on the second boot (and stay broken until you cleared a file) because of a cache bug. That's fixed — the HDD list should now load reliably every boot. If you ever see "Failed to load HDD" again, please screenshot it — it now shows the real reason on a second line.

  • Display / Video standard fixSettings → Video. POPSLoader now honors your Video Standard choice, with a new Auto default that matches your console's region (fixes e.g. PAL consoles displaying in PAL when NTSC was selected). On PAL the UI now renders natively at 640×512 so it fills the whole screen — no more letterbox / dead band. Two safety nets like OPL: hold START during boot to skip past video settings if a bad mode leaves you with no picture, and a confirm/revert prompt when you change the mode (it auto-reverts if you don't confirm in time). PAL hardware verification is exactly what we'd love feedback on — does the screen fill edge-to-edge?

  • Per-device POPSTARTER pickup — you can now drop a specific POPSTARTER.ELF build on a removable device and have that device's games use it, without forcing it everywhere. At launch the search order is: your explicit POPSTARTER Path setting (or an absolute Profile pick, which now acts as a preset) if it resolves → the game device's own <device>:/POPS/POPSTARTER.ELF if present → the POPSTARTER.ELF next to POPSLOADER.ELF → the usual Memory Card fallback. So e.g. a USB-delay build in your USB drive's POPS/ folder serves USB games while a faster build elsewhere serves the rest. The internal HDD (PFS) install uses the same idea via hdd0:__common/POPS/POPSTARTER.ELF, routed through the existing HDD partition machinery so launch behavior is unchanged. This hasn't been hardware-tested yet — if you place a per-device POPSTARTER, please confirm the right build is used and your games still launch.

  • POPSTARTER Memory Card Folder toggleSettings. A new switch for the mc:/POPSTARTER folder on your Memory Card. Turning it off deletes mc:/POPSTARTER (you'll get a confirm prompt first — it's a destructive action). It's interlocked with BDMA: you can't disable the folder while BDMA mode is on, and you can't enable BDMA while the folder is off. (Heads-up for the curious: the installed BDMA mode is recorded in a bdma_mode.txt marker in your POPSTARTER pack folder — renamed from the old .pldr_bdma_mode; the legacy name is still read.)

  • Boot PageSettings → Startup. Choose where POPSLoader opens after boot: the device carousel (default), or jump straight into a specific device's game list (MX4SIO / USB / MMCE / HDD).

  • Multi-disc gamesSettings → Game List. Optionally hide the extra discs of multi-disc games so only Disc 1 shows. It works by filename, so name your files like Game (Disc 1).VCD / Game (Disc 2).VCD. Launch Disc 1 and swap discs in-game with your VMC.

  • Hide games — press L3 on any game to hide/unhide it (drops a tiny <name>.hide file next to its .VCD, the same way a cover .png can sit beside the game); press R3 to reveal a device's hidden games — they show dimmed so L3 can unhide them — or hide them again. Settings → Game List → Hidden games: Hidden filters them out of the list; Visible (manage) shows them dimmed so you can toggle them back with L3. In-app hiding now works on every device page — USB / MX4SIO / MMCE / Memory Card and the internal HDD (the HDD writes the .hide straight to its boot partition; the old "add the file from a PC" step is gone). If an HDD write ever fails, it falls back to telling you to add the .hide from a PC — please report it if you see that.

  • Carousel device visibilitySettings → Carousel Devices. Hide carousel entries you don't use (including SMB if you don't have a network share, or the not-yet-implemented iLink stub) with a Shown / Hidden toggle per device; at least one device always stays visible. Your launch behavior is unchanged — hidden entries are just skipped on the carousel.

  • HDD settings now save on the HDD — on an HDD install, your Settings save directly to the HDD (on its boot partition), right where POPSLoader lives — same as a USB / MX4SIO / MMCE install keeps its own settings. This used to be a read-only "probe"; it's a real save now. It boots on PCSX2 and provato confirmed the HDD is writable on real hardware, but the full save flow is still validating on hardware — so please save a setting, reboot, and tell us if it stuck.

🎮 Since BETA-9 — the big stuff

Internal HDD (PFS)

  • Major HDD reliability fixes — games that wouldn't launch from an HDD-resident POPSTARTER now work.
  • The HDD game list now loads even wh...
Read more

POPSLoader BETA-12 — Hardware fixes, MX4SIO realignment & game-list features

Choose a tag to compare

@NathanNeurotic NathanNeurotic released this 18 Jun 13:40

POPSLoader BETA-12

The culmination of the BETA-9 → BETA-12 line. BETA-12 folds in a full round of hardware-tester fixes, a rewrite of MX4SIO handling to match OPL's passive BDM model, a batch of game-list features, and two independent source-audit hardening passes — on top of everything shipped since BETA-9.

Hardware-validated where noted; the rest boots clean on PCSX2 and is in hardware validation. If you hit a regression, please open an issue.


⚠️ Requirements — POPS binaries are REQUIRED and are NOT included

POPSLoader is only the launcher GUI. It does not ship the proprietary POPS binaries — you must supply them yourself.

POPS binaries — place in <device>:/POPS/ or hdd:/__common/POPS/:

POPSTARTER — point POPSLoader at a POPSTARTER.ELF (any supported device): mc0:/POPSTARTER/POPSTARTER.ELF, mass:/POPS/POPSTARTER.ELF, mmce:/POPS/POPSTARTER.ELF, mx4sio:/POPS/POPSTARTER.ELF.

PS1 game images.VCD files in <device>:/POPS/ (or hdd:/__.POPS/). Optional <Title>.png cover art (200×200, 8-bit, non-interlaced RGB(A) PNG) and — new in BETA-12 — an optional <Title>.txt details blurb alongside each VCD.

A memory card in slot 1 (mc0) is required for settings and BDMA. BDMA is required for every device except HDD (PFS), and only one BDMA mode is active at a time.


🆕 New in BETA-12

Hardware-tester fixes (#494#497)

  • #494 — Settings now load on a cold USB boot. Saving always worked, but the boot-time settings read could fire before the USB drive finished re-mounting, so the config silently fell back to defaults. The read now waits for the mass device and retries (the same self-heal the game-launch path already had).
  • #496 — Cover art is pixel-aspect correct per video mode. Covers (and the jewel-case frame) are sized from the source aspect × 480/SCR.Y, so square art displays square on both NTSC (640×448) and PAL (640×512). (The original "stretched" report turned out to be a 16:9 TV setting — but the per-mode correction is a genuine refinement and is in.)
  • #497 — The USB "crash" was a false alarm. It was a spurious pre-exec watchdog that could only mis-fire; the block was removed. Genuine post-exec detection stays.
  • #495 — Video-standard readback. Settings → Display → Video Standard now shows the live GS output mode/resolution, so a PAL-on-NTSC mismatch is visible without any launch flags.

MX4SIO realigned to the OPL/BDM model

MX4SIO is now treated as a plain passive BDM mass device (like USB): loading the driver is the init, with no synchronous EE-side card-probe that could stall when no card is present. It only comes up when you actually booted from it, when a configured path lives on it, or when you open the MX4SIO page — never speculatively. A crash-marker makes a no-card stall self-recover on the next boot instead of bricking it.

Game list

  • Multi-disc collapse — "Multi-disc games → First disc only" (Settings → Game List) hides secondary discs; detection now covers (Disc N), [Disc N], (Disc N of M), (CD N) (Redump/No-Intro). Deliberately ignores bare Disc N/CD N suffixes to avoid hiding standalone magazine/demo/music discs.
  • Per-game details panel — optional <Title>.txt shown word-wrapped and centered under the cover art, toggled by a new Game details setting (off by default). Gracefully absent when no .txt exists.
  • L1 — bounce to ends — jumps to the top of the list; press again to bounce to the bottom (fast nav for 1000+ libraries).
  • R1 — rescan in place — re-runs the current device's scan without leaving the page (HDD wipes+rebuilds its cache; MMCE/MX4SIO/USB re-detect + rebuild live) — handy for hotplugging a card/drive.

Reliability & polish

  • Single, consistent progress percentage on the loading overlay (#498).
  • Boot-page persistence (open a chosen device at boot) with crash-loop protection.
  • Source-audit hardening (Gemini + DeepSeek): bounded/guarded file reads, leak/UB fixes in luasystem/graphics/luaplayer, with no behavior change — these only affect corrupt-asset, read-only-boot, and device-error paths.

📦 Cumulative since BETA-9

  • BETA-11 — HDD game list loads when launched from a non-HDD device (cold-drive spin-up retry); DKWDRV from custom HDD paths; BOOT.ELF exit with reboot_iop=0; launch arguments (-page/-mode/-game/-debug); MMCE pad re-init after on-demand mmceman; HDD game-list cache (R1 rescans); dead-code removal (3D pipeline, md5, device-lock); documentation pass.
  • BETA-10-5 — the D-10 fix: HDD POPSTARTER + HDD games reliable (PFS unmount before ExecPS2); launch from wLaunchELF / non-IOP-resetting parents; BOOT.ELF exit restored; per-device settings sidecar (.pldrs next to the ELF); NHDDL-style launch args; newer SDK device prefixes (usb:/ata:/apa:).
  • BETA-10 — HDD D-10 POPSTARTER launch fix; BOOT.ELF / wLaunchELF exit black-screen fixed and restored to the Exit menu; UI polish.
  • BETA-9 baseline — speed, reliability, and cover-art update.

Full commit history: BETA-9-0...BETA-12


🙏 Testing & credits

Hardware testers — endless real-PS2 testing across many sessions and diagnostic builds:

Design & codeBerion (GUI design), El_isra / israpps (POPSTARTER & code), krHACKen (POPSTARTER), nuno6573 & Ripto (scripts), Daniel Santos (Enceladus base), AnimMouse (POPS binaries). uyjulian, fjtrujy, HWC and others for always helping.


⏳ Known issues / in validation

  • The MX4SIO realignment, the #494 USB settings-load retry, and the cover/frame aspect work are source-correct and boot clean on PCSX2; final confirmation on each hardware configuration is ongoing.
  • One specific config previously saw "Failed to load HDD" from a non-HDD boot; under investigation. Most setups are unaffected.

💾 Assets

  • POPSLOADER.ELF — the freshly-built launcher (drop into your PS1_POPSLOADER/ folder).
  • POPSLOADER-rolling-release.zip — the binary + full source snapshot for this exact build.

This program is free and open source. If you bought it, you have been scammed.

POPSLoader BETA-11 — Cold-HDD listing, device-launch fixes & HDD cache

Choose a tag to compare

@NathanNeurotic NathanNeurotic released this 15 Jun 21:47

POPSLoader BETA-11

Successor to BETA-10-5. Headline: the HDD game list now loads when POPSLoader is launched from a non-HDD device (USB / Memory Card), alongside a batch of device-launch fixes, the HDD game-list cache, and a full documentation pass.

Highlights

  • HDD listing from a non-HDD boot — the HDD page now waits for a cold drive to spin up before mounting (retry with back-off) instead of failing instantly with "Failed to load HDD." Hardware-confirmed on multiple setups.
  • DKWDRV from custom HDD paths — slot-tolerant resolution of any custom hdd?:/.../DKWDRV.ELF path (no longer pinned to pfs1).
  • BOOT.ELF exit — launches with reboot_iop=0 for the HDD-boot case on the working route (no IOP-reset hang).
  • Launch arguments-page / -mode / -game / -debug; -page=<device> opens that device's game list directly.
  • MMCE — controller input no longer dies after the on-demand mmceman load (full SIO2 pad re-init); mmceman now sourced from ps2sdk.
  • HDD game-list cache — instant repeat / cross-boot opens of the HDD page; press R1 to force a rescan.
  • Reliability & cleanup — pad init no longer deadlocks boot on a pad fault; HDD init reports honest failure; safer file copy/rename; removed dead code (3D pipeline, md5, device-lock subsystem).
  • Documentation — new PRESERVATION_CONTRACTS.md (launch-path regression armor), refreshed ARCHITECTURE.md / COMPONENTS.md, and a documentation accuracy audit.

Known issues

  • One tester still sees "Failed to load HDD" from a non-HDD boot on a specific hardware configuration; under investigation. Most setups are unaffected — if you hit it, boot POPSLoader from the internal HDD, or open the HDD page a few seconds after the menu appears.

Install

Extract POPSLOADER.zip to your device: PS1_POPSLOADER/ is the loader app, and POPS/PATCH_5.BIN is the POPS patch.

EXTENSIVE THANK YOU TO @nuno6573 for ENDLESS TESTING AND ENDURING MY ENDLESS TROUBLESHOOTING FAILURES

POPSLoader BETA-10-5 (v1.0.0 - rev5)

Choose a tag to compare

@NathanNeurotic NathanNeurotic released this 27 May 15:12
9a0ebe2

POPSLoader BETA-10-5 (v1.0.0 - rev5)

The D-10 release. HDD POPSTARTER + HDD games is finally reliable, plus supporting infrastructure across the launch pipeline.

🎯 Headline fixes

  • HDD POPSTARTER + HDD games (D-10) hardware-confirmed PASS. The long-standing main stabilization blocker is closed. PFS partition unmount before ExecPS2 is the load-bearing fix.
  • POPSLoader launches from wLaunchELF and similar non-IOP-resetting parent launchers now works reliably (ps2sdk #425 workaround in _ps2sdk_memory_init).
  • BOOT.ELF exit from autoboot / OSDSYS / Browser / HOSDMenu-launched POPSLoader is back to working (V2 route restored after an intermediate regression).

✨ New features

  • Per-device settings sidecar: settings (.pldrs) now save next to POPSLOADER.ELF on USB / MC / MMCE / MX4SIO installs. Settings follow the device.
  • NHDDL-style launch arguments: pass -page=hdd (or -mode=ata, NHDDL-compat) to POPSLoader's argv to boot directly to a specific device's game list. Also -game=<selector> (game auto-launch) and -debug (extra diagnostics).
  • Newer SDK device prefixes recognized: usb:, usbN:, ata:, apa: — POPSLoader now correctly classifies the boot device regardless of which path convention the parent launcher uses.

🐛 Other improvements

  • Unified boot-context resolver (ResolveBootContext) replaces three near-copies of the same "where are we" logic; settings, IRX decisions, and UI navigation now share one source of truth.
  • CI Lua syntax validation extended to all bundled .lua files (was previously only etc/boot.lua).
  • Pre-elf_loader dead code removed from system.cpp.

⚠️ Known broken (workarounds available)

  • DKWDRV from a custom HDD path: black-screens. Use the default MC path (mc0:/PS1_DKWDRV/DKWDRV.ELF).
  • BOOT.ELF exit when POPSLoader was booted from HDD: long-standing. Use Exit → OSDSYS, or reboot the console manually.

Full details and chronology in STATE.md and QA_REGRESSION_MATRIX.md.

🙏 Thanks

Nuno for relentless hardware testing across multiple sessions a day, including running diagnostic builds. CosmicScale for the wLaunchELF report that unblocked the bootstrap fix. Berion for the GUI mockup work (landing in a future release).

📦 Install

Download POPSLOADER.zip from the assets below. The ZIP root contains:

  • PS1_POPSLOADER/ — the POPSLoader app files (POPSLOADER.ELF, POPSTARTER.ELF, icons, etc.)
  • POPS/PATCH_5.BIN

Extract to your install location per the README.
@nuno6573 @israpps @NathanNeurotic

POPSLoader BETA 10 — HDD Support Fixes, BOOT.ELF Exit Fix, and UI Improvements

Choose a tag to compare

@NathanNeurotic NathanNeurotic released this 23 May 16:15

Requirements

POPS Binaries

Place these in <device>:/POPS/ or hdd:/__common/POPS/:

PS1 Game Images

Place .VCD files in <device>:/POPS/ or hdd:/__.POPS/:

Box Art

Place <Title>.png alongside your VCDs (HDD uses __common/POPS/ART/).

All art must be 200×200, 8-bit, non-interlaced, RGB(A) PNG.

POPSLoader

Place PS1_POPSLOADER/ contents on any supported device (APPS/PS1_POPSLOADER/ also works).


Splash Screen

GitHub Downloads (all assets, all releases) · Video Preview


POPSLoader BETA-10

A memory card in slot 1 (mc0) is required for settings and BDMA.

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

Device Layouts

BDMA is required for all devices except HDD — enable it in Settings.
Only one BDMA mode can be active at a time (e.g., selecting MMCE disables USB and MX4SIO).
HDD (PFS) works regardless of BDMA status.

USB (FAT32 / exFAT) / MX4SIO / MMCE

<device>:/POPS/<Title>.VCD
<device>:/POPS/<Title>.png

HDD (PFS)

hdd:/__.POPS/<Title>.VCD
hdd:/__common/POPS/ART/<Title>.png

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.

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

Read more

POPSLoader - Beta 9 - Speed, reliability, and art update. (One issue remains)

Choose a tag to compare

@NathanNeurotic NathanNeurotic released this 18 Mar 23:25

HOTFIX:

  • Binaries replaced and proper source added on 03/20/2026
    Should resolve reported issues.

Requirements

POPSTARTER.ELF CAN NOT BE ON HDD - POPSTARTER.ELF CAN NOT BE ON HDD.

POPSLoader can be ANYWHERE. POPSLoader can be ANYWHERE.

POPS Binaries

Place these in <device>:/POPS/ or hdd:/__common/POPS/:

PS1 Game Images

Place .VCD files in <device>:/POPS/ or hdd:/__.POPS/:

Box Art

Place <Title>.png alongside your VCDs (HDD uses __common/POPS/ART/).

All art must be 200×200, 8-bit, non-interlaced, RGB(A) PNG.

POPSLoader

Place PS1_POPSLOADER/ contents on any supported device (APPS/PS1_POPSLOADER/ also works).


Splash Screen

GitHub Downloads (all assets, all releases) · Video Preview


POPSLoader BETA-9

A memory card in slot 1 (mc0) is required for settings and BDMA.

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

Device Layouts

BDMA is required for all devices except HDD — enable it in Settings.
Only one BDMA mode can be active at a time (e.g., selecting MMCE disables USB and MX4SIO).
HDD (PFS) works regardless of BDMA status.

USB (FAT32 / exFAT) / MX4SIO / MMCE

<device>:/POPS/<Title>.VCD
<device>:/POPS/<Title>.png

HDD (PFS)

hdd:/__.POPS/<Title>.VCD
hdd:/__common/POPS/ART/<Title>.png

Status

POPSLoader for MMCE, MX4SIO, USB, and APAHDD - Stabilization Optimization Updates

Choose a tag to compare

@NathanNeurotic NathanNeurotic released this 07 Mar 09:20

Requirements:

What's Changed

Full Changelog: BETA-3...BETA-8.5

POPSLoader - Rebased for Speed and Device Compatibility - Major Performance and Stability Update

Choose a tag to compare

@NathanNeurotic NathanNeurotic released this 01 Mar 12:27
a9e0748

Requirements:

GOALS STILL IN PROGRESS:

  • Save Settings Speed-up
  • Map settings to mc0:/POPSTARTER/ instead of mc0:/POPSLOADER - to save on icon space and redundancy
  • Fix DKWDRV Launching/Graceful Failure
  • Fix Exit to BOOT.ELF/Graceful Failure
  • Alignment Graphical Changes
  • Settings Page Visual Overhaul
  • Button Bar Corrections
  • Embed Startup Sound for Reliability
  • Unify list.icn. to save space between versions
  • smbv1
  • ilink bdma support
  • udpbd bdma support
  • cover art fix (:/POPS/.png)
  • Custom POPStarter path entry
  • Custom DKWDRV path entry
  • Graphical fixes
  • Navigation button fixes
  • Settings page re-design

Splash Screen
GitHub Downloads (all assets, all releases)
Video Preview Here

POPSLoader

POPSLoader is an open-source launcher for POPStarter that is scripted in Lua and built on top of the Enceladus runtime. This repository packages the launcher (POPSLOADER.ELF), runtime Lua scripts, textures, and required modules into a single, portable bundle intended for PlayStation 2 environments such as MMCE and USB mass storage.

POPSLoader was created by El_isra, and this repository is a fork of his work. Endless thanks to Isra for his contributions and open-source projects gifted to the community.

Project lineage: This project is derived from the Enceladus Lua environment and retains its GPLv3 licensing.

What's Changed

Full Changelog: BETA-6...BETA-7

POPSLoader - Speed Improvements, Device Fixes, Broken Art - FEEDBACK REQUESTED

Choose a tag to compare

@NathanNeurotic NathanNeurotic released this 20 Feb 02:36
cf21bd6

Requirements:

What's Changed

Full Changelog: BETA-5...BETA-6

POPSLoader - USB fat32/exfat, MMCE, MX4SIO, and PFS/APA HDD - Beta 5

Choose a tag to compare

@NathanNeurotic NathanNeurotic released this 31 Jan 13:08
a925f2f

01/31/2026

  • Theme updates
  • Stability and Speed Improvements
  • MX4SIO full support added

Requirements:

Splash Screen
GitHub Downloads (all assets, all releases)
Video Preview Here

POPSLoader

POPSLoader is an open-source launcher for POPStarter that is scripted in Lua and built on top of the Enceladus runtime. This repository packages the launcher (POPSLOADER.ELF), runtime Lua scripts, textures, and required modules into a single, portable bundle intended for PlayStation 2 environments such as MMCE and USB mass storage.

POPSLoader was created by El_isra, and this repository is a fork of his work. Endless thanks to Isra for his contributions and open-source projects gifted to the community.

Project lineage: This project is derived from the Enceladus Lua environment and retains its GPLv3 licensing.