BennuGD PSP

Started by DCelso, January 12, 2011, 12:01:56 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

KeoH

Voy a probar a compilar el dcb con la consola. De momento lo he hecho en linux con la version oficial, no con la tuya. Ya encontré mis "apuntes" para psp, los tenia escondidos en una carpeta de Ubuntu One xD. La pagina que me funciono la descarga es la de crocko.com, aunq costó trabajito xD.

En cuanto al firmware .. no me acuerdo hace mil años q la piratee .. pero en informacion de sistema, software de sistema (q me imagino sera eso el firmware xDDD) aparece 5.50 GEN-D2... y la consola no se cual es xDDDD ... en el codigo de barras que tiene abajo lo ultimo que aparece es PSP1004 xDD asi q supongo q sera el modelo 1000 xDDD

Pues eso q con mis apuntes consegui mapear los botones .. me falta hacer la prueba del joy. Tarda como 6 o 8 segundos en arrancar el juego.
Voy a ver si consigo bajar el tetris.


DCelso

Quote from: KeoH on August 05, 2012, 10:18:20 PM
Voy a probar a compilar el dcb con la consola. De momento lo he hecho en linux con la version oficial, no con la tuya. Ya encontré mis "apuntes" para psp, los tenia escondidos en una carpeta de Ubuntu One xD. La pagina que me funciono la descarga es la de crocko.com, aunq costó trabajito xD.

En cuanto al firmware .. no me acuerdo hace mil años q la piratee .. pero en informacion de sistema, software de sistema (q me imagino sera eso el firmware xDDD) aparece 5.50 GEN-D2... y la consola no se cual es xDDDD ... en el codigo de barras que tiene abajo lo ultimo que aparece es PSP1004 xDD asi q supongo q sera el modelo 1000 xDDD

Pues eso q con mis apuntes consegui mapear los botones .. me falta hacer la prueba del joy. Tarda como 6 o 8 segundos en arrancar el juego.
Voy a ver si consigo bajar el tetris.

Umn, interesante, eso de que funcione el dcb creado con la oficial, facilita mucho las cosas :D.
Lo del joistic, tirado. importas mod_joy y defines las siguientes constantes

//PSP Controls
#define PSP_TRIANGLE_BUTTON 0
#define PSP_CIRCLE_BUTTON 1
#define PSP_X_BUTTON 2
#define PSP_SQUARE_BUTTON 3

#define PSP_L_BUTTON 4
#define PSP_R_BUTTON 5

#define PSP_DOWN_BUTTON 6
#define PSP_LEFT_BUTTON 7
#define PSP_UP_BUTTON 8
#define PSP_RIGHT_BUTTON 9

#define PSP_SELECT_BUTTON 10
#define PSP_START_BUTTON 11
//Joystick?
#define PSP_LEFT_RIGHT_AXIS 0
#define PSP_UP_DOWN_AXIS 1

luego ya puedes usar

if(get_joy_button( PSP_UP_BUTTON))
.....
end
[end]
Un truco para poder rular el mismo juego en psp y windows o linux (o cualquier por con soporte de teclado.. :D) es el siguiente:
Defines unas variables para las teclas en caso de psp;
[code]
    //PSP Key layout
    int __A = PSP_X_BUTTON;
    int __B = PSP_SQUARE_BUTTON;
    int __SELECT = PSP_SELECT_BUTTON;
    int __R = PSP_R_BUTTON;
    int __L = PSP_L_BUTTON;
    int __START = PSP_START_BUTTON;
    int __UP = PSP_UP_BUTTON;
    int __DOWN = PSP_DOWN_BUTTON;
    int __LEFT = PSP_LEFT_BUTTON;
    int __RIGHT = PSP_RIGHT_BUTTON;

metes al principio de tu main un if, para saber si estás en  pc y así cambiarlas a teclas.

if(OS_ID == OS_WIN32 || OS_ID == OS_LINUX)
        //Adapt controls to a keyboard
        __A = _control;
        __B = _alt;
        __SELECT = _esc;
        __R = _r;
        __L = _l;
        __START = _enter;
        __UP = _up;
        __DOWN = _down;
        __LEFT = _left;
        __RIGHT = _right;         
    end

y finalmente creas una función que compruebe si es el joystic o la tecla pulsada dependiendo del sistema en que esté rulando el juego.

function checkButton(int buttonID)
begin
    if(OS_ID == OS_PSP)     
        return get_joy_button(buttonID);
    else
        return key(buttonID);
    end
end

y a partir de ahí usar checkButton para saber si hay una tecla pulsada

if(checkButton(__A))
  ......
  end
[end]
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

Quote from: KeoH on August 05, 2012, 10:18:20 PM
---
En cuanto al firmware .. no me acuerdo hace mil años q la piratee .. pero en informacion de sistema, software de sistema (q me imagino sera eso el firmware xDDD) aparece 5.50 GEN-D2... y la consola no se cual es xDDDD ... en el codigo de barras que tiene abajo lo ultimo que aparece es PSP1004 xDD asi q supongo q sera el modelo 1000 xDDD
---
ah todo lo que dices es correcto y  todo igual que la mia que me cascó, que curioso :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

KeoH

Si, así es como tengo las teclas definidas, creo q lo copié de un codigo que dejaste por ahí. Pero cuando declaras las variables __A y __B ... se te han olvidado declarar otras __C y __D para los botones de circulo y triangulo que he añadido, y lo mismo para usar otras teclas en win/linux equivalentes.

El tetris me funciona perfectamente, aunq tarda mas en cargar. y veo mucha pantalla desaprovechada xDDD.

