Question Gamepad sometimes recognized as an audio device and sometimes as an Xbox 360 controller?

  • Thread starter Deleted member 2686303
  • Start date
D

Deleted member 2686303

Guest
Hello everyone.

I have a generic third party PS4 controller that I use with my PC. Once I boot my PC with the controller connected it will show up as an audio device in Windows device manager (as PC/PS3/Android) and all of the controller input functions will be in D-input. However if, while the computer is on, I unplug the USB and reinsert it, it will be recognized as Xbox 360 controller and will be using the X-input. Any idea why this inconsistent behaviour might be? And mind you when the controller is detected as an audio device it won't be detected as xbox 360 controller simultaneously and when detected as xbox 360 controller it won't be detected as an audio device. It is either one or the other.

As for my use case I would very much prefer to have the controller be treated as the xbox 360 one all the time for X-input has better compatibility with the games I play and thus I wouldn't be needing translation layers like Steam input, DS4Windows and the like. How could I achieve this without having to unplug and replug all the time?

Thanks in advance.
 

Lutfij

Titan
Moderator
I have a generic third party PS4 controller
The problem might very well be with the controller. Does the issue crop up when you've hooked the controller to another system with the same OS?

Please list the specs to your build like so:
Motherboard:
PSU:
Chassis:
OS:
include the age of the PSU apart from it's make and model. BIOS version for your motherboard at this moment of time.

Have you tried hooking the controller to other USB ports on your build? Perhaps try and manually reinstall your USB/chipset drivers in an elevated command, i.e, Right click installer>Run as Administrator.
 

WrongRookie

Reputable
Oct 23, 2020
676
45
4,940
Does the software come included with the controller?

You can try using antimicro. It's free and can work on games that don't even support controller

 
D

Deleted member 2686303

Guest
Does the software come included with the controller?

You can try using antimicro. It's free and can work on games that don't even support controller

That would be a no. There is no bundled software and all the driver activity is by Windows. So when detected as audio device it uses Windows' USB-audio driver and when detected as xbox 360 controller it is using Microsoft's Xbox accessories (aka Microsoft xbox 360 controller for Windows).
As for the antimicro while the suggestion is appreciated my aim is to be free of any translation layers or input mappers and have Windows handle the matter natively as it is clearly capable of doing so, but just inconsistently.
 
D

Deleted member 2686303

Guest
I have a generic third party PS4 controller
The problem might very well be with the controller. Does the issue crop up when you've hooked the controller to another system with the same OS?

Please list the specs to your build like so:
Motherboard:
PSU:
Chassis:
OS:
include the age of the PSU apart from it's make and model. BIOS version for your motherboard at this moment of time.

Have you tried hooking the controller to other USB ports on your build? Perhaps try and manually reinstall your USB/chipset drivers in an elevated command, i.e, Right click installer>Run as Administrator.
I have had similiar behaviour on my laptop with this particular controller so I doubt my desktop build would be the problem. Which would likely leave us with the controller itself or Windows as the culprit.
When it comes to the controller I've actually cracked it open to see if there's a manual way to say unplug the 3.5mm jack from the mainboard, but unluckily it's all on the same logic board and I have no interest nor expertise to start messing with that.
 

WrongRookie

Reputable
Oct 23, 2020
676
45
4,940
That would be a no. There is no bundled software and all the driver activity is by Windows. So when detected as audio device it uses Windows' USB-audio driver and when detected as xbox 360 controller it is using Microsoft's Xbox accessories (aka Microsoft xbox 360 controller for Windows).
As for the antimicro while the suggestion is appreciated my aim is to be free of any translation layers or input mappers and have Windows handle the matter natively as it is clearly capable of doing so, but just inconsistently.

Doing that probably requires you to mess around with the settings a little...
 

Ralston18

Titan
Moderator
I am not sure that that use case is immediately or directly viable.

That use case being:

"I would very much prefer to have the controller be treated as the xbox 360 one all the time for X-input has better compatibility with the games I play and thus I wouldn't be needing translation layers like Steam input, DS4Windows and the like."


The starting point, by way of reference, being the following Microsoft link dated 5/4/2023:

https://learn.microsoft.com/en-us/windows/win32/xinput/xinput-and-directinput

The link provides some initial discussion plus a C++ "fix" that could help.

However, I have no way to test or otherwise vouch for the code and its' applicability or functionality. So I must defer to posts on that matter.

One immediate takeaway from the link: "Windows Store apps do not support DirectInput."

That said, the link may otherwise prove helpful as a start towards finding a way to meet your requirements.
 
D

Deleted member 2686303

Guest
I am not sure that that use case is immediately or directly viable.

That use case being:

"I would very much prefer to have the controller be treated as the xbox 360 one all the time for X-input has better compatibility with the games I play and thus I wouldn't be needing translation layers like Steam input, DS4Windows and the like."

The starting point, by way of reference, being the following Microsoft link dated 5/4/2023:

https://learn.microsoft.com/en-us/windows/win32/xinput/xinput-and-directinput

The link provides some initial discussion plus a C++ "fix" that could help.

However, I have no way to test or otherwise vouch for the code and its' applicability or functionality. So I must defer to posts on that matter.

