[Investigación] PsGroove en PSP

What about sniffing the code who sent to device attached to psp like the psp cam/gps or anything who was done by sony.
Maybe there are function who can be implemented or modified to work with this portage.
It just an idea...
(I'am just lurking everywhere)
jotax escribió:
Minami escribió:Hola buenas, el USB Adress ese que estais buscando podria ser uno de estos??

0xbc000050 usb.prx
0xbd000004 usb.prx


Si no es eso perdon, ya que intento ayudar ;)

pero ese es el 1º de estos

    -------------------------------------------------------------
    -------------------------------------------------------------
    -  usb.prx
    -------------------------------------------------------------
    -------------------------------------------------------------
    0xbc000050
    0xbd000004
    0xbd800000
    0xbd800004
    0xbd800008
    0xbd80000c
    0xbd800020
    0xbd800200
    0xbd800204
    0xbd80020c
    0xbd800210
    0xbd800214
    0xbd800220
    0xbd800400
    0xbd800404
    0xbd800408
    0xbd80040c
    0xbd800410
    0xbd800414
    0xbd800418
    0xbd80041c
    0xbd800504


Si pero si te das cuanta en la fuente que ha puesto antes wuepe osea esta http://hitmen.c02.at/files/releases/psp/hardwarelist.txt en la parte de "sorted by address" esos dos estan separados de los demas lo cual puede ser que hagan algo diferente de estos
Kenshindono escribió:What about sniffing the code who sent to device attached to psp like the psp cam/gps or anything who was done by sony.
Maybe there are function who can be implemented or modified to work with this portage.
It just an idea...
(I'am just lurking everywhere)


100% Agreed, good idea
Si alguien no lo entiende, yo por si acaso lo traduzco (no quiero hacerme el listillo xd) lo que dice Kenshindono es hacer un sniffing en la conexion entre una psp y algun periferico de la psp, GoCam, GPS, etc...

Creo que esta es una buena idea, aunque no se si seria posible ejecutarla, aunque no parece muy descabellada xd
by_kas_ escribió:
Kenshindono escribió:What about sniffing the code who sent to device attached to psp like the psp cam/gps or anything who was done by sony.
Maybe there are function who can be implemented or modified to work with this portage.
It just an idea...
(I'am just lurking everywhere)


100% Agreed, good idea
Si alguien no lo entiende, yo por si acaso lo traduzco (no quiero hacerme el listillo xd) lo que dice Kenshindono es hacer un sniffing en la conexion entre una psp y algun periferico de la psp, GoCam, GPS, etc...

Creo que esta es una buena idea, aunque no se si seria posible ejecutarla, aunque no parece muy descabellada xd


Fain Fain Fain very god very god very god...... [fumando]
by_kas_ escribió:
Kenshindono escribió:What about sniffing the code who sent to device attached to psp like the psp cam/gps or anything who was done by sony.
Maybe there are function who can be implemented or modified to work with this portage.
It just an idea...
(I'am just lurking everywhere)


100% Agreed, good idea
Si alguien no lo entiende, yo por si acaso lo traduzco (no quiero hacerme el listillo xd) lo que dice Kenshindono es hacer un sniffing en la conexion entre una psp y algun periferico de la psp, GoCam, GPS, etc...

Creo que esta es una buena idea, aunque no se si seria posible ejecutarla, aunque no parece muy descabellada xd


Very Good idea !! Muy bien, intentare buscar informacion ;)
Hay un plugin que hace de mando la psp fusa creo que es el homebreew podriais mirar en ese codigo lo que manda para que lo detecte igual en ese codigo encontrais lo que falta :S nose si servira esta info :P
sagamaru escribió:Hay un plugin que hace de mando la psp fusa creo que es el homebreew podriais mirar en ese codigo lo que manda para que lo detecte igual en ese codigo encontrais lo que falta :S nose si servira esta info :P

eso no es por infrarojos?, aqui se habla de usb ;)
toni_v escribió:
sagamaru escribió:Hay un plugin que hace de mando la psp fusa creo que es el homebreew podriais mirar en ese codigo lo que manda para que lo detecte igual en ese codigo encontrais lo que falta :S nose si servira esta info :P

eso no es por infrarojos?, aqui se habla de usb ;)

nop, el plugin del que habla funciona via usb

