🕹️ Emulate mouse and keyboard input with your gamepad in a quick, easy and highly customizable manner.
LT and RT) do not work..ini file and the application will be started automatically after launching the game.GamepadToKeyboard requires an Xinput controller (native or emulated via tools like DS4Windows, DualSenseX, x360ce, etc.).On|Off the program by clicking the 1st menu item. When Enabled, the program is automatically executed after launching the defined (activated) games.Gamelist.ini (with its name, id, source and/or platform). An assignment config (gameid.ini) for that game will be created.Edit game config.Gamelist.ini by clicking the 3rd menu item. Gamelist.ini contains the games for which GamepadToKeyboard will work. When a gameid is set to 1 the game is active; when set to 0 the game is not active and GamepadToKeyboard will not be launched.UseCustomIni = 1 (editing Gamelist.ini, or through the menu panel) and specifying the file in FileIni).Select custom ini file (all games).QuickIniProfile.ini you can edit a list of “favourite” configs that can be switched through Quick ini profiles (all games) item menu. The sub-menu is dynamically built: its size varies with the number of elements.GamepadToKeyboard.exe. Make sure that GamepadToKeyboard is disabled in Playnite, or that the target game is deactivated.Gamelist.ini and activates all of them.Shift+Ctrl+5 by default) to instantly reload the current .ini, without restarting the application.GamepadToKeyboard.config.
Values you can assign to the buttons:
A..Z, 0..9, F1..F12Enter, Space, Esc, Lalt, Lshift, Lctrl, LwinLBmouse, RBmouse, MBmouse, WheelUp, WheelDowndefault.ini example:
| Button | Keys | | Button | Keys | | Button | Keys | | Button | Keys |
|---|---|---|---|---|---|---|---|---|---|---|
A |
Enter | Back |
F1 | LSup |
W | Home |
Esc | |||
B |
Space | Start |
Esc | LSdown |
S | |||||
X |
Lshift | LS |
LShift | LSleft |
A | |||||
Y |
LCtrl | RS |
MBmouse | LSright |
D | |||||
LB |
Q | Dup |
Up | RSup |
||||||
RB |
E | Ddown |
Down | RSdown |
||||||
LT |
RBmouse | Dleft |
Left | RSleft |
||||||
RT |
LBmouse | Dright |
Right | RSright |
| Section | Option | Values / Description |
|---|---|---|
| Mouse | AnalogToMouse | 1/0 : Turn On/Off the mouse movement via analog sticks. |
| Stick | RS/LS : Analog to use. Button assignments ignored. |
|
| DeadzoneType | 1/2/4 : Both axis/ per axis/ per direction.* |
|
| (Stick)AxisInverted | 1/0 : Turn On/off axis inversion. |
|
| Sensitivity | value : Mouse movement speed. |
|
| Analogs | DeadzoneType | 1/2/4/8: Both sticks/ per stick/ per axis/ per direction.* |
| (Stick)AxisInverted | 1/0 : Turn On/off axis inversion. |
|
| Other | WheelAnalogvalues | 1/0 : Progressive/Digital values when wheel is assigned to stick. |
| SendKeysTypes | 1: default; 2: alternate; 3: desktop mode (keyboard-style delay and repeat).* |
GamepadTokeyboard.exe (or any associated flagged file) to your AV vendor asking for a false positive review request.If you enjoy GamepadToKeyboard, you can buy me a coffee. It will be very appreciated ;)
SPACE, ENTER, ALT, BACKSPACE, BS, DELETE, DEL, UP, DOWN, LEFT, RIGHT, HOME, END, ESCAPE, ESC, INSERT, INS, PGUP, PGDN, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, TAB, PRINTSCREEN, LWIN, RWIN, NUMLOCK on, CAPSLOCK off, SCROLLLOCK toggle, BREAK, PAUSE, NUMPAD0, NUMPAD1, NUMPAD2, NUMPAD3, NUMPAD4, NUMPAD5, NUMPAD6, NUMPAD7, NUMPAD8, NUMPAD9, NUMPADMULT, NUMPADADD, NUMPADSUB, NUMPADDIV, NUMPADDOT, NUMPADENTER, APPSKEY, LALT, RALT, LCTRL, RCTRL, LSHIFT, RSHIFT, SLEEP, ALTDOWN, ALTUP, SHIFTDOWN, SHIFTUP, CTRLDOWN, CTRLUP, LWINDOWN, LWINUP, RWINDOWN, RWINUP, ASC nnnn, BROWSER_BACK, BROWSER_FORWARD, BROWSER_REFRESH, BROWSER_STOP, BROWSER_SEARCH, BROWSER_FAVORITES, BROWSER_HOME, VOLUME_MUTE, VOLUME_DOWN, VOLUME_UP, MEDIA_NEXT, MEDIA_PREV, MEDIA_STOP, MEDIA_PLAY_PAUSE, LAUNCH_MAIL, LAUNCH_MEDIA, LAUNCH_APP1, LAUNCH_APP2, OEM_102
| Mouse | Deadzone |
XDeadzone YDeadzone |
XleftDeadzone XrightDeadzone YleftDeadzone YrightDeadzone |
|
| Analogs | Deadzone |
LSDeadzone RSDeadzone |
LSXDeadzone LSYDeadzone RSXDeadzone RSYDeadzone |
LSleftDeadzone LSrightDeadzone LSupDeadzone LSdownDeadzone RSleftDeadzone RSrightDeadzone RSupDeadzone RSdownDeadzone |
| Other | SendKeysTypes: |
1 Simple press (desktop single press, works well in games). |
2 Continuous press on desktop, same as type 1 in games. |
3 Desktop-like behavior (keyboard-style delay and repeat). Same as the previous types in games. |
4 Desktop-alt experimental (not recommended). In-game behavior as previous types. |
UseSameWheelSpeedLimiter: 1\|0 –> Use same value for WheelUp and WheelDown |
WheelSpeedLimiter: limit scroll speed |
WheelSpeedLimiterUp: WheelUp limiter |
WheelSpeedLimiterDown: WheelDown limiter |
| Mouse | SmoothFactor: |
How smooth the movement should be (1 = no smoothing, near 0 = very smooth, values below 0.1 may make the cursor too slow. 0 blocks the cursor, be cautious) |
This gamepad script was written in AutoIt.
The program makes use of a remodified version of the XInput UDF by Oxin8 (xoninx@gmail.com) to read Xinput states.