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

#75
Una de cal y otra de arena:

La buena es que ha compilado a la primera, y ha generado hasta la mod_wm.so. Buen trabajo, Splinter, como siempre ;)
La mala es que aunque parece que sigue compilando bien:
Quote from: log1BGDC 1.0.0 (May 20 2010 17:57:21)
Copyright © 2006-2010 SplinterGU (Fenix/BennuGD)
Copyright © 2002-2006 Fenix Team (Fenix)
Copyright © 1999-2002 José Luis Cebrián Pagüe (Fenix)
Bennu Game Development comes with ABSOLUTELY NO WARRANTY;
see COPYING for details

/mnt/sd/Bennu/MotorTileadoV32/librender:4: warning: Variable redeclared ("ALPHA_STEPS")
/mnt/sd/Bennu/MotorTileadoV32/bgdc.import:13: warning: Variable redeclared ("CTYPE")
/mnt/sd/Bennu/MotorTileadoV32/bgdc.import:13: warning: Variable redeclared ("CNUMBER")
/mnt/sd/Bennu/MotorTileadoV32/libscroll:24: warning: Variable redeclared ("CTYPE")
/mnt/sd/Bennu/MotorTileadoV32/libscroll:24: warning: Variable redeclared ("CNUMBER")

File temp1.dcb compiled (122020 bytes):

 Processes                    19
 Global data                4176 bytes
 Local data                  244 bytes
 Private data                612 bytes
 Public data                   0 bytes
 Code                      21720 bytes
 System processes            407
 Globals vars                 29
 Locals vars                  34
 Private vars                102
 Publics vars                  0
 Identifiers                1052
 Structs                      14
 Strings                      81 (806 bytes)

El BGDI sigue sin funcionar:

Quote from: err2../bgd-runtime/bgdi: line 61: /usr/bin/sed: No such file or directory
../bgd-runtime/bgdi: line 65: /usr/bin/sed: No such file or directory
../bgd-runtime/bgdi: line 118: cd: /home/Administrator/bennugd144/core/bgdi/src: No such file or directory
../bgd-runtime/bgdi: line 118: /opt/sdkoficial2/bin/arm-gp2x-linux-gcc: No such file or directory

Comprobado que es el BGDI el que hace cosas raras, usandolo con el motor 3D de free, que sólo trae el DCB.
Si necesitas algún log o algun dato más, no dudes en pedirlo.
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

ahhh, porque estas copiando el bgdi que esta en source... tenes que copiar el que esta en src/.libs

siempre que haya un .libs, tenes que copiar los archivos contenidos ahi.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

¿Sabeis esa secuencia en Dragon Ball en que un personaje dice una parida (tontería como un trailer de grande) y todos se caen de espaldas?
Es lo que yo llamo un:

¡¡¡PLONK!!!
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

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

Drumpi

Bueno, acabo de probarlo y... no me ha gustado lo que he visto.

He visto cómo una demo 3D se rompía en pedazos y se quedaba pillada.
He visto cómo en el Echo los ángulos hacían lo que les daba la gana y los size eran gigantes (o sea, la flecha del menú salía disparada por usar x=160+20*sin(angulo), los disparos iban en diagonal si disparaba a la izquierda y no se movían si lo hacía a la derecha (creo que usaba advance), cuando hago el zoom sobre Echo al coger el arma este empieza con un zoom 3 veces más grande y con una rotación de unos 60º, y cuando sale el 1 de "episode 1" con transparencia aumentando de tamaño y desapareciendo, lo hace rotado y con un escalado al triple (eso sí, un escalado perfecto como no lo había visto antes en bennu)).
Y he visto como un The King of Fighters se quedaba casi sin logo e iba a un 90% de su velocidad (comaparado con las pruebas anteriores).

Luego he cogido y me he metido en el modo compatibilidad (una especie de virtual box con una imagen del firm oficial en modo "solo lectura") y...

¡¡¡¡PERFECTO!!!!

En serio, ha funcionado todo a las mil maravillas, ni un problema de los comentados, es más, hasta el sonido funciona el 100% de las veces (frente al 80% del anterior) y SIN NINGÚN TIPO DE LAG.
La única pega es la velocidad, que es bastante menor (el Echo ya va al 50% de su velocidad nada más empezar). Quizás debería probar a meter las SDL aceleradas por HW de Paeryn a ver si mejora la cosa, y buscar alguna forma de overclockear la consola y activar los RAM timings (creo que eso era cosa del mmuhack.o).

Es raro, ya he conseguido una versión para firm oficial y otra para el normal (supuestamente), pero no compatible con ambas ???

