When you think about the primary interface between a human and a computer, a keyboard is probably the first thing that comes to mind. A mouse, game controller, or speech recognition can help with plenty of tasks but nothing matches the accuracy of a keyboard for recording your thoughts into a computer. Elon Musk’s Neuralink appears set to create a functional brain-to-computer interface but, to put it mildly, the implications of surgical probe insertion limit the potential audience considerably. Since that shortcut is out of consideration for most of us and stenography is limited in scope, the better option is to improve the efficiency of the keyboard designs we already have, which is where n-key rollover comes into play.
What is NKRO?
Simply put, n-key rollover (or NKRO) is the term used to describe how many keys can be pressed simultaneously. The “n” used in the term is a mathematical symbol used to define “natural numbers”, which are positive integers from 1 to infinity. If you have a 6-key rollover keyboard, you can press 6 keys at the same time, if you have a full n-key rollover keyboard, you can press all of the keys at the same time. Mechanical keyboards are famous for having n-key rollover, vs membrane keyboards which don’t due to limitations in the way they are manufactured. Das Keyboard has always sold keyboards with NKRO which is part of their popularity with typists and gamers.
How many fingers am I holding (down)?
Every normal keyboard method involves pressing and releasing a button, but there are a wide variety of ways that can happen. If you think of your common mobile phone soft keyboard on a capacitive touchscreen display, you’re likely using two thumbs to press and release one letter or function at a time. If you’re quick you might find that your left thumb is coming off of pressing one letter while your right thumb has already started pressing the next. This is the simplest example of a common situation every keyboard needs to contend with – humans often press more than one key at once even in non-gaming contexts. Your phone will probably max out at two simultaneous presses given you’re likely using your thumbs, but with 10 fingers on a full keyboard things get a lot more interesting… and a lot more broken.
On a typical keyboard, various shortcuts are used to cut down manufacturing costs. One of these cost-cutting measures involves using a matrix technique also found on pinball machines where the switches for each key are connected with a grid of intersecting wires logically arranged in rows and columns. In this design, the matrix controller constantly “scans” the columns of wires for any presses, then when one is detected scans the rows and identifies where that row and column intersect to map which key has been pressed. One limitation of this technique is that pressing multiple keys can result in ghosting or phantom presses. Simultaneously pressing the letters “the” might cause an unexpected j to be received as well, which is undesirable. To combat the issue while still keeping costs down, keyboard manufacturers add diodes and additional matrix circuitry to prevent ghosting by jamming any further input from being registered, typically after three keys are pressed simultaneously. The result is your typical keyboard is only moderately better than your thumbs, although you’re likely to notice it less due to the preferential treatment is given to commonly held down keys such as Ctrl and Shift.
How many fingers do I really need to be holding down right now?
You might be asking why any of this matters, and in reality, it often won’t. In normal typing circumstances it might not be noticeable; if you’re a fast typist hitting a burst and a keypress is dropped due to jamming you might assume that you made a typo. There are also some contexts where you really do need to hold down unusual button combinations simultaneously. Some are niche needs, such as braille input that might require up to 6 keys at once. Others are gaming-focused and come up more often for southpaws such as myself that don’t use WASD controls. With that said, the best example I can come up with is the world of Tool-Assisted Speedrun creation.
What is Tool-Assisted Speedrun creation?
A speedrun is a human completing a video game as fast as possible. A Tool-Assisted Speedrun, or TAS, is a speedrun without human limitations. As you’ll see below, making a TAS is a keyboard-heavy process where the need for NKRO becomes apparent.
Running right for great justice is harder if you can’t jump
Video game console emulators often map Up, Down, Left, and Right to WASD but the other buttons are often less defined. Perhaps you plan to make room for a friend on the right and set the A and B buttons to the C and V keys. You’ll quickly discover this arrangement has a problem – on many keyboards, you can move Mario right (the D key), and you can make him run (the C key), but the moment you try to jump over the first Goomba (the V key) you’ll discover your keyboard has decided to ignore you. You’re probably going to die and might decide not to run right for great justice after all.
You can remap keys to work around most jamming problems, but things are going to get a lot harder when you try to do a two-player game or if you need more simultaneous button presses for more glitchy reasons such as making a TAS. If you put a video game in an emulator, you can control every aspect of the game and console. You can create a savestate and restore it later, or you can create a movie file of every button press in order so you can rewatch your progress. Taking it a step further, you can map a key to pause the game and advance one frame at a time every time you tap it, resulting in an interesting phenomenon best described as chorded keyboarding.
Chords on a keyboard, but not the musical kind
A stenotype or chorded keyboard typically uses combinations of keys held down simultaneously to create characters or words depending on the design. Many designs work by holding down a series of keys and releasing them all to produce a result. In creating a TAS you’re using a similar process that involves pressing the frame advance key. Let’s assume the game is paused and you’re preparing to have Mario run and jump over the first Goomba which means you’ll need to hold down three keys simultaneously for right, run, and jump. While holding those three keys down you’ll tap and release the key you’ve mapped to frame advance after which you’ll see the result.
You can keep tapping frame advance while adjusting whether you’re holding right or continuing to jump until you’re satisfied and make a savestate or go back with a load state and try again. The result is a kind of keyboard dance where you’re alternating between chords of keys, tapping the game forward one frame at a time. With careful mapping, you can successfully create a TAS on a normal keyboard, but some glitches require holding down a lot of keys at once. Sooner or later you’re going to encounter a situation you can’t remap your way out of without NKRO.
Ask yourself if NKRO is for you
Fortunately, you’ll be able to tell fairly quickly if NKRO will matter to you without having to consult an expert (or a doctor, for that matter). Want to play a two-player fighting game on a single keyboard? No problem. You’re an exceptionally fast typist that notices high bursts sometimes lose button presses? Fixed. You’re extremely efficient at typing important budget numbers into a spreadsheet and you can’t risk being off a digit due to lost input? NKRO has you covered. Most people looking to pick up a new keyboard are likely to be more concerned with physical form, but it’s worth considering if it has NKRO support.
* This guest post has been provided by Allan Cecil, better known as dwangoAC, keeper of TASBot. He is President of the North Bay Linux Users’ Group, a senior staff member of TASVideos.org, and a mechanical keyboard enthusiast.