Forking GIMX to Support 3rd Party Controllers

Talk about anything concerning the source code.
Post Reply
Justitia
Posts: 5
Joined: Fri Dec 18, 2020 2:31 am

Forking GIMX to Support 3rd Party Controllers

Post by Justitia »

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!
User avatar
Matlo
Posts: 5768
Joined: Wed Jul 06, 2011 7:01 am
Location: France
Contact:

Re: Forking GIMX to Support 3rd Party Controllers

Post by Matlo »

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
Post Reply