Gngeo: jugando a la Neo-Geo desde Linux

Neo-Geo

Ester ya se lanzó hace un tiempo a hablarnos de una consola que formó parte de su infancia, sus videojuegos y cómo volver a jugarlos en nuestro ordenador.

Como soy bastante fan de los juegos de antaño, con gráficos menos espectaculares y de menos dimensiones, pero sí llenos de grandes dosis de diversión, no podía pasar mucho tiempo sin que empezase a hablar de emuladores.

Los emuladores son programas que imitan el comportamiento de un determinado sistema, para nuestro caso las videoconsolas, haciendo creer al juego que está funcionando en una consola de verdad. La mayoría de los emuladores no sólo se centran en emular, sino que también aportan muchas más características como poder guardar la partida en cualquier punto, cambiar la resolución, añadir efectos visuales, utilizar joystick o mandos para el ordenador, introducir trucos o códigos, grabar vídeos de las partidas, etc.

En cuanto a videoconsolas, tenemos emuladores para casi todas las que os podáis imaginar: desde la Atari 2600 hasta la PS3, pasando por la Nintendo 64, Mega Drive, Game Boy…

Es importante advertir que no todos los emuladores ofrecen una experiencia perfecta. Dependiendo de lo difícil de emular o exigente (en cuanto a recursos de procesador y memoria) que sea el sistema original, la emulación puede ser imperfecta o desastrosa. No pretendáis emular la Playstation 2 en un Pentium I…

Gngeo: emulador de Neo-Geo

Qué mejor que empezar hablando de la Neo-Geo, una consola con juegos altamente adictivos y superiores gráficamente a sus competidoras de la época. Originalmente salió siendo una máquina recreativa (MVS), pero al año sacaron la versión videoconsola (AES), siendo exactamente igual en características, así que se podía jugar a esos mismo juegos. La consola era carísima, no sólo comparándola con el resto de la época (Mega Drive o Super Nintendo), sino porque más de 100.000 pesetas (600 € aproximadamente) no era algo que se viese para este sistema de entretenimiento (y no hablemos del precio de los juegos…). No conozco a nadie que la haya comprado, pero sí recuerdo la cara que nos quedaba en las tiendas al ver esos juegazos. ¡Los juegos de la recreativa en casa! Pero vamos al tema en cuestión, que yo rápidamente me emociono y empiezo a soltar parrafadas.

El emulador que usaremos para poder jugar a los juegos de Neo-Geo en nuestro ordenador se llama Gngeo. Tenéis paquetes listos para instalar en las distribuciones más populares (Debian/Ubuntu, Arch Linux, Fedora…). Haremos uso del terminal, pero nada complicado, así que no escapéis… aún :-P

Necesitaremos también la bios de Neo-Geo. Sin ella no podremos jugar. Podéis descargarla desde aquí [ ZIP – 1,4 MB ]. Si la conseguís por otro lado, para que os funcione, es importante que conserve el nombre neogeo.zip y debe incluir los siguientes archivos:

  • BIOS:
    • 000-lo.lo
    • sfix.sfx
  • Archivos de región:
    • usa_2slt.bin (Estados Unidos)
    • vs-bios.rom (Japón)
    • asia-s3.rom (Asia)
    • sp-s2.sp1 (Europa)

Configuración del emulador

Tras la instalación, al ejecutar Gngeo, buscará por defecto roms y bios de Neo-Geo en el directorio /usr/share/gngeo. Si queremos indicarle que busque en otro sitio, tendríamos que ejecutarlo de la siguiente manera:

gngeo -B /ruta/a/la/bios -i /ruta/a/las/roms.

Sin embargo, lo más cómodo es usar un archivo de configuración donde establezcamos todas las opciones que nos interesen y poder lanzar el emulador con solo gngeo o a través del menú de aplicaciones. Así que, ¡manos a la obra!

Creamos un directorio oculto en nuestra carpeta personal que llamaremos .gngeo, y dentro de él copiaremos el archivo de configuración de ejemplo que viene junto a la instalación. Puede estar en /usr/share/gngeo/sample_gngeorc o en /usr/share/doc/gngeo/gngeorc. Si no tuviéseis este fichero, podéis descargar el mío. El archivo de configuración tiene que llamarse gngeorc.

De todo lo que podemos personalizar, lo más interesante para empezar a machacar botones es indicar dónde están nuestros juegos y la bios. Se trata de estas líneas:

# Where your rom are?
rompath /home/jm/roms/neogeo

# Where did you put yout neogeo.zip bios file?
biospath /home/jm/roms/neogeo

En rompath ponemos el directorio donde están los juegos de Neo-Geo. En biospath aquél donde tenemos la bios.

Uso de Gngeo

Al ejecutar Gngeo veremos una pantalla como esta:

Gngeo

