martes, 5 de abril de 2011

Adaptador de control de SNES a USB (Paso a paso).

ADVERTENCIA: esta entrada de blog puede contener información que puede resultar perturbadora para videojugadores que no aprecien el "retrogamming".

Después de unos días de investigación, desarrollé dos mejoras de los adaptadores de Hobbyelektronik, uno que emplea el microcontrolador ATTINY25 y otro que utiliza el ATTINY2313. Antes que nada quiero agradecer y dar crédito a las personas que con sus proyectos, apoyo y asesoría colaboraron a la realización de estas necedades: Raphaël Assénat, Christof Rueß, Primož Kranjec, Paul Qureshi, Chris Judevine, andreq, ChaN y Dash.

El adaptador que emplea el ATTINY25 soporta un control de SNES, mientras que el adaptador que utiliza el ATTINY2313 soporta dos controles.

Hechas las aclaraciones pertinentes, pasemos a la lista de compras:
Para el adaptador de un control con el ATTINY25 se necesita:
  • Un ATTINY25-20PU (DIP).
  • Una base DIP de 8 pines.
  • Una resistencia de 2.2 KOhm a 0.25 Watt.

Para el adaptador de un control con el ATTINY2313 se necesita:
  • Un ATTINY2313-20PU (DIP).
  • Una base DIP de 20 pines.
  • Una resistencia de 1.5 KOhm a 0.25 Watt.
  • Dos capacitores cerámicos de 47, 33 o 27 pF (tienen impresos los números 47, 33 o 27).
  • Un cristal de cuarzo de 12 MHz.
  • Una placa para circuito impreso.

Para ambos proyectos:
  • Cables.
  • Dos diodos zener de 3.6 Volts.
  • Dos resistencias de 47 o 68 Ohms a 0.25 Watt.
  • Un capacitor electrolitico de 10 uF (opcional).
  • Un capacitor cerámico de 0.1 uF (opcional)(tiene impreso el número 104)
  • Un cable USB tipo A.
  • Coples para control de SNES.
  • Un programador de microcontroladores AVR.

El adaptador con el ATTINY25 es tan compacto que puede armarse soldando directamente los componentes y colocando todo en un bloque de plástico o en la carcasa de un conector DB9.

El adaptador con el ATTINY2313 requiere de un circuito impreso y un gabinete, el cual puede ser un bloque de plástico tipo LEGO.

Los diagramas empleados son los siguientes:

Adaptador de un control de SNES a USB con ATTINY25


Adaptador para dos controles de SNES a USB con ATTINY2313


Para el proyecto con el ATTINY25, los fusibles quedan configurados de la siguiente forma:
  • Low fuse: 0xE1
  • High fuse: 0xDD

Para el proyecto con el ATTINY2313, los fusibles quedan configurados de la siguiente forma:
  • Low fuse: 0xDF
  • High fuse: 0x99

Hay que precisar que el firmware con el ATTINY25 cuenta con calibración automática del oscilador. Ambos firmwares ocupan el PID/VID de los proyectos de Hobbyelektronik, debido a que son derivados de los mismos. Los dispositivos han sido probados en Linux y Windows XP. Por cuestiones de espacio en memoria estos dispositivos no tienen asignado un nombre, por lo que al conectarlos en Windows XP y entrar en la opción de Dispositivos de juego, muy probablemente veremos un caracter raro en vez del nombre de un gamepad. Si deseas que en vez de esos caracteres raros aparezca un nombre más cool, es posible modificar el registro de Windows para arreglar ese detalle, basta con copiar la siguiente información en un archivo de texto y guardarlo como oemname.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\MediaProperties\PrivateProperties\Joystick\OEM\VID_4242&PID_E131]
"OEMName"="Super NES Controller"
"OEMData"=hex:20,00,00,10,08,00,00,00

Dar doble click sobre el archivo oemname.reg, reiniciar la computadora y al conectar de nuevo el adaptador, aparecerá con el nombre Super NES Controller. Pueden ponerle el nombre que quieran, sin embargo, el nombre del dispositivo que aparece en el control es:
Super NES Controller
MODEL NO. SNS-005

Los códigos fuente y firmwares compilados están en las siguientes ligas:
Adaptador con ATTINY25
Adaptador con ATTINY2313

Soundblaster Audigy SE front panel.

Hola, ¿Cómo están? Bienvenidos sean de nueva cuenta. Recientemente me puse a la labor de reacondicionar una computadora con las piezas que...