LaunchELF User Guide
Unofficial LaunchELF releases by EP + dlanor based off Mirakichi's source to LaunchELF v3.41
1. Starting LaunchELF
2. The Interface
3. Internal Functions
4. The Settings File (Advanced)
5. Changelog
6. Acknowledgements

Preface

This documentation is provided as an open method for users and programmers to help each other understand LaunchELF. All users are able (and encouraged) to contribute to it. If you wish your work to be included in the official documentation provided with each LaunchELF release, then submit your revised changes or additions to the uLaunchELF documentation thread on the ps2-scene.org forums. If your work is of professional quality and usefulness, it will be added to the main documentation.

If you feel your work has been included by mistake, without your permission, or that you have not been accredited, please make a post on the uLaunchELF documentation thread on the ps2-scene.org forums.

|  | The latest official version of this document is always available at http://www.ps2-scene.org/forums/showthread.php?t=40179

Welcome to LaunchELF

LaunchELF is an open source file manager and executable launcher for the Playstation 2 console. LaunchELF makes it possible to move, copy, rename and delete files to and from many mediums, including Hard Drive, Memory Card, CD/DVD ROM, and USB from a minimal and functional interface.

1. Starting LaunchELF | Top

LaunchELF is designed to run in a variety of situations. Most users run the program from either the hard drive or memory card, but it is also possible to run LaunchELF from CD or DVD. Depending on your system setup, you may consider using one of these methods.

- Run LaunchELF directly from CD/DVD
- Use Swap Magic 3.6's USB functionality to boot mass:/SWAPMAGIC/SWAPMAGIC.ELF from USB mass storage device
- Use your modchip's Devolution Mode 1 (DEV1) to allow direct boot from memory card on system startup
- Use your modchip's Devolution Mode 2 (DEV2) to allow direct boot from hard drive on system startup
- Use M.R.Brown's PS2 Independence Exploit to allow boot from memory card when an assigned PSX disc is inserted

The first two options are often used by users who have a Playstation 2 which is incompatible with the exploit and do not have a modchip, but have a Swap Magic. It is less favourable to the other methods since it is harder to upgrade the program, and frequent swaps are required in order to use the program. You can however boot LaunchELF from CD/DVD and use it to copy itself to the desired location on your memory card or hard drive.

The last three options require LaunchELF to be stored on a storage medium generally only accessible from the Playstation 2. Most modchips look for the Devolution Boot Executable in mc0:/BOOT/BOOT.ELF or hdd0:/__boot/boot.elf. The PS2 Independence Exploit looks for the boot executable in mc0:/BxDATA-SYSTEM. The x represents your PS2's region (I=Japan/Asia, A=America, E=Europe).

2. The Interface | Top

LaunchELF allows the user to access its functions through a graphical user interface (GUI). Through the use of the Playstation 2 controller, the user is able to control LaunchELF directly onscreen.

The directional pad (D-PAD) controls to focus or highlighted entry on the screen. The other buttons on the control pad activate certain functions depending on what item is focused, and what screen the user is on. Apart from the main screen, Circle usually represents OK or Accept, while Cross represents Cancel or Back. (see 2b.ii, key mapping for details)

2a. The Main Screen

| LaunchELF's main screen is in essence a button handler. Designed for launching programs quickly, LaunchELF responds to a key press on the Playstation 2 controller by executing the corresponding program linked to that button. All buttons, minus the D-PAD and Select launch the specified program or function when pressed. If you are running LaunchELF for the first time, there will be no entries set up on the main screen. To add an entry, use the settings page to map a program or action to a button. To enter the settings screen, press Select at the main menu.

User presses X |  | Find Program assigned to X |  | Execute Program
|  | Figure 2.1: Logic when button X is pressed on main screen.

2b. The Settings Screen

| The settings screen is the central point for configuring LaunchELF. To access this screen, press Select from the main menu. Button Setting DEFAULT: Assign an ELF to launch if main screen is displayed for a length of time From "O" to "START": Assign an ELF to launch if corresponding button is pressed on the main screen. Misc TIMEOUT: Length of time (secs) to wait until DEFAULT program is run DISC CONTROL: Stop the disc from spinning (v7 users) PRINT ONLY FILENAME: Omit file extension display on main screen SCREEN SETTINGS: Go to Screen Settings page STARTUP SETTINGS: Go to Startup Settings page NETWORK SETTINGS: Go to Network Settings page OK: Accept changes and return to Main Screen CANCEL: Cancel changes and return to Main Screen

2b.i. Settings > Screen Settings

- COLORx R: Adjust red value for color detail x (0 - 255)
- COLORx G: Adjust green value for color detail x (0 - 255)
- COLORx B: Adjust blue value for color detail x (0 - 255)
- Screen X: Adjust screen position (horizontal / x plane, INT)
  Adjusting this value will cause the screen to move on the x plane (left and right). This is useful if the output to the television is off centered or cut off.
- Screen Y: Adjust screen position (vertical / y plane, INT)
  Adjusting this value will cause the screen to move on the y plane (up and down). This is useful if the output to the television is off cent red or cut off.
- Interlace: Activate interlaced display. (BOOLEAN)
  [Explanation]
