segunda-feira, 16 de março de 2020

Ler joyticks no Spectrum (I)

Para ler joysticks em jogos no Spectrum, existiram vários standard durante o período de vida Sinclair-Amstrad (e infelizmente várias pinagens também).

Os diferentes standards são, portanto:

Cursor

Mapeia os movimentos do joystick em leituras de teclas, 5-8 e 0 para disparar.

5 esquerda
6 abaixo
7 acima
8 direita
0 disparo

Sinclair

Mapeia os movimentos do joystick em leituras de teclas, e permite ter dois joysticks.

Joystick "da esquerda" mapeia nas teclas 1-5 (5 disparo) e o da direita nas teclas 6-0 (0 disparo).

1 esquerda 6
2 direita     7
3 abaixo     8
4 acima      9
5 disparo    0

SJS (+2/2A/2B/3)

Mapeia os movimentos do joystick em leituras de teclas.

6 esquerda
7 direita
8 abaixo
9 acima
0 disparo - 1
5 disparo - 2

Fuller
Porta
Bit
7
6
5
4
3
2
1
0
$7f
fire
?
?
?
dir
esq
abaixo
acima
(activo a 0)

Kempston

O standard mais conhecido.

Porta
Bit
7
6
5
4
3
2
1
0
$1f
fire2
0
0
fire
acima
abaixo
esq
dir
(activo a 1)

Timex 2068

porta $01F6 joystick 1           
porta $02F6 joystick 2       

Porta
Bit
7
6
5
4
3
2
1
0
$01F6
1
1
1
fire
direita
esq
abaixo
acima
(activo a 0)
Porta
Bit
7
6
5
4
3
2
1
0
$02F6
1
1
1
fire
direita
esq
abaixo
acima
(activo a 0)

Nota: É interessante notar que o TC/TS 2068 usam uma alteração do standard de Joystick Fuller, e o TC 2048 usa o standard Kempston.

2 comentários:

  1. A documentação original está errada. O botão de disparo do Timex é bit 7 e não bit 4.

    ResponderEliminar