1
0
mirror of https://github.com/DxWnd/DxWnd.reloaded synced 2024-12-30 09:25:35 +01:00

v2_03_77_src

Former-commit-id: 07800790f06ef99084ca867b0176bc7585fc511b
This commit is contained in:
gho tik 2016-07-24 12:46:36 -04:00 committed by Refael ACkermann
parent 09ac6acd98
commit 83be477b26
99 changed files with 1682 additions and 186 deletions

View File

@ -228,6 +228,7 @@
#define INIT24BPP 0x00000400 // simulate a 24BPP initial desktop setting (in GetDeviceCaps API) #define INIT24BPP 0x00000400 // simulate a 24BPP initial desktop setting (in GetDeviceCaps API)
#define INIT32BPP 0x00000800 // simulate a 24BPP initial desktop setting (in GetDeviceCaps API) #define INIT32BPP 0x00000800 // simulate a 24BPP initial desktop setting (in GetDeviceCaps API)
#define FIXGLOBALUNLOCK 0x00001000 // Fix GlobalUnlock kernel32 API when it keeps returning the 1 retcode. #define FIXGLOBALUNLOCK 0x00001000 // Fix GlobalUnlock kernel32 API when it keeps returning the 1 retcode.
#define SHOWHINTS 0x00002000 // show configuration hints at runtime
// eighth flags DWORD dxw.dwFlags8: // eighth flags DWORD dxw.dwFlags8:
@ -316,6 +317,7 @@ void GetDllVersion(char *);
int GetHookStatus(DXWNDSTATUS *); int GetHookStatus(DXWNDSTATUS *);
DXWNDSTATUS *GetHookInfo(); DXWNDSTATUS *GetHookInfo();
void HookInit(TARGETMAP *, HWND); void HookInit(TARGETMAP *, HWND);
void ShowHint(int);
char *GetDxWndPath(); char *GetDxWndPath();
void *SetHook(void *, void *); void *SetHook(void *, void *);

3
Release/-dxwnd (2).dll Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:906d0c1b5bea989f124e1f3e1571d22d7fdfbd68c0f04b585b5241378e5e3f6e
size 662016

3
Release/-dxwnd (3).dll Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:759a3c86aff2e48a44fdfed7dac046ead2235e8a0c23326c0827674cd23a3110
size 662016

3
Release/-dxwnd.dll Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9f2fed41c7a75fae85f371ce9cd76bbf7ffa14f6f53178ed6ef52eef8d3ce0d4
size 662016

1
Release/.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
*.{dll,exe} filter=lfs diff=lfs merge=lfs -text

3
Release/Disasm.dll Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f413a207787da88281500aaeae07fb98d7d438ecb4d67f8fcdf0aff2f988717f
size 138752

67
Release/dxwnd-sc.ini Normal file
View File

@ -0,0 +1,67 @@
[window]
posx=172
posy=164
sizx=320
sizy=200
exepath=D:\Games\Starcraft\ exportpath=\EDMAINPC\installstuff-archive\ [target]
title0=Starcraft
path0=D:\Games\Starcraft\StarCraft.exe
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
coord0=2
flag0=404750386
flagg0=134217728
flagh0=20
flagi0=142802948
flagj0=268440577
flagk0=1114144
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=1920
sizy0=1080
maxfps0=0
initts0=-6
winver0=0
maxres0=-1
swapeffect0=0
maxddinterface0=7
slowratio0=2
[target]
title0=Starcraft
path0=D:\Games\Starcraft\StarCraft.exe
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
coord0=2
flag0=136315042
flagg0=1207959568
flagh0=20
flagi0=142606340
flagj0=5248
flagk0=65536
flagl0=0
flagm0=0
tflag0=0
dflag0=0
posx0=50
posy0=50
sizx0=1920
sizy0=1080
maxfps0=0
initts0=0
winver0=0
maxres0=-1
swapeffect0=0
maxddinterface0=7
slowratio0=2

698
Release/dxwnd.ini Normal file

File diff suppressed because one or more lines are too long

238
Release/dxwnd.reg Normal file
View File

@ -0,0 +1,238 @@
[HKEY_LOCAL_MACHINE\Software\Microsoft]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness]
"1.0"=".\\"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0]
"InstalledFrom"=".\\"
"HardDriveRootPath"=".\\"
"InstallType"="Full"
"version"="1.0"
"Launched"="1"
"PID"="87799-442-0210567-79960"
"Path"=".\\"
"VersionType"="RetailVersion"
"InstalledGroup"="15"
"LangID"=dword:00000009
"OmitDriverCheck"=dword:00000000
"LocalDriverInfo"=hex:4e,56,33,44,44,33,32,2e,44,4c,4c,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,34,2e,31,30,2e,30,2e,31,37,31,33,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,44,69,61,6d,6f,6e,64,20,56,69,70,65,72,20,\
56,33,33,30,20,28,4e,76,69,64,69,61,20,52,69,76,61,20,31,32,38,29,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,44,69,61,6d,\
6f,6e,64,20,56,69,70,65,72,20,56,33,33,30,20,28,4e,76,69,64,69,61,20,52,69,\
76,61,20,31,32,38,29,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,44,69,61,6d,6f,6e,64,20,4d,75,6c,74,69,6d,65,64,69,61,20,\
53,79,73,74,65,6d,73,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,08,6d,6d,33,64,66,78,33,32,2e,64,6c,6c,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,34,2e,31,\
30,2e,30,2e,31,35,39,38,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,33,44,66,78,20,56,6f,6f,64,6f,6f,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,33,44,66,78,20,56,6f,6f,\
64,6f,6f,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,33,44,66,78,20,49,6e,74,65,72,61,63,74,69,76,65,2c,20,49,6e,63,2e,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08
[HKEY_LOCAL_MACHINE\Software\Microsoft]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0\DriverInfo]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0\DriverInfo\{00000000-0000-0000-0000-000000000000}]
"Driver"="NV3DD32.DLL"
"Version"="4.10.0.1713"
"Description"="Diamond Viper V330 (Nvidia Riva 128)"
"DeviceID"="PCI\\VEN_12D2&DEV_0018&SUBSYS_10921092&REV_10\\000800"
"NumberOfModes"=dword:00000025
"Modes"=hex:40,01,00,00,c8,00,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,40,01,00,00,f0,00,00,00,08,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,90,01,00,00,2c,01,00,00,08,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,e0,01,00,00,68,01,00,00,08,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,80,01,00,00,08,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,02,00,00,90,01,00,\
00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,02,00,00,\
e0,01,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,20,\
03,00,00,58,02,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,c0,03,00,00,d0,02,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,04,00,00,00,03,00,00,08,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,80,04,00,00,60,03,00,00,08,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,04,00,00,08,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,06,00,00,b0,04,00,00,08,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,01,00,00,c8,00,00,00,\
10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,01,00,00,f0,\
00,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,e0,fd,ff,01,90,01,\
00,00,2c,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,e0,fd,ff,\
01,e0,01,00,00,68,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,\
e0,fd,ff,01,00,02,00,00,80,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,\
00,00,00,e0,fd,ff,01,80,02,00,00,90,01,00,00,10,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,80,02,00,00,e0,01,00,00,10,00,00,00,00,00,00,\
00,01,00,00,00,00,00,00,00,e0,fd,ff,01,20,03,00,00,58,02,00,00,10,00,00,00,\
00,00,00,00,01,00,00,00,00,00,00,00,e0,fd,ff,01,c0,03,00,00,d0,02,00,00,10,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,04,00,00,00,03,\
00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,04,00,\
00,60,03,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,05,00,00,00,04,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,40,06,00,00,b0,04,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,40,01,00,00,c8,00,00,00,20,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,40,01,00,00,f0,00,00,00,20,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,2c,01,00,00,20,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,e0,01,00,00,68,01,00,00,20,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,80,01,00,\
00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,02,00,00,\
90,01,00,00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,\
02,00,00,e0,01,00,00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,20,03,00,00,58,02,00,00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,c0,03,00,00,d0,02,00,00,20,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,04,00,00,00,03,00,00,20,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,80,04,00,00,60,03,00,00,20,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00
"TextureSizes"=hex:00,00,02,00,aa,aa,02,00,00,80,00,00,aa,aa,00,00,00,20,00,00,\
aa,2a,00,00,00,08,00,00,a0,0d,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0\DriverInfo\{3A0CFD01-9320-11CF-ACA1-00A02413C2E2}]
"Driver"="mm3dfx32.dll"
"Version"="4.10.0.1598"
"Description"="3Dfx Voodoo"
"DeviceID"="PCI\\VEN_121A&DEV_0001&SUBSYS_00000000&REV_02\\BUS_00&DEV_0E&FUNC_00"
"NumberOfModes"=dword:00000004
"Modes"=hex:00,02,00,00,80,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,01,00,\
00,00,00,00,40,00,80,02,00,00,90,01,00,00,10,00,00,00,00,00,00,00,00,00,00,\
00,01,00,00,00,00,00,00,00,80,02,00,00,e0,01,00,00,10,00,00,00,00,00,00,00,\
01,00,00,00,01,00,00,00,00,00,40,00,20,03,00,00,58,02,00,00,10,00,00,00,00,\
00,00,00,01,00,00,00,00,00,00,00,00,00,40,00
"TextureSizes"=hex:00,00,02,00,33,ab,02,00,00,80,00,00,33,ab,00,00,00,20,00,00,\
33,2b,00,00,00,08,00,00,33,0b,00,00,00,04,01,00,55,59,01,00,00,44,00,00,55,\
59,00,00,00,14,00,00,55,19,00,00,00,08,00,00,55,09,00,00

3
Release/filter.dll Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d364d53ff922e8381c306d23d51c3a93a0512325824e5e0513c424e9372f9b4c
size 13312

3
Release/vcomp90.dll Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9140efe26252b6329da254201219fc2d17a3f651e1591e32ae04c86a27e35bb2
size 51024

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:e285a1e111688d9564456ef3cba3955cbf10fd56e711280c3da2c5028c4b734e oid sha256:a11147cad06a6c6591536e555612315193dd8fcaecb0477ac76c8eb73042c52c
size 660480 size 664576

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1 version https://git-lfs.github.com/spec/v1
oid sha256:45173c58df52cbfe63834fb949adf1dc91809a0fce0acdad63069e1c7a20d71a oid sha256:49268359617f435f5ecf49d8bd37d95d15779ad9aa9a2035b1b33089c0f2c170
size 642560 size 644096

View File

