Joystick Sinclair

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Joystick Sinclair

Notapor climacus el Mie Sep 16, 2015 11:02 am

Buenas.
Alguien me puede decir qué puerto hay que leer y los distintos valores para poder manejar un juego con el Joystick Sinclair?

Gracias y un saludo
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Joystick Sinclair

Notapor Kyp el Mie Sep 16, 2015 3:58 pm

El joystick Sinclair simula las teclas del cursor, es decir, 5, 6, 7, 8 y 0. Opcionalmente pulsando simultáneamente SHIFT aunque los juegos no suelen mirar eso. Por lo tanto...
El puerto F7FE, bit 0 para la tecla 5.
El puerto EFFE, bits 0, 1,2 y 4 para las teclas 6, 7, 8 y 0.
El puerto FEFE, bit 4 para SHIFT.
Avatar de Usuario
Kyp
Sabreman
 
Mensajes: 304
Registrado: Lun Dic 16, 2013 7:16 pm

Re: Joystick Sinclair

Notapor utopian el Mie Sep 16, 2015 5:57 pm

Kyp, diría que estás equivocado. El joystick Sinclair 1 simula las teclas del 6 al 0 (puerto $effe) y el Sinclair 2 del 1 al 5 (puerto $f7fe).

Aquí va un trozo de código que uso siempre:

Código: Seleccionar todo
; Returns: 
;      A: joystick state
; Bit #:  765   4   3210
;         |||   |   ||||
;         XXX  BUT1 RLDU
;--------------------------------------
; Read routine for Sinclair 1 joysticks
;--------------------------------------

read_sinclair1_joystick:
          ld bc, $effe
          in c, (c)  ; Leemos solo la fila 6-0. Los bits a 0 están pulsados
          xor a
sinclair1_fire:
      rr c
      jr c, sinclair1_up
      or $10      ; fire is pressed
sinclair1_up:
      rr c
      jr c, sinclair1_down
      or $01      ; up is pressed
sinclair1_down:
      rr c
      jr c, sinclair1_right
      or $02      ; down is pressed
sinclair1_right:
      rr c
      jr c, sinclair1_left
      or $08      ; right is pressed
sinclair1_left:
      rr c
      ret c      ; no carry, just return
      or $04      ; left pressed
      ret

;--------------------------------------
; Read routine for Sinclair 2 joysticks
;--------------------------------------

read_sinclair2_joystick:
          ld bc, $f7fe
          in c, (c)  ; Leemos solo la fila 1-5. Los bits a 0 están pulsados
          xor a
sinclair2_left:
      rr c
      jr c, sinclair2_right
      or $04      ; left is pressed
sinclair2_right:
      rr c
      jr c, sinclair2_down
      or $08      ; right is pressed
sinclair2_down:
      rr c
      jr c, sinclair2_up
      or $02      ; down is pressed
sinclair2_up:
      rr c
      jr c, sinclair2_fire
      or $01      ; up is pressed
sinclair2_fire:
      rr c
      ret c      ; no carry, just return
      or $10      ; left pressed
      ret
utopian
Manic Miner
 
Mensajes: 219
Registrado: Jue May 10, 2007 2:28 pm

Re: Joystick Sinclair

Notapor climacus el Mie Sep 16, 2015 6:12 pm

Ok. Muchísimas gracias.
No tenía ni idea...
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Joystick Sinclair

Notapor Kyp el Jue Sep 17, 2015 9:41 am

Pues tienes toda la razón :oops:
Aquí tenéis más información (en inglés): http://www.retroisle.com/general/spectrum_joysticks.php
Avatar de Usuario
Kyp
Sabreman
 
Mensajes: 304
Registrado: Lun Dic 16, 2013 7:16 pm

Re: Joystick Sinclair

Notapor climacus el Vie Sep 18, 2015 8:38 am

Kyp escribió:Pues tienes toda la razón :oops:
Aquí tenéis más información (en inglés): http://www.retroisle.com/general/spectrum_joysticks.php


Muchas gracias.

Una preguntilla más...

Para controlar un juego con las flechas del plus 2, cuál hay que usar?
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Joystick Sinclair

Notapor utopian el Vie Sep 18, 2015 9:39 am

Las flechas son las teclas del cursor, así que tendrás que detectar la pulsación de CAPS SHIFT y las teclas 56780.
utopian
Manic Miner
 
Mensajes: 219
Registrado: Jue May 10, 2007 2:28 pm

Re: Joystick Sinclair

Notapor climacus el Vie Sep 18, 2015 10:31 am

utopian escribió:Las flechas son las teclas del cursor, así que tendrás que detectar la pulsación de CAPS SHIFT y las teclas 56780.


Pero qué cortico que soy!!!

Muchas gracias de nuevo!!!!
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 411
Registrado: Mar Ago 25, 2009 1:46 pm

Re: Joystick Sinclair

Notapor Kyp el Vie Sep 18, 2015 4:29 pm

utopian escribió:Las flechas son las teclas del cursor, así que tendrás que detectar la pulsación de CAPS SHIFT y las teclas 56780.

Aunque el teclado en sí simula la pulsación de CAPS+nº bastaría con mirar la pulsación del nº, ¿no? Te ahorras unas pocas instrucciones.
Avatar de Usuario
Kyp
Sabreman
 
Mensajes: 304
Registrado: Lun Dic 16, 2013 7:16 pm


Volver a Programación y nuevos desarrollos

¿Quién está conectado?

Usuarios navegando este Foro: Google [Bot] y 1 invitado

cron