FPGAMANIA - Sistemas retro en FPGA

Como conectar mandos de Saturn (y de otras consolas) a MiSTer
Por pacoarcade el 1 de Junio de 2020

Para muchos usuarios no hay nada como los controladores originales de las consolas de antaño, y muy especialmente el primer modelo de mando Saturn que salió en Japón, que es equivalente al segundo modelo que apareció en Europa.

Gracias a los controladores DaemonBite es posible adaptarlos a USB de forma que puedan ser usados tanto en MiSTer como en otros sistemas. Este código ha sido importado en el repositorio oficial de MiSTer; desconozco si incluye cambios con respecto al repositorio original.

Componentes necesarios

  • Arduino Pro Micro ATmega32u4 5V 16MHz
  • Programador USB ASP
  • Mando original de SEGA Saturn
  • Cable Micro USB
  • Cable 22 AWG
  • Soldador y estaño
  • Conector hembra para mando de SEGA Saturn

Como compilar y grabar el programa

Lo primero es descargar los archivos de SaturnControllerUSB y guardarlos en un directorio con este nombre para a continuación compilarlos desde Arduino IDE seleccionando la placa Arduino Leonardo. Para guardarlo en formato .hex hay que exportar el archivo binario compilado.

He intentado programar el Arduino Pro Micro desde el Arduino IDE instalando los controladores necesarios usando el programador USBASP sin éxito. La alternativa es programarlo mediante ICSP conectando los pines RST, CLK, MOSI, MISO, +5V y GND, mediante el programa avrdude desde OpenBSD u otros sistemas operativos que lo soporten:

$ doas avrdude -c usbasp -p m32u4 -U flash:w:SaturnControllerUSB.ino.with_bootloader.leonardo.hex

Una vez hecho esto hay que cerrar el puente J1 que se encuentra en una esquina del Arduino.

Soldadura del conector hembra de SEGA Saturn a Arduino

Es de vital importancia tener en cuenta la orientación correcta de los pines, ya que estos son distintos si se miran desde el lado del conector del mando o desde el zócalo donde se conecta. Teniendo el receptáculo donde se conecta el mando de frente, el pin de la izquierda será el número 1 (VCC), y el de la derecha el número 9 (GND).

Los conectores se pueden obtener de cables alargadores para mandos de Sega Saturn. Unos que he probado y funcionan bien son los de HISPEEDIDO en este enlace. Estos encajan perfectamente y además quedan apretados al conectar el mando.

Hembra Saturn (P1) Arduino Pro Micro
1 VCC
2 2
3 3
4 15
5 14
6 4
7 TXO
8 RXI
9 GND
Hembra Saturn (P2) Arduino Pro Micro
1 VCC
2 A2
3 A3
4 15
5 14
6 6
7 A0
8 A1
9 GND

En la prueba que he realizado, por alguna razón sólo funciona el mando del jugador 1 y no el del 2. A unas malas siempre puedo usar un segundo Arduino para éste.

Como configurar el mando en MiSTer

Si todo esto se ha realizado de forma correcta, el Arduino ya se podrá conectar a MiSTer y ésta detectará la pulsación de cada uno de los botones del mando, con lo que ya sólo queda configurarlo como se explica en el Wiki de MiSTer. Grosso modo el proceso es el siguiente:

  1. Conectar un teclado USB y el mando
  2. Pulsar Esc y elegir Define joystick buttons
  3. Pulsar Espacio para DPAD y Tilt
  4. Pulsar las direcciones y botones en el mando
  5. Pulsar Espacio para las opciones Mouse
  6. Para Menu pulsa una combinación de dos botones como L+R
  7. Una vez aparece "Press: Menu: OK" pulsa Enter

También te puede interesar...

Destacado