[PR #242] [MERGED] Allow emulating a Steam Machine's receiver instead of a Puck #256

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

📋 Pull Request Information

Original PR: https://github.com/safijari/openpuck/pull/242
Author: @Leseratte10
Created: 8/22/2026
Status: ✅ Merged
Merged: 9/4/2026
Merged by: @safijari

Base: main ← Head: machine3


📝 Commits (4)

📊 Changes

7 files changed (+78 additions, -25 deletions)

View changed files

📝 OpenPuck/config.cpp (+11 -3)
📝 OpenPuck/config.h (+2 -0)
📝 OpenPuck/identity.cpp (+9 -1)
📝 OpenPuck/identity.h (+3 -2)
📝 OpenPuck/puck_hid.cpp (+17 -4)
📝 OpenPuck/webusb_config.cpp (+28 -15)
📝 docs/index.html (+8 -0)

📄 Description

This adds a toggle to the WebUSB configuration page (taking the spot of the unused rsvd2 variable) to choose whether OpenPuck should emulate a Steam Controller Puck, or a Steam Machine internal receiver.

This is mostly just cosmetics (it shows "Steam Machine Internal Adapter" instead of "Steam Controller Puck"), but it might be helpful for people actually putting an OpenPuck chip inside their own custom Steam Machine, since it lets Steam know that that's not actually a Puck the controller can be placed on.

This re-uses the rsvd2 variable previously used for g_landAll87. To make sure there's no conflicts with past values, I've added a new magic value "0xEE" for this variable; only this value will make OpenPuck act like a Steam Machine.


🔄 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/242 **Author:** [@Leseratte10](https://github.com/Leseratte10) **Created:** 8/22/2026 **Status:** ✅ Merged **Merged:** 9/4/2026 **Merged by:** [@safijari](https://github.com/safijari) **Base:** `main` ← **Head:** `machine3` --- ### 📝 Commits (4) - [`d518bc3`](https://github.com/safijari/openpuck/commit/d518bc39c6fc0128c0e7d91a1956fa4cb670066a) Allow emulating Steam Machine internal receiver - [`9a97bd0`](https://github.com/safijari/openpuck/commit/9a97bd006e2c32de32b2c6db3e6c46648ffcd3ab) Fix - [`6dd1dd3`](https://github.com/safijari/openpuck/commit/6dd1dd3929de32c545c083501fdc1e68302772ca) Fix clang-format - [`634942e`](https://github.com/safijari/openpuck/commit/634942e335d09198a09fa72a1198a3283d62a382) Fix comment ### 📊 Changes **7 files changed** (+78 additions, -25 deletions) <details> <summary>View changed files</summary> 📝 `OpenPuck/config.cpp` (+11 -3) 📝 `OpenPuck/config.h` (+2 -0) 📝 `OpenPuck/identity.cpp` (+9 -1) 📝 `OpenPuck/identity.h` (+3 -2) 📝 `OpenPuck/puck_hid.cpp` (+17 -4) 📝 `OpenPuck/webusb_config.cpp` (+28 -15) 📝 `docs/index.html` (+8 -0) </details> ### 📄 Description This adds a toggle to the WebUSB configuration page (taking the spot of the unused `rsvd2` variable) to choose whether OpenPuck should emulate a Steam Controller Puck, or a Steam Machine internal receiver. This is mostly just cosmetics (it shows "Steam Machine Internal Adapter" instead of "Steam Controller Puck"), but it might be helpful for people actually putting an OpenPuck chip inside their own custom Steam Machine, since it lets Steam know that that's not actually a Puck the controller can be placed on. This re-uses the `rsvd2` variable previously used for g_landAll87. To make sure there's no conflicts with past values, I've added a new magic value "0xEE" for this variable; only this value will make OpenPuck act like a Steam Machine. --- <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:21 +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#256
No description provided.