Skip to content

Button and Axis Mappings

hifihedgehog edited this page Mar 19, 2026 · 33 revisions

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.

Mappings


The Mapping Grid

The mapping grid shows one row per virtual output. Each row has these columns:

Column Description
Output The virtual controller output this row controls (for example, "A", "Left Stick X", "Right Trigger", "D-Pad Up"). This is what the game sees.
Source A dropdown showing all available physical inputs from the currently selected device. You can pick an input manually from this list, or use the Record button to auto-detect it (see below).
Value The current live value of this mapping -- updated in real time so you can verify it is working before opening a game.
Record Click to enter recording mode -- then press a button or move an axis on your physical controller and PadForge fills in the Source automatically.
Clear Removes the mapping from this row, leaving the output unmapped.
Options "Inv" (Invert) and "Half" (Half-axis) checkboxes for axis mappings. See the Modifiers section below.

The Source Dropdown

The Source column is a dropdown that lists every physical input available on the currently selected device. This is the manual alternative to recording -- instead of pressing a button on your controller, you simply pick the input from the list.

What the dropdown shows

  • For recognized gamepads (Xbox controllers, DualSense, DualShock 4, Switch Pro, etc.), the dropdown shows friendly names: "A", "B", "X", "Y", "Left Stick X", "Right Trigger", and so on.
  • For raw/unrecognized devices (generic joysticks, racing wheels, flight sticks, devices in Force Raw mode), the dropdown shows numbered names: "Button 0", "Button 1", "Axis 0", "Axis 1", "POV 0 Up", etc.

When you select an input from the dropdown, PadForge immediately assigns it as the source for that row -- the same result as if you had recorded it.

The dropdown also includes a blank entry at the top. Selecting it clears the mapping, same as clicking the Clear button.

When to use the dropdown vs. recording

  • Use the dropdown when you already know which input you want (for example, you want "Axis 3" specifically), when recording is not detecting the input you want, or when you want to map an input that is hard to isolate physically (like mapping a specific D-Pad direction without accidentally triggering an adjacent one).
  • Use recording when you are setting up a controller for the first time and want the fastest workflow -- just press each button in turn.

Recording a Mapping

Recording is the fastest way to assign a physical input to a virtual output:

  1. Click the Record button on the row you want to map.
  2. The button text changes to "Recording..." and the row pulses with a blue highlight to show it is listening.
  3. On your physical controller, press the button or move the axis you want to assign.
  4. PadForge detects the input, fills in the Source column, and stops recording automatically.

What PadForge detects during recording

  • Buttons -- Any button press. PadForge registers the first button that transitions from released to pressed.
  • Axes -- Stick and trigger movements. PadForge waits for an axis to move past a detection threshold from its resting position.
  • POV / D-Pad -- Directional pad inputs. PadForge detects all four cardinal directions and diagonals.
  • Mouse axes -- Mouse movement (X and Y) is detected instantly when recording -- just move the mouse in the desired direction. Unlike stick axes, no sustained hold is required because mouse movement is instantaneous by nature.

Tips for clean recording

  • Move only the input you want to map. If you wiggle a stick while pressing a button, PadForge might pick up the stick instead.
  • For stick axes, push the stick firmly in one direction. A gentle nudge may not cross the detection threshold.
  • For triggers, pull the trigger far enough for PadForge to distinguish it from drift.

Map All Wizard

The Map All button walks you through every mapping row one at a time, in sequence. It is the fastest way to set up a controller from scratch:

  1. Click Map All. It appears both on the Controller tab (below the 3D model) and on the Mappings tab toolbar.
  2. PadForge highlights the first unmapped row and begins recording.
  3. A blue prompt text appears telling you which output it is waiting for (for example, "Press A").
  4. Press the corresponding button or move the corresponding axis on your controller.
  5. PadForge captures the input, assigns it, and automatically advances to the next row.
  6. Repeat until all rows are done, or click the Stop button (or press Escape) to stop early.

Rows that already have a source assigned are included in the sequence -- if you press an input, it overwrites the existing mapping; if you skip (by pressing Stop), the existing mapping is preserved.

Map All is especially useful when you connect a new controller for the first time and want to assign every button and axis in one pass.


Auto-Mapping

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.

Devices that PadForge does not recognize as standard gamepads (generic joysticks, flight sticks, raw-mode devices) do not receive auto-mapping. You will need to use recording, Map All, or the Source dropdown to set them up.


Modifiers

Two modifier checkboxes appear in the Options column on each mapping row:

Inv (Invert)

Flips the axis direction. When checked, the output value is reversed: pushing a stick up produces a "down" value, and vice versa.

When to use it: Some games or some physical controllers report an axis in the opposite direction from what the virtual output expects. If you notice that pushing your stick left makes the game go right, check the Inv box on that axis.

Half (Half-axis)

Treats the input as a half-range (0 to max) instead of full-range (-max to +max).

