Usando joysticks

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 cada vez mais, 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”.

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.

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 (o emulador de SuperNes, disponível no “Iniciar > Jogos”), vá em “Config > Input #1”, 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 Froze Bubble e o Ltris, por exemplo, não oferecem nenhuma opção para usar o joystick, enquanto o Supertux e o Xgalaga ativam-no 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, pode até mesmo tentar fazer o seu, seguindo as instruções desta página:
http://www.emulatronia.com/reportajes/directpad/psx/index.htm

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.

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á vêm nas distribuições usando o comando “modprobe”. 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 copie os comandos para ele. 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ó. Normalmente, você precisa executar apenas os últimos três comandos. Os demais servem apenas para checar se os links dos dispositivos do joystick existem e apontam para as localizações corretas.

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

modprobe -r lp
modprobe joydev
modprobe gamecon map=0,7

Ao usar uma distribuição antiga, que ainda use o Kernel 2.4, o comando para carregar o módulo gamecon é: “modprobe gamecon gc=0,7” (o parâmetro “map” muda para “gc”). Você pode checar qual é a versão do Kernel usada com o comando “uname -r”.

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 chamá-lo.

Feito isso você só precisa 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