diff --git a/build/Empire Earth (16BPP).dxw b/build/Empire Earth (16BPP).dxw new file mode 100644 index 0000000..943088d --- /dev/null +++ b/build/Empire Earth (16BPP).dxw @@ -0,0 +1,24 @@ +[target] +title0=Empire Earth +path0=D:\Games\Empire Earth\Empire Earth.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=671105057 +flagg0=134217744 +flagh0=84 +flagi0=0 +tflag0=3 +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/Empire Earth.dxw b/build/Empire Earth.dxw new file mode 100644 index 0000000..9ae2b2c --- /dev/null +++ b/build/Empire Earth.dxw @@ -0,0 +1,24 @@ +[target] +title0=Empire Earth +path0=D:\Games\Empire Earth\Empire Earth.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=1744847009 +flagg0=201326608 +flagh0=65620 +flagi0=0 +tflag0=23 +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 f262a2a..c932b2e 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9937414e8ef05dd175c44b487760617042c0a74574f8cab9f1e7486302cee68a -size 424960 +oid sha256:5c0d2dcaecf0148f5d3ef79ca65a40148ad4b38921a6705d6dcd736f66a71c74 +size 425984 diff --git a/build/dxwnd.dll.release b/build/dxwnd.dll.release new file mode 100644 index 0000000..ac21189 Binary files /dev/null and b/build/dxwnd.dll.release differ diff --git a/build/dxwnd.exe b/build/dxwnd.exe index c824a32..6dcb275 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e400384f655d2a3050893125cf7be2026964cb1800b9cebf94af7c1fb98c4d26 +oid sha256:bfed2b8cff2d31bff7391b371e2913378ac855e390fe9dbd2c1c6384eef71963 size 532480 diff --git a/build/dxwnd.ini b/build/dxwnd.ini index e0e77e6..e8f8d27 100644 --- a/build/dxwnd.ini +++ b/build/dxwnd.ini @@ -1,15 +1,15 @@ [target] -title0=101 Airborne Invasion -path0=D:\Games\101air\101.exe +title0=Ancient Evil (DEMO) +path0=D:\Games\Ancient Evil (Demo)\aecsc-demo.exe module0= opengllib0= ver0=0 coord0=0 -flag0=134217762 -flagg0=134217728 +flag0=203440160 +flagg0=134217744 flagh0=20 flagi0=0 -tflag0=0 +tflag0=259 initx0=0 inity0=0 minx0=0 @@ -22,17 +22,17 @@ sizx0=800 sizy0=600 maxfps0=0 initts0=0 -title1=688I Hunter Killer -path1=D:\Games\688\688I_HK.EXE +title1=Dungeon Keeper 2 (GOG) +path1=D:\Games\Dungeon Keeper 2 (GOG)\DKII.EXE module1= opengllib1= ver1=0 -coord1=1 -flag1=1209532962 -flagg1=135266304 +coord1=0 +flag1=136331298 +flagg1=1241513984 flagh1=20 flagi1=0 -tflag1=0 +tflag1=259 initx1=0 inity1=0 minx1=0 @@ -45,17 +45,17 @@ sizx1=800 sizy1=600 maxfps1=0 initts1=0 -title2=A10 Cuba -path2=D:\Games\A10\A10Cuba.exe +title2=Heroes of Might and Magic IV +path2=D:\Games\Heroes of Might and Magic IV\heroes4.exe module2= opengllib2= ver2=0 -coord2=0 -flag2=134217762 -flagg2=1207959552 -flagh2=20 -flagi2=0 -tflag2=0 +coord2=2 +flag2=671350818 +flagg2=1207959568 +flagh2=-2147418092 +flagi2=1 +tflag2=259 initx2=0 inity2=0 minx2=0 @@ -68,17 +68,17 @@ sizx2=800 sizy2=600 maxfps2=0 initts2=0 -title3=Abomination the Nemesis Project -path3=D:\Games\Abomination\Abomb.exe +title3=Motocross Madness (DEMO) +path3=D:\Games\Motocross Madness Trial\mcm.exe module3= opengllib3= ver3=0 coord3=0 -flag3=134217762 +flag3=134217760 flagg3=1207959552 flagh3=20 flagi3=0 -tflag3=66 +tflag3=0 initx3=0 inity3=0 minx3=0 @@ -91,17 +91,17 @@ sizx3=800 sizy3=600 maxfps3=0 initts3=0 -title4=ACabal95.exe -path4=D:\Games\Alien_cabal\ACabal95.exe +title4=Project Nomads (DEMO) +path4=D:\Games\Project Nomads Demo\bin\win32\nomads.exe module4= opengllib4= -ver4=0 +ver4=8 coord4=0 -flag4=671088674 -flagg4=1209008128 -flagh4=20 +flag4=-1476394974 +flagg4=1207959808 +flagh4=4 flagi4=0 -tflag4=258 +tflag4=274 initx4=0 inity4=0 minx4=0 @@ -114,17 +114,17 @@ sizx4=800 sizy4=600 maxfps4=0 initts4=0 -title5=Actua Soccer 3 -path5=D:\Games\ActuaSoccer3\Soccer3.exe +title5=Shadows of the Empire (DEMO) +path5=D:\Games\Shadows of the Empire\shadows.exe module5= opengllib5= ver5=0 -coord5=0 -flag5=671088674 -flagg5=134217728 -flagh5=20 +coord5=2 +flag5=134479906 +flagg5=1207959568 +flagh5=33554452 flagi5=0 -tflag5=66 +tflag5=274 initx5=0 inity5=0 minx5=0 @@ -137,17 +137,17 @@ sizx5=800 sizy5=600 maxfps5=0 initts5=0 -title6=Akuma Demon Spawn - Lamentation Sword -path6=D:\Games\Akuma Demon Spawn - Lamentation Sword (1999)\Akuma\Akuma.EXE +title6=Tomb Raider 4 (DEMO) +path6=D:\Games\Tomb Raider - The Last Revelation (Demo)\tomb4.exe module6= opengllib6= -ver6=0 +ver6=7 coord6=0 -flag6=134217762 -flagg6=1207959554 +flag6=134217760 +flagg6=1207959552 flagh6=20 flagi6=0 -tflag6=0 +tflag6=258 initx6=0 inity6=0 minx6=0 @@ -160,8 +160,8 @@ sizx6=800 sizy6=600 maxfps6=0 initts6=0 -title7=Ancient Conquest -path7=D:\Games\Ancient Conquest\ANCIENT.EXE +title7=Tomb Raider II +path7=D:\Games\Tomb Raider II\Tomb2.exe module7= opengllib7= ver7=0 @@ -170,7 +170,7 @@ flag7=671088674 flagg7=1207959552 flagh7=20 flagi7=0 -tflag7=338 +tflag7=0 initx7=0 inity7=0 minx7=0 @@ -183,17 +183,17 @@ sizx7=800 sizy7=600 maxfps7=0 initts7=0 -title8=Army Men RTS -path8=D:\Games\Army Men RTS\amrts.exe +title8=Tomb Raider II Gold (DEMO) +path8=D:\Games\Tomb Raider II Gold (Demo)\Tomb2.exe module8= opengllib8= ver8=0 -coord8=0 -flag8=671088676 -flagg8=1207959552 +coord8=2 +flag8=671088674 +flagg8=1224736784 flagh8=20 flagi8=0 -tflag8=0 +tflag8=258 initx8=0 inity8=0 minx8=0 @@ -206,17 +206,17 @@ sizx8=800 sizy8=600 maxfps8=0 initts8=0 -title9=Balls of Steel -path9=D:\Games\Balls of Steel\bos.exe -module9=duke.ddp mutation.ddp +title9=Tomb Raider III +path9=D:\Games\Tomb Raider III\tomb3.exe +module9= opengllib9= ver9=0 -coord9=0 -flag9=167772192 -flagg9=202375169 +coord9=2 +flag9=134217760 +flagg9=1241514000 flagh9=20 flagi9=0 -tflag9=262 +tflag9=322 initx9=0 inity9=0 minx9=0 @@ -229,17 +229,17 @@ sizx9=800 sizy9=600 maxfps9=0 initts9=0 -title10=Barrage -path10=D:\Games\Barrage\SRC\BARRAGE.EXE +title10=Virtua Fighter 2 (DEMO) +path10=D:\Games\vf2_demo\VF2DEMO.EXE module10= opengllib10= ver10=0 coord10=0 -flag10=142606368 -flagg10=134217728 -flagh10=8212 +flag10=939524131 +flagg10=1207959664 +flagh10=20 flagi10=0 -tflag10=6 +tflag10=1 initx10=0 inity10=0 minx10=0 @@ -252,17 +252,17 @@ sizx10=800 sizy10=600 maxfps10=0 initts10=0 -title11=Beavis & ButtHead do U. -path11=D:\Games\B_b\BEAVIS.EXE +title11=Virtua Fighter PC +path11=D:\Games\vfpc\VFPC.EXE module11= opengllib11= ver11=0 coord11=0 -flag11=134217762 -flagg11=1207959552 -flagh11=20 +flag11=402915362 +flagg11=1224736784 +flagh11=33562644 flagi11=0 -tflag11=2 +tflag11=3 initx11=0 inity11=0 minx11=0 @@ -275,17 +275,17 @@ sizx11=800 sizy11=600 maxfps11=0 initts11=0 -title12=Beyond Divinity -path12=D:\Games\Beyond Divinity\Div.exe +title12=Wargasm +path12=D:\Games\Wargasm\tank.exe module12= opengllib12= ver12=0 -coord12=0 -flag12=134217762 -flagg12=1207959552 -flagh12=20 +coord12=2 +flag12=687865888 +flagg12=1207959568 +flagh12=65556 flagi12=0 -tflag12=0 +tflag12=2 initx12=0 inity12=0 minx12=0 @@ -298,17 +298,17 @@ sizx12=800 sizy12=600 maxfps12=0 initts12=0 -title13=Black & White -path13=D:\Games\Black & White\runblack.exe +title13=Warlords Battlecry II (DEMO) +path13=D:\Games\Warlords Battlecry II Demo\Battlecry II Demo.exe module13= opengllib13= ver13=0 -coord13=0 -flag13=679477280 -flagg13=1207959552 -flagh13=4 +coord13=2 +flag13=134217762 +flagg13=1207959568 +flagh13=22 flagi13=0 -tflag13=35 +tflag13=258 initx13=0 inity13=0 minx13=0 @@ -321,17 +321,17 @@ sizx13=800 sizy13=600 maxfps13=0 initts13=0 -title14=Black & White 2 Demo -path14=D:\Games\Black & White 2 Demo\BW2Demo.exe +title14=Zax the Alien Hunter (DEMO) +path14=D:\Games\ZaxDemo\Zax.exe module14= opengllib14= ver14=0 -coord14=0 -flag14=134217762 -flagg14=1208090624 +coord14=2 +flag14=-2011168734 +flagg14=1209008144 flagh14=20 flagi14=0 -tflag14=0 +tflag14=258 initx14=0 inity14=0 minx14=0 @@ -344,17 +344,17 @@ sizx14=800 sizy14=600 maxfps14=0 initts14=0 -title15=Carnivores -path15=D:\Games\Carnivores\HUNTSOFT.EXE +title15=Hearts of Iron 2 +path15=D:\Games\Hearts of Iron 2\HoI2.exe module15= opengllib15= ver15=0 -coord15=1 -flag15=939524130 -flagg15=135266320 -flagh15=20 -flagi15=0 -tflag15=66 +coord15=2 +flag15=939526179 +flagg15=1207959568 +flagh15=32788 +flagi15=2 +tflag15=2 initx15=0 inity15=0 minx15=0 @@ -367,17 +367,17 @@ sizx15=800 sizy15=600 maxfps15=0 initts15=0 -title16=Cave Story (ITA) -path16=D:\Games\Cave Story\Doukutsu.exe +title16=Rayman 2 Demo +path16=D:\Games\Rayman2Demo\Rayman2Demo.exe module16= opengllib16= -ver16=0 +ver16=7 coord16=0 -flag16=134221858 -flagg16=1207959552 -flagh16=32790 +flag16=402653219 +flagg16=1208025088 +flagh16=2097172 flagi16=0 -tflag16=2 +tflag16=259 initx16=0 inity16=0 minx16=0 @@ -389,18 +389,18 @@ posy16=50 sizx16=800 sizy16=600 maxfps16=0 -initts16=0 -title17=Chariots of War -path17=D:\Games\Chariots of War\CoW.exe +initts16=4 +title17=Empire Earth +path17=D:\Games\Empire Earth\Empire Earth.exe module17= opengllib17= ver17=0 coord17=0 -flag17=134217762 -flagg17=1207959552 -flagh17=20 +flag17=671105057 +flagg17=134217744 +flagh17=84 flagi17=0 -tflag17=0 +tflag17=3 initx17=0 inity17=0 minx17=0 @@ -413,2400 +413,8 @@ sizx17=800 sizy17=600 maxfps17=0 initts17=0 -title18=Command & Conquer 3 -path18=D:\Games\Command & Conquer 3\CNC3.exe -module18= -opengllib18= -ver18=0 -coord18=0 -flag18=134217762 -flagg18=1207959552 -flagh18=20 -flagi18=0 -tflag18=0 -initx18=0 -inity18=0 -minx18=0 -miny18=0 -maxx18=0 -maxy18=0 -posx18=50 -posy18=50 -sizx18=800 -sizy18=600 -maxfps18=0 -initts18=0 -title19=Commandos II -path19=D:\Games\Commandos II\comm2.exe -module19= -opengllib19= -ver19=0 -coord19=0 -flag19=134217762 -flagg19=134217728 -flagh19=20 -flagi19=0 -tflag19=64 -initx19=0 -inity19=0 -minx19=0 -miny19=0 -maxx19=0 -maxy19=0 -posx19=50 -posy19=50 -sizx19=800 -sizy19=600 -maxfps19=0 -initts19=0 -title20=Crazy Frog Racer -path20=D:\Games\CrazyFrog\CRAZY.EXE -module20= -opengllib20= -ver20=8 -coord20=0 -flag20=134217762 -flagg20=134217729 -flagh20=20 -flagi20=0 -tflag20=64 -initx20=0 -inity20=0 -minx20=0 -miny20=0 -maxx20=0 -maxy20=0 -posx20=50 -posy20=50 -sizx20=800 -sizy20=600 -maxfps20=0 -initts20=0 -title21=Crazy Taxy -path21=D:\Games\Crazy_Taxi\Crazy Taxi PC Version\crazy_taxi_pc.exe -module21= -opengllib21= -ver21=0 -coord21=0 -flag21=671219744 -flagg21=134217728 -flagh21=20 -flagi21=0 -tflag21=66 -initx21=0 -inity21=0 -minx21=0 -miny21=0 -maxx21=0 -maxy21=0 -posx21=50 -posy21=50 -sizx21=800 -sizy21=600 -maxfps21=0 -initts21=0 -title22=Dark Angael -path22=D:\Games\Dark Angael\GAME.EXE -module22= -opengllib22= -ver22=0 -coord22=0 -flag22=134217762 -flagg22=134217728 -flagh22=20 -flagi22=0 -tflag22=0 -initx22=0 -inity22=0 -minx22=0 -miny22=0 -maxx22=0 -maxy22=0 -posx22=50 -posy22=50 -sizx22=800 -sizy22=600 -maxfps22=0 -initts22=0 -title23=Dark Colony -path23=D:\Games\Dark Colony\DCOLONY\DC.EXE -module23= -opengllib23= -ver23=0 -coord23=0 -flag23=134217762 -flagg23=135266304 -flagh23=20 -flagi23=0 -tflag23=2 -initx23=0 -inity23=0 -minx23=0 -miny23=0 -maxx23=0 -maxy23=0 -posx23=50 -posy23=50 -sizx23=800 -sizy23=600 -maxfps23=0 -initts23=0 -title24=Dark Judgement -path24=D:\Games\Dark Judgement\Dark Judgement.EXE -module24= -opengllib24= -ver24=0 -coord24=0 -flag24=134217826 -flagg24=134217728 -flagh24=20 -flagi24=0 -tflag24=2 -initx24=0 -inity24=0 -minx24=0 -miny24=0 -maxx24=0 -maxy24=0 -posx24=50 -posy24=50 -sizx24=800 -sizy24=600 -maxfps24=0 -initts24=0 -title25=Dark Vengeance -path25=D:\Games\dark_vengeance\dv.exe -module25= -opengllib25= -ver25=0 -coord25=0 -flag25=142606386 -flagg25=134217728 -flagh25=6299668 -flagi25=0 -tflag25=258 -initx25=0 -inity25=0 -minx25=0 -miny25=0 -maxx25=800 -maxy25=600 -posx25=50 -posy25=50 -sizx25=800 -sizy25=600 -maxfps25=0 -initts25=0 -title26=Descent 3 -path26=D:\Games\Descent_3\Descent 3.exe -module26= -opengllib26= -ver26=0 -coord26=0 -flag26=134217760 -flagg26=134348801 -flagh26=4 -flagi26=0 -tflag26=0 -initx26=0 -inity26=0 -minx26=0 -miny26=0 -maxx26=0 -maxy26=0 -posx26=50 -posy26=50 -sizx26=800 -sizy26=600 -maxfps26=0 -initts26=0 -title27=Descent 3 main -path27=D:\Games\Descent_3\main.exe -module27= -opengllib27= -ver27=0 -coord27=0 -flag27=771891234 -flagg27=-1946025984 -flagh27=8212 -flagi27=0 -tflag27=2 -initx27=0 -inity27=0 -minx27=0 -miny27=0 -maxx27=0 -maxy27=0 -posx27=50 -posy27=50 -sizx27=800 -sizy27=600 -maxfps27=0 -initts27=0 -title28=Dethkarz.exe -path28=D:\Games\DethKarz\Dethkarz.exe -module28= -opengllib28= -ver28=0 -coord28=0 -flag28=671088672 -flagg28=134217728 -flagh28=276 -flagi28=0 -tflag28=258 -initx28=0 -inity28=0 -minx28=0 -miny28=0 -maxx28=0 -maxy28=0 -posx28=50 -posy28=50 -sizx28=800 -sizy28=600 -maxfps28=0 -initts28=0 -title29=Diablo -path29=D:\Games\Diablo\Diablo.exe -module29= -opengllib29= -ver29=0 -coord29=1 -flag29=134217762 -flagg29=134217728 -flagh29=134217748 -flagi29=0 -tflag29=322 -initx29=0 -inity29=0 -minx29=0 -miny29=0 -maxx29=0 -maxy29=0 -posx29=50 -posy29=50 -sizx29=0 -sizy29=0 -maxfps29=0 -initts29=6 -title30=Doom 3 -path30=D:\Games\Doom 3\Doom3.exe -module30= -opengllib30= -ver30=0 -coord30=0 -flag30=134217762 -flagg30=1207959552 -flagh30=20 -flagi30=0 -tflag30=0 -initx30=0 -inity30=0 -minx30=0 -miny30=0 -maxx30=0 -maxy30=0 -posx30=50 -posy30=50 -sizx30=800 -sizy30=600 -maxfps30=0 -initts30=0 -title31=Duckman -path31=D:\Games\duckman\DUCKMAN.EXE -module31= -opengllib31= -ver31=0 -coord31=0 -flag31=402653218 -flagg31=1207959568 -flagh31=1049620 -flagi31=0 -tflag31=2 -initx31=0 -inity31=0 -minx31=0 -miny31=0 -maxx31=0 -maxy31=0 -posx31=50 -posy31=50 -sizx31=800 -sizy31=600 -maxfps31=0 -initts31=0 -title32=Dungeon Keeper 2 -path32=D:\Games\Dungeon Keeper 2\DKII.exe -module32= -opengllib32= -ver32=0 -coord32=0 -flag32=134217762 -flagg32=1241513984 -flagh32=20 -flagi32=0 -tflag32=2 -initx32=0 -inity32=0 -minx32=0 -miny32=0 -maxx32=0 -maxy32=0 -posx32=50 -posy32=50 -sizx32=800 -sizy32=600 -maxfps32=0 -initts32=0 -title33=Dweep -path33=D:\Games\dweep\Dweep.exe -module33= -opengllib33= -ver33=0 -coord33=0 -flag33=134234146 -flagg33=134283264 -flagh33=1048596 -flagi33=0 -tflag33=0 -initx33=0 -inity33=0 -minx33=0 -miny33=0 -maxx33=0 -maxy33=0 -posx33=50 -posy33=50 -sizx33=800 -sizy33=600 -maxfps33=0 -initts33=2 -title34=Dylan Dog Horror Luna Park -path34=D:\Games\Dylan Dog\hlp.exe -module34= -opengllib34= -ver34=1 -coord34=0 -flag34=134217762 -flagg34=135266304 -flagh34=1048596 -flagi34=0 -tflag34=0 -initx34=0 -inity34=0 -minx34=0 -miny34=0 -maxx34=0 -maxy34=0 -posx34=50 -posy34=50 -sizx34=0 -sizy34=0 -maxfps34=0 -initts34=0 -title35=Eliminator -path35=D:\Games\eliminat\Eliminator.exe -module35= -opengllib35= -ver35=1 -coord35=0 -flag35=134217762 -flagg35=134217728 -flagh35=1044 -flagi35=0 -tflag35=2 -initx35=0 -inity35=0 -minx35=0 -miny35=0 -maxx35=0 -maxy35=0 -posx35=800 -posy35=600 -sizx35=400 -sizy35=300 -maxfps35=0 -initts35=0 -title36=EMERGY.EXE -path36=D:\Games\Emergency\EMERGY.EXE -module36= -opengllib36= -ver36=0 -coord36=0 -flag36=134283298 -flagg36=134217728 -flagh36=20 -flagi36=0 -tflag36=0 -initx36=0 -inity36=0 -minx36=0 -miny36=0 -maxx36=0 -maxy36=0 -posx36=50 -posy36=50 -sizx36=800 -sizy36=600 -maxfps36=0 -initts36=0 -title37=EMPIRES.EXE -path37=D:\Games\Age of Empires\EMPIRES.EXE -module37= -opengllib37= -ver37=0 -coord37=0 -flag37=134217762 -flagg37=134217728 -flagh37=1048596 -flagi37=0 -tflag37=64 -initx37=0 -inity37=0 -minx37=0 -miny37=0 -maxx37=0 -maxy37=0 -posx37=50 -posy37=50 -sizx37=800 -sizy37=600 -maxfps37=0 -initts37=0 -title38=EPIC40K.EXE -path38=D:\Games\war_hammer_final_liberation\EPIC40K.EXE -module38= -opengllib38= -ver38=0 -coord38=0 -flag38=-1476263902 -flagg38=135266304 -flagh38=2097172 -flagi38=0 -tflag38=0 -initx38=0 -inity38=0 -minx38=0 -miny38=0 -maxx38=0 -maxy38=0 -posx38=50 -posy38=50 -sizx38=800 -sizy38=600 -maxfps38=0 -initts38=0 -title39=Evany.exe -path39=D:\Games\Evany La chiave per mondi sconosciuti\Evany.exe -module39= -opengllib39= -ver39=0 -coord39=0 -flag39=738197538 -flagg39=1207959552 -flagh39=20 -flagi39=0 -tflag39=274 -initx39=0 -inity39=0 -minx39=0 -miny39=0 -maxx39=0 -maxy39=0 -posx39=50 -posy39=50 -sizx39=800 -sizy39=600 -maxfps39=0 -initts39=0 -title40=Evil Dead -path40=D:\Games\Evil Dead\EvilDead.exe -module40= -opengllib40= -ver40=0 -coord40=0 -flag40=-2013265888 -flagg40=1207959552 -flagh40=4 -flagi40=0 -tflag40=0 -initx40=0 -inity40=0 -minx40=0 -miny40=0 -maxx40=0 -maxy40=0 -posx40=50 -posy40=50 -sizx40=800 -sizy40=600 -maxfps40=0 -initts40=0 -title41=Fable - The Lost Chapters -path41=D:\Games\Fable - The Lost Chapters\Fable.exe -module41= -opengllib41= -ver41=9 -coord41=1 -flag41=134217760 -flagg41=201457672 -flagh41=20 -flagi41=0 -tflag41=258 -initx41=0 -inity41=0 -minx41=0 -miny41=0 -maxx41=0 -maxy41=0 -posx41=50 -posy41=50 -sizx41=800 -sizy41=600 -maxfps41=0 -initts41=0 -title42=Fallout -path42=D:\Games\Fallout\FALLOUTW.EXE -module42= -opengllib42= -ver42=1 -coord42=3 -flag42=134217762 -flagg42=134217728 -flagh42=1048596 -flagi42=0 -tflag42=66 -initx42=0 -inity42=0 -minx42=0 -miny42=0 -maxx42=0 -maxy42=0 -posx42=50 -posy42=50 -sizx42=800 -sizy42=600 -maxfps42=0 -initts42=0 -title43=Fighting Forces -path43=D:\Games\Fighting Forces\FFORCE.EXE -module43= -opengllib43= -ver43=0 -coord43=0 -flag43=134217762 -flagg43=671088640 -flagh43=3092 -flagi43=0 -tflag43=258 -initx43=0 -inity43=0 -minx43=0 -miny43=0 -maxx43=0 -maxy43=0 -posx43=50 -posy43=50 -sizx43=800 -sizy43=600 -maxfps43=0 -initts43=0 -title44=Final Fighter -path44=D:\Games\Final Fighter\FinalFighter.exe -module44= -opengllib44= -ver44=0 -coord44=0 -flag44=939524128 -flagg44=135266305 -flagh44=4 -flagi44=0 -tflag44=512 -initx44=0 -inity44=0 -minx44=0 -miny44=0 -maxx44=0 -maxy44=0 -posx44=50 -posy44=50 -sizx44=800 -sizy44=600 -maxfps44=0 -initts44=0 -title45=Final Odyssey -path45=D:\Games\Final odyssey\FinalOdy.exe -module45= -opengllib45= -ver45=0 -coord45=0 -flag45=134217760 -flagg45=134217728 -flagh45=4 -flagi45=0 -tflag45=64 -initx45=0 -inity45=0 -minx45=0 -miny45=0 -maxx45=0 -maxy45=0 -posx45=50 -posy45=50 -sizx45=800 -sizy45=600 -maxfps45=0 -initts45=0 -title46=Forsaken HW -path46=D:\Games\Forsaken\ForsakenHW.exe -module46= -opengllib46= -ver46=0 -coord46=0 -flag46=134217760 -flagg46=1207959552 -flagh46=20 -flagi46=0 -tflag46=0 -initx46=0 -inity46=0 -minx46=0 -miny46=0 -maxx46=0 -maxy46=0 -posx46=50 -posy46=50 -sizx46=800 -sizy46=600 -maxfps46=0 -initts46=0 -title47=Forsaken SW -path47=D:\Games\Forsaken\ForsakenSW.exe -module47= -opengllib47= -ver47=0 -coord47=0 -flag47=134217760 -flagg47=1207959552 -flagh47=65556 -flagi47=0 -tflag47=258 -initx47=0 -inity47=0 -minx47=0 -miny47=0 -maxx47=0 -maxy47=0 -posx47=50 -posy47=50 -sizx47=800 -sizy47=600 -maxfps47=0 -initts47=0 -title48=Fuel -path48=D:\Games\Codemasters\FUEL\FUEL.exe -module48= -opengllib48= -ver48=0 -coord48=0 -flag48=134217762 -flagg48=1207959552 -flagh48=20 -flagi48=0 -tflag48=0 -initx48=0 -inity48=0 -minx48=0 -miny48=0 -maxx48=0 -maxy48=0 -posx48=50 -posy48=50 -sizx48=800 -sizy48=600 -maxfps48=0 -initts48=0 -title49=Gangsters 2 -path49=D:\Games\Gangsters 2\Gangsters2.exe -module49= -opengllib49= -ver49=0 -coord49=0 -flag49=134217762 -flagg49=134217728 -flagh49=20 -flagi49=0 -tflag49=2 -initx49=0 -inity49=0 -minx49=0 -miny49=0 -maxx49=0 -maxy49=0 -posx49=50 -posy49=50 -sizx49=800 -sizy49=600 -maxfps49=0 -initts49=0 -title50=GeneRally -path50=D:\Games\generally105\GeneRally.exe -module50= -opengllib50= -ver50=7 -coord50=0 -flag50=134234146 -flagg50=135266305 -flagh50=20 -flagi50=0 -tflag50=0 -initx50=0 -inity50=0 -minx50=0 -miny50=0 -maxx50=0 -maxy50=0 -posx50=50 -posy50=50 -sizx50=800 -sizy50=600 -maxfps50=0 -initts50=0 -title51=Gex -path51=D:\Games\gex\GEX.EXE -module51= -opengllib51= -ver51=0 -coord51=0 -flag51=134217763 -flagg51=134217728 -flagh51=20 -flagi51=0 -tflag51=66 -initx51=0 -inity51=0 -minx51=0 -miny51=0 -maxx51=0 -maxy51=0 -posx51=50 -posy51=50 -sizx51=800 -sizy51=600 -maxfps51=0 -initts51=0 -title52=G-Nome -path52=D:\Games\G-Nome\G-NOME.EXE -module52= -opengllib52= -ver52=0 -coord52=0 -flag52=714084386 -flagg52=201326592 -flagh52=33300 -flagi52=0 -tflag52=0 -initx52=0 -inity52=0 -minx52=0 -miny52=0 -maxx52=0 -maxy52=0 -posx52=250 -posy52=250 -sizx52=800 -sizy52=600 -maxfps52=0 -initts52=0 -title53=Hard Truck - Road to Victory -path53=C:\Hard Truck\HTruck.exe -module53= -opengllib53= -ver53=0 -coord53=0 -flag53=134217760 -flagg53=134217728 -flagh53=2068 -flagi53=0 -tflag53=0 -initx53=0 -inity53=0 -minx53=0 -miny53=0 -maxx53=0 -maxy53=0 -posx53=50 -posy53=50 -sizx53=800 -sizy53=600 -maxfps53=0 -initts53=0 -title54=Hellcopter -path54=D:\Games\Hellcopter\HCopter.exe -module54= -opengllib54= -ver54=0 -coord54=0 -flag54=134217762 -flagg54=134217728 -flagh54=1044 -flagi54=0 -tflag54=258 -initx54=0 -inity54=0 -minx54=0 -miny54=0 -maxx54=0 -maxy54=0 -posx54=50 -posy54=50 -sizx54=800 -sizy54=600 -maxfps54=0 -initts54=0 -title55=Heroes of Might & Magic 2 Gold -path55=D:\Games\heroes2gold\HEROES2W.EXE -module55= -opengllib55= -ver55=0 -coord55=0 -flag55=134217730 -flagg55=135266304 -flagh55=20 -flagi55=0 -tflag55=770 -initx55=0 -inity55=0 -minx55=0 -miny55=0 -maxx55=0 -maxy55=0 -posx55=50 -posy55=50 -sizx55=800 -sizy55=600 -maxfps55=0 -initts55=0 -title56=Heroes of Might and Magic 3 CD -path56=D:\Games\Heroes of Might & Magic III\HEROES3.EXE -module56= -opengllib56= -ver56=0 -coord56=0 -flag56=134217762 -flagg56=1207959552 -flagh56=20 -flagi56=0 -tflag56=0 -initx56=0 -inity56=0 -minx56=0 -miny56=0 -maxx56=0 -maxy56=0 -posx56=50 -posy56=50 -sizx56=800 -sizy56=600 -maxfps56=0 -initts56=0 -title57=Heroes of Might and Magic 3 Complete -path57=D:\Games\Heroes of Might and Magic 3 Complete\Heroes3.exe -module57= -opengllib57= -ver57=0 -coord57=0 -flag57=134217762 -flagg57=1207959552 -flagh57=20 -flagi57=0 -tflag57=2 -initx57=0 -inity57=0 -minx57=0 -miny57=0 -maxx57=0 -maxy57=0 -posx57=50 -posy57=50 -sizx57=800 -sizy57=600 -maxfps57=0 -initts57=0 -title58=Heroes of Might and Magic 4 Complete -path58=D:\Games\Heroes of Might and Magic 4 Complete\heroes4.exe -module58= -opengllib58= -ver58=0 -coord58=0 -flag58=134283298 -flagg58=1209008128 -flagh58=65556 -flagi58=0 -tflag58=2 -initx58=0 -inity58=0 -minx58=0 -miny58=0 -maxx58=0 -maxy58=0 -posx58=50 -posy58=50 -sizx58=800 -sizy58=600 -maxfps58=0 -initts58=0 -title59=Heroes of Might and Magic IV -path59=D:\Games\Heroes of Might and Magic IV\heroes4i.exe -module59= -opengllib59= -ver59=0 -coord59=0 -flag59=134283298 -flagg59=1211121728 -flagh59=65556 -flagi59=0 -tflag59=2 -initx59=0 -inity59=0 -minx59=0 -miny59=0 -maxx59=0 -maxy59=0 -posx59=50 -posy59=50 -sizx59=800 -sizy59=600 -maxfps59=0 -initts59=0 -title60=HoI2.exe -path60=D:\Games\HoI2 Doomsday\HoI2.exe -module60= -opengllib60= -ver60=0 -coord60=0 -flag60=150994976 -flagg60=134217728 -flagh60=20 -flagi60=0 -tflag60=258 -initx60=0 -inity60=0 -minx60=0 -miny60=0 -maxx60=0 -maxy60=0 -posx60=50 -posy60=50 -sizx60=800 -sizy60=600 -maxfps60=0 -initts60=0 -title61=Hooligans Storm over Europe -path61=D:\Games\Hooligans\Hooligans.exe -module61= -opengllib61= -ver61=0 -coord61=0 -flag61=134742048 -flagg61=202375168 -flagh61=20 -flagi61=0 -tflag61=258 -initx61=0 -inity61=0 -minx61=0 -miny61=0 -maxx61=0 -maxy61=0 -posx61=50 -posy61=50 -sizx61=800 -sizy61=600 -maxfps61=0 -initts61=0 -title62=Imperialism -path62=D:\Games\Imperialism\Imperialism.exe -module62= -opengllib62= -ver62=0 -coord62=0 -flag62=679485474 -flagg62=134217728 -flagh62=32788 -flagi62=0 -tflag62=2 -initx62=0 -inity62=0 -minx62=0 -miny62=0 -maxx62=0 -maxy62=0 -posx62=50 -posy62=50 -sizx62=1200 -sizy62=900 -maxfps62=0 -initts62=0 -title63=Imperialism II -path63=D:\Games\imperialism_2\imperialism II.exe -module63= -opengllib63= -ver63=0 -coord63=0 -flag63=671096866 -flagg63=470810688 -flagh63=20 -flagi63=0 -tflag63=66 -initx63=0 -inity63=0 -minx63=0 -miny63=0 -maxx63=0 -maxy63=0 -posx63=50 -posy63=50 -sizx63=800 -sizy63=600 -maxfps63=0 -initts63=0 -title64=Kohan II Kings of War -path64=D:\Games\Kohan II Kings of War\k2.exe -module64= -opengllib64= -ver64=0 -coord64=0 -flag64=134217762 -flagg64=1207959552 -flagh64=20 -flagi64=0 -tflag64=0 -initx64=0 -inity64=0 -minx64=0 -miny64=0 -maxx64=0 -maxy64=0 -posx64=50 -posy64=50 -sizx64=800 -sizy64=600 -maxfps64=0 -initts64=0 -title65=Martian Gothic Unification -path65=D:\Games\Martian Gothic\martian gothic.exe -module65= -opengllib65= -ver65=0 -coord65=0 -flag65=402653217 -flagg65=134217728 -flagh65=8212 -flagi65=0 -tflag65=275 -initx65=0 -inity65=0 -minx65=0 -miny65=0 -maxx65=0 -maxy65=0 -posx65=1450 -posy65=50 -sizx65=400 -sizy65=300 -maxfps65=0 -initts65=0 -title66=Mechwarrior 3 -path66=D:\Games\Mechwarrior 3 (full)\Mech3.exe -module66= -opengllib66= -ver66=0 -coord66=0 -flag66=671096866 -flagg66=-2012086272 -flagh66=20 -flagi66=0 -tflag66=258 -initx66=0 -inity66=0 -minx66=0 -miny66=0 -maxx66=0 -maxy66=0 -posx66=50 -posy66=50 -sizx66=800 -sizy66=600 -maxfps66=0 -initts66=0 -title67=Messiah GOG -path67=D:\Games\Messiah (GOG)\MessiahD3D.exe -module67= -opengllib67= -ver67=7 -coord67=0 -flag67=947912738 -flagg67=1207959552 -flagh67=20 -flagi67=0 -tflag67=2 -initx67=0 -inity67=0 -minx67=0 -miny67=0 -maxx67=0 -maxy67=0 -posx67=50 -posy67=50 -sizx67=800 -sizy67=600 -maxfps67=0 -initts67=0 -title68=Nightmare Ned -path68=D:\Games\Ned\NITENED.EXE -module68= -opengllib68= -ver68=0 -coord68=0 -flag68=134217762 -flagg68=134217728 -flagh68=1048596 -flagi68=0 -tflag68=2 -initx68=0 -inity68=0 -minx68=0 -miny68=0 -maxx68=0 -maxy68=0 -posx68=50 -posy68=50 -sizx68=800 -sizy68=600 -maxfps68=0 -initts68=0 -title69=Premier Manager 98 -path69=D:\Games\Premier Manager 98\MANAGER.EXE -module69= -opengllib69= -ver69=1 -coord69=0 -flag69=671088674 -flagg69=1207959552 -flagh69=20 -flagi69=0 -tflag69=0 -initx69=0 -inity69=0 -minx69=0 -miny69=0 -maxx69=0 -maxy69=0 -posx69=50 -posy69=50 -sizx69=800 -sizy69=600 -maxfps69=0 -initts69=0 -title70=Raiden II -path70=D:\Games\raiden2\RAIDENII.EXE -module70= -opengllib70= -ver70=0 -coord70=1 -flag70=134217762 -flagg70=134217728 -flagh70=20 -flagi70=0 -tflag70=0 -initx70=0 -inity70=0 -minx70=0 -miny70=0 -maxx70=0 -maxy70=0 -posx70=50 -posy70=50 -sizx70=800 -sizy70=600 -maxfps70=0 -initts70=0 -title71=Rapanui -path71=D:\Games\Rapanui\Rapanui.exe -module71= -opengllib71= -ver71=0 -coord71=0 -flag71=134217762 -flagg71=134217728 -flagh71=20 -flagi71=0 -tflag71=0 -initx71=0 -inity71=0 -minx71=0 -miny71=0 -maxx71=0 -maxy71=0 -posx71=50 -posy71=50 -sizx71=800 -sizy71=600 -maxfps71=0 -initts71=0 -title72=Rayman2.exe -path72=C:\Program Files\GOG.com\Rayman 2\Rayman2.exe -module72= -opengllib72= -ver72=1 -coord72=0 -flag72=134217763 -flagg72=1208029184 -flagh72=2097172 -flagi72=0 -tflag72=18 -initx72=0 -inity72=0 -minx72=0 -miny72=0 -maxx72=0 -maxy72=0 -posx72=50 -posy72=50 -sizx72=800 -sizy72=600 -maxfps72=50 -initts72=8 -title73=Silent Hunter II (shell) -path73=D:\Games\Silent Hunter II\Shell\Shell.exe -module73= -opengllib73= -ver73=0 -coord73=0 -flag73=402653221 -flagg73=135266304 -flagh73=20 -flagi73=0 -tflag73=2 -initx73=0 -inity73=0 -minx73=0 -miny73=0 -maxx73=800 -maxy73=600 -posx73=50 -posy73=50 -sizx73=800 -sizy73=600 -maxfps73=0 -initts73=0 -title74=Silent Hunter II (sim) -path74=D:\Games\Silent Hunter II\Sim\Sim.exe -module74= -opengllib74= -ver74=0 -coord74=0 -flag74=134217780 -flagg74=134217728 -flagh74=20 -flagi74=0 -tflag74=0 -initx74=400 -inity74=300 -minx74=0 -miny74=0 -maxx74=800 -maxy74=600 -posx74=50 -posy74=50 -sizx74=800 -sizy74=600 -maxfps74=0 -initts74=0 -title75=Space Hack -path75=D:\Games\Space Hack\main.exe -module75= -opengllib75= -ver75=0 -coord75=0 -flag75=671105058 -flagg75=134217728 -flagh75=20 -flagi75=0 -tflag75=258 -initx75=0 -inity75=0 -minx75=0 -miny75=0 -maxx75=0 -maxy75=0 -posx75=50 -posy75=50 -sizx75=800 -sizy75=600 -maxfps75=0 -initts75=0 -title76=Tachyon The Fringe -path76=D:\Games\TachyonTheFringe\space.exe -module76= -opengllib76= -ver76=0 -coord76=0 -flag76=134234148 -flagg76=134217728 -flagh76=20 -flagi76=0 -tflag76=258 -initx76=0 -inity76=0 -minx76=0 -miny76=0 -maxx76=0 -maxy76=0 -posx76=50 -posy76=50 -sizx76=800 -sizy76=600 -maxfps76=0 -initts76=0 -title77=Tanktics -path77=D:\Games\Tanktics\tanktics.exe -module77= -opengllib77= -ver77=0 -coord77=0 -flag77=671088674 -flagg77=134217728 -flagh77=20 -flagi77=0 -tflag77=258 -initx77=0 -inity77=0 -minx77=0 -miny77=0 -maxx77=0 -maxy77=0 -posx77=50 -posy77=50 -sizx77=800 -sizy77=600 -maxfps77=0 -initts77=0 -title78=TD5_D3D.exe -path78=D:\Games\Test Drive 5\TD5_D3D.exe -module78= -opengllib78= -ver78=0 -coord78=0 -flag78=134217760 -flagg78=1207959552 -flagh78=20 -flagi78=0 -tflag78=64 -initx78=0 -inity78=0 -minx78=0 -miny78=0 -maxx78=0 -maxy78=0 -posx78=50 -posy78=50 -sizx78=800 -sizy78=600 -maxfps78=0 -initts78=0 -title79=The Sims -path79=D:\Games\sims\Sims.exe -module79= -opengllib79= -ver79=0 -coord79=0 -flag79=671096866 -flagg79=134217728 -flagh79=20 -flagi79=0 -tflag79=66 -initx79=0 -inity79=0 -minx79=0 -miny79=0 -maxx79=0 -maxy79=0 -posx79=50 -posy79=50 -sizx79=800 -sizy79=600 -maxfps79=0 -initts79=0 -title80=Tomb Raider - The Last Revelation -path80=D:\Games\Tomb Raider - The Last Revelation\tomb4.exe -module80= -opengllib80= -ver80=0 -coord80=0 -flag80=134217826 -flagg80=134217728 -flagh80=20 -flagi80=0 -tflag80=2 -initx80=0 -inity80=0 -minx80=0 -miny80=0 -maxx80=0 -maxy80=0 -posx80=50 -posy80=50 -sizx80=800 -sizy80=600 -maxfps80=0 -initts80=0 -title81=TOMB2.EXE -path81=D:\Games\Tomb Raider 2\TOMB2.EXE -module81= -opengllib81= -ver81=0 -coord81=0 -flag81=134217760 -flagg81=201326592 -flagh81=2068 -flagi81=0 -tflag81=0 -initx81=0 -inity81=0 -minx81=0 -miny81=0 -maxx81=0 -maxy81=0 -posx81=50 -posy81=50 -sizx81=800 -sizy81=600 -maxfps81=0 -initts81=0 -title82=Vangers one of the Road -path82=D:\Games\Vangers\road.exe -module82= -opengllib82= -ver82=1 -coord82=0 -flag82=406847650 -flagg82=671088640 -flagh82=20 -flagi82=0 -tflag82=258 -initx82=0 -inity82=0 -minx82=0 -miny82=0 -maxx82=0 -maxy82=0 -posx82=50 -posy82=50 -sizx82=800 -sizy82=600 -maxfps82=0 -initts82=0 -title83=wa.exe -path83=D:\Games\worms_arma\Worms_2_Armageddon\wa.exe -module83= -opengllib83= -ver83=0 -coord83=0 -flag83=713031712 -flagg83=134217728 -flagh83=20 -flagi83=0 -tflag83=2 -initx83=0 -inity83=0 -minx83=0 -miny83=0 -maxx83=0 -maxy83=0 -posx83=50 -posy83=50 -sizx83=800 -sizy83=600 -maxfps83=0 -initts83=0 -title84=Wargames -path84=D:\Games\WarGames\wargames.exe -module84= -opengllib84= -ver84=0 -coord84=0 -flag84=134217762 -flagg84=1207959552 -flagh84=20 -flagi84=0 -tflag84=66 -initx84=0 -inity84=0 -minx84=0 -miny84=0 -maxx84=0 -maxy84=0 -posx84=50 -posy84=50 -sizx84=800 -sizy84=600 -maxfps84=0 -initts84=0 -title85=Warlords 3 -path85=D:\Games\Warlords3\Darklord.exe -module85= -opengllib85= -ver85=0 -coord85=0 -flag85=-2013249502 -flagg85=135266304 -flagh85=20 -flagi85=0 -tflag85=2 -initx85=0 -inity85=0 -minx85=0 -miny85=0 -maxx85=0 -maxy85=0 -posx85=50 -posy85=50 -sizx85=800 -sizy85=600 -maxfps85=0 -initts85=0 -title86=Western Front -path86=D:\Games\Western Front\wf.exe -module86= -opengllib86= -ver86=0 -coord86=0 -flag86=679477282 -flagg86=135266304 -flagh86=16404 -flagi86=0 -tflag86=0 -initx86=0 -inity86=0 -minx86=0 -miny86=0 -maxx86=0 -maxy86=0 -posx86=50 -posy86=50 -sizx86=800 -sizy86=600 -maxfps86=0 -initts86=0 -title87=dw.exe -path87=D:\Games\Devil.Whiskey\dw.exe -module87= -opengllib87= -ver87=7 -coord87=0 -flag87=671088674 -flagg87=1208090624 -flagh87=5 -flagi87=0 -tflag87=64 -initx87=0 -inity87=0 -minx87=0 -miny87=0 -maxx87=0 -maxy87=0 -posx87=50 -posy87=50 -sizx87=800 -sizy87=600 -maxfps87=0 -initts87=0 -title88=Dungeon Lords MMXII -path88=D:\Games\Dungeon Lords MMXII\dlords2012.exe -module88= -opengllib88= -ver88=0 -coord88=2 -flag88=-2013265886 -flagg88=1207959552 -flagh88=20 -flagi88=0 -tflag88=0 -initx88=0 -inity88=0 -minx88=0 -miny88=0 -maxx88=0 -maxy88=0 -posx88=50 -posy88=50 -sizx88=800 -sizy88=600 -maxfps88=0 -initts88=0 -title89=Bunnies must die -path89=D:\Games\Bunnies must die\bmd.exe -module89= -opengllib89= -ver89=7 -coord89=0 -flag89=671088674 -flagg89=1209008128 -flagh89=4 -flagi89=0 -tflag89=2 -initx89=0 -inity89=0 -minx89=0 -miny89=0 -maxx89=0 -maxy89=0 -posx89=50 -posy89=50 -sizx89=800 -sizy89=600 -maxfps89=0 -initts89=0 -title90=Magic & Mayhem -path90=D:\Games\Magic_&_Mayhem\Chaos.exe -module90= -opengllib90= -ver90=0 -coord90=0 -flag90=138428450 -flagg90=1275068416 -flagh90=20 -flagi90=0 -tflag90=258 -initx90=0 -inity90=0 -minx90=0 -miny90=0 -maxx90=0 -maxy90=0 -posx90=50 -posy90=50 -sizx90=800 -sizy90=600 -maxfps90=0 -initts90=0 -title91=Submarine Titans Demo -path91=D:\Games\Submarine Titans Demo\st.exe -module91= -opengllib91= -ver91=0 -coord91=0 -flag91=675282978 -flagg91=1207959552 -flagh91=20 -flagi91=0 -tflag91=2 -initx91=0 -inity91=0 -minx91=0 -miny91=0 -maxx91=0 -maxy91=0 -posx91=50 -posy91=50 -sizx91=800 -sizy91=600 -maxfps91=0 -initts91=0 -title92=Grand Prix Legends -path92=D:\Games\gpl\gpl.exe -module92= -opengllib92= -ver92=0 -coord92=2 -flag92=721420320 -flagg92=1207959568 -flagh92=20 -flagi92=0 -tflag92=322 -initx92=0 -inity92=0 -minx92=0 -miny92=0 -maxx92=0 -maxy92=0 -posx92=50 -posy92=50 -sizx92=800 -sizy92=600 -maxfps92=0 -initts92=0 -title93=Land of the Dead -path93=D:\Games\Land of the Dead\System\LOTD.exe -module93= -opengllib93= -ver93=0 -coord93=0 -flag93=134217766 -flagg93=1207959552 -flagh93=20 -flagi93=0 -tflag93=64 -initx93=0 -inity93=0 -minx93=0 -miny93=0 -maxx93=0 -maxy93=0 -posx93=50 -posy93=50 -sizx93=800 -sizy93=600 -maxfps93=0 -initts93=0 -title94=Devastation -path94=D:\Games\Devastation\System\Devastation.exe -module94= -opengllib94= -ver94=0 -coord94=0 -flag94=671088674 -flagg94=1207959552 -flagh94=16 -flagi94=0 -tflag94=66 -initx94=0 -inity94=0 -minx94=0 -miny94=0 -maxx94=0 -maxy94=0 -posx94=50 -posy94=50 -sizx94=800 -sizy94=600 -maxfps94=0 -initts94=0 -title95=RCRacers.exe -path95=D:\Games\Sierra\RCRacing\RCRacers.exe -module95= -opengllib95= -ver95=0 -coord95=0 -flag95=679477282 -flagg95=1209008128 -flagh95=65556 -flagi95=0 -tflag95=66 -initx95=0 -inity95=0 -minx95=0 -miny95=0 -maxx95=0 -maxy95=0 -posx95=50 -posy95=50 -sizx95=400 -sizy95=300 -maxfps95=0 -initts95=0 -title96=Kiss Psycho Circus -path96=D:\Games\Kiss\psycho.exe -module96= -opengllib96= -ver96=0 -coord96=0 -flag96=134217762 -flagg96=1207959552 -flagh96=20 -flagi96=0 -tflag96=64 -initx96=0 -inity96=0 -minx96=0 -miny96=0 -maxx96=0 -maxy96=0 -posx96=50 -posy96=50 -sizx96=800 -sizy96=600 -maxfps96=0 -initts96=0 -title97=Hamsterball -path97=D:\Games\Hamsterball\Hamsterball.exe -module97= -opengllib97= -ver97=8 -coord97=0 -flag97=134217762 -flagg97=1207959552 -flagh97=20 -flagi97=0 -tflag97=323 -initx97=0 -inity97=0 -minx97=0 -miny97=0 -maxx97=0 -maxy97=0 -posx97=50 -posy97=50 -sizx97=800 -sizy97=600 -maxfps97=0 -initts97=0 -title98=Pharaoh's Ascent 1.4 -path98=D:\Games\Pharaohs_Ascent_1.4\Pharaoh.exe -module98= -opengllib98= -ver98=0 -coord98=0 -flag98=947912739 -flagg98=1209008128 -flagh98=20 -flagi98=0 -tflag98=66 -initx98=0 -inity98=0 -minx98=0 -miny98=0 -maxx98=0 -maxy98=0 -posx98=50 -posy98=50 -sizx98=800 -sizy98=600 -maxfps98=0 -initts98=0 -title99=Praetorians -path99=D:\Games\Praetorians\Praetorians.exe -module99= -opengllib99= -ver99=0 -coord99=0 -flag99=134217760 -flagg99=1207959552 -flagh99=20 -flagi99=0 -tflag99=258 -initx99=0 -inity99=0 -minx99=0 -miny99=0 -maxx99=0 -maxy99=0 -posx99=50 -posy99=50 -sizx99=800 -sizy99=600 -maxfps99=0 -initts99=0 -title100=Chariots of War binkplay -path100=D:\Games\Chariots of War\data\movies\binkplay.exe -module100= -opengllib100= -ver100=0 -coord100=0 -flag100=671088674 -flagg100=1745879041 -flagh100=4 -flagi100=0 -tflag100=2 -initx100=0 -inity100=0 -minx100=0 -miny100=0 -maxx100=0 -maxy100=0 -posx100=50 -posy100=50 -sizx100=800 -sizy100=600 -maxfps100=0 -initts100=0 -title101=Jetboat Superchamps 2 -path101=D:\Games\Jetboat Superchamps 2\Jbs2.exe -module101= -opengllib101= -ver101=0 -coord101=0 -flag101=134217760 -flagg101=1207959552 -flagh101=4 -flagi101=0 -tflag101=2 -initx101=0 -inity101=0 -minx101=0 -miny101=0 -maxx101=0 -maxy101=0 -posx101=50 -posy101=50 -sizx101=800 -sizy101=600 -maxfps101=0 -initts101=0 -title102=Star Force Deluxe -path102=D:\Games\stardeluxe\DELUXE.EXE -module102= -opengllib102= -ver102=0 -coord102=0 -flag102=1207959587 -flagg102=1828716544 -flagh102=2163220 -flagi102=0 -tflag102=259 -initx102=0 -inity102=0 -minx102=0 -miny102=0 -maxx102=0 -maxy102=0 -posx102=50 -posy102=50 -sizx102=400 -sizy102=300 -maxfps102=0 -initts102=0 -title103=Last Bronx -path103=D:\Games\Last_Bronx\LB.EXE -module103= -opengllib103= -ver103=0 -coord103=0 -flag103=134217762 -flagg103=1207959552 -flagh103=20 -flagi103=0 -tflag103=259 -initx103=0 -inity103=0 -minx103=0 -miny103=0 -maxx103=0 -maxy103=0 -posx103=50 -posy103=50 -sizx103=800 -sizy103=600 -maxfps103=0 -initts103=0 -title104=Riot Police -path104=D:\Games\Riot Police\RPolice.exe -module104= -opengllib104= -ver104=0 -coord104=0 -flag104=134217762 -flagg104=1207959552 -flagh104=20 -flagi104=0 -tflag104=2 -initx104=0 -inity104=0 -minx104=0 -miny104=0 -maxx104=0 -maxy104=0 -posx104=50 -posy104=50 -sizx104=800 -sizy104=600 -maxfps104=0 -initts104=0 -title105=Serious Sam Demo -path105=D:\Games\Serious Sam Demo\Bin\SeriousSam.exe -module105= -opengllib105= -ver105=0 -coord105=0 -flag105=134217762 -flagg105=1208090624 -flagh105=20 -flagi105=0 -tflag105=0 -initx105=0 -inity105=0 -minx105=0 -miny105=0 -maxx105=0 -maxy105=0 -posx105=50 -posy105=50 -sizx105=800 -sizy105=600 -maxfps105=0 -initts105=0 -title106=Space Rangers -path106=D:\Games\Space Rangers\Rangers.exe -module106= -opengllib106= -ver106=1 -coord106=0 -flag106=134234146 -flagg106=1207959552 -flagh106=20 -flagi106=0 -tflag106=0 -initx106=0 -inity106=0 -minx106=0 -miny106=0 -maxx106=0 -maxy106=0 -posx106=50 -posy106=50 -sizx106=800 -sizy106=600 -maxfps106=0 -initts106=0 -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=201392162 -flagg107=1476919296 -flagh107=33554972 -flagi107=0 -tflag107=275 -initx107=0 -inity107=0 -minx107=0 -miny107=0 -maxx107=0 -maxy107=0 -posx107=50 -posy107=50 -sizx107=800 -sizy107=600 -maxfps107=0 -initts107=0 -title108=Roswell Pinball -path108=D:\Games\RoswellPinball\winpin.exe -module108= -opengllib108= -ver108=0 -coord108=0 -flag108=134217762 -flagg108=1207959552 -flagh108=4 -flagi108=0 -tflag108=258 -initx108=0 -inity108=0 -minx108=0 -miny108=0 -maxx108=0 -maxy108=0 -posx108=50 -posy108=50 -sizx108=800 -sizy108=600 -maxfps108=0 -initts108=0 -title109=Virtua Fighter PC -path109=D:\Games\Virtua Fighter\VFPC.EXE -module109= -opengllib109= -ver109=0 -coord109=0 -flag109=134219810 -flagg109=1207959556 -flagh109=167821334 -flagi109=0 -tflag109=339 -initx109=0 -inity109=0 -minx109=0 -miny109=0 -maxx109=0 -maxy109=0 -posx109=50 -posy109=50 -sizx109=800 -sizy109=600 -maxfps109=0 -initts109=6 -title110=Theseus -path110=D:\Games\theseus\Theseus.exe -module110= -opengllib110= -ver110=8 -coord110=0 -flag110=134217730 -flagg110=1207959552 -flagh110=20 -flagi110=0 -tflag110=0 -initx110=0 -inity110=0 -minx110=0 -miny110=0 -maxx110=0 -maxy110=0 -posx110=50 -posy110=50 -sizx110=800 -sizy110=600 -maxfps110=0 -initts110=0 -title111=Star Wars Shadow of the Empire (DEMO) -path111=D:\Games\shadowsdemo\shadows.exe -module111= -opengllib111= -ver111=0 -coord111=0 -flag111=134217760 -flagg111=1208483840 -flagh111=33554452 -flagi111=0 -tflag111=275 -initx111=0 -inity111=0 -minx111=0 -miny111=0 -maxx111=0 -maxy111=0 -posx111=50 -posy111=50 -sizx111=800 -sizy111=600 -maxfps111=0 -initts111=0 -title112=Chocolate Duke 3D -path112=D:\Games\Release Chocolate Duke3D\ChocolateDuke3D.exe -module112= -opengllib112= -ver112=0 -coord112=0 -flag112=671088672 -flagg112=1207959808 -flagh112=98324 -flagi112=0 -tflag112=3 -initx112=0 -inity112=0 -minx112=0 -miny112=0 -maxx112=0 -maxy112=0 -posx112=50 -posy112=50 -sizx112=400 -sizy112=300 -maxfps112=0 -initts112=0 -title113=Tomb Raider III (SW emulation) -path113=D:\Games\Tomb Raider III\tomb3.exe -module113= -opengllib113= -ver113=0 -coord113=0 -flag113=134217762 -flagg113=1241513984 -flagh113=33554452 -flagi113=0 -tflag113=323 -initx113=0 -inity113=0 -minx113=0 -miny113=0 -maxx113=0 -maxy113=0 -posx113=50 -posy113=50 -sizx113=800 -sizy113=600 -maxfps113=0 -initts113=0 -title114=Tomb Raider III (HW acceleration) -path114=D:\Games\Tomb Raider III\tomb3.exe -module114= -opengllib114= -ver114=0 -coord114=0 -flag114=134217760 -flagg114=1241514000 -flagh114=4 -flagi114=0 -tflag114=0 -initx114=0 -inity114=0 -minx114=0 -miny114=0 -maxx114=0 -maxy114=0 -posx114=50 -posy114=50 -sizx114=800 -sizy114=600 -maxfps114=0 -initts114=0 -title115=Star Wars Phantom Menace -path115=D:\Games\Star Wars Phantom Menace\WMAIN.EXE -module115= -opengllib115= -ver115=0 -coord115=0 -flag115=939524129 -flagg115=1207959552 -flagh115=20 -flagi115=0 -tflag115=0 -initx115=0 -inity115=0 -minx115=0 -miny115=0 -maxx115=0 -maxy115=0 -posx115=50 -posy115=50 -sizx115=800 -sizy115=600 -maxfps115=0 -initts115=0 -title116=Last Call -path116=D:\Games\Last Call\fast.EXE -module116= -opengllib116= -ver116=0 -coord116=0 -flag116=134217762 -flagg116=1207959552 -flagh116=20 -flagi116=0 -tflag116=0 -initx116=0 -inity116=0 -minx116=0 -miny116=0 -maxx116=0 -maxy116=0 -posx116=50 -posy116=50 -sizx116=800 -sizy116=600 -maxfps116=0 -initts116=0 -title117=Empire Earth -path117=D:\Games\Empire Earth\Empire Earth.exe -module117= -opengllib117= -ver117=0 -coord117=0 -flag117=671088674 -flagg117=1207959552 -flagh117=32788 -flagi117=0 -tflag117=0 -initx117=0 -inity117=0 -minx117=0 -miny117=0 -maxx117=0 -maxy117=0 -posx117=50 -posy117=50 -sizx117=800 -sizy117=600 -maxfps117=0 -initts117=0 -title118=Warcraft 2 Battlenet Edition -path118=D:\Games\Warcraft 2 Battlenet Ed\Warcraft II BNE.exe -module118= -opengllib118= -ver118=0 -coord118=0 -flag118=134217762 -flagg118=1207959552 -flagh118=20 -flagi118=0 -tflag118=0 -initx118=0 -inity118=0 -minx118=0 -miny118=0 -maxx118=0 -maxy118=0 -posx118=50 -posy118=50 -sizx118=800 -sizy118=600 -maxfps118=0 -initts118=0 -title119=Lifestream -path119=D:\Games\Lifestream\Lifestream.exe -module119= -opengllib119= -ver119=0 -coord119=0 -flag119=134217762 -flagg119=1207959552 -flagh119=20 -flagi119=0 -tflag119=0 -initx119=0 -inity119=0 -minx119=0 -miny119=0 -maxx119=0 -maxy119=0 -posx119=50 -posy119=50 -sizx119=800 -sizy119=600 -maxfps119=0 -initts119=0 -title120=Rayman 2 (GOG) -path120=D:\Games\GOG.com\Rayman 2\Rayman2.exe -module120= -opengllib120= -ver120=1 -coord120=0 -flag120=402653217 -flagg120=1208025104 -flagh120=20 -flagi120=0 -tflag120=0 -initx120=0 -inity120=0 -minx120=0 -miny120=0 -maxx120=0 -maxy120=0 -posx120=50 -posy120=50 -sizx120=800 -sizy120=600 -maxfps120=0 -initts120=0 -title121=Rayman 2 Demo -path121=D:\Games\Rayman2Demo\Rayman2Demo.exe -module121= -opengllib121= -ver121=1 -coord121=0 -flag121=402653217 -flagg121=1208025088 -flagh121=20 -flagi121=0 -tflag121=0 -initx121=0 -inity121=0 -minx121=0 -miny121=0 -maxx121=0 -maxy121=0 -posx121=50 -posy121=50 -sizx121=800 -sizy121=600 -maxfps121=0 -initts121=0 [window] -posx=1314 -posy=269 -sizx=443 -sizy=306 +posx=1152 +posy=191 +sizx=497 +sizy=410 diff --git a/build/issues.txt b/build/issues.txt new file mode 100644 index 0000000..b6fa262 --- /dev/null +++ b/build/issues.txt @@ -0,0 +1 @@ +Ancient Evil: working both in emulated / direct mode, but in emulated mode the cursor is not visible. diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 6597f9d..f7824c8 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -286,4 +286,11 @@ 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 +Cleared invisible debug flags ... + +v2.02.43 +Several changes for Empire Earth: +fix: restore 16BPP color mode after directdraw session termination +fix: recovered window destruction +fix: proper handling of MIPMAP and LOCALVIDMEM surfaces +fix: revised color management, now when the program terminates the desktop is restored to the previous color depth diff --git a/build/v2_02_42_build.rar b/build/v2_02_42_build.rar deleted file mode 100644 index f38f867..0000000 Binary files a/build/v2_02_42_build.rar and /dev/null differ diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index ad5f713..c370583 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -373,28 +373,30 @@ static char *DumpPixelFormat(LPDDSURFACEDESC2 lpddsd) static void LogSurfaceAttributes(LPDDSURFACEDESC lpddsd, char *label, int line) { - OutTraceD("SurfaceDesc: %s Flags=%x(%s)", + if(!IsTraceD) return; + OutTrace("SurfaceDesc: %s Flags=%x(%s)", label, lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags)); - if (lpddsd->dwFlags & DDSD_BACKBUFFERCOUNT) OutTraceD(" BackBufferCount=%d", lpddsd->dwBackBufferCount); - if (lpddsd->dwFlags & DDSD_WIDTH) OutTraceD(" Width=%d", lpddsd->dwWidth); - if (lpddsd->dwFlags & DDSD_HEIGHT) OutTraceD(" Height=%d", lpddsd->dwHeight); - if (lpddsd->dwFlags & DDSD_PITCH) OutTraceD(" Pitch=%d", lpddsd->lPitch); + if (lpddsd->dwFlags & DDSD_BACKBUFFERCOUNT) OutTrace(" BackBufferCount=%d", lpddsd->dwBackBufferCount); + if (lpddsd->dwFlags & DDSD_WIDTH) OutTrace(" Width=%d", lpddsd->dwWidth); + if (lpddsd->dwFlags & DDSD_HEIGHT) OutTrace(" Height=%d", lpddsd->dwHeight); + if (lpddsd->dwFlags & DDSD_PITCH) OutTrace(" Pitch=%d", lpddsd->lPitch); + if (lpddsd->dwFlags & DDSD_MIPMAPCOUNT) OutTrace(" MipMapCount=%d", lpddsd->dwMipMapCount); if (lpddsd->dwFlags & DDSD_CAPS) { - OutTraceD(" Caps=%x(%s)", lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps)); + OutTrace(" Caps=%x(%s)", lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps)); if(lpddsd->dwSize==sizeof(DDSURFACEDESC2)){ LPDDSURFACEDESC2 lpddsd2=(LPDDSURFACEDESC2)lpddsd; - OutTraceD(" Caps2=%x(%s)", lpddsd2->ddsCaps.dwCaps2, ExplainDDSCaps2(lpddsd2->ddsCaps.dwCaps2)); - OutTraceD(" Caps3=%x(%s)", lpddsd2->ddsCaps.dwCaps3, ExplainDDSCaps3(lpddsd2->ddsCaps.dwCaps3)); + OutTrace(" Caps2=%x(%s)", lpddsd2->ddsCaps.dwCaps2, ExplainDDSCaps2(lpddsd2->ddsCaps.dwCaps2)); + OutTrace(" Caps3=%x(%s)", lpddsd2->ddsCaps.dwCaps3, ExplainDDSCaps3(lpddsd2->ddsCaps.dwCaps3)); } } - if (lpddsd->dwFlags & DDSD_CKDESTBLT ) OutTraceD(" CKDestBlt=(%x,%x)", lpddsd->ddckCKDestBlt.dwColorSpaceLowValue, lpddsd->ddckCKDestBlt.dwColorSpaceHighValue); - if (lpddsd->dwFlags & DDSD_CKDESTOVERLAY ) OutTraceD(" CKDestOverlay=(%x,%x)", lpddsd->ddckCKDestOverlay.dwColorSpaceLowValue, lpddsd->ddckCKDestOverlay.dwColorSpaceHighValue); - if (lpddsd->dwFlags & DDSD_CKSRCBLT ) OutTraceD(" CKSrcBlt=(%x,%x)", lpddsd->ddckCKSrcBlt.dwColorSpaceLowValue, lpddsd->ddckCKSrcBlt.dwColorSpaceHighValue); - if (lpddsd->dwFlags & DDSD_CKSRCOVERLAY ) OutTraceD(" CKSrcOverlay=(%x,%x)", lpddsd->ddckCKSrcOverlay.dwColorSpaceLowValue, lpddsd->ddckCKSrcOverlay.dwColorSpaceHighValue); - if (lpddsd->dwFlags & DDSD_PIXELFORMAT ) OutTraceD("%s", DumpPixelFormat((LPDDSURFACEDESC2)lpddsd)); - if (lpddsd->dwFlags & DDSD_LPSURFACE) OutTraceD(" Surface=%x", lpddsd->lpSurface); - OutTraceD("\n"); + if (lpddsd->dwFlags & DDSD_CKDESTBLT ) OutTrace(" CKDestBlt=(%x,%x)", lpddsd->ddckCKDestBlt.dwColorSpaceLowValue, lpddsd->ddckCKDestBlt.dwColorSpaceHighValue); + if (lpddsd->dwFlags & DDSD_CKDESTOVERLAY ) OutTrace(" CKDestOverlay=(%x,%x)", lpddsd->ddckCKDestOverlay.dwColorSpaceLowValue, lpddsd->ddckCKDestOverlay.dwColorSpaceHighValue); + if (lpddsd->dwFlags & DDSD_CKSRCBLT ) OutTrace(" CKSrcBlt=(%x,%x)", lpddsd->ddckCKSrcBlt.dwColorSpaceLowValue, lpddsd->ddckCKSrcBlt.dwColorSpaceHighValue); + if (lpddsd->dwFlags & DDSD_CKSRCOVERLAY ) OutTrace(" CKSrcOverlay=(%x,%x)", lpddsd->ddckCKSrcOverlay.dwColorSpaceLowValue, lpddsd->ddckCKSrcOverlay.dwColorSpaceHighValue); + if (lpddsd->dwFlags & DDSD_PIXELFORMAT ) OutTrace("%s", DumpPixelFormat((LPDDSURFACEDESC2)lpddsd)); + if (lpddsd->dwFlags & DDSD_LPSURFACE) OutTrace(" Surface=%x", lpddsd->lpSurface); + OutTrace("\n"); } static void DumpPixFmt(LPDDSURFACEDESC2 lpdds) @@ -2114,6 +2116,15 @@ void FixSurfaceCapsAnalytic(LPDDSURFACEDESC2 lpddsd, int dxversion) lpddsd->ddsCaps.dwCaps = (DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN); return; break; + case DDSCAPS_OFFSCREENPLAIN|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM: + // Empire Earth + lpddsd->ddsCaps.dwCaps = (DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN); + return; + break; + case DDSCAPS_COMPLEX|DDSCAPS_TEXTURE|DDSCAPS_MIPMAP: + // Empire Earth: flags = DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_PIXELFORMAT|DDSD_MIPMAPCOUNT + return; + break; case DDSCAPS_SYSTEMMEMORY|DDSCAPS_ZBUFFER: // the Sims return; @@ -2194,7 +2205,7 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) // To do: fix Dungeon Keeper II // rules of thumb: - // 1) always get rid of DDSCAPS_VIDEOMEMORY caps + // 1) always get rid of DDSCAPS_VIDEOMEMORY & DDSCAPS_LOCALVIDMEM caps // 2) always add DDSCAPS_SYSTEMMEMORY caps // 3) DDSCAPS_SYSTEMMEMORY is supported from dxversion 4 // 4) if DDSD_CAPS is not set, ignore caps @@ -2253,6 +2264,14 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) // v2.02.41: don't alter FOURCC pixel formats if((lpddsd->dwFlags & DDSD_PIXELFORMAT) && (lpddsd->ddpfPixelFormat.dwFlags & DDPF_FOURCC)) return; +#if 0 + // v2.02.43: don't alter MIPMAP surfaces + if((lpddsd->dwFlags & DDSD_MIPMAPCOUNT) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_MIPMAP)) { + //GetPixFmt(lpddsd); + return; + } +#endif + #if 0 // HoM&M3/4 fix.... if(((lpddsd->dwFlags & (DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT)) == (DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH)) && @@ -2267,7 +2286,7 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) // default case: adjust pixel format OutTraceB("FixSurfaceCaps: suppress DDSCAPS_VIDEOMEMORY case\n"); lpddsd->dwFlags |= (DDSD_CAPS|DDSD_PIXELFORMAT); - lpddsd->ddsCaps.dwCaps &= ~DDSCAPS_VIDEOMEMORY; + lpddsd->ddsCaps.dwCaps &= ~(DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); // v2.02.43 lpddsd->ddsCaps.dwCaps |= (DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN); if(!(dxw.dwFlags3 & NOPIXELFORMAT)) GetPixFmt(lpddsd); return; @@ -3479,7 +3498,7 @@ LPDIRECTDRAWSURFACE2 lpDDSBuffer = NULL; HRESULT WINAPI extLockDir(LPDIRECTDRAWSURFACE lpdds, LPRECT lprect, LPDIRECTDRAWSURFACE lpdds2, DWORD flags, HANDLE hEvent) { - HRESULT res; + HRESULT res, res2; static RECT client; POINT upleft={0,0}; LPDIRECTDRAWSURFACE lpDDSPrim; @@ -3497,7 +3516,13 @@ HRESULT WINAPI extLockDir(LPDIRECTDRAWSURFACE lpdds, LPRECT lprect, LPDIRECTDRAW OutTrace(" rect=(NULL)\n"); } - (*pGetGDISurface)(lpPrimaryDD, &lpDDSPrim); + // V2.02.43: Empire Earth does some test Lock operations apparently before the primary surface is created + if(lpPrimaryDD){ + lpDDSPrim=0; + res2=(*pGetGDISurface)(lpPrimaryDD, &lpDDSPrim); + if(res2) + OutTraceE("Lock: GetGDISurface ERROR res=%x(%s) at %d\n", res2, ExplainDDError(res2), __LINE__); + else (*pReleaseS)(lpDDSPrim); if(lpdds==lpDDSPrim){ if(dxw.dwFlags1 & LOCKEDSURFACE){ @@ -3538,6 +3563,7 @@ HRESULT WINAPI extLockDir(LPDIRECTDRAWSURFACE lpdds, LPRECT lprect, LPDIRECTDRAW lprect->left, lprect->top, lprect->right, lprect->bottom); } } + } res=(*pLock)(lpdds, lprect, lpdds2, flags, hEvent); @@ -3922,13 +3948,36 @@ HRESULT WINAPI extGetPixelFormat(LPDIRECTDRAWSURFACE lpdds, LPDDPIXELFORMAT p) return res; } +#if 0 +static HRESULT WINAPI RestoreAll(LPDIRECTDRAWSURFACE7 lpDDSurface, LPDDSURFACEDESC2 lpDDSurfaceDesc, LPVOID lpContext) +{ + HRESULT res; + //res=lpDDSurface->Restore(); + res=(*pRestore)((LPDIRECTDRAWSURFACE)lpDDSurface); + OutTraceB("TestCooperativeLevel: Restore lpdds=%x res=%x(%s)\n", lpDDSurface, res, ExplainDDError(res)); + (*pReleaseS)((LPDIRECTDRAWSURFACE)lpDDSurface); + if(res) return DDENUMRET_CANCEL; + return DDENUMRET_OK; +} +#endif + HRESULT WINAPI extTestCooperativeLevel(LPDIRECTDRAW lpdd) { HRESULT res; res=(*pTestCooperativeLevel)(lpdd); - if(IsDebug) - OutTrace("TestCooperativeLevel: lpdd=%x res=%x(%s)\n", lpdd, res, ExplainDDError(res)); - return DD_OK; + OutTraceB("TestCooperativeLevel: lpdd=%x res=%x(%s)\n", lpdd, res, ExplainDDError(res)); + if(res==DDERR_WRONGMODE) { +#if 0 + (*pEnumSurfaces4)(lpdd, DDENUMSURFACES_DOESEXIST|DDENUMSURFACES_ALL, NULL, NULL, (LPDDENUMSURFACESCALLBACK2)RestoreAll); + //lpDDSEmu_Prim->Restore(); + //res=(*pEnumSurfaces4)(lpdd, dwflags, lpddsd, lpContext, cb); +#else + res=((LPDIRECTDRAW7)lpdd)->RestoreAllSurfaces(); + if(res) OutTraceE("TestCooperativeLevel: RestoreAllSurfaces ERROR res=%x(%s)\n", res, ExplainDDError(res)); +#endif + } + if(dxw.dwFlags1 & SUPPRESSDXERRORS) return DD_OK; + return res; } HRESULT WINAPI extReleaseS(LPDIRECTDRAWSURFACE lpdds) @@ -4223,6 +4272,11 @@ ULONG WINAPI extReleaseD(LPDIRECTDRAW lpdd) } } + // when lpdd session is closed (ref==0) the system restores the default color depth + // so if FORCE16BPP is set, dxwnd must restore the 16BPP value + //extern void SwitchTo16BPP(); + //if((ActualRef==0) && (dxw.dwFlags3 & FORCE16BPP)) SwitchTo16BPP(); + OutTraceD("Release(D): lpdd=%x ref=%x\n", lpdd, VirtualRef); return (ULONG)VirtualRef; } diff --git a/dll/dxhook.cpp b/dll/dxhook.cpp index 495e31f..ce4737e 100644 --- a/dll/dxhook.cpp +++ b/dll/dxhook.cpp @@ -980,7 +980,7 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp } break; case WM_ERASEBKGND: - if(dxw.IsRealDesktop(hwnd)){ + if(dxw.IsDesktop(hwnd)){ OutTraceD("WindowProc: WM_ERASEBKGND(%x,%x) - suppressed\n", wparam, lparam); return 1; // 1 == OK, erased } @@ -989,7 +989,11 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp if ((dxw.dwFlags1 & LOCKWINPOS) && dxw.IsFullScreen()){ OutTraceD("WindowProc: prevent WM_DISPLAYCHANGE depth=%d size=(%d,%d)\n", wparam, HIWORD(lparam), LOWORD(lparam)); - return 0; + // v2.02.43: unless EMULATESURFACE is set, lock the screen resolution only, but not the color depth! + if(dxw.dwFlags1 & EMULATESURFACE) return 0; + // let rparam (color depth) change, but override lparam (screen width & height.) + lparam = MAKELPARAM((LONG)dxw.GetScreenHeight(), (LONG)dxw.GetScreenWidth()); + //return 0; } break; case WM_WINDOWPOSCHANGING: @@ -1197,31 +1201,41 @@ void HookSysLibsInit() HookGDI32Init(); } +DEVMODE InitDevMode; + +static void SaveScreenMode() +{ + static BOOL DoOnce=FALSE; + if(DoOnce) return; + DoOnce=TRUE; + EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &InitDevMode); + OutTraceD("DXWND: Initial display mode WxH=(%dx%d) BitsPerPel=%d\n", + InitDevMode.dmPelsWidth, InitDevMode.dmPelsHeight, InitDevMode.dmBitsPerPel); +} + static void RecoverScreenMode() { - DEVMODE InitDevMode, CurrentDevMode; + DEVMODE CurrentDevMode; BOOL res; EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &CurrentDevMode); - EnumDisplaySettings(NULL, ENUM_REGISTRY_SETTINGS, &InitDevMode); OutTraceD("ChangeDisplaySettings: recover CURRENT WxH=(%dx%d) BitsPerPel=%d TARGET WxH=(%dx%d) BitsPerPel=%d\n", CurrentDevMode.dmPelsWidth, CurrentDevMode.dmPelsHeight, CurrentDevMode.dmBitsPerPel, InitDevMode.dmPelsWidth, InitDevMode.dmPelsHeight, InitDevMode.dmBitsPerPel); - //InitDevMode.dmFields |= (DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT); InitDevMode.dmFields = (DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT); res=(*pChangeDisplaySettings)(&InitDevMode, 0); if(res) OutTraceE("ChangeDisplaySettings: ERROR err=%d at %d\n", GetLastError(), __LINE__); } -static void SwitchTo16BPP() +void SwitchTo16BPP() { - DEVMODE InitDevMode; + DEVMODE CurrentDevMode; BOOL res; - EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &InitDevMode); + EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &CurrentDevMode); OutTraceD("ChangeDisplaySettings: CURRENT wxh=(%dx%d) BitsPerPel=%d -> 16\n", - InitDevMode.dmPelsWidth, InitDevMode.dmPelsHeight, InitDevMode.dmBitsPerPel); - InitDevMode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; - InitDevMode.dmBitsPerPel = 16; - res=(*pChangeDisplaySettings)(&InitDevMode, 0); + CurrentDevMode.dmPelsWidth, CurrentDevMode.dmPelsHeight, CurrentDevMode.dmBitsPerPel); + CurrentDevMode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; + CurrentDevMode.dmBitsPerPel = 16; + res=(*pChangeDisplaySettings)(&CurrentDevMode, CDS_UPDATEREGISTRY); if(res) OutTraceE("ChangeDisplaySettings: ERROR err=%d at %d\n", GetLastError(), __LINE__); } @@ -1229,7 +1243,6 @@ static void LockScreenMode(DWORD dmPelsWidth, DWORD dmPelsHeight, DWORD dmBitsPe { DEVMODE InitDevMode; BOOL res; - EnumDisplaySettings(NULL, ENUM_REGISTRY_SETTINGS, &InitDevMode); OutTraceD("ChangeDisplaySettings: LOCK wxh=(%dx%d) BitsPerPel=%d -> wxh=(%dx%d) BitsPerPel=%d\n", InitDevMode.dmPelsWidth, InitDevMode.dmPelsHeight, InitDevMode.dmBitsPerPel, dmPelsWidth, dmPelsHeight, dmBitsPerPel); @@ -1241,7 +1254,6 @@ static void LockScreenMode(DWORD dmPelsWidth, DWORD dmPelsHeight, DWORD dmBitsPe } } - // to do: find a logic in the exception codes (0xc0000095 impies a bitmask ?) // idem for ExceptionFlags // generalize, find OPCODE length and set number of NOPs accordingly! @@ -1484,6 +1496,7 @@ void HookInit(TARGETMAP *target, HWND hwnd) sModule=strtok(NULL," ;"); } + SaveScreenMode(); if(dxw.dwFlags2 & RECOVERSCREENMODE) RecoverScreenMode(); if(dxw.dwFlags3 & FORCE16BPP) SwitchTo16BPP(); diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index 7ff8e88..7569c1c 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.42" +#define VERSION "2.02.43" #define DDTHREADLOCK 1 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 4ac485d..83be3f3 100644 Binary files a/dll/dxwnd.vs2008.suo and b/dll/dxwnd.vs2008.suo differ diff --git a/dll/gdi32.cpp b/dll/gdi32.cpp index 6b82b5c..310c5f9 100644 --- a/dll/gdi32.cpp +++ b/dll/gdi32.cpp @@ -210,7 +210,7 @@ FARPROC Remap_GDI32_ProcAddress(LPCSTR proc, HMODULE hModule) if(dxw.dwFlags2 & DISABLEGAMMARAMP) if(addr=RemapLibrary(proc, hModule, GammaHooks)) return addr; - if(1) // v2.02.33 - for "Stratego" compatibility option + if(dxw.dwFlags3 & FONTBYPASS) // v2.02.33 - for "Stratego" compatibility option if(addr=RemapLibrary(proc, hModule, FontHooks)) return addr; return NULL; @@ -1692,9 +1692,10 @@ BOOL WINAPI extCreateScalableFontResourceA(DWORD fdwHidden, LPCTSTR lpszFontRes, BOOL res; OutTraceD("CreateScalableFontResource: hidden=%d FontRes=\"%s\" FontFile=\"%s\" CurrentPath=\"%s\"\n", fdwHidden, lpszFontRes, lpszFontFile, lpszCurrentPath); - if (1) return TRUE; + if(dxw.dwFlags3 & FONTBYPASS) return TRUE; res=(*pCreateScalableFontResourceA)(fdwHidden, lpszFontRes, lpszFontFile, lpszCurrentPath); if(!res) OutTraceE("CreateScalableFontResource: ERROR err=%d at=%d\n", GetLastError(), __LINE__); + return res; } BOOL WINAPI extCreateScalableFontResourceW(DWORD fdwHidden, LPCWSTR lpszFontRes, LPCWSTR lpszFontFile, LPCWSTR lpszCurrentPath) @@ -1702,27 +1703,36 @@ BOOL WINAPI extCreateScalableFontResourceW(DWORD fdwHidden, LPCWSTR lpszFontRes, BOOL res; OutTraceD("CreateScalableFontResource: hidden=%d FontRes=\"%ls\" FontFile=\"%ls\" CurrentPath=\"%ls\"\n", fdwHidden, lpszFontRes, lpszFontFile, lpszCurrentPath); - if (1) return TRUE; + if(dxw.dwFlags3 & FONTBYPASS) return TRUE; res=(*pCreateScalableFontResourceW)(fdwHidden, lpszFontRes, lpszFontFile, lpszCurrentPath); if(!res) OutTraceE("CreateScalableFontResource: ERROR err=%d at=%d\n", GetLastError(), __LINE__); + return res; } int WINAPI extAddFontResourceA(LPCTSTR lpszFontFile) { BOOL res; OutTraceD("AddFontResource: FontFile=\"%s\"\n", lpszFontFile); - if(1) return TRUE; + if(dxw.dwFlags3 & FONTBYPASS) { + OutTraceD("AddFontResource: SUPPRESSED FontFile=\"%s\"\n", lpszFontFile); + return TRUE; + } res=(*pAddFontResourceA)(lpszFontFile); if(!res) OutTraceE("AddFontResource: ERROR err=%d at=%d\n", GetLastError(), __LINE__); + return res; } int WINAPI extAddFontResourceW(LPCWSTR lpszFontFile) { BOOL res; OutTraceD("AddFontResource: FontFile=\"%ls\"\n", lpszFontFile); - if(1) return TRUE; + if(dxw.dwFlags3 & FONTBYPASS) { + OutTraceD("AddFontResource: SUPPRESSED FontFile=\"%ls\"\n", lpszFontFile); + return TRUE; + } res=(*pAddFontResourceW)(lpszFontFile); if(!res) OutTraceE("AddFontResource: ERROR err=%d at=%d\n", GetLastError(), __LINE__); + return res; } UINT WINAPI extSetSystemPaletteUse(HDC hdc, UINT uUsage) diff --git a/dll/kernel32.cpp b/dll/kernel32.cpp index e3f22bf..9d90216 100644 --- a/dll/kernel32.cpp +++ b/dll/kernel32.cpp @@ -54,11 +54,6 @@ 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) @@ -69,7 +64,6 @@ 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() diff --git a/dll/user32.cpp b/dll/user32.cpp index 553d9df..d0e738f 100644 --- a/dll/user32.cpp +++ b/dll/user32.cpp @@ -1762,11 +1762,11 @@ LONG WINAPI extTabbedTextOutA(HDC hdc, int X, int Y, LPCTSTR lpString, int nCoun BOOL WINAPI extDestroyWindow(HWND hWnd) { + // v2.02.43: Empire Earth builds test surfaces that must be destroyed! BOOL res; OutTraceB("DestroyWindow: hwnd=%x\n", hWnd); if (hWnd == dxw.GethWnd()) { OutTraceD("DestroyWindow: destroy main hwnd=%x\n", hWnd); - if(1) return 0; dxw.SethWnd(NULL); } res=(*pDestroyWindow)(hWnd); diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo index d21ab00..38e2f75 100644 Binary files a/host/dxwndhost.vs2008.suo and b/host/dxwndhost.vs2008.suo differ