Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Xbox 360 compatibility #75

Open
Soundtoxin opened this issue Aug 1, 2024 · 0 comments
Open

Xbox 360 compatibility #75

Soundtoxin opened this issue Aug 1, 2024 · 0 comments

Comments

@Soundtoxin
Copy link

Soundtoxin commented Aug 1, 2024

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. InvoxiPlayGames/UsbdSecPatch#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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant