3.7 KiB
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, orMOUSE:X2.WHEEL:UporWHEEL:Downfor pad buttons.
While a title has a mouse open (sceMouseOpen) and the window is focused, AnyPS5 hides and captures the host cursor, so the title's own cursor is the only one; the capture ends when the window loses focus or when the mouse-to-stick toggle (ToggleMouse) is on. Mouse movement reaches the title scaled from the window's presented image to the title's display resolution, so the title's cursor moves as far as the host cursor would.
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:
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 |
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.