PDA

Ver la versión completa : Nuevo pack de librerías SDL



Puck2099
14/12/2005, 18:00
Hola a todos,

Buscando en los foros de GP32, he conseguido un nuevo pack de librerías SDL que creo fue compilado ayer, así que espero estén corregidos los problemas actuales con la SDL_mixer.

Me he tomado la molestia de subirlo al ftp público: :)
servidor: gp32spain.com
usuario: public_ftp@gp32spain.com
password: publico

Está en: /Programacion/GP2X/sdl/ y el pack se llama theoddbot-libs-open2x-soft-float-beta2.tar.gz

Cuando salga del curro las probaré, pero si alguien quiere ir haciéndolo se agradecería comentara los resultados :)

Saludos

oCHARLIEo
14/12/2005, 18:30
Hola, yo la acabo de probar en linux y compila bien. He probado con un fichero xm y se reproduce perfecto. ^_^

Por cierto, estas librerias no incluyen smpeg, ni vorbisfile, ni vorbis, ni ogg y para resolver las dependencias he usado otra que si incluye: vorbisidec. Tendreis que modificar esto en el Makefile.

Puck2099
14/12/2005, 18:37
Hola, yo la acabo de probar en linux y compila bien. He probado con un fichero xm y se reproduce perfecto. ^_^

Por cierto, estas librerias no incluyen smpeg, ni vorbisfile, ni vorbis, ni ogg y para resolver las dependencias he usado otra que si incluye: vorbisidec. Tendreis que modificar esto en el Makefile.

Hola,

¿Puedes probar a ver si tiran los ogg, please? :)

Muchas gracias :brindis:

Wonder Boy
14/12/2005, 18:50
Hola a todos,

Buscando en los foros de GP32, he conseguido un nuevo pack de librerías SDL que creo fue compilado ayer, así que espero estén corregidos los problemas actuales con la SDL_mixer.

Me he tomado la molestia de subirlo al ftp público: :)
servidor: gp32spain.com
usuario: public_ftp@gp32spain.com
password: publico

Está en: /Programacion/GP2X/sdl/ y el pack se llama theoddbot-libs-open2x-soft-float-beta2.tar.gz

Cuando salga del curro las probaré, pero si alguien quiere ir haciéndolo se agradecería comentara los resultados :)

Saludos¿buscando en los foros dices? jeje, si te lo dije yo mam0n y te puse el link y todo.

hectorblanco
14/12/2005, 18:51
Por si alguien no quiere estar entrando al FTP, aqui esta el link al hilo original:
http://www.gp32x.com/board/index.php?showtopic=23159
El mensaje de las libs es el tercero.

Wild[Kyo]
14/12/2005, 18:54
¿buscando en los foros dices? jeje, si te lo dije yo mam0n.

xDDDDDDDDDDDDDDDDDD

Entonces solo necesitamos la de SDL_mixer, no? Las otras iban bien...no?

Kiwi
14/12/2005, 19:00
D'oh!! Ahora que había conseguido poner bien la movida del DevKit, todavía no me ha dado tiempo a probar cosillas y ya me ponéis nuevas versiones. XD Pregunta de novato, qué hago con las nuevas librerias, sustituir con ellas las que copie en las correspondientes carpetas del DevKit?

D_Skywalk
14/12/2005, 19:26
Jur! a ver si a la 3a va la vencida xD

Yo tambien estoy en el curro si alguno puede que pruebe un ogg y el joy!! xD


Por cierto, estas librerias no incluyen smpeg, ni vorbisfile, ni vorbis, ni ogg y para resolver las dependencias he usado otra que si incluye: vorbisidec. Tendreis que modificar esto en el Makefile.

Okis, aisas por el aviso ^^_

Un saludo y gracias wonderfeo ( :p ) & Puck ^^_

[EDITO]

Que chulas! tambien tienen soporte de XML, PDF y cairo para el SVG :D

hectorblanco
14/12/2005, 19:48
A mí no se me oyen ni los wav :ametra:
Habrá que esperar a otras definitivas.

Puck2099
14/12/2005, 19:54
¿buscando en los foros dices? jeje, si te lo dije yo mam0n y te puse el link y todo.

Joe, ¿de veras? Anoche creo que me diste otro link que no contenía la SDL_mixer, esta mañana he visto este archivo de casualidad mientras miraba el foro, pero si me lo diste ayer no me di cuenta :p

Bueno, pues gracias y perdón por no haberme fijado anoche, pero llevo unos días bastante moviditos :p

Saludos

Wonder Boy
14/12/2005, 20:07
Joe, ¿de veras? Anoche creo que me diste otro link que no contenía la SDL_mixer, esta mañana he visto este archivo de casualidad mientras miraba el foro, pero si me lo diste ayer no me di cuenta :p

Bueno, pues gracias y perdón por no haberme fijado anoche, pero llevo unos días bastante moviditos :p

SaludosTranquilo, esta vez te perdono :-P jeje

Un Saludo.

Puck2099
14/12/2005, 20:19
Bueno, acabo de probar a reproducir un ogg y perfecto :)

Parece que esta va a ser la buena :brindis:

A ver si la testeamos un poco más a fondo y alguien la pone como noticia, que los IDEs para Windows bien que salen en portada, pero estas librerías que son la clave para programar en SDL ni siquiera se mentan...

Wonder Boy
14/12/2005, 20:25
Un saludo y gracias wonderfeo ( :p )Gracias a tí guapín :-* por atiforrarme en su día de documentación supertécnica de la GP32 :-)
...aunque luego no le haya hecho caso X-D

miq01
14/12/2005, 20:44
Yo lo probé ayer por la noche (SDL_mixer) y sí funcionan los WAV pero hay un retardo de aproximadamente 1 segundo. No probé con OGG. A ver si luego puedo.

Puck2099
14/12/2005, 21:16
Por cierto, acabo de compilar el LK con estas nuevas librerías y ya me funciona perfectamente el botón del joystick :)

Saludos

miq01
15/12/2005, 00:33
D'oh!! Ahora que había conseguido poner bien la movida del DevKit, todavía no me ha dado tiempo a probar cosillas y ya me ponéis nuevas versiones. XD Pregunta de novato, qué hago con las nuevas librerias, sustituir con ellas las que copie en las correspondientes carpetas del DevKit?
Yo he copiado los directorios include y lib machacando lo que había antes. Haz copia de seguridad de esos directorios por si acaso.

Y bueno, ya he podido probar un poco más y con el DevKit para Windows, los OGG no tiran (la aplicación se queda colgada) y los WAV y los MP3 sí, pero con una latencia bastante grande (más de 1 segundo, diría yo).

Pero veo que a Puck2099 sí le funcionan los OGG, así que ya no entiendo nada... :)

Kiwi
15/12/2005, 00:40
Graciasss, esta noche lo pruebo.
A todo esto, lo del DevKit para Windows también sale en el otro topic?? Es que necesito ponerlo pero no recuerdo si lo vi colgado por allí.

Puck2099
15/12/2005, 00:51
Pero veo que a Puck2099 sí le funcionan los OGG, así que ya no entiendo nada... :)

Te adjunto mi ejemplo y pruebas a ver si no te funciona porque no le pasas bien las librerías o algo, ¿vale? :)

Pruébalo y coméntame si te funciona, please :)

miq01
15/12/2005, 01:06
Te adjunto mi ejemplo y pruebas a ver si no te funciona porque no le pasas bien las librerías o algo, ¿vale? :)

Pruébalo y coméntame si te funciona, please :)
¡Gracias!

C0ño, pues sí que tira tu demo... De momento he visto que tu LIBS es diferente del mío (he cambiado paths solamente):

- El tuyo: LIBS = -L"C:/devkitGP2X/lib" -lSDLmain -lSDL_image -lpng -ljpeg -lz -lc -lm -lgcc -lSDL_mixer -lvorbisidec -lmikmod -lSDL -lpthread

- El mío: LIBS = -L"C:/devkitGP2X/lib" -lSDL_image -ljpeg -lpng12 -lz -lgcc -lSDLmain -lSDL_mixer -lsmpeg -lvorbisfile -lpthread -lvorbis -logg -lmikmod -lSDL -lpthread

O sea que yo uso vorbisfile y algunos más y tú solamente vorbisidec (tal como ya explicó alguien en este mismo hilo). A ver si va a ser eso...

Sigo probando y edito en un rato.

BuD
15/12/2005, 01:08
Por cierto, acabo de compilar el LK con estas nuevas librerías y ya me funciona perfectamente el botón del joystick :)

Saludos
Dios! LK! Intente jugar con el emu de la GP32 ya q yo no la tengo, pero rulaba mal. Quiero ver esa maravilla made in Puck2099's mind!
A que esperas para publicarlo!!! :babea: :babea: :babea:

Puck2099
15/12/2005, 01:09
A que esperas para publicarlo!!! :babea: :babea: :babea:

Pues a tener algo de tiempo para pulir algunos detalles.

De todos modos, si quieres, puedes pasarte por el Irc y pedirme una beta con el progreso actual :)

Saludos

BuD
15/12/2005, 01:21
Y a parte de SDL_mixer, las demas SDL van bien? estan portadas SDL_image y SDL_gfx?
Tambien seria interesante tener las SDL_svg o algo por el estilo, asi me olvido de poner diferentes sprites rotados. (Sí sí, se que SDL_gfx lo hace, pero queda algo warro) Es mas, un juego hecho completamente con graficos SVG seria un gran logro, y luego podrias jugar a ese juego a fullscreen en el ordenador a la resolucion que quisieras. :babea:

miq01
15/12/2005, 01:22
Pruébalo y coméntame si te funciona, please :)
Pues nada, probado. Sí funcionan los OGG, aunque por alguna razón antes no podía. A pesar de eso, sigue habiendo el retardo de más de 1 segundo. Diría que en tu demo también aparece ese retardo, pero es difícil de saber porque la música empieza a sonar al arrancar la aplicación. ¿Has probado algún efecto de sonido que, por ejemplo, suene cuando le das a algún botón? Lo digo porque, por ahora, la única diferencia entre tu código y el mío es que tú llamas a Mix_LoadMUS y Mix_PlayMusic y yo llamo a Mix_LoadWAV y [I]Mix_PlayChannel[I]...

Respecto al retardo, da la impresión de que lo almacena en un buffer, y lo hace sonar en cuanto puede. Si muevo, por ejemplo, 4 veces el stick a la derecha, al principio tarda 1 segundo y pico, y luego hace sonar 4 veces el mismo sonido, uno detrás de otro, ya sin retardo.

miq01
15/12/2005, 01:24
Y a parte de SDL_mixer, las demas SDL van bien? estan portadas SDL_image y SDL_gfx?
SDL_gfx no sé, pero SDL_image sí va bien.

Puck2099
15/12/2005, 01:25
Y a parte de SDL_mixer, las demas SDL van bien? estan portadas SDL_image y SDL_gfx?
Tambien seria interesante tener las SDL_svg o algo por el estilo, asi me olvido de poner diferentes sprites rotados. (Sí sí, se que SDL_gfx lo hace, pero queda algo warro) Es mas, un juego hecho completamente con graficos SVG seria un gran logro, y luego podrias jugar a ese juego a fullscreen en el ordenador a la resolucion que quieras. :babea:

No he probado más SDL que la básica, image, y algo de mixer, pero están portadas, entre otras, la SDL_gfx y SDL_svg que mencionas.

Saludos

