diff --git a/src/dd.c b/src/dd.c index 5d67a52..64e4c5d 100644 --- a/src/dd.c +++ b/src/dd.c @@ -631,18 +631,26 @@ HRESULT dd_SetDisplayMode(DWORD dwWidth, DWORD dwHeight, DWORD dwBPP, DWORD dwFl mouse_unlock(); memset(&g_ddraw->render.mode, 0, sizeof(DEVMODE)); - g_ddraw->render.mode.dmSize = sizeof(DEVMODE); - g_ddraw->render.mode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT; - g_ddraw->render.mode.dmPelsWidth = g_ddraw->render.width; - g_ddraw->render.mode.dmPelsHeight = g_ddraw->render.height; if (g_ddraw->refresh_rate) { g_ddraw->render.mode.dmFields |= DM_DISPLAYFREQUENCY; g_ddraw->render.mode.dmDisplayFrequency = g_ddraw->refresh_rate; + + if (ChangeDisplaySettings(&g_ddraw->render.mode, CDS_TEST) != DISP_CHANGE_SUCCESSFUL) + { + g_ddraw->refresh_rate = 0; + + g_ddraw->render.mode.dmFields = 0; + g_ddraw->render.mode.dmDisplayFrequency = 0; + } } + g_ddraw->render.mode.dmFields |= DM_PELSWIDTH | DM_PELSHEIGHT; + g_ddraw->render.mode.dmPelsWidth = g_ddraw->render.width; + g_ddraw->render.mode.dmPelsHeight = g_ddraw->render.height; + if (!g_ddraw->windowed) { /* Making sure the chosen resolution is valid */