"fusa gamepad"

edito hilo_fusa-gamepad_1251623
os dejo el link a dos programas (source code) que usan el gps y la camara (mapthis y pspuht) por si os sirven de ayuda:

http://www.megaupload.com/?d=68COI8DG

El que dice segamaru es el fusagamepad y es por usb lo que no se es si es opensource...
Yo recuerdo que había un homebrew con el que podías cargar juegos desde el pc en la psp vía wifi y usb... imagino que éste podría servir...

Un saludo.
MicroWorks escribió:Yo recuerdo que había un homebrew con el que podías cargar juegos desde el pc en la psp vía wifi y usb... imagino que éste podría servir...

Un saludo.


Si lo que dices es esto USBhostFS tambien podria serbir, ahora estoy registrando las ID desde es esnifer haber si hay suerte y doy con la del puerto USB de PSP ;)
Minami escribió:
MicroWorks escribió:Yo recuerdo que había un homebrew con el que podías cargar juegos desde el pc en la psp vía wifi y usb... imagino que éste podría servir...

Un saludo.


Si lo que dices es esto USBhostFS tambien podria serbir, ahora estoy registrando las ID desde es esnifer haber si hay suerte y doy con la del puerto USB de PSP ;)


A ese me refería, qué mejor manera de ver cómo pide y recibe paquetes de datos desde el puerto USB.

Un saludo y ánimo, que ya queda poco.
Micro.
Vale, me he confundido con FUSA y IRDA XD
nullEX escribió:Me gustaría añadir que además hay que utilizar el driver USB bus open edition (en el post de wuepe) Y modificarlo para evitar que procese automáticamente las peticiones GetDescriptor para los devices (esto es fácil ;)) Esto es porque una vez se cambie el UDADDR, si no se modifica ese driver y se utiliza, las peticiones de descriptores y de configuraciones de cada uno de los devices de los 6 puertos, las gestionara el driver pspusb_bus.

Por lo demás, ya os podéis hacer a la idea de como esta el tema :)

un saludo y gracias wuepe por todo tu esfuerzo!!!

Pd: wuepe es el que mas ha trabajado en esto y lleva encima muchas muchas horas, que lo sepáis ;)



Yo no quiero ser aguafiestas, solo he visto un poco el codigo por encima del openusbpsp ese y mira lo que he encontrado en el usbconfig.c

/* Subroutine at 0x356C */
static
int process_standard_request (struct DeviceRequest *req)
{
  switch (req->bRequest) {
  case 6: /* GET_DESCRIPTOR */
    return process_get_descriptor ();
  case 0: /* GET_STATUS */
  case 1: /* CLEAR_FEATURE */
  case 3: /* SET_FEATURE */
  case 5: /* SET_ADDRESS */
  case 8: /* GET_CONFIGURATION */
  case 9: /* SET_CONFIGURATION */
  case 10: /* GET_INTERFACE */
  case 11: /* SET_INTERFACE */
  case 12: /* SYNCH_FRAME */
    Kprintf ("usbbd ERROR : standard request 0x%x is handled by hardware only\n", req->bRequest);
  default:
    process_request_default ();
    return -1;
  }
  return 0;
}


Los registros usb que pusisteis antes lo mas seguro es que solo sean accesibles desde el kernel asi que si necesitais toquetearlos en el eboot tendreis que haceros unas funciones peek poke
(mensaje borrado)
Vrsquid escribió:
nullEX escribió:Me gustaría añadir que además hay que utilizar el driver USB bus open edition (en el post de wuepe) Y modificarlo para evitar que procese automáticamente las peticiones GetDescriptor para los devices (esto es fácil ;)) Esto es porque una vez se cambie el UDADDR, si no se modifica ese driver y se utiliza, las peticiones de descriptores y de configuraciones de cada uno de los devices de los 6 puertos, las gestionara el driver pspusb_bus.

Por lo demás, ya os podéis hacer a la idea de como esta el tema :)

un saludo y gracias wuepe por todo tu esfuerzo!!!

Pd: wuepe es el que mas ha trabajado en esto y lleva encima muchas muchas horas, que lo sepáis ;)



Yo no quiero ser aguafiestas, solo he visto un poco el codigo por encima del openusbpsp ese y mira lo que he encontrado en el usbconfig.c