De todas formas, es el momento de que alguien con firm oficial haga la prueba de fuego y diga si funciona sin necesidad de libs alternativas ni nada, a pelo.
http://drumpi.se32.com/cosas/bennugd144.zip
Sería sustituir los archivos del runtime y listo, aunque  por si acaso, el GPE "estandar" (o más bien, oficial con ciertas modificaciones) sería algo así:

#!/bin/sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../bgd-runtime
PATH=$PATH:../bgd-runtime

export LD_LIBRARY_PATH
export PATH

echo 2 > /proc/cpu/alignment

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

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


Así que ¡es hora de probar!
Recomiendo http://drumpi.se32.com/games/echo_gp2x.rar que ya debería venir preparado, salvo que hay que cambiar los archivos del runtime, y ver si las lineas export siguen siendo necesarias :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)

SplinterGU

no entendi nada eso que dijiste de las pruebas que se te iban los size, los angulos etc... menos entendi que luego dijiste que funciono todo... vamos a obviar todo esto y quedarnos con lo que funciono...

has dicho que ahora el echo te va al 50% de velocidad... pero si mal no recuerdo en la version con el SDK no oficial, decias que iba casi a la misma velocidad que la wiz... hay algo que no cierra...

podrias explicar un poco mas?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Jejeje, bueno, lo de que funciona o no, cuando alguien lo pruebe en el oficial te lo aclaro.

Respecto a la velocidad, te cuento: el Echo, en la versión del firm Open2X, el primer nivel iba casi a tope, y podía llegar a caer en pantallas con un alto consumo de procesos (como pasa en el segundo nivel, donde hay muchos tiles visibles) a la mitad.
En esta versión cae directamente a la mitad desde el primer nivel cuando tiene que mover el scroll.

Según he leido, las librerías que tiene la GP2X de forma oficial, usan unas SDL algo antiguas, y una serie de librerías que no son óptimas, por lo que la gente sacó una serie de parches sobre los que me tengo que informar ahora. Estas son, por ejemplo, las librerías aceleradas de Paeryn (creo que son unas SDL adaptadas al HW de la consola), o el mmuhack que se usa en el port de Puck de Fenix, a lo que también debería añadir el overclock, que no se puede hacer desde el firm oficial (había que usar algo similar al pollux_set de WIZ).
Por eso la gente no se fiaba del SDK oficial de WIZ, porque todo el mundo aprendió con GP2X que el SDK que se montó la gente por su cuenta era mucho mejor que el que ofrecía GPH.
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

Por favor, necesito un poco de "feedback" para lanzar una versión definitiva.

En fin, te explico, Splinter:
Como sabes, en GP2X hay dos tipos de firmwares: están los oficiales, lanzados por GPH, y se les conoce por su número de release, desde la 1.0.0 hasta la 4.1.1, siendo los más usados la 2.1.2 y la 3.0.0 por ser los más completos y con menos bugs (sobre todo, por permitir redes por el mini-usb que trae de serie), y el 4.0.1 y 4.1.1 en las GP2X F200 (pantalla táctil) según la antiguedad del modelo.
El otro tipo es el firmware Open2X, que es un firm desarrollado por sceners. Tiene muchas ventajas respecto al oficial, empezando por disponer de código fuente, usar compiladores más modernos, librerías más nuevas y añadir utilidades de serie muy interesantes (programa de overclockeo integrado en GMenu2X, activación de aceleración de memoria RAM, mapeo de un joy usb como los botones de la propia GP2X permitiendo que juegos que no usaban mandos externos puedan hacerlo...).

Pues bien, por lo visto hay ciertos problemas de compatibilidad, que son los que estoy teniendo con el port. La idea es que si funciona en el firm oficial debería hacerlo en el open2x (por aquello de retrocompatibilidad y eso), pero de hacerlo al revés no se ha dicho nada y pude comprobar (dolorosamente) que no era compatible.

Vale. Esta vez hemos compilado Bennu con las librerías oficiales aportadas por GPH.
Probando, por ejemplo, Echo, usando el firm open2x me ha pasado lo siguiente ¿recuerdas que cuando Echo consigue un arma, el personaje se coloca en el centro de la pantalla mientras crece hasta ocupar 1/4 de la pantalla? pues a mi me ha pasado que el personaje ha empezado viéndose con un size de 300 y un angle de 60 y se ha puesto a crecer hasta que un único pixel ocupaba toda la pantalla.

¿Está mal? hay otra prueba. El firm open2X, para esos programas que no van, tiene un "modo compatibilidad", que consiste en un archivo imagen que contiene el firm oficial 2.1.1. Lo que hace es similar al virtualbox: virtualizar un firm oficial sobre el firm open2X.
Pues ejecutando el Echo, tal cual, sin cambios ninguno, funciona perfectamente: Echo crece de un tamaño de 16x16 hasta ocupar 1/4 de la pantalla, sin rotaciones.