Wild[Kyo]
15/12/2005, 01:31
No he probado más SDL que la básica, image, y algo de mixer, pero están portadas, entre otras, la SDL_gfx y SDL_svg que mencionas.

Saludos

Puck2099, el ogg de la demo donde lo has sacado? Es que esta tope de chula la cancion... XD

Puck2099
15/12/2005, 01:34
']Puck2099, el ogg de la demo donde lo has sacado? Es que esta tope de chula la cancion... XD

Pues no sé, fue el primero que encontré buscando por Internet :p

miq01
15/12/2005, 01:47
Perdón por tanto mensaje...

Bueno, ya lo he conseguido. He tenido que cambiar la llamada

Mix_OpenAudio(22050, AUDIO_S16, 2, 4096)
por

Mix_OpenAudio(22050, AUDIO_S16, 2, 128).
O sea que he tenido que ponerle un chunksize mucho menor, y aún así el sonido no se entrecorta en ningún momento, y además ahora ya no hay retardo. ¡Gracias Puck2099!

Ah, no sé si es por lo del 128, pero se oye en mono (usando auriculares) a pesar de que los archivos son estéreo y que desde el reproductor de la consola sí se oyen bien.

Puck2099
15/12/2005, 01:51
Apunto lo del chunksize, muchas gracias :brindis:

Lo de que suene en mono no es cosa de tu programa, sino del kernel chapucero... hay por ahí un parche que lo arregla :)

Saludos

miq01
15/12/2005, 02:16
Apunto lo del chunksize, muchas gracias :brindis:
:brindis: :brindis: :brindis:


Lo de que suene en mono no es cosa de tu programa, sino del kernel chapucero... hay por ahí un parche que lo arregla :)
Pues sí. Yo pensaba que era cosa del chuncksize pero acabo de probar con 4096 y sigue en mono. Creía que ese parche lo que hacía era que por los altavoces sonara en estéreo.

Por cierto, Hectorblanco, prueba tu también con el Makefile de Puck2099 y cambia el valor del chunksize, y seguro que te funciona.

Topochan
15/12/2005, 02:39
Pues a mi el tema me cabrea pues seguia los pasos del que ha colocado el pack :llorosr: ... un dia le enviare un mail para saber que hizo.... bueno a ver si llega la nueva remesa...

hectorblanco
15/12/2005, 02:50
:brindis: :brindis: :brindis:


Pues sí. Yo pensaba que era cosa del chuncksize pero acabo de probar con 4096 y sigue en mono. Creía que ese parche lo que hacía era que por los altavoces sonara en estéreo.

Por cierto, Hectorblanco, prueba tu también con el Makefile de Puck2099 y cambia el valor del chunksize, y seguro que te funciona.

Ahora lo acabo de leer, y en un rato lo probaré a ver si hay suerte y funciona el audio. Así solo tendré que meterme en el tema del control.

EDITO:

¡Ya funciona! [wei4]
Gracias a todos.

luego publicaré la nueva versión, que si puedo, corregirá tambien lo del control.

Otra cosa.
¿Es normal que cree un fichero llamado 'music.raw'? Es que no me acaba de convencer eso.

miq01
15/12/2005, 03:46
luego publicaré la nueva versión, que si puedo, corregirá tambien lo del control.

Otra cosa.
¿Es normal que cree un fichero llamado 'music.raw'? Es que no me acaba de convencer eso.
Creo que estos próximos días va a haber avalancha de novedades, y todas con sonido... :)

Respecto al fichero ese, parece que lo crean estas SDL_mixer en el directorio del ejecutable. No sé lo que es, pero a mí no me ha dado ningún problema y llevo un rato haciendo pruebas.

Cuando os pongáis con el control del volumen, decidme si os funciona. A mí me va bien bajarlo, pero no subirlo, y he revisado el código 50000 veces. Muy raro... Ah, y me pasa tanto en Windows como en GP2X.

A600
15/12/2005, 04:29
He vuelto a compilar el interlogic con estas librerías, a ver si funciona ahora.

hectorblanco
15/12/2005, 04:37
Creo que estos próximos días va a haber avalancha de novedades, y todas con sonido... :)

Respecto al fichero ese, parece que lo crean estas SDL_mixer en el directorio del ejecutable. No sé lo que es, pero a mí no me ha dado ningún problema y llevo un rato haciendo pruebas.

Cuando os pongáis con el control del volumen, decidme si os funciona. A mí me va bien bajarlo, pero no subirlo, y he revisado el código 50000 veces. Muy raro... Ah, y me pasa tanto en Windows como en GP2X.

Es que me mosquea un poquito lo del archivo porque a ver si lo va a usar para generar los flujos de sonido o musica ahí, y con eso se puede petar rapidamente la SD.

ArTo
15/12/2005, 04:54
He vuelto a compilar el interlogic con estas librerías, a ver si funciona ahora.

Me da este error


Fatal signal: Segmentation Fault (SDL Parachute Deployed)

Saludos...

oCHARLIEo
15/12/2005, 04:54
¡Gracias!

C0ño, pues sí que tira tu demo... De momento he visto que tu LIBS es diferente del mío (he cambiado paths solamente):

- El tuyo: LIBS = -L"C:/devkitGP2X/lib" -lSDLmain -lSDL_image -lpng -ljpeg -lz -lc -lm -lgcc -lSDL_mixer -lvorbisidec -lmikmod -lSDL -lpthread

- El mío: LIBS = -L"C:/devkitGP2X/lib" -lSDL_image -ljpeg -lpng12 -lz -lgcc -lSDLmain -lSDL_mixer -lsmpeg -lvorbisfile -lpthread -lvorbis -logg -lmikmod -lSDL -lpthread

O sea que yo uso vorbisfile y algunos más y tú solamente vorbisidec (tal como ya explicó alguien en este mismo hilo). A ver si va a ser eso...

Sigo probando y edito en un rato.

Si es lo que decia antes, estas librerias no se han compilado con smpeg, ni con vorbisfile, ni con vorbis, ni ogg... han aplicado el parche de tremor, con lo que usa solo la libreria vorbisidec. Si te limitas a sobreescribir los ficheros tendras en tu lib librerias de las que no dependen las nuevas, y si las usas para compilar, no creo q funciona nada bien... ^_^

Lo mejor que podeis hacer es renombrar todo el dir y sustituirlo...

Puck2099
15/12/2005, 05:04
Es que me mosquea un poquito lo del archivo porque a ver si lo va a usar para generar los flujos de sonido o musica ahí, y con eso se puede petar rapidamente la SD.

¿Y qué es exactamente lo que causa que se cree ese fichero que comentáis? Lo digo porque en mi demo no se crea ningún fichero...

hectorblanco
15/12/2005, 05:09
Nu se. Yo solo utilizo el PlayWav y funciones así, ninguna de musica.
Repasaré la inicializacion de la mixer a ver.

alberdi
15/12/2005, 16:59
He probado a poner un mod de fondo, y un wav cada vez que pulso el stick de movimiento, y funciona [wei4]
Ahora voy a probar a poner un mp3 de fondo, a ver que tal.

De todas formas, me va muy lento, pero creo que es por cómo dibujo en pantalla, tendré que optimizarlo.

Kiwi
15/12/2005, 17:23
Uf, algo he liado. He compilado el mismo ejemplo que antes me tiraba (del topic de Miq01 para compilar desde Windows) y ahora me da estos errores:


Compilador: GP2X
Building Makefile: "D:\Proyectos Dev-C++\Makefile.win"
Ejecutando make...
make.exe -f "D:\Proyectos Dev-C++\Makefile.win" all
arm-linux-gcc.exe -c main.cpp -o main.o -I"C:/devkitPro/devkitGP2X/include"

arm-linux-gcc.exe main.o -o "prueba_gp2x.exe" -L"C:/devkitPro/devkitGP2X/bin" C:/devkitPro/devkitGP2X/lib/libSDL.a C:/devkitPro/devkitGP2X/lib/libSDLmain.a -static

C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_systhread.o): In function `RunThread':
SDL_systhread.c:(.text+0x20): undefined reference to `pthread_exit'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_systhread.o): In function `SDL_SYS_CreateThread':
SDL_systhread.c:(.text+0x4c): undefined reference to `pthread_attr_init'
SDL_systhread.c:(.text+0x84): undefined reference to `pthread_attr_setdetachstate'

