A fully-featured ELF launcher that handles launching ELFs and CD/DVD discs.
Supports passing arbitrary arguments to an ELF and can also be used standalone as a forwarder.
Supported paths are:
mmce?:— MMCE devices. Can bemmce0,mmce1ormmce?mc?:— Memory Cards. Can bemc0,mc1ormc?mass:andusb:— USB devices (supported via BDM)ata:— internal exFAT-formatted HDD (supported via BDM)mx4sio:— MX4SIO (supported via BDM)ilink:— i.Link mass storage (supported via BDM, disabled in OSDMenu/HOSDMenu)udpbd:— UDPBD (supported via BDM, disabled in OSDMenu/HOSDMenu)hdd0:— internal APA-formatted HDD. Both:pfs:and:PATINFOpaths are supportedrom?:— ROM binariescdrom— CD/DVD discsosdm— special path for OSDMenu patcher
Device support can be enabled and disabled by changing build-time configuration options (see Makefile)
Supports OSDMenu-specific SYSTEM.CNF extensions.
The launcher supports the following global arguments:
-gsm=<>— runs the target ELF via the embedded Neutrino GSM.
See this README for more information on the argument format.
Must always be the last argument. Does not apply torom?:paths.-appid— enables visual Game ID for applications. The ID is generated from the ELF name (up to 11 characters).-patinfo— when handling PATINFO paths, will ignore theBOOT2/pathline from SYSTEM.CNF and use the first argument as target ELF path.-titleid=— when launching ELFs, will use this title ID for the history file and visual game ID (up to 11 characters). Only valid IDs will be written to the history file-dev9=— will pass DEV9 shutdown flags to the loader. Supported values are:NICHDD— will keep both the network adapter and HDD onNIC— will keep only the network adapter on
Reads PS2 IP address from mc?:/SYS-CONF/IPCONFIG.DAT
Waits for the disc to be detected and launches it. Supports the following arguments:
-nologo— launches the game executable directly, bypassingrom0:PS2LOGO-nogameid— disables visual game ID-dkwdrv— when PS1 disc is detected, launches DKWDRV frommc?:/BOOT/DKWDRV.ELFinstead ofrom0:PS1DRV-dkwdrv=<path to DKWDRV>— same as-dkwdrv, but with custom DKWDRV path-ps1fast— will force fast disc speed for PS1 discs when not using DKWDRV-ps1smooth— will force texture smoothing for PS1 discs when not using DKWDRV-ps1vneg— will run PS1DRV via the PS1DRV Video Mode Negator
For PS1 CDs with generic executable name (e.g. PSX.EXE), attempts to guess the game ID using the volume creation date
stored in the Primary Volume Descriptor, based on the table from TonyHax International.
For PS2 CDs/DVDs, the cdrom handler will look for the embedded Neutrino GSM setting in
mc?:/SYS-CONF/OSDGSM.CNFhdd0:__sysconf/osdmenu/OSDGSM.CNF(only when running from HDD)
See this for more details.
When the launcher receives osdm:d0:<idx>, osdm:d1:<idx> or osdm:d9:<idx> path as argv[0], it reads OSDMENU.CNF from the respective memory card or the hard drive (osdm:d9),
searches for path?_OSDSYS_ITEM_<idx> and arg_OSDSYS_ITEM_<idx> entries and attempts to launch the ELF.
Additionally, the launcher supports parsing the configuration from an arbitrary address when receiving osdm:a<address>:<CNF file size>:<idx> as argv[0].
Respects cdrom_skip_ps2logo, cdrom_disable_gameid and cdrom_use_dkwdrv for cdrom paths, but only if there are no custom arguments for this entry (arg_OSDSYS_ITEM).
When the launcher receives a path that ends with .CNF, .cnf, .CFG or .cfg,
it will run the quickboot handler using this file.
Config file can be located at any device as long as the device mountpoint is one of the listed above.
When the launcher is started without any arguments, it tries to open <ELF file name>.CNF
file at the current working directory
and attempts to launch every path in order.
Quickboot file syntax example:
boot=boot.elf
path=mmce?:/apps/wle.elf
path=mmce?:/apps/wle2.elf
path=ata:/apps/wle.elf
path=mc?:/BOOT/BOOT.ELF
arg=-testarg
arg=-testarg2boot — path relative to the config file
path — absolute paths
arg — global launcher arguments or arguments that will be passed to the ELF file