Google Custom Search

Re: [CANAL 3] Esquema de ligação joystick SNES -> Phantom System

De: Eduardo Luccas <elucas_at_s...>
Data: Tue, 01 Oct 2002 11:05:47 -0300

>Pessoal, tenho uma dúvida cabulosa!!!
>Estes joysticks (NES,SNES,Phantom System) possuem apenas uma saída de sinal,
>pois possuem um circuito integrado.
>Já os controles de Mega Drive, Master System, Atari e etc, possuem a saída
>de cada ação em um respectivo terminal do conector DB9.
>A "pergunta que não quer calar"... a saída de sinal destes controles que
>possuem integrado, é composto do quê?
>Alternativa:
...

Bom, então vamos calar a pergunta...

Na verdade podemos considerar um misto entre as alternativas.

De fato, os controles do Atari, do master, do mega (o de 3 botoes, pq o de
6 usa um chip tb), dos TKs, do MSX etc usam o sistema simples de
chaveamento. Notem que o Apple II e o CP-400 por exemplo utilizam joysticks
analógicos em que o princípio de funcionamento é outro.

Vou tentar explicar, então, como funciona os joysticks de SNES/NES. Os
outros tem funcionamente semelhante ou partem do mesmo princípio.

No controle, então, temos 5 conexões que são utilizadas. Duas são para a
alimentação: +5V e o terra. Os outros 3 são: RESET, DATA e CLOCK.

Dentro do controle tem um (ou 2 no caso do SNES) CIs 4021. Esse chip é um
"shif register" de 8 bits. Ou seja, ele pega os bits e vai deslocando
conforme os pulsos vão sendo aplicados. Simplificando para entendimento,
consideremos como se fosse um "contador".

Então a coisa funciona assim: primeiramente o videogame envia um pulso no
pino RESET. Isso faz com que o nosso "contador" seja zerado. Ou seja, ele
vai contar a partir do zero. Então a partir dai o videogame emite uma série
de pulsos na entrada CLOCK e a cada pulso fica presente na saida DATA o
estado digital de cada botão. Exemplificando: o videogame manda o 1o. pulso
na entrada clock, e na saida DATA fica o estado do direcional pra cima ("0"
não pressionado, "1" se pressionado); o dado é lido; manda o segundo pulso,
na saida DATA fica o estado do direcional para baixo; 3o. pulso de CLOCK,
sinal do direcional pra direita; 4o. pulso, sinal referente ao direcional
para esquerda; 5o. pulso, botão START, e assim por diante. Graficamente é
algo assim:

PULSOS (na entrada clock):
1 2 3 4 5 ...
_ _ _ _ _
_| |_| |_| |_| |_| |_...
^ ^ ^ ^ 5o.... e assim por diante.
| | | |
| | | +-- 4o. pulso, estado do direcional pra esquerda na saida DATA
| | |
| | +-- 3o. pulso, estado do direcional pra direita na saida DATA
| |
| +-- 2o. pulso, estado do direcional pra baixo na saida DATA
|
+-- 1o. pulso, estado do direcional pra cima na saida DATA

No NES são somente 8 pulsos, pois são 8 leituras a serem feitas:
direcional, START, SELECT, A, B. No SNES são são 12, os mesmo do NES + X,
Y, L, R. Na verdade como tem 2 chips de 8 bits seria possível ler 16
posições mas não são usadas todas. Por isso a importante funçãodo RESET,
que volta o contador a zero quando inicia a contagem.

Parece lerdo mas isso tudo é extremamente rápido. O videogame *geralmente*
faz uma leitura completa dessas a cada 20 ms, ou seja, são 50 leituras por
segundo.

Espero que tenha explicado de maneira elucidativa e que todos tenham entendido.

Qquer coisa tamos ai.

[]'s
Eduardo Luccas
Recebida em Tue 01 Oct 2002 - 07:02:18 BRT

This archive was generated by hypermail 2.2.0.