github jfedor2/hid-remapper r2025-05-23

latest releases: r2025-06-17, r2025-06-02
3 months ago

Gamepad input normalization

A new option, Normalize gamepad inputs, enabled by default, makes it so that buttons on all known gamepads will show up as the same inputs, making it easier to create configurations that work with different game controllers. Because different controllers sometimes use different inputs for the same buttons, previously you had to adjust the mappings for specific controller models.

Currently PlayStation, Switch, Xbox and Stadia controllers should get the standard mapping and can therefore be used interchangeably (with some caveats, see below).

If you have a controller that uses the standard layout but doesn't get correct button mappings, please let me know.

When loading old configurations, the option is disabled to preserve existing behavior.

Please note that L2/R2 and L2 axis/R2 axis are separate inputs as far as HID Remapper is concerned. Some controllers send both, some only send the button inputs and some only send the axis inputs.

Please note that the normalization currently only occurs on the input side. Depending on which emulated device type you use, the inputs might not match the outputs, so for example if you configure your HID Remapper to work as a Stadia controller and enable unmapped inputs passthrough, you won't get a correct input mapping. You would still have to map each button separately.

Registers as outputs on a mapping

Mappings with outputs set to registers now work as expected, putting the input state value into the register, which can then be read from inside an expression. This makes is possible to create more generic expressions that use registers as parameters/placeholders, so that you can assign expression inputs using mappings, without having to modify the expression itself.

Because of the order of evaluating expressions and mappings, the values in the registers are delayed by one frame compared to if they were read directly.

Don't miss a new hid-remapper release

NewReleases is sending notifications on new releases.