Anuncios Google

Duda programación

Buenas, estoy intentando hacer una app en MIPS ASM para la PSP, por ahora llevo todo bien. El problema viene cuando tengo que crear una nueva pila, llego hasta el punto de crear una pila de 32 bytes y introducir datos, pero una vez hago un jal a la función no se como que valor tiene el stackpointer para poder sacar datos de la pila

EDITO:

Antes de llamar a la funcion guardo en $s0 el frame pointer ($fp), por lo que una vez llamo a la función puede saber en que dirección esta el marco de la pila ($fp) pero el problema esque no se donde está $sp y por lo tanto no puede sacar datos de la pila de 32 bytes.

Gracias!


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Espero que ya pudiste

Espero que ya pudiste resolver tu problema, ya que lo que intentabas hacer es muy útil. Si te pasas por aquí deja un comentario.

Imagen de AitorDB

By Aitor

Por lo que tengo entendido para programar para PSP solo se puede utilizar C/C++ y Lua, no sabía que se pudiera utilizar MIPS Assembly, pero creo que no es posible, si algún coder de la comunidad nos confirma esto por favor...


Sígueme en Twitter: @Aitor_db

Es perfectamente posible, de

Es perfectamente posible, de hecho el binloader del VHBL y la mayoria de exploits están hechos en ASM.

En verdad cuando compilas C lo que estás haciendo es pasarlo a ASM, a este proceso se le llama compilar, y de ahí obtienes los archivos objeto (.o) y por último se linkean para formar el binario ejecutable.

Mira, este es el código ASM del binloader del VHBL:

/* by xerpi (by Wololo (adapted from Gripshift loader by Matiaz)) */
 
.set noat
.set noreorder
 
nop
 
addiu $a0, $ra, 0xF0	/* filename. If ou change this value, move it in the savegame */
nop
li $a1, 1
li $a2, 31
jal 0x08977BXX		/* sceIoOpen */
nop
 
move $a0, $v0		/* set the return value of the function for arg0 of the next function */
 
lui $a1, 0x08D2  	/* arg1 is 0x08D20000, load address of the binary file */
lui $a2, 1		/* arg2, read 0x10000 bytes from the file */
jal 0x08977BXX      /* sceIoRead */
move $s0, $a0		/* backup $a0 value */
 
jal 0x08977BXX      /* sceIoClose */
move $a0, $s0		/* restore $a0 value */
 
lui $a0, 0x08D2
lui $a1, 0x1
jal 0x08977DXX		/* sceKernelDcacheWritebackAll (sceKernelDcacheWritebackInvalidateAll) */
nop
 
nop
nop
lui $a0, 0x08D2
jr $a0
nop

VHBL?

VHBL? Vita Half Bit Loader? El procesador de la PSVita es un ARM-Cortex A9 no un MIPS...

 

Corrijeme si me equivoco...

 

Saludos!

Estás en lo correcto, pero

Estás en lo correcto, pero quien te ha dicho que el VHBL se ejecuta en un ARM? El ARM emula al MIPS (el emu de la PSP que tiene la Vita), y ahí se ejecuta el VHBL xD

Ya entiendo...

Ya entiendo, ya sabía que la vita tenia emulador de psp pero lo que no sabia era que emulara el procesador, lo emula a 333Mhz?

Saludos!

 

 

Si, y incluso le sobra

Si, y incluso le sobra potencia ya que puede poner filtros adicionales y más cosas xD

Piensa que el "sistema" de la PSP está hecho para MIPS, es código máquina y cada arquitectura tiene el suyo, para poder emular una consola primero se debe emular su CPU.

Pero...

Pero, ¿Puedes usar toda la potencia de la vita, me refiero a los 4 núcleos y toda la CPU...?

 

PD: ¿A cuantos Mhz va la CPU de la Vita? Tengo leido que vá a 800Mhz por núcleo pero que puede llegar a ir a 2000 Mhz... ¿Es cierto o solo es un rumor?

 

Saludos!

No, piensa que es como una

No, piensa que es como una PSP, solo va a un máximo de 33Mhz el emulador.

 

Sí, la PSVita va entre 0,8 y 2GHz.

Entonces

Entonces tampoco podrás controlar ni el Pad trasero ni el segundo joystick, ni la pantalla tactil, ni los sensores... (igual puedes controlar la cámara trasera)

Te quedaría una PSP, pero más grande y con otro diseño

 

PD: Pusiste 33 Mhz...

 

Saludos!

Pero es que es una PSP el

Pero es que es una PSP el emulador, y nada más!

entonces

entonces si ya tengo psp no merece la pena comprarme una vita.

 

PD: Puedes resolverme una duda, Porqué para emular una plataforma hace falta casi el triple de su potencia?

 

 

WTF? A ver la PSVita tiene

WTF? A ver la PSVita tiene sus juegos y sus cosas, luego los de sony le añadieron un EMULADOR de PSP para poder juegar a los juegos de PSP en la PSVita.

Imagen de Comandillos

Es de lógica

Si tienes una PSP, ¿Para que te vas a comprar una Vita para correr homebrews de PSP?.

No entiendo la lógica, no ganas nada con la Vita. Bueno si, dolores de cabeza y un joystick mas, nada mas interesante. Si la quieres para jugar a juegos de PSVita, pues entonces si.

Y lo de que para emular una plataforma es necesario el triple, bueno, no es necesariamente así, unicamente que el emulador es un interprete de instrucciones de la CPU, y no es lo mismo que interpretes las instrucciones por hardware como instrucciones del procesador, que interpretar esas instrucciones, y ejecutarlas en la CPU real que esta funcionando. Son registros distintos, y eso es lo que hay que manejar.


Vale.

Vale, me ha quedado claro, y supongo que programando para Vita con PSSuite tampoco podré usar todo su hardware al completo...

 

Saludos!

Imagen de Comandillos

Bueno

Ni con PS Suite ni con el SDK oficial, si quieres usar su hardware al completo, hay que ponerse con ASM, y me parece que no habrá un compilador y un linkeador de ASM para el Cortex de la Vita durante un poco de tiempo...


Entonces

Entonces tocará esperar...

 

La última pregunta (que creo que ya me estoy haciendo un poco cansino..): ¿Si programo C# para PSSuite puedo usar los 4 núcleos o solo uno?

 

Saludos!

Imagen de Comandillos

PSSuite

Es una aplicación que te permite desarrollar para la PSVita, pero como ves, cuando las corres en la PSVita las pasas por otro programa. Estas apps estan, encima de que son de plataforma .Net (es mas, esas apps las tienes que desarrollar con MonoDevelop , que es el PS Suite tan mono que hay que usar), usan sandboxing.

Todo esto, y que claro, como ya se ha comentado, PS Suite no es el SDK oficial de la Vita, podrás hacer cosas sencillas, nada alucinante que toque los 4 nucleos.

Se han hecho algunos benchmarks entre PS Suite y el SDK de PSP, y adivina. El SDK de PSP es mas rápido, sencillamente porque es un SDK al 100%.

Saludos


Imagen de Andres_Ne

Xerpi eres taaaaan grande.

Xerpi eres taaaaan grande.

¿LO ESTAS...

!¿LO ESTAS LLAMANDO GORDO?!

Imagen de Andres_Ne

Jajajajajja no la cojiste  eh

Jajajajajja no la cojiste  eh ?

Imagen de Comandillos

El chaval

El chaval parece que no da mas de si xD

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.