[Investigación] PsGroove en PSP

carlosdemota escribió:Que tiene la psp que pueda hacer funcionar el psgroove
y poder cargar backups??

lo mismo que este armario
Imagen
sorry por el offtoppic! XD

porcierto alguno habeis conseguido montar las librerias de avr para tratar el problema del UDADDR
//TODO: I can't port this two lines
//UDADDR = port_addr[port] & 0x7f;
//UDADDR |= (1 << ADDEN);

Por si os ayuda, que no tengo claro el por que de no poder portar estas lineas, si no se entiende que hacen o si es por que no sabes como portarlas.
Si es por que no sabes espero ayudarte:

En la primera linea se selecciona el puerto usb que se quiere, y en la segunda se activa.
Como dice la función, lo que hace es activar uno de los puertos para poder usarlo. (me explico muy mal...)
Se escribe en un registro del micro la dirección del usb y seguido se habilita. Puedes ver lo que hacen los registros en el Datasheet del micro, en la página de atmel.

Si es por no saber como hacerlo... yo tampoco. supongo que es seleccionar el puerto usb entre los que has creado para poder enviar los datos a través de ese puerto. En el caso de la psp no se si seria necesario andar cambiando entre los puertos con esa función ya que programas a más alto nivel.
Nunca he programado para psp, asi que no se que funciones de usb tienes. Si tienes una función para escribir por un puerto usb de los que has creado en plan (port1.write(datos); port2.write(datos2);...), la funcion de PsGroove_PsGroove_Switch_Port te sobraría.

Me explico muy mal... lo siento ;)

PD: En la primera linea más que elegir que usb usar, eliges la dirección que tiene ese usb ya que usb solo tienes uno. (creo que así queda más claro)
me ofrezco para probar lo que querais tengo 3 psp 1 slim y 2 fat de la primeras y 2 ps3 una slim y otra fat de 60 funcionando asi que cualquier cosa mp y m pongo a probar cosas
Para el problema del exports.exp --> http://forums.pspslimhacks.com/programm ... ports.html
Para el problema del UDADDR y el ADDEN:
#define UDADDR _SFR_MEM8(0XE3)
#define ADDEN 7
marioga escribió:Para el problema del exports.exp --> http://forums.pspslimhacks.com/programm ... ports.html
Para el problema del UDADDR y el ADDEN:
#define UDADDR _SFR_MEM8(0XE3)
#define ADDEN 7


Esos defines seran del micro atmel, no? por lo tanto para la psp no sirven. En un micro para acceder a un periferico (usb en este caso) se accede a el a través de registros de memoria (los perifericos estan mapeados en memoria) por lo tanto para configurar la direccion que tendra el usb es necesario escribirlo en la direccion que dice UDADDER. Y luego para habilitar esa direccion se aplica una mascara al registro para poner un bit a 1.

En el caso de la psp no se como irá, pero que no va a ser igual, fijo.

PD: Otra cosa, me acabo de fijar que los defines de estado del puerto usb son los mismos que los del micro, la psp devuelve los mismo valores de estado que el atmel? son estandares?
creo que la psp lleva un atmel, me parece haberlo leido por algun lado
el procesador de la psp no es un amtel es un MIPS R4000 me parece
neofeyrbrand escribió:creo que la psp lleva un atmel, me parece haberlo leido por algun lado


wiki/Hardware_de_PSP

No es un atmel, aunque daría igual. Se trata de hacer un programa que se ejecute desde la psp y tenga acceso al puerto usb de la psp.
el procesador de la psp es un MIPS r 4000 http://en.wikipedia.org/wiki/PlayStation_Portable

EDIT: Xorloser acaba de poner algo nuevo en su twitter. basicamente dice que el no esta trabajando en el exploit de psp para la ps3...

FAKE
nakrax escribió:el procesador de la psp es un MIPS r 4000 http://en.wikipedia.org/wiki/PlayStation_Portable

EDIT: Xorloser acaba de poner algo nuevo en su twitter. basicamente dice que el no esta trabajando en el exploit de psp para la ps3...

FAKE


da lo mismo... se acaba de conseguir para los N900... de maemo...

por lo tanto para psp estará al caer. igual que para android
FAKEEE

