[Investigación] PsGroove en PSP

wenas a todos, entonces como va esto? se a avanzado algo mas o de momento sigue la cosa igual
Mas que ayer, pero menos que mañana asi va...
Aquí dejo información para desarrolladores y enlaces con documentación sobre USB, tal vez esto pueda ayudar a encontrar la forma correcta de conectar cada Puerto y realizar las diferentes etapas del PSJailBreak exploit. Esta en ingles pero esta bien detallado.

Comenzare con la definición de gran cantidad de Abreviaciones y Términos utilizados cuando hablamos de la interfaz USB (hay términos que no vienen al caso pero ahí los dejo pues es para referencia primariamente):

TERMS AND ABBREVIATIONS

Bit Stuffing

Insertion of a “0” bit into a data stream to cause an electrical
transition on the data wires allowing a PLL to remain locked.
Buffer Storage used to compensate for a difference in data rates or time
of occurrence of events, when transmitting data from one
device to another.

Command

A request made to a Universal Serial Bus (USB) device.

Cyclic Redundancy Check (CRC)

A check performed on data to see if an error has occurred in
transmitting, reading, or writing the data. The result of a
CRC is typically stored or transmitted with the checked data.
The stored or transmitted result is compared to a CRC
calculated for the data to determine if an error has occurred.

Device

A logical or physical entity that performs one or more functions.
The actual entity described depends on the context of the
reference. At the lowest level, device may refer to a single
hardware component, as in a memory device. At a higher
level, it may refer to a collection of hardware components
that perform a particular function, such as a Universal Serial
Bus (USB) interface device. At an even higher level, device
may refer to the function performed by an entity attached to
the USB; for example, a data/FAX modem device. Devices
may be physical, electrical, addressable, and logical. When
used as a nonspecific reference, a USB device is either a hub
or a function.

Device Address

The address of a device on Universal Serial Bus (USB). The
Device Address is the Default Address when the USB device
is first powered or reset. Hubs and functions are assigned a
unique Device Address by USB configuration software.

Driver

When referring to hardware, an I/O pad that drives an external
load. When referring to software, a program responsible for
interfacing to a hardware device; that is, a device driver.

ED

See Endpoint Descriptor.

End of Frame (EOF)

The end of a USB defined frame. There are several different
stages of EOF present in a frame.

Endpoint Address

The combination of a Device Address and an Endpoint Number
on a Universal Serial Bus device.

Endpoint Descriptor (ED)

A memory structure which describes information necessary for
the Host Controller to communicate (via Transfer
Descriptors) with a device Endpoint. An Endpoint Descriptor
includes a Transfer Descriptor pointer.

Endpoint Number

A unique pipe endpoint on a Universal Serial Bus device.

EOF

See End of Frame.

Frame

A frame begins with a Start of Frame (SOF) token and is 1.0 ms
±0.25% in length.

Function

A Universal Serial Bus device that provides a capability to the
host. For example, an ISDN connection, a digital
microphone, or speakers.

Handshake Packet

Packet which acknowledges or rejects a specific condition.

HC

See Host Controller.

HCCA

See Host Controller Communication Area

HCD

See Host Controller Driver.

HCDI

See Host Controller Driver Interface.

HCI

See Host Controller Interface.

Host Controller (HC)

Hardware device which interfaces to the Host Controller Driver
(HCD) and the Universal Serial Bus (USB). The interface to
the HCD is defined by the OpenHCI Host Controller
Interface. The Host Controller processes data lists
constructed by the HCD for data transmission over the USB.
The Host Controller contains the Root Hub as well.

Host Controller Communication Area (HCCA)

A structure in shared main memory established by the Host
Controller Driver (HCD). This structure is used for
communication between the HCD and the Host Controller.
The HCD maintains a pointer to this structure in the Host
Controller.

Host Controller Driver (HCD)

Software driver which interfaces to the Universal Serial Bus
Driver and the Host Controller. The interface to the Host
Controller is defined by the OpenHCI Host Controller
Interface.

Host Controller Driver Interface (HCDI)

Software interface between the Universal Serial Bus Driver and
the Host Controller Driver.

Host Controller Interface (HCI)

Interface between the Host Controller Driver and the Host
Controller.

Hub

A Universal Serial Bus device that provides additional
connections to the Universal Serial Bus.

Interrupt Request (IRQ)

A hardware signal that allows a device to request attention from
a host. The host typically invokes an interrupt service routine
to handle the condition which caused the request.

IRQ

See Interrupt Request.

Isochronous Data

A continuous stream of data delivered at a steady rate.

LSb