/* Subroutine at 0x356C */
static
int process_standard_request (struct DeviceRequest *req)
{
  switch (req->bRequest) {
  case 6: /* GET_DESCRIPTOR */
    return process_get_descriptor ();
  case 0: /* GET_STATUS */
  case 1: /* CLEAR_FEATURE */
  case 3: /* SET_FEATURE */
  case 5: /* SET_ADDRESS */
  case 8: /* GET_CONFIGURATION */
  case 9: /* SET_CONFIGURATION */
  case 10: /* GET_INTERFACE */
  case 11: /* SET_INTERFACE */
  case 12: /* SYNCH_FRAME */
    Kprintf ("usbbd ERROR : standard request 0x%x is handled by hardware only\n", req->bRequest);
  default:
    process_request_default ();
    return -1;
  }
  return 0;
}


Los registros usb que pusisteis antes lo mas seguro es que solo sean accesibles desde el kernel asi que si necesitais toquetearlos en el eboot tendreis que haceros unas funciones peek poke


La idea es compilar 2 prx, uno con el driver pspusb bus modificado y otro con el código específico del psgroove, así que no veo donde puede estar el problema, comentas la linea que procesa las request de GET_DESCRIPTOR y haces que lo procese el evento del UsbDriver.
(mensaje borrado)
a ver, con el tema del address, tirando del IDA Pro (sobre el usb.prx convertido a .elf) he conseguido sacar un poco de info que creo que es importante:

...
aSceusbdevdesc:  "SceUsbDevDesc"<0>  # DATA XREF: sub_C70+140o
aSceusbconfig: "SceUsbConfig"<0>  # DATA XREF: sub_1024+18Co
aSceusbgetdescd: "SceUsbGetDescData"<0>  # DATA XREF: sub_18A4+54o
...


como podeis ver arriba, existen tres subfunciones con la que se configura el usb de la psp. por ejemplo la subfuncion sub_C70 es la que creo que lee el DeviceID (y demas info) de la psp, dado que ésta llama a la subfuncion sub_15F4, que pasada a codigo C un poco legible...
void sub_015F4 (int arg1)
{
...
  var12 = sceIdStorageLookup (0x00000041, 0x00000000, var8, 0x00000004);
...


es la encargada de leer el IDStorage correspondiente a la key 0x041. ahora hay que ver que se hace con dicha informacion, y como se trabajan los registros comentados por wuepe anteriormente 0xBD8...

edito: me acabo de dar cuenta de que no son subfunciones, sino secciones de datos [+risas] , eso si, hay que ver que funciones realizan las secciones en las que se utilizan dichos datos
Vrsquid escribió:Los registros usb que pusisteis antes lo mas seguro es que solo sean accesibles desde el kernel asi que si necesitais toquetearlos en el eboot tendreis que haceros unas funciones peek poke


Segun estube mirando esta madrugada sobre poder pillar el Adress del USB de la Psp lo unico que llegue a encontrar fue que siempre que enganchas una entrade esta directamente te de la de la Consola, en pocas palabras, es como si el USB de la consola no tenga informacion, lo que detecta es la informacion de la consola. por otra parte eso si es accesible desde el kernel, pensar que aun tenemos la idea del Recovery, con la opcion de ejecutar archivos .prx en forma de plugins para poder acceder a dichos programas sin tener que pasar por el CF de la consola, podriamos llegar a poder comunicarnos ;)
Era el necesario, parar el envio de intentar ACTIVAR el puerto 7

int usb_request(int arg1, int arg2, struct DeviceRequest *req)

Que quiere activar el Puerto 7, negando siempre con
int value = -EOPNOTSUPP;

Si tiene que interrumpir la transmisión, para poder seguir obteniendo otros datos por dicha función.

Ahora estoy liado con esto, haber si alguien lo saca, y asi se pueda recibir otro comando, distinto de este al llegar a activar los 6 puertos.


// Si llego al 7 POWER PORT, se recibe siempre el intento de activar el 7, hay que anular eso, para dejar libre esta función.
if ( req->bRequest == USB_REQ_SET_FEATURE && (req->bmRequestType & USB_TYPE_CLASS) == USB_TYPE_CLASS
&& (req->bmRequestType & USB_RECIP_MASK) == USB_RECIP_OTHER
&& (req->wIndex == 7 && req->wValue == 8)
)
return value;