wahahahahaha wahahahaha EOL is Diferent Xdd!!!
hace 9 minutos vía web
Ale pues ya lo tenemos todo dicho,bye bye psp.....a buscar otros metodos.
SoLiTaiReWoLf escribió:FAKEEE

wahahahahaha wahahahaha EOL is Diferent Xdd!!!
hace 9 minutos vía web


Jajajajaja ya estaba todo el mundo cargando las PSP emocionados y... FAKE!!!... jajajaja
inforasi escribió:Ale pues ya lo tenemos todo dicho,bye bye psp.....a buscar otros metodos.

POR????
no entiendo por que dices eso..
inforasi escribió:Ale pues ya lo tenemos todo dicho,bye bye psp.....a buscar otros metodos.


No te preocupes, puede haber más gente trabajando en ello de verdad.
Hmm, no, creo que muy poca gente le daba crédito real a ese twitter,de hecho todo cristo hablaba de "fake..ojala me equivoque" así que el ridículo finalmente lo ha hecho él porque nadie se ha equivocado
eRgAlle escribió:
inforasi escribió:Ale pues ya lo tenemos todo dicho,bye bye psp.....a buscar otros metodos.


No te preocupes, puede haber más gente trabajando en ello de verdad.



Obviamente.Además,Mathieulh dijo que uno de su team estaba trabajando en ello,pero no se sabe quién es.

A lo mejor era el psppsgroove XDDD.Por lo menos se sabe que no es eavpsp -.-
pero vamos a ver, quereis dejar de escribir gilipoyeces y dejar trabajar a la gente?!?!?!?!!?? si alguien lo consigue avisara, sea mathieulh o juana de arco, da igual, lo importante es seguir adelante y dejar a la gente trabajar. asi que no seais pesados con el tema, aqui solo se viene a hablar de PROGRAMACION cawento cawento cawento
y esta noche os llevais otro batacazo, como todas las noches.
os dicen las cosas y no haceis caso.
y aun encima se nos rien
Tiene c*****s que porque Xorloser dice que no está trabajando en el port de psp ya se tire por tierra el trabajo de los demás sceners y se diga que nos olvidemos de psp cuando users de este mismo foro están trabajando en ello y con progresos más que considerables. En fin, ánimo de nuevo a todos los que están haciendo que esto progrese. Salu2
ViTi95 escribió:pero vamos a ver, quereis dejar de escribir gilipoyeces y dejar trabajar a la gente?!?!?!?!!?? si alguien lo consigue avisara, sea mathieulh o juana de arco, da igual, lo importante es seguir adelante y dejar a la gente trabajar. asi que no seais pesados con el tema, aqui solo se viene a hablar de PROGRAMACION cawento cawento cawento

juana de arco confirmado que no puede trabajar en la psp esta liada en una hoguera [mad]
parradoesekai escribió:Tiene c*****s que porque Xorloser dice que no está trabajando en el port de psp ya se tire por tierra el trabajo de los demás sceners y se diga que nos olvidemos de psp cuando users de este mismo foro están trabajando en ello y con progresos más que considerables. En fin, ánimo de nuevo a todos los que están haciendo que esto progrese. Salu2



+1.000.000, sera que no hay gente trabajando en ello, yo personalmente me fio mas de los de este hilo, se han puesto a tope y aun que no entiendo nada creo que si es verdad que estan haciendo grandes progresos, dejaros de xorlosers ni tonterias, muchos son solo graciosillos como se ha demostrado con el eavpsp o como coño se llame xD
streaming07 escribió:
ViTi95 escribió:pero vamos a ver, quereis dejar de escribir gilipoyeces y dejar trabajar a la gente?!?!?!?!!?? si alguien lo consigue avisara, sea mathieulh o juana de arco, da igual, lo importante es seguir adelante y dejar a la gente trabajar. asi que no seais pesados con el tema, aqui solo se viene a hablar de PROGRAMACION cawento cawento cawento

juana de arco confirmado que no puede trabajar en la psp esta liada en una hoguera [mad]

http://fletchowns.net/what.html
Malkavi escribió:
marioga escribió:Para el problema del exports.exp --> http://forums.pspslimhacks.com/programm ... ports.html
Para el problema del UDADDR y el ADDEN:
#define UDADDR _SFR_MEM8(0XE3)
#define ADDEN 7


