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

Hola a todos:

Pues nada, que hoy, leyendo acerca de compilar paquetes de codecs para un OMAP y patatín y patatán, me dio por arrancar en modo administrador e intentar de nuevo compilar Bennu para la negrita, pero esta vez con el SDK oficial.
Y lo he intentado todo, pero el minsys no arranca ni a la de tres: incluso he modificado el PATH y las variabñes que me pedían (y ya sabeis lo miedoso que soy tocando ahí) y ni aun así. Tambien he intentado meter la carpeta bin, la lib y demás al path e intentar ejecutarlo "a pelo", modificando los makefiles... y peor, una pérdida absoluta de tiempo.

Por lo que volví al cygwin. Seguí el proceso de compilación de la última vez, usando una copia de los fuentes (y makefiles) que utilicé la última vez, y cambiando la carpeta del runtime a otra con una copia de los binarios, librerías y demás del SDK que contiene el minsys.
Y nada.

Bueno, os subo el .sh para establecer rutas y variables, y el log del configure, porque dice que no encuentra un fichero (crt1.o) que sólo se encuentra en las toolchains del open2x... y en la carpeta /lib/mingw

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

pero entonces para jugar en la f100 con un juego echo en bennu solo hay que hacer un ejecutable ¿no? o no va asi??

DCelso

umn, no.
Bueno sí, el ejecutable del intérprete de bennugd, pero también necesitas el .dcb de tu juego.
Monstruos Diabólicos

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

Drumpi

Futublog, no te confundas: una cosa es compilar Bennu y otr muy distinta es compilar en/para Bennu. Yo estoy intentando compilar el intérprete Bennu para la consola GP2X, que como está medio abandonada tengo que hacer como Juan Palomo (yo me lo guiso, yo me lo como).

Actualmente, para jugar en la F100 tienes que hacer tu DCB (o no, porque el BGDC también está portado), tener el runtime de Bennu para GP2X (está en las descargas del concurso) y el firm Open2X (que es lo que estoy intentando evitar, a ver si puede funcionar en cualquier firm).

En fin, parece ser que tengo la cosa complicada si no he obtenido respuesta :S
No quiero instalar el SDK para Linux (lo que simplificaría mucho las cosas) porque tengo que hacer el proyecto y no quiero tener conflictos entre las toolchains de GP2X, las del OMAP y las de la madre que...
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

A ver, ¿puedes poner los datos de tu entorno actual de compilación (con el que compilaste la version de gp2x que va) y como lo instalastes?

Monstruos Diabólicos

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

Drumpi

Pues uso el Cygwin del entorno de compilación Open2X que instalé siguiendo las intrucciones, si mal no recuerdo, del tutorial que pusiste tú en este mismo foro. A eso, le añadí en la carpeta c:/cygwin/opt/ otra subcarpeta llamada "sdkoficial" (al mismo nivel que la carpeta open2x) en la que copié varias carpetas del entorno oficial que instalé en su día y que ahora no funciona. Dichas carpetas son:
-arm-linux
-bin
-include
-lib
-libexec
-man
-share

Y cuyo contenido, sin comparar 1:1, es prácticamente idéntico en nombres y extensiones que los de la carpeta open2x.
Respecto a la definición de variables que uso, es la que está arriba, uso una copia de los fuentes que conseguí compilar en su día, y el resultado del configure lo he subido tambien.
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

y cual era el problema que te daba el binario con el firmware original?
Monstruos Diabólicos

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

SplinterGU

el problema es que esta las libs linkean contra otra libc
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

¿Eso tiene algo que ver con la libiconv? porque creo que me salté ese paso, el compilarlo con las librerías oficiales... y que no me acuerdo qué había que hacer una vez compilado.
Por que si no, me pierdo: hay libc.a en la carpeta /lib de la /cygwin, y aunque haya otra en la /lib de las toolchains Open2X, no se hace referencia alguna a ellas en el .sh.
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

#9
puedes probar una cosas un poco rabúa, como tienes ya un entorno que compila el código fuente, pues haz una copia de seguridad de este y sobreescribe todas las dlls, binarios y demás cosas con los del pack oficial de sdk e intenta compilar. A ver si cuela.
con sobreescribir me refiero a descomprimir lo que tenga la sdk oficial encima del sdk de open2x. lib en lib, bin en bin, etc..
Con suerte podrás hacer un make y compilar con el sdk oficial asi como el que no quiere la cosa.

Pero antes de nada, asegurate de que el entorno actual que tienes compila bien el bennu, no vaya a ser que empiezes a tocar cosas y resulte que  no verificastes antes que el entorno cygwin/open2x que tienes vaya.
Monstruos Diabólicos

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

Futu-block

Quote from: Drumpi on March 13, 2010, 07:11:16 PM
Futublog, no te confundas: una cosa es compilar Bennu y otr muy distinta es compilar en/para Bennu. Yo estoy intentando compilar el intérprete Bennu para la consola GP2X, que como está medio abandonada tengo que hacer como Juan Palomo (yo me lo guiso, yo me lo como).

Actualmente, para jugar en la F100 tienes que hacer tu DCB (o no, porque el BGDC también está portado), tener el runtime de Bennu para GP2X (está en las descargas del concurso) y el firm Open2X (que es lo que estoy intentando evitar, a ver si puede funcionar en cualquier firm).

En fin, parece ser que tengo la cosa complicada si no he obtenido respuesta :S
No quiero instalar el SDK para Linux (lo que simplificaría mucho las cosas) porque tengo que hacer el proyecto y no quiero tener conflictos entre las toolchains de GP2X, las del OMAP y las de la madre que...

buf, nunca debi salir del game-editor, ja ja ja

Drumpi