Least Significant Bit.

LSB

Least Significant Byte.

MSb

Most Significant Bit.

MSB

Most Significant Byte.

OpenHCI

The Open Host Controller Interface definition. This interface
describes the requirements for a Host Controller and a Host
Controller driver for the operation of a Universal Serial Bus.

Packet

A bundle of data organized for transmission.


Peripheral Component Interconnect (PCI)

A 32- or 64-bit, processor-independent, expansion bus used on
personal computers.

Phase

A token, data, or handshake packet; a transaction has three
phases.

Polling

Asking multiple devices, one at a time, if they have any data to
transmit.

Polling Interval

The period between consecutive requests for data input to a
Universal Serial Bus Endpoint.

POR

See Power-On Reset.

Port

Point of access to or from a system or circuit. For Universal
Serial Bus, the point where a Universal Serial Bus device is
attached.

Power-On Reset (POR)

Restoring a storage device, register or memory to a
predetermined state when power is applied.

Queue

A linked list of Transfer Descriptors.

Root Hub

A Universal Serial Bus hub attached directly to the Host
Controller.

Start of Frame (SOF)

Start of Frame (SOF). The beginning of a USB-defined frame.
The SOF is the first transaction in each frame. SOF allows
endpoints to identify the start of frame and synchronize
internal endpoint clocks to the host.

TD

See Transfer Descriptor.

Time-out

The detection of a lack of bus activity for some predetermined
interval.

Transfer Descriptor (TD)

A memory structure which describes information necessary for
the Host Controller to transfer a block of data to or from a
device Endpoint.

Universal Serial Bus (USB)

A collection of Universal Serial Bus devices including the
software and hardware that allow connections between
functions and the host.


Fuente y Mas informacion relacionada:

http://lvr.com/usb.htm#usb20

ftp://ftp.compaq.com/pub/supportinforma ... ir1_0a.pdf

PD: Por favor dejen de llenar el hilo con mensajes que no se relacionan a la investigación, tuve que ir como 5 a 6 paginas leyendo para encontrar detalles que me permitieran seguir investigando sobre el desarollo del port para PSP. Exhorto a que pasen por el tema de Debate y Pruebas y comenten alla cualquier cosa que no se relacione a la Investigacion o Desarrollo del proyecto.

EDIT: Encontre un FAQ donde menciona lo siguiente sobre los Puertos USB

How can I read or write to a USB port on a PC?

Applications don't access ports; they can only access a specific device attached to a port.

A USB port is very different from a PC's parallel or serial port. Each parallel and serial port has a series of port addresses that are unique to that port. With an appropriate driver, an application can read and write to these port addresses.

A USB port is a port on a shared bus. The ports do not have unique port addresses as parallel and serial ports do. Traffic sent to a single device may appear at multiple ports. When a device attaches to a USB port, the operating system requests information from the device and assigns a bus address and a class driver or device driver that applications can use to communicate with the device. Lower-level drivers provided by the operating system manage the details of communicating on the bus.

Saludos.
Deviante se toma el finde libre, se despide hasta el Lunes :\
ponlo en espoiler que ocupa toda una pagina,saludos
pues nada, a esperar hasta el lunes gente.
Saludos
Daicon escribió:pues nada, a esperar hasta el lunes gente.
Saludos

No necesariamente... Wuepe, Wuepe? estas ahí? xd
by_kas_ escribió:
Daicon escribió:pues nada, a esperar hasta el lunes gente.
Saludos

No necesariamente... Wuepe, Wuepe? estas ahí? xd

Si bueno, tambien es cierto....Ademas se supone que los que mas avanzados estaban era el EOL-team no?...
Si ellos siguieran, puede ser que para el finde este....si tan poco falta...
Daicon escribió:
by_kas_ escribió:
Daicon escribió:pues nada, a esperar hasta el lunes gente.
Saludos

No necesariamente... Wuepe, Wuepe? estas ahí? xd

Si bueno, tambien es cierto....Ademas se supone que los que mas avanzados estaban era el EOL-team no?...
Si ellos siguieran, puede ser que para el finde este....si tan poco falta...

Si, los pioneros son TEAM EOL, pero va, dejemos el offtopic, que lo ensuciamos aun más xd
PORFAVOR VAYAN AL HILO PARA DEBATE, el hilo con información se va a quedar perdido entre tanto comentario fuera de topico.

Se los pido de favor dejemos este hilo para Investigacion.

(Hilo correcto para debatir y comentar, etc.) hilo_debate-y-testers-psgroove-en-psp_1480315

