From 07f7fc8b3f9ee73def523aed5471abef90b29ec1 Mon Sep 17 00:00:00 2001 From: MiTHRAL Date: Fri, 28 Aug 2026 14:32:13 -0400 Subject: [PATCH] netcode-revival: force the game's internal 'live user' flag The game's frontend refuses 'Xbox Live features' based on its OWN static flag (0x83028851, read by sub_8263E788) BEFORE calling any rexglue API - which is why no trace logged during the party attempt. The game never sets the flag without a real Live session. The ghost network loop now forces it to 1 every tick so the frontend gate opens and the flow reaches the traced XNet/Xam calls. Fragile: address tied to this title's build. --- src/native/skate3_native_ghost.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/native/skate3_native_ghost.cpp b/src/native/skate3_native_ghost.cpp index 873b3a1..e5507cd 100644 --- a/src/native/skate3_native_ghost.cpp +++ b/src/native/skate3_native_ghost.cpp @@ -726,6 +726,11 @@ void GhostNetworkLoop() { const double dt = std::min(now - last_tick, 0.25); last_tick = now; + // netcode-revival: the game's frontend refuses "Xbox Live features" + // before calling any rexglue API when its internal live flag is 0; force + // it so the party/EA flow can start. Runs regardless of ghost enable. + rex::system::XNetTransport::Instance().ForceLiveFlag(); + if (!Enabled()) { ResetSession(); std::this_thread::sleep_for(std::chrono::milliseconds(50));