Inicialización gráfica con Allegro bajo Linux

Temas relacionados con la programación y la actualización audiovisual
User avatar
benway
Usuario avanzado
Posts: 172
Joined: Sun Apr 03, 2005 1:22 pm
Location: Madrid

Inicialización gráfica con Allegro bajo Linux

Postby benway » Mon Jan 09, 2006 9:41 pm

Hola, a ver si podéis ayudarme como siempre ;) :)

Resulta que cuando compilo bajo mi Linux (kubuntu para 64 bits, pq tengo un AMD64), el código del Capitán Sevilla, del Horacio Esquiador o del Phantomas PC, da error y no me permite iniciar el modo fullscreen ni la aceleración por hardware, sin embargo, cuando ejecuto uno de los binarios de esos programas precompilados por traperic funciona sin problemas :shock:

Que conste de antemano mi absoluta "novatez" en esto del Linux, pero lo he estado intentando de mil maneras y no hay forma (que se lo digan al pobre traperic y a su paciencia infinita ;) :)) ¿Sabéis a qué puede ser debido? y... lo que es más importante... ¿por dónde puede andar la solución?

Mil gracias de antemano :-)
Un saludo.Image - Image
User avatar
ruboslav
Usuario avanzado
Posts: 156
Joined: Thu Oct 21, 2004 4:01 pm

Postby ruboslav » Mon Jan 09, 2006 11:20 pm

Igual (sólo igual ¿eh?) te puedo ayudar porque algo en Linux ando. Exactamente,¿qué errores te arroja o escupe?.
User avatar
benway
Usuario avanzado
Posts: 172
Joined: Sun Apr 03, 2005 1:22 pm
Location: Madrid

Postby benway » Tue Jan 10, 2006 12:23 pm

Te cuento:

La función ALLEGRO_ERROR devuelve lo siguiente:
ERROR: Unable to find a suitable graphics driver.
Lo cual indica que faltaría un driver gráfico, y es bastante compatible con el hecho de que los binarios de traperic, que estan enlazados estáticamente, sí que lleven en su interior los drivers necesarios.

El caso es que cuando compilo Allegro, al hacer el ./Configure, obtengo en el resumen final esta sospechosa línea
Disabled modules: jackdigi svgalib vbeaf vga sgialdigi
En teoría, al ejecutarlo de esta manera:
./configure --enable-vga=yes --enable-vbeaf=yes --enable-svgalib=yes
debería cambiar, ¿no? Pues no :( ... El resultado es el mismo...
Disabled modules: jackdigi svgalib vbeaf vga sgialdigi
... por lo que deduzco que me falta alguna librería de la que Allegro depende para poder construir el driver gráfico en su librería, ya sea estática o dinámica, que he probado las 2 opciones :?

¿Se os ocurre cómo arreglarlo? Por cierto, yo tengo instalados los drivers de NVidia para mi tarjeta (NVidia GeoForce TI4200) y funciona bien la aceleración gráfica, incluidos los binarios de allegro precompilados por traperic.

Por cierto... mi kernel es 2.6.12-10-amd64-generic

Una ayuditaaaaa... por favooorrrrr... ;) :)
Last edited by benway on Tue Jan 10, 2006 3:51 pm, edited 2 times in total.
Un saludo.Image - Image
User avatar
ruboslav
Usuario avanzado
Posts: 156
Joined: Thu Oct 21, 2004 4:01 pm

Postby ruboslav » Tue Jan 10, 2006 3:05 pm

Madre de dios. Lo siento, pero escapa de mis -escasos- conocimientos.
User avatar
benway
Usuario avanzado
Posts: 172
Joined: Sun Apr 03, 2005 1:22 pm
Location: Madrid

Postby benway » Tue Jan 10, 2006 3:50 pm

Madre de dios. Lo siento, pero escapa de mis -escasos- conocimientos.
:D

Bueno, al menos lo has intentado ;) :) Gracias de todos modos :) ;)
Un saludo.Image - Image
kabutor
Usuario habitual
Posts: 14
Joined: Tue Sep 14, 2004 3:34 pm

Postby kabutor » Wed Jan 11, 2006 12:20 am

que te da el

glxinfo |grep dire

?

Ak hacer el configure si le dices enable-svgalib deberia de decirte algo como que no encuentra la libreria X o Y pq sino no deberia de salirte eso de modulo desactivado svgalib...

Tienes todas las dependencias para allegro?
De hecho mirando en mi PC que tb es un amd64 no me deja activar svga, pq parece ser que la libreria svgalib no es compatible con los amd64..

De cualquier forma creo que deberia mirar en los foros-documentacion-canal-irc de allegro que seguro q te informan mejor q yo.
User avatar
benway
Usuario avanzado
Posts: 172
Joined: Sun Apr 03, 2005 1:22 pm
Location: Madrid

Postby benway » Wed Jan 11, 2006 6:09 pm

