Controle original de SNES no Raspberry Pi

 

Algum tempo atrás postei aqui sobre como conectar controles de videogames antigos pela GPIO do Raspberry Pi. Jogando alguns jogos como Super Donkey Kong do SNES, Road Rash do Mega Drive e principalmente Mega Man do NES com o controle da 8Bitdo comecei a perceber um pouco de input lag, mesmo este controle sendo de excelente qualidade. Resolvi fazer uns testes ligando o controle original de SNES na GPIO e realmente tive um pequeno ganho, com isso decidi colocar uma entrada de controle de SNES no meu Raspberry Pi. Encontrei no thinginverse o projeto da porta de controle NES e SNES para imprimir na 3D.

Para a pinagem cortei uma plaquinha de CI, cortei o cobre e furei para receber os pinos e fiz os pinos com clipes de papel.



Para receber o conector, precisei cortar na minha carcaça do Raspberry Pi.


Com os fios conectados no Raspberry Pi instalei o drives de acordo com minha outra postagem. Este procedimento é para ser usado com o Retropie, não sei dizer se funciona em outros OS.

Com tudo funcionando foi hora de criar um código para poder acionar o controle pelo mesmo botão de ligar o Raspberry Pi. Isto é necessário porque com o driver ativo mesmo que não tenha nenhum controle plugado, o Raspberry Pi entende que existe um controle e impossibilita o controle Bluetooth de fica como controle 1, ele inicializa como controle 2. 

A ideia então é usar o mesmo botão que uso para ligar o Raspberry Pi para ativar e desativar o driver do controle. Com um código simples em Python, além de acionar o driver, coloquei o LED instalado para piscar uma vez quando ativar o driver e duas vezes quando desativar. Desta forma o Raspberry Pi liga sempre com ele desligado.


Com o código salvo na raiz do home, para ele rodar sempre na inicialização do Retropie, basta adicionar no arquivo /etc/rc.local a linha abaixo antes de exit 0:

/home/pi/./meucodigo.py &

Um vídeo do funcionamento:


Comentários