@nearcade/virtual-gamepad 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +128 -0
- package/config/game_profiles.csv +339 -0
- package/config/kbm_bindings.json +50 -0
- package/index.js +10 -0
- package/lib/InputOrchestrator.js +829 -0
- package/native/binding.gyp +18 -0
- package/native/build/Release/uinputBridge.node +0 -0
- package/native/uinputBridge.cpp +613 -0
- package/package.json +56 -0
- package/python/__init__.py +1 -0
- package/python/linux_uinput.py +697 -0
- package/python/mac_gamepad_bridge.py +532 -0
- package/python/read_gamepads.py +291 -0
- package/python/windows_hidmaestro.py +394 -0
- package/python/windows_vigem.py +544 -0
- package/windows/HmBridge/HmBridge.csproj +14 -0
- package/windows/HmBridge/HmBridge.exe +0 -0
- package/windows/HmBridge/Program.cs +164 -0
package/README.md
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# @nearcade/virtual-gamepad
|
|
2
|
+
|
|
3
|
+
Cross-platform virtual gamepad injection for Node.js. Create virtual controller devices that games and applications recognize as real hardware.
|
|
4
|
+
|
|
5
|
+
## Platform Support
|
|
6
|
+
|
|
7
|
+
| Platform | Backend | Input Path |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| Linux | uinput (C++ addon, primary) + python-uinput (fallback) | Kernel evdev |
|
|
10
|
+
| Windows | ViGEmBus (kernel driver) or HIDMaestro (WinRT) | Kernel driver |
|
|
11
|
+
| macOS | pynput/pyautogui (KBM only, no gamepad injection) | Accessibility API |
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
npm install @nearcade/virtual-gamepad
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
On Linux, the C++ native addon requires `node-gyp` and kernel headers. Install build dependencies:
|
|
20
|
+
|
|
21
|
+
```sh
|
|
22
|
+
sudo apt install build-essential linux-headers-$(uname -r) python3-uinput
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Quick Start
|
|
26
|
+
|
|
27
|
+
```js
|
|
28
|
+
const gp = require('@nearcade/virtual-gamepad');
|
|
29
|
+
|
|
30
|
+
// Initialize (returns true if at least one backend started)
|
|
31
|
+
gp.init(1920, 1080);
|
|
32
|
+
|
|
33
|
+
// Send gamepad state
|
|
34
|
+
gp.send({
|
|
35
|
+
type: 'gamepad',
|
|
36
|
+
viewer_id: 'player1',
|
|
37
|
+
pad_id: 0,
|
|
38
|
+
buttons: 0x0001, // A button
|
|
39
|
+
lx: 32767, ly: 0,
|
|
40
|
+
rx: 0, ry: 0,
|
|
41
|
+
lt: 0, rt: 255
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Send keyboard/mouse input
|
|
45
|
+
gp.send({
|
|
46
|
+
type: 'kbm',
|
|
47
|
+
keys: [{ key: 'KEY_W', pressed: true }],
|
|
48
|
+
mouse: { dx: 10, dy: -5, buttons: [] }
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// Send binary gamepad packet (14-byte format)
|
|
52
|
+
const buf = new Uint8Array(14);
|
|
53
|
+
// ... pack your packet ...
|
|
54
|
+
gp.sendBinary('player1', buf);
|
|
55
|
+
|
|
56
|
+
// Clean up
|
|
57
|
+
gp.destroy();
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## API
|
|
61
|
+
|
|
62
|
+
### `init(screenWidth, screenHeight)`
|
|
63
|
+
Initializes the backend. Returns `true` if successful. On Linux, tries the C++ uinput addon first, falls back to Python uinput. On Windows, tries ViGEmBus then HIDMaestro.
|
|
64
|
+
|
|
65
|
+
### `send(msg)`
|
|
66
|
+
Send an input message. Supported types:
|
|
67
|
+
- `gamepad` — controller state (axes, buttons, triggers, dpad)
|
|
68
|
+
- `kbm` / `keyboard` — keyboard and mouse events
|
|
69
|
+
|
|
70
|
+
### `sendBinary(viewerId, buf)`
|
|
71
|
+
Send a pre-packed binary gamepad packet (14-byte format). Skips JSON serialization overhead.
|
|
72
|
+
|
|
73
|
+
### `destroy()`
|
|
74
|
+
Release all virtual devices and kill backend processes.
|
|
75
|
+
|
|
76
|
+
### Events
|
|
77
|
+
|
|
78
|
+
```js
|
|
79
|
+
const gp = require('@nearcade/virtual-gamepad');
|
|
80
|
+
|
|
81
|
+
gp.events.on('input-error', ({ message, code }) => {
|
|
82
|
+
console.error('Backend error:', message);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
gp.events.on('input-ready', ({ message }) => {
|
|
86
|
+
console.log('Backend ready:', message);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
gp.events.on('rumble', ({ viewerId, strong, weak, duration }) => {
|
|
90
|
+
// Forward rumble to the actual physical controller
|
|
91
|
+
});
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Per-Platform Backend Selection
|
|
95
|
+
|
|
96
|
+
The package auto-detects the OS and loads the appropriate backend. You can also require a specific backend directly:
|
|
97
|
+
|
|
98
|
+
```js
|
|
99
|
+
// Linux only (no auto-detect overhead)
|
|
100
|
+
const gp = require('@nearcade/virtual-gamepad');
|
|
101
|
+
|
|
102
|
+
// Force a specific backend at init:
|
|
103
|
+
// On Linux: uinput (C++) or linux_uinput (Python)
|
|
104
|
+
// On Windows: vigembus or hidmaestro
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Config
|
|
108
|
+
|
|
109
|
+
Optional configuration files:
|
|
110
|
+
|
|
111
|
+
- `config/game_profiles.csv` — per-game KBM-to-gamepad mappings
|
|
112
|
+
- `config/kbm_bindings.json` — fallback keyboard bindings
|
|
113
|
+
|
|
114
|
+
Place these in your project root or in a `config/` directory relative to the package.
|
|
115
|
+
|
|
116
|
+
## Build
|
|
117
|
+
|
|
118
|
+
The native Linux addon is pre-built for common targets. To rebuild:
|
|
119
|
+
|
|
120
|
+
```sh
|
|
121
|
+
npm run rebuild
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Requires: `node-gyp`, `node-addon-api`, Linux kernel headers.
|
|
125
|
+
|
|
126
|
+
## License
|
|
127
|
+
|
|
128
|
+
MIT
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
# Nearcade — Master Emulated Layout Mapping Sheet
|
|
2
|
+
# Format: window_title_fragment, KEY_W, KEY_A, KEY_S, KEY_D, KEY_SPACE, KEY_J, KEY_K, KEY_L, KEY_U, KEY_I, KEY_O, KEY_P, KEY_M, KEY_N, KEY_ENTER, KEY_TAB
|
|
3
|
+
|
|
4
|
+
# ── Fighting Games (Blank direction positions, ends with menus) ───────────────
|
|
5
|
+
Tekken,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
6
|
+
Street Fighter,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
7
|
+
Mortal Kombat,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
8
|
+
Guilty Gear,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
9
|
+
Dragon Ball FighterZ,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
10
|
+
King of Fighters,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
11
|
+
Blazblue,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
12
|
+
Under Night,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
13
|
+
Granblue Fantasy Versus,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
14
|
+
Melty Blood,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
15
|
+
Sonic the Fighters,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
16
|
+
Power Rangers,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
17
|
+
MultiVersus,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
18
|
+
Skullgirls,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
19
|
+
Injustice,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
20
|
+
Soulcalibur,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
21
|
+
Dead or Alive,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
22
|
+
Virtua Fighter,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
23
|
+
Samurai Shodown,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
24
|
+
Marvel vs Capcom,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
25
|
+
Brawlhalla,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
26
|
+
Killer Instinct,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
27
|
+
Rivals of Aether,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
28
|
+
Divekick,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
29
|
+
Pokken,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
30
|
+
|
|
31
|
+
# ── Shooters (Full axes, custom bumper/trigger assignments) ─────────────────
|
|
32
|
+
Halo,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
33
|
+
Borderlands,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
34
|
+
Deep Rock Galactic,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
35
|
+
Left 4 Dead,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
36
|
+
Back 4 Blood,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
37
|
+
Remnant,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
38
|
+
Outriders,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
39
|
+
Quake,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
40
|
+
Doom,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
41
|
+
Wolfenstein,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
42
|
+
Half-Life,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
43
|
+
Portal,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
44
|
+
Team Fortress 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
45
|
+
Counter-Strike,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
46
|
+
Valorant,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
47
|
+
Overwatch,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
48
|
+
Apex Legends,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
49
|
+
Call of Duty,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
50
|
+
Battlefield,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
51
|
+
Titanfall,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
52
|
+
Warframe,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
53
|
+
Destiny,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
54
|
+
Rage,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
55
|
+
Metro,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
56
|
+
Far Cry,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
57
|
+
Crysis,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
58
|
+
Prey,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
59
|
+
Bioshock,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
60
|
+
Fallout,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
61
|
+
Payday,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
62
|
+
Killing Floor,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
63
|
+
Serious Sam,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
64
|
+
Duke Nukem,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
65
|
+
Unreal Tournament,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
66
|
+
Gears of War,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
67
|
+
Sniper Elite,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
68
|
+
Arma,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
69
|
+
Squad,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
70
|
+
Insurgency,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
71
|
+
Left 4 Dead 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
72
|
+
|
|
73
|
+
# ── Action-Adventure & Platformers (Full layout mappings) ───────────────────
|
|
74
|
+
Sonic,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
75
|
+
Crash,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
76
|
+
Rayman,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
77
|
+
Shovel Knight,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
78
|
+
Hollow Knight,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
79
|
+
Celeste,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
80
|
+
A Hat in Time,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
81
|
+
Super Meat Boy,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
82
|
+
Ori,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
83
|
+
Cuphead,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
84
|
+
Spyro,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
85
|
+
Ratchet,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
86
|
+
Jak and Daxter,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
87
|
+
Sly Cooper,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
88
|
+
Psychonauts,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
89
|
+
Oddworld,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
90
|
+
Castlevania,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
91
|
+
Metroid,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
92
|
+
Dead Cells,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
93
|
+
Rogue Legacy,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
94
|
+
Guacamelee,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
95
|
+
Bloodstained,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
96
|
+
Blasphemous,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
97
|
+
Souldiers,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
98
|
+
Tunic,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
99
|
+
Deaths Door,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
100
|
+
Okami,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
101
|
+
Beyond Good and Evil,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
102
|
+
Tomb Raider,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
103
|
+
Uncharted,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
104
|
+
|
|
105
|
+
# ── Co-op & Party Classics (Full axis and direct actions) ───────────────────
|
|
106
|
+
Overcooked,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
107
|
+
Moving Out,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
108
|
+
It Takes Two,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
109
|
+
Lovers in a Dangerous Spacetime,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
110
|
+
Unravel Two,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
111
|
+
Trine,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
112
|
+
Castle Crashers,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
113
|
+
Full Metal Furies,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
114
|
+
Toejam,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
115
|
+
Streets of Rage,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
116
|
+
River City,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
117
|
+
TMNT,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
118
|
+
Scott Pilgrim,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
119
|
+
Battletoads,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
120
|
+
Gang Beasts,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
121
|
+
Pummel Party,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
122
|
+
Among Us,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
123
|
+
Fall Guys,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
124
|
+
Ultimate Chicken Horse,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
125
|
+
Stick Fight,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
126
|
+
Nidhogg,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
127
|
+
TowerFall,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
128
|
+
SpeedRunners,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
129
|
+
Broforce,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
130
|
+
Enter the Gungeon,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
131
|
+
Binding of Isaac,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
132
|
+
Crypt of the NecroDancer,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
133
|
+
Spelunky,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
134
|
+
Spelunky 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
135
|
+
Lethal League,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
136
|
+
|
|
137
|
+
# ── Racing (Full directions, active mapping for triggers) ───────────────────
|
|
138
|
+
Forza,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
139
|
+
Need for Speed,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
140
|
+
Wreckfest,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
141
|
+
Dirt,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
142
|
+
F1,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
143
|
+
Project CARS,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
144
|
+
Assetto Corsa,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
145
|
+
Grid,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
146
|
+
Burnout,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
147
|
+
Trackmania,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
148
|
+
The Crew,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
149
|
+
Ridge Racer,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
150
|
+
OutRun,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
151
|
+
FlatOut,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
152
|
+
Midnight Club,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
153
|
+
Sonic Racing,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
154
|
+
Crash Team Racing,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
155
|
+
Hot Wheels,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
156
|
+
MotoGP,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
157
|
+
Micro Machines,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
158
|
+
|
|
159
|
+
# ── RPGs & Strategy (Complex button parameters + full systems) ───────────────
|
|
160
|
+
Divinity,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
161
|
+
Baldur's Gate,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
162
|
+
Monster Hunter,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
163
|
+
Dark Souls,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
164
|
+
Elden Ring,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
165
|
+
Final Fantasy,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
166
|
+
Tales of,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
167
|
+
Persona,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
168
|
+
Disgaea,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
169
|
+
Yakuza,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
170
|
+
Kingdom Hearts,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
171
|
+
Nier,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
172
|
+
Skyrim,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
173
|
+
Witcher,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
174
|
+
Dragon Age,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
175
|
+
Mass Effect,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
176
|
+
Star Wars,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
177
|
+
Diablo,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
178
|
+
Path of Exile,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
179
|
+
Torchlight,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
180
|
+
Grim Dawn,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
181
|
+
Stardew Valley,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
182
|
+
Terraria,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
183
|
+
Starbound,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
184
|
+
Minecraft,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
185
|
+
Civilization,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
186
|
+
XCOM,ABS_Y_UP,ABS_X_LEFT,iPad_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
187
|
+
Stellaris,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
188
|
+
Crusader Kings,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
189
|
+
Age of Empires,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
190
|
+
|
|
191
|
+
# ── Emulators & Frontends (Unified mapping profiles) ───────────────────────
|
|
192
|
+
Ryujinx,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
193
|
+
yuzu,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
194
|
+
Eden,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
195
|
+
Ryubang,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
196
|
+
Ryujinx-Avalonia,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
197
|
+
Dolphin,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
198
|
+
PCSX2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
199
|
+
RPCS3,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
200
|
+
PPSSPP,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
201
|
+
DuckStation,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
202
|
+
RetroArch,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
203
|
+
mame,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
204
|
+
mame64,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
205
|
+
Final Burn,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
206
|
+
FBNeo,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
207
|
+
Steam,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
208
|
+
default,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
209
|
+
Citra,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
210
|
+
Cemu,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
211
|
+
Vita3K,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
212
|
+
Xenia,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
213
|
+
MelonDS,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
214
|
+
mgba,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
215
|
+
|
|
216
|
+
# ── Arcade Classics & Sports (Full axes, precise action bindings) ───────────
|
|
217
|
+
Pac-Man,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
218
|
+
Tetris,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
219
|
+
Space Invaders,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
220
|
+
Galaga,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
221
|
+
Dig Dug,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
222
|
+
Frogger,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
223
|
+
Donkey Kong,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
224
|
+
Double Dragon,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
225
|
+
Golden Axe,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
226
|
+
Final Fight,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
227
|
+
Gauntlet,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
228
|
+
Rampage,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
229
|
+
Paperboy,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
230
|
+
Marble Madness,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
231
|
+
Joust,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
232
|
+
Qbert,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
233
|
+
Asteroids,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
234
|
+
Centipede,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
235
|
+
Missile Command,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
236
|
+
Track and Field,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
237
|
+
FIFA,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
238
|
+
PES,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
239
|
+
NBA 2K,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
240
|
+
Madden,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
241
|
+
WWE 2K,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
242
|
+
Tony Hawk,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
243
|
+
Skate,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
244
|
+
Rocket League,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
245
|
+
Golf,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
246
|
+
Tennis,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
247
|
+
|
|
248
|
+
# ── Rogue-likes & Indie Arena (Positional keys perfectly arrayed) ───────────
|
|
249
|
+
Dead Cells,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
250
|
+
Hades,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
251
|
+
Vampire Survivors,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
252
|
+
Risk of Rain,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
253
|
+
Risk of Rain 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
254
|
+
Slay the Spire,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
255
|
+
Monster Train,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
256
|
+
Inscryption,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
257
|
+
Loop Hero,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
258
|
+
Noita,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
259
|
+
Spelunky Classic,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
260
|
+
Caveblazers,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
261
|
+
Hammerwatch,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
262
|
+
Heroes of Hammerwatch,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
263
|
+
Children of Morta,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
264
|
+
Nine Parchments,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
265
|
+
Wizard of Legend,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
266
|
+
Moon Hunters,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
267
|
+
For the King,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
268
|
+
For the King 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
269
|
+
Cult of the Lamb,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
270
|
+
Gunfire Reborn,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
271
|
+
Roboquest,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
272
|
+
Neon Abyss,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
273
|
+
Skul,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
274
|
+
ScourgeBringer,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
275
|
+
Brotato,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
276
|
+
20 Minutes Till Dawn,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
277
|
+
Streets of Rogue,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
278
|
+
ASTRONEER,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
279
|
+
# ── Additional Fighting Games (Blank direction positions, ends with menus) ────
|
|
280
|
+
JoJo's Bizarre Adventure: All-Star Battle R,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
281
|
+
Street Fighter III: 3rd Strike,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
282
|
+
Garou: Mark of the Wolves,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
283
|
+
The Last Blade 2,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
284
|
+
Samurai Shodown V Special,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
285
|
+
Capcom vs. SNK 2,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
286
|
+
Bloody Roar 2,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
287
|
+
Project Justice,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
288
|
+
Primal Rage,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
289
|
+
ClayFighter,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
290
|
+
|
|
291
|
+
# ── Additional Shooters (Full directional axes, triggers, and bumpers) ───────
|
|
292
|
+
Left 4 Dead 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
293
|
+
Killing Floor 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
294
|
+
Payday 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
295
|
+
Warhammer: Vermintide 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
296
|
+
Serious Sam 3,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
297
|
+
Shadow Warrior,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
298
|
+
Bulletstorm,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
299
|
+
S.T.A.L.K.E.R.,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
300
|
+
F.E.A.R.,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
301
|
+
BioShock Infinite,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,BTN_TL2,BTN_TR2,BTN_START,BTN_SELECT
|
|
302
|
+
|
|
303
|
+
# ── Additional Arcade & Beat 'em Ups (Full directions, custom mapping) ────────
|
|
304
|
+
Alien vs. Predator,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
305
|
+
Cadillacs and Dinosaurs,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
306
|
+
The Punisher,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
307
|
+
Captain Commando,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
308
|
+
Knights of the Round,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
309
|
+
The King of Dragons,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
310
|
+
Armored Warriors,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
311
|
+
Sengoku 3,,,,,,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
312
|
+
Shock Troopers,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,,,,,,,,,
|
|
313
|
+
Metal Slug 3,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,,,,,,,,,
|
|
314
|
+
|
|
315
|
+
# ── Additional Action-Adventure & RPGs (Comprehensive layout mappings) ───────
|
|
316
|
+
Dragon's Dogma,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
317
|
+
Monster Hunter Rise,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
318
|
+
Nioh 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
319
|
+
Code Vein,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
320
|
+
The Surge 2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
321
|
+
Lords of the Fallen,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
322
|
+
Salt and Sanctuary,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
323
|
+
Hyper Light Drifter,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
324
|
+
Bastion,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
325
|
+
Transistor,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
326
|
+
Scott Pilgrim vs. The World,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
327
|
+
Scott Pilgrim ex,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
Reanimal,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
331
|
+
LittleNightmares3,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
332
|
+
Directive8020,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
333
|
+
LittleNightmares2,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
334
|
+
TheDarkPictures-ManOfMedan,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
335
|
+
TheDarkPictures-LittleHope,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
336
|
+
TheDarkPictures-HouseOfAshes,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
337
|
+
TheDarkPictures-TheDevilInMe,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
338
|
+
TheQuarry,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
339
|
+
UntilDawn,ABS_Y_UP,ABS_X_LEFT,ABS_Y_DOWN,ABS_X_RIGHT,BTN_SOUTH,BTN_WEST,BTN_NORTH,BTN_EAST,BTN_TL,BTN_TR,,,,,,BTN_START,BTN_SELECT
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"buttons": {
|
|
3
|
+
"KEY_SPACE": "BTN_A",
|
|
4
|
+
"KEY_L": "BTN_B",
|
|
5
|
+
"KEY_J": "BTN_X",
|
|
6
|
+
"KEY_K": "BTN_Y",
|
|
7
|
+
"KEY_U": "BTN_TL",
|
|
8
|
+
"KEY_I": "BTN_TR",
|
|
9
|
+
"KEY_TAB": "BTN_SELECT",
|
|
10
|
+
"KEY_ENTER": "BTN_START"
|
|
11
|
+
},
|
|
12
|
+
"left_stick": {
|
|
13
|
+
"KEY_W": {
|
|
14
|
+
"axis": "ABS_Y",
|
|
15
|
+
"val": -32767
|
|
16
|
+
},
|
|
17
|
+
"KEY_S": {
|
|
18
|
+
"axis": "ABS_Y",
|
|
19
|
+
"val": 32767
|
|
20
|
+
},
|
|
21
|
+
"KEY_A": {
|
|
22
|
+
"axis": "ABS_X",
|
|
23
|
+
"val": -32767
|
|
24
|
+
},
|
|
25
|
+
"KEY_D": {
|
|
26
|
+
"axis": "ABS_X",
|
|
27
|
+
"val": 32767
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
"dpad": {
|
|
31
|
+
"KEY_UP": {
|
|
32
|
+
"axis": "ABS_HAT0Y",
|
|
33
|
+
"val": -1
|
|
34
|
+
},
|
|
35
|
+
"KEY_DOWN": {
|
|
36
|
+
"axis": "ABS_HAT0Y",
|
|
37
|
+
"val": 1
|
|
38
|
+
},
|
|
39
|
+
"KEY_LEFT": {
|
|
40
|
+
"axis": "ABS_HAT0X",
|
|
41
|
+
"val": -1
|
|
42
|
+
},
|
|
43
|
+
"KEY_RIGHT": {
|
|
44
|
+
"axis": "ABS_HAT0X",
|
|
45
|
+
"val": 1
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"right_stick_mouse": true,
|
|
49
|
+
"right_stick_multiplier": 1500
|
|
50
|
+
}
|
package/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Platform auto-detection
|
|
2
|
+
const os = require('os');
|
|
3
|
+
const platform = os.platform();
|
|
4
|
+
|
|
5
|
+
// Export the unified orchestrator API
|
|
6
|
+
const orchestrator = require('./lib/InputOrchestrator');
|
|
7
|
+
module.exports = orchestrator;
|
|
8
|
+
|
|
9
|
+
// Convenience: log which backend is active
|
|
10
|
+
console.log(`[virtual-gamepad] Loading for ${platform}`);
|