When to use it:

  • Mapping a trigger (which only goes 0-100%) to a full stick axis (which goes -100% to +100%). The Half modifier tells PadForge to treat the full stick range as a one-directional trigger-style range.
  • Mapping a full stick axis to a trigger output, where you only want positive deflection to register.

Descriptor format

Behind the scenes, these modifiers add prefixes to the mapping descriptor string:

  • I prefix = Inverted (for example, "IAxis 1")
  • H prefix = Half-axis (for example, "HAxis 0")
  • IH prefix = Both inverted and half-axis (for example, "IHAxis 2")

You do not normally need to worry about descriptors -- PadForge shows friendly names in the UI. But if you see a raw descriptor like "IHAxis 2" in the Source column (for an unrecognized device), now you know what the "IH" prefix means.


Understanding Descriptor Names

When the Source column shows a raw descriptor (for unrecognized devices or Force Raw mode), here is how to read it:

Descriptor Meaning
Button 0, Button 1, ... Physical button by zero-based index. "Button 0" is the first button the device reports.
Axis 0, Axis 1, ... Physical axis by zero-based index. Axis 0 is typically Left Stick X, Axis 1 is Left Stick Y, Axis 2 is Left Trigger, etc. -- but this varies by device.
POV 0 Up, POV 0 Right, ... A direction on the first POV hat (D-Pad). The number after "POV" is the hat index (most controllers have only POV 0).
Slider 0, Slider 1 Slider axes (some flight sticks and throttles have these).
Mouse X, Mouse Y Mouse movement axes.

The "I" and "H" prefixes (described above) can appear before any of these.


Copy, Paste, and Copy From

The toolbar above the mapping grid provides bulk operations for managing mappings across slots:

Button What it does
Clear All Removes all mappings for the current device on this slot. Everything goes back to "Not mapped".
Copy Copies the current mapping configuration to the clipboard, including metadata about the source controller type.
Paste Applies a previously copied mapping configuration. If the source and target use different controller types (for example, Xbox to DualShock), PadForge automatically translates the mappings (see below).
Copy From Opens a dialog to copy mappings from another virtual controller slot. Like Paste, it translates automatically if the types differ.
Map All Starts the Map All wizard (described above).

Copy From Translation

Copy From does more than a simple copy -- it intelligently translates mappings when the source and target use different controller types. For example:

  • Xbox to DualShock: A becomes Cross, B becomes Circle, X becomes Square, Y becomes Triangle, LB becomes L1, RB becomes R1, and so on.
  • DualShock to Xbox: Cross becomes A, Circle becomes B, Square becomes X, Triangle becomes Y.
  • To/from DirectInput: Translated using the standardized gamepad mapping, so buttons and axes land on their correct equivalents.

This works for both buttons and axes. You can freely copy mappings between Xbox 360, DualShock 4, and DirectInput slots, and PadForge handles the translation transparently.

Clipboard Translation

When you Copy mappings, PadForge stores the source controller type as metadata in the clipboard. When you Paste to a different controller type, PadForge automatically applies the same translation table used by Copy From. Pasting to the same controller type applies the mappings directly with no changes.


Calibration-Aware Preview

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.


Mapping Categories

Mappings are organized into categories for easy navigation in the grid:

  • Buttons -- Face buttons (A/B/X/Y or Cross/Circle/Square/Triangle), shoulder buttons (LB/RB or L1/R1), stick clicks (LS/RS or L3/R3), and system buttons (Back/Start/Guide or Share/Options/PS)
  • Left Stick / Right Stick -- X and Y axes for each thumbstick
  • Triggers -- Left and right trigger axes
  • D-Pad -- Directional pad (Up, Down, Left, Right)

Custom DirectInput Mappings

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.


Mapping Tips

  • Start with Map All. When setting up a new controller, use Map All to assign everything in one pass, then go back and fine-tune individual rows.
  • Use the Source dropdown for tricky inputs. If recording keeps picking up the wrong input (for example, a stick axis when you are trying to map a nearby button), use the dropdown to select the exact input manually.
  • Check the Value column. After mapping, move your controller inputs and watch the Value column. If a value does not change or moves in the wrong direction, you may need to re-record or toggle the Inv modifier.
  • Half-axis is your friend for triggers-to-sticks. If you map a trigger to a stick axis and the output only goes to 50%, check the Half modifier. Conversely, if mapping a stick to a trigger and you get negative values, Half will clamp to the positive range.
  • Copy From saves time with multiple controllers. If you have two Xbox controllers and want the same mapping on both, set up the first one, then use Copy From on the second to duplicate the mappings instantly.
  • Force Raw mode for unusual devices. If a device's inputs are not being detected correctly (wrong button numbers, missing axes), try enabling Force Raw mode on the Devices page. This bypasses SDL's gamepad remapping and gives you direct access to the hardware's raw inputs.

Related Pages

Clone this wiki locally