-
Notifications
You must be signed in to change notification settings - Fork 6
Button and Axis Mappings
The Mappings tab is where you tell PadForge which physical input on your controller should control which virtual output. Every button, axis, trigger, and D-Pad direction can be mapped individually.

The mapping grid shows one row per virtual output. Each row has:
| Column | Description |
|---|---|
| Output | The virtual controller output (e.g., "A", "Left Stick X", "Right Trigger", "D-Pad Up") |
| Source | The physical input currently assigned (e.g., "Button 0", "Axis 1", "POV 0 Up"), or blank if unmapped |
| Value | The current live value of this mapping (useful for verifying inputs) |
| Record | Click to start recording -- then press a button or move an axis on your physical controller |
| Options | "Inv" (Invert) and "Half" (Half-axis) checkboxes for axis mappings |
| Clear | Remove the mapping from this row |
- Click the Record button on the row you want to map.
- The button changes to indicate recording mode.
- On your physical controller, press the button or move the axis you want to assign.
- PadForge auto-detects the input and fills in the source. Recording stops automatically.
PadForge detects:
- Buttons -- Any button press
- Axes -- Stick and trigger movements
- POV / D-Pad -- Directional pad inputs in all directions
Two modifier checkboxes appear in the Options column on axis mapping rows:
- Inv (Invert) -- Flips the axis direction. Useful when a physical axis reports values in the opposite direction from what the game expects.
- Half (Half-axis) -- Treats the axis as a half-range (0 to max) instead of full-range (-max to +max). Useful for mapping a trigger (which is half-axis) to a full stick axis, or vice versa.
The Map All button walks you through every mapping row one at a time:
- Click Map All.
- PadForge highlights the first row and starts recording.
- Press the corresponding button or move the corresponding axis on your controller.
- PadForge moves to the next row automatically.
- Repeat until all rows are done, or press Escape to stop early.
This is the fastest way to set up a controller from scratch.
When PadForge detects a recognized gamepad (such as an Xbox controller, DualSense, DualShock 4, or Switch Pro Controller), it can automatically create a default mapping that matches the standard gamepad layout:
- Axes: Left Stick X/Y, Left Trigger, Right Stick X/Y, Right Trigger
- Buttons: A, B, X, Y, LB, RB, Back, Start, LS, RS, Guide
Auto-mapping is applied when a device is first assigned to a slot and PadForge recognizes it as a standard gamepad. You can always modify or override any auto-mapped input afterward.
The toolbar above the mapping grid provides bulk operations:
| Button | Action |
|---|---|
| Clear All | Remove all mappings for the current device on this slot |
| Copy | Copy the current mapping configuration to the clipboard |
| Paste | Apply a previously copied mapping configuration |
| Copy From | Opens a dialog to copy mappings from another virtual controller slot or another device |
These are useful when you have multiple controllers of the same type and want to reuse the same mapping layout.
When a slot is set to DirectInput with the Custom preset, the mapping grid dynamically adjusts to match your configured layout:
- Sticks -- Rows for each stick's X and Y axes, based on ThumbstickCount (0-4 sticks, each using 2 of the 8 available axes)
- Triggers -- Rows for each trigger axis, based on TriggerCount (0-4 triggers, each using 1 of the 8 available axes)
- Buttons -- Rows for each button, based on ButtonCount (0-128 buttons)
- POVs -- Rows for each POV hat's four directions (Up, Right, Down, Left), based on PovCount (0-4 POVs)
Sticks and triggers share a pool of 8 axes total. For example, 2 sticks (4 axes) + 2 triggers (2 axes) = 6 axes used of 8 available.
If you change the DirectInput configuration (add more buttons, remove a stick, etc.), the mapping grid rebuilds automatically to reflect the new layout.
The Value column shows the live calibrated value of each mapping, accounting for dead zone, center offset, and max range settings. This helps verify mappings work correctly with your chosen configuration before entering a game.
When you record a mapping and toggle the Inv (Invert) checkbox, the inversion flag is synchronized atomically with the mapping descriptor, ensuring the display shows the correct state immediately.
Mappings are organized into categories for easy navigation:
- Buttons -- Face buttons, shoulder buttons, stick clicks, and system buttons
- Axes -- Thumbstick X/Y axes
- Triggers -- Left and right trigger axes
- D-Pad -- Directional pad (Up, Down, Left, Right)
- 3D and 2D Visualization -- Click-to-map from the controller model
- Stick Dead Zones -- Adjust response after mapping stick axes
- Trigger Dead Zones -- Adjust range after mapping triggers
- Devices -- Assign physical devices to slots before mapping