Quería esperar a que alguien me confirmase que en un firm oficial también iba bien para asegurarme que era cosa de las librerías de open2x. Todos los fallos parecen tener algo que ver con los ángulos (sin, cos, tan) y con el size (y sospecho que con angle). A ver si te puedo hacer un video para que lo veas.
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

#83
lo que veo es que estas intentando hacer una carrera con obstaculos cuando recien estas aprendiendo a caminar...

es dificil explicar ciertas cosas cuando el nivel es inicial...

voy a intentar explicar el problema lo mas simple que pueda.

las librerias .so son librerias dinamicas, por lo general, las librerias reales son nombrelibreria.version, por ejemplo, libstdc++.so.6, esto es libstdc++ version 6. Luego normalmente existe un link con el nombre libstdc++.so que apunta a la lib real. Tambien por lo general, las librerias dinamicas estan asociadas a la libreria del kernel, por lo que si cambias el kernel las librerias dejan de funcionar... por eso es logico que tu programa no funcione si lo compilaste para un kernel diferente o incluso para una version de libreria diferente.
Lo que necesitas es tener coherencia entre las librerias en tu kernel y las librerias en tu SDK (crosscompiler).

Posiblemente necesites el kernel que corresponda a tu SDK, o a la inversa.

Como digo, el problema es que necesitas recorrer el camino paso a paso, desde el inicio... puedes preguntar todo lo que quieras, pero muchas veces no podras entenderlo correctamente sin tener ciertos conceptos basicos que aprendes recorriendo el camino paso a paso.

intenta buscar en google agregando la palabra "tutorial", a mi me da muy buenos resultados siempre que necesito aprender algo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Lo de la versión del kernel no lo tenía yo tan claro (suponía que al linkarse dinámicamente este tipo de problemas no existía porque siempre se hace retrocompatible, cosa con la que me están machacando continuamente en el proyecto como digo en mi último mensaje del hilo de caracoladas), pero el funcionamiento de las .so y del enlazado con las .so.X ya me di cuenta la primera vez que nos pusimos a compilar bennu.

Lo que ha pasado aquí es que me he desesperado pidiendo un port de Bennu para Gp2x, después de oir cosas como "basta con recompilar", "las librerías son casi las mismas que las de wiz", "el entorno viene preparado para usarlo" y luego NADIE ha tenido 5 minutos para demostrarlo. Así que o lo hacía yo o no lo hacía nadie, y claro ¿qué se puede esperar de alguien que sólo ha programado en C++ cogido de la mano y con un IDE preinstalado que funciona presionando un botón? (¿he comentado ya que tardé dos meses y medio en instalar el dichoso IDE en mi PC hasta que funcionó medio bien?).

Tengo ese problema, quiero correr sin saber andar, y pregunto más de lo que debiera porque me desespero buscando, pero creo que aprendo rápido, pillo las cosas apenas me las explican, y además insisto y pruebo mil combinaciones antes de darme por vencido (hoy he rechazado mi hora de consola probando cosas para echar a andar la red USB de mi BB).

Espero que sepas disculparme si te he molestado o te he ofendido o cualquier otro tipo de agravio. Símplemente es que este port es lo único que avanza medio bien (al menos avanza, que es lo que me da ánimos). Si este port da problemas, lo otro me está dando tres veces más, y tengo cinco frentes abiertos a la vez con la esperanza de que alguno funcione.

En serio, necesito salir a la calle a que me de el aire ^^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)

SplinterGU

no, no me has ofendido para nada... espero no lo haya hecho yo contigo...

deberia bastar con recompilar, solo que tenes que tener el SDK adecuado...

volviendo al tema, fijate si existe alguna libstdc++.so.* en la consola, deberia estar en /usr/lib, otros lugares posibles serian /usr/local/lib...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

He llegado tarde ? Tengo aqui mis gp's con el firmawre oficial derretiendose para probar el port :)

FreeYourMind

#87
Tus 50 karmas se estan cociendo.....

Firmware 1.2.1 --> Funciona pero sin sonido !!!

Firmware 4.1.0 --> Aparentemente todo funciona perfectamente  (menos el sonido mod, aunque puede ser por problemas de memória) !!!!

;D ;D ;D ;D ;D ;D ;D ;D ;D




SplinterGU

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

Fede

¡Me cagontó! Me he tenido que enterar por GP-spain de que iba la que estabas haciendo.

Mira que he entrado veces en este hilo, y sólo veía que era una cosa supercomplicada. Me parece que esto me pasa por no leer bien desde el principio.

Enhora buena Drumpi, aquí va mi karma.  ;D
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.