Bueno, tras muchas hosras delante del ordenador no consigo dar con la solucion.
Estoy intentando modificar el Hostcore para que en lugar de que lea host0: lea host0:/C:/ pero no consigo dar con donde esta definido host0: para cambiarlo o cambiar el Sceioopen para añadirle la ruta que quiero. En principio deberia ser posible ya que con los navegadores de USBIsoloader y el Irshell puedo hacerlo y entiendo que el Hostcore lo que hace es redireccionar para que entre en el XMB.
La parte que me tien mosca es esta, pero no se como modificarla, he hecho algunas pruebas, pero nada.
int module_start( SceSize args, void *argp )
{
if ( initPatches() < FW_371 )
{
log( "Not supported firmware version!\n" );
return 0;
}
sceIoAssign("ms0:", "msstor0p1:/hda0", "fatms0:", IOASSIGN_RDWR, NULL, 0);
initUtils();
init_key = sceKernelInitKeyConfig();
log( "init_key %08x\n", init_key );
readConf( &hc_conf );
if ( init_key == PSP_INIT_KEYCONFIG_GAME )
{
patchMemPartitionInfo();
char * h_mode = ( char * )0x09000000;
char * f_exec = ( char * )0x09000010;
log( "mode %s, exec %s\n", h_mode, f_exec );
strcpy( exec, f_exec );
if ( !strncmp( h_mode, mode_str[1], 3 ) )
{
host_mode = D_USB;
}
else if ( !strncmp( h_mode, mode_str[2], 3 ) )
{
host_mode = D_WIFI;
}
if ( host_mode )
{
patchMsDrv();
}
else return 0;
}
else if ( init_key == PSP_INIT_KEYCONFIG_VSH )
LoadExecVSHCommon = patchLoadExecVSHCommon( LoadExecVSHCommon_new );
thid = sceKernelCreateThread( "host2ms_thread", main_thread, 0x18, 0x4000, 0x00100001, NULL );
if( thid >= 0 )
sceKernelStartThread( thid, 0, 0 );
return 0;
}
He mirado en la pagina
http://psp.jim.sh/pspsdk-doc/group__FileIO.html,
Si alguien le puede echar un ojo al tema le estare muy agradecido.
El source se puede descargar por svn o echarle un ojo en:
http://code.google.com/p/hostcore-psp/source/checkout no lo puedo subir porque es muy grande.
decir que soy totalmente novato, pero tengo quien me eche una mano, lo que pasa es que no esta familiarizado con la PSP.
Gracias y saludos!!
EDITCreo que lo que pasa es que al redireccionar el HDD hacia la MS, lo que le dice a la PSP es que busque la misma estructura de archivos, es decir es como si le engañase a la psp y pensase que esta cargando desde MS. Asi ue creo que lo que deberia hacer es cambiar el archivo donde se define la estructura de archivos para que cuando este redireccionada lea el nuevo en lugar del que viene por defecto, alguien sabe cual es ese archivo lo he estado inentando encontrar pero no lo localizo.
muchas gracias!!
EDIT2Creo que tambien podria ser por este otro camino: PspIoDrvFileArg pero no se como funciona, alguien me podria decir como se maneja? lo utiliza por eemplo aqui: io_dopen(PspIoDrvFileArg *arg, const char *dir) pero creo que ahi debreia ir el PATH, luego debe estar definido en otro sitio, pero no lo encuentro.
gracias de nuevo!!
saludos!!