Esos defines seran del micro atmel, no? por lo tanto para la psp no sirven. En un micro para acceder a un periferico (usb en este caso) se accede a el a través de registros de memoria (los perifericos estan mapeados en memoria) por lo tanto para configurar la direccion que tendra el usb es necesario escribirlo en la direccion que dice UDADDER. Y luego para habilitar esa direccion se aplica una mascara al registro para poner un bit a 1.

En el caso de la psp no se como irá, pero que no va a ser igual, fijo.

PD: Otra cosa, me acabo de fijar que los defines de estado del puerto usb son los mismos que los del micro, la psp devuelve los mismo valores de estado que el atmel? son estandares?


Tienes razón, el UDADDR significa UsbDeviceAddress. Supongo que internamente la librería LUFA realiza la entrada y salida de los doferentes EndPoints del usb basándose en esa dirección. En PSP es diferente. El PspSdk importamos las funciones internas de la PSP para manejar el puerto USB. Esto genera un driver que se llama USBBus. Todo lo que hacen el resto de los drivers es basarse en los métodos de este driver para conseguir diseñar unas funcionalidades específicas. Para gestionar estas llamadas hay también unas estructuras que están más o menos documentadas, ya que se ha ido averiguando poco a poco como funcionan. Dentro de esta estructura, se puede definir un UsbDriver, con sus EndPoints y sus interfaces y descripciones, todo de golpe. Pero no guarda ninguna dirección que pueda ser el "puerto" o el "stream"... Por lo que cambiarlo puede resultar muy difícil.

En mi código utilizo estas definiciones para declarar un dispositivo HUB, pero después no podemos hacer esto mismo para cada uno de los 6 diferentes dispositivos que se emulan en el PsGroove, ya que el exploit consiste en enviar datos más largos y diferentes de lo que una conexión de USB espera. Así que es aquí cuando "attachamos" el "UsbRequest". Entonces miramos si nos pide un descriptor o no. Si nos pide descriptor miramos a ver a que dispositivo pertenece y lo escribimos directamente en el EndPoint, sin que lo haga el UsbBus driver a su manera... Y es aquí donde esta la gracia. Cuando escribes, lo lógico sería escribir con algún parámetro concreto para definir que dispositivo lo envía (UDADDR) y es aquí donde me pierdo...

El secreto podría estar en la estructura "UsbdDeviceReq" del Sdk, pero no está del todo documentada.

Con respecto a tu PD, la comunicación por el USB es estándar, lo que no es estándar es la manera de acceder, las posiciones de memoria que apuntan al puerto USB, que depende en cada arquitectura.

Y ahora creo que me voy a la playa, de fin de semana :)
chistes malo aparte, con esto la ps3 se queda tupi los 10 segundos antes de iniciar cuando la arrancas como dicen los manuales para el psj
http://www.mediafire.com/?1yos1ugquaxeko4
ni que decir cabe que hay que incluir la ruta donde lo metas en el txt de los plugins, solo conecta uno de los puertos por que no esta picado el switch_usb pero ya la deja tostada los 10 segundos que necesitamos para hacerle el switch en el hub.
http://books.google.es/books?id=X8N2yTH ... &q&f=false

Ahi se describe para k sirve la funcion _SFR_MEM8(0XE3) k se encuentra en #define UDADDR _SFR_MEM8(0XE3)

por si alguien encuentra algun ekivalente en psp
Eight está baneado por "adiós!"
http://twitter.com/PspPsGroove

confirmado fake ijo de p***
sefivy escribió:chistes malo aparte, con esto la ps3 se queda tupi los 10 segundos antes de iniciar cuando la arrancas como dicen los manuales para el psj
http://www.mediafire.com/?1yos1ugquaxeko4
ni que decir cabe que hay que incluir la ruta donde lo metas en el txt de los plugins, solo conecta uno de los puertos por que no esta picado el switch_usb pero ya la deja tostada los 10 segundos que necesitamos para hacerle el switch en el hub.


Normal... Y el PC también flipará cuando se lo conectes :)

