So today I created a fork from the GIMX source code, and have been combing through it to try to figure out if there's a way to add support for 3rd-party xbox360 controllers. I understand that the controller is necessary in order to provide the encrypted security signal so that the xbox360 will accept the adapter's input, but since many 3rd-party controllers have the security chip, and work fine on their own with the xbox, it seems like it shouldn't be too hard to make one work with GIMX.
I checked through the code, and looking at the file \core\connectors\usb_con.c at line 619 it appears that the program looks for a connected controller based on the VID and PID of the official wired xbox controller. These are defined in \shared\gimxcontroller\include\x360.h Since my third-party controller works the exact same way as an official controller, and has a security chip, it seems that if I can just get GIMX to connect to it, it should work, right? So all I did was change the hard-coded vendor id and product id (which are 0x045e and 0x028e) to the VID and PID of my 3rd-party controller (which I got using lsusb in the terminal.)
However, upon connecting everything and starting GIMX-launcher (after recompiling the code, of course,) it still gives me the same old message that it couldn't find a wired 360 controller on usb ports.
Does anyone with more familiarity with the source code have any pointers on where else I might need to change the code? Or am I just on a wild goose chase here, and there's really no way to accomplish what I want?
Thanks in advance for any help!
Forking GIMX to Support 3rd Party Controllers
Re: Forking GIMX to Support 3rd Party Controllers
The header dependencies are not well managed in the source code. To have your modification applied, make sure to run "make clean" and then "make".
GIMX creator