One immediate takeaway from the link: "Windows Store apps do not support DirectInput."

That said, the link may otherwise prove helpful as a start towards finding a way to meet your requirements.
I don't really understand much of anything when it comes to coding so the content of the link goes a little bit above my head, however I don't think that will be relevant for what I am after. I just want my gamepad to be detected as xbox 360 controller all the time which Windows already can do. Be it only after an unplug and and a replug. Just remove the plugging from the equation and I am golden.
 

Ralston18

Titan
Moderator
Bear in mind that a generic PS4 controller may not be fully compatible in some manner.....

The overall requirement being, as I understand thus far, is to be able to change modes without the need to unplug and replug.

I found this via an Amazon link:

"The controller is in dinput mode by default when connected. To change input mode to xinput, hold the Start button down for about 5 seconds. dinput shows as a USB Gamepad; xinput shows as a X-Box Controller. If you reboot the computer or disconnect the controller, it'll be in dinput when you plug it back in."

And other options:
https://www.makeuseof.com/tag/connect-xbox-one-controller-pc/

I found a couple of possible hardware solutions which may or may not be viable for you.

[Note: I am also going to move this thread from Computer Peripherals to PC Gaming. Someone more into the Gaming Community may be able to add other ideas and suggestions.]
 
D

Deleted member 2686303

Guest
Bear in mind that a generic PS4 controller may not be fully compatible in some manner.....

The overall requirement being, as I understand thus far, is to be able to change modes without the need to unplug and replug.

I found this via an Amazon link:

"The controller is in dinput mode by default when connected. To change input mode to xinput, hold the Start button down for about 5 seconds. dinput shows as a USB Gamepad; xinput shows as a X-Box Controller. If you reboot the computer or disconnect the controller, it'll be in dinput when you plug it back in."

And other options:
https://www.makeuseof.com/tag/connect-xbox-one-contrer-pc/

I found a couple of possible hardware solutions which may or may not be viable for you.

[Note: I am also going to move this thread from Computer Peripherals to PC Gaming. Someone more into the Gaming Community may be able to add other ideas and suggestions.
Thanks for the suggestions. Unfortunately pressing the start button didn't do a thing for me. And if "hardware solutions" would mean buying extra stuff then I will much rather live with the inconvenience of my current predicament.
Your understanding of my requirement is kind of correct, but I would like to underline that I don't care about the D-input one bit. So it is really not a matter of switching between the X-input and the D-input, but not having to switch at all. I want X-input 100% of the time.
 

WrongRookie

Reputable
Oct 23, 2020
676
45
4,940
Thanks for the suggestions. Unfortunately pressing the start button didn't do a thing for me. And if "hardware solutions" would mean buying extra stuff then I will much rather live with the inconvenience of my current predicament.
Your understanding of my requirement is kind of correct, but I would like to underline that I don't care about the D-input one bit. So it is really not a matter of switching between the X-input and the D-input, but not having to switch at all. I want X-input 100% of the time.

If you want xinput 100% of the time, you should get an Xbox controller. Third party controllers are a hit an miss regarding compatability with windows.
 
  • Like
Reactions: Ralston18
D

Deleted member 2686303

Guest
If you want xinput 100% of the time, you should get an Xbox controller. Third party controllers are a hit an miss regarding compatability with windows.
Yea I know the inconsistency all right. But as I've said before Windows does have the functionality to use X-input for my controller. I just want to know how to make this permanent. There has to be some logic to how it is always initially a sound device and then after a replug xbox 360 controller. It can't be completely random. Probably something to with how Windows handles the hardware upon boot versus connecting it on the fly.
 

WrongRookie

Reputable
Oct 23, 2020
676
45
4,940
Yea I know the inconsistency all right. But as I've said before Windows does have the functionality to use X-input for my controller. I just want to know how to make this permanent. There has to be some logic to how it is always initially a sound device and then after a replug xbox 360 controller. It can't be completely random. Probably something to with how Windows handles the hardware upon boot versus connecting it on the fly.
Just because windows supports your controller doesn't mean that it will work as expected. What you seem to not realize is the one who made the controller is responsible to support it and help you to get it to work. NOT Microsoft or Windows.

Windows is an OS. It can't do anything on its own without people fixing it. Unless the manufacturer of the controller provides a firmware update or tells you what to do, our guess on how to get it to work is as good as yours.
 
D

Deleted member 2686303

Guest
Just because windows supports your controller doesn't mean that it will work as expected. What you seem to not realize is the one who made the controller is responsible to support it and help you to get it to work. NOT Microsoft or Windows.

Windows is an OS. It can't do anything on its own without people fixing it. Unless the manufacturer of the controller provides a firmware update or tells you what to do, our guess on how to get it to work is as good as yours.
And what you seem to not realize is that if the controller had official support from the manufacturer then maybe I wouldn't be starting a thread discussing my situation. I am here precisely because I've exhausted all the things I would know how to do on my own which includes the very basic thing of checking if official support, and thus a solution for the issue exist. Which it doesn't.
To be clear this is not to mock or belittle your response. I appreciate all the input I can get and if nothing can be done, then nothing can be done. In that case I would just like to thank everyone for their help and maybe try to give this another go on my own or simply move on.
 
Last edited by a moderator: