Mando Arcade para NES/SNES por LPT1

De WikiNES-77
Saltar a: navegación, buscar

Introducción

El sentimiento de jugar mientras que se usa en mando tipo arcade difiere de la sensación con cualquier teclado o mando, sin contar que en muchos casos es mucho más cómodo.

Me he encontrado con gente que compra máquinas recreativas para repararlas y ponerles un PC con mame. Esto hace que se vendan muchas partes por separado como los mandos y los joysticks. Con esto he tenido la idea de hacerme un mando tipo arcade para mi SNES, NES y PC.


Esquemas

Nota: Cerrojo=Lacth.

Lpt1arcade ctl circuit1.jpg

Desde que supe que mi mando de SNES no es nada más que un registro en paralelo de 16 bits, construí mi mando usando 2 74ls165. Un inversor fue necesario para cambia la polaridad de los cerrojos (el cerrojo de los 74ls165 esta activo bajo pero la SNES usa activo alto). Al principio use un 74ls04 pero los reemplacé por un transistor y 2 resistencias después.

Es necesario usar 74ls165 porque los 74hc165 no funcionan porque no consigue pillar el reloj estando alto cuando el cerrojo esta bajo.

El cambio de la entrada del segundo registro es guardado bajo para asegurar el estado final del QH (dato) que haga que después de 16 pulsos de reloj este bajo. Si no esta bajo algunos juegos no detectarán el mando (por ejemplo el Donkey Kong).

He llamado a los últimos 4 bits E1-E4. En un mando normal de SNES, ellos no son usados por botones, siempre están altos. Pienso que se usan para identificar el tipo de equipo conectado al puerto. En el caso de un ratón E4 esta bajo en vez de alto. Direct Pad Pro, Zsnes DOS y Linux sólo envían 12 pulsos de reloj, por lo que siempre hay que ignorar esos bits.

Lpt1snes.png


Para una mejor lectura mirar la versión pdf de este esquema.

Aquí es como puedes construir un inversor con un transistor. Es útil sino tienes 7404s alrededor o si piensas sólo usar un inversor con la salida.

Lpt1inv.png


Para una mejor lectura mirar la versión pdf de este esquema.

Sacar energía del puerto paralelo es posible usando 5 diodos para coleccionar algunos pines de salida. Allí puede haber problemas con algunos puertos cuyo voltaje que puede caer en la carga y en la caída de tensión de los diodos, la salida de los paralelos sólo dan 3.3 o 3.5V (este último es más común en los PCs nuevos) y no son buenos para dar energía a los 74ls165 que necesitan 5V para funcionar. Si tienes problemas con el voltaje, necesitas encontrar otra fuente de energía. Usando el puerto de juegos es una buena forma de conseguir 5V (DB15F, usa pins 1 (+5v) y el 4(Gnd/Tierra)). Hay que tener cuidado porque algunos puertos de juegos sólo dan 3.3... además de esto están los puertos ps/2 como el ratón o el teclado son buenas fuentes fiables de 5V.

Lpt1ppwr.png


Para una mejor lectura mirar la versión pdf de este esquema.

Para poder ser capaz de conectar el circuito a la NES o SNES, simplemente hice una simple cable. Usé cables de mandos originales de SNES y NES para este fin:

Lpt1snes-nes-adaptor.pngLpt1arcade ctl snes.jpg


Fotos


Protocolo

Si quieres saber algo como el protocolo de comunicación de un mando de snes lo mejor es visitar esto o ver este PDF.

Para aprender más sobre el movimiento de los registros y como usarlos de forma inteligente puedes ver el shift.txt.


Software

Para usar este mando en una snes, no es necesario nada raro. Para usarlo en el PC sólo tienes que usar el mismo software que usarías para mandos normales de NES o SNES como Direct Pad Pro, PsxPad, Zsnes Dos, Linux....

Este software puede ser visto aquí.


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 que 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í (2009-07-16).