que te da el
glxinfo |grep dire?
A ver... vamos a probar...
luis@melkor:~$ glxinfo |grep dire
direct rendering: Yes
La salida exacta del ./configure... es esta:
luis@melkor:~/allegro-4.2.0$ ./configure --enable-vga=yes --enable-vbeaf=yes --enable-svgalib=yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking whether -fomit-frame-pointer is safe... yes
checking whether an include prefix is needed... yes
checking how to run the C preprocessor... gcc -E
checking whether a C++ compiler is installed... yes
checking whether linker works with -s option... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether make sets $(MAKE)... yes
checking whether ln -s works... yes
checking for ldconfig... /sbin/ldconfig
checking for makeinfo... echo ought to run makeinfo
checking for install-info... /usr/sbin/install-info
checking for processor type... amd64
checking whether -mtune is supported... yes
checking for asm prefix before symbols... ""
checking whether byte ordering is bigendian... no
checking for MAP_FAILED... yes
checking for sched_yield in -lc... yes
checking for constructor attribute... yes
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking whether --export-dynamic linker flag is supported... yes
checking for dlopen in -ldl... yes
checking soundcard.h usability... no
checking soundcard.h presence... no
checking for soundcard.h... no
checking sys/soundcard.h usability... yes
checking sys/soundcard.h presence... yes
checking for sys/soundcard.h... yes
checking machine/soundcard.h usability... no
checking machine/soundcard.h presence... no
checking for machine/soundcard.h... no
checking linux/soundcard.h usability... yes
checking linux/soundcard.h presence... yes
checking for linux/soundcard.h... yes
checking for _oss_ioctl in -lossaudio... no
checking for supported ALSA version for digital sound... yes
checking for supported ALSA version for MIDI... yes
checking for esd-config... /usr/bin/esd-config
checking for esd_open_sound... yes
checking for artsc-config... /usr/bin/artsc-config
checking for arts_init... yes
checking for alOpenPort in -laudio... no
checking for soundcard.h... (cached) no
checking for sys/soundcard.h... (cached) yes
checking for machine/soundcard.h... (cached) no
checking for linux/soundcard.h... (cached) yes
checking linux/awe_voice.h usability... yes
checking linux/awe_voice.h presence... yes
checking for linux/awe_voice.h... yes
checking for _oss_ioctl in -lossaudio... (cached) no
checking for OSS sequencer support... yes
checking sys/procfs.h usability... yes
checking sys/procfs.h presence... yes
checking for sys/procfs.h... yes
checking for getexecname in -lc... no
checking for X... libraries /usr/X11R6/lib, headers
checking for XMissingExtension in -lXext... yes
checking X11/xpm.h usability... yes
checking X11/xpm.h presence... yes
checking for X11/xpm.h... yes
checking for XpmCreatePixmapFromData in -lXpm... yes
checking for XcursorImageCreate in -lXcursor... yes
checking for XShmQueryExtension in -lXext... yes
checking for XF86VidModeQueryExtension in -lXxf86vm... no
checking for XDGAQueryExtension in -lXxf86dga... yes
checking for XOpenIM in -lX11... yes
checking sys/io.h usability... yes
checking sys/io.h presence... yes
checking for sys/io.h... yes
checking linux/joystick.h usability... yes
checking linux/joystick.h presence... yes
checking for linux/joystick.h... yes
checking linux/input.h usability... yes
checking linux/input.h presence... yes
checking for linux/input.h... yes
checking linux/fb.h usability... yes
checking linux/fb.h presence... yes
checking for linux/fb.h... yes
checking vga.h usability... no
checking vga.h presence... no
checking for vga.h... no
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for pthread_create in -lpthread... yes
checking for pkg-config... /usr/bin/pkg-config
Package jack was not found in the pkg-config search path.
Perhaps you should add the directory containing `jack.pc'
to the PKG_CONFIG_PATH environment variable
No package 'jack' found
Package jack was not found in the pkg-config search path.
Perhaps you should add the directory containing `jack.pc'
to the PKG_CONFIG_PATH environment variable
No package 'jack' found
checking for jack_client_new... no
checking for ANSI C header files... (cached) yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking whether time.h and sys/time.h may both be included... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for unistd.h... (cached) yes
checking sys/utsname.h usability... yes
checking sys/utsname.h presence... yes
checking for sys/utsname.h... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking return type of signal handlers... void
checking for mmap... yes
checking for memcmp... yes
checking for mkstemp... yes
checking for stricmp... no
checking for strlwr... no
checking for strupr... no
checking for vprintf... yes
configure: creating ./config.status
config.status: creating makefile
config.status: creating allegro-config
config.status: creating include/allegro/platform/alunixac.h
config.status: executing default commands
Some drivers will be built as dynamic modules.
Enabled modules: dga2 fbcon ossmidi artsdigi esddigi alsamidi alsadigi ossdigi
Disabled modules: jackdigi svgalib vbeaf vga sgialdigi
Generated code: multithreaded, little endian, amd64 asm
Generated libraries: shared release
Compiled programs: dynamically linked release
Ignoring compiler warnings.
X11 support: enabled with: Xext Xpm Xcursor XShm XDGA XIM
Linux console support: enabled
Como ves, de lo único que se queja es de que le falta una librería llamada jack (:D:D:D:D Como el anuncio de la colonia: "Busco una librería llamada jack" :P :D :twisted: ), pero creo que es de sonido, y no de gráficos. Por cierto, el Package Manager, el único "jack" a secas que encuentra en los repositorios es un rippeador de CD's de audio :shock:

