"Kit" de dudas, desafio para DAXHORDES.

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06

Responder
Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

"Kit" de dudas, desafio para DAXHORDES.

Mensaje por Darthvader38 »

Hola a todos aqui envio un "Kit" de dudas para ver si poco a poco me van ayudando con cada una de ellas...originalmente era dirigido a M0skit0
pero quien sabe y por aqui me puedan ayudar junto con el....asi que aqui va!



--SOBRE prx's:

1- Una funcion declarada en un prx, puede ser usada por otro prx?.

2- En caso de que fuera posible, tiene que ser mediante hilos de ejecucion o algo asi(thread) ,no?.

3- Conoces o tienes alguna idea que me puedas mostrar en un codigo ejemplo de como ejecuto un prx llevado a la RAM primeramente, es decir que

funcion puede ayudarme a hacer esto?.


--SOBRE XMB:

4- Las ISOS se ejecutan siempre desde modo User?

5- Existe alguna funcion o alguna manera de que pueda ejecutar una ISO desde mi codigo? digo, porque me
chocado con plugins que lo hacen...como podria hacerlo?, que debo tener en cuenta?,conoces cual(es) son los prx que permiten cargar ISOs al
sistema, podria usarlos yo de alguna manera?.

6- En caso de que pueda ejecutar ISOS desde mi codigo..,que hay con eso de los driver's M33,Sony NP9660, OE isofs,Normal?, cada driver's provee suspropias funciones para ejecutar isos? o las funciones de ejecutar ISOs se les pasa que driver's usar por parametros o que?.

7- Las funciones que provee el XMB para reproducir video, fotos,musica....pueden ser usadas por otro codigo independiente del XMB?,
es decir, por hombrew?.Seria tambien mediante un hilo de ejecucion?
La pregunta en si, es, si estan disponibles de alguna manera las funciones del sistema para poderla usar? Que debo hacer para lograrlo?, alguna libreria las posee talvez?.

8- el XMB tengo entendido que son un conjunto de modulos... se ejecutan todos en modo User?

9- Como logran algunos plugins, cambiar aspectos (como nombre de los iconos,funciones de ellos...)del XMB sin modificar la flash0?
Es por algun tipo de "parcheo" que hacen en la RAM del equipo en la zona de memoria donde se ubican estos "recursos"? conoces alguna libreria que realice esto?.

10- Conoces de alguna aplicacion que pueda ayudar de visor de memoria RAM mientras estoy en el XMB?

11- Si lograra reitirar funciones e iconos del XMB que no utilice (la mayoria)...crees que el sistema se iniciara mas rapido?...o talvez dependa del metodo que use?O el sistema tiene un tiempo preestablecido de inicio tal vez?

--OTROS:

12- Puedo desde una aplicacion mia ver que valor tiene la direccion de memoria "0x01" por decir una direccion...y que me muestre el valor correctamente aun si esta direccion pertenece a otroprograma que este ejecutandose tambien?
En si la pregunta es, si puedo acceder desde mi programa a ver o talvez hasta cambiar valores que pertenezcan a otros programas independientes del mio?
Que necesito para esto? hay alguna libreria que pueda facilitar este tipo de acceso?conoces cual exactamente?

13- El PSPDEV posee unos ejemplos de menu's graficos que cargan imagenes (.png).Mi problema es que se me hace imposible cargar las imagenes desde
un prx que es la salida que uso al compilar...usando la linea en el MAKEFILE -->
BUILD_PRX =1
...no se si me hago entender...compilo en .prx ,no en eboot.pbp. y uso el mismo
codigo de ejemplo, pero no me carga las imagenes y en vez de eso me devuelve un error (80020148).
Este error del que te hablo me lo devuelve el Irshell que es el programa predilecto que uso para probar las cosas que hago.
Tienes idea de que esta pasando?
Que hago mal?
Es acaso alguna limitacion propia del Irshell?
Tienes alguna recomendacion de plataforma o lo que sea que pueda serme util para hacer este tipo de testeos a la hora de probar algun homebrew o crees que con el Irshell esta bienrealizar las pruebas?
Incluso he extraido el DATA.PSP que posee el eboot.pbp de ejemplo que carga las imagenes correctamente y cuando lo ejecuto con la extension cambiada a .prx desde el Irshell, me devuelve eseerror (80020148).Tienes alguna idea?..A mi entender basado en que la unica diferencia entre ejecutarlo desde el eboot y desde .prx, es que el eboot.pbp posee un archivo "param.SFO", puede ser que este archivo le este indicando al sistema que ejecute el prx que tiene adentro el eboot de alguna manera especifica?Estoy en l cierto?
Conoces de otra libreria que me pueda servir para cargar imagenes como camino alternativo a tomar?