SDL_systhread.c:(.text+0xac): undefined reference to `pthread_create'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_systhread.o): In function `SDL_SYS_SetupThread':
SDL_systhread.c:(.text+0x184): undefined reference to `pthread_sigmask'
SDL_systhread.c:(.text+0x194): undefined reference to `pthread_setcanceltype'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_systhread.o): In function `SDL_ThreadID':
SDL_systhread.c:(.text+0x1b4): undefined reference to `pthread_self'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_systhread.o): In function `SDL_SYS_WaitThread':
SDL_systhread.c:(.text+0x1e8): undefined reference to `pthread_join'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_systhread.o): In function `SDL_SYS_KillThread':
SDL_systhread.c:(.text+0x210): undefined reference to `pthread_cancel'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_sysmutex.o): In function `SDL_CreateMutex':
SDL_sysmutex.c:(.text+0x40): undefined reference to `pthread_mutexattr_init'
SDL_sysmutex.c:(.text+0x50): undefined reference to `pthread_mutexattr_setkind_np'
SDL_sysmutex.c:(.text+0x64): undefined reference to `pthread_mutex_init'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_sysmutex.o): In function `SDL_DestroyMutex':
SDL_sysmutex.c:(.text+0xe0): undefined reference to `pthread_mutex_destroy'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_sysmutex.o): In function `SDL_mutexP':
SDL_sysmutex.c:(.text+0x144): undefined reference to `pthread_mutex_lock'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_sysmutex.o): In function `SDL_mutexV':
SDL_sysmutex.c:(.text+0x1e4): undefined reference to `pthread_mutex_unlock'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_syssem.o): In function `SDL_CreateSemaphore':
SDL_syssem.c:(.text+0x4c): undefined reference to `sem_init'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_syssem.o): In function `SDL_DestroySemaphore':
SDL_syssem.c:(.text+0xe0): undefined reference to `sem_destroy'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_syssem.o): In function `SDL_SemTryWait':
SDL_syssem.c:(.text+0x148): undefined reference to `sem_trywait'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_syssem.o): In function `SDL_SemWait':
SDL_syssem.c:(.text+0x1d0): undefined reference to `sem_wait'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_syssem.o): In function `SDL_SemValue':
SDL_syssem.c:(.text+0x34c): undefined reference to `sem_getvalue'
C:/devkitPro/devkitGP2X/lib/libSDL.a(SDL_syssem.o): In function `SDL_SemPost':
SDL_syssem.c:(.text+0x3c4): undefined reference to `sem_post'

make.exe: *** [prueba_gp2x.exe] Error 1

Ejecución Terminada

O alguna pijada he hecho mal (o me he olvidado cambiar) o me veo volviendo a las librerías que tenía antes.

Puck2099
15/12/2005, 17:24
Copia mi ruta de librerías o pon la última el -lpthread.

Saludos

alberdi
15/12/2005, 17:26
vaya, los mp3 no funcionan :(

por otro lado, cómo había que hacer para liberar el sonido? Pq después de salir de mi programita, no se escucha nada.

Puck2099
15/12/2005, 17:37
vaya, los mp3 no funcionan :(

por otro lado, cómo había que hacer para liberar el sonido? Pq después de salir de mi programita, no se escucha nada.

¿Usas un SDL_Quit() al final del programa?

Saludos

alberdi
15/12/2005, 17:47
¿Usas un SDL_Quit() al final del programa?

Saludos

Ya está solucionado. Tenía esto:



SDL_FreeSurface (screen);
chdir ("/usr/gp2x");
execl ("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL);
SDL_Quit();


por lo que sdl_quit no se ejecutaba. Lo he cambiado por esto




SDL_FreeSurface (screen);
SDL_Quit();
chdir ("/usr/gp2x");
execl ("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL);


y todo perfecto :brindis: :brindis:

se sabe algo del mp3?

Kiwi
15/12/2005, 17:52
Gracias Puck, todo correcto ahora. :)

Kiwi
15/12/2005, 18:16
Ups, no tan correcto. El ejemplo que he probado, en el que el único include es "<SDL/SDL.h>" tira bien. Sin embargo trato de compilar tu ejemplo donde metes "SDL.h" y "SDL_mixer.h" y ya casca, dice "No such file or directory" en ambos.
Supongo que no habré hecho bien lo de las rutas. Yo lo que he hecho ha sido ir a las opciones del proyecto, y en la pestaña de parámetros, a linker le he añadido el -lpthread. Vamos que mi linker está así:

C:/devkitGP2X/lib
-static
-lpthread

No sé si es que esas rutas las tenía que añadir en otro sitio o qué.


Siento tanta pregunta de newbie, pero entre que ando descolgadillo ya de la programación, y que es la primera vez que uso este entorno y estos devkits... :( XD

Edito:
Bueno, eso del linker de arriba me da que está mal, si pongo el mismo que estaba usando en el otro proyecto sería:
C:/devkitPro/devkitGP2X/lib/libSDL.a
C:/devkitPro/devkitGP2X/lib/libSDLmain.a
-static
-lpthread

Aún así sigue sin tirar.

miq01
15/12/2005, 18:43
Ups, no tan correcto. El ejemplo que he probado, en el que el único include es "<SDL/SDL.h>" tira bien. Sin embargo trato de compilar tu ejemplo donde metes "SDL.h" y "SDL_mixer.h" y ya casca, dice "No such file or directory" en ambos.
Añade al path de los includes el directorio donde se encuentren tus SDL (generalmente en include/SDL) y prueba a ver si hay suerte.

Puck2099
15/12/2005, 18:47
Ups, no tan correcto. El ejemplo que he probado, en el que el único include es "<SDL/SDL.h>" tira bien. Sin embargo trato de compilar tu ejemplo donde metes "SDL.h" y "SDL_mixer.h" y ya casca, dice "No such file or directory" en ambos.


Prueba a cambiar en mi ejemplo los "SDL.h" y "SDL_mixer.h" por "<SDL/SDL.h>" y "<SDL/SDL_mixer.h>".

Saludos

Kiwi
15/12/2005, 19:07
Mmm,lo de poner SDL/SDL.h antes sí lo probé y ese funcionó, lo que pasa es que creía que debería tirar tal como lo ponéis vosotros si se supone que lo estoy configurando igual.

Lo malo es que ahora me sale algo más raro aún, xDD

Permission denied
D:\Proyectos Dev-C++\demo3\Makefile.win [Build Error] [ejemplo_puck.exe] Error 1


Resultado de la depuración:

Compilador: GP2X
Building Makefile: "D:\Proyectos Dev-C++\demo3\Makefile.win"
Ejecutando make...
make.exe -f "D:\Proyectos Dev-C++\demo3\Makefile.win" all
arm-linux-g++.exe demo3.o -o "ejemplo_puck.exe" -L"C:/devkitPro/devkitGP2X/bin" C:/devkitPro/devkitGP2X/lib -static -lpthread

c:\devkitpro\devkitgp2x\bin\..\lib\gcc\arm-linux\4.0.2\..\..\..\..\arm-linux\bin\ld.exe: C:/devkitPro/devkitGP2X/lib: No such file: Permission denied

make.exe: *** [ejemplo_puck.exe] Error 1

Ejecución Terminada

hectorblanco
15/12/2005, 19:14
Una cosa.
¿Se podrá compilar sin -static y que funcionen los juegos?
Es que tal cual ahora ocupan como bastante los ejecutables, y no me mola el asunto.
¿para esto habrá que cambiar las librerias en la consola?

;)

miq01
15/12/2005, 19:31
Prueba a cambiar en mi ejemplo los "SDL.h" y "SDL_mixer.h" por "<SDL/SDL.h>" y "<SDL/SDL_mixer.h>".
Yo antes lo tenía así, porque es tal como se suelen incluir los .h que no son propios de la aplicación, pero leí no sé dónde que para hacer un programa SDL que funcione en cualquier parte mejor dejarlo entre comillas y sin el directorio. No entiendo por qué, pero el caso es que yo acabé sucumbiendo... :)


Una cosa.
¿Se podrá compilar sin -static y que funcionen los juegos?
Es que tal cual ahora ocupan como bastante los ejecutables, y no me mola el asunto.
¿para esto habrá que cambiar las librerias en la consola?
Si algún día tenemos librerías SDL estándar para GP2X sí. Pero por lo que parece deben estar optimizándolas (lo digo por la release de theoddbot, que es beta).

Uncanny
15/12/2005, 19:46
Una cosa.
¿Se podrá compilar sin -static y que funcionen los juegos?
Es que tal cual ahora ocupan como bastante los ejecutables, y no me mola el asunto.
¿para esto habrá que cambiar las librerias en la consola?

;)La diferencia entre usar -static o no, sería hacer un linkado dinámico a las bibliotecas/librerías, si haces static no necesitarías ninguna librería precompilada en el path correspondiente donde se guardan las librerías dinámicas (de SDL o las que uses) en la propia GP2X, en caso contrario, sin poner el parametro -static neceistarás las librerías "shared object", de extensión *.so, en el directorio correspondiente a las lib en la GP2X para que funcione.

Tal y como lo preguntas seguro que sabrás si ocupan bastante los ejecutables es porque enlazas el código binario de las funciones de las librerías que usas (*.a) cuando se compila y enlazan de forma estática en el ejecutable tipo ELF que se genera, de forma dinámica ocupa menos en disco, pero como dije antes necesitarás tener almacenada en la GP2X las librerías compartidas para cargarlas en memoria y poder funcionar, para ejecutar un solo juego no merece la pena, pero en general (como en un sistema Linux normal) usar el enlazado dinámico si resulta una ganancia importante de dsco, por ejemplo, 10 juegos compilados+linkados estáticamente y los mismos 10 compilados+linkados dinámicamente, usando las mismas versiones de las librerías en todos, resulta que los linkados dinámicamente ocuparan la mitad o menos que los compilados estáticamente, lo que ya si resulta una perdida de espacio considerable pues de una forma u otra el rendimiento de cada juego y uso de memoria principal de la GP2X es práticamente el mismo.

P.D: Desconozco como ha compilado theoddbot esas librerías, versión o compatibilidad, o si puedes usar sin problemas las librerías dinámicas tanto para el enlaze dinámico en el proceso de construcción de tus programas como para su uso desde la GP2X para cargarlas en memoria.

miq01
15/12/2005, 19:50
Uncanny, ya que estamos, ¿qué es un ejecutable tipo ELF?

Uncanny
15/12/2005, 20:03
Uncanny, ya que estamos, ¿qué es un ejecutable tipo ELF?ELF son las siglas de Executable and Linkable Format, se refiere a un estandar de archivos binarios (codigo objeto) usados en sistemas UNIX y tipo UNIX como Linux o *BSD (posterior a assembler output más conocida como a.out).

En general puedes ver un archivo con formato ELF como que es a la vez "Ejecutable y Enlazable", el mismo código objeto puede servir para ambas cosas, es decir, no es diferente el formato del código objeto generado para enlazar (como el de una librería que enlazamos en nuestro programa) que el que se puede generar para ser ejecutado directamente. El exquema de un archivo tipo ELF es bastante simple, y en la sección de documentación de la web de ARM o por internet tienes el exquema.

Por ejemplo, en Windows no se usa ELF sino PE (Portable and Executable) y es algo más complejo que el ELF, en parte por su intención de mantener cierta compatibilidad con MS-DOS.

miq01
15/12/2005, 20:13
Lo que aprende uno... :) Muchas gracias por la explicación. ¿Eso significa que si compilo para GP2X mediante gcc/g++ obtengo un binario ELF? Quiero decir, ¿viene "de serie" en los gcc/g++ para Linux? O quizás depende del caso, o hay que pasarle algún parámetro al compilador...

Uncanny
15/12/2005, 20:21
Lo que aprende uno... :) Muchas gracias por la explicación.De nada :D
¿Eso significa que si compilo para GP2X mediante gcc/g++ obtengo un binario ELF? Quiero decir, ¿viene "de serie" en los gcc/g++ para Linux? O quizás depende del caso, o hay que pasarle algún parámetro al compilador...Si, el compilador cruzado que estás usando (basando en GCC) para generar código objeto en arquitecturas ARM es de tipo ELF (ya que GP2X usa Linux y entiende este tipo de formato), no necesitas pasarle ningún parametro especial, de hecho si construyes tu propia toolchain, en el paso de crear las herramientas (binutils y GCC) el "sistema objetivo" (el "target") es "arm-elf-linux", lo cual ya lo dice todo :)

EDITO:

He encontrado un articulo técnico en Linux Journal (http://www.linuxjournal.com/article/1060) por si te interesa saber un poco más del tema de ELF en Linux.

Puck2099
15/12/2005, 20:24
Uncanny, ¿qué tal estás puesto con los Makefiles?

Como sé que controlas, a ver si me puedes echar una mano con el Makefile del Exult... :)

Saludos :brindis:

Uncanny
15/12/2005, 20:32
Uncanny, ¿qué tal estás puesto con los Makefiles?

Como sé que controlas, a ver si me puedes echar una mano con el Makefile del Exult... :)

Saludos :brindis:Pues en unos meses desde que me peleaba con ellos, ya le tengo menos "pánico" a los joios xDD

¿Que problemas tienes? Sea como sea pasamelo si quieres, después de comer y delante de mi ordenata (estoy en otro y en Windrows...) lo miro, en todo caso solo podría hacer pruebas en mi sistema no en la GP2X aun :p

hectorblanco
15/12/2005, 20:39
Gracias Uncanny.
ya sabia la diferencia entre linkado estatico y dinamico, pero me referia a si los juegos que yo compile con las libs de theodbot me irian dinamicamente con las que tengo instaladas en la máquina, que son las de NK.

Y otra cosa. ¿Hay por algun ejemplo bueno de como programar el joy de la gp2x?
Es que no hay manera de que me deje mover la nave y disparar al mismo tiempo (son controles distintos, claro).

Uncanny
15/12/2005, 21:09
Gracias Uncanny.
ya sabia la diferencia entre linkado estatico y dinamico, pero me referia a si los juegos que yo compile con las libs de theodbot me irian dinamicamente con las que tengo instaladas en la máquina, que son las de NK.Eso he supuesto, pero he optado por ser explicativo para obviar lo mínimo :), aun así como te he dicho todo depende de las versiones de cada librería que hayas usado tu (para enlazar en tus programas, dinámicamente) y las que tengas instaladas (y de quien, NK, theoddbot o propias). El comando ldd (man ldd) te puede dar más info, no estoy seguro sin en las toolchain de Puck o de D_Skywalk viene este comando (de GLIBC) pero si no es así en su lugar puedes usar (seguro que los tiene por que son de Binutils) en arm-*-readelf -a "tu_programa_compilado" | grep "Shared" o arm-*-readelf -d tu_programa_compilado te puede dar algo más de info sobre las librerías que usa y de las que depende tu programa.

Y otra cosa. ¿Hay por algun ejemplo bueno de como programar el joy de la gp2x?
Es que no hay manera de que me deje mover la nave y disparar al mismo tiempo (son controles distintos, claro).Creo que en el Wiki venía algo de esto, pero no estoy seguro.

hectorblanco
15/12/2005, 22:01
Eso he supuesto, pero he optado por ser explicativo para obviar lo mínimo :), aun así como te he dicho todo depende de las versiones de cada librería que hayas usado tu (para enlazar en tus programas, dinámicamente) y las que tengas instaladas (y de quien, NK, theoddbot o propias). El comando ldd (man ldd) te puede dar más info, no estoy seguro sin en las toolchain de Puck o de D_Skywalk viene este comando (de GLIBC) pero si no es así en su lugar puedes usar (seguro que los tiene por que son de Binutils) en arm-*-readelf -a "tu_programa_compilado" | grep "Shared" o arm-*-readelf -d tu_programa_compilado te puede dar algo más de info sobre las librerías que usa y de las que depende tu programa.
Creo que en el Wiki venía algo de esto, pero no estoy seguro.

Gracias por la info.
Lo de la wiki ya la he usado, pero no hay ningún ejemplo de la situación en que hayan dos botones pulsados al mismo tiempo.

Puck2099
15/12/2005, 22:07
Gracias por la info.
Lo de la wiki ya la he usado, pero no hay ningún ejemplo de la situación en que hayan dos botones pulsados al mismo tiempo.

Esta noche te pongo un ejemplo, a ver si te vale.

Por cierto, ¿podrías pegar aquí el código de cómo intentas detectar la pulsación de dos botones? A ver si hay algo mal que podamos arreglar :)

Saludos

hectorblanco
15/12/2005, 22:10
Esta noche te pongo un ejemplo, a ver si te vale.

Por cierto, ¿podrías pegar aquí el código de cómo intentas detectar la pulsación de dos botones? A ver si hay algo mal que podamos arreglar :)

Saludos

Es bastante largo todo ello, pero está disponible con el juego (vienen los sources) en el archivo screens/screen_game.c

;)

Uncanny
15/12/2005, 22:21
Una cosa Puck, ¿te estás basando en el Exult v1.2? ¿Has hecho algún cambio significativo en el código o solo intentas modificar el Makefile? Es que me he bajado los fuentes y si no has hecho cambios en el que te estás basando, miro el Makefile y los necesario a ver que se puede hacer.

P.D: hectorblanco, respecto al código de tu juego, te refieres a tu "Debian Vs Pimientos 2X", ¿no?

hectorblanco
15/12/2005, 22:23
Una cosa Puck, ¿te estás basando en el Exult v1.2? ¿Has hecho algún cambio significativo en el código o solo intentas modificar el Makefile? Es que me he bajado los fuentes y si no has hecho cambios en el que te estás basando, miro el Makefile y los necesario a ver que se puede hacer.

P.D: hectorblanco, respecto al código de tu juego, te refieres a tu "Debian Vs Pimientos 2X", ¿no?

Sip.

Aunque si puedo hoy o mañana sacaré mi visión personal del pong :P

Kiwi
16/12/2005, 06:38
Bueno bueno, no sé qué rayos me pasaría esta mañana pero el caso es que ya tengo arreglado casi todo lo que me ocurría antes. Al final estoy poniendo esto en el linker de los proyectos y compila bien, y tira en la GP también:


C:/devkitPro/devkitGP2X/lib/libSDL.a
C:/devkitPro/devkitGP2X/lib/libSDLmain.a
-static
-lpthread

Eso sí, haciendo los includes con aquello de <SDL/SDL.h> en vez de "SDL.h". Debería preocuparme por solucionar esto, o puedo funcionar perfectamente utilizando el primer método sin que me de complicaciones en el futuro?

Luego eso sí, sigo teniendo un pequeño problema compilando la demo de Puck, pero esta vez ya tiene bastante mejor pinta que las movidas que estaba teniendo a la mañana:


demo3.o: In function `main':
demo3.c:(.text+0x174): undefined reference to `Mix_OpenAudio'
demo3.c:(.text+0x17c): undefined reference to `Mix_LoadMUS'
demo3.c:(.text+0x190): undefined reference to `Mix_PlayMusic'

make.exe: *** [demo_puck.exe] Error 1

Eso me dice... he probado a añadir "C:/devkitPro/devkitGP2X/lib/libSDL_mixer.a" al linker del proyecto por si sonaba de la flauta, pero así me da todavía más errores así que... sabéis a qué se deben esos tres errores de arriba?

hectorblanco
16/12/2005, 06:47
Bueno bueno, no sé qué rayos me pasaría esta mañana pero el caso es que ya tengo arreglado casi todo lo que me ocurría antes. Al final estoy poniendo esto en el linker de los proyectos y compila bien, y tira en la GP también:


C:/devkitPro/devkitGP2X/lib/libSDL.a
C:/devkitPro/devkitGP2X/lib/libSDLmain.a
-static
-lpthread

Eso sí, haciendo los includes con aquello de <SDL/SDL.h> en vez de "SDL.h". Debería preocuparme por solucionar esto, o puedo funcionar perfectamente utilizando el primer método sin que me de complicaciones en el futuro?

Luego eso sí, sigo teniendo un pequeño problema compilando la demo de Puck, pero esta vez ya tiene bastante mejor pinta que las movidas que estaba teniendo a la mañana:


demo3.o: In function `main':
demo3.c:(.text+0x174): undefined reference to `Mix_OpenAudio'
demo3.c:(.text+0x17c): undefined reference to `Mix_LoadMUS'
demo3.c:(.text+0x190): undefined reference to `Mix_PlayMusic'

make.exe: *** [demo_puck.exe] Error 1

Eso me dice... he probado a añadir "C:/devkitPro/devkitGP2X/lib/libSDL_mixer.a" al linker del proyecto por si sonaba de la flauta, pero así me da todavía más errores así que... sabéis a qué se deben esos tres errores de arriba?

Lo del include simplemente le estás diciendo con <SDL/SDL.h> es que busque el archivo SDL.h en la carpeta $INCLUDE/SDL/...

Lo último es que debe faltar algo en makefile que evita que pille bien el sdl_mixer.

Puck2099
16/12/2005, 15:05
Una cosa Puck, ¿te estás basando en el Exult v1.2? ¿Has hecho algún cambio significativo en el código o solo intentas modificar el Makefile? Es que me he bajado los fuentes y si no has hecho cambios en el que te estás basando, miro el Makefile y los necesario a ver que se puede hacer.

Hola,

Sí, me estoy basando en el Exult 1.2, porque no sé si las versiones del CVS serán "finalizables".

De momento no he hecho ningún cambio en el código, solo quiero poder compilarlo para la GP2X y luego ya empezar a tocar código.

Anoche hice unos cuantos intentos más, creo que el Makefile "principal" va llamando a Makefiles en los subdirectorios, así que también tendré que modificar esos.

Al final me dio un error un poco raro en un .h, a ver si cuando llegue a casa te lo copio.

Por cierto, estoy usando el toolchain del gcc 4.0.2 para la GP2X que nos bajamos del CVS de Open2X. Está subido en el FTP público por si lo necesitas :)

Muchas gracias :brindis:

Puck2099
16/12/2005, 15:29
Eso sí, haciendo los includes con aquello de <SDL/SDL.h> en vez de "SDL.h". Debería preocuparme por solucionar esto, o puedo funcionar perfectamente utilizando el primer método sin que me de complicaciones en el futuro?

Da igual, pon el que te funcione. Realmente solo se refiere a si tienes tu pack de includes apuntando directamente al directorio SDL o a un directorio del que cuelga el SDL.



Luego eso sí, sigo teniendo un pequeño problema compilando la demo de Puck, pero esta vez ya tiene bastante mejor pinta que las movidas que estaba teniendo a la mañana:


demo3.o: In function `main':
demo3.c:(.text+0x174): undefined reference to `Mix_OpenAudio'
demo3.c:(.text+0x17c): undefined reference to `Mix_LoadMUS'
demo3.c:(.text+0x190): undefined reference to `Mix_PlayMusic'

make.exe: *** [demo_puck.exe] Error 1

Eso me dice... he probado a añadir "C:/devkitPro/devkitGP2X/lib/libSDL_mixer.a" al linker del proyecto por si sonaba de la flauta, pero así me da todavía más errores así que... sabéis a qué se deben esos tres errores de arriba?

Eso es porque tienes que añadir las SDL_mixer, como tú dices. Si te da más errores será porque te faltan dependencias de estas librerías, así que añade también -lvorbisidec -lmikmod

Saludos

Puck2099
16/12/2005, 15:36
Es bastante largo todo ello, pero está disponible con el juego (vienen los sources) en el archivo screens/screen_game.c

;)

Perdona por no ponerte el ejemplo anoche, pero llegué tarde a casa de entrenar a los chavales y se me olvidó :(

Voy a echarle un vistazo a tus controles, a ver si veo algo raro :)

Saludos

Puck2099
16/12/2005, 16:04
hectorblanco, hay algo que no entiendo de tus controles:


// Check if we have some interesting events...
SDL_Event event;
while(SDL_PollEvent(&event))
{
// If we must quit, then do so
if(event.type == SDL_QUIT) { done = 1; }

// Has a key been pressed down?
if ((event.type == SDL_KEYDOWN)||(event.type == SDL_JOYBUTTONDOWN))
{
// If it was escape then quit
if((event.key.keysym.sym == SDLK_ESCAPE)||(event.jbutton.button == GP2X_BUTTON_START))
{
gameover=1;
//exit(0);
done = 1;
//TTF_CloseFont(font_score);
}
// If it was space and the game isn't paused nor over
if((event.key.keysym.sym == SDLK_SPACE && !paused)||(event.jbutton.button == GP2X_BUTTON_A))
{
// Then add a bullet
addBullet();
//Mix_PlayChannel(0,shot,0);
// And play a corresponding sound
// Mix_PlayChannel(0,shot,0);
}
if((event.key.keysym.sym == SDLK_p)||(event.jbutton.button == GP2X_BUTTON_SELECT))
{
// Backup the current time to restore it later, plus an add.
ttime1=(int)sdlgt;
paused=0;
screen_pause();
ttime2=SDL_GetTicks();
sdlgt=ttime1;
td=td+(ttime2-td2);
dt=0;
}
//break;
}
}
// GP2X Movement buttons
if (event.type==SDL_JOYBUTTONDOWN){
if ((event.jbutton.button==GP2X_BUTTON_UP)||(event.jb utton.button==GP2X_BUTTON_UPLEFT)||(event.jbutton. button==GP2X_BUTTON_UPRIGHT)){
// Move the ship up
ship1.yadd((int)(-2*dt));
// Prevent the ship from going outside the screen
if(ship1.gety()<13) ship1.yset(13);
}
if ((event.jbutton.button==GP2X_BUTTON_DOWN)||(event. jbutton.button==GP2X_BUTTON_DOWNLEFT)||(event.jbut ton.button==GP2X_BUTTON_DOWNRIGHT)){
// Move the ship down
ship1.yadd((int)(2*dt));
// Prevent the ship from going outside the screen
if(ship1.gety()>230) ship1.yset(230);
}
if ((event.jbutton.button==GP2X_BUTTON_LEFT)||(event. jbutton.button==GP2X_BUTTON_UPLEFT)||(event.jbutto n.button==GP2X_BUTTON_DOWNLEFT)){
// Move the ship left
ship1.xadd((int)(-2*dt));
// Prevent the ship from going outside the screen
if(ship1.getx()<0) ship1.xset(0);
}
if ((event.jbutton.button==GP2X_BUTTON_RIGHT)||(event .jbutton.button==GP2X_BUTTON_UPRIGHT)||(event.jbut ton.button==GP2X_BUTTON_DOWNRIGHT)){
// Move the ship right
ship1.xadd((int)(2*dt));
// Prevent the ship from going outside the screen
if(ship1.getx()>305) ship1.xset(305);
}
}

¿Por qué preguntas dos veces por el evento de un botón pulsado? Primero lo haces con los botones propiamente dichos dentro del bucle de polling de eventos y luego lo haces con el control del joystick fuera de dicho bucle.

Yo lo que haría sería poner ambos juntos, dentro o fuera del bucle, preferiblemente dentro de éste.

Pruébalo y dime si así te funciona :)

Saludos

hectorblanco
16/12/2005, 16:27
hectorblanco, hay algo que no entiendo de tus controles:


// Check if we have some interesting events...
SDL_Event event;
while(SDL_PollEvent(&event))
{
// If we must quit, then do so
if(event.type == SDL_QUIT) { done = 1; }

// Has a key been pressed down?
if ((event.type == SDL_KEYDOWN)||(event.type == SDL_JOYBUTTONDOWN))
{
// If it was escape then quit
if((event.key.keysym.sym == SDLK_ESCAPE)||(event.jbutton.button == GP2X_BUTTON_START))
{
gameover=1;
//exit(0);
done = 1;
//TTF_CloseFont(font_score);
}
// If it was space and the game isn't paused nor over
if((event.key.keysym.sym == SDLK_SPACE && !paused)||(event.jbutton.button == GP2X_BUTTON_A))
{
// Then add a bullet
addBullet();
//Mix_PlayChannel(0,shot,0);
// And play a corresponding sound
// Mix_PlayChannel(0,shot,0);
}
if((event.key.keysym.sym == SDLK_p)||(event.jbutton.button == GP2X_BUTTON_SELECT))
{
// Backup the current time to restore it later, plus an add.
ttime1=(int)sdlgt;
paused=0;
screen_pause();
ttime2=SDL_GetTicks();
sdlgt=ttime1;
td=td+(ttime2-td2);
dt=0;
}
//break;
}
}
// GP2X Movement buttons
if (event.type==SDL_JOYBUTTONDOWN){
if ((event.jbutton.button==GP2X_BUTTON_UP)||(event.jb utton.button==GP2X_BUTTON_UPLEFT)||(event.jbutton. button==GP2X_BUTTON_UPRIGHT)){
// Move the ship up
ship1.yadd((int)(-2*dt));
// Prevent the ship from going outside the screen
if(ship1.gety()<13) ship1.yset(13);
}
if ((event.jbutton.button==GP2X_BUTTON_DOWN)||(event. jbutton.button==GP2X_BUTTON_DOWNLEFT)||(event.jbut ton.button==GP2X_BUTTON_DOWNRIGHT)){
// Move the ship down
ship1.yadd((int)(2*dt));
// Prevent the ship from going outside the screen
if(ship1.gety()>230) ship1.yset(230);
}
if ((event.jbutton.button==GP2X_BUTTON_LEFT)||(event. jbutton.button==GP2X_BUTTON_UPLEFT)||(event.jbutto n.button==GP2X_BUTTON_DOWNLEFT)){
// Move the ship left
ship1.xadd((int)(-2*dt));
// Prevent the ship from going outside the screen
if(ship1.getx()<0) ship1.xset(0);
}
if ((event.jbutton.button==GP2X_BUTTON_RIGHT)||(event .jbutton.button==GP2X_BUTTON_UPRIGHT)||(event.jbut ton.button==GP2X_BUTTON_DOWNRIGHT)){
// Move the ship right
ship1.xadd((int)(2*dt));
// Prevent the ship from going outside the screen
if(ship1.getx()>305) ship1.xset(305);
}
}

¿Por qué preguntas dos veces por el evento de un botón pulsado? Primero lo haces con los botones propiamente dichos dentro del bucle de polling de eventos y luego lo haces con el control del joystick fuera de dicho bucle.

Yo lo que haría sería poner ambos juntos, dentro o fuera del bucle, preferiblemente dentro de éste.

Pruébalo y dime si así te funciona :)

Saludos

Pongo fuera del polling solo el control de movimientos (el stick) porque asi puedes tenerlo pulsado para que la nave se vaya moviendo. De la otra manera (dentro del polling), tenias que apretar cada vez para que hiciera un movimiento. Por eso qe solo me falta el que disparo y movimiento puedan ir a la vez.

Puck2099
16/12/2005, 16:29
Pongo fuera del polling solo el control de movimientos (el stick) porque asi puedes tenerlo pulsado para que la nave se vaya moviendo. De la otra manera (dentro del polling), tenias que apretar cada vez para que hiciera un movimiento. Por eso qe solo me falta el que disparo y movimiento puedan ir a la vez.

Ah, vale.

Yo lo hago de otra manera, en cuanto llegue a casa te pego el código de mi Lady Killer para que veas como lo hago y me funciona dejando pulsado el joystick para moverse y pulsar cualquier botón.

Si a eso de las 15:00 no te he pegado el código, mándame un mensaje para recordármelo, please :)

Saludos

Kiwi
16/12/2005, 17:08
Da igual, pon el que te funcione. Realmente solo se refiere a si tienes tu pack de includes apuntando directamente al directorio SDL o a un directorio del que cuelga el SDL.

Okis, es lo que pensaba pero me surgió la duda por algún comentario de Miq01 que leí por ahí.


Eso es porque tienes que añadir las SDL_mixer, como tú dices. Si te da más errores será porque te faltan dependencias de estas librerías, así que añade también -lvorbisidec -lmikmod

Saludos

Veamos, ahora mi linker pinta así:

C:/devkitPro/devkitGP2X/lib/libSDL.a
C:/devkitPro/devkitGP2X/lib/libSDLmain.a
C:/devkitPro/devkitGP2X/lib/libSDL_mixer.a
-static
-lpthread
-lvorbisidec
-lmikmod
Y dice "cannot find -lvorbisidec". Si quito esa entrada, dice lo mismo de -lmikmod.

Cómo leches habré configurado yo esto para que de tantos problemas?? :loco: XD

Puck2099
16/12/2005, 20:14
El código de movimiento del personaje de mi LK es tal que así (he quitado la macro del movimiento con teclado para PC):



while (SDL_PollEvent (&event)) {

if (event.type == SDL_QUIT) {

SDL_Quit();

}

}

if (SDL_JoystickGetButton(joy, GP2X_BUTTON_LEFT) && pj.x>modxmin) {

pj.x -= pj.velocidad + tvelextra;

direccion += 9;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_RIGHT) && pj.x<modxmax) {

pj.x += pj.velocidad + tvelextra;

direccion += 3;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_UP) && pj.y>modymin) {

pj.y -= pj.velocidad + tvelextra;

direccion += 1;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_DOWN) && pj.y<modymax) {

pj.y += pj.velocidad + tvelextra;

direccion += 5;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_UPLEFT) && pj.x>modxmin && pj.y>modymin) {

pj.x -= pj.velocidad + tvelextra;

pj.y -= pj.velocidad + tvelextra;

direccion = 10;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_UPRIGHT) && pj.x<modxmax && pj.y>modymin) {

pj.x += pj.velocidad + tvelextra;

pj.y -= pj.velocidad + tvelextra;

direccion = 4;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_DOWNLEFT) && pj.x>modxmin && pj.y<modymax) {

pj.x -= pj.velocidad + tvelextra;

pj.y += pj.velocidad + tvelextra;

direccion = 14;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_DOWNRIGHT) && pj.x<modxmax && pj.y<modymax) {

pj.x += pj.velocidad + tvelextra;

pj.y += pj.velocidad + tvelextra;

direccion = 8;

pausar = 1;

}

if (keys[SDLK_LALT] || SDL_JoystickGetButton(joy, GP2X_BUTTON_L)) {

fin_juego = 1;

}

if (keys[SDLK_LCTRL] || SDL_JoystickGetButton(joy, GP2X_BUTTON_B)) {

pj.pos = 0;

pj.salto = 1;

if (pj.superficie == 1) {

pausa_rebotes = 36;

pj.invencible = 1;

pj.y -= 5;

}

else {

pausa_rebotes = 0;

}

}

Si hay algo que no entiendas, o no quede claro, dímelo y te lo explico :)

Saludos

miq01
16/12/2005, 20:22
Veamos, ahora mi linker pinta así:

C:/devkitPro/devkitGP2X/lib/libSDL.a
C:/devkitPro/devkitGP2X/lib/libSDLmain.a
C:/devkitPro/devkitGP2X/lib/libSDL_mixer.a
-static
-lpthread
-lvorbisidec
-lmikmod
Y dice "cannot find -lvorbisidec". Si quito esa entrada, dice lo mismo de -lmikmod.

Cómo leches habré configurado yo esto para que de tantos problemas?? :loco: XD
Igual me he perdido algo, pero no entiendo por qué tienes un path absoluto para, por ejemplo, SDL_mixer.a, y otro relativo para mikmod cuando supongo que los tienes en el mismo directorio. Si es así, o bien informas a Dev-C++ de donde están las librerías (C:/devkitPro/devkitGP2X/lib/), o bien las 3 últimas líneas las escribes como las 3 primeras (p.ej. C:/devkitPro/devkitGP2X/lib/libmikmod.a en lugar de -lmikmod).

Otra cosa es que, al menos desde los Makefiles, es importante especificar los enlaces siguiendo un orden concreto, aunque no sé el motivo. Mira como llamo yo a las librerías:
LIBS = -L"C:/devkitGP2X/lib" -lSDLmain -lSDL_mixer -lvorbisidec -lmikmod -lSDL -lpthread. Fíjate que el orden es diferente al tuyo. Prueba así, a ver si hay suerte.

hectorblanco
16/12/2005, 21:52
El código de movimiento del personaje de mi LK es tal que así (he quitado la macro del movimiento con teclado para PC):



while (SDL_PollEvent (&event)) {

if (event.type == SDL_QUIT) {

SDL_Quit();

}

}

if (SDL_JoystickGetButton(joy, GP2X_BUTTON_LEFT) && pj.x>modxmin) {

pj.x -= pj.velocidad + tvelextra;

direccion += 9;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_RIGHT) && pj.x<modxmax) {

pj.x += pj.velocidad + tvelextra;

direccion += 3;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_UP) && pj.y>modymin) {

pj.y -= pj.velocidad + tvelextra;

direccion += 1;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_DOWN) && pj.y<modymax) {

pj.y += pj.velocidad + tvelextra;

direccion += 5;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_UPLEFT) && pj.x>modxmin && pj.y>modymin) {

pj.x -= pj.velocidad + tvelextra;

pj.y -= pj.velocidad + tvelextra;

direccion = 10;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_UPRIGHT) && pj.x<modxmax && pj.y>modymin) {

pj.x += pj.velocidad + tvelextra;

pj.y -= pj.velocidad + tvelextra;

direccion = 4;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_DOWNLEFT) && pj.x>modxmin && pj.y<modymax) {

pj.x -= pj.velocidad + tvelextra;

pj.y += pj.velocidad + tvelextra;

direccion = 14;

pausar = 1;

}

else if (SDL_JoystickGetButton(joy, GP2X_BUTTON_DOWNRIGHT) && pj.x<modxmax && pj.y<modymax) {

pj.x += pj.velocidad + tvelextra;

pj.y += pj.velocidad + tvelextra;

direccion = 8;

pausar = 1;

}

if (keys[SDLK_LALT] || SDL_JoystickGetButton(joy, GP2X_BUTTON_L)) {

fin_juego = 1;

}

if (keys[SDLK_LCTRL] || SDL_JoystickGetButton(joy, GP2X_BUTTON_B)) {

pj.pos = 0;

pj.salto = 1;

if (pj.superficie == 1) {

pausa_rebotes = 36;

pj.invencible = 1;

pj.y -= 5;

}

else {

pausa_rebotes = 0;

}

}

Si hay algo que no entiendas, o no quede claro, dímelo y te lo explico :)

Saludos

Se entiende bien.
Esta noche lo pruebo, y si el resultado es bueno, habrá nueva version publica con sonido y todo :cool:

Gracias puck!!!

oCHARLIEo
16/12/2005, 22:36
Hola,

Sí, me estoy basando en el Exult 1.2, porque no sé si las versiones del CVS serán "finalizables".

De momento no he hecho ningún cambio en el código, solo quiero poder compilarlo para la GP2X y luego ya empezar a tocar código.

Anoche hice unos cuantos intentos más, creo que el Makefile "principal" va llamando a Makefiles en los subdirectorios, así que también tendré que modificar esos.

Al final me dio un error un poco raro en un .h, a ver si cuando llegue a casa te lo copio.

Por cierto, estoy usando el toolchain del gcc 4.0.2 para la GP2X que nos bajamos del CVS de Open2X. Está subido en el FTP público por si lo necesitas :)
Hola Puck, he tenido un rato en el trabajo y he probado a compilarlo para el GP2X, me he quedado justo antes de terminar... compilando el exult.cc 8-(
Te cuento lo que he hecho por si te vale. He cogido el mismo tar.gz que tu, el 1.2 stable que esta en la web. Lo he descomprimido y he aplicado un diff para arreglar un bug que trae en la compilacion BUG exult (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295052)

Me he copiado todo el directorio con otro nombre y compilado normal (configure sin opciones, make) da un error, pero solo lo hago para obtener un ejecutable que usa en el Makefile, se llama ./tool/expack. Me lo copio en el directorio de trabajo original como ./tool/expack.intel y modifico el Makefile que esta en ./data/Makefile.in para que ejecute expack.intel en vez de expack (q sera binario arm)

exult.flx: $(EXULT_FLX_OBJECTS)
../tools/expack.intel -i $(srcdir)/flx.in

exult_bg.flx: $(EXULT_BG_FLX_OBJECTS)
../tools/expack.intel -i $(srcdir)/bg/flx.in

exult_si.flx: $(EXULT_SI_FLX_OBJECTS)
../tools/expack.intel -i $(srcdir)/si/flx.in

Despues cambio algunos includes que estan mal enlazados. en concreto en el fichero gamewin.h cambio #include "flags.h" por #include "objs/flags.h"
y en mouse.h agrego #include "gamewin.h" que no existia.

Modifico el configure para que pueda reconocer el SDL de la GP2X. Busca la linea: SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` y agrega debajo: SDL_LIBS="$SDL_LIBS -lvorbisidec -lmikmod" ya que el sdl_config no te los metera y se necesitan para el SDL_mixer con el parche de tremor.