- Return: Accept changes and return to main screen
- Initial Screen Settings: Load program defaults for values on this page.

2b.ii. Settings > Startup Settings

- RESET IOP: Reset Input/Output Processor when LaunchELF starts (BOOLEAN)
  Some programs require an IOP reset to be performed before being run. If you experience problems loading a specific program, try enabling this option.
- Number of CNFs: Number of profiles (config files) LaunchELF should use (CARD)
- If you wish to have more programs than buttons on the main screen, increase the number of config files here, then use LEFT and RIGHT at the main menu to switch between them.
- Key Mapping: Select Western or Eastern OK/CANCEL button configuration (default, = OK, = CANCEL)
- Return: Accept changes and return to main screen

2b.iii. Settings > Network Settings

| IP Address: Allows you to set your PS2 IP Address Netmask: Allows you to set your Subnet Mask Gateway: Allows you to set your Default Gateway (usually your router or your PC) Adjust settings by using D-Pad to move between octets (the numbers separated by periods) then add or subtract using Cross or Circle . Save settings when finished. Below are the network settings for the Playstation 2 stored in the file IPCONFIG.DAT, located in mc0:/SYS-CONF/ on the Memory Card (Slot1).
IP ADDRESS | NETMASK | GATEWAY
192.168.0.10 | 255.255.255.0 | 192.168.0.1
These are the defaults used if no IPCONFIG.DAT is found, or if the file is unreadable. Therefore, if you use these defaults, you don't really need the file.

2c. The File Manager Screen

| LaunchELF uses a virtual file system to allow both devices and internal procedures to be run. This file system is displayed when a) The user wishes to choose to map an action to a button, or b) The user opens the file manager. |

The structure of the virtual file system is as follows:

- mc0:/ - Display contents of memory card in slot 1
- mc1:/ - Display contents of memory card in slot 2
- hdd0:/ - Display PFS partitions located in the PS2 HDD, and in turn, display the contents of the selected partition.
- cdfs:/ - Display contents of current CD or DVD inside the PS2 CDVD-ROM
- mass:/ - Display contents of USB memory device
- host:/ - (available only in File Manager Mode). Display contents of the networked host volumes
- MISC:/ - (available only in Button Mapping Mode)
  - FileBrowser [Internal Function] - Display this screen
  - PS2Browser [Internal Function] - Execute Sony PS2 browser (rom0:OSDSYS) from ROM
  - PS2Disc [Internal Function] - Execute a Playstation 2 disc in the CDVD-ROM drive (parse SYSTEM.CNF, run target ELF)
  - PS2Net [Internal Function] - Starts FTP server and PS2Net

= | Navigating through the File Manager ========================>
• | If a folder, partition or device is selected, and Circle is pressed, LaunchELF will descend into that item, and display its contents on screen.
• | If an .ELF file is selected, and Circle is pressed, LaunchELF will:
| a) Map the ELF to the requested button, then return to the settings screen, if the user requested to do so, | -OR- | b) Execute the program, if the user came from the FileManager item.
• | If Triangle is pressed, the file browser will move up a level in the filesystem hierarchy, and ascend to the parent directory or device.
• | If Cross is pressed, the highlighted file or directory will be marked for manipulation with the operations menu (see 2c.i, The Operations Menu for details)
• | If Square is pressed, the file manager will:
| a) mark all files in the current directory for manipulation with the operations menu (see 2c.i, The Operations Menu for details) | -OR- | b) only display files with the .ELF extension, if the user is mapping an ELF to a button. LaunchELF makes it easier to browse memory card saves, as it reads the title of the save-game from its icon.sys file.
• | If L1 is pressed while browsing a memory card, the title of the save will be displayed in filename order.
• | If L2 is pressed while browsing a memory card, the title of the save will be displayed in title order.

2c.i. The Operations Menu

All LaunchELF's file manager functions are accessed through the operations menu.

To display the operations menu, select a file or directory in the file manager, then press R1 .

| Copy: Marks the selected file or directory to be copied. Cut: Marks the selected file or directory to be moved. Paste: Performs the copy or move operation on the item marked using Copy or Cut respectively to the current directory. mcPaste: mcPaste is ONLY intended for handling backups of commercial game saves, since homebrew stuff mostly ignore MC attributes and timestamps. Using mcPaste for homebrew stuff won't be harmful, but it simply isn't necessary. mcPaste is intended to backup saves from MC to any non-MC media, or to restore such backups from any non-MC media to MC. But the safest media of all to use is a PS2 IDE HDD, as it allows all filenames that are valid on MC. Delete: Deletes the currently selected file. Rename: Changes the currently selected file or directory's filename. New Dir: Creates a new directory in the current directory. Get Size: Returns the file size of the currently selected file.

The operations menu can be performed on multiple items. Use Cross to select multiple files at once, then access the operations menu as usual.

|  | Rename is not available from memory card; paste is not available from host.

3. Internal Functions | Top

3a. FTP Server

LaunchELF runs a FTP server quietly in the background. If your Playstation 2 is connected to the local network, you can take advantage of this function by connecting to the IP address specified in IPCONFIG.DAT with your PC's FTP client.

3b. Copying Game Saves

