Iniciar sesión

Ver la versión completa : Compilar GP2X bajo Linux - Hilo de discusion y soluciones :)



D_Skywalk
04/12/2005, 17:24
El objetivo de este tema, es tener un entorno de programacion completo con SDL y todas las librerias necesarias para desarrollar bajo linux de manera comoda y eficiente :)

Como objetivo final una vez tengamos el entorno, pretendo crear paquetes para Debian/Ubuntu (los demas podeis convertir el pkt con alien) para una facil y comoda instalacion ;)

WORK IN PROGRESS


Bueno creo que es momento de ir hablando como empezar a compilar aplicaciones de GP2X bajo linux, yo empece ayer y tambien estuve anoche hasta las tantas intentando compilar algo y por ahora no he tenido suerte :(

Los errores principales me vienen por que nuestros compiladores de devkitpro y demas estan compilados (al parecer al menos los que yo probe) con FP por hardware es decir que si usas FP como nuestro elf no usa FP pues peta xD

Asi que lo que ahora mismo estoy haciendo es intentando compilar un gcc+binutils+glibc usando todo msoft-float. Si alguien cree que no es el camino correcto que lo diga ;)

Bien, despues de probar con unos cuantos scripts que pululaban por los foros de GP32x (y del wiki tb probe) y ver como ninguno ha funcionado realmente, me he tirado al CVS del Open2x y por ahora parece que hay mas suerte...

Solo os va a dar un problema con que no tiene derechos para escribir en /c y en /open2x_gcc, nada que no podais arreglar con un "chmod -R 777 ..."

Debeis tener instalado el soporte para CVS en vuestra distribucion y para compilar os aconsejo gcc 3.4

AVISO: aun no ha terminado de compilar y es posible que esta opcion tampoco funcione (aunque lo dudo).

Pasos necesarios para compilar GCC + GLIBC + BINUTILS de Open2x
- Abrid una consola y ejecutad:

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/open2x login Cuando os pida un password simplemente pulsad [RETURN] y si falla volved a intentarlo...

- Ejecutad y observad gloriosos como se baja comodamente ;)

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/open2x co -P tool-chain

- Ahora entramos en "tool-chain/buildscripts/".

- Ejecutad
sudo ./open2x-gp2x.sh al poco petara diciendonos que no debemos ser root (vale pero nos has creado los directorios :P)

- Ejecutad
chmod -R 777 /c

- Ejecutad
chmod -R 777 /open2x_gcc

- Ejecutad
./open2x-gp2x.sh y os podeis ir a dar una vuelta con la parienta por que el mio lleva desde las 9am y aun no termino xD

[ULTIMA HORA]

Acaba de terminar y el entorno se ha compilado :)

Cross-toolchain build complete. Result in /open2x_gcc/gcc-4.0.2-glibc-2.3.5/arm-open2x-linux.

Cuando intenta al final compilar un ejemplo falla, pero eso lo comentan dentro del SH de construccion (tened en cuenta que trabajamos con un cvs). Voy a compilar algo simple a ver que pasa :?

Un Saludo y espero que este hilo ayude ^^_

Puck2099
04/12/2005, 17:29
Corriendo voy a hacerlo, lo de dejar el pc compilando y darme una vuelta no es algo que me preocupe, como "gentooza" estoy acostumbrado :p

Muchas gracias tío :brindis:

D_Skywalk
04/12/2005, 17:37
Corriendo voy a hacerlo, lo de dejar el pc compilando y darme una vuelta no es algo que me preocupe, como "gentooza" estoy acostumbrado :p

Muchas gracias tío :brindis:

Na, un placer [wei4]

Llevo desde el viernes que me llego la consola leyendo post, foros, listas... y por ahora no he conseguido tener un entorno decente de trabajo asi que me he tirado al "make your self" xD

Un Saludo y a ver si entre todos conseguimos tener funcionando comodamente el entorno :D

efegea
04/12/2005, 17:39
Creo recordar haber visto en las fotos de la BCNparty, en la charla que dio rlyeh se veia el linux de la GP2X arrancando y salia el mensajito de emulacion de coma flotante :loco:

Ademas usando tanto una paquete llamado gcc4-arm que no se de donde salio de una kubuntu que tuve temporalmente, tanto ahora con mi gentoo-amd64 usando crossdev, con ambas he podido compilar el smsplus-sdl y funciona en la GP2X


Eso si no me preguntes como lo consegui que no lo se ni yo :p tuve que compilar algunas cosillas mas y pelearme en los ./configure con los -prefix, los -host y los -disable-xxxx :shock:

Puck2099
04/12/2005, 17:42
Na, un placer [wei4]

Llevo desde el viernes que me llego la consola leyendo post, foros, listas... y por ahora no he conseguido tener un entorno decente de trabajo asi que me he tirado al "make your self" xD

Un Saludo y a ver si entre todos conseguimos tener funcionando comodamente el entorno :D

Yo estoy igual, fíjate que todavía me duran las pilas coreanas en la GP2X, así que imagínate lo que la he usado...

A lo más que he llegado es a compilar usando SDL "básico" y siempre desde Windows.

Por cierto, el autor del Frodo creo que usa esta toolchain para compilar, así que espero que de resultados :)

Puck2099
04/12/2005, 17:56
Joe, primeros problemas...

Ejecuto el script que comentas y se me queda parado aquí:


Conectando con ftp.gnu.org[199.232.41.7]:21... conectado.
Identificándose como anonymous ... ¡Dentro!
==> SYST ... hecho. ==> PWD ... hecho.
==> TYPE I ... hecho. ==> CWD /pub/gnu/glibc ... hecho.
==> PORT ... hecho. ==> RETR glibc-2.3.5.tar.bz2 ... hecho.


Ayer me pasaba lo mismo con otro script para construir el toolchain que vi en GP2X, ¿sabes a qué se puede deber? Parece como si no descargara el archivo...

Puck2099
04/12/2005, 18:11
Bueno, al final lo que estoy haciendo es descargar a mano los archivos y meterlos en la ubicación donde los descargaría el wget, a ver si así funciona :)

^MiSaTo^
04/12/2005, 18:17
Gracias D_Skywalk!!!!
Ahora pruebo yo tb q tengo ganas de hacer cositas pa la GP2X.

NoobLuck
04/12/2005, 18:27
ueeeee!!!!

lo que me parece es que no me va a compilar pero lo voy a probar en mi PowerPC

D_Skywalk
04/12/2005, 18:51
Puck2099, simplemente es que no puede guardar el fichero en el destino ¿hiciste lo del chmod?

Gracias a todos por los comentarios, espero que os ayude ^^_

Yo ya tengo mi primer ejecutable en el que se ve... una pantalla negra! xDD creo que es por la profundidad de color, voy a ver si funka tambien el mixer :=)

Un Saludo!

Puck2099
04/12/2005, 18:59
Puck2099, simplemente es que no puede guardar el fichero en el destino ¿hiciste lo del chmod?

Sí, no es por eso, porque por ejemplo el binutils sí se lo bajó bien. No sé que le pasa con algunos paquetes, porque unos se los baja bien y los otros los he tenido que bajar a mano, pero bueno, ya está compilando, a ver que sale de todo esto :)

En cuanto a que te sale la pantalla en negro, recuerda que no puedes declarar la superficie como HWSURFACE, sino como SWSURFACE. Y declarar la superficie como doble buffer creo que también da problemas...

Saludos

NoobLuck
04/12/2005, 19:30
Se baja las SDL y las compila para la GP2x tb o hay que hacerlo a parte?

Como se haria para meter unas librerias en la toolchain?
Por ejemplo SDL_gfx o FENIX hay gente que lo esta deseando ^^.

Puck2099
04/12/2005, 19:33
Gracias D_Skywalk!!!!
Ahora pruebo yo tb q tengo ganas de hacer cositas pa la GP2X.

Por cierto, Misato, ¿cogiste ayer la revista esa donde "analizaban" la GP2X y GP32 entre otras?

Anoche estaba mirando las fotos distraídamente... y me encuentro en una la GP2X con mi Samurai en la pantalla :)

Alguien ha debido portarlo por mi [wei4]

Puck2099
04/12/2005, 19:48
Vale, confirmo que este entorno funciona, compila y genera ejecutables que funcionan perfectamente en la GP2X :)

Por fin, ya puedo programar bajo Linux y mandar a paseo el entorno que me había montado en Windows.

Ahora queda ver si consigo meter las SDL_image y SDL_mixer :)

^MiSaTo^
04/12/2005, 20:03
Qué alegría me das Puck!!!!
A ver si arreglais lo de SDL_image y SDL_mixer y ya será la bomba !! xD

Puck2099
04/12/2005, 20:27
Vale, el SDL_image ya lo tengo funcionando y corriendo en la GP2X :)

Ahora a por el SDL_mixer [wei4]

Misato, respecto a lo que te dije ayer de que veía esto un poco negro... retiro lo dicho, ahora me veo optimista [wei3]

Puck2099
04/12/2005, 20:56
Joe, no entiendo, consigo que compile bien con el SDL_mixer, pero no suena nada...

rlyeh
04/12/2005, 21:17
www.gp2x.org/gp2x/libs

usad eso

D_Skywalk
04/12/2005, 21:37
www.gp2x.org/gp2x/libs

usad eso

Si yo las estoy usando pero me da aun algunos errores de linkeo...



arm-open2x-linux-g++ -static -Wall -Wno-switch `arm-open2x-linux-sdl-config --cflags` -O2 -DDLLINTERFACE="" -o sdlsega.gpe sdlsega.c `arm-open2x-linux-sdl-config --libs` -lSDLmain -lSDL_mixer -lsmpeg -lvorbisfile -lpthread -lvorbis -logg -lmikmod -lSDL -lSDL_image -lpng -lz -ljpeg


Linkad usando G++ si usais SDL_Mixer y funcionara, solo dara un warning pero no hay problema... o eso parece xD

Un Saludo, solo me falta que me compile sdlsega (por el tema de RWops) de los ejemplos de gp32 :)

Puck2099
04/12/2005, 21:40
Linkad usando G++ si usais SDL_Mixer y funcionara, solo dara un warning pero no hay problema... o eso parece xD

¿Pero lo has probado en la consola? Lo digo porque a mi me da también un warning, me compila y linka, pero luego en la consola no suena nada...

D_Skywalk
04/12/2005, 21:43
Me acaba de compilar asi:

