[PR #49] feat(joypad): PS5 joypads over USB + acknowledge UHID set-report requests #50

Open
opened 2026-10-15 12:51:36 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/games-on-whales/inputtino/pull/49
Author: @urwrstkn8mare
Created: 9/13/2026
Status: 🔄 Open

Base: stable ← Head: ps5-usb-mode


📝 Commits (2)

  • 5469c87 feat(joypad): allow creating PS5 joypads over USB
  • b4657bf fix(joypad): acknowledge UHID set-report requests

📊 Changes

8 files changed (+78 additions, -19 deletions)

View changed files

📝 bindings/rust/inputtino/src/common.rs (+9 -1)
📝 bindings/rust/inputtino/src/joypad_ps5.rs (+23 -5)
📝 bindings/rust/inputtino/src/lib.rs (+1 -1)
📝 include/inputtino/input.h (+11 -0)
📝 include/inputtino/input.hpp (+6 -1)
📝 src/c-bindings/joypad_ps5.cpp (+16 -8)
📝 src/uhid/joypad_ps5.cpp (+11 -2)
📝 src/uinput/joypad_ps.cpp (+1 -1)

📄 Description

two changes to the uhid PS5 joypad that came up while getting a few games working through moonshine:

  • PS5 joypads could only be created as Bluetooth devices. there's now an optional connection type (Bluetooth or USB) in the C++, C and Rust APIs, with Bluetooth staying the default. Bluetooth DualSense input got mangled under Proton for the Dying Light DualSense mod, in my case. presenting the pad over USB avoids it
  • UHID_SET_REPORT requests were never answered, so the kernel blocked each one until it timed out (~5s) and failed it. some DualSense clients (Outlast Trials, in my case) refuse the controller when these writes fail. feature reports are now acknowledged

tested with moonshine: Dying Light and Outlast Trials both work now. (used LLMs to help debug this)


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/games-on-whales/inputtino/pull/49 **Author:** [@urwrstkn8mare](https://github.com/urwrstkn8mare) **Created:** 9/13/2026 **Status:** 🔄 Open **Base:** `stable` ← **Head:** `ps5-usb-mode` --- ### 📝 Commits (2) - [`5469c87`](https://github.com/games-on-whales/inputtino/commit/5469c872385d93bdb50f66613f019cefe3715b22) feat(joypad): allow creating PS5 joypads over USB - [`b4657bf`](https://github.com/games-on-whales/inputtino/commit/b4657bfa5b61c1ec55012e7a9077b5ffe3c68fad) fix(joypad): acknowledge UHID set-report requests ### 📊 Changes **8 files changed** (+78 additions, -19 deletions) <details> <summary>View changed files</summary> 📝 `bindings/rust/inputtino/src/common.rs` (+9 -1) 📝 `bindings/rust/inputtino/src/joypad_ps5.rs` (+23 -5) 📝 `bindings/rust/inputtino/src/lib.rs` (+1 -1) 📝 `include/inputtino/input.h` (+11 -0) 📝 `include/inputtino/input.hpp` (+6 -1) 📝 `src/c-bindings/joypad_ps5.cpp` (+16 -8) 📝 `src/uhid/joypad_ps5.cpp` (+11 -2) 📝 `src/uinput/joypad_ps.cpp` (+1 -1) </details> ### 📄 Description two changes to the uhid PS5 joypad that came up while getting a few games working through moonshine: - PS5 joypads could only be created as Bluetooth devices. there's now an optional connection type (Bluetooth or USB) in the C++, C and Rust APIs, with Bluetooth staying the default. Bluetooth DualSense input got mangled under Proton for the Dying Light DualSense mod, in my case. presenting the pad over USB avoids it - `UHID_SET_REPORT` requests were never answered, so the kernel blocked each one until it timed out (~5s) and failed it. some DualSense clients (Outlast Trials, in my case) refuse the controller when these writes fail. feature reports are now acknowledged tested with moonshine: Dying Light and Outlast Trials both work now. (used LLMs to help debug this) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
games-on-whales/inputtino#50
No description provided.