Arcade en casa - Placas JAMMA en tu televisor

Como conectar mandos originales de SEGA Saturn a la Supergun
Por pacoarcade el 19 de Junio de 2020

Los mandos de Sega Saturn de la foto que muestro a continuación son, para mi gusto, los mejores que existen. Se trata del primer modelo japonés y el segundo modelo que apareció en Europa en color negro. Su cruceta permite utilizarlo muy cómodamente con juegos exigentes como Street Fighter 2.

Una característica que debe tener un buen adaptador de mandos a DB-15 (Neo-Geo) es la configuración de colector abierto para las salidas, de forma que no saquen +5V cuando un botón no está conectado para mayor seguridad.

Demultiplexor de mandos Saturn con Arduino

Este demultiplexor de mandos de Saturn saca la salida en paralelo con la configuración de pines Undamned a través de un conector DB-15 y está pensado para su uso con supergun, aunque puede ser adaptado para su uso en muchas otras aplicaciones. Está programado con Arduino por Arthrimus y está disponible tanto el código fuente como los gerbers para quien quiera fabricárselo.

El diseño de la PCB está basado en el diseño inicial de Frank_fjs que inicialmente usaba un PIC16F690 con el código de Twistedsymphony. Según su autor, este adaptador funciona también con los pads saturn de Retro bit, aunque para solucionar un problema de funcionamiento se debe usar la rama RMAF.

Descargas

Como compilar el código

Se compila desde Arduino IDE instalando el módulo Minicore y la librería DigitalWriteFast.

Como grabar el chip Atmega328P

Lo primero es soldar el puente J1 en la PCB del adaptador. Se puede grabar con un programador USBAsp desde el Arduino IDE seleccionando la opción de reloj de 8MHz interno. En mi caso no tuve éxito, obteniendo el siguiente par de mensajes sin que el chip se grabara efectivamente:

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: warning: cannot set sck period. please check for usbasp firmware update.

Para poder grabar el chip correctamente usé avrdude desde la línea de comandos de OpenBSD:

avrdude -c usbasp -p m328p -e -U flash:w:saturn_controller_demux_v0.9.ino.with_bootloader_atmega328p_8000000L.hex -U lfuse:w:0xe2:m

El valor 0xe2 se obtiene usando una calculadora de fusibles para el chip Atmega328P, seleccionando las siguientes opciones que corresponden al uso del oscilador interno a 8MHz:

CKSEL0 - PROGRAMMED(0)
CKSEL1 - UN-PROGRAMMED(1)
CKSEL2 - PROGRAMMED(0)
CKSEL3 - PROGRAMMED(0)
SUT0 - PROGRAMMED(0)
SUT1 - UN-PROGRAMMED(1)
CKOUT - UN-PROGRAMMED(1)
CKDIV8 - UN-PROGRAMMED(1)

Una vez grabado funcionarán únicamente los botones de dirección y el botón START. Dependiendo de la versión usada hay que programar los botones; en mi caso, al usar la versión 0.9 basta con dejar pulsado START y A o START y B durante tres segundos recomiendo usar la última versión RMAF, mucho más precisa y además permite configurar todos los botones. El proceso será dejar pulsado START,A y B durante 3 segundos. Luego pulsas 1 vez el botón A, 2 el botón B, 3 el botón C, 4 el botón X, 5 el botón Y y 6 el botón Z, tal y como explica Arthrimus en este video.

Código alternativo de Saturn a paralelo con PIC16F690

Este código escrito en ensamblador por twistedsymphony está optimizado para velocidad y usa un PIC16F690, aunque las salidas no están configuradas en colector abierto. Esto se puede solucionar con el uso de un par de búfers 74LS07.

Donde comprar el conector hembra de mando de Saturn

Los conectores se obtienen de cables alargadores para mandos de Sega Saturn, y no todos sirven puesto que se venden dos tipos. En uno de ellos los pines están enmedio con lo que al doblarlos no llegan a los puntos de soldadura y además quedan algo holgueros.

Los mios buenos los he comprado en Aliexpress, concretamente los de la marca HISPEEDIDO en este enlace. Estos encajan perfectamente y además quedan apretados al conectar el mando.

Donde comprar los adaptadores ya ensamblados

Los adaptadores se pueden comprar en la tienda de Arthrimus.

Como soldar el conector a la placa

Lo primero de todo es desmontar el lado hembra del alargador para sacar el conector, y a continuación se siguien estos pasos:

  1. Desuelda los cables que van a los pines del conector sin quemar el plástico.
  2. Quita todo el estaño posible usando estaño fino y malla de desoldar.
  3. Aplica pegamento epoxy Araldite para una mejor sujección.
  4. Coloca el conector en la placa de forma que quede bien encajado.
  5. Dobla las patillas con unas pinzas asegurándote de que estén derechas.
  6. Suelda por la parte inferior sin que se unan los puntos de soldadura.
  7. Retoca por la parte superior con estaño fino los pines que lo necesiten.
  8. Limpia los restos de flux en caso de que sea necesario.
  9. Comprueba con un multímetro que no haya continuidad en los distintos puntos.

También te puede interesar...

Proyectos

  • Pacogun
    Un supergun enfocado en la calidad de audio y video
  • SyncFix
    Procesador de sincronía para mejorar la compatibilidad
  • VideoFix
    Búfer de video para adaptar señales Arcade a SCART