device: add AYANEO Pocket S Mini support - #3177
Conversation
e26d6a1 to
ed9c9bf
Compare
ed9c9bf to
7423047
Compare
|
Updated as requested. The workaround is now selected by the I built the updated ath12k module and DTB from commit
The device is currently running this revision. |
|
@mydanyi resolve conflicts please |
7423047 to
8c20172
Compare
|
@loki666 Done. I rebased the PR onto the latest |
|
@tiopex can you review the changes for |
|
+1 |
2278855 to
1b04b33
Compare
|
@loki666 @spycat88 Could you also review ROCKNIX/emulationstation-next#28 when you have a chance? It adds the Simplified Chinese localization, and the merge conflicts have now been resolved with the branch updated to the latest master. Thanks! |
|
Thanks |
HW-FOUND on an AYANEO Pocket ACE, 2026-08-22. The controller MCU has two modes -- Xbox, where it enumerates as `045e:028e` "Microsoft X-Box 360 pad", and AYANEO, where it enumerates as `4001:0428` "AYANEO Controller". A UART frame switches them and the switch is not reliable, so which one a unit presents is not ours to decide. Our composite device listed only the first, so on a unit in AYANEO mode the actual pad was claimed by nothing: the composite matched only `event4` (the 1c4f:0002 MCU), and the face buttons never reached the capability map or the virtual Xbox pad. NOTHING IN THE SYSTEM NOTICED. Steam still worked, because Steam Input reads raw evdev with its own database -- the only visible trace was the board presenting two Steam virtual pads instead of one. What does not survive it is anything going through SDL's game-controller layer: there is no gamecontrollerdb entry for 4001:0428 (checked against 2059), so SDL does not consider it a controller at all. Any SDL client -- the internal installer's consent screen is the first one we ship -- finds no pad on such a unit. Same shape as ROCKNIX/distribution#3177, which added this row upstream for the Pocket S Mini. Both modes carry the SAME capability map, because both emit the same raw codes. Deliberately NOT added to the Xbox-layout config: no board of that layout has been observed in AYANEO mode, upstream did not add it either, and the map it would need is unverified. VERIFIED ON THE DEVICE, live: config copied into /etc (a writable overlay) + `systemctl restart inputplumber` -> "adding source device evdev://event5 to existing composite device", Steam's duplicate virtual pad disappeared, and the virtual pad then reported, pressing by position, bottom=BTN_SOUTH right=BTN_EAST left=BTN_NORTH top=BTN_WEST -- byte-identical to a Pocket S2. That also settles a question the fleet had never answered: the MCUs emit by LABEL (the ACE's bottom button, printed B, reports BTN_EAST) and the capability map exists to turn that back into position. Once both modes are claimed, a Nintendo-layout board and an Xbox-layout board produce the same positional output at the layer SDL reads.
|
@loki666 @spycat88 Follow-up font support is now in #3235. It installs Noto Sans CJK SC system-wide for Steam and uses the same font for the Chinese EmulationStation UI. This complements the Pocket S Mini support here and ROCKNIX/emulationstation-next#28. |
Summary
Add ROCKNIX support for the AYANEO Pocket S Mini (SM8550).
This includes:
The Pocket S Mini uses the swapped AYANEO MCU capability map to normalize its raw face-button events to the Xbox-style prompts shown by ROCKNIX.
Testing
qcs8550-ayaneo-pocketsmini.dtbwith the ROCKNIX Docker build environment.ath12k/mac.oand the Pocket S Mini DTB, and confirmed the new property in the final DTB.config.xml, checked the Steam launcher withbash -n, and ran Git whitespace checks.Known Limitations
Additional Context
0x5a; its runtime report protocol uses address0x58, matching the stock device behavior.qcom,skip-11d-scan-offload; only the Pocket S Mini DTS enables it.AI Usage
Did you use AI tools to help write this code? YES