Z axis and Z rotation 'flipped' on new controllers
Not exactly specifically related to Steam, but earlier today I bought two new controllers to use for local coop play with my sister on the upcoming holidays. The pair I had, one stopped working outright, and the other I gave my sister so she could play emulated games on her laptop.

So, being out of controllers, I decided to get a new pair. I headed to the store and bought PlayStation 2-style generic controllers by a company called MBtech.

However, upon plugging it into my laptop, I noticed that the Z rotation and Z axis were switched. This means whenever I push the right thumbstick up, it registers a rightwards push, and whenever I push it right, it registers a upwards push. X became Y and Y became X, basically.

I Googled around for a few minutes and found mostly recommendations to "buy an Xbox/PS4 controller", which financially just isn't possible for me, even if I returned this pair of generic gamepads to the store. However, I did find a Dead Space thread where someone was in a similar situation to me - they bought a generic PS2-style controller, and the right thumbstick was all wrong. The answer someone gave was to edit the registry for the gamepad and correct the axis through there. No dice, neither for the guy nor myself.

I mainly want to play my own game, Toupei55, on the holidays, so technically I could just go into Unity, edit the code to use the axis of this specific controller, and make a custom build. Or add an option to swap them for players in my same sitch. But that's only fixing it for that one game, and doesn't account for other games.

I could also technically use one of those remapping tools, like MotionInJoy (not MIJ, for obvious reasons, just tools like it), but I want that to be more of a last resort in case there's a simpler solution that doesn't require downloading and running additional software on my poor machine.

Now I'm thinking of just opening the damn thing and physically rotating the right thumbstick, but considering how usually with these controllers the thumbsticks are on a single circuit board, that's probably impossible. What can I do about this? Should I just return the controllers to the store, or is there something software-wise that I can do about this issue?
Last edited by ❸ AlphaGarg; Dec 2, 2020 @ 3:43pm
< >
Showing 1-6 of 6 comments
crunchyfrog Dec 2, 2020 @ 3:50pm 
This is quite common. You WILL find controllers of the PS2 variety or era to do exactly as you are professing here.

While the simpler solution all round is to buy an Xbox One controller as they are the ones that are essentialy FOR modern Windows, I realise that's not applicable here.

What you can do is download a utility like Joy2Key and set the controller up through that. It uses it's own drivers to mimic an Xbox controler and you can set things how you wish.

However, one word of warning (thought this is rather a small point) I've found it doesn't work with all games. I've had it where games will just not recognise the right stick properly at all, so it can render them useless.

Granted, from my experience this does seem to be older games, but you should at least be aware of this.


Last edited by crunchyfrog; Dec 2, 2020 @ 3:52pm
Jack Schitt Dec 2, 2020 @ 3:51pm 
Did you try calibration? There is both a windows, a Steam in Big Picture Mode, and an option in some games to calibrate a controller so it works properly. It sometimes happens that they lose calibration and do what you're describing. It's possible they can come that way out of the box just like it's possible to receive items that just plain don't work as they're supposed to or don't work at all which is another possibility.
❸ AlphaGarg Dec 2, 2020 @ 4:33pm 
Originally posted by Jack Schitt:
Did you try calibration? There is both a windows, a Steam in Big Picture Mode, and an option in some games to calibrate a controller so it works properly. It sometimes happens that they lose calibration and do what you're describing. It's possible they can come that way out of the box just like it's possible to receive items that just plain don't work as they're supposed to or don't work at all which is another possibility.
Sure did, all it did was set up the sensitivity of the axes, but not what axis does what. On the Windows side of things, at least.

With Big Picture I'll have to add anything that isn't on Steam itself as a non-Steam game in order to use the controller with the game, and not all games fully support Steam's controller input API, including some of the ones I want to play with the controllers. In that list is my game, and with it, any other game that runs on the Unity engine and uses the built-in Input system. So while it is a good recommendation that works great with some things (especially playing KBM games using a controller), in this case it's not practical.



Originally posted by crunchyfrog:
What you can do is download a utility like Joy2Key and set the controller up through that. It uses it's own drivers to mimic an Xbox controler and you can set things how you wish.
I downloaded and installed JoyToKey, went into Options, Configure, and then the Advanced settings tab for the currently connected gamepad, and swapped the horizontal and vertical axes so that they'd be the way they should be. But I don't see any effect upon opening the game again to try it. Do I need to restart my computer for any changes to be applied? I also tried mapping the controller's buttons and axes in the main window's Joystick 1 tab, but it seemed to ignore my input. I probably misunderstood the purpose of that tab as it seems to be more for mapping joystick buttons onto keyboard keys.