14- Conoces que funcion detiene la ejecucion de todo lo que este haciendo la PSP y ejecute nada mas mi codigo, para despues de este continuar la ejecucion detenida anteriormente?
El plugin FreeCheat lo hace deteniendo el juego y mostrando su menu....tienes idea de como? o conoces tu alguna manera, libreria ..funcion en especifica o algo?

15- Sabes de alguna libreria o funciones, src, que me pueda brindar datos o accedan a informacion sobre la Memory Stick insertada? Datos como la capacidad total..talvez la marca...ID del producto?.

16- Hace unos dias haciendo mis tipicas pruebas de lo que se me ocurre...observe que poniendo el homebrew mio a trabajar junto con el xmb (thread) al iniciar el sistema de la PSP podia acceder a la flash0 y crear ficheros que usa mis software...pero unos instantes despues no podia crear ni borrar nada en la flash0....es como si me hubiera anulado elacceso a esta...puede ser la prioridad con que puse a trabajar el hilo? es que no estoy muy claro si la prioridad que declaro es mejor mientras mas cerca de 1 este o talvez mientras mas alejado? pudo ser esto el causante del problema de no tener despues de unos instantes acceso a la flash0? tienes idea de algo que tengo que tener en cuenta respecto a esto?




Muchos saludos a M0skit0 y todo el grupo de personas que mantienen este sitio con vida!!
Estare como loco esperando respuestas!
Aunque sea por una cuota de una respuesta cada 2 dias! jejeje!! :lol:

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: "Kit" de dudas, desafio para DAXHORDES.

Mensaje por m0skit0 »

:shock: :o :? :lol:

Darthvader38 escribió:1- Una funcion declarada en un prx, puede ser usada por otro prx?.

Sí, de hecho así es como funciona el kernel ;) Para ello necesitas declararla como un exporte (usando el fichero exports.exp). Todos los PRX están obligados a exportar mínimo una función (el punto de entrada): module_start en syslib. Mira el ejemplo sobre PRX en el SDK.

Darthvader38 escribió:2- En caso de que fuera posible, tiene que ser mediante hilos de ejecucion o algo asi(thread) ,no?.

Si tu exportas una función en un PRX digamos A, ésta debe ser llamada desde otro PRX B mediante un hilo, si es a lo que te refieres.

Darthvader38 escribió:3- Conoces o tienes alguna idea que me puedas mostrar en un codigo ejemplo de como ejecuto un prx llevado a la RAM primeramente, es decir que funcion puede ayudarme a hacer esto?.

¿Te refieres a ejecutar un PRX previamente cargado en RAM? No sé para qué querrías hacer eso, ya que puedes cargarlo directamente desde la MS, pero igualmente se puede (sólo en modo kernel): sceKernelLoadModuleBuffer.

Darthvader38 escribió:4- Las ISOS se ejecutan siempre desde modo User?

Claro

Darthvader38 escribió:Existe alguna funcion o alguna manera de que pueda ejecutar una ISO desde mi codigo? digo, porque me
chocado con plugins que lo hacen...como podria hacerlo?, que debo tener en cuenta?,conoces cual(es) son los prx que permiten cargar ISOs al
sistema, podria usarlos yo de alguna manera?.
6- En caso de que pueda ejecutar ISOS desde mi codigo..,que hay con eso de los driver's M33,Sony NP9660, OE isofs,Normal?, cada driver's provee suspropias funciones para ejecutar isos? o las funciones de ejecutar ISOs se les pasa que driver's usar por parametros o que?.

