From 6dd10033d31c7f1179e0e379ef4f579c149a95ba Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sat, 23 May 2015 22:55:53 -0400 Subject: [PATCH 1/2] NetPlayClient: Fix reassembling of system time from packets The shifts need to be swapped to correctly reassemble a 64-bit integer. --- Source/Core/Core/NetPlayClient.cpp | 2 +- Source/Core/Core/NetPlayServer.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp index b324092d468d..ff022e851382 100644 --- a/Source/Core/Core/NetPlayClient.cpp +++ b/Source/Core/Core/NetPlayClient.cpp @@ -395,7 +395,7 @@ unsigned int NetPlayClient::OnData(sf::Packet& packet) u32 x, y; packet >> x; packet >> y; - g_netplay_initial_gctime = x | ((u64)y >> 32); + g_netplay_initial_gctime = x | ((u64)y << 32); } m_dialog->OnMsgStartGame(); diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index c2f0a3f751b5..ea1de80980e9 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -657,7 +657,7 @@ bool NetPlayServer::StartGame() *spac << m_settings.m_EXIDevice[0]; *spac << m_settings.m_EXIDevice[1]; *spac << (u32)g_netplay_initial_gctime; - *spac << (u32)g_netplay_initial_gctime << 32; + *spac << (u32)(g_netplay_initial_gctime >> 32); SendAsyncToClients(spac); From 1d2b29734a6f4afad5a7c6958d353eefd4fab3b0 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sat, 23 May 2015 22:58:39 -0400 Subject: [PATCH 2/2] NetPlayClient: Rename time variables to be more self-explanatory --- Source/Core/Core/NetPlayClient.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp index ff022e851382..0a3186617011 100644 --- a/Source/Core/Core/NetPlayClient.cpp +++ b/Source/Core/Core/NetPlayClient.cpp @@ -392,10 +392,10 @@ unsigned int NetPlayClient::OnData(sf::Packet& packet) packet >> tmp; g_NetPlaySettings.m_EXIDevice[1] = (TEXIDevices)tmp; - u32 x, y; - packet >> x; - packet >> y; - g_netplay_initial_gctime = x | ((u64)y << 32); + u32 time_low, time_high; + packet >> time_low; + packet >> time_high; + g_netplay_initial_gctime = time_low | ((u64)time_high << 32); } m_dialog->OnMsgStartGame();