Estaba aburrido esta tarde y me he animado a echar algunas partidas a algún jueguecillo de esos que ya no se hacen, con el emulador adecuado. Ya que me pongo, mejor tener una experiencia completa y usar el gamepad, que para eso lo tengo :).

Mi gamepad económico ;)
Pues no ha sido tan fácil, porque mis cacharreos con estos dispositivos fueron hace tiempo y con el kernel de Linux de la rama 2.4, y no hay mucha documentación sobre el tema :(. Ahora se trabaja con la rama 2.6 y hay algunos cambios, siendo el más significativo la entrada de los drivers ALSA para el sonido, mucho más modernos que los que se usaban antes.
Este cambio es importante, porque recordemos que mi joystick es un gamepad (3 ejes y 4 botones), que funciona a través de mi tarjeta Sound Blaster PCI, que tiene gameport, así que el cambio en el driver nos afecta directamente.
Todo lo que describía en el documento anterior tiene validez, solo cambia qué ficheros de configuración hay que tocar y qué parámetros hay que pasar al driver de ALSA.
Los módulos que hay que cargar con modprobe no cambian, aunque en la página de ALSA nos puede despistar que digan que sus drivers no dan soporte para los joysticks. En realidad esto ya ocurría antes, por lo que hay que indicar en /etc/modules que se carguen los siguientes módulos para que trabajen con el de la tarjeta de sonido (que se carga automáticamente por udev):
# soporte para el gamepad vía gameport gameport joydev analog
El siguiente paso sí es diferente, y puede variar dependiendo de la distribución (no lo sé). En Ubuntu editamos /etc/modprobe.d/alsa-base:
options snd_ens1371 joystick_port=1
En los drivers de ALSA, los nombres de los módulos tienen la forma snd_*, donde he marcado en negrita el nombre de mi tarjeta, o más bien el nombre del módulo que la gestiona. Esto puede cambiar en otros dispositivos, para eso recomiendo leer la documentación que vienen con el fuente del kernel (joystick.txt). Una vez indicamos que active el soporte para el joystick, todo funcionará perfectamente.
Reiniciamos, porque el módulo de ALSA está en memoria y puede ser complicado descargarlo porque estará en uso, y comprobamos el soporte:
$ dmesg | grep -i joy [17179594.976000] input: Analog 3-axis 4-button joystick as /class/input/input3

El emulador detecta el dispositivo correctamente, ¡a por el FIFA '97!
Ahora solo queda jugar :). En el caso de zsnes los joysticks se gestionan como el teclado, y tendremos que configurar qué hace cada botón, incluyendo el pad.

![[xml]](/images/xml.gif)
