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.

Este demultiplexor de mandos de Saturn cumple esta característica, sacando la salida en paralelo con la configuración de pines Neo-Geo extendida (concretamente, 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, con los permisos adecuados:

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)

Cómo configurar los botones

Una vez programado el chip funcionarán únicamente los botones de dirección y el botón START por lo que hay que programar los botones; esta versión RMAF permite configurar todos los botones (y autodisparo). El proceso es el siguiente:

  1. Deja pulsado START + A + B durante 3 segundos, entonces se enciende la luz LED.
  2. Pulsa una vez el botón A, dos veces el botón B, 3 veces el botón C, así sucesivamente hasta el Z.
  3. Una vez programados todos los botones, pulsa START para salir del modo programación y se apagará el LED.

Configuración de autodisparo

  1. Deja pulsado START + A durante 3 segundos, entonces se enciende la luz LED.
  2. Pulsa cada botón que quieras configurar indicando la velocidad con el número de pulsaciones (documentación).
  3. Una vez programados todos los botones, pulsa START para salir del modo programación y se apagará el LED.

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 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
  • Picogun
    Circuito libre para adaptar video Arcade a SCART
  • SyncFix
    Procesador de señal de sincronía para hacerla más compatible
  • JEDEC a NO-JEDEC
    Graba memorias 27C301 como 27C010 con este adaptador