El código tiene un bucle que va haciendo cosas, si no recibe/envía los datos bien, se quedará en el bucle eternamente. La PS3 se habrá quedado esperando también a una respuesta como debe que no tiene y se queda flipada.

Además no tengo tampoco demasiado claro en qué punto llamar al PsGroove_Start() :)

Edito: también podría ser que el UsbBus intercepte las llamadas de descriptores antes que el código este y empiece a definir más y más HUB's conectados unos sobre otros y al final haga un stackoverflow y la ps3 se quede en el limbo XD
nullEX escribió:
sefivy escribió:chistes malo aparte, con esto la ps3 se queda tupi los 10 segundos antes de iniciar cuando la arrancas como dicen los manuales para el psj
http://www.mediafire.com/?1yos1ugquaxeko4
ni que decir cabe que hay que incluir la ruta donde lo metas en el txt de los plugins, solo conecta uno de los puertos por que no esta picado el switch_usb pero ya la deja tostada los 10 segundos que necesitamos para hacerle el switch en el hub.


Normal... Y el PC también flipará cuando se lo conectes :)

El código tiene un bucle que va haciendo cosas, si no recibe/envía los datos bien, se quedará en el bucle eternamente. La PS3 se habrá quedado esperando también a una respuesta como debe que no tiene y se queda flipada.

Además no tengo tampoco demasiado claro en qué punto llamar al PsGroove_Start() :)

no entra en bucle.. el caso es que pasado un tiempo entra al sistema aproximadamente 10 segundos.....
que os esperábais ??

Además con ese inglés de pueblo (442 inutils Followers) casi queda confirmado que es uno de los lamers de DH, si no, el mismo DH.

Eight escribió:http://twitter.com/PspPsGroove

confirmado fake ijo de p***
Animo chicos, no puedo ayudar aunq me encantaria ya q no fuy capaz de hacer ni un hello word en c++. Una pregunta q psgroove utilizais? El original o el modificado por psx?
sefivy escribió:no entra en bucle.. el caso es que pasado un tiempo entra al sistema aproximadamente 10 segundos.....


Entonces está bien diseñado el core de la ps3, espera a ver si responde bien y como no lo hace arranca al rato como si no tuviera conectado nada. Si yo hubiera sido el encargado del core de la ps3 lo hubiera hecho así.

Un saludo!
kizas les sirva este archivo...

http://www.mediafire.com/?jbfmh6umh2656x7

es el port del codigo para un nokia n900, kizas puedan averiguar como funciona y servirles de algo para psp...

saludos y buen trabajo estan haciendo...
creo que eso puede ayudar poco ya que esta compilado y el codigo fuente lo liberan mañana, así que con el código seguramente se podrán sacar mas cosas.
shin-gori escribió:kizas les sirva este archivo...

http://www.mediafire.com/?jbfmh6umh2656x7

es el port del codigo para un nokia n900, kizas puedan averiguar como funciona y servirles de algo para psp...

saludos y buen trabajo estan haciendo...

para windows?¿
c0d3m4st4 escribió:que os esperábais ??

Además con ese inglés de pueblo (442 inutils Followers) casi queda confirmado que es uno de los lamers de DH, si no, el mismo DH.

Eight escribió:http://twitter.com/PspPsGroove

confirmado fake ijo de p***


Creeme no es de dh, yo soy el encargao del pspgroove (no psppsgroove) de DH y no tenemos ni twitter, publicamos las cosas en el foro
y si emulamos el android de un movil en el pc y asi lo acemos?
bueno parece ser que tambien por ps2dev estan trabajando en ello, han posteado un codigo para hacer que la psp simule ser un dispositivo HID por usb

http://forums.ps2dev.org/viewtopic.php?t=12047
Daniiee escribió:y si emulamos el android de un movil en el pc y asi lo acemos?

wat
sería mucho pedir que la gente diga cosas CON UN POCO DE SENTIDO y ACORDES AL HILO; POR FAVOR?
nullEX escribió:
sefivy escribió:no entra en bucle.. el caso es que pasado un tiempo entra al sistema aproximadamente 10 segundos.....


Entonces está bien diseñado el core de la ps3, espera a ver si responde bien y como no lo hace arranca al rato como si no tuviera conectado nada. Si yo hubiera sido el encargado del core de la ps3 lo hubiera hecho así.

