USB LOADER es ahora Open Source

NOTA: ESTE PROYECTO ESTA DESCONTINUADO. NUEVO PROYECTO –> http://bitbucket.org/ifcaro/open-usb-loader

He liberado el codigo fuente del «USB Advance Loader For PS3» bajo licencia GPLv2. La web del proyecto es: http://code.google.com/p/usbld/

================================================
INSTRUCCIONES PARA COMPILAR USB ADVANCE LOADER
================================================ 

Para poder compilar el USB Advance Loader es necesario que realices unas acciones previas.

Primero necesitarás una copia desempaquetada completamente del USB ADVANCE (3MB)

Para «activar» los parches del loader es necesario editar el elf original del USB ADVANCE para que
una vez ejecutado le devuelva el control al loader para que añada sus mejoras.

Para ello necesitamos reemplazar un salto que esta situado en el offset 0x000016e8 por un
JAL al offset de la funcion «parches» del loader.

He programado una pequeña utilidad para parchear el ejecutable conociendo el offset de la funcion
parches. Puedes decargarlo en: https://www.ifcaro.net/ps2dev/archivos/USBADVN_PATCHER.zip

Para conocer cual es el offset de la funcion parches puedes seguir uno de estos metodos:

* Buscar con PS2DIS en nuestro elf una vez compilado (desactivando ee-strip en el makefile)
la funcion ‘_Z7parchesv’ o similar y mirar su offset (en mi caso 0x00800298)

* Ejecutar con PCSX2 (recompilador EE/IOP desactivado) y buscando en el log el texto
«Patches injection en 0x00800298»

* Comentar la llamada a la funcion Reset() en main y utilizar ps2link para buscar en el log
la cadena «Patches injection en 0x00800298»

Ahora el USB Advance le dara el paso al Loader para que le añada las nuevas funcionalidades.

Por ultimo copiar el elf de USB ADVANCE a la carpeta emb renombrado como USBADVN_ok.ELF

NOTA: En el codigo fuente aparecen el nombre de algunos modulos que he extraido del elf del
USB ADVANCE. A estos modulos les he puesto el nombre que se me ha ocurrido en ese momento.

Estos modulos son:

* PARCHE_EE: No es un modulo pero si es un trozo de codigo para el EE que carga justo antes
de lanzar el juego. (Este parche se copia en la dirección de memoria 0x000A8000)

* MSD.IRX: (MASS-DRIVER) Este es el modulo encargado de manegar el filesystem del disco USB.

* RAMDISK.IRX: Es un disco ram para la actualizacion del iop con los modulos del USB ADVANCE.

* CDVDMAN.IRX: Es el reemplazo del driver CDVDMAN para que lea del USB.

* USBLOADER.IRX: Parte para el IOP del USB ADVANCE.

Espero que asi participe mas gente y se pueda mejorar mas