No IBM PC original, sempre que uma tecla era pressionada ou liberada, o teclado enviava um byte cujo bit superior indicava se uma tecla foi recém-pressionada ou recém-liberada e cujos 7 bits inferiores identificariam a chave. Em teclados posteriores que adicionaram coisas como teclas extras de controle, pressionar ou soltar uma das teclas de controle fará com que o teclado envie um byte de prefixo indicando que "algo foi feito com uma chave duplicada; a ação afetou a segunda" seguida de um " a tecla de controle foi pressionada ". Tentar lidar com isso de maneira eficaz era muito mais incómodo do que simplesmente ter dois códigos para a chave de controle, mas a última abordagem teria resultado em que a chave de controle extra não pudesse ser usada por nenhum software que não soubesse o que seu código representa .
Os teclados USB usam uma abordagem um pouco diferente; eles relatam quais teclas são pressionadas a qualquer momento, até um máximo de quatro, e indicam quando a combinação pressionada de teclas muda, mas elas não relatam eventos individuais como os teclados mais antigos fizeram.
Dependendo de como os jogos devem interagir com os teclados, os jogos podem estar procurando eventos de pressionamento de tecla ou de liberação de tecla que não correspondam a nada que os teclados USB geram.