From 094d020e05379d1503b0b55f1805cabf6d7bfdb2 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Sun, 1 Sep 2024 12:16:19 +0200 Subject: [PATCH] allow to override bpp via fake_mode --- src/winapi_hooks.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c index 86e95b2..da7a99c 100644 --- a/src/winapi_hooks.c +++ b/src/winapi_hooks.c @@ -849,15 +849,27 @@ SHORT WINAPI fake_GetAsyncKeyState(int vKey) int WINAPI fake_GetDeviceCaps(HDC hdc, int index) { - if (g_ddraw.ref && - g_ddraw.bpp && - index == BITSPIXEL && - (g_config.hook != 2 || g_ddraw.renderer == gdi_render_main)) + DWORD bpp = 0; + + if (g_ddraw.ref && g_ddraw.bpp) { - return g_ddraw.bpp; + bpp = g_ddraw.bpp; + } + else if (g_config.fake_mode[0]) + { + char* e = &g_config.fake_mode[0]; + + strtoul(e, &e, 0); + strtoul(e + 1, &e, 0); + bpp = strtoul(e + 1, &e, 0); } - if (g_ddraw.ref && g_ddraw.bpp == 8 && (g_config.hook != 2 || g_ddraw.renderer == gdi_render_main)) + if (bpp && index == BITSPIXEL && (g_config.hook != 2 || g_ddraw.renderer == gdi_render_main)) + { + return bpp; + } + + if (bpp == 8 && (g_config.hook != 2 || g_ddraw.renderer == gdi_render_main)) { if (index == RASTERCAPS) {