Gorilla 2: The Return

marzo 20th, 2006

Seguro que muchos de vosotros recordais el famoso Gorilla, el pequeño juego escrito en QBasic que acompañaba algunos de los sistemas operativos de Microsoft, concretamente el MS-DOS 5 y los Windows 3.1, 95, 98 y NT 4.0.

Yo aprendí unas cuantas cosas mirando el código fuente de ese juego y también del Nibbles. Parece mentira que uno de los primeros códigos fuente que vi en mi vida proviniera de Microsoft  Echarle un ojo a ver si os vienen los recuerdos.

Gorilla1

La verdad es que era hasta divertido de jugar. A algunos les gustó tanto que hasta se ha hecho una secuela, Gorilla 2: The Return. El look es muy parecido al original, aunque un poco remozado y se le han añadido nuevas armas (todo platanos, eso si), más gorilas y la posibilidad de jugar on-line.

La verdad es que no he tenido ocasión de probarlo, pero lo estoy bajando ahora. Los gráficos prometen aunque, por desgracia, parece que el código no está disponible y los autores originales han desaparecido por lo que habrá que conformarse con el binario.

Gorilla2

Llegué a él a través de la Wikipedia, buscando información sobre gusanos informáticos, siguiendo el camino: Worm -> Worm (disambiguation) -> Worms (computer game) -> Gorilla (computer game) -> Gorilla 2: The Return.

Podeis encontrar también información sobre el Nibbles.

Guardado en General, Programación | 1 comentario »

Como portar programas a GP2X (I)

enero 7th, 2006

El portar un programa, ya sea un juego, un emulador o cualquier otro tipo a la GP2X puede ser una tarea muy sencilla o muy complicada dependiendo de que queramos portar.

En primer lugar, siempre que queramos portar algo a esta consola es necesario que dispongamos del código fuente del programa principal. Si no es así, será imposible portarlo y deberíamos hacer una adaptación, es decir, reprogramarlo de nuevo.

Una de las características deseables del código original es que utilice la libreria SDL, ya que está preinstalada en el entorno de la GP2X y por tanto será mucho más sencillo de portar. Otra característica deseable es que el programa esté pensado para ejecutarse bajo Linux, ya que este es el sistema operativo que gobierna la consola. Estas dos características no son imprescindibles, pero si que nos facilitarán mucho la vida a la hora de trabajar.

Como programa de ejemplo vamos a trabajar con Cygne-SDL, un emulador de la consola Wonderswan que funciona con la librería SDL y que resulta muy sencillo de portar.

El primer paso es instalar el entorno de compilación para la GP2X. Este procedimiento está muy bien explicado en el wiki: Getting started with GP2X development, así que no voy a repetirlo aquí. Se trata, basicamente, de instalar los programas y las librerías que nos permitirán convertir el código fuente del programa en ficheros ejecutables por nuestra consola.

Una vez instalado el entorno de compilación, lo primero que debemos hacer es comprobar que está correctamente instalado y que podemos generar ejecutables que funcionen correctamente. Uno de los más sencillos es el fichero de ejemplo de SDL que muestra una imagen en la pantalla de la consola.

Si este ejemplo nos ha funcionado correctamente, ya estamos listos para empezar a portar programas a la GP2X.

Guardado en Artículo, Programación | 1 comentario »

Linkar DLLs con MinGW

octubre 26th, 2005

Cuando tengo que programar bajo Windows suelo hacerlo en C++ con el compilador MinGW, básicamente porque estoy acostumbrado a hacerlo con gcc en Linux y me siento más cómodo con él que con Visual Studio, además del elevado precio de este.

Esto es un problema cuando necesitamos utilizar librerías externas que no han sido diseñadas para funcionar con MinGW. En este caso me he encontrado al ir a realizar una aplicación que utiliza el SDK de Canon.

Dicho SDK incluye el fichero CDSDK.LIB con el que hay linkar para poder llamar a las funciones que ofrece la DLL correspondiente. Este fichero está pensado para ser utilizado en Visual Studio, por lo que no funciona con MinGW. Por suerte hay una manera de convertirlo, veamosla en sencillos pasos:

  • Exportar las funciones a un fichero DEF con la ayuda de pexports: pexports cdsdk.dll > cdsdk.def
  • Ver todas las funciones que necesitamos importar y que no funcionan. Esta lista nos la da MinGW a la hora de linkar y veremos que las funciones acaban en @nn, donde nn es un número.
  • Modificar el fichero DEF añadiendo los @nn donde sea necesario
  • Convertir la DLL con dlltool (que creo que viene incluido en MinGW): dlltool —input-def cdsdk.def —dllname cdsdk.dll —output-lib libcdsdk.a
  • Copiamos libcdsdk.a a c:mingwlib
  • Ya podemos linkar nuestro programa con la libreria: gcc -lcdsdk main.cpp -o programa

Esto servirá también para otras librerías que queramos usar desde MinGW.

Guardado en Artículo, Programación | Comentarios desactivados en Linkar DLLs con MinGW