Usando Joysticks no Linux

Usando Joysticks no Linux
Existem basicamente três tipos de joysticks para PC em uso: Os antigos joysticks analógicos, ligados na saída da placa de som, joysticks USB e joysticks artesanais, controles de Playstation ou Super Nes adaptados para serem ligados na porta paralela do micro.

A tendência é que os Joysticks USB caiam de preço, se popularizem e eliminem definitivamente os analógicos. Eles possuem algumas vantagens importantes: são mais precisos, não precisam ser calibrados e não degradam o desempenho da máquina ao serem usados.

Os joysticks USB são também os que funcionam melhor no Linux. O joystick é detectado ao ser plugado na porta USB, graças ao hotplug que fica ativo por padrão no Kurumin e na grande maioria das distribuições atuais.

Se estiver curioso, rode o comando “dmesg” e você verá uma entrada como esta, avisando da detecção do joystick:

usb 1-2: new low speed USB device using address 6
input: USB HID v1.10 Joystick [Logitech WingMan Precision USB] on usb-0000:00:1d.0-2

No caso dos joysticks analógicos, não existe detecção automática, é preciso carregar o módulo que ativa o suporte ao joystick para que ele seja visto pelo sistema. No Kurumin você encontra um script que testa os módulos disponíveis até carregar o correto no menu “Jogos > Joystick > Habilitar joystick analógico ligado na placa de som”.

habilitar

Você pode checar o joystick na seção Periféricos > Joystick do Centro de Controle do KDE. Ele inclui uma opção para calibrar o joystick, que só é necessária em joysticks analógicos.

centro_de_controle

A maioria dos games inclui suporte a Joysticks. Se o joystick funciona no módulo do painel de controle ele também funcionará nos programas. Se por acaso o joystick USB não foi detectado automaticamente, experimente reiniciar o hotplug com o comando:

# service hotplug restart

Para usar o joystick no Zsnes, vá em “Config > Input #1” e marque a opção “Keyb/Joystick” e clique em “Set”. Agora é só definir a função de cada botão.

O Generator não inclui a opção de configurar os botões, mas detecta o joystick automaticamente.

Nem todos os games nativos oferecem suporte a joystick. O FrozemBubble e o Ltris por exemplo não oferecem nenhuma opção para usar o joystick, enquanto o Supertux e o Xgalaga o o ativam automaticamente.

É possível também usar um joystick de Playstation ou Super Nes adaptado para ser ligado na porta paralela. Esta é a opção preferida por quem gosta de emuladores.

Você já deve ter visto destes pra vender nos sites de leilão e até mesmo em algumas lojas de informática. Eles não são caros, em média uns 20 reais. Se você tiver um ferro de solda por aí, pode até mesmo tentar fazer o seu, seguindo as instruções desta página:

Estes joysticks funcionam no Linux usando dois módulos de kernel, chamados jaydev e gamecom e o Xjoypad, um programinha que converte os sinais recebidos do joystick em teclas do teclado.

Quando você pressionar o botão “X” do controle o sistema acha que você pressionou a tecla “3” do teclado numérico por exemplo. Ele é interessante pois pode ser usado não apenas nos emuladores mas também em qualquer jogo que utilize o teclado. Basta configurá-los para usar as teclas emuladas pelo controle.

joystick

A desvantagem de utilizar um joystick adaptado é que a utilização do processador é muito alta, pois ele precisa ficar monitorando os sinais recebidos na porta paralela. Mesmo num processador relativamente rápido, um Athlon de 1.5 GHz por exemplo, a diminuição do desempenho chega a 20% enquanto o joystick está em uso. Usando um joystick ligado na placa de som, a perda é bem menor, cerca de 3 a 5%, enquanto ao usar um joystick USB ela é próxima de zero, pois os sinais são processados pelo próprio joystick.

O Kurumin já inclui o Xjoypad e um ícone mágico, que você encontra em “Jogos > Joystick > Habilitar joystick de PlayStation ligado na porta paralela” que cuida de tudo. Mas, se você precisar habilitar o joystick manualmente em outra distribuição, os passos são os seguintes:

1- Ativar os módulos joydev e o gamecon que geralmente já vem nas distribuições. Antes de carregá-los você deve verificar também se os dispositivos do joystick já estão criados dentro do diretório /dev. A lista completa dos comandos é um pouco extensa então eu recomendo que você simplesmente faça um shell script e execute quando precisar.

É bem simples, crie um arquivo de texto e cole os comandos dentro dele. Depois de salvar marque a permissão de execução nas propriedades do arquivo ou use o comando “chmod +x arquivo”. A partir daí é só chamá-lo com o comando “./arquivo” para que todos os comandos sejam executados de uma vez só.

cd /dev
rm js*
mkdir input
mknod input/js0 c 13 0
mknod input/js1 c 13 1
mknod input/js2 c 13 2
mknod input/js3 c 13 3
ln -s input/js0 js0
ln -s input/js1 js1
ln -s input/js2 js2
ln -s input/js3 js3
mknod input/event0 c 13 64
mknod input/event1 c 13 65
mknod input/event2 c 13 66
mknod input/event3 c 13 67

sudo rmmod lp
modprobe joydev
modprobe gamecon map=0,7

Se você estiver usando uma distribuição com o Kernel 2.4, o comando para carregar o módulo gamecom é: sudo modprobe gamecon gc=0,7 (o parâmetro “map” muda para “gc”).

2- Depois de ativar o joystick, falta ativar o Xjoypad. Você pode baixar o arquivo no: http://downloads-guiadohardware.net/xjoypad.zip

Descompacte o arquivo (use o comando unzip se quiser fazer via terminal), acesse a nova pasta que será criada e copie o arquivo “xjoypad” para a pasta /usr/local/bin, assim ele se transformará num comando do sistema e você terá mais facilidade para chama-lo: cp xjoypad /usr/local/bin

Feito isso você só preciso deixar o comando residente. Adicione mais este comando no seu script:

# xjoypad -device /dev/js0 &

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X