Jogue com seu controle original usando Gamecon

1 - Intro

O driver foi projetado para uso com controles de jogos retro conectados aos GPIOs do Raspberry Pi. Até 4 controles podem ser usados ​​ao mesmo tempo se forem do seguinte tipo:

  • Controle NES

  • Controle SNES

  • Controle PSX / PS2

  • Controle N64

  • Controle Gamecube

O driver é baseado no driver Gamecon, mas usa diferentes parâmetros e pinagens. Logo, não há garantia de que funcionará, portanto, faça isso por sua conta e risco!

2 - Conecte os controles

Os PINS P1-01 e P1-06 são usados ​​para a alimentação de 3,3V e o terra. Eles são comuns a todos os controles conectados ao GPIO. Embora os controles SNES / NES sejam classificados em 5V, eles deveriam funcionar em 3,3V. Portanto, não há necessidade de usar um conversor nos PINS de dados. A intensidade máxima (50mA) do Raspberry deve ser suficiente para alimentar 4 controladores no GPIO. No entanto, você deve usar uma fonte de alimentação Raspberry de alto desempenho (tipo 2.1A) para evitar qualquer queda de tensão indesejada.

Os PINs de dados P1-03, 05, 07, 26 (GPIO0, GPIO1, GPIO4 e GPIO7) são independentes um do outro e cada controle usa um PIN exclusivo.

Informação:

  • Os PINS P1-03 e P1-05 correspondem a GPIO2 e GPIO3 nas placas rev.2. Isso deve ser levado em consideração ao carregar o módulo, conforme explicado na seção 3.

  • PINS P1-19 e P1-23 (GPIO10 e 11) são PINs de sinal comuns a todos os controles NES/SNES.

  • PINS P1-08, P1-10 e P1-12 (GPIO14, 15 e 18) são PINS de sinal comuns a todos os controles PSX/PS2.

​

2.1 Controles NES / SNES

PIN RASPBERRY

PIN controle SNES

PIN controle NES

P1-01 (3.3V)

1 (power - 5V)

1 (power - 5V)

GPIO10

2 (clock)

5 (clock)

GPIO11

3 (latch)

6 (latch)

GPIOXX

4 (data)

7 (data)

P1-06 (GND)

7 (ground)

4 (ground)

PINAGEM NES e SNES

Os GPIOXXs são PINs de dados independentes. Consulte a seção 3 para selecionar o GPIO correto a ser usado.

​

2.2 Controles N64​

2.3 Controles Gamecube

PIN RASPBERRY

PIN controle GAMECUBE

P1-01 (3.3V)

6 (power/3.43V)

GPIOXX

3 (data)

P1-06 (GND)

2&5 (gnd)

Os GPIOXXs são PINs de dados independentes. Consulte a seção 3 para selecionar o GPIO correto a ser usado.

​

​2.4 Controles PSX / PS2

PIN RASPBERRY

PIN controle PSX / PS2

P1-01 (3.3V)

5 (VCC)

GPIO14

2 (Command)

GPIO15

6 (ATT)

GPIO18

7 (CLK)

GPIOXX

1 (Data)

P1-06 (GND)

4 (ground)

Os GPIOXXs são PINs de dados independentes. Consulte a seção 3 para selecionar o GPIO correto a ser usado.

3 Configurar o driver

3.1 Configurar os controles

  • Ative o driver Gamecon no arquivo recalbox.conf colocandocontrollers.gamecon.enabled=1 (se existir, modifique-o. Caso contrário, crie-o).

  • Use o seguinte índice do controle para definir a configuração.controllers.gamecon.args : map=<pad1/GPIO0>,<pad2/GPIO1>,<pad3/GPIO4>,<pad4/GPIO7>,<pad5/GPIO2>,<pad6/GPIO3>

Onde é o número que define o tipo de controle:

  • 0 = sem conexão

  • 1 = controle SNES

  • 2 = controle NES

  • 3 = controle Gamecube

  • 6 = controle N64

  • 7 = controle PSX/PS2

  • 8 = controle PSX DDR

  • 9 = mouse SNES

Por exemplo, se um controle SNES estiver conectado ao GPIO4 e um controle N64 ao GPIO7, o mapeamento serámap=0,0,1,6.

Informação:

  • pad1 e pad2 são usados ​​apenas com uma placa rev.1

  • pad5 e pad6 são usados ​​apenas com uma placa rev.2

  • Os controles PSX / PS2 requerem um resistor de pullup. Pad5 (GPIO2) e pad6 (GPIO3) possuem esse resistor embutido.

Portanto, se você tiver uma placa rev.2, o pad1 e o pad2 devem ser definidos como 0.

O índice final do controle (usado pelos programas) é atribuído sequencialmente para os controles conectados, começando com 0. Portanto, no exemplo anterior, o controle SNES teria um índice igual a 0 e o controle N64 teria um índice igual a 1.

  • Use o seguinte comando para verificar se o módulo foi carregado com sucesso: tail /var/log/kern.log

​

3.2 Teste os controles

​Teste seu joystick usando o jtest​

​

3.3 Calibre o eixo analógico de um controle N64

Para cada controle N64, execute o seguinte comando:

jscal -s 4,1,0,0,0,6972137,6972137,1,0,0,0,6547006,6468127,1,0,0,0,536854528,536854528,1,0,0,0,536854528,536854528 /dev/input/jsX

​

3.4 Configurar o tempo de resposta para os controladores PSX

O tempo de resposta para os controladores PSX é de 10µs, o que minimiza o atraso induzido pelo driver. No entanto, em alguns casos raros, isso não é suficiente para ter uma entrada estável. Se você tiver problemas de leitura com os controles PSX, aumente o atraso seguindo o parâmetro "extra modbprobe": "psx_delay =", em que "delay" é o valor em µs entre 1 e 50.

4 Para ir além

Somente em inglês => Driver de gamepad para vários console para GPIO: https://www.raspberrypi.org/forums/viewtopic.php?f=78&t=15787​

Obrigado a "marqs" pelo driver e por nos permitir usar o "README" no Recalbox WIKI.