Ghosting no teclado e N-key rollover explicados

Ghosting no teclado é quando uma tecla que você aperta não é registrada porque você já está segurando outras teclas. Em um jogo, isso pode significar não conseguir correr na diagonal e pular ao mesmo tempo. Este guia explica por que o ghosting no teclado acontece, o que significam N-key rollover e 6-key rollover, como fazer você mesmo um teste de ghosting no teclado e o que o “anti-ghosting” escrito na caixa realmente promete.

O que é ghosting no teclado?

A Microsoft, que estudou o problema ao projetar o teclado SideWinder X4, descreve o ghosting como “o problema de algumas teclas do teclado não funcionarem quando várias teclas são pressionadas ao mesmo tempo”. O exemplo é familiar para quem joga: não conseguir correr na diagonal e atirar ao mesmo tempo, por exemplo apertando A, W e G juntas.

Os termos são usados de forma imprecisa. A rigor, existem duas falhas diferentes:

FalhaO que acontece
GhostingRegistra uma tecla extra que você não apertou
Jamming (bloqueio)Ignora uma tecla que você apertou

A Wikipedia explica que os teclados modernos detectam as condições que criariam uma tecla fantasma e, em vez de registrá-la, ignoram a terceira tecla. Isso é jamming, mas a maioria das pessoas, e a maioria das caixas de teclado, chama isso de ghosting.

Por que os teclados têm ghosting

A maioria dos teclados não liga cada tecla separadamente. A Microsoft descreve o projeto mais comum: folhas embaixo das teclas com uma grade impressa de trilhas em linhas e colunas, em que apertar uma tecla conecta uma linha a uma coluna. O teclado descobre qual tecla você apertou a partir dessa conexão.

Com duas teclas pressionadas, não há confusão. Com três teclas em três cantos de um retângulo da grade, a corrente também pode passar por um quarto canto, e o teclado não consegue saber se essa quarta tecla está pressionada. Segundo a Microsoft, o teclado típico então “para de enviar novos toques para evitar enviar as teclas erradas”.

A solução é um diodo em cada tecla, para que a corrente só possa passar em um sentido. A Microsoft observa que isso exige uma placa de circuito com mais de cem diodos, o que “é relativamente caro”. Teclados mais baratos reorganizam a fiação para que as combinações mais comuns em jogos funcionem, mas, como diz a Microsoft, isso apenas transfere o problema “para outros conjuntos de teclas, onde é menos provável que o usuário perceba”.

As três causas

A Microsoft lista três pontos em que teclas pressionadas ao mesmo tempo podem se perder:

  1. A eletrônica do teclado não consegue identificar quais teclas estão pressionadas.
  2. A conexão entre o teclado e o computador limita quantas teclas podem ser enviadas.
  3. O software do computador não lida com muitas teclas simultâneas, mesmo quando o teclado as envia corretamente.

N-key rollover e 6-key rollover

Rollover descreve quantas teclas um teclado consegue registrar ao mesmo tempo.

  • 2-key rollover: quaisquer duas teclas funcionam juntas, mas uma terceira pode falhar.
  • 6-key rollover (6KRO): até seis teclas comuns mais as teclas modificadoras.
  • N-key rollover (NKRO): a Wikipedia define como um teclado que “consegue detectar corretamente a entrada de cada tecla do teclado ao mesmo tempo, não importa quantas outras teclas também estejam sendo pressionadas.”

De onde vem o limite de seis teclas

Teclados USB podem se comunicar com um computador de duas formas. A Wikipedia explica que o protocolo de boot (boot protocol) simples, usado por coisas como a BIOS do computador, é limitado às oito teclas modificadoras mais no máximo seis códigos de tecla. Os sistemas operacionais usam o protocolo de relatório (report protocol), mais completo, que “não impõe restrições e suporta n-key rollover completo”. O problema é que a especificação não obriga o teclado a suportar mais, então alguns teclados de entrada mantêm o limite de seis teclas mesmo assim.

Alguns fabricantes ainda informam um limite de seis teclas para seus teclados USB, então confira a especificação do seu modelo. A Microsoft também observa que teclados que usam um método próprio de envio para passar de seis teclas podem não funcionar totalmente antes de o sistema operacional carregar, por exemplo na BIOS.

“Anti-ghosting” é o mesmo que NKRO?

