› Foros › PlayStation 3 › Modchips y Softmods
superxaving escribió:djvicio escribió:Alguien a probado la R4 recien subida?
no se como se compila
saludos!!!
djvicio escribió:superxaving escribió:djvicio escribió:Alguien a probado la R4 recien subida?
no se como se compila
saludos!!!
http://psp3jb.googlecode.com/svn/bin/bin.rar
djvicio escribió:superxaving escribió:djvicio escribió:Alguien a probado la R4 recien subida?
no se como se compila
saludos!!!
http://psp3jb.googlecode.com/svn/bin/bin.rar
Minami escribió:harmony555 escribió:Pues que quereis que os diga, pero yo estoy de acuerdo con el, no en las formas evidentemente, pero si en lo que dice, no puede ser que se este con el casi esta, casi esta y luego nada, luego se preguntan cosas como para cuando estara mas o menos, ya no digo fecha de dia, sino de mes, y tampoco responden, tampoco dicen que tal van ni los que les falta, ni el porcentaje que llevan hecho ni nada.
HOLAAA ¿?¿? SCENER no es igual a RAPEL, no se sabe para quando esta porque cada paso que se da salen problemas nuevos
davidbg22 escribió:deviante ya ha solucionado lo del reset de los usb con el pspfreedom?? he leido que dejo de portar el psgroove para hace portar el psfreedom ¿es cierto esto?? es que no e si he leido mal o no... entre tanto offtopic, es dificil no perderse, y otra pregunta ¿que diferencia hay entre el freedom y el psgroove???
xinjia escribió:davidbg22 escribió:deviante ya ha solucionado lo del reset de los usb con el pspfreedom?? he leido que dejo de portar el psgroove para hace portar el psfreedom ¿es cierto esto?? es que no e si he leido mal o no... entre tanto offtopic, es dificil no perderse, y otra pregunta ¿que diferencia hay entre el freedom y el psgroove???
que yo sepa el psfreedom es una variante del psgroove que tiene el brvd activado
que alguien me corrija si me equivoco que no lo se seguro
davidbg22 escribió:xinjia escribió:davidbg22 escribió:deviante ya ha solucionado lo del reset de los usb con el pspfreedom?? he leido que dejo de portar el psgroove para hace portar el psfreedom ¿es cierto esto?? es que no e si he leido mal o no... entre tanto offtopic, es dificil no perderse, y otra pregunta ¿que diferencia hay entre el freedom y el psgroove???
que yo sepa el psfreedom es una variante del psgroove que tiene el brvd activado
que alguien me corrija si me equivoco que no lo se seguro
Y eso que es??? es por pura curiosidad
un aplauso a todos los sceners que le siguen echando huevos al asunto, ya dareis con la tecla
he probado esta version en una psp 3000 con 5.03 prometheus 2 y los resultados son:
ejecuto el eboot en psp y cuando me pone todo correcto, la conecto al pc y empieza a salir hub OK (el pc me detecta un hub general) (windows 7)
en la ps3 lo he hecho como si estubiese funcional ya, he cortado la corriente, he ejecutado el eboot con el cable ya puesto pero sin encenderla aun , cuando ya ha cargado y todo ok, enciendo la ps3 con la secuencia esa y se enciende mas tarde pero en la psp no aparece lo de hub que aparecia en el pc. en la ps3 aparece dispositivo desconocido
un saludo!
NIKKYO escribió:he probado esta version en una psp 3000 con 5.03 prometheus 2 y los resultados son:
ejecuto el eboot en psp y cuando me pone todo correcto, la conecto al pc y empieza a salir hub OK (el pc me detecta un hub general) (windows 7)
en la ps3 lo he hecho como si estubiese funcional ya, he cortado la corriente, he ejecutado el eboot con el cable ya puesto pero sin encenderla aun , cuando ya ha cargado y todo ok, enciendo la ps3 con la secuencia esa y se enciende mas tarde pero en la psp no aparece lo de hub que aparecia en el pc. en la ps3 aparece dispositivo desconocido
un saludo!
Si ya da ese error de dispositivo desconocido en la PS3 van por buen camino, a ver si lo consiguen.
Un saludo.
pupila1992 escribió:lo malo esque la pantalla de la psp se queda negra y hay que apagarla desde el boton directamente, y claro en la 3000 como se ponga tonta el mhu speed no le entran ganas de arrancar
Franiko escribió:Ya ha subido la r5, no se como se compila asi que los que tengais algo de idea podriais probarla y comentar si tiene alguna novedad con respecto a la revision anterior.
Matrox escribió:Franiko escribió:Ya ha subido la r5, no se como se compila asi que los que tengais algo de idea podriais probarla y comentar si tiene alguna novedad con respecto a la revision anterior.
link?
manolo20 escribió:yo tengo una psp fat desde el dia k salio version 5.00m33-4 si me decis que tengo que hacer hago las pruebas
siempre que no halla riesgos claro
GrimFandango escribió:abren un hilo NUEVO y lo seguís llenando de mierda, increíble que queréis que lo cierren este también?
pupila1992 escribió:GrimFandango escribió:abren un hilo NUEVO y lo seguís llenando de mierda, increíble que queréis que lo cierren este también?
amen!
Se20 escribió:POR FAVOR DEJAD LIBRE EL POST DE INVESTIGACIÓN. SE QUE QUEREIS SER TESTERS, PERO ELLOS PUEDEN PASAR POR AQUÍ PARA VER LOS RESULTADOS DE NUESTRAS PRUEBAS. YO TRATARÉ DE HACER SINTESIS DE LO QUE DIGAN ALLI. DISCUTID AQUÍ LO QUE QUERAIS.
FUNCIONAMIENTO BÁSICO DEL PSGROOVE
Bueno, no está de más explicar un poco para los que desconocen programación. Voy a explicar de una forma muy burda y en pocos pasos lo que debería hacer un sistema basado en PSJailbreak como es el PSGroove.
Se trata de hacer creer a la PS3 que tiene conectado un HUB USB. Durante el proceso de reconocimiento de cada uno de los puertos del host se inyecta un código en la consola que consigue desactivar el hipervisor y dejar la consola en modo debug. Es entonces cuando la consola puede ejecutar código sin firmar gracias a que, al no haber hipervisor, no se chequean las firmas.
A groso modo:
Para "emular" el funcionamiento básico que he explicado antes se necesitan dos cosas:
1.- Un driver que nos permita controlar el USB de PSP virtual como si fuera un HUB USB virtual.
2.- Un software que, utilizando el driver, de los pasos necesarios en la comunicación con la PS3 para hacerla entrar en modo debug.
NOTA: Esto puede no ser muy técnico o tener algún error si alguien quiere corregirme adelante. Yo lo actualizaré.
Explicación algo más técnica gracias a Guzmanus:Nada más arrancar la PS3; busca por los conectores USB si hay algo conectado. Cuando lo hay, le pide su descriptor * para hacer lo consecuente.
El PSPjailbreak, lo que hace es simular varios dispositivos conectándose y desconectándose a los puertos de un HUB. Ésto provoca que el área que tiene la PS3 asignada a guardar los descriptores de los dispositivos USB se llene (Stack Overflow)** lo que lleva a que esa información sobreescriba otra parte de la memoria.
Lo que hacen es que mediante los descriptores que sobreescriben la otra parte de la memoria, en conjunto, formen un ejecutable que la PS3 carga tras el mareo de tanta conexión y desconexión. Éste ejecutable lee en el PSJailbreak los archivos de la memoria que tiene que parchear para que se pueda cargar código sin firmar, es decir, código no oficial de sony.
* Un código que indica la función del dispositivo.
** Esto en condiciones normales sería imposible porque el hypervisor se encarga de evitar cualquier tipo de overflow, pero en el inicio todavía no ha cargado, así que sin problemas.
LOS SCENERS (TEAM EOL)
nullEX, Krosk, wuepe, ViTi95, CaptainCPS-X, DeViaNTe
Si hay alguien más o menos avisadme!.
ESTADO ACTUAL
Gracias a pupila1992 tenemos una información mas detallada del estado actual:pupila1992 escribió:Aquí se indicará lo que esta realizado, y lo que esta en desarrollo ahora.
Realizado:
•Crear Driver Hub en psp a velocidad Full. OK
•Al Conectar la ps3, enviar Descriptor de HUB 6 puertos. OK
•Se confirma el estado POWER de los 6 Puertos OK.
Pendiente:
•Conectar Puerto 1. (RESET PORT)
•Enviar Descriptores.
•Resto del proceso....
Actualmente:
•Conectar Puerto 1.
Notas. Para conectar al puerto, se envía los puertos que están conectados, en este caso el puerto 1, ahora nos pide el estado del HUB, hay que responder con 0 al estado y 0 al cambio. Se esta en desarrollo para que el puerto 1, mande el estado de RESET.
ACTUALIZACIONES
Actualizazión: 11-09-10 15:13
Nueva actualización con nuevos datos gracias a wuepe.wuepe escribió:Cambios realizados en la rev. 33Arreglado bug del descriptor del hub, que no le mandaba correctamente que tiene 6 puertos.
Quitada función que no se utilizaba psplinkSetK1
Añadido un envio de Request Auxiliar
Comentado o quitado algunas funciones que no se utilizan.
Cambiado la forma de enviar el dato en hub_connect_port
Creado código para el envio de GET_STATUS del hub, aunque hay que revisarlo.
Añadidos algunos TODO: para implementar
Estado actual, hay que enviar correctamente, los valores 0x0000 para el estatus y 0x0000 para el change al preguntarnos por el STATUS del HUB.
Actualizada la svn.
http://code.google.com/p/eol-psgroove/
Edito, subo a megaupload.
Código Fuente:
driver rv33
Compilado:
eboot kernel 1.5 bin
driver rv33 prx
Repito, necesario kernel 1.5, puesto que es para testeos de desarrolladores, en kernel 3.xx se puede usar el eboot 5.xx pero este no muestra los datos del driver para su testeo
Además unas palabras dedicadas de nuestro amigo! Que creo que son bastante esclarecedoras y explica muy bien el estado actual del port.wuepe escribió:Estamos a la espera, de que se haga el Port Reset, a partir de hay, ya estará todo listo, pero claro, el caso es que, siempre que pasamos un obstaculo, nos encontramos con otro xD.
Como siempre pido paciencia que es la madre de la ciencia. Y no postead las pruebas en el hilo de investigación.
Actualizazión: 10-09-10 15:07Esto suena bastante bien:ViTi95 escribió:Guzmanus escribió:Wuepe y demás sceners, con la ayuda de ViTi95 he comprobado que cambiando los offsets 0x00 y 0x01 se cambia el VendorID de la PSP
genial tio, ahora solo queda modificar el usb.prx o parchear la memoria donde se guardan las variables del VendorID y el ProductID, te llevas un 10 macho!!!
Parece que queda poquísimo. Los sceners no han dicho nada al respecto pero la salida de la primera release es inminente. No obstante y como siempre llamo a la compostura. Aún no se sabe si funcionará, debe ser testeado cuando este terminado.
Actualizazión: 10-09-10 3:12Una inquietante actualización en el hilo de investigación me ha devuelto las ganas de actualizar aquí. El port está casi listo. Quema!!!
Os invito a que no salteis aún del sitio porque aún no está todo dicho y las cosas pueden cambiar.
Además llamo a la compostura, no acoseis el hilo de investigación con preguntas sin sentido que ahora mismo está muy limpio. Si necesitais preguntar algo hacedlo aquí.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...
Actualizazión: 05-09-10 19:17Estais todos impacientes y lo se, pero no hay grandes actualizaciones. Lo último que sabemos es que wuepe ha conseguido que el HUB se conecte con los parámetros correctos. Supongo que el siguiente paso sería empezar a implementar el PSGroove en PSP. Pero no puedo confirmarlo ya que los sceners no han dicho nada al respecto.wuepe escribió:Bueno, he modificado las estructuras para que ahora cree correctamente el device hub, con las especificaciones de ps groove.
Modificar estas lineas del main.c...
/* HI-Speed device descriptor */ //OK
struct DeviceDescriptor devdesc_hi =
{
.bLength = 0x12,
.bDescriptorType = 0x01,
.bcdUSB = 0x0200,
.bDeviceClass = 0x09,
.bDeviceSubClass = 0x00,
.bDeviceProtocol = 0x01,
.bMaxPacketSize = 0x08, // Este parametro
...
/* Hi-Speed endpoint descriptors */
struct EndpointDescriptor endpdesc_hi[3] =
{
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
.bInterval = 0x0C
},
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
.bInterval = 0x0C
},
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
...
/* USB start function */
int start_func(int size, void *p)
{
int ret;
DEBUG_PRINTF("Start Function %p\n", p);
/* Fill in the descriptor tables */
memset(usbdata, 0, sizeof(usbdata));
// Descomentado y borrado el usbdata[1]
memcpy(usbdata[0].devdesc, &devdesc_hi, sizeof(devdesc_hi));
usbdata[0].config.pconfdesc = &usbdata[0].confdesc;
usbdata[0].config.pinterfaces = &usbdata[0].interfaces;
usbdata[0].config.pinterdesc = &usbdata[0].interdesc;
usbdata[0].config.pendp = usbdata[0].endp;
memcpy(usbdata[0].confdesc.desc, &confdesc_hi, sizeof(confdesc_hi));
usbdata[0].confdesc.pinterfaces = &usbdata[0].interfaces;
usbdata[0].interfaces.pinterdesc[0] = &usbdata[0].interdesc;
usbdata[0].interfaces.intcount = 1;
memcpy(usbdata[0].interdesc.desc, &interdesc_hi, sizeof(interdesc_hi));
usbdata[0].interdesc.pendp = usbdata[0].endp;
memcpy(usbdata[0].endp[0].desc, &endpdesc_hi[0], sizeof(endpdesc_hi[0]));
memcpy(usbdata[0].endp[1].desc, &endpdesc_hi[1], sizeof(endpdesc_hi[1]));
memcpy(usbdata[0].endp[2].desc, &endpdesc_hi[2], sizeof(endpdesc_hi[2]));
g_driver.devp = usbdata[0].devdesc; // Este parametro
g_driver.confp = &usbdata[0].config; // Este parametro
...
Con esto ya se conecta con los parametros correctos el hub en modo Full/Low sleep
Actualizazión: 04-09-10 19:10Nueva actualización. Ya no da errores al identificar el HUB. Dejo toda la información facilitada por wuepe aquí:REPITO es para testeos y ayudar a que mas gente se anime a comunicarse como deve ser, por ahora, conectamos en modo hub, falta emular la conexion de Puertos como tiene que ser. Por ahora no es funcional en PS3, solo para PSP y probar que sea reconocido por windows/linux/mac etc...
eh modificado psphid_src solo para que detecte la psp como hub.
Es una fuente para manejar la psp como raton, pero ahora lo reconoce como hub, se manda la primera instrucción del código de pspgroove, para confirmar que es un hub, ahora no da error en windows, pero falta implementar lo demas, o unificarlo con el pspgroove.
Compilado: http://www.megaupload.com/?d=GUPIOVNP
Fuente Modificada del psphid_src http://www.megaupload.com/?d=2C4PL9VV
Tambien lo he compilado, el PRX, funciona tanto con el eboot que realize, como el que compartio Krosk
El mio pedia kernel 1.5 el de krosk va en CF.
La unica pega para los que quieran continuar con el desarrollo, es que en el de eboot 1.5, si muestra los printf en panatalla, el eboot de Krosk no los muestra. Ambos tienen el mismo prx, que he compilado.
Ami me detecta en Windows 7 64Bit, como hub y ahora no da error al poco rato de conectarlo.
Actualizazión: 04-09-10 18:58nullEX ha actualizado en el hilo de investigación. Según parece que el código del driver no está acabado le faltan algunas cosas pero se acerca mucho a lo que se necesita. Por tanto el estado actual es "terminando el driver". En cuanto lo acaben se empezará con el paso 2.nullEX escribió:Viene a ser un Driver para PSP en el que se emularía un HUB utilizando el código del PsGroove de Mathieulh. Además está creado a partir del driver de USB del programa de PSP RemoteJoy. Casi emularía los diferentes 6 dispositivos que se usan, aunque existen ciertas partes del código que faltan y que señalizo con el código "//TODO:".
Actualización: 04-09-10 16:47Parece que Krosk vuelve a saber algo que nosotros no sabemos. Dejemos que haga su magia sin atosigarle.krosk escribió:nullEX, si que se puede, tan solo hay que saber manejar bien las requests... jisjis
Actualización: 04-09-10 16:34nullEX se ha pronunciado y parece que no con muy buenas noticias... esperemos a que la cosa avance a ver que pasa...nullEX escribió:He llegado a la conclusión de que va a ser muy difícil. Aquí todos manejamos el driver de la psp para gestionar las conexiones USB, y con ese driver no se puede (o no he sido capaz de encontrarlo) implementar el psgroove, se debería utilizar algo mas a bajo nivel. Y hasta donde conozco no existe nada a un nivel mas bajo que esto, así que habría que crearlo y eso si que es muy muy complicado...
Creemos fuertemente en tu firmal nullEX, sabemos que puedes hacerlo. Tómatelo con calma amigo!Firma de nullEX escribió:Nada es imposible, el problema es que aún no se nos ha ocurrido como hacerlo...
Actualización: 04-09-10 3:39Acabo de actualizar mi PSP a 5.50Gen D y he ejecutado el pbp de krosk y funciona perfectamente. Windows XP me dice que ha reconocido un dispositivo USB pero que tiene problemas. Todo está mucho más cerca!
Actualización: 04-09-10 2:12Parece ser que Krosk ha posteado el primer PSP-Hub para consolas psp fat y slim sin necesidad de usar kernel 1.5. Ahora la consola emula a un hub USB. De momento eso no tiene utilidad para el usuario final pero deja las puertas abiertas para trabajar en el pspgroove. Un avance muy importante si tenemos en cuenta las palabras de Mathieulh: "Cada paso que damos vemos más dificil hacer un port para PSP".
[offtopic] Pues será en Francia majete por que en España vamos a por todas como con el mundial. [/offtopic]
Os dejo el post de krosk:krosk escribió:y dale con el kernel 1.50, no downgradeeis psp solo para probar eso, que el Kernel 1.50 está pasado de moda!
yo he conseguido mejores resultados con kernel 5.XX, funcionando desde 5.50GEN-D :\
Esta captura es de conectar la psp al ordenador, el HUB está hecho. Y todo esto sin usar KERNEL 1.50 de los cojones.
Para quien tenga ganas de probarlo, Clicke aquí, pero que no me pregunte nadie como usarlo. Esto es solo un POC con el hub funcionando. En windows os dirá que el dispositivo no es valido, esto es normal porque en la versión aquí colgada falta poner el descriptor del HUB, que es esencial. En Mac saltaran 3 errores en el log, y en Linux supongo que tambien.
Voy a dormir, toda la tarde programando.
Ala, buenas noches.
PD: Respecto a las declaraciones de mathieulh, normal que el no consiga nada. Sus amigos aún harán algo, pero él no.
Espero que colaboreis ya que todos estamos deseando que salga algo para la PSP y todos estamos ansiosos por conocer las nuevas noticias. Animo a todo el mundo a postear aquí sus impresiones y las noticias que vallan teniendo de los avances. Y recordad hacerlo con civismo que somos todos amigos por un mismo fin!
Intentaré actualizar con lo más relevante pero no prometo nada.
NOTA: Si yo fuera relojero no me gustaria que mientras te arreglo un reloj estes hablandome al oido, tu y tropecientas personas más, de que un relojero frances es mejor que yo y de cuales son sus avances en la técnica. Si con esto conseguimos que un equipo español nacido en EOL contribuya a la scene pués mejor para nosotros.
SI ERES UN TROLL...
Este es un mensaje para ti que no tienes conocimientos y que te dedicas a hablar sin saber nada del tema. Quere del tipo de persona a la que su mama le hace todo en casa, hasta limpiarle el culete y que jamás ha dado un palo al agua y espera que se lo hagan todo.
Debes saber que hay un mundo más allá de tu hipocresía y que hay gente que hace cosas de forma desinteresada. Eso significa que no van a cobrarte, que no vas a pagar por ello. Desde el momento exacto en el que no vas a pagar por un servicio ya se te está haciendo un favor. Es a partir de entonces cuando debes tener respeto por las personas que te prestan ese servicio y sentirte agradecido.
Crees que por respirar ya tienes derecho a quejarte pero te equivocas. Por culpa de gente como tu es por lo que gente como GeoHot dejaron la scene de PS3. Si fuera por ti no existiría la scene en el mundo de los videojuegos.
Ahora te hago saber que no eres bien recibido a este hilo y que serás reportado.
Nada más arrancar la PS3; busca por los conectores USB si hay algo conectado. Cuando lo hay, le pide su descriptor * para hacer lo consecuente.
El PSPjailbreak, lo que hace es simular varios dispositivos conectándose y desconectándose a los puertos de un HUB. Ésto provoca que el área que tiene la PS3 asignada a guardar los descriptores de los dispositivos USB se llene (Stack Overflow)** lo que lleva a que esa información sobreescriba otra parte de la memoria.
Lo que hacen es que mediante los descriptores que sobreescriben la otra parte de la memoria, en conjunto, formen un ejecutable que la PS3 carga tras el mareo de tanta conexión y desconexión. Éste ejecutable lee en el PSJailbreak los archivos de la memoria que tiene que parchear para que se pueda cargar código sin firmar, es decir, código no oficial de sony.
* Un código que indica la función del dispositivo.
** Esto en condiciones normales sería imposible porque el hypervisor se encarga de evitar cualquier tipo de overflow, pero en el inicio todavía no ha cargado, así que sin problemas.
pupila1992 escribió:Aquí se indicará lo que esta realizado, y lo que esta en desarrollo ahora.
Realizado:
•Crear Driver Hub en psp a velocidad Full. OK
•Al Conectar la ps3, enviar Descriptor de HUB 6 puertos. OK
•Se confirma el estado POWER de los 6 Puertos OK.
Pendiente:
•Conectar Puerto 1. (RESET PORT)
•Enviar Descriptores.
•Resto del proceso....
Actualmente:
•Conectar Puerto 1.
Notas. Para conectar al puerto, se envía los puertos que están conectados, en este caso el puerto 1, ahora nos pide el estado del HUB, hay que responder con 0 al estado y 0 al cambio. Se esta en desarrollo para que el puerto 1, mande el estado de RESET.
wuepe escribió:Cambios realizados en la rev. 33Arreglado bug del descriptor del hub, que no le mandaba correctamente que tiene 6 puertos.
Quitada función que no se utilizaba psplinkSetK1
Añadido un envio de Request Auxiliar
Comentado o quitado algunas funciones que no se utilizan.
Cambiado la forma de enviar el dato en hub_connect_port
Creado código para el envio de GET_STATUS del hub, aunque hay que revisarlo.
Añadidos algunos TODO: para implementar
Estado actual, hay que enviar correctamente, los valores 0x0000 para el estatus y 0x0000 para el change al preguntarnos por el STATUS del HUB.
Actualizada la svn.
http://code.google.com/p/eol-psgroove/
Edito, subo a megaupload.
Código Fuente:
driver rv33
Compilado:
eboot kernel 1.5 bin
driver rv33 prx
Repito, necesario kernel 1.5, puesto que es para testeos de desarrolladores, en kernel 3.xx se puede usar el eboot 5.xx pero este no muestra los datos del driver para su testeo
wuepe escribió:Estamos a la espera, de que se haga el Port Reset, a partir de hay, ya estará todo listo, pero claro, el caso es que, siempre que pasamos un obstaculo, nos encontramos con otro xD.
Esto suena bastante bien:ViTi95 escribió:Guzmanus escribió:Wuepe y demás sceners, con la ayuda de ViTi95 he comprobado que cambiando los offsets 0x00 y 0x01 se cambia el VendorID de la PSP
genial tio, ahora solo queda modificar el usb.prx o parchear la memoria donde se guardan las variables del VendorID y el ProductID, te llevas un 10 macho!!!
Parece que queda poquísimo. Los sceners no han dicho nada al respecto pero la salida de la primera release es inminente. No obstante y como siempre llamo a la compostura. Aún no se sabe si funcionará, debe ser testeado cuando este terminado.
Una inquietante actualización en el hilo de investigación me ha devuelto las ganas de actualizar aquí. El port está casi listo. Quema!!!
Os invito a que no salteis aún del sitio porque aún no está todo dicho y las cosas pueden cambiar.
Además llamo a la compostura, no acoseis el hilo de investigación con preguntas sin sentido que ahora mismo está muy limpio. Si necesitais preguntar algo hacedlo aquí.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...
Estais todos impacientes y lo se, pero no hay grandes actualizaciones. Lo último que sabemos es que wuepe ha conseguido que el HUB se conecte con los parámetros correctos. Supongo que el siguiente paso sería empezar a implementar el PSGroove en PSP. Pero no puedo confirmarlo ya que los sceners no han dicho nada al respecto.wuepe escribió:Bueno, he modificado las estructuras para que ahora cree correctamente el device hub, con las especificaciones de ps groove.
Modificar estas lineas del main.c...
/* HI-Speed device descriptor */ //OK
struct DeviceDescriptor devdesc_hi =
{
.bLength = 0x12,
.bDescriptorType = 0x01,
.bcdUSB = 0x0200,
.bDeviceClass = 0x09,
.bDeviceSubClass = 0x00,
.bDeviceProtocol = 0x01,
.bMaxPacketSize = 0x08, // Este parametro
...
/* Hi-Speed endpoint descriptors */
struct EndpointDescriptor endpdesc_hi[3] =
{
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
.bInterval = 0x0C
},
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
.bInterval = 0x0C
},
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
...
/* USB start function */
int start_func(int size, void *p)
{
int ret;
DEBUG_PRINTF("Start Function %p\n", p);
/* Fill in the descriptor tables */
memset(usbdata, 0, sizeof(usbdata));
// Descomentado y borrado el usbdata[1]
memcpy(usbdata[0].devdesc, &devdesc_hi, sizeof(devdesc_hi));
usbdata[0].config.pconfdesc = &usbdata[0].confdesc;
usbdata[0].config.pinterfaces = &usbdata[0].interfaces;
usbdata[0].config.pinterdesc = &usbdata[0].interdesc;
usbdata[0].config.pendp = usbdata[0].endp;
memcpy(usbdata[0].confdesc.desc, &confdesc_hi, sizeof(confdesc_hi));
usbdata[0].confdesc.pinterfaces = &usbdata[0].interfaces;
usbdata[0].interfaces.pinterdesc[0] = &usbdata[0].interdesc;
usbdata[0].interfaces.intcount = 1;
memcpy(usbdata[0].interdesc.desc, &interdesc_hi, sizeof(interdesc_hi));
usbdata[0].interdesc.pendp = usbdata[0].endp;
memcpy(usbdata[0].endp[0].desc, &endpdesc_hi[0], sizeof(endpdesc_hi[0]));
memcpy(usbdata[0].endp[1].desc, &endpdesc_hi[1], sizeof(endpdesc_hi[1]));
memcpy(usbdata[0].endp[2].desc, &endpdesc_hi[2], sizeof(endpdesc_hi[2]));
g_driver.devp = usbdata[0].devdesc; // Este parametro
g_driver.confp = &usbdata[0].config; // Este parametro
...
Con esto ya se conecta con los parametros correctos el hub en modo Full/Low sleep
Nueva actualización. Ya no da errores al identificar el HUB. Dejo toda la información facilitada por wuepe aquí:REPITO es para testeos y ayudar a que mas gente se anime a comunicarse como deve ser, por ahora, conectamos en modo hub, falta emular la conexion de Puertos como tiene que ser. Por ahora no es funcional en PS3, solo para PSP y probar que sea reconocido por windows/linux/mac etc...
eh modificado psphid_src solo para que detecte la psp como hub.
Es una fuente para manejar la psp como raton, pero ahora lo reconoce como hub, se manda la primera instrucción del código de pspgroove, para confirmar que es un hub, ahora no da error en windows, pero falta implementar lo demas, o unificarlo con el pspgroove.
Compilado: http://www.megaupload.com/?d=GUPIOVNP
Fuente Modificada del psphid_src http://www.megaupload.com/?d=2C4PL9VV
Tambien lo he compilado, el PRX, funciona tanto con el eboot que realize, como el que compartio Krosk
El mio pedia kernel 1.5 el de krosk va en CF.
La unica pega para los que quieran continuar con el desarrollo, es que en el de eboot 1.5, si muestra los printf en panatalla, el eboot de Krosk no los muestra. Ambos tienen el mismo prx, que he compilado.
Ami me detecta en Windows 7 64Bit, como hub y ahora no da error al poco rato de conectarlo.
nullEX ha actualizado en el hilo de investigación. Según parece que el código del driver no está acabado le faltan algunas cosas pero se acerca mucho a lo que se necesita. Por tanto el estado actual es "terminando el driver". En cuanto lo acaben se empezará con el paso 2.nullEX escribió:Viene a ser un Driver para PSP en el que se emularía un HUB utilizando el código del PsGroove de Mathieulh. Además está creado a partir del driver de USB del programa de PSP RemoteJoy. Casi emularía los diferentes 6 dispositivos que se usan, aunque existen ciertas partes del código que faltan y que señalizo con el código "//TODO:".
Parece que Krosk vuelve a saber algo que nosotros no sabemos. Dejemos que haga su magia sin atosigarle.krosk escribió:nullEX, si que se puede, tan solo hay que saber manejar bien las requests... jisjis
nullEX se ha pronunciado y parece que no con muy buenas noticias... esperemos a que la cosa avance a ver que pasa...nullEX escribió:He llegado a la conclusión de que va a ser muy difícil. Aquí todos manejamos el driver de la psp para gestionar las conexiones USB, y con ese driver no se puede (o no he sido capaz de encontrarlo) implementar el psgroove, se debería utilizar algo mas a bajo nivel. Y hasta donde conozco no existe nada a un nivel mas bajo que esto, así que habría que crearlo y eso si que es muy muy complicado...
Creemos fuertemente en tu firmal nullEX, sabemos que puedes hacerlo. Tómatelo con calma amigo!Firma de nullEX escribió:Nada es imposible, el problema es que aún no se nos ha ocurrido como hacerlo...
Acabo de actualizar mi PSP a 5.50Gen D y he ejecutado el pbp de krosk y funciona perfectamente. Windows XP me dice que ha reconocido un dispositivo USB pero que tiene problemas. Todo está mucho más cerca!
Parece ser que Krosk ha posteado el primer PSP-Hub para consolas psp fat y slim sin necesidad de usar kernel 1.5. Ahora la consola emula a un hub USB. De momento eso no tiene utilidad para el usuario final pero deja las puertas abiertas para trabajar en el pspgroove. Un avance muy importante si tenemos en cuenta las palabras de Mathieulh: "Cada paso que damos vemos más dificil hacer un port para PSP".
[offtopic] Pues será en Francia majete por que en España vamos a por todas como con el mundial. [/offtopic]
Os dejo el post de krosk:krosk escribió:y dale con el kernel 1.50, no downgradeeis psp solo para probar eso, que el Kernel 1.50 está pasado de moda!
yo he conseguido mejores resultados con kernel 5.XX, funcionando desde 5.50GEN-D :\
Esta captura es de conectar la psp al ordenador, el HUB está hecho. Y todo esto sin usar KERNEL 1.50 de los cojones.
Para quien tenga ganas de probarlo, Clicke aquí, pero que no me pregunte nadie como usarlo. Esto es solo un POC con el hub funcionando. En windows os dirá que el dispositivo no es valido, esto es normal porque en la versión aquí colgada falta poner el descriptor del HUB, que es esencial. En Mac saltaran 3 errores en el log, y en Linux supongo que tambien.
Voy a dormir, toda la tarde programando.
Ala, buenas noches.
PD: Respecto a las declaraciones de mathieulh, normal que el no consiga nada. Sus amigos aún harán algo, pero él no.
ARMAGEDDON86 escribió:FUNCIONAMIENTO BÁSICO DEL PSGROOVE
Bueno, no está de más explicar un poco para los que desconocen programación. Voy a explicar de una forma muy burda y en pocos pasos lo que debería hacer un sistema basado en PSJailbreak como es el PSGroove.
Se trata de hacer creer a la PS3 que tiene conectado un HUB USB. Durante el proceso de reconocimiento de cada uno de los puertos del host se inyecta un código en la consola que consigue desactivar el hipervisor y dejar la consola en modo debug. Es entonces cuando la consola puede ejecutar código sin firmar gracias a que, al no haber hipervisor, no se chequean las firmas.
A groso modo:
Para "emular" el funcionamiento básico que he explicado antes se necesitan dos cosas:
1.- Un driver que nos permita controlar el USB de PSP virtual como si fuera un HUB USB virtual.
2.- Un software que, utilizando el driver, de los pasos necesarios en la comunicación con la PS3 para hacerla entrar en modo debug.
NOTA: Esto puede no ser muy técnico o tener algún error si alguien quiere corregirme adelante. Yo lo actualizaré.
Explicación algo más técnica gracias a Guzmanus:Nada más arrancar la PS3; busca por los conectores USB si hay algo conectado. Cuando lo hay, le pide su descriptor * para hacer lo consecuente.
El PSPjailbreak, lo que hace es simular varios dispositivos conectándose y desconectándose a los puertos de un HUB. Ésto provoca que el área que tiene la PS3 asignada a guardar los descriptores de los dispositivos USB se llene (Stack Overflow)** lo que lleva a que esa información sobreescriba otra parte de la memoria.
Lo que hacen es que mediante los descriptores que sobreescriben la otra parte de la memoria, en conjunto, formen un ejecutable que la PS3 carga tras el mareo de tanta conexión y desconexión. Éste ejecutable lee en el PSJailbreak los archivos de la memoria que tiene que parchear para que se pueda cargar código sin firmar, es decir, código no oficial de sony.
* Un código que indica la función del dispositivo.
** Esto en condiciones normales sería imposible porque el hypervisor se encarga de evitar cualquier tipo de overflow, pero en el inicio todavía no ha cargado, así que sin problemas.
LOS SCENERS (TEAM EOL)
nullEX, Krosk, wuepe, ViTi95, CaptainCPS-X, DeViaNTe
Si hay alguien más o menos avisadme!.
ESTADO ACTUAL
Gracias a pupila1992 tenemos una información mas detallada del estado actual:pupila1992 escribió:Aquí se indicará lo que esta realizado, y lo que esta en desarrollo ahora.
Realizado:
•Crear Driver Hub en psp a velocidad Full. OK
•Al Conectar la ps3, enviar Descriptor de HUB 6 puertos. OK
•Se confirma el estado POWER de los 6 Puertos OK.
Pendiente:
•Conectar Puerto 1. (RESET PORT)
•Enviar Descriptores.
•Resto del proceso....
Actualmente:
•Conectar Puerto 1.
Notas. Para conectar al puerto, se envía los puertos que están conectados, en este caso el puerto 1, ahora nos pide el estado del HUB, hay que responder con 0 al estado y 0 al cambio. Se esta en desarrollo para que el puerto 1, mande el estado de RESET.
ACTUALIZACIONES
Actualizazión: 11-09-10 15:13
Nueva actualización con nuevos datos gracias a wuepe.wuepe escribió:Cambios realizados en la rev. 33Arreglado bug del descriptor del hub, que no le mandaba correctamente que tiene 6 puertos.
Quitada función que no se utilizaba psplinkSetK1
Añadido un envio de Request Auxiliar
Comentado o quitado algunas funciones que no se utilizan.
Cambiado la forma de enviar el dato en hub_connect_port
Creado código para el envio de GET_STATUS del hub, aunque hay que revisarlo.
Añadidos algunos TODO: para implementar
Estado actual, hay que enviar correctamente, los valores 0x0000 para el estatus y 0x0000 para el change al preguntarnos por el STATUS del HUB.
Actualizada la svn.
http://code.google.com/p/eol-psgroove/
Edito, subo a megaupload.
Código Fuente:
driver rv33
Compilado:
eboot kernel 1.5 bin
driver rv33 prx
Repito, necesario kernel 1.5, puesto que es para testeos de desarrolladores, en kernel 3.xx se puede usar el eboot 5.xx pero este no muestra los datos del driver para su testeo
Además unas palabras dedicadas de nuestro amigo! Que creo que son bastante esclarecedoras y explica muy bien el estado actual del port.wuepe escribió:Estamos a la espera, de que se haga el Port Reset, a partir de hay, ya estará todo listo, pero claro, el caso es que, siempre que pasamos un obstaculo, nos encontramos con otro xD.
Como siempre pido paciencia que es la madre de la ciencia. Y no postead las pruebas en el hilo de investigación.
Actualizazión: 10-09-10 15:07Esto suena bastante bien:ViTi95 escribió:Guzmanus escribió:Wuepe y demás sceners, con la ayuda de ViTi95 he comprobado que cambiando los offsets 0x00 y 0x01 se cambia el VendorID de la PSP
genial tio, ahora solo queda modificar el usb.prx o parchear la memoria donde se guardan las variables del VendorID y el ProductID, te llevas un 10 macho!!!
Parece que queda poquísimo. Los sceners no han dicho nada al respecto pero la salida de la primera release es inminente. No obstante y como siempre llamo a la compostura. Aún no se sabe si funcionará, debe ser testeado cuando este terminado.
Actualizazión: 10-09-10 3:12Una inquietante actualización en el hilo de investigación me ha devuelto las ganas de actualizar aquí. El port está casi listo. Quema!!!
Os invito a que no salteis aún del sitio porque aún no está todo dicho y las cosas pueden cambiar.
Además llamo a la compostura, no acoseis el hilo de investigación con preguntas sin sentido que ahora mismo está muy limpio. Si necesitais preguntar algo hacedlo aquí.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...
Actualizazión: 05-09-10 19:17Estais todos impacientes y lo se, pero no hay grandes actualizaciones. Lo último que sabemos es que wuepe ha conseguido que el HUB se conecte con los parámetros correctos. Supongo que el siguiente paso sería empezar a implementar el PSGroove en PSP. Pero no puedo confirmarlo ya que los sceners no han dicho nada al respecto.wuepe escribió:Bueno, he modificado las estructuras para que ahora cree correctamente el device hub, con las especificaciones de ps groove.
Modificar estas lineas del main.c...
/* HI-Speed device descriptor */ //OK
struct DeviceDescriptor devdesc_hi =
{
.bLength = 0x12,
.bDescriptorType = 0x01,
.bcdUSB = 0x0200,
.bDeviceClass = 0x09,
.bDeviceSubClass = 0x00,
.bDeviceProtocol = 0x01,
.bMaxPacketSize = 0x08, // Este parametro
...
/* Hi-Speed endpoint descriptors */
struct EndpointDescriptor endpdesc_hi[3] =
{
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
.bInterval = 0x0C
},
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
.bInterval = 0x0C
},
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
...
/* USB start function */
int start_func(int size, void *p)
{
int ret;
DEBUG_PRINTF("Start Function %p\n", p);
/* Fill in the descriptor tables */
memset(usbdata, 0, sizeof(usbdata));
// Descomentado y borrado el usbdata[1]
memcpy(usbdata[0].devdesc, &devdesc_hi, sizeof(devdesc_hi));
usbdata[0].config.pconfdesc = &usbdata[0].confdesc;
usbdata[0].config.pinterfaces = &usbdata[0].interfaces;
usbdata[0].config.pinterdesc = &usbdata[0].interdesc;
usbdata[0].config.pendp = usbdata[0].endp;
memcpy(usbdata[0].confdesc.desc, &confdesc_hi, sizeof(confdesc_hi));
usbdata[0].confdesc.pinterfaces = &usbdata[0].interfaces;
usbdata[0].interfaces.pinterdesc[0] = &usbdata[0].interdesc;
usbdata[0].interfaces.intcount = 1;
memcpy(usbdata[0].interdesc.desc, &interdesc_hi, sizeof(interdesc_hi));
usbdata[0].interdesc.pendp = usbdata[0].endp;
memcpy(usbdata[0].endp[0].desc, &endpdesc_hi[0], sizeof(endpdesc_hi[0]));
memcpy(usbdata[0].endp[1].desc, &endpdesc_hi[1], sizeof(endpdesc_hi[1]));
memcpy(usbdata[0].endp[2].desc, &endpdesc_hi[2], sizeof(endpdesc_hi[2]));
g_driver.devp = usbdata[0].devdesc; // Este parametro
g_driver.confp = &usbdata[0].config; // Este parametro
...
Con esto ya se conecta con los parametros correctos el hub en modo Full/Low sleep
Actualizazión: 04-09-10 19:10Nueva actualización. Ya no da errores al identificar el HUB. Dejo toda la información facilitada por wuepe aquí:REPITO es para testeos y ayudar a que mas gente se anime a comunicarse como deve ser, por ahora, conectamos en modo hub, falta emular la conexion de Puertos como tiene que ser. Por ahora no es funcional en PS3, solo para PSP y probar que sea reconocido por windows/linux/mac etc...
eh modificado psphid_src solo para que detecte la psp como hub.
Es una fuente para manejar la psp como raton, pero ahora lo reconoce como hub, se manda la primera instrucción del código de pspgroove, para confirmar que es un hub, ahora no da error en windows, pero falta implementar lo demas, o unificarlo con el pspgroove.
Compilado: http://www.megaupload.com/?d=GUPIOVNP
Fuente Modificada del psphid_src http://www.megaupload.com/?d=2C4PL9VV
Tambien lo he compilado, el PRX, funciona tanto con el eboot que realize, como el que compartio Krosk
El mio pedia kernel 1.5 el de krosk va en CF.
La unica pega para los que quieran continuar con el desarrollo, es que en el de eboot 1.5, si muestra los printf en panatalla, el eboot de Krosk no los muestra. Ambos tienen el mismo prx, que he compilado.
Ami me detecta en Windows 7 64Bit, como hub y ahora no da error al poco rato de conectarlo.
Actualizazión: 04-09-10 18:58nullEX ha actualizado en el hilo de investigación. Según parece que el código del driver no está acabado le faltan algunas cosas pero se acerca mucho a lo que se necesita. Por tanto el estado actual es "terminando el driver". En cuanto lo acaben se empezará con el paso 2.nullEX escribió:Viene a ser un Driver para PSP en el que se emularía un HUB utilizando el código del PsGroove de Mathieulh. Además está creado a partir del driver de USB del programa de PSP RemoteJoy. Casi emularía los diferentes 6 dispositivos que se usan, aunque existen ciertas partes del código que faltan y que señalizo con el código "//TODO:".
Actualización: 04-09-10 16:47Parece que Krosk vuelve a saber algo que nosotros no sabemos. Dejemos que haga su magia sin atosigarle.krosk escribió:nullEX, si que se puede, tan solo hay que saber manejar bien las requests... jisjis
Actualización: 04-09-10 16:34nullEX se ha pronunciado y parece que no con muy buenas noticias... esperemos a que la cosa avance a ver que pasa...nullEX escribió:He llegado a la conclusión de que va a ser muy difícil. Aquí todos manejamos el driver de la psp para gestionar las conexiones USB, y con ese driver no se puede (o no he sido capaz de encontrarlo) implementar el psgroove, se debería utilizar algo mas a bajo nivel. Y hasta donde conozco no existe nada a un nivel mas bajo que esto, así que habría que crearlo y eso si que es muy muy complicado...
Creemos fuertemente en tu firmal nullEX, sabemos que puedes hacerlo. Tómatelo con calma amigo!Firma de nullEX escribió:Nada es imposible, el problema es que aún no se nos ha ocurrido como hacerlo...
Actualización: 04-09-10 3:39Acabo de actualizar mi PSP a 5.50Gen D y he ejecutado el pbp de krosk y funciona perfectamente. Windows XP me dice que ha reconocido un dispositivo USB pero que tiene problemas. Todo está mucho más cerca!
Actualización: 04-09-10 2:12Parece ser que Krosk ha posteado el primer PSP-Hub para consolas psp fat y slim sin necesidad de usar kernel 1.5. Ahora la consola emula a un hub USB. De momento eso no tiene utilidad para el usuario final pero deja las puertas abiertas para trabajar en el pspgroove. Un avance muy importante si tenemos en cuenta las palabras de Mathieulh: "Cada paso que damos vemos más dificil hacer un port para PSP".
[offtopic] Pues será en Francia majete por que en España vamos a por todas como con el mundial. [/offtopic]
Os dejo el post de krosk:krosk escribió:y dale con el kernel 1.50, no downgradeeis psp solo para probar eso, que el Kernel 1.50 está pasado de moda!
yo he conseguido mejores resultados con kernel 5.XX, funcionando desde 5.50GEN-D :\
Esta captura es de conectar la psp al ordenador, el HUB está hecho. Y todo esto sin usar KERNEL 1.50 de los cojones.
Para quien tenga ganas de probarlo, Clicke aquí, pero que no me pregunte nadie como usarlo. Esto es solo un POC con el hub funcionando. En windows os dirá que el dispositivo no es valido, esto es normal porque en la versión aquí colgada falta poner el descriptor del HUB, que es esencial. En Mac saltaran 3 errores en el log, y en Linux supongo que tambien.
Voy a dormir, toda la tarde programando.
Ala, buenas noches.
PD: Respecto a las declaraciones de mathieulh, normal que el no consiga nada. Sus amigos aún harán algo, pero él no.
Espero que colaboreis ya que todos estamos deseando que salga algo para la PSP y todos estamos ansiosos por conocer las nuevas noticias. Animo a todo el mundo a postear aquí sus impresiones y las noticias que vallan teniendo de los avances. Y recordad hacerlo con civismo que somos todos amigos por un mismo fin!
Intentaré actualizar con lo más relevante pero no prometo nada.
NOTA: Si yo fuera relojero no me gustaria que mientras te arreglo un reloj estes hablandome al oido, tu y tropecientas personas más, de que un relojero frances es mejor que yo y de cuales son sus avances en la técnica. Si con esto conseguimos que un equipo español nacido en EOL contribuya a la scene pués mejor para nosotros.
SI ERES UN TROLL...
Este es un mensaje para ti que no tienes conocimientos y que te dedicas a hablar sin saber nada del tema. Quere del tipo de persona a la que su mama le hace todo en casa, hasta limpiarle el culete y que jamás ha dado un palo al agua y espera que se lo hagan todo.
Debes saber que hay un mundo más allá de tu hipocresía y que hay gente que hace cosas de forma desinteresada. Eso significa que no van a cobrarte, que no vas a pagar por ello. Desde el momento exacto en el que no vas a pagar por un servicio ya se te está haciendo un favor. Es a partir de entonces cuando debes tener respeto por las personas que te prestan ese servicio y sentirte agradecido.
Crees que por respirar ya tienes derecho a quejarte pero te equivocas. Por culpa de gente como tu es por lo que gente como GeoHot dejaron la scene de PS3. Si fuera por ti no existiría la scene en el mundo de los videojuegos.
Ahora te hago saber que no eres bien recibido a este hilo y que serás reportado.
Se20 escribió:POR FAVOR DEJAD LIBRE EL POST DE INVESTIGACIÓN. SE QUE QUEREIS SER TESTERS, PERO ELLOS PUEDEN PASAR POR AQUÍ PARA VER LOS RESULTADOS DE NUESTRAS PRUEBAS. YO TRATARÉ DE HACER SINTESIS DE LO QUE DIGAN ALLI. DISCUTID AQUÍ LO QUE QUERAIS.
FUNCIONAMIENTO BÁSICO DEL PSGROOVE
Bueno, no está de más explicar un poco para los que desconocen programación. Voy a explicar de una forma muy burda y en pocos pasos lo que debería hacer un sistema basado en PSJailbreak como es el PSGroove.
Se trata de hacer creer a la PS3 que tiene conectado un HUB USB. Durante el proceso de reconocimiento de cada uno de los puertos del host se inyecta un código en la consola que consigue desactivar el hipervisor y dejar la consola en modo debug. Es entonces cuando la consola puede ejecutar código sin firmar gracias a que, al no haber hipervisor, no se chequean las firmas.
A groso modo:
Para "emular" el funcionamiento básico que he explicado antes se necesitan dos cosas:
1.- Un driver que nos permita controlar el USB de PSP virtual como si fuera un HUB USB virtual.
2.- Un software que, utilizando el driver, de los pasos necesarios en la comunicación con la PS3 para hacerla entrar en modo debug.
NOTA: Esto puede no ser muy técnico o tener algún error si alguien quiere corregirme adelante. Yo lo actualizaré.
Explicación algo más técnica gracias a Guzmanus:Nada más arrancar la PS3; busca por los conectores USB si hay algo conectado. Cuando lo hay, le pide su descriptor * para hacer lo consecuente.
El PSPjailbreak, lo que hace es simular varios dispositivos conectándose y desconectándose a los puertos de un HUB. Ésto provoca que el área que tiene la PS3 asignada a guardar los descriptores de los dispositivos USB se llene (Stack Overflow)** lo que lleva a que esa información sobreescriba otra parte de la memoria.
Lo que hacen es que mediante los descriptores que sobreescriben la otra parte de la memoria, en conjunto, formen un ejecutable que la PS3 carga tras el mareo de tanta conexión y desconexión. Éste ejecutable lee en el PSJailbreak los archivos de la memoria que tiene que parchear para que se pueda cargar código sin firmar, es decir, código no oficial de sony.
* Un código que indica la función del dispositivo.
** Esto en condiciones normales sería imposible porque el hypervisor se encarga de evitar cualquier tipo de overflow, pero en el inicio todavía no ha cargado, así que sin problemas.
LOS SCENERS (TEAM EOL)
nullEX, Krosk, wuepe, ViTi95, CaptainCPS-X, DeViaNTe
Si hay alguien más o menos avisadme!.
ESTADO ACTUAL
Gracias a pupila1992 tenemos una información mas detallada del estado actual:pupila1992 escribió:Aquí se indicará lo que esta realizado, y lo que esta en desarrollo ahora.
Realizado:
•Crear Driver Hub en psp a velocidad Full. OK
•Al Conectar la ps3, enviar Descriptor de HUB 6 puertos. OK
•Se confirma el estado POWER de los 6 Puertos OK.
Pendiente:
•Conectar Puerto 1. (RESET PORT)
•Enviar Descriptores.
•Resto del proceso....
Actualmente:
•Conectar Puerto 1.
Notas. Para conectar al puerto, se envía los puertos que están conectados, en este caso el puerto 1, ahora nos pide el estado del HUB, hay que responder con 0 al estado y 0 al cambio. Se esta en desarrollo para que el puerto 1, mande el estado de RESET.
ACTUALIZACIONES
Actualizazión: 11-09-10 15:13
Nueva actualización con nuevos datos gracias a wuepe.wuepe escribió:Cambios realizados en la rev. 33Arreglado bug del descriptor del hub, que no le mandaba correctamente que tiene 6 puertos.
Quitada función que no se utilizaba psplinkSetK1
Añadido un envio de Request Auxiliar
Comentado o quitado algunas funciones que no se utilizan.
Cambiado la forma de enviar el dato en hub_connect_port
Creado código para el envio de GET_STATUS del hub, aunque hay que revisarlo.
Añadidos algunos TODO: para implementar
Estado actual, hay que enviar correctamente, los valores 0x0000 para el estatus y 0x0000 para el change al preguntarnos por el STATUS del HUB.
Actualizada la svn.
http://code.google.com/p/eol-psgroove/
Edito, subo a megaupload.
Código Fuente:
driver rv33
Compilado:
eboot kernel 1.5 bin
driver rv33 prx
Repito, necesario kernel 1.5, puesto que es para testeos de desarrolladores, en kernel 3.xx se puede usar el eboot 5.xx pero este no muestra los datos del driver para su testeo
Además unas palabras dedicadas de nuestro amigo! Que creo que son bastante esclarecedoras y explica muy bien el estado actual del port.wuepe escribió:Estamos a la espera, de que se haga el Port Reset, a partir de hay, ya estará todo listo, pero claro, el caso es que, siempre que pasamos un obstaculo, nos encontramos con otro xD.
Como siempre pido paciencia que es la madre de la ciencia. Y no postead las pruebas en el hilo de investigación.
Actualizazión: 10-09-10 15:07Esto suena bastante bien:ViTi95 escribió:Guzmanus escribió:Wuepe y demás sceners, con la ayuda de ViTi95 he comprobado que cambiando los offsets 0x00 y 0x01 se cambia el VendorID de la PSP
genial tio, ahora solo queda modificar el usb.prx o parchear la memoria donde se guardan las variables del VendorID y el ProductID, te llevas un 10 macho!!!
Parece que queda poquísimo. Los sceners no han dicho nada al respecto pero la salida de la primera release es inminente. No obstante y como siempre llamo a la compostura. Aún no se sabe si funcionará, debe ser testeado cuando este terminado.
Actualizazión: 10-09-10 3:12Una inquietante actualización en el hilo de investigación me ha devuelto las ganas de actualizar aquí. El port está casi listo. Quema!!!
Os invito a que no salteis aún del sitio porque aún no está todo dicho y las cosas pueden cambiar.
Además llamo a la compostura, no acoseis el hilo de investigación con preguntas sin sentido que ahora mismo está muy limpio. Si necesitais preguntar algo hacedlo aquí.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...
Actualizazión: 05-09-10 19:17Estais todos impacientes y lo se, pero no hay grandes actualizaciones. Lo último que sabemos es que wuepe ha conseguido que el HUB se conecte con los parámetros correctos. Supongo que el siguiente paso sería empezar a implementar el PSGroove en PSP. Pero no puedo confirmarlo ya que los sceners no han dicho nada al respecto.wuepe escribió:Bueno, he modificado las estructuras para que ahora cree correctamente el device hub, con las especificaciones de ps groove.
Modificar estas lineas del main.c...
/* HI-Speed device descriptor */ //OK
struct DeviceDescriptor devdesc_hi =
{
.bLength = 0x12,
.bDescriptorType = 0x01,
.bcdUSB = 0x0200,
.bDeviceClass = 0x09,
.bDeviceSubClass = 0x00,
.bDeviceProtocol = 0x01,
.bMaxPacketSize = 0x08, // Este parametro
...
/* Hi-Speed endpoint descriptors */
struct EndpointDescriptor endpdesc_hi[3] =
{
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
.bInterval = 0x0C
},
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
.bInterval = 0x0C
},
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
...
/* USB start function */
int start_func(int size, void *p)
{
int ret;
DEBUG_PRINTF("Start Function %p\n", p);
/* Fill in the descriptor tables */
memset(usbdata, 0, sizeof(usbdata));
// Descomentado y borrado el usbdata[1]
memcpy(usbdata[0].devdesc, &devdesc_hi, sizeof(devdesc_hi));
usbdata[0].config.pconfdesc = &usbdata[0].confdesc;
usbdata[0].config.pinterfaces = &usbdata[0].interfaces;
usbdata[0].config.pinterdesc = &usbdata[0].interdesc;
usbdata[0].config.pendp = usbdata[0].endp;
memcpy(usbdata[0].confdesc.desc, &confdesc_hi, sizeof(confdesc_hi));
usbdata[0].confdesc.pinterfaces = &usbdata[0].interfaces;
usbdata[0].interfaces.pinterdesc[0] = &usbdata[0].interdesc;
usbdata[0].interfaces.intcount = 1;
memcpy(usbdata[0].interdesc.desc, &interdesc_hi, sizeof(interdesc_hi));
usbdata[0].interdesc.pendp = usbdata[0].endp;
memcpy(usbdata[0].endp[0].desc, &endpdesc_hi[0], sizeof(endpdesc_hi[0]));
memcpy(usbdata[0].endp[1].desc, &endpdesc_hi[1], sizeof(endpdesc_hi[1]));
memcpy(usbdata[0].endp[2].desc, &endpdesc_hi[2], sizeof(endpdesc_hi[2]));
g_driver.devp = usbdata[0].devdesc; // Este parametro
g_driver.confp = &usbdata[0].config; // Este parametro
...
Con esto ya se conecta con los parametros correctos el hub en modo Full/Low sleep
Actualizazión: 04-09-10 19:10Nueva actualización. Ya no da errores al identificar el HUB. Dejo toda la información facilitada por wuepe aquí:REPITO es para testeos y ayudar a que mas gente se anime a comunicarse como deve ser, por ahora, conectamos en modo hub, falta emular la conexion de Puertos como tiene que ser. Por ahora no es funcional en PS3, solo para PSP y probar que sea reconocido por windows/linux/mac etc...
eh modificado psphid_src solo para que detecte la psp como hub.
Es una fuente para manejar la psp como raton, pero ahora lo reconoce como hub, se manda la primera instrucción del código de pspgroove, para confirmar que es un hub, ahora no da error en windows, pero falta implementar lo demas, o unificarlo con el pspgroove.
Compilado: http://www.megaupload.com/?d=GUPIOVNP
Fuente Modificada del psphid_src http://www.megaupload.com/?d=2C4PL9VV
Tambien lo he compilado, el PRX, funciona tanto con el eboot que realize, como el que compartio Krosk
El mio pedia kernel 1.5 el de krosk va en CF.
La unica pega para los que quieran continuar con el desarrollo, es que en el de eboot 1.5, si muestra los printf en panatalla, el eboot de Krosk no los muestra. Ambos tienen el mismo prx, que he compilado.
Ami me detecta en Windows 7 64Bit, como hub y ahora no da error al poco rato de conectarlo.
Actualizazión: 04-09-10 18:58nullEX ha actualizado en el hilo de investigación. Según parece que el código del driver no está acabado le faltan algunas cosas pero se acerca mucho a lo que se necesita. Por tanto el estado actual es "terminando el driver". En cuanto lo acaben se empezará con el paso 2.nullEX escribió:Viene a ser un Driver para PSP en el que se emularía un HUB utilizando el código del PsGroove de Mathieulh. Además está creado a partir del driver de USB del programa de PSP RemoteJoy. Casi emularía los diferentes 6 dispositivos que se usan, aunque existen ciertas partes del código que faltan y que señalizo con el código "//TODO:".
Actualización: 04-09-10 16:47Parece que Krosk vuelve a saber algo que nosotros no sabemos. Dejemos que haga su magia sin atosigarle.krosk escribió:nullEX, si que se puede, tan solo hay que saber manejar bien las requests... jisjis
Actualización: 04-09-10 16:34nullEX se ha pronunciado y parece que no con muy buenas noticias... esperemos a que la cosa avance a ver que pasa...nullEX escribió:He llegado a la conclusión de que va a ser muy difícil. Aquí todos manejamos el driver de la psp para gestionar las conexiones USB, y con ese driver no se puede (o no he sido capaz de encontrarlo) implementar el psgroove, se debería utilizar algo mas a bajo nivel. Y hasta donde conozco no existe nada a un nivel mas bajo que esto, así que habría que crearlo y eso si que es muy muy complicado...
Creemos fuertemente en tu firmal nullEX, sabemos que puedes hacerlo. Tómatelo con calma amigo!Firma de nullEX escribió:Nada es imposible, el problema es que aún no se nos ha ocurrido como hacerlo...
Actualización: 04-09-10 3:39Acabo de actualizar mi PSP a 5.50Gen D y he ejecutado el pbp de krosk y funciona perfectamente. Windows XP me dice que ha reconocido un dispositivo USB pero que tiene problemas. Todo está mucho más cerca!
Actualización: 04-09-10 2:12Parece ser que Krosk ha posteado el primer PSP-Hub para consolas psp fat y slim sin necesidad de usar kernel 1.5. Ahora la consola emula a un hub USB. De momento eso no tiene utilidad para el usuario final pero deja las puertas abiertas para trabajar en el pspgroove. Un avance muy importante si tenemos en cuenta las palabras de Mathieulh: "Cada paso que damos vemos más dificil hacer un port para PSP".
[offtopic] Pues será en Francia majete por que en España vamos a por todas como con el mundial. [/offtopic]
Os dejo el post de krosk:krosk escribió:y dale con el kernel 1.50, no downgradeeis psp solo para probar eso, que el Kernel 1.50 está pasado de moda!
yo he conseguido mejores resultados con kernel 5.XX, funcionando desde 5.50GEN-D :\
Esta captura es de conectar la psp al ordenador, el HUB está hecho. Y todo esto sin usar KERNEL 1.50 de los cojones.
Para quien tenga ganas de probarlo, Clicke aquí, pero que no me pregunte nadie como usarlo. Esto es solo un POC con el hub funcionando. En windows os dirá que el dispositivo no es valido, esto es normal porque en la versión aquí colgada falta poner el descriptor del HUB, que es esencial. En Mac saltaran 3 errores en el log, y en Linux supongo que tambien.
Voy a dormir, toda la tarde programando.
Ala, buenas noches.
PD: Respecto a las declaraciones de mathieulh, normal que el no consiga nada. Sus amigos aún harán algo, pero él no.
Espero que colaboreis ya que todos estamos deseando que salga algo para la PSP y todos estamos ansiosos por conocer las nuevas noticias. Animo a todo el mundo a postear aquí sus impresiones y las noticias que vallan teniendo de los avances. Y recordad hacerlo con civismo que somos todos amigos por un mismo fin!
Intentaré actualizar con lo más relevante pero no prometo nada.
NOTA: Si yo fuera relojero no me gustaria que mientras te arreglo un reloj estes hablandome al oido, tu y tropecientas personas más, de que un relojero frances es mejor que yo y de cuales son sus avances en la técnica. Si con esto conseguimos que un equipo español nacido en EOL contribuya a la scene pués mejor para nosotros.
SI ERES UN TROLL...
Este es un mensaje para ti que no tienes conocimientos y que te dedicas a hablar sin saber nada del tema. Quere del tipo de persona a la que su mama le hace todo en casa, hasta limpiarle el culete y que jamás ha dado un palo al agua y espera que se lo hagan todo.
Debes saber que hay un mundo más allá de tu hipocresía y que hay gente que hace cosas de forma desinteresada. Eso significa que no van a cobrarte, que no vas a pagar por ello. Desde el momento exacto en el que no vas a pagar por un servicio ya se te está haciendo un favor. Es a partir de entonces cuando debes tener respeto por las personas que te prestan ese servicio y sentirte agradecido.
Crees que por respirar ya tienes derecho a quejarte pero te equivocas. Por culpa de gente como tu es por lo que gente como GeoHot dejaron la scene de PS3. Si fuera por ti no existiría la scene en el mundo de los videojuegos.
Ahora te hago saber que no eres bien recibido a este hilo y que serás reportado.
Nada más arrancar la PS3; busca por los conectores USB si hay algo conectado. Cuando lo hay, le pide su descriptor * para hacer lo consecuente.
El PSPjailbreak, lo que hace es simular varios dispositivos conectándose y desconectándose a los puertos de un HUB. Ésto provoca que el área que tiene la PS3 asignada a guardar los descriptores de los dispositivos USB se llene (Stack Overflow)** lo que lleva a que esa información sobreescriba otra parte de la memoria.
Lo que hacen es que mediante los descriptores que sobreescriben la otra parte de la memoria, en conjunto, formen un ejecutable que la PS3 carga tras el mareo de tanta conexión y desconexión. Éste ejecutable lee en el PSJailbreak los archivos de la memoria que tiene que parchear para que se pueda cargar código sin firmar, es decir, código no oficial de sony.
* Un código que indica la función del dispositivo.
** Esto en condiciones normales sería imposible porque el hypervisor se encarga de evitar cualquier tipo de overflow, pero en el inicio todavía no ha cargado, así que sin problemas.
pupila1992 escribió:Aquí se indicará lo que esta realizado, y lo que esta en desarrollo ahora.
Realizado:
•Crear Driver Hub en psp a velocidad Full. OK
•Al Conectar la ps3, enviar Descriptor de HUB 6 puertos. OK
•Se confirma el estado POWER de los 6 Puertos OK.
Pendiente:
•Conectar Puerto 1. (RESET PORT)
•Enviar Descriptores.
•Resto del proceso....
Actualmente:
•Conectar Puerto 1.
Notas. Para conectar al puerto, se envía los puertos que están conectados, en este caso el puerto 1, ahora nos pide el estado del HUB, hay que responder con 0 al estado y 0 al cambio. Se esta en desarrollo para que el puerto 1, mande el estado de RESET.
wuepe escribió:Cambios realizados en la rev. 33Arreglado bug del descriptor del hub, que no le mandaba correctamente que tiene 6 puertos.
Quitada función que no se utilizaba psplinkSetK1
Añadido un envio de Request Auxiliar
Comentado o quitado algunas funciones que no se utilizan.
Cambiado la forma de enviar el dato en hub_connect_port
Creado código para el envio de GET_STATUS del hub, aunque hay que revisarlo.
Añadidos algunos TODO: para implementar
Estado actual, hay que enviar correctamente, los valores 0x0000 para el estatus y 0x0000 para el change al preguntarnos por el STATUS del HUB.
Actualizada la svn.
http://code.google.com/p/eol-psgroove/
Edito, subo a megaupload.
Código Fuente:
driver rv33
Compilado:
eboot kernel 1.5 bin
driver rv33 prx
Repito, necesario kernel 1.5, puesto que es para testeos de desarrolladores, en kernel 3.xx se puede usar el eboot 5.xx pero este no muestra los datos del driver para su testeo
wuepe escribió:Estamos a la espera, de que se haga el Port Reset, a partir de hay, ya estará todo listo, pero claro, el caso es que, siempre que pasamos un obstaculo, nos encontramos con otro xD.
Esto suena bastante bien:ViTi95 escribió:Guzmanus escribió:Wuepe y demás sceners, con la ayuda de ViTi95 he comprobado que cambiando los offsets 0x00 y 0x01 se cambia el VendorID de la PSP
genial tio, ahora solo queda modificar el usb.prx o parchear la memoria donde se guardan las variables del VendorID y el ProductID, te llevas un 10 macho!!!
Parece que queda poquísimo. Los sceners no han dicho nada al respecto pero la salida de la primera release es inminente. No obstante y como siempre llamo a la compostura. Aún no se sabe si funcionará, debe ser testeado cuando este terminado.
Una inquietante actualización en el hilo de investigación me ha devuelto las ganas de actualizar aquí. El port está casi listo. Quema!!!
Os invito a que no salteis aún del sitio porque aún no está todo dicho y las cosas pueden cambiar.
Además llamo a la compostura, no acoseis el hilo de investigación con preguntas sin sentido que ahora mismo está muy limpio. Si necesitais preguntar algo hacedlo aquí.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...
Estais todos impacientes y lo se, pero no hay grandes actualizaciones. Lo último que sabemos es que wuepe ha conseguido que el HUB se conecte con los parámetros correctos. Supongo que el siguiente paso sería empezar a implementar el PSGroove en PSP. Pero no puedo confirmarlo ya que los sceners no han dicho nada al respecto.wuepe escribió:Bueno, he modificado las estructuras para que ahora cree correctamente el device hub, con las especificaciones de ps groove.
Modificar estas lineas del main.c...
/* HI-Speed device descriptor */ //OK
struct DeviceDescriptor devdesc_hi =
{
.bLength = 0x12,
.bDescriptorType = 0x01,
.bcdUSB = 0x0200,
.bDeviceClass = 0x09,
.bDeviceSubClass = 0x00,
.bDeviceProtocol = 0x01,
.bMaxPacketSize = 0x08, // Este parametro
...
/* Hi-Speed endpoint descriptors */
struct EndpointDescriptor endpdesc_hi[3] =
{
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
.bInterval = 0x0C
},
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
.bInterval = 0x0C
},
{
.bLength = 0x07,
.bDescriptorType = 0x05,
.bEndpointAddress = 0x81,
.bmAttributes = 0x03,
.wMaxPacketSize = 0x01, // Este parametro
...
/* USB start function */
int start_func(int size, void *p)
{
int ret;
DEBUG_PRINTF("Start Function %p\n", p);
/* Fill in the descriptor tables */
memset(usbdata, 0, sizeof(usbdata));
// Descomentado y borrado el usbdata[1]
memcpy(usbdata[0].devdesc, &devdesc_hi, sizeof(devdesc_hi));
usbdata[0].config.pconfdesc = &usbdata[0].confdesc;
usbdata[0].config.pinterfaces = &usbdata[0].interfaces;
usbdata[0].config.pinterdesc = &usbdata[0].interdesc;
usbdata[0].config.pendp = usbdata[0].endp;
memcpy(usbdata[0].confdesc.desc, &confdesc_hi, sizeof(confdesc_hi));
usbdata[0].confdesc.pinterfaces = &usbdata[0].interfaces;
usbdata[0].interfaces.pinterdesc[0] = &usbdata[0].interdesc;
usbdata[0].interfaces.intcount = 1;
memcpy(usbdata[0].interdesc.desc, &interdesc_hi, sizeof(interdesc_hi));
usbdata[0].interdesc.pendp = usbdata[0].endp;
memcpy(usbdata[0].endp[0].desc, &endpdesc_hi[0], sizeof(endpdesc_hi[0]));
memcpy(usbdata[0].endp[1].desc, &endpdesc_hi[1], sizeof(endpdesc_hi[1]));
memcpy(usbdata[0].endp[2].desc, &endpdesc_hi[2], sizeof(endpdesc_hi[2]));
g_driver.devp = usbdata[0].devdesc; // Este parametro
g_driver.confp = &usbdata[0].config; // Este parametro
...
Con esto ya se conecta con los parametros correctos el hub en modo Full/Low sleep
Nueva actualización. Ya no da errores al identificar el HUB. Dejo toda la información facilitada por wuepe aquí:REPITO es para testeos y ayudar a que mas gente se anime a comunicarse como deve ser, por ahora, conectamos en modo hub, falta emular la conexion de Puertos como tiene que ser. Por ahora no es funcional en PS3, solo para PSP y probar que sea reconocido por windows/linux/mac etc...
eh modificado psphid_src solo para que detecte la psp como hub.
Es una fuente para manejar la psp como raton, pero ahora lo reconoce como hub, se manda la primera instrucción del código de pspgroove, para confirmar que es un hub, ahora no da error en windows, pero falta implementar lo demas, o unificarlo con el pspgroove.
Compilado: http://www.megaupload.com/?d=GUPIOVNP
Fuente Modificada del psphid_src http://www.megaupload.com/?d=2C4PL9VV
Tambien lo he compilado, el PRX, funciona tanto con el eboot que realize, como el que compartio Krosk
El mio pedia kernel 1.5 el de krosk va en CF.
La unica pega para los que quieran continuar con el desarrollo, es que en el de eboot 1.5, si muestra los printf en panatalla, el eboot de Krosk no los muestra. Ambos tienen el mismo prx, que he compilado.
Ami me detecta en Windows 7 64Bit, como hub y ahora no da error al poco rato de conectarlo.
nullEX ha actualizado en el hilo de investigación. Según parece que el código del driver no está acabado le faltan algunas cosas pero se acerca mucho a lo que se necesita. Por tanto el estado actual es "terminando el driver". En cuanto lo acaben se empezará con el paso 2.nullEX escribió:Viene a ser un Driver para PSP en el que se emularía un HUB utilizando el código del PsGroove de Mathieulh. Además está creado a partir del driver de USB del programa de PSP RemoteJoy. Casi emularía los diferentes 6 dispositivos que se usan, aunque existen ciertas partes del código que faltan y que señalizo con el código "//TODO:".
Parece que Krosk vuelve a saber algo que nosotros no sabemos. Dejemos que haga su magia sin atosigarle.krosk escribió:nullEX, si que se puede, tan solo hay que saber manejar bien las requests... jisjis
nullEX se ha pronunciado y parece que no con muy buenas noticias... esperemos a que la cosa avance a ver que pasa...nullEX escribió:He llegado a la conclusión de que va a ser muy difícil. Aquí todos manejamos el driver de la psp para gestionar las conexiones USB, y con ese driver no se puede (o no he sido capaz de encontrarlo) implementar el psgroove, se debería utilizar algo mas a bajo nivel. Y hasta donde conozco no existe nada a un nivel mas bajo que esto, así que habría que crearlo y eso si que es muy muy complicado...
Creemos fuertemente en tu firmal nullEX, sabemos que puedes hacerlo. Tómatelo con calma amigo!Firma de nullEX escribió:Nada es imposible, el problema es que aún no se nos ha ocurrido como hacerlo...
Acabo de actualizar mi PSP a 5.50Gen D y he ejecutado el pbp de krosk y funciona perfectamente. Windows XP me dice que ha reconocido un dispositivo USB pero que tiene problemas. Todo está mucho más cerca!
Parece ser que Krosk ha posteado el primer PSP-Hub para consolas psp fat y slim sin necesidad de usar kernel 1.5. Ahora la consola emula a un hub USB. De momento eso no tiene utilidad para el usuario final pero deja las puertas abiertas para trabajar en el pspgroove. Un avance muy importante si tenemos en cuenta las palabras de Mathieulh: "Cada paso que damos vemos más dificil hacer un port para PSP".
[offtopic] Pues será en Francia majete por que en España vamos a por todas como con el mundial. [/offtopic]
Os dejo el post de krosk:krosk escribió:y dale con el kernel 1.50, no downgradeeis psp solo para probar eso, que el Kernel 1.50 está pasado de moda!
yo he conseguido mejores resultados con kernel 5.XX, funcionando desde 5.50GEN-D :\
Esta captura es de conectar la psp al ordenador, el HUB está hecho. Y todo esto sin usar KERNEL 1.50 de los cojones.
Para quien tenga ganas de probarlo, Clicke aquí, pero que no me pregunte nadie como usarlo. Esto es solo un POC con el hub funcionando. En windows os dirá que el dispositivo no es valido, esto es normal porque en la versión aquí colgada falta poner el descriptor del HUB, que es esencial. En Mac saltaran 3 errores en el log, y en Linux supongo que tambien.
Voy a dormir, toda la tarde programando.
Ala, buenas noches.
PD: Respecto a las declaraciones de mathieulh, normal que el no consiga nada. Sus amigos aún harán algo, pero él no.
aerox150 escribió:offtopic...
creo que matorx se a pasao no creeis?
que pasaria si un nov hiziera lo mismo que a hecho el?
"UN EMPUJONCITO"....
lo veo mal, los vet deben de dar ejemplo de lo que no hacer, y es llenar el hilo de mierda
Matrox escribió:aerox150 escribió:offtopic...
creo que matorx se a pasao no creeis?
que pasaria si un nov hiziera lo mismo que a hecho el?
"UN EMPUJONCITO"....
lo veo mal, los vet deben de dar ejemplo de lo que no hacer, y es llenar el hilo de mierda
Tu has visto las fotos que han colgado?
Darude1x escribió:pero que foto puso maniko?
Ahora estoy con la intriga...