Si comentais esas lineas, vereis que intenta activar el puerto 7, hay que anular eso en el hilo de retardo de 150ms, cuando se pone en modo hub_ready.
Wuepe podrias verificar esta informacion, esta en la seccion de 'Updates' de el port por Deviante ( http://code.google.com/p/psp3jb/updates/list )...

lleva como 30 minutos que salio esto...

issue 5 (UDADDR ) reported by madshaun1984 - http://pastebin.com/kqhvhaeh Use #define SCE_USB_PID_PSPCM 0x01CB to change the UDADDR


Saludos.
eso que acaban de poner no es el UDADDR, sino el productID de la psp fat:
IdStorage key 0x041 : USB Desc.
0000D5000-4C05 [idVendor]
0000D5002-0000
0000D5004-0A [bLength]
0000D5005-03
0000D5006-53006F006E007900-S.o.n.y. [iManufacturerString]
0000D500E-00...00
0000D5044-05 [? bNum]
0000D5045-000000
0000D5048-C801[idProduct]
...

http://0okm.blogspot.com/2006_05_01_archive.html

lo podeis comprobar con el lsusb -v
ViTi95 escribió:eso que acaban de poner no es el UDADDR, sino el productID de la psp fat:
IdStorage key 0x041 : USB Desc.
0000D5000-4C05 [idVendor]
0000D5002-0000
0000D5004-0A [bLength]
0000D5005-03
0000D5006-53006F006E007900-S.o.n.y. [iManufacturerString]
0000D500E-00...00
0000D5044-05 [? bNum]
0000D5045-000000
0000D5048-C801[idProduct]
...

http://0okm.blogspot.com/2006_05_01_archive.html


lo podeis comprobar con el lsusb -v


Segun tengo entendido el IdVendedor es parte de la MAC, con lo cual esa mac llebaria esos digitos a la inversa, osea 05 4C, segun tegun tengo entendido repito. ;)
exacto, creo que son los dos bloques hexadecimales de la direción mac
Esto tiene mucha informacion sobre Ingenieria Inversa del PSJailBreak...

http://ps3wiki.lan.st/index.php/PSJailb ... ngineering


Port Five

The dongle plugs the fake Jig into Port Five right after Port Four has done its job. It uses the same PID/VID that the original Sony Jig uses (0x054C/0x02EB) and probably the same configuration with the same end points.

It is suspected that because the Jig is a known device that the PS3 was waiting for, it's device and configuration descriptors will not be malloced into the heap.

The PS3 sends a 64 byte challenge to the fake Jig to authenticate it, and the dongle replies with 64 bytes of static data. The PS3 will malloc space for this response, and because the boundary tags have been modified by Port Four, malloc will return a pointer to 24 bytes before a function that has something to do with free and the 64 bytes of data will be written over top of the function.

At the point, no code has been patched yet, so the Jig's static response will fail to authenticate the jig.


Saludos.
(mensaje borrado)
ardil.salas escribió:Una pregunta, tengo un chip Infectus 2 y su programador USB que es Actel se le podria instalar el PSGroove.

Un Saludo.


Esto realmente aporta mucho al port de PSP, vamos no te cortes.
Mejor me voy a dormir, que estoy de mala leche hoy. :-|
Yo diría que esta a punto de terminarse, haber si se consigue cambiar el port, y este pregunte por su DESCRIPTOR, lo siguiente ya parece que funciona.

Pero no me llega a cambiar de port, para que me mande el descriptor, para cambiar el port, no es necesario cambiar el driver usb address, eso ya viene luego, una vez que llegue su decriptor, ya se podrá cambiar a ese address.
Puesto como ya esta en el address original, falta primero cambiar de port, para luego hacer lo siguiente.

El comando en psgroove es:
Endpoint_Write_Byte
Que corresponderia a este define:
#define UEDATX _SFR_MEM8(0xF1);
xmoneyxfcj está baneado por "clon para saltarse baneo temporal"
wuepe escribió:Yo diría que esta a punto de terminarse, haber si se consigue cambiar el port, y este pregunte por su DESCRIPTOR, lo siguiente ya parece que funciona.