Pongo la linea completa y ya adaptais vuestros makefiles :)


arm-open2x-linux-g++ -Wall -Wno-switch -I/opt/gp2x/include/SDL -O2 -o sdlsega.gpe sdlsega.c -L/opt/gp2x/lib -Wl,-rpath,/opt/gp2x/lib -lm -ldl -lSDL_mixer -lsmpeg -lvorbisfile -lpthread -lvorbis -logg -lmikmod -lSDL_image -lpng -lz -ljpeg -lSDL

No, aun no lo he probao dame 1min xD

Un Saludo

Puck2099
04/12/2005, 21:46
No, aun no lo he probao dame 1min xD

Un Saludo

Si consigues que suene algo, avisa :)

D_Skywalk
04/12/2005, 21:56
Si consigues que suene algo, avisa :)

Pues he conseguido algo, ahora al menos no peta y se ve el cursor... buena señal? xD


arm-open2x-linux-g++ -static -Wall -Wno-switch -I/opt/gp2x/include/SDL -O2 -o sdlsega.gpe sdlsega.c -L/opt/gp2x/lib -Wl,-rpath,/opt/gp2x/lib -lm -ldl -lSDL_mixer -lsmpeg -lvorbisfile -lpthread -lvorbis -logg -lmikmod -lSDL_image -lpng -lz -ljpeg -lSDL

Un Saludop

Puck2099
04/12/2005, 22:02
Pues he conseguido algo, ahora al menos no peta y se ve el cursor... buena señal? xD

Yo he conseguido que cargue gráficos desde memoria y todo (con las funciones de SDL_image), pero no consigo que suene nada... :(

¿A ti tampoco te está sonando el ejemplo de sdlsega, verdad?

Saludos

D_Skywalk
04/12/2005, 22:09
Nop, tampoco me suena, yo lo dejo por hoy :(

Mañana seguimos intentando a ver si hay mas suerte... si alguien lo consigue que ponga la linea aqui, no digais que os ha salido sin decir como, que sus como xD

Un Saludo y mañana mas ;)
Pd: De todas formas yo probaria algun ejemplo sin RW, un mp3 o un ogg a ver si hay mas suerte

Ppd: la ultima linea que puse es la que mejor resultado a dado, si vais a hacer pruebas usad esa como base :)

NoobLuck
04/12/2005, 22:17
ya lo tengo, a mi tampoco me compila el programa de ejemplo por la dichosa macro.
El caso es que ya probe a hacer el crosstool pero el gcc me daba error al compilar-se.

Pues que compila bien en PowerPC, y si vais a hacer paquetes debian, yo los hago para PowerPC.

Puck2099
04/12/2005, 22:22
Bueno, yo sigo sin conseguir que suene nada (y he probado también a intentar cargar un .xm desde fichero), pero al menos estoy contento con los resultados obtenidos con el SDL_image.

Aquí os dejo una muestra, tan solo descomprimirlo en cualquier directorio de la SD y ejecutadlo desde el menú "Games". No se puede jugar (ahora resulta que hay que tratar el control como un joystick en vez de teclado), pero podéis apreciar como se ve mucho mejor que en la GP32 :)

Saludos

Topochan
04/12/2005, 22:48
He sseguido el hilo y os pongo el siguiente enlace:
http://debian.speedblue.org/

son para debian/ubuntu asi no hace falta compilar el gcc, no puedo provarlo porque no tengo la gp(estoy esperando el siguiente envio), alomejor es cosa del compilador lo del SDL_mixer(cosas mas raras he visto).

Saludos

D_Skywalk
05/12/2005, 01:03
He sseguido el hilo y os pongo el siguiente enlace:
http://debian.speedblue.org/

son para debian/ubuntu asi no hace falta compilar el gcc, no puedo provarlo porque no tengo la gp(estoy esperando el siguiente envio), alomejor es cosa del compilador lo del SDL_mixer(cosas mas raras he visto).

Saludos

Eso ya lo probe y no funciona por que esta compilado para usar FP por hardware.

Un Saludo, solo pase a ver si alguno dio ;P

Topochan
05/12/2005, 02:53
Eso ya lo probe y no funciona por que esta compilado para usar FP por hardware.

Un Saludo, solo pase a ver si alguno dio ;P

Joroña, a compilar toca, si tengo tiempo me pongo el marte y hago uno deb.
Saludos

alberdi
05/12/2005, 17:52
Yo he conseguido que cargue gráficos desde memoria y todo (con las funciones de SDL_image), pero no consigo que suene nada... :(

¿A ti tampoco te está sonando el ejemplo de sdlsega, verdad?

Saludos

lo has hecho en linux o windows?

Puck2099
05/12/2005, 18:17
lo has hecho en linux o windows?

Linux, pero en Windows es igual :)

Cuando llegue a casa os pongo un ejemplo con Makefiles y tal para que probéis :)

D_Skywalk
06/12/2005, 00:31
Os cuento, he estado un rato con rili y otro rato con algun guiri suelto xD

Rili ma dicho que usemos directamente algo asi y probemos:


SDL_AudioSpec desired;*
memset(&desired, 0, sizeof(desired));
desired.freq = SAMPLE_RATE;
desired.format = AUDIO_S16;
desired.channels = 1;
desired.samples = 2048;
desired.callback = callback;
desired.userdata = NULL;
if (SDL_OpenAudio(&desired, NULL) == 0) {
SDL_PauseAudio(0);
} else {
error("SystemStub_SDL::startAudio);
}


Crearos una funcion de callback que le rellene el buffer, y no useis el buffer a 8bits...

No useis el ejemplo de sdlsega que no tira ni patras, yo optaria por usar alguno de estos:
http://www.kekkai.org/roger/sdl/mixer/

A ver si hay mas suerte con el Mixer y sino como dice rili, le damos directamente al callback a ver si suena algo (mirad ejemplos de SDL para mas info).

Usad fprintf para debugear, ej:

fprintf(fichero_abierto,"SDL Error: %\n" SDL_GetError());

y montad ficheros usando esta ruta base:

/mnt/sd/fichero.txtp

Un saludo y esto es todo por hoy :P
Pd: Un dev tambien me recomendo usar el Gcc que usa GPH 2.95.3 :?

^MiSaTo^
06/12/2005, 00:41
Vale yo debo ser lela, porque me estoy intentando bajar el Open2x como tu dices (con lo del cvs) pero no hay manera, me pide pass, doy return y ala, ahí se queda. Al rato pone algo así como:
"cvs [login aborted]: unrecognized auth response from cvs.sourceforge.net: M -!- Client or Server timeout occurred!"

De todos modos cada vez me dice un error diferente. A este paso me vuelvo loca !!! :loco:
¿Qué me pasa doctor?xD

EDITO: bueno ya parece q furula. Está bajando cosas

efegea
06/12/2005, 00:49
Vale yo debo ser lela, porque me estoy intentando bajar el Open2x como tu dices (con lo del cvs) pero no hay manera, me pide pass, doy return y ala, ahí se queda. Al rato pone algo así como:
"cvs [login aborted]: unrecognized auth response from cvs.sourceforge.net: M -!- Client or Server timeout occurred!"

De todos modos cada vez me dice un error diferente. A este paso me vuelvo loca !!! :loco:
¿Qué me pasa doctor?xD

EDITO: bueno ya parece q furula. Está bajando cosas

Eso es normal, pasa mucho. Es culpa de los servidores de sourceforge. Basta con intentarlo mucho para que una de esas veces funcione >_<

miq01
06/12/2005, 01:44
Rili ma dicho que usemos directamente algo asi y probemos:
¿Conocéis algún tutorial sobre audio en SDL sin SDL_mixer? Es que el código que nos has pasado me suena bastante a chino, y he mirado la documentación de SDL, y también me suena a chino.

^MiSaTo^
06/12/2005, 01:46
Bien, otro problema (si ya sabía yo...) Ahora al ejecutar ./open2x-gp2x.sh al rato se me para y me dice:

checking for gcc... gcc
checking whether the C compiler (gcc ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
:loco: :loco: :loco: el gcc es la versión 4.0 (creo) y uso Ubuntu... qué leches le pasa a mi gcc?? juraría que he compilado algo con el pero no estoy segura...

Puck2099
06/12/2005, 01:49
Bien, otro problema (si ya sabía yo...) Ahora al ejecutar ./open2x-gp2x.sh al rato se me para y me dice:

checking for gcc... gcc
checking whether the C compiler (gcc ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
:loco: :loco: :loco: el gcc es la versión 4.0 (creo) y uso Ubuntu... qué leches le pasa a mi gcc?? juraría que he compilado algo con el pero no estoy segura...

Que cosa más rara... prueba a compilar algo sencillito que no tenga que ver con la GP2X (un hello world en c normalito) a ver si te da algún problema.

efegea
06/12/2005, 01:54
Bien, otro problema (si ya sabía yo...) Ahora al ejecutar ./open2x-gp2x.sh al rato se me para y me dice:

checking for gcc... gcc
checking whether the C compiler (gcc ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
:loco: :loco: :loco: el gcc es la versión 4.0 (creo) y uso Ubuntu... qué leches le pasa a mi gcc?? juraría que he compilado algo con el pero no estoy segura...

Mira el archivo config.log, ahi te dice el error exacto. Lo malo que ese archivo es muy criptico, suerte! :D

^MiSaTo^
06/12/2005, 02:00
Desisto... a ver si alguien se curra un .deb porq esto sigue igual :shock: :shock:

Puck2099
06/12/2005, 02:03
Desisto... a ver si alguien se curra un .deb porq esto sigue igual :shock: :shock:

Misato, ¿necesitas un .deb específico para AMD64 o te valdría uno cualquiera?

Neodreamer
06/12/2005, 02:11
Joe, ya q estais, aunq seas de Debian, si podeis hacer un RPM o facilitar un poco el tema de instalacion, configuracion y compilacion, me haceis muy muy feliz. Se q ya con SDL la cosa mejora mucho, pero si espero el Fenix como agua de mayo no es solo xq es sencillo en programacion(q lo es), sino tambien en q no hay q compilar ni instalar nada.
Un ayuda please.
Gracias y 1saludo

NoobLuck
06/12/2005, 02:33
A mi me ha ido a la primera, pero bueno, como no tengo sistema no puedo probar nada.

Me sigue mosqueando el tema de las macros del programa de ejemplo, no se por que no estan en limits.h, lo malo de esto es qe hay que compilar a cada version nueva.

D_Skywalk
06/12/2005, 02:55
Desisto... a ver si alguien se curra un .deb porq esto sigue igual :shock: :shock:

Cuando tenga algo que este seguro que funciona correctamente, tranquila que preparare los correspondientes .deb y hare tambien con alien algun RPM para los que usen rh o similares :)

Por cierto debian/ubuntu pawa ;P

Un Saludo y por lo que veo, ninguna novedad? :)

Pd: misato instalate gcc 3.4 y build essential si sigue sin irte pues pasate por el irc a ver si coincidimos alguna tarde :?

^MiSaTo^
06/12/2005, 03:36
Misato, ¿necesitas un .deb específico para AMD64 o te valdría uno cualquiera?
Me va cualquiera q el Ubuntu q tengo puesto no es el especifico para mi AMD64. Es el Ubuntu x86 normal, vaya de 32 bits

EDITO: ya por cabezonería me voy a instalar el gcc 3.4 (q me dices tu D_Skywalk) a ver si así rula un poco

D_Skywalk
06/12/2005, 17:32
Estoy terminando de empaquetar todos los archivos necesarios para compilar bajo linux:
- glibc 2.3.5
- gcc 4.0.2
- binutils 2.16.1

Todas las librerias y ejecutables usan FP por software, y se os instalaran en /opt/gp2x-arm-elf y son facilmente instalables mediante:
dpkg -i paquete.deb :)

En cuanto esten subidos a mi web os lo comunico, aunque tambien lo anunciare en la web, por si alguno aun la visita xD

Por cierto, ya tengo una teoria de por que no nos suena si usamos las SDL y si suena si por ejemplo usamos las "minimal" de rlyeh :)

