• 0 Posts
  • 64 Comments
Joined 3 months ago
cake
Cake day: March 8th, 2025

help-circle





    1. You’d presumably do it as 2.0, but I used 1.1 for the numbers just to demonstrate that you can definitely fit 8 controllers into a packet even if you go for unreasonable levels of backwards compatibility.
    2. Without a hub, I’m not aware of a way to exceed 8 axes per HID device (7 in Windows for some reason). Each Xbox controller has six, so even two controllers can’t be one device.
    3. As far as I can find, most USB 2 implementations can take up to 1000 packets per second per root hub, regardless of packet size. I was already assuming one controller poll per packet for the hub version, and that’s 125Hz per controller with all eight.
    4. You aren’t actually pressing buttons at 125Hz, no. However, if your input is barely too late for one 125Hz poll, you can get enough delay to be noticeable in fast-paced games. Most controllers and mice use 1kHz for this reason, with some even supporting up to 8kHz if your USB implementation supports it (which apparently is pretty common with xHCI, but Microsoft didn’t want to rely on that for obvious reasons).


  • Well, yeah, obviously it can be done. What’s the latency, though? A hub’s muxing alternates between packets from different devices, but even USB 1.1 has 64B packets, leaving 64b per controller if you report them all in one packet. That’s 15 digital buttons, 6b per axis, and 13b left over for routing.

    However, I can’t think of a way to get the computer to decode one 64B packet into eight separate HID polls without a custom driver. If you use a hub, you’re limited to 8kHz total by the spec, but many EHCI controllers limit that to 1kHz. 125Hz per player is not great.

    I can’t confirm that this is the reason or that there isn’t a different way around the restriction, but it seems likely from what I know of USB hubs.

    TL;DR: with a custom driver, you can report all controllers on all USB polls rather than each taking up a whole interval, giving you 8x the polling rate compared to an emulated hub with 8 standard HIDs.


  • The 8bitdo version is easier to implement because it’s one dongle per controller. The Xbox dongle supports eight controllers per dongle. This complicates things; I assume they didn’t want to emulate an eight-port USB hub on the dongle.

    You can use BT, but there’s a reason 8bitdo has a dongle as well: BT has worse latency, I assume due to protocol overhead.

    And at least Xbox controllers are cross-compatible. You can’t use a DS4 on a PS5, even if you’re playing a PS4 game.



  • They have three categories: “biological woman,” which is a fertile cis woman with XX chromosomes and a vulva; “biological man,” which is a fertile or formerly fertile cis man with XY chromosomes; and undesirables, who are everyone else and are referred to by whichever terminology is convenient for them at any given point.