Con las flechas del teclado podemos desplazarnos por las distintas secciones, y con Enter entrar en cada una de ellas. Si quisiésemos volver al menú anterior, la tecla Esc es la respuesta.

LOAD GAME

Dentro de esta sección aparecerán todos los juegos de Neo-Geo que el emulador ha identificado en el directorio que le hemos dicho en el archivo de configuración.

Importante: si el archivo del juego no tiene el nombre que le da MAME (un emulador de recreativa), el emulador no lo reconocerá. Por ejemplo, el archivo que contiene el Metal Slug es mslug.zip. Si se llama de cualquier otra manera, Gngeo creerá que no se trata de un juego de Neo-Geo y pasará de él olímpicamente y no lo mostrará en la lista.

Gngeo: lista de roms

Para lanzar uno de ellos, lo elegimos (fijaos que aparezca el símbolo > al lado) y pulsamos Enter:

Gngeo: Metal Slug

OPTION

Aunque hablamos sobre un archivo de configuración, el emulador nos permite cambiar alguna de las opciones directamente, haciéndose efectivos estos cambios en el momento. Quizás os interese poder jugar a pantalla completa (fullscreen) añadiendo ese efecto de scanlines para que se parezca más a la recreativa:

Gngeo: Metal Slug

Serían las siguientes opciones en el fichero gngeorc:

# Pantalla completa
fullscreen true

# Efecto scanline, para que se muestren rayas negras
effect scanline

Configuración de teclas

Para jugar, tenemos que saber cómo pulsar los botones A, B, C, D de la Neo-Geo. Además de los controles de dirección, el botón de start y cómo meter monedas. Veamos cómo asociar esos botones a teclas de nuestro teclado.

Instrucciones para jugar al Metal Slug
Detalle de la recreativa de Metal Slug con las instrucciones

Si abrís el fichero gngeorc, hay una sección llamada Key configuration donde hay una explicación sobre cómo hacer estos cambios y nos pone unos ejemplos:

# Qwerty configuration:
# p1: z,x,a,s,1,3,up,down,left,right
# p2: l,;,o,p,2,4,NUM 8,NUM 5,NUM 4,NUM 6
p1control A=K122,B=K120,C=K97,D=K115,START=K49,COIN=K51,UP=K273,DOWN=K274,LEFT=K276,RIGHT=K275,MENU=K27                 
p2control A=K108,B=K59,C=K111,D=K112,START=K50,COIN=K52,UP=K264,DOWN=K261,LEFT=K260,RIGHT=K262,MENU=K27

Ahí arriba vemos que el jugador uno (Player 1) tendrá la siguiente configuración:

Botón Neo-Geo Tecla
A z
B x
C a
D s
START 1
COIN 3
Arriba
Abajo
Izquierda
Derecha

Pero, un momento, ahí arriba no pone por ningún lado que el botón A sea la tecla z, sino una cosa rara como K122. Efectivamente, tenéis razón. Sin embargo, es lo mismo, sólo que en otro «idioma». Se debe a que el emulador usa SDL, pero eso no nos importa ahora. El caso es que la asociación de teclas la tenemos en el fichero /usr/include/SDL/SDL_keysym.h, donde se establece la definición de cada tecla. Es ahí donde vemos que, por ejemplo, la tecla z, que es representada por SDLK_z, sería el 122:

    SDLK_z          = 122,

En el fichero de configuración gngeorc se pone una K delante para hacer referencia a que se trata de una tecla del teclado (K, de keyboard, teclado en inglés).

Ya sabéis todo lo necesario para adaptar los controles a vuestro gusto :-)

Configuración de joystick

Si tenemos un mando (joystick) para el PC y no nos gusta jugar con el teclado, podemos usarlo también con el Gngeo. Da igual el mando que sea, lo importante es saber cómo asociar los botones de ese mando con las acciones en Gngeo. Con el teclado lo teníamos más o menos sencillo, ya que en cada tecla hay un dibujo que representa una tecla, un número o un símbolo. ¿Y en un mando? Puede haber también letras, números y símbolos, pero cada mando es distinto. Vaya lío. Es trabajo para jstest, un programa incluido en el paquete joystick. Así que instalamos ese paquete, conectamos el mando al PC y ejecutamos desde un terminal:

jstest /dev/input/js0

Si tuviésemos más de un joystick conectado, sería js1, js2… y así sucesivamente.

Según vayamos presionando los botones del mando, se pondrá en ON el botón correspondiente, de esta manera sabremos cómo hacer las asignaciones.

Buttons:  0:off  1:off  2:off  3:off  4:on  5:off  6:off  7:off  8:off  9:off 10:off 11:off 12:off 13:off 14:off 15:off 16:off 17:off 18:off

En el ejemplo de arriba, 4 está on, eso quiere decir que se ha pulsado un botón que se reconoce como 4.

Configurando el DualShock

