GIMX for Xbox 360 Peripherals on Xbox One

Discuss everything to do with GIMX here
redion1992
Posts: 26
Joined: Wed Dec 13, 2017 3:19 pm

Re: GIMX for Xbox 360 Peripherals on Xbox One

Post by redion1992 »

OK. My current setup is as follows:
X1 <-> GIMX <-> RPi controlling proxy <-> PDP <-> MadCatz MIDI <-> drum set. If I make an input into the drum kit or the MIDI, I can visibly see a light blinking on the serial part of the GIMX, so I am confident it is transmitting. The X1 dashboard software also responds appropriately. So does RB4.

I then modified the setup to the following:
X1 <-> GIMX <-> RPi controlling proxy <-> PDP <-> 2nd GIMX <-> 2nd RPi controlling proxy <-> MadCatz MIDI <-> drum set. This way, I can capture the same input and output of the PDP adapter, so we can see empirically what changes the PDP adapter is making to the packet. And for some reason, it's working today...

So the following packet captures are of the following in order:

(All on the MIDI adapter, not the kit output)
Start button
A button
X button
Y button
Back button
Down D-pad
Up D-pad
Left D-pad
Right D-pad
Guide button x2
Overdrive button
B button

---

(Kit output)
Kick pedal
Yellow cymbal
Blue cymbal
Green cymbal
Yellow pad
Blue pad
Green pad
Red pad

This is almost all the inputs that the MIDI adapter can send through; the only one missing is the hi-hat control pedal. My kit is not able to send the proper control message for that to work with in the first place. Hopefully we can use these captures side-by-side to determine exactly what modifications the PDP adapter makes to the controller packet.

I've uploaded the two captures of the same input to https://www.dropbox.com/s/465dln4zr3wn1 ... s.zip?dl=0 if someone wants to take a look at them. Again, they were both recorded at the same time, only one is on either side of the PDP adapter. There is a slight offset in the times of activating the capture, but using the same timed inputs should help in understanding the modifications.
jgoldshlag2
Posts: 9
Joined: Sun Dec 13, 2020 11:16 pm

Re: GIMX for Xbox 360 Peripherals on Xbox One

Post by jgoldshlag2 »

Realizing this is an older thread, I'm wondering if there has been any progress on this. It seemed very promising!

I'm in the same boat as several posters in this thread - wanting to connect a real electronic drum set to an XB1 and play RB4 with it.
Captive
Posts: 3
Joined: Fri Feb 08, 2019 6:32 pm

Re: GIMX for Xbox 360 Peripherals on Xbox One

Post by Captive »

I believe Matlo or someone who is very familiar with c/cpp and GIMX would need to modify things in two areas.
The first being a device profile; Mapping for the "button presses", and ID as a PDP adapter (maybe), which is similar to what GIMX does for other devices.
The second is to track, calculate and add in the additional "header" data into each packet.

The data from redion1992 is excellent, and provides a good window in to what the PDP adapter is doing, and contains much of the info needed for such a device profile and header generator routine.

If anybody has made any progress in this, and requires testing, assistance, and encouragement - please let us know.
In theory, it still seems possible.
jgoldshlag2
Posts: 9
Joined: Sun Dec 13, 2020 11:16 pm

Re: GIMX for Xbox 360 Peripherals on Xbox One

Post by jgoldshlag2 »

Thanks for the reply/update. I sent redion1992 a PM, but haven't heard anything back yet.

Do we know the device ID for the PDP adapter?
redion1992
Posts: 26
Joined: Wed Dec 13, 2017 3:19 pm

Re: GIMX for Xbox 360 Peripherals on Xbox One

Post by redion1992 »

Hey there, just saw there's been some movement on this front. Spam filter ate my notification on the thread...
I haven't been able to do anything more than capture the packets shown; we've had some renovations being done, which has meant the kit had to go away.
Unfortunately, I can't lay my hands on the PDP adapter right now. However, I did leave the VID/PID up in this thread. VID 0x0e6f PID 0x0175
There was a LOT of dummy data in the X1 side of things, that did not correspond to a packet on the 360 side (out of the MIDI adapter, into the PDP).
jgoldshlag2
Posts: 9
Joined: Sun Dec 13, 2020 11:16 pm