@ -1,19 +1,238 @@
[HKEY_LOCAL_MACHINE\Software\Microsoft]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games]
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness]
"1.0"=".\\"
[HKEY_LOCAL_MACHINE\Software] [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0]
[HKEY_LOCAL_MACHINE\Software\MicroProse] "InstalledFrom"=".\\"
[HKEY_LOCAL_MACHINE\Software\MicroProse\MechWarrior 3 EP1] "HardDriveRootPath"=".\\"
[HKEY_LOCAL_MACHINE\Software\MicroProse\MechWarrior 3 EP1\1.0] "InstallType"="Full"
"Program"="..\\" "version"="1.0"
"Version"="1.0" "Launched"="1"
"InstallOptions"=dword:00050707 "PID"="87799-442-0210567-79960"
"Path"=".\\"
"VersionType"="RetailVersion"
"InstalledGroup"="15"
"LangID"=dword:00000009
"OmitDriverCheck"=dword:00000000
"LocalDriverInfo"=hex:4e,56,33,44,44,33,32,2e,44,4c,4c,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,34,2e,31,30,2e,30,2e,31,37,31,33,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,44,69,61,6d,6f,6e,64,20,56,69,70,65,72,20,\
56,33,33,30,20,28,4e,76,69,64,69,61,20,52,69,76,61,20,31,32,38,29,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,44,69,61,6d,\
6f,6e,64,20,56,69,70,65,72,20,56,33,33,30,20,28,4e,76,69,64,69,61,20,52,69,\
76,61,20,31,32,38,29,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,44,69,61,6d,6f,6e,64,20,4d,75,6c,74,69,6d,65,64,69,61,20,\
53,79,73,74,65,6d,73,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,08,6d,6d,33,64,66,78,33,32,2e,64,6c,6c,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,34,2e,31,\
30,2e,30,2e,31,35,39,38,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,33,44,66,78,20,56,6f,6f,64,6f,6f,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,33,44,66,78,20,56,6f,6f,\
64,6f,6f,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,33,44,66,78,20,49,6e,74,65,72,61,63,74,69,76,65,2c,20,49,6e,63,2e,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08
[HKEY_LOCAL_MACHINE\Software\Microsoft] [HKEY_LOCAL_MACHINE\Software\Microsoft]
[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlay] [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games]
[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlay\Applications] [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness]
[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectPlay\Applications\MechWarrior 3 EP1] [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0]
"Guid"="{FA96C421-18DD-11D3-95AF-0060089877F0}" [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0\DriverInfo]
"File"="Mech3.exe"
"CommandLine"=" [HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0\DriverInfo\{00000000-0000-0000-0000-000000000000}]
"Path"=".\\" "Driver"="NV3DD32.DLL"
"CurrentDirectory"=".\\" "Version"="4.10.0.1713"
"Description"="Diamond Viper V330 (Nvidia Riva 128)"
"DeviceID"="PCI\\VEN_12D2&DEV_0018&SUBSYS_10921092&REV_10\\000800"
"NumberOfModes"=dword:00000025
"Modes"=hex:40,01,00,00,c8,00,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,40,01,00,00,f0,00,00,00,08,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,90,01,00,00,2c,01,00,00,08,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,e0,01,00,00,68,01,00,00,08,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,80,01,00,00,08,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,02,00,00,90,01,00,\
00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,02,00,00,\
e0,01,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,20,\
03,00,00,58,02,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,c0,03,00,00,d0,02,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,04,00,00,00,03,00,00,08,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,80,04,00,00,60,03,00,00,08,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,04,00,00,08,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,06,00,00,b0,04,00,00,08,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,01,00,00,c8,00,00,00,\
10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,01,00,00,f0,\
00,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,e0,fd,ff,01,90,01,\
00,00,2c,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,e0,fd,ff,\
01,e0,01,00,00,68,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,\
e0,fd,ff,01,00,02,00,00,80,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,\
00,00,00,e0,fd,ff,01,80,02,00,00,90,01,00,00,10,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,80,02,00,00,e0,01,00,00,10,00,00,00,00,00,00,\
00,01,00,00,00,00,00,00,00,e0,fd,ff,01,20,03,00,00,58,02,00,00,10,00,00,00,\
00,00,00,00,01,00,00,00,00,00,00,00,e0,fd,ff,01,c0,03,00,00,d0,02,00,00,10,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,04,00,00,00,03,\
00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,04,00,\
00,60,03,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,05,00,00,00,04,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,40,06,00,00,b0,04,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,40,01,00,00,c8,00,00,00,20,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,40,01,00,00,f0,00,00,00,20,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,2c,01,00,00,20,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,e0,01,00,00,68,01,00,00,20,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,80,01,00,\
00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,02,00,00,\
90,01,00,00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,\
02,00,00,e0,01,00,00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,20,03,00,00,58,02,00,00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,c0,03,00,00,d0,02,00,00,20,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,04,00,00,00,03,00,00,20,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,80,04,00,00,60,03,00,00,20,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00
"TextureSizes"=hex:00,00,02,00,aa,aa,02,00,00,80,00,00,aa,aa,00,00,00,20,00,00,\
aa,2a,00,00,00,08,00,00,a0,0d,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0\DriverInfo\{3A0CFD01-9320-11CF-ACA1-00A02413C2E2}]
"Driver"="mm3dfx32.dll"
"Version"="4.10.0.1598"
"Description"="3Dfx Voodoo"
"DeviceID"="PCI\\VEN_121A&DEV_0001&SUBSYS_00000000&REV_02\\BUS_00&DEV_0E&FUNC_00"
"NumberOfModes"=dword:00000004
"Modes"=hex:00,02,00,00,80,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,01,00,\
00,00,00,00,40,00,80,02,00,00,90,01,00,00,10,00,00,00,00,00,00,00,00,00,00,\
00,01,00,00,00,00,00,00,00,80,02,00,00,e0,01,00,00,10,00,00,00,00,00,00,00,\
01,00,00,00,01,00,00,00,00,00,40,00,20,03,00,00,58,02,00,00,10,00,00,00,00,\
00,00,00,01,00,00,00,00,00,00,00,00,00,40,00
"TextureSizes"=hex:00,00,02,00,33,ab,02,00,00,80,00,00,33,ab,00,00,00,20,00,00,\
33,2b,00,00,00,08,00,00,33,0b,00,00,00,04,01,00,55,59,01,00,00,44,00,00,55,\
59,00,00,00,14,00,00,55,19,00,00,00,08,00,00,55,09,00,00

View File

@ -1169,3 +1169,10 @@ fix: code cleanup: eliminated CREATEDESKTOP handling, experimental and no longer
fix: vdxcore::IsToRemap now detects the NULL dc handle as remappable DC fix: vdxcore::IsToRemap now detects the NULL dc handle as remappable DC
fix: some logging imperfections fix: some logging imperfections
fix: palette log message crashing the program fix: palette log message crashing the program
v2.03.77
fix: SetCooperativeLevel with 0 HDC should not alter fullscreen status (fixes Portugal 1111 scrolling problem)
add: preliminary "Show hints" flag and feature
GUI: multi-line tab control
GUI: clicking on notes and registry icons the GUI goes straight to the relative tab pages.
GUI: The DirectX tab is now splitted in two, so that there no longer are DirectX switches into the Direct3D tab.

BIN
dll/Release/BuildLog.htm Normal file

Binary file not shown.

BIN
dll/Release/Inject.obj Normal file

Binary file not shown.

BIN
dll/Release/advapi.obj Normal file

Binary file not shown.

BIN
dll/Release/avifile.obj Normal file

Binary file not shown.

BIN
dll/Release/comctl32.obj Normal file

Binary file not shown.

BIN
dll/Release/comdlg32.obj Normal file

Binary file not shown.

BIN
dll/Release/cpulimit.obj Normal file

Binary file not shown.

BIN
dll/Release/d3dtexture.obj Normal file

Binary file not shown.

BIN
dll/Release/ddblit.obj Normal file

Binary file not shown.

BIN
dll/Release/ddraw.obj Normal file

Binary file not shown.

BIN
dll/Release/ddrawex.obj Normal file

Binary file not shown.

BIN
dll/Release/ddshot.obj Normal file

Binary file not shown.

BIN
dll/Release/ddtexture.obj Normal file

Binary file not shown.

BIN
dll/Release/dinput.obj Normal file

Binary file not shown.

BIN
dll/Release/dsound.obj Normal file

Binary file not shown.

BIN
dll/Release/dwhide.obj Normal file

Binary file not shown.

BIN
dll/Release/dxdiaghook.obj Normal file

Binary file not shown.

BIN
dll/Release/dxemublt.obj Normal file

Binary file not shown.

BIN
dll/Release/dxhelper.obj Normal file

Binary file not shown.

BIN
dll/Release/dxhook.obj Normal file

Binary file not shown.

BIN
dll/Release/dxwcore.obj Normal file

Binary file not shown.

BIN
dll/Release/dxwnd.exp Normal file

Binary file not shown.

BIN
dll/Release/dxwnd.lib Normal file

Binary file not shown.

BIN
dll/Release/dxwnd.obj Normal file

Binary file not shown.

BIN
dll/Release/dxwnd.res Normal file

Binary file not shown.

BIN
dll/Release/dxwsstack.obj Normal file

Binary file not shown.

BIN
dll/Release/dxwwstack.obj Normal file

Binary file not shown.

BIN
dll/Release/gdi32.obj Normal file

Binary file not shown.

BIN
dll/Release/gdiblt.obj Normal file

Binary file not shown.

BIN
dll/Release/glide.obj Normal file

Binary file not shown.

BIN
dll/Release/hd3d.obj Normal file

Binary file not shown.

BIN
dll/Release/hd3d7.obj Normal file

Binary file not shown.

BIN
dll/Release/hd3d8.obj Normal file

Binary file not shown.

BIN
dll/Release/hd3d9.obj Normal file

Binary file not shown.

BIN
dll/Release/hexdump.obj Normal file

Binary file not shown.

BIN
dll/Release/hint.obj Normal file

Binary file not shown.

BIN
dll/Release/hotpatch.obj Normal file

Binary file not shown.

BIN
dll/Release/iatpatch.obj Normal file

Binary file not shown.

BIN
dll/Release/imagehlp.obj Normal file

Binary file not shown.

BIN
dll/Release/imelib.obj Normal file

Binary file not shown.

BIN
dll/Release/kernel32.obj Normal file

Binary file not shown.

BIN
dll/Release/mincaps.obj Normal file

Binary file not shown.

BIN
dll/Release/msghook.obj Normal file

Binary file not shown.

BIN
dll/Release/msims32.obj Normal file

Binary file not shown.

BIN
dll/Release/msvfw.obj Normal file

Binary file not shown.

BIN
dll/Release/ole32.obj Normal file

Binary file not shown.

BIN
dll/Release/opengl.obj Normal file

Binary file not shown.

BIN
dll/Release/shareddc.obj Normal file

Binary file not shown.

BIN
dll/Release/smack.obj Normal file

Binary file not shown.

BIN
dll/Release/supmodes.obj Normal file

Binary file not shown.

BIN
dll/Release/toggle_fs.obj Normal file

Binary file not shown.

BIN
dll/Release/user32.obj Normal file

Binary file not shown.

BIN
dll/Release/vc90.idb Normal file

Binary file not shown.

BIN
dll/Release/winmm.obj Normal file

Binary file not shown.

BIN
dll/Release/winproc.obj Normal file

Binary file not shown.

BIN
dll/Release/wintrust.obj Normal file

Binary file not shown.

View File

@ -2203,11 +2203,18 @@ HRESULT WINAPI extSetCooperativeLevel(int dxversion, SetCooperativeLevel_Type pS
bFixFrame = TRUE; bFixFrame = TRUE;
} }
else{ else{
// v2.03.77: the game "Portugal 1111" calls SetCooperativeLevel with hwnd=0.
// in such a case, you can get the window size, so better leave the previous
// FullScreen setting unchanged. This is a wise politic also in case of any
// sort of GetClientRect error code.
if(hwnd){
RECT client; RECT client;
(*pGetClientRect)(hwnd, &client); BOOL ret;
ret=(*pGetClientRect)(hwnd, &client);
// v2.02.11: // v2.02.11:
// Non fullscreen cooperative mode means windowed, unless the window occupies the whole desktop area // Non fullscreen cooperative mode means windowed, unless the window occupies the whole desktop area
dxw.SetFullScreen(client.right==dxw.iSizX && client.bottom==dxw.iSizY); if (ret) dxw.SetFullScreen(client.right==dxw.iSizX && client.bottom==dxw.iSizY);
}
} }
} }

View File