Cuando termine con todo esto pruebo mi teoria y sus cuento xD

Un Saludo :)

^MiSaTo^
06/12/2005, 18:42
Gracias D_Skywalk porq no hay manera de que a mi me compilen las cosas cn ningún gcc :(

Puck2099
06/12/2005, 18:43
Gracias D_Skywalk porq no hay manera de que a mi me compilen las cosas cn ningún gcc :(

Eso es que tu PC te está pidiendo un Gentoo [wei4]

D_Skywalk
06/12/2005, 19:17
Dios! gentoo no por favo!! Masokistas :P

Weno, ya he subido todo a la web y he actualizado con una pequeña noticia en castellano (paso de ponerme ahora a calentarme el tarro con le ingles) me ha costao sangre y sudor tener todo bien empaquetado y espero que os sea util ;)

He incluido un monton de liberias de glibc para que podamos hacer llamadas facilmente tambien al sistema, que para algo lo tenemos :D

http://gp32.dantoine.org (a ver si voy preparando una web mas generica xD)

Un Saludo y aun faltan hacer unos ejemplillos y makefiles de uso pero supongo que la gran mayoria sabreis usarlas sin problemas [wei4]

Puck2099
06/12/2005, 19:20
Yo os subo luego (ahora me voy a comer con los abuelos) dos ejemplos con sus Makefiles que cargan imágenes de disco o de memoria (así usamos también el SDL_image) :)

Por cierto, ¡qué lento va el SDL con gráficos de 16 bits!, me va a tocar optimizar a saco el LK para poder sacarlo con estos colores... :(

^MiSaTo^
06/12/2005, 19:38
Miles de gracias a ambos!!!!!!!!! :brindis:
Ahora pruebo a ver si ya va todo xD Lo malo q no tengo GP2X xD a ver si sacan un amulador tipo geepee (pero q vaya algo mejor por diosss...) xD

Puck2099
06/12/2005, 19:45
Miles de gracias a ambos!!!!!!!!! :brindis:
Ahora pruebo a ver si ya va todo xD Lo malo q no tengo GP2X xD a ver si sacan un amulador tipo geepee (pero q vaya algo mejor por diosss...) xD

Misato, no necesitas emulador, con que instalas las SDL para Linux puedes ejecutar los programas en el propio PC :)

Lo malo es tu problemilla con el gcc, pero si consigues arreglarlo ya tienes el mejor emulador ;)

^MiSaTo^
06/12/2005, 20:15
con el mismo ejecutable que te crea lo puedo probar en mi linux?? :shock:
Yo creia que para linux lo tenia q compilar con el gcc normal y pa la GP, con el "compilador-pa-gp" xDDD y si es así, soy vaga xDDD

Topochan
06/12/2005, 21:46
con el mismo ejecutable que te crea lo puedo probar en mi linux??
Yo creia que para linux lo tenia q compilar con el gcc normal y pa la GP, con el "compilador-pa-gp" xDDD y si es así, soy vaga xDDD
Bueno puedes hacer en el makefile una regla para que compile para pc y otra regla para gpx2, entonces hacer make gpx2 y make pc para la que necesites, saludos ;)

PD: D_Skywalk gracias por tus debs!

Puck2099
06/12/2005, 22:01
con el mismo ejecutable que te crea lo puedo probar en mi linux?? :shock:
Yo creia que para linux lo tenia q compilar con el gcc normal y pa la GP, con el "compilador-pa-gp" xDDD y si es así, soy vaga xDDD

No, tienes que compilar cada uno con su gcc, pero los resultados, excepto por la velocidad, serán prácticamente iguales.

Si te pillo esta tarde conectada te explico con más detalles :)

miq01
07/12/2005, 00:05
Por cierto, ¡qué lento va el SDL con gráficos de 16 bits!, me va a tocar optimizar a saco el LK para poder sacarlo con estos colores... :(
Tú llevas bastante más tiempo que yo en esto, e igual lo que te voy a decir te parece obvio, pero por si acaso, lo suelto. La primera vez que compilé Tilematch para GP2X y lo ejecuté iba a 11 fps. Intenté optimizar por todas partes y no hubo manera: no pasaba de 17. Hasta que me dí cuenta de que los BMPs que usa el juego tenían 24 bpp, a pesar de que Photoshop decía que eran 8 (lo que, entonces, supongo que significa que son 8 para R, 8 para G y 8 para B). Como no supe convertirlos desde esta herramienta, decidí hacerlo internamente con SDL. El resultado fué bastante espectacular: ahora tira a... no recuerdo exactamente, pero alrededor de 100 fps. Aunque me imagino que lo que he de pintar en Tilematch comparado con otros juegos es muy poco: 64 piezas de 30x30, textos, y algo más.

Puck2099
07/12/2005, 00:21
Tú llevas bastante más tiempo que yo en esto, e igual lo que te voy a decir te parece obvio, pero por si acaso, lo suelto. La primera vez que compilé Tilematch para GP2X y lo ejecuté iba a 11 fps. Intenté optimizar por todas partes y no hubo manera: no pasaba de 17. Hasta que me dí cuenta de que los BMPs que usa el juego tenían 24 bpp, a pesar de que Photoshop decía que eran 8 (lo que, entonces, supongo que significa que son 8 para R, 8 para G y 8 para B). Como no supe convertirlos desde esta herramienta, decidí hacerlo internamente con SDL. El resultado fué bastante espectacular: ahora tira a... no recuerdo exactamente, pero alrededor de 100 fps. Aunque me imagino que lo que he de pintar en Tilematch comparado con otros juegos es muy poco: 64 piezas de 30x30, textos, y algo más.

Bueno, tampoco estoy teniendo que optimizar mucho. He rehecho varias funciones en las que "pintaba" dos veces en el mismo sitio y ya me voy acercando bastante a lo que quería.

En 8 bits la cosa iría mucho más rápida, sí, pero ya que estoy haciendo una versión "especial" para la GP2X, quería meter los gráficos en 16 bits para poder dar mayores opciones de personalización al juego (para que Misato pueda jugar a desnudar tíos :D ).

Mi objetivo es que el juego funcione, como en la GP32, a 60 fps, ya veremos si lo consigo ;)

Por cierto, cuando hablamos de 8 bits de color, no quiere decir que cada pixel esté representado por un color (en este caso 15 o 16 bits son lo máximo que puede mostrar el LCD), sino por un índice que corresponde a uno de los 256 colores de una tabla de color (la paleta). En el caso de 16 bits, ya no se mira en una tabla, sino que a cada bit le corresponde un color de 16 bits de longitud.

Ah, ahora estoy con los ejemplos que prometí, no se me olvida :P

Puck2099
07/12/2005, 01:14
Lo prometido es deuda, aquí subo 3 ejemplos para probar que va todo bien.

Están basados en el ejemplo de Guyfawkes y prueban lo siguiente:

demo1: Hace uso de SDL_image para cargar una imagen de memoria y mostrarla.
demo2: Solo tira del SDL básico y carga la imagen de un BMP (tiene que estar en el raiz de la SD).
demo3: Igual que el demo2, pero también tendría que reproducir un fichero de audio .xm Debido a los problemas actuales con SDL_mixer no suena, así que es normal.

Como siempre, tendréis que modificar las dos primeras líneas por las ubicaciones de vuestro toolchain y librerías.

Si alguien tiene dudas, que no dude en preguntarme :p

^MiSaTo^
07/12/2005, 04:33
Gracias Puck!!!! Oye alguien me podría ayudar a hacer un makefile para compilar tanto para mi PC (Linux) como para la GP2X? Esque yo de makefiles ni idea (soy muy novata aun en esto de la programacion :shock: ) Gracias

Puck2099
07/12/2005, 07:08
Gracias Puck!!!! Oye alguien me podría ayudar a hacer un makefile para compilar tanto para mi PC (Linux) como para la GP2X? Esque yo de makefiles ni idea (soy muy novata aun en esto de la programacion :shock: ) Gracias

Joe, acabo de ver tu mensaje, no me han mandado el mail diciendo que había una respuesta...

Mañana te paso los Makefiles y algún ejemplillo para que pruebes desde Linux y GP2X :)

Besos

