protonscr

PDP Faceoff Deluxe+ controller gets incorrect button mapping unless SDL_GAMECONTROLLERCONFIG is explicitly set

steamopen General controller / Steam Input
ValveSoftware/steam-for-linux#13510 · opened 2026-08-11 by visageeee · updated 2026-08-11 · 1 comments · github
1 matching comments, n / p to jump
Vvisageeee 2026-08-11 github

Your system information

  • Steam client version (build number or date): [add Steam version]
  • Distribution (e.g. Ubuntu): Ubuntu 24.04.3 LTS
  • Opted into Steam client beta?: [Yes/No]
  • Have you checked for system updates?: Yes
  • Steam Logs: [attach steam-logs.tar.gz]
  • GPU: [Nvidia/Intel/AMD]
  • Desktop/session: XFCE / X11
  • Controller: PDP Faceoff Deluxe+ Audio Wired Controller for Nintendo Switch
  • USB VID/PID: 0e6f:0184
  • SDL GUID: 030012626f0e00008401000011010000

Please describe your issue in as much detail as possible:

Steam detects my PDP Faceoff Deluxe+ controller, but assigns a completely incorrect button mapping.

In Steam's Settings → Controller → Test Device Inputs, for example:

  • A does not register
  • B registers as A
  • X registers as Y
  • L registers as X
  • R does not register
  • Left stick click registers as Minus
  • Right stick click registers as Plus
  • Plus and Minus do not register
  • Screenshot registers as left stick click
  • Rear buttons are also incorrectly mapped

The analog sticks themselves work correctly.

Linux appears to receive the controller inputs correctly. jstest reports four working axes, with the right stick correctly using axes 2 and 3.

SDL2 also has a correct mapping for this exact controller:

030012626f0e00008401000011010000,Faceoff Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,

However, when Steam starts normally, it generates this mapping in ~/.local/share/Steam/config/config.vdf:

030000006f0e00008401000011010000,PDP Faceoff Deluxe+ Audio Wired Controller for Nintendo Switch,a:b0,b:b1,x:b3,y:b4,back:b10,guide:b12,start:b11,leftstick:b13,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a2,righttrigger:a3,platform:Linux,

In particular, Steam's generated mapping contains:

lefttrigger:a2
righttrigger:a3

But a2 and a3 are actually the controller's right analog stick axes. ZL and ZR are digital buttons b6 and b7.

Manually deleting or correcting the mapping in config.vdf does not fix the problem, because Steam regenerates the incorrect mapping when it starts.

I can reliably work around the problem by completely exiting Steam and launching it with SDL's correct mapping explicitly supplied:

SDL_GAMECONTROLLERCONFIG='030012626f0e00008401000011010000,Faceoff Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,' steam

After launching Steam this way, Steam's own Test Device Inputs screen reports all controller inputs correctly.

Expected behavior: Steam should use the correct SDL mapping for this controller.

Actual behavior: Steam generates an incorrect mapping for 0e6f:0184. Supplying the correct mapping through SDL_GAMECONTROLLERCONFIG fixes the issue.

Steps for reproducing this issue:

  1. Connect a PDP Faceoff Deluxe+ Audio Wired Controller for Nintendo Switch (0e6f:0184).
  2. Start Steam normally and open Settings → Controller → Test Device Inputs.
  3. Observe that many buttons are incorrectly mapped.
  4. Completely exit Steam.
  5. Start Steam with the correct mapping using SDL_GAMECONTROLLERCONFIG as shown above.
  6. Open Test Device Inputs again and observe that all inputs are now mapped correctly.
Kkisak-valve maintainer 2026-08-11 github

Hello @visageeee, this reads more like an upstream SDL issue than a Steam Input issue. Can you test what happens with SDL(3)'s tools and run your findings past the SDL maintainers?