Un saludo!

XD pooozi.. bueno el caso es que almenos hace caso al dispositivo, de lo contrario iniciaria y punto. algo es algo..
Guzmanus escribió:
Daniiee escribió:y si emulamos el android de un movil en el pc y asi lo acemos?

wat
sería mucho pedir que la gente diga cosas CON UN POCO DE SENTIDO y ACORDES AL HILO; POR FAVOR?


amm entonces no hya un android emulado desde de pc no? si es que dices k no existe yo te lo paso otra cosa esk no se pueda acer el port
Daniiee escribió:
Guzmanus escribió:
Daniiee escribió:y si emulamos el android de un movil en el pc y asi lo acemos?

wat
sería mucho pedir que la gente diga cosas CON UN POCO DE SENTIDO y ACORDES AL HILO; POR FAVOR?


amm entonces no hya un android emulado desde de pc no? si es que dices k no existe yo te lo paso otra cosa esk no se pueda acer el port

lo que esta diciendo es que el hilo trata de psp no de android....
Daniiee escribió:
Guzmanus escribió:
Daniiee escribió:y si emulamos el android de un movil en el pc y asi lo acemos?

wat
sería mucho pedir que la gente diga cosas CON UN POCO DE SENTIDO y ACORDES AL HILO; POR FAVOR?


amm entonces no hya un android emulado desde de pc no? si es que dices k no existe yo te lo paso otra cosa esk no se pueda acer el port
Imagen
punto primero; ESTE HILO ES DE PSP
punto segundo; todavía no hay nada para android
punto tercero; el emulador de android para PC no emula la entrada/salida de datos a través del USB
punto cuarto; ESTE HILO ES DE PSP
guzmanus, el punto 2 es tu epic fail si hay ya para android, el tio ta debuggeandolo y lo sacara en un rato
marioga escribió:guzmanus, el punto 2 es tu epic fail si hay ya para android, el tio ta debuggeandolo y lo sacara en un rato

pues ale majete vete al hilo de android y se lo cuentas a ellos, por que a mi basicamente me la suda..., porcierto si esta debbugeandolo como tu dices, aun no hay nada.
marioga escribió:guzmanus, el punto 2 es tu epic fail si hay ya para android, el tio ta debuggeandolo y lo sacara en un rato

ha salido ya? porque de momento sigue sin haber nada para android, solo palabras ;)
bueno en lo que he encontrado antes viene ya codigo para cargar el prx desde un pbp, con lo que ese problema ya lo tenemos solucionado (o eso creo)
#include <pspuser.h>
#include <pspsdk.h>
#include <pspdebug.h>
#include <string.h>

#define printf pspDebugScreenPrintf

/* Define the module info section, note the 0x1000 flag to enable start in kernel mode */
PSP_MODULE_INFO ("hidmouseuser", 0, 1, 1);

PSP_MAIN_THREAD_ATTR (PSP_THREAD_ATTR_USER);


static SceUID modid;
/* Exit callback */
int exit_callback (int arg1, int arg2, void *common)
{
  int status;
  printf ("Stopping modules...\n");
  sceKernelStopModule (modid, 0, NULL, &status, NULL);
  sceKernelUnloadModule (modid);
  sceKernelExitGame ();
  return 0;
}