Y por ultimo, he hecho un script para compilarlo todo.

#!/bin/bash

CROSS_COMPILE=/home/charlie/GP2X/dev_open2x/open2x_gcc/gcc-4.0.2-glibc-2.3.5/arm-open2x-linux/bin
SDL_BASE=/home/charlie/GP2X/dev_open2x/devkitGP2X_2
INSTALL_DIR=/home/charlie/GP2X/dev_open2x/games_sdl/exult-1.2/install_dir

export PATH="$CROSS_COMPILE:$PATH"

LDFLAGS="-static"
CFLAGS="-msoft-float"
CXXFLAGS="-msoft-float"

sh ./configure --prefix="$INSTALL_DIR" --build=i386 --host=arm-open2x-linux --target=arm-open2x-linux --disable-tools --with-sdl-prefix="$SDL_BASE" CFLAGS="$CFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" CC="arm-open2x-linux-g++" || exit

make || exit
make install || exit

Con todo esto se me queda en un error en el exult.cc ya que no encuentra las librerias SDL_syswm.h. Estoy viendo que mas adelante pide las xdrag.h que tp las tenemos...
En fin de momento hasta aki llego yo, espero que os haya servido para algo, si averiguo algo mas...

Un saludo y siento la longitud

Uncanny
16/12/2005, 23:46
Hola,

