Pequeño "try again" con el port de Bennu a GP2X

Started by Drumpi, March 13, 2010, 01:53:39 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

Bueno, al menos parece que la cosa funciona, que era lo que quería saber. Ahora toca:
-Cambiar el id de la consola para que reconozca la GP2X en lugar de WIZ.
-Añadir librerías aceleradas y toda la pesca de librerías optimizadas, aceleración del propio HW (overclock, RAM timings...).
-Arreglar los diversos fallos, aunque eso me temo que es cosa de las librerías de sonido, no del propio Bennu.

Yo también tengo karmas que dar :)
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)

Drumpi

Bueno, no debería escribir esto, pero no tengo sueño y me aburro mucho.

Esta tarde le he dado un empujoncito al tema, un pequeño avance para quedarme donde estaba. Lo que quiero decir es que he descargado la última versión de Bennu del SVN (vivan las aplicaciones portables) y he compilado la r147 para el firm oficial de GP2X. Ya está, sin arreglos, añadidos ni nada.
He estado mirando si podía poner la opción de static sólo para las librerías de SDL, pero no he visto nada (y como tenga que ir rebuscando por el configure o los makefiles, me muero).

Respecto a los que tenemos firm Open2X, malas noticias: el salto a openssl le ha sentado como un cactus en la silla a mi entorno. Por suerte sólo escuece (mucho), no mata. Sólo tengo que encontrar la forma de compilar la librería e instalarla, como hice en su día con el firm oficial, pero de momento se me ha presentado un error que no he tenido tiempo de arreglar (ni mirar). Algo acerca de que la librería hace cálculos de coma flotante por HW y se había especificado hacerlo por SW y es incompatible... Bueno, que en ese momento tenía que irme a cenar ^^U

Mañana probaré la versión de firm oficial, y si va bien os la subo. La otra requiere más atención por mi parte, así que toca retraso, que aun me tengo que pelear con el empaquetado de CODECs con el RTSC codec package utility de TI antes de que me caduque la licencia gratuita del entorno de compilación :P
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)

Futu-block

refloto: ¿hay manera de hacer funcionar un juego de Bennu en la gp2x??

FreeYourMind

Pues claro, no te enteras que ya funcionan, grácias al port de Drumpi. Eso si, algo lento y con algunos fallos menores, pero ya dependera de lo que tenga tu juego. El de los caracoles creo que no tendras problemas, ya que la lentitud de los caracoles será soportada por software  ;D

Drumpi

Mientras no intentes hacer andar el SBTime en GP2X, no habrá problemas. No tengo la lista de fallos arreglados desde las versiones compiladas, pero todos los juegos que no usen el modo7 desde hace dos meses, o la mod crypt, deberían funcionar bien o un poco lentos (tened en cuenta que muchos juegos de Bennu se diseñaron para WIZ, no para GP2X).
Estoy pensando en cojer un día y probar a compilar sólo la mod_m7 para echar a andar el SBTime y probar su rendimiento :P

De todas formas, me darán cita para la semana que viene, por lo que es posible que el viernes o el sábado de dicha semana pueda ponerme con algo.
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)

Drumpi

Bueno, de rato en rato y porque me sale barato, que si no no avanzo nada ;D

Vale, después de bajar (aun más) el listón de chistes malos, estoy en disposición de decir que por fin me puedo enfrentar a la compilación de Bennu para GP2X en Linux, ya que nadie con experiencia se pone. De nuevo, recuerdo que lo que voy a intentar es una simple recompilación, nada más. No me pidais que cambie código, parámetros de compilación, etc, porque tengo la misma relación con las toolchains que la que tengo con mi kiosquero: nos vemos de vez en cuando pero no terminamos de conocernos.

Antes de ponerme en harina, hay un par de cosas que me gustaría aclarar... o más bien preguntarle a Splinter.

-¿Por qué la definición de las rutas a las toolchains se encuentra en un fichero aparte y no dentro del mismo makefile, como he visto hacer en varias ocasiones? Es más, algún tutorial que he leido indica que se deben poner ahí.
-A causa de esto, surge la siguiente duda: la última vez me dijiste que con el cygwin/mingw debía invocar al open2x-vars.sh de la siguiente manera:
. ./open2x-vars.sh

Para que al salir de la ejecución del script se mantuvieran los cambios, porque con:
./open2x-vars.sh
la asignación a variables de sistema sólo tenían validez durante la ejecución del script. Entonces, si lo hago como lo he dicho la primera vez ahora en Ubuntu ¿los cambios son permanentes o se borran al cerrar la ventana de comandos? Porque si son permanentes me plantearía añadir las lineas de configure y make al propio script, no quiero tener que volver a cambiarlas porque, simplemente, no sé donde están las toolchains del sistema ^^U

Repito, va a ser un intento, no espereis que funcione, y si lo hace, no prometo que vaya a la velocidad de open2X, se supone que se compila usando las SDL aceleradas por HW de Paeryn, pero ya veremos si no tengo que añadirlas a mano (porque se compilen dinámicamente) y si son compatibles.
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)

Drumpi

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)

FreeYourMind

A ver si arreglas la velocidad, el sonido, el id, etc.  ;D

Futu-block

voy a tener que pasarme a fenix para poder ver resultados en mi negrita...
o al game-editor...

:D

Drumpi

Y yo hacer un cursillo avanzado de Linux, por lo que veo :D :D :D
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

Sipo, son temporales a tu terminal, probado en debian.
Forma rápida de probar, creas un script.sh que haga export HOLA="hola",
lo invocas como te ha dicho . ./script.sh desde un terminal
abres otro terminal y haces echo $HOLA
si no aparece "hola" entonces es que no se exportaron al sistema.
Monstruos Diabólicos

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