Puck2099
07/12/2005, 07:13
Por cierto, ya nos ha pasado Woogal la librería SDL_mixer correcta, he creado un nuevo hilo (http://www.gp32spain.com/foros/showthread.php?t=25116) para tratar el tema.

Saludos

Uncanny
07/12/2005, 08:19
Por cierto, ya nos ha pasado Woogal la librería SDL_mixer correcta, he creado un nuevo hilo (http://www.gp32spain.com/foros/showthread.php?t=25116) para tratar el tema.

SaludosEn ese hilo te he dejado una nota sobre esto :)

He estado un par de días off y he visto el tutorial que se ha currado D_Skywalk :brindis:

Yo pretendía crearme mi propio GNU toolchain para GP2X, como tengo algo de tiempo libre además de que no tendré la consola hasta dentro de una semana o dos (hasta que lleguen esos accesorios) y estoy algo aburrido (y por ir a mi bola... para variar xD) he empezado ha hacer un script que permita crear automaticamente otro toolchain pero con la versión GCC 3.4.x (para mi la 4.0.x está algo verde, y por probar), así como versiones binutils y glibc distintas a las que se están usando me parece, lo malo es que no se si funcionarán los ejecutables al compilar :P

P.D: De paso intentaré compilar las librerías de SDL con mi toolchain (si me sale bien) junto con otras auxiliares como SDL_Image, SDL_ttf, y SDL_Mixer enlazada con otras librerías para darle soporte de modulos, Ogg Vorbis y MP3, si todo "parece" que funciona probaré con tus ejemplos Puck para ver si compila sin errores y de ser así ya los pondría por aquí para que alguno lo probara, ya que yo no puedo aun...

Puck2099
07/12/2005, 14:56
En ese hilo te he dejado una nota sobre esto :)

He estado un par de días off y he visto el tutorial que se ha currado D_Skywalk :brindis:

Yo pretendía crearme mi propio GNU toolchain para GP2X, como tengo algo de tiempo libre además de que no tendré la consola hasta dentro de una semana o dos (hasta que lleguen esos accesorios) y estoy algo aburrido (y por ir a mi bola... para variar xD) he empezado ha hacer un script que permita crear automaticamente otro toolchain pero con la versión GCC 3.4.x (para mi la 4.0.x está algo verde, y por probar), así como versiones binutils y glibc distintas a las que se están usando me parece, lo malo es que no se si funcionarán los ejecutables al compilar :P

P.D: De paso intentaré compilar las librerías de SDL con mi toolchain (si me sale bien) junto con otras auxiliares como SDL_Image, SDL_ttf, y SDL_Mixer enlazada con otras librerías para darle soporte de modulos, Ogg Vorbis y MP3, si todo "parece" que funciona probaré con tus ejemplos Puck para ver si compila sin errores y de ser así ya los pondría por aquí para que alguno lo probara, ya que yo no puedo aun...

Genial tío :)

Háznoslo saber en cuanto tengas algún resultado, please :brindis:

D_Skywalk
07/12/2005, 15:25
Puck, tio gracias por el aviso :)

Esta tarde pruebo algun wav truñoso que tenga por ahi xD

Uncanny, a mi tambien me gusta la 3.4.x pero era lo que creaba el toolchain de Open2x por defecto, ahora podemos ponernos a preparar, con mas calma, un entorno perfecto con SDL full y Gcc 3.4.x :)

Por cierto, ten mucho cuidado con las glibc, por que pueden joderte tu linux (a mi me jodieron la ubuntu y tube que hacer el ninja para no perder el sistema xD). Por cierto, el Devkit windowsero del wintermute es noticia y el devkit linuxero, no? ¬¬_

Un Saludo! [wei4]

Puck2099
07/12/2005, 15:28
Por cierto, ten mucho cuidado con las glibc, por que pueden joderte tu linux (a mi me jodieron la ubuntu y tube que hacer el ninja para no perder el sistema xD). Por cierto, el Devkit windowsero del wintermute es noticia y el devkit linuxero, no? ¬¬_

Es lo que tiene Linux, que solo interesa a los cuatro marginados de siempre, aunque somos los que más progresos estamos haciendo enlazando las librerías para que luego lo apliquen a Windows...

D_Skywalk
07/12/2005, 18:39
Ya aunque tambien me paso lo mismo cuando me curre los paquetes y el tutorial maskao para desarrollar en windows para GP32 :-/

Ya he probao el Mixer y va de pm! :D ¿entonces era solo compilarlo bien? bueno a ver si nos curramos un entorno de desarrollo decente ^^_

Un Saludop

[UPDATE]

Estoy ocioso a ver si compilo algo con las SDL ^^_

Para bajaros las SDL de gp2x:

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/open2x co -P libs-gp2x

Uncanny
07/12/2005, 18:52
Uncanny, a mi tambien me gusta la 3.4.x pero era lo que creaba el toolchain de Open2x por defecto, ahora podemos ponernos a preparar, con mas calma, un entorno perfecto con SDL full y Gcc 3.4.x :)

Por cierto, ten mucho cuidado con las glibc, por que pueden joderte tu linux (a mi me jodieron la ubuntu y tube que hacer el ninja para no perder el sistema xD).Dentro de un rato continuo con ello, porque empezé ayer a crear el script y bajarme los paquetes necesarios, y si que es verdad, como jodas las glibc se te va el sistema a tomar viento, pero tranquilo todo las pruebas las hago en un entorno chroot y en un portatil que solo lo uso para programación y para hacer "pruebas arriesgadas" [wei4]

Puck, si hoy lo tengo todo y consigo compilar algo, ya pondré esas demos tuyas para que me digas si rula la cosa como debe :D

Topochan
07/12/2005, 19:12
Unas dudillas, la SDL-mixer que hay funciona con mp3 o ogg? la SDL-ttf esta disponible? Ummm esta portado el flex a gp?

Estoy intentando portar un minijuego que hacia uso de esas librerias, por eso estoy interesado en ellas.


muchas gracias :)

miq01
07/12/2005, 20:43
Unas dudillas, la SDL-mixer que hay funciona con mp3 o ogg?
No. Mírate este hilo (http://www.gp32spain.com/foros/showthread.php?t=25116).

miq01
07/12/2005, 20:48
Es lo que tiene Linux, que solo interesa a los cuatro marginados de siempre, aunque somos los que más progresos estamos haciendo enlazando las librerías para que luego lo apliquen a Windows...
Hombre, aquí cada uno decide si quiere recompilar librerías o no, ¿verdad? Yo, independientemente de que trabaje en Windows, espero a que sean otros los que lo hagan (y lo agradezco) porque prefiero dedicarme a otras cosas. ¿Hay algo de malo en eso? Yo creo que no...

Puck2099
07/12/2005, 21:12
Hombre, aquí cada uno decide si quiere recompilar librerías o no, ¿verdad? Yo, independientemente de que trabaje en Windows, espero a que sean otros los que lo hagan (y lo agradezco) porque prefiero dedicarme a otras cosas. ¿Hay algo de malo en eso? Yo creo que no...

Oye, perdona si te he ofendido, pero lo decía en plan coña :(

La verdad es que las palabras cambian mucho de significado si no hay emoticonos de por medio :)

miq01
07/12/2005, 21:24
Oye, perdona si te he ofendido, pero lo decía en plan coña :(
No, no. No me he ofendido, tranquilo. Pero pensaba que lo decías en serio y como no estaba de acuerdo he contestado... :)


La verdad es que las palabras cambian mucho de significado si no hay emoticonos de por medio :)
Pues parece que sí... :)

D_Skywalk
07/12/2005, 21:50
miq01, yo tambien creia que se veia el tono desenfadado de nuestra conversacion :?

Bueno seguimos con el temilla :)

Estoy compilando gcc 3.4.4 con todo lo demas igual, es decir glibc 2.3.5 y binutils 2.16.1 ^^_

Y tengo una duda tengo que compilar las SDL con el gcc-arm o uso mi gcc y le doy como host arm?

Un Saludo :)

Topochan
07/12/2005, 22:40
Estoy compilando gcc 3.4.4 con todo lo demas igual, es decir glibc 2.3.5 y binutils 2.16.1 ^^_

Y tengo una duda tengo que compilar las SDL con el gcc-arm o uso mi gcc y le doy como host arm?

Un Saludo :)
Interesante, muy interesante :)

Has tenido la misma duda que yo con las SDL_mixer al intentar compilarlas, segun he visto en los foros hay que poner el host y los compiladores(y supongo que el linker) lo que no se yo son las opciones de video. No he conseguido compilar las sdl_mixer pues me daban error de SDL(cuando estaban especificadas en las opciones del configure), ni pq no me pillaba el compilador.

A ver si en salir del curro tanoche puedo intentar compilar flex [wei4]

miq01
07/12/2005, 22:50
miq01, yo tambien creia que se veia el tono desenfadado de nuestra conversacion :?
Ya ves que no lo había pillado... :) Estaré atontado...

NoobLuck
08/12/2005, 02:16
Chicos ya tengo el cross compiler y he añadido el PATH ahora le paso al gcc las opiciones :


-b arm-open2x-linux -V 4.0.2

y van los makefile, el problema es que no tengo las librerias SDL ni la SDL_image, como las compilo para el arm y hago que el arm-open2x-linux-gcc las pille?

Puck2099
08/12/2005, 02:26
SDL (http://gp2x.org/gp2x/libs/gp2xlibs.tar.gz)

El problema es que la SDL_mixer que hay ahí no funciona bien, pero sigue mis links en este mismo hilo y podrás pillar una mejorada :)

Neodreamer
08/12/2005, 03:32
Voy a pediros mi lista de reyes majos a ver si podeis ayudarme....
Puck, me mandas los make para pc y gp2x como a misato? Muchas gracias....
D_Skywalk...me podrias hacer un paquete en rpm en lugar de debian? es q soy de linux pero no tan puro como vosotros(debian).
Y una vez hecho la instalacion y concedido el lujo de tener los make hechos...las SDL mixer de Puck donde las meto?
Muchas gracias a todos y a ver si podeis ayudarme please.
1saludo.
p.d: no prometo nada, solo intento....me gustaria hacer en SDL un visor de imagenes decente para poder ver nuestros comics....hacer zoom, rotar, etc.

D_Skywalk
08/12/2005, 05:35
D_Skywalk...me podrias hacer un paquete en rpm en lugar de debian? es q soy de linux pero no tan puro como vosotros(debian).

Ok, pero dame tiempo que las depure, que encontre algunos fallos que convendria arreglar xD

Sino quieres esperar hazte tu mismo los paquetes como explico en el primer post, valen para cualquier linux y no tienes que hacer nada, mas que esperar xD

Un Saludo y suerte compañero!

NoobLuck
08/12/2005, 12:15
p.d: no prometo nada, solo intento....me gustaria hacer en SDL un visor de imagenes decente para poder ver nuestros comics....hacer zoom, rotar, etc.
Yo hice un visor de imagenes que sólo cargaba una imagen, no empiezariamos de cero, lo colgué en la seccion de programacion como programa basico carga imagenes SDL o algo asi. El bucle de eventos ya está pensado para ser una GUI. Es GPL ...

