Bennu GP2X

Started by FreeYourMind, January 28, 2010, 09:08:15 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

si mas que un patch me pasan un mail describiendo con que cosas modificaron y como, puedo ver de integrar los cambios monoloticos al svn.
un patch esta lindo cuando alguien quiere aplicar un cambio, pero no para analizar los cambios.

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

Drumpi

Probada versión test10:

Empecé con Echo, que tenía ganas de probarlo, así que, mensajes del BGDC:
File echo.dcb compiled (997664 bytes):

  Processes                   157
  Global data                3580 bytes
  Local data                  244 bytes
  Private data               5588 bytes
  Public data                   0 bytes
  Code                     800016 bytes
  System processes            342
  Globals vars                 72
  Locals vars                  34
  Private vars               1116
  Publics vars                  0
  Identifiers                1395
  Structs                      10
  Strings                     239 (2497 bytes)


Sí, se ha generado un DCB, así que a continuación intento ejecutarlo y:

sh-3.2# cat *2.txt
SDL_GP2X: CreateDevice
SDL_GP2X: VideoInit
SDL_GP2X: Physical screen = 320x240 (ilace = 0)
SDL_GP2X: Looking for a mouse
SDL_GP2X: No mice found
SDL_GP2X: Creating cursor 16x16
SDL_GP2X: Allocated WMcursor @ 0x41a7c0 (32)
SDL_GP2X: SurfaceManager allocating 256 bytes
SDL_GP2X: ListModes
SDL_GP2X: Setting video mode 320x240 16 bpp, flags=0
SDL_GP2X: FreeHWSurfaces
SDL_GP2X: InitHWSurfaces 0x4002d800, 5085184
SDL_GP2X: Screen bucket 0x419d84
SDL_GP2X: First free bucket 0x41a7c0 (size = 5085184)
SDL_GP2X: Creating cursor 16x16
SDL_GP2X: Allocated WMcursor @ 0x41aa98 (32)
SDL_GP2X: SurfaceManager allocating 256 bytes
SDL_GP2X: SurfaceManager adding new free bucket of 5084928 bytes @ 0x41aab0
SDL_GP2X: SurfaceManager allocated 256 bytes at 0x4002d800
SDL_SYS_JoystickInit
SDL_GP2X: ListModes
SDL_GP2X: Setting video mode 320x240 16 bpp, flags=80000000
SDL_GP2X: FreeHWSurfaces
SDL_GP2X: Freeing bucket 0x41a7c0 (size 256)
SDL_GP2X: Freeing bucket 0x41aab0 (size 5084928)
SDL_GP2X: InitHWSurfaces 0x4002d800, 5085184
SDL_GP2X: Screen bucket 0x419d84
SDL_GP2X: First free bucket 0x41aab0 (size = 5085184)
SDL_GP2X: Freeing cursor 0x41aa98
SDL_GP2X: SurfaceManager freeing 256 bytes @ 0x4002d800 from bucket 0x41a7c0
SDL_GP2X: merging with next bucket (0x41aab0) making 5085440 bytes
SDL_GP2X: Creating cursor 16x16
SDL_GP2X: Allocated WMcursor @ 0x41a7c0 (32)
SDL_GP2X: SurfaceManager allocating 256 bytes


