From ec99f9be03b33649329f3270eca10b32ff3fd469 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Fri, 8 Oct 2021 14:29:00 +0200 Subject: [PATCH] add another check for faulty upscaling resolution --- src/dd.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/dd.c b/src/dd.c index bf45197..a7d7149 100644 --- a/src/dd.c +++ b/src/dd.c @@ -500,8 +500,18 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl if (g_ddraw->render.width > g_ddraw->mode.dmPelsWidth || g_ddraw->render.height > g_ddraw->mode.dmPelsHeight) { - /* chosen game resolution higher than current resolution, use windowed mode for this case */ - g_ddraw->windowed = TRUE; + /* Try without upscaling */ + g_ddraw->render.width = g_ddraw->width; + g_ddraw->render.height = g_ddraw->height; + + g_ddraw->render.mode.dmPelsWidth = g_ddraw->render.width; + g_ddraw->render.mode.dmPelsHeight = g_ddraw->render.height; + + if (ChangeDisplaySettings(&g_ddraw->render.mode, CDS_TEST) != DISP_CHANGE_SUCCESSFUL) + { + /* chosen game resolution higher than current resolution, use windowed mode for this case */ + g_ddraw->windowed = TRUE; + } } else {