Microordenadores - Retroinformática y placas modernas de desarrollo

Nueva placa Sugarless +2 para adaptar un ZX-Uno a la caja de un ZX Spectrum +2A/+2B/+3

Pruebas con un prototipo de Joy2PS2
26 de Noviembre de 2017
Etiquetas:

Prototipo de un Joy2PS2

spark2k06 amablemente me ha enviado un prototipo de Joy2PS2 para testear. Aquí hago algunas pruebas iniciales con el core de Spectrum para cargar algunos juegos y explico el funcionamiento básico de este útil conversor programable que permite usar joysticks norma Atari convirtiendo la señal a eventos de teclado PS/2.

Este conversor que fue inicialmente ideado para construir una máquina arcade con un ZX-Uno permite usar prácticamente cualquier mando de conexión DB9 con ordenadores compatibles con teclado PS/2. Está basado en arduino y es totalmente configurable gracias a su licencia libre.

Qué joystick o gamepad usar

Para estas pruebas he utilizado un joystick tipo Megadrive de Aliexpress que, aunque no es una maravilla, cumple su función y es muy económico. Funciona virtualmente con cualquier mando que sea norma Atari DB9 o DB15.

En este mando la forma más cómoda de utilizar el modo SHIFT es dejando pulsado el botón Start y a continuación se pulsa el botón 1.

Recomendaciones para conectar el Joystick

Un punto importante a tener en cuenta es conectar el Joystick al conector DB9 de forma que quede bien ajustado pero sin hacer mucha fuerza, ya que si se aprieta demasiado es posible que se hundan los pines. Esto se consigue más fácilmente sujetando la parte trasera del conector mientras se conecta el mando hasta que quede firme pero sin forzar.

Para comprobar que está bien conectado arranca el ZX-Uno con el joystick conectado y comprueba que reacciona al pulsar todas las teclas.

Como empezar a usar Joy2PS2

Para empezar a usarlo debes conectar un mando al conector DB15 o al conector principal (MAIN) DB9, y mediante un cable PS/2 al conector del ZX-Uno. En el prototipo que tengo el conector principal DB9 es el que está más cerca de los conectores PS/2. El conector PS/2 que va al ZX-Uno es indiferente ya que ambos están puenteados. Si usas ZX-Uno es posible que tengas que configurar el teclado en español desde la BIOS.

Puedes conectar en caliente tanto los joysticks como la conexión PS/2 al ZX-Uno sin ningún tipo de problema. Lo primero que he hecho ha sido tomar nota de la equivalencia de los botones a las teclas:

  • En modo QAOP: A, B, C, X, Y, Z, Start equivalen a Espacio, X, M, D, F, C, 1 respectivamente.
  • En modo cursores: A, B, C, X, Y, Z, Start equivalen a Enter, Espacio, R, D, F, C, 1 respectivamente.

Joy2PS2 tiene dos modos de funcionamiento: modo normal y modo SHIFT. El modo SHIFT es un modo de comandos que permite cambiar el funcionamiento y ejecutar macros, tales como teclear LOAD "" ENTER para cargar un juego. Para entrar en él puedes hacerlo de tres formas, tal y como indica el wiki de Joy2PS2:

  • Dejando pulsado Start y a continuación el botón 1
  • Dejando pulsado Select y a continuación el botón Start
  • Pulsando y soltando el botón Keymapper de la placa

Modo cursores o QAOP

Nada más encenderlo, por defecto funciona en modo cursores. Para cambiar modo cursores a modo QAOP se pulsa SHIFT (el botón de la placa) y a continuación el botón 1 del mando, en este caso corresponde al etiquetado con la letra "A". Mediante SHIFT se pueden ejecutar una serie de funciones como resetear el ZX-Uno, generar NMI y obtener el menú de cores, entre muchas otras que están explicadas en la tabla del modo SHIFT.

Como jugar a dos jugadores o usar teclas del segundo joystick

A veces, para algunos juegos es necesario disponer de una tecla auxiliar como la K para iniciar la partida como teclado, por lo que puede ser conveniente usar el segundo mando si no se dispone de un teclado externo.

Modos de funcionamiento

  • DB9/DB15, el modo que inicia por defecto; en este caso se accede al modo SHIFT únicamente desde el mando principal.
  • 2xDB9, el modo que permite usar ambos joysticks a la vez.

La configuración seleccionada permanece durante el reinicio en caliente de ZXUno.

Nada mas conectarlo, la interfaz se encuentra configurada para ser utilizada únicamente desde el puerto DB9 principal o el DB15 (Neogeo). Para usar los dos mandos DB9 hay que cambiar a este modo de la siguiente forma desde el mando MAIN:

  1. Entrar en modo SHIFT pulsando el botón 1 mientras se mantiene pulsado START
  2. Una vez en modo SHIFT se deja pulsado el botón 1 y a continuación el botón 2

A partir de ahí ya funcionarán ambos mandos de forma simultánea al esta ren modo 2xDB9 en lugar de DB9/DB15.

Como usar simultáneamente un teclado y el joystick

Joy2PS2 es muy flexible y funciona con casi todos los juegos, aunque para conseguir mayor comodidad permite conectar un teclado al mismo de forma que puedas controlar el ZX-Uno con un teclado y un joystick simultaneamente. En algunos casos se produce un conflicto al usar ambos dispositivos simultaneamente, aunque hay una solución usando una placa con diodo que evita que el teclado externo se bloquee y se queden teclas repetidas activando o desactivando el teclado mediante un interruptor. Esto se explica también en este mensaje en el foro ZX-Uno.

Como jugar a algunos juegos de Spectrum con Joy2PS2

Lo más recomendable es imprimir la tabla de Joy2PS2 y mirar las instrucciones del juego para saber las teclas que hay que pulsar. A modo de ejemplo pongo aquí las pulsaciones necesarias para algunos juegos, en este caso cargados desde un reproductor de música o TZXDuino.

Zynaps

  1. SHIFT + derecha derecha derecha 1 para LOAD "" [ENTER] en modo "48K"
  2. SHIFT + arriba arriba arriba arriba arriba 1 para redefinir con el 3
  3. SHIFT + 1 para modo QAOP ya que por defecto está en modo cursores
  4. Redefine los controles y pulsa disparo para empezar a jugar

Benny Hill's Madcap Chase 128K

  1. SHIFT + derecha derecha derecha 1 para LOAD "" [ENTER] en modo "48K"
  2. SHIFT + 1 para cambiar a modo QAOP ya que por defecto está en modo cursores
  3. SHIFT + arriba arriba arriba arriba arriba 1 para redefinir con el 3
  4. SHIFT + arriba arriba arriba arriba arriba arriba 1 para jugar con el 4

Manic Miner

  1. SHIFT + derecha derecha derecha 1 para LOAD "" [ENTER] en modo "48K"
  2. Una vez cargado el juego pulsa A (Enter) para empezar la partida
  3. SHIFT + 1 para cambiar a modo QAOP y ya puedes jugar, el botón A es salto

Saracen

  1. SHIFT + derecha derecha derecha 1 para LOAD "" [ENTER] en modo "48K"
  2. Desconecto PS/2, conecto teclado para pulsar las teclas K seleccionar teclado y S para empezar partida
  3. SHIFT + abajo 1 para modo QAOP
  4. Juego normalmente desde joystick 1

Como actualizar el firmware Joy2PS2 desde OpenBSD o Linux

Para algunos juegos la tecla de disparo es la M, tecla que no estaba mapeada en la versión que funcionaba en mi Joy2PS2. spark2k06 me envió un archivo .hex actualizado con la tecla M mapeada, que se puede grabar sin necesidad de Windows de esta forma. El archivo .hex está disponible en la sección descargas/joy2ps2.

En OpenBSD

Recuerda que /dev/cuaU0 debe tener permisos de escritura para el usuario que ejecuta avrdude (disponible en el port arduino).

$ avrdude -p atmega168 -c arduino -P /dev/cuaU0 -v -b 19200 -U flash:w:joy2ps2.hex

En Linux

$ avrdude -c arduino -P com3 -p ATMEGA168 -b 19200 -U flash:w:joy2ps2_release6.hex

Enlaces