How to Pass Launch Arguments to a PS2 Game
(the simpler, less powerful way)
by Iritscen

Requirements:
- this folder's BOOT-HC.ELF
- a hex editor such as HxD
- PCSX2
- a PS2 game on disc or an ISO
- (recommended) a USB gamepad

The BOOT-HC.ELF in this folder is an earlier, experimental customized version of uLaunchELF (uLE) v4.40h that I produced before the BOOT.ELF in ps2launchargs/.  It was a test to see if launch arguments could be passed by uLE to a game at all.  There is only one argument passed, and it is hardcoded to be "-1234567890123456789".  The purpose of this string is to allot 20 characters to work with.  The idea is that you change this string using a hex editor when you want to test a new argument.  If you need to pass multiple arguments to the game, you should use the main method provided in ps2launchargs/ or alternate method 2.

1. In your hex editor, open BOOT-HC.ELF and search for the text string "-1234567890123456789".  You can't change the length of this 20-character passage or uLE will be broken.  If your desired argument is shorter than 20 characters, you must replace the starting characters with your own and then terminate the new string with a NULL character.  So, for instance, if you want to pass "-noui" to the game, you would change…

-1234567890123456789
…to…
-noui 67890123456789

…where the space is a NULL character (0x0), not a space character (0x20).  Save your change.

2. Open PCSX2.  (These instructions were written for v1.4.0.)
	A. Under the CDVD menu, you need to pick "ISO" if you have an image file (like Oni 2) or else "Plugin" if the game is on disc.  Your choice will be mounted within uLE.
	B. Choose System>Run Elf… and choose BOOT-HC.ELF.
	C. Navigate in the file browser to cdfs:, then choose the game binary (for Oni 2, this is SCPS123.45) with the circle button.  The game will be launched with the argument you chose in step 1.  If you cannot see the game in cdfs: (this may happen for any DVD-ROM game), you can always go to the main menu's MISC directory and choose "PS2Disc".

3. There are two ways to ensure that launch arguments are being passed properly:
	A. Look for an effect in-game.  The simplest working argument that you can test with Oni 2 is "-noui", which will cause the game to immediately load the first mission instead of the main menu.
	B. Open the PCSX2 console (Misc menu) and search for "uLaunchELF" to see messages from uLE as it reads LaunchArgs.txt and passes the arguments to uLE's loader, a separate binary stored inside uLE which actually launches the game.

Have fun!