* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

Alien 8 Remake

Alien 8 Remake bajo Linux.

http://www.youtube.com/watch?v=WgR6i_tgujo

http://www.youtube.com/watch?v=H4m_3R0REl8

Navegando por Internet, descubrí este remake del antiguo juego de MSX (y otros ordenadores).

Lo probé bajo windows y ví que incluía el codigo fuente del motor gráfico isométrico "http://retrospec.sgn.net/users/ignacio/isoesp.htm"; así como el código fuente en sí.

Y se me ocurrió intentar probarlo bajo Linux.
Os cuento lo que he ido descubriendo por si a alguien le sirve algo. Si algo está mal o lo explico mal -muy probable, mis conocimientos de C están MUY OXIDADOS y he ido aprendiendo cosas por el camino-, corregidme.

Lo primero bajarse la versión Windows y jugar un poco con ella, para familiarizarse con ella. Además en ella están unos ficheros de datos que luego necesitaremos.
Ya en Linux, bajar el codigo fuente y descomprimirlo en algún directorio. Lo primero que vemos es que no incluye un makefile, aunque hay un leeme que explica que necesitamos la libreria allegro y fmod.
Y creedme, no va a ser muy fácil (a mí al menos no me lo pareció) compilarlo y ejecutarlo.

Para empezar necesitaremos lo habitual para compilar en c, gcc y demás cosas habituales, un buen editor de texto....Luego iremos instalando más cosas.
Podemos empezar por ir compilando uno a uno los ficheros fuentes .c pasándolos a codigo fuente .o, mediante el parametro -c, y luego nos preocuparemos por el linkado.

Podemos ir haciendo

gcc -c fichero.c para cada uno de los ficheros , incluso 
gcc -c *.c

Nos dará varios errores en algunos ficheros, vamos a ir viéndolos.

Empecemos por el más sencillo, el de internet.c:

internet.c:13:22: error: winalleg.h: No existe el fichero o el directorio

El juego permite enviar por internet la puntuación. Al comienzo del internet.c veremos unos comentarios y un define que habrá que cambiar para compilar bajo linux.

// USE HERE THE PROPER DEFINITION FOR THE OS YOU ARE COMPILING DEFLEKTOR ON 
//#define INTT_WIN // Windows
//#define INTT_MAC // Macintosh
#define INTT_LNX // Linux

Comentamos el de windows y descomentamos el de linux. Facil,¿no? También podremos ver que se hacen referencias a la librería curl, por lo que ya podemos adelantándolo e ir instálandola mediante el Centro Control Mandriva.

Veamos ahora el fallo de juego.c

juego.c: En la función ‘mov_plasma’:
juego.c:2785: error: se requiere un l-valor como operando izquierdo de la asignación
juego.c:2809: error: se requiere un l-valor como operando izquierdo de la asignación

Aqui me imagino que el fallo es que el código incluye ciertas cosas que en otros sistemas operativos/compiladores se permite, pero la versión de C de linux no. Usar en un operando de condición la variable en la que luego asignaremos un valor.

(dato==D_X?movs[f].m0:movs[f].m1)=(dif<0?-1:1);

Yo lo solucioné sustituyéndolo por varios if.

auxPaco=(dif<0?-1:1);
if (dato==D_X)   movs[f].m0=auxPaco;        else   movs[f].m1=auxPaco;

Y en el otro sitio donde aparece el error, pues algo muy parecido.
O incluso, a las malas, comentamos la línea entera y ya está. Altera el movimiento de uno de los enemigos y ya está :-)

Ahora viene el fallo del audio.c. Preparaos...

Menciona que no incluye un fichero .h (fmod.h)
Habréis visto que en la web ( y en el leeme.txt) dice que hace falta la libreria allegro y la fmod.

La librería allegro (una librería para hacer videojuegos) la podemos instalar vía Centro Control Mandriva. La fmod (para la música) yo no la encontré.

Asi que la bajé de su pagina web y la descomprimí en un directorio auxiliar aparte.
Veremos que es un tar, y que incluy un makefile.Al ejecutar el makefile nos indicara que podemos construir los ejemplos, e instalar la libreria y sus cabeceras.
Escogemos esto (como usuario) y veremos como basicamente lo que hace es copiar los archivo cabecera (.h) a un directorio y la librería dinámica (.so) a otro directorio.

[root@localhost /home/luis/alien8/fmodapi43201linux]# make install
Installing FMOD Ex libraries and headers...
cp -f api/lib/libfmodex-4.32.01.so /usr/local/lib
ldconfig -n /usr/local/lib
mkdir -p /usr/local/include/fmodex
cp -f api/inc/*.h* /usr/local/include/fmodex
done.
[root@localhost /home/luis/alien8/fmodapi43201linux]#

Por lo que ya tenemos el .h que necesitamos.
Ahora hay que indicarle al compilar que use ese fichero de cabecera .h, con el parametro -I (i mayúscula)
gcc -c -I/usr/local/include/fmodex *.c
Este comando ya debería de generar todos los ficheros .o necesarios.

Ahora falta linkarlo (¡y luego ejecutarlo!), esperad... (continuará)