From 80f670b00264eef614877d3099f087d7178d7566 Mon Sep 17 00:00:00 2001 From: gho tik Date: Tue, 7 Feb 2017 11:50:10 -0500 Subject: [PATCH] v2_04_12_src Former-commit-id: 5667f48d49d251adb6e9a8058e4b6943813c5769 --- Include/dxwnd.h | 1 + build/dxwnd.dll | 4 +- build/dxwnd.exe | 4 +- build/dxwnd.ini | 1304 +++++++++++++++++++++++++++++++++++++ build/exports/dxwnd.log | 16 +- build/readme-relnotes.txt | 7 + dll/ddraw.cpp | 63 +- dll/dxwnd.cpp | 2 +- dll/dxwnd.vs2008.suo | Bin 759808 -> 810930 bytes dll/gdi32.cpp | 4 + dll/hd3d7.cpp | 14 +- dll/hddraw.h | 2 +- dll/user32.cpp | 4 +- host/TabDirectX.cpp | 1 + host/TabProgram.cpp | 2 - host/TargetDlg.cpp | 1 + host/TargetDlg.h | 5 +- host/dxwndhost.aps | Bin 0 -> 262004 bytes host/dxwndhost.rc | Bin 152464 -> 152744 bytes host/dxwndhost.vs2008.suo | Bin 192000 -> 198144 bytes host/dxwndhostView.cpp | 47 +- host/dxwndhostView.h | 1 + host/host.aps | Bin 0 -> 47504 bytes host/resource | Bin 54292 -> 54384 bytes 24 files changed, 1406 insertions(+), 76 deletions(-) create mode 100644 build/dxwnd.ini create mode 100644 host/dxwndhost.aps create mode 100644 host/host.aps diff --git a/Include/dxwnd.h b/Include/dxwnd.h index b7aa3a1..a516b51 100644 --- a/Include/dxwnd.h +++ b/Include/dxwnd.h @@ -274,6 +274,7 @@ #define ALLOWSYSMEMON3DDEV 0x00400000 // Suppress DDSCAPS_SYSTEMMEMORY option when DDSCAPS_3DDEVICE is set #define CLIPMENU 0x00800000 // Include window menu in mouse clipper area #define BACKGROUNDPRIORITY 0x01000000 // Lower process priority when in background state +#define OFFSCREENZBUFFER 0x02000000 // Allow building plain surfaces and ZBuffer on offscreen videomemory surfaces // logging Tflags DWORD: #define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general diff --git a/build/dxwnd.dll b/build/dxwnd.dll index a4456b7..f12ed6b 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1409b8473fd9673dda880af142fa01e172890f873b518c82d05214244d7c6514 -size 786944 +oid sha256:f4db08ed8206eab319c89f808e3b59311060b13ba6f2f8b01b12f14d78b48926 +size 787456 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index f554dc5..ed0aa9b 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0a5afe5a71f0bb24b48a816469f93ffbcf776d16b03d6ad27c411a3e35f5aba9 -size 676352 +oid sha256:5789a039f251a7d64e49573c0f7cc63fea3369f091782fb92fe6efb7c899d94a +size 675840 diff --git a/build/dxwnd.ini b/build/dxwnd.ini new file mode 100644 index 0000000..80c99e6 --- /dev/null +++ b/build/dxwnd.ini @@ -0,0 +1,1304 @@ +[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/exports/dxwnd.log b/build/exports/dxwnd.log index 9273cd6..5049537 100644 --- a/build/exports/dxwnd.log +++ b/build/exports/dxwnd.log @@ -1,5 +1,15 @@ -OnRun idx=36 prog="D:\Games\International Football 2000\MSIF2000.ICD" unhooked=0 -setwindowshook mode -OnRun idx=36 prog="D:\Games\International Football 2000\MSIF2000.ICD" unhooked=0 +OnRun idx=19 prog="F:\Games\tourcar\tourcars.exe" unhooked=0 +self elevation +setwindowshook mode +OnRun idx=37 prog="F:\Games\tourcar\tourcars.exe" unhooked=0 +self elevation +setwindowshook mode +OnRun idx=36 prog="F:\Games\tourcar\tourcars.exe" unhooked=0 +self elevation +setwindowshook mode +OnRun idx=36 prog="F:\Games\tourcar\tourcars.exe" unhooked=0 +self elevation +setwindowshook mode +OnRun idx=36 prog="F:\Games\tourcar\tourcars.exe" unhooked=0 self elevation setwindowshook mode diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index a6504e5..84c3f58 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -1520,3 +1520,10 @@ fix: fixed AdjustWindowRect/Ex() wrapper to always neutralize window changes (go fix: fixed message processing for FORCEWINRESIZE: now "Man TT Superbike" can be moved and resized (at least on Win10). add: added BACKGROUNDPRIORITY handling add: added CLIPMENU handling + +v2.04.12 +GUI: +add: "Support offscreen 3D" flag (OFFSCREENZBUFFER) +DLL: +fix: recursion bug in CreateWindowExA hooker +add: OFFSCREENZBUFFER flag \ No newline at end of file diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index fe68899..6a58d27 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -285,6 +285,7 @@ HRESULT WINAPI extSetSurfaceDesc7(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, DWORD); // DirectDrawClipper HRESULT WINAPI extReleaseC(LPDIRECTDRAWCLIPPER); HRESULT WINAPI extGetClipList(LPDIRECTDRAWCLIPPER, LPRECT, LPRGNDATA, LPDWORD); +HRESULT WINAPI extSetClipList(LPDIRECTDRAWCLIPPER, LPRGNDATA, DWORD); HRESULT WINAPI extSetHWnd(LPDIRECTDRAWCLIPPER, DWORD, HWND); // DirectDrawPalette @@ -399,10 +400,10 @@ QueryInterface_Type pQueryInterfaceC; AddRefC_Type pAddRefC; ReleaseC_Type pReleaseC; GetClipList_Type pGetClipList; +SetClipList_Type pSetClipList; GetHWnd_Type pGetHWnd; InitializeC_Type pInitializeC; IsClipListChanged_Type pIsClipListChanged; -SetClipList_Type pSetClipList; SetHWnd_Type pSetHWnd; /* DirectDrawPalette hook pointers */ @@ -1326,6 +1327,7 @@ static void HookDDClipper(LPDIRECTDRAWCLIPPER FAR* lplpDDClipper) SetHook((void *)(**(DWORD **)lplpDDClipper + 8), extReleaseC, (void **)&pReleaseC, "Release(C)"); SetHook((void *)(**(DWORD **)lplpDDClipper + 12), extGetClipList, (void **)&pGetClipList, "GetClipList(C)"); + SetHook((void *)(**(DWORD **)lplpDDClipper + 28), extSetClipList, (void **)&pSetClipList, "SetClipList(C)"); SetHook((void *)(**(DWORD **)lplpDDClipper + 32), extSetHWnd, (void **)&pSetHWnd, "SetHWnd(C)"); } @@ -2315,7 +2317,7 @@ HRESULT WINAPI extSetCooperativeLevel4(LPDIRECTDRAW lpdd, HWND hwnd, DWORD dwfla HRESULT WINAPI extSetCooperativeLevel7(LPDIRECTDRAW lpdd, HWND hwnd, DWORD dwflags) { return extSetCooperativeLevel(7, pSetCooperativeLevel7, lpdd, hwnd, dwflags); } -void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) +void FixSurfaceCapsInner(LPDDSURFACEDESC2 lpddsd, int dxversion) { // rules of thumb: // 1) textures should be left untouched (switching to SYSTEMMEMORY when forcing HEL may even fail!) @@ -2328,9 +2330,6 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) if(!(lpddsd->dwFlags & DDSD_CAPS)) lpddsd->ddsCaps.dwCaps = 0; - OutTraceDW("FixSurfaceCaps: Flags=%x(%s) Caps=%x(%s)\n", - lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps)); - // DDSCAPS_TEXTURE surfaces must be left untouched, unless you set FORCESHEL: in this case switch VIDEOMEMORY to SYSTEMMEMORY if((lpddsd->dwFlags & DDSD_CAPS) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_TEXTURE)){ if (dxw.dwFlags3 & FORCESHEL) { @@ -2341,6 +2340,8 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) // TEXTURE: enforce PIXELFORMAT on MEMORY lpddsd->dwFlags |= DDSD_PIXELFORMAT; GetPixFmt(lpddsd); + // trytry + // lpddsd->ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN; // OFFSCREENPLAIN to set a different pixel format } if((lpddsd->dwFlags & DDSD_PIXELFORMAT) && (lpddsd->ddpfPixelFormat.dwFlags & DDPF_FOURCC) && @@ -2349,19 +2350,11 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) lpddsd->ddpfPixelFormat.dwFourCC = 0; lpddsd->ddpfPixelFormat.dwFlags &= ~DDPF_FOURCC; } - - //// try - //if((lpddsd->dwFlags & DDSD_PIXELFORMAT) && (lpddsd->ddpfPixelFormat.dwRGBBitCount == 16)){ - // lpddsd->ddpfPixelFormat.dwRGBAlphaBitMask = 0x8000; - // lpddsd->ddpfPixelFormat.dwBBitMask = 0x001F; - // lpddsd->ddpfPixelFormat.dwGBitMask = 0x03E0; - // lpddsd->ddpfPixelFormat.dwRBitMask = 0x7C00; - //} - //// try return; } if((lpddsd->dwFlags & DDSD_CAPS) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER)) { // z-buffer surface - set to memory + if(dxw.dwFlags8 & OFFSCREENZBUFFER) return; lpddsd->ddsCaps.dwCaps = DDSCAPS_ZBUFFER; if (dxw.dwFlags8 & ALLOWSYSMEMON3DDEV) lpddsd->ddsCaps.dwCaps = DDSCAPS_SYSTEMMEMORY|DDSCAPS_ZBUFFER; return; @@ -2369,13 +2362,14 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) // this is valid just in case the above block eliminated TEXTURE surfaces.... if (lpddsd->dwFlags & DDSD_PIXELFORMAT){ // pixel format defined - if (lpddsd->ddsCaps.dwCaps & DDSCAPS_SYSTEMMEMORY) lpddsd->ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN; // to allow for pixel format conversion (Quest for Glory 5 - GOG version) + // trytry + //if (lpddsd->ddsCaps.dwCaps & DDSCAPS_SYSTEMMEMORY) lpddsd->ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN; // to allow for pixel format conversion (Quest for Glory 5 - GOG version) + lpddsd->ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN; return; } - if ((lpddsd->dwFlags & (DDSD_WIDTH|DDSD_HEIGHT)) == DDSD_WIDTH) { // buffer surface - return; - } + // buffer surface + if ((lpddsd->dwFlags & (DDSD_WIDTH|DDSD_HEIGHT)) == DDSD_WIDTH) return; // 3DDEVICE no TEXTURE: enforce PIXELFORMAT // v2.02.90: added for "Zoo Tycoon" textures @@ -2385,23 +2379,41 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) // we try to manage them by checking for the DDSCAPS_VIDEOMEMORY capability ... if((lpddsd->dwFlags & DDSD_CAPS) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_3DDEVICE)){ lpddsd->dwFlags |= DDSD_PIXELFORMAT; + GetPixFmt(lpddsd); + if(dxw.dwFlags8 & OFFSCREENZBUFFER) { + // add OFFSCREENPLAIN to set a different pixel format + lpddsd->ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN; + return; + } if(lpddsd->ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY) lpddsd->ddsCaps.dwCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_3DDEVICE|DDSCAPS_SYSTEMMEMORY); // good for "Bunnies must die", NO "Arx Fatalis" else lpddsd->ddsCaps.dwCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_3DDEVICE); // good for "Arx Fatalis", NO "Bunnies must die" - GetPixFmt(lpddsd); return; } // default case: adjust pixel format OutTraceB("FixSurfaceCaps: suppress DDSCAPS_VIDEOMEMORY case\n"); lpddsd->dwFlags |= (DDSD_CAPS|DDSD_PIXELFORMAT); - lpddsd->ddsCaps.dwCaps &= ~(DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); // v2.02.43 - lpddsd->ddsCaps.dwCaps |= (DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN); + if(!(dxw.dwFlags8 & OFFSCREENZBUFFER)){ + lpddsd->ddsCaps.dwCaps &= ~(DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); // v2.02.43 + lpddsd->ddsCaps.dwCaps |= (DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN); + } if(!(dxw.dwFlags3 & NOPIXELFORMAT)) GetPixFmt(lpddsd); return; } +void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) +{ + OutTraceDW("FixSurfaceCaps: INPUT Flags=%x(%s) Caps=%x(%s)\n", + lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps)); + + FixSurfaceCapsInner(lpddsd, dxversion); + + OutTraceDW("FixSurfaceCaps: OUTPUT Flags=%x(%s) Caps=%x(%s)\n", + lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps)); +} + HRESULT WINAPI extCreateSurface1(LPDIRECTDRAW lpdd, DDSURFACEDESC *lpddsd, LPDIRECTDRAWSURFACE *lplpdds, void *pu) { return extCreateSurface(1, (CreateSurface_Type)pCreateSurface1, lpdd, (DDSURFACEDESC2 *)lpddsd, lplpdds, pu); } HRESULT WINAPI extCreateSurface2(LPDIRECTDRAW lpdd, DDSURFACEDESC *lpddsd, LPDIRECTDRAWSURFACE *lplpdds, void *pu) @@ -4988,6 +5000,15 @@ HRESULT WINAPI extGetClipList(LPDIRECTDRAWCLIPPER lpddClip, LPRECT lpRect, LPRGN return res; } +HRESULT WINAPI extSetClipList(LPDIRECTDRAWCLIPPER lpddClip, LPRGNDATA lpClipList, DWORD dwFlags) +{ + HRESULT res; + OutTraceP("SetClipList(C): lpddClip=%x lpcliplist=%x flags=%x\n", lpddClip, lpClipList, dwFlags); + res = (*pSetClipList)(lpddClip, lpClipList, dwFlags); + if(res) OutTraceP("SetClipList(C): ERROR err=%x(%s)\n", res, ExplainDDError(res)); + return res; +} + HRESULT WINAPI extSetHWnd(LPDIRECTDRAWCLIPPER lpddClip, DWORD w, HWND hwnd) { HRESULT res; diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index 955c848..e97c271 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.11" +#define VERSION "2.04.12" #define DDTHREADLOCK 1 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 2a11345cba59bdebaf1d2e8078c32b8108550c07..a58ea1464f4e01fb26143e6aed89e530d2de2280 100644 GIT binary patch delta 19500 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 Hfo=W=8(xME delta 3479 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 Gp7I}?a+#I@ diff --git a/dll/gdi32.cpp b/dll/gdi32.cpp index 23568d2..ecc86ec 100644 --- a/dll/gdi32.cpp +++ b/dll/gdi32.cpp @@ -902,6 +902,10 @@ HDC WINAPI extGDICreateCompatibleDC(HDC hdc) BOOL bSwitchedToMainWin = FALSE; OutTraceDW("GDI.CreateCompatibleDC: hdc=%x\n", hdc); + // n.b. useful? hdc == 0 doesn't imply the desktop but rather the current window + // from MSDN: + // hdc[in] A handle to an existing DC. If this handle is NULL the function creates + // a memory DC compatible with the application's current screen. if(hdc==0 || (WindowFromDC(hdc)==0)) { // v2.03.99: Star Trek Armada hdc=(*pGDIGetDC)(dxw.GethWnd()); // potential DC leakage bSwitchedToMainWin = TRUE; diff --git a/dll/hd3d7.cpp b/dll/hd3d7.cpp index bc0ef30..fa9ec24 100644 --- a/dll/hd3d7.cpp +++ b/dll/hd3d7.cpp @@ -513,7 +513,6 @@ void HookDirect3DDevice(void **lpd3ddev, int d3dversion) SetHook((void *)(**(DWORD **)lpd3ddev + 16), extD3DGetCaps1, (void **)&pD3DGetCaps1, "GetCaps(1)"); SetHook((void *)(**(DWORD **)lpd3ddev + 20), extSwapTextureHandles, (void **)&pSwapTextureHandles, "SwapTextureHandles(1)"); SetHook((void *)(**(DWORD **)lpd3ddev + 32), extExecute, (void **)&pExecute, "Execute(1)"); - //SetHook((void *)(**(DWORD **)lpd3ddev + 32), extExecute, NULL, "Execute(1)"); SetHook((void *)(**(DWORD **)lpd3ddev + 36), extAddViewport1, (void **)&pAddViewport1, "AddViewport(1)"); SetHook((void *)(**(DWORD **)lpd3ddev + 40), extDeleteViewport1, (void **)&pDeleteViewport1, "DeleteViewport(1)"); SetHook((void *)(**(DWORD **)lpd3ddev + 44), extNextViewport1, (void **)&pNextViewport1, "NextViewport(1)"); @@ -1035,8 +1034,17 @@ HRESULT WINAPI extSetViewport(int dxversion, SetViewport_Type pSetViewport, void // v2.03.48: scaled dvScaleX/Y fields. Fixes "Dark Vengeance" viewport size when using D3D interface. // no.... see Forsaken - //dxw.MapClient(&vpd->dvScaleX, &vpd->dvScaleY); - //OutTraceDW("SetViewport: FIXED scale=(%fx%f)\n", vpd->dvScaleX, vpd->dvScaleY); + // no good (useless) also for "Spearhead" + //if(dxw.Windowize){ + // dxw.MapClient(&vpd->dvScaleX, &vpd->dvScaleY); + // OutTraceDW("SetViewport: FIXED scale=(%fx%f)\n", vpd->dvScaleX, vpd->dvScaleY); + // int w = (int) vpd->dwWidth; + // int h = (int) vpd->dwHeight; + // dxw.MapClient(&w, &h); + // vpd->dwWidth = (DWORD) w; + // vpd->dwHeight = (DWORD) h; + // OutTraceDW("SetViewport: FIXED scale=(%dx%d)\n", vpd->dwWidth, vpd->dwHeight); + //} res=(*pSetViewport)(lpvp, vpd); if(res) OutTraceE("SetViewport ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__); diff --git a/dll/hddraw.h b/dll/hddraw.h index 0931285..c3fe6b6 100644 --- a/dll/hddraw.h +++ b/dll/hddraw.h @@ -103,9 +103,9 @@ typedef HRESULT (WINAPI *SetSurfaceDesc_Type)(LPDIRECTDRAWSURFACE, LPDDSURFACEDE typedef HRESULT (WINAPI *AddRefC_Type)(LPDIRECTDRAWCLIPPER); typedef HRESULT (WINAPI *ReleaseC_Type)(LPDIRECTDRAWCLIPPER); typedef HRESULT (WINAPI *GetClipList_Type)(LPDIRECTDRAWCLIPPER, LPRECT, LPRGNDATA, LPDWORD); +typedef HRESULT (WINAPI *SetClipList_Type)(LPDIRECTDRAWCLIPPER, LPRGNDATA, DWORD); typedef HRESULT (WINAPI *GetHWnd_Type)(LPDIRECTDRAWCLIPPER, HWND FAR *); typedef HRESULT (WINAPI *IsClipListChanged_Type)(LPDIRECTDRAWCLIPPER, BOOL FAR *); -typedef HRESULT (WINAPI *SetClipList_Type)(LPDIRECTDRAWCLIPPER, LPRGNDATA, DWORD); typedef HRESULT (WINAPI *SetHWnd_Type)(LPDIRECTDRAWCLIPPER, DWORD, HWND); // DirectDraw Palette diff --git a/dll/user32.cpp b/dll/user32.cpp index 8af9d0b..c637dd1 100644 --- a/dll/user32.cpp +++ b/dll/user32.cpp @@ -164,7 +164,7 @@ static HookEntryEx_Type SyscallHooks[]={ {HOOK_IAT_CANDIDATE, 0, "TabbedTextOutA", (FARPROC)TabbedTextOutA, (FARPROC *)&pTabbedTextOutA, (FARPROC)extTabbedTextOutA}, {HOOK_IAT_CANDIDATE, 0, "TabbedTextOutW", (FARPROC)TabbedTextOutW, (FARPROC *)&pTabbedTextOutW, (FARPROC)extTabbedTextOutW}, {HOOK_IAT_CANDIDATE, 0, "ScrollDC", (FARPROC)ScrollDC, (FARPROC *)&pScrollDC, (FARPROC)extScrollDC}, - {HOOK_IAT_CANDIDATE, 0, "InvalidateRect", (FARPROC)InvalidateRect, (FARPROC *)&pInvalidateRect, (FARPROC)extInvalidateRect}, + {HOOK_HOT_CANDIDATE, 0, "InvalidateRect", (FARPROC)InvalidateRect, (FARPROC *)&pInvalidateRect, (FARPROC)extInvalidateRect}, {HOOK_IAT_CANDIDATE, 0, "DrawTextA", (FARPROC)DrawTextA, (FARPROC *)&pDrawTextA, (FARPROC)extDrawTextA}, {HOOK_IAT_CANDIDATE, 0, "DrawTextExA", (FARPROC)DrawTextExA, (FARPROC *)&pDrawTextExA, (FARPROC)extDrawTextExA}, {HOOK_IAT_CANDIDATE, 0, "DrawTextW", (FARPROC)DrawTextW, (FARPROC *)&pDrawTextW, (FARPROC)extDrawTextW}, @@ -1882,7 +1882,7 @@ HWND WINAPI extCreateWindowExA( nHeight = MainWin.bottom; } - return CreateWindowCommon("CreateWindowExA", (CreateWindow_Type)CreateWindowExA, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); + return CreateWindowCommon("CreateWindowExA", (CreateWindow_Type)pCreateWindowExA, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); } extern void ExplainMsg(char *, HWND, UINT, WPARAM, LPARAM); diff --git a/host/TabDirectX.cpp b/host/TabDirectX.cpp index 6daa8ca..872e6cc 100644 --- a/host/TabDirectX.cpp +++ b/host/TabDirectX.cpp @@ -40,6 +40,7 @@ void CTabDirectX::DoDataExchange(CDataExchange* pDX) DDX_Check(pDX, IDC_NOPIXELFORMAT, cTarget->m_NoPixelFormat); DDX_Check(pDX, IDC_NOALPHACHANNEL, cTarget->m_NoAlphaChannel); DDX_Check(pDX, IDC_NOFLIPEMULATION, cTarget->m_NoFlipEmulation); + DDX_Check(pDX, IDC_OFFSCREENZBUFFER, cTarget->m_OffscreenZBuffer); DDX_Check(pDX, IDC_FLIPEMULATION, cTarget->m_FlipEmulation); DDX_Check(pDX, IDC_SETCOMPATIBILITY, cTarget->m_SetCompatibility); DDX_Check(pDX, IDC_AEROBOOST, cTarget->m_AEROBoost); diff --git a/host/TabProgram.cpp b/host/TabProgram.cpp index b8c781b..6bf4e05 100644 --- a/host/TabProgram.cpp +++ b/host/TabProgram.cpp @@ -110,8 +110,6 @@ void CTabProgram::DoDataExchange(CDataExchange* pDX) DDX_Check(pDX, IDC_KEEPASPECTRATIO, cTarget->m_KeepAspectRatio); DDX_Check(pDX, IDC_NOBANNER, cTarget->m_NoBanner); DDX_Check(pDX, IDC_HIDEDESKTOP, cTarget->m_HideDesktop); - //DDX_Text(pDX, IDC_POSX, cTarget->m_PosX); - //DDX_Text(pDX, IDC_POSY, cTarget->m_PosY); DDX_CBIndex(pDX, IDC_MONITOR_ID, cTarget->m_MonitorId); DDX_Text(pDX, IDC_POSX, sPosX); DDX_Text(pDX, IDC_POSY, sPosY); diff --git a/host/TargetDlg.cpp b/host/TargetDlg.cpp index 36555dc..e706ef3 100644 --- a/host/TargetDlg.cpp +++ b/host/TargetDlg.cpp @@ -153,6 +153,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/) m_SlowDown = FALSE; m_BlitFromBackBuffer = FALSE; m_NoFlipEmulation = FALSE; + m_OffscreenZBuffer = FALSE; m_LockColorDepth = FALSE; m_DisableGammaRamp = FALSE; m_AutoRefresh = FALSE; diff --git a/host/TargetDlg.h b/host/TargetDlg.h index 260e772..d3cc420 100644 --- a/host/TargetDlg.h +++ b/host/TargetDlg.h @@ -106,16 +106,13 @@ public: BOOL m_SlowDown; BOOL m_BlitFromBackBuffer; BOOL m_NoFlipEmulation; + BOOL m_OffscreenZBuffer; BOOL m_LockColorDepth; - //BOOL m_SuppressClipping; - //BOOL m_ForceClipper; BOOL m_DisableGammaRamp; BOOL m_AutoRefresh; BOOL m_IndependentRefresh; BOOL m_TextureFormat; BOOL m_FixWinFrame; - //BOOL m_EnableClipping; - //BOOL m_CursorClipping; BOOL m_VideoToSystemMem; BOOL m_FixTextOut; BOOL m_SharedDC; diff --git a/host/dxwndhost.aps b/host/dxwndhost.aps new file mode 100644 index 0000000000000000000000000000000000000000..b7bbfca5975516b1a89b3a60bd4fea2e4fb0602c GIT binary patch literal 262004 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

