47 lines
3.3 KiB
Markdown
47 lines
3.3 KiB
Markdown
# Controller, keyboard and mouse input
|
|
|
|
AnyPS5 accepts SDL-mapped game controllers as well as its built-in keyboard and mouse bindings. Xbox-style controllers and PlayStation controllers recognized by SDL use the standard PS button layout; sticks and analog triggers are passed through, and controllers can be connected or disconnected while the game is running. The first recognized controller is used. AnyPS5 uses its built-in keyboard and mouse bindings when no configuration file is present. To change selected keyboard and mouse bindings, create `anyps5-input.ini` beside the generated game executable. Set `ANYPS5_INPUT_CONFIG` to use a file at another path.
|
|
|
|
For an Xbox-layout controller, A/B/X/Y map to Cross/Circle/Square/Triangle, LB/RB map to L1/R1, and LT/RT map to analog L2/R2. Start maps to Options. D-pad and stick-click buttons are supported. On a PlayStation controller, the touchpad click button is forwarded; finger touch coordinates are not implemented.
|
|
|
|
Each non-empty line has the form `Action = Type:Value`. Action names are case-insensitive. A `#` or `;` starts a comment. The first line for an action replaces its built-in bindings; later lines for the same action add alternate inputs. Duplicate entries for the same action are ignored. Actions omitted from the file keep their built-in bindings. UTF-8 files with or without a byte-order mark are supported.
|
|
|
|
Supported input sources are:
|
|
|
|
- `KEY:Return`, `KEY:Space`, or another key name accepted by SDL.
|
|
- `MOUSE:Left`, `MOUSE:Middle`, `MOUSE:Right`, `MOUSE:X1`, or `MOUSE:X2`.
|
|
- `WHEEL:Up` or `WHEEL:Down` for pad buttons.
|
|
|
|
Game-controller bindings are enabled automatically and are not affected by keyboard or mouse overrides in this file.
|
|
|
|
Supported actions are `Cross`, `Circle`, `Triangle`, `Square`, `L1`, `R1`, `L2`, `R2`, `L3`, `R3`, `Options`, `Up`, `Right`, `Down`, `Left`, `LeftStickLeft`, `LeftStickRight`, `LeftStickUp`, `LeftStickDown`, `RightStickLeft`, `RightStickRight`, `RightStickUp`, `RightStickDown`, `TouchLeft`, `TouchRight`, `ToggleMouse`, and `ToggleFullscreen`.
|
|
|
|
For example, this changes Cross to F or Space, moves the left stick to IJKL, uses the mouse buttons for Square and R2, and keeps all other built-in bindings:
|
|
|
|
```ini
|
|
Cross = KEY:F
|
|
Cross = KEY:Space
|
|
LeftStickLeft = KEY:J
|
|
LeftStickRight = KEY:L
|
|
LeftStickUp = KEY:I
|
|
LeftStickDown = KEY:K
|
|
Square = MOUSE:Left
|
|
R2 = MOUSE:Right
|
|
ToggleMouse = MOUSE:Middle
|
|
```
|
|
|
|
The same file also accepts these settings, each at most once, in the form `Setting = Value`:
|
|
|
|
| Setting | Value | Default |
|
|
|---------|-------|---------|
|
|
| `LeftStickDeadzone`, `RightStickDeadzone` | Whole percentage from 0 to 90 of the controller stick's travel that reads as centered. Outside it the travel is rescaled, so the stick still reaches its full range. Keyboard and mouse stick bindings are not affected. | `0` |
|
|
| `MouseSensitivity` | Number greater than 0 and at most 10 that scales mouse movement on the right stick while the mouse is captured (`ToggleMouse`). | `1` |
|
|
|
|
```ini
|
|
LeftStickDeadzone = 12
|
|
RightStickDeadzone = 8
|
|
MouseSensitivity = 2.5
|
|
```
|
|
|
|
An invalid line reports the file and line number and stops input initialization. If the configured file does not exist or cannot be read, AnyPS5 reports an error. With no `anyps5-input.ini` and no `ANYPS5_INPUT_CONFIG`, the built-in mapping is used.
|