Yo me apunto al tema, bueno si es rollo GPL. Pero tengo los examenes despues de navidad. No puedo hacer mucho ahora, pero ya es bastante lo que hay en el programa hecho.

NoobLuck
08/12/2005, 12:17
SDL (http://gp2x.org/gp2x/libs/gp2xlibs.tar.gz)

El problema es que la SDL_mixer que hay ahí no funciona bien, pero sigue mis links en este mismo hilo y podrás pillar una mejorada :)

¿Donde las meto?, no necesito la mixer, necesito la SDL_image unicamente.

D_Skywalk
08/12/2005, 15:37
Las metes como root en /opt/local/gp2x

Esas libs incluyen SDL_image que es lo que necesitas, si necesitaras tambien sonido pues ya tendrias que actualizar el SDL_mixer, ya que ese que incluye esta mal :/

Un Saludo

NoobLuck
08/12/2005, 23:18
El problema reside ahora en que en el directorio:

/opt/local/gp2x/bin hay binarios para x86 y yo tengo un powerpc. El SDL config me va bien por que se un script, pero los otros no, con eso me basta, pero no me van estos programas...

hectorblanco
08/12/2005, 23:31
Pues no hay manera. No consigo construir las tool-chain ni las librerias ni en Linux ni en Windows.

NoobLuck
08/12/2005, 23:46
OBJECTS = help.o image.o listimages.o
CFLAGS = -b arm-open2x-linux -V 4.0.2

listimages: $(OBJECTS)
cc $(CFLAGS) $(OBJECTS) -o listimages `arm-open2x-linux-sdl-config --cflags --static-libs` -lSDL_image

listimages.o: listimages.c listimages.h
cc $(CFLAGS) -c listimages.c

image.o: image.c listimages.h
cc $(CFLAGS) -c image.c `arm-open2x-linux-sdl-config --cflags`

help.o: help.c listimages.h
cc $(CFLAGS) -c help.c

################################################## #################################

clean: #borra los objetos intermedios y el programa para compilar de nuevo.
rm *.o *~ listimages
install:
cp listimages /usr/local/bin/
Este es el makefile hasta el momento, pero me fallan las SDL_image:

