From 9a31806434ad5e5d673c454e602b0d08ff5c21d9 Mon Sep 17 00:00:00 2001 From: gho tik Date: Thu, 9 Feb 2017 11:50:14 -0500 Subject: [PATCH] v2_04_13_src Former-commit-id: 0872a878d2a987e5d783445e8169452aad880381 --- build/dxwnd.dll | 2 +- build/dxwnd.ini | 1304 -------------------------- build/dxwnd.log | 14 - build/exports/Diablo.dxw | 9 +- build/exports/Starsiege - Tribes.dxw | 36 + build/proxy/wing32.dll | 3 + build/readme-relnotes.txt | 9 +- dll/advapi.cpp | 1 + dll/ddraw.cpp | 3 +- dll/dxwnd.cpp | 2 +- dll/dxwnd.vs2008.suo | Bin 810930 -> 842752 bytes dll/gdi32.cpp | 13 +- dll/shareddc.cpp | 2 +- dll/syslibs.h | 3 + dll/user32.cpp | 58 +- proxy/d3d8.suo | Bin 7168 -> 8192 bytes proxy/d3d9.suo | Bin 7168 -> 8192 bytes proxy/ddraw.suo | Bin 7168 -> 8704 bytes proxy/init.cpp | 44 +- proxy/wing32.suo | Bin 10752 -> 10240 bytes 20 files changed, 140 insertions(+), 1363 deletions(-) delete mode 100644 build/dxwnd.ini delete mode 100644 build/dxwnd.log create mode 100644 build/exports/Starsiege - Tribes.dxw create mode 100644 build/proxy/wing32.dll diff --git a/build/dxwnd.dll b/build/dxwnd.dll index f12ed6b..0296cb0 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f4db08ed8206eab319c89f808e3b59311060b13ba6f2f8b01b12f14d78b48926 +oid sha256:7a79583def56483a293f270aec77c751598364449eb1d729d4fa4512f8c2b010 size 787456 diff --git a/build/dxwnd.ini b/build/dxwnd.ini deleted file mode 100644 index 80c99e6..0000000 --- a/build/dxwnd.ini +++ /dev/null @@ -1,1304 +0,0 @@ -[target] -title0=Man TT Super Bike -path0=F:\Games\ManTT\MANXTT.EXE -startfolder0= -launchpath0= -module0= -opengllib0= -notes0= -registry0= -ver0=0 -monitorid0=-1 -coord0=0 -flag0=136323110 -flagg0=1241514048 -flagh0=327700 -flagi0=138412036 -flagj0=4224 -flagk0=327680 -flagl0=8389120 -flagm0=16777216 -tflag0=-2147483647 -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=640 -initresh0=480 -title1=Starsiege.exe -path1=D:\Games\Starsiege\Starsiege.exe -startfolder1= -launchpath1= -module1= -opengllib1= -notes1= -registry1= -ver1=0 -monitorid1=-1 -coord1=0 -flag1=673185826 -flagg1=1207959552 -flagh1=20 -flagi1=134217732 -flagj1=4224 -flagk1=65536 -flagl1=0 -flagm1=0 -tflag1=0 -dflag1=0 -posx1=50 -posy1=50 -sizx1=800 -sizy1=600 -maxfps1=0 -initts1=0 -winver1=0 -maxres1=0 -swapeffect1=0 -maxddinterface1=7 -slowratio1=2 -scanline1=0 -initresw1=800 -initresh1=600 -title2=Wizardry Chronicles -path2=F:\Games\Wizardry Chronicle\Wizardry Chronicles.exe -startfolder2= -launchpath2= -module2= -opengllib2= -notes2= -registry2= -ver2=0 -monitorid2=-1 -coord2=0 -flag2=673185826 -flagg2=1207959552 -flagh2=20 -flagi2=138412036 -flagj2=4224 -flagk2=65536 -flagl2=2097152 -flagm2=0 -tflag2=-2147477245 -dflag2=0 -posx2=50 -posy2=50 -sizx2=800 -sizy2=600 -maxfps2=0 -initts2=0 -winver2=0 -maxres2=0 -swapeffect2=0 -maxddinterface2=7 -slowratio2=2 -scanline2=0 -initresw2=800 -initresh2=600 -title3=Titanic -path3=F:\Games\Titanic\TI.noshim.EXE -startfolder3= -launchpath3= -module3= -opengllib3= -notes3= -registry3= -ver3=0 -monitorid3=-1 -coord3=0 -flag3=-1474289622 -flagg3=1745879072 -flagh3=606228 -flagi3=138412036 -flagj3=4224 -flagk3=65536 -flagl3=1048576 -flagm3=9216 -tflag3=-2147477245 -dflag3=0 -posx3=50 -posy3=50 -sizx3=1024 -sizy3=768 -maxfps3=0 -initts3=0 -winver3=0 -maxres3=-1 -swapeffect3=0 -maxddinterface3=7 -slowratio3=2 -scanline3=0 -initresw3=800 -initresh3=600 -title4=NASCAR Racing 3 -path4=G:\Games\Nascar Racing 3\NASCAR Racing 3.exe -startfolder4= -launchpath4= -module4= -opengllib4= -notes4= -registry4= -ver4=0 -monitorid4=-1 -coord4=0 -flag4=136314914 -flagg4=1207959552 -flagh4=20 -flagi4=134217732 -flagj4=4224 -flagk4=65536 -flagl4=0 -flagm4=0 -tflag4=0 -dflag4=0 -posx4=50 -posy4=50 -sizx4=800 -sizy4=600 -maxfps4=0 -initts4=0 -winver4=0 -maxres4=-1 -swapeffect4=0 -maxddinterface4=7 -slowratio4=2 -scanline4=1 -initresw4=800 -initresh4=600 -title5=NASCAR 2000 -path5=F:\Games\Nascar 2000\NASCAR 2000.exe -startfolder5= -launchpath5= -module5= -opengllib5= -notes5= -registry5= -ver5=0 -monitorid5=-1 -coord5=0 -flag5=673202210 -flagg5=1207959552 -flagh5=20 -flagi5=138412036 -flagj5=4224 -flagk5=65536 -flagl5=0 -flagm5=0 -tflag5=-2147477245 -dflag5=0 -posx5=50 -posy5=50 -sizx5=800 -sizy5=600 -maxfps5=0 -initts5=0 -winver5=0 -maxres5=0 -swapeffect5=0 -maxddinterface5=7 -slowratio5=2 -scanline5=0 -initresw5=800 -initresh5=600 -title6=RHEM -path6=F:\RhemE\RhemE\RHEM.noshim.exe -startfolder6= -launchpath6= -module6= -opengllib6= -notes6= -registry6= -ver6=0 -monitorid6=-1 -coord6=0 -flag6=681574434 -flagg6=1209008128 -flagh6=4 -flagi6=205520900 -flagj6=4224 -flagk6=98304 -flagl6=0 -flagm6=8192 -tflag6=-2147452669 -dflag6=0 -posx6=50 -posy6=50 -sizx6=640 -sizy6=480 -maxfps6=0 -initts6=0 -winver6=0 -maxres6=0 -swapeffect6=0 -maxddinterface6=7 -slowratio6=2 -scanline6=0 -initresw6=800 -initresh6=600 -title7=RHEM (scalable) -path7=F:\RhemE\RhemE\RHEM1(scalable).exe -startfolder7= -launchpath7= -module7= -opengllib7= -notes7= -registry7= -ver7=0 -monitorid7=-1 -coord7=0 -flag7=681574434 -flagg7=1209008128 -flagh7=4 -flagi7=205520900 -flagj7=4224 -flagk7=98304 -flagl7=0 -flagm7=8192 -tflag7=-2147452669 -dflag7=0 -posx7=50 -posy7=50 -sizx7=800 -sizy7=600 -maxfps7=0 -initts7=0 -winver7=0 -maxres7=0 -swapeffect7=0 -maxddinterface7=7 -slowratio7=2 -scanline7=0 -initresw7=800 -initresh7=600 -title8=RHEM 1 - Scaled Settings -path8=F:\RhemE\RhemE\RHEM.noshim.exe -startfolder8= -launchpath8= -module8=proj.dll -opengllib8= -notes8= -registry8= -ver8=12 -monitorid8=-1 -coord8=0 -flag8=-1442707352 -flagg8=1276117008 -flagh8=168034320 -flagi8=138412032 -flagj8=536877184 -flagk8=1048706 -flagl8=8393216 -flagm8=3402 -tflag8=-2147452669 -dflag8=0 -posx8=50 -posy8=50 -sizx8=1200 -sizy8=900 -maxfps8=0 -initts8=0 -winver8=8 -maxres8=6 -swapeffect8=0 -maxddinterface8=7 -slowratio8=2 -scanline8=0 -initresw8=640 -initresh8=480 -title9=Blade Runner -path9=F:\Games\blade runner\BLADE.EXE -startfolder9= -launchpath9= -module9= -opengllib9= -notes9= -registry9= -ver9=0 -monitorid9=0 -coord9=0 -flag9=134234210 -flagg9=1480589312 -flagh9=2580 -flagi9=4194308 -flagj9=128 -flagk9=2048 -flagl9=0 -flagm9=0 -tflag9=0 -dflag9=0 -posx9=50 -posy9=50 -sizx9=800 -sizy9=600 -maxfps9=0 -initts9=0 -winver9=0 -maxres9=-1 -swapeffect9=0 -maxddinterface9=7 -slowratio9=1 -scanline9=1 -initresw9=0 -initresh9=0 -title10=Command & Conquer Red Alert 2 -path10=D:\Games\Red Alert 2 Yuri's Revenge\game.exe -startfolder10= -launchpath10=D:\Games\Red Alert 2 Yuri's Revenge\Ra2.exe -module10= -opengllib10= -notes10= -registry10= -ver10=0 -monitorid10=0 -coord10=0 -flag10=136314914 -flagg10=1207959552 -flagh10=20 -flagi10=138412036 -flagj10=4224 -flagk10=67584 -flagl10=0 -flagm10=0 -tflag10=0 -dflag10=0 -posx10=50 -posy10=50 -sizx10=800 -sizy10=600 -maxfps10=0 -initts10=0 -winver10=0 -maxres10=-1 -swapeffect10=0 -maxddinterface10=7 -slowratio10=1 -scanline10=1 -initresw10=0 -initresh10=0 -title11=Chicken Invaders 2 -path11=F:\Games\Chicken Invaders 2\ChickenInvaders2.exe -startfolder11= -launchpath11= -module11= -opengllib11= -notes11=Time stretching requires "stretch timers" -registry11= -ver11=0 -monitorid11=-1 -coord11=0 -flag11=136314914 -flagg11=1207959552 -flagh11=20 -flagi11=138477572 -flagj11=4224 -flagk11=65536 -flagl11=65536 -flagm11=0 -tflag11=-2147477245 -dflag11=0 -posx11=50 -posy11=50 -sizx11=800 -sizy11=600 -maxfps11=0 -initts11=6 -winver11=0 -maxres11=-1 -swapeffect11=0 -maxddinterface11=7 -slowratio11=2 -scanline11=1 -initresw11=800 -initresh11=600 -title12=Wrestling MPire Remix -path12=F:\Games\Wrestling MPire Remix (Career)\Wrestling MPire Remix (Fullscreen).exe -startfolder12= -launchpath12= -module12= -opengllib12= -notes12= -registry12= -ver12=0 -monitorid12=-1 -coord12=0 -flag12=673185826 -flagg12=1207959552 -flagh12=65556 -flagi12=138412036 -flagj12=4224 -flagk12=65536 -flagl12=268435456 -flagm12=0 -tflag12=0 -dflag12=0 -posx12=50 -posy12=50 -sizx12=800 -sizy12=600 -maxfps12=0 -initts12=0 -winver12=0 -maxres12=0 -swapeffect12=0 -maxddinterface12=7 -slowratio12=2 -scanline12=0 -initresw12=800 -initresh12=600 -title13=Martian Gothic Unification -path13=D:\Games\Martian Gothic\martian gothic.exe -startfolder13= -launchpath13= -module13= -opengllib13= -notes13= -registry13= -ver13=0 -monitorid13=0 -coord13=0 -flag13=134217762 -flagg13=1275068416 -flagh13=20 -flagi13=4194308 -flagj13=0 -flagk13=98304 -flagl13=0 -flagm13=0 -tflag13=-2147477245 -dflag13=0 -posx13=50 -posy13=50 -sizx13=800 -sizy13=600 -maxfps13=0 -initts13=0 -winver13=0 -maxres13=0 -swapeffect13=0 -maxddinterface13=7 -slowratio13=1 -scanline13=1 -initresw13=0 -initresh13=0 -title14=Dominant Species -path14=F:\Games\Dominant Species\DominantSpecies.exe -startfolder14= -launchpath14= -module14= -opengllib14= -notes14= -registry14= -ver14=0 -monitorid14=-1 -coord14=0 -flag14=673185826 -flagg14=1207959552 -flagh14=20 -flagi14=138412036 -flagj14=4224 -flagk14=65536 -flagl14=0 -flagm14=0 -tflag14=0 -dflag14=0 -posx14=50 -posy14=50 -sizx14=800 -sizy14=600 -maxfps14=0 -initts14=0 -winver14=0 -maxres14=0 -swapeffect14=0 -maxddinterface14=7 -slowratio14=2 -scanline14=0 -initresw14=800 -initresh14=600 -title15=ShipWreckers demo -path15=F:\Games\ShipWreckers demo\SW.EXE -startfolder15= -launchpath15= -module15= -opengllib15= -notes15= -registry15= -ver15=0 -monitorid15=-1 -coord15=0 -flag15=673185826 -flagg15=1207959552 -flagh15=20 -flagi15=138412036 -flagj15=4224 -flagk15=65536 -flagl15=1048576 -flagm15=0 -tflag15=0 -dflag15=0 -posx15=50 -posy15=50 -sizx15=800 -sizy15=600 -maxfps15=0 -initts15=0 -winver15=0 -maxres15=0 -swapeffect15=0 -maxddinterface15=7 -slowratio15=2 -scanline15=0 -initresw15=800 -initresh15=600 -title16=Interstate 76 Nitro Pack -path16=F:\Games\Interstate 76 Nitro Pack\nitro.exe -startfolder16= -launchpath16= -module16= -opengllib16= -notes16= -registry16= -ver16=0 -monitorid16=0 -coord16=0 -flag16=134217762 -flagg16=2013265920 -flagh16=20 -flagi16=138412036 -flagj16=4096 -flagk16=65536 -flagl16=0 -flagm16=0 -tflag16=0 -dflag16=0 -posx16=50 -posy16=50 -sizx16=800 -sizy16=600 -maxfps16=0 -initts16=0 -winver16=0 -maxres16=-1 -swapeffect16=0 -maxddinterface16=7 -slowratio16=1 -scanline16=1 -initresw16=0 -initresh16=0 -title17=Interstate 76 -path17=D:\Games\I76\I76.EXE -startfolder17= -launchpath17= -module17= -opengllib17= -notes17= -registry17= -ver17=0 -monitorid17=0 -coord17=0 -flag17=134217762 -flagg17=2013265920 -flagh17=20 -flagi17=138412036 -flagj17=4224 -flagk17=0 -flagl17=0 -flagm17=0 -tflag17=0 -dflag17=0 -posx17=50 -posy17=50 -sizx17=800 -sizy17=600 -maxfps17=0 -initts17=0 -winver17=0 -maxres17=-1 -swapeffect17=0 -maxddinterface17=7 -slowratio17=1 -scanline17=1 -initresw17=0 -initresh17=0 -title18=TOCA Touring Car Championship -path18=F:\Games\tourcar\tourcars.exe -startfolder18= -launchpath18=F:\Games\tourcar\setup.exe -module18= -opengllib18= -notes18= -registry18=\n[HKEY_LOCAL_MACHINE\SOFTWARE\Codemasters]\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Codemasters\Touring Car]\n"GameDirectory"="F:\\Games\\tourcar\\"\n"CD_Drive"="."\n"Install_Drive"="F:"\n"CardHintIndex"=dword:00000000\n"ShowRunInfo"=dword:00000000\n"S3RunInfo"=dword:00000000\n\n -ver18=0 -monitorid18=-1 -coord18=0 -flag18=673185834 -flagg18=1207959552 -flagh18=528 -flagi18=138412032 -flagj18=4224 -flagk18=65536 -flagl18=0 -flagm18=0 -tflag18=-2147477245 -dflag18=0 -posx18=50 -posy18=50 -sizx18=800 -sizy18=600 -maxfps18=0 -initts18=0 -winver18=0 -maxres18=0 -swapeffect18=0 -maxddinterface18=7 -slowratio18=2 -scanline18=0 -initresw18=800 -initresh18=600 -title19=Tomb Raider III -path19=D:\Games\Tomb Raider III\tomb3.exe -startfolder19= -launchpath19= -module19= -opengllib19= -notes19=Working either with or without flip emulation\nDeinterlace movies increases the movie quality -registry19= -ver19=0 -monitorid19=0 -coord19=0 -flag19=134217762 -flagg19=1241513984 -flagh19=20 -flagi19=4194304 -flagj19=268435584 -flagk19=0 -flagl19=0 -flagm19=0 -tflag19=0 -dflag19=0 -posx19=50 -posy19=50 -sizx19=800 -sizy19=600 -maxfps19=0 -initts19=0 -winver19=0 -maxres19=0 -swapeffect19=0 -maxddinterface19=7 -slowratio19=1 -scanline19=1 -initresw19=0 -initresh19=0 -title20=Total Soccer 2000 (DirectX) -path20=D:\Games\Total Soccer 2000\SOCCERDX.EXE -startfolder20= -launchpath20= -module20= -opengllib20= -notes20= -registry20= -ver20=1 -monitorid20=0 -coord20=0 -flag20=134234274 -flagg20=1207959808 -flagh20=20 -flagi20=4194308 -flagj20=128 -flagk20=0 -flagl20=0 -flagm20=0 -tflag20=0 -dflag20=0 -posx20=50 -posy20=50 -sizx20=800 -sizy20=600 -maxfps20=0 -initts20=2 -winver20=0 -maxres20=-1 -swapeffect20=0 -maxddinterface20=7 -slowratio20=1 -scanline20=1 -initresw20=0 -initresh20=0 -title21=Gruntz -path21=D:\Games\gruntz\GRUNTZ.EXE -startfolder21= -launchpath21= -module21= -opengllib21= -notes21= -registry21= -ver21=0 -monitorid21=0 -coord21=0 -flag21=134234404 -flagg21=1207959552 -flagh21=67108884 -flagi21=4325380 -flagj21=128 -flagk21=65536 -flagl21=0 -flagm21=0 -tflag21=-2147477245 -dflag21=0 -posx21=50 -posy21=50 -sizx21=800 -sizy21=600 -maxfps21=0 -initts21=0 -winver21=0 -maxres21=-1 -swapeffect21=0 -maxddinterface21=7 -slowratio21=1 -scanline21=1 -initresw21=0 -initresh21=0 -title22=SuperBike 2000 -path22=F:\Games\SBK2000\SBK2000.exe -startfolder22= -launchpath22= -module22= -opengllib22= -notes22=N.b.\nCD rom in\nHKEY_LOCAL_MACHINE/SOFTWARE/EA SPORTS/Superbike 2000/CD\nor \nHKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/EA SPORTS/Superbike 2000/CD -registry22= -ver22=0 -monitorid22=-1 -coord22=0 -flag22=673202210 -flagg22=1207959552 -flagh22=20 -flagi22=138412036 -flagj22=4224 -flagk22=65536 -flagl22=524288 -flagm22=1312 -tflag22=-2147483135 -dflag22=0 -posx22=50 -posy22=50 -sizx22=800 -sizy22=600 -maxfps22=0 -initts22=0 -winver22=0 -maxres22=0 -swapeffect22=0 -maxddinterface22=7 -slowratio22=2 -scanline22=0 -initresw22=800 -initresh22=600 -title23=Warcraft Adventures - Lord Of The Clans -path23=F:\Games\Warcraft Adventures - Lord Of The Clans\PlayWin.exe -startfolder23= -launchpath23= -module23= -opengllib23= -notes23= -registry23= -ver23=0 -monitorid23=-1 -coord23=0 -flag23=673185826 -flagg23=1207959552 -flagh23=20 -flagi23=134217732 -flagj23=4224 -flagk23=65536 -flagl23=0 -flagm23=0 -tflag23=0 -dflag23=0 -posx23=50 -posy23=50 -sizx23=800 -sizy23=600 -maxfps23=0 -initts23=0 -winver23=0 -maxres23=0 -swapeffect23=0 -maxddinterface23=7 -slowratio23=2 -scanline23=0 -initresw23=800 -initresh23=600 -title24=V-Rally 2 Expert Edition -path24=F:\Games\V-Rally 2 Expert Edition\V-Rally2 Expert Edition\Vrally2.exe -startfolder24= -launchpath24= -module24= -opengllib24= -notes24=Note: the game detects Alt-tabs and terminates. \nThen the "do not notify on task switch" is mandatory, but also minimizing is not supported. -registry24= -ver24=0 -monitorid24=-1 -coord24=0 -flag24=136314931 -flagg24=1207959808 -flagh24=20 -flagi24=138412036 -flagj24=4224 -flagk24=65536 -flagl24=1048576 -flagm24=0 -tflag24=0 -dflag24=0 -posx24=50 -posy24=50 -sizx24=800 -sizy24=600 -maxfps24=0 -initts24=0 -winver24=0 -maxres24=-1 -swapeffect24=0 -maxddinterface24=7 -slowratio24=2 -scanline24=1 -initresw24=800 -initresh24=600 -title25=V-Rally 3 -path25=F:\Games\V-Rally 3\Vrally3.exe -startfolder25= -launchpath25= -module25= -opengllib25= -notes25= -registry25= -ver25=0 -monitorid25=-1 -coord25=1 -flag25=673185826 -flagg25=1207959568 -flagh25=65556 -flagi25=138444804 -flagj25=4224 -flagk25=65536 -flagl25=0 -flagm25=0 -tflag25=0 -dflag25=0 -posx25=50 -posy25=50 -sizx25=800 -sizy25=600 -maxfps25=0 -initts25=0 -winver25=0 -maxres25=0 -swapeffect25=0 -maxddinterface25=7 -slowratio25=2 -scanline25=0 -initresw25=800 -initresh25=600 -title26=Warhammer - Shadow of the Horned Rat -path26=F:\Games\Warhammer - Shadow of the Horned Rat\WHSHR.EXE -startfolder26= -launchpath26= -module26=GAMEF.DLL -opengllib26= -notes26=Game setup:\n\n1) unzip packed game RIP\n2) copy RLDDF.DLL from SYSTEM32 subfolder to game dir\n3) copy DxWnd wing32.dll to game dir\n4) turn digital audio OFF or add sound WAV file (it is hardcoded in virtual registry!)\nor copy wav files in \Remote\Binary\GLUE\SPEECH folder\n -registry26=\n[HKEY_LOCAL_MACHINE\SOFTWARE]\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape]\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB]\n;"Options"="3,1,1,2,1,1,0,0" // High Quality, digital audio off\n"Options"="3,1,1,2,1,1,1,1" // High Quality, digital audio on\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB\InstallDir]\n@="\{path}"\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB\InstallOption]\n@="Maximum"\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB\Language]\n@="ENG"\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB\LocalDir]\n@="\{path}\\FILE"\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB\RemoteDir]\n@="\{path}\\REMOTE"\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB\SaveDir]\n@="\{path}\\TEMP"\n\n[HKEY_LOCAL_MACHINE\SOFTWARE\Mindscape\WarHammerFB\UpdateDir]\n@="C:\\GAMES\\WARFB\\Update"\n\n[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs]\n"C:\\WINDOWS\\SYSTEM32\\WING.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\WING32.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\WINGDE.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\WINGDIB.DRV"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\WINGPAL.WND"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RLDDF.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RLDDI.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFTF.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFTI.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLFRG16M.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLFRG256.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLFRG64K.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLFRM16M.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLFRM256.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLFRM64K.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLIRG16M.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLIRG256.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLIRG64K.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLIRM16M.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLIRM256.DLL"=hex:01,00,00,00\n"C:\\WINDOWS\\SYSTEM32\\RL\\SOFT\\RLIRM64K.DLL"=hex:01,00,00,00 -ver26=0 -monitorid26=-1 -coord26=0 -flag26=-1473609686 -flagg26=1209270312 -flagh26=2163732 -flagi26=1212153860 -flagj26=4224 -flagk26=2195456 -flagl26=67141648 -flagm26=2105344 -tflag26=0 -dflag26=0 -posx26=50 -posy26=50 -sizx26=800 -sizy26=600 -maxfps26=0 -initts26=0 -winver26=0 -maxres26=0 -swapeffect26=0 -maxddinterface26=7 -slowratio26=2 -scanline26=0 -initresw26=800 -initresh26=600 -title27=Superbike World Championship 99 -path27=F:\Games\SBKWC99\SuperBike.exe -startfolder27= -launchpath27= -module27= -opengllib27= -notes27= -registry27= -ver27=0 -monitorid27=-1 -coord27=0 -flag27=673185826 -flagg27=1207959616 -flagh27=20 -flagi27=138412036 -flagj27=4224 -flagk27=65536 -flagl27=0 -flagm27=0 -tflag27=0 -dflag27=0 -posx27=50 -posy27=50 -sizx27=800 -sizy27=600 -maxfps27=0 -initts27=0 -winver27=0 -maxres27=0 -swapeffect27=0 -maxddinterface27=7 -slowratio27=2 -scanline27=0 -initresw27=800 -initresh27=600 -title28=Superbike World Championship 99 (RIP) -path28=F:\Games\SBK99\SUPERB~1.EXE -startfolder28= -launchpath28= -module28= -opengllib28= -notes28= -registry28= -ver28=0 -monitorid28=-1 -coord28=0 -flag28=673185826 -flagg28=1207959552 -flagh28=20 -flagi28=138412036 -flagj28=4224 -flagk28=65536 -flagl28=32768 -flagm28=0 -tflag28=0 -dflag28=0 -posx28=50 -posy28=50 -sizx28=800 -sizy28=600 -maxfps28=0 -initts28=0 -winver28=0 -maxres28=0 -swapeffect28=0 -maxddinterface28=7 -slowratio28=2 -scanline28=0 -initresw28=800 -initresh28=600 -title29=Silver -path29=D:\Games\Silver\silver.exe -startfolder29= -launchpath29= -module29= -opengllib29= -notes29= -registry29= -ver29=0 -monitorid29=0 -coord29=0 -flag29=137363494 -flagg29=1207959552 -flagh29=20 -flagi29=138412036 -flagj29=4224 -flagk29=0 -flagl29=0 -flagm29=0 -tflag29=0 -dflag29=0 -posx29=50 -posy29=50 -sizx29=800 -sizy29=600 -maxfps29=0 -initts29=0 -winver29=0 -maxres29=-1 -swapeffect29=0 -maxddinterface29=7 -slowratio29=1 -scanline29=1 -initresw29=0 -initresh29=0 -title30=Civ3Conquests.exe -module30= -opengllib30= -monitorid30=-1 -dflag30=0 -scanline30=0 -initresw30=800 -initresh30=600 -path30=F:\Games\Civilization III Complete\Conquests\Civ3Conquests.exe -startfolder30= -launchpath30= -notes30= -registry30= -ver30=1 -coord30=0 -flag30=673185826 -flagg30=1208090624 -flagh30=20 -flagi30=138412036 -flagj30=4224 -flagk30=327680 -flagl30=32768 -flagm30=0 -tflag30=0 -posx30=50 -posy30=50 -sizx30=800 -sizy30=600 -maxfps30=0 -initts30=0 -winver30=0 -maxres30=0 -swapeffect30=0 -maxddinterface30=7 -slowratio30=2 -title31=International Football 2000 (cracked) -path31=D:\Games\International Football 2000\MSIF2000.exe -startfolder31= -launchpath31= -module31= -opengllib31= -notes31=n.b.\ngame cracked version needs hooking to MSIF2000.EXE instead of MSIF2000.ICD\nand launcher can be eliminated.\nUsing hw acceleration it could be necessary to set the "Return 0 refcount" flag. -registry31= -ver31=0 -monitorid31=0 -coord31=0 -flag31=134217762 -flagg31=1207959552 -flagh31=20 -flagi31=4718592 -flagj31=128 -flagk31=65536 -flagl31=0 -flagm31=0 -tflag31=-2147477245 -dflag31=0 -posx31=50 -posy31=50 -sizx31=800 -sizy31=600 -maxfps31=0 -initts31=0 -winver31=0 -maxres31=0 -swapeffect31=0 -maxddinterface31=7 -slowratio31=1 -scanline31=1 -initresw31=0 -initresh31=0 -title32=Theocracy 0.6.85 -path32=D:\Games\Theocracy\Theocracy\theocracy-0.6.85.exe -startfolder32= -launchpath32= -module32= -opengllib32= -notes32= -registry32= -ver32=0 -monitorid32=-1 -coord32=0 -flag32=673185830 -flagg32=1207959616 -flagh32=20 -flagi32=138412036 -flagj32=4224 -flagk32=65536 -flagl32=0 -flagm32=0 -tflag32=0 -dflag32=0 -posx32=50 -posy32=50 -sizx32=800 -sizy32=600 -maxfps32=0 -initts32=0 -winver32=0 -maxres32=0 -swapeffect32=0 -maxddinterface32=7 -slowratio32=2 -scanline32=0 -initresw32=800 -initresh32=600 -title33=Star Trek Armada -path33=D:\Games\Star Trek Armada\Armada.exe -startfolder33= -launchpath33= -module33= -opengllib33= -notes33= -registry33= -ver33=0 -monitorid33=0 -coord33=0 -flag33=-1474297757 -flagg33=1544552448 -flagh33=65552 -flagi33=136314884 -flagj33=4224 -flagk33=65536 -flagl33=0 -flagm33=0 -tflag33=0 -dflag33=0 -posx33=100 -posy33=100 -sizx33=800 -sizy33=600 -maxfps33=0 -initts33=0 -winver33=0 -maxres33=-1 -swapeffect33=0 -maxddinterface33=7 -slowratio33=1 -scanline33=1 -initresw33=0 -initresh33=0 -title34=Settlers 3, the -path34=D:\Games\The Settlers 3 - Ultimate Collection\S3.EXE -startfolder34= -launchpath34= -module34= -opengllib34= -notes34= -registry34= -ver34=0 -monitorid34=0 -coord34=0 -flag34=-1476394970 -flagg34=1207959618 -flagh34=20 -flagi34=4194308 -flagj34=128 -flagk34=0 -flagl34=0 -flagm34=0 -tflag34=0 -dflag34=0 -posx34=50 -posy34=50 -sizx34=800 -sizy34=600 -maxfps34=0 -initts34=0 -winver34=0 -maxres34=-1 -swapeffect34=0 -maxddinterface34=7 -slowratio34=1 -scanline34=1 -initresw34=0 -initresh34=0 -title35=DungOdy.exe -path35=F:\Games\Dungeon Odyssey Demo\DungOdy.exe -startfolder35= -launchpath35= -module35= -opengllib35= -notes35= -registry35= -ver35=0 -monitorid35=-1 -coord35=0 -flag35=673185824 -flagg35=1207959552 -flagh35=20 -flagi35=138412036 -flagj35=4224 -flagk35=65536 -flagl35=0 -flagm35=0 -tflag35=0 -dflag35=0 -posx35=50 -posy35=50 -sizx35=1200 -sizy35=900 -maxfps35=0 -initts35=0 -winver35=0 -maxres35=0 -swapeffect35=0 -maxddinterface35=7 -slowratio35=2 -scanline35=0 -initresw35=800 -initresh35=600 -title36=Spearhead -path36=D:\Games\Spearhead\Spearhead.exe -startfolder36= -launchpath36= -module36= -opengllib36= -notes36=Beware: the game needs to be run from a DxWnd with administrator capablities \nfor ALL users on Win10. -registry36=ŽsK -ver36=0 -monitorid36=-1 -coord36=0 -flag36=744488994 -flagg36=1216348288 -flagh36=8212 -flagi36=138412036 -flagj36=4224 -flagk36=3211264 -flagl36=32784 -flagm36=0 -tflag36=-2147477245 -dflag36=0 -posx36=50 -posy36=50 -sizx36=800 -sizy36=600 -maxfps36=0 -initts36=0 -winver36=0 -maxres36=0 -swapeffect36=0 -maxddinterface36=7 -slowratio36=2 -scanline36=0 -initresw36=640 -initresh36=480 -[window] -posx=1505 -posy=227 -sizx=320 -sizy=676 -exepath=D:\Games\Yatagarasu Ver. 4.2\ -debug=1 -exportpath=D:\DxWnd.develop\v2_04_11_beta\build\exports\ diff --git a/build/dxwnd.log b/build/dxwnd.log deleted file mode 100644 index 3c2a5ec..0000000 --- a/build/dxwnd.log +++ /dev/null @@ -1,14 +0,0 @@ -OnRun idx=0 prog="F:\Games\ManTT\MANXTT.EXE" unhooked=0 -setwindowshook mode -OnRun idx=31 prog="D:\Games\International Football 2000\MSIF2000.exe" unhooked=0 -setwindowshook mode -OnRun idx=31 prog="D:\Games\International Football 2000\MSIF2000.exe" unhooked=0 -setwindowshook mode -OnRun idx=34 prog="D:\Games\The Settlers 3 - Ultimate Collection\S3.EXE" unhooked=0 -setwindowshook mode -OnRun idx=34 prog="D:\Games\The Settlers 3 - Ultimate Collection\S3.EXE" unhooked=0 -setwindowshook mode -OnRun idx=34 prog="D:\Games\The Settlers 3 - Ultimate Collection\S3.EXE" unhooked=1 -setwindowshook mode -OnRun idx=35 prog="F:\Games\Dungeon Odyssey Demo\DungOdy.exe" unhooked=0 -setwindowshook mode diff --git a/build/exports/Diablo.dxw b/build/exports/Diablo.dxw index cc2421a..c0e324b 100644 --- a/build/exports/Diablo.dxw +++ b/build/exports/Diablo.dxw @@ -7,7 +7,7 @@ ver0=1 coord0=0 flag0=138428450 flagg0=1241514000 -flagh0=20 +flagh0=8212 flagi0=4194304 tflag0=0 initx0=0 @@ -33,3 +33,10 @@ flagl0=0 flagm0=0 swapeffect0=0 maxddinterface0=7 +startfolder0= +monitorid0=0 +dflag0=0 +slowratio0=1 +scanline0=1 +initresw0=0 +initresh0=0 diff --git a/build/exports/Starsiege - Tribes.dxw b/build/exports/Starsiege - Tribes.dxw new file mode 100644 index 0000000..4d4181f --- /dev/null +++ b/build/exports/Starsiege - Tribes.dxw @@ -0,0 +1,36 @@ +[target] +title0=Starsiege - Tribes +path0=D:\Games\Starsiege - Tribes\Tribes.exe +startfolder0= +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +monitorid0=-1 +coord0=0 +flag0=681574442 +flagg0=1209403392 +flagh0=8212 +flagi0=138412036 +flagj0=-2147479424 +flagk0=33619968 +flagl0=67141648 +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/proxy/wing32.dll b/build/proxy/wing32.dll new file mode 100644 index 0000000..fe34a52 --- /dev/null +++ b/build/proxy/wing32.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:036a87972d467d27ac66fbb0b52bccfb1f41d9a6e0ac949a94e013520c086e14 +size 55808 diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 84c3f58..f1c50c7 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -1526,4 +1526,11 @@ GUI: add: "Support offscreen 3D" flag (OFFSCREENZBUFFER) DLL: fix: recursion bug in CreateWindowExA hooker -add: OFFSCREENZBUFFER flag \ No newline at end of file +add: OFFSCREENZBUFFER flag + +v2.04.13 +fix: moved USER32/InvalidateRect hooker to always activate it and further reduce desktop flickering +fix: fixed virtual registry tags that introduced extra characters in key string expansion +add: hooked SelectClipRgn - preliminary to attempt fixing "Sid Meier's Alpha Centauri" +fix: fixed unsupported call to SetWindowsHook(WH_CBT, NULL). Fixes "Starsiege" deaf mouse control. +fix: completed and rebuilt proxy dlls to be aligned with current DxWnd structure \ No newline at end of file diff --git a/dll/advapi.cpp b/dll/advapi.cpp index fe1a392..f8ba17f 100644 --- a/dll/advapi.cpp +++ b/dll/advapi.cpp @@ -303,6 +303,7 @@ static DWORD GetKeyValue( case '{':{ pData++; // skip '{' pData += ReplaceVar(pData, &lpb, lpcbData); + continue; // v2.04.13 fix } break; default: diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index 6a58d27..e2dc42a 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -13,7 +13,6 @@ #include "dxhelper.h" #include "syslibs.h" -#define EMULATEZBUFFERATTACH FALSE #define HANDLEFLIPPABLE #ifdef CHECKMETHODPOINTERS @@ -4922,6 +4921,7 @@ static HRESULT WINAPI extCreateClipper(CreateClipper_Type pCreateClipper, LPDIRE OutTraceE("CreateClipper: ERROR res=%x(%s)\n", lpdd, res, ExplainDDError(res)); return res; } + OutTraceDDRAW("CreateClipper: OK lpddclipper=%x\n", *lplpDDClipper); HookDDClipper(lplpDDClipper); // there is a single Clipper intrface! return res; } @@ -5318,6 +5318,7 @@ HRESULT WINAPI extDirectDrawCreateClipper(DWORD dwFlags, LPDIRECTDRAWCLIPPER *lp OutTraceE("DirectDrawCreateClipper: ERROR res=%x(%s)\n", res, ExplainDDError(res)); return res; } + OutTraceDW("DirectDrawCreateClipper: OK lpclipper=%x\n", *lplpDDClipper); HookDDClipper(lplpDDClipper); return res; } diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index e97c271..54eb584 100644 --- a/dll/dxwnd.cpp +++ b/dll/dxwnd.cpp @@ -27,7 +27,7 @@ along with this program. If not, see . #include "TlHelp32.h" -#define VERSION "2.04.12" +#define VERSION "2.04.13" #define DDTHREADLOCK 1 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index a58ea1464f4e01fb26143e6aed89e530d2de2280..351c4ee0be7406e511d1b32223496db345880345 100644 GIT binary patch delta 43810 zcmeIb33L?I-tJx1-RVwuhY%oy7(!?gW+H@9K!z{~2+HJy6EZ4?qcVtq40aeqoG=hz zBOrnT&WeHr5jD;pM{q>+ARwaxg7Z;<`#jZ8!#?MJ@BQBQ`|i5$T6di-mH$(}`d95; zd#>Hp?Xxd8FWJ;`-SvU=V`DZ}Dsq>|&*h3jXP*54Z3>@)eZ+{{W>0l3)U>$qjRv#XUA1p>T8CDH&k zdIZcf*QEAb|8}^@_0{*S|2^`yze9@S!o`Q9XJJdh_Wt9os(yd+=qYlhDGOWGf8jH5 z!d<@gC)0cQ%DU$k1@m!yOG??4D(45?H0X%g{c^Yt5)p}R2|G^Z5EyP_K-F67bF1!f z-InWrtv0|HIE7Hw|Luk;)o^s$`dhMkhl0*Z#G7&E{0ba;XBqxDju|&GQhR+~-Wp%f zJs11F(_ZU;id}q-8$Gi>p`_o1%*ORUz27ewbeH3r)vcqSY#0?j$=Dgnn|E|S?C#!W z?rk4vZMOdCD_XoY+|^X{3dX{(G8$~77wrzTGshlF$uxZ*z@KlIq-2?6dn0wt)*@d< z*_>`UZcQ`h8-HsvWL+rJ#J&v%Oy3`Td1gZWU<5P0alEA@78M$=K_!YWfcgRCS9@mBWEr z8|Szs!75DNIpHDr>o~j}$IQRmy`^k#c80n8#z<!Fp^`6_xJ;5LHj_lDLxp9xyDqv!#~_?nCl;67A|xP&AO%0 zHfG&iIE^Uq)iqt;jkYjbk4Cag$zFe;tpAXVhp$@fUhkXimJjy%asnppm+&Rdv7r=UZ)P0zdd#m>~y(sisq7 zFP_UQDXzB}?;&TI8CU;S|ZrQHPjI|lQbW=1e&;mJJr*1Nb`|l2AyU0Oi zdEp}0i!0Op)V$IzaIR^(&)>?_y+7Q;?Aq(kGIi?)i&JNy0kK|~)R?bBz*D_qzPbrD zHs*^}B3lcuhv_+gM$7W8F<+5uUcK3$=RRnL7WmFF8Sh53ywthXn3k4qb5m!QTitl6 zx!sJbAM9p|M?`Ynn~eK|&nw$pv+@LP&b#4Q$55_&bNQ(PU!~Nlj4nlq3c*fFFV8FV z?Q|0<>i=Od(|wPH)Y{}731phBf8r{$rw7}b!GHP(l^v^=VQLMHq?ujUMp8|26`ajZ) z|HhA#S!nB?59Kb}6(~9#MQDsO)*0#CXu7-`ZD}$p`@HJ~kq@Y4SGDl%o#UP=@AACw z<+d5uIoCT)o#F5wi)uODYXEH%ZEIdC3hXNLOyxj7Q*nns(>U1%kAV|VP1J5Qp=2(?RGbNzYZ0djD3-8(|EREk_xC7;}^&U4?meD!glrD4wL`CMSG>uQbQK&Zn}kaM9jC3sclCkZmH}khFTt<^hSmC1&QI74E~@kSM*i`~6vNw*#7P`>Pn;YuBm>2Wvl~=P;TFuBd{yQq#uc7 zyIoE5+PSo~NNMpAuyVBNW>oU_##i2;9?+UB!jD82Pd6j70 zIf0<*^j$E`^v?{ZCaP1>J6iRmUjAEnhWoSC)|1)de-@ST<=Vl{rsM!GxIeIqbG&l4 zk^$y}y=Z&M_FHJC>GoFSOuK zeJVy`7+uD03un7AjxJtTl4};86>gKLfoQl@&BA3V9A4U* z@k>)CmzCU&3|gMDtCGpj4Cixb&gN{wz1_@j%gi`0lyCa)L=A~7O(`<{bEEkt<33zv z<#99?%vZctm|j+~IOd*XUdcvDsmt>F_Bm|UNmsIR3t;apaSOgG)k$c^?f z#d)b&?qc(DL2#sdsp+!Af1Y`wAehB^hw0Gi>1BU1w8kM!68ii{&|{9RkGe5rC%Q;) z#0i)#d;HDJu5Ti_X6sbAKUNRNi`qpC-5adAN8dJ)tdw)nT!)mOY7j)G0mMNMR z$mhhXkT=%rOh)+DIHtHkaD*9uEZO^guq>SGYv!8%`-7uWMzE%tcr=81Rv6sX&*XoN zO0l&TE?Jry%5t}v8PkK;nNOCc^frAzM50QjGxOSqIxU_ajG5w|p^2s>8bXD*HMr|K zv$1EWxBGQszKEV62h&Mp)prSi`sdA~F&Z=p_BO}9h!puoA{_^j+dmx$4rZQVZjDA@ zjvYWOfyTl1X6JEKBxblNB`Y2o8Sm@uVg?@V#lE0#qH(>qG@9eSU|#$_dYMT-gwtXt z`~lN`RZ2s%^*fw~k*6*D6?AH<*;UQaZ-b~*>f<774+r~(COS7cw_sW{|J+bL_cFHq zGmi+dM3wPwV&}3H%+SsaRb_vU(p;O8ZjR*!BVG+MN85+mB$DM-&(ijxK%zQ$=awG9 zKv6{YNqr2%&~TXG_$ii(mQ8*unp&&ne0%q-PwuZ z71N{$hFXjPH<>%1MK7_SN9e|yCZjtBZH!$-rs#T%c<&5C11KJWNDBjGVO`@m5SWzDxXfO+t6*K^E z?w@W-(nERfb|xGnVU0jl^VFY9vC{Z-v*tdZ^3&c+8SB=EOKVvFX3WS_0iNs zJ1j5V7#izV`Kwh*&!c3poiJI35oQ^5^tW58_PMp z8#E<`ZEbUCSC;AfLb$!zwI>oW>$Zh55>Icw>~Qhgk3wmt>+Vo}HzhID;~^Qdm~+xG z$;B9~9)>eXUx{P3HuGIzj?Tu-4l^G%<`j5<&zqt8u5wMMj`-Wr%vg$!4s(FKL<>!h znP%tLp`cm3&~2NTMq;9uneqv4ZBC*>?c5pal&JXLtYqx3(KM6(O(<>gU7@*V;~wPn znTb$Z?MysjjaiygGvk-=%^ic@@`!Vg3n6%lUXyaUFT%&{Ha>5?g*3HeGd!3%&g34A(1m)z z+sEkdHV$?)6?M@^@kYuY45bdvGMCATc56?h|7+w7Mq!(bQIE-HjM8$8q#;XT}y`)-ks_dadMB zOXk{_QZF^J>S4_7Pd~_{H;ZJVj8My(nRU~H^|`)b#%6|tCU^o3Ikpea{VqN$TxdpQ!`W;9XJ!xcreORVk{#Cc2?x?mhum=8 z#4`<_DNX6xlq~m;L~k^tCT2NaMH~B7ppAb8DtG*$l*`P;%fopa^TKmOX!YdPy$6r> z135;vGbP(`8<-yqF~geqt}spiM9crEaj=E=e6{Wi)C`Oz-fBbY#*^V0!_2Fd(G zu(Ihz)#-nVDv{y;i!M?QFm2qjHr0BY_@B|-$Z&6^puaQz3e#n5q-UaK<_?RDG_e=L z6U>?}(LQM2Gwu&}E-x7#De;*HvD}bc)XYfv6PLT{^kb#>TwG`ZC&Jg7)x1AGiznCQ zICXO8CVEE<9VqhJcy6y~=1VUx9EG)Z({+(s)$NA~LASDsoNSYRUuw{lPK@v&ytiQ^ zaxY1ALPe`m5Yu&$BIch~1wME@oQIgu_a+`wOJ2apd^LNL)`k@+04E*p9Ioza z%@+@{+2(`EkwNV66Awl28h2Kxi@9|`AZO#0$a$$;7i8-zzhEY&58ldP`Jh>mN05lg zkq!oZc)-Nw`m3H&qp5`@@I2XagnK8vYBf zg%P+JHZFW8{mZv}66s#a_?BY=vuU~zN)p2#(9S-njEJ$Np|bYH7!T-ozY@mB3d zl~oiBasB3*Zz6pX>sGTkVZholm%qG+#R)7z%x7+m7W)3`J-rMv$BsnO7C+*@-W`St zTW|642zrWRk&J2>teg9zHBwnixS9Sl+@dOb@oCQ1a$Bg@1 z>OJLmca2Vn8ehNY6=p%-=!nIAqYDxb3V2k)ngy5AOF2^YaYvM&>KDao&9eoVZnZbt zIz<0sRVT)2wst@^pQ&POgXYE#QB86&5T%-1cll!`wiJHe;|QMgQMW(wXKq{`t#CU# zP9D>VP#+ubs~B4YYz)n@kukJL81Fb4263m0Ikh5M$HZ1dFZKOVJjWgCcH+bz_qjCs&)qNvtE`ke z5%Hz$)q5ID>@!XGd_3fN6E3g!8E$=aMt@&jJWX5?8shF|RcW?(b#$f4UK72*99|t= zf=7=kYob%l)?uNT_u*2O{j62wtM6v8@i(JGUZTcTCK!-dX5IcyG%*YGK0SFa63A&c zJDF9u-%%NfoFlpkx(ngGuGvdKeQnI~RPnGkOTKksux*t5`$@;+~ zjl_6vUHP>TW9@1w)=rEc>7EPC+SWk~_wID`IdSjvb z>cHb%-DQ9ufOpj34y>A(o1F1DHmZYMAc{AY_Tvg{~o1 zSL__HdSWfaSaVtiP^t`F1erly<=9^=8*G5sC1RI=T`D$GtSi{HViU!HoJnF+#dyQh z#FhlcB<_Tc_X#ew9G8i$6r!FmtO5w#Mc2Q=_L+;>^f; zVYGSJ`mj9S7+ZU2d;;Kf5F_sn-5>URv0~_SXolfpthOV>ZWJ32HU@ee>{yG93nSMF z$6N3wIZhC}3CC|1n`p5~&z zY?LF}d(h~aob6)Ft=-VAVE2ge;?tlRei!3S{Q-Ru?4K4pA$Bs!SnEy+I+zqPn|ZPe z&6BxYlVpBqh7>V&070>Ai=8FbNbE8AH5O|p_7qrqXs^}}5qt)4s2sl(s}1&**iT}t z7e9+l!x8`!_yo4;Tn<2(Ax1q@Y?c^vwG^7!KR=52d2$K1*>YSa$6LUbi@hv19jrp^ z4KcnS@*6ZSd{T_p{jSEmB3+Q*MJR&ZVSs51}27#D-CU95Z7ApIysI?GBaRdq*|Q*e+6Q= zL5Dc1jS-tHwgl`JXv|ogDHfY5HqBzw#cs7&T&%=mGtv^Z#F-_?8<-2tmUO4Z9)RXe zt`uWNz6;$6_IP)ffVk5z7h&2+s z4XiQrDA*-c#+`6mg6O2ms;#Hu|XEQ9Gc-uG1iY!(40Yy7GndtN`7~UUBvo#Cw5r5?m7(} z=WelkEH+Q_z&9c zj?;dGX84B~`@rAD{FsgN@~g4&!HA)`81J~Xjv^y`(t=OP@o9^#6MM#D z&q6b75TkxhtXzzxyB)d?><%%`vUWpvh20Yuyb(K_pc!J76ItC2x(+lu(0q#(h}E@N zJ+b;0YXIFG=QgxhBWQ*uV&25A19q6gPJ&F~dC*K@4>8U*3ZWThi1mP;3EdlZmc?d^ z-Da^lVz*mtZe=uC&XMl0;GNJ6cZ*TqBQ{@*<-Qb}cehMzH1q=by(GpPcp3U^*b0li zBKB%!ls_*<$JYd3w;bOPd(&cXK{NbK>;~v}#CD3YHGK`uo7-iv-C}!^j9tbzf_sw? zY@gVEiyeSw_*RSwKL(u-`=i)k=MYKip$%Y)|iYG-K3AdCstu^jWo3M^Jvte(Z{Lo+lK zqi!VDSjtf$Ecb81_JjPYiS+}^gl4%{ zKf~fqmSBxD(8(4%%VIfVH7%A4&5$R?KA^T(6EV(B3Zc8eo^7$Fo*(kRNDvj?=?2XK zw1-$<=;odyvQdn+|7z&Qu!Ajjjo1*24HX+^vEgDP$XNco;7IHw0;?4}R%Rpvdw&KF zu4FvMWHF4zMpl4r95#lP*vOh-TZN5*Phw=Xv8~6(@G>@+^{**J1vZ9Hu+fp3_9-@o zAFz=P!}cRKhBN@O>e#ALAWRY)3XN9=y>PEsCiWJJtrw%i2Cx1>JZCw+Aji)w$L(S} zEWfYC_)JI1#DtiA2+4K4deDu3ic6WE4@(cN-<7}uM!(&x-5=V zE1s!CtU$A%d2~Mha3vGNfR45V-Ni!)d&C++f8#SNE8}J8CW$IUCZ#KYk*yox@-8Hxrz!mO%{*KEBHQMo={p8HmGuWPz)adT@mi6l;? zWku{l0i(B!;eN65bvefu+=# z_a4av*g^laclkf<-RNCu1g<>lUwALX@)zei@CkA6P*_~TLgW( zn6dnpK=;D2`z*FpY?;NDi`}1Oh~HTu_&^eZt%PQHP>dDmY3La2Gh$nyAClj@Vz+_4 z2R#z@eT#h{_MyeLLdWU2&4M4v@neg90?qK57<23^Xy)23G1k))&@8Z1V)LOthh`|O zn#gI+6V8TaZZ)my;0+{*!De^Mlxm%MthtW0u>2EemT#@v{`yz9R@ut?| zsRqAE6}a(nqZDz0SC$7O+%YV4E|4-NQ-krp&1-((v3UStR>Q3zS_Cy0? z+M?KMVPl7yhmDLgpnBLim9CF1$%>%at27tmEwvD1mzVV80yFXk*vKkj>x_-z5^TwHFZBpMED>V@$6!M~Ipf6`$4z1rJ%;<|1#iK|FbiAq zg0nq>hYc}auvBcJ7%#}S&#(j=&!r!GPuBPcuqCgzQf!qNjI$Q;JIwn>u+fosycruu z>zA;Rv8B9%tqZodu#qw1x3TrZ_5n7ss@PUzW7vj`EQXDPIE(KyY-CK}0c>RPgZM+p z3m(Eo_${`i;~&s9vHdAVzY}67#bUHLfup()mgh1AA$W7C7UNel$tovUZ~8fSpUHzY zV6q=!d7&TiDPi|(hE@IuxE3f!!wqqI^12GJ=+%AE6%No*Ea zXK3DF@fj9(x(IeX1D$SS-7R*WSPzT!gl0Hjj0>i{#V!(K&J2R?2z#X%yV{FAKh%l2 zf?5)1U>}QpO~w=N# zebrYp&i->M5Sz$!SjNaOLvAxIcDvXe7TX}U$zm^wRaoqZ*!LFu$;D{OwESYh-{ts+ z#r&8`(l4TC5hl87+0dcY;(T`EktR9<>EKOpkMUgxT*M3A#LgFE7uydy54OJ;uX?H2 zWnw(}3TVbL#A3H3SlpQ^corPSDz@pCar9Q0OsFcL(~!>&m^8I1*+Vb2tvjF#fZ05Ijj)&d*fHESj7y?3^Kb|9A9 z8l)Io7i?Xzb;H&j+j-bb=52wofnij0ZwoYZ@fGWSsL~HAO-wuA?Z}6HNQ_BZ4b60} z5rcFdhh|1TX|auBn=JOa*qdT8ob#46U;FTy6qxg#96zueKa~DhmNN>zKf)=`XJSm? z=VD)o0XbhmGl4tB3ZRqE#NSwc@%?fuBNWBu8_(6+3F7~8Y9UOm3dV{~b!k0G74Z2H_ZS zwB7`$MG(B#Wks&&i+V8 zK9?}-?`A)@arMQ zNG^wN4SR(cJD@AYt`g(5uYvYHUcFv0hW&BU_KR1O!Fb10bc`pDfo8Z}jQTG5-DA!= z9IY8Os9QiYdszgR2s!eSblfP?`|@dKOdN?`R?bpKqZV_hB)PWk;lclx5s0p+ww4Se72|IRFh8CnN^x{U{Z$SH)tv z(0(r5bN9i=7JFFi5wV+a{88v3EZ)Z~_&7AflVWqBpAy?BHUg|1noA{{ zEcU$EW{bT5&G4ca*Kl4Edk5CL|JMND75rF^jQA7i;jo`t>@%^?Ew)|k3ybX#`_f`x zK{M{|D@p4 zfT!dbLG@#qPsSF79srwWu}Wg;7OO0lAvOi)RDoUyTh(IKpc$&eo+__*Yj~9#|B|C4 z0$+b%yc4h;7YkxFk&IgynyVWTvHPGy&-x#7#hfrEuAkIAmlqO z1<%J`D>)`#47ducxA8v}YET}jA8O++{uaMk;eCaWzm4TT>+v*vNg`C;OlyO0E-k(| zno;@xrBz{eu9n92i22YL!7i{^88pKpvDwgz#qJkl8(Sg9?^ZB>I5yzLsJOSZpL{dw zK|uca7en&JDAoYJ7{##OI+-sz)dSVC}^&5@QXxSnPVSx?nem&9vAovHQd@XLr^>U)>mDt>7?dzTCv{j95qLXT@F+ zW43P*<9kZXLEc^RU8U_}iB~!gfY>DN!0-7`X2gI29E3uKS!p3tM)?(uj{0KHO=I~~0Y!@#ve!?o)UcuG{ z+gsSkc)_=^^~3f7HZqR=tFbX`!$uav_6ar?-)Gp!nEeN^ksZWF#_JuzM)oZ>GQNQ5 z{DF;K!JpWYjwi%Uip6MgkUhQ+mVONXi4T1|zyIJfpQhfy|JsK>=Q9oepFZ^QBK!Ax zZKCv85C1P%uSE-D#ZIi({x>Y5#?gzjF?g$}s$l;o7g6K(D(Zj3B5I-s*DC6N!y+om zpV^;SMNQ=Y|ItNMzCz6eusM~opGWxrw}_g!9*aJb+I%kes~Q5KsZHc5>A!ep^q z#F)ToVkKfg&T?qZC{|ePp}620K_=!AXg*FpYB2*{0QQ&|?{2Z!;}*LYn&C+?CT1RV z5cVmHJxhQPUnj^X`8S}Mg>Q;+F7me6yB2$2>;sE!6Z=Svs}3KFeIj-)*r#HjC0N{> z?td=0U5?C!ub^AN?y=ZD=#F4V#CUfUebbPLo>w0cyl#UQT`11 zg3MM2nu}5eVvOVuT%4hv#Tr60;zkzhEOws7dW!Y3SZ}cl1_*MYrJrDuG2)BFE|DK| zW{}ubV)VO7?B-OH_PM_mZi`8qX`OYOJnpd0x?AiXie08nl)s*82!GK-`_32-OyaC+JoOp-R^G@|5iSS<-_xS5c^4t zS@bJ36Y`rFD@8Dz_=q_K%MOBVH&rYw2IN$N=8aXhSXP1!bh0g2TaIT7Ez94p_~86l7LUfoAwsjJgg!Cgt*JJ}eW+#B_$P16ypdf8d;dW&FVn#xczD zy9Js>Tz!flvwxc4bhGUnyn=AQ<^KdUo6S=eTPOC6#WsjNC&q>Ojbi0utp1zCo)-gh zUWH}`y`Er+4)SfmcjU+nS^~}Rff)5R`F$+Lms$9$B3#+tDaMGu7TY7n1n!XDE6et~ zKZ5v~(?nQ86w8xLz6$&GRkrsEywG{VsN}cdXnXL zi~OdFF=5GHj^QuFu$UP5BQT73ju<1pUAi=?@~7iMIWE>gmhmId%+^Q6SjLZuJub$w zeMdBk-p3MXrujZG-p5k0WnxU=3hDK-Jof|WX0RVxY%ess$bHElaNz~_ z3m&i>PeSt}r&D6|<3~kgE-VwxNK&MeKh{DP13MSCj*ju%e6a$tnru0IqnmTOx`I5p z12jL&>L|vOJBf7`V+-VuwD8Bs-Yzy*jI&q%oJkONwHV{L0h$eMP4Wj^c){lZS;m{? z$P2z8wndD7A3~oEyH$*S+r&N+qu&?Mte872zc0nU662)8`5HTH+Pejr!oARJ;`_u< z{0?6e<(;I$GG`buU&X`h&54T9ubTX-TYg#c%NB!iYU5A6Q4ldfUa$@!Y`z$b_uC@8 zlVZ!S3p80*F{IOJLT7~Tmfv||gUy9*Fwxqt1LDWUH_MG4^YDk!-YdqW@C^Vme)^xR z=PRMv8?CbZ9u#}X^5X~c%s>7*NiwfC@>74p@eKfmonqAdz@7!XFZroI>-0fDen@;sjxbIdW&pfkCD>$Q(#0x^ z(Ju#@H&WB`%N467#>5muvn%T<#@gmwjUA@u8o`FpeV~~OL&R*I{Dhy09)sf{*s<~> z>kZ8?*cdaeC7>@d~03o_!l(xnzFgKmOj3&j}mBC+I8W$@gkU}wWFv;3Be-7iMJ=g3(8 z8!g9jIc~BX--qr9zYi?G55=}xexF0L5^lHrz7X4C`R#^o3BNtCr(YHQMsTm?_z!4i z*Y9Gy<3GgywEU{z#Q}~6Rbi8@gul5##^2i@;~n#7GdLXOp7D!2wFHyDpFziZV9dh$ zXB?ddVhzRUcR4f@c!lM6rPx)L-x#s6mftv!A^*o)j{MqtGhA?`<+w^L`So}9=&yjW z=YP%edmWlR|C?g;<5%73$FH|1bB5n=r=Rz&c9uWyWCvhv*e@+deyyGC?_!YNSKL`y z_lPl)Z=gBy?-gS)?GxKChSG9|@(;p6F^&-N@36z>eN2#v`3H18*x$vxau@qk42K;* z<{3;(3M}uA?LCuo4}_XxydJ+V+77m#7_Z0gj)KL#FODWF$c=!kG-E8sv0~%I7|A`* z>?K!2HvDTI!zwgO`hTru}-U+|&NyhJbCKJf-X_8%H z`CTe@S%T$zmF5cUum+EoBcyW!G|O&`sZ%9bEq<#Gu?X*kt^<3Q7;pS;v3o2(e(jU3 znP2%#rgOR2{g&Tj(7fK`mfsU%PbOI0Yo(h7U$7jvh`lHV<4olrgqOvbXuh<>zRHD7 zCdMb`7h~Pdg6065{7NX#?Uadn$|CG+om>n})uuO!*dWLYCSRuJOVf1Zo$y6#9(zTMIkOd-b$go_>&!=D$@iz} zw-1byt^JnYflTyMga-wg3w)`Xk?_4|Moh-{oyn5#J3~5!IKX<`6gHW_w$PjuwG(4j zcZO!4)>VuN>;_!`dtP|Qb6$O>ror4LwsE5%k>ew(0M z!tZ&@Z?o77mfr`}kqLDC&~n@=$8BO9QeJ{)_*jg3J2W$4hZtS>ze{E&)PqfCU_-G& zu@*SqOsps?e#WtdU|Tt|*xQSpYq5@Eoh{Z?tcS(U7waR&`rTKopICLo@AMZOkc40Z z#V!(K(OoQdi5L@j6?A>rtHqcLL&Sz!Y=qcIiw%Ni{LXcPsA|qrT%z$Qdsco?$vF2jT&I0L{mR}e7b+!CjNq3h;k;I+zu*1~! z6l59q66<}&(di4#4zr)-*I#Ua8uz7K$+k^PxH8*enL=ya>(gf7$YT1DZMgJ{ilO735RF&*Vt9UF-`nM)IN94ly8S z53~<-a&u^=x{X*2x}9{f z<<}URV@{H>*s}^57V)42i#wMKGG$ju-z3YE?}lb2yGM*C&l9^>j0v0s&G|>E z7{H9}GqKMtzx~iG_XC#SL9s)Y-*3A7GYKyVd&Xc}SmPOnZnqia}?jK(k#SY7EtmQZfnh!dYEjB}Jw#Dud zn`g0w&@A^w7F!O@uu6=(YjV;5wt`qI$TEHyn(PrV_6w`U9us3OyavspdtHp@z9IIe z7|;Ei^iElx`y+G#>`%G4|72GGEclBYdGQm{VH7m|$Rg5Nvb@#Rih`zMgK4@O|xERm* z1={=oeDWJTfc;6i}*^6+4^^}otEGCV#h4M<6=LE@j2pWXog&rBX5o$7C3dV z!&z&-AR{Rdt1HIDG!koU`85$Mv{)@@hNfaX_X22ExC<@6zGQL0eu8uyLI^uljENa0 zHe8H%axFB&Jz_j}0W@bwWnw&cq1YnJZ>iWa*wc%(%LVV3BTt?O&G3L2>%wa280^zx zjCcn${yATY@!YS({w_wpW!W*3W@1HR zZ0{|ld&r`Lb*_SD7#2&MOFahK`(FPzK}I|onw9ewF-9^)Y?>GoW1!jImx$5tKCz`@ zET%i48J5S+B>H}6hIKKpI0P^F4t7`x--S)y-Fss1i{Y^IHMAdgH!S@a$sTC-n0sN9 z=k9|(7wmu-`;Xh9nL`J~Af5P8?C^reVR?yA5hS#_~2i{(IH0{@y8s}0Qu z(iRqL1I_Cei$OZwpb;%^WBV|l&_%`$$=@_QSaWB>bNkj_?U-rPrG%$Z%#?5g9tEx1>3 zpBN{S-%I~2%R3Gr|7yafz`C^9f?^>t`V~NPqEgrLt0z`J!4luH>WUqvs*fDm1V>8W zD9huQLF1p3WQ^oK0QxVL9}}}oY`GW{`xG?m!qZ~B-h_OW{}#*fW9h$JY^U@=Sw?&a z8kypJC&q{miygK6PC(bgv6GhHDKRHrkjO%&@FPHu`K}mK7=We?it%_Dn&Aqu81&W9 zINiBM4AL0^?S~yHRt5T6Xy(>9G4Iu!$=G3KxJ8f=P8FLb#=9F2&6B5FekIUc;+-YN z<~bCaVU8GcYbi8a$ucosZ+QXQKjHm?kj^S-KkP$dOw8lZd=_}pV(Xw;)1MXN-ED-% z;)YXh`8@|61luGA>AVE(hpi|;`LhNyyeasW92xPa(D>(kCdTgbRRV-B#Hhc5_QUQJ z<8$K{XcozCF&6Pbv2Vq^^}i#6$CD6_KS7@j`-d2$<07B^uzpx3nh7j`W_R1jVufN& zEp`&uVQ4N!-3r>9|FyAT2WUppNsN(P2+h&%O3QDs{DxS5*Fm#>TyOb}k>5DWZxS?H z&Xl?+|Ky!a6P#{2mWbUZhI5>`&`jW+mfsR+Ch!4^trC0CVr#^n7UTHiJck`#u-tOo z49z>Ku-FD@mglQtkj@*>Johb&y(9LX7>DR>&*i2X{&@~7i(g8z^sd$Hfe{t!z6`%~J+4oxe$U)wy-Q{ zy4Db5XBPKihoP1rbscD)Twt+AVofa8UaW%{6VnTtk@Oa0ByFJ?E)b*c4~;nD&Okw) zJO-NY3XT(FwoVe8Z24UT9mKI)#F&HApn2|ei?tW;_?^cNMf)9wT6srxkTza)E&s{6OhsAjABVvz=@!U1iPs)0q z|2~Bs{BxcW4KzMv9pa%4*vt1L#p`*dy8Bx7ZA@-CQBPo~OVzC#cUzO$cUV~<%ctecW zdsFOfSa1HvGX6VuSSDY~k(K5sG&(Bhdofioj!rLVMtr{I*ITTQG!bw9u;FTt%qhe@S4Tml>Shb=Wc^$Vm`L~;$LBhWxQLEm20o`Az2{jJ7}JK zM2t<$hiMP%K!z+?73tct%&i!7J=lCP=2k(1;V1e8!JLNBjHIy`@2(j%v%jSnv#^bH zds!f-12oU=B*uQBr*t1#UatoZ z$~6<3VS&XSg62T9T8#a|!*T6ADH{V^C%xWc8>Gu+nXQ|kSzkAcFt``$YxTlJ&g8(dPB7GhreAG~H4*EW zV2S+iD%jm}yjbi~i(M%;#$w~erdsS)vD+**S8S2R?khz6OyOz^J}Sp2E%uDqMvHA0 zd)Z>IiM?mBtzw^B>`SrTaSQGf{LW(Ei~T6Zto{wUDeONizm&5RHxhzn_VXbm6`Fow zG1iZWSX9i*|8(py7cvAH$)Ad(su++{U4FyF_@TpfVq-18DPqekzx%}=viu%CTl2pc zEclKbw~H|`Z$P(z{lfD5N`8AR_OsZpVzqJ3Dd`BZBAGK)q1owGYl{0PWY%N~R+l3q zt^yr|%@SiXI*wXTmT&phhmL@?5=)0Z51J!j4>88kQ>>R5-#>KvV25}2S3yW;95jpM zCNcJU6QrkDezWB_$MU;fy3F!hA-|Pk?5bBmd*lCF!5H8=>5a1N&7Owla!iszI?sbK zfiK99z1bG&*JbJVq5QUqu}D6W{<5j&e{|d@#{)XZ6dsg5E=#}P<@cw>!Wi(Gm~_}= z=Tk#0$71aXlX_D<*Fw0L>c-lCk|0h6U3s$0}mgELKD8EHO4a{^mI^UP~6zi9z#5 z@-0?htf9r?%>`Qua)#1Mx~=8dUVa_KSWKOvS-ZQ5F(s(<{N^ z&iR61PG4xIy1&J)5gRJT3Cgw7f0f0Y)VV==f-G}&Dm1ftx>!BviP9yWMgH?nZo>}y z^gDF04)jdvJ7w9nmqWLPytctI)io z*To>6ccFQ~_btD7pxc9O6{`!qSNeeEHyss{;Wsg_vO;qWU|q0&>FI-QI6Uv6tjbzz;Io;-U8a3ZoKh(kfAH`OXfdBvi delta 15744 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\n", dwThreadId); } + // v2.04.13: "Starsiege" mouse control fix + if((idHook == WH_CBT) && (dwThreadId == NULL)) { + dwThreadId = GetCurrentThreadId(); + OutTraceDW("SetWindowsHookEx: fixing WH_CBT thread=0->%x\n", dwThreadId); + } + + // "Starsiege" ..... + //if((idHook == WH_MOUSE_LL) && (dwThreadId == NULL)) { + // dwThreadId = GetCurrentThreadId(); + // OutTraceDW("SetWindowsHookEx: fixing WH_MOUSE_LL thread=0->%x\n", dwThreadId); + //} + //if((idHook == WH_KEYBOARD_LL) && (dwThreadId == NULL)) { + // dwThreadId = GetCurrentThreadId(); + // OutTraceDW("SetWindowsHookEx: fixing WH_KEYBOARD_LL thread=0->%x\n", dwThreadId); + //} + // v2.03.54: disable the disable Alt-Tab fix if((dxw.dwFlags7 & DISABLEDISABLEALTTAB) && (idHook == WH_KEYBOARD_LL)) { OutTraceDW("SetWindowsHookEx: DISABLEDISABLEALTTAB bypass active\n"); diff --git a/proxy/d3d8.suo b/proxy/d3d8.suo index ef442278c59cc6742959ab2ca9d4520e8775bb6c..5f274d88c21f28c55fe8c5ea3008602c325aabac 100644 GIT binary patch delta 738 zcmZuvL2DCH5T4z>ZFiHGn55FAh?a=hf(R{o5NvF;DMDT7w&|gIY11}JplwQAr4nZhl!y{QTtZJUD3Iee<>Q>+|I(NuFg>C{SnlSUWlfrqWZJzZPn0qe>s=leJ`RZlmj zZoS4=Fu$YX1-MNmdW;dw(Kbf0MT>}=*jK5BOpPkELA%I4#IwPEdM1!}R&l`o-ATrg zq6_pu<061UTmJ3=k3;)1 zjq;;)F?N#!ISeK{a2#Run#{_nD{IUU&tS=50VInUk{OH`Vi*d5tbB$FhDwGQpjyMp z4V;I08HJ$6!|iPlV3}OO6~MudZ0{GY03HsY0LVWGm7FY$VUsJly(T+L8csd{)c1qi zhld@ggcDg=36DQef$b#T!ysxCp9>2QA5fkfMU7C%2yIeC+RN_b5^ T%wxN_L6T{51c%GyBXTwXaIl$N diff --git a/proxy/d3d9.suo b/proxy/d3d9.suo index 56c8d13777c52d6d0db3021d6fe17d5f60389271..5760bf8d52b632f448861c8cb844902f546d23cb 100644 GIT binary patch delta 737 zcmZuvO-~b16umRPftmIVw#CpA;|InF!I)rlVFHCJB_=otgJl73pg=WEfRZ{IFf7J@ zV0wQ58vOw%du>u;jBeCl;L5F=8tbOxd1Fh)#5=k7y*c;Jx#!(C{tZ8OFrp`HB9ibv zcsmG!!!iAXRuhia!(YUC`{(G=kEdU?6UgRb{6u_|C$Y`IQ5&G-B724_(*Sy-VBHkl zGF}-Y0NbzUm$k&V_ukIEgVyaApUU4a?fshId2@_&=8@*GVO>dHr)9cI*AQ2!L>?9S zrj=#iYS@$lM-9iR&yHv6CH+A8;2m;ZCVcLP(kbbV^_ zIlh7gZ57YL9V*g8j9`woF^Vl(K-|Q>LRDm{RHhBuMfN_P4Gz*Xp}bRy1NQe$GOiRI zpbHuo0BrN`%q%x#_N70lpDBRz5g6CdVH*4O&bo!}Ro<6F{MP6R*#{!*uKUk4ucqKUTmJ3=k3;)1 zjq;;)F?N#!ISeK{a2#Run#{_nD{IUU&tS=50VInUk{OH`Vi*d5tbB$FhDwGQpjyMp z4V;I08HJ$6!|iPlV3}OO6~MudZ0{GY03HsY0LVWGm7FY$VUsJly(T+L8csd{)c1qi zhld@ggcDg=36DQef$b#T!ysxCp9>2QA5fkfMU7C%2yIeC+RN_b5^ T%wxN_L6T{51c%GyBXTwX-_e<( diff --git a/proxy/ddraw.suo b/proxy/ddraw.suo index 4d655f35658e46b68f0d86721b69e70117704a22..664dcc843d5a6112d74a6d8b3b1ac34c9b17faab 100644 GIT binary patch delta 1378 zcmb7EOHWf#5T1Lvtu4Jg%CiMgP@*6Y+fopfH}w%(USgslB)p2+ghx{=0mKLkcP@Qw!*s&}INw z7~}U^F-J`wwNfa!%Usu73Bd)(zJijtd;;Gxpd6@(>rTeM;^%=}CG%(9RZ9A&H_@ry zh0P03RzjbT&2H3jx5dRxmSrWtCToS=Oa0`Adp`})2t{d-o2~UcXI<7+Y=Pa3W&}5v zuJKfIKo^ZOZZr(*$z6Ib6hed;cf75da&>Xq)~0f+qyBm7YqeKV;PA!ZBAeEd?y1S* zzoC-orPa27({?1H!hp!??wrhUGj@PSI?xQPKJ{j-ZGSaRTx_yyif)J21|;Gz3&;Hm z&t!D)TU)s)3)6$Vm9fG;hih>?^MR@a`GB?TFGMWmR5*j=qchZpaf+_cI0Z>)>7yW9 zt)*%E$m7P``NoFFa6pS~%XkO~&>-CewVf0O#p84t;~3-#iog<~5RK9_tk=*-IhN~7 zA<0@IO=Q7QN0%;1JAPA|j$rbGw;bR z984nMQJfye*^}_-$NE2F;lPE<3VW~7_Au8HL2ArzfFSn>u)lV?qIQpIuwrL_T~lefYz)hewAFmmm- KOdyv5;M7keSw!Ce delta 485 zcmZ8dO-lk%6n$@cqi=LZ$B$|dA_)m01gnjK%7n8B6VVpYLQrbaGKs(sD26s|3d;Kn z+O)3b2V`lRTGgs$KOkDU$c@u`LNc^?k8{ucIQLxBFjKd2K^ob%EhB_R*1GV3uWD+C z6tD}fJy9i8`_eYv@f6E;C1{f(oo0~L+Yq2}_#p+E2f;t`jl|$c{2+WJlw4_rgUP!q z?_>42deQj)l=ZWlc;oq`l7%u&f=>H552BQqTSZm0hEnW5M0;ojRZyLw1Jpz 1) target.dxversion += 5; - target.FakeVersionId = GetIntEntry("winver0", 0); + target.FakeVersionId= GetIntEntry("winver0", 0); target.MaxScreenRes = GetIntEntry("maxres0", 0); - target.SwapEffect = GetIntEntry("swapeffect0", 0); - target.InitTS = GetIntEntry("initts0", 0); - + target.SwapEffect = GetIntEntry("swapeffect0", 0); + target.InitTS = GetIntEntry("initts0", 0); + target.monitorid = GetIntEntry("monitorid0", -1); + target.resw = GetIntEntry("initresw0", 800); + target.resh = GetIntEntry("initresh0", 600); + target.MaxDdrawInterface = GetIntEntry("maxddinterface0", 7); + target.ScanLine = GetIntEntry("scanline0", 0); + setTarget((TARGETMAP *)&target); startHook(); } diff --git a/proxy/wing32.suo b/proxy/wing32.suo index d43424623bb58e5a548c4e8d4d211138e8067dec..89c90f846ba9f6999d8f208641ffcdd0079fecea 100644 GIT binary patch delta 724 zcmX|9&2JJ>5TCc~TbA-wXax%!777y7)|P@&t&JsZOjByvhDJS*)c6@sVqHw}QuNfL zG8g{`587@_OgwnNlZi2U^x&UhjiHGr>bwOyo7tK9&F{_3&fDfj(|ETmvF_gbTlVUf z+LBk9f(cpo4uAX=e*fYJa{vi8u|a`3EIQ{f<V|9WX%qtKjO1Vvj z&qh|bi(H=od4fC*zXzgdcqVXR^tFCN0!E;a*=v7ATU+9*!k1*L5<0^$5z;kwywVzTeVzP0pN6LJRsH37cJBNpnHN{@zNN?t-p@t|u zSgbco!B)RCAk(h!^*F#?u|C)F`tZ3v6%eEXUGWUP^K_My)=s>@TvtIni;%-liPO4R zR+08?!b5lp_Xxia4+y*YO=JKMv?$(=#afw~^(R(wU^|jUbG(dg|9mTHvK-cvmE-@6 h&EjElhh4;as=`j#^LJ8Beu)az@NuSOeLi(r`VTEn(HZ~% delta 1037 zcmb`FO-~b16o&7e-aC|j&_WA^HWnyYKWL$)ErNm;TBNZJOan14B>EFrKq7)+T$r#^ zI2-?i3$ZL+8CjW_s4L^jUm%+j-N^XfX;F-BOq}MKd(L~#y*+v7nufWwSJGsFF?Rf- z`ke3F6}zIs1Jo~iy?gQRA8Q*QxC2#_*2Np0wIJ-Fa(syLt%B}JgA0}IdIf!x+s=NJ zV}Q2x!L4JMnzdz7(yx8*APD#8JTk52Iyz z=NYbf3tYEN@Tqp`!p2*)-d3gqk)nE=AzPui8wdLq=yhzW=5PL;zoB**&NlR@0cbvc zp6VS-RPrVC2*i+}`+*zMgV1ZApFmWh_w5lfJPFDNpQim9;}F#|zWhoyBF6e|+wsr* zMDONggerWK9`{D@-Z`_pu*o*r1{_Plu{2!Fu>yQgvKf4d99&Q0Ys`W)q6w&D=uD!P zL8R)V_!Ypk9X+6ES1jmMf%|33M&^UlrxJUKi{k7lye z?z~XenS=4BvC94^c>65dad`a2I;|^TPwVP3=aq=3sZ%vRLMfq>*=6pASNSllg%_w8 zOYzHe6rR_45WQWE%MdYS2$@r5?kPlljTwmdoZF9wK54byfl2z>>r$+)X0pk&{8}>e((5S`7DAz E0PM~2&Hw-a