Sí, me estoy basando en el Exult 1.2, porque no sé si las versiones del CVS serán "finalizables".

De momento no he hecho ningún cambio en el código, solo quiero poder compilarlo para la GP2X y luego ya empezar a tocar código.

Anoche hice unos cuantos intentos más, creo que el Makefile "principal" va llamando a Makefiles en los subdirectorios, así que también tendré que modificar esos.

Al final me dio un error un poco raro en un .h, a ver si cuando llegue a casa te lo copio.

Por cierto, estoy usando el toolchain del gcc 4.0.2 para la GP2X que nos bajamos del CVS de Open2X. Está subido en el FTP público por si lo necesitas :)

Muchas gracias :brindis:Estoy usando un toolchain basado en GCC 3.4.4 (como el de D_Skywalk) pero también me bajaré el que tu subiste al FTP basado en GCC 4.0.2. para las pruebas, dentro de un rato de pondré con ello, y más ahora que para el lunes o el martes debería llegar mi GP2X para poder hacer pruebas :D

oCHARLIEo gracias por las pruebas que has hecho, con esto ya estoy prevenido de lo que pueda encontrar, miraré lo de SysWM (referidos al gestor de ventanas, me huele a que estos problemas van alrededor del servidor gráfico X11...) pero esa cabecera forma parte de la librería SDL estandar, lo de xdrag.h, aunque relacionado, es otro tema ya (para el tema del "drag & drop", arrastrar y soltar, en un entorno de ventanas bajo X11) pero forma parte de las cabeceras que vienen con las fuentes de Exult :)