Não necessariamente. A Microsoft alerta que um teclado vendido como anti-ghosting “pode se referir apenas a um subconjunto específico de teclas do teclado que funcionam bem juntas”, e que promessas de “até” um grande número de teclas podem esconder muitas combinações de três teclas que falham. A Wikipedia acrescenta que alguns teclados gamer só dão diodos próprios às teclas mais usadas em jogos, como WASD e as setas.

O tipo de switch sozinho também não define isso. A Cherry diz que os switches individuais dos teclados mecânicos evitam o ghosting, mas o rollover depende de como o teclado é ligado e de como o controlador envia as teclas. Confira a especificação de rollover do modelo exato em vez de supor. Nosso guia sobre teclado mecânico vs. membrana aborda as outras diferenças.

Como fazer um teste de ghosting no teclado

A própria Microsoft recomenda o seguinte para encontrar combinações problemáticas:

  1. Segure A, S, D e W, as teclas de movimento mais comuns nos jogos.
  2. Enquanto segura, aperte uma por uma todas as outras teclas.
  3. Se uma tecla não for registrada, solte algumas das quatro teclas e tente de novo. Muitas vezes você vai encontrar uma combinação de três teclas que falha.

A Microsoft também ressalta que encontrar uma combinação de seis teclas que funciona “não significa necessariamente que toda combinação de 6 funcione”. Teste as combinações que você realmente usa, como movimento mais pular, agachar e recarregar.

O que um teste no navegador consegue e não consegue mostrar

Você pode ver os toques sendo registrados em qualquer página que os exiba, incluindo a demonstração on-line de ghosting no teclado da Microsoft. O navegador só vê o que o teclado enviou e o que o sistema operacional repassou, então algumas teclas nunca chegam a uma página da web:

  • No Windows, os navegadores geralmente não conseguem detectar a tecla Print Screen.
  • A tecla Windows move o foco para o menu Iniciar.
  • O MDN observa que, no macOS, o Caps Lock só envia um evento keydown, e o macOS não suporta Num Lock.
  • Leitores de tela podem interceptar os toques, por isso a Microsoft sugere desligá-los durante o teste.
  • Teclas como Fn costumam ser tratadas dentro do próprio teclado e podem nem aparecer.

Para medir a velocidade em vez das combinações, nosso teste de KPS conta quantas teclas você aperta por segundo.

O que fazer contra o ghosting

  • Mude seus atalhos de teclas. Passe uma ação que falha para uma tecla fora do grupo problemático.
  • Procure um modo NKRO ou gamer. Alguns teclados gamer permitem alternar entre 6KRO e NKRO no software ou com uma combinação de teclas. Confira o manual do seu modelo.
  • Teste outra porta USB ou outro cabo se um teclado que deveria suportar NKRO se comportar como 6KRO, e atualize o firmware ou o software do teclado.
  • Compre pela especificação. Se você joga jogos que exigem muitas teclas ao mesmo tempo, procure NKRO completo informado para o modelo, não apenas “anti-ghosting”.

Perguntas frequentes

O que é ghosting no teclado?

É quando um toque não é registrado, ou aparece uma tecla que você não apertou, porque várias teclas estão pressionadas ao mesmo tempo. Isso vem da forma como a maioria dos teclados liga suas teclas em uma grade compartilhada.

Qual é a diferença entre ghosting e jamming?

A rigor, ghosting é uma tecla fantasma extra e jamming é uma tecla real sendo ignorada. Teclados modernos geralmente bloqueiam em vez de gerar ghosting, mas os dois costumam ser chamados de ghosting.

O que significa N-key rollover?

NKRO significa que o teclado consegue registrar todas as teclas ao mesmo tempo, não importa quantas estejam pressionadas. 6-key rollover significa até seis teclas comuns mais as modificadoras.

Anti-ghosting significa NKRO?

Nem sempre. A Microsoft alerta que o anti-ghosting pode cobrir apenas um conjunto de teclas que funcionam bem juntas. Procure um valor de rollover informado, como NKRO, para o modelo exato.

Como testo se meu teclado tem ghosting?

Segure W, A, S e D, depois aperte uma por uma todas as outras teclas e observe em um visualizador de teclas quais não são registradas. Depois teste exatamente as combinações que você usa nos seus jogos.

Todos os teclados mecânicos têm NKRO?

Não. O rollover depende da fiação e do controlador do teclado, não só dos switches. Confira a especificação do modelo.

Fontes