diff --git a/Include/dxwnd.h b/Include/dxwnd.h index 2571c20..5ec0ec0 100644 --- a/Include/dxwnd.h +++ b/Include/dxwnd.h @@ -303,6 +303,7 @@ #define OUTDXWINTRACE 0x00001000 // traces DxWnd internal operations #define OUTWINGTRACE 0x00002000 // traces WinG32 hooked calls #define OUTOGLTRACE 0x00004000 // traces OpenGL hooked calls +#define OUTHEXTRACE 0x00008000 // traces hexdump of critical structures #define ADDRELATIVETIME 0x08000000 // log timestamp is relative to previous line //#define NOLOGCLOSE 0x10000000 // avoid closing the log file handle ("Riven, during CD changes ...) #define ADDTIMESTAMP 0x20000000 // add timestamp (GetTickCount) to log file @@ -431,6 +432,7 @@ LRESULT CALLBACK dw_Hider_Message_Handler(HWND, UINT, WPARAM, LPARAM); #define OutTraceE OutTrace #define OutTraceWG if(dxw.dwTFlags & OUTWINGTRACE) OutTrace #define OutTraceOGL if(dxw.dwTFlags & OUTOGLTRACE) OutTrace +#define OutHex if(dxw.dwTFlags & OUTHEXTRACE) OutTrace #define IsTraceW (dxw.dwTFlags & OUTWINMESSAGES) //#define IsTraceX (dxw.dwTFlags & OUTPROXYTRACE) @@ -444,6 +446,7 @@ LRESULT CALLBACK dw_Hider_Message_Handler(HWND, UINT, WPARAM, LPARAM); #define IsTraceE (TRUE) #define IsTraceWG (dxw.dwTFlags & OUTWINGTRACE) #define IsTraceOGL (dxw.dwTFlags & OUTOGLTRACE) +#define IsTraceHex (dxw.dwTFlags & OUTHEXTRACE) #define IsDebug (dxw.dwTFlags & OUTDEBUG) #define IsAssertEnabled (dxw.dwTFlags & ASSERTDIALOG) #define STEP OutTrace("STEP at %s:%d\n", __FILE__, __LINE__) diff --git a/build/exports/Agile Warrior F111X.dxw b/build/exports/Agile Warrior F111X.dxw new file mode 100644 index 0000000..ed7ddab --- /dev/null +++ b/build/exports/Agile Warrior F111X.dxw @@ -0,0 +1,36 @@ +[target] +title0=Agile Warrior F111X +path0=F:\Games\Agile Warrior F 111X\AW.BIN +startfolder0= +launchpath0=F:\Games\Agile Warrior F 111X\AW.EXE +module0= +opengllib0= +notes0=So far, only 3D mode is working. +registry0=\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\aw.exe]\n"Path"=".\\aw"\n@=".\\aw.exe"\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Direct3D]\n"DrawPrimFlags"=dword:0 +ver0=1 +monitorid0=-1 +coord0=0 +flag0=673185826 +flagg0=1207959552 +flagh0=1044 +flagi0=1212153860 +flagj0=4224 +flagk0=134807552 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 diff --git a/build/exports/Arthur's Quest.dxw b/build/exports/Arthur's Quest.dxw new file mode 100644 index 0000000..4646f16 --- /dev/null +++ b/build/exports/Arthur's Quest.dxw @@ -0,0 +1,42 @@ +[target] +title0=Arthur's Quest +path0=D:\Games\Arthur's Quest\lithtech.exe +startfolder0= +launchpath0=D:\Games\Arthur's Quest\ArthursQuest.exe +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673185826 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.21.a4 +time=Sat Mar 18 15:43:50 2017 + diff --git a/build/exports/Bomberbabe.dxw b/build/exports/Bomberbabe.dxw index a3f5a41..0099fa7 100644 --- a/build/exports/Bomberbabe.dxw +++ b/build/exports/Bomberbabe.dxw @@ -5,10 +5,10 @@ module0= opengllib0= ver0=0 coord0=0 -flag0=671088674 +flag0=673185826 flagg0=1207959552 flagh0=20 -flagi0=4 +flagi0=138412036 tflag0=0 initx0=0 inity0=0 @@ -22,3 +22,21 @@ sizx0=800 sizy0=600 maxfps0=0 initts0=0 +startfolder0= +launchpath0= +notes0= +registry0= +monitorid0=-1 +flagj0=4224 +flagk0=65536 +flagl0=276824064 +flagm0=1073741824 +dflag0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 diff --git a/build/exports/Dark Earth.dxw b/build/exports/Dark Earth.dxw index 29c521e..7d763b5 100644 --- a/build/exports/Dark Earth.dxw +++ b/build/exports/Dark Earth.dxw @@ -8,7 +8,7 @@ notes0= registry0= ver0=0 coord0=0 -flag0=136331362 +flag0=673210466 flagg0=1476395008 flagh0=20 flagi0=138936324 @@ -27,3 +27,10 @@ winver0=0 maxres0=-1 swapeffect0=0 maxddinterface0=7 +startfolder0= +monitorid0=0 +dflag0=0 +slowratio0=1 +scanline0=1 +initresw0=0 +initresh0=0 diff --git a/build/exports/Defiance (D3D).dxw b/build/exports/Defiance (D3D).dxw index 796cc50..e549e20 100644 --- a/build/exports/Defiance (D3D).dxw +++ b/build/exports/Defiance (D3D).dxw @@ -14,9 +14,9 @@ flagg0=1224736768 flagh0=32788 flagi0=138412036 flagj0=4224 -flagk0=77824 +flagk0=65536 flagl0=0 -flagm0=0 +flagm0=4 tflag0=0 dflag0=0 posx0=50 @@ -30,3 +30,13 @@ maxres0=-1 swapeffect0=0 maxddinterface0=7 slowratio0=2 +monitorid0=0 +flagn0=0 +flago0=0 +scanline0=1 +initresw0=0 +initresh0=0 +[stamp] +version=2.04.21.a2 +time=Wed Mar 15 22:49:07 2017 + diff --git a/build/exports/Forsaken (HW).dxw b/build/exports/Forsaken (HW).dxw index a0ee2c1..e7f4f0c 100644 --- a/build/exports/Forsaken (HW).dxw +++ b/build/exports/Forsaken (HW).dxw @@ -27,5 +27,22 @@ maxres0=-1 launchpath0= notes0= flagj0=130 -flagk0=73728 +flagk0=65536 swapeffect0=0 +startfolder0= +registry0= +monitorid0=0 +flagl0=0 +flagm0=0 +flagn0=0 +flago0=0 +dflag0=0 +maxddinterface0=7 +slowratio0=1 +scanline0=1 +initresw0=0 +initresh0=0 +[stamp] +version=2.04.21.a2 +time=Wed Mar 15 22:14:01 2017 + diff --git a/build/exports/Future Cop L.A.P.D..dxw b/build/exports/Future Cop L.A.P.D..dxw index 87faedd..8990a94 100644 --- a/build/exports/Future Cop L.A.P.D..dxw +++ b/build/exports/Future Cop L.A.P.D..dxw @@ -9,7 +9,7 @@ notes0= registry0= ver0=0 coord0=0 -flag0=136314914 +flag0=673185826 flagg0=1207959552 flagh0=20 flagi0=138412036 @@ -30,3 +30,11 @@ maxres0=-1 swapeffect0=0 maxddinterface0=7 slowratio0=2 +monitorid0=0 +scanline0=1 +initresw0=0 +initresh0=0 +[stamp] +version=2.04.20.a0 +time=Fri Mar 10 11:58:41 2017 + diff --git a/build/exports/G-Darius.dxw b/build/exports/G-Darius.dxw new file mode 100644 index 0000000..7edbe76 --- /dev/null +++ b/build/exports/G-Darius.dxw @@ -0,0 +1,42 @@ +[target] +title0=G-Darius +path0=D:\Games\G-Darius\G_Darius.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=0 +coord0=0 +flag0=673185826 +flagg0=1207959552 +flagh0=262164 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=268435456 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=50 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.21.a4 +time=Mon Mar 20 14:42:23 2017 + diff --git a/build/exports/Galapagos demo.dxw b/build/exports/Galapagos demo.dxw new file mode 100644 index 0000000..886ef4a --- /dev/null +++ b/build/exports/Galapagos demo.dxw @@ -0,0 +1,42 @@ +[target] +title0=Galapagos demo +path0=D:\Games\Galapagos Demo\Galapagos Demo.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=674250814 +flagg0=1208221696 +flagh0=33300 +flagi0=138412036 +flagj0=469766272 +flagk0=67616 +flagl0=92340240 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=150 +posy0=150 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=1 +initresw0=640 +initresh0=480 +[stamp] +version=2.04.20.a2 +time=Mon Mar 13 13:51:23 2017 + diff --git a/build/exports/Gorky 17.dxw b/build/exports/Gorky 17.dxw index 7e24281..fd3b507 100644 --- a/build/exports/Gorky 17.dxw +++ b/build/exports/Gorky 17.dxw @@ -1,18 +1,18 @@ [target] title0=Gorky 17 -path0=D:\Games\Gorky 17\gorky17.exe +path0=F:\Games\Gorky 17\gorky17.exe launchpath0= module0= opengllib0= -notes0= +notes0=Note: a ddraw error in the initial stage pops out a misleading "missing CD" dialog. ver0=0 coord0=0 flag0=134217762 flagg0=1207959552 flagh0=20 -flagi0=134217732 +flagi0=138412036 flagj0=4224 -flagk0=0 +flagk0=65536 tflag0=0 initx0=0 inity0=0 @@ -29,3 +29,14 @@ initts0=0 winver0=0 maxres0=-1 swapeffect0=0 +startfolder0= +registry0= +monitorid0=0 +flagl0=0 +flagm0=0 +dflag0=0 +maxddinterface0=7 +slowratio0=1 +scanline0=1 +initresw0=0 +initresh0=0 diff --git a/build/exports/Ground Control (sw renderer).dxw b/build/exports/Ground Control (sw renderer).dxw new file mode 100644 index 0000000..7c6a6f5 --- /dev/null +++ b/build/exports/Ground Control (sw renderer).dxw @@ -0,0 +1,42 @@ +[target] +title0=Ground Control (sw renderer) +path0=D:\Games\GC\gc.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=681574442 +flagg0=1208090624 +flagh0=8212 +flagi0=138412036 +flagj0=4224 +flagk0=0 +flagl0=67141648 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=1 +scanline0=1 +initresw0=0 +initresh0=0 +[stamp] +version=2.04.21.a6 +time=Wed Mar 22 12:11:46 2017 + diff --git a/build/exports/HyperBlade.dxw b/build/exports/HyperBlade.dxw new file mode 100644 index 0000000..ecebaab --- /dev/null +++ b/build/exports/HyperBlade.dxw @@ -0,0 +1,43 @@ +[target] +title0=HyperBlade +path0=D:\Games\HyperBlade\HYPERX.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673185826 +flagg0=1209008128 +flagh0=8212 +flagi0=138412036 +flagj0=4224 +flagk0=67174400 +flagl0=268435456 +flagm0=5 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.20.a2 +time=Mon Mar 13 13:54:22 2017 + + diff --git a/build/exports/Inquisition.dxw b/build/exports/Inquisition.dxw new file mode 100644 index 0000000..cae230b --- /dev/null +++ b/build/exports/Inquisition.dxw @@ -0,0 +1,42 @@ +[target] +title0=Inquisition +path0=D:\Games\Inquisition\inq.tmp.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0=Note:\nthe file Inquisition.exe copies part of itself to a temporary directory, runs this\nexecutable and delete it in the end.\nTo hook the game properly you have to:\n1) run the game normally\n2) Alt-tab and start the task manager\n3) locate the inquisition running process, possibly _inq.tmp\n4) copy the temp file to a safe place and rename it (es. inq.tmp.exe)\n5) kill the fullscreen inquisition and run DxWnd with this configuration +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673185826 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=268435456 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.21.a4 +time=Sat Mar 18 22:20:11 2017 + diff --git a/build/exports/Largo Winch.dxw b/build/exports/Largo Winch.dxw new file mode 100644 index 0000000..221e9b2 --- /dev/null +++ b/build/exports/Largo Winch.dxw @@ -0,0 +1,42 @@ +[target] +title0=Largo Winch +path0=D:\Games\Largo Winch\LargoWinch.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673185826 +flagg0=1207959552 +flagh0=20 +flagi0=134217732 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.21.a4 +time=Sun Mar 19 16:02:06 2017 + diff --git a/build/exports/Loonyland 2 CE.dxw b/build/exports/Loonyland 2 CE.dxw new file mode 100644 index 0000000..778eacc --- /dev/null +++ b/build/exports/Loonyland 2 CE.dxw @@ -0,0 +1,36 @@ +[target] +title0=Loonyland 2 CE +path0=D:\Games\Loonyland2CE\loonyland.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673194018 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=268435456 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 diff --git a/build/exports/Marbles.dxw b/build/exports/Marbles.dxw new file mode 100644 index 0000000..e7a6e13 --- /dev/null +++ b/build/exports/Marbles.dxw @@ -0,0 +1,40 @@ +[target] +title0=Marbles +path0=D:\Games\MARBLES\MARBLES.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673185826 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.20.a0 +time=Fri Mar 10 13:34:32 2017 + diff --git a/build/exports/Microsoft Motocross Madness 2 trial.dxw b/build/exports/Microsoft Motocross Madness 2 trial.dxw new file mode 100644 index 0000000..8c3bbcc --- /dev/null +++ b/build/exports/Microsoft Motocross Madness 2 trial.dxw @@ -0,0 +1,43 @@ +[target] +title0=Microsoft Motocross Madness 2 trial +path0=D:\Games\Motocross Madness 2 trial\mcm2.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0=Runs better with accelerated video card, \nthe software mode is very slow and foggy.\nIn case of troubles, it may be necessary to delete the registry entries to force a \nnew clean configuration. +registry0= +ver0=0 +monitorid0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +maxddinterface0=7 +slowratio0=1 +scanline0=1 +initresw0=0 +initresh0=0 +[stamp] +version=2.04.21.a2 +time=Thu Mar 16 13:33:34 2017 + + diff --git a/build/exports/Paradise Cracked.dxw b/build/exports/Paradise Cracked.dxw new file mode 100644 index 0000000..3acf8b3 --- /dev/null +++ b/build/exports/Paradise Cracked.dxw @@ -0,0 +1,42 @@ +[target] +title0=Paradise Cracked +path0=D:\Games\Paradise Cracked\game.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673185826 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=2 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.21.a4 +time=Sun Mar 19 00:31:00 2017 + diff --git a/build/exports/Planet of the Apes.dxw b/build/exports/Planet of the Apes.dxw index 192b0a4..0fd967b 100644 --- a/build/exports/Planet of the Apes.dxw +++ b/build/exports/Planet of the Apes.dxw @@ -9,18 +9,18 @@ notes0= registry0= ver0=0 coord0=0 -flag0=203423795 +flag0=203423794 flagg0=1207959552 flagh0=524308 -flagi0=138412036 +flagi0=138936320 flagj0=67113088 -flagk0=-1879044096 +flagk0=-1878982656 flagl0=1048576 flagm0=0 tflag0=0 dflag0=0 -posx0=-1050 -posy0=100 +posx0=50 +posy0=50 sizx0=800 sizy0=600 maxfps0=0 @@ -30,3 +30,14 @@ maxres0=-1 swapeffect0=0 maxddinterface0=7 slowratio0=2 +monitorid0=0 +flagn0=0 +flago0=0 +scanline0=1 +initresw0=0 +initresh0=0 +[stamp] +version=2.04.20 +time=Thu Mar 16 13:13:41 2017 + + diff --git a/build/exports/Post Mortem (CD version).dxw b/build/exports/Post Mortem (CD version).dxw new file mode 100644 index 0000000..adbf7d2 --- /dev/null +++ b/build/exports/Post Mortem (CD version).dxw @@ -0,0 +1,42 @@ +[target] +title0=Post Mortem (CD version) +path0=D:\Games\Post Mortem\Game.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0=Note:\n\nThe CD version is copy protected and needs a crack to run properly\n\ndepending on the platform (OS? / video card?) the game may require the \n"No primary SYSTEMMEMORY" flag in order to run. \nUnfortunately, in that case it is likely to become very choppy. +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673341475 +flagg0=1241513984 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=67108880 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.21.a6 +time=Wed Mar 22 15:25:29 2017 + diff --git a/build/exports/Prince of Persia The Two Thrones (GOG).dxw b/build/exports/Prince of Persia The Two Thrones (GOG).dxw new file mode 100644 index 0000000..1028ab2 --- /dev/null +++ b/build/exports/Prince of Persia The Two Thrones (GOG).dxw @@ -0,0 +1,42 @@ +[target] +title0=Prince of Persia The Two Thrones (GOG) +path0=D:\Games\Prince of Persia The Two Thrones\pop3.exe +startfolder0= +launchpath0=D:\Games\Prince of Persia The Two Thrones\PrinceOfPersia.exe +module0= +opengllib0= +notes0= +registry0= +ver0=9 +monitorid0=-1 +coord0=0 +flag0=673202214 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=67108880 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.21.a4 +time=Sun Mar 19 11:59:24 2017 + diff --git a/build/exports/Prisoner of War.dxw b/build/exports/Prisoner of War.dxw new file mode 100644 index 0000000..8ea1d33 --- /dev/null +++ b/build/exports/Prisoner of War.dxw @@ -0,0 +1,42 @@ +[target] +title0=Prisoner of War +path0=D:\Games\Prisoner of War\Colditz.EXE +startfolder0= +launchpath0= +module0= +opengllib0= +notes0=cracked exe +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673185826 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=1114112 +flagl0=0 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.21.a2 +time=Fri Mar 17 00:17:24 2017 + diff --git a/build/exports/Shadow Watch.dxw b/build/exports/Shadow Watch.dxw index 1804f5b..d72eb98 100644 --- a/build/exports/Shadow Watch.dxw +++ b/build/exports/Shadow Watch.dxw @@ -4,11 +4,11 @@ path0=D:\Games\Shadow Watch\sw.exe launchpath0=D:\Games\Shadow Watch\ShadowWatch.exe module0=dx.dll opengllib0= -ver0=1 +ver0=0 coord0=0 flag0=-2013265869 flagg0=1241513984 -flagh0=4259856 +flagh0=4202512 flagi0=203423748 flagj0=128 tflag0=0 @@ -26,3 +26,23 @@ maxfps0=0 initts0=0 winver0=0 maxres0=-1 +startfolder0= +notes0= +registry0= +monitorid0=0 +flagk0=65536 +flagl0=0 +flagm0=0 +flagn0=0 +flago0=0 +dflag0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=1 +scanline0=1 +initresw0=0 +initresh0=0 +[stamp] +version=2.04.21.a1 +time=Wed Mar 15 00:06:35 2017 + diff --git a/build/exports/Spike the Hedgehog.dxw b/build/exports/Spike the Hedgehog.dxw new file mode 100644 index 0000000..ec6bd7a --- /dev/null +++ b/build/exports/Spike the Hedgehog.dxw @@ -0,0 +1,42 @@ +[target] +title0=Spike the Hedgehog +path0=D:\Games\Spike\spike2.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673185826 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=65536 +flagl0=268435456 +flagm0=0 +flagn0=0 +flago0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 +[stamp] +version=2.04.21.a4 +time=Sat Mar 18 15:50:14 2017 + diff --git a/build/exports/Taz Wanted.dxw b/build/exports/Taz Wanted.dxw index 853f93d..6d1d2b7 100644 --- a/build/exports/Taz Wanted.dxw +++ b/build/exports/Taz Wanted.dxw @@ -1,7 +1,7 @@ [target] title0=Taz Wanted path0=D:\Games\Taz Wanted\Taz.exe -launchpath0= +launchpath0=D:\Games\Taz Wanted\TazLauncher.exe module0= opengllib0= notes0= @@ -9,7 +9,7 @@ registry0= ver0=8 coord0=0 flag0=136314914 -flagg0=1744830464 +flagg0=1207959552 flagh0=20 flagi0=138412036 flagj0=4224 @@ -29,3 +29,14 @@ maxres0=-1 swapeffect0=0 maxddinterface0=7 slowratio0=2 +startfolder0= +monitorid0=0 +flagn0=0 +flago0=0 +scanline0=1 +initresw0=0 +initresh0=0 +[stamp] +version=2.04.21.a6 +time=Tue Mar 21 19:49:05 2017 + diff --git a/build/exports/The Sting!.dxw b/build/exports/The Sting!.dxw index 629ada4..1f6fc82 100644 --- a/build/exports/The Sting!.dxw +++ b/build/exports/The Sting!.dxw @@ -1,6 +1,6 @@ [target] title0=The Sting! -path0=F:\Games\The Sting!\TheSting!\Sting.exe +path0=D:\Games\The Sting!\Sting.exe launchpath0= module0= opengllib0= @@ -8,7 +8,7 @@ notes0= ver0=0 coord0=0 flag0=136314914 -flagg0=1207959552 +flagg0=1476395008 flagh0=16 flagi0=138412036 flagj0=4224 @@ -40,3 +40,10 @@ slowratio0=1 scanline0=1 initresw0=0 initresh0=0 +flagn0=0 +flago0=0 +[stamp] +version=2.04.21.a2 +time=Thu Mar 16 09:25:20 2017 + + diff --git a/build/exports/Tone Rebellion Leviathan.dxw b/build/exports/Tone Rebellion Leviathan.dxw index 9b819cd..25fe2fe 100644 --- a/build/exports/Tone Rebellion Leviathan.dxw +++ b/build/exports/Tone Rebellion Leviathan.dxw @@ -1,6 +1,6 @@ [target] title0=Tone Rebellion Leviathan -path0=D:\Games\Tone Rebellion\FLOAT.EXE +path0=D:\Games\Tone Rebellion Leviatahn\FLOAT.EXE launchpath0= module0= opengllib0= @@ -29,3 +29,14 @@ maxres0=-1 swapeffect0=0 maxddinterface0=7 slowratio0=2 +startfolder0= +monitorid0=0 +flagn0=0 +flago0=0 +scanline0=1 +initresw0=0 +initresh0=0 +[stamp] +version=2.04.21.a6 +time=Wed Mar 22 10:13:22 2017 + diff --git a/build/exports/Toy Factory.dxw b/build/exports/Toy Factory.dxw index 2a64281..216a8e0 100644 --- a/build/exports/Toy Factory.dxw +++ b/build/exports/Toy Factory.dxw @@ -9,7 +9,7 @@ registry0= ver0=0 coord0=0 flag0=136314914 -flagg0=1744830464 +flagg0=1207959552 flagh0=20 flagi0=138412036 flagj0=4224 @@ -29,3 +29,14 @@ maxres0=-1 swapeffect0=0 maxddinterface0=7 slowratio0=2 +startfolder0= +monitorid0=0 +flagn0=0 +flago0=0 +scanline0=1 +initresw0=0 +initresh0=0 +[stamp] +version=2.04.21.a6 +time=Wed Mar 22 09:51:41 2017 + diff --git a/build/exports/Warlords Battlecry 2.dxw b/build/exports/Warlords Battlecry 2.dxw new file mode 100644 index 0000000..22836e6 --- /dev/null +++ b/build/exports/Warlords Battlecry 2.dxw @@ -0,0 +1,36 @@ +[target] +title0=Warlords Battlecry 2 +path0=D:\Games\Warlords Battlecry 2\Battlecry II.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=673185826 +flagg0=1207959552 +flagh0=20 +flagi0=134217732 +flagj0=4224 +flagk0=65536 +flagl0=0 +flagm0=0 +tflag0=0 +dflag0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=0 +swapeffect0=0 +maxddinterface0=7 +slowratio0=2 +scanline0=0 +initresw0=800 +initresh0=600 diff --git a/build/exports/dxwnd.ini b/build/exports/dxwnd.ini deleted file mode 100644 index bafc6df..0000000 --- a/build/exports/dxwnd.ini +++ /dev/null @@ -1,5 +0,0 @@ -[window] -posx=0 -posy=472 -sizx=320 -sizy=200 diff --git a/build/exports/dxwnd.log b/build/exports/dxwnd.log deleted file mode 100644 index d7fe0c3..0000000 --- a/build/exports/dxwnd.log +++ /dev/null @@ -1,20 +0,0 @@ -OnRun idx=22 prog="D:\Games\TIE95\TIE95.EXE" unhooked=0 -setwindowshook mode -OnRun idx=22 prog="D:\Games\TIE95\TIE95.EXE" unhooked=0 -setwindowshook mode -OnRun idx=22 prog="D:\Games\TIE95\TIE95.EXE" unhooked=0 -injectsuspended mode -InjectSuspended: exe="D:\Games\TIE95\TIE95.EXE" dir="D:\Games\TIE95" -Target handle=45c -NT Header offset=B0 -AddressOfEntryPoint=CC220 ImageBase=400000 -Thread start address=4cc220 -wait cycle 0 eip=4cc220 -OnRun idx=22 prog="D:\Games\TIE95\TIE95.EXE" unhooked=0 -injectsuspended mode -InjectSuspended: exe="D:\Games\TIE95\TIE95.EXE" dir="D:\Games\TIE95" -Target handle=478 -NT Header offset=B0 -AddressOfEntryPoint=CC220 ImageBase=400000 -Thread start address=4cc220 -wait cycle 0 eip=4cc220 diff --git a/build/exports/dxwnd.reg b/build/exports/dxwnd.reg deleted file mode 100644 index f56c51a..0000000 --- a/build/exports/dxwnd.reg +++ /dev/null @@ -1,233 +0,0 @@ - -[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\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 - - diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 6163212..3e0c64d 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -1596,3 +1596,19 @@ add: FIXTHINFRAME option to get overlapped window with thin border fix: revised implementation for DirectDrawSurface getCaps and GetSurfaceDesc wrappers add: hooker for SetWindowsHookEx WH_MOUSE_LL events - used by "Royal Tramp 2" fix: added WM_NCMOUSELEAVE to the list of potentially offending messages + +v2.04.21 +fix: proxed calls to SetCooperativeLevel with no specification for screen mode changes +fix: locked rect fix applied only in case of not NULL rect specification. Fixes "Shadow Watch" font blitting problems. +fix: DirectDrawEnumerate/Ex wrappers now filter video devices properly when a given monitor is selected. Partially fixes "The Sting!" behaviour on multi-monitor environment. +fix: aligned primary surface capabilities for flipped native and emulated modes +add: wrappers for ddraw7 StartModeTest and EvaluateMode methods only for logging +fix: wrapper for SetCooperativeLevel proxy the call when flags is DDSCL_FPUPRESERVE or DDSCL_FPUSETUP only. Seen in "G-Darius" +add: separated logging flag for structures hexdump +fix: eliminated initial logging for undefined virtual keys (useless) +fix: fixed unconditional logging for USER32:PolyLine +add: diagniostic DC dump in GDI32:SetDIBitsToDevice wrapper +fix: GDI32:SetViewportOrgEx wrapper when ddraw surface is still missing +add: in ddraw::QueryInterface, logging for detection of Clipper or Palette objects +fix: fix for /c:path argument of DxWnd command line usage, now can accept full file paths +fix: log=none as default value for new dxwnd program entries \ No newline at end of file diff --git a/dll/ddcreates.cpp b/dll/ddcreates.cpp index f909a08..9796bc8 100644 --- a/dll/ddcreates.cpp +++ b/dll/ddcreates.cpp @@ -278,6 +278,8 @@ static HRESULT BuildPrimaryFlippable(LPDIRECTDRAW lpdd, CreateSurface_Type pCrea // dwFlags ddsd.dwFlags &= ~(DDSD_REFRESHRATE); ddsd.dwFlags |= (DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_PIXELFORMAT|DDSD_BACKBUFFERCOUNT); + // DDSCAPS_OFFSCREENPLAIN seems required to support the palette in memory surfaces + ddsd.ddsCaps.dwCaps |= (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY); // dwBackBufferCount: set to at least 1 if(!(lpddsd->dwFlags & DDSD_BACKBUFFERCOUNT) || (lpddsd->dwBackBufferCount == 0)) ddsd.dwBackBufferCount = 1; diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index cf91c14..cc689fc 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -146,6 +146,9 @@ HRESULT WINAPI extGetScanLine2(LPDIRECTDRAW, LPDWORD); HRESULT WINAPI extGetScanLine3(LPDIRECTDRAW, LPDWORD); HRESULT WINAPI extGetScanLine4(LPDIRECTDRAW, LPDWORD); HRESULT WINAPI extGetScanLine7(LPDIRECTDRAW, LPDWORD); + /*** Added in the V7 Interface ??? ***/ +HRESULT WINAPI extStartModeTest(LPDIRECTDRAW, LPSIZE, DWORD, DWORD); +HRESULT WINAPI extEvaluateMode(LPDIRECTDRAW, DWORD, DWORD *); // DirectDrawSurface HRESULT WINAPI extQueryInterfaceS1(void *, REFIID, LPVOID *); @@ -321,6 +324,8 @@ DirectDrawEnumerateExW_Type pDirectDrawEnumerateExW = NULL; DirectDrawCreateClipper_Type pDirectDrawCreateClipper = NULL; HandleDDThreadLock_Type pAcquireDDThreadLock = NULL; HandleDDThreadLock_Type pReleaseDDThreadLock = NULL; +StartModeTest_Type pStartModeTest = NULL; +EvaluateMode_Type pEvaluateMode = NULL; /* DirectDraw hook pointers */ QueryInterface_Type pQueryInterfaceD1, pQueryInterfaceD2, pQueryInterfaceD3, pQueryInterfaceD4, pQueryInterfaceD7; @@ -1340,6 +1345,9 @@ void HookDDSession(LPDIRECTDRAW *lplpdd, int dxversion) SetHook((void *)(**(DWORD **)lplpdd + 92), extGetAvailableVidMem7, (void **)&pGetAvailableVidMem7, "GetAvailableVidMem(D7)"); // added in v4 interface SetHook((void *)(**(DWORD **)lplpdd + 104), extTestCooperativeLevel7, (void **)&pTestCooperativeLevel7, "TestCooperativeLevel(D7)"); + // added in v7 interface + SetHook((void *)(**(DWORD **)lplpdd + 112), extStartModeTest, (void **)&pStartModeTest, "StartModeTest(D7)"); + SetHook((void *)(**(DWORD **)lplpdd + 116), extEvaluateMode, (void **)&pEvaluateMode, "EvaluateMode(D7)"); break; } } @@ -1651,7 +1659,7 @@ static void HandleCapsD(char *sLabel, LPDDCAPS c) sLabel, c->dwVidMemTotal, c->dwVidMemFree, c->dwZBufferBitDepths, ExplainZBufferBitDepths(c->dwZBufferBitDepths)); OutTraceDDRAW("GetCaps(%s): MaxVisibleOverlays=%x CurrVisibleOverlays=%x\n", sLabel, c->dwMaxVisibleOverlays, c->dwCurrVisibleOverlays); - if(IsDebug) HexTrace((unsigned char *)c, c->dwSize); + if(IsTraceHex) HexTrace((unsigned char *)c, c->dwSize); if(dxw.bHintActive){ if(c->dwVidMemTotal > dwMaxMem) ShowHint(HINT_LIMITMEM); @@ -2234,6 +2242,19 @@ HRESULT WINAPI extSetCooperativeLevel(int dxversion, SetCooperativeLevel_Type pS OutTraceDDRAW("SetCooperativeLevel(D%d): lpdd=%x hwnd=%x dwFlags=%x(%s)\n", dxversion, lpdd, hwnd, dwflags,ExplainCoopFlags(dwflags)); + // when SetCooperativeLevel is called for the only purpose of setting the FPU policy, + // just proxy the call. Seen in "G-Darius". + switch(dwflags){ + case DDSCL_FPUSETUP: + case DDSCL_FPUPRESERVE: + res=(*pSetCooperativeLevel)(lpdd, hwnd, dwflags); + if(res){ + OutTraceE("SetCooperativeLevel: ERROR bypass err=%x(%s)\n", res, ExplainDDError(res)); + } + return DD_OK; + break; + } + DDSURFACEDESC2 ddsd; switch(dxversion){ default: @@ -3868,7 +3889,9 @@ static HRESULT WINAPI extUnlock(int dxversion, Unlock4_Type pUnlock, LPDIRECTDRA // v2.02.92: found in Fifa 2000: lpRect is completely ignored, receiving bogus values like (-1, -1, -1, -1} // or {0, 0, 0, 0}, or {-109119151, -109119151, -109119151, -109119151}. // better use the Lock-ed rect - lprect = PopLockedRect(lpdds, lprect); + // v2.04.21: the fix is proper only when lprect is not NULL, when NULL better leave it unaltered. + // Fixing the lprect value unconditionally breaks "Shadow Watch" text blitting on game menus. + if(lprect) lprect = PopLockedRect(lpdds, lprect); break; case 7: if(lprect){ @@ -3998,7 +4021,9 @@ static HRESULT WINAPI extUnlockDir(int dxversion, Unlock4_Type pUnlock, LPDIRECT // v2.02.92: found in Fifa 2000: lpRect is completely ignored, receiving bogus values like (-1, -1, -1, -1} // or {0, 0, 0, 0}, or {-109119151, -109119151, -109119151, -109119151}. // better use the Lock-ed rect - lprect = PopLockedRect(lpdds, lprect); + // v2.04.21: the fix is proper only when lprect is not NULL, when NULL better leave it unaltered. + // Fixing the lprect value unconditionally breaks "Shadow Watch" text blitting on game menus. + if(lprect) lprect = PopLockedRect(lpdds, lprect); break; case 7: if(lprect){ @@ -4867,7 +4892,7 @@ static HRESULT WINAPI extGetCapsS(int dxInterface, GetCapsS_Type pGetCapsS, LPDI } if(IsFixed) OutTraceDW("GetCaps(S%d): lpdds=%x FIXED %s caps=%x(%s)\n", dxInterface, lpdds, sLabel, caps->dwCaps, ExplainDDSCaps(caps->dwCaps)); - //if(IsDebug) HexTrace((unsigned char *)caps, sizeof(DDSCAPS)); + if(IsTraceHex) HexTrace((unsigned char *)caps, sizeof(DDSCAPS)); return res; } @@ -4963,11 +4988,8 @@ static HRESULT WINAPI extGetSurfaceDesc(int dxversion, GetSurfaceDesc_Type pGetS break; } - if(IsFixed){ - OutTraceDW("GetSurfaceDesc: FIXED lpdds=%x %s\n", lpdds, LogSurfaceAttributes((LPDDSURFACEDESC2)lpddsd, sLabel, __LINE__)); - //if(IsDebug) HexTrace((unsigned char *)lpddsd, sizeof(DDSURFACEDESC)); - } - + if(IsFixed) OutTraceDW("GetSurfaceDesc: FIXED lpdds=%x %s\n", lpdds, LogSurfaceAttributes((LPDDSURFACEDESC2)lpddsd, sLabel, __LINE__)); + if(IsTraceHex) HexTrace((unsigned char *)lpddsd, sizeof(DDSURFACEDESC)); return DD_OK; } @@ -5182,6 +5204,20 @@ HRESULT WINAPI extReleaseP(LPDIRECTDRAWPALETTE lpddPalette) return ref; } +static BOOL IsMatchingDeviceW(LPWSTR lpDriverName) +{ + WCHAR MatchDev[20]; + wsprintfW(MatchDev, L"DISPLAY%d", dxw.MonitorId+1); + return (wcsstr(lpDriverName, MatchDev) != NULL); +} + +static BOOL IsMatchingDeviceA(LPCSTR lpDriverName) +{ + CHAR MatchDev[20]; + sprintf(MatchDev, "DISPLAY%d", dxw.MonitorId+1); + return (strstr(lpDriverName, MatchDev) != NULL); +} + BOOL FAR PASCAL DDEnumerateCallbackFilterW(GUID FAR *lpGuid, LPWSTR lpDriverDescription, LPWSTR lpDriverName, LPVOID lpContext) { BOOL res; @@ -5189,8 +5225,20 @@ BOOL FAR PASCAL DDEnumerateCallbackFilterW(GUID FAR *lpGuid, LPWSTR lpDriverDesc Context_Type *p=(Context_Type *)lpContext; OutTraceDW("DDEnumerateCallback: guid=%x DriverDescription=\"%ls\" DriverName=\"%ls\" Context=%x\n", lpGuid, lpDriverDescription, lpDriverName, p->lpContext); - if((lpGuid==NULL) || !(dxw.dwFlags2 & HIDEMULTIMONITOR)) res=(*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext); - if((lpGuid==NULL) && (dxw.dwFlags2 & HIDEMULTIMONITOR)) res=FALSE; + if(dxw.MonitorId != -1){ + if(IsMatchingDeviceW(lpDriverName)){ + (*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext); + res=FALSE; + } + else { + OutTraceDW("DDEnumerateCallback: SKIP DriverName=\"%ls\"\n", lpDriverName); + res=TRUE; + } + } + else{ + if((lpGuid==NULL) || !(dxw.dwFlags2 & HIDEMULTIMONITOR)) res=(*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext); + if((lpGuid==NULL) && (dxw.dwFlags2 & HIDEMULTIMONITOR)) res=FALSE; + } OutTraceDW("DDEnumerateCallback: res=%x(%s)\n", res, res?"continue":"break"); return res; } @@ -5203,8 +5251,21 @@ BOOL FAR PASCAL DDEnumerateCallbackExFilterW(GUID FAR *lpGuid, LPWSTR lpDriverDe OutTraceDW("DDEnumerateCallbackEx: guid=%x DriverDescription=\"%ls\" DriverName=\"%ls\" Context=%x hm=%x\n", lpGuid, lpDriverDescription, lpDriverName, lpContext, hm); res=TRUE; - if((lpGuid==NULL) || !(dxw.dwFlags2 & HIDEMULTIMONITOR)) res=(*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext, hm); - if((lpGuid==NULL) && (dxw.dwFlags2 & HIDEMULTIMONITOR)) res=FALSE; + // single monitor handling + if(dxw.MonitorId != -1){ + if(IsMatchingDeviceW(lpDriverName)){ + (*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext, hm); + res=FALSE; + } + else{ + OutTraceDW("DDEnumerateCallbackEx: SKIP DriverName=\"%ls\"\n", lpDriverName); + res=TRUE; + } + } + else{ + if((lpGuid==NULL) || !(dxw.dwFlags2 & HIDEMULTIMONITOR)) res=(*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext, hm); + if((lpGuid==NULL) && (dxw.dwFlags2 & HIDEMULTIMONITOR)) res=FALSE; + } OutTraceDW("DDEnumerateCallbackEx: res=%x(%s)\n", res, res?"continue":"break"); return res; } @@ -5216,8 +5277,21 @@ BOOL FAR PASCAL DDEnumerateCallbackFilterA(GUID FAR *lpGuid, LPSTR lpDriverDescr Context_Type *p=(Context_Type *)lpContext; OutTraceDW("DDEnumerateCallback: guid=%x DriverDescription=\"%s\" DriverName=\"%s\" Context=%x\n", lpGuid, lpDriverDescription, lpDriverName, p->lpContext); - if((lpGuid==NULL) || !(dxw.dwFlags2 & HIDEMULTIMONITOR)) res=(*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext); - if((lpGuid==NULL) && (dxw.dwFlags2 & HIDEMULTIMONITOR)) res=FALSE; + res=TRUE; + if(dxw.MonitorId != -1){ + if(IsMatchingDeviceA(lpDriverName)){ + (*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext); + res=FALSE; + } + else{ + OutTraceDW("DDEnumerateCallback: SKIP DriverName=\"%s\"\n", lpDriverName); + res=TRUE; + } + } + else{ + if((lpGuid==NULL) || !(dxw.dwFlags2 & HIDEMULTIMONITOR)) res=(*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext); + if((lpGuid==NULL) && (dxw.dwFlags2 & HIDEMULTIMONITOR)) res=FALSE; + } OutTraceDW("DDEnumerateCallback: res=%x(%s)\n", res, res?"continue":"break"); return res; } @@ -5230,8 +5304,20 @@ BOOL FAR PASCAL DDEnumerateCallbackExFilterA(GUID FAR *lpGuid, LPSTR lpDriverDes OutTraceDW("DDEnumerateCallbackEx: guid=%x DriverDescription=\"%s\" DriverName=\"%s\" Context=%x hm=%x\n", lpGuid, lpDriverDescription, lpDriverName, lpContext, hm); res=TRUE; - if((lpGuid==NULL) || !(dxw.dwFlags2 & HIDEMULTIMONITOR)) res=(*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext, hm); - if((lpGuid==NULL) && (dxw.dwFlags2 & HIDEMULTIMONITOR)) res=FALSE; + if(dxw.MonitorId != -1){ + if(IsMatchingDeviceA(lpDriverName)){ + (*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext, hm); + res=FALSE; + } + else{ + OutTraceDW("DDEnumerateCallbackEx: SKIP DriverName=\"%s\"\n", lpDriverName); + res=TRUE; + } + } + else{ + if((lpGuid==NULL) || !(dxw.dwFlags2 & HIDEMULTIMONITOR)) res=(*p->lpCallback)(lpGuid, lpDriverDescription, lpDriverName, p->lpContext, hm); + if((lpGuid==NULL) && (dxw.dwFlags2 & HIDEMULTIMONITOR)) res=FALSE; + } OutTraceDW("DDEnumerateCallbackEx: res=%x(%s)\n", res, res?"continue":"break"); return res; } @@ -5239,8 +5325,8 @@ BOOL FAR PASCAL DDEnumerateCallbackExFilterA(GUID FAR *lpGuid, LPSTR lpDriverDes HRESULT WINAPI extDirectDrawEnumerateA(LPDDENUMCALLBACKA lpCallback, LPVOID lpContext) { HRESULT ret; - OutTraceDDRAW("DirectDrawEnumerate: lpCallback=%x lpContext=%x\n", lpCallback, lpContext); - if((dxw.dwFlags2 & HIDEMULTIMONITOR) || (dxw.dwTFlags & OUTDEBUG)){ + OutTraceDDRAW("DirectDrawEnumerate[A]: lpCallback=%x lpContext=%x\n", lpCallback, lpContext); + if((dxw.dwFlags2 & HIDEMULTIMONITOR) || (dxw.dwTFlags & OUTDEBUG) || (dxw.MonitorId != -1)){ struct {LPDDENUMCALLBACKA lpCallback; LPVOID lpContext;} myContext; myContext.lpCallback=lpCallback; myContext.lpContext=lpContext; @@ -5255,8 +5341,8 @@ HRESULT WINAPI extDirectDrawEnumerateA(LPDDENUMCALLBACKA lpCallback, LPVOID lpCo HRESULT WINAPI extDirectDrawEnumerateW(LPDDENUMCALLBACKW lpCallback, LPVOID lpContext) { HRESULT ret; - OutTraceDDRAW("DirectDrawEnumerate: lpCallback=%x lpContext=%x\n", lpCallback, lpContext); - if((dxw.dwFlags2 & HIDEMULTIMONITOR) || (dxw.dwTFlags & OUTDEBUG)){ + OutTraceDDRAW("DirectDrawEnumerate[W]: lpCallback=%x lpContext=%x\n", lpCallback, lpContext); + if((dxw.dwFlags2 & HIDEMULTIMONITOR) || (dxw.dwTFlags & OUTDEBUG) || (dxw.MonitorId != -1)){ struct {LPDDENUMCALLBACKW lpCallback; LPVOID lpContext;} myContext; myContext.lpCallback=lpCallback; myContext.lpContext=lpContext; @@ -5271,12 +5357,15 @@ HRESULT WINAPI extDirectDrawEnumerateW(LPDDENUMCALLBACKW lpCallback, LPVOID lpCo HRESULT WINAPI extDirectDrawEnumerateExA(LPDDENUMCALLBACKEXA lpCallback, LPVOID lpContext, DWORD dwFlags) { HRESULT ret; - OutTraceDDRAW("DirectDrawEnumerateEx: lpCallback=%x lpContext=%x Flags=%x(%s)\n", + OutTraceDDRAW("DirectDrawEnumerateEx[A]: lpCallback=%x lpContext=%x Flags=%x(%s)\n", lpCallback, lpContext, dwFlags, ExplainDDEnumerateFlags(dwFlags)); - if((dxw.dwFlags2 & HIDEMULTIMONITOR) || (dxw.dwTFlags & OUTDEBUG)){ + if((dxw.dwFlags2 & HIDEMULTIMONITOR) || (dxw.dwTFlags & OUTDEBUG) || (dxw.MonitorId != -1)){ struct {LPDDENUMCALLBACKEXA lpCallback; LPVOID lpContext;} myContext; myContext.lpCallback=lpCallback; myContext.lpContext=lpContext; + if(dxw.dwFlags2 & HIDEMULTIMONITOR){ + dwFlags &= ~(DDENUM_ATTACHEDSECONDARYDEVICES|DDENUM_DETACHEDSECONDARYDEVICES|DDENUM_NONDISPLAYDEVICES); + } ret=(*pDirectDrawEnumerateExA)(DDEnumerateCallbackExFilterA, (LPVOID)&myContext, dwFlags); } else{ @@ -5290,12 +5379,15 @@ HRESULT WINAPI extDirectDrawEnumerateExA(LPDDENUMCALLBACKEXA lpCallback, LPVOID HRESULT WINAPI extDirectDrawEnumerateExW(LPDDENUMCALLBACKEXW lpCallback, LPVOID lpContext, DWORD dwFlags) { HRESULT ret; - OutTraceDDRAW("DirectDrawEnumerateEx: lpCallback=%x lpContext=%x Flags=%x(%s)\n", + OutTraceDDRAW("DirectDrawEnumerateEx[W]: lpCallback=%x lpContext=%x Flags=%x(%s)\n", lpCallback, lpContext, dwFlags, ExplainDDEnumerateFlags(dwFlags)); - if((dxw.dwFlags2 & HIDEMULTIMONITOR) || (dxw.dwTFlags & OUTDEBUG)){ + if((dxw.dwFlags2 & HIDEMULTIMONITOR) || (dxw.dwTFlags & OUTDEBUG) || (dxw.MonitorId != -1)){ struct {LPDDENUMCALLBACKEXW lpCallback; LPVOID lpContext;} myContext; myContext.lpCallback=lpCallback; myContext.lpContext=lpContext; + if(dxw.dwFlags2 & HIDEMULTIMONITOR){ + dwFlags &= ~(DDENUM_ATTACHEDSECONDARYDEVICES|DDENUM_DETACHEDSECONDARYDEVICES|DDENUM_NONDISPLAYDEVICES); + } ret=(*pDirectDrawEnumerateExW)(DDEnumerateCallbackExFilterW, (LPVOID)&myContext, dwFlags); } else{ @@ -5580,3 +5672,28 @@ HRESULT WINAPI extGetOverlayPosition4(LPDIRECTDRAWSURFACE lpdds, LPLONG lX, LPLO HRESULT WINAPI extGetOverlayPosition7(LPDIRECTDRAWSURFACE lpdds, LPLONG lX, LPLONG lY) { return extGetOverlayPosition(7, pGetOverlayPosition7, lpdds, lX, lY); } +HRESULT WINAPI extStartModeTest(LPDIRECTDRAW lpdds, LPSIZE lpModesToTest, DWORD dwNumEntries, DWORD dwFlags) +{ + HRESULT res; + if(IsTraceDW){ + char sBuf[80]; + OutTrace("StartModeTest(7): lpdds=%x flags=%x num=%d modes=", lpdds, dwFlags, dwNumEntries); + for(DWORD i=0; i. #include "TlHelp32.h" -#define VERSION "2.04.20" +#define VERSION "2.04.21" #define DDTHREADLOCK 1 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 515de0a..d169ec0 100644 Binary files a/dll/dxwnd.vs2008.suo and b/dll/dxwnd.vs2008.suo differ diff --git a/dll/dxwsstack.cpp b/dll/dxwsstack.cpp index b791b26..cc19d37 100644 --- a/dll/dxwsstack.cpp +++ b/dll/dxwsstack.cpp @@ -8,7 +8,9 @@ #include "dxwnd.h" #include "dxwcore.hpp" -#define DXW_SURFACE_STACK_TRACING +// uncomment line below to activate surface stack tracing +//#define DXW_SURFACE_STACK_TRACING + #define OutTraceSDB OutTrace dxwSStack::dxwSStack() @@ -211,7 +213,12 @@ DWORD dxwSStack::DuplicateSurface(LPDIRECTDRAWSURFACE psfrom, LPDIRECTDRAWSURFAC if ((e->lpdds==psfrom) || (e->lpdds==(DWORD)0)) break; // got matching entry or end of the list } // if not found, return - if (!e->lpdds) return 0; + if (!e->lpdds) { +#ifdef DXW_SURFACE_STACK_TRACING + OutTraceSDB("--- NO ENTRY: from=%x\n", psfrom); +#endif + return 0; + } // save surface entry sentry = *e; // search for destination or empty slot diff --git a/dll/gdi32.cpp b/dll/gdi32.cpp index b8e24bc..8e0b0d2 100644 --- a/dll/gdi32.cpp +++ b/dll/gdi32.cpp @@ -664,7 +664,8 @@ HPALETTE WINAPI extSelectPalette(HDC hdc, HPALETTE hpal, BOOL bForceBackground) OutTraceDW("GDI.SelectPalette: hdc=%x hpal=%x ForceBackground=%x\n", hdc, hpal, bForceBackground); if(hdc==dxw.RealHDC) hdc= dxw.VirtualHDC; - if((dxw.dwFlags1 & EMULATESURFACE) && (dxw.dwFlags6 & SYNCPALETTE) && bFlippedDC){ + //if((dxw.dwFlags1 & EMULATESURFACE) && (dxw.dwFlags6 & SYNCPALETTE) && bFlippedDC){ + if((dxw.dwFlags1 & EMULATESURFACE) && (dxw.dwFlags6 & SYNCPALETTE)){ hDesktopPalette=hpal; if(hFlippedDC){ hdc = hFlippedDC; @@ -1416,13 +1417,12 @@ BOOL WINAPI extPolyline(HDC hdc, const POINT *lppt, int cPoints) return ret; break; case GDIMODE_STRETCHED: - int i; - OutTrace("Polyline: fixed cPoints=%d pt=", cPoints); - for(i=0; ix = dxw.VirtualOffsetX; lpPoint->y = dxw.VirtualOffsetY; } - dxw.VirtualOffsetX = X; - dxw.VirtualOffsetY = Y; ret = TRUE; } - else + else { ret=(*pSetViewportOrgEx)(hdc, X, Y, lpPoint); - break; - case GDIMODE_SHAREDDC: - sdc.GetPrimaryDC(hdc); - ret=(*pSetViewportOrgEx)(sdc.GetHdc(), X, Y, lpPoint); - sdc.PutPrimaryDC(hdc, FALSE); + if(ret && lpPoint) { + OutTraceDW("SetViewportOrgEx: previous ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); + dxw.UnmapClient(lpPoint); + OutTraceDW("SetViewportOrgEx: fixed previous ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); + } + } break; case GDIMODE_STRETCHED: dxw.MapClient(&X, &Y); @@ -2301,6 +2306,12 @@ BOOL WINAPI extSetViewportOrgEx(HDC hdc, int X, int Y, LPPOINT lpPoint) OutTraceDW("SetViewportOrgEx: fixed previous ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); } break; + case GDIMODE_SHAREDDC: + sdc.GetPrimaryDC(hdc); + ret=(*pSetViewportOrgEx)(sdc.GetHdc(), X, Y, lpPoint); + sdc.PutPrimaryDC(hdc, FALSE); + break; + default: ret=(*pSetViewportOrgEx)(hdc, X, Y, lpPoint); break; diff --git a/dll/hd3d7.cpp b/dll/hd3d7.cpp index fa9ec24..055a13c 100644 --- a/dll/hd3d7.cpp +++ b/dll/hd3d7.cpp @@ -402,6 +402,7 @@ int HookDirect3D7(HMODULE module, int version){ LPDIRECT3D lpd3d=NULL; HRESULT res; + OutTraceDW("HookDirect3D7: module=%x version=%d\n", module, version); switch(version){ case 0: case 1: @@ -776,7 +777,7 @@ static void DumpD3DDeviceDesc(LPD3DDEVICEDESC d3, char *label) if(d3->dwFlags & D3DDD_MAXBUFFERSIZE) OutTrace("MaxBufferSize=%d ", d3->dwMaxBufferSize); if(d3->dwFlags & D3DDD_MAXVERTEXCOUNT) OutTrace("MaxVertexCount=%d ", d3->dwMaxVertexCount); OutTrace("Texture min=(%dx%d) max=(%dx%d)\n", d3->dwMinTextureWidth, d3->dwMinTextureHeight, d3->dwMaxTextureWidth, d3->dwMaxTextureHeight); - HexTrace((unsigned char *)d3, d3->dwSize); + if(IsTraceHex) HexTrace((unsigned char *)d3, d3->dwSize); } else OutTrace("EnumDevices: CALLBACK dev=%s ddesc=NULL\n", label); @@ -803,7 +804,7 @@ static void DumpD3DDeviceDesc7(LPD3DDEVICEDESC7 d3, char *label) OutTrace("Texture min=(%dx%d) max=(%dx%d)\n", d3->dwMinTextureWidth, d3->dwMinTextureHeight, d3->dwMaxTextureWidth, d3->dwMaxTextureHeight); // to be completed .... //OutTrace("\n"); - HexTrace((unsigned char *)d3, sizeof(D3DDEVICEDESC7)); + if(IsTraceHex) HexTrace((unsigned char *)d3, sizeof(D3DDEVICEDESC7)); } else OutTrace("EnumDevices: CALLBACK dev=%s ddesc=NULL\n", label); diff --git a/dll/hddraw.h b/dll/hddraw.h index c3fe6b6..fa7552e 100644 --- a/dll/hddraw.h +++ b/dll/hddraw.h @@ -55,8 +55,8 @@ typedef HRESULT (WINAPI *RestoreAllSurfaces_Type)(LPDIRECTDRAW); typedef HRESULT (WINAPI *TestCooperativeLevel_Type)(LPDIRECTDRAW); typedef HRESULT (WINAPI *GetDeviceIdentifier_Type)(LPDIRECTDRAW, LPDDDEVICEIDENTIFIER, DWORD); typedef HRESULT (WINAPI *GetScanLine_Type)(LPDIRECTDRAW, LPDWORD); -// STDMETHOD(StartModeTest)(THIS_ LPSIZE, DWORD, DWORD ) PURE; -// STDMETHOD(EvaluateMode)(THIS_ DWORD, DWORD * ) PURE; +typedef HRESULT (WINAPI *StartModeTest_Type)(LPDIRECTDRAW, LPSIZE, DWORD, DWORD); +typedef HRESULT (WINAPI *EvaluateMode_Type)(LPDIRECTDRAW, DWORD, DWORD *); // DirectDrawSurface typedef ULONG (WINAPI *AddRefS_Type)(LPDIRECTDRAWSURFACE); diff --git a/dll/queryint.cpp b/dll/queryint.cpp index b8e9921..797868f 100644 --- a/dll/queryint.cpp +++ b/dll/queryint.cpp @@ -80,6 +80,9 @@ HRESULT WINAPI extQueryInterfaceDX(int dxversion, QueryInterface_Type pQueryInte iObjectType=TYPE_OBJECT_DDRAWSURFACE; iObjectVersion=4; break; case 0x06675a80: iObjectType=TYPE_OBJECT_DDRAWSURFACE; iObjectVersion=7; break; + case 0x6C14DB84: + OutTraceDW("QueryInterface: IID_IDirectDrawPalette\n"); + break; // Direct3D case 0x3BBA0080: // IID_IDirect3D iObjectType=TYPE_OBJECT_DIRECT3D; iObjectVersion=1; break; @@ -115,6 +118,9 @@ HRESULT WINAPI extQueryInterfaceDX(int dxversion, QueryInterface_Type pQueryInte case 0x4B9F0EE0: OutTraceDW("QueryInterface: IID_IDirectDrawColorControl\n"); break; + case 0x6C14DB85: + OutTraceDW("QueryInterface: IID_IDirectDrawClipper\n"); + break; case 0x69C11C3E: iObjectType=TYPE_OBJECT_GAMMARAMP; iObjectVersion=1; break; // textures diff --git a/host/TabLogs.cpp b/host/TabLogs.cpp index ef00b8d..b6375fd 100644 --- a/host/TabLogs.cpp +++ b/host/TabLogs.cpp @@ -53,6 +53,7 @@ void CTabLogs::DoDataExchange(CDataExchange* pDX) DDX_Check(pDX, IDC_TRACEHOOKS, cTarget->m_TraceHooks); DDX_Check(pDX, IDC_OUTOGLTRACE, cTarget->m_OutOGLTrace); DDX_Check(pDX, IDC_OUTWGTRACE, cTarget->m_OutWGTrace); + DDX_Check(pDX, IDC_OUTHEXTRACE, cTarget->m_OutHexTrace); } BEGIN_MESSAGE_MAP(CTabLogs, CDialog) diff --git a/host/TargetDlg.cpp b/host/TargetDlg.cpp index e86bec1..b5e9f01 100644 --- a/host/TargetDlg.cpp +++ b/host/TargetDlg.cpp @@ -49,6 +49,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/) m_OutWinMessages = FALSE; m_OutDWTrace = FALSE; m_OutOGLTrace = FALSE; + m_OutHexTrace = FALSE; m_OutWGTrace = FALSE; m_OutD3DTrace = FALSE; m_OutDDRAWTrace = FALSE; diff --git a/host/TargetDlg.h b/host/TargetDlg.h index 65735db..38a1d6d 100644 --- a/host/TargetDlg.h +++ b/host/TargetDlg.h @@ -62,6 +62,7 @@ public: BOOL m_OutWinMessages; BOOL m_OutDWTrace; BOOL m_OutOGLTrace; + BOOL m_OutHexTrace; BOOL m_OutWGTrace; BOOL m_OutD3DTrace; BOOL m_OutDDRAWTrace; diff --git a/host/dxwndhost.aps b/host/dxwndhost.aps index 433abc9..b27abee 100644 Binary files a/host/dxwndhost.aps and b/host/dxwndhost.aps differ diff --git a/host/dxwndhost.cpp b/host/dxwndhost.cpp index 44122ed..ed61e13 100644 --- a/host/dxwndhost.cpp +++ b/host/dxwndhost.cpp @@ -44,7 +44,7 @@ BOOL gQuietMode = FALSE; BOOL gMustDie = FALSE; int iProgIndex; DWORD SysColors[32]; -extern char m_ConfigFileName[20+1] = "dxwnd.ini"; +//char m_ConfigFileName[MAX_PATH+1] = "dxwnd.ini"; class CNewCommandLineInfo : public CCommandLineInfo { @@ -103,7 +103,7 @@ void CNewCommandLineInfo::ParseParam(LPCTSTR lpszParam, BOOL bFlag, BOOL bLast) return; } if (sParam.Left(2).MakeLower() == "c:"){ - strcpy_s(m_ConfigFileName, sizeof(m_ConfigFileName)-1, sParam.Mid(2,sizeof(m_ConfigFileName)-1)); + strcpy_s(gInitPath, sizeof(gInitPath)-1, sParam.Mid(2,sizeof(gInitPath)-1)); return; } if (sParam.MakeLower() == "e"){ diff --git a/host/dxwndhost.h b/host/dxwndhost.h index ed23689..9ab952e 100644 --- a/host/dxwndhost.h +++ b/host/dxwndhost.h @@ -42,7 +42,7 @@ typedef struct { } ThreadInfo_Type; ThreadInfo_Type; -extern char gInitPath[MAX_PATH]; +extern char gInitPath[MAX_PATH+1]; extern void OutTrace(const char *, ...); ///////////////////////////////////////////////////////////////////////////// diff --git a/host/dxwndhost.rc b/host/dxwndhost.rc index fe5d6a6..816ebd1 100644 Binary files a/host/dxwndhost.rc and b/host/dxwndhost.rc differ diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo index e261656..f2e7f57 100644 Binary files a/host/dxwndhost.vs2008.suo and b/host/dxwndhost.vs2008.suo differ diff --git a/host/dxwndhostDoc.cpp b/host/dxwndhostDoc.cpp new file mode 100644 index 0000000..1536efc --- /dev/null +++ b/host/dxwndhostDoc.cpp @@ -0,0 +1,75 @@ +// dxwndhostDoc.cpp : CDxwndhostDoc Define the behavior of the class. +// + +#include "stdafx.h" +#include "dxwndhost.h" + +#include "dxwndhostDoc.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CDxwndhostDoc + +IMPLEMENT_DYNCREATE(CDxwndhostDoc, CDocument) + +BEGIN_MESSAGE_MAP(CDxwndhostDoc, CDocument) + //{{AFX_MSG_MAP(CDxwndhostDoc) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CDxwndhostDoc class constructor / destructor + +CDxwndhostDoc::CDxwndhostDoc() +{ +} + +CDxwndhostDoc::~CDxwndhostDoc() +{ +} + +BOOL CDxwndhostDoc::OnNewDocument() +{ + if (!CDocument::OnNewDocument()) + return FALSE; + + return TRUE; +} + + + +///////////////////////////////////////////////////////////////////////////// +// CDxwndhostDoc Serialization + +void CDxwndhostDoc::Serialize(CArchive& ar) +{ + if (ar.IsStoring()) + { + } + else + { + } +} + +///////////////////////////////////////////////////////////////////////////// +// CDxwndhostDoc Diagnostic Class + +#ifdef _DEBUG +void CDxwndhostDoc::AssertValid() const +{ + CDocument::AssertValid(); +} + +void CDxwndhostDoc::Dump(CDumpContext& dc) const +{ + CDocument::Dump(dc); +} +#endif //_DEBUG + +///////////////////////////////////////////////////////////////////////////// +// CDxwndhostDoc Command diff --git a/host/dxwndhostView.cpp b/host/dxwndhostView.cpp index eb5ddd4..0c7787b 100644 --- a/host/dxwndhostView.cpp +++ b/host/dxwndhostView.cpp @@ -32,7 +32,7 @@ static char THIS_FILE[] = __FILE__; extern UINT m_StartToTray; extern UINT m_InitialState; -extern char m_ConfigFileName[20+1]; +//extern char m_ConfigFileName[MAX_PATH+1]; extern BOOL Inject(DWORD, const char *); extern int KillProcByName(char *, BOOL, BOOL); extern BOOL gTransientMode; @@ -46,7 +46,8 @@ TARGETMAP *pTargets; // idem. #define LOCKINJECTIONTHREADS -char gInitPath[MAX_PATH]; // don't put it into the class because it must be used after destructor +char gInitPath[MAX_PATH+1] = ""; // don't put it into the class because it must be used after destructor +char gExportPath[MAX_PATH+1]; CWnd *pParent; // beware: it must operate upon count+1 sized arrays @@ -207,6 +208,8 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg) t->flags6 = 0; t->flags7 = 0; t->flags8 = 0; + t->flags9 = 0; + t->flags10 = 0; t->tflags = 0; t->dflags = 0; if(dlg->m_UnNotify) t->flags |= UNNOTIFY; @@ -378,6 +381,7 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg) if(dlg->m_OutWinMessages) t->tflags |= OUTWINMESSAGES; if(dlg->m_OutDWTrace) t->tflags |= OUTDXWINTRACE; if(dlg->m_OutOGLTrace) t->tflags |= OUTOGLTRACE; + if(dlg->m_OutHexTrace) t->tflags |= OUTHEXTRACE; if(dlg->m_OutWGTrace) t->tflags |= OUTWINGTRACE; if(dlg->m_OutDDRAWTrace) t->tflags |= OUTDDRAWTRACE; if(dlg->m_OutD3DTrace) t->tflags |= OUTD3DTRACE; @@ -718,6 +722,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg) dlg->m_OutWinMessages = t->tflags & OUTWINMESSAGES ? 1 : 0; dlg->m_OutDWTrace = t->tflags & OUTDXWINTRACE ? 1 : 0; dlg->m_OutOGLTrace = t->tflags & OUTOGLTRACE ? 1 : 0; + dlg->m_OutHexTrace = t->tflags & OUTHEXTRACE ? 1 : 0; dlg->m_OutWGTrace = t->tflags & OUTWINGTRACE ? 1 : 0; dlg->m_OutD3DTrace = t->tflags & OUTD3DTRACE ? 1 : 0; dlg->m_OutDDRAWTrace = t->tflags & OUTDDRAWTRACE ? 1 : 0; @@ -1443,10 +1448,12 @@ void CDxwndhostView::OnInitialUpdate() listcol.mask = LVCF_WIDTH; listcol.cx = 100; - listctrl.InsertColumn(0, &listcol); - GetCurrentDirectory(MAX_PATH, gInitPath); - strcat_s(gInitPath, sizeof(gInitPath), "\\"); - strcat_s(gInitPath, sizeof(gInitPath), m_ConfigFileName); + listctrl.InsertColumn(0, &listcol); + if(!strlen(gInitPath)){ + GetCurrentDirectory(MAX_PATH, gInitPath); + strcat_s(gInitPath, sizeof(gInitPath), "\\"); + strcat_s(gInitPath, sizeof(gInitPath), "dxwnd.ini"); + } listctrl.InsertColumn(0, &listcol); StatusMap.VJoyStatus = GetPrivateProfileInt("joystick", "flags", VJOYENABLED|CROSSENABLED|INVERTYAXIS|VJMOUSEMAP|VJKEYBOARDMAP, gInitPath); @@ -2154,6 +2161,7 @@ void CDxwndhostView::OnAdd(char *sInitialPath) dlg.m_PosY = GetPrivateProfileInt("window", "defaultposy", 50, gInitPath); dlg.m_SizX = GetPrivateProfileInt("window", "defaultsizx", 800, gInitPath); dlg.m_SizY = GetPrivateProfileInt("window", "defaultsizy", 600, gInitPath); + dlg.m_LogMode = 0; // ??? if(dlg.DoModal() == IDOK && dlg.m_FilePath.GetLength()){ strnncpy(PrivateMaps[i].title, (char *)dlg.m_Title.GetString(), MAX_TITLE); diff --git a/host/resource b/host/resource index 1b226ba..46b86c0 100644 Binary files a/host/resource and b/host/resource differ