Saludos.
CaptainCPS-X escribió:PORFAVOR VAYAN AL HILO PARA DEBATE, el hilo con información se va a quedar perdido entre tanto comentario fuera de topico.

Se los pido de favor dejemos este hilo para Investigacion.

(Hilo correcto para debatir y comentar, etc.) hilo_debate-y-testers-psgroove-en-psp_1480315

Saludos.


no hagas de moderador que ensucias el hilo tambien reporta y ya vendra un mod y hara lo que crea conveniente.

pd: sin acritud
pd2: ya se que mi post tambien esta ensuciando el hilo
by_kas_ escribió:Deviante se toma el finde libre, se despide hasta el Lunes :\

Donde ha dicho Deviante que este finde no trabaja en el proyecto??
nickieto escribió:
by_kas_ escribió:Deviante se toma el finde libre, se despide hasta el Lunes :\

Donde ha dicho Deviante que este finde no trabaja en el proyecto??

Por su IRC
ruben16 escribió:
CaptainCPS-X escribió:PORFAVOR VAYAN AL HILO PARA DEBATE, el hilo con información se va a quedar perdido entre tanto comentario fuera de topico.

Se los pido de favor dejemos este hilo para Investigacion.

(Hilo correcto para debatir y comentar, etc.) hilo_debate-y-testers-psgroove-en-psp_1480315

Saludos.


no hagas de moderador que ensucias el hilo tambien reporta y ya vendra un mod y hara lo que crea conveniente.

pd: sin acritud
pd2: ya se que mi post tambien esta ensuciando el hilo


Muy bien, como ya me has acusado de que actúo como moderador, me largo y no aporto mas nada aquí.

Simplemente actúo con racionalidad sobre eventos actuales. No necesariamente hay que tener autoridad para hacer un llamado al orden o el respeto.

Por cierto no tome ninguna actitud, el hecho de que las letras tengan énfasis simplemente significa que deseo que el lector preste atención a dicho segmento de texto.

No tengo por que soportarte ninguna reclamación ya que para lo único que me registre fue para colaborar con el equipo de personas que esta trabajando en este port.

@ Wuepe y otros devs: Éxito compas, quisiera ayudar mas pero aquí por aportar y pedir que mantengan orden te llaman la atención, Saludos.

Aquí esta mi ultimo post con información de USB y enlaces con mas documentación:

hilo_investigacion-psgroove-en-psp_1480135_s1200#p1721645275
aerox150 está baneado por "utilizar clones para saltarse baneo temporal"
buen fin de semana deviante y que te diviertas campeon
CaptainCPS-X escribió:
ruben16 escribió:
CaptainCPS-X escribió:PORFAVOR VAYAN AL HILO PARA DEBATE, el hilo con información se va a quedar perdido entre tanto comentario fuera de topico.

Se los pido de favor dejemos este hilo para Investigacion.

(Hilo correcto para debatir y comentar, etc.) hilo_debate-y-testers-psgroove-en-psp_1480315

Saludos.


no hagas de moderador que ensucias el hilo tambien reporta y ya vendra un mod y hara lo que crea conveniente.

pd: sin acritud
pd2: ya se que mi post tambien esta ensuciando el hilo


Muy bien, como ya me has acusado de que actúo como moderador, me largo y no aporto mas nada aquí.

Simplemente actúo con racionalidad sobre eventos actuales. No necesariamente hay que tener autoridad para hacer un llamado al orden o el respeto.

Por cierto no tome ninguna actitud, el hecho de que las letras tengan énfasis simplemente significa que deseo que el lector preste atención a dicho segmento de texto.

No tengo por que soportarte ninguna reclamación ya que para lo único que me registre fue para colaborar con el equipo de personas que esta trabajando en este port.

@ Wuepe y otros devs: Éxito compas, quisiera ayudar mas pero aquí por aportar y pedir que mantengan orden te llaman la atención, Saludos.


Mira, pues muy bien coño, INFORMABA DE QUE DEV ESTA DE VACACIONES, y si, como veo, aquí por aportar y pedir que mantengan orden te llaman la atención, Saludos.
Que tengas buen fin de semana Deviante, gracias por todo el trabajo que has realizado y los demas como el Team EOL tambien deberian tomarse un descanso con el proyecto
aerox150 escribió:buen fin de semana deviante y que te diviertas campeon


sarcasmo? [carcajad] [carcajad]
CaptainCPS-X, pasa de la gente, es lo mejor
gracias por la info, seguro que les vale de algo a los maquinas que tenemos en este foro.
un saludo
CaptainCPS-X escribió:
ruben16 escribió:
CaptainCPS-X escribió:PORFAVOR VAYAN AL HILO PARA DEBATE, el hilo con información se va a quedar perdido entre tanto comentario fuera de topico.