Hace el amago de arrancar, pero se queda unos segundos en negro y acto seguido, se sale al menu :(
Así que, por si acaso, volví a probar el test de los botones. Ejecutando sólo el BGDI funcionó perfecto y obtuve:

SDL_GP2X: CreateDevice
SDL_GP2X: VideoInit
SDL_GP2X: Physical screen = 320x240 (ilace = 0)
SDL_GP2X: Looking for a mouse
SDL_GP2X: No mice found
SDL_GP2X: Creating cursor 16x16
SDL_GP2X: Allocated WMcursor @ 0x32b878 (32)
SDL_GP2X: SurfaceManager allocating 256 bytes
SDL_GP2X: ListModes
SDL_GP2X: Setting video mode 320x240 16 bpp, flags=0
SDL_GP2X: FreeHWSurfaces
SDL_GP2X: InitHWSurfaces 0x4002d800, 5085184
SDL_GP2X: Screen bucket 0x32adfc
SDL_GP2X: First free bucket 0x32b878 (size = 5085184)
SDL_GP2X: Creating cursor 16x16
SDL_GP2X: Allocated WMcursor @ 0x32b890 (32)
SDL_GP2X: SurfaceManager allocating 256 bytes
SDL_GP2X: SurfaceManager adding new free bucket of 5084928 bytes @ 0x32b8a8
SDL_GP2X: SurfaceManager allocated 256 bytes at 0x4002d800
SDL_SYS_JoystickInit


Así que ejecuté otro script que compilaba y ejecutaba. Sí, compila y ejecuta, pero...
Ejem, no se genera ningún DCB ??? y sin embargo ejecuta ??? ??? Lo he probado tres veces, he borrado incluso el DCB. El script es este:

#!/bin/sh
LD_LIBRARY_PATH_BAK=$LD_LIBRARY_PATH
PATH_BAK=$PATH

LD_LIBRARY_PATH=../bgd-runtime:$LD_LIBRARY_PATH
PATH=../bgd-runtime:$PATH

echo 2 > /proc/cpu/alignment

for prg in *.prg; do
    name=`basename $prg .prg`
    bgdc $prg 1> bgdc_stdout.txt 2>bgdc_stderr.txt
    bgdi $name 1> bgdi_stdout.txt 2>bgdi_stderr.txt
done

sync

LD_LIBRARY_PATH=$LD_LIBRARY_PATH_BAK
PATH=$PATH_BAK

cd /usr/gp2x
exec /usr/gp2x/gp2xmenu


La salida del bgdi_stderr.txt es esta:
SDL_GP2X: CreateDevice
SDL_GP2X: VideoInit
SDL_GP2X: Physica


Pero la del bgdc_stderr.txt... no la puedo leer, el gedit dice que no lo entiende, y un CAT sólo me devuelve el texto "DCB". Parece como si hubiese compilado el DCB y lo hubiese llamado bgdc_stderr.txt. Lo adjunto. El DCB original era de 39'4KB, este de 60KB.
El GPE del Echo es este:

#!/bin/sh

LD_LIBRARY_PATH=../bgd-runtime:$LD_LIBRARY_PATH
PATH=../bgd-runtime:$PATH

export LD_LIBRARY_PATH
export PATH

echo 2 > /proc/cpu/alignment

for prg in *.prg; do
    name=`basename $prg .prg`
    bgdc $prg 1>log1.txt 2>err1.txt
    bgdi $name 1>log2.txt 2>err2.txt
done

cd /usr/gp2x
exec /usr/gp2x/gp2xmenu


PD: aun me queda por probar el DCB generado en el Echo en el Bennu actualizado de Windows, pero ahora estoy en Linux y no puedo ^^U
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

josebita

Hombre, el DCB generado en linux vale igual que el generado en windows :)

Drumpi

Sí, siempre que las versiones coincidan, que no es el caso ;D.

Añado una nota más al misterio: en el firm Open2X, el Echo sigue sin funcionar, y el test funciona ¡¡¡y genera el DCB!!! No sé si tendrá algo que ver el que en el modo compatibilidad no puedo salir del test sin apagar la consola, y que el firm open2X tiene el demonio para forzar el cierre de la aplicación actual y volver al menú.
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

Quote from: Drumpi on January 13, 2011, 06:29:28 PM
Sí, siempre que las versiones coincidan, que no es el caso ;D.

Añado una nota más al misterio: en el firm Open2X, el Echo sigue sin funcionar, y el test funciona ¡¡¡y genera el DCB!!! No sé si tendrá algo que ver el que en el modo compatibilidad no puedo salir del test sin apagar la consola, y que el firm open2X tiene el demonio para forzar el cierre de la aplicación actual y volver al menú.

lamento decir que no, ya hace unas cuantas versiones que no importa con que version se genero el dcb...

corregiste el codigo del prg que tenias mal en el echo?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

josebita

La verdad es que este patch en particular se entiende muy bien :) Si DCelso no te lo explica, por la tarde te lo cuento.