To copy a game save, activate the file manager and enable MC Title mode. Select the game save you wish to copy, then open the context menu and select Copy. Browse to the location you wish to copy the save, then open the context menu and select Paste.

|  | Some games require time stamping to be present which LaunchELF currently does not support. If you manipulate these saves with LaunchELF, it is possible that the game will reject the save next time it is loaded.

3c. Virtual Keyboard

| LaunchELF does not support data entry via traditional keyboard. If textual entry is needed, LaunchELF will display the virtual keyboard onscreen. Use the D-PAD to select a character, then press Circle to add the character to the input string displayed at the top of the keyboard. The blank spaces represent the Space Character. To make a correction, use L1 and R1 to move the cursor left and right inside the string. To accept changes, highlight ENTER, then press Circle . To cancel changes, highlight CANCEL then press Circle .

3d. Supported File System Detail

Memory Card

- Playstation File System (PFS) filesystem.

Hard Drive

- Playstation File System (PFS) filesystem sitting on APA partition.

CDFS

- ISO 9660 Level 1 (relaxed)
- ISO 9660 Level 2 (relaxed)
- Joliet
- UDF

USB Mass Storage Device

- FAT12 Read/Write with long filename support
- FAT16 Read/Write with long filename support
- FAT32 Read/Write with long filename support
- NOTE: Only the first readable partition is used.

Host

- Standard read only host support for volumes specified in host:/elflist.txt
- NOTE: You do not have to boot from host in order to access files on host:/. Use ps2client -h ps2.ip.address listen

4. The settings file (advanced) | Top

All of LaunchELF's settings are configured from the GUI, then saved to file. However, power users may prefer to manipulate the settings file directly.

4a. Profiles

Traditionally, all settings are stored in LAUNCHELF.CNF. Since version 3.4b, LaunchELF is able to use multiple settings files (profiles) at once. The profiles feature (if enabled) results in LAUNCHELFn.CNF being used, where n is a cardinal value from 1 to setting -> numCNF (number of configs).

4b. Locating the Settings File "LAUNCHELF.CNF"

Purpose: Define new format and defaults for LaunchELF CNF files, to serve as a guide in developing the code implementing these changes. Note that LaunchELF v3.41t (or later) will accept this file as-is when loading CNF, but if you modify any settings so that LaunchELF saves the file again, then all comments will be removed.

Upon program execution, several locations are probed in order to read the configuration settings. If the settings file is located in the current directory, LaunchELF stores the location and reads the file to memory. The file is parsed and settings are restored accordingly. Future settings changes will result in a write process to the file which was originally read into memory. The file is read in the following order

- Directory LaunchELF was run from
- mc0:/SYS-CONF/
- mc1:/SYS-CONF/

If the settings file is not found, LaunchELF creates the file and loads default settings to mc0:/SYS-CONF/LAUNCHELF.CNF, only if the directory mc0:/SYS-CONF exists.

4c. Settings File Layout "LAUNCHELF.CNF"

Each line of the settings file corresponds to a particular setting or value. Each line of the settings file is described below.

LAUNCHELF.CNF
CNF_version = 2.0 | The CNF_version variable MUST exist for a CNF to be accepted as valid, and it must also be the first variable defined in the file. That way an old CNF can't cause damage when read by new LaunchELF versions. Future LaunchELF versions may also check the value for some features.
Next follows the 12 (as yet) launching links, here kept in traditional order, though users are allowed to vary the order at will. For these 12 variables the following name conventions apply:
LK_auto_E1 = LK_Circle_E1 = MISC/FileBrowser LK_Cross_E1 = LK_Square_E1 = LK_Triangle_E1 = LK_L1_E1 = LK_R1_E1 = LK_L2_E1 = LK_R2_E1 = LK_L3_E1 = LK_R3_E1 = LK_Start_E1 = | "LK_" is an abbreviation for Launch Key and is used as a prefix for the key descriptor (eg: Square ). That is then followed by the suffix "_E1" which is an abbreviation for Execution Method 1. At present that is the only method we have, but hopefully that will change... The default value for most of these should be an empty string, except that one link should start the file browser, so people can start to copy stuff without having to make a new CNF.
LK_auto_Timer = 10 Menu_Hide_Paths = 1 | After the launch key definitions we have the variables for diverse settings, most of which use obvious naming schemes and have their traditional default values. Some exceptions are the variables for GUI colour values, which are described in the next section.
GUI_Col_1_ABGR = 00808080 GUI_Col_2_ABGR = 00404040 GUI_Col_3_ABGR = 00000060 GUI_Col_4_ABGR = 00000000 Screen_X = 128 Screen_Y = 30 | Next we have the GUI colour values, for which I made some choices that differ widely from all the other variables so far. First and foremost, I switched their data format to pure hex, to make it practical for a human to edit the byte values. I also added a suffix to the names, so the user has a mnemonic key to the usage of the byte values. And finally, I chose some new default values that I've been working on for a while. The effects of these settings are as follows: Normal text is fully black, while the background is half-level white. Border, submenus, and LaunchELF title text use a medium grey colour, with half the brightness of the background, while alerts and progress messages use a clear but subdued red colour. My goal with these defaults was to achieve max clarity with no glare, and I think this succeeded fairly well, though the final results do depend greatly on your monitor settings as well.
Init_CDVD_Check = 0 Screen_Interlace = 0 Init_Reset_IOP = 1 Menu_Pages = 1 GUI_Swap_Keys = 0 | Note that I have changed the default for IOP reset, as this has been long-term tested now, and proven superior to starting without it. I have also changed the default for CDVD checking, as the old default could cause lockup on some PS2 models if started with empty tray.
The variables below have been added after the original design (v3.41t) of the new CNF format. They should be used as follows:
USBD_FILE = | USBD_FILE is valid in v3.41u and later versions. It's used to choose an alternate USBD.IRX file, which LaunchELF will then use instead of the embedded one. You can set it in the 'STARTUP SETTINGS' screen.
NET_HOSTwrite = 0 | NET_HOSTwrite is valid in v3.44 and later versions. It's can enable the ability of the networked HOST interface to write on your PC HDDs! Users who want to avoid risks for their PC should leave it as default, which disables these new abilities. For safety reasons it can only be changed by direct user editing. Edit it to a non-zero value to enable the new abilities. (You'll need a very new ps2client.exe as well.)