Drumpi

Gracias, DCelso (karma). He estado leyendo tutoriales y (en teoría) sé hacer scripts con bucles, ifs, variables y envío/recepción de datos en bash... pero sobre eso no he encontrado mucha información (sólo los métodos de invocación de scripts, no su significado ni funcionamiento) :S
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)

Drumpi

Ya empezamos con los problemas: me dice que no encuentra la zlib. Supuestamente, en Ubuntu la tengo instalada, pero no sé si es que la tengo que compilar aparte y añadirla al devkitpro o que tengo un problema de rutas. No os puedo dar información más exacta porque estoy con windows.
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

 ;D,  yo ya pasé por todo eso, y no te pide la zlib de ubuntu sino la del sdk de gp2x, yo he tenido que hacer lo siguiente:
1.- Bajarme el devkitPro.tar.gz para linux de gp2x de openhandhelds.org y descomprimirlo en /SDKs/devkitGP2X
2.- Bajarme el sdl-libs-211006.zip gp2x de openhandhelds.org y descomprimirlo en /SDKs/devkitGP2X/sdl-libs
3.- Bajarme el codigo fuente openssl-0.9.8q.tar.gz de openssl.org y descomprimirlo en /SDKs/devkitGP2X/src/openssl-0.9.8q
4.- Bajarme el código de bennu en /home/dcelso/workspace_BGD/bennu_devkitGP2X
5.- Copiar caanoo-vars.sh a devkitGP2X-vars.sh y adaptarlo a las rutas del devkit.
    A CFLAGS de devkitGP2X-vars.sh añadir la línea -I/SDKs/devkitGP2X/sdl-libs/include
6.- Compilar openssl, para ello abres un terminal y tienes que poner al principo de PATH  los dos directorios bin que hay en devkitGP2X
export PATH=/SDKs/devkitGP2X/bin:/SDKs/devkitGP2X/arm-linux/bin:$PATH
ejecutar el script devktiGP2X-vars.sh.
y desde el directorio del código openssl hacer ./config no-asm shared.
Esto genera el libcrypto.so que necesita bennu para GP2X, lo copias a /SDKs/devkitGP2X/arm-linux/lib
7.- Copiar los siguientes archivos desde  /SDKs/devkitGP2X/sdl-libs/ a las siguientes rutas
/SDKs/devkitGP2X/arm-linux/lib/libvorbisidec.so.1.0.2
/SDKs/devkitGP2X/arm-linux/lib/libz.a
/SDKs/devkitGP2X/arm-linux/lib/libjpeg.a
/SDKs/devkitGP2X/arm-linux/lib/libjpeg.la
/SDKs/devkitGP2X/arm-linux/lib/libjpeg.so.62.0.0
/SDKs/devkitGP2X/arm-linux/lib/libpng12.a
/SDKs/devkitGP2X/arm-linux/lib/libpng12.so.0.1.2.8
/SDKs/devkitGP2X/arm-linux/lib/libpng.so.3.1.2.8
/SDKs/devkitGP2X/arm-linux/lib/libmad.so.0.2.1
/SDKs/devkitGP2X/arm-linux/lib/libmikmod.so.2.0.4
/SDKs/devkitGP2X/arm-linux/lib/libogg.so.0.5.3
/SDKs/devkitGP2X/arm-linux/lib/libvorbis.so.0.3.1
/SDKs/devkitGP2X/arm-linux/lib/libvorbisfile.so.3.1.1
/SDKs/devkitGP2X/arm-linux/lib/libvorbisenc.so.2.0.2
/SDKs/devkitGP2X/arm-linux/lib/libSDL_mixer-1.2.so.0.2.4
/SDKs/devkitGP2X/arm-linux/lib/libSDL_mixer.a
/SDKs/devkitGP2X/arm-linux/lib/libSDLmain.a
/SDKs/devkitGP2X/arm-linux/lib/libSDL-1.2.so.0.7.2
Y hacer los siguientes enlaces simbólicos a los .so de arriba.
/SDKs/devkitGP2X/arm-linux/lib/libpng.so
/SDKs/devkitGP2X/arm-linux/lib/libSDL.so
/SDKs/devkitGP2X/arm-linux/lib/libvorbis.so
/SDKs/devkitGP2X/arm-linux/lib/libogg.so
/SDKs/devkitGP2X/arm-linux/lib/libvorbisfile.so
/SDKs/devkitGP2X/arm-linux/lib/libmad.so
/SDKs/devkitGP2X/arm-linux/lib/libmikmod.so
/SDKs/devkitGP2X/arm-linux/lib/libvorbisidec.so
/SDKs/devkitGP2X/arm-linux/lib/libvorbisidec.1
/SDKs/devkitGP2X/arm-linux/lib/libvorbisidec.so.1
8- ya con esto abrimos un terminal y nos vamos al codigo fuente de bennu, ejecutamos el script devkitGP2X-vars.sh, y hacemos lo que pone al final de su ejecución, el cd core, ./configure ....etc.

9- esto compila todo el core, pero el directorio modules da un fallo de que no existe SDL_mixer el configure, no lo he podido arreglar de ningunas de las maneras, así que como se que existe y está equivocado el configure :D, he editado el configure para eliminar este chequeo.
así obtienes todo el bgdruntime de bennu para GP2X, la única cosa que tienes que tener en cuenta en tambien copiarte el libcrytpto.so para tu GP2X que fijo que no está, las demás lib deberían de estar, si pide alguna pues es cuestion de ir poniéndoselas.
Monstruos Diabólicos

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

FreeYourMind

O sea, todo eso para nada xDDD
No desesperes, ya estoy incando el diente al port perfecto  ;)