From 9cabad158afad69e6facbaf671906d53fbd6adbc Mon Sep 17 00:00:00 2001 From: str1k3r <115313679+S1l3ntStr1ke87@users.noreply.github.com> Date: Sun, 23 Aug 2026 17:56:01 -0400 Subject: [PATCH] feat: ability to turn off vsync --- .../Common/Network/GameNetworkManager.cpp | 8 ++++++++ Minecraft.Client/Windows64/Windows64_Minecraft.cpp | 13 +++++++++++-- Minecraft.Client/Windows64/Windows64_Minecraft.h | 1 + 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Minecraft.Client/Common/Network/GameNetworkManager.cpp b/Minecraft.Client/Common/Network/GameNetworkManager.cpp index 4f0e5ab7..6fefddff 100644 --- a/Minecraft.Client/Common/Network/GameNetworkManager.cpp +++ b/Minecraft.Client/Common/Network/GameNetworkManager.cpp @@ -37,6 +37,10 @@ #include "..\..\Xbox\Network\NetworkPlayerXbox.h" #endif +#ifdef _WINDOWS64 +#include "..\..\Windows64\Windows64_Minecraft.h" +#endif + #ifdef _DURANGO #include "..\Minecraft.World\DurangoStats.h" #endif @@ -2032,7 +2036,11 @@ void CGameNetworkManager::ServerStoppedWait() RenderManager.Tick(); ui.tick(); ui.render(); +#ifdef _WINDOWS64 + RenderManager.Present(g_iScreenWidth, g_iScreenWidth); +#else RenderManager.Present(); +#endif } while( result == WAIT_TIMEOUT ); } else diff --git a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp index 4ad078bf..a6d05e8f 100644 --- a/Minecraft.Client/Windows64/Windows64_Minecraft.cpp +++ b/Minecraft.Client/Windows64/Windows64_Minecraft.cpp @@ -91,6 +91,10 @@ static Windows64LaunchArgs ParseLaunchArgs() { args.fullscreen = true; } + else if (_wcsicmp(argv[i], L"-no-vsync") == 0) //str1k3r - we all remember -femboysarecool right? also thank u neoapps for naming this arg + { + args.vsync = true; + } else if (_wcsicmp(argv[i], L"-resolution") == 0) { if (i + 1 < argc && argv[i + 1][0] >= L'1' && argv[i + 1][0] <= L'6') @@ -312,7 +316,7 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) // Tick UI ui.tick(); ui.render(); - RenderManager.Present(); + RenderManager.Present(g_iScreenWidth, g_iScreenWidth); ui.CheckMenuDisplayed(); // Tick Managers @@ -736,6 +740,11 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, app.loadMediaArchive(); + if(launchArgs.vsync) + { + RenderManager.SetVSync(false); //str1k3r - vsync is set to try by default in 4JLibs + } + RenderManager.Initialise(g_pd3dDevice, g_pSwapChain); app.loadStringTable(); @@ -863,7 +872,7 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance, ui.render(); // Present the frame. - RenderManager.Present(); + RenderManager.Present(g_iScreenWidth, g_iScreenWidth); ui.CheckMenuDisplayed(); diff --git a/Minecraft.Client/Windows64/Windows64_Minecraft.h b/Minecraft.Client/Windows64/Windows64_Minecraft.h index ef912fbb..cb0b48e5 100644 --- a/Minecraft.Client/Windows64/Windows64_Minecraft.h +++ b/Minecraft.Client/Windows64/Windows64_Minecraft.h @@ -20,4 +20,5 @@ struct Windows64LaunchArgs { bool fullscreen; int resolution; + bool vsync; }; \ No newline at end of file