@ -944,6 +944,26 @@ void SetModuleHooks()
if(hModule) { if(hModule) {
SysLibs[i]=hModule; SysLibs[i]=hModule;
OutTraceDW("InitModuleHooks: lib=%s hmodule=%x\n", SysNames[i], hModule); OutTraceDW("InitModuleHooks: lib=%s hmodule=%x\n", SysNames[i], hModule);
if(dxw.bHintActive) switch(i){
case SYSLIBIDX_DIRECTDRAW: ShowHint(HINT_DDRAW); break;
case SYSLIBIDX_DIRECT3D8: ShowHint(HINT_D3D8); break;
case SYSLIBIDX_DIRECT3D9: ShowHint(HINT_D3D9); break;
// DirectX10 & 11 are loaded by some system module, so better not to tell
//case SYSLIBIDX_DIRECT3D10:
//case SYSLIBIDX_DIRECT3D10_1:ShowHint(HINT_D3D10); break;
//case SYSLIBIDX_DIRECT3D11: ShowHint(HINT_D3D11); break;
case SYSLIBIDX_OPENGL: ShowHint(HINT_OPENGL); break;
case SYSLIBIDX_DSOUND: ShowHint(HINT_DSOUND); break;
case SYSLIBIDX_DINPUT: ShowHint(HINT_DINPUT); break;
case SYSLIBIDX_DINPUT8: ShowHint(HINT_DINPUT8); break;
case SYSLIBIDX_MSVFW:
case SYSLIBIDX_SMACK:
case SYSLIBIDX_WINMM:
case SYSLIBIDX_AVIFIL32: ShowHint(HINT_MOVIES); break;
case SYSLIBIDX_DIRECT3D:
case SYSLIBIDX_DIRECT3D700: ShowHint(HINT_D3D); break;
case SYSLIBIDX_IMAGEHLP: ShowHint(HINT_IHLP); break;
}
} }
} }
} }
@ -1328,6 +1348,7 @@ void HookInit(TARGETMAP *target, HWND hwnd)
sSourcePath[strlen(sSourcePath)-strlen("dxwnd.dll")] = 0; // terminate the string just before "dxwnd.dll" sSourcePath[strlen(sSourcePath)-strlen("dxwnd.dll")] = 0; // terminate the string just before "dxwnd.dll"
SetDllDirectory(sSourcePath); SetDllDirectory(sSourcePath);
if(dxw.bHintActive) ShowHint(HINT_HINT);
if(dxw.dwFlags5 & HYBRIDMODE) { if(dxw.dwFlags5 & HYBRIDMODE) {
// special mode settings .... // special mode settings ....
dxw.dwFlags1 |= EMULATESURFACE; dxw.dwFlags1 |= EMULATESURFACE;
@ -1413,7 +1434,7 @@ void HookInit(TARGETMAP *target, HWND hwnd)
OutTrace("HookInit: DWMComposition %s\n", sRes); OutTrace("HookInit: DWMComposition %s\n", sRes);
} }
if (SKIPIMEWINDOW) { if (hwnd) {
char ClassName[8+1]; char ClassName[8+1];
GetClassName(hwnd, ClassName, sizeof(ClassName)); GetClassName(hwnd, ClassName, sizeof(ClassName));
if(!strcmp(ClassName, "IME")){ if(!strcmp(ClassName, "IME")){
@ -1448,7 +1469,6 @@ void HookInit(TARGETMAP *target, HWND hwnd)
// make InitPosition used for both DInput and DDraw // make InitPosition used for both DInput and DDraw
if(dxw.Windowize) dxw.InitWindowPos(target->posx, target->posy, target->sizx, target->sizy); if(dxw.Windowize) dxw.InitWindowPos(target->posx, target->posy, target->sizx, target->sizy);
OutTraceB("HookInit: base hmodule=%x\n", base); OutTraceB("HookInit: base hmodule=%x\n", base);
HookModule(base, dxw.dwTargetDDVersion); HookModule(base, dxw.dwTargetDDVersion);
if (dxw.dwFlags3 & HOOKDLLS) HookDlls(base); if (dxw.dwFlags3 & HOOKDLLS) HookDlls(base);

View File

@ -146,6 +146,9 @@ void dxwCore::InitTarget(TARGETMAP *target)
// made before hooking !!! // made before hooking !!!
pGetWindowLong = (dwFlags5 & ANSIWIDE) ? GetWindowLongW : GetWindowLongA; pGetWindowLong = (dwFlags5 & ANSIWIDE) ? GetWindowLongW : GetWindowLongA;
pSetWindowLong = (dwFlags5 & ANSIWIDE) ? SetWindowLongW : SetWindowLongA; pSetWindowLong = (dwFlags5 & ANSIWIDE) ? SetWindowLongW : SetWindowLongA;
// hint system
bHintActive = (dwFlags7 & SHOWHINTS) ? TRUE : FALSE;
} }
void dxwCore::SetScreenSize(void) void dxwCore::SetScreenSize(void)

View File

@ -179,6 +179,7 @@ public: // simple data variables
int GDIEmulationMode; int GDIEmulationMode;
BOOL TimeFreeze; BOOL TimeFreeze;
RECT VirtualDesktop; RECT VirtualDesktop;
BOOL bHintActive;
// Implementation // Implementation
protected: protected:
@ -327,6 +328,14 @@ typedef enum {
} }
enum_syslibraries; enum_syslibraries;
typedef enum {
HINT_HINT = 0,
HINT_DDRAW, HINT_D3D8, HINT_D3D9, HINT_D3D10,
HINT_D3D11, HINT_OPENGL, HINT_DSOUND, HINT_DINPUT,
HINT_DINPUT8, HINT_MOVIES, HINT_D3D, HINT_IHLP,
HINT_LAST
} HintEnumIds;
#ifdef SYSLIBNAMES_DEFINES #ifdef SYSLIBNAMES_DEFINES
char *SysNames[]={ char *SysNames[]={
"kernel32", "kernel32",

View File

@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "TlHelp32.h" #include "TlHelp32.h"
#define VERSION "2.03.76" #define VERSION "2.03.77"
#define DDTHREADLOCK 1 #define DDTHREADLOCK 1
//#define LOCKTHREADS //#define LOCKTHREADS

Binary file not shown.

View File

@ -437,6 +437,10 @@
RelativePath=".\hexdump.cpp" RelativePath=".\hexdump.cpp"
> >
</File> </File>
<File
RelativePath=".\hint.cpp"
>
</File>
<File <File
RelativePath=".\hotpatch.cpp" RelativePath=".\hotpatch.cpp"
> >

View File

@ -194,7 +194,7 @@ static HookEntryEx_Type SyscallHooks[]={
{HOOK_IAT_CANDIDATE, 0, "FrameRgn", (FARPROC)NULL, (FARPROC *)&pFrameRgn, (FARPROC)extFrameRgn}, {HOOK_IAT_CANDIDATE, 0, "FrameRgn", (FARPROC)NULL, (FARPROC *)&pFrameRgn, (FARPROC)extFrameRgn},
{HOOK_IAT_CANDIDATE, 0, "InvertRgn", (FARPROC)NULL, (FARPROC *)&pInvertRgn, (FARPROC)extInvertRgn}, {HOOK_IAT_CANDIDATE, 0, "InvertRgn", (FARPROC)NULL, (FARPROC *)&pInvertRgn, (FARPROC)extInvertRgn},
{HOOK_IAT_CANDIDATE, 0, "PaintRgn", (FARPROC)NULL, (FARPROC *)&pPaintRgn, (FARPROC)extPaintRgn}, {HOOK_IAT_CANDIDATE, 0, "PaintRgn", (FARPROC)NULL, (FARPROC *)&pPaintRgn, (FARPROC)extPaintRgn},
//{HOOK_IAT_CANDIDATE, 0, "SetMapMode", (FARPROC)NULL, (FARPROC *)NULL, (FARPROC)extSetMapMode}, // crashes ??? ////{HOOK_IAT_CANDIDATE, 0, "SetMapMode", (FARPROC)NULL, (FARPROC *)NULL, (FARPROC)extSetMapMode}, // crashes ???
{HOOK_IAT_CANDIDATE, 0, "SetDIBitsToDevice", (FARPROC)SetDIBitsToDevice, (FARPROC *)&pSetDIBitsToDevice, (FARPROC)extSetDIBitsToDevice}, // does the stretching {HOOK_IAT_CANDIDATE, 0, "SetDIBitsToDevice", (FARPROC)SetDIBitsToDevice, (FARPROC *)&pSetDIBitsToDevice, (FARPROC)extSetDIBitsToDevice}, // does the stretching
{HOOK_IAT_CANDIDATE, 0, "Polyline", (FARPROC)Polyline, (FARPROC *)&pPolyline, (FARPROC)extPolyline}, {HOOK_IAT_CANDIDATE, 0, "Polyline", (FARPROC)Polyline, (FARPROC *)&pPolyline, (FARPROC)extPolyline},
{HOOK_IAT_CANDIDATE, 0, "BitBlt", (FARPROC)BitBlt, (FARPROC *)&pGDIBitBlt, (FARPROC)extGDIBitBlt}, {HOOK_IAT_CANDIDATE, 0, "BitBlt", (FARPROC)BitBlt, (FARPROC *)&pGDIBitBlt, (FARPROC)extGDIBitBlt},
@ -227,7 +227,7 @@ static HookEntryEx_Type SyscallHooks[]={
{HOOK_IAT_CANDIDATE, 0, "MoveToEx", (FARPROC)MoveToEx, (FARPROC *)&pMoveToEx, (FARPROC)extMoveToEx}, {HOOK_IAT_CANDIDATE, 0, "MoveToEx", (FARPROC)MoveToEx, (FARPROC *)&pMoveToEx, (FARPROC)extMoveToEx},
{HOOK_IAT_CANDIDATE, 0, "GetClipBox", (FARPROC)GetClipBox, (FARPROC *)&pGDIGetClipBox, (FARPROC)extGetClipBox}, {HOOK_IAT_CANDIDATE, 0, "GetClipBox", (FARPROC)GetClipBox, (FARPROC *)&pGDIGetClipBox, (FARPROC)extGetClipBox},
{HOOK_IAT_CANDIDATE, 0, "IntersectClipRect", (FARPROC)IntersectClipRect, (FARPROC *)&pIntersectClipRect, (FARPROC)extIntersectClipRect}, // Riven !! {HOOK_IAT_CANDIDATE, 0, "IntersectClipRect", (FARPROC)IntersectClipRect, (FARPROC *)&pIntersectClipRect, (FARPROC)extIntersectClipRect}, // Riven !!
{HOOK_IAT_CANDIDATE, 0, "DeleteDC", (FARPROC)DeleteDC, (FARPROC *)&pGDIDeleteDC, (FARPROC)extGDIDeleteDC}, // for tracing only! //{HOOK_IAT_CANDIDATE, 0, "DeleteDC", (FARPROC)DeleteDC, (FARPROC *)&pGDIDeleteDC, (FARPROC)extGDIDeleteDC}, // for tracing only! (commented: crashes Dylan Dog HLP!!)
{HOOK_IAT_CANDIDATE, 0, "CreateDCA", (FARPROC)CreateDCA, (FARPROC *)&pGDICreateDCA, (FARPROC)extGDICreateDCA}, {HOOK_IAT_CANDIDATE, 0, "CreateDCA", (FARPROC)CreateDCA, (FARPROC *)&pGDICreateDCA, (FARPROC)extGDICreateDCA},
{HOOK_IAT_CANDIDATE, 0, "CreateDCW", (FARPROC)CreateDCW, (FARPROC *)&pGDICreateDCW, (FARPROC)extGDICreateDCW}, {HOOK_IAT_CANDIDATE, 0, "CreateDCW", (FARPROC)CreateDCW, (FARPROC *)&pGDICreateDCW, (FARPROC)extGDICreateDCW},
@ -350,6 +350,35 @@ extern HRESULT WINAPI sBlt(int, Blt_Type, char *, LPDIRECTDRAWSURFACE, LPRECT, L
extern GetDC_Type pGetDC; extern GetDC_Type pGetDC;
extern ReleaseDC_Type pReleaseDC1; extern ReleaseDC_Type pReleaseDC1;
static char *ExplainDIBUsage(UINT u)
{
char *p;
switch(u){
case DIB_PAL_COLORS: p="DIB_PAL_COLORS"; break;
case DIB_RGB_COLORS: p="DIB_RGB_COLORS"; break;
default: p="invalid"; break;
}
return p;
}
static void TraceBITMAPINFOHEADER(char *fName, BITMAPINFOHEADER *bmi)
{
OutTrace("%s: BitmapInfo {Size=%d dim=(%dx%d) Planes=%d bitcount=%d Compression=%x SizeImage=%d PelsPerMeter=%dx%d colors=U%d:I%d}\n",
fName, bmi->biSize, bmi->biWidth, bmi->biHeight, bmi->biPlanes, bmi->biBitCount, bmi->biCompression,
bmi->biSizeImage, bmi->biXPelsPerMeter, bmi->biYPelsPerMeter, bmi->biClrUsed, bmi->biClrImportant);
if(bmi->biSize > sizeof(BITMAPINFOHEADER)){
BITMAPV4HEADER *bm4 = (BITMAPV4HEADER *)bmi;
OutTrace("%s: BitmapInfoV4 {RGBA mask=%x:%x:%x:%x cstype=%x gamma RGB=%x:%x:%x}\n",
fName, bm4->bV4RedMask, bm4->bV4GreenMask, bm4->bV4BlueMask, bm4->bV4AlphaMask,
bm4->bV4CSType, bm4->bV4GammaRed, bm4->bV4GammaGreen, bm4->bV4GammaBlue);
}
if(bmi->biSize > sizeof(BITMAPV4HEADER)){
BITMAPV5HEADER *bm5 = (BITMAPV5HEADER *)bmi;
OutTrace("%s: BitmapInfoV5 {intent=%x profiledata=%x profilesize=%x resvd=%x}\n",
fName, bm5->bV5Intent, bm5->bV5ProfileData, bm5->bV5ProfileSize, bm5->bV5Reserved);
}
}
//-------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------
// //
// API hookers // API hookers
@ -1737,8 +1766,11 @@ int WINAPI extStretchDIBits(HDC hdc, int XDest, int YDest, int nDestWidth, int n
const VOID *lpBits, const BITMAPINFO *lpBitsInfo, UINT iUsage, DWORD dwRop) const VOID *lpBits, const BITMAPINFO *lpBitsInfo, UINT iUsage, DWORD dwRop)
{ {
int ret; int ret;
if(IsTraceDW){
OutTraceDW("StretchDIBits: hdc=%x dest=(%d,%d)-(%d,%d) src=(%d,%d)-(%d,%d) rop=%x(%s)\n", OutTraceDW("StretchDIBits: hdc=%x dest=(%d,%d)-(%d,%d) src=(%d,%d)-(%d,%d) rop=%x(%s)\n",
hdc, XDest, YDest, nDestWidth, nDestHeight, XSrc, YSrc, nSrcWidth, nSrcHeight, dwRop, ExplainROP(dwRop)); hdc, XDest, YDest, nDestWidth, nDestHeight, XSrc, YSrc, nSrcWidth, nSrcHeight, dwRop, ExplainROP(dwRop));
TraceBITMAPINFOHEADER("StretchDIBits", (BITMAPINFOHEADER *)&(lpBitsInfo->bmiHeader));
}
if(dxw.IsToRemap(hdc)){ if(dxw.IsToRemap(hdc)){
switch(dxw.GDIEmulationMode){ switch(dxw.GDIEmulationMode){
@ -1772,11 +1804,10 @@ int WINAPI extStretchDIBits(HDC hdc, int XDest, int YDest, int nDestWidth, int n
int WINAPI extSetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines, const VOID *lpvBits, const BITMAPINFO *lpbmi, UINT fuColorUse) int WINAPI extSetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines, const VOID *lpvBits, const BITMAPINFO *lpbmi, UINT fuColorUse)
{ {
int ret; int ret;
BITMAPINFOHEADER *bmi; if(IsTraceDW){
OutTraceDW("SetDIBits: hdc=%x hbmp=%x lines=(%d,%d) ColorUse=%x\n", hdc, hbmp, uStartScan, cScanLines, fuColorUse); OutTrace("SetDIBits: hdc=%x hbmp=%x lines=(%d,%d) ColorUse=%x(%s)\n", hdc, hbmp, uStartScan, cScanLines, fuColorUse, ExplainDIBUsage(fuColorUse));
bmi=(BITMAPINFOHEADER *)&(lpbmi->bmiHeader); TraceBITMAPINFOHEADER("SetDIBits", (BITMAPINFOHEADER *)&(lpbmi->bmiHeader));
OutTraceDW("SetDIBits: BitmapInfo dim=(%dx%d) Planes=%d BPP=%d Compression=%x SizeImage=%x\n", }
bmi->biWidth, bmi->biHeight, bmi->biPlanes, bmi->biBitCount, bmi->biCompression, bmi->biSizeImage);
if(dxw.IsToRemap(hdc) && !bGDIRecursionFlag){ if(dxw.IsToRemap(hdc) && !bGDIRecursionFlag){
//HDC hTempDc; //HDC hTempDc;
@ -1785,7 +1816,8 @@ int WINAPI extSetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines,
case GDIMODE_SHAREDDC: // this will flicker !!!! case GDIMODE_SHAREDDC: // this will flicker !!!!
sdc.GetPrimaryDC(hdc); sdc.GetPrimaryDC(hdc);
ret=(*pSetDIBits)(sdc.GetHdc(), hbmp, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse); ret=(*pSetDIBits)(sdc.GetHdc(), hbmp, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse);
sdc.PutPrimaryDC(hdc, TRUE, 0, 0, bmi->biWidth, bmi->biHeight); if(!ret || (ret==GDI_ERROR)) OutTraceE("SetDIBits: ERROR err=%d\n", GetLastError());
sdc.PutPrimaryDC(hdc, TRUE, 0, 0, lpbmi->bmiHeader.biWidth, lpbmi->bmiHeader.biHeight);
return ret; return ret;
break; break;
case GDIMODE_STRETCHED: case GDIMODE_STRETCHED:
@ -1847,15 +1879,12 @@ int WINAPI extSetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines,
int WINAPI extGetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines, LPVOID lpvBits, LPBITMAPINFO lpbmi, UINT uUsage) int WINAPI extGetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines, LPVOID lpvBits, LPBITMAPINFO lpbmi, UINT uUsage)
{ {
int ret; int ret;
BITMAPINFOHEADER *bmi; if(IsTraceDW){
OutTraceDW("GetDIBits: hdc=%x hbmp=%x lines=(%d,%d) ColorUse=%x\n", hdc, hbmp, uStartScan, cScanLines, uUsage); OutTrace("GetDIBits: hdc=%x hbmp=%x lines=(%d,%d) ColorUse=%x(%s)\n", hdc, hbmp, uStartScan, cScanLines, uUsage, ExplainDIBUsage(uUsage));
bmi=(BITMAPINFOHEADER *)&(lpbmi->bmiHeader); TraceBITMAPINFOHEADER("GetDIBits", (BITMAPINFOHEADER *)&(lpbmi->bmiHeader));
OutTraceDW("GetDIBits: BitmapInfo dim=(%dx%d) Planes=%d BPP=%d Compression=%x SizeImage=%x\n", }
bmi->biWidth, bmi->biHeight, bmi->biPlanes, bmi->biBitCount, bmi->biCompression, bmi->biSizeImage);
if(dxw.IsToRemap(hdc) && !bGDIRecursionFlag){ if(dxw.IsToRemap(hdc) && !bGDIRecursionFlag){
//HDC hTempDc;
//HBITMAP hbmPic;
switch(dxw.GDIEmulationMode){ switch(dxw.GDIEmulationMode){
case GDIMODE_SHAREDDC: // this will flicker !!!! case GDIMODE_SHAREDDC: // this will flicker !!!!
sdc.GetPrimaryDC(hdc); sdc.GetPrimaryDC(hdc);
@ -1874,103 +1903,15 @@ int WINAPI extGetDIBits(HDC hdc, HBITMAP hbmp, UINT uStartScan, UINT cScanLines,
return ret; return ret;
} }
#if 0
int WINAPI extSetDIBitsToDevice(HDC hdc, int XDest, int YDest, DWORD dwWidth, DWORD dwHeight, int XSrc, int YSrc, UINT uStartScan, UINT cScanLines, int WINAPI extSetDIBitsToDevice(HDC hdc, int XDest, int YDest, DWORD dwWidth, DWORD dwHeight, int XSrc, int YSrc, UINT uStartScan, UINT cScanLines,
const VOID *lpvBits, const BITMAPINFO *lpbmi, UINT fuColorUse) const VOID *lpvBits, const BITMAPINFO *lpbmi, UINT fuColorUse)
{ {
int ret; int ret;
BITMAPINFOHEADER *bmi; if(IsTraceDW){
OutTraceDW("SetDIBitsToDevice: hdc=%x dest=(%d,%d)-(%dx%d) src=(%d,%d) lines=(%d,%d)\n", OutTrace("SetDIBitsToDevice: hdc=%x dest=(%d,%d)-(%dx%d) src=(%d,%d) lines=(%d,%d) bits=%x ColorUse=%x(%s)\n",
hdc, XDest, YDest, dwWidth, dwHeight, XSrc, YSrc, uStartScan, cScanLines); hdc, XDest, YDest, dwWidth, dwHeight, XSrc, YSrc, uStartScan, cScanLines, lpvBits, fuColorUse, ExplainDIBUsage(fuColorUse));
bmi=(BITMAPINFOHEADER *)&(lpbmi->bmiHeader); TraceBITMAPINFOHEADER("SetDIBitsToDevice", (BITMAPINFOHEADER *)&(lpbmi->bmiHeader));
OutTraceDW("SetDIBitsToDevice: BitmapInfo dim=(%dx%d) Planes=%d BPP=%d Compression=%x SizeImage=%x\n",
bmi->biWidth, bmi->biHeight, bmi->biPlanes, bmi->biBitCount, bmi->biCompression, bmi->biSizeImage);
bGDIRecursionFlag = TRUE; // beware: it seems that SetDIBitsToDevice calls SetDIBits internally
if(dxw.IsFullScreen()){
HDC hTempDc;
HBITMAP hbmPic;
DWORD OrigWidth, OrigHeight;
int OrigXDest, OrigYDest;
OrigWidth=dwWidth;
OrigHeight=dwHeight;
OrigXDest=XDest;
OrigYDest=YDest;
switch(dxw.GDIEmulationMode){
case GDIMODE_SHAREDDC:
if(dxw.IsToRemap(hdc)){
sdc.GetPrimaryDC(hdc);
ret=(*pSetDIBitsToDevice)(sdc.GetHdc(), XDest, YDest, dwWidth, dwHeight, XSrc, YSrc, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse);
sdc.PutPrimaryDC(hdc, TRUE, XDest, YDest, dwWidth, dwHeight);
} }
else{
ret=(*pSetDIBitsToDevice)(hdc, XDest, YDest, dwWidth, dwHeight, XSrc, YSrc, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse);
}
bGDIRecursionFlag = FALSE;
return ret;
break;
case GDIMODE_STRETCHED:
if(dxw.IsToRemap(hdc)){
// blitting to primary surface !!!
dxw.MapClient(&XDest, &YDest, (int *)&dwWidth, (int *)&dwHeight);
OutTraceDW("SetDIBitsToDevice: fixed dest=(%d,%d)-(%dx%d)\n", XDest, YDest, dwWidth, dwHeight);
if(!(hTempDc=CreateCompatibleDC(hdc)))
OutTraceE("CreateCompatibleDC: ERROR err=%d at=%d\n", GetLastError(), __LINE__);
// tricky part: CreateCompatibleBitmap is needed to set the dc size, but it has to be performed
// against hdc to set for color depth, then selected (through SelectObject) against the temporary
// dc to assign the needed size and color space to the temporary dc.
if(!(hbmPic=CreateCompatibleBitmap(hdc, OrigWidth, OrigHeight)))
OutTraceE("CreateCompatibleBitmap: ERROR err=%d at=%d\n", GetLastError(), __LINE__);
if(!SelectObject(hTempDc, hbmPic))
OutTraceE("SelectObject: ERROR err=%d at=%d\n", GetLastError(), __LINE__);
if(!(ret=(*pSetDIBitsToDevice)(hTempDc, 0, 0, OrigWidth, OrigHeight, XSrc, YSrc, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse)))
OutTraceE("SetDIBitsToDevice: ERROR err=%d at=%d\n", GetLastError(), __LINE__);
bGDIRecursionFlag = FALSE;
// v2.02.94: set HALFTONE stretching. Fixes "Celtic Kings Rage of War"
SetStretchBltMode(hdc,HALFTONE);
if(!(ret=(*pGDIStretchBlt)(hdc, XDest, YDest, dwWidth, dwHeight, hTempDc, 0, 0, OrigWidth, OrigHeight, SRCCOPY)))
OutTraceE("StretchBlt: ERROR err=%d at=%d\n", GetLastError(), __LINE__);
if(!(DeleteObject(hbmPic))) // v2.02.32 - avoid resource leakage
OutTraceE("DeleteObject: ERROR err=%d at=%d\n", GetLastError(), __LINE__);
if(!(DeleteDC(hTempDc)))
OutTraceE("DeleteDC: ERROR err=%d at=%d\n", GetLastError(), __LINE__);
return ret;
}
break;
case GDIMODE_EMULATED:
if (dxw.IsVirtual(hdc)){
int X, Y;
X=XDest+dxw.VirtualOffsetX;
Y=YDest+dxw.VirtualOffsetY;
OutTraceDW("SetDIBitsToDevice: virtual pos=(%d,%d)+(%d+%d)=(%d,%d)\n",
XDest, YDest, dxw.VirtualOffsetX, dxw.VirtualOffsetY, X, Y);
ret=(*pSetDIBitsToDevice)(hdc, X, Y, dwWidth, dwHeight, XSrc, YSrc, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse);
bGDIRecursionFlag = FALSE;
if(!ret || (ret==GDI_ERROR)) OutTraceE("SetDIBitsToDevice: ERROR ret=%x err=%d\n", ret, GetLastError());
return ret;
}
break;
default:
break;
}
}
ret=(*pSetDIBitsToDevice)(hdc, XDest, YDest, dwWidth, dwHeight, XSrc, YSrc, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse);
bGDIRecursionFlag = FALSE;
if(!ret || (ret==GDI_ERROR)) OutTraceE("SetDIBitsToDevice: ERROR ret=%x err=%d\n", ret, GetLastError());
return ret;
}
#else
int WINAPI extSetDIBitsToDevice(HDC hdc, int XDest, int YDest, DWORD dwWidth, DWORD dwHeight, int XSrc, int YSrc, UINT uStartScan, UINT cScanLines,
const VOID *lpvBits, const BITMAPINFO *lpbmi, UINT fuColorUse)
{
int ret;
BITMAPINFOHEADER *bmi;
OutTraceDW("SetDIBitsToDevice: hdc=%x dest=(%d,%d)-(%dx%d) src=(%d,%d) lines=(%d,%d)\n",
hdc, XDest, YDest, dwWidth, dwHeight, XSrc, YSrc, uStartScan, cScanLines);
bmi=(BITMAPINFOHEADER *)&(lpbmi->bmiHeader);
OutTraceDW("SetDIBitsToDevice: BitmapInfo dim=(%dx%d) Planes=%d BPP=%d Compression=%x SizeImage=%x\n",
bmi->biWidth, bmi->biHeight, bmi->biPlanes, bmi->biBitCount, bmi->biCompression, bmi->biSizeImage);
bGDIRecursionFlag = TRUE; // beware: it seems that SetDIBitsToDevice calls SetDIBits internally bGDIRecursionFlag = TRUE; // beware: it seems that SetDIBitsToDevice calls SetDIBits internally
if(dxw.IsToRemap(hdc)){ if(dxw.IsToRemap(hdc)){
@ -2036,7 +1977,6 @@ int WINAPI extSetDIBitsToDevice(HDC hdc, int XDest, int YDest, DWORD dwWidth, DW
if(!ret || (ret==GDI_ERROR)) OutTraceE("SetDIBitsToDevice: ERROR ret=%x err=%d\n", ret, GetLastError()); if(!ret || (ret==GDI_ERROR)) OutTraceE("SetDIBitsToDevice: ERROR ret=%x err=%d\n", ret, GetLastError());
return ret; return ret;
} }
#endif
HBITMAP WINAPI extCreateCompatibleBitmap(HDC hdc, int nWidth, int nHeight) HBITMAP WINAPI extCreateCompatibleBitmap(HDC hdc, int nWidth, int nHeight)
{ {
@ -3007,13 +2947,20 @@ BOOL WINAPI extPolyTextOutW(HDC hdc, const POLYTEXTW *pptxt, int cStrings)
HBITMAP WINAPI extCreateDIBitmap(HDC hdc, BITMAPINFOHEADER *lpbmih, DWORD fdwInit, const VOID *lpbInit, const BITMAPINFO *lpbmi, UINT fuUsage) HBITMAP WINAPI extCreateDIBitmap(HDC hdc, BITMAPINFOHEADER *lpbmih, DWORD fdwInit, const VOID *lpbInit, const BITMAPINFO *lpbmi, UINT fuUsage)
{ {
HBITMAP ret; HBITMAP ret;
OutTraceDW("CreateDIBitmap: hdc=%x\n", hdc); if(IsTraceDW){
OutTrace("CreateDIBitmap: hdc=%x init=%x%s data=%x usage=%x(%s)\n",
hdc, fdwInit, fdwInit==CBM_INIT?"(CBM_INIT)":"", lpbInit,
fuUsage, ExplainDIBUsage(fuUsage));
if(fdwInit==CBM_INIT) TraceBITMAPINFOHEADER("CreateDIBitmap(lpbmih)", lpbmih);
TraceBITMAPINFOHEADER("CreateDIBitmap(lpbmi)", (BITMAPINFOHEADER *)&(lpbmi->bmiHeader));
}
if(dxw.IsToRemap(hdc)) { if(dxw.IsToRemap(hdc)) {
switch(dxw.GDIEmulationMode){ switch(dxw.GDIEmulationMode){
case GDIMODE_SHAREDDC: case GDIMODE_SHAREDDC:
sdc.GetPrimaryDC(hdc); sdc.GetPrimaryDC(hdc);
ret=(*pCreateDIBitmap)(sdc.GetHdc(), lpbmih, fdwInit, lpbInit, lpbmi, fuUsage); ret=(*pCreateDIBitmap)(sdc.GetHdc(), lpbmih, fdwInit, lpbInit, lpbmi, fuUsage);
if(!ret) OutTraceE("CreateDIBitmap ERROR: err=%d\n", GetLastError());
sdc.PutPrimaryDC(hdc, FALSE); sdc.PutPrimaryDC(hdc, FALSE);
return ret; return ret;
break; break;

38
dll/hint.cpp Normal file
View File

@ -0,0 +1,38 @@
#include "windows.h"
#include "dxwnd.h"
#include "dxwcore.hpp"
typedef struct {
BOOL bShowed;
char *sHintText;
} HintEntry_Type;
HintEntry_Type HintTable[]={
{FALSE, "Automatic configuration hints enabled. Uncheck SHOWHINTS to turn off"},
{FALSE, "DirectDraw dependency detected. Check DirectX flags"},
{FALSE, "Direct3D8 dependency detected. Check DirectX8 flags"},
{FALSE, "Direct3D9 dependency detected. Check DirectX9 flags"},
{FALSE, "Direct3D10 dependency detected. Check DirectX10 flags"},
{FALSE, "Direct3D11 dependency detected. Check DirectX11 flags"},
{FALSE, "OpenGL dependency detected. Check OpenGL hook and flags"},
{FALSE, "DirectSound dependency detected. Check DirectSound hook in case of sound problems"},
{FALSE, "DirectInput dependency detected. Check DirectInput hook in case of input problems"},
{FALSE, "DirectInput8 dependency detected. Check DirectInput8 hook in case of input problems"},
{FALSE, "Movie libraries detected. Check multimedia section"},
{FALSE, "D3D libraries detected. Check DirectX version hook (DirectX7 ?)"},
{FALSE, "IMAGEHLP dependency detected. In case of error, check NOIMAGEHLP flag"},
{FALSE, ""}
};
void ShowHint(int HintId)
{
// boundary checks
if ((HintId < HINT_HINT) || (HintId >= HINT_LAST)) return;
// show hints just once
if(HintTable[HintId].bShowed) return;
HintTable[HintId].bShowed = TRUE;
// show hint
MessageBox(NULL, HintTable[HintId].sHintText, "DxWnd hint", MB_OK);
}

View File

@ -778,7 +778,7 @@ BOOL WINAPI extReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRea
{ {
BOOL ret; BOOL ret;
static char *IOBuffer=NULL; static char *IOBuffer=NULL;
memset(lpBuffer, 0, nNumberOfBytesToRead);
if(IsTraceDW){ if(IsTraceDW){
OutTrace("ReadFile: hFile=%x Buffer=%x BytesToRead=%d Overlapped=%x", hFile, lpBuffer, nNumberOfBytesToRead, lpOverlapped); OutTrace("ReadFile: hFile=%x Buffer=%x BytesToRead=%d Overlapped=%x", hFile, lpBuffer, nNumberOfBytesToRead, lpOverlapped);
@ -800,14 +800,65 @@ BOOL WINAPI extReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRea
return ret; return ret;
} }
static char *ExplainFlagsAndAttributes(DWORD c)
{
static char eb[256];
unsigned int l;
strcpy(eb,"");
if (c & FILE_ATTRIBUTE_ARCHIVE) strcat(eb, "FILE_ATTRIBUTE_ARCHIVE+");
if (c & FILE_ATTRIBUTE_ENCRYPTED) strcat(eb, "FILE_ATTRIBUTE_ENCRYPTED+");
if (c & FILE_ATTRIBUTE_HIDDEN) strcat(eb, "FILE_ATTRIBUTE_HIDDEN+");
if (c & FILE_ATTRIBUTE_NORMAL) strcat(eb, "FILE_ATTRIBUTE_NORMAL+");
if (c & FILE_ATTRIBUTE_OFFLINE) strcat(eb, "FILE_ATTRIBUTE_OFFLINE+");
if (c & FILE_ATTRIBUTE_READONLY) strcat(eb, "FILE_ATTRIBUTE_READONLY+");
if (c & FILE_ATTRIBUTE_SYSTEM) strcat(eb, "FILE_ATTRIBUTE_SYSTEM+");
if (c & FILE_ATTRIBUTE_TEMPORARY) strcat(eb, "FILE_ATTRIBUTE_TEMPORARY+");
if (c & FILE_FLAG_BACKUP_SEMANTICS) strcat(eb, "FILE_FLAG_BACKUP_SEMANTICS+");
if (c & FILE_FLAG_DELETE_ON_CLOSE) strcat(eb, "FILE_FLAG_DELETE_ON_CLOSE+");
if (c & FILE_FLAG_NO_BUFFERING) strcat(eb, "FILE_FLAG_NO_BUFFERING+");
if (c & FILE_FLAG_OPEN_NO_RECALL) strcat(eb, "FILE_FLAG_OPEN_NO_RECALL+");
if (c & FILE_FLAG_OPEN_REPARSE_POINT) strcat(eb, "FILE_FLAG_OPEN_REPARSE_POINT+");
if (c & FILE_FLAG_OVERLAPPED) strcat(eb, "FILE_FLAG_OVERLAPPED+");
if (c & FILE_FLAG_POSIX_SEMANTICS) strcat(eb, "FILE_FLAG_POSIX_SEMANTICS+");
if (c & FILE_FLAG_RANDOM_ACCESS) strcat(eb, "FILE_FLAG_RANDOM_ACCESS+");
//if (c & FILE_FLAG_SESSION_AWARE) strcat(eb, "FILE_FLAG_SESSION_AWARE+");
if (c & FILE_FLAG_SEQUENTIAL_SCAN) strcat(eb, "FILE_FLAG_SEQUENTIAL_SCAN+");
if (c & FILE_FLAG_WRITE_THROUGH) strcat(eb, "FILE_FLAG_WRITE_THROUGH+");
if (c & SECURITY_ANONYMOUS) strcat(eb, "SECURITY_ANONYMOUS+");
if (c & SECURITY_CONTEXT_TRACKING) strcat(eb, "SECURITY_CONTEXT_TRACKING+");
if (c & SECURITY_DELEGATION) strcat(eb, "SECURITY_DELEGATION+");
if (c & SECURITY_EFFECTIVE_ONLY) strcat(eb, "SECURITY_EFFECTIVE_ONLY+");
if (c & SECURITY_IDENTIFICATION) strcat(eb, "SECURITY_IDENTIFICATION+");
if (c & SECURITY_IMPERSONATION) strcat(eb, "SECURITY_IMPERSONATION+");
l=strlen(eb);
if (l>strlen("")) eb[l-1]=0; // delete last '+' if any
return(eb);
}
static char *ExplainDesiredAccess(DWORD c)
{
static char eb[256];
unsigned int l;
strcpy(eb,"GENERIC_");
if (c & GENERIC_READ) strcat(eb, "READ+");
if (c & GENERIC_WRITE) strcat(eb, "WRITE+");
if (c & GENERIC_EXECUTE) strcat(eb, "EXECUTE+");
if (c & GENERIC_ALL) strcat(eb, "ALL+");
l=strlen(eb);
if (l>strlen("GENERIC_")) eb[l-1]=0; // delete last '+' if any
else eb[0]=0;
return(eb);
}
HANDLE WINAPI extCreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, HANDLE WINAPI extCreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes, HANDLE hTemplateFile) DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
{ {
HANDLE ret; HANDLE ret;
int err=0; int err=0;
OutTraceDW("CreateFile: FileName=%s DesiredAccess=%x SharedMode=%x Disposition=%x Flags=%x\n", OutTraceDW("CreateFile: FileName=%s DesiredAccess=%x(%s) SharedMode=%x Disposition=%x Flags=%x(%s)\n",
lpFileName, dwDesiredAccess, dwShareMode, dwCreationDisposition, dwFlagsAndAttributes); lpFileName, dwDesiredAccess, ExplainDesiredAccess(dwDesiredAccess), dwShareMode, dwCreationDisposition,
dwFlagsAndAttributes, ExplainFlagsAndAttributes(dwFlagsAndAttributes));
// just proxy // just proxy
if(!(dxw.dwFlags3 & BUFFEREDIOFIX)) if(!(dxw.dwFlags3 & BUFFEREDIOFIX))

View File

@ -111,6 +111,9 @@ BOOL WINAPI extDrawMenuBar(HWND);
typedef BOOL (WINAPI *EnumDisplayDevicesA_Type)(LPCSTR, DWORD, PDISPLAY_DEVICE, DWORD); typedef BOOL (WINAPI *EnumDisplayDevicesA_Type)(LPCSTR, DWORD, PDISPLAY_DEVICE, DWORD);
EnumDisplayDevicesA_Type pEnumDisplayDevicesA = NULL; EnumDisplayDevicesA_Type pEnumDisplayDevicesA = NULL;
BOOL WINAPI extEnumDisplayDevicesA(LPCSTR, DWORD, PDISPLAY_DEVICE, DWORD); BOOL WINAPI extEnumDisplayDevicesA(LPCSTR, DWORD, PDISPLAY_DEVICE, DWORD);
typedef INT_PTR (WINAPI *DialogBoxIndirectParamA_Type)(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
DialogBoxIndirectParamA_Type pDialogBoxIndirectParamA = NULL;
INT_PTR WINAPI extDialogBoxIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
#ifdef TRACEPALETTE #ifdef TRACEPALETTE
@ -278,6 +281,7 @@ static HookEntryEx_Type WinHooks[]={
{HOOK_HOT_CANDIDATE, 0, "DeferWindowPos", (FARPROC)DeferWindowPos, (FARPROC *)&pGDIDeferWindowPos, (FARPROC)extDeferWindowPos}, {HOOK_HOT_CANDIDATE, 0, "DeferWindowPos", (FARPROC)DeferWindowPos, (FARPROC *)&pGDIDeferWindowPos, (FARPROC)extDeferWindowPos},
{HOOK_HOT_CANDIDATE, 0, "CallWindowProcA", (FARPROC)CallWindowProcA, (FARPROC *)&pCallWindowProcA, (FARPROC)extCallWindowProcA}, {HOOK_HOT_CANDIDATE, 0, "CallWindowProcA", (FARPROC)CallWindowProcA, (FARPROC *)&pCallWindowProcA, (FARPROC)extCallWindowProcA},
{HOOK_HOT_CANDIDATE, 0, "CallWindowProcW", (FARPROC)CallWindowProcW, (FARPROC *)&pCallWindowProcW, (FARPROC)extCallWindowProcW}, {HOOK_HOT_CANDIDATE, 0, "CallWindowProcW", (FARPROC)CallWindowProcW, (FARPROC *)&pCallWindowProcW, (FARPROC)extCallWindowProcW},
{HOOK_HOT_CANDIDATE, 0, "DialogBoxIndirectParamA", (FARPROC)DialogBoxIndirectParamA, (FARPROC *)&pDialogBoxIndirectParamA, (FARPROC)extDialogBoxIndirectParamA},
{HOOK_IAT_CANDIDATE, 0, 0, NULL, 0, 0} // terminator {HOOK_IAT_CANDIDATE, 0, 0, NULL, 0, 0} // terminator
}; };
@ -1768,11 +1772,14 @@ HWND WINAPI extCreateWindowExA(
return extCreateWindowCommon("CreateWindowExA", FALSE, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); return extCreateWindowCommon("CreateWindowExA", FALSE, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
} }
extern void ExplainMsg(char *, HWND, UINT, WPARAM, LPARAM);
LRESULT WINAPI extCallWindowProcA(WNDPROC lpPrevWndFunc, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam) LRESULT WINAPI extCallWindowProcA(WNDPROC lpPrevWndFunc, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{ {
// v2.02.30: fix (Imperialism II): apply to main window only !!! // v2.02.30: fix (Imperialism II): apply to main window only !!!
HRESULT res; HRESULT res;
if(IsTraceW) ExplainMsg("CallWindowProcA", hwnd, Msg, wParam, lParam);
res = -1; res = -1;
if(hwnd == dxw.GethWnd()) res=FixWindowProc("CallWindowProcA", hwnd, Msg, wParam, &lParam); if(hwnd == dxw.GethWnd()) res=FixWindowProc("CallWindowProcA", hwnd, Msg, wParam, &lParam);
@ -1787,6 +1794,7 @@ LRESULT WINAPI extCallWindowProcW(WNDPROC lpPrevWndFunc, HWND hwnd, UINT Msg, WP
// v2.02.30: fix (Imperialism II): apply to main window only !!! // v2.02.30: fix (Imperialism II): apply to main window only !!!
HRESULT res; HRESULT res;
if(IsTraceW) ExplainMsg("CallWindowProcW", hwnd, Msg, wParam, lParam);
res = -1; res = -1;
if(hwnd == dxw.GethWnd()) res=FixWindowProc("CallWindowProcW", hwnd, Msg, wParam, &lParam); if(hwnd == dxw.GethWnd()) res=FixWindowProc("CallWindowProcW", hwnd, Msg, wParam, &lParam);
@ -1802,6 +1810,7 @@ LRESULT WINAPI extDefWindowProcA(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lPar
// v2.03.50: fix - do clip cursor only after the window has got focus // v2.03.50: fix - do clip cursor only after the window has got focus
HRESULT res; HRESULT res;
res = (HRESULT)-1; res = (HRESULT)-1;
if(IsTraceW) ExplainMsg("DefWindowProcA", hwnd, Msg, wParam, lParam);
if(hwnd == dxw.GethWnd()) res=FixWindowProc("DefWindowProcA", hwnd, Msg, wParam, &lParam); if(hwnd == dxw.GethWnd()) res=FixWindowProc("DefWindowProcA", hwnd, Msg, wParam, &lParam);
if (res==(HRESULT)-1) res = (*pDefWindowProcA)(hwnd, Msg, wParam, lParam); if (res==(HRESULT)-1) res = (*pDefWindowProcA)(hwnd, Msg, wParam, lParam);
if((Msg == WM_SETFOCUS) && (dxw.dwFlags1 & CLIPCURSOR)) dxw.SetClipCursor(); if((Msg == WM_SETFOCUS) && (dxw.dwFlags1 & CLIPCURSOR)) dxw.SetClipCursor();
@ -1814,6 +1823,7 @@ LRESULT WINAPI extDefWindowProcW(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lPar
// v2.03.50: fix - do clip cursor only after the window has got focus // v2.03.50: fix - do clip cursor only after the window has got focus
HRESULT res; HRESULT res;
res = (HRESULT)-1; res = (HRESULT)-1;
if(IsTraceW) ExplainMsg("DefWindowProcW", hwnd, Msg, wParam, lParam);
if(hwnd == dxw.GethWnd()) res=FixWindowProc("DefWindowProcW", hwnd, Msg, wParam, &lParam); if(hwnd == dxw.GethWnd()) res=FixWindowProc("DefWindowProcW", hwnd, Msg, wParam, &lParam);
if (res==(HRESULT)-1) res = (*pDefWindowProcW)(hwnd, Msg, wParam, lParam); if (res==(HRESULT)-1) res = (*pDefWindowProcW)(hwnd, Msg, wParam, lParam);
if((Msg == WM_SETFOCUS) && (dxw.dwFlags1 & CLIPCURSOR)) dxw.SetClipCursor(); if((Msg == WM_SETFOCUS) && (dxw.dwFlags1 & CLIPCURSOR)) dxw.SetClipCursor();
@ -3762,3 +3772,13 @@ BOOL WINAPI extEnumDisplayDevicesA(LPCSTR lpDevice, DWORD iDevNum, PDISPLAY_DEVI
} }
return ret; return ret;
} }
INT_PTR WINAPI extDialogBoxIndirectParamA(HINSTANCE hInstance, LPCDLGTEMPLATE hDialogTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam)
{
//INT_PTR ret;
// MessageBox(0, "DialogBoxIndirectParamA", "step", 0);
OutTrace("DialogBoxIndirectParamA: hInstance=%x pos=(%d,%d) size=(%dx%d) hWndParent=%x, lpDialogFunc=%x dwInitParam=%x\n",
hInstance, hDialogTemplate->x, hDialogTemplate->y, hDialogTemplate->cx, hDialogTemplate->cy, hWndParent, lpDialogFunc, dwInitParam);
return (*pDialogBoxIndirectParamA)(hInstance, hDialogTemplate, hWndParent, lpDialogFunc, dwInitParam);
}

View File

@ -196,6 +196,29 @@ static void dx_Cornerize(HWND hwnd)
LRESULT LastCursorPos; LRESULT LastCursorPos;
void ExplainMsg(char *ApiName, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
char sPos[161];
sPos[160]=0;
sPos[0]=0;
switch(Msg){
case WM_WINDOWPOSCHANGING:
case WM_WINDOWPOSCHANGED:
LPWINDOWPOS wp;
wp = (LPWINDOWPOS)lParam;
sprintf_s(sPos, 160, " pos=(%d,%d) size=(%dx%d) flags=%x(%s)", wp->x, wp->y, wp->cx, wp->cy, wp->flags, ExplainWPFlags(wp->flags));
break;
case WM_MOVE:
sprintf_s(sPos, 160, " pos=(%d,%d)", HIWORD(lParam), LOWORD(lParam));
break;
case WM_SIZE:
static char *modes[5]={"RESTORED", "MINIMIZED", "MAXIMIZED", "MAXSHOW", "MAXHIDE"};
sprintf_s(sPos, 160, " mode=SIZE_%s size=(%dx%d)", modes[wParam % 5], HIWORD(lParam), LOWORD(lParam));
break;
}
OutTrace("%s[%x]: WinMsg=[0x%x]%s(%x,%x) %s\n", ApiName, hwnd, Msg, ExplainWinMessage(Msg), wParam, lParam, sPos);
}
LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{ {
POINT prev, curr; POINT prev, curr;
@ -220,27 +243,7 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
// v2.1.93: adjust clipping region // v2.1.93: adjust clipping region
if(IsTraceW){ if(IsTraceW) ExplainMsg("WindowProc", hwnd, message, wparam, lparam);
char sPos[161];
sPos[160]=0;
sPos[0]=0;
switch(message){
case WM_WINDOWPOSCHANGING:
case WM_WINDOWPOSCHANGED:
LPWINDOWPOS wp;
wp = (LPWINDOWPOS)lparam;
sprintf_s(sPos, 160, " pos=(%d,%d) size=(%dx%d) flags=%x(%s)", wp->x, wp->y, wp->cx, wp->cy, wp->flags, ExplainWPFlags(wp->flags));
break;
case WM_MOVE:
sprintf_s(sPos, 160, " pos=(%d,%d)", HIWORD(lparam), LOWORD(lparam));
break;
case WM_SIZE:
static char *modes[5]={"RESTORED", "MINIMIZED", "MAXIMIZED", "MAXSHOW", "MAXHIDE"};
sprintf_s(sPos, 160, " mode=SIZE_%s size=(%dx%d)", modes[wparam % 5], HIWORD(lparam), LOWORD(lparam));
break;
}
OutTrace("WindowProc[%x]: WinMsg=[0x%x]%s(%x,%x) %s\n", hwnd, message, ExplainWinMessage(message), wparam, lparam, sPos);
}
if(dxw.dwFlags3 & FILTERMESSAGES){ if(dxw.dwFlags3 & FILTERMESSAGES){
switch(message){ switch(message){

View File

@ -34,21 +34,6 @@ void CTabDirect3D::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_NOD3DRESET, cTarget->m_NoD3DReset); DDX_Check(pDX, IDC_NOD3DRESET, cTarget->m_NoD3DReset);
DDX_Check(pDX, IDC_SUPPRESSD3DEXT, cTarget->m_SuppressD3DExt); DDX_Check(pDX, IDC_SUPPRESSD3DEXT, cTarget->m_SuppressD3DExt);
// Ddraw tweaks
DDX_Check(pDX, IDC_NOSYSMEMPRIMARY, cTarget->m_NoSysMemPrimary);
DDX_Check(pDX, IDC_NOSYSMEMBACKBUF, cTarget->m_NoSysMemBackBuf);
DDX_Check(pDX, IDC_FIXPITCH, cTarget->m_FixPitch);
DDX_Check(pDX, IDC_POWER2WIDTH, cTarget->m_Power2Width);
DDX_Check(pDX, IDC_FIXREFCOUNTER, cTarget->m_FixRefCounter);
DDX_Check(pDX, IDC_RETURNNULLREF, cTarget->m_ReturnNullRef);
DDX_Check(pDX, IDC_FORCESHEL, cTarget->m_ForcesHEL);
DDX_Check(pDX, IDC_MINIMALCAPS, cTarget->m_MinimalCaps);
DDX_Check(pDX, IDC_SETZBUFFERBITDEPTHS, cTarget->m_SetZBufferBitDepths);
DDX_Check(pDX, IDC_DEINTERLACE, cTarget->m_Deinterlace);
DDX_Check(pDX, IDC_LIMITDDRAW, cTarget->m_LimitDdraw);
DDX_Check(pDX, IDC_SUPPRESSOVERLAY, cTarget->m_SuppressOverlay);
DDX_CBIndex(pDX, IDC_DDWAWLIMITCOMBO, cTarget->m_MaxDdrawInterface);
// Texture management // Texture management
DDX_Radio(pDX, IDC_TEXTURENONE, cTarget->m_TextureHandling); DDX_Radio(pDX, IDC_TEXTURENONE, cTarget->m_TextureHandling);

54
host/TabDirectX2.cpp Normal file
View File

@ -0,0 +1,54 @@
// TabDirectX2.cpp : implementation file
//
#include "stdafx.h"
#include "TargetDlg.h"
#include "TabDirectX2.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTabDirectX2 dialog
CTabDirectX2::CTabDirectX2(CWnd* pParent /*=NULL*/)
: CDialog(CTabDirectX2::IDD, pParent)
{
//{{AFX_DATA_INIT(CTabDirectX2)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CTabDirectX2::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
CTargetDlg *cTarget = ((CTargetDlg *)(this->GetParent()->GetParent()));
// Ddraw tweaks
DDX_Check(pDX, IDC_NOSYSMEMPRIMARY, cTarget->m_NoSysMemPrimary);
DDX_Check(pDX, IDC_NOSYSMEMBACKBUF, cTarget->m_NoSysMemBackBuf);
DDX_Check(pDX, IDC_FIXPITCH, cTarget->m_FixPitch);
DDX_Check(pDX, IDC_POWER2WIDTH, cTarget->m_Power2Width);
DDX_Check(pDX, IDC_FIXREFCOUNTER, cTarget->m_FixRefCounter);
DDX_Check(pDX, IDC_RETURNNULLREF, cTarget->m_ReturnNullRef);
DDX_Check(pDX, IDC_FORCESHEL, cTarget->m_ForcesHEL);
DDX_Check(pDX, IDC_MINIMALCAPS, cTarget->m_MinimalCaps);
DDX_Check(pDX, IDC_SETZBUFFERBITDEPTHS, cTarget->m_SetZBufferBitDepths);
DDX_Check(pDX, IDC_DEINTERLACE, cTarget->m_Deinterlace);
DDX_Check(pDX, IDC_LIMITDDRAW, cTarget->m_LimitDdraw);
DDX_Check(pDX, IDC_SUPPRESSOVERLAY, cTarget->m_SuppressOverlay);
DDX_CBIndex(pDX, IDC_DDWAWLIMITCOMBO, cTarget->m_MaxDdrawInterface);
}
BEGIN_MESSAGE_MAP(CTabDirectX2, CDialog)
//{{AFX_MSG_MAP(CTabDirectX2)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTabDirectX2 message handlers

48
host/TabDirectX2.h Normal file
View File

@ -0,0 +1,48 @@
#if !defined(AFX_TabDirectX2_H__798A9124_C906_446C_822D_322B5AB6C4C4__INCLUDED_)
#define AFX_TabDirectX2_H__798A9124_C906_446C_822D_322B5AB6C4C4__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// TabDirect3D.h : header file
//
#include "resource.h"
/////////////////////////////////////////////////////////////////////////////
// CTabDirectX2 dialog
class CTabDirectX2 : public CDialog
{
// Construction
public:
CTabDirectX2(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CTabDirectX2)
enum { IDD = IDD_TAB_DIRECTX };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CTabDirectX2)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CTabDirectX2)
// NOTE: the ClassWizard will add member functions here
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
public:
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif

View File

@ -51,6 +51,7 @@ void CTabProgram::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_CONFIRMONCLOSE, cTarget->m_ConfirmOnClose); DDX_Check(pDX, IDC_CONFIRMONCLOSE, cTarget->m_ConfirmOnClose);
DDX_Check(pDX, IDC_TERMINATEONCLOSE, cTarget->m_TerminateOnClose); DDX_Check(pDX, IDC_TERMINATEONCLOSE, cTarget->m_TerminateOnClose);
DDX_Check(pDX, IDC_FULLSCREENONLY, cTarget->m_FullScreenOnly); DDX_Check(pDX, IDC_FULLSCREENONLY, cTarget->m_FullScreenOnly);
DDX_Check(pDX, IDC_SHOWHINTS, cTarget->m_ShowHints);
DDX_Check(pDX, IDC_SAVELOAD, cTarget->m_SaveLoad); DDX_Check(pDX, IDC_SAVELOAD, cTarget->m_SaveLoad);
DDX_Check(pDX, IDC_KEEPASPECTRATIO, cTarget->m_KeepAspectRatio); DDX_Check(pDX, IDC_KEEPASPECTRATIO, cTarget->m_KeepAspectRatio);
DDX_Check(pDX, IDC_NOBANNER, cTarget->m_NoBanner); DDX_Check(pDX, IDC_NOBANNER, cTarget->m_NoBanner);
@ -71,6 +72,8 @@ BEGIN_MESSAGE_MAP(CTabProgram, CDialog)
ON_BN_CLICKED(IDC_OPENLAUNCH, OnOpenLaunch) ON_BN_CLICKED(IDC_OPENLAUNCH, OnOpenLaunch)
ON_WM_DROPFILES() ON_WM_DROPFILES()
//}}AFX_MSG_MAP //}}AFX_MSG_MAP
ON_STN_CLICKED(IDC_REGISTRY, &CTabProgram::OnStnClickedRegistry)
ON_STN_CLICKED(IDC_NOTES, &CTabProgram::OnStnClickedNotes)
END_MESSAGE_MAP() END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
@ -211,3 +214,26 @@ BOOL CTabProgram::OnInitDialog()
return TRUE; return TRUE;
} }
void CTabProgram::OnStnClickedRegistry()
{
// TODO: Add your control notification handler code here
CDXTabCtrl *cTab = (CDXTabCtrl *)this->GetParent();
cTab->SwitchToTab(11);
}
void CTabProgram::OnStnClickedNotes()
{
// TODO: Add your control notification handler code here
CDXTabCtrl *cTab = (CDXTabCtrl *)this->GetParent();
cTab->SwitchToTab(12);
}
//CTabCtrl::OnLButtonDown(nFlags, point);
//if(m_tabCurrent != GetCurFocus()){
// m_tabPages[m_tabCurrent]->ShowWindow(SW_HIDE);
// m_tabCurrent=GetCurFocus();
// m_tabPages[m_tabCurrent]->ShowWindow(SW_SHOW);
// m_tabPages[m_tabCurrent]->SetFocus();
//}

View File

@ -46,6 +46,9 @@ protected:
CSpecialEdit m_EditPosX; CSpecialEdit m_EditPosX;
CSpecialEdit m_EditPosY; CSpecialEdit m_EditPosY;
afx_msg void OnDropFiles(HDROP hDropInfo); afx_msg void OnDropFiles(HDROP hDropInfo);
public:
afx_msg void OnStnClickedRegistry();
afx_msg void OnStnClickedNotes();
}; };
//{{AFX_INSERT_LOCATION}} //{{AFX_INSERT_LOCATION}}

View File

@ -120,6 +120,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
m_Wow64Registry = FALSE; m_Wow64Registry = FALSE;
m_Wow32Registry = FALSE; m_Wow32Registry = FALSE;
m_FullScreenOnly = FALSE; m_FullScreenOnly = FALSE;
m_ShowHints = FALSE;
//m_FilterMessages = FALSE; //m_FilterMessages = FALSE;
m_PeekAllMessages = FALSE; m_PeekAllMessages = FALSE;
m_NoWinPosChanges = FALSE; m_NoWinPosChanges = FALSE;
@ -255,6 +256,8 @@ BOOL CTargetDlg::OnInitDialog()
m_tabdxTabCtrl.InsertItem(i++, _T(sCaption)); m_tabdxTabCtrl.InsertItem(i++, _T(sCaption));
LoadString(AfxGetResourceHandle(), DXW_TAB_DIRECTX, sCaption, sizeof(sCaption)); LoadString(AfxGetResourceHandle(), DXW_TAB_DIRECTX, sCaption, sizeof(sCaption));
m_tabdxTabCtrl.InsertItem(i++, _T(sCaption)); m_tabdxTabCtrl.InsertItem(i++, _T(sCaption));
LoadString(AfxGetResourceHandle(), DXW_TAB_DIRECTX2, sCaption, sizeof(sCaption));
m_tabdxTabCtrl.InsertItem(i++, _T(sCaption));
LoadString(AfxGetResourceHandle(), DXW_TAB_D3D, sCaption, sizeof(sCaption)); LoadString(AfxGetResourceHandle(), DXW_TAB_D3D, sCaption, sizeof(sCaption));
m_tabdxTabCtrl.InsertItem(i++, _T(sCaption)); m_tabdxTabCtrl.InsertItem(i++, _T(sCaption));
LoadString(AfxGetResourceHandle(), DXW_TAB_TIMING, sCaption, sizeof(sCaption)); LoadString(AfxGetResourceHandle(), DXW_TAB_TIMING, sCaption, sizeof(sCaption));

View File

@ -72,6 +72,7 @@ public:
BOOL m_Wow64Registry; BOOL m_Wow64Registry;
BOOL m_Wow32Registry; BOOL m_Wow32Registry;
BOOL m_FullScreenOnly; BOOL m_FullScreenOnly;
BOOL m_ShowHints;
BOOL m_NeedAdminCaps; BOOL m_NeedAdminCaps;
BOOL m_PeekAllMessages; BOOL m_PeekAllMessages;
BOOL m_NoWinPosChanges; BOOL m_NoWinPosChanges;

View File

@ -24,6 +24,7 @@
#include "TabProgram.h" #include "TabProgram.h"
#include "TabHook.h" #include "TabHook.h"
#include "TabDirectX.h" #include "TabDirectX.h"
#include "TabDirectX2.h"
#include "TabDirect3D.h" #include "TabDirect3D.h"
#include "TabInput.h" #include "TabInput.h"
#include "TabTiming.h" #include "TabTiming.h"
@ -56,6 +57,7 @@ CDXTabCtrl::CDXTabCtrl()
m_tabPages[i++]=new CTabWindow; m_tabPages[i++]=new CTabWindow;
m_tabPages[i++]=new CTabInput; m_tabPages[i++]=new CTabInput;
m_tabPages[i++]=new CTabDirectX; m_tabPages[i++]=new CTabDirectX;
m_tabPages[i++]=new CTabDirectX2;
m_tabPages[i++]=new CTabDirect3D; m_tabPages[i++]=new CTabDirect3D;
m_tabPages[i++]=new CTabTiming; m_tabPages[i++]=new CTabTiming;
m_tabPages[i++]=new CTabLogs; m_tabPages[i++]=new CTabLogs;
@ -85,6 +87,7 @@ void CDXTabCtrl::Init()
m_tabPages[i++]->Create(IDD_TAB_OUTPUT, this); m_tabPages[i++]->Create(IDD_TAB_OUTPUT, this);
m_tabPages[i++]->Create(IDD_TAB_INPUT, this); m_tabPages[i++]->Create(IDD_TAB_INPUT, this);
m_tabPages[i++]->Create(IDD_TAB_DIRECTX, this); m_tabPages[i++]->Create(IDD_TAB_DIRECTX, this);
m_tabPages[i++]->Create(IDD_TAB_DIRECTX2, this);
m_tabPages[i++]->Create(IDD_TAB_D3D, this); m_tabPages[i++]->Create(IDD_TAB_D3D, this);
m_tabPages[i++]->Create(IDD_TAB_TIMING, this); m_tabPages[i++]->Create(IDD_TAB_TIMING, this);
m_tabPages[i++]->Create(IDD_TAB_LOG, this); m_tabPages[i++]->Create(IDD_TAB_LOG, this);
@ -141,9 +144,19 @@ void CDXTabCtrl::OnLButtonDown(UINT nFlags, CPoint point)
} }
} }
void CDXTabCtrl::SwitchToTab(int pos)
{
m_tabPages[m_tabCurrent]->ShowWindow(SW_HIDE);
SetCurSel(pos);
m_tabPages[pos]->ShowWindow(SW_SHOW);
m_tabPages[pos]->SetFocus();
m_tabCurrent=GetCurFocus();
}
void CDXTabCtrl::OnOK() void CDXTabCtrl::OnOK()
{ {
for(int nCount=0; nCount < m_nNumberOfPages; nCount++){ for(int nCount=0; nCount < m_nNumberOfPages; nCount++){
m_tabPages[nCount]->UpdateData(TRUE); m_tabPages[nCount]->UpdateData(TRUE);
} }
} }

View File

@ -16,7 +16,7 @@ class CDXTabCtrl : public CTabCtrl
// Construction // Construction
public: public:
CDXTabCtrl(); CDXTabCtrl();
CDialog *m_tabPages[13]; // this must match the total number of tab elements! CDialog *m_tabPages[14]; // this must match the total number of tab elements!
int m_tabCurrent; int m_tabCurrent;
int m_nNumberOfPages; int m_nNumberOfPages;
enum { IDD = IDC_TABPANEL }; enum { IDD = IDC_TABPANEL };
@ -28,6 +28,7 @@ public:
public: public:
void Init(); void Init();
void SetRectangle(); void SetRectangle();
void SwitchToTab(int);
// Overrides // Overrides
// ClassWizard generated virtual function overrides // ClassWizard generated virtual function overrides

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -436,11 +436,11 @@
> >
</File> </File>
<File <File
RelativePath=".\TabDirect3D.h" RelativePath=".\TabDirectX.cpp"
> >
</File> </File>
<File <File
RelativePath=".\TabDirectX.cpp" RelativePath=".\TabDirectX2.cpp"
> >
</File> </File>
<File <File
@ -580,10 +580,18 @@
RelativePath=".\TabDebug.h" RelativePath=".\TabDebug.h"
> >
</File> </File>
<File
RelativePath=".\TabDirect3D.h"
>
</File>
<File <File
RelativePath=".\TabDirectX.h" RelativePath=".\TabDirectX.h"
> >
</File> </File>
<File
RelativePath=".\TabDirectX2.h"
>
</File>
<File <File
RelativePath=".\TabHook.h" RelativePath=".\TabHook.h"
> >
@ -722,22 +730,22 @@
> >
</File> </File>
</Filter> </Filter>
<File
RelativePath=".\alt-ctrl-shift.png"
>
</File>
<File <File
RelativePath=".\res\alt-ctrl-shift.png" RelativePath=".\res\alt-ctrl-shift.png"
> >
</File> </File>
<File <File
RelativePath=".\res\alt.png" RelativePath=".\alt-ctrl-shift.png"
> >
</File> </File>
<File <File
RelativePath=".\alt.png" RelativePath=".\alt.png"
> >
</File> </File>
<File
RelativePath=".\res\alt.png"
>
</File>
<File <File
RelativePath=".\resource" RelativePath=".\resource"
> >

View File

@ -216,6 +216,7 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
if(dlg->m_StartDebug) t->flags2 |= STARTDEBUG; if(dlg->m_StartDebug) t->flags2 |= STARTDEBUG;
if(dlg->m_HotPatch) t->flags4 |= HOTPATCH; if(dlg->m_HotPatch) t->flags4 |= HOTPATCH;
if(dlg->m_FullScreenOnly) t->flags3 |= FULLSCREENONLY; if(dlg->m_FullScreenOnly) t->flags3 |= FULLSCREENONLY;
if(dlg->m_ShowHints) t->flags7 |= SHOWHINTS;
//if(dlg->m_FilterMessages) t->flags3 |= FILTERMESSAGES; //if(dlg->m_FilterMessages) t->flags3 |= FILTERMESSAGES;
if(dlg->m_PeekAllMessages) t->flags3 |= PEEKALLMESSAGES; if(dlg->m_PeekAllMessages) t->flags3 |= PEEKALLMESSAGES;
if(dlg->m_NoWinPosChanges) t->flags5 |= NOWINPOSCHANGES; if(dlg->m_NoWinPosChanges) t->flags5 |= NOWINPOSCHANGES;
@ -505,6 +506,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
dlg->m_NoBanner = t->flags2 & NOBANNER ? 1 : 0; dlg->m_NoBanner = t->flags2 & NOBANNER ? 1 : 0;
dlg->m_StartDebug = t->flags2 & STARTDEBUG ? 1 : 0; dlg->m_StartDebug = t->flags2 & STARTDEBUG ? 1 : 0;
dlg->m_FullScreenOnly = t->flags3 & FULLSCREENONLY ? 1 : 0; dlg->m_FullScreenOnly = t->flags3 & FULLSCREENONLY ? 1 : 0;
dlg->m_ShowHints = t->flags7 & SHOWHINTS ? 1 : 0;
//dlg->m_FilterMessages = t->flags3 & FILTERMESSAGES ? 1 : 0; //dlg->m_FilterMessages = t->flags3 & FILTERMESSAGES ? 1 : 0;
dlg->m_PeekAllMessages = t->flags3 & PEEKALLMESSAGES ? 1 : 0; dlg->m_PeekAllMessages = t->flags3 & PEEKALLMESSAGES ? 1 : 0;
dlg->m_NoWinPosChanges = t->flags5 & NOWINPOSCHANGES ? 1 : 0; dlg->m_NoWinPosChanges = t->flags5 & NOWINPOSCHANGES ? 1 : 0;

Binary file not shown.

Binary file not shown.