Launchstation is a PlayStation 2 dashboard, file manager and homebrew launcher based on wLaunchELF_R3Z. Browse devices, launch applications and game images, manage saves and card images, and back up MMCE cards locally or to Google Drive through a controller-driven interface.
Download metrics: Tracked Downloads comes from our persistent per-asset ledger (tracking began 2026-11-03). It preserves observed counts before rolling assets are replaced, but cannot recover older deleted assets or guarantee downloads between snapshots. Current Release Downloads counts only the surviving assets on the moving
latestrelease. Neither number is a verified all-time unique-user count. See releases and recovery and tracking PR #273.
Download · User manual · Wiki · Changelog · Report an issue
- Install and update
- Dashboard and controls
- Features
- Supported devices
- Build from source
- Documentation
- Testing and reporting problems
- Credits and licenses
18 built-in themes, one dashboard. Captured from released build 974 in RIPPCSX2. The sample applications are non-bootable placeholders; no gameplay is shown.
All themes and screenshots | Capture notes.
Launchstation needs a console that can already run homebrew, through an existing launcher or exploit. Copying the app to a card or drive does not install a boot exploit.
- Open the
latestrelease and choose a package below. The standard app supports PS2 controllers; the DS34 variant adds PS3/PS4 DualShock USB/Bluetooth support. - Extract the app ZIP and copy its folder to a supported device. For a memory-card install, select the matching
.psuin Launchstation's File Browser and choose Extract to mc0:/ or Extract to mc1:/. Copying the PSU and using Extract PSU inside the destination card also works. - Launch
LAUNCHSTATION.ELForLAUNCHSTATION-DS.ELFfrom your existing launcher. Keep the accompanying files beside it. The includedtitle.cfglets OPL-compatible application lists identify the app. - Use L1/R1 to switch between Home, Files, Tools and Settings. In Files, choose a device to start browsing.
<build> is the build number shown in the release title and in Launchstation. Published ZIP names include it; PSU and loose ELF names stay fixed.
| Download | Contents / use |
|---|---|
APP_LAUNCHSTATION-<build>.zip |
Standard app folder: LAUNCHSTATION.ELF, title.cfg, APPINFO.PBT, WLE-UPDATE-CA.PEM, BGM.ADP, icon.sys, list.icn, copy.icn, del.icn. |
APP_LAUNCHSTATION-DS-<build>.zip |
DS34 app folder with LAUNCHSTATION-DS.ELF and the same companion files. |
APP_LAUNCHSTATION.psu / APP_LAUNCHSTATION-DS.psu |
The corresponding app folder in memory-card PSU format. |
LAUNCHSTATION.ELF / LAUNCHSTATION-DS.ELF |
Packed executables on their own. |
BOOT.ELF / BOOT2.ELF |
Identical copies of the standard executable for launchers that expect those filenames. |
LAUNCHSTATION-<build>.zip |
Optional full kit: the standard app under APPS/, its PSU, POPS/, EMBER/, neutrino/, PC-tool shortcuts and a file manifest. |
The full kit packages external loaders alongside Launchstation. Its POPStarter/Ember files come unchanged from a checksum-pinned RiptOPL revision; Neutrino comes from the upstream release. Read KIT-README.txt for placement and requirements and the kit manifest for versions and checksums. Ember needs your own 512 KB bios.bin; POPStarter needs your own POPS_IOX.PAK and, where required, IOPRP.IMG. Those files, games and signing keys are not included.
Check the kit's build number: CI can publish the app even if the optional kit fails to rebuild, leaving an older kit attached to latest. The app packages and loose ELFs are the downloads to use for the current app build. Neutrino SMB launching also needs a Neutrino installation containing the SMB modules; the kit manifest records whether its bundled version has them.
WLE-UPDATE-CA.PEM supplies trust certificates for HTTPS update checks. BGM.ADP is optional background music; omit it for a music-free install. For local or loose-ELF installs, res/music.sad can be copied unchanged beside the ELF as BGM.ADP. Interface sound effects are embedded. Both app variants use the same settings format.
Open Settings → Storage & devices → MMCE backups → Check for updates. The updater offers only a release verified as newer than the running commit, downloads the matching standard/DS34 PSU, checks its digest and executable, and keeps the old executable as <name>.ELF.BAK. Restart to use the new build.
Missing certificate/music companion files can be added from a verified package; existing files, including custom music, are preserved. An interrupted .UPDATE or .PACKAGE file requires inspection before retrying. Older updaters may require a one-time manual install of the complete current app package; retain your settings.
See Releases, updates and recovery for supported update paths, older-build migration and rollback. Keep a known-good build for your console; latest is a rolling release.
| Tab | Main tasks |
|---|---|
| Home | Continue, pinned/favorite/recent applications, the Applications library, and Last folder. |
| Files | Browse devices and folders; manage files, saves and card images; launch executables and game images. |
| Tools | Text Editor, disc boot, HDD Manager, exploit installer, OPL IGR backup setup, networking, cloud backups and system information. |
| Settings | Appearance, applications, sound, input, launching, storage, backups, networking and system options. |
START opens the Dashboard menu. SELECT changes Grid/List/Carousel in the Applications library. In the File Browser, Triangle opens actions and Square marks items. Confirm/Back follows the configured X/O preference; a fresh configuration defaults to Circle on Japanese and Chinese consoles and to Cross elsewhere. Follow the on-screen hints for each tool.
The File Browser has four display modes: names, names with details, game titles, and game titles with details. Type is the default sort (folders, executables, text, then other files); Name, Game title, Size, Date-Time, Kind and As stored are also available. See Controls and File Browser.
Storage drivers generally start when needed. Not checked means a device has not been probed, rather than proving it is absent. Faulty hardware can still block synchronous device requests; manual USB diagnostics deliberately probe one logical unit at a time.
- Launch ELF applications from the File Browser, library, favorites or configured launch keys; open KELFs from the File Browser. Applications can be hidden from the library or selected to start at boot.
- Pass arguments from a text file, the Text Editor's current buffer or an
<elf name>.argsidecar. See Launch arguments. - Launch PS2 ISOs through Neutrino, with compatibility modes, GSM/video options, debug colors and PS2-logo control. Save for this game explicitly stores an optional per-Game-ID profile; ordinary Run leaves edits temporary.
- Launch PS1 VCDs through POPStarter, or CUE/BIN/EXE images through Ember under a save-safe
<Ember directory>/games/<Game>/layout. The selected file format chooses the PS1 loader. - Configure or discover external loader paths, independently disable each image loader, and optionally send game IDs to RetroGem or supported MMCE card-selection paths.
The app packages contain Launchstation; game loaders must be installed separately or supplied by the full kit. Launch support depends on the device and loader. SMB ISO launching uses Neutrino's own SMB backend and needs its complete SMB-capable installation on a local device. Direct executable/game launching from PC CARD CF is unsupported. See Game launching for each loader's files, layouts and limitations.
- Copy, move, paste with new names, rename, delete, create folders, edit metadata, use bookmarks (PathPad), and create/extract PSU saves.
- Mount VMC images; view PNG/JPG/JPEG images with zoom, rotation and slideshows; edit text and configuration files.
- Manage APA partitions and inject HDD-OSD/PSBBN headers with the HDD Manager.
- Open Card contents... on a card image to copy/move/delete saves, export PSU files, import saves (
.psu, a Blaze save from the card'sMCMfolder, or a.mcm,.max,.cbs,.sps,.xpsor.psvexport from another tool), copy to a new card size, or split saves into Game ID cards. Convert to .psu... turns one of those exports into a.psu. - Card contents... also opens 128 KB PS1 card images (POPStarter
.VMC, sd2psx/MMCE cards in PS1 mode,.mcr,.vm1): import.mcs,.psv,.psxor raw PS1 saves, export one as.mcs, or delete one. - Use All saves here... to browse saves across card images in a folder and its immediate subfolders. Mark several saves for batch operations.
- Use Save library here... to organize PSU files, copy them to a card, save selections as sets and explicitly apply a set. New blank card... creates a new 1, 2, 4, 8, 16, 32 or 64 MB image, or an empty 128 KB PS1 card; copying to a new card size offers the same 1–64 MB choices. Splitting into Game ID cards starts at 8 MB.
Card-image writes start with a verified WLE-Safety/ copy and read back changes. PCSX2 .ps2 images are read-only in the card editor; mounted VMCs block card-image writes, and an MMCE card being served to the console is protected. New/resized/Game ID cards and these save-management features still need physical-console validation. See Saves and card images for format restrictions and list limits.
- Back up MMCE cards to local history as native
.mcdor PCSX2.ps2images; configure automatic sync and the OPL IGR helper. - Optionally keep Per-save versions as PSU files when individual saves change (Off by default).
- Link Google Drive with a device code, upload missing history over HTTPS, browse cloud history, and download verified card snapshots or individual PSU versions. Official release builds embed the OAuth client; local builds can supply their own.
- Recover snapshots to new files. Store a new snapshot outside selectable MMCE card paths, or install a new numbered/Game ID card where the adapter firmware supports it. Existing active cards are never overwritten by recovery.
Automatic IGR backups can skip unchanged cards using a directory fingerprint. After eight consecutive fingerprint skips, the next backup compares the full image; manual all-card backups compare it in full. Adapter card switching is limited to supported numbered cards; BootCard, named and Game ID cards may need the adapter's buttons.
See MMCE recovery, MMCE backups and Google Drive for setup and safety boundaries.
- FTP, PS2Link and compatible remote ISO transfers start from Tools → FTP / Remote access. UDPFS and SMB shares open through Files; network stacks start on demand. Transfers between SMB and UDPFS, or SMB and PC CARD CF, are refused because their device stacks cannot coexist.
- Configure SMB2/SMB3 shares and an optional SMB1 share in
SMB2.CNF; see Network shares (SMB). SMB and Neutrino SMB support remain pending console validation. - Choose from 18 built-in theme presets, custom colors, wallpapers, fonts (Roboto, System or Emotion Engine), clocks, icons, Classic/PS2-style sound effects and shareable theme folders. See Themes and the wallpaper guide.
- Use English, Spanish, Italian, French, German, Polish, Portuguese, Brazilian Portuguese or Hungarian, with optional external
.LNGoverrides. Some extended help remains English; filenames and metadata retain their original text. - Set a software clock under Settings → System or sync the PS2 clock from the Internet under Settings → Network. A saved software-clock checkpoint resumes on restart but cannot account for time spent powered off.
- Install a supported memory-card boot exploit or bind a custom ELF using your own signing material; see the exploit installer guide for console restrictions and
PS2KEYS.datrequirements.
Device entries depend on the build, console and visibility settings. Listing a transport here describes implemented support, not a guarantee for every adapter or hardware combination.
| Device paths | Use / limitations |
|---|---|
mc0:/, mc1:/ |
Physical memory cards. Slot 2 access requires switching away from an active MX4SIO stack. |
usb:/, usbN:/ (legacy mass:) |
FAT/exFAT USB mass storage. Logical units follow attachment order, not fixed physical ports. |
mmce0:/, mmce1:/ |
MMCE-capable adapters such as SD2PSX, PSxMemCard Gen2 and MemCard PRO 2; firmware capabilities differ. |
mx4sio:/ |
SD storage in a memory-card port. Switching between MMCE and MX4SIO resets the IOP. |
ilink:/ |
i.Link/FireWire storage on supported early consoles; hidden on retail ROM 1.70+ and PSX DESR. |
hdd0:/, ata0:/ |
Internal APA/PFS HDD or BDM/exFAT ATA storage. Hidden on Deckard (SCPH-75K+) and PSX; the second unit is hidden by default. |
cf0:/ |
PC CARD CompactFlash on early Japanese PS2s (ROM 0100/0101/0110/0120). EXFAT builds only; exclusive with DEV9, no direct launches, hardware validation outstanding. |
xfrom0:/, dvr_hdd0:/ |
PSX DESR flash and DVR HDD paths; hidden on other consoles. |
cdfs:/ |
CD/DVD filesystem. |
udpfs:/ |
Network storage using UDPFSD. |
smb:/<NAME>, smb1:/ |
Configured SMB2/SMB3 shares and one optional SMB1 share. |
host:/ |
PS2Link host filesystem in networking-enabled builds. |
See Device support for probing, firmware requirements and hardware-specific restrictions.
The supported build system is PS2BUILD with ps2.yaml. Release builds use its LLVM/Clang toolchain for EE and IOP code; the legacy Makefile build has been retired.
Use a full Git checkout so the generated build number matches the commit history. The repository SDK installer targets Linux x86-64. Have Git, Bash, Python 3.11+, curl, tar, zstd, CMake, Make, GNU timeout and setsid available; the SDK supplies the cross-toolchain and PS2 tools. See Building from source for the complete workflow and troubleshooting.
Run from the repository root:
# Install or refresh the SDK versions pinned in .github/ps2build-sdk.env.
export PS2BUILD_ROOT="$HOME/.local/share/ps2build"
sh scripts/ps2build_sdk.sh --llvm "$PS2BUILD_ROOT"
export PATH="$PS2BUILD_ROOT:$PATH"
export PS2BUILD_TOOLCHAIN=llvm
# Build third-party libraries with the same toolchain as the application.
bash scripts/build_cloud_tls.sh # Mbed TLS -> .cloud-deps/
bash scripts/build_jpeg.sh # libjpeg-turbo -> .jpeg-deps/
python3 scripts/gen_cloud_client.py
python3 scripts/gen_githash.py --require-git
ps2build buildThe SDK installer installs the pinned versions from the official server, with a checksum-verified mirror fallback. A weekly watch proposes new pins as a draft pull request, so builds never ask the server which release is newest. A private mirror requires read access through PS2BUILD_SDK_MIRROR_TOKEN; the official server does not. Rebuild both third-party libraries after changing toolchains or SDK versions.
Outputs include build/bin/wLaunchELF-packed.elf (release executable), build/bin/wLaunchELF.elf and source-built IOP modules. The standard profile enables networking, SMB, native cloud and the storage integrations above; network services generally start on demand. DS34 is a separate variant:
python3 scripts/configure_ds34.py
ps2build build -c .ps2-ds34.yaml -o build-ds34gen_cloud_client.py accepts WLE_GOOGLE_CLIENT_ID and WLE_GOOGLE_CLIENT_SECRET together, or neither. Without them the app still builds, but Drive linking needs a custom client in WLE-CLOUD.CNF. gen_githash.py with --require-git requires full Git history and stamps the build number, commit and date.
For a GCC comparison build, set PS2BUILD_TOOLCHAIN=gcc, rebuild the third-party libraries and use a separate output directory (ps2build build -o build-gcc). Rebuild those libraries again before returning to LLVM.
package_apps.py produces four installable archives and four loose ELFs from the standard and DS34 builds. Its local ZIP filenames are APP_LAUNCHSTATION.zip and APP_LAUNCHSTATION-DS.zip; release CI adds the build-number suffix. The optional full kit uses package_kit.py and the checksum pins in ship/kit-externals.json.
Automated-Build runs host regression tests, builds the documentation and both controller variants, independently builds the PC CARD CF and PS2IP RPC modules, and checks toolchain purity, controller symbols, UDPFS SMAP compatibility and loader memory layout. Pull requests build and test. Publication to latest is restricted to eligible master pushes/manual runs, checks that master has not advanced, verifies ancestry, and confirms each uploaded app asset against its GitHub-computed SHA-256 digest and byte size without downloading it (CI downloads would inflate the public count). A kit failure can leave the previous kit attached.
| Task | Guide |
|---|---|
| Install, update or roll back | Releases and recovery |
| Learn the dashboard and settings | Dashboard reference · Settings manual |
| Set up game loaders | Neutrino · POPStarter · Ember |
| Manage saves or recover MMCE backups | Saves and card images · MMCE recovery |
| Configure networking | Network setup · SMB shares |
| Customize the interface | Themes · Wallpaper example |
| Find technical references and credits | Documentation index · Third-party inventory |
The website includes a searchable guide index. Build an offline copy without the PS2 SDK:
python3 docs-site/build.py --out build/docs --zip build/Launchstation-Documentation.zipEdit docs-site/ for the website and docs/wiki/ for the maintained Markdown guides. CI publishes the generated site to gh-pages and synchronizes managed guides/reference pages to the GitHub Wiki; the wiki must first be initialized. Do not edit generated gh-pages output. See Contributing for the publication workflows.
Host tests use Python 3.11+, GCC and NumPy; they do not require the PS2 SDK. From the repository root, run an individual script or the complete suite with failure propagation:
python3 tests/test_self_update.py
# All host test scripts (after installing NumPy in your Python environment).
failed=0
for test_file in tests/test_*.py; do
python3 "$test_file" || failed=1
done
test "$failed" -eq 0For documentation changes, run:
python3 docs-site/build.py --out build/docs-site
python3 tests/test_project_branding.py
python3 tests/test_wallpaper_docs.pyA successful build or host test does not establish behavior on real PS2 hardware. New save tools, PC CARD CF and SMB/Neutrino SMB paths have outstanding console-validation requirements. Check Troubleshooting before filing an issue.
Include the build number and commit (Tools → About Launchstation), standard/DS34 variant, console model/ROM, storage device and firmware, reproduction steps, and the last working build if known. Keep WLE-CLOUD.TOK, credential-bearing configuration and PS2KEYS.dat out of reports.
Launchstation builds on wLaunchELF_R3Z and the earlier wLaunchELF, uLaunchELF and LaunchELF lineage. Thanks to R3Z3N / Saildot4K for the upstream foundation and continued work.
johnson-cooper created and transferred this fork; NathanNeurotic / Ripto is its current maintainer. Thanks to techwritescode, TnA, oMrRexD, Zackcage, Fifthfox and the wider PS2 homebrew community for collaboration, testing and feedback.
Build and runtime dependencies include PS2BUILD, PS2SDK/ps2dev, mmceman, RiptOPL usbd-ra, ps2ftpd, Ronnie Sahlberg's libsmb2, DS34 drivers including work by Alex Parrado, Mbed TLS, libjpeg-turbo, and the SDK audio package. PC CARD CF draws on PS2CF by mihhru.
External integrations include Neutrino by Rick Gaiser and contributors, POPStarter by krHACKen, Ember by Gageformer, BDM Assault by israpps and Okeanos86, PS2Link, UDPFSD, OSDMenu, KELFTool, CosmicScale's HDD-OSD icon generator, RetroGem and Google Drive. The full kit bundles selected external programs; the app ELF does not embed those game loaders.
See Third-party credits and license inventory for project links, exact roles, bundled/unbundled status and license terms. File-level notices remain authoritative; this repository currently has no single root license covering all components.