cd ~/listimages/
make -k
cc -b arm-open2x-linux -V 4.0.2 help.o image.o listimages.o -o listimages `arm-open2x-linux-sdl-config --cflags --static-libs` -lSDL_image
/opt/local/gp2x/lib/libSDL_image.a(IMG_bmp.o): In function `IMG_LoadBMP_RW':
IMG_bmp.c:(.text+0xa4): undefined reference to `SDL_LoadBMP_RW'
/opt/local/gp2x/lib/libSDL_image.a(IMG_gif.o): In function `IMG_LoadGIF_RW':
IMG_gif.c:(.text+0x604): undefined reference to `SDL_SetColorKey'
/opt/local/gp2x/lib/libSDL_image.a(IMG_gif.o): In function `ReadImage':
IMG_gif.c:(.text+0x140c): undefined reference to `SDL_CreateRGBSurface'
/opt/local/gp2x/lib/libSDL_image.a(IMG_jpg.o): In function `jpeg_SDL_RW_src':

... SALEN UN MONTON DE ESTO

Compilation exited abnormally with code 2 at Thu Dec 8 17:48:05
¿Podeis hecharme un cable? No me pillan las SDL ...

Topochan
09/12/2005, 01:29
¿Podeis hecharme un cable? No me pillan las SDL ...
Parece ser errores de linkado, que no tienes las librerias libjpg, libpng, en las opciones de -L del makefile(LFLAGS), mira a ver si estan en algun directorio y añadelo al makefile para que coja la opcion de -L/ruta_a_las_libs/

un saludo [wei4]

Puck2099
09/12/2005, 03:58
¿Podeis hecharme un cable? No me pillan las SDL ...

¿Por qué no pruebas a bajarte las demos que adjunté un poco más arriba a ver si te funcionan? :)

Van con Makefiles y todo para que solo tengas que cambiar 2 líneas con el path donde tengas las librerías y compiladores...

hectorblanco
09/12/2005, 04:32
¿Por qué no pruebas a bajarte las demos que adjunté un poco más arriba a ver si te funcionan? :)

Van con Makefiles y todo para que solo tengas que cambiar 2 líneas con el path donde tengas las librerías y compiladores...

Pues yo no consigo ni compilar las librerias ni el tool-chain. Es un desastre.
A ver si alguien se anima y saca un pack con las libs para windows y que funcionen.

NoobLuck
09/12/2005, 23:13
Ya va.


SDL_BASE = /opt/local/gp2x

OBJECTS = help.o image.o listimages.o
TARGET = listimages.gpe

CFLAGS = -b arm-open2x-linux -V 4.0.2 -static -I$(SDL_BASE)/include -I$(SDL_BASE)/include/SDL
LIBS = -L$(SDL_BASE)/lib -Wl,-rpath,$(SDL_BASE)/lib -lSDLmain -lSDL_image -lpng -ljpeg -lz -lc -lm -lgcc -lSDL_mixer -lsmpeg -lvorbisfile -lpthread -lvorbis -logg -lmikmod -lSDL


$(TARGET): $(OBJECTS)
cc $(CFLAGS) $(OBJECTS) -o $(TARGET) $(LIBS)

listimages.o: listimages.c listimages.h
cc $(CFLAGS) -c listimages.c

image.o: image.c listimages.h
cc $(CFLAGS) -c image.c

help.o: help.c listimages.h
cc $(CFLAGS) -c help.c
Gracias Puck2099.

Con todas las librerias que hay en la variable LIBS no da problemas. He visto que poner -lSDL al final hace falta para que las SDL_image satisfagan sus dependencias.

He añadido la línea:

export PATH=$PATH:/open2x_gcc/gcc-4.0.2-glibc-2.3.5/arm-open2x-linux/bin/:/opt/local/gp2x/bin/
a mi .bashrc para simplificar las cosas.

D_Skywalk
10/12/2005, 15:35
Buenas apañeros!

Pues he estado intentando compilar gcc 3.4.4 y no ha habido suerte, se ve que no esta preparado (por defecto) para el procesador arm920t de nuestra negra, asi que voy a probar el gcc 3.4.5 que salio hace poco... a ver si ahi hay mas suerte :D

/me compilanding :_d
[update1]
arg, peto:

arm.c:571: error: ‘TARGET_CPU_arm920t’ no se declaró aquí

[update2]
Bueno leyendo un tema en la lista de crossgcc, parece que el 920t no esta soportado por defecto y hay que usar nuestro amado: 9tdmi ;)

http://sources.redhat.com/ml/crossgcc/2005-08/msg00126.html

Voy a compilar usando ese flag a ver que sale :?

Se ve que ademas ese problema esta parcheado (ademas de en gcc 4.x) en estos gcc's, si alguien se anima a probarlo:
http://www.codesourcery.com/gnu_toolchains/arm/

[update3]
Voy a crear un patch que añada a las definiciones esto:
+#define TARGET_CPU_arm920t 0x0080

A ver que sale ahora, de todas formas en la pagina recomiendan que usemos arm9 en lugar de arm9tdmi :?

[update4]
Me ha costao pero ya esta compilando gcc 3.4.4 con arm920t :)

/me compilanding (bis) :_d

[update5]

IT WORKS!!!


skywalker@dantoine:~/desarrollo/gp2x/sdlsega$ arm-gp2x-linux-gcc --version
arm-gp2x-linux-gcc (GCC) 3.4.4
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.




skywalker@dantoine:~/desarrollo/gp2x/sdlsega$ arm-gp2x-linux-gcc -v
Reading specs from /opt/gp2x-arm-linux/gcc-3.4.4-glibc-2.3.5/arm-gp2x-linux/lib/gcc/arm-gp2x-linux/3.4.4/specs
Configured with: /home/skywalker/desarrollo/gp2x/GCC/open2x/tool-chain/buildscripts/build/arm-gp2x-linux/gcc-3.4.4-glibc-2.3.5/gcc-3.4.4/configure --target=arm-gp2x-linux --host=i686-host_pc-linux-gnu --prefix=/opt/gp2x-arm-linux/gcc-3.4.4-glibc-2.3.5/arm-gp2x-linux --with-float=soft --with-cpu=arm920t --enable-cxx-flags=-mcpu=arm920t --with-headers=/opt/gp2x-arm-linux/gcc-3.4.4-glibc-2.3.5/arm-gp2x-linux/arm-gp2x-linux/include --with-local-prefix=/opt/gp2x-arm-linux/gcc-3.4.4-glibc-2.3.5/arm-gp2x-linux/arm-gp2x-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.4


Compilando un ejemplo con sonido:

skywalker@dantoine:~/desarrollo/gp2x/sdlsega$ make -f makefile.gp2x
arm-gp2x-linux-g++ -static -Wall -Wno-switch `arm-gp2x-linux-sdl-config --cflags` -O2 -DDLLINTERFACE="" -o sdlsega.gpe sdlsega.c -lSDL_image -lSDL_mixer -lpng -lz -ljpeg -lSDLmain -lsmpeg -lvorbisfile -lpthread -lvorbis -logg -lmikmod `arm-gp2x-linux-sdl-config --libs`
arm-gp2x-linux-strip sdlsega.gpe


Testeando gpe... OK!

Proximo paso: generar debs que funcionen bien y construir de nuevo las librerias SDL :D

Un Saludo

Neodreamer
11/12/2005, 02:36
Ayudaaaaa......
Os he hecho caso y me he puesto a seguir los pasos del primer post y posteriormente del post de descarga de las SDL de la gp2x q ponia D_Skywalk.
Me ha pasado de todo; al principio no me dejaba hacer el paso del sudo ./open2x....sh
De repente ejecutando el sh como root si me dejo....pero no me creo los directorios q tenia q cambiar los permisos ¿?
Cuando acabo de hacer todo, salio el mensaje q decia D_Sky pero no me compilaba el hello.c de ejemplo.
Ahora, q son las 5 de la mañana, tras haber estado rato compilando lo descargado, baje las SDL, pero me las instala en otro directorio muy distinto al q tiene Puck en sus makefiles.
Tampoco me ha dado error al instalarlo, pero si al intentar compilar las 3 demos.
No se xq no me encuentra las lib pero si los include.
Este es el mesaje de error de demo1:

/open2x_gcc/gcc-4.0.2-glibc-2.3.5/arm-open2x-linux/bin/arm-open2x-linux-gcc -I/home/neodreamer/tool-chain/buildscripts/libsgp2x/SDL/include/SDL -D_REENTRANT -I/home/neodreamer/tool-chain/buildscripts/libsgp2x/SDL/include -I/home/neodreamer/tool-chain/buildscripts/libsgp2x/SDL/include/SDL -D_REENTRANT -O2 -Wall -c -o demo1.o demo1.c
demo1.c:5:23: error: SDL_image.h: No such file or directory
demo1.c: In function 'main':
demo1.c:43: warning: implicit declaration of function 'IMG_Load_RW'
demo1.c:43: warning: initialization makes pointer from integer without a cast
make: *** [demo1.o] Error 1

Y este es mi makefile modificado del de Puck:

CROSS_COMPILE = /open2x_gcc/gcc-4.0.2-glibc-2.3.5/arm-open2x-linux/bin/arm-open2x-linux-
SDL_BASE = /home/neodreamer/tool-chain/buildscripts/libsgp2x/SDL
LDFLAGS = -static

CC = $(CROSS_COMPILE)gcc
CXX = $(CROSS_COMPILE)g++
STRIP = $(CROSS_COMPILE)strip

CFLAGS = -I$(SDL_BASE)/include/SDL -D_REENTRANT -I$(SDL_BASE)/include -I$(SDL_BASE)/include/SDL -D_REENTRANT -O2 -Wall
CXXFLAGS = -I$(SDL_BASE)/include/SDL -D_REENTRANT -I$(SDL_BASE)/include -I$(SDL_BASE)/include/SDL -D_REENTRANT-O2 -Wall

LIBS = -L$(SDL_BASE)/lib -Wl,-rpath,$(SDL_BASE)/lib -lSDLmain -lSDL_image -lpng -ljpeg -lz -lc -lm -lgcc -lSDL_mixer -lsmpeg -lvorbisfile -lpthread -lvorbis -logg -lmikmod -lSDL

SDLTEST_TARGET = demo1.gpe
SDLTEST_OBJS = demo1.o

all : $(SDLTEST_TARGET)

$(SDLTEST_TARGET) : $(SDLTEST_OBJS)
$(CXX) $(LDFLAGS) -o $(SDLTEST_TARGET) $(SDLTEST_OBJS) $(LIBS)
$(STRIP) $(SDLTEST_TARGET)

clean:
rm -f $(ALL_TARGETS) *.o *~
--------------------------------------------------------------------------------------------
Las rutas de todo son:

Compilador: en la q pone el makefile ya q se queda asi en la instalacion x defecto....
Las SDL me las ha puesto aqui y no se xq:

/home/neodreamer/tool-chain/buildscripts/libsgp2x

en este directorio, cuelgan las carpetas SDL, SDL_image, SDL_mixer, SDL_ttf, libPNG, CVS, build_libs, libMAD.....etc

Dentro de SDL hay una carpeta include, pero no libs. No deberia de haber una con dicho nombre como indica el makefile?

En las otras demos la cosa se pone mas fea xq me dice q no encuentra el SDLmain....

A ver si podeis ayudarme please.
1saludo y gracias

D_Skywalk
11/12/2005, 17:30
Eso de estar hasta las 5am te hace no pensar xD

Lo que te has bajado del CVS esas libs serian para compilarlas tu a mano, no te valen para usarlas con las demos, para las demos debes usar unas que ya hemos comentado un par de veces en este y otros temas, aqui las tienes:
http://gp2x.org/gp2x/libs/gp2xlibs.tar.gz

PEERO, en esas el mixer no va bien, asi que una vez las tengas descomprimidas, sobrescribe "TUHOME/lib/libSDL_mixer.a" por esta:
http://gp2x.sector808.org/libSDL_mixer.a

Yo instale mis libs en "/opt/local/gp2x", pero las puedes instalar donde prefieras, eso si debes tener en cuenta luego en tu makefile poner la ruta correcta y tambien poner la ruta correcta en el "arm-open2x-linux-sdl-config", en la segunda linea o asi veras la ruta que te digo :)

Un Saludo y espero que hayas descansado bien ;)

Neodreamer
12/12/2005, 00:34
Muchas gracias, ya ha funcionado la demo1...una ultima cosa. Al final he preferido mantener las carpetas q usais normalmente en cuyo caso, las SDL_mixer.a irian en /opt/local/gp2x/lib verdad? es q lo he hecho asi y no entendia muy bien lo de TUHOME/lib/libSDL_mixer.a
De nuevo muchas gracias.
1saludo

D_Skywalk
12/12/2005, 15:01
Al final he preferido mantener las carpetas q usais normalmente en cuyo caso, las SDL_mixer.a irian en /opt/local/gp2x/lib verdad?
Si, perfecto :D

Y los includes en /opt/local/gp2x/include, no?

Un Saludo :)

Puck2099
12/12/2005, 16:28
Hola,

Viendo que había gente que tenía problemillas con el .deb que se curró D_Skywalk, he subido al ftp público mis versiones ya compiladas del gcc para ARM comprimidas en formato zip.

Lo único que hará falta es descomprimirlo en cualquier directorio y editar los Makefiles con dicha ruta.

Los datos del FTP para quien no lo sepa es:
servidor: gp32spain.com
usuario: public_ftp@gp32spain.com
password: publico

Lo he metido en /Programacion/GP2X/linux/

EDITO: Please, si alguien se lo baja y lo prueba, que me diga si le funciona o tiene algún problema :)

Saludos

D_Skywalk
12/12/2005, 16:33
Para que version son Puck? 4.0.2? podia hacer un tar.gz con 3.4.4 y dejarme de paranoias de debs xD ¿que decis?

Un Saludo :)

alberdi
12/12/2005, 16:35
Ahora lo bajo y lo pruebo, gracias puck :brindis:

Le has incluido las sdl?

Puck2099
12/12/2005, 17:04
Para que version son Puck? 4.0.2? podia hacer un tar.gz con 3.4.4 y dejarme de paranoias de debs xD ¿que decis?

Un Saludo :)

Pues creo que son para la 4.algo, la que subiste tú en .deb que nos compilamos a partir del script de Open2X.

Y sí, yo creo que sería mejor hacer las "compilaciones" en tar.gz o zip para que cada uno lo instale donde más le guste y dejarnos de rollos de debs que luego dan problemas a la hora de instalarlos :)

Saludos

alberdi
12/12/2005, 17:05
He probado, y ha compilado la demo2 que hiciste, puck, dentro de un rato lo pruebo en la gp2x. En las sdl incluyes el sdl_image y sdl_mixer buenos?

Puck2099
12/12/2005, 17:06
Ahora lo bajo y lo pruebo, gracias puck :brindis:

Le has incluido las sdl?

Sí, las SDL están en otro archivo en esa misma localización, para que las descomprimas donde más te guste :)

Saludos

Puck2099
12/12/2005, 17:08
He probado, y ha compilado la demo2 que hiciste, puck, dentro de un rato lo pruebo en la gp2x. En las sdl incluyes el sdl_image y sdl_mixer buenos?

El sdl_image sí, el mixer no.

El problema del mixer "bueno" es que no es compatible con algunos formatos de sonido y encima te descuajeringa algunos controles de la consola, así que estoy esperando a conseguir una versión mejorada para incluirlo.

EDITO: Prueba la demo1, porque la demo2 no tira de SDL_image, así vemos si funciona :)

Saludos

alberdi
12/12/2005, 17:18
El sdl_image sí, el mixer no.

El problema del mixer "bueno" es que no es compatible con algunos formatos de sonido y encima te descuajeringa algunos controles de la consola, así que estoy esperando a conseguir una versión mejorada para incluirlo.

EDITO: Prueba la demo1, porque la demo2 no tira de SDL_image, así vemos si funciona :)

Saludos

Ok, funciona tanto demo1 como demo2 :brindis:

Puck2099
12/12/2005, 17:19
Ok, funciona tanto demo1 como demo2 :brindis:

Vale, pues con eso ya tenéis para ir haciendo juegos :)

Saludos

mog_ur
12/12/2005, 18:03
Bueno, todo el fin de semana he estado intentando compilar algo y ná :chupete: (soy nuevo en Linux y por lo tanto en la programación bajo Unix, el tema del c lo llevo mejor pero siempre sobre windows por lo que hay muchos temas en los que me pierdo :( )

A ver si con la ayuda de los ficheros de Puck2099 lo logro.

Entonces ahora tengo

arm-open2x-linux.zip
gp2xlibs.zip
demos.zip


los descomprimo donde me interese y cambio los makefile de las demos más o menos así?
- CROSS_COMPILE = donde he descomprimido el arm-open2x-linux.zip
- SDL_BASE = donde he descomprimido el gp2xlibs.zip

he intento compilar así "make all demo1.c" ?


PD: Soy muy torpe, no me lo tengais en cuenta

Puck2099
12/12/2005, 18:25
Bueno, todo el fin de semana he estado intentando compilar algo y ná :chupete: (soy nuevo en Linux y por lo tanto en la programación bajo Unix, el tema del c lo llevo mejor pero siempre sobre windows por lo que hay muchos temas en los que me pierdo :( )

A ver si con la ayuda de los ficheros de Puck2099 lo logro.

Entonces ahora tengo

arm-open2x-linux.zip
gp2xlibs.zip
demos.zip


los descomprimo donde me interese y cambio los makefile de las demos más o menos así?
- CROSS_COMPILE = donde he descomprimido el arm-open2x-linux.zip
- SDL_BASE = donde he descomprimido el gp2xlibs.zip

he intento compilar así "make all demo1.c" ?


PD: Soy muy torpe, no me lo tengais en cuenta

Las rutas del Makefile no te sé decir si son esas exactamente, cuando llegue a casa te concreto.

Sí, pero para compilar tienes que poner "make clean && make".

Saludos

D_Skywalk
12/12/2005, 22:13
Subiendo al Ftp publico, la version 3.4.4 full working :arriba:

Puck, he notado un par de cosas que podrian dar problemas, creo, si cambias la ruta por defecto del gcc quizas den problemas al buscar los includes base y/o libs ¿que opinas? Otra cosa mas, deberias haber comprimido con tar.bz2 a mi me ha dejado el entorno en 40MB... el tuyo es de ¿¿!¿150MB!?!?

Pues eso, que esta subiendo le quedan como 20min :)

Un Saludo chicos!

NoobLuck
12/12/2005, 23:51
Subiendo al Ftp publico, la version 3.4.4 full working :arriba:
Un Saludo chicos!
Que pasos has hecho, yo quiero poner un .deb con el gcc para powerpc.

mog_ur
13/12/2005, 05:47
Ya he conseguido compilar, que no es poco :) , muchas gracias a todos y todas y en especial a Puck2099 y a D_Skywalk


A ver si algún día puedo aportar algo [wei4]

Neodreamer
16/12/2005, 01:56
Oyes...una cosa mas. Me podeis resumir un poco el tema de hacer makefile dobles para generar el gpe y el ejecutable para linux?
Si me poneis uno de ejemplo con la demo1 de Puck, ya saco yo lo demas.
Como se hace el makefile.....como se especifica luego cual de las 2 reglas compilar?(se dice asi no?"regla")
Es q asi no tengo q estar pasando a la gp2x cada prueba q haga sino lo pruebo antes en el pc.
1saludo y gracias

Puck2099
16/12/2005, 04:32
Oyes...una cosa mas. Me podeis resumir un poco el tema de hacer makefile dobles para generar el gpe y el ejecutable para linux?
Si me poneis uno de ejemplo con la demo1 de Puck, ya saco yo lo demas.
Como se hace el makefile.....como se especifica luego cual de las 2 reglas compilar?(se dice asi no?"regla")
Es q asi no tengo q estar pasando a la gp2x cada prueba q haga sino lo pruebo antes en el pc.
1saludo y gracias

Aquí te adjunto un Makefile para PC, pero recuerda tener instaladas las SDL para Linux.

Para especificar una regla u otra usa el -f, por ejemplo, para compilar para PC usas:


make clean -f Makefile.pc && make -f Makefile.pc

El "make clean" puedes ahorrártelo si no andas alternando entre versiones, pero úsalo en caso contrario o no te funcionará.

Saludos

Puck2099
18/12/2005, 07:09
Por cierto, D_Skywalk, me acabo de bajar el pack que has subido del gcc 3.4.4 y se te ha colado dentro del script que hiciste para el gcc 4.0.2 ;)

A ver si con este gcc compila de una vez el Exult...

Saludos

Puck2099
18/12/2005, 17:48
D_Skywalk, ¿te suena en tu gcc 3.4.4 alguna referencia a /home/brendan/tmp/open2x_test/usr/?

Al configurar el Makefile del Exult me metía referencias a ese directorio, así que las cambié por los directorios donde instalé el gcc y libsdl, pero a la hora de compilarlo, todavía encuentra una referencia que no aparece en el Makefile (ni ningún otro fichero) por ningún lado.

Es a la hora de enlazar los objetos cuando me salta esto:

/bin/sh ./libtool --mode=link arm-gp2x-linux-g++ -O2 -Wno-long-long -fsigned-char -DDISABLE_X11 -DQWS -D__zaurus__ -DUSE_FMOPL_MIDI -L/opt/gp2x-arm-linux/gcc-3.4.4-glibc-2.3.5/arm-gp2x-linux/lib -L/opt/local/gp2x/lib -o exult actions.o actorio.o actors.o alloc.o args.o bggame.o browser.o cheat.o cheat_screen.o combat.o delobjs.o devgame.o dir.o drag.o effects.o exult.o exultmenu.o game.o gameclk.o gamedat.o gamemap.o gamerend.o gamewin.o keys.o keyactions.o menulist.o monsters.o mouse.o npcnear.o npctime.o palette.o party.o paths.o readnpcs.o schedule.o segfile.o shapeid.o sigame.o tqueue.o txtscroll.o version.o xdrag.o pathfinder/libpathfinder.la audio/libaudio.la audio/midi_drivers/libmididrv.la flic/libflic.la conf/libconf.la imagewin/libimagewin.la server/libserver.la usecode/libusecode.la shapes/libshapes.la objs/libobjs.la gumps/libgumps.la files/libu7file.la files/zip/libminizip.la -L/opt/local/gp2x/lib -Wl,-rpath,/opt/local/gp2x/lib -lSDL -lpthread -lSDL_mixer
libtool: link: warning: library `/opt/local/gp2x/lib/libSDL.la' was moved.
libtool: link: warning: library `/opt/local/gp2x/lib/libSDL_mixer.la' was moved.libtool: link: warning: library `/opt/local/gp2x/lib/libSDL.la' was moved.
libtool: link: warning: library `/opt/local/gp2x/lib/libSDL_mixer.la' was moved.libtool: link: cannot find the library `/home/brendan/tmp/open2x_test/usr//lib/libvorbisidec.la'
make[2]: *** [exult] Error 1


