Has anybody managed to get one of these working on a Mister? I assumed since the PC recognises this as an Xbox One pad that it would have worked on the Mister but perhaps I'm missing something. Any help would be appreciated.
Brook PS2 to Xbox One Adapter
Re: Brook PS2 to Xbox One Adapter
Also you would want to update the MiSTer Mains, ether run the Update Script or the Update all Script as the Mister recently updated how it handles Xbox, PlayStation and Switch controllers.
Re: Brook PS2 to Xbox One Adapter
Hey darksakul, thanks for your input. It's set to GamePad and the Mister is up to date but still, nothing works, I've tried the powered port too on the Hub.darksakul wrote: ↑Wed Oct 13, 2021 5:23 am Make sure you have the switch set to Game Pad and not Steering Wheel.
Also you would want to update the MiSTer Mains, ether run the Update Script or the Update all Script as the Mister recently updated how it handles Xbox, PlayStation and Switch controllers.
Re: Brook PS2 to Xbox One Adapter
Really surprised the Brook doesn't work since it spoofs being an Xbox One pad on Console and PC.
Re: Brook PS2 to Xbox One Adapter
I think I've found the answer: the Brook adapter needs to receive a special packet before it starts sending input. With the xpad driver modified to send this packet, the adapter works on my Linux testbed (it didn't work before). Thanks to toyoshim on GitHub for doing the real legwork on this.
I will submit a pull request when I have some more time. The one hitch is that the Brook adapter uses the same VID and PID as a launch Xbox One controller, so the change would affect anyone using one of those controllers as well. I doubt it would cause any problems (Windows presumably does the same thing), but I thought I should mention it.
Re: Brook PS2 to Xbox One Adapter
Ten months later and I still haven't submitted the PR... and my motivation has dropped since I'm no longer interested in using the Brook adapter--I'm going over to the wireless dark side with a DualSense once my Bluetooth dongle arrives.
For anyone interested in pushing this over the goal line, it's just a matter of adding a single line to drivers/input/joystick/xpad.c:
Code: Select all
static const struct xboxone_init_packet xboxone_init_packets[] = {
XBOXONE_INIT_PKT(0x0e6f, 0x0165, xboxone_hori_init),
XBOXONE_INIT_PKT(0x0f0d, 0x0067, xboxone_hori_init),
XBOXONE_INIT_PKT(0x0000, 0x0000, xboxone_fw2015_init),
XBOXONE_INIT_PKT(0x045e, 0x02d1, xboxone_pdp_init2), // this is the line to add
XBOXONE_INIT_PKT(0x045e, 0x02ea, xboxone_s_init),
XBOXONE_INIT_PKT(0x045e, 0x0b00, xboxone_s_init),
XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_init1),
XBOXONE_INIT_PKT(0x0e6f, 0x0000, xboxone_pdp_init2),
XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumblebegin_init),
XBOXONE_INIT_PKT(0x24c6, 0x542a, xboxone_rumblebegin_init),
XBOXONE_INIT_PKT(0x24c6, 0x543a, xboxone_rumblebegin_init),
XBOXONE_INIT_PKT(0x24c6, 0x541a, xboxone_rumbleend_init),
XBOXONE_INIT_PKT(0x24c6, 0x542a, xboxone_rumbleend_init),
XBOXONE_INIT_PKT(0x24c6, 0x543a, xboxone_rumbleend_init),
};
As it turns out, the compatibility fix I needed was already in the driver, it's only a matter of enabling it for the Brook adapter's VID/PID (which are the same as the launch XBox One controller's). I haven't tested this code but it should function identically to my original fix.