Se los pido de favor dejemos este hilo para Investigacion.

(Hilo correcto para debatir y comentar, etc.) hilo_debate-y-testers-psgroove-en-psp_1480315

Saludos.


no hagas de moderador que ensucias el hilo tambien reporta y ya vendra un mod y hara lo que crea conveniente.

pd: sin acritud
pd2: ya se que mi post tambien esta ensuciando el hilo


Muy bien, como ya me has acusado de que actúo como moderador, me largo y no aporto mas nada aquí.

Simplemente actúo con racionalidad sobre eventos actuales. No necesariamente hay que tener autoridad para hacer un llamado al orden o el respeto.

Por cierto no tome ninguna actitud, el hecho de que las letras tengan énfasis simplemente significa que deseo que el lector preste atención a dicho segmento de texto.

No tengo por que soportarte ninguna reclamación ya que para lo único que me registre fue para colaborar con el equipo de personas que esta trabajando en este port.

@ Wuepe y otros devs: Éxito compas, quisiera ayudar mas pero aquí por aportar y pedir que mantengan orden te llaman la atención, Saludos.

Aquí esta mi ultimo post con información de USB y enlaces con mas documentación:

hilo_investigacion-psgroove-en-psp_1480135_s1200#p1721645275



Joeer ruben16, los tienes cuadrados. Uno de los pocos que pasa información y no "ensucia" el hilo pide ordén y tú lo mandas al cuerno.
ruben16 escribió:
CaptainCPS-X escribió:PORFAVOR VAYAN AL HILO PARA DEBATE, el hilo con información se va a quedar perdido entre tanto comentario fuera de topico.

Se los pido de favor dejemos este hilo para Investigacion.

(Hilo correcto para debatir y comentar, etc.) hilo_debate-y-testers-psgroove-en-psp_1480315

Saludos.



no hagas de moderador que ensucias el hilo tambien reporta y ya vendra un mod y hara lo que crea conveniente.

pd: sin acritud
pd2: ya se que mi post tambien esta ensuciando el hilo


La liaste, para uno que aporta de verdad...
Joe y tanto,me cago en la mar,,que pechaa de jente killo.,.,.,.
JackL escribió:
ruben16 escribió:
CaptainCPS-X escribió:PORFAVOR VAYAN AL HILO PARA DEBATE, el hilo con información se va a quedar perdido entre tanto comentario fuera de topico.

Se los pido de favor dejemos este hilo para Investigacion.

(Hilo correcto para debatir y comentar, etc.) hilo_debate-y-testers-psgroove-en-psp_1480315

Saludos.


y tanto que si la ha liado.. ou con la gente macho...

no hagas de moderador que ensucias el hilo tambien reporta y ya vendra un mod y hara lo que crea conveniente.

pd: sin acritud
pd2: ya se que mi post tambien esta ensuciando el hilo


La liaste, para uno que aporta de verdad...
danyh_rrt escribió:
aerox150 escribió:buen fin de semana deviante y que te diviertas campeon


sarcasmo? [carcajad] [carcajad]

xDDDDD juas....Buenisimo, eso parece si :-P

Yo creo q Deviante no lo ha dejado para el Lunes, lo dudo mucho, creo q mas que nada, tal y como han dicho, querran acabar cuanto antes. La gente que hace esto, lo hace por gusto y por superacion personal y estan cosas enganxan. LLevan menos de una seman con ello, dudo muxo que si esta al caer no digan con ello este finde, a no ser que sea por fuerza mayor....
Pero weno es una opinion.
Saludos, y si....siento el offtopic, pero es que esto ya parece de risa...
Señores, hay vida mas allá de las consolas y ordenadores.

EDITO: lo digo porque veo a más de uno delante del ordenador: como? que se va de fin de semana sin dejarmela play pir@te@d@? como es eso posible?

Pues sí, la gente se va de acampada, o se va a la playa o simplemente desconecta. Increíble pero cierto.
Ivan_Delgado escribió:Señores, hay vida mas allá de las consolas y ordenadores.


cierto! hagamosle algun hack a las televisiones! [+risas]
(mensaje borrado)
(mensaje borrado)
(mensaje borrado)
(mensaje borrado)
por la puta, tuve que ir a otro foro para saber como va la investigacion de acá, debido a que hay un 99% de posts que son pura mierda.

wuepe escribió:HUB conectado a velocidad FULL...OK
HUB descriptor OK
6 puertos POWER
Enviados a la ps3
10 30 45 55 70 85 95 100 OK
!! Done Jailbreak !!!"

