wuepe escribió:Bueno, tengo el set_address_driver. lo llamo switch_to_portCódigo: Seleccionar todo
#define USB_PORT_0200 0xbd800200
int switch_to_port(int port)
{
int intr;
intr = sceKernelCpuSuspendIntr ();
unsigned int address = (USB_PORT_0200 + 32 * port);
_sw (_lw (address) | 0x80, address);
sceKernelCpuResumeIntr (intr);
}
Con esto, consigo cambiar de address, y ahora a enviar los descriptores, no se me queda esperando 5sg a que llegue, lo coge bien.
PERO aun me falta el connect_port para que vaya pidiendo los descriptores la ps3 cuando lo vaya necesitando.
De todas formas, saltándome ese paso por si no hace falta esperar a que la ps3 me lo pida, puede que tenga algún error el código, ya he intentado mandar todo, por mi parte, haciendo los tiempos de espera necesarios, llego al final, al DONE. Pero nada, en la ps3 no arranca con la función extra añadida.
Así que hay que mandar los descriptores cuando la ps3 lo pida, no cuando se quiera.
Con ese switch_to_port de arriba, y faltando el connect_port, para que empiece a pedir lo que necesita, ya estaría listo.
Dejo esto por aquí, y en breve subo el intento de mandar todo, pero claro, faltando el connect_port, que no lo doy sacado >.<
Se supone que hay que mandarlo como comente hay atras, por enpoint_write, o por fifo... pero el sdk no trae dicha función, solo trae send_request, pero no estoy respondiendo a un dato que me pide, soy yo el que quiere conectar un puerto...
Fuente