From 6d7ebb768679be3d0baad3d408b2c6394233cad7 Mon Sep 17 00:00:00 2001 From: Arisotura Date: Sat, 25 Mar 2023 10:03:33 +0100 Subject: [PATCH] attempt at preventing desyncs, let's see --- src/frontend/qt_sdl/Netplay.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/frontend/qt_sdl/Netplay.cpp b/src/frontend/qt_sdl/Netplay.cpp index 2aa524cf..7fd3b60c 100644 --- a/src/frontend/qt_sdl/Netplay.cpp +++ b/src/frontend/qt_sdl/Netplay.cpp @@ -677,8 +677,15 @@ void ProcessMirrorClient() { if (!MirrorHost) return; + bool block = false; + if (emuThread->emuIsRunning() && NDS::NumFrames > 4) + { + if (InputQueue.empty()) + block = true; + } + ENetEvent event; - while (enet_host_service(MirrorHost, &event, 0) > 0) + while (enet_host_service(MirrorHost, &event, block ? 5000 : 0) > 0) { switch (event.type) { @@ -839,6 +846,7 @@ void ProcessInput() if (frame.FrameNum < NDS::NumFrames) { + // TODO: this situation is a desync printf("Netplay: BAD! LAGGING BEHIND\n"); while (frame.FrameNum < NDS::NumFrames) {