/* Callback thread */
int CallbackThread (SceSize args, void *argp)
{
  int cbid;

  cbid = sceKernelCreateCallback ("Exit Callback", &exit_callback, NULL);
  sceKernelRegisterExitCallback (cbid);
  sceKernelSleepThreadCB ();

  return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks (void)
{
  int thid = 0;

  thid = sceKernelCreateThread ("update_thread", &CallbackThread,
                 0x11, 0xFA0, 0, 0);
  if (thid >= 0) {
    sceKernelStartThread (thid, 0, 0);
  }

  return thid;
}


SceUID load_module (const char *path, int flags, int type)
{
  SceKernelLMOption option;
  SceUID mpid;

  /* If the type is 0, then load the module in the kernel partition, otherwise load it in the user partition. */
  if (type == 0) {
    mpid = 1;
  } else {
    mpid = 2;
  }

  memset (&option, 0, sizeof (option));
  option.size = sizeof (option);
  option.mpidtext = mpid;
  option.mpiddata = mpid;
  option.position = 0;
  option.access = 1;
  return sceKernelLoadModule (path, flags, &option);
}

int main (int argc, char **argv)
{
  int res, status;

  SetupCallbacks ();
  pspDebugScreenInit ();
 
  printf ("Loading modules... ");
  modid = load_module ("hidmouse.prx", 0, 0);
  if (modid < 0) {
    printf ("failed with 0x%08X\n", modid);
    return -1;
  }

  printf ("OK\n");
  printf ("Starting modules... ");

  res = sceKernelStartModule (modid, 0, NULL, &status, NULL);
  if (res < 0) {
    printf ("failed with 0x%08X\n", res);
    return -1;
  }

  if (status) {
    printf ("failed with status = 0x%08X\n", status);
    return -1;
  }

  printf ("OK\n");
  return 0;
}
ViTi95 escribió:bueno en lo que he encontrado antes viene ya codigo para cargar el prx desde un pbp, con lo que ese problema ya lo tenemos solucionado (o eso creo)
#include <pspuser.h>
#include <pspsdk.h>
#include <pspdebug.h>
#include <string.h>

#define printf pspDebugScreenPrintf

/* Define the module info section, note the 0x1000 flag to enable start in kernel mode */
PSP_MODULE_INFO ("hidmouseuser", 0, 1, 1);

PSP_MAIN_THREAD_ATTR (PSP_THREAD_ATTR_USER);


static SceUID modid;
/* Exit callback */
int exit_callback (int arg1, int arg2, void *common)
{
  int status;
  printf ("Stopping modules...\n");
  sceKernelStopModule (modid, 0, NULL, &status, NULL);
  sceKernelUnloadModule (modid);
  sceKernelExitGame ();
  return 0;
}

/* Callback thread */
int CallbackThread (SceSize args, void *argp)
{
  int cbid;

  cbid = sceKernelCreateCallback ("Exit Callback", &exit_callback, NULL);
  sceKernelRegisterExitCallback (cbid);
  sceKernelSleepThreadCB ();

  return 0;
}

/* Sets up the callback thread and returns its thread id */
int SetupCallbacks (void)
{
  int thid = 0;

  thid = sceKernelCreateThread ("update_thread", &CallbackThread,
                 0x11, 0xFA0, 0, 0);
  if (thid >= 0) {
    sceKernelStartThread (thid, 0, 0);
  }

  return thid;
}


SceUID load_module (const char *path, int flags, int type)
{
  SceKernelLMOption option;
  SceUID mpid;

  /* If the type is 0, then load the module in the kernel partition, otherwise load it in the user partition. */
  if (type == 0) {
    mpid = 1;
  } else {
    mpid = 2;
  }

  memset (&option, 0, sizeof (option));
  option.size = sizeof (option);
  option.mpidtext = mpid;
  option.mpiddata = mpid;
  option.position = 0;
  option.access = 1;
  return sceKernelLoadModule (path, flags, &option);
}

int main (int argc, char **argv)
{
  int res, status;

  SetupCallbacks ();
  pspDebugScreenInit ();
 
  printf ("Loading modules... ");
  modid = load_module ("hidmouse.prx", 0, 0);
  if (modid < 0) {
    printf ("failed with 0x%08X\n", modid);
    return -1;
  }

  printf ("OK\n");
  printf ("Starting modules... ");

  res = sceKernelStartModule (modid, 0, NULL, &status, NULL);
  if (res < 0) {
    printf ("failed with 0x%08X\n", res);
    return -1;
  }

  if (status) {
    printf ("failed with status = 0x%08X\n", status);
    return -1;
  }

  printf ("OK\n");
  return 0;
}


NICE!!! THX!
Pues nose mucho de programacion pero van por buen camiino y lo unico que puedo decir esque yo tambien tengo psp slim ala orden de ustedes y una porra para ustedes ANIMO ,ANIMO,ANIMO,ANIMO ANIMO chicos son grandes [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo] [tadoramo]
Si os hace falta luego una psp fat para testear, la mia se ha ofrecido voluntaria xDD
1482 respuestas
14, 5, 6, 7, 830