Adaptación de un gamepad de SNES a MSX.

En este tutorial veremos cómo adaptar un gamepad de Super Nintendo o Super Famicom para poder usarlo en un ordenador de la norma MSX.
Como funciones adicionales, dispondremos de un auto-fire totalmente digital, que nos permitirá, entre otras cosas, ajustar por separado la velocidad del disparo de cada botón.

Para ello necesitaremos un mando de SNES o SFC, preferiblemente con algún desperfecto en el cable que impida su funcionamiento en la consola o un mando clónico para así no destrozar un mando original funcional. En este caso use un gamepad de Super Famicom con varios cortes en el cable y las gomas de contactos totalmente rotas.

Gamepad de SFC desmontado.

Es recomendable y en mi caso no hubo más remedio, cambiar las gomas de contacto de todos los botones, ya que con los años pierden grafito y la goma se agrieta o rompe. Adquirí unos reemplazos de altísima calidad en esta web.

La idea es la siguiente:
Usaremos el botón «Y» del PAD como el botón «1» del MSX, el botón «B» como el «2», el «X» como el «1» con auto-fire y el «A» como el «2» con auto-fire. Además, habilitaremos también los botones del PAD «Start» y «Select» como los botones «1» y «2» del MSX, para así darles uso (y por la costumbre de pulsar START para empezar).
Con los botones «R» y «L» ajustaremos la velocidad del auto-fire, teniendo disponibles 10 velocidades de disparo diferentes. Cada uno de los dos botones con auto-fire se puede ajustar por separado. Mientras se pulsa «X» o «A» (o ambos a la vez), si pulsamos «R» incrementaremos la velocidad, si por contra pulsamos «L» la velocidad se verá reducida. Si pulsamos a la vez los botones «R» y «L», reiniciaremos la velocidad de ambos botones a su valor por defecto. Otro punto es que la velocidad se guarda en la memoria del mando, así que no tendremos que ajustarla cada vez que usemos el mando. El bloque de dirección normalmente, sin ninguna modificación.

El esquema electrónico para el montaje del proyecto es el siguiente:

Como veis, la funciona de auto-fire la realiza un microcontrolador PIC 12F629, el cual también dispone de una pequeña EEPROM que almacenará la velocidad seleccionada para cada botón.

El listado de material es el siguiente:
– 1 mando de SFC/SNES
– 1 Microcontrolador PIC 12F629
– 4 Resistencias de 4k7 Ω 1/4w
– 2 Resistencias de 1k Ω 1/4w
– 1 Condensador de 100nF
– 2 Transistores BC547 (o cualquier NPN de uso común)
– 1 Conector DB9 hembra
– 2 Metros de cable de 8 hilos
– Un trozo de placa para prototipos

Empecemos por preparar la placa del PAD. El primer paso es retirar todos los componentes electrónicos de la misma. Hay dos versiones de esta placa: con uno o dos chips. Ambas sirven para el proyecto, la diferencia estriba en cómo realizaremos las conexiones entre la placa y nuestro circuito de auto-fire.

Placa sin los componentes.

El mando de SNES usa lógica negativa, es decir, cuando pulsamos un botón este se conecta a masa. Con los componentes retirados, debemos identificar a qué pin del chip (o chips) que hemos retirado está conectado cada botón. Con ayuda de un polímetro, buscaremos estas correspondencias. Todos los botones tienen un borne conectado a masa, usaremos el otro borne para realizar las verificaciones. Identificar también que pin o pines del chip están conectados a masa, ya que también lo usaremos.

Ahora soldamos un cable kynar o similar a cada patilla que hayamos identificado. Podemos ahorrarnos 2 cables si realizamos un puente entre los pines de «START» y «Y» y entre los pines de «SELECT» y «B», ya que estas parejas de botones van asignadas al mismo botón del MSX. En este caso, necesitaremos 11 hilos de unos 10cm aproximadamente.
Una vez hayamos verificado que cada cable está soldado correctamente y en la posición correspondiente, evitaremos desastres protegiendo las soldaduras con un poco de cola termofusible.

El siguiente paso es programar el PIC. En el enlace del final de la página encontrareis tanto el código fuente escrito en lenguaje C, como el archivo .hex compilado, el cual podréis grabar directamente en el PIC.
Dado que los pulsadores del PAD de SNES se conectan a masa al pulsarlos, usaremos lógica inversa en el programa, es decir, en las entradas cuando pulsemos un botón tendremos un 0 o FALSE. Por contra, si no está pulsado, tendremos un 1 o TRUE.
Las salidas se comportan con normalidad, es decir, cuando una salida esté activa tendremos un 1 y un 0 al no estarlo. Estas salidas atacan a la base de un transistor NPN, el cual conecta el pulsador 1 o 2 del MSX a masa. En las entradas hay colocadas unas resistencias pull-up, que mantendrán la tensión a 5v, o lo que es lo mismo, un 1 lógico hasta que se pulse el botón asignado a esta entrada, quedando entonces conectada a masa, lo que supondrá un 0 lógico.
Una vez programado el PIC, procederemos al montaje del circuito.

Una vez tengamos el circuito montado siguiendo el esquema, tocara unirlo con la placa del PAD, usando los 11 cables kynar que hemos soldado previamente.

El siguiente paso es fabricar el cable que unirá nuestro PAD con el MSX. Si tenéis la suerte de conseguir un cable de joystick de MSX o similar, con los 9 hilos conectados, como el del gamepad de Megadrive, podéis omitir esta parte.

Como no he podido encontrar ni cables nuevos ni conectores del formato del Joystick de 9 pines, he usado un DB9 hembra genérico quitándole la carcasa. Dependiendo del modelo, deberéis unir con algún adhesivo instantáneo las dos partes del conector. Para terminar, soldar este conector a un trozo de placa de circuito impreso, el cual hará de soporte.

El siguiente paso es soldar los 8 hilos del cable que usaremos para unir el conector con el PAD. Siguiendo el esquema, vemos que va un hilo a cada pin, excepto al número 8. Una vez soldados todos los hilos, protegeremos el montaje con cola termofusible, así evitaremos que con el movimiento se rompa alguna soldadura.
Para terminar, un par de trozos de funda termo retráctil acabaran de proteger el conector.

El último paso es unir este cable con la placa de control que hemos fabricado antes. Es buena idea proteger también estas soldaduras, así evitaremos roturas con el movimiento durante el ensamblaje.
Ahora solo debemos montar de nuevo el PAD, colocar la tapa posterior y disfrutar nuestro Gamepad de SNES adaptado a MSX, con auto-fire digital de velocidad ajustable.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *