During this little postmortem 2-piece series, we will explore just one of  the challenges of adding support  to Linux: the controller, and reminisce a

Achieving 0-Day ROG Ally X Support in Bazzite

submited by
Style Pass
2024-09-20 15:30:08

During this little postmortem 2-piece series, we will explore just one of the challenges of adding support to Linux: the controller, and reminisce about the 2 weeks we spent with Rich from FanTheDeck in July while adding support for the Ally X.

Some would say that Ally X is an iterative upgrade over its predecessor. Therefore, adding support for it should be trivial. How difficult was it to support the original Ally, anyway, if Valve just did it by backporting a kernel patch? (spoiler: they did not add support)

When using Bazzite, everything “just works” and it is just a controller and VRR screen after all, so how hard could it be?

Indeed, the magic we baked into Bazzite is so potent, it hides the little fact that the Legion Go controller shows up as 8 disparate devices and the Ally as 7, which have to be meticulously fused together into that pretty Dualsense Edge controller.

Achieving Day 0 support for Ally X is the culmination of a multi-month long effort by the Bazzite and Handheld Daemon projects into building cutting-edge tooling and infrastructure for rapid iteration and testing, in addition to thousands of hours of reverse engineering.

Leave a Comment