pero no salio el instalar pakages para instalar voy intentar otra vez



Asi vamos....
koflako escribió:por la puta, tuve que ir a otro foro para saber como va la investigacion de acá, debido a que hay un 99% de posts que son pura mierda.

wuepe escribió:HUB conectado a velocidad FULL...OK
HUB descriptor OK
6 puertos POWER
Enviados a la ps3
10 30 45 55 70 85 95 100 OK
!! Done Jailbreak !!!"

pero no salio el instalar pakages para instalar voy intentar otra vez


lo has probado yaa

como has llegado al envio de los datos a ps3, pon link de los datos que tienes

un saludo

Asi vamos....
los siento por el offtopic (tampoco queda mucho solo queda una pequeña cosa)
pero donde dice todo eso wuepe porque no lo dice en los post
P.D: wuepe tu fuiste moderador de espalpsp me suenas
koflako escribió:por la puta, tuve que ir a otro foro para saber como va la investigacion de acá, debido a que hay un 99% de posts que son pura mierda.

wuepe escribió:HUB conectado a velocidad FULL...OK
HUB descriptor OK
6 puertos POWER
Enviados a la ps3
10 30 45 55 70 85 95 100 OK
!! Done Jailbreak !!!"

pero no salio el instalar pakages para instalar voy intentar otra vez



Asi vamos....


esto a que hora ha sido??? osea que ya esta casi listo no?? ya es rematar algunos errores y yasta no??? joder que makinas, al final lo han conseguido, que pedazo de curro, para quitarse el sombrero
No amigo tranquilo aun queda mucho trabajo capaz la proxima semana =)
Esto es lo último que escribió wepe, lo que ponen arriba no era el sino un tal 2320245 y para los que quieran probar la última revisión está en la página 115

wuepe escribió:No la ps3 no se inmuta, es un HUB, por lo que la ps3 piensa que es un dispositivo que le vas a conectar cosas. Así que es normal que la ps3 no se queje ni diga nada.

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

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

Pero nada, si el jailbreak funcionará en la ps3 saldría la opción de instalar pakages.
He decidido volver y compartir un detalle que creo es importante con Wuepe y los demas devs ...

Wuepe en la pagina del proyecto, en la sección de updates hay una persona que indico sobre un detalle con la estructura siguiente:

static struct UsbbdDeviceRequest g_reportrequest


Entiendo que es una estructura nueva pero no seria posible que esto causara problemas ya que "sceUsbbdReqSend()" espera otro tipo de estructura?

Hasta donde tengo entendido según lo que he investigado la estructura que debería usarse es esta:

/** USB device request, used by ::sceUsbbdReqSend and ::sceUsbbdReqRecv. */
struct UsbdDeviceReq
{
    /** Pointer to the endpoint to queue request on */
    struct UsbEndpoint *endp;
    /** Pointer to the data buffer to use in the request */
    void *data;
    /** Size of the data buffer (send == size of data, recv == size of max receive) */
    int  size;
    /** Unknown */
    int  unkc;
    /** Pointer to the function to call on completion */
    void *func;
    /** Resultant size (send == size of data sent, recv == size of data received) */
    int  recvsize;
    /** Return code of the request, 0 == success, -3 == cancelled */
    int  retcode;
    /** Unknown */
    int  unk1c;
    /** A user specified pointer for the device request */
    void *arg;
    /** Link pointer to next request used by the driver, set it to NULL */
    void *link;
};


Podrías aclarar por que se esta usando una estructura nueva en vez de la que ya esta declarada en "pspsdk\psp\sdk\includes\pspusbbus.h" ?

Tal vez si se usa la otra estructura esto nos lleve a otra parte, no estoy seguro pero parece tener algo de sentido.

PD: De encontrar mas información seguiré colaborando en lo que pueda, en el tiempo que pueda.

Saludos.
Chicos, os voy a pedir un favor. Como ya teneis hecho casi todo y parece que solo falta sincronización me preguntaba si podriais subir una versión compilada con los últimos cambios y postearlo en el hilo de debate y testers para que todos vayamos haciendo pruebas.

Desde ya pido a la gente que por favor si suben las cosas y haceis pruebas no lo posteeis aquí sino en el hilo de debate y testers:

hilo_debate-y-testers-psgroove-en-psp_1480315_s950
(mensaje borrado)
aerox150 está baneado por "utilizar clones para saltarse baneo temporal"
Se20 escribió:Chicos, os voy a pedir un favor. Como ya teneis hecho casi todo y parece que solo falta sincronización me preguntaba si podriais subir una versión compilada con los últimos cambios y postearlo en el hilo de debate y testers para que todos vayamos haciendo pruebas.