EDIT: Giving a minute's think of the name of the tool, I am now realising when you said "like JoyToKey", you didn't mean JoyToKey specifically, since it's a tool for mapping.. joystick buttons to keyboard/mouse input. Unsure of whether or not it can still be used for what I need though, so I'll await a response before trying another program.
Last edited by ❸ AlphaGarg; Dec 2, 2020 @ 4:40pm
crunchyfrog Dec 2, 2020 @ 7:24pm 
Originally posted by AlphaGarg:
Originally posted by Jack Schitt:
Did you try calibration? There is both a windows, a Steam in Big Picture Mode, and an option in some games to calibrate a controller so it works properly. It sometimes happens that they lose calibration and do what you're describing. It's possible they can come that way out of the box just like it's possible to receive items that just plain don't work as they're supposed to or don't work at all which is another possibility.
Sure did, all it did was set up the sensitivity of the axes, but not what axis does what. On the Windows side of things, at least.

With Big Picture I'll have to add anything that isn't on Steam itself as a non-Steam game in order to use the controller with the game, and not all games fully support Steam's controller input API, including some of the ones I want to play with the controllers. In that list is my game, and with it, any other game that runs on the Unity engine and uses the built-in Input system. So while it is a good recommendation that works great with some things (especially playing KBM games using a controller), in this case it's not practical.



Originally posted by crunchyfrog:
What you can do is download a utility like Joy2Key and set the controller up through that. It uses it's own drivers to mimic an Xbox controler and you can set things how you wish.
I downloaded and installed JoyToKey, went into Options, Configure, and then the Advanced settings tab for the currently connected gamepad, and swapped the horizontal and vertical axes so that they'd be the way they should be. But I don't see any effect upon opening the game again to try it. Do I need to restart my computer for any changes to be applied? I also tried mapping the controller's buttons and axes in the main window's Joystick 1 tab, but it seemed to ignore my input. I probably misunderstood the purpose of that tab as it seems to be more for mapping joystick buttons onto keyboard keys.

EDIT: Giving a minute's think of the name of the tool, I am now realising when you said "like JoyToKey", you didn't mean JoyToKey specifically, since it's a tool for mapping.. joystick buttons to keyboard/mouse input. Unsure of whether or not it can still be used for what I need though, so I'll await a response before trying another program.

Yes, I did mean like Joy2Key indeed in that sense.

Although it IS useful for this, as I said it can be a pain as some games just won't work with it. Never really personally messed around that much with it to work out why, so I can't help you on that score.

There was an old utilty that was of similar name (MotionInJoy, iirc) which was bloody good at the time as it solved this issue, but I haven't used that in years, as I largely stopped using PS3 and 2 controllers in favour of a modified one of my own. It might still be around, but it did require you to be online and had bloody ads on it. Not much of a grievance for me, but I mention it in case it is for you.

I have heard that SCPToolkit can do a damned good job and has largely superseded this, but this is something I haven't tried so I can't comment on it.
This is the link I found for it.
https://github.com/nefarius/ScpToolkit/releases/tag/v1.6.238.16010

Hope something works for you.


From my own usage, I would recommend the following in order of easiest to get going to worst - Xbox One controller, PS4 or Switch Pro or WiiU Pro, Xbox 360 (athough I've heard a recent update has buggered this one - jopefully that gets fixed soon), PS3, then PS2 and certain generic ones of that era.
mc_k May 12, 2024 @ 12:25am 
late to the party, but as i had the same problem and fixed it:
controller is set to directinput (old)
you need xinput (new)
hold down start button of controller for 5 secs (controller gets recognized again by os as new hardware)
hope this helps folks who run into this issue
Goulagman Jul 16, 2024 @ 4:17am 
Originally posted by mc_k:
late to the party, but as i had the same problem and fixed it:
controller is set to directinput (old)
you need xinput (new)
hold down start button of controller for 5 secs (controller gets recognized again by os as new hardware)
hope this helps folks who run into this issue
how can u switch from direct to xinput ?
< >
Showing 1-6 of 6 comments
Per page: 1530 50

Date Posted: Dec 2, 2020 @ 3:42pm
Posts: 6