Path: blob/main/misc/emulator/xnes/snes9x/docs/control-inputs.txt
28798 views
Control input names are completely defined by the individual ports. This1document is intended to collect the rules for all ports.23The various meta-characters in the rules are:4# - A number. The range is detemined by the context5## - A two-digit number (i.e. with leading zeros)6[...] - Something optional7(...) - For grouping with |8| - "or", choose one of the options.9<...> - A named field10{...} - A list of possible values. Multiple values may be used, but they11must be in the order listed and joined with +-signs.12"" - 'ditto', used to indicate the same list as the above line.1314================================================================================15Unix16================================================================================1718Input names:19Jxx:Axis# Axis # on joystick xx. Axis0 may be20Up/Down, and Axis1 Left/Right.21Jxx:B# Button # on joystick xx.2223Jxx:{M1,M2,M3,M4,M5,M6,M7,M8}+B# Used with the 'JSx Meta#' port24Jxx:{M1,M2,M3,M4,M5,M6,M7,M8}+Axis# command.2526Jxx:X+B# Used to 'define' this key for all27Jxx:X+Axis# combinations of JS Meta.2829Port-specific Commands:30JSx Meta# Used to specify modifier keys (i.e. Shift, Control) to31affect the specified joystick. For example, you could32map J00:B20 to "JS0 Meta1", then map J00:B0 to "Joypad133A" and J00:M1+B0 to "Joypad1 Turbo A". '#' may range34from 1-8.3536Jsx ToggleMeta# Like the above, but toggles the meta-state each time37the button is pressed.3839================================================================================40Unix/X1141================================================================================4243Keyboard Input:4445Note that only one keyboard (K00) is currently supported. If you know how46to support multiple keyboards (and can test it!), feel free to fix x11.cpp47and delete this note.4849Keyboard modifiers are S=Shift, C=Control, A=Alt, M=Meta. Combine them in50order, i.e. all 4 would be "SCAM".5152Kxx:<keyname> Key names are as recognized by XStringToKeysym.53Kxx:<mods>+<keyname> Note however that keys are mapped by keycode,54so for example on a standard qwerty keyboard55"K00:colon" and "K00:semicolon" are identical.5657Pointer Input:5859Note that only one mouse (M00) is currently supported. If you know how to60support multiple pointing devices (and can test it!), feel free to fix61x11.cpp and delete this note.6263Mxx:Pointer Map the mouse pointer. If someone has a mouse64Mxx:Pointer# device with multiple pointers, fix x11.cpp to65report that and you can use the second syntax.6667Mxx:B# Mouse buttons.686970