Pero no me llega a cambiar de port, para que me mande el descriptor, para cambiar el port, no es necesario cambiar el driver usb address, eso ya viene luego, una vez que llegue su decriptor, ya se podrá cambiar a ese address.
Puesto como ya esta en el address original, falta primero cambiar de port, para luego hacer lo siguiente.

El comando en psgroove es:
Endpoint_Write_Byte
Que corresponderia a este define:
#define UEDATX _SFR_MEM8(0xF1);


tio sois unos crack....por lo que pones aqui habeis pasado lo mas dificil(es decir el punto donde estabais atascados no?) cres que a lo largo de la noche puede aver novedades o va para dias perdona por el tercer grado pero es curiosidad.ojala supiera y pudiera estar metido en el proyecto creeme que preferiria vivirlo desde dentro que vivirlo desde fuera preguntando como un bobin
wuepe escribió:Yo diría que esta a punto de terminarse, haber si se consigue cambiar el port, y este pregunte por su DESCRIPTOR, lo siguiente ya parece que funciona.

Pero no me llega a cambiar de port, para que me mande el descriptor, para cambiar el port, no es necesario cambiar el driver usb address, eso ya viene luego, una vez que llegue su decriptor, ya se podrá cambiar a ese address.
Puesto como ya esta en el address original, falta primero cambiar de port, para luego hacer lo siguiente.

El comando en psgroove es:
Endpoint_Write_Byte
Que corresponderia a este define:
#define UEDATX _SFR_MEM8(0xF1);


Que bien! ^^ Espero se pueda lograr, yo por mi parte ando revisando cuanta documentación puedo para ver si les ayuda de algo, y aquí encontré mas información sobre cada puerto y sus funciones (incluyendo el HUB)

Espero sirva de algo.

http://www.ps3hax.net/showthread.php?t=12878

Por cierto no se si ya lo tienen anotado, pero el puerto 6 no es parte del exploit, este lo usa el PSJailBreak original para obligar al usuario a que deje conectado el USB, en ese enlace esta documentado por si acaso.

Saludos.
"Por cierto no se si ya lo tienen anotado, pero el puerto 6 no es parte del exploit, este lo usa el PSJailBreak original para obligar al usuario a que deje conectado el USB, en ese enlace esta documentado por si acaso."

Buena anotacion, creo que a muchos incluyendome desconocemos ese detalle..
Minami escribió:
ViTi95 escribió:eso que acaban de poner no es el UDADDR, sino el productID de la psp fat:
IdStorage key 0x041 : USB Desc.
0000D5000-4C05 [idVendor]
0000D5002-0000
0000D5004-0A [bLength]
0000D5005-03
0000D5006-53006F006E007900-S.o.n.y. [iManufacturerString]
0000D500E-00...00
0000D5044-05 [? bNum]
0000D5045-000000
0000D5048-C801[idProduct]
...

http://0okm.blogspot.com/2006_05_01_archive.html


lo podeis comprobar con el lsusb -v


Segun tengo entendido el IdVendedor es parte de la MAC, con lo cual esa mac llebaria esos digitos a la inversa, osea 05 4C, segun tegun tengo entendido repito. ;)


El VendorID en la PSP, al igual que en muchos otros dispositivos, se puede cambiar, y está disponible en el IDStorage 0x041, son los 4 primero bytes.

Claro, cambiar un IDStorage te puede dejar con una piedra negra para pisar papeles que no puede arreglar ni una pandora, pero eso es otro tema muy distinto..
Mas info del Puerto 6...

Port Six

The device that gets plugged into Port Six has nothing to do with the exploit. It has a vid/pid of 0xAAAA/0xDEC0 (on the PPC, which is big endian, the pid is 0xC0DE).

The payload sends it a single byte (0xAA) control transfer so that the dongle will know that the exploit was successful so it can turn the green LED on to signal the user.

A function in the original PSJailbreak Payload will make sure that this device stays plugged in. If it is ever unplugged then it will call LV1_Panic and your PS3 will shutdown. PSGroove has removed this 'feature'.


Fuente original:

http://ps3wiki.lan.st/index.php/PSJailbreak_Exploit_Reverse_Engineering

Saludos.
No hace falta cambiar el VID/PID en la nand porque es el driver usb el que lo lee. Con el open puedes mandar el que te de la gana sin tocar eso tan peligroso.
Vrsquid escribió:No hace falta cambiar el VID/PID en la nand porque es el driver usb el que lo lee. Con el open puedes mandar el que te de la gana sin tocar eso tan peligroso.



