Como vocês sabem, uma das características do Mythtv que o faz bem diferente de um PVR comercial (como o da SKY ou TVA) é a possibilidade de adicionar funcionalidades de forma praticamente ilimitada. O MythGame é uma dessas funcionalidades. No KnoppMyth, já temos "de fábrica" alguns jogos gratuitos, como o
Frozen Bubble e o
Tux Racer, além do emulador de arcade
xmame (que vem sem os jogos, é claro).
Porém, na hora de jogar, percebemos que todos os jogos estão configurados para usarem o teclado do PC como controle, o que pode ser bem desconfortável quando se pensa em um HTPC na sala de estar ligado a uma TV de 29 polegadas ou a um projetor com um telão.
Uma das formas de melhorar o MythGame seria configurá-lo para usar o controle remoto para controlar os jogos. Há um
howto no KnoppMythWiki ensinando como fazer isso, porém não é para qualquer jogo que essa solução é viável. Imaginem jogar um desses jogos que exigem reflexos rápidos pelo controle remoto ou ainda um que exija o uso de duas teclas simultaneamente e entenderão do que estou falando.
Por esse motivo, desde o início do projeto do meu HTPC, sempre quis colocar um par de controladores de PlayStation (conhecidos como joypads) adaptados à porta paralela da máquina (já que nunca vou ligar uma impressora ali). Foi uma das primeiras aquisições que fiz para incrementar o KnoppMyth, porém só agora os coloquei para funcionar.
Graças à internet e essa comunidade maravilhosa de desenvolvedores, usuários e "fuçadores" que existe espalhada pelo mundo, achei alguns tutoriais ensinando a fazer isso. Aí foi só adaptar para o KnoppMyth e pronto. Aqui vai o passo-a-passo (sem muitos detalhes, ok?):
1 - Adquira um joypad e seu adaptador para a porta paralela. Alguns modelos já vêm com o adaptador no próprio cabo. No meu caso, como eu pretendo ter dois joypads, comprei o modelo com conector para Play Station e um adaptador duplo para a porta paralela.
2 - Instale o xjoypad: (como root)
apt-get install xjoypad. Este software lê continuamente a porta paralela e emula o pressionamento de uma tecla para cada botão do controle que for apertado, passando essa tecla para o programa que estiver ativo no momento.
3 - Para ativar o xjoypad eu modifiquei o script de um
tutorial do Carlos Morimoto (sim, sempre ele...) que foi publicado no
Guia do Hardware e republicado em uma dezena de sites. Minha versão é esta:
cd /devrm js*mkdir inputmknod input/js0 c 13 0mknod input/js1 c 13 1mknod input/js2 c 13 2mknod input/js3 c 13 3ln -s input/js0 js0ln -s input/js1 js1ln -s input/js2 js2ln -s input/js3 js3mknod input/event0 c 13 64mknod input/event1 c 13 65mknod input/event2 c 13 66mknod input/event3 c 13 67rmmod lpmodprobe joydevmodprobe parport_serialmodprobe gamecon map=0,7cd /dev/inputchmod +rw js*xjoypad -device /dev/js0 &Copie este script e salve-o em algum lugar seguro com o nome
ativar-xjoypad. Eu criei uma pasta em /home/mythtv chamada xjoypad, então o caminho completo para o script ficou
/home/mythtv/xjoypad/ativar-xjoypad. É esse caminho que usarei no restante das instruções.
Aqui cabe uma observação: poderíamos colocar a chamada a esse script no arquivo
/etc/init.d/bootmisc.sh e ele seria executado a cada boot, deixando o xjoypad sempre ativo, podento até mesmo usar o joypad para navegar nos menus do Mythtv (um controle remoto "com fio"). No entanto, na minha máquina, isso consome muita CPU, deixando o HTPC lento na hora de assistir TV ou ver um filme. Então criei uma forma de ativá-lo quando necessário e desativá-lo quando não for usá-lo. Veja a seguir:
3 - Dê ao usuário Mythtv o direito de executar esse script através do sudo. Para isso, edite o arquivo
/etc/sudoers e inclua o caminho completo do script na linha que começa com
mythtv. Também será necessário que o Mythtv execute o comando
killall. Não se esqueça da vírgula que separa os comandos. Então, coloque no final da linha:
,/usr/bin/killall,/home/mythtv/xjoypad/ativar-xjoypad4 - Edite o arquivo
/usr/share/mythtv/games.xml e acrescente estas linhas no início, após a primeira linha (após
<mythmenu name="Games">):
<button> <type>Ativar joypad</type> <text>Ativar joypad</text> <action>EXEC sudo /home/mythtv/xjoypad/ativar-xjoypad</action> </button> <button> <type>Desativar joypad</type> <text>Desativar joypad</text> <action>EXEC sudo killall xjoypad</action> </button>Se eu não me esqueci de nada, quando você entrar no menu "Jogar" surgirão as opções "Ativar joypad" e "Desativar joypad". Ativando o joypad já será possível utilizá-lo para controlar a navegação no próprio menu. Aí é só escolher um jogo e configurá-lo para responder às teclas que correspondem aos botões do joypad. Ainda será necessário usar o mouse em alguns casos, mas isso basicamente só acontece nas mudanças de fase e em algumas configurações especiais.
Pronto! Agora é controle remoto numa mão, joypad na outra e bom divertimento!