Re: GIMX for Xbox 360 Peripherals on Xbox One

Post by jgoldshlag2 »

Is the dummy data related to the different encryption scheme on the X1 for controllers?

So it looks like the next step is to get a profile created for the GIMX. I'm going to see if my brother can take a look at this over the holidays - he might be bored enough to spend some time on it and he certainly has the skills to program it.
jgoldshlag2
Posts: 9
Joined: Sun Dec 13, 2020 11:16 pm

Re: GIMX for Xbox 360 Peripherals on Xbox One

Post by jgoldshlag2 »

Update on my end:

I've built a GIMX adapter using the recommended CP2102 and Teensy 2.0 boards and have GIMX installed and working on a Raspberry Pi 4B.

I can get GIMX to work and use the Midi Pro Adapter to control both the Xbox menus and the menus within RB4, but RB4 still sees the GIMX adapter as a controller, not a drum kit. I tried setting the VID/PID to e6f and 175 respectively, and after building the firmware with those IDs, the game still sees it as a controller.

I dug through the various firmware files as best I could, but I couldn't see anywhere else other than in Descriptors.c that the VID/PID is set. It's an odd problem.

Once I can get the GIMX adapter recognized as a drum kit, I can map the various drum hits to the right button presses in the GIMX config, but I haven't gotten there yet.

Any ideas @redion or anyone else?
jgoldshlag2
Posts: 9
Joined: Sun Dec 13, 2020 11:16 pm

Re: GIMX for Xbox 360 Peripherals on Xbox One

Post by jgoldshlag2 »

Looking at @redion's captures from above, there are a lot of USB control requests from the host that are marked as vendor and thus not documented. I can't capture my output because I only have one RPI and GIMX adapter, but I suspect its either a) a lack of response to one of those control requests or b) some other way GIMX is telling the console it's a controller.

Looking a the Descriptors.c, and comparing it with the output in the screen shots earlier in the thread, it looks like GIMX has more interfaces and endpoints defined than the PDP adapter does (it looks like the PDP adapter only has one interface with two endpoints).
jgoldshlag2
Posts: 9
Joined: Sun Dec 13, 2020 11:16 pm

Re: GIMX for Xbox 360 Peripherals on Xbox One

Post by jgoldshlag2 »

I'm hoping @matlo or someone more familiar with USB traffic might be able to take a look at the pcaps linked above (specifically the PDP one) and decipher what might be going on around line 221-304, where there's a whole bunch of USB control traffic back and forth between the adapter and the XB1. I suspect my adapter isn't passing some message or descriptor that its supposed to and that's why the game isn't recognizing it as a drum set.
palesius
Posts: 2
Joined: Sat Jan 16, 2021 7:25 pm

Re: GIMX for Xbox 360 Peripherals on Xbox One

Post by palesius »

I don't think this will hold true for the XB1 (because I don't see the unknown descriptor section) , and I haven't messed around with it much and don't have any of the non-controller peripherals...

But on the 360, at least for RB/GH it didn't actually look at the VID/PID to determine what controller it was.
It looked at an undocumented HID descriptor within the interface 0 descriptor.

microsoft 11 21 00 01 01 25 81 14 00 00 00 00 13 01 08 00 00
gamestop 11 21 10 01 01 25 81 14 03 03 03 04 13 02 08 03 03
fender 11 21 10 01 06 25 81 14 03 03 03 04 13 02 08 03 03
xplorer 11 21 10 01 07 25 81 14 03 03 03 04 13 02 08 03 03
drum 11 21 10 01 08 25 81 14 03 03 03 04 13 02 08 03 03
turntable11 21 10 01 17 25 81 14 03 03 03 04 13 02 08 03 03

With the exception of the microsoft controller, the only thing that seems to change with any of the others is the 5th byte.
And it is possible to fool the 360 into thinking that it is of a different type by changing that. Not sure if that can be done with gimx software or would need a different firmware, as it happens during the initial USB setup phase.
Post Reply