xpad v1.1.0 by Alexandre78500
Wired Xbox One and Series controllers on the PS5, seen by the console as a DualSense
Install on your PS5
Payload: start an ELF loader on the PS5 first, such as elfldr, which listens on port 9021. Then open this address in a browser on a computer or phone on the same network, with your PS5's address in place of PS5. elfldr downloads the payload and runs it.
http://PS5:9021/?uri=https%3A%2F%2Fstore.brewology.com%2Fdl%2F2368%2Fxpad-ps5.elf
Files
| File | Size | SHA-256 | |
|---|---|---|---|
| xpad-ps5.elf | 147 KB | 94f5921b…2e38 | Download |
Screenshots
About xpad
Plug an Xbox One or Series pad in with a USB cable and the console takes it for a DualSense, in the system menu and in PS4 and PS5 games. The Xbox button opens the PS menu, and View and Menu pressed together click the touchpad. The rest go by position, so A is Cross.
You can pull the cable out mid-game and plug it back in, and the pad also comes back after rest mode. It rumbles once when it's ready.
Use a proper USB data cable. A lot of micro-USB cables only charge, and the payload never sees the controller through one. It handles one controller at a time, games get no rumble, and Xbox 360 pads aren't supported. The developer lists firmware 13.40.
The log is in /data/xpad-ps5/xpad-ps5.log, and the latest lines can be read in a browser on port 8096. To stop it, create an empty file called stop in /data/xpad-ps5.
You can pull the cable out mid-game and plug it back in, and the pad also comes back after rest mode. It rumbles once when it's ready.
Use a proper USB data cable. A lot of micro-USB cables only charge, and the payload never sees the controller through one. It handles one controller at a time, games get no rumble, and Xbox 360 pads aren't supported. The developer lists firmware 13.40.
The log is in /data/xpad-ps5/xpad-ps5.log, and the latest lines can be read in a browser on port 8096. To stop it, create an empty file called stop in /data/xpad-ps5.
Release notes
v1.1.0 · xpad-ps5 1.1.0 · Oct 20, 2026
- Survives rest mode. 1.0.x quit when the console went to rest, and Payload Manager's autoload only runs on a full boot, so the controller stayed dead after waking. Now the controller is set aside during rest and picked up again on wake.
- The log page shows the latest lines. It used to keep the oldest ones and cut the end once full.
- Stopping is bounded (10 s, then exit): a stopped instance could linger next to the new one.
tools/send.shreads back the slot Payload Manager actually picked (xpad-ps5.elflands inlocal/xpad), waits for the old process to be gone, and only stops it when it holds port 8096.
Tested on a PS5 Slim, firmware 13.40, Xbox One S controller (045e:02ea): this build starts, picks up the controller as a virtual DualSense, and stops cleanly. The rest/wake logic is the same code that was checked through a real rest and wake-up on that console. Built with ps5-payload-sdk 0.44.
