From 9af2065e0f538f207d2188cac60076eabd714af3 Mon Sep 17 00:00:00 2001 From: gho tik Date: Sun, 17 Nov 2013 11:38:28 -0500 Subject: [PATCH] v2_02_42_src Former-commit-id: 6e85ffdc68b2dc761ef5f119fddb62464aaaa74b --- build/Rayman 2 (GOG).dxw | 24 + build/Rayman 2 Demo.dxw | 24 + build/dxwnd.dll | 4 +- build/dxwnd.exe | 2 +- build/dxwnd.ini | 606 ++++++------- build/readme-relnotes.txt | 9 +- build/v2_02_42_build.rar | Bin 0 -> 225391 bytes dll/ddraw.cpp | 53 +- dll/dxwcore.cpp | 7 + dll/dxwcore.hpp | 1 + dll/dxwnd.aps | Bin 37664 -> 37664 bytes dll/dxwnd.cpp | 2 +- dll/dxwnd.vs2008.suo | Bin 340480 -> 357404 bytes dll/gdi32.1.cpp | 1664 ---------------------------------- dll/kernel32.cpp | 28 + dll/syslibs.h | 6 + dll/winmm.cpp | 2 +- host/dxwndhost.vs2008.suo | Bin 365568 -> 347648 bytes host/dxwndhost.vs2008.vcproj | 2 +- host/dxwndhostView.cpp | 9 + 20 files changed, 427 insertions(+), 2016 deletions(-) create mode 100644 build/Rayman 2 (GOG).dxw create mode 100644 build/Rayman 2 Demo.dxw create mode 100644 build/v2_02_42_build.rar delete mode 100644 dll/gdi32.1.cpp diff --git a/build/Rayman 2 (GOG).dxw b/build/Rayman 2 (GOG).dxw new file mode 100644 index 0000000..98deccf --- /dev/null +++ b/build/Rayman 2 (GOG).dxw @@ -0,0 +1,24 @@ +[target] +title0=Rayman 2 (GOG) +path0=D:\Games\GOG.com\Rayman 2\Rayman2.exe +module0= +opengllib0= +ver0=1 +coord0=0 +flag0=402653217 +flagg0=1208025104 +flagh0=20 +flagi0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 diff --git a/build/Rayman 2 Demo.dxw b/build/Rayman 2 Demo.dxw new file mode 100644 index 0000000..eb2b35a --- /dev/null +++ b/build/Rayman 2 Demo.dxw @@ -0,0 +1,24 @@ +[target] +title0=Rayman 2 Demo +path0=D:\Games\Rayman2Demo\Rayman2Demo.exe +module0= +opengllib0= +ver0=1 +coord0=0 +flag0=402653217 +flagg0=1208025088 +flagh0=20 +flagi0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 diff --git a/build/dxwnd.dll b/build/dxwnd.dll index b829dd5..f262a2a 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d1a209c794208ebc34f31a6cd07230ea4410cb8ec6cdeedff15725bd32ae783a -size 425472 +oid sha256:9937414e8ef05dd175c44b487760617042c0a74574f8cab9f1e7486302cee68a +size 424960 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index dc06231..c824a32 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3d50219a90b39093171656814a8cf5e4b1782366c91e18f16a8972cee2075727 +oid sha256:e400384f655d2a3050893125cf7be2026964cb1800b9cebf94af7c1fb98c4d26 size 532480 diff --git a/build/dxwnd.ini b/build/dxwnd.ini index a93fb10..e0e77e6 100644 --- a/build/dxwnd.ini +++ b/build/dxwnd.ini @@ -1271,7 +1271,7 @@ opengllib55= ver55=0 coord55=0 flag55=134217730 -flagg55=143654912 +flagg55=135266304 flagh55=20 flagi55=0 tflag55=770 @@ -1655,17 +1655,17 @@ sizx71=800 sizy71=600 maxfps71=0 initts71=0 -title72=Rayman 2 (GOG) -path72=D:\Games\GOG.com\Rayman 2\Rayman2.exe +title72=Rayman2.exe +path72=C:\Program Files\GOG.com\Rayman 2\Rayman2.exe module72= opengllib72= ver72=1 coord72=0 -flag72=134217762 -flagg72=1208025088 -flagh72=20 +flag72=134217763 +flagg72=1208029184 +flagh72=2097172 flagi72=0 -tflag72=274 +tflag72=18 initx72=0 inity72=0 minx72=0 @@ -1676,107 +1676,107 @@ posx72=50 posy72=50 sizx72=800 sizy72=600 -maxfps72=0 +maxfps72=50 initts72=8 -title73=Rayman2.exe -path73=C:\Program Files\GOG.com\Rayman 2\Rayman2.exe +title73=Silent Hunter II (shell) +path73=D:\Games\Silent Hunter II\Shell\Shell.exe module73= opengllib73= -ver73=1 +ver73=0 coord73=0 -flag73=134217763 -flagg73=1208029184 -flagh73=2097172 +flag73=402653221 +flagg73=135266304 +flagh73=20 flagi73=0 -tflag73=18 +tflag73=2 initx73=0 inity73=0 minx73=0 miny73=0 -maxx73=0 -maxy73=0 +maxx73=800 +maxy73=600 posx73=50 posy73=50 sizx73=800 sizy73=600 -maxfps73=50 -initts73=8 -title74=Rayman 2 Demo -path74=D:\Games\Rayman2Demo\Rayman2Demo.exe +maxfps73=0 +initts73=0 +title74=Silent Hunter II (sim) +path74=D:\Games\Silent Hunter II\Sim\Sim.exe module74= opengllib74= -ver74=1 +ver74=0 coord74=0 -flag74=134217762 -flagg74=1207959552 +flag74=134217780 +flagg74=134217728 flagh74=20 flagi74=0 -tflag74=259 -initx74=0 -inity74=0 +tflag74=0 +initx74=400 +inity74=300 minx74=0 miny74=0 -maxx74=0 -maxy74=0 +maxx74=800 +maxy74=600 posx74=50 posy74=50 sizx74=800 sizy74=600 maxfps74=0 initts74=0 -title75=Silent Hunter II (shell) -path75=D:\Games\Silent Hunter II\Shell\Shell.exe +title75=Space Hack +path75=D:\Games\Space Hack\main.exe module75= opengllib75= ver75=0 coord75=0 -flag75=402653221 -flagg75=135266304 +flag75=671105058 +flagg75=134217728 flagh75=20 flagi75=0 -tflag75=2 +tflag75=258 initx75=0 inity75=0 minx75=0 miny75=0 -maxx75=800 -maxy75=600 +maxx75=0 +maxy75=0 posx75=50 posy75=50 sizx75=800 sizy75=600 maxfps75=0 initts75=0 -title76=Silent Hunter II (sim) -path76=D:\Games\Silent Hunter II\Sim\Sim.exe +title76=Tachyon The Fringe +path76=D:\Games\TachyonTheFringe\space.exe module76= opengllib76= ver76=0 coord76=0 -flag76=134217780 +flag76=134234148 flagg76=134217728 flagh76=20 flagi76=0 -tflag76=0 -initx76=400 -inity76=300 +tflag76=258 +initx76=0 +inity76=0 minx76=0 miny76=0 -maxx76=800 -maxy76=600 +maxx76=0 +maxy76=0 posx76=50 posy76=50 sizx76=800 sizy76=600 maxfps76=0 initts76=0 -title77=Space Hack -path77=D:\Games\Space Hack\main.exe +title77=Tanktics +path77=D:\Games\Tanktics\tanktics.exe module77= opengllib77= ver77=0 coord77=0 -flag77=671105058 +flag77=671088674 flagg77=134217728 flagh77=20 flagi77=0 @@ -1793,17 +1793,17 @@ sizx77=800 sizy77=600 maxfps77=0 initts77=0 -title78=Tachyon The Fringe -path78=D:\Games\TachyonTheFringe\space.exe +title78=TD5_D3D.exe +path78=D:\Games\Test Drive 5\TD5_D3D.exe module78= opengllib78= ver78=0 coord78=0 -flag78=134234148 -flagg78=134217728 +flag78=134217760 +flagg78=1207959552 flagh78=20 flagi78=0 -tflag78=258 +tflag78=64 initx78=0 inity78=0 minx78=0 @@ -1816,17 +1816,17 @@ sizx78=800 sizy78=600 maxfps78=0 initts78=0 -title79=Tanktics -path79=D:\Games\Tanktics\tanktics.exe +title79=The Sims +path79=D:\Games\sims\Sims.exe module79= opengllib79= ver79=0 coord79=0 -flag79=671088674 +flag79=671096866 flagg79=134217728 flagh79=20 flagi79=0 -tflag79=258 +tflag79=66 initx79=0 inity79=0 minx79=0 @@ -1839,17 +1839,17 @@ sizx79=800 sizy79=600 maxfps79=0 initts79=0 -title80=TD5_D3D.exe -path80=D:\Games\Test Drive 5\TD5_D3D.exe +title80=Tomb Raider - The Last Revelation +path80=D:\Games\Tomb Raider - The Last Revelation\tomb4.exe module80= opengllib80= ver80=0 coord80=0 -flag80=134217760 -flagg80=1207959552 +flag80=134217826 +flagg80=134217728 flagh80=20 flagi80=0 -tflag80=64 +tflag80=2 initx80=0 inity80=0 minx80=0 @@ -1862,17 +1862,17 @@ sizx80=800 sizy80=600 maxfps80=0 initts80=0 -title81=The Sims -path81=D:\Games\sims\Sims.exe +title81=TOMB2.EXE +path81=D:\Games\Tomb Raider 2\TOMB2.EXE module81= opengllib81= ver81=0 coord81=0 -flag81=671096866 -flagg81=134217728 -flagh81=20 +flag81=134217760 +flagg81=201326592 +flagh81=2068 flagi81=0 -tflag81=66 +tflag81=0 initx81=0 inity81=0 minx81=0 @@ -1885,17 +1885,17 @@ sizx81=800 sizy81=600 maxfps81=0 initts81=0 -title82=Tomb Raider - The Last Revelation -path82=D:\Games\Tomb Raider - The Last Revelation\tomb4.exe +title82=Vangers one of the Road +path82=D:\Games\Vangers\road.exe module82= opengllib82= -ver82=0 +ver82=1 coord82=0 -flag82=134217826 -flagg82=134217728 +flag82=406847650 +flagg82=671088640 flagh82=20 flagi82=0 -tflag82=2 +tflag82=258 initx82=0 inity82=0 minx82=0 @@ -1908,17 +1908,17 @@ sizx82=800 sizy82=600 maxfps82=0 initts82=0 -title83=TOMB2.EXE -path83=D:\Games\Tomb Raider 2\TOMB2.EXE +title83=wa.exe +path83=D:\Games\worms_arma\Worms_2_Armageddon\wa.exe module83= opengllib83= ver83=0 coord83=0 -flag83=134217760 -flagg83=201326592 -flagh83=2068 +flag83=713031712 +flagg83=134217728 +flagh83=20 flagi83=0 -tflag83=0 +tflag83=2 initx83=0 inity83=0 minx83=0 @@ -1931,17 +1931,17 @@ sizx83=800 sizy83=600 maxfps83=0 initts83=0 -title84=Vangers one of the Road -path84=D:\Games\Vangers\road.exe +title84=Wargames +path84=D:\Games\WarGames\wargames.exe module84= opengllib84= -ver84=1 +ver84=0 coord84=0 -flag84=406847650 -flagg84=671088640 -flagh84=262164 +flag84=134217762 +flagg84=1207959552 +flagh84=20 flagi84=0 -tflag84=258 +tflag84=66 initx84=0 inity84=0 minx84=0 @@ -1954,14 +1954,14 @@ sizx84=800 sizy84=600 maxfps84=0 initts84=0 -title85=wa.exe -path85=D:\Games\worms_arma\Worms_2_Armageddon\wa.exe +title85=Warlords 3 +path85=D:\Games\Warlords3\Darklord.exe module85= opengllib85= ver85=0 coord85=0 -flag85=713031712 -flagg85=142606336 +flag85=-2013249502 +flagg85=135266304 flagh85=20 flagi85=0 tflag85=2 @@ -1977,17 +1977,17 @@ sizx85=800 sizy85=600 maxfps85=0 initts85=0 -title86=Wargames -path86=D:\Games\WarGames\wargames.exe +title86=Western Front +path86=D:\Games\Western Front\wf.exe module86= opengllib86= ver86=0 coord86=0 -flag86=134217762 -flagg86=1207959552 -flagh86=20 +flag86=679477282 +flagg86=135266304 +flagh86=16404 flagi86=0 -tflag86=66 +tflag86=0 initx86=0 inity86=0 minx86=0 @@ -2000,17 +2000,17 @@ sizx86=800 sizy86=600 maxfps86=0 initts86=0 -title87=Warlords 3 -path87=D:\Games\Warlords3\Darklord.exe +title87=dw.exe +path87=D:\Games\Devil.Whiskey\dw.exe module87= opengllib87= -ver87=0 +ver87=7 coord87=0 -flag87=-2013249502 -flagg87=135266304 -flagh87=20 +flag87=671088674 +flagg87=1208090624 +flagh87=5 flagi87=0 -tflag87=2 +tflag87=64 initx87=0 inity87=0 minx87=0 @@ -2023,15 +2023,15 @@ sizx87=800 sizy87=600 maxfps87=0 initts87=0 -title88=Western Front -path88=D:\Games\Western Front\wf.exe +title88=Dungeon Lords MMXII +path88=D:\Games\Dungeon Lords MMXII\dlords2012.exe module88= opengllib88= ver88=0 -coord88=0 -flag88=679477282 -flagg88=135266304 -flagh88=16404 +coord88=2 +flag88=-2013265886 +flagg88=1207959552 +flagh88=20 flagi88=0 tflag88=0 initx88=0 @@ -2046,17 +2046,17 @@ sizx88=800 sizy88=600 maxfps88=0 initts88=0 -title89=dw.exe -path89=D:\Games\Devil.Whiskey\dw.exe +title89=Bunnies must die +path89=D:\Games\Bunnies must die\bmd.exe module89= opengllib89= ver89=7 coord89=0 flag89=671088674 -flagg89=1208090624 -flagh89=5 +flagg89=1209008128 +flagh89=4 flagi89=0 -tflag89=64 +tflag89=2 initx89=0 inity89=0 minx89=0 @@ -2069,17 +2069,17 @@ sizx89=800 sizy89=600 maxfps89=0 initts89=0 -title90=Dungeon Lords MMXII -path90=D:\Games\Dungeon Lords MMXII\dlords2012.exe +title90=Magic & Mayhem +path90=D:\Games\Magic_&_Mayhem\Chaos.exe module90= opengllib90= ver90=0 -coord90=2 -flag90=-2013265886 -flagg90=1207959552 +coord90=0 +flag90=138428450 +flagg90=1275068416 flagh90=20 flagi90=0 -tflag90=0 +tflag90=258 initx90=0 inity90=0 minx90=0 @@ -2092,15 +2092,15 @@ sizx90=800 sizy90=600 maxfps90=0 initts90=0 -title91=Bunnies must die -path91=D:\Games\Bunnies must die\bmd.exe +title91=Submarine Titans Demo +path91=D:\Games\Submarine Titans Demo\st.exe module91= opengllib91= -ver91=7 +ver91=0 coord91=0 -flag91=671088674 -flagg91=1209008128 -flagh91=4 +flag91=675282978 +flagg91=1207959552 +flagh91=20 flagi91=0 tflag91=2 initx91=0 @@ -2115,17 +2115,17 @@ sizx91=800 sizy91=600 maxfps91=0 initts91=0 -title92=Magic & Mayhem -path92=D:\Games\Magic_&_Mayhem\Chaos.exe +title92=Grand Prix Legends +path92=D:\Games\gpl\gpl.exe module92= opengllib92= ver92=0 -coord92=0 -flag92=138428450 -flagg92=1275068416 -flagh92=8388628 +coord92=2 +flag92=721420320 +flagg92=1207959568 +flagh92=20 flagi92=0 -tflag92=258 +tflag92=322 initx92=0 inity92=0 minx92=0 @@ -2138,17 +2138,17 @@ sizx92=800 sizy92=600 maxfps92=0 initts92=0 -title93=Submarine Titans Demo -path93=D:\Games\Submarine Titans Demo\st.exe +title93=Land of the Dead +path93=D:\Games\Land of the Dead\System\LOTD.exe module93= opengllib93= ver93=0 coord93=0 -flag93=675282978 +flag93=134217766 flagg93=1207959552 flagh93=20 flagi93=0 -tflag93=2 +tflag93=64 initx93=0 inity93=0 minx93=0 @@ -2161,17 +2161,17 @@ sizx93=800 sizy93=600 maxfps93=0 initts93=0 -title94=Grand Prix Legends -path94=D:\Games\gpl\gpl.exe +title94=Devastation +path94=D:\Games\Devastation\System\Devastation.exe module94= opengllib94= ver94=0 -coord94=2 -flag94=721420320 -flagg94=1207959568 -flagh94=20 +coord94=0 +flag94=671088674 +flagg94=1207959552 +flagh94=16 flagi94=0 -tflag94=322 +tflag94=66 initx94=0 inity94=0 minx94=0 @@ -2184,17 +2184,17 @@ sizx94=800 sizy94=600 maxfps94=0 initts94=0 -title95=Land of the Dead -path95=D:\Games\Land of the Dead\System\LOTD.exe +title95=RCRacers.exe +path95=D:\Games\Sierra\RCRacing\RCRacers.exe module95= opengllib95= ver95=0 coord95=0 -flag95=134217766 -flagg95=1207959552 -flagh95=20 +flag95=679477282 +flagg95=1209008128 +flagh95=65556 flagi95=0 -tflag95=64 +tflag95=66 initx95=0 inity95=0 minx95=0 @@ -2203,21 +2203,21 @@ maxx95=0 maxy95=0 posx95=50 posy95=50 -sizx95=800 -sizy95=600 +sizx95=400 +sizy95=300 maxfps95=0 initts95=0 -title96=Devastation -path96=D:\Games\Devastation\System\Devastation.exe +title96=Kiss Psycho Circus +path96=D:\Games\Kiss\psycho.exe module96= opengllib96= ver96=0 coord96=0 -flag96=671088674 +flag96=134217762 flagg96=1207959552 -flagh96=16 +flagh96=20 flagi96=0 -tflag96=66 +tflag96=64 initx96=0 inity96=0 minx96=0 @@ -2230,17 +2230,17 @@ sizx96=800 sizy96=600 maxfps96=0 initts96=0 -title97=RCRacers.exe -path97=D:\Games\Sierra\RCRacing\RCRacers.exe +title97=Hamsterball +path97=D:\Games\Hamsterball\Hamsterball.exe module97= opengllib97= -ver97=0 +ver97=8 coord97=0 -flag97=679477282 -flagg97=1209008128 -flagh97=65556 +flag97=134217762 +flagg97=1207959552 +flagh97=20 flagi97=0 -tflag97=66 +tflag97=323 initx97=0 inity97=0 minx97=0 @@ -2249,21 +2249,21 @@ maxx97=0 maxy97=0 posx97=50 posy97=50 -sizx97=400 -sizy97=300 +sizx97=800 +sizy97=600 maxfps97=0 initts97=0 -title98=Kiss Psycho Circus -path98=D:\Games\Kiss\psycho.exe +title98=Pharaoh's Ascent 1.4 +path98=D:\Games\Pharaohs_Ascent_1.4\Pharaoh.exe module98= opengllib98= ver98=0 coord98=0 -flag98=134217762 -flagg98=1207959552 +flag98=947912739 +flagg98=1209008128 flagh98=20 flagi98=0 -tflag98=64 +tflag98=66 initx98=0 inity98=0 minx98=0 @@ -2276,17 +2276,17 @@ sizx98=800 sizy98=600 maxfps98=0 initts98=0 -title99=Hamsterball -path99=D:\Games\Hamsterball\Hamsterball.exe +title99=Praetorians +path99=D:\Games\Praetorians\Praetorians.exe module99= opengllib99= -ver99=8 +ver99=0 coord99=0 -flag99=134217762 +flag99=134217760 flagg99=1207959552 flagh99=20 flagi99=0 -tflag99=323 +tflag99=258 initx99=0 inity99=0 minx99=0 @@ -2299,17 +2299,17 @@ sizx99=800 sizy99=600 maxfps99=0 initts99=0 -title100=Pharaoh's Ascent 1.4 -path100=D:\Games\Pharaohs_Ascent_1.4\Pharaoh.exe +title100=Chariots of War binkplay +path100=D:\Games\Chariots of War\data\movies\binkplay.exe module100= opengllib100= ver100=0 coord100=0 -flag100=947912739 -flagg100=1209008128 -flagh100=20 +flag100=671088674 +flagg100=1745879041 +flagh100=4 flagi100=0 -tflag100=66 +tflag100=2 initx100=0 inity100=0 minx100=0 @@ -2322,17 +2322,17 @@ sizx100=800 sizy100=600 maxfps100=0 initts100=0 -title101=Praetorians -path101=D:\Games\Praetorians\Praetorians.exe +title101=Jetboat Superchamps 2 +path101=D:\Games\Jetboat Superchamps 2\Jbs2.exe module101= opengllib101= ver101=0 coord101=0 flag101=134217760 flagg101=1207959552 -flagh101=20 +flagh101=4 flagi101=0 -tflag101=258 +tflag101=2 initx101=0 inity101=0 minx101=0 @@ -2345,17 +2345,17 @@ sizx101=800 sizy101=600 maxfps101=0 initts101=0 -title102=Chariots of War binkplay -path102=D:\Games\Chariots of War\data\movies\binkplay.exe +title102=Star Force Deluxe +path102=D:\Games\stardeluxe\DELUXE.EXE module102= opengllib102= ver102=0 coord102=0 -flag102=671088674 -flagg102=1745879041 -flagh102=4 +flag102=1207959587 +flagg102=1828716544 +flagh102=2163220 flagi102=0 -tflag102=2 +tflag102=259 initx102=0 inity102=0 minx102=0 @@ -2364,21 +2364,21 @@ maxx102=0 maxy102=0 posx102=50 posy102=50 -sizx102=800 -sizy102=600 +sizx102=400 +sizy102=300 maxfps102=0 initts102=0 -title103=Jetboat Superchamps 2 -path103=D:\Games\Jetboat Superchamps 2\Jbs2.exe +title103=Last Bronx +path103=D:\Games\Last_Bronx\LB.EXE module103= opengllib103= ver103=0 coord103=0 -flag103=134217760 +flag103=134217762 flagg103=1207959552 -flagh103=4 +flagh103=20 flagi103=0 -tflag103=2 +tflag103=259 initx103=0 inity103=0 minx103=0 @@ -2391,17 +2391,17 @@ sizx103=800 sizy103=600 maxfps103=0 initts103=0 -title104=Star Force Deluxe -path104=D:\Games\stardeluxe\DELUXE.EXE +title104=Riot Police +path104=D:\Games\Riot Police\RPolice.exe module104= opengllib104= ver104=0 coord104=0 -flag104=1207959587 -flagg104=1828716544 -flagh104=10551828 +flag104=134217762 +flagg104=1207959552 +flagh104=20 flagi104=0 -tflag104=259 +tflag104=2 initx104=0 inity104=0 minx104=0 @@ -2410,21 +2410,21 @@ maxx104=0 maxy104=0 posx104=50 posy104=50 -sizx104=400 -sizy104=300 +sizx104=800 +sizy104=600 maxfps104=0 initts104=0 -title105=Last Bronx -path105=D:\Games\Last_Bronx\LB.EXE +title105=Serious Sam Demo +path105=D:\Games\Serious Sam Demo\Bin\SeriousSam.exe module105= opengllib105= ver105=0 coord105=0 flag105=134217762 -flagg105=1207959552 +flagg105=1208090624 flagh105=20 flagi105=0 -tflag105=259 +tflag105=0 initx105=0 inity105=0 minx105=0 @@ -2437,17 +2437,17 @@ sizx105=800 sizy105=600 maxfps105=0 initts105=0 -title106=Riot Police -path106=D:\Games\Riot Police\RPolice.exe +title106=Space Rangers +path106=D:\Games\Space Rangers\Rangers.exe module106= opengllib106= -ver106=0 +ver106=1 coord106=0 -flag106=134217762 +flag106=134234146 flagg106=1207959552 flagh106=20 flagi106=0 -tflag106=2 +tflag106=0 initx106=0 inity106=0 minx106=0 @@ -2460,17 +2460,17 @@ sizx106=800 sizy106=600 maxfps106=0 initts106=0 -title107=Serious Sam Demo -path107=D:\Games\Serious Sam Demo\Bin\SeriousSam.exe +title107=Star Wars Shadow of the Empire +path107=D:\Games\Star Wars Shadow of the Empire\game\SDATA\SHADOWS.EXE module107= opengllib107= ver107=0 coord107=0 -flag107=134217762 -flagg107=1208090624 -flagh107=20 +flag107=201392162 +flagg107=1476919296 +flagh107=33554972 flagi107=0 -tflag107=0 +tflag107=275 initx107=0 inity107=0 minx107=0 @@ -2483,17 +2483,17 @@ sizx107=800 sizy107=600 maxfps107=0 initts107=0 -title108=Space Rangers -path108=D:\Games\Space Rangers\Rangers.exe +title108=Roswell Pinball +path108=D:\Games\RoswellPinball\winpin.exe module108= opengllib108= -ver108=1 +ver108=0 coord108=0 -flag108=134234146 +flag108=134217762 flagg108=1207959552 -flagh108=20 +flagh108=4 flagi108=0 -tflag108=0 +tflag108=258 initx108=0 inity108=0 minx108=0 @@ -2506,17 +2506,17 @@ sizx108=800 sizy108=600 maxfps108=0 initts108=0 -title109=Star Wars Shadow of the Empire -path109=D:\Games\Star Wars Shadow of the Empire\game\SDATA\SHADOWS.EXE +title109=Virtua Fighter PC +path109=D:\Games\Virtua Fighter\VFPC.EXE module109= opengllib109= ver109=0 coord109=0 -flag109=201392162 -flagg109=1476919296 -flagh109=41943580 +flag109=134219810 +flagg109=1207959556 +flagh109=167821334 flagi109=0 -tflag109=275 +tflag109=339 initx109=0 inity109=0 minx109=0 @@ -2528,18 +2528,18 @@ posy109=50 sizx109=800 sizy109=600 maxfps109=0 -initts109=0 -title110=Roswell Pinball -path110=D:\Games\RoswellPinball\winpin.exe +initts109=6 +title110=Theseus +path110=D:\Games\theseus\Theseus.exe module110= opengllib110= -ver110=0 +ver110=8 coord110=0 -flag110=134217762 +flag110=134217730 flagg110=1207959552 -flagh110=4 +flagh110=20 flagi110=0 -tflag110=258 +tflag110=0 initx110=0 inity110=0 minx110=0 @@ -2552,17 +2552,17 @@ sizx110=800 sizy110=600 maxfps110=0 initts110=0 -title111=Virtua Fighter PC -path111=D:\Games\Virtua Fighter\VFPC.EXE +title111=Star Wars Shadow of the Empire (DEMO) +path111=D:\Games\shadowsdemo\shadows.exe module111= opengllib111= ver111=0 coord111=0 -flag111=134219810 -flagg111=1207959556 -flagh111=998293526 +flag111=134217760 +flagg111=1208483840 +flagh111=33554452 flagi111=0 -tflag111=339 +tflag111=275 initx111=0 inity111=0 minx111=0 @@ -2574,18 +2574,18 @@ posy111=50 sizx111=800 sizy111=600 maxfps111=0 -initts111=6 -title112=Theseus -path112=D:\Games\theseus\Theseus.exe +initts111=0 +title112=Chocolate Duke 3D +path112=D:\Games\Release Chocolate Duke3D\ChocolateDuke3D.exe module112= opengllib112= -ver112=8 +ver112=0 coord112=0 -flag112=134217730 -flagg112=1207959552 -flagh112=20 +flag112=671088672 +flagg112=1207959808 +flagh112=98324 flagi112=0 -tflag112=0 +tflag112=3 initx112=0 inity112=0 minx112=0 @@ -2594,21 +2594,21 @@ maxx112=0 maxy112=0 posx112=50 posy112=50 -sizx112=800 -sizy112=600 +sizx112=400 +sizy112=300 maxfps112=0 initts112=0 -title113=Star Wars Shadow of the Empire (DEMO) -path113=D:\Games\shadowsdemo\shadows.exe +title113=Tomb Raider III (SW emulation) +path113=D:\Games\Tomb Raider III\tomb3.exe module113= opengllib113= ver113=0 coord113=0 -flag113=134217760 -flagg113=1208483840 -flagh113=58720276 +flag113=134217762 +flagg113=1241513984 +flagh113=33554452 flagi113=0 -tflag113=275 +tflag113=323 initx113=0 inity113=0 minx113=0 @@ -2621,17 +2621,17 @@ sizx113=800 sizy113=600 maxfps113=0 initts113=0 -title114=Chocolate Duke 3D -path114=D:\Games\Release Chocolate Duke3D\ChocolateDuke3D.exe +title114=Tomb Raider III (HW acceleration) +path114=D:\Games\Tomb Raider III\tomb3.exe module114= opengllib114= ver114=0 coord114=0 -flag114=671088672 -flagg114=1207959808 -flagh114=98324 +flag114=134217760 +flagg114=1241514000 +flagh114=4 flagi114=0 -tflag114=3 +tflag114=0 initx114=0 inity114=0 minx114=0 @@ -2640,21 +2640,21 @@ maxx114=0 maxy114=0 posx114=50 posy114=50 -sizx114=400 -sizy114=300 +sizx114=800 +sizy114=600 maxfps114=0 initts114=0 -title115=Tomb Raider III (SW emulation) -path115=D:\Games\Tomb Raider III\tomb3.exe +title115=Star Wars Phantom Menace +path115=D:\Games\Star Wars Phantom Menace\WMAIN.EXE module115= opengllib115= ver115=0 coord115=0 -flag115=134217762 -flagg115=1241513984 -flagh115=58720276 +flag115=939524129 +flagg115=1207959552 +flagh115=20 flagi115=0 -tflag115=323 +tflag115=0 initx115=0 inity115=0 minx115=0 @@ -2667,15 +2667,15 @@ sizx115=800 sizy115=600 maxfps115=0 initts115=0 -title116=Tomb Raider III (HW acceleration) -path116=D:\Games\Tomb Raider III\tomb3.exe +title116=Last Call +path116=D:\Games\Last Call\fast.EXE module116= opengllib116= ver116=0 coord116=0 -flag116=134217760 -flagg116=1241514000 -flagh116=25165828 +flag116=134217762 +flagg116=1207959552 +flagh116=20 flagi116=0 tflag116=0 initx116=0 @@ -2690,15 +2690,15 @@ sizx116=800 sizy116=600 maxfps116=0 initts116=0 -title117=Star Wars Phantom Menace -path117=D:\Games\Star Wars Phantom Menace\WMAIN.EXE +title117=Empire Earth +path117=D:\Games\Empire Earth\Empire Earth.exe module117= opengllib117= ver117=0 coord117=0 -flag117=939524129 +flag117=671088674 flagg117=1207959552 -flagh117=20 +flagh117=32788 flagi117=0 tflag117=0 initx117=0 @@ -2713,8 +2713,8 @@ sizx117=800 sizy117=600 maxfps117=0 initts117=0 -title118=Last Call -path118=D:\Games\Last Call\fast.EXE +title118=Warcraft 2 Battlenet Edition +path118=D:\Games\Warcraft 2 Battlenet Ed\Warcraft II BNE.exe module118= opengllib118= ver118=0 @@ -2736,15 +2736,15 @@ sizx118=800 sizy118=600 maxfps118=0 initts118=0 -title119=Empire Earth -path119=D:\Games\Empire Earth\Empire Earth.exe +title119=Lifestream +path119=D:\Games\Lifestream\Lifestream.exe module119= opengllib119= ver119=0 coord119=0 -flag119=671088674 +flag119=134217762 flagg119=1207959552 -flagh119=32788 +flagh119=20 flagi119=0 tflag119=0 initx119=0 @@ -2759,15 +2759,15 @@ sizx119=800 sizy119=600 maxfps119=0 initts119=0 -title120=Warcraft 2 Battlenet Edition -path120=D:\Games\Warcraft 2 Battlenet Ed\Warcraft II BNE.exe +title120=Rayman 2 (GOG) +path120=D:\Games\GOG.com\Rayman 2\Rayman2.exe module120= opengllib120= -ver120=0 +ver120=1 coord120=0 -flag120=134217762 -flagg120=1207959552 -flagh120=25165844 +flag120=402653217 +flagg120=1208025104 +flagh120=20 flagi120=0 tflag120=0 initx120=0 @@ -2782,14 +2782,14 @@ sizx120=800 sizy120=600 maxfps120=0 initts120=0 -title121=Lifestream -path121=D:\Games\Lifestream\Lifestream.exe +title121=Rayman 2 Demo +path121=D:\Games\Rayman2Demo\Rayman2Demo.exe module121= opengllib121= -ver121=0 +ver121=1 coord121=0 -flag121=134217762 -flagg121=1207959552 +flag121=402653217 +flagg121=1208025088 flagh121=20 flagi121=0 tflag121=0 diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 59e1e26..6597f9d 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -280,5 +280,10 @@ Fixed a bug in GDI "Map DC to primary surface"mode. Added palette display window to GUI v2.02.41 -Added "suppress child process creation" flag. This flag is introduced to manage games such as "Heart of Iron 2" and "Chariots of War" that start intro movie by means of a separate process. Both games are starting the binkplay.exe program in the game's avi subfolder. This way you don't get a windowed movie, but completely suppress it. -Added "fix ddraw ref counter" flag, to have primary directdraw object addref & release ref counters identical to those without dxwnd. Some games check for the value and show error messages, i.e. "Grand Prix World"! \ No newline at end of file +Added "suppress child process creation"flag. This flag is introduced to manage games such as "Heart of Iron 2" that start intro movie by means of a separate process. HoI2 is starting the binkplay.exe program in the game's avi subfolder. This way you don't get a windowed movie, but completely suppress it. + +v2.02.42 +added hook to kernel32.dll QueryPerformanceCounter API to enable time stretching to Rayman 2 +handled GetAttachedSurface emulation for FLIP capability on primary surface - that makes the intro movies of Empire Earth visible. +Some code cleaning +Cleared invisible debug flags ... \ No newline at end of file diff --git a/build/v2_02_42_build.rar b/build/v2_02_42_build.rar new file mode 100644 index 0000000000000000000000000000000000000000..f38f8670ce95d7283deb755c3da1072fc0b51c0c GIT binary patch literal 225391 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 & DDSCAPS_BACKBUFFER){ // WIPWIP + if(IsPrim && (lpddsc->dwCaps & (DDSCAPS_BACKBUFFER|DDSCAPS_FLIP))) { // v2.02.42 added DDSCAPS_FLIP for Empire Earth if (lpDDSBack) { *lplpddas = lpDDSBack; OutTraceD("GetAttachedSurface(%d): BACKBUFFER attached=%x\n", dxversion, *lplpddas); @@ -2815,14 +2806,16 @@ HRESULT WINAPI extGetAttachedSurface(int dxversion, GetAttachedSurface_Type pGet return DDERR_NOTFOUND; } } - else{ - res=(*pGetAttachedSurface)(lpdds, lpddsc, lplpddas); - if(res) - OutTraceE("GetAttachedSurface(%d): ERROR res=%x(%s) at %d\n", dxversion, res, ExplainDDError(res), __LINE__); - else - OutTraceD("GetAttachedSurface(%d): attached=%x\n", dxversion, *lplpddas); - return res; - } + + // proxy the call... + + res=(*pGetAttachedSurface)(lpdds, lpddsc, lplpddas); + if(res) + OutTraceE("GetAttachedSurface(%d): ERROR res=%x(%s) at %d\n", dxversion, res, ExplainDDError(res), __LINE__); + else + OutTraceD("GetAttachedSurface(%d): attached=%x\n", dxversion, *lplpddas); + return res; + } HRESULT WINAPI extGetAttachedSurface1(LPDIRECTDRAWSURFACE lpdds, LPDDSCAPS lpddsc, LPDIRECTDRAWSURFACE *lplpddas) @@ -4191,19 +4184,6 @@ HRESULT WINAPI extGetCaps7S(LPDIRECTDRAWSURFACE lpdds, LPDDSCAPS2 caps) return extGetCapsS(7, (GetCapsS_Type)pGetCaps7S, lpdds, (LPDDSCAPS)caps); } -#define FIXREFCOUNTERS 1 -#define ZEROREFCOUNTERS 0 - -HRESULT WINAPI DumpHandle(LPDIRECTDRAWSURFACE lpDDSurface, LPDDSURFACEDESC lpDDSurfaceDesc, LPVOID lpContext) -{ - OutTrace("lpdds=%x flags=%x(%s) caps=%x(%s); ", - lpDDSurface, - lpDDSurfaceDesc->dwFlags, ExplainFlags(lpDDSurfaceDesc->dwFlags), - lpDDSurfaceDesc->ddsCaps.dwCaps, ExplainDDSCaps(lpDDSurfaceDesc->ddsCaps.dwCaps)); - lpDDSurface->Release(); - return DDENUMRET_OK; -} - ULONG WINAPI extReleaseD(LPDIRECTDRAW lpdd) { ULONG ActualRef; @@ -4216,15 +4196,9 @@ ULONG WINAPI extReleaseD(LPDIRECTDRAW lpdd) ActualRef=(*pReleaseD)(lpdd); VirtualRef=(LONG)ActualRef; OutTraceD("Release(D): lpdd=%x service_lpdd=%x ref=%d\n", lpdd, lpPrimaryDD, ActualRef); - if(IsDebug && ActualRef){ - OutTrace("Release(D): surfaces "); - //(*pEnumSurfaces)(lpdd, DDENUMSURFACES_DOESEXIST|DDENUMSURFACES_ALL, NULL, NULL, DumpHandle); - lpdd->EnumSurfaces(DDENUMSURFACES_DOESEXIST|DDENUMSURFACES_ALL, NULL, NULL, DumpHandle); - OutTrace("\n"); - } if (lpdd == lpPrimaryDD) { // v2.1.87: fix for Dungeon Keeper II - if(FIXREFCOUNTERS){ + if(dxw.dwFlags4 & FIXREFCOUNTER){ // v2.02.41: fix the ref counter to sumulate the unwindowed original situation --VirtualRef; // why ???? if(lpDDSBack) --VirtualRef; @@ -4247,9 +4221,6 @@ ULONG WINAPI extReleaseD(LPDIRECTDRAW lpdd) lpDDSBack=NULL; // beware: Silent Hunter II seems to require the backbuffer .... } } - if(ZEROREFCOUNTERS){ - VirtualRef=0; - } } OutTraceD("Release(D): lpdd=%x ref=%x\n", lpdd, VirtualRef); diff --git a/dll/dxwcore.cpp b/dll/dxwcore.cpp index 532eab8..416be65 100644 --- a/dll/dxwcore.cpp +++ b/dll/dxwcore.cpp @@ -831,6 +831,13 @@ DWORD dxwCore::StretchTime(DWORD dwTimer) return dwTimer; } +DWORD dxwCore::StretchCounter(DWORD dwTimer) +{ + TimeShift=GetHookInfo()->TimeShift; + dwTimer = TimeShifter(dwTimer, TimeShift); + return dwTimer; +} + void dxwCore::GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime) { DWORD dwTick; diff --git a/dll/dxwcore.hpp b/dll/dxwcore.hpp index e144ceb..eee6084 100644 --- a/dll/dxwcore.hpp +++ b/dll/dxwcore.hpp @@ -64,6 +64,7 @@ public: // methods void GetSystemTime(LPSYSTEMTIME lpSystemTime); void GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime); DWORD StretchTime(DWORD); + DWORD StretchCounter(DWORD); void ShowFPS(LPDIRECTDRAWSURFACE); void ShowFPS(void); void ShowFPS(HDC); diff --git a/dll/dxwnd.aps b/dll/dxwnd.aps index 4763a19158eb5e09ef061c09e2ea7634df044938..e290c46378e7a73038d6dc6ab312383ba7f9695f 100644 GIT binary patch delta 28 icmZ3mjA_9#rU?;@MjInV`x%Wk=l82H0jVhydl&(hmkIm; delta 28 icmZ3mjA_9#rU?;@h8rVA`xy;4=l82H0jVhydl&(haS8bV diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index 28d5898..7ff8e88 100644 --- a/dll/dxwnd.cpp +++ b/dll/dxwnd.cpp @@ -24,7 +24,7 @@ along with this program. If not, see . #include "dxwnd.h" #include "dxwcore.hpp" -#define VERSION "2.02.41" +#define VERSION "2.02.42" #define DDTHREADLOCK 1 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index cb3392547a6037616098ac7329ad20bc706fe8cc..4ac485db6b040a204b45b5352ab9c2430029eda5 100644 GIT binary patch delta 40711 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 ziCm_DCEmulationMode = 0; - if(t->flags2 & HOOKGDI) dlg->m_DCEmulationMode = 1; - if(t->flags3 & EMULATEDC) dlg->m_DCEmulationMode = 2; - if(t->flags & MAPGDITOPRIMARY) dlg->m_DCEmulationMode = 3; -*/ - -static HookEntry_Type Hooks[]={ - {"GetDeviceCaps", (FARPROC)GetDeviceCaps, (FARPROC *)&pGDIGetDeviceCaps, (FARPROC)extGetDeviceCaps}, - {"ScaleWindowExtEx", (FARPROC)ScaleWindowExtEx, (FARPROC *)&pGDIScaleWindowExtEx, (FARPROC)extScaleWindowExtEx}, - {"SaveDC", (FARPROC)SaveDC, (FARPROC *)&pGDISaveDC, (FARPROC)extGDISaveDC}, - {"RestoreDC", (FARPROC)RestoreDC, (FARPROC *)&pGDIRestoreDC, (FARPROC)extGDIRestoreDC}, - {"CreatePalette", (FARPROC)CreatePalette, (FARPROC *)&pGDICreatePalette, (FARPROC)extGDICreatePalette}, - {"SelectPalette", (FARPROC)SelectPalette, (FARPROC *)&pGDISelectPalette, (FARPROC)extSelectPalette}, - {"RealizePalette", (FARPROC)RealizePalette, (FARPROC *)&pGDIRealizePalette, (FARPROC)extRealizePalette}, - {"GetSystemPaletteEntries", (FARPROC)GetSystemPaletteEntries, (FARPROC *)&pGDIGetSystemPaletteEntries, (FARPROC)extGetSystemPaletteEntries}, - {"StretchDIBits", (FARPROC)StretchDIBits, (FARPROC *)&pStretchDIBits, (FARPROC)extStretchDIBits}, - //{"SetDIBitsToDevice", (FARPROC)NULL, (FARPROC *)&pSetDIBitsToDevice, (FARPROC)extSetDIBitsToDevice}, - //{"CreateCompatibleBitmap", (FARPROC)NULL, (FARPROC *)&pCreateCompatibleBitmap, (FARPROC)extCreateCompatibleBitmap}, - {0, NULL, 0, 0} // terminator -}; - -static HookEntry_Type RemapHooks[]={ - {"SetViewportOrgEx", (FARPROC)SetViewportOrgEx, (FARPROC *)&pSetViewportOrgEx, (FARPROC)extSetViewportOrgEx}, // needed in ShowBanner - {"SetViewportExtEx", (FARPROC)NULL, (FARPROC *)&pSetViewportExtEx, (FARPROC)extSetViewportExtEx}, - {"GetViewportOrgEx", (FARPROC)NULL, (FARPROC *)&pGetViewportOrgEx, (FARPROC)extGetViewportOrgEx}, - {"GetWindowOrgEx", (FARPROC)NULL, (FARPROC *)&pGetWindowOrgEx, (FARPROC)extGetWindowOrgEx}, - {"SetWindowOrgEx", (FARPROC)NULL, (FARPROC *)&pSetWindowOrgEx, (FARPROC)extSetWindowOrgEx}, - {"GetCurrentPositionEx", (FARPROC)NULL, (FARPROC *)&pGetCurrentPositionEx, (FARPROC)extGetCurrentPositionEx}, - {"StretchDIBits", (FARPROC)StretchDIBits, (FARPROC *)&pStretchDIBits, (FARPROC)extStretchDIBits}, // unuseful - {"SetDIBitsToDevice", (FARPROC)NULL, (FARPROC *)&pSetDIBitsToDevice, (FARPROC)extSetDIBitsToDevice}, // does the stretching - {0, NULL, 0, 0} // terminator -}; - -static HookEntry_Type ScaledHooks[]={ - {"Rectangle", (FARPROC)Rectangle, (FARPROC *)&pGDIRectangle, (FARPROC)extRectangle}, - {"TextOutA", (FARPROC)TextOutA, (FARPROC *)&pGDITextOutA, (FARPROC)extTextOutA}, - {"GetClipBox", (FARPROC)NULL, (FARPROC *)&pGDIGetClipBox, (FARPROC)extGetClipBox}, - {"Polyline", (FARPROC)NULL, (FARPROC *)&pPolyline, (FARPROC)extPolyline}, - {"PolyBezierTo", (FARPROC)NULL, (FARPROC *)&pPolyBezierTo, (FARPROC)extPolyBezierTo}, - {"PolylineTo", (FARPROC)NULL, (FARPROC *)&pPolylineTo, (FARPROC)extPolylineTo}, - {"PolyDraw", (FARPROC)NULL, (FARPROC *)&pPolyDraw, (FARPROC)extPolyDraw}, - {"MoveToEx", (FARPROC)NULL, (FARPROC *)&pMoveToEx, (FARPROC)extMoveToEx}, - {"ArcTo", (FARPROC)NULL, (FARPROC *)&pArcTo, (FARPROC)extArcTo}, - {"LineTo", (FARPROC)NULL, (FARPROC *)&pLineTo, (FARPROC)extLineTo}, - {"SetPixel", (FARPROC)NULL, (FARPROC *)&pSetPixel, (FARPROC)extSetPixel}, - {"Ellipse", (FARPROC)NULL, (FARPROC *)&pEllipse, (FARPROC)extEllipse}, - {"Polygon", (FARPROC)NULL, (FARPROC *)&pPolygon, (FARPROC)extPolygon}, - {"Arc", (FARPROC)NULL, (FARPROC *)&pArc, (FARPROC)extArc}, - {"CreateEllipticRgn", (FARPROC)NULL, (FARPROC *)&pCreateEllipticRgn, (FARPROC)extCreateEllipticRgn}, - {"CreateEllipticRgnIndirect", (FARPROC)NULL, (FARPROC *)&pCreateEllipticRgnIndirect, (FARPROC)extCreateEllipticRgnIndirect}, - {"CreateRectRgn", (FARPROC)NULL, (FARPROC *)&pCreateRectRgn, (FARPROC)extCreateRectRgn}, - {"CreateRectRgnIndirect", (FARPROC)NULL, (FARPROC *)&pCreateRectRgnIndirect, (FARPROC)extCreateRectRgnIndirect}, - {"CreatePolygonRgn", (FARPROC)NULL, (FARPROC *)&pCreatePolygonRgn, (FARPROC)extCreatePolygonRgn}, - {"DrawTextA", (FARPROC)NULL, (FARPROC *)&pDrawText, (FARPROC)extDrawText}, - {"DrawTextExA", (FARPROC)NULL, (FARPROC *)&pDrawTextEx, (FARPROC)extDrawTextEx}, - {0, NULL, 0, 0} // terminator -}; - -static HookEntry_Type EmulateHooks[]={ - {0, NULL, 0, 0} // terminator -}; - -static HookEntry_Type DDHooks[]={ - {"CreateCompatibleDC", (FARPROC)CreateCompatibleDC, (FARPROC *)&pGDICreateCompatibleDC, (FARPROC)extDDCreateCompatibleDC}, - {"DeleteDC", (FARPROC)DeleteDC, (FARPROC *)&pGDIDeleteDC, (FARPROC)extDDDeleteDC}, - {"CreateDCA", (FARPROC)CreateDCA, (FARPROC *)&pGDICreateDC, (FARPROC)extDDCreateDC}, - {"BitBlt", (FARPROC)BitBlt, (FARPROC *)&pGDIBitBlt, (FARPROC)extDDBitBlt}, - {"StretchBlt", (FARPROC)StretchBlt, (FARPROC *)&pGDIStretchBlt, (FARPROC)extDDStretchBlt}, - // {"PatBlt", (FARPROC)PatBlt, (FARPROC *)&pGDIPatBlt, (FARPROC)extDDPatBlt}, // missing one ... - // {"MaskBlt", (FARPROC)NULL, (FARPROC *)&pMaskBlt, (FARPROC)extMaskBlt}, - {0, NULL, 0, 0} // terminator -}; - -static HookEntry_Type GDIHooks[]={ - {"CreateCompatibleDC", (FARPROC)CreateCompatibleDC, (FARPROC *)&pGDICreateCompatibleDC, (FARPROC)extGDICreateCompatibleDC}, - {"DeleteDC", (FARPROC)DeleteDC, (FARPROC *)&pGDIDeleteDC, (FARPROC)extGDIDeleteDC}, - {"CreateDCA", (FARPROC)CreateDCA, (FARPROC *)&pGDICreateDC, (FARPROC)extGDICreateDC}, - {"BitBlt", (FARPROC)BitBlt, (FARPROC *)&pGDIBitBlt, (FARPROC)extGDIBitBlt}, - {"StretchBlt", (FARPROC)StretchBlt, (FARPROC *)&pGDIStretchBlt, (FARPROC)extGDIStretchBlt}, - {"PatBlt", (FARPROC)PatBlt, (FARPROC *)&pGDIPatBlt, (FARPROC)extGDIPatBlt}, - {"MaskBlt", (FARPROC)NULL, (FARPROC *)&pMaskBlt, (FARPROC)extMaskBlt}, - {0, NULL, 0, 0} // terminator -}; - -static HookEntry_Type EmuHooks[]={ - {"CreateFontA", (FARPROC)CreateFont, (FARPROC *)&pGDICreateFont, (FARPROC)extCreateFont}, - {"CreateFontIndirectA", (FARPROC)CreateFontIndirectA, (FARPROC *)&pGDICreateFontIndirect, (FARPROC)extCreateFontIndirect}, - {0, NULL, 0, 0} // terminator -}; - -static HookEntry_Type GammaHooks[]={ - {"SetDeviceGammaRamp", (FARPROC)SetDeviceGammaRamp, (FARPROC *)&pGDISetDeviceGammaRamp, (FARPROC)extSetDeviceGammaRamp}, - {"GetDeviceGammaRamp", (FARPROC)GetDeviceGammaRamp, (FARPROC *)&pGDIGetDeviceGammaRamp, (FARPROC)extGetDeviceGammaRamp}, - {0, NULL, 0, 0} // terminator -}; - -static HookEntry_Type FontHooks[]={ - {"CreateScalableFontResourceA", (FARPROC)NULL, (FARPROC *)&pCreateScalableFontResourceA, (FARPROC)extCreateScalableFontResourceA}, - {"CreateScalableFontResourceW", (FARPROC)NULL, (FARPROC *)&pCreateScalableFontResourceW, (FARPROC)extCreateScalableFontResourceW}, - {"AddFontResourceA", (FARPROC)NULL, (FARPROC *)&pAddFontResourceA, (FARPROC)extAddFontResourceA}, - {"AddFontResourceW", (FARPROC)NULL, (FARPROC *)&pAddFontResourceW, (FARPROC)extAddFontResourceW}, - {0, NULL, 0, 0} // terminator -}; - -extern HRESULT WINAPI extDirectDrawCreate(GUID FAR *, LPDIRECTDRAW FAR *, IUnknown FAR *); -extern HRESULT WINAPI extDirectDrawCreateEx(GUID FAR *, LPDIRECTDRAW FAR *, REFIID, IUnknown FAR *); - -static char *libname = "gdi32.dll"; - -void HookGDI32Init() -{ - HookLibInit(Hooks); - HookLibInit(RemapHooks); - HookLibInit(DDHooks); - HookLibInit(EmuHooks); - HookLibInit(GammaHooks); -} - -void HookGDI32(HMODULE module) -{ - HookLibrary(module, Hooks, libname); - - if(dxw.dwFlags1 & CLIENTREMAPPING) - HookLibrary(module, RemapHooks, libname); - - if(dxw.dwFlags3 & EMULATEDC) - HookLibrary(module, EmulateHooks, libname); - HookLibrary(module, ScaledHooks, libname); - HookLibrary(module, GDIHooks, libname); - - if(dxw.dwFlags2 & HOOKGDI){ - HookLibrary(module, EmulateHooks, libname); - HookLibrary(module, ScaledHooks, libname); - HookLibrary(module, GDIHooks, libname); - } - - if(dxw.dwFlags1 & MAPGDITOPRIMARY){ - HookLibrary(module, EmulateHooks, libname); - HookLibrary(module, ScaledHooks, libname); - HookLibrary(module, DDHooks, libname); - } - - if ((dxw.dwFlags1 & EMULATESURFACE) && (dxw.dwFlags1 & HANDLEDC)) - HookLibrary(module, EmuHooks, libname); - - if(dxw.dwFlags2 & DISABLEGAMMARAMP) - HookLibrary(module, GammaHooks, libname); - - if(dxw.dwFlags3 & FONTBYPASS) // v2.02.33 - for "Stratego" compatibility option - HookLibrary(module, FontHooks, libname); -} - -FARPROC Remap_GDI32_ProcAddress(LPCSTR proc, HMODULE hModule) -{ - FARPROC addr; - - if(addr=RemapLibrary(proc, hModule, Hooks)) return addr; - - if(dxw.dwFlags1 & CLIENTREMAPPING) - if(addr=RemapLibrary(proc, hModule, RemapHooks)) return addr; - - if(dxw.dwFlags3 & EMULATEDC){ - if (addr=RemapLibrary(proc, hModule, EmulateHooks)) return addr; - if (addr=RemapLibrary(proc, hModule, ScaledHooks)) return addr; - if (addr=RemapLibrary(proc, hModule, GDIHooks)) return addr; - } - - if(dxw.dwFlags2 & HOOKGDI){ - if (addr=RemapLibrary(proc, hModule, EmulateHooks)) return addr; - if (addr=RemapLibrary(proc, hModule, ScaledHooks)) return addr; - if (addr=RemapLibrary(proc, hModule, GDIHooks)) return addr; - } - - if(dxw.dwFlags1 & MAPGDITOPRIMARY){ - if (addr=RemapLibrary(proc, hModule, EmulateHooks)) return addr; - if (addr=RemapLibrary(proc, hModule, ScaledHooks)) return addr; - if (addr=RemapLibrary(proc, hModule, DDHooks)) return addr; - } - - if ((dxw.dwFlags1 & EMULATESURFACE) && (dxw.dwFlags1 & HANDLEDC)) - if(addr=RemapLibrary(proc, hModule, EmuHooks)) return addr; - - if(dxw.dwFlags2 & DISABLEGAMMARAMP) - if(addr=RemapLibrary(proc, hModule, GammaHooks)) return addr; - - if(1) // v2.02.33 - for "Stratego" compatibility option - if(addr=RemapLibrary(proc, hModule, FontHooks)) return addr; - - return NULL; -} - -//-------------------------------------------------------------------------------------------- -// -// extern and common functions -// -//-------------------------------------------------------------------------------------------- - -extern DEVMODE *pSetDevMode; -extern DWORD PaletteEntries[256]; -extern Unlock4_Type pUnlockMethod(LPDIRECTDRAWSURFACE); -extern HRESULT WINAPI sBlt(char *, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDBLTFX, BOOL); - -extern GetDC_Type pGetDC; -extern ReleaseDC_Type pReleaseDC; - -static COLORREF GetMatchingColor(COLORREF crColor) -{ - int iDistance, iMinDistance; - int iColorIndex, iMinColorIndex; - COLORREF PalColor; - - iMinDistance=0xFFFFFF; - iMinColorIndex=0; - - for(iColorIndex=0; iColorIndex<256; iColorIndex++){ - int iDist; - iDistance=0; - - PalColor=PaletteEntries[iColorIndex]; - switch(dxw.ActualPixelFormat.dwRGBBitCount){ - case 32: - PalColor = ((PalColor & 0x00FF0000) >> 16) | (PalColor & 0x0000FF00) | ((PalColor & 0x000000FF) << 16); - break; - case 16: - if(dxw.ActualPixelFormat.dwGBitMask==0x03E0){ - // RGB555 screen settings - PalColor = ((PalColor & 0x7C00) >> 7) | ((PalColor & 0x03E0) << 6) | ((PalColor & 0x001F) << 19); - } - else { - // RGB565 screen settings - PalColor = ((PalColor & 0xF800) >> 8) | ((PalColor & 0x07E0) << 5) | ((PalColor & 0x001F) << 19); - } - break; - } - - iDist = (crColor & 0x00FF0000) - (PalColor & 0x00FF0000); - iDist >>= 16; - if (iDist<0) iDist=-iDist; - iDist *= iDist; - iDistance += iDist; - - iDist = (crColor & 0x0000FF00) - (PalColor & 0x0000FF00); - iDist >>= 8; - if (iDist<0) iDist=-iDist; - iDist *= iDist; - iDistance += iDist; - - iDist = (crColor & 0x000000FF) - (PalColor & 0x000000FF); - // iDist >>= 0; - if (iDist<0) iDist=-iDist; - iDist *= iDist; - iDistance += iDist; - - if (iDistance < iMinDistance) { - iMinDistance = iDistance; - iMinColorIndex = iColorIndex; - } - - if (iMinDistance==0) break; // got the perfect match! - } - OutTraceD("GetMatchingColor: color=%x matched with palette[%d]=%x dist=%d\n", - crColor, iMinColorIndex, PaletteEntries[iMinColorIndex], iDistance); - PalColor=PaletteEntries[iMinColorIndex]; - switch(dxw.ActualPixelFormat.dwRGBBitCount){ - case 32: - crColor = ((PalColor & 0x00FF0000) >> 16) | (PalColor & 0x0000FF00) | ((PalColor & 0x000000FF) << 16); - break; - case 16: - if(dxw.ActualPixelFormat.dwGBitMask==0x03E0){ - // RGB555 screen settings - crColor = ((PalColor & 0x7C00) >> 7) | ((PalColor & 0x03E0) << 6) | ((PalColor & 0x001F) << 19); - } - else { - // RGB565 screen settings - crColor = ((PalColor & 0xF800) >> 8) | ((PalColor & 0x07E0) << 5) | ((PalColor & 0x001F) << 19); - } - break; - } - return crColor; -} - -//-------------------------------------------------------------------------------------------- -// -// API hookers -// -//-------------------------------------------------------------------------------------------- - -int WINAPI extGetDeviceCaps(HDC hdc, int nindex) -{ - DWORD res; - - res = (*pGDIGetDeviceCaps)(hdc, nindex); - OutTraceD("GetDeviceCaps: hdc=%x index=%x(%s) res=%x\n", - hdc, nindex, ExplainDeviceCaps(nindex), res); - -#ifdef GDIEMULATIONONLY - switch(nindex){ - case VERTRES: - res= dxw.GetScreenHeight(); - OutTraceD("GetDeviceCaps: fix(0) VERTRES cap=%d\n", res); - break; - case HORZRES: - res= dxw.GetScreenWidth(); - OutTraceD("GetDeviceCaps: fix(0) HORZRES cap=%d\n", res); - break; - } - return res; -#endif - - // if you have a bypassed setting, use it first! - if(pSetDevMode){ - switch(nindex){ - case BITSPIXEL: - case COLORRES: - res = pSetDevMode->dmBitsPerPel; - OutTraceD("GetDeviceCaps: fix(1) BITSPIXEL/COLORRES cap=%x\n",res); - return res; - case HORZRES: - res = pSetDevMode->dmPelsWidth; - OutTraceD("GetDeviceCaps: fix(1) HORZRES cap=%d\n", res); - return res; - case VERTRES: - res = pSetDevMode->dmPelsHeight; - OutTraceD("GetDeviceCaps: fix(1) VERTRES cap=%d\n", res); - return res; - } - } - - switch(nindex){ - case VERTRES: - res= dxw.GetScreenHeight(); - OutTraceD("GetDeviceCaps: fix(2) VERTRES cap=%d\n", res); - break; - case HORZRES: - res= dxw.GetScreenWidth(); - OutTraceD("GetDeviceCaps: fix(2) HORZRES cap=%d\n", res); - break; - // WARNING: in no-emu mode, the INIT8BPP and INIT16BPP flags expose capabilities that - // are NOT implemented and may cause later troubles! - case RASTERCAPS: - if(dxw.dwFlags2 & INIT8BPP) { - res |= RC_PALETTE; // v2.02.12 - OutTraceD("GetDeviceCaps: fix(2) RASTERCAPS setting RC_PALETTE cap=%x\n",res); - } - break; - case BITSPIXEL: - case COLORRES: - if(dxw.dwFlags2 & (INIT8BPP|INIT16BPP)){ // v2.02.32 fix - if(dxw.dwFlags2 & INIT8BPP) res = 8; - if(dxw.dwFlags2 & INIT16BPP) res = 16; - OutTraceD("GetDeviceCaps: fix(2) BITSPIXEL/COLORRES cap=%d\n",res); - } - break; - //case NUMCOLORS: // numcolors windows bug fix.... - // if(res == -1) res=1; - // return res; - } - - if(dxw.dwFlags1 & EMULATESURFACE){ - switch(nindex){ - case RASTERCAPS: - if((dxw.VirtualPixelFormat.dwRGBBitCount==8) || (dxw.dwFlags2 & INIT8BPP)){ - res = RC_PALETTE; - OutTraceD("GetDeviceCaps: fix(3) RASTERCAPS setting RC_PALETTE cap=%x\n",res); - } - break; - case BITSPIXEL: - case COLORRES: - int PrevRes; - PrevRes=res; - if(dxw.VirtualPixelFormat.dwRGBBitCount!=0) res = dxw.VirtualPixelFormat.dwRGBBitCount; - if(dxw.dwFlags2 & INIT8BPP) res = 8; - if(dxw.dwFlags2 & INIT16BPP) res = 16; - if(PrevRes != res) OutTraceD("GetDeviceCaps: fix(3) BITSPIXEL/COLORRES cap=%d\n",res); - break; - case SIZEPALETTE: - res = 256; - OutTraceD("GetDeviceCaps: fix(3) SIZEPALETTE cap=%x\n",res); - break; - case NUMRESERVED: - res = 0; - OutTraceD("GetDeviceCaps: fix(3) NUMRESERVED cap=%x\n",res); - break; - } - } - return res; -} - -BOOL WINAPI extTextOutA(HDC hdc, int nXStart, int nYStart, LPCTSTR lpString, int cchString) -{ - BOOL ret; - OutTraceD("TextOut: hdc=%x xy=(%d,%d) str=(%d)\"%s\"\n", hdc, nXStart, nYStart, cchString, lpString); - - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.MapClient(&nXStart, &nYStart); - OutTraceD("TextOut: fixed dest=(%d,%d)\n", nXStart, nYStart); - } - - ret=(*pGDITextOutA)(hdc, nXStart, nYStart, lpString, cchString); - if(!ret) OutTraceE("TextOut: ERROR ret=%x\n", ret); - return ret; -} - -BOOL WINAPI extScaleWindowExtEx(HDC hdc, int Xnum, int Xdenom, int Ynum, int Ydenom, LPSIZE lpSize) -{ - OutTraceD("ScaleWindowExtEx: hdc=%x num=(%d,%d) denom=(%d,%d) lpSize=%d\n", - hdc, Xnum, Ynum, Xdenom, Ydenom, lpSize); - - MessageBox(0, "ScaleWindowExtEx", "to fix", MB_OK | MB_ICONEXCLAMATION); - - return (*pGDIScaleWindowExtEx)(hdc, Xnum, Xdenom, Ynum, Ydenom, lpSize); -} - -BOOL WINAPI extRectangle(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect) -{ - int ret; - - OutTraceD("Rectangle: hdc=%x xy=(%d,%d)-(%d,%d)\n", hdc, nLeftRect, nTopRect, nRightRect, nBottomRect); - - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.MapClient(&nLeftRect, &nTopRect, &nRightRect, &nBottomRect); - OutTraceD("Rectangle: fixed dest=(%d,%d)-(%d,%d)\n", nLeftRect, nTopRect, nRightRect, nBottomRect); - } - - ret=(*pGDIRectangle)(hdc, nLeftRect, nTopRect, nRightRect, nBottomRect); - if(!ret) OutTraceE("Rectangle: ERROR ret=%x\n", ret); - return ret; -} - -int WINAPI extGDISaveDC(HDC hdc) -{ - int ret; - - ret=(*pGDISaveDC)(hdc); - OutTraceD("GDI.SaveDC: hdc=%x ret=%x\n", hdc, ret); - //AutoRefreshThread=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)AutoRefresh, (LPVOID)hdc, 0, &dwThrdId); - return ret; -} - -BOOL WINAPI extGDIRestoreDC(HDC hdc, int nSavedDC) -{ - BOOL ret; - - ret=(*pGDIRestoreDC)(hdc, nSavedDC); - OutTraceD("GDI.RestoreDC: hdc=%x nSavedDC=%x ret=%x\n", hdc, nSavedDC, ret); - //TerminateThread(AutoRefreshThread, 0); - return ret; -} - -/* --------------------------------------------------------------------------- */ - -// v2.1.75: Hooking for GDI32 CreatePalette, SelectPalette, RealizePalette: -// maps the GDI palette to the buffered DirectDraw one. This fixes the screen -// output for "Dementia" (a.k.a. "Armed & Delirious"). - -HPALETTE WINAPI extGDICreatePalette(CONST LOGPALETTE *plpal) -{ - HPALETTE ret; - int idx; - - dxw.IsGDIPalette=TRUE; - OutTraceD("GDI.CreatePalette: plpal=%x version=%x NumEntries=%x\n", plpal, plpal->palVersion, plpal->palNumEntries); - ret=(*pGDICreatePalette)(plpal); - if(IsDebug){ - OutTraceD("PalEntry[%x]= ", plpal->palNumEntries); - for(idx=0; idxpalNumEntries; idx++) OutTraceD("(%x)", plpal->palPalEntry[idx]); - OutTraceD("\n"); - } - dxw.palVersion=plpal->palVersion; - dxw.palNumEntries=plpal->palNumEntries; - if(dxw.palNumEntries>256) dxw.palNumEntries=256; - for(idx=0; idxpalPalEntry[idx]; - OutTraceD("GDI.CreatePalette: hPalette=%x\n", ret); - return ret; -} - -HPALETTE WINAPI extSelectPalette(HDC hdc, HPALETTE hpal, BOOL bForceBackground) -{ - HPALETTE ret; - - ret=(*pGDISelectPalette)(hdc, hpal, bForceBackground); - OutTraceD("GDI.SelectPalette: hdc=%x hpal=%x ForceBackground=%x ret=%x\n", hdc, hpal, bForceBackground, ret); - return ret; -} - -UINT WINAPI extRealizePalette(HDC hdc) -{ - UINT ret; - extern void mySetPalette(int, int, LPPALETTEENTRY); - - ret=(*pGDIRealizePalette)(hdc); - OutTraceD("GDI.RealizePalette: hdc=%x ret=%x\n", hdc, ret); - - if(!dxw.IsGDIPalette) return ret; - - // quick & dirty implementation through a nasty global: - // if the SelectPalette didn't force to the background (arg bForceBackground==FALSE) - // then don't override the current palette set by the DirectDrawPalette class. - // should be cleaned up a little.... - // maybe not: now both Diablo & Dementia colors are working... - if(dxw.dwFlags1 & EMULATESURFACE) - mySetPalette(0, dxw.palNumEntries, dxw.palPalEntry); - // DEBUGGING - if(IsDebug){ - int idx; - OutTraceD("PaletteEntries[%x]= ", dxw.palNumEntries); - for(idx=0; idxGetDC device context, - // that is a memory device type associated to NULL (desktop) window, through GDI StretchBlt api. So, you shoud compensate - // by scaling and offsetting to main window. - dxw.MapWindow(&nXDest, &nYDest, &nWidth, &nHeight); - } - } - - res=(*pGDIStretchBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, nWSrc, nHSrc, dwRop); - if (IsToScreen && (dxw.dwFlags2 & SHOWFPSOVERLAY)) dxw.ShowFPS(hdcDest); - if(!res) OutTraceE("GDI.StretchBlt: ERROR err=%d at %d\n", GetLastError(), __LINE__); - return res; -} - -BOOL WINAPI extGDIDeleteDC(HDC hdc) -{ - BOOL res; - OutTraceD("GDI.DeleteDC: hdc=%x\n", hdc); - res=(*pGDIDeleteDC)(hdc); - if(!res) OutTraceE("GDI.DeleteDC: ERROR err=%d at %d\n", GetLastError(), __LINE__); - return res; -} - -COLORREF WINAPI extSetTextColor(HDC hdc, COLORREF crColor) -{ - COLORREF res; - - if ((dxw.dwFlags1 & EMULATESURFACE) && (dxw.dwFlags1 & HANDLEDC) && (dxw.VirtualPixelFormat.dwRGBBitCount==8)) - crColor=GetMatchingColor(crColor); - - res=(*pGDISetTextColor)(hdc, crColor); - OutTraceD("SetTextColor: color=%x res=%x%s\n", crColor, res, (res==CLR_INVALID)?"(CLR_INVALID)":""); - return res; -} - -COLORREF WINAPI extSetBkColor(HDC hdc, COLORREF crColor) -{ - COLORREF res; - - if ((dxw.dwFlags1 & EMULATESURFACE) && (dxw.dwFlags1 & HANDLEDC) && (dxw.VirtualPixelFormat.dwRGBBitCount==8)) - crColor=GetMatchingColor(crColor); - - res=(*pGDISetBkColor)(hdc, crColor); - OutTraceD("SetBkColor: color=%x res=%x%s\n", crColor, res, (res==CLR_INVALID)?"(CLR_INVALID)":""); - return res; -} - -HFONT WINAPI extCreateFont(int nHeight, int nWidth, int nEscapement, int nOrientation, int fnWeight, - DWORD fdwItalic, DWORD fdwUnderline, DWORD fdwStrikeOut, DWORD fdwCharSet, - DWORD fdwOutputPrecision, DWORD fdwClipPrecision, DWORD fdwQuality, - DWORD fdwPitchAndFamily, LPCTSTR lpszFace) -{ - OutTraceD("CreateFont: h=%d w=%d face=\"%s\"\n", nHeight, nWidth, lpszFace); - if(dxw.dwFlags1 & FIXTEXTOUT) { - if(nHeight > 0) dxw.MapClient(&nWidth, &nHeight); - else { - nHeight= -nHeight; - dxw.MapClient(&nWidth, &nHeight); - nHeight= -nHeight; - } - } - return (*pGDICreateFont)(nHeight, nWidth, nEscapement, nOrientation, fnWeight, - fdwItalic, fdwUnderline, fdwStrikeOut, fdwCharSet, - fdwOutputPrecision, fdwClipPrecision, NONANTIALIASED_QUALITY, - fdwPitchAndFamily, lpszFace); -} - -// CreateFontIndirect hook routine to avoid font aliasing that prevents reverse blitting working on palettized surfaces - -HFONT WINAPI extCreateFontIndirect(const LOGFONT* lplf) -{ - LOGFONT lf; - HFONT retHFont; - OutTraceD("CreateFontIndirect: h=%d w=%d face=\"%s\"\n", lplf->lfHeight, lplf->lfWidth, lplf->lfFaceName); - memcpy((char *)&lf, (char *)lplf, sizeof(LOGFONT)); - lf.lfQuality=NONANTIALIASED_QUALITY; - if(dxw.dwFlags1 & FIXTEXTOUT) { - if(lf.lfHeight > 0) dxw.MapClient((int *)&lf.lfWidth, (int *)&lf.lfHeight); - else { - lf.lfHeight= -lf.lfHeight; - dxw.MapClient((int *)&lf.lfWidth, (int *)&lf.lfHeight); - lf.lfHeight= -lf.lfHeight; - } - } - retHFont=((*pGDICreateFontIndirect)(&lf)); - if(retHFont) - OutTraceD("CreateFontIndirect: hfont=%x\n", retHFont); - else - OutTraceD("CreateFontIndirect: error=%d at %d\n", GetLastError(), __LINE__); - return retHFont; -} - -BOOL WINAPI extSetDeviceGammaRamp(HDC hDC, LPVOID lpRamp) -{ - BOOL ret; - OutTraceD("SetDeviceGammaRamp: hdc=%x\n", hDC); - if(dxw.dwFlags2 & DISABLEGAMMARAMP) { - OutTraceD("SetDeviceGammaRamp: SUPPRESSED\n"); - return TRUE; - } - ret=(*pGDISetDeviceGammaRamp)(hDC, lpRamp); - if(!ret) OutTraceE("SetDeviceGammaRamp: ERROR err=%d\n", GetLastError()); - return ret; -} - -BOOL WINAPI extGetDeviceGammaRamp(HDC hDC, LPVOID lpRamp) -{ - BOOL ret; - OutTraceD("GetDeviceGammaRamp: hdc=%x\n", hDC); - ret=(*pGDIGetDeviceGammaRamp)(hDC, lpRamp); - if(!ret) OutTraceE("GetDeviceGammaRamp: ERROR err=%d\n", GetLastError()); - return ret; -} - -int WINAPI extGetClipBox(HDC hdc, LPRECT lprc) -{ - // v2.02.31: needed in "Imperialism II" to avoid blit clipping - int ret; - char *sRetCodes[4]={"ERROR", "NULLREGION", "SIMPLEREGION", "COMPLEXREGION"}; - OutTraceD("GetClipBox: hdc=%x\n", hdc); - ret=(*pGDIGetClipBox)(hdc, lprc); - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc)) && (ret!=ERROR)){ - OutTraceD("GetClipBox: scaling main win coordinates (%d,%d)-(%d,%d)\n", - lprc->left, lprc->top, lprc->right, lprc->bottom); - // current implementation is NOT accurate, since it always returns the whole - // virtual desktop area as the current clipbox...!!! - *lprc=dxw.GetScreenRect(); - } - OutTraceD("GetClipBox: ret=%x(%s)\n", ret, sRetCodes[ret]); - return ret; -} - -BOOL WINAPI extPolyline(HDC hdc, const POINT *lppt, int cPoints) -{ - BOOL ret; - if(IsTraceD){ - int i; - OutTrace("Polyline: hdc=%x cPoints=%d pt=", hdc, cPoints); - for(i=0; ibmiHeader); - OutTraceD("SetDIBitsToDevice: BitmapInfo dim=(%dx%d) Planes=%d BPP=%d Compression=%x SizeImage=%x\n", - bmi->biWidth, bmi->biHeight, bmi->biPlanes, bmi->biBitCount, bmi->biCompression, bmi->biSizeImage); - - if (dxw.IsFullScreen() && dxw.IsVirtual(hdc)){ - int X, Y; - X=XDest+dxw.VirtualOffsetX; - Y=YDest+dxw.VirtualOffsetY; - OutTraceD("SetDIBitsToDevice: virtual pos=(%d,%d)+(%d+%d)=(%d,%d)\n", - XDest, YDest, dxw.VirtualOffsetX, dxw.VirtualOffsetY, X, Y); - ret=(*pSetDIBitsToDevice)(hdc, X, Y, dwWidth, dwHeight, XSrc, YSrc, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse); - if(!ret || (ret==GDI_ERROR)) OutTraceE("SetDIBitsToDevice: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; - } - //else - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - DWORD OrigWidth, OrigHeight; - int OrigXDest, OrigYDest; - OrigWidth=dwWidth; - OrigHeight=dwHeight; - OrigXDest=XDest; - OrigYDest=YDest; - dxw.MapClient(&XDest, &YDest, (int *)&dwWidth, (int *)&dwHeight); - OutTraceD("SetDIBitsToDevice: fixed dest=(%d,%d)-(%d,%d)\n", XDest, YDest, dwWidth, dwHeight); - HDC hTempDc; - HBITMAP hbmPic; - if(!(hTempDc=CreateCompatibleDC(hdc))) - OutTraceE("CreateCompatibleDC: ERROR err=%d at=%d\n", GetLastError(), __LINE__); - // tricky part: CreateCompatibleBitmap is needed to set the dc size, but it has to be performed - // against hdc to set for color depth, then selected (through SelectObject) against the temporary - // dc to assign the needed size and color space to the temporary dc. - if(!(hbmPic=CreateCompatibleBitmap(hdc, OrigWidth, OrigHeight))) - OutTraceE("CreateCompatibleBitmap: ERROR err=%d at=%d\n", GetLastError(), __LINE__); - if(!SelectObject(hTempDc, hbmPic)) - OutTraceE("SelectObject: ERROR err=%d at=%d\n", GetLastError(), __LINE__); - if(!(*pSetDIBitsToDevice)(hTempDc, 0, 0, OrigWidth, OrigHeight, XSrc, YSrc, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse)) - OutTraceE("SetDIBitsToDevice: ERROR err=%d at=%d\n", GetLastError(), __LINE__); - if(!(ret=(*pGDIStretchBlt)(hdc, XDest, YDest, dwWidth, dwHeight, hTempDc, 0, 0, OrigWidth, OrigHeight, SRCCOPY))) - OutTraceE("StretchBlt: ERROR err=%d at=%d\n", GetLastError(), __LINE__); - if(!(DeleteObject(hbmPic))) // v2.02.32 - avoid resource leakage - OutTraceE("DeleteObject: ERROR err=%d at=%d\n", GetLastError(), __LINE__); - if(!(DeleteDC(hTempDc))) - OutTraceE("DeleteDC: ERROR err=%d at=%d\n", GetLastError(), __LINE__); - } - else{ - ret=(*pSetDIBitsToDevice)(hdc, XDest, YDest, dwWidth, dwHeight, XSrc, YSrc, uStartScan, cScanLines, lpvBits, lpbmi, fuColorUse); - } - if(!ret || (ret==GDI_ERROR)) OutTraceE("SetDIBitsToDevice: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -//HBITMAP WINAPI extCreateCompatibleBitmap(HDC hdc, int nWidth, int nHeight) -//{ -// HBITMAP ret; -// OutTraceD("CreateCompatibleBitmap: hdc=%x size=(%d,%d)\n", -// hdc, nWidth, nHeight); -// -// if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ -// dxw.MapClient(&nWidth, &nHeight); -// OutTraceD("CreateCompatibleBitmap: fixed size=(%d,%d)\n", nWidth, nHeight); -// } -// -// ret=(*pCreateCompatibleBitmap)(hdc, nWidth, nHeight); -// if(!ret) OutTraceE("CreateCompatibleBitmap: ERROR ret=%x err=%d\n", ret, GetLastError()); -// return ret; -//} - -COLORREF WINAPI extSetPixel(HDC hdc, int X, int Y, COLORREF crColor) -{ - COLORREF ret; - OutTraceD("SetPixel: hdc=%x color=%x point=(%d,%d)\n", hdc, crColor, X, Y); - - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.MapClient(&X, &Y); - OutTraceD("SetPixel: fixed pos=(%d,%d)\n", X, Y); - } - - ret=(*pSetPixel)(hdc, X, Y, crColor); - // both 0x00000000 and 0xFFFFFFFF are legitimate colors and therefore valid return codes... - //if(ret==GDI_ERROR) OutTraceE("SetPixel: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -BOOL WINAPI extEllipse(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect) -{ - int ret; - OutTraceD("Ellipse: hdc=%x rect=(%d,%d)-(%d,%d)\n", hdc, nLeftRect, nTopRect, nRightRect, nBottomRect); - - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.MapClient(&nLeftRect, &nTopRect, &nRightRect, &nBottomRect); - OutTraceD("Ellipse: fixed dest=(%d,%d)-(%d,%d)\n", nLeftRect, nTopRect, nRightRect, nBottomRect); - } - - ret=(*pEllipse)(hdc, nLeftRect, nTopRect, nRightRect, nBottomRect); - if(!ret) OutTraceE("Ellipse: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -BOOL WINAPI extPolygon(HDC hdc, const POINT *lpPoints, int cCount) -{ - BOOL ret; - if(IsTraceD){ - int i; - OutTrace("Polygon: hdc=%x cCount=%d pt=", hdc, cCount); - for(i=0; ileft, lprc->top, lprc->right, lprc->bottom); - - if (dxw.IsFullScreen()){ - dxw.MapClient((RECT *)lprc); - OutTraceD("CreateEllipticRgnIndirect: fixed rect=(%d,%d)-(%d,%d)\n", lprc->left, lprc->top, lprc->right, lprc->bottom); - } - - ret=(*pCreateEllipticRgnIndirect)(lprc); - if(!ret) OutTraceE("CreateEllipticRgnIndirect: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -HRGN WINAPI extCreateRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect) -{ - HRGN ret; - OutTraceD("CreateRectRgn: rect=(%d,%d)-(%d,%d)\n", nLeftRect, nTopRect, nRightRect, nBottomRect); - - if (dxw.IsFullScreen()){ - dxw.MapClient(&nLeftRect, &nTopRect, &nRightRect, &nBottomRect); - OutTraceD("CreateRectRgn: fixed rect=(%d,%d)-(%d,%d)\n", nLeftRect, nTopRect, nRightRect, nBottomRect); - } - - ret=(*pCreateRectRgn)(nLeftRect, nTopRect, nRightRect, nBottomRect); - if(!ret) OutTraceE("CreateRectRgn: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -HRGN WINAPI extCreateRectRgnIndirect(const RECT *lprc) -{ - HRGN ret; - OutTraceD("CreateRectRgnIndirect: rect=(%d,%d)-(%d,%d)\n", lprc->left, lprc->top, lprc->right, lprc->bottom); - - if (dxw.IsFullScreen()){ - dxw.MapClient((RECT *)lprc); - OutTraceD("CreateRectRgnIndirect: fixed rect=(%d,%d)-(%d,%d)\n", lprc->left, lprc->top, lprc->right, lprc->bottom); - } - - ret=(*pCreateRectRgnIndirect)(lprc); - if(!ret) OutTraceE("CreateRectRgnIndirect: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -HRGN WINAPI extCreatePolygonRgn(const POINT *lpPoints, int cPoints, int fnPolyFillMode) -{ - HRGN ret; - if(IsTraceD){ - int i; - OutTrace("CreatePolygonRgn: PolyFillMode=%x cCount=%d pt=", fnPolyFillMode, cPoints); - for(i=0; ileft, lpRect->top, lpRect->right, lpRect->bottom, uFormat, nCount, lpchText); - - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.MapClient((RECT *)lpRect); - OutTraceD("DrawText: fixed rect=(%d,%d)-(%d,%d)\n", lpRect->left, lpRect->top, lpRect->right, lpRect->bottom); - } - - ret=(*pDrawText)(hdc, lpchText, nCount, lpRect, uFormat); - if(!ret) OutTraceE("DrawText: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -int WINAPI extDrawTextEx(HDC hdc, LPTSTR lpchText, int nCount, LPRECT lpRect, UINT dwDTFormat, LPDRAWTEXTPARAMS lpDTParams) -{ - int ret; - OutTraceD("DrawTextEx: hdc=%x rect=(%d,%d)-(%d,%d) DTFormat=%x Text=(%d)\"%s\"\n", - hdc, lpRect->left, lpRect->top, lpRect->right, lpRect->bottom, dwDTFormat, nCount, lpchText); - - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.MapClient((RECT *)lpRect); - OutTraceD("DrawTextEx: fixed rect=(%d,%d)-(%d,%d)\n", lpRect->left, lpRect->top, lpRect->right, lpRect->bottom); - } - - ret=(*pDrawTextEx)(hdc, lpchText, nCount, lpRect, dwDTFormat, lpDTParams); - if(!ret) OutTraceE("DrawTextEx: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -BOOL WINAPI extMaskBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, - int nXSrc, int nYSrc, HBITMAP hbmMask, int xMask, int yMask, DWORD dwRop) -{ - BOOL ret; - OutTraceD("MaskBlt: hdcDest=%x pos=(%d,%d) size=(%dx%d) hdcSrc=%x pos=(%d,%d) hbmMask=%x Mask=(%d,%d) dwRop=%x\n", - hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, hbmMask, xMask, yMask, dwRop); - - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdcDest))){ - dxw.MapClient(&nXDest, &nYDest, &nWidth, &nHeight); - OutTraceD("MaskBlt: fixed pos=(%d,%d) size=(%dx%d)\n", nXDest, nYDest, nWidth, nHeight); - } - - ret=(*pMaskBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, hbmMask, xMask, yMask, dwRop); - if(!ret) OutTraceE("MaskBlt: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -BOOL WINAPI extSetViewportOrgEx(HDC hdc, int X, int Y, LPPOINT lpPoint) -{ - BOOL ret; - OutTraceD("SetViewportOrgEx: hdc=%x pos=(%d,%d)\n", hdc, X, Y); - - if(dxw.IsVirtual(hdc)) { - OutTraceD("SetViewportOrgEx: virtual hdc\n"); - dxw.VirtualOffsetX = X; - dxw.VirtualOffsetY = Y; - return TRUE; - } - - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.MapClient(&X, &Y); - OutTraceD("SetViewportOrgEx: fixed pos=(%d,%d)\n", X, Y); - } - - ret=(*pSetViewportOrgEx)(hdc, X, Y, lpPoint); - if(ret && lpPoint) { - OutTraceD("SetViewportOrgEx: previous ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.UnmapClient(lpPoint); - OutTraceD("SetViewportOrgEx: fixed previous ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); - } - } - if(!ret) OutTraceE("SetViewportOrgEx: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -BOOL WINAPI extSetViewportExtEx(HDC hdc, int nXExtent, int nYExtent, LPSIZE lpSize) -{ - BOOL ret; - OutTraceD("SetViewportExtEx: hdc=%x ext=(%d,%d)\n", hdc, nXExtent, nYExtent); - - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.MapClient(&nXExtent, &nYExtent); - OutTraceD("SetViewportExtEx: fixed ext=(%d,%d)\n", nXExtent, nYExtent); - } - - ret=(*pSetViewportExtEx)(hdc, nXExtent, nYExtent, lpSize); - if(ret && lpSize) { - OutTraceD("SetViewportExtEx: previous ext=(%d,%d)\n", lpSize->cx, lpSize->cy); - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.UnmapClient((LPPOINT)lpSize); - OutTraceD("SetViewportExtEx: fixed previous ext=(%d,%d)\n", lpSize->cx, lpSize->cy); - } - } - - if(!ret) OutTraceE("SetViewportExtEx: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -BOOL WINAPI extGetViewportOrgEx(HDC hdc, LPPOINT lpPoint) -{ - BOOL ret; - OutTraceD("GetViewportOrgEx: hdc=%x\n", hdc); - - if(dxw.IsVirtual(hdc)) { - lpPoint->x = dxw.VirtualOffsetX; - lpPoint->y = dxw.VirtualOffsetY; - return TRUE; - } - - ret=(*pGetViewportOrgEx)(hdc, lpPoint); - if(ret) { - OutTraceD("GetViewportOrgEx: ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.UnmapClient(lpPoint); - OutTraceD("GetViewportOrgEx: fixed ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); - } - } - - if(!ret) OutTraceE("GetViewportOrgEx: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -BOOL WINAPI extGetWindowOrgEx(HDC hdc, LPPOINT lpPoint) -{ - BOOL ret; - OutTraceD("GetWindowOrgEx: hdc=%x\n", hdc); - - ret=(*pGetWindowOrgEx)(hdc, lpPoint); - if(ret) { - OutTraceD("GetWindowOrgEx: ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.UnmapClient(lpPoint); - OutTraceD("GetWindowOrgEx: fixed ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); - } - } - - if(!ret) OutTraceE("GetWindowOrgEx: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -BOOL WINAPI extSetWindowOrgEx(HDC hdc, int X, int Y, LPPOINT lpPoint) -{ - BOOL ret; - OutTraceD("SetWindowOrgEx: hdc=%x pos=(%d,%d)\n", hdc, X, Y); - - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.MapClient(&X, &Y); - OutTraceD("SetWindowOrgEx: fixed pos=(%d,%d)\n", X, Y); - } - - ret=(*pSetWindowOrgEx)(hdc, X, Y, lpPoint); - if(ret && lpPoint) { - OutTraceD("SetWindowOrgEx: previous ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.UnmapClient(lpPoint); - OutTraceD("SetWindowOrgEx: fixed previous ViewPort=(%d,%d)\n", lpPoint->x, lpPoint->y); - } - } - if(!ret) OutTraceE("SetWindowOrgEx: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -BOOL WINAPI extGetCurrentPositionEx(HDC hdc, LPPOINT lpPoint) -{ - BOOL ret; - OutTraceD("GetCurrentPositionEx: hdc=%x\n", hdc); - - ret=(*pGetCurrentPositionEx)(hdc, lpPoint); - if(ret) { - OutTraceD("GetCurrentPositionEx: pos=(%d,%d)\n", lpPoint->x, lpPoint->y); - if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ - dxw.UnmapClient(lpPoint); - OutTraceD("GetCurrentPositionEx: fixed pos=(%d,%d)\n", lpPoint->x, lpPoint->y); - } - } - if(!ret) OutTraceE("GetCurrentPositionEx: ERROR ret=%x err=%d\n", ret, GetLastError()); - return ret; -} - -BOOL WINAPI extCreateScalableFontResourceA(DWORD fdwHidden, LPCTSTR lpszFontRes, LPCTSTR lpszFontFile, LPCTSTR lpszCurrentPath) -{ - BOOL res; - OutTraceD("CreateScalableFontResource: hidden=%d FontRes=\"%s\" FontFile=\"%s\" CurrentPath=\"%s\"\n", - fdwHidden, lpszFontRes, lpszFontFile, lpszCurrentPath); - if (1) return TRUE; - res=(*pCreateScalableFontResourceA)(fdwHidden, lpszFontRes, lpszFontFile, lpszCurrentPath); - if(!res) OutTraceE("CreateScalableFontResource: ERROR err=%d at=%d\n", GetLastError(), __LINE__); -} - -BOOL WINAPI extCreateScalableFontResourceW(DWORD fdwHidden, LPCWSTR lpszFontRes, LPCWSTR lpszFontFile, LPCWSTR lpszCurrentPath) -{ - BOOL res; - OutTraceD("CreateScalableFontResource: hidden=%d FontRes=\"%ls\" FontFile=\"%ls\" CurrentPath=\"%ls\"\n", - fdwHidden, lpszFontRes, lpszFontFile, lpszCurrentPath); - if (1) return TRUE; - res=(*pCreateScalableFontResourceW)(fdwHidden, lpszFontRes, lpszFontFile, lpszCurrentPath); - if(!res) OutTraceE("CreateScalableFontResource: ERROR err=%d at=%d\n", GetLastError(), __LINE__); -} - -int WINAPI extAddFontResourceA(LPCTSTR lpszFontFile) -{ - BOOL res; - OutTraceD("AddFontResource: FontFile=\"%s\"\n", lpszFontFile); - if(1) return TRUE; - res=(*pAddFontResourceA)(lpszFontFile); - if(!res) OutTraceE("AddFontResource: ERROR err=%d at=%d\n", GetLastError(), __LINE__); -} - -int WINAPI extAddFontResourceW(LPCWSTR lpszFontFile) -{ - BOOL res; - OutTraceD("AddFontResource: FontFile=\"%ls\"\n", lpszFontFile); - if(1) return TRUE; - res=(*pAddFontResourceW)(lpszFontFile); - if(!res) OutTraceE("AddFontResource: ERROR err=%d at=%d\n", GetLastError(), __LINE__); -} - -#if 0 -// to map: -// GetCurrentPositionEx -// GetViewportExtEx -// DPtoLP -// GetWindowOrgEx -// LPtoDP -// OffsetViewportOrgEx -// OffsetWindowOrgEx -// TransparentBlt -// to do: eliminate FIXTEXTOUT handling -// GetDCEx - -BOOL SetTextJustification( - _In_ HDC hdc, - _In_ int nBreakExtra, <---- - _In_ int nBreakCount -); -#endif \ No newline at end of file diff --git a/dll/kernel32.cpp b/dll/kernel32.cpp index dcad491..e3f22bf 100644 --- a/dll/kernel32.cpp +++ b/dll/kernel32.cpp @@ -39,6 +39,7 @@ static HookEntry_Type TimeHooks[]={ {"Sleep", (FARPROC)Sleep, (FARPROC *)&pSleep, (FARPROC)extSleep}, {"SleepEx", (FARPROC)SleepEx, (FARPROC *)&pSleepEx, (FARPROC)extSleepEx}, {"SetTimer", (FARPROC)SetTimer, (FARPROC *)&pSetTimer, (FARPROC)extSetTimer}, + {"QueryPerformanceCounter", (FARPROC)NULL, (FARPROC *)&pQueryPerformanceCounter, (FARPROC)extQueryPerformanceCounter}, {0, NULL, 0, 0} // terminator }; @@ -53,6 +54,11 @@ static HookEntry_Type SuppressChildHooks[]={ {0, NULL, 0, 0} // terminator }; +//static HookEntry_Type SuppressPerfCountersHooks[]={ +// //{"QueryPerformanceFrequency", (FARPROC)NULL, (FARPROC *)NULL, (FARPROC)QueryPerformanceFrequency}, +// {0, NULL, 0, 0} // terminator +//}; + static char *libname = "kernel32.dll"; void HookKernel32(HMODULE module) @@ -63,6 +69,7 @@ void HookKernel32(HMODULE module) if(dxw.dwFlags2 & TIMESTRETCH) HookLibrary(module, TimeHooks, libname); if(dxw.dwFlags2 & FAKEVERSION) HookLibrary(module, VersionHooks, libname); if(dxw.dwFlags4 & SUPPRESSCHILD) HookLibrary(module, SuppressChildHooks, libname); + //if (1) HookLibrary(module, SuppressPerfCountersHooks, libname); } void HookKernel32Init() @@ -94,6 +101,8 @@ FARPROC Remap_kernel32_ProcAddress(LPCSTR proc, HMODULE hModule) if(dxw.dwFlags4 & SUPPRESSCHILD) if (addr=RemapLibrary(proc, hModule, SuppressChildHooks)) return addr; + //if (addr=RemapLibrary(proc, hModule, SuppressPerfCountersHooks)) return addr; + return NULL; } @@ -701,3 +710,22 @@ BOOL WINAPI extCreateProcessA( OutTraceD("CreateProcess: SUPPRESS ApplicationName=%s CommandLine=\"%s\"\n", lpApplicationName, lpCommandLine); return TRUE; } + +BOOL WINAPI extQueryPerformanceFrequency(LARGE_INTEGER *lpFrequency) +{ + // just proxy, but currently unhooked..... + BOOL ret; + ret=(*pQueryPerformanceFrequency)(lpFrequency); + return ret; +} + +BOOL WINAPI extQueryPerformanceCounter(LARGE_INTEGER *lpPerformanceCount) +{ + BOOL ret; + LARGE_INTEGER myPerfCount; + ret=(*pQueryPerformanceCounter)(&myPerfCount); + myPerfCount.HighPart = dxw.StretchCounter(myPerfCount.HighPart); + myPerfCount.LowPart = dxw.StretchCounter(myPerfCount.LowPart); + *lpPerformanceCount = myPerfCount; + return ret; +} diff --git a/dll/syslibs.h b/dll/syslibs.h index 7a71749..92e540a 100644 --- a/dll/syslibs.h +++ b/dll/syslibs.h @@ -118,6 +118,8 @@ typedef int (WINAPI *AddFontResourceW_Type)(LPCWSTR); typedef HANDLE (WINAPI *CreateFile_Type)(LPCTSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE); typedef DWORD (WINAPI *SetFilePointer_Type)(HANDLE, LONG, PLONG, DWORD); typedef BOOL (WINAPI *CloseHandle_Type)(HANDLE); +typedef BOOL (WINAPI *QueryPerformanceFrequency_Type)(LARGE_INTEGER *); +typedef BOOL (WINAPI *QueryPerformanceCounter_Type)(LARGE_INTEGER *); // ole32.dll: typedef HRESULT (STDAPICALLTYPE *CoCreateInstance_Type)(REFCLSID, LPUNKNOWN, DWORD, REFIID, LPVOID FAR*); @@ -298,6 +300,8 @@ DXWEXTERN SleepEx_Type pSleepEx DXWINITIALIZED; DXWEXTERN CreateFile_Type pCreateFile DXWINITIALIZED; DXWEXTERN SetFilePointer_Type pSetFilePointer DXWINITIALIZED; DXWEXTERN CloseHandle_Type pCloseHandle DXWINITIALIZED; +DXWEXTERN QueryPerformanceFrequency_Type pQueryPerformanceFrequency DXWINITIALIZED; +DXWEXTERN QueryPerformanceCounter_Type pQueryPerformanceCounter DXWINITIALIZED; // ole32.dll: DXWEXTERN CoCreateInstance_Type pCoCreateInstance DXWINITIALIZED; @@ -474,6 +478,8 @@ extern HANDLE WINAPI extCreateFile(LPCTSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, extern DWORD WINAPI extSetFilePointer(HANDLE, LONG, PLONG, DWORD); extern BOOL WINAPI extCloseHandle(HANDLE); extern BOOL WINAPI extCreateProcessA(LPCTSTR, LPTSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCTSTR, LPSTARTUPINFO, LPPROCESS_INFORMATION); +extern BOOL WINAPI extQueryPerformanceFrequency(LARGE_INTEGER *); +extern BOOL WINAPI extQueryPerformanceCounter(LARGE_INTEGER *); // ole32.dll: extern HRESULT STDAPICALLTYPE extCoCreateInstance(REFCLSID, LPUNKNOWN, DWORD, REFIID, LPVOID FAR*); diff --git a/dll/winmm.cpp b/dll/winmm.cpp index 90e19e7..989dfe8 100644 --- a/dll/winmm.cpp +++ b/dll/winmm.cpp @@ -49,7 +49,7 @@ DWORD WINAPI exttimeGetTime(void) MMRESULT WINAPI exttimeSetEvent(UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD_PTR dwUser, UINT fuEvent) { MMRESULT res; - uDelay = uDelay * 8; + //uDelay = uDelay * 8; OutTraceD("timeSetEvent: Delay=%d Resolution=%d Event=%x\n", uDelay, uResolution, fuEvent); res=(*ptimeSetEvent)(uDelay, uResolution, lpTimeProc, dwUser, fuEvent); OutTraceD("timeSetEvent: ret=%x\n", res); diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo index 6b8a214a2a1aa332ec7600b48531b992f4aee886..d21ab005992c9d7ce046f2e0bb519ae70c5b0acf 100644 GIT binary patch delta 11807 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 A1^@s6 delta 23058 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 YE)9M2%Ky(w*1vs(ixu=g`_R<-AF2EVu>b%7 diff --git a/host/dxwndhost.vs2008.vcproj b/host/dxwndhost.vs2008.vcproj index e74f59a..70fff2c 100644 --- a/host/dxwndhost.vs2008.vcproj +++ b/host/dxwndhost.vs2008.vcproj @@ -1,7 +1,7 @@ path, MAX_PATH, InitPath); if(!TargetMap->path[0]) return FALSE; @@ -556,6 +557,14 @@ static int LoadConfigItem(TARGETMAP *TargetMap, char *Title, int i, char *InitPa TargetMap->MaxFPS = GetPrivateProfileInt("target", key, 0, InitPath); sprintf_s(key, sizeof(key), "initts%i", i); TargetMap->InitTS = GetPrivateProfileInt("target", key, 0, InitPath); + + if (!gbDebug){ + // clear debug flags + TargetMap->flags &= ~(0); + TargetMap->flags2 &= ~(FULLRECTBLT); + TargetMap->flags3 &= ~(YUV2RGB|RGB2YUV|SURFACEWARN|ANALYTICMODE|NODDRAWBLT|NODDRAWFLIP|NOGDIBLT); + TargetMap->flags4 &= ~(0); + } return TRUE; }