RetroPie supports both Xbox 360 and Xbox One controllers with minimal effort, for the best experience I recommend binding using the B-A, Y-X scheme and reversing the B-A buttons in the EmulationStation options. This gives you the best mappings for emulators while matching up the button prompts during game selection. The binding scheme looks like this:
Here are a few additional tips for connecting Xbox 360/Xbox One controllers:
- Xbox 360 controllers can be connected direct to USB if it’s a wired controller.
- Xbox 360 wireless controllers require the official Microsoft Xbox 360 Wireless Receiver device, though there are reports that some of the knock-off versions will also function (the official receiver is getting harder to find, the cheap eBay versions might provide an option going forward.)
- The Xbox 360 Play-and-Charge kit will NOT allow you to use a wireless controller without the receiver, it only transfers power, not data.
- Xbox One controllers can be connected directly to the Pi using an off-the-shelf micro USB cable.
- There are two core versions of the Xbox One controller, the original launch version and the newer version that is included with the Xbox One S. The newer version added support for native Bluetooth connectivity. With the newer revision you should be able to connect the controller to a Pi3 or Pi2 with a USB Bluetooth adapter. I haven’t tested this personally, I’d be weary of lag induced by the Bluetooth connection.
- Microsoft released a USB adapter that adds wireless connectivity to Xbox One controllers connected to a Windows PC, but the drivers only work with Windows 10. At the time this article was written no Linux support exists.