HayBox
HayBox copied to clipboard
Xbox 360 compatibility
Note that this requires a hardmodded (RGH) Xbox 360 and UsbdSecPatch either as a DashLaunch plugin or baked into the modified NAND with J-Runner and will not work on an unmodified Xbox 360 and I don't expect it to work on an unmodified 360...
So on a modded 360 you can basically use anything with an XInput mode. I've used a GuliKit KK2 Pro and KK3 Max, I've used various GP2040-CE devices. They work fine in everything except certain Capcom games which use an emulator that seems pickier about controllers (e.g. Street Fighter 3rd Strike and Darkstalkers, likely others). My Open-Frame1, however, can not even navigate the 360 menu or do anything in any game. GP2040-CE stuff works for maybe 99% of Xbox 360 usage, HayBox for none, and if I use a MayFlash Magic NS 2, I can also use *any controller (even a DualShock 4) in any game, including the problematic Capcom(?) games. https://github.com/InvoxiPlayGames/UsbdSecPatch/issues/2 There are a few layers to this. I would like the controller to work at all, of course, but I think it would be neat if you could somehow copy the identifying info that MayFlash's adapter is using to get slightly better support than GP2040-CE currently has. Although even matching their support would be good as the controller still could work for things like Soulcalibur IV, N+, and Mega Man 9/10.
In case it's useful, I'll try to compile some USB identifier info from plugging into my PC from various things. HayBox:
2024-08-01T08:21:50,792925-05:00 usb 1-9.3.1: new full-speed USB device number 30 using xhci_hcd
2024-08-01T08:21:50,895029-05:00 usb 1-9.3.1: New USB device found, idVendor=0738, idProduct=4726, bcdDevice= 1.00
2024-08-01T08:21:50,895036-05:00 usb 1-9.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
2024-08-01T08:21:50,895039-05:00 usb 1-9.3.1: Product: Pico
2024-08-01T08:21:50,895041-05:00 usb 1-9.3.1: Manufacturer: Raspberry Pi
2024-08-01T08:21:50,895043-05:00 usb 1-9.3.1: SerialNumber: E66118C417909121
2024-08-01T08:21:50,909114-05:00 input: Mad Catz Xbox 360 Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9.3/1-9.3.1/1-9.3.1:1.0/input/input397
2024-08-01T08:21:50,909865-05:00 cdc_acm 1-9.3.1:1.1: ttyACM0: USB ACM device
GP2040-CE:
2024-08-01T08:23:07,080990-05:00 usb 1-9.3.1: new full-speed USB device number 31 using xhci_hcd
2024-08-01T08:23:07,183974-05:00 usb 1-9.3.1: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.14
2024-08-01T08:23:07,183981-05:00 usb 1-9.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
2024-08-01T08:23:07,183983-05:00 usb 1-9.3.1: Product: XInput STANDARD GAMEPAD
2024-08-01T08:23:07,183985-05:00 usb 1-9.3.1: Manufacturer: Microsoft
2024-08-01T08:23:07,183987-05:00 usb 1-9.3.1: SerialNumber: 1.0
2024-08-01T08:23:07,191044-05:00 input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9.3/1-9.3.1/1-9.3.1:1.0/input/input398
GuliKit KK2 Pro:
2024-08-01T08:24:43,369014-05:00 usb 1-9.3.1: new full-speed USB device number 39 using xhci_hcd
2024-08-01T08:24:43,471415-05:00 usb 1-9.3.1: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.10
2024-08-01T08:24:43,471423-05:00 usb 1-9.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
2024-08-01T08:24:43,471425-05:00 usb 1-9.3.1: Product: Controller
2024-08-01T08:24:43,471427-05:00 usb 1-9.3.1: Manufacturer: ZhiXu
2024-08-01T08:24:43,477966-05:00 input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:14.0/usb1/1-9/1-9.3/1-9.3.1/1-9.3.1:1.0/input/input406
Magic NS2 (+ GP2040-CE device):
2024-08-01T08:27:17,921045-05:00 usb 1-1: new full-speed USB device number 46 using xhci_hcd
2024-08-01T08:27:18,070350-05:00 usb 1-1: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.01
2024-08-01T08:27:18,070358-05:00 usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
2024-08-01T08:27:18,070360-05:00 usb 1-1: Product: MAGIC-NS2
2024-08-01T08:27:18,070362-05:00 usb 1-1: Manufacturer: .
2024-08-01T08:27:18,070363-05:00 usb 1-1: SerialNumber: 0253C4960000C3ED
2024-08-01T08:27:18,072875-05:00 input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/input/input413
Those are just dmesg output, I'm not sure if I need more specific info from lsusb or something to be useful.
lsusb -v output for Magic NS2:
Bus 001 Device 046: ID 045e:028e Microsoft Corp. Xbox360 Controller
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 255 Vendor Specific Subclass
bDeviceProtocol 255 Vendor Specific Protocol
bMaxPacketSize0 64
idVendor 0x045e Microsoft Corp.
idProduct 0x028e Xbox360 Controller
bcdDevice 1.01
iManufacturer 1 .
iProduct 2 MAGIC-NS2
iSerial 3 0253C4960000C3ED
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 0x0030
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 93 [unknown]
bInterfaceProtocol 1
iInterface 0
** UNRECOGNIZED: 10 21 10 01 01 24 81 14 03 00 03 13 02 00 03 00
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 4
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 8
*Surprisingly, my HayBox controller also does not even work with the Magic NS 2 adapter in the chain. My GP2040-CE controller, GuliKit controller, and an 8bitdo Pro 2 all work with the Magic NS 2 plugged in, including in the problematic Capcom games. I thought that at least with the Magic NS 2 I could use a HayBox device, so the problem is more severe than I expected.
I know the controller identifier already had to be changed once to fix DPad support on Linux, so maybe this is a big ask if it involves doing a similar thing again. I thought it was worth bringing up at least.
My Open-Frame1 is currently running the configurator branch, but I also ran into this same issue the other day before changing to that firmware.