Una pregunta mi estimado, crees tu que esa seria la solucion, o solo lo comentas...


Digo esto desde mi absoluta ignorancia salu2
Bueno, tengo el set_address_driver. lo llamo switch_to_port


#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...
xmoneyxfcj está baneado por "clon para saltarse baneo temporal"
wuepe tio eres un maquina(no me enterado de nada..) vas mazo avanzado mucho animo.

Desde este comentario intentaré promover una idea, que por otra parte me parece lo más justo.
Ya que no podemos aportar ayuda intelectual al proyecto.
Doy mi palabra que así lo haré. (Y VA EN SERIOOOO)
En cuanto este terminado el Port y sea funcional voy a donar 10 euros para vosotros y desde aqui pido a la gente que se unan a mi propuesta, ya que de gastarnos no menos de 30 euros y hasta 100, gracias al trabajo de estos chicos nos sale gratis.
Despues de aguantar comentarios, prisas, risas y demas tonterias EJEM (No es peloteo eh XDDD) Es agradecimiento JUSTO!
Siempre siendo un gesto voluntario que colabore en la causa aportando economicamente lo que pueda.
(El trabajo se paga con dinero) Yo pongo 10€ ellos lo confirmarán. Cada uno puede aportar lo que quiera.

Una vez mas GRACIAS!! Ya estais cerquita (y nosotros con vosotros jajaja)
wuepe escribió:Bueno, tengo el set_address_driver. lo llamo switch_to_port


#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...


Wua perfecto gran trabajoooo tambien quiero recordar que deviante tambien se lo estaba currando!! wuepe deviante dijo que va a hacerte esa parte hablate con el para que vaya el tema mas rapido :D