Deberías mirar la documentación del SDK de M33, ahí seguramente habrá funciones para eso, o en todo caso hacer ingeniería inversa de dichos plugins para ver como lo hacen. Yo nunca he trabajado con SDK de M33, así que no tengo ni idea :lol:

Darthvader38 escribió:7- Las funciones que provee el XMB para reproducir video, fotos,musica....pueden ser usadas por otro codigo independiente del XMB?

No creo que haya ningún problema si sabes cómo lo hace el XMB para poder hacerlo tú. Eso sí, deberías cargar los PRX desde flash0:/vsh/ que dan acceso a dichas funciones.

Darthvader38 escribió:Seria tambien mediante un hilo de ejecucion?

Todo se debe hacer mediante hilos, es la forma más segura y compatible.

Darthvader38 escribió:8- el XMB tengo entendido que son un conjunto de modulos... se ejecutan todos en modo User?

No es XMB, es VSH. Y sí, son todos modo usuario.

Darthvader38 escribió:9- Como logran algunos plugins, cambiar aspectos (como nombre de los iconos,funciones de ellos...)del XMB sin modificar la flash0?
Es por algun tipo de "parcheo" que hacen en la RAM del equipo en la zona de memoria donde se ubican estos "recursos"?



Darthvader38 escribió:conoces alguna libreria que realice esto?.

El SDK de M33 puede ofrecer funciones para ello.

Darthvader38 escribió:10- Conoces de alguna aplicacion que pueda ayudar de visor de memoria RAM mientras estoy en el XMB?

PSPLINK, cómo no :mrgreen:

Darthvader38 escribió:11- Si lograra reitirar funciones e iconos del XMB que no utilice (la mayoria)...crees que el sistema se iniciara mas rapido?...o talvez dependa del metodo que use?O el sistema tiene un tiempo preestablecido de inicio tal vez?

Hombre, seguro que depende del método que uses. Lo más rápido sería borrarlos de la flash, porque de otra forma sólo añadirías más código, por tanto lo harías más lento. ¿Tienes pensado algún método en concreto? Y no, no hay ningún tiempo preestablecido, que yo sepa.

Darthvader38 escribió:12- Puedo desde una aplicacion mia ver que valor tiene la direccion de memoria "0x01" por decir una direccion...y que me muestre el valor correctamente aun si esta direccion pertenece a otroprograma que este ejecutandose tambien?

En la PSP no existen programas, sólo módulos e hilos de ejecución. Cualquier hilo corriendo en modo usuario tiene acceso a toda la memoria de usuario (no al kernel), y cualquier hilo modo kernel tiene acceso a toda la memoria. No existe mayor protección de RAM que usuario/kernel.

Darthvader38 escribió:En si la pregunta es, si puedo acceder desde mi programa a ver o talvez hasta cambiar valores que pertenezcan a otros programas independientes del mio?

Claro que sí, así es como se hacen los parcheos (el ChickHEN por ejemplo es eso ;) ). Sólo recuerda que no existen programas en PSP. Tienes que aprender a diferenciar entre PSP y Windows :lol:

Darthvader38 escribió:Que necesito para esto? hay alguna libreria que pueda facilitar este tipo de acceso?conoces cual exactamente?

No necesitas nada más que un puntero :lol:

Código: Seleccionar todo

void* puntero = (void*) 0x08800000;

por ejemplo :oki:

Darthvader38 escribió:pero no me carga las imagenes y en vez de eso me devuelve un error (80020148). Este error del que te hablo me lo devuelve el Irshell

