ArangeL escribió:Creo que es lo que han comunicado más atrás un usuario; que no podía sincronizar su wiimote cuando realizaba pruebas con el driver. Como ya dijeron... es una beta "preliminar".
He sido yo, pero no es lo mismo, yo ni siquiera hago el IOS_Open del usb y no sincroniza, es al inicializar el usb. Esto es lo que me ha respondido el autor (kwiirk):
Rodries,
That was some of my fears. The ehci module is not releasing the port
fast enough and then OH1 is unhappy.
I did not find the time to test your SpeedTest.
I was busy preparing the USB1+USB2 version of cios_usb2.
Could you please tell me if it resolve your problems?
I put back the original OH0 module and put my EHCI driver into an EHC module,
though, you have to modify usbstorage_starlet, to access /dev/usb/ehc
instead of /dev/usb/oh0
at startup, the module release all port that are not connected to USB2
devices to OH1 and OH0, so if you plug your device after startup, it
will be for OH0 (usb1)
could you please test it?
He probado un par de cios que me ha mandado pero cada vez da problemas otra cosa.
Edito:
Ya he probado la nueva beta y ya no falla, sólo tengo el problema de que si activo este cios entonces se me desactiva el dvd.
Marcan hay alguna posibilidad de hacer funcionar ambos?
O habría que modificar este cios para que cambie ese bit famoso en el starlet?
Edito:
Lo he solucionado modificando libdi, he creado una funcion especial que me permite activar el dvd y cargar el ios a la vez:
en stubload.c
s32 __DI_LoadStubIOS(int version)
{
int ret = 0;
int res;
#ifdef DEBUG_IOS
dprintf("Reloading to IOS%d\n",version);
#endif
res = __IOS_ShutdownSubsystems();
if(res < 0) ret = res;
res = __ES_Init();
if(res < 0) ret = res;
else {
res = __DI_StubLaunch();
res = __IOS_LaunchNewIOS(version);
if(res < 0) {
ret = res;
__ES_Close();
}
}
res = __IOS_InitializeSubsystems();
if(res < 0) ret = res;
return ret;
}
en di.c
int DI_InitIOS(int version){
static int init = 0;
state = DVD_INIT | DVD_NO_DISC;
if(!init){
__DI_LoadStubIOS(version); // Marcan's 1337 magics happen here!
LWP_MutexInit(&bufferMutex, false);
init = 1;
}
if(di_fd < 0)
di_fd = IOS_Open(di_path, 2);
return (di_fd >= 0)? di_fd : -1;
}
Ahora en vez de usar DI_Init() puedes usar DI_InitIOS(202) y así se cargará ese ios con soporte para dvd.
Marcan ¿ es una buena solución ? o ¿es una chapuza?