Still not working as of April 2026.
I tested yesterday without any workarounds. Not sure which version of Proton I used. Whichever would've been installed automatically, anyway. Same issue is that the camera spins.
I am not sure why Proton would ever need to map a 2nd stick for the Zuiki in the first place?
Now the game Running Train is out more and more people are experiencing this problem. Please please please fix this.
Will also add that it's not been working since Train Crew (I actually setup a Windows 10 drive for my Steam Deck just to be able to use the Zuiki mascon for that and Jr East Sim, Densha De Go Final) and now that we have another train sim that it should be working with, Running Train, hopefully we can get a update!
I found/worked out with ChatGPT a fix/workaround for this earlier this evening, as I just got my ZUIKI Mascon RED yesterday..
You'll need to adjust the parameters to match whichever particular Mascon you have , but it should only be a case of the full descriptive name, and the long 'GUID' identifier ..
So after 15-20 minutes of troubleshooting and testing the various joystick/game input layers (I'm running CachyOS ..)
ChatGPT eventually came up with.. (with a bit of help from my own IT brain and a bit of "let me just check .." questioning..)
SDL_GAMECONTROLLERCONFIG='03009a3edd3300000300000011010000,ZUIKI MasCon for Nintendo Switch RED,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,lefttrigger:a2,righttrigger:a3,platform:Linux' %command%
added it to the launch options for Train Crew, voila, no more constant left-panning camera !!
the long GUID type string ((starts 03009a3 for mine.. and descriptive name (same as I see in Steam Controller section) I got using "sdl2-jstest --list"
❯ sdl2-jstest --list
Found 1 joystick(s)
Joystick Name: 'ZUIKI MasCon for Nintendo Switch RED'
Joystick GUID: 03009a3edd3300000300000011010000
Joystick Number: 0
Number of Axes: 4
Number of Buttons: 14
Number of Hats: 1
Number of Balls: 0
GameControllerConfig:
Name: 'ZUIKI MasCon for Nintendo Switch RED'
Mapping: '03009a3edd3300000300000011010000,ZUIKI MasCon for Nintendo Switch RED,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,'
It tells SDl to ignore the fake/ghost right stick which was being seen as duplicates of couple of the real inputs ,
the throttle/brake lever starts at 0 , but when you move it up/down then back to Neutral, the value is a constant 128, so SDL /other layer were masking it to 0 on first start.
I've just played a few runs on Train Crew and Running Train, with no constant camera panning :-)
(still got a couple of button mapping issues for Running Train, but nothing game breaking)
Thanks for sharing @Urgentemente !
I have the earlier ZUIKI model with the 電車でGO! branding. I had to install sdl-jstest from AUR, and I see the following results:
❯ sdl2-jstest --list
Found 1 joystick(s)
Joystick Name: 'One Handle MasCon for Nintendo Switch'
Joystick GUID: 03001019dd3300000100000011010000
Joystick Number: 0
Number of Axes: 4
Number of Buttons: 14
Number of Hats: 1
Number of Balls: 0
GameControllerConfig:
Name: 'One Handle MasCon for Nintendo Switch'
Mapping: '03001019dd3300000100000011010000,One Handle MasCon 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,'
The Name and GUID differ, but if I take the Mapping section, and remove the rightx:a2,righty:a3, part from the configuration, and use the resulting value for SDL_GAMECONTROLLERCONFIG, I confirm this also fixes the camera panning / axis drift issue for me on Running Train. 🎉
My final "Launch Options" under the properties for the game are:
SDL_GAMECONTROLLERCONFIG='03001019dd3300000100000011010000,One Handle MasCon 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,lefttrigger:a2,righttrigger:a3,platform:Linux' %command%
Note that for Running Train, there are still two remaining unrelated issues:
udev-hid-bpf to monitor and observe the values. Perhaps SDL has its own debugging facility for understanding this better.If you have multiple controllers, make sure to disconnect the other controllers to prevent the game from getting confused about which controller to use.
Great to hear you've got it working for your controller version as well!
Yeh, I still have the buttons making mulitiple inputs, but it's only happening under Proton (my main PC is dualboot tho I barely ever need to boot into Windows these days..),
I tried Running Train on Windows Steam and the buttons only do the expected single actions. haven't had a chance to work on that yet.
Same with the initial throttle jumping to full power, then back to whatever notch it's on once you move it again, hopefully get some time this week to debug the values etc.
Sadly I haven't figured out the multiple-button issue yet, just tried for about 20 minutes of various tests but haven't managed to find a fix yet.
buttons under jstest2 ,evtest test etc all show single press, so it seems to be further down the 'chain' then that, difficult to debgu when there isn't a controller mapping screen in the game , even if it does detect the Mascon.
@joestringer At least for me, I can workaround the acceleration bug by first going full emergency break setting on the start of a new map. After that, I can smoothly accelerate notch by notch. If I don't do that, I have the exact same issue as you're describing for Running Train.
Also thanks @Urgentemente
With your help I got the camera turn bug away. Same multi-button issue, though.
proton experimentalx1 2024-12SDL_GAMECONTROLLERCONFIGx1 2026-07SDL_GAMECONTROLLERCONFIG='03001019dd3300000100000011010000,One Handle MasCon for Nintendo Switch,a:b0,b:b1,x:b3,y:b4,back:b10,guide:b12,start:b11,leftstick:b13,leftshoulder:b6,rightshoulder:b7,dpup:h0x1 2026-07SDL_GAMECONTROLLERCONFIG='03001019dd3300000100000011010000,One Handle MasCon for Nintendo Switch,a:b0,b:b1,x:b3,y:b4,back:b10,guide:b12,start:b11,leftstick:b13,leftshoulder:b6,rightshoulder:b7,dpup:h0x1 2026-07_SDL_GAMECONTROLLERCONFIG='03009a3edd3300000300000011010000,ZUIKI MasCon for Nintendo Switch RED,a:b0,b:b1,x:b3,y:b4,back:b10,guide:b12,start:b11,leftstick:b13,leftshoulder:b6,rightshoulder:b7,dpup:h0x1 2026-07
I am having an issue using the Zuiki Mascon Switch Controller with the game Train Crew (steam id 1618290). The Zuiki Mascon is a specialised controller designed to imitate the controls of a train. It lacks a right stick. Train Crew is programmed to support this controller natively without the use of Steam Input. The controller is recognised by Steam and the game, and in most regards works fine. However, Proton seemingly interprets the absent right stick as continually pointing fully to the left.
I can fix this problem by editing the prefix registry and creating a DWORD named "Map Controllers" in HKLM\System\CurrentControlSet\Services\winebus and setting it to 0, but this creates a new problem. It now interprets the centre of the left stick as being fully up. Moving the left stick down is interpreted as moving the stick through the full range of movement (i.e. slightly down is interpreted as slightly up and fully down is interpreted as fully down). Moving the left stick upwards leads to it being interpreted as pointing fully down regardless of position until it is moved back to the centre - it seems like the controller being moved "above fully up" causes it to loop around and become fully down.
I am using Proton Experimental.