No, el error te lo devuelve el kernel de la PSP, y se trata de SCE_KERNEL_ERROR_UNSUPPORTED_PRX_TYPE (http://psp.jim.sh/pspsdk-doc/pspkerror_8h-source.html), es decir, ese tipo de PRX no está soportado. ¿Has probado a ejecutarlo como homebrew normal? ¿Qué tienes puesto en PSP_MODULE_INFO?

Darthvader38 escribió:Tienes alguna recomendacion de plataforma o lo que sea que pueda serme util para hacer este tipo de testeos a la hora de probar algun homebrew o crees que con el Irshell esta bienrealizar las pruebas?

¿IrShell para qué? Para serte sincero, jamás lo he usado :lol: ¿Por qué no haces las pruebas como un homebrew normal con psplink?

Darthvader38 escribió:Incluso he extraido el DATA.PSP que posee el eboot.pbp de ejemplo que carga las imagenes correctamente y cuando lo ejecuto con la extension cambiada a .prx desde el Irshell

Como te digo, nunca he usado IrShell. Prueba como homebrew normal.

Darthvader38 escribió:Conoces de otra libreria que me pueda servir para cargar imagenes como camino alternativo a tomar?

Yo no soy dado a programar juegos ni asuntos de librerías. A lo mejor otros desarrolladores como soulless o wololo te serían de mucha más ayuda en estos temas.

Darthvader38 escribió:Conoces que funcion detiene la ejecucion de todo lo que este haciendo la PSP y ejecute nada mas mi codigo, para despues de este continuar la ejecucion detenida anteriormente?

Si quieres detener todo, debes usar sceKernelCpuSuspendIntr, que suspende todas las interrupciones. Cuando acabes, ejecutas sceKernelCpuResumeIntr para reestablecer las interrupciones.

Darthvader38 escribió:El plugin FreeCheat lo hace deteniendo el juego y mostrando su menu....tienes idea de como? o conoces tu alguna manera, libreria ..funcion en especifica o algo?

Eso lo hago yo también en mi plugin traductor: http://rapidshare.com/files/353118225/T ... rce.tar.gz

Darthvader38 escribió:15- Sabes de alguna libreria o funciones, src, que me pueda brindar datos o accedan a informacion sobre la Memory Stick insertada? Datos como la capacidad total..talvez la marca...ID del producto?.

No, nunca he trabajado con ello, pero creo que con esto te vale ;) : http://hitmen.c02.at/files/yapspd/psp_d ... html#sec29

Darthvader38 escribió:16- Hace unos dias haciendo mis tipicas pruebas de lo que se me ocurre...observe que poniendo el homebrew mio a trabajar junto con el xmb (thread) al iniciar el sistema de la PSP podia acceder a la flash0 y crear ficheros que usa mis software...pero unos instantes despues no podia crear ni borrar nada en la flash0....es como si me hubiera anulado elacceso a esta...puede ser la prioridad con que puse a trabajar el hilo? es que no estoy muy claro si la prioridad que declaro es mejor mientras mas cerca de 1 este o talvez mientras mas alejado? pudo ser esto el causante del problema de no tener despues de unos instantes acceso a la flash0? tienes idea de algo que tengo que tener en cuenta respecto a esto?

No, el problema es que el VSH desactiva el modo escritura de la NAND, por eso ya no puedes escribir nada (ni tu PRX ni ningún otro) hasta que no se vuelva a activar. La verdad, no sé cómo se activa el modo escritura en la flash (soy de los que piensa de que la flash no se toca), pero sí recuerdo una discusión sobre que era usando sceIoDevctl. Creo que haciendo un pequeño esfuerzo de ingeniería inversa sobre homebrews que activen el modo escritura en la flash podrás averiguarlo.

Darthvader38 escribió:Aunque sea por una cuota de una respuesta cada 2 dias! jejeje!! :lol:

Bueno, no te he podido responder a todo, pero más vale malo conocido que bueno por conocer :juasjuas:
Imagen

Avatar de Usuario
largeroliker
Administrador
Administrador
Mensajes: 8283
Registrado: 03 Sep 2009, 09:46
PSN ID: larger0o
Gamertag Xbox Live: larger0o
Steam ID: larger0o
Twitter: larger0o
Ubicación: Málaga
Contactar:

Re: "Kit" de dudas, desafio para DAXHORDES.

Mensaje por largeroliker »

Arf, me he quedao a la mitad, no podía más :lol:

Darthvader38 escribió:6- En caso de que pueda ejecutar ISOS desde mi codigo..,que hay con eso de los driver's M33,Sony NP9660, OE isofs,Normal?, cada driver's provee suspropias funciones para ejecutar isos? o las funciones de ejecutar ISOs se les pasa que driver's usar por parametros o que?.