Desde ya pido a la gente que por favor si suben las cosas y haceis pruebas no lo posteeis aquí sino en el hilo de debate y testers:

hilo_debate-y-testers-psgroove-en-psp_1480315_s950


Me parece bien, pero por ahora por lo menos en mi parte lo unico que he compilado son pequeños cambios que yo mismo he probado, en caso de un cambio de mayor gravedad porsupuesto pondre los binarios para que lo prueben y me digan como va.

Wuepe, ya encontre la estructura nueva en "hub.h" pero aun asi me pregunto, ¿por que no usar la que ya esta declarada en el SDK?, de hecho me puse a revisar en el codigo de HostCore / USBHostfs y en "main.c" vi que no utiliza en ningun momento sceUsbbdReqSend() sino que utiliza sceUsbbdReqRecv() y la estructura usada es la del SDK ( UsbdDeviceReq ) y no rellena todos sus miembros, solo los necesarios.

Por otra parte HostCore utiliza "memset(&g_bulkout_req, 0, sizeof(g_bulkout_req));" para rellenar el bloque de memoria de la estructura antes de usarla.

Me di a la tarea de probar cambiando la linea "422" de "hub.c" a lo siguiente:

        //int res = sceUsbbdReqSend (&g_reportrequest);
        int res = sceUsbbdReqRecv (&g_reportrequest);


cuando compile el PRX y lo copie al PSP y realize los pasos a seguir con el PS3 y luego que el PS3 es detectado por PSPGroove comienza la conexion de USB pero luego desconecta y sigue en un "Loop" indefinido, conectando y desconectando USB, podrias revisar eso luego haber por que se queda en ese loop?.

EDIT: El "Loop" de que hablo es el siguiente (asi se muestra en el PSP luego de detectar la PS3 y comenzar el proceso)...

...
USB Conectado a velocidad FULL...OK
HUB Descriptor OKUSB Desconectado
USB Conectado a velocidad FULL...OK
HUB Descriptor OK USB Desconectado
USB Conectado a velocidad FULL...OK
HUB Descriptor OK USB Desconectado
...


y si no lo desconecto sigue por ahi en el "Loop"

Saludos.
Ya te queda poco wuepe,,sigue asin makina animo
me tomo la libertad de cuotearte, entre post de animo y demas parafernalia es de agradecer cada uno de tus post aportando informacion, muchisimas gracias compañero, a ti y a todo el que aporta algo de conocimiento..sois unos cracks..ojala no se ensuciara tanto el hilo y solo os permitieran escribir a vosotros.


CaptainCPS-X escribió:ya encontre la estructura nueva en "hub.h" pero aun asi me pregunto, ¿por que no usar la que ya esta declarada en el SDK?, de hecho me puse a revisar en el codigo de HostCore / USBHostfs y en "main.c" vi que no utiliza en ningun momento sceUsbbdReqSend() sino que utiliza sceUsbbdReqRecv() y la estructura usada es la del SDK ( UsbdDeviceReq ) y no rellena todos sus miembros, solo los necesarios.

Por otra parte HostCore utiliza "memset(&g_bulkout_req, 0, sizeof(g_bulkout_req));" para rellenar el bloque de memoria de la estructura antes de usarla.

Me di a la tarea de probar cambiando la linea "422" de "hub.c" a lo siguiente:

        //int res = sceUsbbdReqSend (&g_reportrequest);
        int res = sceUsbbdReqRecv (&g_reportrequest);


cuando compile el PRX y lo copie al PSP y realize los pasos a seguir con el PS3 y luego que el PS3 es detectado por PSPGroove comienza la conexion de USB pero luego desconecta y sigue en un "Loop" indefinido, conectando y desconectando USB, podrias revisar eso luego haber por que se queda en ese loop?.

EDIT: El "Loop" de que hablo es el siguiente (asi se muestra en el PSP luego de detectar la PS3 y comenzar el proceso)...

...
USB Conectado a velocidad FULL...OK
HUB Descriptor OKUSB Desconectado
USB Conectado a velocidad FULL...OK
HUB Descriptor OK USB Desconectado
USB Conectado a velocidad FULL...OK
HUB Descriptor OK USB Desconectado
...


y si no lo desconecto sigue por ahi en el "Loop"

Saludos.
CaptainCPS-X escribió:
Se20 escribió:Chicos, os voy a pedir un favor. Como ya teneis hecho casi todo y parece que solo falta sincronización me preguntaba si podriais subir una versión compilada con los últimos cambios y postearlo en el hilo de debate y testers para que todos vayamos haciendo pruebas.

Desde ya pido a la gente que por favor si suben las cosas y haceis pruebas no lo posteeis aquí sino en el hilo de debate y testers:

hilo_debate-y-testers-psgroove-en-psp_1480315_s950


Me parece bien, pero por ahora por lo menos en mi parte lo unico que he compilado son pequeños cambios que yo mismo he probado, en caso de un cambio de mayor gravedad porsupuesto pondre los binarios para que lo prueben y me digan como va.

Wuepe, ya encontre la estructura nueva en "hub.h" pero aun asi me pregunto, ¿por que no usar la que ya esta declarada en el SDK?, de hecho me puse a revisar en el codigo de HostCore / USBHostfs y en "main.c" vi que no utiliza en ningun momento sceUsbbdReqSend() sino que utiliza sceUsbbdReqRecv() y la estructura usada es la del SDK ( UsbdDeviceReq ) y no rellena todos sus miembros, solo los necesarios.

Por otra parte HostCore utiliza "memset(&g_bulkout_req, 0, sizeof(g_bulkout_req));" para rellenar el bloque de memoria de la estructura antes de usarla.

Me di a la tarea de probar cambiando la linea "422" de "hub.c" a lo siguiente:

        //int res = sceUsbbdReqSend (&g_reportrequest);
        int res = sceUsbbdReqRecv (&g_reportrequest);


cuando compile el PRX y lo copie al PSP y realize los pasos a seguir con el PS3 y luego que el PS3 es detectado por PSPGroove comienza la conexion de USB pero luego desconecta y sigue en un "Loop" indefinido, conectando y desconectando USB, podrias revisar eso luego haber por que se queda en ese loop?.

EDIT: El "Loop" de que hablo es el siguiente (asi se muestra en el PSP luego de detectar la PS3 y comenzar el proceso)...

...
USB Conectado a velocidad FULL...OK
HUB Descriptor OKUSB Desconectado
USB Conectado a velocidad FULL...OK
HUB Descriptor OK USB Desconectado
USB Conectado a velocidad FULL...OK
HUB Descriptor OK USB Desconectado
...


y si no lo desconecto sigue por ahi en el "Loop"

Saludos.


Tienes que responder al descriptor y a los puertos con sceUsbbdReqSend, si respondes con sceUsbbdReqRecv, en realidad no le respondes el descriptor que te pide, y por ello te desconecta el hub.

Tiene que ser sceUsbbdReqSend, y luego la estructura, puedes usar la original del sdk, o la que planteo, que es lo mismo, solo con los atributos cambiado de nombre, que en el sdk pone unknow(desconocido)
como lo llevas wuepe??? eres el amo tio , por cierto m alegro que estes de nuevo por aqui CaptainCPS-X no le echeis caso amas de uno, qe hay muchos como yo , que admiramos vuestro curro que os estais pegando.

PD: cuando acabeis pasa cuenta de paypal para donaciones,un salud!
davidbg22 escribió:como lo llevas wuepe??? eres el amo tio , por cierto m alegro que estes de nuevo por aqui CaptainCPS-X no le echeis caso amas de uno, qe hay muchos como yo , que admiramos vuestro curro que os estais pegando.

PD: cuando acabeis pasa cuenta de paypal para donaciones,un salud!



+1
bueno una pequeña duda, estoy intentando sacar informacion sobre los modulos prx cargados cuando esta el psgroove en ejecucion, pero solo me muestra 2: sceKernelLibrary y PSP3JB (solo tengo una psp slim [mad] ), ¿es esto normal o deberia mostrarme mas modulos? de todos modos pongo aqui el codigo fuente de la funcion:
void dumpModuleList(){
   int m_ids[100], m_count, i,j;
   memset( m_ids, 0, 400 );
   sceKernelGetModuleIdList( m_ids, 400, &m_count );
   printf( "%d module found!\n", m_count );
   for( i = 0; i < m_count; i ++ )
   {
   
      memset(&m_info, 0, sizeof(SceKernelModuleInfo));
      m_info.size = sizeof(SceKernelModuleInfo);
      sceKernelQueryModuleInfo(m_ids[i], &m_info);

      printf("Module Name: %s\n", m_info.name);
      printf("Entry Addr:  0x%08x\n", m_info.entry_addr);
      printf("GP Value:    0x%08x\n", m_info.gp_value);
      printf("Text Addr:   0x%08x\n", m_info.text_addr);
      printf("Text Size:   %d\n", m_info.text_size);
      printf("Data Size:   %d\n", m_info.data_size);
      printf("BSS Size:    %d\n", m_info.bss_size);
      printf("Total Size:  %d\n", m_info.text_size + m_info.data_size + m_info.bss_size);
      printf("Attribute:   0x%04x\n", (int)m_info.attribute);
      for (j = 0; j <m_info.nsegment; j++)
         {
            printf("    Seg %d Addr: 0x%08x\n", j, m_info.segmentaddr[j]);
            printf("    Seg %d Size: 0x%08x (%d)\n", j, m_info.segmentsize[j], m_info.segmentsize[j]);
         }
      
      if(i!= m_count-1){
         while (1) {
            sceCtrlReadBufferPositive(&pad,1);
            if ( pad.Buttons & PSP_CTRL_CROSS ) { cls(); break; }       
         }   
         zzz(10);
      }
   }
}


