[GH-ISSUE #288] Proposal: Xbox 360 Console mode with retail XSM3 authentication #130

Closed
opened 2026-10-22 05:05:56 +00:00 by roman · 3 comments
Owner

Originally created by @CaelThunderwing on GitHub (Sep 14, 2026).
Original GitHub issue: https://github.com/safijari/openpuck/issues/288

(i apologize in advance i'm not exactly used to such and so had been using AI as much, to assit w/ not only this implementation but this Issue. it wrote this ahead, as im kinda self reserved and dont socialize much. the entire build i had it work on was built on xbb/openpuck github.com/xbb/openpuck@1914e37045 . it took little over a week around its daily/weekly limits and ended up having to order a number of NRF52840 boards for testing. along with a USB Controller for reference Data.)


i should of read and Edited what the AI wrote out and pushed back at it preserving my Previous ID's.
Edited as follows:


I have a hardware-validated Xbox 360 Console personality for OpenPuck and would like to contribute it upstream as a focused PR series.

What it provides

  • Xbox 360 console-targeted USB personality with retail XSM3 authentication
  • Validated on stock and RGH Xbox 360 consoles without UsbdSecPatch
  • Validated: enumeration/authentication, hotplug, cold boot, player-ring assignment, digital inputs, analog sticks, stick clicks, rumble, and sustained gameplay

Compatibility proposal

My existing deployed configuration uses:

  • Original Xbox: mode 10
  • Xbox 360 Console: mode 11

To preserve that persisted configuration, the upstream DirectInput and SInput modes should remain 11/12 and set the proposed Xbox 360 Console mode to 13. (this keeps from breaking people who have deployed things allready.

Intended PR scope

  1. XSM3 implementation and Xbox 360 Console USB personality
  2. Required recovery/diagnostic integration used by the validated implementation
  3. Panel/protocol documentation

I would keep Xbox 360 standby wake as a separate follow-up PR.

Before I have it prepare the code, I would appreciate guidance on:
1: (Clipped as i should of removed it, asking to keep a changed Mode ordering is unreasonable. the changes made should make Xbox Console Mode, Mode 13. or Whatever by that point if this is accepted before a PR.)

2: Whether you prefer the diagnostic/recovery support as a prerequisite PR or included with the console mode

3: (this was regarding Code licensing this has been answered below that the code and licenses should be compatible.)

Originally created by @CaelThunderwing on GitHub (Sep 14, 2026). Original GitHub issue: https://github.com/safijari/openpuck/issues/288 (i apologize in advance i'm not exactly used to such and so had been using AI as much, to assit w/ not only this implementation but this Issue. it wrote this ahead, as im kinda self reserved and dont socialize much. the entire build i had it work on was built on xbb/openpuck https://github.com/xbb/openpuck/commit/1914e3704538cb36d96354d893ec342a2a691f87 . it took little over a week around its daily/weekly limits and ended up having to order a number of NRF52840 boards for testing. along with a USB Controller for reference Data.) ----------- i should of read and Edited what the AI wrote out and pushed back at it preserving my Previous ID's. Edited as follows: ------------------ I have a hardware-validated Xbox 360 Console personality for OpenPuck and would like to contribute it upstream as a focused PR series. ## What it provides - Xbox 360 console-targeted USB personality with retail XSM3 authentication - Validated on stock and RGH Xbox 360 consoles without UsbdSecPatch - Validated: enumeration/authentication, hotplug, cold boot, player-ring assignment, digital inputs, analog sticks, stick clicks, rumble, and sustained gameplay ## Compatibility proposal My existing deployed configuration uses: - Original Xbox: mode 10 - Xbox 360 Console: mode 11 To preserve that persisted configuration, the upstream DirectInput and SInput modes should remain 11/12 and set the proposed Xbox 360 Console mode to 13. (this keeps from breaking people who have deployed things allready. ## Intended PR scope 1. XSM3 implementation and Xbox 360 Console USB personality 2. Required recovery/diagnostic integration used by the validated implementation 3. Panel/protocol documentation I would keep Xbox 360 standby wake as a separate follow-up PR. Before I have it prepare the code, I would appreciate guidance on: 1: (Clipped as i should of removed it, asking to keep a changed Mode ordering is unreasonable. the changes made should make Xbox Console Mode, Mode 13. or Whatever by that point if this is accepted before a PR.) 2: Whether you prefer the diagnostic/recovery support as a prerequisite PR or included with the console mode 3: (this was regarding Code licensing this has been answered below that the code and licenses should be compatible.)
roman closed this issue 2026-10-22 05:05:56 +00:00
Author
Owner

@Leseratte10 commented on GitHub (Sep 14, 2026):

To preserve that persisted configuration, the upstream DirectInput and SInput modes would move from 11/12 to 12/13.

Why? If I understood correctly, you have a fork of OpenPuck that implements Xbox 360 support with IDs 11/12, but right now it's not deployed in the wild but only in your testing. The DirectInput and SInput modes are available in a released version of OpenPuck for over a month. If your PR now just re-shuffles them for no reason, this will break everyone's use-case when they currently use DirectInput or SInput.

Why not use new numbers for your new Xbox 360 mode?

As for licensing, the LGPL (which libxsm3 uses) and the AGPL (which OpenPuck uses) are compatible according to this page so using that code should be possible.

<!-- gh-comment-id:5659983205 --> @Leseratte10 commented on GitHub (Sep 14, 2026): > To preserve that persisted configuration, the upstream DirectInput and SInput modes would move from 11/12 to 12/13. Why? If I understood correctly, you have a fork of OpenPuck that implements Xbox 360 support with IDs 11/12, but right now it's not deployed in the wild but only in your testing. The DirectInput and SInput modes are available in a released version of OpenPuck for over a month. If your PR now just re-shuffles them for no reason, this will break everyone's use-case when they currently use DirectInput or SInput. Why not use new numbers for your new Xbox 360 mode? As for licensing, the LGPL (which libxsm3 uses) and the AGPL (which OpenPuck uses) are compatible according to [this page](https://opensource.stackexchange.com/questions/5637/use-lgpl-code-in-an-agpl-project) so using that code should be possible.
Author
Owner

@CaelThunderwing commented on GitHub (Sep 14, 2026):

tbh dont know why it was insistant to retaining what i had left before the new modes, but good point all the same.

if anything it should of suggested the Console Mode to Mode 13. but i'll edit it to suggest it. snip done so i removed/changes parts that unfairly suggested to forcibly change the ID ordering and suggest rather make the console Mode , Mode 13.

the reason i didnt just link it would pretty much be as you stated, it'd break others workflows w/ devices already flashed for the updates that predated my fork. (and that fork was born from general curiosity why as it was by then OpenPuck couldn't enumerate on an Console n how much work it would of been to resolve that.)

edit: Just had it adjust things so now it's in alignment with 0.9.51 making the console mode now Mode 13.

<!-- gh-comment-id:5660841446 --> @CaelThunderwing commented on GitHub (Sep 14, 2026): tbh dont know why it was insistant to retaining what i had left before the new modes, but good point all the same. if anything it should of suggested the Console Mode to Mode 13. but i'll edit it to suggest it. *snip* done so i removed/changes parts that unfairly suggested to forcibly change the ID ordering and suggest rather make the console Mode , Mode 13. the reason i didnt just link it would pretty much be as you stated, it'd break others workflows w/ devices already flashed for the updates that predated my fork. (and that fork was born from general curiosity why as it was by then OpenPuck couldn't enumerate on an Console n how much work it would of been to resolve that.) edit: Just had it adjust things so now it's in alignment with 0.9.51 making the console mode now Mode 13.
Author
Owner

@safijari commented on GitHub (Oct 14, 2026):

Merged.

<!-- gh-comment-id:6158175799 --> @safijari commented on GitHub (Oct 14, 2026): Merged.
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#130
No description provided.