1

I have not found the answer to this by searching.

I did read that the original Xbox had analog face buttons but Xbox 360 did not.

1

According to Wikipedia, the Xbox One only has digital face buttons:

11× Digital buttons
(Y, B, A, X, LB, RB, left stick click, right stick click, Menu, View, Xbox)

The same applies to the Xbox 360 controller:

The right face of the controller features four digital action buttons: a green A button, red B button, blue X button, and yellow Y button.

Interestingly, the original Xbox controller does have analog buttons, however:

Pressure-sensitive buttons
(A, B, X, Y, Black, White)

As for why Microsoft removed pressure-sensitive face buttons from its controllers, it's probably for the same reason why Sony removed them from the PS4 controller: hardly any game ever made use of the pressure-sensitivity, and hardly anyone even knew they existed.

| improve this answer | |
  • Thanks for this, Nolonar. But the Wikipedia article shows no sources about it. I am not entirely satisfied – Banjo Kazooie-optional 60FPS Apr 12 at 13:30
  • "As for why Microsoft removed pressure-sensitive face buttons from its controllers, it's probably for the same reason why Sony removed them from the PS4 controller: hardly any game ever made use of the pressure-sensitivity, and hardly anyone even knew they existed." Hm. Yeah, I was surprised to re-discover that PS3 controllers had analog face buttons, when I was searching the Web recently. I remember being confused but impressed when I accidentally first discovered it while playing Gran Turismo Academy. – Banjo Kazooie-optional 60FPS Apr 12 at 13:39
0

The xpad module in the Linux kernel supports Xbox (original), Xbox 360, and Xbox One controllers. You can inspect the code to see that only the original Xbox controller uses more than one bit per button.

xpad_process_packet processes Xbox controller inputs, note that the entire byte is passed to input_report_key (although the module still treats it as a boolean value): https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c#L640

xpad360_process_packet processes Xbox 360 controller inputs, bit masks are used so that only the single bit corresponding to each button is passed to input_report_key: https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c#L701

xpadone_process_packet processes Xbox One controller inputs, again using bit masks: https://github.com/torvalds/linux/blob/master/drivers/input/joystick/xpad.c#L836

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.