Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
RishiRecon
GitHub Repository: RishiRecon/exploits
Path: blob/main/misc/emulator/xnes/snes9x/docs/control-inputs.txt
28798 views
1
Control input names are completely defined by the individual ports. This
2
document is intended to collect the rules for all ports.
3
4
The various meta-characters in the rules are:
5
# - A number. The range is detemined by the context
6
## - A two-digit number (i.e. with leading zeros)
7
[...] - Something optional
8
(...) - For grouping with |
9
| - "or", choose one of the options.
10
<...> - A named field
11
{...} - A list of possible values. Multiple values may be used, but they
12
must be in the order listed and joined with +-signs.
13
"" - 'ditto', used to indicate the same list as the above line.
14
15
================================================================================
16
Unix
17
================================================================================
18
19
Input names:
20
Jxx:Axis# Axis # on joystick xx. Axis0 may be
21
Up/Down, and Axis1 Left/Right.
22
Jxx:B# Button # on joystick xx.
23
24
Jxx:{M1,M2,M3,M4,M5,M6,M7,M8}+B# Used with the 'JSx Meta#' port
25
Jxx:{M1,M2,M3,M4,M5,M6,M7,M8}+Axis# command.
26
27
Jxx:X+B# Used to 'define' this key for all
28
Jxx:X+Axis# combinations of JS Meta.
29
30
Port-specific Commands:
31
JSx Meta# Used to specify modifier keys (i.e. Shift, Control) to
32
affect the specified joystick. For example, you could
33
map J00:B20 to "JS0 Meta1", then map J00:B0 to "Joypad1
34
A" and J00:M1+B0 to "Joypad1 Turbo A". '#' may range
35
from 1-8.
36
37
Jsx ToggleMeta# Like the above, but toggles the meta-state each time
38
the button is pressed.
39
40
================================================================================
41
Unix/X11
42
================================================================================
43
44
Keyboard Input:
45
46
Note that only one keyboard (K00) is currently supported. If you know how
47
to support multiple keyboards (and can test it!), feel free to fix x11.cpp
48
and delete this note.
49
50
Keyboard modifiers are S=Shift, C=Control, A=Alt, M=Meta. Combine them in
51
order, i.e. all 4 would be "SCAM".
52
53
Kxx:<keyname> Key names are as recognized by XStringToKeysym.
54
Kxx:<mods>+<keyname> Note however that keys are mapped by keycode,
55
so for example on a standard qwerty keyboard
56
"K00:colon" and "K00:semicolon" are identical.
57
58
Pointer Input:
59
60
Note that only one mouse (M00) is currently supported. If you know how to
61
support multiple pointing devices (and can test it!), feel free to fix
62
x11.cpp and delete this note.
63
64
Mxx:Pointer Map the mouse pointer. If someone has a mouse
65
Mxx:Pointer# device with multiple pointers, fix x11.cpp to
66
report that and you can use the second syntax.
67
68
Mxx:B# Mouse buttons.
69
70