Haciendo funcionar el Gamepad en Linux (y dos)
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
.
Hay 8 comentarios
Curiosa coincidencia... tengo la misma marca de gamepad aunque creo que mi modelo es un poco anterior (o inferior) :D Casi me entran ganas de desempolvarlo y a ver si lo hago funcionar en linux (aunque mi conex es por la placa base)
Salu2! y enhorabuena por tu blog
por Ed, en 2006-08-27 22:01:57 ∞
Ahora solo te falta un emulador de GameCube, el juego de fútbol del Mario y mucha, mucha práctica. Para el próximo torneo seguro que vienes más entrenado ;).
http://gcube.exemu.net <- ese rula en sistemas unix, pero hace falta un maquinon.
De todas formas, no teneis nada que hacer... pobres mortales... :D
por smash football master, en 2006-08-28 09:28:54 ∞
Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.
por r0sk, en 2006-08-27 21:50:38 ∞