[PR #1806] [MERGED] Android: Add >1 controller, multitap, external controller vibration #711

Open
opened 2026-01-29 19:09:14 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/stenzek/duckstation/pull/1806
Author: @stenzek
Created: 3/14/2021
Status: Merged
Merged: 3/14/2021
Merged by: @stenzek

Base: masterHead: android-multi-controllers


📝 Commits (6)

  • ee17146 CommonHostInterface: Move controller ID parsing to interface
  • 1839bfa Android: Rewrite input binding to be more flexible
  • c8a029c Android: Support more than one controller
  • 26ee2ce Android: Implement support 8 controllers (multitap)
  • d2cef2e Android: Pretty print device IDs
  • 686fc4c Android: Add hotkey categories/grouping

📊 Changes

30 files changed (+1152 additions, -789 deletions)

View changed files

📝 android/app/src/cpp/android_controller_interface.cpp (+111 -57)
📝 android/app/src/cpp/android_controller_interface.h (+18 -12)
📝 android/app/src/cpp/android_host_interface.cpp (+108 -2)
📝 android/app/src/cpp/android_host_interface.h (+5 -0)
📝 android/app/src/main/AndroidManifest.xml (+2 -2)
📝 android/app/src/main/java/com/github/stenzek/duckstation/AndroidHostInterface.java (+5 -0)
📝 android/app/src/main/java/com/github/stenzek/duckstation/ControllerBindingDialog.java (+38 -37)
📝 android/app/src/main/java/com/github/stenzek/duckstation/ControllerBindingPreference.java (+88 -8)
android/app/src/main/java/com/github/stenzek/duckstation/ControllerMappingActivity.java (+0 -279)
android/app/src/main/java/com/github/stenzek/duckstation/ControllerSettingsActivity.java (+445 -0)
📝 android/app/src/main/java/com/github/stenzek/duckstation/EmulationActivity.java (+16 -5)
📝 android/app/src/main/java/com/github/stenzek/duckstation/EmulationSurfaceView.java (+158 -232)
📝 android/app/src/main/java/com/github/stenzek/duckstation/GamePropertiesActivity.java (+1 -9)
📝 android/app/src/main/java/com/github/stenzek/duckstation/MainActivity.java (+2 -4)
📝 android/app/src/main/java/com/github/stenzek/duckstation/SettingsActivity.java (+3 -6)
android/app/src/main/res/drawable/ic_baseline_vibration_24.xml (+10 -0)
📝 android/app/src/main/res/layout/fragment_controller_settings.xml (+2 -1)
📝 android/app/src/main/res/menu/menu_main.xml (+5 -3)
📝 android/app/src/main/res/values-es/arrays.xml (+3 -1)
📝 android/app/src/main/res/values-it/arrays.xml (+3 -1)

...and 10 more files

📄 Description

What the title says. New controller UI which is more flexible. Needs testing.

Controller descriptors are now used instead of "ControllerN" IDs, so you will need to rebind your controllers.

I've tested a combination of keyboards and DS4/XBox pads. Vibration even works with the XBox pad, but it's only on/off, no small/large motor.


🔄 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/stenzek/duckstation/pull/1806 **Author:** [@stenzek](https://github.com/stenzek) **Created:** 3/14/2021 **Status:** ✅ Merged **Merged:** 3/14/2021 **Merged by:** [@stenzek](https://github.com/stenzek) **Base:** `master` ← **Head:** `android-multi-controllers` --- ### 📝 Commits (6) - [`ee17146`](https://github.com/stenzek/duckstation/commit/ee171465eadcbee5e1a1820b8ae255dd173750f8) CommonHostInterface: Move controller ID parsing to interface - [`1839bfa`](https://github.com/stenzek/duckstation/commit/1839bfab3bd7192b0ac9e05d0461b650c75a2607) Android: Rewrite input binding to be more flexible - [`c8a029c`](https://github.com/stenzek/duckstation/commit/c8a029c5cb1d3432e6173922b436fb79fd8513c0) Android: Support more than one controller - [`26ee2ce`](https://github.com/stenzek/duckstation/commit/26ee2ce083429a1bbf1d6445a7d45ec91d56be55) Android: Implement support 8 controllers (multitap) - [`d2cef2e`](https://github.com/stenzek/duckstation/commit/d2cef2e3b53a2231beaac97c267d2693a6bf8f82) Android: Pretty print device IDs - [`686fc4c`](https://github.com/stenzek/duckstation/commit/686fc4cc2aa0dcfb2feba571a9a793d3b90e47c9) Android: Add hotkey categories/grouping ### 📊 Changes **30 files changed** (+1152 additions, -789 deletions) <details> <summary>View changed files</summary> 📝 `android/app/src/cpp/android_controller_interface.cpp` (+111 -57) 📝 `android/app/src/cpp/android_controller_interface.h` (+18 -12) 📝 `android/app/src/cpp/android_host_interface.cpp` (+108 -2) 📝 `android/app/src/cpp/android_host_interface.h` (+5 -0) 📝 `android/app/src/main/AndroidManifest.xml` (+2 -2) 📝 `android/app/src/main/java/com/github/stenzek/duckstation/AndroidHostInterface.java` (+5 -0) 📝 `android/app/src/main/java/com/github/stenzek/duckstation/ControllerBindingDialog.java` (+38 -37) 📝 `android/app/src/main/java/com/github/stenzek/duckstation/ControllerBindingPreference.java` (+88 -8) ➖ `android/app/src/main/java/com/github/stenzek/duckstation/ControllerMappingActivity.java` (+0 -279) ➕ `android/app/src/main/java/com/github/stenzek/duckstation/ControllerSettingsActivity.java` (+445 -0) 📝 `android/app/src/main/java/com/github/stenzek/duckstation/EmulationActivity.java` (+16 -5) 📝 `android/app/src/main/java/com/github/stenzek/duckstation/EmulationSurfaceView.java` (+158 -232) 📝 `android/app/src/main/java/com/github/stenzek/duckstation/GamePropertiesActivity.java` (+1 -9) 📝 `android/app/src/main/java/com/github/stenzek/duckstation/MainActivity.java` (+2 -4) 📝 `android/app/src/main/java/com/github/stenzek/duckstation/SettingsActivity.java` (+3 -6) ➕ `android/app/src/main/res/drawable/ic_baseline_vibration_24.xml` (+10 -0) 📝 `android/app/src/main/res/layout/fragment_controller_settings.xml` (+2 -1) 📝 `android/app/src/main/res/menu/menu_main.xml` (+5 -3) 📝 `android/app/src/main/res/values-es/arrays.xml` (+3 -1) 📝 `android/app/src/main/res/values-it/arrays.xml` (+3 -1) _...and 10 more files_ </details> ### 📄 Description What the title says. New controller UI which is more flexible. Needs testing. Controller descriptors are now used instead of "ControllerN" IDs, so you will need to rebind your controllers. I've tested a combination of keyboards and DS4/XBox pads. Vibration even works with the XBox pad, but it's only on/off, no small/large motor. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-29 19:09:14 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/duckstation#711