SplinterGU

tendria que recuperar una version anterior del svn... y ando siempre a las corridas.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Drumpi, me da la impresión que el stderr.txt que genera bgdc es el binario, por eso que comentas.
Necesito más tests. Por ejemplo, renombra el archivo ese (que no te abre y parece que tiene el MAGIC DCB) a .dcb e intenta rularlo en windows o linux a ver que pasa.
Y otro test, es quitar el 1> stdout.txt 2>stderr.txt de los scripts e intentarlos lanzar, a ver si por algún motivo la redireccion en la gp2x o tu firmware se está haciendo mal..

Monstruos Diabólicos

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

SplinterGU

cuidado que si generan un dcb con las 2 ultimas versiones del bennu oficial no les va a funcionar con versiones anteriores de bennugd, si funcionara a la inversa, o sea, viejos dcb con la ultima version de bennu.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Splinter, te mandé un privi con el pdf que me pediste.
Por cierto, he descubierto que para psp y gp2x la definición de tus funciones main para bgdc y bgdi dan problemas al usar argv[0].
Resulta que cambiando la definición a int main( int argc, char *argv[] ), se arregla el problema, por eso verás esa modificación en el código que te mandé. Ostras y se me olvidó mandarte las modificaciones del main.c del bgdi, te lo mando en breve también.
Monstruos Diabólicos

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

SplinterGU

la definicion actual es:

int main( int argc, char **argv )

eso te da problemas o warning? porque no deberia dar para nada problemas, es basicamente lo mismo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

eso pensaba yo, pero parece ser que al menos para gp2x y psp no es lo mismo, probablemente tema de lo que ocupa un puntero char o bien de considerar constante uno u otro, no se, la verdad es que si pones la definicion que tienes tu, el bgdi al llegar a argv[0] casca y se cierra y al poner la que yo te digo sigue para adelante y ejecuta bien. Nose, misterios de la ciencia, quizas se pueda solucionar con algún parámetro extraño de bgdc relaccionado con chars, pero probé todos los que vi en el man de gcc sin éxito, así que al final opté por cambiar la definición del main. Si a ti te da igual una que otra, pues pon esta que he visto que funciona, ya sabemos todos que es lo mismo pero a mis pruebas me remito .D.
Monstruos Diabólicos

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

SplinterGU

que va, cambiamos el main como dios manda, siempre uso char *[] para los argv, pero esto estaba en fenix asi, y la verdad que ni lo cambie.

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

Drumpi

Quote from: SplinterGU on January 13, 2011, 07:12:16 PM
Quote from: Drumpi on January 13, 2011, 06:29:28 PM
Sí, siempre que las versiones coincidan, que no es el caso ;D.

Añado una nota más al misterio: en el firm Open2X, el Echo sigue sin funcionar, y el test funciona ¡¡¡y genera el DCB!!! No sé si tendrá algo que ver el que en el modo compatibilidad no puedo salir del test sin apagar la consola, y que el firm open2X tiene el demonio para forzar el cierre de la aplicación actual y volver al menú.

lamento decir que no, ya hace unas cuantas versiones que no importa con que version se genero el dcb...

corregiste el codigo del prg que tenias mal en el echo?

Tendría que revisarlo, pero creo que estas versiones para GP2X no admiten binarios anteriores a la r200.

Sí, corregí el fallo, me lo volvió a decir el stderror en una de las compilaciones y lo cambié.

Miraré a ver qué hace el stderr raro si lo uso con BGDI, pero se me acumulan las pruebas y empiezo a liarme entre versiones ^^U Tampoco es muy cómodo estar encendiendo y apagando la consola, metiendo y sacando la SD, el lector de SD del PC... Como el firm oficial no desmonta la SD y el samba no he conseguido que me funcione con este firm... (en serio, si Bennu funcionase definitivamente en el firm oficial, me cambio al 2.1.2, a menos que pille una de segunda mano casi regalada).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

DCelso

funciona en el firmware original, al menos a free le fue, así que cambia si quieres, asi podemos probar que a ti también te va. :D.
Monstruos Diabólicos

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