Emulador de Snes en GNU/Linux

Noviembre 20, 2008

Aquí va un “mini how-to” para instalar y configurar un emulador de la consola Super Nintendo (o Super Nes, o Super Famicom, o Super Ladrillo) en un sistema GNU/Linux de 32 ó 64 bits. Dedicado a los nostálgicos ;)

Actualmente existen unos cuantos emuladores para esta consola, pero de esos “cuantos” hay dos que destacan por su buen funcionamiento y su compatibilidad con la mayoría de los juegos. Estos son: Zsnes y Snes9X.

Personalmente creo que el Zsnes es más sencillo de manejar y de configurar que Snes9x, ya que viene con interfaz gráfica (GUI), mientras que el otro se utiliza desde la línea de comandos (aunque hay un GUI en GTK, que se puede instalar a parte). Por otra parte, Snes9x funciona tanto en sistemas de 32 bits como de 64 bits, mientras que Zsnes sólo está para los 32 bits, ya que parte del código fuente está escrito en ensamblador (de ahí que para compilarlo haga falta tener instalado ‘NASM‘).

Así que visto lo visto, y para que todo el mundo pueda disfrutar de los juegos, nos vamos a quedar con el Snes9x, sin GUI, que tampoco hace mucha falta. También vamos a ver como configurar un mando (Joystick o Gamepad) USB.

  • Para instalar el emulador simplemente nos vamos a la consola y escribimos:

# aptitude install snes9x-x

* Aptitude o el gestor de paquetes que más te guste, o que uses en tu distro.

  • Ahora para el mando instalamos lo siguiente:

# aptitude install joystick

* Esta es una utilidad para calibrar el Gamepad.

  • Conectamos el mando a un puerto USB y comprobamos si el sistema nos lo ha reconocido. Para eso escribimos:

# ls /dev/input/js*

* Cada vez que conectamos un dispositivo, se crea un fichero en la carpeta /dev/ (devices) o /dev/input/. Con la orden anterior listamos los dispositivos. En la imagen puedes ver lo que ocurre con el dispositivo conectado y desconectado.

Mando detectado / no detectado

detectado / no detectado

  • Ahora calibramos el mando:

# jscal /dev/input/js0

* jscal + la ruta del dispositivo. En la siguiente imagen se puede ver el calibrado de mi mando (un Genius “Maxfire”, de lo más baratero que hay). La línea “Joystick has 2 axes and 8 buttons” significa que el mando tiene un x-axis (horizontal) y un y-axis (vertical) o para que se entienda mejor, izquierda-derecha y arriba-abajo, además de 8 botones.

Calibrado

calibrado

  • Si queremos, también podemos hacer un test para ver si se ha calibrado bien:

# jstest /dev/input/js0

*Esto sirve para ver si funcionan ‘la cruz’ de dirección y los botones. Pulsamos Ctrl + C para salir del test.

  • Seguidamente hay que editar el fichero de configuración del emulador:

# nano /etc/snes9x/snes9x.conf

  • Bajamos hasta la sección [Unix] y añadimos:

EnableJoystick = TRUE
Joydev1 = /dev/input/js0

  • Guardamos el fichero y ya podemos probar un juego. Para esto utilizamos la orden:

# snes9x juego.smc

* juego.smc si estamos en el directorio donde está la ROM del juego. En caso contrario, la ruta completa.

Es posible que el emulador genere algún error relacionado con el modo a pantalla completa. La solución es abrir los juegos como usuario ‘normal’ (no como ‘root’), con lo que no tendremos permisos para ejecutar el emulador a pantalla, pero se nos abrirá una ventana que podremos cambiar de tamaño y maximizar.

Y ya está. Si todo ha salido bien…

sfalpha2

turnandburn

asterixyobelix


* Un tip: Para grabar partidas, usar ‘Shift + Tecla de función’ (f1, f2, etc…) y para cargar, sólo la tecla de función.
Bonus: http://www.romnation.net/srv/roms/snes204.html – Una página con gran cantidad de juegos para descargar.

Que lo disfrutéis :)

9 comentarios para “Emulador de Snes en GNU/Linux”

  1. carlosruizortega escribió

    Holap:

    Está genial Snes9x, pero podrías decir como configurar las teclas? xD

    Saludooos :P

  2. Gareth escribió

    Tienes que editar el fichero de configuración:

    # sudo nano /etc/snes9x/snes9x.conf

    Y ahí te vas a la sección [Unix/X11 Controls]. Donde “J00″ es el Joystick y “K00″ es el keyboard o teclado.

  3. Gareth escribió

    ¡Se me olvidaba!

    Y en la sección [Unix/SVGA Controls], lo mismo que te comento arriba ;)

  4. Carlos Ruiz escribió

    Holap:

    Perfecto…
    Ahora puedo jugar más cómodamente… xD

    Gracias por la info.

    Saludooos :P

  5. Maylee escribió

    ¿y si quieres hacer funcionar el gamepad como mando 1 y el teclado como mando 2 como le haces?

  6. Mitchell escribió

    He instalado snes9x como dices en open SUSE 11.1 el problema es que no existe el archivo de configuracion, es el snes9x 1.51, en /etc no hay ni la carpeta ni el archivo, asi que no se como configurarlo, como puedo hacerlo?, otro problema que tengo es que en ubuntu y en suse me pasa que no funciona el snes9x cuando lo configuro para jugar con joystick (eso desde snes9express), alguna sugerencia de como lo puedo solucionar?

  7. Jstice5 escribió

    AMIGOS NO HAGAN NADA DE ESTO, ES MUY COMPLICADO. En vez de eso, bajense el snes9x normal para windows. si tienen ubuntu (eso tengo yo) vayan a www_winehq_org (puntos en vez de lineas. Instalen WINE, en la pagina de wine les enseñan como instalar. De ahi solo extraigan los archivos de snes9x a una carpeta de preferencia, y de ahi solo hagan clik derecho en el snes9x.exe y ponen “correr con wine” y corre perfecto. Yo me mate buscando en internet y nada funciono. cuando menos me di cuenta, yo tenia wine instalado y probe y me funciono perfecto.

  8. Gareth escribió

    Es otra opción, y aunque personalmente soy partidario del uso de Wine, sólo lo utilizo para programas que no tienen versión nativa en Linux.

Escribe un comentario