saludos!
pregunta: en aprender a hacer (http://code.google.com/p/psp3jb/) lo que hacen estos maquinas que se puede tardar? semanas, meses o años?
en plan ligth eh, hacer un port de esos para psp/calculadoras/etc... lo digo por si me da tiempo a leer cosillas e intentar ayudar progamando o lo que hagan xDD
wuepe escribió:Bueno, tengo el set_address_driver. lo llamo switch_to_port


#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...



DeViaNTe me pide que os haga llegar esto a ver si vale

http://code.google.com/p/psp3jb/source/ ... runk/eol.c
Fuentes actualizadas, he subido la original con el cambio de switch_to_port para continuar desde hay.

Y he subido una fuente de test, que manda todo los descriptores paso a paso, esperando sus tiempos, pero como no se hace aun la desconexión y conexión de puertos, no es funcional, si que hace el proceso de mandar todos los descriptores pero cuando llega al final, la ps3 al acabar de encenderse ni se inmuta.

http://code.google.com/p/eol-psgroove/

Editado:
Test no funcional, funciona envio masivo de descritores:
Fuente: http://www.megaupload.com/?d=52J338D9
Compilado (Solo driver): http://www.megaupload.com/?d=5E0S9ACC

Por otra parte...
Fuente Driver Rev 32: http://www.megaupload.com/?d=HJOW3BS7

Esta rev 32, lleva el switch_to_port ya añadido, se ha quitado los descriptores del High-Speed que no se usan, se ha cambiado la definicion de los endpoint para que sean uno de Entrada y Dos de Salida
Hype a tope xD
Buen trabajo tio! A ver si hay suerte y consigues lo que te falta!
-Zaka- escribió:Hype a tope xD
Buen trabajo tio! A ver si hay suerte y consigues lo que te falta!



cual niño en coche: 'falta muchooo?' xDD
animo para developerss los que estamos aqui posteando alguna que otra tonteria es la manera de 'mostrar' que estamos apoyando el proyecto desde nuestra 'noobicie' (de noob)
wuepe escribió:Fuentes actualizadas, he subido la original con el cambio de switch_to_port para continuar desde hay.

Y he subido una fuente de test, que manda todo los descriptores paso a paso, esperando sus tiempos, pero como no se hace aun la desconexión y conexión de puertos, no es funcional, si que hace el proceso de mandar todos los descriptores pero cuando llega al final, la ps3 al acabar de encenderse ni se inmuta.

http://code.google.com/p/eol-psgroove/

Editado:
Test no funcional, funciona envio masivo de descritores:
Fuente: http://www.megaupload.com/?d=52J338D9
Compilado (Solo driver): http://www.megaupload.com/?d=5E0S9ACC

Por otra parte...
Fuente Driver Rev 32: http://www.megaupload.com/?d=HJOW3BS7

Esta rev 32, lleva el switch_to_port ya añadido, se ha quitado los descriptores del High-Speed que no se usan, se ha cambiado la definicion de los endpoint para que sean uno de Entrada y Dos de Salida


Acabo de realizar pruebas con mi PS3 (3.41), y por supuesto no funciona, pero me queda una duda, ¿se supone que si enciendo el PS3 y corro el PSPGroove me detecte algun dispositivo en el proceso?, hago la pregunta como parte de test pues , en mi caso el PS3 no me da ningun aviso de que se ha conectado algun dispositivo.

No se si es normal ya que el hack funciona en cuestion de un par de segundos.

Saludos.
CaptainCPS-X escribió:
wuepe escribió:Fuentes actualizadas, he subido la original con el cambio de switch_to_port para continuar desde hay.

Y he subido una fuente de test, que manda todo los descriptores paso a paso, esperando sus tiempos, pero como no se hace aun la desconexión y conexión de puertos, no es funcional, si que hace el proceso de mandar todos los descriptores pero cuando llega al final, la ps3 al acabar de encenderse ni se inmuta.

http://code.google.com/p/eol-psgroove/

Editado:
Test no funcional, funciona envio masivo de descritores:
Fuente: http://www.megaupload.com/?d=52J338D9
Compilado (Solo driver): http://www.megaupload.com/?d=5E0S9ACC

Por otra parte...
Fuente Driver Rev 32: http://www.megaupload.com/?d=HJOW3BS7

Esta rev 32, lleva el switch_to_port ya añadido, se ha quitado los descriptores del High-Speed que no se usan, se ha cambiado la definicion de los endpoint para que sean uno de Entrada y Dos de Salida


Acabo de realizar pruebas con mi PS3 (3.41), y por supuesto no funciona, pero me queda una duda, ¿se supone que si enciendo el PS3 y corro el PSPGroove me detecte algun dispositivo en el proceso?, hago la pregunta como parte de test pues , en mi caso el PS3 no me da ningun aviso de que se ha conectado algun dispositivo.

No se si es normal ya que el hack funciona en cuestion de un par de segundos.

Saludos.


estoo es lo k el dijo
no es funcional aun
, no es funcional, si que hace el proceso de mandar todos los descriptores pero cuando llega al final, la ps3 al acabar de encenderse ni se inmuta.
No la ps3 no se inmuta, es un HUB, por lo que la ps3 piensa que es un dispositivo que le vas a conectar cosas. Así que es normal que la ps3 no se queje ni diga nada.

Si te hace los pasos, esta bien, falta la conexión/desconexión de puertos y ya funcionaría.

fw 3.41 si es correcto. Aunque el proceso seria:
1. Apagar la PS3 completamente, desde atras ya sea boton power o en su defecto(slim) sacar el cable de corriente.
2. Conectar la psp con el programa ya abierto y la ps3 aun sin encender.
3. Dar una vez al botón POWER de la ps3 y 1sg después al botón EJECT de la ps3, con esto la ps3 hara un ruido y esperas a que encienda.

Pero nada, si el jailbreak funcionará en la ps3 saldría la opción de instalar pakages.
xmoneyxfcj está baneado por "clon para saltarse baneo temporal"
Probado.... Pero nada.conocéis los pasos a seguir o estamos estancados a la espera de otra persona q sepa seguir?
xmoneyxfcj escribió:Probado.... Pero nada.conocéis los pasos a seguir o estamos estancados a la espera de otra persona q sepa seguir?



tampoco es eso brotheer xDD seguro que se las apañan, ellos saben de esto, yo hubiese tardado otros 4 años en INTENTAR lo que han conseguido xD
xmoneyxfcj escribió:Probado.... Pero nada.conocéis los pasos a seguir o estamos estancados a la espera de otra persona q sepa seguir?



Jiji poco mas entereado no puede estar, ESTAMOS QUIMOSABI...? [+risas]
1482 respuestas