De todas maneras... Estoy empezando a creer que lo mejor del linux es esto... el reto de superar las dificultades ;)
Un saludo.Image - Image
kabutor
Usuario habitual
Posts: 14
Joined: Tue Sep 14, 2004 3:34 pm

Postby kabutor » Thu Jan 12, 2006 12:53 am

Creo que el problema esta en donde te dije fijate :

Code: Select all

checking vga.h usability... no checking vga.h presence... no checking for vga.h... no
No encuentra el vga.h que sino me equivoco es parte de la svgalib, la cual creo que no va en amd64.

Prueba a instalar svgalib y si lo hace reconfigurar el allegro, no se como sera en ubuntu.
Guest

Postby Guest » Thu Jan 12, 2006 9:47 am

El único paquete "svgalib" que puedo instalar es svgalib1-libggi2. Lo he instalado y... :( nada... igual :(

Muchas gracias, kabutor :) Lo postearé en allegro.cc a ver qué me dicen... ya os contaré :) (Aunque claro, no se yo si mi nivel de inglés me dará :lol: :lol: )
User avatar
benway
Usuario avanzado
Posts: 172
Joined: Sun Apr 03, 2005 1:22 pm
Location: Madrid

Postby benway » Thu Jan 12, 2006 9:49 am

Oops... obviamente ese era yo, que sobreconfío en las cookies ;)
Un saludo.Image - Image
Guest

Postby Guest » Thu Jan 12, 2006 9:15 pm

Hola, bueno, no tengo mucha idea de por qué te da ése fallo. Yo me inclino a pensar que es algún fallo de las X pero no te lo puedo asegurar. ¿Has probado a ver si te funciona algún otro juego que use SDL (sin OpenGL) por ejemplo a pantalla completa a la misma resolución que el Capitán Sevilla? Si no te funciona, yo pensaría que es un fallo de la configuración de las X. Si te funciona, entonces quizás el problema esté en Allegro. La verdad es que no sé bien qué decirte :(.

Si te sirve de algo, yo compilé Allegro con:

./configure --enable-static=yes --enable-mmx=no --enable-sse=no --enable-exclopts=i386

Y el resumen del script es:

Some drivers will be built as dynamic modules.
Enabled modules: dga2 jackdigi fbcon vga ossmidi artsdigi alsamidi alsadigi ossdigi
Disabled modules: svgalib vbeaf sgialdigi esddigi
Generated code: multithreaded, little endian, i386 asm
Generated libraries: static release, shared release
Compiled programs: dynamically linked release
Ignoring compiler warnings.
X11 support: enabled with: Xext Xpm Xcursor XShm XF86VidMode XDGA XIM
Linux console support: enabled

Es decir, yo tampoco tengo soporte para SVGAlib, la he descargado y he tratado de compilarla pero no ha habido manera (tampoco me he puesto mucho a ello).

Nada más, suerte, quizás algún gurú de los que hay en allegro.cc te puedan echar una mano.

Saludos.
User avatar
traperic
Usuario avanzado
Posts: 75
Joined: Sun Apr 10, 2005 3:06 pm
Contact:

Postby traperic » Thu Jan 12, 2006 9:17 pm

Estos foros no serían lo mismo sin los típìcos "el de antes era yo". Pues eso. :wink:
User avatar
benway
Usuario avanzado
Posts: 172
Joined: Sun Apr 03, 2005 1:22 pm
Location: Madrid

Postby benway » Fri Jan 13, 2006 10:33 pm

Bueno, chicos.... ¡Por fin!

En allegro.cc me han dicho esto...
Anyway, your problem as described in the original post suggests that the X11 development libraries were not (fully) installed. Allegro uses an XFree86 extension to switch to a fullscreen mode (so SVGAlib and the like have nothing to do with the problem; as far as I know they don't work properly with X11 anyway) and it seems that that was not detected. Can you post the output from configure (all of it)?
Así que me he puesto a analizar la salida del Configure, y, a parte de lo que habíamos comentado, he encontrado esto...
checking for XF86VidModeQueryExtension in -lXxf86vm... no
Así que he mirado en el Package Manager, y he visto que no tenía instalada la librería libxxf86vm-dev. La he instalado, y reconfigurado y recompilado Allegro y... ¡eureka!

Ya por fin funciona perfectamente :) :) :)

Ahora solo me falta terminarme el GTA San Andreas y ya puedo desinstalar el Windows :twisted: :roll: :lol: :lol: :lol:
Un saludo.Image - Image

Return to “Desarrollo”

Who is online

Users browsing this forum: No registered users and 4 guests