5. Changelog | Top

Unofficial LaunchELF releases by EP + dlanor

LaunchELF v3.51 (2006.03.03)

- Added experimental support for HDD on 'slim PStwo' models, released as separate ELFs in the same release ZIP. Developers should be aware that this patch adds a new module to PS2SDK, named "ps2hdd_slim_PStwo.irx" and serving the same purpose for those models that "ps2hdd.irx" does for traditional PS2 models. Thanks go to 'lonwern' at PS2-Scene for pointing out the precise function in the source code that needed patching.

LaunchELF v3.50 (2006.03.01)

- Modified the ELF loader so it can reside at the same address used in LaunchELF versions earlier than v3.46, and still retain compatibility with current version of PS2Link. This eliminates the incompatibility that v3.46-v3.49 had with some unpacker stubs, and thus with all programs using those stubs, (notably myPS2). Full compatibility is now restored for those programs.

LaunchELF v3.49 (2006.02.26)

- EP Fixed an issue where garbage could be displayed at startup when LaunchELF was booted by another program's generic launcher function. (Note: Issue only appeared to occur randomly with the packed ELF when using only one CNF).

LaunchELF v3.48 (2006.02.25)

- EP corrected a bug in the reading of free size on MC. This bug could cause menu commands to fail with extremely slow MC. (Noted with 64MB MCs from Datel.) Thanks go to 'cmal1492' for bringing this bug to our attention. (It is older than the uLaunchELF project.)

LaunchELF v3.47 (2006.02.22)

- Corrected a serious bug in the IOP Reset routine (reverse logic for SifIopSync).

LaunchELF v3.46 (2006.02.20)

- Modified the ELF loader of LaunchELF to improve compatibility with PS2Link. This resulted in slightly smaller code, and as a side effect the loader will no longer display the name of the ELF to be loaded on screen. The major benefit is that LaunchELF will work well with the new version of PS2Link, also released this night. Thanks go to Drakonite for his advice on how to improve this compatibility

LaunchELF v3.45 (2006.02.19)

- Fixed a LaunchELF bug that prevented folder overwrites when pasting to HOST.
- Fixed a PS2Client bug that prevented detection of folder conflicts on HOST.
- Added a progress report (written file bytes counter) to 'Paste' and 'mcPaste'.
- EP fixed a few issues that prevented PS1 memory cards from appearing in FTP listing. (Note: Files on PS1 memory cards lack timestamps so the timestamps come from the current PS2 system time).

LaunchELF v3.44 (2006.02.18)

- Implemented HOST interface write access to networked PC. This uses a new CNF variable named "NET_HOSTwrite" which has a default value of "0" meaning it is disabled. For reasons of safety there is no way to change this value from the config menu. Edit it yourself, and set its value to "1" (or any other non-zero value) to enable the new abilities, which include the following menu functions 'Cut', 'Paste', 'mcPaste', 'Delete', 'Rename', 'New Dir'. Note that most of the new functions require a very recent version of ps2client or RadHostClient to function, and at present the 'Rename' function only works with the ps2client version specially patched for LaunchELF. (Available in the LaunchELF forum.) (NB: file writing seems bugged in RadHostClient v1.5)
- Added modified sources for ps2client to the folder "Changed source for external projects".

LaunchELF v3.43 (2006.02.16)

- This release is purely a bugfix for an old bug in the HOST interface. That bug was mostly harmless in older versions, but became capable of freezing the console in v3.41u and v3.42.

LaunchELF v3.42 (2006.02.15) NB: switched date format to YYYY.MM.DD

- Implemented mcPaste command in submenu. Like the old Paste command this copies all selected files and folders (recursively), but it is specially intended for MC backups. It can only be used either to copy from MC to non-MC (making backups from MC) or to copy from non-MC to MC (restoring backups to MC). These backups on non-MC media will have an extra file in each folder, holding the original MC attributes and timestamps of all files in that folder. This data will be used when restoring the backups to MC, so that games will accept the restored files as being the originals. The 'extra' files are filtered out from such copying so they don't appear among the restored files on MC. Those 'extra' files all use the same filename, which is "PS2_MC_Backup_Attributes.BUP.bin" (to avoid any confusion with 'real' files).

