Entorno de compilación GP2x/Wiz

Started by DCelso, August 22, 2009, 02:37:34 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FreeYourMind

Pero pensaba que era un exe, ya que creo que algunos juegos sólo tenian el gpe para iniciar.
Lo voy a mirar, pero lo urgente es que me digas como compilaste Bennu, como ejecutas los makefile, en Gp32 te hago la misma pregunta, hace años que no uso makefiles.

DCelso

pues no se como ayudarte, vas a tener que compilar bennu o cualquier otro ejemplo para mostrar una imagen en pantalla para ver si va.

Si te instalas todo el devkitpro http://sourceforge.net/projects/devkitpro/files/Automated%20Installer/devkitProUpdater-1.5.0.exe/download
vienen ejemplos para gp2x (además de para wii y nds), intenta compilarlos a ver si te van.

Este entorno, devkipro, es más facil de instalar y usar, pero carece de algunas herramientas que necesita bennugd para compilar, así que complicaría su compilación ya que no trae autotools y debes de hacer manualmente los makefiles de compilación de bennu o buscar e instalar unas autotools para el "msys" que viene en el entorno devkitpro. (msys es un equivalente a cygwin que usa este entorno)
Monstruos Diabólicos

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

DCelso

#32
en lo referente a lo comentado, a ver.
El ejemplo hola mundo, su binario resultado final tiene que ser ".gpu"
Luego creas un .gpe, que es un texto que simplemente tiene una línea que es el nombre del .gpu.
Quote

4.- Ya debería de estar listo. Para probarlo se puede hacer lo siguiente.
Crear un archivo "main.c" en c:/cygwin/src/prueba
que ponga lo que quieras, por ejemplo
Code:

int main(){
printf ("hola mundo");
return 0;
}

Abres la línea de comandos cygwin, se verá una ventana tipo terminal de linux.
Desde ahí escribir
Code:

cd /src/prueba
arm-open2x-linux-gcc main.c

Se generará un archivo con el nombre "a.out" que será nuestro ejecutable.
Probar en la consola.

Desde mi punto de vista open2x ofrece la ventaja de estar bajo cygwin pudiendo así usar las autotools que usa bennugd para la compilación.

En devkitpro también se podría hacer pero hay que buscarse por otro lado el programa pkg-config ya que no viene en msys (que es el simulador de linux para esta otra toolchain).
Por ejemplo:
Después de este punto
renombras a.out por holamundo.gpu
depués creas un fichero de texto llamado holamundo.gpe que contenga lo siguiente

holamundo.gpu

así de facil.
Monstruos Diabólicos

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

FreeYourMind

Antes de leer tu post lo habia renombrado a gpu y el resultado es el mismo, entra y se queda en negro la pantalla.
(Lo tonto que soy, editando los gpe para los juegos de bennu en la wiz, y no me di cuenta que en la gp2x era la misma extension).
Voy a mirar tu ejemplo y te cuento.
Grácias.

FreeYourMind

Ya lo probe, ocurre lo mismo (me imagino que lo que hice antes al abrir directamente el Hola.gpu tenia que funcionar tambien).

Drumpi

Si, hay algunos gpe que son ejecutables, pero recuerda que es un sistema Linux y la extensión no es lo importante. El GPE es para que salga en el menu de aplicaciones, pero por norma general, es un script.
Además, al compilar bennu, aunque obtengas un ejecutable, te pasa lo mismo que en windows: si no le metes por comandos el prg/dcb, no te va a compilar/interpretar nada (como mucho te saldrán los nombres de los que han programado Bennu y anteriores y la ayuda de las opciones).