Puck2099
17/12/2005, 02:10
oCHARLIEo, a ver si te veo por el Irc y comentamos "en directo" la compilación del Exult.

Uncanny, ¿por qué no te pasas alguna vez por el Irc? :)

Muchas gracias a los dos por vuestra ayuda :)

Kiwi
17/12/2005, 08:10
Igual me he perdido algo, pero no entiendo por qué tienes un path absoluto para, por ejemplo, SDL_mixer.a, y otro relativo para mikmod cuando supongo que los tienes en el mismo directorio. Si es así, o bien informas a Dev-C++ de donde están las librerías (C:/devkitPro/devkitGP2X/lib/), o bien las 3 últimas líneas las escribes como las 3 primeras (p.ej. C:/devkitPro/devkitGP2X/lib/libmikmod.a en lugar de -lmikmod).

Otra cosa es que, al menos desde los Makefiles, es importante especificar los enlaces siguiendo un orden concreto, aunque no sé el motivo. Mira como llamo yo a las librerías:
LIBS = -L"C:/devkitGP2X/lib" -lSDLmain -lSDL_mixer -lvorbisidec -lmikmod -lSDL -lpthread. Fíjate que el orden es diferente al tuyo. Prueba así, a ver si hay suerte.
Jeje ya, la chapuza se ha debido a que al no tener ni idea de cómo tira esto, he ido simplemente copiando lo que veía en el otro topic que añadíais vosotros pa que tirasen las cosas. xDD Pero bueno, creo que ya veo el mecanismo... estando todas las librerías en la misma carpeta, basta con poner lo primero la ruta de dicha carpeta y luego si por ejemplo quieres llamar a una que físicamente se llama "libSDLmain.a" yo tengo que poner -lSDLmain y él lo coge sólo. Me equivoco?

Siguiendo esa lógica al final en el programilla que tengo yo para ir probando cosillas (en el que no uso sonido para nada) tengo puesto lo siguiente en el linker:

C:/devkitPro/devkitGP2X/lib
-lSDL
-lSDLmain
-static
-lpthread

Y tira perfectamente la compilación. Sin embargo lo de Puck me sigue dando problemas, pero me he catado de que no es por culpa de mi forma de llamar al mixer precisamente, porque por curiosidad he quitado todo lo relativo al sonido que había en el código de su ejemplo, he copiado y pegado el mismo linker que puse ahí arribe y que como digo tiraba bien con ese programa, y nada... sigue diciendo esto:


c:\devkitpro\devkitgp2x\bin\..\lib\gcc\arm-linux\4.0.2\..\..\..\..\arm-linux\bin\ld.exe: C:/devkitPro/devkitGP2X/lib: No such file: Permission denied

make.exe: *** [demo_puck.exe] Error 1
No sé a qué se debe la verdad.

A todo esto ya que lo comentas, desde donde controlo el orden en que están especificados los links en el makefile?? :)

Kiwi
17/12/2005, 15:30
Vale bien, ahora el problema ese se ha vuelto a extender al programa que antes sí compilaba bien. :loco: Seguro que es todo alguna chorrada más del sistema operativo que del compilador, pero en fin, no pillo donde está el fallo.

D_Skywalk
17/12/2005, 16:00
Buenas gentesilla, veo que todo va viento en popa! :D

Hace unos post Uncanny preguntaba si las gcc 3.4.4 que subi tenian el readelf para saber con que enlazais, y si, viene :)

Os dejo la lista completa de utilidades que teneis para ARM :)


arm-gp2x-linux-addr2line arm-gp2x-linux-ld
arm-gp2x-linux-ar arm-gp2x-linux-nm
arm-gp2x-linux-as arm-gp2x-linux-objcopy
arm-gp2x-linux-c++ arm-gp2x-linux-objdump
arm-gp2x-linux-c++filt arm-gp2x-linux-ranlib
arm-gp2x-linux-cpp arm-gp2x-linux-readelf
arm-gp2x-linux-g++ arm-gp2x-linux-sdl-config
arm-gp2x-linux-gcc arm-gp2x-linux-size
arm-gp2x-linux-gcc-3.4.4 arm-gp2x-linux-strings
arm-gp2x-linux-gccbug arm-gp2x-linux-strip
arm-gp2x-linux-gcov arm-open2x-linux-sdl-config
arm-gp2x-linux-gprof
Algun tambien he leido que decia que sus ejecutables eran muy gordos al compilar con static, eso podeis solucinarlo facilmente usando "arm-gp2x-linux-strip" que os limpia todo el ejecutable :)

Un Saludo

hectorblanco
17/12/2005, 19:50
Me ha funcionado perfecto lo del control.
En un rato pondré la nueva versión del juego en el foro GENERAL.

Gracias de nuevo, Puck.

oCHARLIEo
17/12/2005, 20:25
oCHARLIEo gracias por las pruebas que has hecho, con esto ya estoy prevenido de lo que pueda encontrar, miraré lo de SysWM (referidos al gestor de ventanas, me huele a que estos problemas van alrededor del servidor gráfico X11...) pero esa cabecera forma parte de la librería SDL estandar, lo de xdrag.h, aunque relacionado, es otro tema ya (para el tema del "drag & drop", arrastrar y soltar, en un entorno de ventanas bajo X11) pero forma parte de las cabeceras que vienen con las fuentes de Exult :)

