△◯✕□ launcHER DOCS
Downloads GitHub

launcHER.CNF Reference

launcHER.CNF is an INI-style configuration file that instructs launcHER where Ember is installed, what arguments to supply, and how to maintain the PlayStation 2 hardware environment across handoff.

Syntax Rules

Configuration Directives

Directive Description Example
path=<path> Specifies the path to ember.elf. Can be repeated to define fallback locations. path=mass?:/EMBER/ember.elf
arg=<value> Defines an argument passed to the target ELF. arg=Soul Blade

Global Launcher Flags

Special arguments beginning with a hyphen (-) are intercepted by launcHER to control kernel behavior:

Flag Purpose When to Use
-skip_argv0 Omit the raw loader target string from the child ELF's argv[]. Essential for APA/PFS so Ember sees pfs0:/EMBER/ember.elf as argv[0].
-dev9=NICHDD Keep both the Network Adapter interface and IDE/ATA hard drive powered. Essential for Internal exFAT (ATA BDM) and APA/PFS so the drive does not shut down.
-dev9=NIC Keep the Network Adapter interface powered (network only). Essential for UDPBD and UDPFS network streaming.
-dev9=HDD Keep only the internal IDE/ATA hard drive powered. Alternative to NICHDD if network hardware is unused.
-dev9=OFF Shut down DEV9 interface before loading ELF. Default when omitted; fine for USB, MMCE, MC, and MX4SIO.
-reset_iop Perform a full IOP reset before loading the ELF. Clean boot when the child ELF has its own embedded IRX drivers.

Direct Command-Line Invocation

Instead of reading launcHER.CNF, launcHER can be invoked directly with command-line arguments from another ELF, a shell script, or a frontend:

launcHER.elf <target_path> [arg1] [arg2] ... [flags]

APA/PFS Direct Invocation Example:

launcHER.elf hdd0:__.EMBER:pfs:/EMBER/ember.elf pfs0:/EMBER/ember.elf "Soul Blade" -skip_argv0 -dev9=NICHDD

Internal exFAT Direct Invocation Example:

launcHER.elf ata:/EMBER/ember.elf "Soul Blade" -dev9=NICHDD

USB Direct Invocation Example:

launcHER.elf mass0:/EMBER/ember.elf "Soul Blade"
Flag Placement Rule
Always place global launcher flags (such as -skip_argv0 and -dev9=...) at the very end of the command line so all preceding strings are cleanly passed to the child ELF.