================================================
INSTRUCTIONS FOR COMPILING USB ADVANCE LOADER
================================================
To compile the USB Advance Loader you need to make some previous actions.
First you will need a copy of USB ADVANCE unpacked completely (3MB)
To "enable" loader's patches is necessary to edit the original USB ADVANCE's elf that
once implemented it will return control to the loader for adding any improvements.
For this we need to replace a jump which is located in 0x000016e8 offset by a
JAL to offset the "parches" function of the loader.
I programmed a little utility to patch the executable knowing the offset of the function
'parches'. You can download it at:
http://ps2dev.ifcaro.net/archivos/USBADVN_PATCHER.zip
To know which is the offset of the function patches follow one of these methods:
* Search with PS2DIS in our elf once compiled (ee-strip disabled in makefile) the function
'_Z7parchesv' or similar and look at offset (0x00800298 in my case)
* Run in PCSX2 (EE/IOP recompiler off) and looking at the text log
"Patches injection at 0x00800298"
* Comment call to Reset() function in main and use ps2link to search in the log the string
"Patches injection at 0x00800298"
Now USB Advance will give the step to Loader to add new features.
Finally copy the USB ADVANCE elf renamed to USBADVN_ok.ELF to the emb folder
NOTE: In the source code appears the name of some modules that I have extracted from the
USB ADVANCE elf. These modules gave them the name that occurred to me at that time.
These modules are:
* PARCHE_EE: It is not a module but it is a piece of code for EE is loaded just before
to launch the game. (This patch is copied to the memory address 0x000A8000)
* MSD.IRX: (MASS-DRIVER) This is the module responsible for the manege USB disk filesystem.
* RAMDISK.IRX: Its a RAM DISK for IOP updating with USB ADVANCE modules.
* CDVDMAN.IRX: It is a replacement driver CDVDMAN to read from USB.
* USBLOADER.IRX: IOP part of USB ADVANCE.