Si, el problema son las x11 claramente... seguramente sea algun menu para arrancar el ultima (la verdad es q no lo he probado), no creo que sea dificil reprogramar esa parte eliminando esas dependencias. En ese momento no tenia tiempo de ponerme a mirar el codigo, era mi rato libre despues de comer ^_^, habia que volver al curro...

Puck, suelo estar por las tardes-noches en el IRC, hazme un cuak cuando kieras que normalmente ando despistado en otras cosas.

miq01
17/12/2005, 22:48
c:\devkitpro\devkitgp2x\bin\..\lib\gcc\arm-linux\4.0.2\..\..\..\..\arm-linux\bin\ld.exe: C:/devkitPro/devkitGP2X/lib: No such file: Permission denied

make.exe: *** [demo_puck.exe] Error 1
No sé a qué se debe la verdad.
¿Permission denied? Pues ahí ya no sé qué decirte... En tu caso, iría a lo más básico (un "Hola Mundo") y compilaría, a ver qué pasa. Claro que el error te lo da el enlazador... No sé.


A todo esto ya que lo comentas, desde donde controlo el orden en que están especificados los links en el makefile?? :)
... Supongo que DevC++ debe respetar el orden que tú le das, ¿no? Ahora mismo no lo tengo por aquí y no lo puedo comprobar.


Uncanny, ¿por qué no te pasas alguna vez por el Irc? :)
Puck2099, ¿qué servidor y canal?

Como mola... el hilo empezó tratando de las nuevas versiones de SDL y ahora mismo hay unos tres o cuatro temas simultáneos... :)

Puck2099
18/12/2005, 00:08
Puck2099, ¿qué servidor y canal?

Como mola... el hilo empezó tratando de las nuevas versiones de SDL y ahora mismo hay unos tres o cuatro temas simultáneos... :)

Estamos en el IRC Hispano, en los canales #gp2x o #retrodev :)

Y sí, lo de que desvaríen los hilos pasa muy a menudo por aquí, pero en casos como éste es algo buen :)

Saludos

BuD
18/12/2005, 00:19
Tras compilar un ejemplo con SDL_svg, me da estos Warnings

$ make
C:/devkitGP2X/bin/arm-linux-gcc -IC:/devkitGP2X/include/SDL -D_REENTRANT -IC:/devkitGP2X/include -IC:/devkitGP2X/include/SDL -D_REENTRANT -O2 -Wall -Werror -c -o SDLGame.o SDLGame.c
C:/devkitGP2X/bin/arm-linux-g++ -static -o SDLGame.gpe SDLGame.o -LC:/devkitGP2X/lib -Wl,-rpath,C:/devkitGP2X/lib -lSDL -lpthread -lm -ldl -lSDL_svg -lsvg -lxml2 -lm
C:/devkitGP2X/lib\libxml2.a(nanohttp.o): In function 'xmlNanoHTTPConnectHost':
nanohttp.c:(.text+0x21a4): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
nanohttp.c:(.text+0x23a4): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
C:/devkitGP2X/bin/arm-linux-strip SDLGame.gpe

Luego probe el juego y no parece funcionar, creeis q tiene algo que ver estos warning?

Puck2099
18/12/2005, 00:29
¿Qué versión usas de glibc y gcc?

BuD
18/12/2005, 00:49
¿Qué versión usas de glibc y gcc?
Pues la q viene con el devkit de la GP2X...

miq01
18/12/2005, 03:07
Estamos en el IRC Hispano, en los canales #gp2x o #retrodev :)
Vale, gracias.


Y sí, lo de que desvaríen los hilos pasa muy a menudo por aquí
Dímelo a mí... :) Que por cierto, vaya pollo se han montado los de GP32x con lo de las tías en desnudas en tu juego... Parece que lo de "You know how to please" y la colegiala japonesita de fondo no les da suficientes pistas... :)

Puck2099
18/12/2005, 03:13
Dímelo a mí... :) Que por cierto, vaya pollo se han montado los de GP32x con lo de las tías en desnudas en tu juego... Parece que lo de "You know how to please" y la colegiala japonesita de fondo no les da suficientes pistas... :)

Joe, es que yo flipo tío...

Llega el menda, se mete en el directorio de imágenes del juego, con su hermano al lado y es culpa mia por no avisar de lo que va a encontrar...

En fin, tendré que poner advertencias de edad cada vez que saque una nueva versión...

miq01
18/12/2005, 03:15
Tras compilar un ejemplo con SDL_svg, me da estos Warnings

$ make
C:/devkitGP2X/bin/arm-linux-gcc -IC:/devkitGP2X/include/SDL -D_REENTRANT -IC:/devkitGP2X/include -IC:/devkitGP2X/include/SDL -D_REENTRANT -O2 -Wall -Werror -c -o SDLGame.o SDLGame.c
C:/devkitGP2X/bin/arm-linux-g++ -static -o SDLGame.gpe SDLGame.o -LC:/devkitGP2X/lib -Wl,-rpath,C:/devkitGP2X/lib -lSDL -lpthread -lm -ldl -lSDL_svg -lsvg -lxml2 -lm
C:/devkitGP2X/lib\libxml2.a(nanohttp.o): In function 'xmlNanoHTTPConnectHost':
nanohttp.c:(.text+0x21a4): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
nanohttp.c:(.text+0x23a4): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
C:/devkitGP2X/bin/arm-linux-strip SDLGame.gpe

Luego probe el juego y no parece funcionar, creeis q tiene algo que ver estos warning?
Bud, ¿qué intentas compilar? Esos warnings se quejan de llamadas de acceso a la red, así que no deberían ser el problema si lo que compilas es un juego para GP2X. A no ser que lo que estás compilando esté intentando acceder a alguna red desde la consola y no encuentre ninguna (claro) y se quede en espera.

Puck2099
18/12/2005, 03:18
Vale, gracias.

Por cierto, pásate mejor por el canal #geperos del Irc, que parece que es ahí donde se ha mudado ahora todo el mundo...

WinterN
18/12/2005, 03:32
Con estas nuevas librerías ya me funciona el sonido en el RAW !!!! [wei4] [wei4] [wei4]

Estaba metiendo los controles para el volumen, para sacar una versión para hoy o mañana, pero un **** programa de Micro$oft (el **** antispyware) me ha j**ido el **** Windoz de ****** y encima ahora se me ha desconfigura la **** red bajo Linux y aquí me esto pegando una **** paliza para arreglar todo de una **** vez... :canon2: cawenlamar!! :canon2:

Uncanny
18/12/2005, 04:59
Joe, es que yo flipo tío...

Llega el menda, se mete en el directorio de imágenes del juego, con su hermano al lado y es culpa mia por no avisar de lo que va a encontrar...

En fin, tendré que poner advertencias de edad cada vez que saque una nueva versión...Juas, ya le vale, ¿es que no conoce el "Lady Killer" original? ya le vale, pero bueno, no se de que se escandaliza, yo en mis "años mozos", cuando no tenía precisamente 18 añitos, jugaba a este tipo de juegos, incluidos los Gals Panic, el Strip Poker de Spectrum o el Sextris de PC (que vicios, por cierto, me pegaba en los 486 de mi instituto a este último mientras estaba en clase de "informática" xD) [wei4]

Puck, si no estoy tan liado como hoy me pasaré mañana por los el canal de IRC :)

Puck2099
18/12/2005, 05:18
Puck, si no estoy tan liado como hoy me pasaré mañana por los el canal de IRC :)

Ey tío, creo que he encontrado una forma de compilar el Exult, pero ahora me pide una SDL_mixer 1.2.4 o superior y la que tenemos creo que es la 1.2 :(

El caso es que siempre salgan problemas...

BuD
18/12/2005, 05:44
Bud, ¿qué intentas compilar? Esos warnings se quejan de llamadas de acceso a la red, así que no deberían ser el problema si lo que compilas es un juego para GP2X. A no ser que lo que estás compilando esté intentando acceder a alguna red desde la consola y no encuentre ninguna (claro) y se quede en espera.
A mi no me mires, el que intenta conectar es la lib xml, la qual es una dependencia de la libsvg, la qual es una dependencia de la SDL_svg...
Ahora lo he dejado de banda, estoy intentando compilar el Battle for Wesnoth, veamos si lo consigo.

miq01
18/12/2005, 07:30
Con estas nuevas librerías ya me funciona el sonido en el RAW !!!! [wei4] [wei4] [wei4]
:babea:


Juas, ya le vale, ¿es que no conoce el "Lady Killer" original? ya le vale, pero bueno, no se de que se escandaliza, yo en mis "años mozos", cuando no tenía precisamente 18 añitos, jugaba a este tipo de juegos, incluidos los Gals Panic, el Strip Poker de Spectrum o el Sextris de PC (que vicios, por cierto, me pegaba en los 486 de mi instituto a este último mientras estaba en clase de "informática" xD) [wei4]
Quién no recuerda en "gran" Samantha Fox Strip Poker (http://members.chello.at/theodor.lauppert/games/samfox.htm)... :)


A mi no me mires, el que intenta conectar es la lib xml, la qual es una dependencia de la libsvg, la qual es una dependencia de la SDL_svg...
Ahora lo he dejado de banda, estoy intentando compilar el Battle for Wesnoth, veamos si lo consigo.
¿El Battle for Wesnoth no tiene una resolución gráfica bastante mayor que 320x240? Anque bueno, ante la duda, ¡inténtalo! :)

BuD
18/12/2005, 08:45
¿El Battle for Wesnoth no tiene una resolución gráfica bastante mayor que 320x240? Anque bueno, ante la duda, ¡inténtalo! :)
No sabes que Battle for Wesnoth tiene soporte para resolucion PALM?
./configure --enable-tinygui ;)
PD: a ver cuando termino de instalarme el devkit open2x para Linux y me pongo manos a la obra...

miq01
18/12/2005, 08:52
No sabes que Battle for Wesnoth tiene soporte para resolucion PALM?
./configure --enable-tinygui ;)
PD: a ver cuando termino de instalarme el devkit open2x para Linux y me pongo manos a la obra...
Pues no lo sabía, pero eso es una buena noticia... :)

WinterN
18/12/2005, 11:19
No sabes que Battle for Wesnoth tiene soporte para resolucion PALM?
./configure --enable-tinygui ;)
PD: a ver cuando termino de instalarme el devkit open2x para Linux y me pongo manos a la obra...

Sí, yo probé eso y es un poco timo. Lo único que hace es permitirte seleccionar resoluciones inferiores a 800x600 en el menú gráfico. Pero todas las imagenes y posiciones de los botones se mantiene al tamaño original, por lo que resulta injugable. No puedes acceder ni a las opciones del menú principal, es como jugar es una equinita de la pantalla, no sé si me explico.

A lo mejor es que lo hice yo mal...

Por otra parte estuve buscando esa versión para palm de la que todo el mundo habla durante 3 días y al final lo dejé por imposible...

El juego podrá ser portado, eso seguro, yo lo tengo entre mis proyectos para cuando tenga más experiencia con SDL y gp2x, porque desde luego no va a ser un recompilar y listo...

BuD
19/12/2005, 23:27
Sí, yo probé eso y es un poco timo. Lo único que hace es permitirte seleccionar resoluciones inferiores a 800x600 en el menú gráfico. Pero todas las imagenes y posiciones de los botones se mantiene al tamaño original, por lo que resulta injugable. No puedes acceder ni a las opciones del menú principal, es como jugar es una equinita de la pantalla, no sé si me explico.

