[PR #174] [MERGED] Add BACK4+DPAD mode-switch chords (PS3/PS4/PS5/HORI) #233

Closed
opened 2026-10-22 05:08:00 +00:00 by roman · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/safijari/openpuck/pull/174
Author: @Copilot
Created: 7/15/2026
Status: ✅ Merged
Merged: 7/29/2026
Merged by: @safijari

Base: main ← Head: copilot/170-add-controller-mapping


📝 Commits (4)

  • 80d6159 Add BACK4+DPAD mode-switch chords for PS3/PS4/PS5/HORI
  • d27323f Merge branch 'main' into copilot/170-add-controller-mapping
  • 303dc02 Working now
  • 57dbc85 fmt

📊 Changes

10 files changed (+145 additions, -30 deletions)

View changed files

📝 CODE_MAP.md (+7 -5)
📝 OpenPuck/config.cpp (+32 -3)
📝 OpenPuck/config.h (+8 -0)
📝 OpenPuck/gamepad_util.cpp (+2 -1)
📝 OpenPuck/mode_switch_hori.cpp (+3 -2)
📝 OpenPuck/mode_switch_pro.cpp (+2 -1)
📝 OpenPuck/rf_link.cpp (+27 -3)
📝 OpenPuck/webusb_config.cpp (+19 -3)
📝 docs/TESTING_GUIDE.md (+2 -1)
📝 docs/index.html (+43 -11)

📄 Description

Extends the existing BACK4+face-button chord system with four fixed DPAD shortcuts for the console controller personalities.

Chord Mode
BACK4 + ← PS3 (MODE_PS3)
BACK4 + ↑ DS4 game (MODE_DS4_GAME)
BACK4 + → PS5 game (MODE_PS5_GAME)
BACK4 + ↓ Switch HORI (MODE_SW_HORI)

Changes

  • rf_link.cpp — four else if branches added to the chord detector after the existing A/B/X/Y checks; raw-report mask extended to scrub DPAD bits from rep[3] when BACK4 is held (prevents direction leaking through to Xbox/puck PUSH modes)
  • gamepad_util.cpp — psButtonsFromSteam BACK4 mask gains all four DPAD bits (shared path for PS3, PS5, DS4, HIDGYRO)
  • mode_switch_hori.cpp, mode_switch_pro.cpp — per-mode BACK4 masks likewise extended with DPAD bits

🔄 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/safijari/openpuck/pull/174 **Author:** [@Copilot](https://github.com/apps/copilot-swe-agent) **Created:** 7/15/2026 **Status:** ✅ Merged **Merged:** 7/29/2026 **Merged by:** [@safijari](https://github.com/safijari) **Base:** `main` ← **Head:** `copilot/170-add-controller-mapping` --- ### 📝 Commits (4) - [`80d6159`](https://github.com/safijari/openpuck/commit/80d61598f6046591f936d57355aa3f3fb103383e) Add BACK4+DPAD mode-switch chords for PS3/PS4/PS5/HORI - [`d27323f`](https://github.com/safijari/openpuck/commit/d27323f7282134cc32fec49cb71ab1adb7b96ebd) Merge branch 'main' into copilot/170-add-controller-mapping - [`303dc02`](https://github.com/safijari/openpuck/commit/303dc0299366571f3f1147b94c5ea10dbaa439ef) Working now - [`57dbc85`](https://github.com/safijari/openpuck/commit/57dbc854ad1c0967e0dd1fcc7fd544e166c95604) fmt ### 📊 Changes **10 files changed** (+145 additions, -30 deletions) <details> <summary>View changed files</summary> 📝 `CODE_MAP.md` (+7 -5) 📝 `OpenPuck/config.cpp` (+32 -3) 📝 `OpenPuck/config.h` (+8 -0) 📝 `OpenPuck/gamepad_util.cpp` (+2 -1) 📝 `OpenPuck/mode_switch_hori.cpp` (+3 -2) 📝 `OpenPuck/mode_switch_pro.cpp` (+2 -1) 📝 `OpenPuck/rf_link.cpp` (+27 -3) 📝 `OpenPuck/webusb_config.cpp` (+19 -3) 📝 `docs/TESTING_GUIDE.md` (+2 -1) 📝 `docs/index.html` (+43 -11) </details> ### 📄 Description Extends the existing BACK4+face-button chord system with four fixed DPAD shortcuts for the console controller personalities. | Chord | Mode | |---|---| | BACK4 + ← | PS3 (`MODE_PS3`) | | BACK4 + ↑ | DS4 game (`MODE_DS4_GAME`) | | BACK4 + → | PS5 game (`MODE_PS5_GAME`) | | BACK4 + ↓ | Switch HORI (`MODE_SW_HORI`) | ## Changes - **`rf_link.cpp`** — four `else if` branches added to the chord detector after the existing A/B/X/Y checks; raw-report mask extended to scrub DPAD bits from `rep[3]` when BACK4 is held (prevents direction leaking through to Xbox/puck PUSH modes) - **`gamepad_util.cpp`** — `psButtonsFromSteam` BACK4 mask gains all four DPAD bits (shared path for PS3, PS5, DS4, HIDGYRO) - **`mode_switch_hori.cpp`**, **`mode_switch_pro.cpp`** — per-mode BACK4 masks likewise extended with DPAD bits --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
roman 2026-10-22 05:08:00 +00:00
Sign in to join this conversation.
No labels
pull-request
wontfix
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
safijari/openpuck#233
No description provided.