¿Tienes alguna idea de qué puede ocurrir?

Las librerías .la sí que están en esa ruta, no sé porque dice que fueron movidas, pero lo que realmente rompe la compilación es la línea de más abajo con lo del brendan...

Saludos

civantoz
24/03/2006, 21:16
mmmm alguien puede colgar el .deb o el tar.bzip2 o lo que sea q haya resultado con el toolchain bueno? yo estoy mu pez en el royo de programacion en linux como para configurar mi propio entorno, aunque de C/C++ si me apaño mas o menos bien, el caso es que el ftp de gp32spain no chuta y la pagina de D_Skywalk esa de dantoine parece ser que tiene un apache peladito recien puesto, alguien se lo quiere subir a algun sitio para poder descargarlo? luego si quereis una vez q la tenga yo lo puedo servir desde casa el tiempo que querais... ya me direis algo, espero respuesta por aqui :D

gracias a todos

Uncanny
25/03/2006, 02:29
Mira el ultimo mensaje de este (http://www.gp32spain.com/foros/showthread.php?t=29300) hilo :)

Además, si quieres, puedes construirte el tuyo de forma automática con el script (http://www.oopo.net/consoledev/) de ooPo.

Acerbaturix
08/04/2006, 00:04
Buenas,

El caso es que esta semana me he hecho con una GP2X [wei4], y bueno, la verdad es que más que para jugar con ella (que tambien) me la he comprado para programar para ella :loco:.

Asique en cuanto he tenido un rato (ayer) me puse a buscar información de como conseguir una toolchain para hacer cross-compilation a ARM. En un ratillo ya andaba por el Wiki de GP2X (wiki.gp2x.org) y dado que el acceso al FTP de gp32spain no esta disponible, pues opte por la opción del script de oopo.net.

Total que me lo bajo, lo ejecuto, toca esperar un bueno rato y listo, todo bien (aparentemente). Asique me bajo tambien un program de test que hay en la web de oopo.net y lo compilo. Perfecto, compila sin problema, asique pienso, esto marcha [wei5].

Copio el programa y el directorio media en la SD, enciendo la consola, ejecuto y... aparece un rectangulo de 'lluvia' que ocupa 2 tercios de la pantalla y yo :confused:

Total que pillo los fuentes del tester.c y comento la llamada a la función que muestra la imagen. Compilo y pruebo de nuevo... vale, ahora ya no sale ni el rectangulo... bueno, por lo menos parece que algo hace :rolleyes:

Después de eso estubo probando varios programillas sencillos que encontré por ahí con SDL, e incluso un simple "int main() { printf("pepe"); }" con el resultado siempre de una pantalla en negro y la consola colgada.

Decidí probar con el script que hay en el wiki para el devkitGP2X, y de nuevo mas o menos lo mismo, construyo la toolchain sin ningun problema, compilo los programas sin problema (siemrpe que no tengan SDL) y luego pantalla en negro...

Algo estoy haciendo mal :), o algo me falta por hacer. Tengo que meter alguna libería en la consola, las SDL? en caso afirmativo cuales?

Gracias de antemano.

Uncanny
08/04/2006, 00:49
Después de eso estubo probando varios programillas sencillos que encontré por ahí con SDL, e incluso un simple "int main() { printf("pepe"); }" con el resultado siempre de una pantalla en negro y la consola colgada.

Decidí probar con el script que hay en el wiki para el devkitGP2X, y de nuevo mas o menos lo mismo, construyo la toolchain sin ningun problema, compilo los programas sin problema (siemrpe que no tengan SDL) y luego pantalla en negro...

Algo estoy haciendo mal :), o algo me falta por hacer. Tengo que meter alguna libería en la consola, las SDL? en caso afirmativo cuales?Puede que compile bien, pero el enlazado (de librerías, ya sean las de estandar de C, las de SDL o cualquier otra) debes hacerlo de forma estática, porque por defecto lo enlazará de forma dinámica (y para ejecutarse necesitará de las librerías dinámicas/objetos compartidos *.so que uses en tu programa), así que tienes que decirle al compilador explicitamente que enlaze tu programa de forma estática pasandole el parametro -static ya sea en un makefile que uses para compilar/enlazar la aplicación (normalmente, por tenerlo todo ordenado, se incluye como un flag de LDFLAGS que luego le pasas al compilador GCC, ej: LDFLAGS=-static) o "a pelo" en la linea de comandos como una opción más de gcc (ej: gcc -static -o miprograma.gpe miprograma.c).

He presupuesto que ese es tu error, porque una pantalla negra en un programa compilado y luego enlazado dinámicamente es lo común, eso lo puedes saber con el comando file (ej: file miprograma.gpe) que te dirá si está dinámica o estáticamente enlazado. Otra cosa, como el enlazado estático hace que ocupe más el ejecutable (recuerda usar extensiones .gpe o .gpu para que el menu de GP2X las vea) ejecuta el comando strip para que ocupe menos, ya sea en tu makefile o directamente en la linea de comandos (ej: gp2x-strip miprograma.gpe), el mismo comando file te dirá si está "stripped" o no.

Acerbaturix
08/04/2006, 01:39
Buenas de nuevo.

Sorry, se me olvidó comentarlo antes. Pero si, todos los programas probados estaban compilados estaticamente. Algunos los "stripee" y otros no.

Otra cosa que no comenté es que tanto objdump, como file dicen lo mismo (en cuanto a info sobre arquitectura y demás) tanto de "mis" ejecutables que no funcionan, como de ejecutables descargados que si funcionan...

