Add Xbox split-screen support #6091
Open
+262
−12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Adds Xbox split-screen (couch co-op) support, allowing multiple players to join from a single Xbox console.
Background
This feature has been requested by the community (see Reddit, #750, #1459, #2521). Previous attempts were made in #976 and #3109 but were never merged.
Implementation
Sub-client handling
SubClientLoginPacketprocessing (removed fromILLEGAL_SERIALIZER)setupSubClientSession()inLoginEncryptionUtilsto authenticate sub-clientsDisconnect detection
DisconnectPackethandler to properly detect when sub-client leaves split-screenReconnect handling
BedrockServerSessionGeyserSessionfor clean rejoinSession tracking
parentSessionfield to track sub-client relationshipssessionByXuid()lookup inSessionManagerTesting
Tested on Xbox Series X with split-screen:
Download
Binary file can be found here: https://github.com/psalkowski/Geyser/releases/download/v2.9.2-splitscreen/Geyser-Velocity-2.9.2-splitscreen.jar