1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

add temporary registry keys

This commit is contained in:
FunkyFr3sh 2024-07-04 07:52:17 +02:00
parent dfca31fab9
commit 79b8b4d083
5 changed files with 79 additions and 0 deletions

View File

@ -49,6 +49,7 @@
<ClCompile Include="src\IDirect3D\IDirect3D7.c" /> <ClCompile Include="src\IDirect3D\IDirect3D7.c" />
<ClCompile Include="src\IAMMediaStream\IAMMediaStream.c" /> <ClCompile Include="src\IAMMediaStream\IAMMediaStream.c" />
<ClCompile Include="src\IDirectDraw\IDirectDrawGammaControl.c" /> <ClCompile Include="src\IDirectDraw\IDirectDrawGammaControl.c" />
<ClCompile Include="src\indeo.c" />
<ClCompile Include="src\ini.c" /> <ClCompile Include="src\ini.c" />
<ClCompile Include="src\utils.c" /> <ClCompile Include="src\utils.c" />
<ClCompile Include="src\hook.c" /> <ClCompile Include="src\hook.c" />
@ -84,6 +85,7 @@
<ClInclude Include="inc\IDirect3D.h" /> <ClInclude Include="inc\IDirect3D.h" />
<ClInclude Include="inc\IAMMediaStream.h" /> <ClInclude Include="inc\IAMMediaStream.h" />
<ClInclude Include="inc\IDirectDrawGammaControl.h" /> <ClInclude Include="inc\IDirectDrawGammaControl.h" />
<ClInclude Include="inc\indeo.h" />
<ClInclude Include="inc\ini.h" /> <ClInclude Include="inc\ini.h" />
<ClInclude Include="inc\patch.h" /> <ClInclude Include="inc\patch.h" />
<ClInclude Include="inc\utils.h" /> <ClInclude Include="inc\utils.h" />

View File

@ -162,6 +162,9 @@
<ClCompile Include="src\versionhelpers.c"> <ClCompile Include="src\versionhelpers.c">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="src\indeo.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="inc\debug.h"> <ClInclude Include="inc\debug.h">
@ -281,6 +284,9 @@
<ClInclude Include="inc\versionhelpers.h"> <ClInclude Include="inc\versionhelpers.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="inc\indeo.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ResourceCompile Include="res.rc"> <ResourceCompile Include="res.rc">

7
inc/indeo.h Normal file
View File

@ -0,0 +1,7 @@
#ifndef INDEO_H
#define INDEO_H
void indeo_enable();
void indeo_disable();
#endif

View File

@ -9,6 +9,7 @@
#include "debug.h" #include "debug.h"
#include "config.h" #include "config.h"
#include "hook.h" #include "hook.h"
#include "indeo.h"
#include "versionhelpers.h" #include "versionhelpers.h"
@ -120,6 +121,7 @@ BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved)
set_aware(); set_aware();
} }
indeo_enable();
timeBeginPeriod(1); timeBeginPeriod(1);
hook_init(); hook_init();
break; break;
@ -133,6 +135,7 @@ BOOL WINAPI DllMain(HANDLE hDll, DWORD dwReason, LPVOID lpReserved)
cfg_save(); cfg_save();
indeo_disable();
timeEndPeriod(1); timeEndPeriod(1);
dinput_hook_exit(); dinput_hook_exit();
hook_exit(); hook_exit();

61
src/indeo.c Normal file
View File

@ -0,0 +1,61 @@
#include <windows.h>
void indeo_enable()
{
HKEY hkey;
LONG status =
RegCreateKeyExA(
HKEY_CURRENT_USER,
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Drivers32",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE | KEY_QUERY_VALUE,
NULL,
&hkey,
NULL);
if (status == ERROR_SUCCESS)
{
LPCTSTR iv31 = "ir32_32.dll";
RegSetValueExA(hkey, "vidc.iv31", 0, REG_SZ, iv31, strlen(iv31) + 1);
LPCTSTR iv32 = "ir32_32.dll";
RegSetValueExA(hkey, "vidc.iv32", 0, REG_SZ, iv32, strlen(iv32) + 1);
LPCTSTR iv41 = "ir41_32.ax";
RegSetValueExA(hkey, "vidc.iv41", 0, REG_SZ, iv41, strlen(iv41) + 1);
LPCTSTR iv50 = "ir50_32.dll";
RegSetValueExA(hkey, "vidc.iv50", 0, REG_SZ, iv50, strlen(iv50) + 1);
RegCloseKey(hkey);
}
}
void indeo_disable()
{
HKEY hkey;
LONG status =
RegCreateKeyExA(
HKEY_CURRENT_USER,
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Drivers32",
0,
NULL,
REG_OPTION_NON_VOLATILE,
KEY_WRITE | KEY_QUERY_VALUE,
NULL,
&hkey,
NULL);
if (status == ERROR_SUCCESS)
{
RegDeleteValueA(hkey, "vidc.iv31");
RegDeleteValueA(hkey, "vidc.iv32");
RegDeleteValueA(hkey, "vidc.iv41");
RegDeleteValueA(hkey, "vidc.iv50");
RegCloseKey(hkey);
}
}