Uncanny
08/04/2006, 01:58
Un "hola mundo" tradicional, sin usar, por ejemplo, las funciones de la librería SDL (por cuestiones de hacer uso de un modo gráfico), no lo verás si lo ejecutas directamente desde el menu de GP2X (el programa funciona pero no se muestra la salida en pantalla, por ser un programa de terminal que no ha inicializado el modo de video), en cambio si lo ejecutas desde la utilidad STerm en la GP2X (ej: ./miprograma.gpe) deberías ver la salida con el Hola Mundo en pantalla.

Prueba a compilar este (http://www.gp32spain.com/foros/downloads.php?do=file&id=361) test, viene con un Makefile así que solo necesitas hacer make y listo, copiar los directorios que trae y el ejecutable .gpe que genera en tu SD y probarlo.

Acerbaturix
08/04/2006, 04:47
Un "hola mundo" tradicional, sin usar, por ejemplo, las funciones de la librería SDL (por cuestiones de hacer uso de un modo gráfico), no lo verás si lo ejecutas directamente desde el menu de GP2X (el programa funciona pero no se muestra la salida en pantalla, por ser un programa de terminal que no ha inicializado el modo de video)

Eso lo probé mas que nada con la idea de ver si se quedaba colgada o no. Basicamente era para descartar posibles problemas con librerias, etc. Intentar ejecutar un programa basico, que simplemente lo arrancase y saliese.



Prueba a compilar este (http://www.gp32spain.com/foros/downloads.php?do=file&id=361) test, viene con un Makefile así que solo necesitas hacer make y listo, copiar los directorios que trae y el ejecutable .gpe que genera en tu SD y probarlo.

Pues lo he intentado, pero esta vez si que me da errores al compilar, bueno, mas bien al linkar. En concreto con las librerías SDL para audio, un error un poco raro que la verdad no había visto antes...

Bueno, antes de poner los errores decír que he tenido que modificar un pelin el Makefile, puesto que esta pensando para usarse en Windows con otra toolchain. Estos son los comandos que acaba ejecutando el make, para que podais mirar si falta/sobra alguna cosa.

gp2x-g++ -I"/usr/local/gp2xdev/include" -I"/usr/local/gp2xdev/include/SDL" -DTARGET_GP2X -O2 -Wall -c -o sdltest.o sdltest.cpp

gp2x-g++ -static -o sdltest.gpe sdltest.o -L"/usr/local/gp2xdev/lib" -lSDL -lSDL_gfx --start-group -lSDL_ttf -lfreetype -lSDL --end-group -lSDL_image -ljpeg -lpng12 -lz --start-group -lSDL_mixer -lvorbisidec -lmikmod -lSDL --end-group -lgcc -lm -lc -lpthread -ldl

Y los errores, son esto


/usr/local/gp2xdev/lib/libSDL_mixer.a(music.o): In function `music_internal_position':
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:841: undefined reference to `SMPEG_skip'
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:843: undefined reference to `SMPEG_rewind'
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:844: undefined reference to `SMPEG_play'
/usr/local/gp2xdev/lib/libSDL_mixer.a(music.o): In function `music_internal_volume':
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:924: undefined reference to `SMPEG_setvolume'
/usr/local/gp2xdev/lib/libSDL_mixer.a(music.o): In function `music_internal_halt':
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:992: undefined reference to `SMPEG_stop'
/usr/local/gp2xdev/lib/libSDL_mixer.a(music.o): In function `music_internal_play':
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:750: undefined reference to `SMPEG_enableaudio'
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:751: undefined reference to `SMPEG_enablevideo'
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:752: undefined reference to `SMPEG_play'
/usr/local/gp2xdev/lib/libSDL_mixer.a(music.o): In function `Mix_FreeMusic':
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:663: undefined reference to `SMPEG_delete'
/usr/local/gp2xdev/lib/libSDL_mixer.a(music.o): In function `music_internal_playing':
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:1115: undefined reference to `SMPEG_status'
/usr/local/gp2xdev/lib/libSDL_mixer.a(music.o): In function `music_mixer':
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:318: undefined reference to `SMPEG_playAudio'
/usr/local/gp2xdev/lib/libSDL_mixer.a(music.o): In function `Mix_LoadMUS':
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:568: undefined reference to `SMPEG_new'
/mnt/data/home/acerbaturix/newtoolchain/SDL_mixer-1.2.6/music.c:573: undefined reference to `SMPEG_actualSpec'
collect2: ld returned 1 exit status
make: *** [sdltest.gpe] Error 1


Parece que hay algun problema al intentar linkar con la libreria SDL_mixer.

Por ultimo comentar que tuve que quitar '-lexpat' del comando de linkado, ya que no la tengo compilada, pues como parser XML la toolchain de ooPo trae libxml2.

< - EDITADO - >
Bueno, una pequeña búsqueda en google, y esto ya compila.

Resulta que había que añadir "-lsmpeg" al linkado. Lo malo... es que el resultado al ejecutarlo en la GP2X ha sido una pantalla negro :(

Seguro que lo esta mal es una tontería, la mitica tontería que te come horas y horas... estoy seguro de que todos los programadores de la sala sabrá de que hablo :D

¿alguna idea?

Y gracias por la ayuda.

Uncanny
08/04/2006, 05:31
Lo que no me has dicho es si probaste usar STerm para ejecutar los test que has hecho para ver si funcionan aunque sea el Hola Mundo.

Lo de de que no funciones el SDL Test ya si que es para sospechar, he compilado ese test bastantes veces con el toolchain creado en su dia con el script de ooPo y sin problema alguno, sería cosa de ver la salida de errores (¿quizás un "segmentation fault"?) habría que ejecutarlo desde el STerm o bien usar el GDB para depurar los posibles errores.

Estoy pensado que lo que puede fallar es las SDL, no se que versión viene en el último script de ooPo (es las aceleradas de Paeryn, pero depende de la versión), pero quizás haya algo más y no se inicialize bien el video.

Lo que más me extraña es que dices que usaste tanto el script de ooPo como el otro script de DevKitGP2X y obtienes el mismo resultado, ¿que distro usas? ¿Gentoo o Fedora Core por un casual? ¿el GCC nativo de tu sistema es 4.0.x o bien 4.1.x?

Acerbaturix
16/04/2006, 20:54
Siento no haber podido responder antes, pero he tenido una semanita bastante ajetreada con unos trabajillos... y no he podido probar nada.


Lo que no me has dicho es si probaste usar STerm para ejecutar los test que has hecho para ver si funcionan aunque sea el Hola Mundo.

Pues si, se me había olvidado eso. Bien, los programas que no utilizan SDL, solo las librerias básicas de C, parecen funcionar perfectamente desde STerm, sin ningun problema. Sin embargo, cuando ejecuto un programa con SLD, el programa se ejecuta, se queda la pantalla negra como siempre y si pulso start vuelve al STerm, pero se queda colgado y hay que apagar la consola.



Lo que más me extraña es que dices que usaste tanto el script de ooPo como el otro script de DevKitGP2X y obtienes el mismo resultado, ¿que distro usas? ¿Gentoo o Fedora Core por un casual? ¿el GCC nativo de tu sistema es 4.0.x o bien 4.1.x?

Pues si, utilizo Fedora Core 3 con GCC 3.4.4. No lo había pensando, pero quizas para compilar correctamente la toolchain haya que utilizar GCC 4.x

A ver si en un rato puebo en otro sistema en el que tengo GCC 4.

< - >
Buenas de nuevo,

He instalado GCC4, he recompilado la toolchain de Oopo (que por cierto, tienen que actualizar el script, ya que varias librerias han cambiado de versión y estan mal los enlaces). Y bueno, el resultado, exactamente el mismo.

Por cierto, he probado a hacer un programa tonto con un par de threads, para comprobar si tiraba bien con la libreria PThreads e ir aislando el problema, y todo perfecto, asique el problema debe de estar con las SDL.

¿Alguna idea?

Gracias de nuevo por todo.

Uncanny
16/04/2006, 22:53
Si crees que es de las SDL, prueba a sustutuir en la parte del script correspondientes a las SDL por la siguente URL que corresponde a las últimas SDL de Paeryn hasta ahora (al menos el código fuente):

http://paeryn.myby.co.uk/SDL-1.2.9-GP2X-0301.tar.bz2

No hace falta que recompiles el toolchain, puedes comentar (si usas el editor de KDE Kate o Kwriter es tan sencillo como seleccionar el texto y en Herramientas decirle Comentar) el resto de entradas y dejar sin comentar solo la parte correspondiente a SDL. Otra cosa más sencilla que puedes hacer es sustituir tus librerías precompiladas por una de estas:

http://paeryn.myby.co.uk/libSDL-0301.tar.bz2
http://paeryn.myby.co.uk/libSDL-0330.tar.bz2

Las últimas corrigen algunas cosas y añaden alguna función aun sin documentar (como SDL_GP2X_MiniDisplay()) porque Paeryn no ha sacado el código fuente aun de esta versión.

Acerbaturix
20/04/2006, 04:22
Si crees que es de las SDL, prueba a sustutuir en la parte del script correspondientes a las SDL por la siguente URL que corresponde a las últimas SDL de Paeryn hasta ahora (al menos el código fuente):

http://paeryn.myby.co.uk/SDL-1.2.9-GP2X-0301.tar.bz2

No hace falta que recompiles el toolchain, puedes comentar (si usas el editor de KDE Kate o Kwriter es tan sencillo como seleccionar el texto y en Herramientas decirle Comentar) el resto de entradas y dejar sin comentar solo la parte correspondiente a SDL. Otra cosa más sencilla que puedes hacer es sustituir tus librerías precompiladas por una de estas:

http://paeryn.myby.co.uk/libSDL-0301.tar.bz2
http://paeryn.myby.co.uk/libSDL-0330.tar.bz2

Las últimas corrigen algunas cosas y añaden alguna función aun sin documentar (como SDL_GP2X_MiniDisplay()) porque Paeryn no ha sacado el código fuente aun de esta versión.

Buenas,

Por fin he sacado un ratillo para ponerme a probar, he sustituido mis SDL compiladas por las que me has dicho (unas de las compiladas, para probar) y listo, ya funcionan correctamente los programas... asique al final el problema estaba con las SDL, la cuestion es que a saber que era exactamente... :confused:

Bueno, pues ahora solo me falta sacar algo de tiempo para ponerme a hacer cosilas [chuck2] :D

Espero traeros pronto noticias fresas y más preguntas, de nuevo gracias por todo y a ver si me paso un poquito más por el foro, que está movidito.

Un saludo.