A lo mejor es que lo hice yo mal...

Por otra parte estuve buscando esa versión para palm de la que todo el mundo habla durante 3 días y al final lo dejé por imposible...

El juego podrá ser portado, eso seguro, yo lo tengo entre mis proyectos para cuando tenga más experiencia con SDL y gp2x, porque desde luego no va a ser un recompilar y listo...
Esta claro que habra que manipular codigo, supongo que lo que haré sera algo para que pueda mover el raton con el Stick, pero antes de hacer nada, compilare y probare a ver si como minimo arranca. Y lo de --enable-tinygui se ve bien o mal dependiendo de las fuentes.

Mas tarde, cuando yo tambien tenga mas experiencia con SDL y gp2x, hare algo mas decente, como por ejemplo poder jugar sin necesidad de un puntero de raton. (No tengo fé xD)

BuD
24/12/2005, 00:41
Bueno, tras varios intentos de compilar Battle for Wesnoth, consegui crear bien los makesfiles, pero me daba fallo en la compilacion por culpa de las SDL_net, esta claro que estas librerias no funcionan. Para empezar, ni la cabezera SDL_net.h existe, intente usar las de SDL_net estandar, pero estas llaman a una funcion de una cabezera que esta en la carpeta include/asm-i386.
Conclusion, hasta que no consigue eliminar el soporte SDL_net en Battle for Wesnoth, es importable, a menos q alguien sepa portar las SDL_net.

Puck2099
24/12/2005, 00:44
Bueno, tras varios intentos de compilar Battle for Wesnoth, consegui crear bien los makesfiles, pero me daba fallo en la compilacion por culpa de las SDL_net, esta claro que estas librerias no funcionan. Para empezar, ni la cabezera SDL_net.h existe, intente usar las de SDL_net estandar, pero estas llaman a una funcion de una cabezera que esta en la carpeta include/asm-i386.
Conclusion, hasta que no consigue eliminar el soporte SDL_net en Battle for Wesnoth, es importable, a menos q alguien sepa portar las SDL_net.

Pero si la GP2X, en principio, no tiene soporte para jugar en red, ¿para qué quieres portar las SDL_net?

Lo suyo sería eliminar del código toda referencia a dichas librerías :)

Saludos

BuD
24/12/2005, 00:46
Pero si la GP2X, en principio, no tiene soporte para jugar en red, ¿para qué quieres portar las SDL_net?

Lo suyo sería eliminar del código toda referencia a dichas librerías :)

Saludos
Quien te dice que en un futuro estas no se vayan a usar?
Estaria bien portar algo para que dejara compilar y cuando se pueda usar una posible conexion pues ya se haran las SDL_net para que pueda usarse...

Puck2099
24/12/2005, 01:59
Quien te dice que en un futuro estas no se vayan a usar?
Estaria bien portar algo para que dejara compilar y cuando se pueda usar una posible conexion pues ya se haran las SDL_net para que pueda usarse...

Si no digo que en el futuro no se vaya a usar, pero veo una tontería trabajar en vano ahora, si en dos meses hay soporte multijugador, pues entonces te puedes tomar la molestia de compilar la SDL_net, pero así de momento te has quitado ese trabajo y tienes un juego más para jugar :)

Aunque no sé, parece que me llevas la contraria, pero luego dices más o menos lo mismo que yo :p

Saludos

BuD
25/12/2005, 00:08
Si no digo que en el futuro no se vaya a usar, pero veo una tontería trabajar en vano ahora, si en dos meses hay soporte multijugador, pues entonces te puedes tomar la molestia de compilar la SDL_net, pero así de momento te has quitado ese trabajo y tienes un juego más para jugar :)

Aunque no sé, parece que me llevas la contraria, pero luego dices más o menos lo mismo que yo :p

Saludos
No entiendo lo que quieres decir, pero supongo q tendras razon :p

Kiwi
25/12/2005, 08:40
Tras tanto dar la tabarra ya parece que he conseguido una forma de que esto compile bien. :)

Una pregunta, los que usáis el Dev-C++ para compilar tb en SDL bajo Windows (para que el ejecutable rule en Windows quiero decir) cómo lo tenéis configurado? Hay que instalar algún otro DevKit, hacéis con el default compiler o.....?

BuD
27/12/2005, 02:31
Bueno, haciendo chapuza tras chapuza he conseguido compilar bien el Battle for Wesnoth! :brindis:
Pero no hos emocioneis, porque no rula :(
Me da estos warrnings que no se lo q significan:

buddy@NewTokyo:~/wesnoth-1.0.2/src$ arm-gp2x-linux-g++ -I./sdl_ttf -I../intl -I../intl -I/opt/devkitgp2x/arm-gp2x-linux/include/SDL -D_REENTRANT -DWESNOTH_PATH="/mnt/sd/wesnoth" -DLOCALEDIR="translations" -DHAS_RELATIVE_LOCALEDIR=1 -DFIFODIR="/mnt/sd/wesnoth/wesnothd" -static -o wesnoth about.o actions.o ai.o ai_attack.o ai_move.o animated.o astarnode.o builder.o cavegen.o checksum.o clipboard.o config.o cursor.o dialogs.o display.o events.o filesystem.o font.o game.o game_config.o game_events.o gamestatus.o gettext.o halo.o help.o hotkeys.o image.o intro.o key.o language.o leader_list.o log.o map.o map_create.o map_label.o mapgen.o mapgen_dialog.o mouse.o multiplayer.o multiplayer_ui.o multiplayer_wait.o multiplayer_connect.o multiplayer_create.o multiplayer_lobby.o network.o network_worker.o pathfind.o pathutils.o playcampaign.o playlevel.o playturn.o preferences.o publish_campaign.o race.o random.o replay.o reports.o sdl_utils.o show_dialog.o sound.o statistics.o team.o terrain.o theme.o thread.o titlescreen.o tooltips.o tstring.o unit.o unit_display.o unit_types.o variable.o video.o wassert.o serialization/binary_or_text.o serialization/binary_wml.o serialization/parser.o serialization/preprocessor.o serialization/string_utils.o serialization/tokenizer.o widgets/button.o widgets/combo.o widgets/label.o widgets/menu.o widgets/progressbar.o widgets/scrollarea.o widgets/scrollbar.o widgets/scrollpane.o widgets/slider.o widgets/textbox.o widgets/widget.o zipios++/xcoll.o sdl_ttf/SDL_ttf.o -Wl,--rpath -Wl,/opt/devkitgp2x/arm-gp2x-linux/lib /opt/devkitgp2x/lib/libSDL_image.a /opt/devkitgp2x/lib/libjpeg.a -L/opt/devkitgp2x/bin -L/opt/devkitgp2x/lib -L/opt/devkitgp2x/lib/gcc/arm-gp2x-linux/4.0.2/ -L/opt/devkitgp2x/lib/libSDL_mixer.a /opt/devkitgp2x/lib/libvorbisidec.a -L/opt/devkitgp2x/lib/libmikmod.a -L/opt/devkitgp2x/lib/libSDL.a /opt/devkitgp2x/arm-gp2x-linux/lib/libstdc++.a -L/opt/devkitgp2x/arm-gp2x-linux/lib /opt/devkitgp2x/lib/libfreetype.a -lSDLmain -lSDL_image -lpng -ljpeg -lz -lSDL_mixer -lvorbisidec -lmikmod -lSDL -lpthread -lSDL_net -lc_nonshared
/opt/devkitgp2x/lib/libmikmod.a(mdriver.o): In function `MD_DropPrivileges':
mdriver.c:(.text+0x2cf4): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/opt/devkitgp2x/lib/libSDL_net.a(SDLnet.o): In function `SDLNet_ResolveIP':
SDLnet.c:(.text+0x1c0): warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/opt/devkitgp2x/lib/libSDL_net.a(SDLnet.o): In function `SDLNet_ResolveHost':
SDLnet.c:(.text+0xd4): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

miq01
27/12/2005, 02:48
Una pregunta, los que usáis el Dev-C++ para compilar tb en SDL bajo Windows (para que el ejecutable rule en Windows quiero decir) cómo lo tenéis configurado? Hay que instalar algún otro DevKit, hacéis con el default compiler o.....?
Yo ahora uso Cygwin y Makefile, pero que yo recuerde desde Dev-C++ puedes tener varias configuraciones y usar la que te apetezca en cada momento. Vaya, que puedes tener una configuración para el Devkit de GP2X y otra para Mingw32. Respecto a SDL, basta con que descargues la última versión y metas los .h en el subdirectorio SDL del directorio include de Dev-C++. Y lo mismo para los .lib, solo que estos van al directorio lib de Dev-C++.

miq01
27/12/2005, 02:54
Me da estos warrnings que no se lo q significan:

mdriver.c:(.text+0x2cf4): warning: Using 'getpwnam' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/opt/devkitgp2x/lib/libSDL_net.a(SDLnet.o): In function `SDLNet_ResolveIP':
SDLnet.c:(.text+0x1c0): warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/opt/devkitgp2x/lib/libSDL_net.a(SDLnet.o): In function `SDLNet_ResolveHost':
SDLnet.c:(.text+0xd4): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

El primero lo da porque seguramente usas SDL_mixer. Dice que si llamas a "getpwnam" estáticamente probablemente tendrás problemas. Aunque no sé qué función de SDL_mixer usa "getpwnam". Eso sí, yo siempre que compilo obtengo ese warning y aún así todo ha ido bien. Todo depende de si llamas o no a la función misteriosa de SDL_mixer. Y supongo que lo mismo para los warnings de SDLNet...

BuD
27/12/2005, 03:19
El primero lo da porque seguramente usas SDL_mixer. Dice que si llamas a "getpwnam" estáticamente probablemente tendrás problemas. Aunque no sé qué función de SDL_mixer usa "getpwnam". Eso sí, yo siempre que compilo obtengo ese warning y aún así todo ha ido bien. Todo depende de si llamas o no a la función misteriosa de SDL_mixer. Y supongo que lo mismo para los warnings de SDLNet...
Mi duda es si sea la razon por la que no funciona, pero si tu me dices q has probado programas que daban warnings del mismo estilo y te funcionaban pues debe ser fallo mio.
No se que podria ser... en pricipio ejecutando:
./wesnoth.gpe [data_directory] (bueno, en mi caso: "pwd | ./wesnoth.gpe") [wei6]
deberia rular, pero no sale ni un mensaje de error por la shell ni nada de nada...
Bueno, ya mirare, gracias por tó! [wei4]

time2sail
02/05/2006, 16:27
- Estoy intentado descargar las SDL desde el sitio ftp de gp32spain con el login y pass del primer post, y no puedo.

He pensado que quizá con "public_ftp@gp32spain.com" puck se referiría al usuario "public_ftp" @ dominio "gp32spain.com", pero ni con esas.

O sea, he probado dos usuarios:
- "public_ftp@gp32spain.com"
- "public_ftp"

Pero ninguno de los dos ha funcionado con el password, y el servidor parece "UP".

¿ Alguien puede intentarlo ?

Gracias !!!

Uncanny
02/05/2006, 17:37
Creo que el FTP público de GP32Spain aun está cerrado, las últimas SDL aceleradas que ha sacado paeryn las tienes en este (http://www.gp32x.com/board/index.php?showtopic=23819&st=270) hilo de GP32x además de en la zona de descarga de GP32Spain.