  The most commonly used interface between a video game and the human user is a
handheld "game controller", "game pad", or in some occasions an "arcade stick."
Directional pads, analog sticks and buttons - both digital and analog - are
linked to in-game actions. One or multiple simultaneous inputs may be necessary
to communicate the intentions of the user. Activating controls may be more or
less convenient depending on their position and size. In order to enable the
user to perform all inputs which are necessary during gameplay, it is thus
imperative to find a mapping between in-game actions and buttons, analog
sticks, and so on. We present simple formats for such mappings as well as for
the constraints on possible inputs which are either determined by a physical
game controller or required to be met for a game software, along with methods
to transform said constraints via a button-action mapping and to check one
constraint set against another, i.e., to check whether a button-action mapping
allows a controller to be used in conjunction with a game software, while
preserving all desired properties.
