mirror of
https://github.com/narzoul/DDrawCompat
synced 2024-12-30 08:55:36 +01:00
Disable application calls to timeBeginPeriod/timeEndPeriod
Fixes stuttering in Pacific General.
This commit is contained in:
parent
3d958e5ef2
commit
d4f5020e6f
@ -293,6 +293,7 @@
|
||||
<ClInclude Include="Win32\Registry.h" />
|
||||
<ClInclude Include="Win32\Thread.h" />
|
||||
<ClInclude Include="Win32\Version.h" />
|
||||
<ClInclude Include="Win32\Winmm.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Common\Log.cpp" />
|
||||
@ -405,6 +406,7 @@
|
||||
<ClCompile Include="Win32\Registry.cpp" />
|
||||
<ClCompile Include="Win32\Thread.cpp" />
|
||||
<ClCompile Include="Win32\Version.cpp" />
|
||||
<ClCompile Include="Win32\Winmm.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="DDrawCompat.rc" />
|
||||
|
@ -585,6 +585,9 @@
|
||||
<ClInclude Include="Config\Settings\FontAntialiasing.h">
|
||||
<Filter>Header Files\Config\Settings</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Win32\Winmm.h">
|
||||
<Filter>Header Files\Win32</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Gdi\Gdi.cpp">
|
||||
@ -917,6 +920,9 @@
|
||||
<ClCompile Include="Config\Settings\FpsLimiter.cpp">
|
||||
<Filter>Source Files\Config\Settings</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Win32\Winmm.cpp">
|
||||
<Filter>Source Files\Win32</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="DDrawCompat.rc">
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include <Win32/Registry.h>
|
||||
#include <Win32/Thread.h>
|
||||
#include <Win32/Version.h>
|
||||
#include <Win32/Winmm.h>
|
||||
|
||||
HRESULT WINAPI SetAppCompatData(DWORD, DWORD);
|
||||
|
||||
@ -289,9 +290,10 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||
Win32::MemoryManagement::installHooks();
|
||||
Win32::Thread::installHooks();
|
||||
Win32::Version::installHooks();
|
||||
Win32::Winmm::installHooks();
|
||||
Compat::closeDbgEng();
|
||||
|
||||
timeBeginPeriod(1);
|
||||
CALL_ORIG_FUNC(timeBeginPeriod)(1);
|
||||
setDpiAwareness();
|
||||
SetThemeAppProperties(0);
|
||||
Time::init();
|
||||
|
41
DDrawCompat/Win32/Winmm.cpp
Normal file
41
DDrawCompat/Win32/Winmm.cpp
Normal file
@ -0,0 +1,41 @@
|
||||
#include <Windows.h>
|
||||
#include <timeapi.h>
|
||||
|
||||
#include <Common/Hook.h>
|
||||
#include <Common/Log.h>
|
||||
#include <Win32/Winmm.h>
|
||||
|
||||
namespace
|
||||
{
|
||||
MMRESULT WINAPI TimeBeginPeriod(UINT uPeriod)
|
||||
{
|
||||
LOG_FUNC("timeBeginPeriod", uPeriod);
|
||||
return LOG_RESULT(TIMERR_NOERROR);
|
||||
}
|
||||
|
||||
MMRESULT WINAPI TimeEndPeriod(UINT uPeriod)
|
||||
{
|
||||
LOG_FUNC("timeEndPeriod", uPeriod);
|
||||
return LOG_RESULT(TIMERR_NOERROR);
|
||||
}
|
||||
}
|
||||
|
||||
namespace Win32
|
||||
{
|
||||
namespace Winmm
|
||||
{
|
||||
void installHooks()
|
||||
{
|
||||
if (Compat::getProcAddress(GetModuleHandle("kernel32"), "timeBeginPeriod"))
|
||||
{
|
||||
HOOK_FUNCTION(kernel32, timeBeginPeriod, TimeBeginPeriod);
|
||||
HOOK_FUNCTION(kernel32, timeEndPeriod, TimeEndPeriod);
|
||||
}
|
||||
else
|
||||
{
|
||||
HOOK_FUNCTION(winmm, timeBeginPeriod, TimeBeginPeriod);
|
||||
HOOK_FUNCTION(winmm, timeEndPeriod, TimeEndPeriod);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
9
DDrawCompat/Win32/Winmm.h
Normal file
9
DDrawCompat/Win32/Winmm.h
Normal file
@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
namespace Win32
|
||||
{
|
||||
namespace Winmm
|
||||
{
|
||||
void installHooks();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user