LaunchELF v3.41u (02/13/2006)

- Implemented new standards for handling of file and folder attributes on PS2 memory cards. This ensures that all gamesaves copied from one such MC to another such MC will have all attributes and timestamps preserved, so the copies remain acceptable to the games. It also improves the chances of successful backup/restore of gamesaves to/from non-MC devices, by using standard attributes for files and folders that match what the majority of games use.
- Implemented a patch to the 'Get Size' command, so that it will display real attributes and modification timestamp of a file/folder on MC. For non MC this will show a standard attribute and zeroed timestamp, so that's not very useful. This patch is just a temporary thing, until we make something better.
- Implemented selection of external USBD.IRX files, for those that have trouble using the one embedded into LaunchELF. (This change was contributed by 'sincro'.)

LaunchELF v3.41t (02/03/2006)

- Implemented a new CNF format and various new defaults for the settings. Essentially this means that all settings are specified as named variables, and line order is no longer significant. This will allow easy human editing as well as many new features in the future. For details on new defaults, study the enclosed LAUNCHELF.CNF

LaunchELF v3.41s (01/13/2006)

- Modified a comment in fat_write.c to fix an IOP 3.2.2 compiler issue for the usb mass driver.
- Added a new line to the end of imports.lst to eliminate an IOP 3.2.2 compiler warning for host.
- Rebuilt everything with the IOP 3.2.2 compiler. (Note: includes cdvd, ps2ftpd, and usb_mass modules).
- Modified the makefile to use the ps2dev9.irx module from the PS2SDK instead of the older one from the original LaunchELF source package. (Note: Are there still reliability problems?)
- Updated "Development related issues.txt" removing both the ps2dev9.irx reliability issue that now appears fine and the ps2ftpd.irx issue that is now fixed.

ps2ftpd new additions and changes: Included ps2ftpd.irx and source changes.

- Fixed a bug with the IOP 3.2.2 compiler by moving "int iOpened = 0" variable declaration in function FileSystem_OpenFile to the top with the other variable declarations. (Note: this fixes the crashing issue that occurred when transferring a new file to the memory card).
- Rewrote some of the auto-mount partitions code to also work with the IOP 3.2.2 compiler.
- Updated issues.txt removing the issue with the IOP 3.2.2 compiler.
- Altered files: draw.c=version_id, fat_write.c=comment fix, imports.lst=IOP warning fix, makefile=use sdk's ps2dev9 module, FileSystem.c=ps2ftpd changes

LaunchELF v3.41r (12/25/2005)

ps2ftpd new additions and changes: Included ps2ftpd.irx and source changes.

- Fixed an issue with auto-mounting hdd partitions for those using Internet Explorer as their ftp client.
- Altered files: draw.c=version_id, FileSystem.c=ps2ftpd changes

LaunchELF v3.41q (12/24/2005)

- Updated host and all its source files with EEUG's changes to fix a possible issue with host.
- Made a couple of changes to radad's latest changes to hdd_fio.c in the ps2sdk. (Note: Included hdd_fio.c, which compiles with the older iop-2.8.1 and gives accurate sizes for hdd partitions).

ps2ftpd new additions and changes: Included ps2ftpd.irx and source changes.

