A working concept regarding how games and game environments should be controlled.
The Linux kernel defines a standardized gamepad that reflects modern game console controllers and many legacy controllers. The gamepad layout somewhat resembles the Classic Controller (2006) with renamed buttons and consideration for analog alternatives.
The emulator Mupen64Plus defines and standardizes a specific game console controller as well as how to map the controls of various joysticks and a computer keyboard to this standard.
DPad U = "W"
DPad L = "A"
DPad D = "S"
DPad R = "D"
Start = "Enter"
Z Trig = "Z"
L Trig = "X"
R Trig = "C"
A Button = "LShift"
B Button = "LCtrl"
C Button U = "I"
C Button L = "J"
C Button D = "K"
C Button R = "L"
Control Stick = "→", "←", "↓", "↑"
LibRetro defines a standard virtual game controller used to play a variety of emulated and original games. Keyboards and computer joysticks can map to this virtual gamepad in order to play any LibRetro game.
Similar to Mupen64, Xboxdrv by Ingo Runke represents game input with an Xbox controller to which many input devices can be mapped and standardized.
The original Xbox emulator Xemu implements a simple keyboard mapping to the original console's controller inputs.
DPad U = "↑"
DPad L = "←"
DPad D = "↓"
DPad R = "→"
Back = ⌫
Start = ↵
L Trig = "W"
R Trig = "O"
White Button = "1"
Black Button = "2"
A Button = "A"
B Button = "B"
X Button = "X"
Y Button = "Y"
Left Stick = "E", "S", "D", "F"
Right Stick = "I", "J", "K", "L"
There are many considerations for supporting a gaming keyboard.
` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | ⌫ | |||||||||||||||
↹ | A | Z | E | R | T | Y | U | I | O | P | [ | ] | \ | |||||||||||||||
⇪ | Q | S | D | F | G | H | J | K | L | ; | ' | ↵ | ||||||||||||||||
⇧ | W | X | C | V | B | N | M | , | . | / | ⇧ | |||||||||||||||||
LCtrl | LAlt | Space bar | RAlt | RCtrl |
WASD
Analog/motion control with modifiers. Mouse-only video game test cases:
ZL | ZR | |||||||||
CL | CR | |||||||||
DU | SU | AU | ||||||||
DL | DR | SL | SR | AL | AR | |||||
DD | AD | |||||||||
WL | WR |