Yo lo compilé ejecutando un .sh que hay en la raiz del código fuente para establecer las variables del sistema y las rutas (este lo tuve que modificar). Después un ./configure en la carpeta core, y un make seguido de un chorizo enorme (al hacer configure sin errores, te dice lo que tienes que poner).
Repetimos configure y make en la carpeta modules y listo... bueno, listo no, porque da mil problemas. Uno que tuve yo es que además necesité descargar y compilar los fuentes de la libiconv. Y tambien cambié un par de cosillas en los makefiles (por ejemplo, quitar la mod_wm porque no se compilaba ni pa'trás).

Si quieres los makefiles... creo que también los puse en gp32spain ¿no fue a ti?
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

Si fue a mi. Eso ya los substitui, lo que falta es la otra lib (version 3 creo) que me pusiste, que no se donde ponerla.

Pero vamos que soy tan despistao que ya no se ni ejecutar el sh. Ponme el comando que tengo que poner en el cygwin a ver si lo ejecuto ahora.
Grácias

DCelso

Me da que redirige la salida de los printf a un archivo (tendrías que buscar algún out.log o así) .
O bien, prueba a hacer un fprintf

int main(){
FILE * archivo;
archivo = fopen("mihistorial.log");
fprintf (archivo,"hola mundo");
fclose(archivo);
return 0;
}

Monstruos Diabólicos

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

FreeYourMind

El ejemplo correcto es así:

#include "stdio.h"

int main()
{
FILE * archivo;
archivo = fopen("mihistorial.log", "rw");
fprintf (archivo,"hola mundo");
fclose(archivo);
return 0;
}
`
pero tampoco funciona, no escribe nada en el log...

FreeYourMind

Mirate este post, al poner el ejemplo SDL tengo el mismo problema del que postea, la referencia SDL_Init:

http://www.gp32x.com/board/index.php?showtopic=45557#entry675129

Drumpi

Quote from: FreeYourMind on January 31, 2010, 12:16:53 AM
Si fue a mi. Eso ya los substitui, lo que falta es la otra lib (version 3 creo) que me pusiste, que no se donde ponerla.

Pero vamos que soy tan despistao que ya no se ni ejecutar el sh. Ponme el comando que tengo que poner en el cygwin a ver si lo ejecuto ahora.
Grácias

La libiconv, una vez compilada.........
.....
Lo siento, no me acuerdo dónde había que ponerla. ¿Cambiaría alguna ruta en algun makefile?

Respecto al .sh no necesitas comandos, creo recordar. Escribes el nombre dentro del cygwin y se ejecuta solo. Si no, que me corrija algún gurú de Linux.
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

#41
Puedes pasarme la carpeta de tu codigo fuente modificado de Bennu ?, o sea, dijiste que todo ocupaba muchos megas, pero no necesito lo demas, sólo la carpeta de código fuente de tu bennu en el cual has ido modificando los ficheros de configuracion, así seria mucho mas fácil porque ya se que el tuyo compila, así que lo intentaba tambien en mi maquina, a ver si compilaba.
Despues y como estoy con la ultima version, pues adaptaba los cambios que ya tienes tambien a esta ultima y seguia a partir de ahí.


EDITO:

Ya ejecute el sh de la raiz, y logicamente me da error en la linea 31:

ln -s `whereis -b pkg-config | sed 's/pkg-config\: //g'` /opt/openwiz/toolchain/arm-openwiz-linux-gnu/bin/pkg-config

ya que no tengo el openwiz, seguramente tambien cambiaste este fichero sh, así que una vez más la mejor solucion será que me pases el src :)

DCelso

Por pasos,
Los "undefined reference", es decir, referencias no definidas se producen porque te falta enlazar tu binario con alguna librería, lo más probable es que en tu caso te falte  "-lSDLmain -lSDL" en ese orden, o bien que no tengas las .dll o .so de SDL en tu path o libpath o ld_library_path.

Con respecto a que te sigue pasando con el ejemplo de fprinft (por cierto, gracias por la correción del ejemplo, lo hice aqui directamente a ciegas :D) entonces ya es que falla algo en el entorno de compilación o bien no tienes el firmware open2x necesario en tu gp2x, si no recuerdo mal, esto le pasaba a drumpi cuando compiló bennugd para gp2x, solo le iba con el firmware open2x, con el original le petaba nosequecosa :D.

Aún así, puede que al ejemplo de mi hola mundo que puse le falte alguna macro de gp2x, voy a averiguarlo mirando los ejemplos del devkitpro.
De todas formas, reitero mi solución de que pruebes a instalarte también el entorno devkitpro, compiles los ejemplos de gp2x y los pruebes en tu gp2x a ver si también les pasa lo mismo. Simplemente es bajar el entorno, abrir una consola, ir al directorio de los ejemplos y hacer make.
Por cierto puedes tener los dos entornos instalados a la vez, es decir, open2x y devkit, por si es eso lo que te asustaba.
Monstruos Diabólicos

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

Drumpi

Okis, te subo lo que tengo, pero te va a pasar lo mismo: esto está compilado con el SDK Open2x por lo que:
ln -s `whereis -b pkg-config | sed 's/pkg-config\: //g'` /opt/openwiz/toolchain/arm-openwiz-linux-gnu/bin/pkg-config
También te dará error. Solución: abre el .sh y cambia las rutas por las de la toolchain que uses. Lo que te subo verás que tiene el .sh de WIZ y el .sh de GP2X para openwiz, verás que hay algunos cambios, básicamente, las rutas a los binarios.

http://drumpi.se32.com/cosas/bennucompil.rar
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

Drumpi, eso no me quedó claro.
Yo tenía entendido que open2x es para compilar para la gp2x f-100 o f-200,(digamos la normal o antigua, sucesora de la gp32). http://es.wikipedia.org/wiki/GP2X
Y que openwiz es para compilar para la gp2x wiz (digamos la última de gamepark, para la que splintergu da soporte oficial, sucesora de la anterior) http://es.wikipedia.org/wiki/GP2X_Wiz

Eso que pones me confunde, parece que usas openwiz para compilar para la gp2x antigua.
Monstruos Diabólicos

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