I installed 4 Generic USB Controllers on my computer for my nephews to play together without fighting ("Generic" as I don't have to money to buy 4 official Xbox Controllers).

All controllers work perfectly independently in their games, however because they are generic chinese electronics, they all share the same configuration and changing the config for one of the controllers in Steam will change assign the same configuration for each.

As we can see in Steam/logs/controller.txt, the devices don't have serial numbers and I suspect this is what is causing all 4 to share the same configuration. On the last line, it is assigning a serial number (79-6-6151b0), but it assigns the same to each.

[2018-03-12 00:46:50] Local Device Found
  type: 0079 0006
  path: sdl://15
  serial_number: 
[2018-03-12 00:46:50]   Manufacturer: 
[2018-03-12 00:46:50]   Product:      Generic1
[2018-03-12 00:46:50]   Release:      0
[2018-03-12 00:46:50]   Interface:    -1
[2018-03-12 00:46:50] !! Steam controller device opened for index 2.
[2018-03-12 00:46:50] Controller has an Invalid or missing unit serial number, setting to '79-6-6151b0'

I'm aware the SN might be burned in the controllers' firmware thus inaccessible but still, does anyone know if there's a way to emulate a serial number at Windows level or make it so they are unique?

  • Yes, the iSerialNumber is supposed to be fused into hardware, as it is done for Mass Storage devices, a unique number for a particular VID/PID. It has to be a special procedure at test/bin stage, which adds cost. If Win10 driver has a plug for the missing iSerialNumber, but makes up the same number for all identical controllers, it is the driver fault. Technically, each USB device has a different handle, since the OS enumerates then with different USB addresses, so it should be possible to generate different iSerialNumbers. – Ale..chenski Mar 14 at 19:13
  • Did you try to connect all four controllers via an external hub? Maybe the driver will come to mind and make different iSerialNumbers? – Ale..chenski Mar 14 at 19:15
  • Oh, so it would be possible? Great! I tried via a hub actually, this is how they are all always all connected. Other than that, I tried looking at the driver details and driver.inf file and saw each had a unique number that always comes back when connecting, but I don't know where it's coming from – NaturalBornCamper Mar 15 at 14:08
up vote 2 down vote accepted

I dont think you are going to find an easy solution for this. Honestly, I think you are going to have to live with these controllers as is, or return them and go to a used game shop and pick up some used controllers for less.

I would bet money the internal circuitry in those controllers are just potted chips, meaning you cant access them. That rules out modifying the chips themselves.

As for changing them at the Windows level... technically it could be possible, but this is not something I think anyone would have tried before, or would want to attempt.

  • I didn't expect an easy solution hehe ;) I was hoping to change the input.inf file for each and hack something at Windows level. And knew that if there was a way, someone could point me in the starting direction here since Google yields nothing.. I'll wait a bit inc ase other people have ideas, if nothing shows up I'll accept your solution as the only one, thanks friend! – NaturalBornCamper Mar 14 at 16:43
  • @NaturalBornCamper In reality, you would have to make a custom device driver for the controllers. Which means, you would have to code all the functionality of the controllers. Then you would have to write code to find a way to uniquely identify them (if possible without a serial number) and then assign a serial number. Since a serial number is what should make it unique... theres your problem. There may be some way to do this, but the amount of work involved is costlier than buying new controllers. – Keltari Mar 14 at 17:31
  • I was actually hoping to do that actually, take the already-used driver and just modify a few lines to generate the serial number. But I get your meaning, how would each controller would then use the corresponding driver without a way to uniquely identify them... – NaturalBornCamper Mar 15 at 14:06

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.