Yo entiendo que cada driver ejecuta la ISO de una manera distinta, algo así como los pops de cada firmware. Si te fijas cada driver es un módulo en la f0 :)

Saludos! ;)
Imagen
Steam Deck · Xbox Series X · PS5 · Switch · PS Vita · WiiU · PS3 · new 3DS XL · Xbox 360 · PSP · PS2

soulless
Desarrollador
Desarrollador
Mensajes: 64
Registrado: 23 Oct 2009, 07:56

Re: "Kit" de dudas, desafio para DAXHORDES.

Mensaje por soulless »

Para activar el modo lectura/escritura en la flash0 (aunque, al igual que m0skit0, pienso que no se debería tocar la flash0, a menos que sea un CFW, claro):

Código: Seleccionar todo

sceIoUnassign("flash0:");
sceIoAssign("flash0:", "lflash0:0,0", "flashfat0:", IOASSIGN_RDWR, NULL, 0);


Ambas funciones devolverían un valor menor que cero si no puede ejecutar su cometido.

Sobre lo de las imágenes, no he trabajado con imágenes desde el XMB, pero el error que te da es de "Tipo de PRX no soportado", así que pueden ser otros factores que conlleven a ese error y no el simple hecho de tratar de mostrar una imagen (sería bueno ver el código de esto).

Y, como dice m0skit0, por qué no corres tus pruebas directamente desde el XMB con el PSPLink??? o desde el PSPLink mismo???
"Quiero irme cuando quiero. Es de mal gusto prolongar artificialmente la vida. He hecho mi parte, es hora de irse. Yo lo haré con elegancia." -Albert Einstein.-

Avatar de Usuario
Darthvader38
Enteradillo
Enteradillo
Mensajes: 67
Registrado: 24 Ene 2010, 06:39

Cargar imagenes

Mensaje por Darthvader38 »

Oye el codigo que use para intentar cargar imagenes es el mismo que esta dentro de los ejemplos de Marce82 del
PSPDEV del Kit de desarrollo para torpes v 3. Solo que añadi la linea en el MAKEFILE "BUILD_PRX = 1".
Haber quien tiene idea de esto.....


Saludos!!!! :D

-- Doble Post --

M0skit0 Sabes de algun link donde me pueda descargar el SDK del M33 , y el de GEN? conoces algun link tambien de este?
Es que me recomiendas esto...pero no se si es broma lo de la existencia de un SDK de este tipo por la web.....
pero algo es seguro...o no he buscado "muy" bien ...o....realmente no esta como un vendedor de churros por ahi
para que todos lo consiguieran.... :)


Saludos! :oki:

soulless
Desarrollador
Desarrollador
Mensajes: 64
Registrado: 23 Oct 2009, 07:56

Re: "Kit" de dudas, desafio para DAXHORDES.

Mensaje por soulless »

Es posible que el error del prx de las imagenes sea porque no le estas dando suficiente espacio en al heap o al stack.

El SDK de M33 viene incluido en la descarga del CFW 4.01M33 (si no me equivoco es el SDK de M33 más reciente), del GEN no recuerdo haber visto un SDK.
"Quiero irme cuando quiero. Es de mal gusto prolongar artificialmente la vida. He hecho mi parte, es hora de irse. Yo lo haré con elegancia." -Albert Einstein.-

Avatar de Usuario
Kravenbcn
Administrador
Administrador
Mensajes: 16291
Registrado: 01 Sep 2009, 21:27
PSN ID: Kravenbcn
Twitter: Kravenbcn
Ubicación: Barcelona
Contactar:

Re: "Kit" de dudas, desafio para DAXHORDES.

Mensaje por Kravenbcn »

Correcto, el SDK más reciente es el del 4.01 M33.

Aquí os dejo la descarga: http://www.megaupload.com/?d=RGH4BJL9
No te pierdas nada, sigue a DaXHordes en Twitter, Facebook, Google+ y Youtube

Imagen
¿Quieres formar parte del equipo de DaXHordes.org? Esta es tu oportunidad.
PS3 · PS Vita · PSP

Responder