From c44055a2147902edade63e8910fcc3e8ad727adf Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Mon, 13 Nov 2017 13:50:54 +0100 Subject: [PATCH] set timeBeignPeriod in DllMain - Add SetProcessPriorityBoost --- ddraw.dll | Bin 171008 -> 164352 bytes main.c | 99 ++++++++++++++++++++++++++++---------------------- main.h | 7 ++-- render.c | 8 +--- render_soft.c | 3 -- 5 files changed, 62 insertions(+), 55 deletions(-) diff --git a/ddraw.dll b/ddraw.dll index 52114d400dceefca733f497c4021bf65033aedf4..e283973feba26b6c28822552fe64c11e9328be98 100644 GIT binary patch delta 22338 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 delta 29264 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 + switch (dwReason) { - char buf[16]; - sprintf(buf, "%d", ddraw->posX); - WritePrivateProfileString("ddraw", "posX", buf, ddraw->ini_path); - - sprintf(buf, "%d", ddraw->posY); - WritePrivateProfileString("ddraw", "posY", buf, ddraw->ini_path); + case DLL_PROCESS_ATTACH: + { + printf("cnc-ddraw DLL_PROCESS_ATTACH"); + + SetProcessPriorityBoost(GetCurrentProcess(), TRUE); + timeBeginPeriod(1); + break; + } + case DLL_PROCESS_DETACH: + { + printf("cnc-ddraw DLL_PROCESS_DETACH"); + + char buf[16]; + sprintf(buf, "%d", WindowPosX); + WritePrivateProfileString("ddraw", "posX", buf, SettingsIniPath); + + sprintf(buf, "%d", WindowPosY); + WritePrivateProfileString("ddraw", "posY", buf, SettingsIniPath); + + timeEndPeriod(1); + break; + } } + + return TRUE; } HRESULT __stdcall ddraw_Compact(IDirectDrawImpl *This) @@ -234,8 +256,8 @@ HRESULT __stdcall ddraw_SetDisplayMode(IDirectDrawImpl *This, DWORD width, DWORD } /* center the window with correct dimensions */ - int x = (This->posX != -1) ? This->posX : (This->mode.dmPelsWidth / 2) - (This->render.width / 2); - int y = (This->posY != -1) ? This->posY : (This->mode.dmPelsHeight / 2) - (This->render.height / 2); + int x = (WindowPosX != -1) ? WindowPosX : (This->mode.dmPelsWidth / 2) - (This->render.width / 2); + int y = (WindowPosY != -1) ? WindowPosY : (This->mode.dmPelsHeight / 2) - (This->render.height / 2); RECT dst = { x, y, This->render.width+x, This->render.height+y }; AdjustWindowRect(&dst, GetWindowLong(This->hWnd, GWL_STYLE), FALSE); SetWindowPos(This->hWnd, HWND_NOTOPMOST, dst.left, dst.top, (dst.right - dst.left), (dst.bottom - dst.top), SWP_SHOWWINDOW); @@ -316,10 +338,10 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) int y = (int)(short)HIWORD(lParam); if (x != -32000) - ddraw->posX = x; // -32000 = Exit/Minimize + WindowPosX = x; // -32000 = Exit/Minimize if (y != -32000) - ddraw->posY = y; + WindowPosY = y; } break; } @@ -333,10 +355,6 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) case WM_SYSCOMMAND: if (wParam == SC_CLOSE) { - if (ddraw->windowed) - { - SaveWindowPosition(); - } exit(0); } return DefWindowProc(hWnd, uMsg, wParam, lParam); @@ -554,11 +572,6 @@ ULONG __stdcall ddraw_Release(IDirectDrawImpl *This) { FreeLibrary(This->real_dll); } - - if (ddraw->windowed) - { - SaveWindowPosition(); - } DeleteCriticalSection(&This->cs); @@ -656,11 +669,11 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk char cwd[MAX_PATH]; char tmp[256]; GetCurrentDirectoryA(sizeof(cwd), cwd); - snprintf(This->ini_path, sizeof(This->ini_path), "%s\\ddraw.ini", cwd); + snprintf(SettingsIniPath, sizeof(SettingsIniPath), "%s\\ddraw.ini", cwd); - if(GetFileAttributes(This->ini_path) == 0xFFFFFFFF) + if(GetFileAttributes(SettingsIniPath) == 0xFFFFFFFF) { - FILE *fh = fopen(This->ini_path, "w"); + FILE *fh = fopen(SettingsIniPath, "w"); fputs( "[ddraw]\n" "; width and height of the window, defaults to the size game requests\r\n" @@ -700,7 +713,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk fclose(fh); } - GetPrivateProfileStringA("ddraw", "windowed", "TRUE", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "windowed", "TRUE", tmp, sizeof(tmp), SettingsIniPath); if (tolower(tmp[0]) == 'n' || tolower(tmp[0]) == 'f' || tolower(tmp[0]) == 'd' || tmp[0] == '0') { This->windowed = FALSE; @@ -710,7 +723,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->windowed = TRUE; } - GetPrivateProfileStringA("ddraw", "border", "TRUE", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "border", "TRUE", tmp, sizeof(tmp), SettingsIniPath); if (tolower(tmp[0]) == 'n' || tolower(tmp[0]) == 'f' || tolower(tmp[0]) == 'd' || tmp[0] == '0') { This->border = FALSE; @@ -720,7 +733,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->border = TRUE; } - GetPrivateProfileStringA("ddraw", "boxing", "FALSE", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "boxing", "FALSE", tmp, sizeof(tmp), SettingsIniPath); if (tolower(tmp[0]) == 'n' || tolower(tmp[0]) == 'f' || tolower(tmp[0]) == 'd' || tmp[0] == '0') { This->boxing = FALSE; @@ -730,22 +743,22 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->boxing = TRUE; } - GetPrivateProfileStringA("ddraw", "screenshotKey", "G", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "screenshotKey", "G", tmp, sizeof(tmp), SettingsIniPath); ddraw->screenshotKey = toupper(tmp[0]); - This->render.maxfps = GetPrivateProfileIntA("ddraw", "max_fps", 120, This->ini_path); - This->render.width = GetPrivateProfileIntA("ddraw", "width", 0, This->ini_path); - This->render.height = GetPrivateProfileIntA("ddraw", "height", 0, This->ini_path); - This->posX = GetPrivateProfileIntA("ddraw", "posX", 0, This->ini_path); - This->posY = GetPrivateProfileIntA("ddraw", "posY", 0, This->ini_path); + This->render.maxfps = GetPrivateProfileIntA("ddraw", "max_fps", 120, SettingsIniPath); + This->render.width = GetPrivateProfileIntA("ddraw", "width", 0, SettingsIniPath); + This->render.height = GetPrivateProfileIntA("ddraw", "height", 0, SettingsIniPath); + WindowPosX = GetPrivateProfileIntA("ddraw", "posX", 0, SettingsIniPath); + WindowPosY = GetPrivateProfileIntA("ddraw", "posY", 0, SettingsIniPath); - This->render.bpp = GetPrivateProfileIntA("ddraw", "bpp", 32, This->ini_path); + This->render.bpp = GetPrivateProfileIntA("ddraw", "bpp", 32, SettingsIniPath); if (This->render.bpp != 16 && This->render.bpp != 24 && This->render.bpp != 32) { This->render.bpp = 0; } - GetPrivateProfileStringA("ddraw", "filter", tmp, tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "filter", tmp, tmp, sizeof(tmp), SettingsIniPath); if (tolower(tmp[0]) == 'l' || tolower(tmp[3]) == 'l') { This->render.filter = 1; @@ -755,7 +768,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->render.filter = 0; } - GetPrivateProfileStringA("ddraw", "adjmouse", "FALSE", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "adjmouse", "FALSE", tmp, sizeof(tmp), SettingsIniPath); if (tolower(tmp[0]) == 'y' || tolower(tmp[0]) == 't' || tolower(tmp[0]) == 'e' || tmp[0] == '1') { This->adjmouse = TRUE; @@ -765,7 +778,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->adjmouse = FALSE; } - GetPrivateProfileStringA("ddraw", "mhack", "TRUE", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "mhack", "TRUE", tmp, sizeof(tmp), SettingsIniPath); if (tolower(tmp[0]) == 'y' || tolower(tmp[0]) == 't' || tolower(tmp[0]) == 'e' || tmp[0] == '1') { This->mhack = TRUE; @@ -775,7 +788,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->mhack = FALSE; } - GetPrivateProfileStringA("ddraw", "devmode", "FALSE", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "devmode", "FALSE", tmp, sizeof(tmp), SettingsIniPath); if (tolower(tmp[0]) == 'y' || tolower(tmp[0]) == 't' || tolower(tmp[0]) == 'e' || tmp[0] == '1') { This->devmode = TRUE; @@ -786,7 +799,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->devmode = FALSE; } - GetPrivateProfileStringA("ddraw", "vsync", "FALSE", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "vsync", "FALSE", tmp, sizeof(tmp), SettingsIniPath); if (tolower(tmp[0]) == 'y' || tolower(tmp[0]) == 't' || tolower(tmp[0]) == 'e' || tmp[0] == '1') { This->vsync = TRUE; @@ -796,10 +809,10 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->vsync = FALSE; } - GetPrivateProfileStringA("ddraw", "sensitivity", "0", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "sensitivity", "0", tmp, sizeof(tmp), SettingsIniPath); This->sensitivity = strtof(tmp, NULL); - GetPrivateProfileStringA("ddraw", "vhack", "false", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "vhack", "false", tmp, sizeof(tmp), SettingsIniPath); if (tolower(tmp[0]) == 'y' || tolower(tmp[0]) == 't' || tolower(tmp[0]) == 'e' || tmp[0] == '1') { This->vhack = 2; @@ -813,7 +826,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->vhack = 0; } - GetPrivateProfileStringA("ddraw", "renderer", "gdi", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "renderer", "gdi", tmp, sizeof(tmp), SettingsIniPath); if(tolower(tmp[0]) == 'd' || tolower(tmp[0]) == 'd') { printf("DirectDrawCreate: Using dummy renderer\n"); @@ -830,7 +843,7 @@ HRESULT WINAPI DirectDrawCreate(GUID FAR* lpGUID, LPDIRECTDRAW FAR* lplpDD, IUnk This->renderer = render_main; } - GetPrivateProfileStringA("ddraw", "singlecpu", "true", tmp, sizeof(tmp), This->ini_path); + GetPrivateProfileStringA("ddraw", "singlecpu", "true", tmp, sizeof(tmp), SettingsIniPath); if (tolower(tmp[0]) == 'y' || tolower(tmp[0]) == 't' || tolower(tmp[0]) == 'e' || tmp[0] == '1') { printf("DirectDrawCreate: Setting CPU0 affinity\n"); diff --git a/main.h b/main.h index 9440882..8f9b446 100644 --- a/main.h +++ b/main.h @@ -22,6 +22,10 @@ #include #include +#ifndef _DEBUG +#define printf(format, ...) +#endif + struct IDirectDrawImpl; struct IDirectDrawImplVtbl; struct IDirectDrawSurfaceImpl; @@ -83,9 +87,6 @@ typedef struct IDirectDrawImpl BOOL vhack; BOOL isredalert; DWORD WINAPI (*renderer)(void); - int posX; - int posY; - char ini_path[MAX_PATH]; char screenshotKey; } IDirectDrawImpl; diff --git a/render.c b/render.c index 1c3c680..539bdc6 100644 --- a/render.c +++ b/render.c @@ -88,10 +88,7 @@ DWORD WINAPI render_main(void) glEnable(GL_TEXTURE_2D); - timeBeginPeriod(1); - - - + while(ddraw->render.thread) { scale_w = (float)ddraw->width/tex_width; @@ -162,8 +159,7 @@ DWORD WINAPI render_main(void) } } } - timeEndPeriod(1); - + HeapFree(GetProcessHeap(), 0, tex); wglMakeCurrent(NULL, NULL); diff --git a/render_soft.c b/render_soft.c index 5e0bac0..782615b 100644 --- a/render_soft.c +++ b/render_soft.c @@ -68,8 +68,6 @@ DWORD WINAPI render_soft_main(void) DWORD tick_start = 0; DWORD tick_end = 0; DWORD frame_len = 0; - - timeBeginPeriod(1); if (ddraw->boxing) { @@ -163,7 +161,6 @@ DWORD WINAPI render_soft_main(void) } } } - timeEndPeriod(1); HeapFree(GetProcessHeap(), 0, bmi);