- Changed hdd partitions to show up as directories instead of files.
- Added the ability to auto-mount hdd partitions to pfs/0. (Notes: Once a partition's directory is opened, the partition is auto-mounted to pfs/0. The directory is then also changed to pfs/0. Partitions are un-mounted at hdd/0 and also just prior to being auto-mounted).
- Cleaned up the source code a bit to fix an unused variable compiler warning.
- Finished the UNIX-style LIST format after many other changes were made. (Note: Now the LIST format does either "MMM DD YYYY" or "MMM DD hh:mm" based on the days between calculation).
- Made some slight changes to read the ps2's system clock.
- Added the ability to read the ps2's system clock so now root and device dirs use this instead of "1/1/1970".
- Added a days between dates calculator in order to complete the UNIX-style LIST format. (Note: Now if the modified date of a file/dir is within the last 182 days the "hh:mm" format will appear in place of the "YYYY" format as it's suppose to).
- Commented out all the extra debug printf's as they are currently no longer needed.
- Added a new uitoa function that can deal with larger sizes.
- Fixed an issue with size so now hdd partitions and files can accurately display size in bytes.
- Added issues.txt that lists the only issues left to be resolved with ps2ftpd.
- Altered files: draw.c=version_id, hostlink.h + imports.lst + irx_imports.h + Makefile + net_fio.c + net_fio.h + net_fsys.c + ps2host.c + Rules.make=updated host source files also now diff compatible, FileSystem.c + FileSystem.h + FtpClient.c + imports.lst + irx_imports.h=ps2ftpd changes

LaunchELF v3.41p (11/19/2005)

- Updated "Development related issues.txt" removing the iomanX.irx issue as it has now been fixed at the sdk level.
- Updated the source package removing iomanX things as radad's changes made it into the ps2sdk.
- Updated the makefile to use the iomanX.irx from the sdk.
- Updated the rest of dlanor's ps2sdk source files so they're more diff compatible.
- Updated the source package that fixes an inconsistency with created files/dirs hour timestamp for hdd and usb mass devices.
- Changed usb_mass driver slightly to allow the reading of Date/Time Created, Date Accessed, and Date/Time Modified.

ps2ftpd new additions and changes: Included ps2ftpd.irx and source changes.

- Reverted back to the UNIX-style LIST format as it appears to be the most compatible overall.
- Placed printf's in the driver to show timestamps and other attributes for possible future debugging purposes that will hopefully only be temporary.
- Altered files: draw.c=version_id, fat.h + fat_driver.c=support for reading more of usb mass timestamp attributes, fat_write.c + misc.c + misc.c=fixes for hour timestamp issue, makefile + libmc.h + libpad.c + libpad.h + libpad.h + libpadx.c=updates, FileSystem.c + FtpClient.c + FtpCommands.c=ps2ftpd changes

LaunchELF v3.41O (11/13/2005)

ps2ftpd new additions and changes: Included ps2ftpd.irx and source changes.

- Fixed a bug with MS-style list format and many ftp clients.
- Changed MS-style list format slightly to show 12:00AM instead of 00:00AM, which was wrong earlier. (Note: some ftp clients will get this wrong and show 12:00PM instead so be aware).
- Altered files: draw.c=version_id, FtpClient.c + FtpCommands.c=ps2ftpd changes

LaunchELF v3.41o (11/12/2005)

- Updated iomanX.irx module and source file with radad's changes.
- Updated "Development related issues.txt" updating an issue that radad found a fix for.

ps2ftpd new additions and changes: Included ps2ftpd.irx and source changes.

- Changed to MS-style LIST format for testing. More compatible?
- Made slight changes to the previously used UNIX-style LIST format.
- Added the possibility to change within the included sources the option for going back to the UNIX-style LIST format.
- Altered files: iomanX.c=radad's changes, draw.c=version_id, FtpClient.c=ps2ftpd changes

LaunchELF v3.41n (10/30/2005)

- Changed order of loading device drivers when starting ps2net.
- Updated Slam-Tilts "NETWORK SETTINGS" with dlanor's added change to hopefully fix an issue some were experiencing.
- Updated ps2sdk's libmc.c, with dlanor's prior changes, to the source package.
- Updated "Development related issues.txt" removing an issue that has now been resolved.

ps2ftpd new additions and changes: Included ps2ftpd.irx and source changes.

- Fixed attributes of newly created files/dirs on hdd that matches LaunchELF's implementation.
- Made a workaround for "ps2fs: Warning: NULL buffer returned" issue that occurred when writing files to the hdd.
- Changed list string format slightly to match a known ftp list format as it was only off by two.
- Made the necessary changes for rename to be implemented.
- Added the ability to rename files/folders for mounted hdd partitons.
- Altered files: main.c=minor changes, config.c=ipStringToOctet changes, draw.c=version_id, libmc.c=updated, FileSystem.c + FileSystem.h + FtpClient.c + FtpClient.h + FtpCommands.c=ps2ftpd changes

LaunchELF v3.41m (10/16/2005)

usb_mass new additions and changes:

- Updated usb_mass driver to version 0.32 along with radad's change to fat_driver.c.
- Added the ability of reading of day, month, and year from variable "mtime".
- Added the ability of reading of hours, minutes, and seconds from variable "mtime".
- Fixed a bug that caused a corrupt month timestamp with newly created files in fat_write.c

ps2ftpd new additions and changes: Included ps2ftpd.irx and source changes.

- Added "hdd" as a supported filesystem device so it shows up with "mc", "pfs", and "mass" in the root device listing.
- Changed a few things to support HDD partition viewing by fixing a sub directory issue.
- Made changes to only show the same partitions that unofficial LaunchELF shows.
- Fixed issue where mc save folders, that are copy protected, showed up as files instead of folders.
- Fixed protection attributes not showing up properly with mass.
- Removed workaround for "mass" and timestamp issues since it's no longer needed do to changes to usb_mass driver.
- Altered files: fat_driver.c=usb_mass changes, fat_write.c=usb_mass month fix, FileSystem.c=ps2ftpd changes, draw.c=version_id

LaunchELF v3.41l (09/18/2005)

- Added a modified makefile for loader to the source package that was forgotten early on.
- Added "Development related issues.txt" file to the source package.
- Added Slam-Tilts "NETWORK SETTINGS" option that allows the user to edit the IPCONFIG.DAT file at mc0:/SYS-CONF.
- Renamed a few things such as menus and menu messages.

ps2ftpd new additions and changes: Included ps2ftpd.irx and source changes.

- Added a fix for multiple mc directories bug, which occurs when both slots contain PS2 memory cards.
- Added "mass" as a supported filesystem device so it shows up with "mc" and "pfs" in the root device listing.
- Changed a few things in order to accommodate support for USB mass fixing a sub directory issue.
- Created a workaround to fix a "mass" listing issue do to timestamps not being able to be accessed. (Note: Hopefully this is only temporary but as of now all files/folders timestamps for "mass" show up as "1/1/1970").
- Altered files: config.c/launchelf.h=Network Settings option, main.c=load usb device driver when launching ps2net, draw.c=version_id

LaunchELF v3.41k (08/16/2005)

- Fixed bug that prevented zero-sized files from being pasted
- Altered files: filer.c=Bugfix, draw.c=version_id
- Matrix Infinity Dev.2 boot will require the non-packed ELF

LaunchELF v3.41j (07/20/2005)

- Fixed LIBCDVD 1.15 issue with DVD-ROMs: Thanks to Neme for the explanation and solution.

LaunchELF v3.41i (07/03/2005)

- Fixed issue with ps2ftpd root directory listing bug with other ftp clients.
- Included ps2ftpd.irx compile with source changes in a separate package.

LaunchELF v3.41h (06/21/2005)

- Replaced usb_mass driver with latest version, for support of more devices

LaunchELF v3.41g (06/20/2005)

- Added config name to another failure message (missed it for 'save config' earlier).
- Corrected a malloc size error (Reported by 'slartibartfast' at ps2-scene)
- Recompiled all components (including ps2sdk) using v2.8.1 of the IOP compiler

LaunchELF v3.41f (06/18/2005)

- Added config name to both failure messages (Name of config that failed to load/save).
- Replaced ps2ftpd module to eliminate a problem with memory card transfers.
- NB: Matrix Infinity Dev.2 boot again works with either of the ELFs.

LaunchELF v3.41e (06/17/2005)

- Changed ps2dev9.irx module from present PS2SDK to an older version, to achieve much
- improved reliability for the host: interface. All other functionality is unchanged.
- NB: Matrix Infinity Dev.2 boot again requires the non-packed ELF for this version.

LaunchELF v3.41d (06/17/2005)

- Fixed bug from v3.41c, causing IOP reset to fail in some cicumstances.
  This was fixed by not using initsbv_patches before IOP reset.
  For future updates, we need to be aware of possible conflicts with this.
- Fixed bug from v3.41c, causing Net Config values to not be displayed.
- NB: Matrix Infinity Dev.2 boot works for either ELF, with or without IOP reset
- NB: Matrix Infinity Dev.1 boot works for either ELF, with or without IOP reset
- NB: Exploit boot works with either ELF, with or without IOP reset

LaunchELF v3.41c (06/15/2005)

- Added key config MISC/PS2NET which starts FTP server and PS2NetFS
- Added 'host:' device with ability to browse PC filesystems (ps2client at PC end).
- Added alternate sort order when showing titles: L1=sort_by_title, L2=sort_by_folder
- Added IOP module checker to avoid many module conflicts
- Added experimental PS2SDK functions to allow IOP reset with MCMAN functionality
- Added alternate iomanX module to improve HDD access reliability
- Tweaked and twisted various stuff to improve operation in general
- NB: Matrix Infinity Dev2 booting requires the non-packed ELF, and IOP reset OFF in CNF
- NB: Those things do not matter for Dev1 booting with the same chip though.
- NB: Exploit booting works with either ELF, but seems to dislike IOP reset

LaunchELF v3.41b (06/07/2005)

- Changed to a cycle like function for config loading.
- Renamed newer launch screen menu items to reflect changes to config loading.
- Added new menu, "STARTUP SETTINGS", and moved "RESET IOP" to it.
- Added "NUMBER OF CNF's" to "STARTUP SETTINGS". (NOTE: Sets the max number of config files).
- Added kthu's "KEY MAPPING" to "STARTUP SETTINGS". (NOTE: Sets the X:OK and O:CANCEL).
- Added dlanor's many fixes including memory leak fix for loadConfig, reset IOP bug, memory card access issue, and config loading problems with compressed ELF's.
- Note: Defaults are "RESET IOP: OFF", "NUMBER OF CNF'S: 1", and "KEY MAPPING: O:OK X:CANCEL".

LaunchELF v3.41a (05/30/2005)

- Added reset IOP on start as a toggle (Note: off by default).
- Added dlanor's fix for the elf launching bug.
- Changed text info from "AWAY" to "SUBTRACT" in the menus because it's more proper to say add or subtract than add or away.
- Changed text for setting "INIT" to "INITIAL SCREEN SETTINGS".
- Added support for two total configs press d-pad left or right to switch between configs. (Note: the two configs are LAUNCHELF.CNF and LAUNCHELF1.CNF).
- Added two menus below the Select config item - left and right to load configs via menu.

|  | The following entries are for official LaunchELF releases, and were written by the original author. They have been translated from Japanese into English, and may contain discrepancies present as a result.

v3.41 (2005/04/29)

- Plural selecting the file copy to HDD, when it does, correcting the bug which it freezes

v3.4 (2005/04/24)

- Addition of interlace option
- The bug where file size does not change at the time of file superscription on HDD correction (O_TRUNC of the library is not effective?)

v3.4b2 (2005/02/06)

- It corresponds to the short file name of the Kohumi letter with respect to USB mass storage
- When the folder is made in the route with respect to USB mass storage, correcting the fact that error comes out

v3.4b (2005/02/05)

- When in option DISC CONTROL addition (trouble occurs with the starting from MOD, please try turning to OFF)
- Mounting the entry to USB mass storage experimentally

v3.33 (2004/11/21)

- Adding the performance which starts the PS2 browser
- In reading the setting file from other than memory card correspondence (from CD-R not yet test)
- It tried to indicate game title even in message
- Modifying the sort method of the file
- Correcting the fact that data deletion and the like with the memory card has become impossible

v3.32 (2004/11/18)

- CD drive addition (you grasp DVD in reading possible drive, failure)
- Several messages additional modification
- The illegitimate paste was prohibited
- With the file selective mode of CONFIG it was less crowded and tried not to indicate capacity

v3.31 (2004/11/16)

- Adding game title display function. In indication of Japanese title, ELISA100.FNT (original edition blessing pear sand font Ver.1.00) is necessary in the same folder as LaunchELF.
- To the same partition correcting the bug which cannot be copied
- It corresponds to the copy of the file above memory size
- It tried to do the superscription verification of the folder
- Improvement of efficiency of HDD reading and writing

v3.3 (2004/11/15)

- Adding filer performance

v3.21 (2004/10/28)

- When the disk you exchange, correcting the fact that operation becomes heavy
- Correcting the fact that the reading of SYSTEM.CNF occasionally fails
- Selecting the file directly, adding the mode which it executes

v3.2 (2004/10/25)

- Modification of default color
- Modifying reading precedence of the setting file
- It corresponds to the file execution on the disk for PS2
- It corresponds to the execution from USB mass storage
- In the main picture it tried to control disk revolution always
- Adding wild card mode to the file selective picture

v3.11 (2004/09/16)

- Correcting the fact that it has become not be able to execute NAPLINK

v3.1 (2004/09/12)

- In Big Drive correspondence (lack of confirmation)
- When starting it tried to stop the revolution of the disk
- Modifying UI
- Adding the setting item related to picture indication

v3.02 (2004/09/04)

- When LaunchELF is executed from PS2MENU, correcting the fact that it fails in saving
- In the file selective picture, it tried to open the directory which was opened lastly first
- Modifying the prescribed form of the setting file. V3.02 can read the setting file of the time before, but it cannot make the setting file of v3.02 the version of the time before read.

v3.01 (2004/08/28)

- When ExecFTPs is made to start from HDD, correcting the fact that it can access only mc
- "Loading HDD modules.." Modifying method of presentation

v3.0 (2004/08/26)

- It corresponds to the reading from HDD

v2.31 (2004/08/22)

- Correcting the fact that it cannot set the R2 button

v2.3 (2004/08/21)

- Selection starting by the cursor key was made possible
- When saving cancelling the memory leak which has happened
- Correcting the fact that it has the case where the default value of TIMEOUT is not 10 seconds
- In the television of PAL system correcting the fact that countdown becomes slow
- Improvement operativity of CONFIG mode
- The using selfishness whose file selective mode is small improvement

v2.2 (2004/08/17)

- Modifying the font and the like of the main picture
- Adding TIMEOUT
- Adding PRINT ONLY FILENAME

v2.11 (2004/08/12)

- In the file selective picture, BIDATA-SYSTEM does not exist and also the f correcting the fact that BIDATA-SYSTEM is indicated
- Modifying the priority of the setting file

v2.1 (2004/08/12)

- In file selective picture mc1: It tried to be able to read
- When at the main picture, while pushing the button, the button being inspected directly, pushing the button just, way the button it is inspected, correction
- The safety for the illegitimate setting file was increased
- In the slot 1 the memo mosquito ?unless the c f it is, correcting the fact that it freezes
- The directory of LaunchELF was added to retention possible pass of the setting file

v2.0 (2004/08/10)

- Adding the setting picture

v1.1 (2004/08/02)

- Rewriting on the basis of PS2MENU

v1.01 (2004/07/29)

- It corresponds to the digital pad

v1.0 (2004/07/24)

- Initial release

6. Acknowledgements | Top

Special Thanks to the following:

LaunchELF Development

- Mr. Mirakichi the original creator of the LaunchELF project, with special gratitude for the fact that he released its source code in retiring from the project.
- 'E P' Who revived the project after Mr. Mirakichi retired from it, and thus kept it alive, adding new features and maintaining the project in general, at first alone but later joined by:
- dlanor who has also made various additions, fixes, and other work on the project.
- Drakonite for his help and advice on how to improve the ELF loader
- sincro for his USBD.IRX selector code
- kthu for the key swapping source changes, which allow the user to swap x and circle buttons.
- Slam-Tilt for the NETWORK SETTINGS option source changes.
- sincro for the source changes that allow for the selection of external USBD.IRX files.
- chip for ps2ftpd, of which a few modifications were made to.
- pixel for ps2-packer that made the small BOOTc.ELF binary.
- Hermes for the early reset IOP source (BOOT.c cogswaploader).
- mrbrown for the independence exploit.
- The ps2dev community for the tools and assistance.

Documentation

- HypERSoniC for beginning this user guide to help anyone new to LaunchELF.
- gravelhead44 for providing the initial screen shots for this user guide before they were changed.
- ps2dragon for reformatting this document using CSS, adding new images and navigation.

- All those who like LaunchELF -