Atariware Wiki: Joy 2B+

https://www.atariware.cl/wiki     Versión: 9 (01.09.2024 01:09)

Joy 2B+



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.