Lohq?R|i09 z3Sr~Oeqp=*CV8s2g>VW3I{&Usz;@@&3}4xiHX_V_^Frw1L}z_^{nzQb(Pv7Aze-_c z6vlsed*8I*I#gD$#TIXi155P$QS)Ja59nSxxd~3+vfck;U)H`KzTPx8Dz`kBcJ(GyaSH?g~T>S_|ty4 zL&2ZDqPIQtf}^dwI)^)pfWy1er#q=^t+^@DPT&4TVv$i)Glab0is=V`|6$VEc-saF zi!v5Af&|xc{De}B0vP2r#V`gALBuPCZMM5Hwjh+-sE5m_W?-4Obs@zxgCva|R0eS0 zlAY3l7pA`FrVFiy-iHT3%h>Y*XmxW=pp$x%3Z)iuL%8b0zdhUm|5NBRD^A7B_M|Ki z3(%`xe!#GUb6P)?Ik2!ynk3BRw_=;!eM zh^4R(un5ZK430e8xpc%| z@VLXQm`2fiN41+^V+jy#2o7HN&sz(3kH3hLljGV^zv2B@CsHvAF-{j^W8)rgUWAqY zQ!08xB%$4K#@annnIpRn6}M?Z9AcN7EL4Fa&p|_qCn&@xelxU*sCM6hIh5OFr{ewC zBpmI<(*ho67_bf8J%)-%H2nK^xnO-jg!kmAsL-jB#hhWQr>L9nd+~Nn6JS~6Csp^K zpUd;gub7FTjBtY9DNRvxM5vq7deFqj+rEboq@0`~cP@`+czjdDF@o zTGm+&>dDflJ1ZWpD_j-bx}G2$I#+n=RFa>{C&;e=98E|6DhPD>A|*Cq1Xr|n1v^tT z`ci|486n{f*$S!Gv(-oPr>EO&`r6jzDoiOu??}v43J4LM>!J!#Zkr@|?73QkKOJrT z0p7xM%1hG)Vj;+89<$C9v`m@vPSe$YKPH9YHP*>TrgRz* zNu^_A{>;BNW3IEVA5KK}ES@&(y*kzY%7%)II@p~%2&TEkh+ppo((eP=&!j(%ybK`d zx;z}SJ&fH=`QE8tWaD}>fF6Ei-b!nDpm?;NG7jG7N8(LEzA&;s(}dgm?lY)22OR z-x9Lf(wG870`0i4fgyA{4>Ur?;o#9lDNkc4+tudEivAO)5tipA@&(*L-}{yZJbmOx zueg6&r3FH$Q^e#hU5)N!-d6L@Kk4X(SB31nSU1U}ylF1tJViXk1sj7EE4=qDn}Kcl zu+A#?@1hh0X>sj0&Fz>9n343(DL#SMID3210iK;iNPcNvE8`V@`IE|Hxu4I2Mes|6 zfX(yNZpR5zw2{uUm5)``r$B1Yh{MkT zlfTQa+zV~L@Dm3XkzW)uEMuBzF^ob9;uJ2ewZWK=fx8m4heXzW^-#8ST}IU%S(O5S zf{X?C&Gcv7&YS`3$wLcVE?gOVhAqGdW!K&_ZXcjYj4UZh=I#?#;4He2zpyu&U8S}a z&gT9;^=-&70>4B?#^%fudb3rOBrkY-(#;C5b>`>g^>64U3War!7aJb=&XeQ5de&h9 zXQVaNhd6i2>Ux z!o_KmkU+R~oKe4)(vNjy+*zOiq#qhlH!#8PccOI5!30*%9isz^h9N+H(4fGLWPHm6 z=cz+DNCY|Z#|3>r0I}QDlPZ0M2J|6y*LZ3i{UZ5c2>u$POe!I6T&wzhF!=W_I^VnD z6H9JvwLI+%qPl9$KNZyw;+qxGZ#}ew12h=}CjMSlQ;B+U;>{UM&3}MIPj{sGT4k9e z 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 JEAH>J{tfJSb7lYl literal 0 HcmV?d00001 diff --git a/host/dxwndhost.rc b/host/dxwndhost.rc index d4fa43914bdf1e0eef0f0a39d5b33061783c2ae6..67e3abda61402d11f5a96eeb7657ac20e369e8ad 100644 GIT binary patch delta 118 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 a<2x!i-*93ZMY4wr|4O=2)W}of_5TKM@a0ti delta 4602 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 t->flags |= SLOWDOWN; if(dlg->m_BlitFromBackBuffer) t->flags |= BLITFROMBACKBUFFER; if(dlg->m_NoFlipEmulation) t->flags4 |= NOFLIPEMULATION; + if(dlg->m_OffscreenZBuffer) t->flags8 |= OFFSCREENZBUFFER; if(dlg->m_LockColorDepth) t->flags7 |= LOCKCOLORDEPTH; if(dlg->m_DisableGammaRamp) t->flags2 |= DISABLEGAMMARAMP; if(dlg->m_AutoRefresh) t->flags |= AUTOREFRESH; @@ -768,6 +769,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg) dlg->m_SlowDown = t->flags & SLOWDOWN ? 1 : 0; dlg->m_BlitFromBackBuffer = t->flags & BLITFROMBACKBUFFER ? 1 : 0; dlg->m_NoFlipEmulation = t->flags4 & NOFLIPEMULATION ? 1 : 0; + dlg->m_OffscreenZBuffer = t->flags8 & OFFSCREENZBUFFER ? 1 : 0; dlg->m_LockColorDepth = t->flags7 & LOCKCOLORDEPTH ? 1 : 0; dlg->m_DisableGammaRamp = t->flags2 & DISABLEGAMMARAMP ? 1 : 0; dlg->m_AutoRefresh = t->flags & AUTOREFRESH ? 1 : 0; @@ -2019,7 +2021,9 @@ void CDxwndhostView::OnKill() RevertScreenChanges(&this->InitDevMode); } -void CDxwndhostView::OnProcessKill() +// void CDxwndhostView::OnProcessKill(BOOL bAll): kills one instance (bAll==FALSE) or all instances (bAll==TRUE) +// of the process whose name corresponds to the selected program's list entry. +void CDxwndhostView::OnProcessKill(BOOL bAll) { int i; POSITION pos; @@ -2045,7 +2049,7 @@ void CDxwndhostView::OnProcessKill() mbstowcs_s(NULL, wcstring, 48, PrivateMaps[i].title, _TRUNCATE); res=MessageBoxLangArg(DXW_STRING_KILLTASK, DXW_STRING_WARNING, MB_YESNO | MB_ICONQUESTION, wcstring); if(res!=IDYES) return; - KillProcByName(lpProcName, TRUE, FALSE); + KillProcByName(lpProcName, TRUE, bAll); } else{ MessageBoxLang(DXW_STRING_NOKILLTASK, DXW_STRING_INFO, MB_ICONEXCLAMATION); @@ -2055,41 +2059,14 @@ void CDxwndhostView::OnProcessKill() RevertScreenChanges(&this->InitDevMode); } +void CDxwndhostView::OnProcessKill() +{ + OnProcessKill(FALSE); +} + void CDxwndhostView::OnProcessKillAll() { - // to do ..... - int i; - POSITION pos; - CListCtrl& listctrl = GetListCtrl(); - char FilePath[MAX_PATH+1]; - char *lpProcName, *lpNext; - HRESULT res; - - if(!listctrl.GetSelectedCount()) return ; - pos = listctrl.GetFirstSelectedItemPosition(); - i = listctrl.GetNextSelectedItem(pos); - - strnncpy(FilePath, TargetMaps[i].path, MAX_PATH); - lpProcName=FilePath; - while (lpNext=strchr(lpProcName,'\\')) lpProcName=lpNext+1; - - if(TargetMaps[i].flags7 & COPYNOSHIMS){ - strcat(lpProcName, ".noshim"); - } - - if(!KillProcByName(lpProcName, FALSE, FALSE)){ - wchar_t *wcstring = new wchar_t[48+1]; - mbstowcs_s(NULL, wcstring, 48, PrivateMaps[i].title, _TRUNCATE); - res=MessageBoxLangArg(DXW_STRING_KILLTASK, DXW_STRING_WARNING, MB_YESNO | MB_ICONQUESTION, wcstring); - if(res!=IDYES) return; - KillProcByName(lpProcName, TRUE, TRUE); - } - else{ - MessageBoxLang(DXW_STRING_NOKILLTASK, DXW_STRING_INFO, MB_ICONEXCLAMATION); - } - - ClipCursor(NULL); - RevertScreenChanges(&this->InitDevMode); + OnProcessKill(TRUE); } void CDxwndhostView::OnAdd() diff --git a/host/dxwndhostView.h b/host/dxwndhostView.h index 380b5ea..338817c 100644 --- a/host/dxwndhostView.h +++ b/host/dxwndhostView.h @@ -74,6 +74,7 @@ protected: afx_msg void OnExplore(); afx_msg void OnKill(); afx_msg void OnProcessKill(); + afx_msg void OnProcessKill(BOOL); afx_msg void OnProcessKillAll(); afx_msg void OnPause(); afx_msg void OnResume(); diff --git a/host/host.aps b/host/host.aps new file mode 100644 index 0000000000000000000000000000000000000000..ada11c00c11deba3bf945c5523a1fed6f9003756 GIT binary patch literal 47504 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 P=U^WEC70$?Z8ZM{n@`fP literal 0 HcmV?d00001 diff --git a/host/resource b/host/resource index a5604477af514d3d101dcc269877c3a9d162c73f..dd51769dc52070311d736a693f95058d622dfa26 100644 GIT binary patch delta 47 zcmbQTg89P=<_%w#OcG}kbYpO12xf3*2x4#rLO+J6$sZ+ECtu)TnQX8|Zu7S#a{2&& Cl@H+n delta 14 Wcmeycf_cgc<_%w#Yz|nepbr2#0tXrZ