Has hecho pruebas sobre las resoluciones maximas q soporta la psp? 480x272 tengo yo en mis pruebas. Voy a ver si la puedo duplicar sin que se queje la consola xD

DCelso

sí, físicamente esa es la resolución real de la psp (480 x 272 pixels), si pones otra distinta, creo que las SDL de psp te la deforma para mostrarla en 480x272, así que da igual la que pongas, si es una resolución más grande, verás todo mas chico en la psp y si es una resolución mas chica, verás todo más grande en la psp.
kkdvk que no pueda probar. jop.
Por cierto, antes el tetris se colgaba al darle mucha caña, eso de salir, empezar, salir, empezar, mover como un loco, etc, mira a ver si ahora no se cuelga. Pero por lo que dices, parece que al fín tenemos una versión estable para psp (lenta al cargar, pero estable :D, tengo que dedicarle algún tiempo a ver por qué es tan lenta la carga es como si reintentase iniciar un recurso n veces y al ver que no puede sigue, ejemplos de SDL normales sin bennu cargan volados).
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

DCelso, ya estas usando la rama oficial?

con pasar a la rama oficial se solucionaron los problemas de color?

me podrias hacer un resumen de pocas lineas del status? gracias y disculpa que moleste.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

buenas y malas noticias.
ya tengo la psp disponible para pruebas, pero he hecho pruebas con los nuevos binarios usando tu formato de monolítico y da los mismísimos resultados que con la mia, los juegos se paran y bloquean la psp aleatoriamente (aparentemente claro). Asi que mi versión monolítica tampoco era tan mala, va igual.

He probado con custom firmware 5.00m30-4 y 5.00m30-6 con mismos resultados, probaré con el último custom firmware para corroborar que no es culpa de fallos de los custom firmware.

Estoy intentando firmar los binarios, para poder probar en firmwares oficiales, pero sigo creyendo que es algo de alineamiento de datos (como ya pensaba hace un año)

Lo de los colores es porque la psp trabaja al reves que el pc los endianeses, así que algunos formatos de archivos de imagen no se cargaban bien, había que invertir los R-B al leerlos y guardarlos en los map de bennu.

Cuando tenga noticias nuevas, las pegaré, pero vamos por ahora lo veo igual que hace un año. :'(
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

gracias por el resumen.

quiero decir que nunca pense que tu version era mala.

con respecto a los cuelgues de psp y demas, seria bueno probaras ejemplos sin video, o sea, ejecucion, loops con frames, procesos y demas, sin graficos, etc... a ver si es cosa de sonido o sdl.

la idea es acotar un poco los errores.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Exacto. En ello estoy.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

cuando dije sin video, tambien me referia sin teclado, sin sonido y demas... solo probar el motor del "interprete"...

suguiero hacer pruebas (en ejemplos separados y luego combinandolos) con int, short, byte... punteros, etc.... y ver como se comportan en cada caso... la version que pruebes no debe tener compilado modulos de video, sonido, teclado, joys, etc.... simplemente maquina virtual y modulo say... con eso creo que seria suficiente...

imagino que ya lo tenias claro, pero nunca esta demas remarcar para no dejar dudas.

gracias por el esfuerzo que le pones... karma para ti!
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

eso hice con mi versión monolítica, solo con mod say tampoco iba en algunos bucles, tengo que buscar los ejemplos que tenía hace un año y probarlos con tu versión, pero todo eso lleva tiempo. a ver si saco huequitos poco a poco.
Splinter, te adjunto un .patch sobre la última versión de svn, para que veas los cambios que hice al código, son muy pocos ya con la nueva versión monolítica  :D.
Sabes mirar un .patch ¿no?

En resumen los cambios se reducen a los swap
en las imagenes con colores invertidos, en incluir algunas cabeceras que me pedía el compilador y en saltar las partes que no funcionan en psp del código oficial.

Si tienes un hueco échale un vistazo a ver si estoy cometiendo alguna locura que produzca estos errores. :D

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

se como leer un patch...

lo revisare y te comentare...

gracias.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Splinter, lo viste?
Por cierto me he metido en camisa de 11 varas, vi que había una versión más reciente del pspdev, e intentando instalarlo en linux/debian, me he encontrado con un millar de fallos para linux/bash en los scripts de compilación, llevo tres dias arreglando fallos y no consigo instalar por completo el entorno de desarrollo de psp, cagoen, pero bueno, espero que alguno de los cambios que hayan hecho en este último año hayan arreglado mas de un  problema :D.

Mientras estoy probando con el bgdi que generé con el antiguo entorno y  no encuentro un patrón fiable que cuelgue a la psp. parece como algún fallo de no liberación de recursos que haga que la psp se cuelgue cuando llena su memoria o se hace un acceso indebido, y de ahí que siempre se cuelgue en lados distintos. No se no se está fea la cosa.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

vi el parche, si... es para PSP, como bien has dicho y se carga todo el codigo no PSP...

por otro lado, me parece que no es tan necesario que hagas esos parches, segun habia visto, se puede setear el modo de color RGB, BRG, etc, en SDL... no recuerdo donde lo vi... pero recuerdo (o soñe) que se podia hacer... lamentablemente no tengo hardware ni tiempo para hacer pruebas... y por ende menos entusiasmo en hacerlo.

lo de lo liberacion de recursos, a menos que tengas una pista certera de eso, te diria que no hay fugas en ese sentido... claro esta que si tu cargas mapas, sonidos u otros recursos dentro de un proceso y nunca los liberas, seguro que ahi tendras fugas, pero el motor todo lo que reserva, lo libera cuando ya no lo usa.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2