△◯✕□ launcHER DOCS
Downloads GitHub

Storage Profiles

launcHER features a modular storage stack compiled directly into its standalone binary. Each transport has specific configuration requirements to ensure the storage interface remains online for Ember.

Profile 1: USB Mass Storage

Applies to USB flash drives, USB external hard drives, and USB external SSDs.

path=mass?:/EMBER/ember.elf
arg=<GAME_FOLDER>

The wildcard mass?: searches all connected USB drives (mass0:, mass1:, etc.) in order until EMBER/ember.elf is located. You can also specify usb?: or a fixed unit like mass0:.

Profile 2: Internal exFAT HDD (ATA BDM)

Applies to internal PS2 hard drives or SSDs formatted with exFAT under the BDM ATA driver.

path=ata:/EMBER/ember.elf
arg=<GAME_FOLDER>
arg=-dev9=NICHDD
Why -dev9=NICHDD?
By default, PS2 loaders shut down hardware peripherals before transferring execution to a child ELF to ensure a clean slate. Adding arg=-dev9=NICHDD prevents launcHER from cutting power to the Network Adapter / IDE controller, allowing Ember to continue reading from ata:/.

Profile 3: Internal APA / PFS HDD Partitions

Applies when Ember itself is installed inside an APA partition formatted with the PlayStation File System (PFS).

path=hdd0:<PARTITION>:pfs:/EMBER/ember.elf
arg=pfs0:/EMBER/ember.elf
arg=<GAME_FOLDER>
arg=-skip_argv0
arg=-dev9=NICHDD

Real-world examples:

Why does APA/PFS need two paths?
launcHER must locate and mount the physical partition using the hdd0:<PARTITION>:pfs: syntax. Once mounted by the PS2 filesystem driver, Ember expects to access itself as pfs0:/EMBER/ember.elf.

arg=-skip_argv0 instructs launcHER to omit the raw hdd0: loader path from Ember's argument array, ensuring Ember's working directory resolves seamlessly.

Profile 4: MMCE (Multi-Media Card Emulator)

High-speed SPI SD card adapter connected via the Memory Card slot.

path=mmce?:/EMBER/ember.elf
arg=<GAME_FOLDER>

Profile 5: Memory Card (mc0 / mc1)

Standard PlayStation 2 8MB Memory Cards (or high-capacity magicgate/clones).

path=mc?:/EMBER/ember.elf
arg=<GAME_FOLDER>

Profile 6: MX4SIO / MC2SIO

SD card adapter connected to Memory Card slot 2 via SIO2 bus.

path=mx4sio:/EMBER/ember.elf
arg=<GAME_FOLDER>

External storage connected to the front i.Link 4-pin port on early fat PS2 models (SCPH-10000 to SCPH-3900x).

path=ilink:/EMBER/ember.elf
arg=<GAME_FOLDER>

Profile 8: UDPBD (Network Block Device)

Network block device streaming disc images or raw block devices over Ethernet via UDP.

path=udpbd:/EMBER/ember.elf
arg=<GAME_FOLDER>
arg=-dev9=NIC

Network settings are read from mc?:/SYS-CONF/IPCONFIG.DAT. -dev9=NIC ensures the network controller stays online.

Profile 9: UDPFS (Neutrino Network Filesystem)

Low-overhead UDP filesystem streaming from PS2 Servers over local Ethernet.

path=udpfs:/EMBER/ember.elf
arg=<GAME_FOLDER>
arg=-dev9=NIC

Multi-Path Fallback Configuration

Because arg= lines apply to every active path= line, you can specify multiple fallback paths for local removable devices:

path=mass?:/EMBER/ember.elf
path=usb?:/EMBER/ember.elf
path=mmce?:/EMBER/ember.elf
arg=Soul Blade

launcHER tests each path in sequential order. The first one that contains EMBER/ember.elf will be launched with the supplied arguments.