edito: el codigo lo ejecuto en modo kernel, por si acaso [carcajad]
   u32 k1;
   k1 = pspSdkSetK1(0);
   
   dumpModuleList();

pspSdkSetK1(k1);
(mensaje borrado)
Hay tres modos de enviar datos por usb.
Mediante Control Mode, Feature Report y Interrupt Mode.

Para mandar la orden de cambio de puerto, hay que usar el Interrupt Mode.

El Feature report, corresponde al sceUsbbdReqSend del sdk.

En el sdk no viene el método interrupt para enviar datos por usb, aunque parece ser que se podría usar el write de ficheros.

Quedaría algo así, en las librerías de windows.
Result=WriteFile(WriteHandle,bufferU,DIMBUF,&BytesWritten,NULL);
lo mismo con un poco de espera se podra testear en una semana o dos.
wuepe escribió:Hay tres modos de enviar datos por usb.
Mediante Control Mode, Feature Report y Interrupt Mode.

Para mandar la orden de cambio de puerto, hay que usar el Interrupt Mode.

El Feature report, corresponde al sceUsbbdReqSend del sdk.

En el sdk no viene el método interrupt para enviar datos por usb, aunque parece ser que se podría usar el write de ficheros.

Quedaría algo así, en las librerías de windows.
Result=WriteFile(WriteHandle,bufferU,DIMBUF,&BytesWritten,NULL);


Interesante, me fui a google y encontre info sobre eso que mencionas y de hecho segui buscando mas informacion especifica sobre que sucede cuando un dispositivo se conecta en algun puerto de un hub.

Fuente: ( http://www.sss-mag.com/usb.html )

When a device is connected, it also sends to the host descriptor information on the types of endpoints in the device, the type of data transfer it uses, size of data packets, endpoint addresses within the device, and if used, the time required between data transfers.

The following describes a typical data flow for a device when it is initially plugged into a host's bus while the host is active. Remember here that the host has an internal USB hub, and additional hubs may be connected downstream from the host's hub.

1. The host recognizes that a device has been attached to one of its USB hubs. It realizes this by a simple resistive divider that is connected to the differential data pair of wires in the USB bus. These resistors are inside the USB hubs and devices.

2. The host sends a Get_Port_Status request to the hub to find out more about what has been plugged in. It could be another hub, a device connected directly to the host hub, or a device that has been plugged into one of the downstream hubs.

3. After receiving a response from the hub, the host issues a Set_Port_Feature command in which the hub issues a reset over the data pair but only to the newly connected device on the USB bus.

4. The host then checks to see if the device has come out of the reset state by issuing a Get_Port_Status command to the hub. After reset, the device is in the Default state and can only draw a maximum of 100mA. In Default state, the device can communicate with the host through Endpoint 0.

5. The hub now detects the device's speed by using the resistive dividers that are attached to the USB bus. The hub sends the speed of this device back to the host.

6. The host then sends a Get_Descriptor command to the hub in which the hub gets the packet size needed from this particular device and sends the result back to the host.

7. The host now issues a Set_Address command to the hub which sends this information to the device. The device in turn acknowledges the command back through the hub to the host and sets up this address internally.

8. To learn more about this device, the host sends a Get_Descriptor command to the address that the device has been given. The information that is returned to the host consists of various details of the device that the host needs to know for its operation. These queries by the host continue two more times to retrieve all the information needed.

9. Based on the information received from the device, the host determines the best device driver to use for communications with it.

10. The device driver in the host now takes over by requesting a Set_Configuration command. There can be several configurations for one device, and the device driver determines which to use based on information received from the device in response to the Get_Descriptor command.

11. The device is now ready for use.


Saludos.
1482 respuestas