DIY: Haciendo un joystick de Arcade para la Commodore 64
Un poco de electronica basica y animarse a lo desconocido para mejorar la experiencia de los juegos mas demandantes de movimientos rapidos en las consolas y computadoras retro.
Arranquemos con: “¿Por qué? ¿Para qué?“
La historia de los video juegos electronicos de “habilidad“ es relativamente reciente, cuesta a veces no olvidarse que toda la historia que conocemos de videojuegos de arcade cabe en apenas los ultimos 50 años de historia. ¿A que le llamo juego de “habilidad“?, a aquellos medios de entretenimiento en donde los reflejos y precision del jugador definen sus posibilidad de lograr “ganar“ en un contexto con muchas restricciones, los en ingles llamados Games of Skill. Este tipo de juegos por fuera de la electronica se remontan hasta el principio de los tiempos, en donde podriamos decir que en cuanto los primeros Sapiens se pusieron de acuerdo en ver quien llegaba mas lejos arrojando una roca, estaban inventando el primer juego basado en habilidad.
Llegando a casi la epoca moderna, en los 1800s aparecen los juegos de habiliadad mecanicos, generalmente orientados a golpear algo en el momento correcto, o a tener la fuerza suficiente como para ganar el reto. De mas esta decir que el proposito de todos estos juegos era el de que el usuario compre la mayor catidad de pases o gaste la mayor cantidad de monedas, la vara estuvo siempre lo suficientemente baja como para que el usuario promedio crea que es posible que tenga la habilidad necesaria, y lo suficentemente alta como para que siempre le falte un poquito. O dicho de otra manera, lo justo como para incentivar otra ronda de juego.
A medida que evolucionaron este tipo de juegos mecanicos, cada vez se iban pareciendo mas a los clasicos pinballs que jugabamos en los salones de arcade.
Llegando a la modernidad con la expansion del uso de la electricidad, nos encontramos con juegos electromecanicos que le dan vida a los Pinballs, cuyas primeras versiones requerian al usuario mover elementos mecanicos para llevar la bola hacia el lugar deseado.
Para 1947 se introducen los “flippers“ (paletas), que son los elementos controlados por el usuario en los Pinballs para pegarle a la bola, evitar que caiga en el centro y con cierta habilidad golpear los pulsadores que nos sumen mas puntos. A esta altura ya son los viejos y clasicos pinballs que todos los Boomers en adelante jugaron, incluidos mi generacion, los Millenials, y la verdad que desconozco si los Centennials tienen algun appeal especial con los Pinballs. Sin hacer juicio de valor alguno, me parece que los Millenials fuimos los ultimos en disfrutar del apogeo de los salones de Arcade antes de que apaguen la luz, mientras la Gen X los vio expandirse al infinito, los Millenials disfrutamos de sus ultimos años de gloria jugando al Pump It Up despues de estar un rato en el fondo con el Flipper de Terminator 2. Me gustaria que me dejen sus comentarios sobre este tema.
Y ustedes a esta altura diran “Muy bonito, ¿pero qué tiene que ver toda esta historia fantastica con el Joystick de Arcade que hiciste?“. No se preocupen, ya casi llegamos a eso, para bajarles la ansiedad les muestro una foto del resultado final del Joystick:
Y ahora si, llegamos a la parte central de esta clase de historia, los video juegos de Arcade. Los video juegos electronicos de Arcade nacen alrededor de 1971 con la introduccion de Compuer Space, que era una version de un juego ya disponible en computadoras PDP, pero ahora de forma que se podia jugar a cambio de monedas en bares y pubs, entre otros lugares. Si les interesa la historia de los Arcades les recomiendo el libro del que hice la review en el post pasado “Classic Video Games“ .
Con los video juegos de arcade volvemos al inicio de todo esto, monedas a cambio de una experiencia electronica, ahora con video, en donde dependiendo de tus habilidades y recordar mecanicas y tiempos podes llegar a algun tipo de meta, o mas comunmente, a algun tipo de High Score. La vara de la dificultad generalmente lo suficientemente baja al principio para que sientas que lograste algo, pero luego rapidamente lo mas alta posible para que requieras mas de una jugada para aprender los movimientos, los tiempos, etc…
Algo de todo esto lo pueden apreciar en este video en donde en un stream pasado intentamos explotar un bug en el juego Batman: The Movie para Commodore 64 para tener vidas infinitas. Lo importante es que vean mas o menos como es la jugabilidad general para que se den una idea de como este tipo de juegos a pesar de tener un trasfondo narrativo “Batman buscando al Joker“, es mas que nada un juego de habilidad en donde hay que aprenderse los caminos del mapa, entrar en los momentos correctos, colgarse en los moentos correctos y disparar en los momentos correctos.
Tanto es asi, que las siguientes son las caracteristicas generales de este juego para Commodore 64:
3 vidas en total para todo el juego. (El juego consta de 5 niveles)
Batman solo puede disparar hacia los lados horizontalmente.
Batman solo puede tirar la batigarra vertical o en diagonal vertical.
El objetivo es terminar los 5 niveles con el mayor High Score.
Batman pierde vida si: Un enemigo lo choca corriendo. Le cae una gota desde el techo. Se golpea con una pared mientras esta colgado de la batigarra. Un enemigo le dispara. Si le cae una bomba. Si choca contra otro auto. Si otro auto lo choca a el. Si se olvida de cortar un globo con gas. Si choca un globo con gas. Si cae en pinches en el piso. Si camina hacia pinches en el piso. Si cae de mas de 2 pisos de altura. Si se termina el tiempo. Entre muchas otras cosas mas.
Y aca llegamos al titulo del posteo. La gran mayoria de los juegos que fueron desarrollados entre los 70s y los 80s giraban en torno a la idea de los juegos de habilidad como mecanica para demandar mas dinero (o partidas comenzando desde el principio nuevamente) del usuario. El problema, para mi en una opinion completamente personal, es que esto se traslada muy mal a los sistemas hogareños. Muchos de estos juegos lanzados entre la Atari 2600 en 1977 y los años de gloria de la Commodore 64 y la Amiga 500 entre finales de los 80s y principios de los 90s tienen un nivel de dificultad casi estupido si uno se da cuenta de que esta en el living de su propia casa y de que no hay motivo alguno para justificar semejante frustracion. Este es el motivo tambien por el cual tenemos tan pocos recuerdos de haber “Terminado“ juegos en nuestra infancia, digo en la mayoria de los casos, obvio que hay excepciones de personas que han terminado cada uno de los juegos que alguna vez paso por sus manos. No es mi caso.
Volviendo a Batman: The Movie, en el stream me di cuenta de algo muy puntual, y es que al juego lo estaba jugando con un Joystick original que salio para la Atari 2600.
El problema de este joystick, y muchos otros de esa epoca, es que son de plastico, esto incluye el soporte sobre el que se balancea la palanca.
Para hacer las cosas aun peores, en esta época habia dos grandes variantes a la hora de producir los contactos para los botones o las direcciones de la palanca. Una de las variantes era la almohadilla de goma con algun tipo de cobertura conductora de la electricidad debajo que al presionar el boton hacia de puente entre las pistas de la placa del joystick. Esto empieza a volverse comun en los 80s, muchos recordaran como era por dentro el joystick de un Family, y sigue en uso hasta hoy en dia en los joysticks modernos, aunque solo para los botones, y para las palancas se usan sistemas que segun cuantos grados se mueve para un lado o para el otro genera una resistencia u otros metodos para variar la electricidad, con lo que los terminamos denominando Analogicos. (Por si alguna vez se preguntaron por que a las palancas en los joysticks modernos les decimos “Los Analogicos“, es por eso, porque los botones son digitales, 0 el boton no esta pulsado, 1, el boton esta pulsado, lo mismo era con las palancas antiguas, hasta la introduccion de estos sistemas variables que funcionan de manera analogica).
El tema es que para la epoca de los Joysticks de Atari todavia se utilizaba un sistema un poco mas rudimentario, en donde para hacer de puente de las pistas en la placa se utilizaba una chapita concava que al presionarla se doblaba lo suficente en su centro como para hacer contacto con las pistas, esto lo pieden apreciar en la siguiente imagen del mismo Joystick por dentro (De paso pueden leer como tuve que reparar este joystick aca):
Esta aberracion historica me llevo a pensar en dos cosas. Primero que claramente necesitaba otro tipo de Joystick para poder jugar este juego de Batman, y muchos otros que quiero jugar tanto en la Commodore 64 como en otros sistemas de la epoca, porque la precision que aporta es casi nula y porque me siento mal tratando tan mal a un joystick que tiene mas de 40 años y que podria tener en mi estanteria como objeto de coleccion en vez de estar reventandolo a palancadas en streams de 3 horas lidiando con juegos frustrantes. Quizas el proximo posteo del Newsletter sea una review del juego.
Y el segundo tema es, ok, pero si voy a cambiar el joystick, ¿por que otro lo cambio? ¿Compro otro Joystick de entre 30 y 40 años pero con mejores especificaciones? ¿vale la pena? ¿Que tan dificil puede ser hacerse un Joystick uno mismo? Y aqui es donde dije, ¿saben que? Vamos a investigar y a intentarlo.
Lo primero que vamos a descubrir es que durante los 70s y hasta mediados de los 90s hubo un sistema de Joysticks que se convirtio en el estandar de facto, que quizas ya se hayan dado cuenta de cual es ya que mencione varias veces que estaba jugando en la Commodore 64 con un Joystick de Atari 2600, y vaya que eso deberia sorprenderlos ya que Atari y Commodore por si no lo sabian eran empresas completamente antagonicas en el mundo de las computadoras personales, Atari con sus lineas 400 y 800 compitiendo contra las Commodore Vic-20 y 64, y luego entre Atari ST y Commodore Amiga. Pero lo cierto es que la disposicion de los cables que diseño Atari para los zocalos DB9 era muy conveniente y facil de implementar.
Llegaron a salir algunos Joysticks muy elaborados para el estandar Atari, como el Happ's Competition Pro que funcionaba con microswitches en vez de membranas de goma.
Bueno, ¿y como funciona este famoso estandar de Atari? Ustedes se deben estar preguntando. Pues muy simple, en un conector DB9 tenemos como su nombre se indica 9 conexiones posibles para comunicarnos con la computadora o consola.
En su estructura mas basica la forma de entenderlo es muy simple, los cables del 1 al 4 representan arriba, abajo, izquierda y derecha, y el cable 6 representa el boton de accion. ¿Y como sabe el chip en la computadora o consola que controla el joystick que accion esta siendo presionada? Porque el circuito se cierra con el cable del pin 8. Si el cable en 8 hace contacto con el cable en 1, es la accion de ir para arriba, si el cable en 8 hace contacto con el cable en 6, se esta presionando el boton de accion.
A continuacion pueden ver un diagrama que encontre en epanorama.net :
Bien, esto significa que es un circuito tan simple de hacer que ni siquiera es necesaria una placa para soldar componentes extra, solo con los cables, el conector DB9, la palanca y un boton, deberiamos poder hacer nuestro propio Joystick, asi que me adentre a filtrar en Amazon lo mas barato que encuentre en un combo de botones y cosas de Arcade, y encontre uno que es para armar un Joystick USB para PC (Ahora me dieron ganas de hacer otro Joystick de Aracade pero para la PC/Raspberry Pi).
Consegui un conector DB9, consegui los repuestos de arcade, y solo me faltaba una cosa. Me olvide de comprar cable!!! Como mencionamos antes en el diagrama de conexiones, necesitaba un cable con al menos 6 cables internos, 4 para las direcciones, 1 para el boton, y 1 que es el comun a todos, asi que revolviendo mi dpto encontre un cable de red. (Para quienes no me conozcan, de dia soy Administrador de Sistemas, asi que es comun para mi tener cables de red o distintos componentes o cosas de PC dando vueltas por la casa).
Lo primero que hice fue revisar como funciona la palanca de arcade con microswitches que compre. Por lo que vi venia con un conector con 5 cables, pero no venia con manual ni nada que indique que era cada uno de los 5 cables.
Note que cada uno de los 5 cables de la palanca tenian una especie de patron de dibujo diferente, asi que eso me servia para poder diferenciarlos.
Luego de ir probando con el tester que cable respondia a, por ejemplo mover la palanca para arriba, me fui anotando los patrones en un cuaderno. Notese como el vivir en Canada empieza a afectarme en el lenguaje y cuando estaba anotando los cables no me salio en mi mente la palabra “Comun“ y termine poniendo las direcciones en español, y al ultimo “Common“.
Una vez identificados los cables aproveche que los cables de red vienen con un set de colores predefinidos y le asigne a cada color una funcion, por ejemplo: Naranja=Arriba, Verde=Abajo, etc… Asi hasta completar los 6 cables que necesitaba. Una vez hecho el par “color=funcion“, empalme los cables del cable de red con las correspondientes terminaciones que se conectan a la palanca y el boton.
Una vez encintados los empalmes, pasamos del otro lado del cable, el lado del que va el DB9 que despues se tiene que conectar a la computadora o consola, y procedemos a conectar los cables tal cual como habiamos visto en el diagrama original.
El paso siguiente fue un poco mas gracioso, porque probarlo suelto en la mesa es siempre un peligro porque uno puede soltar un cable sin querer, hacer que dos cabes que no deben tocarse se toquen, etc… Y la verdad es que no tenia plata para gastar en placas de acrilico y una agujereadora, porque aunque hubira comprado una placa de acrilico, no tenia como hacer los agujeros correspondientes para la palanca y el boton, asi que decidi usar la caja de carton en la que venian los componentes de arcade porque el tamaño era ideal para que las cosas queden mas o menos firmes despues de un poco de cinta adhesiva.
Y finalmente luego de montar todo sobre la caja de carton, el resultado final, un joystick de tipo arcade compatible con el estandar Atari, hecho con la menor cantidad de componentes especiales posible y reutilizando lo que tenga a mano en el proceso.
En el siguiente video pueden ver no solo el proceso en video, sino que ademas la prueba final:
Espero que les haya gustado!
Si les comparten el artículo a gente que conozcan que le interesa el tema me ayudan un montón a que esto crezca y hagamos más contenido del estilo.
¿Dónde ver más contenido?
Twitter: ar_jorge1987
Youtube: https://www.youtube.com/channel/UCEzvUEiN9pvSKIZTTNJUxLg
(Hasta que no se suscriba mas gente no puedo tener una URL linda en Youtube)
Twitch: https://www.twitch.tv/arjorge1987
Si quieren apoyar estos contenidos, enterarse de que estoy haciendo antes que nadie, que su nombre aparezca en los agradecimientos, o ver fotos en mejor calidad de las distintas cosas que probamos o usamos, pueden suscribirse a mi Patreon:
Patreon: arjorge1987
Patrons:
Chat & Shout Patron:
@Agropio
Mecenas del Arte:
N/A