Conectar 4 Mandos de NES/SNES por USB

De WikiNES-77
Revisión del 12:30 18 ago 2011 de S05ad1fa root (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

Introducción

Después de publicar mi proyecto para conectar un mando de SNES/NES a USB, me han preguntado varias veces por la forma de conectar más de uno a la vez. Finalmente encontré la forma de hacerlo y en este artículo lo explicaré. Esto se puede considerar una variación del proyecto antes dicho, por lo que no entraré en gran detalle pero si es necesario mira el proyecto original.

Soportar varios mandos al mismo tiempo se hace básicamente programando el Atmega8 con diferente firmware. Este nuevo firmware detecta automáticamente que cada conector es un mando de NES y SNES. Hasta 4 mandos de NES/SNES pueden ser usados a la vez.

4mandosdone2.jpg


Fotos

Ejemplo 1

Ejemplo 2

Aquí hay varias fotos del proceso:


Esquemas

Aquí está el esquema y la referencia de los pines para los mandos de NES y SNES:

4mandossch-core.jpg4mandossch-connectors.jpg


Notas y comentarios: Todos los mandos tienen compartida la potencia, el reloj y las señales de control. Sin embargo, la señal de datos viene desde cada mando, estas señales tienen que estar conectadas a una única entrada del microcontrolador. Un resonador de cerámica puede ser usado en vez del cristal y los dos condensadores. Referencia a los esquemas de Andrew Biem en la sección de fotos.

Placa de circuito impresa: Puedes usar el circuito de la placa impresa desde el proyecto inicial (link).

Y por el camino, aquí está el driagrama de cables para la placa rev C.

4mandoswiring4.jpg


Firmware

Aquí hay un fichero que esta programadado en Atmega8:

Los byte del fusible para este proyecto son: byte alto = 0xc9, byte bajo = 0x9f. Para información sobre como se programa en AVR, visita mi página de programación en AVR.

Código Fuente

El Código Fuente esta disponible bajo licencia Objective Development License (GPL modificada). Ver License.txt para más información. El proyecto compilado en avr-gcc es:

Las características de la versión 1.2 son:

  • Se ha implementado la autodeteción automática. Esto permite que los mandos de NES y SNES puedan ser cambiados mientras que se usa sin ser necesario apagar el adaptador. Esta característica puede ser deshabilitada cerrando el JP1.
  • Añadido el soporte a NES Four Score. Al encender cuando el FourScore se detecta en el puerto 1, el modo FourScore se activa y los puertos 1 y 2 son usados para leer los 4 mandos de NES.
  • La licencia se cambia a GPLV2

Nota: Si estás usando un código fuente lanzado bajo linux, mira el MakeFile. Tiene un flash y un objetivo de fusible, el cual usa uisp para programar el flash y el fusible.


Fotos de Usuarios

He disfrutado viendo como otros proyectos se creaban. Aquí hay varios ejemplos. Si has creado alguno envíame fotos para publicarlas:

Steve y Andi desde Austria, me enviaron estas fotos:


Declan Williams (16 años) desde Australia me enviaron estas otras. El encontró una forma más inteligente de construir su propio conector al estilo de SNES:


Andrew Biem, de Whidbey Island (Washington/USA), me envió esto. Se puede ver que usó un resonador de cerámica en vez de un cristal y dos condensadores, con ello también dió una actualización del esquema:


Gunther Baumgartner, de Alemania, lo instaló en un NES Four Score:


Lucas Romero, de Alemania, hizo este proyecto para usar los mandos de SNES en su portátil sin puerto paralelo. El lo llamó "RetroBox" y al hacerlo añadió un Hub USB interno con un stick de 2GB con roms de SNES y MAME:


Craig O'Connor me envió las siguientes fotos el 4 de Octubre del 2008.


Tim Wylie contruyó este adaptador de mandos (2 de SNES y 2 de NES) usando un circuito pre-emsamblado (17 de Junio del 2009).


Jeff Erbrecht ha instalado el circuito dentro de un multipad de SNES. Fue necesario remover algunos componentes del original porque causaban problemas (25 de Junio del 2009)


Referencias

Esta página tiene documentación sobre el protocolo de los mandos de SNES (Bajar como PDF): Sci.Electronics FAQ: Super Nintendo Entertainment System: pinouts & protocol

Usé este Software para el desarrollo del driver USB. Para más información visita: http://www.obdev.at/products/avrusb/index.html

Esto fue útil para entender como Windows/Direct interpreta las entradas y porque algunas cosas no las reconoce el Windows 98: http://www.microsoft.com/whdc/device/input/hidgame.mspx


Resposabilidad

No puedo ser responsable de posibles daños que pudieran ocurrirte a ti o a tu equipo mientras haces algo de esta página. Además, NO DOY NINGUNA GARANTÍA de la corrección o de la usabibilidad de la información de esta página. Tengo que decir todo el procedimiento ha funcionado en mi caso sin problemas o daños.

Ahora no puedes decir que no te avisé si algo va mal.



Agradecimientos: Texto extraído de aquí (2008-07-22).