DCelso: uf, eso es un poco... tendría que ver cómo instalarlo de nuevo, y eso no me asegura que funcione porque ¿y no se sobreescriben todos los ficheros? ¿y si usa un binario del open2x no compatible con el resto?

Bueno, a ver si cuando reinicie vuelvo a compilar la libiconv y funciona, porque de verdad, que no me acuerdo qué se obtenía al hacer eso ni qué se hacía con ello. Recuerdo hasta cómo se tocaba los makefiles, pero ese paso en concreto no (lo cual tiene mérito para haberse hecho en dos noches a las 4 am ^^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)

DCelso

#12
esa es la idea, sobrescribir todo lo que traiga la sdk open2x y por lo de la sdk oficial y si falta algo pues tiraría de la de open2x así te aseguras que el resultado compila y que estás usando todas las libs oficiales y si faltase alguna lib en el paquete oficial pues tirarias de las de open2x.

Por eso te insisto en que primero tengas un entorno open2x que compile bennu, como tenías en antaño. Y cuando lo tengas, zass cambiazo al canto y a recompilar, así tirarías de las libs oficiales de iconv y de libc que son las que parece que te daban problemas :D.

Ya se que es un poco chapu, pero cuando tengas el binario final que funcione, pues ya si quieres pueder ir intentando en hacer un entorno limpio con las sdk oficiales añadiendo lo que te vaya pidiendo poco a poco. :D.
Monstruos Diabólicos

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

Drumpi

Es que entonces arriesgo la integridad del sistema que tengo ahora, que es el que, al menos, compila las versiones para el firm open2X (si, funciona, no lo he tocado).
Supongo que podría hacer una copia y luego machacar...

Pero quiero agotar antes otra vía ¿alguien sabe cómo compilar Bennu a través de Dev-C++? Es que he leido que han sacado un nuevo SDK para WIZ y me acordé que tenía este, que es el oficial.
¿Qué sería? ¿Meterme en la carpeta del BGDC, abrir todos los .c .cpp .h en un proyecto nuevo (¿vacío o ejecutable? supongo que vacío, porque ejecutable me generaría un .gpe) y darle al botón de compilar? ¿y luego repetir el proceso con BGDI y seguir con los módulos uno a uno?
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

Nope, es un poco más complejo, tienes que crear muchos proyectos independientes unos de otros.
Josebas hizo un esquema que tiene a medias que te puede ayudad. (Si al final tiene utilidad y todo :D.)
Primero tienes que buscar todas las external lib que tiene bennu a ver si existen ya compiladas en gp2x.

Segundo para las external lib que no estén compiladas debes de buscar su código fuente y compilarlas para obtener su *.dll necesario para Bennu. Esto es recursivo, es decir puede que una external lib necesite a otra lib que no esté compilada para gp2x y tengas que buscar su código fuente para compilarla y generar el *.dll que necesita tu externa lib.
(Este paso será el que es un montón de rollo a no ser que tengas suerte y te encuentres todo ya en *dll en gp2x)

Tercero para las external lib que ya estaban compiladas en *.dll necesitarás instalar en tu entorno sus "*.h", normalmente vienen en un paquete a parte llamado "developers" ejemplo "dev-Nombrelib.zip".

Cuarto tendrías que crear un proyecto por cada lib*.dll que tiene bennu y compilarlos. Su resultado servirá para los demás. Aqui te puedes encontrar con peculiaridades de tu sistema operativo que te obligarán a cambiar algunos parámetros de configuración de tu entorno para que compile (algunas macros al gcc por ejemplo -DHAVE_BOOLEAN), tienes que configurar tu entorno para que tire de los directorios de "headers" y "lib" de bennu de los que dependa cada lib, y además tienes que enlazar con los lib de los que dependa también.

Quinto tendrías que crear un proyecto por cada *.exe que tiene bennu (bddi, bgdc). Aqui tienes que hacer lo mismo que para los lib.

Sexto tendrías que crear un proyecto por cada mod*.dll que tiene bennu y compilarlos. Aqui tienes que hacer lo mismo para los lib y exe.

Por tanto intentar hacer los dos ultimos paso, podría valer si tienes ya hechos todos los anteriores :D.

De todas formas, eso es una tarea muy peliaguda y pesada ya que tienes que ir uno a uno creando los proyectos devcpp que necesitas. Eso estaría de poca madre tenerlo para la posteridad pero es trabajo de peón :D.

Para eso nacieron las autotools (que más tarde surgió su rival cmake :) ) que sirven para abstraer el usuario la continua reconstrucción de makefiles para cada entorno. Estas se encargan de testear tu sistema y ver qué tienes instalado y qué no tienes instalado y te va avisando  de lo que necesitas ( mas bien obligando a instalar porque sino no puedes seguir compilando :D) y crearte los makefiles necesarios para tu proyecto que bien puede componerse de un solo ejecutable o bien componerse de muchos *.dll, *.a y *.exe.

Esta opción puede ser más viable, generas todos los makefile que necesita el proyecto BennuGD usando las autotools (supongo que autotools está para gp2x), es decir, ejecutar el comando "configure" y cuando no de errores tendrás ya todos los "Makefile" en todos los directorios, ahora abres un proyecto con devcpp y a ver si te pilla los makefiles y puedes compilarlo.
Pero claro, esto ya no vale para mucho porque si hiciste eso lo más cómodo es hacer "make" y obtener los binarios sin necesidad de usar el devcpp :D.

En mi opinión pasar el proyecto Bennu a cmake podría ser una muy buena opción ya que es mas facil de entender y mas facil de usar que autotools y cada vez está para más sistemas :D. Pero hablando con SplinterGU me dijo que no le gustaba cmake y prefería autotools así que por él no se haran los archivos cmake necesarios para compilar el proyecto :D.

Monstruos Diabólicos

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