Como es el único mando de videoconsola que tengo por aquí para probar, os dejo información relevante. Lo puedo conectar al PC o portátil a través de un adaptador USB. Con este ejemplo os servirá para que adaptéis fácilmente el mando que tengáis.

DualShock

En el fichero gngeorc configuramos los botones en la parte que pone:

p1control A=J0B14,B=J0B13,C=J0B15,D=J0B12,START=J0B3,COIN=J0B8,UP=J0B4,DOWN=J0B6,LEFT=J0B7,RIGHT=J0B5

Si recordáis la parte de la configuración del teclado, se pone primero el botón de Neo-Geo y a continuación el del, en este caso, mando DualShock. Por ejemplo, A=J0B14 quiere decir que el botón A será el botón 14 del mando 0 (por J0). Si hubiese otro mando, sería J1, y así sucesivamente.

Tendríamos entonces la siguiente configuración:

Botón Neo-Geo DualShock
A Cruz
B Círculo
C Cuadrado
D Triángulo
START START
COIN L2
Arriba
Abajo
Izquierda
Derecha

Os dejo todos los botones del mando DualShock para que luego configuréis Gngeo como vosotros queráis (ojo, quizás vuestro adaptador mande una configuración de botones diferente, así que comprobadlo siempre antes con jstest):

Gngeo DualShock
J0B0 SELECT
J0B1 Pulsación de Sixaxis izquierdo
J0B2 Pulsación de Sixaxis derecho
J0B3 START
J0B4
J0B5
J0B6
J0B7
J0B8 L2
J0B10 L1
J0B11 R1
J0B12 Triángulo
J0B13 Círculo
J0B14 Cruz
J0B15 Cuadrado
J0B16 ANALOG
J0a1 Sixaxis izquierdo
J0A0 Sixaxis izquierdo

¡A jugar!

Si habéis leído hasta aquí, os merecéis un regalo. Es hora de echarse unas partidas. Aquí os dejo algunos juegazos:

Nota: Hay juegos que vienen en dos sets. Es necesario tener ambos para poder jugar.

7 thoughts on “Gngeo: jugando a la Neo-Geo desde Linux

  1. hola donde puedo descargar mas roms que sean compatibles con gngeo??? tengo para PC neoragex y jalan super, pero he intentado probar con gngeo y no se ejecutan. o hay una manera de convertirlos???

    • Hola, sebastian,

      ¿Has probado con las ROMs que enlazo en el artículo? No es necesario convertirlas. Lo que sí es muy importante es contar con la bios de Neo-Geo, ya que es necesaria para poder arrancar los juegos. Tienes un montón de ROMs en Emuparadise.

  2. A punto estaba de darme por vencido con neogeo en linux hasta que encontré este tutorial. Aunque no es muy reciente te doy las gracias por mantener vivo este proyecto del cual se habla cada vez menos. De verdad, muchísimas gracias.
    Unos apuntes que voy descubriendo a medida que voy probando cosas:
    1.- Si no indicamos donde está la bios, gngeo la buscará en el mismo directorio que los juegos, sea cual sea.
    2.- A gngeo parece que no le gustan las rutas donde las carpetas tienen espacios en sus nombres. Evitar espacios en los nombres de carpetas.
    3.- Con gngeo, dentro de la propia aplicación podremos buscar dónde están los juegos. Cuando cerremos la aplicación recordará la ruta donde lo hemos dejado, por lo que no es necesario crear esta parte del archivo de configuración.
    Por lo que veo, las distribuciones van quitando a gngeo de sus repositorios poco a poco. Cada vez se hace más necesario un enlace para su descarga y no olvidemos que la página de berlios hace tiempo que no está operativa.
    Todavía no entiendo muy bien lo de set1 y set2. Tengo varios juegos con sólo el set1 y funcionan (o eso parece). Hay otro que le tuve que poner los dos y sólo arranca desde el set2.
    De nuevo, muchas gracias.

    • Muy buenas, sol,

      Tienes razón, el proyecto gngeo lleva abandonado unos añitos. Es una pena porque es un buen emulador, eficiente y rápido. Como alternativas, tenemos MAME o FBA, aunque no sean emuladores específicos de Neo-Geo. Ambos proyectos siguen en activo.

      Sobre tus apuntes:

      Si no indicamos donde está la bios, gngeo la buscará en el mismo directorio que los juegos, sea cual sea. Efectivamente, es una práctica que suelen compartir otros emuladores como los mencionados anteriormente.

      Todavía no entiendo muy bien lo de set1 y set2. Ni yo, jejeje. Es un tema poco claro. La teoría dice que diferentes sets suponen diferentes copias de las placas de los juegos. Es decir, que alguien hizo otra copia de la (supuestamente) misma placa, pero con un resultado distinto. Al final depende del emulador si necesita solo uno o todos.

      Muchas gracias a ti por tus aportes. Me encanta ver otro fan de la Neo-Geo ;-)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *