Contenido
1. Descripción
Agregar dos botones adicionales al joystick para tener un total de 3 botones funcionales sin modificar el Atari. Solo se necesitan juegos modificados que tengan el soporte para los dos botones extras por suerte tenemos muchos ya disponibles.
2. Historia
Este proyecto empezó en el exforo de Atariware el 26 de septiembre del 2018, presentando la idea de unir los pines del joystick estándar con los pines de un paddle agregando una resistencia de 10K a la conexión 5v+
Se armo un joystick prototipo e hice algunas pruebas de concepto solo con un botón adicional.
Primera prueba en Basic, listado a continuación :
10 PRINT STICK(0),STRIG(0),PADDLE(0):GOTO 10
Segunda desde ensamblador, listado a continuación :
OUTCHAR = $F2B0 ; Imprime un caracter en pantalla
PADDL0 = $0270 ; Leer paddle 0
COLOR4 = $02C8 ; Color de borde 712
STRIG0 = $D010 ; Boton del joy 0
org $2000
; Inicio y colores
start
lda #$92
sta COLOR4
; Ciclo y lee paddle 0
loop
lda PADDL0
cmp #5
bne boton
lda #'2'
jsr OUTCHAR
; lee boton
boton
lda STRIG0
cmp #0
bne exit
lda #'1'
jsr OUTCHAR
exit
lda #$9b
jsr OUTCHAR
jmp loop
run start
Después del éxito de las pruebas se empezó con modificar juegos. El primero Screaming Wings primero usando solo un botón adicional para la vuelva en 360 antes se usaba la tecla espacio.
Bytes del juego original
AD FC 02 LDA $02FC ; lee el teclado (CH)
C9 21 CMP #21 ; es tecla espacio?
Bytes del parche
AD 70 02 LDA $0270 ; lee paddle 0 (PADDL0)
C9 05 CMP #05 ; es botón 2
Después se modificó Green Beret que fue algo similar al anterior, para usar la bazuca con el segundo botón en vez de la tecla espacio.
A la semana el amigo SpaceInvader sugirió modificar la resistencia a 330ohms para hacerlo compatible con atari 2600 y con pad de Sega Genesis. Después de prueba y nació la versión final.
Ahora se empezaron a modificar varios juegos, el amigo pepe le gustó mucho la idea y apoyo en parchar muchos juegos al proyecto.
De hay se presento en foro de atariage, haya se sumaron mas personas para ayudar en parchar juegos con 2 o 3 botones.
3. Modificación del Joystick
En resumen vamos a incluir en el joystick los pines propios más los pines 5, 9 y 7 o sea necesitamos un cable que contenga los 9 pines. Puedes hacer el cable tú mismo o usar uno de sega o de alguna consola que use como conector un DB9. La unión de todos los cables debería quedar como este esquema :
Con esto tenemos 2 botones más, usando el movimiento de los paddles izquierdo y derecho. Un detalle la resistencia 330 ohms puede ser de 1/4 o 1/2 watt.
4. ¿Como se programa?
Partimos en Basic que es más fácil y es algo similar para todos los lenguajes de alto nivel para el ATARI.
10 GR.0
20 IF STRIG(0) = 0 THEN ? "BOTON 1"
30 IF PADDLE(0) = 228 THEN ? "BOTON 2"
40 IF PADDLE(1) = 228 THEN ? "BOTON 3"
50 GOTO 20
Para ensamblador es algo similar al ejemplo de más arriba, tenemos que cambiar el valor 5 a 228 "esto es por el cambio de resistencia"
lda PADDL0
cmp #228
bne boton
5. Programa de pruebas
Este pequeño programa es para probar el funcionamiento correcto de los 3 botones de los joystick modificados.
Disponible desde su repositorio oficinal.
6. Emulación
Se puede emular desde altirra 3.20 para usar 3 botones, dejamos un video de los pasos a realizar para activarlo.
7. Juegos
Desde el repositorio puedes bajar mas de 80 juegos modificados para usar 2 o 3 botones.