mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
v2_02_76_src
Former-commit-id: e638d38fb9407ba82b1423e5596ccadd84aaecd3
This commit is contained in:
parent
8e93278b0c
commit
46fe2cb28f
@ -143,6 +143,7 @@
|
||||
#define ENABLEHOTKEYS 0x08000000 // Enables hot keys
|
||||
#define HOTPATCHALWAYS 0x10000000 // Force hot patching to every call
|
||||
#define NOD3DRESET 0x20000000 // Disables D3D8/9 D3DDevice::Reset method
|
||||
#define OVERRIDEREGISTRY 0x40000000 // same as EMULATEREGISTRY, but fake keys takeprecedence
|
||||
|
||||
// logging Tflags DWORD:
|
||||
#define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0abd5d664eea54b2046da9cf7c3b556569a5bbd8c65eb87e1b088dff67641ef1
|
||||
oid sha256:cb95d0f4d937aa39bf29f2fdcc106f4999dff564dbb4b323be38fd9e106184fd
|
||||
size 483840
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:11f3d90b87b33ec400bd96219a0786300f2dbd21935e72a2b859317f887696e0
|
||||
oid sha256:14c815ffe23493c0f2ea72905d50b6972fcf35e78b827e243865b327d2ce7ac8
|
||||
size 540160
|
||||
|
10
build/dxwnd.reg
Normal file
10
build/dxwnd.reg
Normal file
@ -0,0 +1,10 @@
|
||||
# Requiem Avenging Angel: DirectX version patch
|
||||
|
||||
[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\DirectX]
|
||||
"Version"="4.07.00.0704"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectX]
|
||||
"Version"="4.07.00.0704"
|
||||
|
||||
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX]
|
||||
"Version"="4.07.00.0704"
|
27
build/exports/Requiem Avenging Angel (software).dxw
Normal file
27
build/exports/Requiem Avenging Angel (software).dxw
Normal file
@ -0,0 +1,27 @@
|
||||
[target]
|
||||
title0=Requiem Avenging Angel (software)
|
||||
path0=D:\Games\Requiem Avenging Angel\Software.exe
|
||||
launchpath0=
|
||||
module0=
|
||||
opengllib0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=-1199570906
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=1212153860
|
||||
tflag0=6914
|
||||
initx0=0
|
||||
inity0=0
|
||||
minx0=0
|
||||
miny0=0
|
||||
maxx0=0
|
||||
maxy0=0
|
||||
posx0=50
|
||||
posy0=50
|
||||
sizx0=800
|
||||
sizy0=600
|
||||
maxfps0=0
|
||||
initts0=0
|
||||
winver0=0
|
||||
maxres0=-1
|
@ -500,3 +500,7 @@ added: "Suppress D3D8/9 Reset" flag
|
||||
fix: improved show FPS and Time Stretch overlay so that the two overlays won't overlap each other
|
||||
fix: bug in ddraw "Locked surface" mode preventing output on screen
|
||||
fix: fixed bug in critical common portion of the code that was crashing even unhooked programs (namely, Flash Player, ...)
|
||||
|
||||
v2.02.76
|
||||
fixed and enhanced several features about registry emulation: added flags "Emulate registry" (to add missing entries) and "Override registry" (to fake existing entries with different values). Fixed "Requiem Avenging Angel" DirectX bogus check bug.
|
||||
fixed bug in emulate surface palette handling affecting "Requiem Avenging Angel" colors
|
@ -49,8 +49,56 @@ static char *hKey2String(HKEY hKey)
|
||||
return skey;
|
||||
}
|
||||
|
||||
static FILE *OpenFakeRegistry()
|
||||
{
|
||||
DWORD dwAttrib;
|
||||
char sSourcePath[MAX_PATH+1];
|
||||
char *p;
|
||||
dwAttrib = GetFileAttributes("dxwnd.dll");
|
||||
if (dwAttrib != INVALID_FILE_ATTRIBUTES && !(dwAttrib & FILE_ATTRIBUTE_DIRECTORY)) return NULL;
|
||||
GetModuleFileName(GetModuleHandle("dxwnd"), sSourcePath, MAX_PATH);
|
||||
p=&sSourcePath[strlen(sSourcePath)-strlen("dxwnd.dll")];
|
||||
strcpy(p, "dxwnd.reg");
|
||||
return fopen(sSourcePath,"r");
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------------
|
||||
|
||||
static LONG myRegOpenKeyEx(
|
||||
HKEY hKey,
|
||||
LPCTSTR lpSubKey,
|
||||
PHKEY phkResult)
|
||||
{
|
||||
FILE *regf;
|
||||
char sKey[MAX_PATH+1];
|
||||
char RegBuf[MAX_PATH+1];
|
||||
|
||||
sprintf(sKey,"%s\\%s", hKey2String(hKey), lpSubKey);
|
||||
OutTraceDW("RegOpenKeyEx: searching for key=\"%s\"\n", sKey);
|
||||
|
||||
regf=OpenFakeRegistry();
|
||||
if(regf!=NULL){
|
||||
if(phkResult) *phkResult=HKEY_FAKE;
|
||||
fgets(RegBuf, 256, regf);
|
||||
while (!feof(regf)){
|
||||
if(RegBuf[0]=='['){
|
||||
if((!strncmp(&RegBuf[1],sKey,strlen(sKey))) && (RegBuf[strlen(sKey)+1]==']')){
|
||||
OutTrace("RegOpenKeyEx: found fake Key=\"%s\" hkResult=%x\n", sKey, phkResult ? *phkResult : 0);
|
||||
fclose(regf);
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
else {
|
||||
if(phkResult) (*phkResult)--;
|
||||
}
|
||||
}
|
||||
fgets(RegBuf, 256, regf);
|
||||
}
|
||||
fclose(regf);
|
||||
}
|
||||
return ERROR_FILE_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
||||
LONG WINAPI extRegOpenKeyEx(
|
||||
HKEY hKey,
|
||||
LPCTSTR lpSubKey,
|
||||
@ -59,36 +107,21 @@ LONG WINAPI extRegOpenKeyEx(
|
||||
PHKEY phkResult)
|
||||
{
|
||||
LONG res;
|
||||
char RegBuf[256+1];
|
||||
|
||||
OutTraceR("RegOpenKeyEx: hKey=%x(%s) SubKey=\"%s\" Options=%x\n",
|
||||
hKey, hKey2String(hKey), lpSubKey, ulOptions);
|
||||
res=(*pRegOpenKeyEx)(hKey, lpSubKey, ulOptions, samDesired, phkResult);
|
||||
OutTraceR("RegOpenKeyEx: res=%x\n", res);
|
||||
|
||||
if((res==ERROR_SUCCESS) || !(dxw.dwFlags3 & EMULATEREGISTRY)) return res;
|
||||
|
||||
if(phkResult) *phkResult=HKEY_FAKE;
|
||||
FILE *regf;
|
||||
char sKey[256+1];
|
||||
sprintf(sKey,"%s\\%s", hKey2String(hKey), lpSubKey);
|
||||
OutTraceDW("RegOpenKeyEx: searching for key=\"%s\"\n", sKey);
|
||||
regf=fopen("dxwnd.reg","r");
|
||||
if(regf==NULL) return ERROR_FILE_NOT_FOUND;
|
||||
fgets(RegBuf, 256, regf);
|
||||
while (!feof(regf)){
|
||||
if(RegBuf[0]=='['){
|
||||
if((!strncmp(&RegBuf[1],sKey,strlen(sKey))) && (RegBuf[strlen(sKey)+1]==']')){
|
||||
OutTrace("RegOpenKeyEx: found fake Key=\"%s\" hkResult=%x\n", sKey, *phkResult);
|
||||
fclose(regf);
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
else (*phkResult)--;
|
||||
}
|
||||
fgets(RegBuf, 256, regf);
|
||||
if(dxw.dwFlags4 & OVERRIDEREGISTRY){
|
||||
res = myRegOpenKeyEx(hKey, lpSubKey, phkResult);
|
||||
if(res == ERROR_SUCCESS) return res;
|
||||
}
|
||||
fclose(regf);
|
||||
return ERROR_FILE_NOT_FOUND;
|
||||
|
||||
res=(*pRegOpenKeyEx)(hKey, lpSubKey, ulOptions, samDesired, phkResult);
|
||||
OutTraceR("RegOpenKeyEx: res=%x phkResult=%x\n", res, phkResult ? *phkResult : 0);
|
||||
|
||||
if((res==ERROR_SUCCESS) || !(dxw.dwFlags3 & EMULATEREGISTRY) || (dxw.dwFlags4 & OVERRIDEREGISTRY)) return res;
|
||||
|
||||
return myRegOpenKeyEx(hKey, lpSubKey, phkResult);
|
||||
}
|
||||
|
||||
LONG WINAPI extRegQueryValueEx(
|
||||
@ -132,14 +165,12 @@ LONG WINAPI extRegQueryValueEx(
|
||||
return res;
|
||||
}
|
||||
|
||||
//if(!(dxw.dwFlags3 & EMULATEREGISTRY)) return res;
|
||||
|
||||
// try emulated registry
|
||||
FILE *regf;
|
||||
char RegBuf[256+1];
|
||||
char RegBuf[MAX_PATH+1];
|
||||
char *pData;
|
||||
HKEY hCurKey=HKEY_FAKE+1;
|
||||
regf=fopen("dxwnd.reg","r");
|
||||
regf=OpenFakeRegistry();
|
||||
if(regf==NULL) return ERROR_FILE_NOT_FOUND;
|
||||
if(!lpValueName)lpValueName="";
|
||||
fgets(RegBuf, 256, regf);
|
||||
@ -159,17 +190,16 @@ LONG WINAPI extRegQueryValueEx(
|
||||
res=ERROR_FILE_NOT_FOUND;
|
||||
pData=&RegBuf[strlen(lpValueName)+3];
|
||||
if(*pData=='"'){ // string value
|
||||
//strcpy((char *)lpData, &RegBuf[strlen(lpValueName)+4]);
|
||||
//lpData[strlen((char *)lpData)-2]=0; // eliminates " and \n
|
||||
//if(lpType) *lpType=REG_SZ;
|
||||
//*lpcbData=strlen((char *)lpData)+1;
|
||||
LPBYTE lpb;
|
||||
lpb = lpData;
|
||||
*lpcbData=0;
|
||||
pData++;
|
||||
while(*pData && (*pData != '"')){
|
||||
if(*pData=='\\') pData++;
|
||||
*lpData++=*pData++;
|
||||
*lpb++=*pData++;
|
||||
*lpcbData++;
|
||||
}
|
||||
*lpb = 0; // string terminator
|
||||
if(lpType) *lpType=REG_SZ;
|
||||
//
|
||||
OutTraceDW("RegQueryValueEx: Data=\"%s\" type=REG_SZ\n", lpData);
|
||||
|
@ -3565,7 +3565,7 @@ HRESULT WINAPI extSetPalette(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWPALETTE lpdd
|
||||
lpentries = (LPPALETTEENTRY)PaletteEntries;
|
||||
res2=lpddp->GetEntries(0, 0, 256, lpentries);
|
||||
if(res2) OutTraceE("SetPalette: GetEntries ERROR res=%x(%s)\n", res2, ExplainDDError(res2));
|
||||
//mySetPalette(0, 256, lpentries);
|
||||
mySetPalette(0, 256, lpentries); // v2.02.76: necessary for "Requiem Avenging Angel" in SURFACEEMULATION mode
|
||||
}
|
||||
// Apply palette to backbuffer surface. This is necessary on some games: "Duckman private dick", "Total Soccer 2000", ...
|
||||
if (lpDDSBack) {
|
||||
|
@ -87,7 +87,7 @@ static char *Flag4Names[32]={
|
||||
"STRETCHTIMERS", "NOFLIPEMULATION", "NOTEXTURES", "RETURNNULLREF",
|
||||
"FINETIMING", "NATIVERES", "SUPPORTSVGA", "SUPPORTHDTV",
|
||||
"RELEASEMOUSE", "FRAMECOMPENSATION", "HOTPATCH", "ENABLEHOTKEYS",
|
||||
"HOTPATCHALWAYS", "", "", "",
|
||||
"HOTPATCHALWAYS", "NOD3DRESET", "OVERRIDEREGISTRY", "",
|
||||
};
|
||||
|
||||
static char *TFlagNames[32]={
|
||||
@ -1222,7 +1222,9 @@ void HookModule(HMODULE base, int dxversion)
|
||||
HookDirect3D7(base, dxversion);
|
||||
if(dxw.dwFlags2 & HOOKOPENGL) HookOpenGLLibs(base, dxw.CustomOpenGLLib);
|
||||
if(dxw.dwFlags4 & HOOKGLIDE) HookGlideLibs(base);
|
||||
if((dxw.dwFlags3 & EMULATEREGISTRY) || (dxw.dwTFlags & OUTREGISTRY)) HookAdvApi32(base);
|
||||
if( (dxw.dwFlags3 & EMULATEREGISTRY) ||
|
||||
(dxw.dwFlags4 & OVERRIDEREGISTRY) ||
|
||||
(dxw.dwTFlags & OUTREGISTRY)) HookAdvApi32(base);
|
||||
HookMSV4WLibs(base); // -- used by Aliens & Amazons demo: what for?
|
||||
}
|
||||
|
||||
@ -1428,6 +1430,7 @@ void HookInit(TARGETMAP *target, HWND hwnd)
|
||||
dxw.hChildWnd=hwnd;
|
||||
// v2.02.31: set main win either this one or the parent!
|
||||
dxw.SethWnd((dxw.dwFlags1 & FIXPARENTWIN) ? GetParent(hwnd) : hwnd);
|
||||
if(dxw.dwFlags4 & ENABLEHOTKEYS) dxw.MapKeysInit();
|
||||
}
|
||||
|
||||
if(IsTraceDW){
|
||||
|
@ -102,7 +102,6 @@ void dxwCore::InitTarget(TARGETMAP *target)
|
||||
pTimeShifter = TimeShifterCoarse;
|
||||
pTimeShifter64 = TimeShifter64Coarse;
|
||||
}
|
||||
if(dwFlags4 & ENABLEHOTKEYS) MapKeysInit();
|
||||
}
|
||||
|
||||
void dxwCore::SetScreenSize(void)
|
||||
|
@ -117,6 +117,7 @@ public: // methods
|
||||
BOOL CheckScreenResolution(unsigned int, unsigned int);
|
||||
LARGE_INTEGER StretchLargeCounter(LARGE_INTEGER);
|
||||
UINT MapKeysConfig(UINT, LPARAM, WPARAM);
|
||||
void MapKeysInit();
|
||||
|
||||
public: // simple data variables
|
||||
BOOL Windowize;
|
||||
@ -170,7 +171,6 @@ private:
|
||||
void ShowFPS(HDC);
|
||||
void ShowTimeStretching(HDC);
|
||||
TimerEvent_Type TimerEvent;
|
||||
void MapKeysInit();
|
||||
};
|
||||
|
||||
extern dxwCore dxw;
|
||||
|
@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include "dxwnd.h"
|
||||
#include "dxwcore.hpp"
|
||||
|
||||
#define VERSION "2.02.75"
|
||||
#define VERSION "2.02.76"
|
||||
|
||||
#define DDTHREADLOCK 1
|
||||
|
||||
@ -224,8 +224,9 @@ void InjectHook()
|
||||
for(i = 0; pMapping[i].path[0]; i ++){
|
||||
if(!strncmp(name, pMapping[i].path, strlen(name))){
|
||||
if (pMapping[i].flags2 & STARTDEBUG){
|
||||
OutTrace("InjectHook: task[%d]=\"%s\" hooked\n", i, pMapping[i].path);
|
||||
HookInit(&pMapping[i],NULL);
|
||||
HookInit(&pMapping[i],NULL);
|
||||
// beware: logging is possible only AFTER HookInit execution
|
||||
OutTrace("InjectHook: task[%d]=\"%s\" hooked\n", i, pMapping[i].path);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Binary file not shown.
65
dll/dxwnd.vs2008.vcproj.User-PC.User.user
Normal file
65
dll/dxwnd.vs2008.vcproj.User-PC.User.user
Normal file
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioUserFile
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
ShowAllFiles="false"
|
||||
>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<DebugSettings
|
||||
Command=""
|
||||
WorkingDirectory=""
|
||||
CommandArguments=""
|
||||
Attach="false"
|
||||
DebuggerType="3"
|
||||
Remote="1"
|
||||
RemoteMachine="USER-PC"
|
||||
RemoteCommand=""
|
||||
HttpUrl=""
|
||||
PDBPath=""
|
||||
SQLDebugging=""
|
||||
Environment=""
|
||||
EnvironmentMerge="true"
|
||||
DebuggerFlavor=""
|
||||
MPIRunCommand=""
|
||||
MPIRunArguments=""
|
||||
MPIRunWorkingDirectory=""
|
||||
ApplicationCommand=""
|
||||
ApplicationArguments=""
|
||||
ShimCommand=""
|
||||
MPIAcceptMode=""
|
||||
MPIAcceptFilter=""
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<DebugSettings
|
||||
Command=""
|
||||
WorkingDirectory=""
|
||||
CommandArguments=""
|
||||
Attach="false"
|
||||
DebuggerType="3"
|
||||
Remote="1"
|
||||
RemoteMachine="USER-PC"
|
||||
RemoteCommand=""
|
||||
HttpUrl=""
|
||||
PDBPath=""
|
||||
SQLDebugging=""
|
||||
Environment=""
|
||||
EnvironmentMerge="true"
|
||||
DebuggerFlavor=""
|
||||
MPIRunCommand=""
|
||||
MPIRunArguments=""
|
||||
MPIRunWorkingDirectory=""
|
||||
ApplicationCommand=""
|
||||
ApplicationArguments=""
|
||||
ShimCommand=""
|
||||
MPIAcceptMode=""
|
||||
MPIAcceptFilter=""
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
</VisualStudioUserFile>
|
@ -36,7 +36,6 @@ void WhndStackPush(HWND hwnd, WNDPROC wndproc)
|
||||
if(WhndTOS == WhndSize){
|
||||
WhndSize += MAXWNDHSTACK;
|
||||
WhndStack = (wndstack_entry *)realloc(WhndStack, WhndSize * sizeof(wndstack_entry));
|
||||
//OutTraceDW("DEBUG: WNDPROC STACK new size=%d\n", WhndSize);
|
||||
}
|
||||
// wndproc values of 0xFFFFxxxx type seems to be error codes rather than valid callback addresses ....
|
||||
// v2.02.36 using CallWindowProc you can pass WinProc handles, so you don't need to eliminate them!
|
||||
|
@ -152,6 +152,7 @@
|
||||
#define IDC_HOOKDI 1112
|
||||
#define IDC_EMULATEREGISTRY 1113
|
||||
#define IDC_CDROMDRIVETYPE 1114
|
||||
#define IDC_OVERRIDEREGISTRY 1115
|
||||
#define IDC_NOWINDOWMOVE 1116
|
||||
#define IDC_DISABLEHAL 1117
|
||||
#define IDC_LOCKSYSCOLORS 1118
|
||||
|
@ -46,6 +46,10 @@ void CTabCompat::DoDataExchange(CDataExchange* pDX)
|
||||
DDX_Check(pDX, IDC_NOTEXTURES, cTarget->m_NoTextures);
|
||||
DDX_Check(pDX, IDC_WIREFRAME, cTarget->m_WireFrame);
|
||||
DDX_Check(pDX, IDC_DISABLEFOGGING, cTarget->m_DisableFogging);
|
||||
|
||||
// Registry management
|
||||
DDX_Check(pDX, IDC_EMULATEREGISTRY, cTarget->m_EmulateRegistry);
|
||||
DDX_Check(pDX, IDC_OVERRIDEREGISTRY, cTarget->m_OverrideRegistry);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CTabCompat, CDialog)
|
||||
|
@ -40,7 +40,6 @@ void CTabDebug::DoDataExchange(CDataExchange* pDX)
|
||||
DDX_Check(pDX, IDC_NODDRAWFLIP, cTarget->m_NoDDRAWFlip);
|
||||
DDX_Check(pDX, IDC_NOGDIBLT, cTarget->m_NoGDIBlt);
|
||||
DDX_Check(pDX, IDC_NOFILLRECT, cTarget->m_NoFillRect);
|
||||
DDX_Check(pDX, IDC_EMULATEREGISTRY, cTarget->m_EmulateRegistry);
|
||||
DDX_Check(pDX, IDC_ZBUFFERALWAYS, cTarget->m_ZBufferAlways);
|
||||
DDX_Check(pDX, IDC_HOTPATCHALWAYS, cTarget->m_HotPatchAlways);
|
||||
}
|
||||
|
@ -72,6 +72,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
|
||||
m_HookDLLs = TRUE; // default true !!
|
||||
m_HookEnabled = TRUE; // default true !!
|
||||
m_EmulateRegistry = FALSE;
|
||||
m_OverrideRegistry = FALSE;
|
||||
m_FullScreenOnly = FALSE;
|
||||
m_FilterMessages = FALSE;
|
||||
m_PeekAllMessages = FALSE;
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
BOOL m_HotPatch;
|
||||
BOOL m_HookDLLs;
|
||||
BOOL m_EmulateRegistry;
|
||||
BOOL m_OverrideRegistry;
|
||||
BOOL m_FullScreenOnly;
|
||||
BOOL m_FilterMessages;
|
||||
BOOL m_PeekAllMessages;
|
||||
|
@ -319,7 +319,7 @@ DWORD CDib::Save(CFile& file) const
|
||||
DWORD CDib::Read(CFile& file, BOOL bFromResource)
|
||||
{
|
||||
DWORD dwReadBytes = 0;
|
||||
DWORD dwLength = file.GetLength();
|
||||
DWORD dwLength = (DWORD)file.GetLength();
|
||||
|
||||
// Ensures no memory leaks will occur
|
||||
Free();
|
||||
|
@ -466,7 +466,10 @@ IDD_TAB_COMPAT DIALOGEX 0, 0, 300, 240
|
||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
GROUPBOX "Fake Version",IDC_STATIC,7,3,139,64
|
||||
GROUPBOX "Fake Version",IDC_STATIC,6,3,140,64
|
||||
GROUPBOX "3D effects",IDC_STATIC,149,3,144,64
|
||||
GROUPBOX "Registry",IDC_STATIC,149,69,144,64
|
||||
GROUPBOX "Tweaks",IDC_STATIC,6,69,140,164
|
||||
CONTROL "",IDC_FAKEVERSION,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,26,12,10
|
||||
LISTBOX IDC_LISTFAKE,39,15,98,43,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||
CONTROL "Handle Exceptions",IDC_HANDLEEXCEPTIONS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,200,109,12
|
||||
@ -482,10 +485,11 @@ BEGIN
|
||||
CONTROL "Clean ZBUFFER @0.0 fix",IDC_ZBUFFER0CLEAN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,104,109,12
|
||||
CONTROL "Textures not power of 2 fix",IDC_NOPOWER2FIX,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,92,109,12
|
||||
CONTROL "Disable performance counter",IDC_NOPERFCOUNTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,80,109,12
|
||||
CONTROL "3D Wireframe",IDC_WIREFRAME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,34,96,10
|
||||
GROUPBOX "3D effects",IDC_STATIC,149,3,144,64
|
||||
CONTROL "Disable Fogging",IDC_DISABLEFOGGING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,46,96,10
|
||||
CONTROL "3D Wireframe",IDC_WIREFRAME,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,34,96,10
|
||||
CONTROL "Disable Fogging",IDC_DISABLEFOGGING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,46,96,10
|
||||
CONTROL "Disable Textures",IDC_NOTEXTURES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,22,96,10
|
||||
CONTROL "Emulate Registry",IDC_EMULATEREGISTRY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,84,110,10
|
||||
CONTROL "Override Registry",IDC_OVERRIDEREGISTRY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,96,110,10
|
||||
END
|
||||
|
||||
IDD_TAB_SYSLIBS DIALOGEX 0, 0, 300, 240
|
||||
@ -526,7 +530,6 @@ BEGIN
|
||||
CONTROL "Suppress ddraw Flip",IDC_NODDRAWFLIP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,36,127,10
|
||||
CONTROL "Suppress GDI Blt",IDC_NOGDIBLT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,48,127,10
|
||||
GROUPBOX "Visual flags",IDC_STATIC,153,7,140,139
|
||||
CONTROL "Emulate Registry",IDC_EMULATEREGISTRY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,84,124,10
|
||||
CONTROL "Force D3DCMP_ALWAYS setting ",IDC_ZBUFFERALWAYS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,164,127,10
|
||||
CONTROL "Suppress FillRect",IDC_NOFILLRECT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,60,127,10
|
||||
CONTROL "Force hot patching",IDC_HOTPATCHALWAYS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,159,176,127,10
|
||||
|
Binary file not shown.
@ -116,6 +116,7 @@ static void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
|
||||
if(dlg->m_Windowize) t->flags2 |= WINDOWIZE;
|
||||
if(dlg->m_HookDLLs) t->flags3 |= HOOKDLLS;
|
||||
if(dlg->m_EmulateRegistry) t->flags3 |= EMULATEREGISTRY;
|
||||
if(dlg->m_OverrideRegistry) t->flags4 |= OVERRIDEREGISTRY;
|
||||
if(dlg->m_HookEnabled) t->flags3 |= HOOKENABLED;
|
||||
if(dlg->m_NoBanner) t->flags2 |= NOBANNER;
|
||||
if(dlg->m_StartDebug) t->flags2 |= STARTDEBUG;
|
||||
@ -293,6 +294,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
|
||||
dlg->m_HotPatch = t->flags4 & HOTPATCH ? 1 : 0;
|
||||
dlg->m_HookDLLs = t->flags3 & HOOKDLLS ? 1 : 0;
|
||||
dlg->m_EmulateRegistry = t->flags3 & EMULATEREGISTRY ? 1 : 0;
|
||||
dlg->m_OverrideRegistry = t->flags4 & OVERRIDEREGISTRY ? 1 : 0;
|
||||
dlg->m_HookEnabled = t->flags3 & HOOKENABLED ? 1 : 0;
|
||||
dlg->m_NoBanner = t->flags2 & NOBANNER ? 1 : 0;
|
||||
dlg->m_StartDebug = t->flags2 & STARTDEBUG ? 1 : 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user