diff --git a/Include/dxwnd.h b/Include/dxwnd.h index 4482ee8..a2fa91e 100644 --- a/Include/dxwnd.h +++ b/Include/dxwnd.h @@ -103,6 +103,7 @@ #define FILTERMESSAGES 0x00200000 // ignore offending messages that are typical of a window and are hot handled by a fullscreeen app #define PEEKALLMESSAGES 0x00400000 // force Peek-ing all sort of messages to avoid Win7 message queue saturation that leads to program halt #define SURFACEWARN 0x00800000 // warn when a unclassified surface capability is met (debug only!) +#define ANALYTICMODE 0x01000000 // activate analytic mode (debug only!) // logging Tflags DWORD: #define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general diff --git a/build/dxwnd.1.ini b/build/dxwnd.1.ini deleted file mode 100644 index ca2a645..0000000 --- a/build/dxwnd.1.ini +++ /dev/null @@ -1,5848 +0,0 @@ -[target] -title0=007 NightFire -path0=D:\Games\007_NightFire\Bond.exe -module0= -opengllib0= -ver0=0 -coord0=0 -flag0=134217730 -flagg0=134348800 -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 -title1=1602 A.D. -path1=C:\Games\1602 A.D\1602.exe -module1= -opengllib1= -ver1=0 -coord1=0 -flag1=679608354 -flagg1=0 -flagh1=0 -flagi1=0 -tflag1=0 -initx1=0 -inity1=0 -minx1=0 -miny1=0 -maxx1=0 -maxy1=0 -posx1=50 -posy1=50 -sizx1=800 -sizy1=600 -maxfps1=0 -initts1=-8 -title2=688I Hunter Killer -path2=D:\Games\688\688I_HK.EXE -module2= -opengllib2= -ver2=0 -coord2=0 -flag2=1744830626 -flagg2=135266304 -flagh2=20 -flagi2=0 -tflag2=3 -initx2=0 -inity2=0 -minx2=0 -miny2=0 -maxx2=0 -maxy2=0 -posx2=50 -posy2=50 -sizx2=0 -sizy2=0 -maxfps2=0 -initts2=0 -title3=7th Legion -path3=D:\Games\7th_Legion\LEGION.EXE -module3= -opengllib3= -ver3=0 -coord3=0 -flag3=402669607 -flagg3=539056144 -flagh3=0 -flagi3=0 -tflag3=64 -initx3=0 -inity3=0 -minx3=0 -miny3=0 -maxx3=0 -maxy3=0 -posx3=50 -posy3=50 -sizx3=800 -sizy3=600 -maxfps3=40 -initts3=-7 -title4=A10 Cuba -path4=D:\Games\A10\A10Cuba.exe -module4= -opengllib4= -ver4=0 -coord4=1 -flag4=162 -flagg4=1074003984 -flagh4=48 -flagi4=0 -tflag4=0 -initx4=0 -inity4=0 -minx4=0 -miny4=0 -maxx4=0 -maxy4=0 -posx4=50 -posy4=50 -sizx4=800 -sizy4=600 -maxfps4=0 -initts4=-7 -title5=Achtung Spitfire -path5=D:\Games\Achtung Spitfire\ASP95.EXE -module5= -opengllib5= -ver5=0 -coord5=0 -flag5=536870946 -flagg5=0 -flagh5=16 -flagi5=0 -tflag5=70 -initx5=0 -inity5=0 -minx5=0 -miny5=0 -maxx5=0 -maxy5=0 -posx5=50 -posy5=50 -sizx5=800 -sizy5=600 -maxfps5=0 -initts5=0 -title6=Actua Soccer 3 -path6=D:\Games\ActuaSoccer3\Soccer3.exe -module6= -opengllib6= -ver6=0 -coord6=0 -flag6=671088674 -flagg6=256 -flagh6=0 -flagi6=0 -tflag6=262 -initx6=0 -inity6=0 -minx6=0 -miny6=0 -maxx6=0 -maxy6=0 -posx6=50 -posy6=50 -sizx6=800 -sizy6=600 -maxfps6=0 -initts6=0 -title7=AfterLife -path7=d:\Games\ALIFE\ALIFE.EXE -module7= -opengllib7= -ver7=1 -coord7=0 -flag7=142606370 -flagg7=1048736 -flagh7=16 -flagi7=0 -tflag7=0 -initx7=0 -inity7=0 -minx7=0 -miny7=0 -maxx7=0 -maxy7=0 -posx7=50 -posy7=50 -sizx7=800 -sizy7=600 -maxfps7=0 -initts7=0 -title8=Age of Empires -path8=D:\Games\Age of Empires\EMPIRES.EXE -module8= -opengllib8= -ver8=0 -coord8=0 -flag8=402655267 -flagg8=69632 -flagh8=16 -flagi8=0 -tflag8=3 -initx8=0 -inity8=0 -minx8=0 -miny8=0 -maxx8=0 -maxy8=0 -posx8=50 -posy8=50 -sizx8=800 -sizy8=600 -maxfps8=10 -initts8=0 -title9=Age of Empires 2 -path9=D:\Games\Age of Empires 2\empires2.exe -module9= -opengllib9= -ver9=0 -coord9=1 -flag9=134217762 -flagg9=1073762320 -flagh9=48 -flagi9=0 -tflag9=0 -initx9=0 -inity9=0 -minx9=0 -miny9=0 -maxx9=0 -maxy9=0 -posx9=50 -posy9=50 -sizx9=800 -sizy9=600 -maxfps9=40 -initts9=0 -title10=Age of Empires III -path10=D:\Games\Age of Empires III\age3.exe -module10= -opengllib10= -ver10=0 -coord10=1 -flag10=-1342169053 -flagg10=1243611136 -flagh10=56 -flagi10=0 -tflag10=2 -initx10=0 -inity10=0 -minx10=0 -miny10=0 -maxx10=0 -maxy10=0 -posx10=50 -posy10=50 -sizx10=800 -sizy10=600 -maxfps10=0 -initts10=0 -title11=Age of Empires the Rise of Rome -path11=D:\Games\Age of Empires\EMPIRESX.EXE -module11= -opengllib11= -ver11=0 -coord11=0 -flag11=134217762 -flagg11=1073823744 -flagh11=16 -flagi11=0 -tflag11=0 -initx11=0 -inity11=0 -minx11=0 -miny11=0 -maxx11=0 -maxy11=0 -posx11=50 -posy11=50 -sizx11=800 -sizy11=600 -maxfps11=0 -initts11=0 -title12=Age of Wonders -path12=D:\Games\Age of Wonders\AoW.exe -module12= -opengllib12= -ver12=7 -coord12=0 -flag12=268435458 -flagg12=1048576 -flagh12=20 -flagi12=0 -tflag12=259 -initx12=0 -inity12=0 -minx12=0 -miny12=0 -maxx12=0 -maxy12=0 -posx12=50 -posy12=50 -sizx12=800 -sizy12=600 -maxfps12=0 -initts12=0 -title13=Airline Tycoon Evolution -path13=D:\Games\Airline.Tycoon.Evolution\AT.EXE -module13= -opengllib13= -ver13=0 -coord13=0 -flag13=1493172257 -flagg13=1048576 -flagh13=148 -flagi13=0 -tflag13=323 -initx13=0 -inity13=0 -minx13=0 -miny13=0 -maxx13=0 -maxy13=0 -posx13=50 -posy13=50 -sizx13=800 -sizy13=600 -maxfps13=0 -initts13=0 -title14=Alien Cabal 95 -path14=D:\Games\Alien_cabal\ACabal95.exe -module14= -opengllib14= -ver14=0 -coord14=0 -flag14=67108896 -flagg14=0 -flagh14=16 -flagi14=0 -tflag14=0 -initx14=0 -inity14=0 -minx14=0 -miny14=0 -maxx14=0 -maxy14=0 -posx14=0 -posy14=0 -sizx14=800 -sizy14=600 -maxfps14=0 -initts14=0 -title15=Alien vs. Predator -path15=C:\Games\Alien vs Predator\AvP.exe -module15= -opengllib15= -ver15=0 -coord15=0 -flag15=8224 -flagg15=0 -flagh15=0 -flagi15=0 -tflag15=130 -initx15=0 -inity15=0 -minx15=0 -miny15=0 -maxx15=0 -maxy15=0 -posx15=50 -posy15=50 -sizx15=800 -sizy15=600 -maxfps15=0 -initts15=0 -title16=Aliens Nations Demo -path16=C:\Games\aademo\Bin\AA.exe -module16= -opengllib16= -ver16=0 -coord16=0 -flag16=134217762 -flagg16=0 -flagh16=0 -flagi16=0 -tflag16=0 -initx16=0 -inity16=0 -minx16=0 -miny16=0 -maxx16=0 -maxy16=0 -posx16=0 -posy16=0 -sizx16=800 -sizy16=600 -maxfps16=0 -initts16=0 -title17=America -path17=D:\Games\America\america.exe -module17= -opengllib17= -ver17=0 -coord17=0 -flag17=134234150 -flagg17=16 -flagh17=20 -flagi17=0 -tflag17=0 -initx17=0 -inity17=0 -minx17=0 -miny17=0 -maxx17=0 -maxy17=0 -posx17=50 -posy17=50 -sizx17=800 -sizy17=600 -maxfps17=0 -initts17=0 -title18=American McGee's Alice Demo -path18=D:\Games\American McGee's Alice Demo\alice.exe -module18= -opengllib18= -ver18=10 -coord18=0 -flag18=268435458 -flagg18=131072 -flagh18=16 -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=Ancient Conquest -path19=D:\Games\Ancient Conquest\ANCIENT.EXE -module19= -opengllib19= -ver19=0 -coord19=0 -flag19=142606370 -flagg19=1048576 -flagh19=16 -flagi19=0 -tflag19=258 -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=Ancient Evil -path20=C:\Games\Ancient Evil\RPG.EXE -module20=DDW16.DLL -opengllib20= -ver20=1 -coord20=0 -flag20=-2013249497 -flagg20=0 -flagh20=0 -flagi20=0 -tflag20=2 -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=Ancient Evil Demo -path21=C:\Games\Ancient Evil Curse of the Snake Cult\aecsc-demo.exe -module21= -opengllib21= -ver21=1 -coord21=0 -flag21=134242336 -flagg21=0 -flagh21=0 -flagi21=0 -tflag21=0 -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=Armymen -path22=C:\Games\armymen\Armymen.exe -module22= -opengllib22= -ver22=0 -coord22=0 -flag22=134218274 -flagg22=1 -flagh22=0 -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=ArmyMen 2 -path23=C:\Games\army2\ArmyMen2.exe -module23= -opengllib23= -ver23=0 -coord23=0 -flag23=402653730 -flagg23=0 -flagh23=0 -flagi23=0 -tflag23=0 -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=Atomic Bomberman -path24=C:\Games\Atomic Bomberman\BM95.EXE -module24= -opengllib24= -ver24=0 -coord24=0 -flag24=2 -flagg24=0 -flagh24=0 -flagi24=0 -tflag24=0 -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=Axis & Allies Iron Blitz Edition -path25=C:\Games\Axis & Allies Iron Blitz Edition\Axis & Allies\AxisAllies.exe -module25= -opengllib25= -ver25=0 -coord25=0 -flag25=-2147483614 -flagg25=0 -flagh25=0 -flagi25=0 -tflag25=0 -initx25=0 -inity25=0 -minx25=0 -miny25=0 -maxx25=0 -maxy25=0 -posx25=50 -posy25=50 -sizx25=800 -sizy25=600 -maxfps25=0 -initts25=0 -title26=Baldies -path26=C:\Games\Baldies for Win95\baldies.exe -module26= -opengllib26= -ver26=0 -coord26=0 -flag26=537010210 -flagg26=0 -flagh26=0 -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=Battle Arena Toshinden 2 -path27=D:\Games\Battle Arena Toshinden 2\T2.EXE -module27= -opengllib27= -ver27=0 -coord27=0 -flag27=134217761 -flagg27=134217808 -flagh27=16 -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=Battle Commander -path28=D:\Games\Battle Commander\bcommand.exe -module28= -opengllib28= -ver28=0 -coord28=0 -flag28=134217794 -flagg28=0 -flagh28=0 -flagi28=0 -tflag28=2 -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=Beasts & Bumpkins -path29=C:\Games\Beasts and Bumpkins\BEASTS.EXE -module29= -opengllib29= -ver29=0 -coord29=0 -flag29=2105890 -flagg29=0 -flagh29=0 -flagi29=0 -tflag29=2 -initx29=0 -inity29=0 -minx29=0 -miny29=0 -maxx29=0 -maxy29=0 -posx29=50 -posy29=50 -sizx29=800 -sizy29=600 -maxfps29=0 -initts29=0 -title30=Beats of Rage -path30=C:\Games\BOR\BeatsOfRage.exe -module30= -opengllib30= -ver30=0 -coord30=0 -flag30=537002018 -flagg30=0 -flagh30=0 -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=Beyond Divinity -path31=D:\Games\Beyond Divinity\Div.exe -module31= -opengllib31= -ver31=0 -coord31=0 -flag31=134217728 -flagg31=671088640 -flagh31=61 -flagi31=0 -tflag31=3 -initx31=0 -inity31=0 -minx31=0 -miny31=0 -maxx31=0 -maxy31=0 -posx31=50 -posy31=50 -sizx31=0 -sizy31=0 -maxfps31=0 -initts31=0 -title32=Beyond Good & Evil Demo -path32=C:\Games\Beyond Good & Evil\BGE.exe -module32= -opengllib32= -ver32=0 -coord32=0 -flag32=0 -flagg32=0 -flagh32=0 -flagi32=0 -tflag32=0 -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=Black & White -path33=D:\Games\Black & White\runblack.exe -module33= -opengllib33= -ver33=0 -coord33=0 -flag33=0 -flagg33=134217728 -flagh33=29 -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=0 -title34=Black Moon Lune Noire -path34=C:\Games\Black Moon\Lune noire\Engine.exe -module34= -opengllib34= -ver34=0 -coord34=0 -flag34=262179 -flagg34=0 -flagh34=0 -flagi34=0 -tflag34=0 -initx34=0 -inity34=0 -minx34=0 -miny34=0 -maxx34=0 -maxy34=0 -posx34=50 -posy34=50 -sizx34=800 -sizy34=600 -maxfps34=0 -initts34=0 -title35=Black Thorn -path35=D:\Games\BlackThorn\BlackThorn.exe -module35= -opengllib35= -ver35=0 -coord35=0 -flag35=0 -flagg35=134217984 -flagh35=48 -flagi35=0 -tflag35=66 -initx35=0 -inity35=0 -minx35=0 -miny35=0 -maxx35=0 -maxy35=0 -posx35=50 -posy35=50 -sizx35=800 -sizy35=600 -maxfps35=0 -initts35=0 -title36=Blood Omen Legacy of Kain -path36=C:\Games\Blood Omen\KAIN.EXE -module36= -opengllib36= -ver36=0 -coord36=0 -flag36=49190 -flagg36=0 -flagh36=0 -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=Bonkheads -path37=C:\Games\Bonkheads\Bonkheads.exe -module37= -opengllib37= -ver37=0 -coord37=0 -flag37=262690 -flagg37=16 -flagh37=0 -flagi37=0 -tflag37=78 -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=Bubble Bobble 2 -path38=C:\Games\bubble2\BOBO2.EXE -module38= -opengllib38= -ver38=0 -coord38=0 -flag38=34 -flagg38=0 -flagh38=0 -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=Bug! -path39=C:\Games\Bug\BUG!.EXE -module39= -opengllib39= -ver39=0 -coord39=0 -flag39=134225954 -flagg39=32 -flagh39=0 -flagi39=0 -tflag39=2 -initx39=0 -inity39=0 -minx39=0 -miny39=0 -maxx39=0 -maxy39=0 -posx39=0 -posy39=0 -sizx39=800 -sizy39=600 -maxfps39=0 -initts39=0 -title40=BW2Demo.exe -path40=D:\Games\Black & White 2 Demo\BW2Demo.exe -module40= -opengllib40= -ver40=0 -coord40=0 -flag40=0 -flagg40=134217728 -flagh40=221 -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=Caesar III -path41=C:\Games\Caesar III\c3.exe -module41= -opengllib41= -ver41=0 -coord41=0 -flag41=-2147475422 -flagg41=0 -flagh41=0 -flagi41=0 -tflag41=0 -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=Championship Manager 99-00 -path42=C:\Games\CM9900\cm9900.exe -module42= -opengllib42= -ver42=0 -coord42=0 -flag42=10306 -flagg42=0 -flagh42=0 -flagi42=0 -tflag42=0 -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=Chariots of War -path43=D:\Games\Chariots of War\CoW.exe -module43= -opengllib43= -ver43=0 -coord43=0 -flag43=134217730 -flagg43=134217728 -flagh43=28 -flagi43=0 -tflag43=0 -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=Civilization Call to Power -path44=C:\Games\civctp\Civilization_Call_To_Power\ctp_program\ctp\civctp.exe -module44= -opengllib44= -ver44=0 -coord44=0 -flag44=545267746 -flagg44=0 -flagh44=0 -flagi44=0 -tflag44=0 -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=Claw -path45=C:\Games\claw\clawexe.exe -module45= -opengllib45= -ver45=0 -coord45=0 -flag45=24610 -flagg45=0 -flagh45=0 -flagi45=0 -tflag45=0 -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=Commando's Behind Enemy Lines Demo -path46=C:\Games\Commando's Behind Enemy Lines Demo\COMANDOS\Comandos.exe -module46= -opengllib46= -ver46=0 -coord46=0 -flag46=1744838944 -flagg46=0 -flagh46=0 -flagi46=0 -tflag46=64 -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=Commandos II: Men of Courage -path47=D:\Games\Commandos II\comm2.exe -module47= -opengllib47= -ver47=7 -coord47=0 -flag47=2013276256 -flagg47=0 -flagh47=20 -flagi47=0 -tflag47=0 -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=Crazy Taxy -path48=C:\Games\Crazy_Taxi\Crazy Taxi PC Version\crazy_taxi_pc.exe -module48= -opengllib48= -ver48=8 -coord48=0 -flag48=536870945 -flagg48=0 -flagh48=0 -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=Crush! Deluxe -path49=C:\Games\Crush! Deluxe\CRUSHD.EXE -module49= -opengllib49= -ver49=0 -coord49=0 -flag49=134492706 -flagg49=0 -flagh49=0 -flagi49=0 -tflag49=0 -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=Cybermercs -path50=C:\Games\cybermercs\cybermercs.exe -module50= -opengllib50= -ver50=0 -coord50=0 -flag50=134234146 -flagg50=16 -flagh50=0 -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=Daikatana -path51=D:\Games\Daikatana\daikatana.exe -module51= -opengllib51= -ver51=12 -coord51=0 -flag51=269492738 -flagg51=537002497 -flagh51=20 -flagi51=0 -tflag51=2 -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=Darius Gaiden -path52=C:\Games\Darius_gaiden\DARIUS.EXE -module52= -opengllib52= -ver52=0 -coord52=0 -flag52=536870946 -flagg52=0 -flagh52=0 -flagi52=0 -tflag52=0 -initx52=0 -inity52=0 -minx52=0 -miny52=0 -maxx52=0 -maxy52=0 -posx52=50 -posy52=50 -sizx52=800 -sizy52=600 -maxfps52=0 -initts52=0 -title53=Dark Colony the Council Wars -path53=C:\Games\darkcolony_council\dc\DC16.EXE -module53= -opengllib53= -ver53=0 -coord53=0 -flag53=268435462 -flagg53=0 -flagh53=0 -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=Darkstone -path54=C:\Games\darkstone\Darkstone.exe -module54= -opengllib54= -ver54=0 -coord54=0 -flag54=134234148 -flagg54=0 -flagh54=0 -flagi54=0 -tflag54=0 -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=Dave Mirra Freestyle BMX Demo -path55=C:\Games\Dave Mirra Freestyle BMX\NgBMXDemo.exe -module55= -opengllib55= -ver55=0 -coord55=0 -flag55=8224 -flagg55=0 -flagh55=0 -flagi55=0 -tflag55=0 -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=Daytona USA Deluxe -path56=C:\Games\Daytona USA Deluxe\DAYTONA USA Deluxe.exe -module56= -opengllib56= -ver56=0 -coord56=0 -flag56=402661410 -flagg56=0 -flagh56=0 -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=Deadlock 2 -path57=C:\Games\deadlock2\DEADLOCK.EXE -module57= -opengllib57= -ver57=0 -coord57=0 -flag57=-2012995550 -flagg57=0 -flagh57=0 -flagi57=0 -tflag57=0 -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=Deeper Dungeons 95 -path58=C:\Games\Keeper95\Deeper95.exe -module58= -opengllib58= -ver58=0 -coord58=0 -flag58=268460070 -flagg58=0 -flagh58=0 -flagi58=0 -tflag58=0 -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=Delta Force -path59=C:\Games\Delta Force\Df.exe -module59= -opengllib59= -ver59=0 -coord59=0 -flag59=34 -flagg59=0 -flagh59=0 -flagi59=0 -tflag59=0 -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=Dementia -path60=C:\Games\dementia\program\CRUX.EXE -h -module60= -opengllib60= -ver60=0 -coord60=0 -flag60=536887330 -flagg60=0 -flagh60=0 -flagi60=0 -tflag60=2 -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=Dethkarz -path61=D:\Games\DethKarz\Dethkarz.exe -module61= -opengllib61= -ver61=0 -coord61=0 -flag61=0 -flagg61=0 -flagh61=16 -flagi61=0 -tflag61=3 -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=Devil Inside -path62=C:\Games\Devil Inside\Devil.exe -module62= -opengllib62= -ver62=0 -coord62=0 -flag62=32 -flagg62=0 -flagh62=0 -flagi62=0 -tflag62=0 -initx62=0 -inity62=0 -minx62=0 -miny62=0 -maxx62=0 -maxy62=0 -posx62=50 -posy62=50 -sizx62=800 -sizy62=600 -maxfps62=0 -initts62=0 -title63=Diablo -path63=D:\Games\Diablo\Diablo.exe -module63= -opengllib63= -ver63=1 -coord63=0 -flag63=138690594 -flagg63=1108344848 -flagh63=20 -flagi63=0 -tflag63=3 -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=Dink Smallwood (BAD) -path64=C:\Games\Dink SmallWood\Dink.exe -module64= -opengllib64= -ver64=0 -coord64=0 -flag64=546 -flagg64=0 -flagh64=0 -flagi64=0 -tflag64=258 -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=Doom 64 Absolution -path65=D:\Games\Doom 64 - Absolution (Win32 Port)\Bin\Absolution.exe -module65= -opengllib65= -ver65=8 -coord65=0 -flag65=134217728 -flagg65=86016 -flagh65=20 -flagi65=0 -tflag65=2 -initx65=0 -inity65=0 -minx65=0 -miny65=0 -maxx65=0 -maxy65=0 -posx65=50 -posy65=50 -sizx65=800 -sizy65=600 -maxfps65=100 -initts65=-5 -title66=Doom 95 -path66=D:\Games\Doom95\DOOM95.EXE -module66= -opengllib66= -ver66=0 -coord66=0 -flag66=134217762 -flagg66=2113536 -flagh66=16 -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=20 -initts66=-9 -title67=Drakan -path67=C:\Games\Drakan\drakan.exe -module67= -opengllib67= -ver67=0 -coord67=0 -flag67=536887328 -flagg67=0 -flagh67=0 -flagi67=0 -tflag67=0 -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=Dream Aquarium -path68=D:\Program Files\Dream Aquarium\Dream_Aquarium.scr -module68= -opengllib68= -ver68=9 -coord68=0 -flag68=679477249 -flagg68=303104 -flagh68=0 -flagi68=0 -tflag68=256 -initx68=0 -inity68=0 -minx68=0 -miny68=0 -maxx68=0 -maxy68=0 -posx68=50 -posy68=50 -sizx68=800 -sizy68=600 -maxfps68=500 -initts68=0 -title69=Dungeon Keeper 2 GOG release -path69=D:\Games\Dungeon Keeper 2 GOG release\DKII.EXE -module69= -opengllib69= -ver69=0 -coord69=0 -flag69=134217762 -flagg69=4276224 -flagh69=0 -flagi69=0 -tflag69=6 -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=Dungeon Keeper 95 -path70=D:\Games\Keeper95\KEEPER95.EXE -module70= -opengllib70= -ver70=0 -coord70=0 -flag70=134299686 -flagg70=0 -flagh70=16 -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=Dungeon Keeper D3D -path71=D:\Games\Keeper95\keepd3d.exe -module71= -opengllib71= -ver71=0 -coord71=0 -flag71=134217762 -flagg71=134217728 -flagh71=17 -flagi71=0 -tflag71=259 -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=Dungeon Keeper II -path72=D:\Games\Dungeon Keeper 2\DKII.exe -module72= -opengllib72= -ver72=0 -coord72=0 -flag72=34 -flagg72=574619648 -flagh72=20 -flagi72=0 -tflag72=263 -initx72=0 -inity72=0 -minx72=0 -miny72=0 -maxx72=0 -maxy72=0 -posx72=150 -posy72=50 -sizx72=800 -sizy72=600 -maxfps72=0 -initts72=0 -title73=Emergency Fighters for life -path73=D:\Games\Emergency\EMERGY.EXE -module73= -opengllib73= -ver73=0 -coord73=0 -flag73=402718947 -flagg73=65554 -flagh73=20 -flagi73=0 -tflag73=3 -initx73=0 -inity73=0 -minx73=0 -miny73=0 -maxx73=0 -maxy73=0 -posx73=50 -posy73=50 -sizx73=800 -sizy73=600 -maxfps73=0 -initts73=0 -title74=Enemy Infestation -path74=C:\Games\Enemy Infestation (1998)\Ei.exe -module74= -opengllib74= -ver74=0 -coord74=0 -flag74=38 -flagg74=0 -flagh74=0 -flagi74=0 -tflag74=0 -initx74=0 -inity74=0 -minx74=0 -miny74=0 -maxx74=0 -maxy74=0 -posx74=50 -posy74=50 -sizx74=800 -sizy74=600 -maxfps74=0 -initts74=0 -title75=Evany La chiave per mondi sconosciuti -path75=D:\Games\Evany La chiave per mondi sconosciuti\Evany.exe -module75= -opengllib75= -ver75=0 -coord75=0 -flag75=134348864 -flagg75=0 -flagh75=277 -flagi75=0 -tflag75=0 -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=Evil Genius -path76=D:\Games\Evil Genius\ReleaseExe\EvilGenius_Cracked.exe -module76= -opengllib76= -ver76=9 -coord76=0 -flag76=2053 -flagg76=80 -flagh76=0 -flagi76=0 -tflag76=0 -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=Expendable -path77=C:\Games\eXpendable\go.exe -nocputest -module77= -opengllib77= -ver77=0 -coord77=0 -flag77=402653280 -flagg77=1 -flagh77=0 -flagi77=0 -tflag77=2 -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=Fallen Heaven -path78=D:\Games\Fallen haven\Exe\FALLEN.EXE -module78=MFC42.dll MSVCRT.DLL mciavi32.dll -opengllib78= -ver78=1 -coord78=0 -flag78=135004674 -flagg78=1049120 -flagh78=0 -flagi78=0 -tflag78=258 -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=Fallen Heaven (BAD) -path79=C:\Games\falhaven\Exe\FALLEN.EXE -module79= -opengllib79= -ver79=0 -coord79=0 -flag79=679485962 -flagg79=32 -flagh79=0 -flagi79=0 -tflag79=0 -initx79=0 -inity79=0 -minx79=0 -miny79=0 -maxx79=0 -maxy79=0 -posx79=0 -posy79=0 -sizx79=800 -sizy79=600 -maxfps79=0 -initts79=0 -title80=Fallout -path80=D:\Games\Fallout\FALLOUTW.EXE -module80= -opengllib80= -ver80=0 -coord80=0 -flag80=134217734 -flagg80=16 -flagh80=16 -flagi80=0 -tflag80=0 -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=Fighting Force -path81=D:\Games\Fighting Force\FFORCE.EXE -module81= -opengllib81= -ver81=0 -coord81=0 -flag81=134217730 -flagg81=134217728 -flagh81=477 -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=FreakOut -path82=C:\Games\Freak Out - Extreme Freeride\FreakOut.exe -module82= -opengllib82= -ver82=9 -coord82=0 -flag82=0 -flagg82=0 -flagh82=0 -flagi82=0 -tflag82=2 -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=Funtracks -path83=C:\Games\Funtracks\Fun_win.exe -module83= -opengllib83= -ver83=1 -coord83=0 -flag83=2 -flagg83=0 -flagh83=0 -flagi83=0 -tflag83=258 -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=Galapagos -path84=C:\Games\Galapagos\GALA.EXE -module84= -opengllib84= -ver84=0 -coord84=0 -flag84=134217760 -flagg84=0 -flagh84=0 -flagi84=0 -tflag84=0 -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=Gangsters -path85=D:\Games\Gangsters\gangsters.exe -module85= -opengllib85= -ver85=0 -coord85=0 -flag85=134217730 -flagg85=135266304 -flagh85=16 -flagi85=0 -tflag85=0 -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=Garshasp -path86=D:\Games\Garshasp\distro\Garshasp.exe -module86= -opengllib86= -ver86=0 -coord86=0 -flag86=402653184 -flagg86=134217728 -flagh86=477 -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=GeneRally -path87=C:\Games\generally105\GeneRally.exe -module87= -opengllib87= -ver87=0 -coord87=0 -flag87=34 -flagg87=0 -flagh87=0 -flagi87=0 -tflag87=0 -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=Get Medieval -path88=C:\Games\Get Medieval\MEDIEVAL.EXE -module88= -opengllib88= -ver88=0 -coord88=0 -flag88=34 -flagg88=2 -flagh88=0 -flagi88=0 -tflag88=0 -initx88=0 -inity88=0 -minx88=0 -miny88=0 -maxx88=0 -maxy88=0 -posx88=0 -posy88=0 -sizx88=800 -sizy88=600 -maxfps88=0 -initts88=0 -title89=Gift -path89=C:\Games\Gift\Gift.exe -module89= -opengllib89= -ver89=0 -coord89=0 -flag89=4196384 -flagg89=0 -flagh89=0 -flagi89=0 -tflag89=34 -initx89=0 -inity89=0 -minx89=0 -miny89=0 -maxx89=0 -maxy89=0 -posx89=0 -posy89=0 -sizx89=0 -sizy89=0 -maxfps89=0 -initts89=0 -title90=glsample.exe -path90=D:\DxWnd\code examples\glsample\Debug\glsample.exe -module90= -opengllib90= -ver90=0 -coord90=0 -flag90=0 -flagg90=134348800 -flagh90=0 -flagi90=0 -tflag90=2 -initx90=0 -inity90=0 -minx90=0 -miny90=0 -maxx90=0 -maxy90=0 -posx90=0 -posy90=0 -sizx90=800 -sizy90=600 -maxfps90=0 -initts90=0 -title91=Golden Age of Racing -path91=C:\Games\Golden Age of Racing\GAOR.exe -module91= -opengllib91= -ver91=0 -coord91=0 -flag91=34 -flagg91=0 -flagh91=0 -flagi91=0 -tflag91=0 -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=Gp500 for Win2K -path92=C:\Games\gp500\gp500_win2k.exe -module92= -opengllib92= -ver92=1 -coord92=0 -flag92=545677860 -flagg92=0 -flagh92=0 -flagi92=0 -tflag92=2 -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=G-Police -path93=C:\Games\gpolice\GPOLICE.EXE -module93= -opengllib93= -ver93=0 -coord93=0 -flag93=67125286 -flagg93=0 -flagh93=0 -flagi93=0 -tflag93=2 -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=Grand Prix Legends -path94=D:\Games\Grand Prix Legends\gpl\gpl.exe -module94= -opengllib94= -ver94=0 -coord94=0 -flag94=-2013233117 -flagg94=0 -flagh94=20 -flagi94=0 -tflag94=3 -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=Grand Prix Legends MAX -path95=D:\Games\Grand Prix Legends MAX\gpl.exe -module95= -opengllib95= -ver95=7 -coord95=0 -flag95=537001986 -flagg95=134217729 -flagh95=0 -flagi95=0 -tflag95=2 -initx95=0 -inity95=0 -minx95=0 -miny95=0 -maxx95=0 -maxy95=0 -posx95=50 -posy95=50 -sizx95=800 -sizy95=600 -maxfps95=0 -initts95=0 -title96=Grand Prix World -path96=D:\Games\Grand Prix World\gpwxp2.exe -module96= -opengllib96= -ver96=0 -coord96=0 -flag96=2097314 -flagg96=134217856 -flagh96=80 -flagi96=0 -tflag96=35 -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=Grand Theft Auto 2 -path97=D:\Games\GTA2\gta2.exe -module97=binkw32 d3ddll -opengllib97= -ver97=0 -coord97=0 -flag97=671096866 -flagg97=1048576 -flagh97=0 -flagi97=0 -tflag97=2 -initx97=0 -inity97=0 -minx97=0 -miny97=0 -maxx97=0 -maxy97=0 -posx97=50 -posy97=50 -sizx97=400 -sizy97=300 -maxfps97=0 -initts97=0 -title98=Grand Touring -path98=D:\Games\Grand Touring\gt.exe -module98= -opengllib98= -ver98=0 -coord98=0 -flag98=16390 -flagg98=134283264 -flagh98=16 -flagi98=0 -tflag98=275 -initx98=0 -inity98=0 -minx98=0 -miny98=0 -maxx98=0 -maxy98=0 -posx98=50 -posy98=50 -sizx98=800 -sizy98=600 -maxfps98=0 -initts98=8 -title99=Grim Fandango Demo -path99=C:\Games\GrimWebDemo\grimdemo.exe -module99= -opengllib99= -ver99=0 -coord99=0 -flag99=34 -flagg99=0 -flagh99=0 -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=Gruntz -path100=D:\Games\gruntz\GRUNTZ.EXE -module100= -opengllib100= -ver100=0 -coord100=0 -flag100=34 -flagg100=134217728 -flagh100=16 -flagi100=0 -tflag100=0 -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=GTA 3 -path101=D:\Games\GTA3\gta3.exe -module101= -opengllib101= -ver101=0 -coord101=0 -flag101=134234150 -flagg101=1207975952 -flagh101=176 -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=Gunman Chronicles -path102=D:\Games\Gunman\gunman.exe -module102= -opengllib102= -ver102=0 -coord102=0 -flag102=0 -flagg102=-2013134848 -flagh102=0 -flagi102=0 -tflag102=0 -initx102=0 -inity102=0 -minx102=0 -miny102=0 -maxx102=0 -maxy102=0 -posx102=0 -posy102=0 -sizx102=400 -sizy102=300 -maxfps102=0 -initts102=0 -title103=Half-Life Blue-Shift (d3d) -path103=D:\Games\Half-Life Blue-Shift\bshift.exe -module103= -opengllib103= -ver103=7 -coord103=0 -flag103=1207959554 -flagg103=513 -flagh103=0 -flagi103=0 -tflag103=258 -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=Half-Life Uplink Demo -path104=D:\Games\Half-Life Uplink\hldemo.exe -module104= -opengllib104= -ver104=1 -coord104=0 -flag104=1073741826 -flagg104=16384 -flagh104=0 -flagi104=0 -tflag104=2 -initx104=0 -inity104=0 -minx104=0 -miny104=0 -maxx104=0 -maxy104=0 -posx104=50 -posy104=50 -sizx104=640 -sizy104=480 -maxfps104=0 -initts104=0 -title105=Halo Combat Evolved -path105=D:\Games\Halo Combat Evolved\halo.exe -module105= -opengllib105= -ver105=9 -coord105=0 -flag105=570425377 -flagg105=-2147483648 -flagh105=0 -flagi105=0 -tflag105=478 -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=Heart of Darkness -path106=d:\Games\Heart of Darkness\HODWin32.exe -module106= -opengllib106= -ver106=0 -coord106=0 -flag106=8226 -flagg106=2179072 -flagh106=16 -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=4 -title107=Heavy Metal - FAKK2 Demo -path107=D:\Games\Heavy Metal - FAKK2 Demo\fakk2.exe -module107= -opengllib107= -ver107=0 -coord107=0 -flag107=4 -flagg107=134348800 -flagh107=284 -flagi107=0 -tflag107=0 -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=Heavy Metal FAKK 2 -path108=C:\Games\Heavy Metal - FAKK2\fakk2.exe -module108= -opengllib108= -ver108=0 -coord108=0 -flag108=33554464 -flagg108=64 -flagh108=0 -flagi108=0 -tflag108=2 -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=HellCopter -path109=C:\Games\hellcop\HCopter.exe -module109= -opengllib109= -ver109=0 -coord109=0 -flag109=-2013249500 -flagg109=256 -flagh109=0 -flagi109=0 -tflag109=0 -initx109=0 -inity109=0 -minx109=0 -miny109=0 -maxx109=0 -maxy109=0 -posx109=50 -posy109=50 -sizx109=800 -sizy109=600 -maxfps109=0 -initts109=0 -title110=Heretic 2 -path110=D:\Games\Heretic 2\Heretic2.exe -module110= -opengllib110= -ver110=0 -coord110=0 -flag110=0 -flagg110=134348800 -flagh110=29 -flagi110=0 -tflag110=258 -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=Heroes of Might & Magic III Demo -path111=C:\Games\Heroes III Demo\h3demo.exe -module111= -opengllib111= -ver111=1 -coord111=0 -flag111=134234146 -flagg111=0 -flagh111=0 -flagi111=0 -tflag111=2 -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=Hexen II (opengl) -path112=D:\Games\Hexen II\glh2.exe -module112= -opengllib112= -ver112=10 -coord112=1 -flag112=3 -flagg112=213009 -flagh112=16 -flagi112=0 -tflag112=386 -initx112=0 -inity112=0 -minx112=0 -miny112=0 -maxx112=0 -maxy112=0 -posx112=50 -posy112=50 -sizx112=800 -sizy112=600 -maxfps112=50 -initts112=8 -title113=Hexen II (software) -path113=D:\Games\Hexen II\h2.exe -module113= -opengllib113= -ver113=0 -coord113=0 -flag113=671088642 -flagg113=1130496 -flagh113=16 -flagi113=0 -tflag113=0 -initx113=0 -inity113=0 -minx113=0 -miny113=0 -maxx113=0 -maxy113=0 -posx113=50 -posy113=50 -sizx113=800 -sizy113=600 -maxfps113=0 -initts113=8 -title114=Hitman - Codename 47 -path114=D:\Games\Hitman - Codename 47\Hitman.Exe -module114= -opengllib114= -ver114=0 -coord114=0 -flag114=134217728 -flagg114=671088640 -flagh114=28 -flagi114=0 -tflag114=3 -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=Homeworld 2 -path115=D:\Games\Homeworld2\Bin\Release\Homeworld2.exe -module115= -opengllib115= -ver115=0 -coord115=0 -flag115=671088642 -flagg115=134217728 -flagh115=477 -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=hover -path116=C:\Games\hover\hoverX.exe -module116= -opengllib116= -ver116=0 -coord116=0 -flag116=8224 -flagg116=0 -flagh116=0 -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=Hyperblade -path117=D:\Games\Hyperblade\HYPERX.EXE -module117= -opengllib117= -ver117=0 -coord117=0 -flag117=134217891 -flagg117=3231762 -flagh117=16 -flagi117=0 -tflag117=2 -initx117=0 -inity117=0 -minx117=0 -miny117=0 -maxx117=0 -maxy117=0 -posx117=50 -posy117=50 -sizx117=800 -sizy117=600 -maxfps117=25 -initts117=1 -title118=Idinaloq -path118=C:\Games\idina101\idinaloq.exe -module118= -opengllib118= -ver118=0 -coord118=0 -flag118=32 -flagg118=0 -flagh118=0 -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=Immanis -path119=C:\Games\Immanis CD release\immanis.exe -module119= -opengllib119= -ver119=0 -coord119=0 -flag119=24611 -flagg119=0 -flagh119=0 -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=Immanis (v2) -path120=C:\Games\Immanis CD release\immanis_v2.exe -module120= -opengllib120= -ver120=0 -coord120=0 -flag120=268460067 -flagg120=0 -flagh120=0 -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=In the Hunt -path121=C:\Games\In The Hunt\e8.exe -module121= -opengllib121= -ver121=0 -coord121=0 -flag121=2 -flagg121=0 -flagh121=0 -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 -title122=Incoming Forces -path122=D:\Games\Incoming Forces\forces.exe -module122= -opengllib122= -ver122=8 -coord122=0 -flag122=134217760 -flagg122=0 -flagh122=0 -flagi122=0 -tflag122=2 -initx122=0 -inity122=0 -minx122=0 -miny122=0 -maxx122=0 -maxy122=0 -posx122=50 -posy122=50 -sizx122=800 -sizy122=600 -maxfps122=0 -initts122=0 -title123=International Superstar Soccer 3 -path123=C:\Games\ISS_3\iss3.exe -module123= -opengllib123= -ver123=8 -coord123=0 -flag123=545267715 -flagg123=0 -flagh123=0 -flagi123=0 -tflag123=0 -initx123=0 -inity123=0 -minx123=0 -miny123=0 -maxx123=0 -maxy123=0 -posx123=50 -posy123=50 -sizx123=800 -sizy123=600 -maxfps123=0 -initts123=0 -title124=Jacked -path124=D:\Games\Jacked\Jacked.exe -module124=winmm -opengllib124= -ver124=9 -coord124=0 -flag124=537010208 -flagg124=196608 -flagh124=0 -flagi124=0 -tflag124=258 -initx124=0 -inity124=0 -minx124=0 -miny124=0 -maxx124=0 -maxy124=0 -posx124=50 -posy124=50 -sizx124=800 -sizy124=600 -maxfps124=100 -initts124=3 -title125=Jedi Knight II Jedi Outcast -path125=D:\Games\Jedi Knight II Jedi Outcast\GameData\jk2sp.exe -module125= -opengllib125= -ver125=0 -coord125=0 -flag125=2 -flagg125=1180161 -flagh125=16 -flagi125=0 -tflag125=2 -initx125=0 -inity125=0 -minx125=0 -miny125=0 -maxx125=0 -maxy125=0 -posx125=50 -posy125=50 -sizx125=800 -sizy125=600 -maxfps125=0 -initts125=0 -title126=Jet Moto -path126=M:\JETMOTO.EXE -module126= -opengllib126= -ver126=0 -coord126=0 -flag126=139298 -flagg126=0 -flagh126=0 -flagi126=0 -tflag126=0 -initx126=0 -inity126=0 -minx126=0 -miny126=0 -maxx126=0 -maxy126=0 -posx126=50 -posy126=50 -sizx126=800 -sizy126=600 -maxfps126=0 -initts126=0 -title127=Kiss Psyco Cyrcus -path127=C:\Games\Psycho\client.exe -module127=d3d.ren -opengllib127= -ver127=7 -coord127=0 -flag127=537018404 -flagg127=0 -flagh127=0 -flagi127=0 -tflag127=0 -initx127=0 -inity127=0 -minx127=0 -miny127=0 -maxx127=0 -maxy127=0 -posx127=50 -posy127=50 -sizx127=800 -sizy127=600 -maxfps127=0 -initts127=0 -title128=Kohan II Kings of War -path128=D:\Games\Kohan II Kings of War\k2.exe -module128= -opengllib128= -ver128=0 -coord128=0 -flag128=134217728 -flagg128=134217728 -flagh128=-842150435 -flagi128=-842150451 -tflag128=0 -initx128=0 -inity128=0 -minx128=0 -miny128=0 -maxx128=0 -maxy128=0 -posx128=50 -posy128=50 -sizx128=800 -sizy128=600 -maxfps128=0 -initts128=0 -title129=Koplio -path129=D:\Games\Koplio\KOPLIO.exe -module129= -opengllib129= -ver129=1 -coord129=0 -flag129=545390720 -flagg129=134217729 -flagh129=20 -flagi129=0 -tflag129=3 -initx129=0 -inity129=0 -minx129=0 -miny129=0 -maxx129=0 -maxy129=0 -posx129=50 -posy129=50 -sizx129=800 -sizy129=600 -maxfps129=0 -initts129=0 -title130=Krazy Ivan -path130=C:\Games\Krazy Ivan\KRAZY.EXE -module130= -opengllib130= -ver130=0 -coord130=0 -flag130=536870914 -flagg130=0 -flagh130=0 -flagi130=0 -tflag130=0 -initx130=0 -inity130=0 -minx130=0 -miny130=0 -maxx130=0 -maxy130=0 -posx130=50 -posy130=50 -sizx130=800 -sizy130=600 -maxfps130=0 -initts130=0 -title131=Last Bronx -path131=C:\Games\Last_Bronx\LB.EXE -module131= -opengllib131= -ver131=0 -coord131=0 -flag131=40994 -flagg131=0 -flagh131=0 -flagi131=0 -tflag131=64 -initx131=0 -inity131=0 -minx131=0 -miny131=0 -maxx131=0 -maxy131=0 -posx131=50 -posy131=50 -sizx131=800 -sizy131=600 -maxfps131=0 -initts131=0 -title132=Lionheart -path132=C:\Games\Lionheart Demo\Lionheart.exe -module132= -opengllib132= -ver132=0 -coord132=0 -flag132=-2147483612 -flagg132=0 -flagh132=0 -flagi132=0 -tflag132=0 -initx132=0 -inity132=0 -minx132=0 -miny132=0 -maxx132=0 -maxy132=0 -posx132=50 -posy132=50 -sizx132=800 -sizy132=600 -maxfps132=0 -initts132=0 -title133=lithtech.exe -path133=D:\Games\NOLF Technology Demo\lithtech.exe -module133= -opengllib133= -ver133=7 -coord133=0 -flag133=0 -flagg133=512 -flagh133=0 -flagi133=0 -tflag133=258 -initx133=0 -inity133=0 -minx133=0 -miny133=0 -maxx133=0 -maxy133=0 -posx133=50 -posy133=50 -sizx133=800 -sizy133=600 -maxfps133=0 -initts133=0 -title134=Lords of the Realm 2 -path134=D:\Games\L2SIEGE\LORDS2.EXE -module134= -opengllib134= -ver134=0 -coord134=0 -flag134=38 -flagg134=65536 -flagh134=16 -flagi134=0 -tflag134=8 -initx134=0 -inity134=0 -minx134=0 -miny134=0 -maxx134=0 -maxy134=0 -posx134=50 -posy134=50 -sizx134=800 -sizy134=600 -maxfps134=0 -initts134=0 -title135=M.A.X. 2 -path135=C:\Games\MAX 2\MAX_2\MAX2\MAX2.EXE -module135= -opengllib135= -ver135=0 -coord135=0 -flag135=34 -flagg135=0 -flagh135=0 -flagi135=0 -tflag135=0 -initx135=0 -inity135=0 -minx135=0 -miny135=0 -maxx135=0 -maxy135=0 -posx135=50 -posy135=50 -sizx135=800 -sizy135=600 -maxfps135=0 -initts135=0 -title136=M1 Tank Platoon 2 -path136=C:\Games\M1 Tank Platoon 2\M1TP2.exe -module136= -opengllib136= -ver136=8 -coord136=0 -flag136=34 -flagg136=0 -flagh136=0 -flagi136=0 -tflag136=0 -initx136=0 -inity136=0 -minx136=0 -miny136=0 -maxx136=0 -maxy136=0 -posx136=50 -posy136=50 -sizx136=800 -sizy136=600 -maxfps136=0 -initts136=0 -title137=Mario Worlds (stripped PE) -path137=C:\Games\Mario Worlds\Mario Worlds.exe -module137= -opengllib137= -ver137=1 -coord137=0 -flag137=2 -flagg137=1 -flagh137=0 -flagi137=0 -tflag137=386 -initx137=0 -inity137=0 -minx137=0 -miny137=0 -maxx137=0 -maxy137=0 -posx137=50 -posy137=50 -sizx137=800 -sizy137=600 -maxfps137=0 -initts137=0 -title138=Masters of Orion 2 -path138=C:\Games\Orion2\Orion95.exe -module138= -opengllib138= -ver138=0 -coord138=0 -flag138=34 -flagg138=0 -flagh138=0 -flagi138=0 -tflag138=0 -initx138=0 -inity138=0 -minx138=0 -miny138=0 -maxx138=0 -maxy138=0 -posx138=50 -posy138=50 -sizx138=800 -sizy138=600 -maxfps138=0 -initts138=0 -title139=Microsoft Flight Simulator 98 -path139=C:\Games\Flight Simulator 98\FLTSIM98.EXE -module139= -opengllib139= -ver139=0 -coord139=0 -flag139=288 -flagg139=0 -flagh139=0 -flagi139=0 -tflag139=0 -initx139=0 -inity139=0 -minx139=0 -miny139=0 -maxx139=0 -maxy139=0 -posx139=50 -posy139=50 -sizx139=800 -sizy139=600 -maxfps139=0 -initts139=0 -title140=Microsoft Midtown Madness -path140=C:\Games\Midtown Madness\midtown.exe -module140= -opengllib140= -ver140=0 -coord140=0 -flag140=8192 -flagg140=0 -flagh140=0 -flagi140=0 -tflag140=2 -initx140=0 -inity140=0 -minx140=0 -miny140=0 -maxx140=0 -maxy140=0 -posx140=50 -posy140=50 -sizx140=800 -sizy140=600 -maxfps140=0 -initts140=0 -title141=Microsoft Midtown Madness Trial (BAD) -path141=C:\Games\Midtown Madness Trial\midtrial.exe -module141= -opengllib141= -ver141=0 -coord141=0 -flag141=2 -flagg141=0 -flagh141=0 -flagi141=0 -tflag141=0 -initx141=0 -inity141=0 -minx141=0 -miny141=0 -maxx141=0 -maxy141=0 -posx141=0 -posy141=0 -sizx141=800 -sizy141=600 -maxfps141=0 -initts141=0 -title142=Microsoft Motocross Madness 2 (BAD!!) -path142=C:\Games\Motocross Madness 2\MCM2.cracked.EXE -module142= -opengllib142= -ver142=7 -coord142=0 -flag142=201326664 -flagg142=1 -flagh142=0 -flagi142=0 -tflag142=82 -initx142=0 -inity142=0 -minx142=0 -miny142=0 -maxx142=0 -maxy142=0 -posx142=50 -posy142=50 -sizx142=800 -sizy142=600 -maxfps142=0 -initts142=0 -title143=Microsoft Motocross Madness Trial (BAD) -path143=C:\Games\Motocross Madness Trial\mcm.exe -module143= -opengllib143= -ver143=1 -coord143=0 -flag143=134225952 -flagg143=0 -flagh143=0 -flagi143=0 -tflag143=130 -initx143=0 -inity143=0 -minx143=0 -miny143=0 -maxx143=0 -maxy143=0 -posx143=50 -posy143=50 -sizx143=0 -sizy143=0 -maxfps143=0 -initts143=0 -title144=Mission Force Cyberstorm (BAD ?) -path144=C:\Games\SIERRA\CSTORM\CSTORM.EXE -module144= -opengllib144= -ver144=0 -coord144=0 -flag144=33562658 -flagg144=0 -flagh144=0 -flagi144=0 -tflag144=0 -initx144=0 -inity144=0 -minx144=0 -miny144=0 -maxx144=0 -maxy144=0 -posx144=50 -posy144=50 -sizx144=0 -sizy144=0 -maxfps144=0 -initts144=0 -title145=Monopoly 3D -path145=C:\Games\Monopoly (Edition 3D)\Monopoly.exe -module145= -opengllib145= -ver145=0 -coord145=0 -flag145=134244388 -flagg145=0 -flagh145=0 -flagi145=0 -tflag145=2 -initx145=0 -inity145=0 -minx145=0 -miny145=0 -maxx145=0 -maxy145=0 -posx145=50 -posy145=50 -sizx145=800 -sizy145=600 -maxfps145=0 -initts145=0 -title146=Monster Truck Madness 2 -path146=C:\Games\Monster Truck Madness 2\Monster.EXE -module146= -opengllib146= -ver146=1 -coord146=0 -flag146=34 -flagg146=1 -flagh146=0 -flagi146=0 -tflag146=0 -initx146=0 -inity146=0 -minx146=0 -miny146=0 -maxx146=0 -maxy146=0 -posx146=50 -posy146=50 -sizx146=800 -sizy146=600 -maxfps146=0 -initts146=0 -title147=Moto Racer Demo -path147=D:\Games\Moto Racer Demo\PlayDemo.exe -module147= -opengllib147= -ver147=0 -coord147=0 -flag147=167903267 -flagg147=192 -flagh147=16 -flagi147=0 -tflag147=14 -initx147=0 -inity147=0 -minx147=0 -miny147=0 -maxx147=0 -maxy147=0 -posx147=50 -posy147=50 -sizx147=800 -sizy147=600 -maxfps147=0 -initts147=0 -title148=MTV Music Generator -path148=D:\games\MTV Music Generator\mtvmusic.exe -module148= -opengllib148= -ver148=0 -coord148=0 -flag148=136314914 -flagg148=1209008128 -flagh148=797 -flagi148=0 -tflag148=3 -initx148=0 -inity148=0 -minx148=0 -miny148=0 -maxx148=0 -maxy148=0 -posx148=50 -posy148=50 -sizx148=800 -sizy148=600 -maxfps148=0 -initts148=0 -title149=Necrodrome -path149=C:\Games\Necrodome\NECRO95.EXE -module149= -opengllib149= -ver149=0 -coord149=0 -flag149=268435495 -flagg149=256 -flagh149=16 -flagi149=0 -tflag149=0 -initx149=0 -inity149=0 -minx149=0 -miny149=0 -maxx149=0 -maxy149=0 -posx149=50 -posy149=50 -sizx149=800 -sizy149=600 -maxfps149=0 -initts149=0 -title150=Need For Speed - Porsche 2000 -path150=C:\Games\Need For Speed - Porsche 2000\Porsche.exe -module150= -opengllib150= -ver150=7 -coord150=0 -flag150=0 -flagg150=0 -flagh150=0 -flagi150=0 -tflag150=258 -initx150=0 -inity150=0 -minx150=0 -miny150=0 -maxx150=0 -maxy150=0 -posx150=50 -posy150=50 -sizx150=800 -sizy150=600 -maxfps150=0 -initts150=0 -title151=Need For Speed Underground -path151=D:\Games\Need For Speed Underground\speed.exe -module151= -opengllib151= -ver151=0 -coord151=0 -flag151=671088674 -flagg151=1815101441 -flagh151=60 -flagi151=0 -tflag151=322 -initx151=0 -inity151=0 -minx151=0 -miny151=0 -maxx151=0 -maxy151=0 -posx151=50 -posy151=50 -sizx151=800 -sizy151=600 -maxfps151=0 -initts151=6 -title152=Need for Speed Underground 2 -path152=D:\Games\Need for Speed Underground 2\SPEED2.EXE -module152= -opengllib152= -ver152=0 -coord152=0 -flag152=671105026 -flagg152=136331264 -flagh152=61 -flagi152=0 -tflag152=6 -initx152=0 -inity152=0 -minx152=0 -miny152=0 -maxx152=0 -maxy152=0 -posx152=50 -posy152=50 -sizx152=800 -sizy152=600 -maxfps152=0 -initts152=0 -title153=Need For Speed Underground Demo -path153=D:\Games\Need For Speed Underground Demo\speeddemo.exe -module153= -opengllib153= -ver153=9 -coord153=0 -flag153=0 -flagg153=673202192 -flagh153=61 -flagi153=0 -tflag153=2 -initx153=0 -inity153=0 -minx153=0 -miny153=0 -maxx153=0 -maxy153=0 -posx153=50 -posy153=50 -sizx153=800 -sizy153=600 -maxfps153=0 -initts153=0 -title154=Netstorm Islands at War -path154=C:\Games\Netstorm\Netstorm.exe -module154= -opengllib154= -ver154=0 -coord154=0 -flag154=2 -flagg154=0 -flagh154=0 -flagi154=0 -tflag154=0 -initx154=0 -inity154=0 -minx154=0 -miny154=0 -maxx154=0 -maxy154=0 -posx154=50 -posy154=50 -sizx154=800 -sizy154=600 -maxfps154=0 -initts154=0 -title155=Nightmare Ned -path155=D:\Games\Ned\NITENED.EXE -module155= -opengllib155= -ver155=0 -coord155=0 -flag155=537395202 -flagg155=135266305 -flagh155=0 -flagi155=0 -tflag155=0 -initx155=0 -inity155=0 -minx155=0 -miny155=0 -maxx155=0 -maxy155=0 -posx155=0 -posy155=0 -sizx155=800 -sizy155=600 -maxfps155=0 -initts155=0 -title156=Nocturne -path156=D:\Games\Nocturne\nocturne.exe -module156= -opengllib156= -ver156=0 -coord156=0 -flag156=134217730 -flagg156=402653264 -flagh156=144 -flagi156=0 -tflag156=3 -initx156=0 -inity156=0 -minx156=0 -miny156=0 -maxx156=0 -maxy156=0 -posx156=50 -posy156=50 -sizx156=800 -sizy156=600 -maxfps156=0 -initts156=0 -title157=Nox -path157=d:\Games\Nox\Game.exe -module157= -opengllib157= -ver157=0 -coord157=0 -flag157=939540515 -flagg157=0 -flagh157=0 -flagi157=0 -tflag157=386 -initx157=0 -inity157=0 -minx157=0 -miny157=0 -maxx157=0 -maxy157=0 -posx157=50 -posy157=50 -sizx157=800 -sizy157=600 -maxfps157=0 -initts157=0 -title158=Pacific General -path158=C:\Games\Pacific General\PACGEN.EXE -module158= -opengllib158= -ver158=0 -coord158=0 -flag158=8226 -flagg158=0 -flagh158=0 -flagi158=0 -tflag158=2 -initx158=0 -inity158=0 -minx158=0 -miny158=0 -maxx158=0 -maxy158=0 -posx158=50 -posy158=50 -sizx158=800 -sizy158=600 -maxfps158=0 -initts158=0 -title159=Pandemonium 2 -path159=D:\Games\Pandemonium 2\pandy.exe -module159= -opengllib159= -ver159=0 -coord159=0 -flag159=201326594 -flagg159=1 -flagh159=20 -flagi159=0 -tflag159=0 -initx159=0 -inity159=0 -minx159=0 -miny159=0 -maxx159=0 -maxy159=0 -posx159=50 -posy159=50 -sizx159=800 -sizy159=600 -maxfps159=0 -initts159=0 -title160=Pharaoh -path160=D:\Games\Pharaoh\Pharaoh.exe -module160= -opengllib160= -ver160=0 -coord160=0 -flag160=1207959586 -flagg160=1048576 -flagh160=16 -flagi160=0 -tflag160=3 -initx160=0 -inity160=0 -minx160=0 -miny160=0 -maxx160=0 -maxy160=0 -posx160=50 -posy160=50 -sizx160=800 -sizy160=600 -maxfps160=0 -initts160=0 -title161=Postal -path161=D:\Games\Postal\POSTAL.EXE -module161= -opengllib161= -ver161=1 -coord161=0 -flag161=671352835 -flagg161=1114112 -flagh161=20 -flagi161=0 -tflag161=0 -initx161=0 -inity161=0 -minx161=0 -miny161=0 -maxx161=0 -maxy161=0 -posx161=50 -posy161=50 -sizx161=800 -sizy161=600 -maxfps161=0 -initts161=-3 -title162=Premier Manager 98 -path162=D:\Games\Premier Manager 98\MANAGER.EXE -module162= -opengllib162= -ver162=0 -coord162=0 -flag162=671088674 -flagg162=1207959552 -flagh162=16 -flagi162=0 -tflag162=0 -initx162=0 -inity162=0 -minx162=0 -miny162=0 -maxx162=0 -maxy162=0 -posx162=50 -posy162=50 -sizx162=800 -sizy162=600 -maxfps162=0 -initts162=0 -title163=Project Nomads Demo (BAD) -path163=C:\Games\Project Nomads Demo\bin\win32\nomads.exe -module163= -opengllib163= -ver163=8 -coord163=0 -flag163=-1476394912 -flagg163=256 -flagh163=0 -flagi163=0 -tflag163=258 -initx163=0 -inity163=0 -minx163=0 -miny163=0 -maxx163=0 -maxy163=0 -posx163=50 -posy163=50 -sizx163=800 -sizy163=600 -maxfps163=0 -initts163=0 -title164=Puzzle Bubble -path164=C:\Games\Puzzle Bubble\PB.EXE -module164= -opengllib164= -ver164=0 -coord164=0 -flag164=34 -flagg164=0 -flagh164=0 -flagi164=0 -tflag164=0 -initx164=0 -inity164=0 -minx164=0 -miny164=0 -maxx164=0 -maxy164=0 -posx164=50 -posy164=50 -sizx164=800 -sizy164=600 -maxfps164=0 -initts164=0 -title165=Quake 2 -path165=D:\Games\QUAKE2\quake2.exe -module165= -opengllib165= -ver165=10 -coord165=0 -flag165=671089154 -flagg165=671220289 -flagh165=16 -flagi165=0 -tflag165=258 -initx165=0 -inity165=0 -minx165=0 -miny165=0 -maxx165=0 -maxy165=0 -posx165=50 -posy165=50 -sizx165=800 -sizy165=600 -maxfps165=0 -initts165=0 -title166=Quake 3 Arena -path166=D:\Games\Q3A\quake3.exe -module166= -opengllib166= -ver166=0 -coord166=0 -flag166=536870914 -flagg166=1180161 -flagh166=16 -flagi166=0 -tflag166=3 -initx166=0 -inity166=0 -minx166=0 -miny166=0 -maxx166=0 -maxy166=0 -posx166=50 -posy166=50 -sizx166=800 -sizy166=600 -maxfps166=0 -initts166=0 -title167=Raiden II -path167=C:\Games\Raiden II\Raiden II\RAIDENII.EXE -module167= -opengllib167= -ver167=0 -coord167=0 -flag167=34 -flagg167=0 -flagh167=0 -flagi167=0 -tflag167=0 -initx167=0 -inity167=0 -minx167=0 -miny167=0 -maxx167=0 -maxy167=0 -posx167=50 -posy167=50 -sizx167=800 -sizy167=600 -maxfps167=0 -initts167=0 -title168=Railroad Tycoon II -path168=C:\Games\Railroad.Tycoon.II\RT2.EXE -module168= -opengllib168= -ver168=1 -coord168=0 -flag168=134225954 -flagg168=0 -flagh168=0 -flagi168=0 -tflag168=0 -initx168=0 -inity168=0 -minx168=0 -miny168=0 -maxx168=0 -maxy168=0 -posx168=50 -posy168=50 -sizx168=800 -sizy168=600 -maxfps168=0 -initts168=0 -title169=Rally Championship 2000 -path169=C:\Games\Rally Championship 2000\RAL.EXE -module169= -opengllib169= -ver169=0 -coord169=0 -flag169=67108864 -flagg169=0 -flagh169=0 -flagi169=0 -tflag169=2 -initx169=0 -inity169=0 -minx169=0 -miny169=0 -maxx169=0 -maxy169=0 -posx169=50 -posy169=50 -sizx169=800 -sizy169=600 -maxfps169=0 -initts169=0 -title170=Rebel Moon Rising -path170=C:\Games\Rebel Moon Rising\Rmr.exe -module170= -opengllib170= -ver170=0 -coord170=0 -flag170=0 -flagg170=0 -flagh170=0 -flagi170=0 -tflag170=0 -initx170=0 -inity170=0 -minx170=0 -miny170=0 -maxx170=0 -maxy170=0 -posx170=50 -posy170=50 -sizx170=800 -sizy170=600 -maxfps170=0 -initts170=0 -title171=Redline - Gang Warfare 2066 -path171=C:\Games\Redline - Gang Warfare 2066\redline.exe -module171= -opengllib171= -ver171=0 -coord171=0 -flag171=32 -flagg171=0 -flagh171=0 -flagi171=0 -tflag171=386 -initx171=0 -inity171=0 -minx171=0 -miny171=0 -maxx171=0 -maxy171=0 -posx171=50 -posy171=50 -sizx171=800 -sizy171=600 -maxfps171=0 -initts171=0 -title172=Resident Evil -path172=D:\Games\Resident Evil\residentevil.patched.exe -module172= -opengllib172= -ver172=1 -coord172=0 -flag172=134217827 -flagg172=128 -flagh172=16 -flagi172=0 -tflag172=2 -initx172=0 -inity172=0 -minx172=0 -miny172=0 -maxx172=0 -maxy172=0 -posx172=50 -posy172=50 -sizx172=800 -sizy172=600 -maxfps172=0 -initts172=0 -title173=Resurrection -path173=D:\Games\Resurrection Il Ritorno del Drago Nero\Resurrection.exe -module173= -opengllib173= -ver173=7 -coord173=0 -flag173=136314882 -flagg173=134217728 -flagh173=29 -flagi173=0 -tflag173=3 -initx173=0 -inity173=0 -minx173=0 -miny173=0 -maxx173=0 -maxy173=0 -posx173=50 -posy173=50 -sizx173=800 -sizy173=600 -maxfps173=0 -initts173=0 -title174=Return to Castle Wolfenstein -path174=D:\Games\Return to Castle Wolfenstein (2001)\Return to Castle Wolfenstein\WolfSP.exe -module174= -opengllib174= -ver174=0 -coord174=0 -flag174=134234114 -flagg174=-2147270656 -flagh174=0 -flagi174=0 -tflag174=256 -initx174=0 -inity174=0 -minx174=0 -miny174=0 -maxx174=0 -maxy174=0 -posx174=50 -posy174=50 -sizx174=800 -sizy174=600 -maxfps174=50 -initts174=-4 -title175=Re-Volt -path175=C:\Games\Re-Volt\REVOLT.EXE -module175= -opengllib175= -ver175=0 -coord175=0 -flag175=134217792 -flagg175=0 -flagh175=0 -flagi175=0 -tflag175=0 -initx175=0 -inity175=0 -minx175=0 -miny175=0 -maxx175=0 -maxy175=0 -posx175=50 -posy175=50 -sizx175=800 -sizy175=600 -maxfps175=0 -initts175=0 -title176=Road Rash -path176=D:\Games\Road Rash\ROADRASH\ROADRASH.EXE -module176= -opengllib176= -ver176=0 -coord176=0 -flag176=134217730 -flagg176=0 -flagh176=0 -flagi176=0 -tflag176=386 -initx176=0 -inity176=0 -minx176=0 -miny176=0 -maxx176=0 -maxy176=0 -posx176=50 -posy176=50 -sizx176=800 -sizy176=600 -maxfps176=0 -initts176=0 -title177=Road Rash Demo -path177=D:\Games\RoadRash DEMO\DEMORASH.EXE -module177= -opengllib177= -ver177=0 -coord177=0 -flag177=134218242 -flagg177=0 -flagh177=0 -flagi177=0 -tflag177=258 -initx177=0 -inity177=0 -minx177=0 -miny177=0 -maxx177=0 -maxy177=0 -posx177=50 -posy177=50 -sizx177=800 -sizy177=600 -maxfps177=0 -initts177=0 -title178=Rogue Spear (BAD) -path178=D:\Games\Rogue Spear\RogueSpear.exe -module178= -opengllib178= -ver178=1 -coord178=0 -flag178=134234116 -flagg178=134217984 -flagh178=20 -flagi178=0 -tflag178=2 -initx178=0 -inity178=0 -minx178=0 -miny178=0 -maxx178=0 -maxy178=0 -posx178=50 -posy178=50 -sizx178=800 -sizy178=600 -maxfps178=0 -initts178=0 -title179=Rollcage -path179=D:\Games\Rollcage\Direct3D\Rollcage.exe -module179= -opengllib179= -ver179=0 -coord179=1 -flag179=520093712 -flagg179=135331840 -flagh179=20 -flagi179=0 -tflag179=3 -initx179=0 -inity179=0 -minx179=0 -miny179=0 -maxx179=0 -maxy179=0 -posx179=50 -posy179=50 -sizx179=800 -sizy179=600 -maxfps179=0 -initts179=0 -title180=RollerCoaster Tycoon 2 Mini Game -path180=C:\Games\RollerCoaster Tycoon 2 Mini Game\rct2.exe -module180= -opengllib180= -ver180=1 -coord180=0 -flag180=536870946 -flagg180=0 -flagh180=0 -flagi180=0 -tflag180=0 -initx180=0 -inity180=0 -minx180=0 -miny180=0 -maxx180=0 -maxy180=0 -posx180=0 -posy180=0 -sizx180=800 -sizy180=600 -maxfps180=0 -initts180=0 -title181=Sega Rally 2 Championship -path181=C:\Games\Sega Rally 2 Championship\SEGA RALLY 2.exe -module181= -opengllib181= -ver181=1 -coord181=0 -flag181=268435488 -flagg181=2 -flagh181=0 -flagi181=0 -tflag181=0 -initx181=0 -inity181=0 -minx181=0 -miny181=0 -maxx181=0 -maxy181=0 -posx181=0 -posy181=0 -sizx181=800 -sizy181=600 -maxfps181=0 -initts181=0 -title182=Sentinel Returns -path182=D:\Games\Sentinel Returns\Sentinel.exe -module182= -opengllib182= -ver182=1 -coord182=0 -flag182=3 -flagg182=-2147483648 -flagh182=0 -flagi182=0 -tflag182=0 -initx182=0 -inity182=0 -minx182=0 -miny182=0 -maxx182=0 -maxy182=0 -posx182=50 -posy182=50 -sizx182=800 -sizy182=600 -maxfps182=0 -initts182=0 -title183=Shadow Master (TBD) -path183=C:\Games\Shadow Master\rmg.exe -module183= -opengllib183= -ver183=1 -coord183=0 -flag183=32 -flagg183=256 -flagh183=0 -flagi183=0 -tflag183=450 -initx183=0 -inity183=0 -minx183=0 -miny183=0 -maxx183=0 -maxy183=0 -posx183=50 -posy183=50 -sizx183=800 -sizy183=600 -maxfps183=0 -initts183=0 -title184=Sid Meier's SimGolf Demo -path184=C:\Games\Sid Meier's SimGolf Demo\golf.exe -module184=jgl.dll -opengllib184= -ver184=0 -coord184=0 -flag184=33554434 -flagg184=0 -flagh184=0 -flagi184=0 -tflag184=2 -initx184=0 -inity184=0 -minx184=0 -miny184=0 -maxx184=0 -maxy184=0 -posx184=50 -posy184=50 -sizx184=800 -sizy184=600 -maxfps184=0 -initts184=0 -title185=Silent Storm Demo -path185=D:\Games\Silent Storm Demo\SilentStormDemo.exe -module185= -opengllib185= -ver185=0 -coord185=0 -flag185=536870913 -flagg185=-2013265664 -flagh185=0 -flagi185=0 -tflag185=2 -initx185=0 -inity185=0 -minx185=0 -miny185=0 -maxx185=0 -maxy185=0 -posx185=50 -posy185=50 -sizx185=800 -sizy185=600 -maxfps185=0 -initts185=0 -title186=Sin, Wages of (sw renderer) -path186=D:\Games\sin\sin.exe -module186= -opengllib186= -ver186=10 -coord186=0 -flag186=402670082 -flagg186=131585 -flagh186=20 -flagi186=0 -tflag186=386 -initx186=0 -inity186=0 -minx186=0 -miny186=0 -maxx186=0 -maxy186=0 -posx186=50 -posy186=50 -sizx186=800 -sizy186=600 -maxfps186=0 -initts186=0 -title187=SleepWalker -path187=C:\Games\SleepWalker\Sleepy.exe -module187= -opengllib187= -ver187=0 -coord187=0 -flag187=301989954 -flagg187=0 -flagh187=0 -flagi187=0 -tflag187=198 -initx187=0 -inity187=0 -minx187=0 -miny187=0 -maxx187=0 -maxy187=0 -posx187=50 -posy187=50 -sizx187=800 -sizy187=600 -maxfps187=0 -initts187=0 -title188=SnowBoard Racer -path188=C:\Games\Snowboard Racer\SnowBoard.exe -module188= -opengllib188= -ver188=0 -coord188=0 -flag188=268443681 -flagg188=0 -flagh188=0 -flagi188=0 -tflag188=0 -initx188=0 -inity188=0 -minx188=0 -miny188=0 -maxx188=0 -maxy188=0 -posx188=50 -posy188=50 -sizx188=800 -sizy188=600 -maxfps188=0 -initts188=0 -title189=Solaris (~BAD) -path189=c:\Games\Solaris\solaris.exe -module189= -opengllib189= -ver189=7 -coord189=0 -flag189=973078627 -flagg189=1 -flagh189=0 -flagi189=0 -tflag189=2 -initx189=0 -inity189=0 -minx189=0 -miny189=0 -maxx189=0 -maxy189=0 -posx189=50 -posy189=50 -sizx189=800 -sizy189=600 -maxfps189=0 -initts189=0 -title190=Soldiers at War -path190=D:\Games\Soldiers at War\SAW_Game.exe -module190= -opengllib190= -ver190=0 -coord190=0 -flag190=671359010 -flagg190=64 -flagh190=0 -flagi190=0 -tflag190=0 -initx190=0 -inity190=0 -minx190=0 -miny190=0 -maxx190=0 -maxy190=0 -posx190=50 -posy190=50 -sizx190=640 -sizy190=480 -maxfps190=0 -initts190=0 -title191=Sonic 3 -path191=C:\Games\Sonic 3 + Sonic et Knuckles\Sonic 3\SONIC3K.EXE -module191= -opengllib191= -ver191=1 -coord191=0 -flag191=546 -flagg191=0 -flagh191=0 -flagi191=0 -tflag191=0 -initx191=0 -inity191=0 -minx191=0 -miny191=0 -maxx191=0 -maxy191=0 -posx191=50 -posy191=50 -sizx191=800 -sizy191=600 -maxfps191=0 -initts191=0 -title192=Sonic 3D Blast -path192=C:\Games\Sonic3D\pcsonic.exe -module192= -opengllib192= -ver192=0 -coord192=0 -flag192=134217762 -flagg192=0 -flagh192=0 -flagi192=0 -tflag192=0 -initx192=0 -inity192=0 -minx192=0 -miny192=0 -maxx192=0 -maxy192=0 -posx192=50 -posy192=50 -sizx192=800 -sizy192=600 -maxfps192=0 -initts192=0 -title193=Sonic R -path193=C:\Games\SonicR\sonicr.exe -module193= -opengllib193= -ver193=0 -coord193=0 -flag193=8288 -flagg193=0 -flagh193=0 -flagi193=0 -tflag193=0 -initx193=0 -inity193=0 -minx193=0 -miny193=0 -maxx193=0 -maxy193=0 -posx193=50 -posy193=50 -sizx193=800 -sizy193=600 -maxfps193=0 -initts193=0 -title194=Soulbringer -path194=C:\Games\SoulBringer\SoulbringeVCnoeax.exe -module194= -opengllib194= -ver194=0 -coord194=0 -flag194=143024174 -flagg194=0 -flagh194=0 -flagi194=0 -tflag194=0 -initx194=0 -inity194=0 -minx194=0 -miny194=0 -maxx194=0 -maxy194=0 -posx194=50 -posy194=50 -sizx194=800 -sizy194=600 -maxfps194=0 -initts194=0 -title195=Speedboat Attack (BAD) -path195=C:\Games\Speedboat Attack\SBOAT.EXE -module195= -opengllib195= -ver195=0 -coord195=0 -flag195=541073954 -flagg195=0 -flagh195=0 -flagi195=0 -tflag195=2 -initx195=0 -inity195=0 -minx195=0 -miny195=0 -maxx195=0 -maxy195=0 -posx195=50 -posy195=50 -sizx195=800 -sizy195=600 -maxfps195=0 -initts195=0 -title196=Star trek Klingon Honor Guard -path196=D:\Games\Star trek Klingon Honor Guard\System\Khg.exe -module196=OGIDrv.dll -opengllib196= -ver196=10 -coord196=0 -flag196=0 -flagg196=537002497 -flagh196=16 -flagi196=0 -tflag196=386 -initx196=0 -inity196=0 -minx196=0 -miny196=0 -maxx196=0 -maxy196=0 -posx196=50 -posy196=50 -sizx196=800 -sizy196=600 -maxfps196=0 -initts196=0 -title197=Star Wars Episode 1 Racer -path197=C:\Games\sw racer\SWEP1RCR.EXE -module197= -opengllib197= -ver197=0 -coord197=0 -flag197=142606368 -flagg197=0 -flagh197=0 -flagi197=0 -tflag197=0 -initx197=0 -inity197=0 -minx197=0 -miny197=0 -maxx197=0 -maxy197=0 -posx197=50 -posy197=50 -sizx197=800 -sizy197=600 -maxfps197=0 -initts197=0 -title198=Star Wars Jedi Knight Jedi Academy -path198=D:\Games\Star_Wars_Jedi_Knight_Jedi_Academy\GameData\jasp.exe -module198= -opengllib198= -ver198=0 -coord198=0 -flag198=2 -flagg198=196608 -flagh198=20 -flagi198=0 -tflag198=2 -initx198=0 -inity198=0 -minx198=0 -miny198=0 -maxx198=0 -maxy198=0 -posx198=50 -posy198=50 -sizx198=800 -sizy198=600 -maxfps198=0 -initts198=0 -title199=Star Wars: Jedi Knight -path199=C:\Games\Jedi Knight\Jedi Knight\JK.EXE -module199= -opengllib199= -ver199=0 -coord199=0 -flag199=8226 -flagg199=0 -flagh199=0 -flagi199=0 -tflag199=0 -initx199=0 -inity199=0 -minx199=0 -miny199=0 -maxx199=0 -maxy199=0 -posx199=50 -posy199=50 -sizx199=800 -sizy199=600 -maxfps199=0 -initts199=0 -title200=Star Wars: the Gungan Frontier -path200=C:\Games\sw the gungan frontier\Gungan Frontier.exe -module200= -opengllib200= -ver200=1 -coord200=0 -flag200=402915362 -flagg200=512 -flagh200=0 -flagi200=0 -tflag200=0 -initx200=0 -inity200=0 -minx200=0 -miny200=0 -maxx200=0 -maxy200=0 -posx200=0 -posy200=0 -sizx200=800 -sizy200=600 -maxfps200=0 -initts200=0 -title201=Starcraft -path201=D:\Games\Starcraft\StarCraft.exe -module201= -opengllib201= -ver201=0 -coord201=1 -flag201=134234115 -flagg201=2179088 -flagh201=48 -flagi201=0 -tflag201=258 -initx201=0 -inity201=0 -minx201=0 -miny201=0 -maxx201=0 -maxy201=0 -posx201=50 -posy201=50 -sizx201=800 -sizy201=600 -maxfps201=0 -initts201=0 -title202=Starship Troopers -path202=C:\Games\Starship Troopers - Terran Ascendancy\stta\StarshipTroopers.exe -module202= -opengllib202= -ver202=1 -coord202=0 -flag202=32 -flagg202=0 -flagh202=0 -flagi202=0 -tflag202=0 -initx202=0 -inity202=0 -minx202=0 -miny202=0 -maxx202=0 -maxy202=0 -posx202=50 -posy202=50 -sizx202=800 -sizy202=600 -maxfps202=0 -initts202=0 -title203=Starshot Space Circus -path203=D:\SpaceCircus.exe -module203= -opengllib203= -ver203=0 -coord203=0 -flag203=66 -flagg203=0 -flagh203=0 -flagi203=0 -tflag203=0 -initx203=0 -inity203=0 -minx203=0 -miny203=0 -maxx203=0 -maxy203=0 -posx203=50 -posy203=50 -sizx203=800 -sizy203=600 -maxfps203=0 -initts203=0 -title204=Stronghold Demo -path204=C:\Games\Firefly Studios' Stronghold - Demo\Stronghold Demo.exe -module204= -opengllib204= -ver204=0 -coord204=0 -flag204=98 -flagg204=0 -flagh204=0 -flagi204=0 -tflag204=0 -initx204=0 -inity204=0 -minx204=0 -miny204=0 -maxx204=0 -maxy204=0 -posx204=50 -posy204=50 -sizx204=800 -sizy204=600 -maxfps204=0 -initts204=0 -title205=Sub Culture -path205=C:\Games\Sub Culture\sc.exe -module205= -opengllib205= -ver205=0 -coord205=0 -flag205=66 -flagg205=256 -flagh205=0 -flagi205=0 -tflag205=10 -initx205=50 -inity205=50 -minx205=50 -miny205=50 -maxx205=800 -maxy205=600 -posx205=50 -posy205=50 -sizx205=800 -sizy205=600 -maxfps205=0 -initts205=0 -title206=Superbike 2001 -path206=C:\Games\Superbike 2001\Sbk2001.exe -module206= -opengllib206= -ver206=1 -coord206=0 -flag206=536887332 -flagg206=0 -flagh206=0 -flagi206=0 -tflag206=0 -initx206=0 -inity206=0 -minx206=0 -miny206=0 -maxx206=0 -maxy206=0 -posx206=50 -posy206=50 -sizx206=800 -sizy206=600 -maxfps206=0 -initts206=0 -title207=Syberia 2 Demo -path207=C:\Games\Syberia 2 Demo\Syberia2Demo.exe -module207= -opengllib207= -ver207=8 -coord207=0 -flag207=536887332 -flagg207=0 -flagh207=0 -flagi207=0 -tflag207=0 -initx207=0 -inity207=0 -minx207=0 -miny207=0 -maxx207=0 -maxy207=0 -posx207=50 -posy207=50 -sizx207=800 -sizy207=600 -maxfps207=0 -initts207=0 -title208=Syberia Demo -path208=C:\Games\SyberiaDemo\SyberiaDemo.exe -module208= -opengllib208= -ver208=1 -coord208=0 -flag208=536887332 -flagg208=0 -flagh208=0 -flagi208=0 -tflag208=0 -initx208=0 -inity208=0 -minx208=0 -miny208=0 -maxx208=0 -maxy208=0 -posx208=50 -posy208=50 -sizx208=800 -sizy208=600 -maxfps208=0 -initts208=0 -title209=System Shock 2 (BAD!!!) -path209=C:\Games\Sys Shock II\Shock2.exe -module209= -opengllib209= -ver209=1 -coord209=0 -flag209=0 -flagg209=64 -flagh209=0 -flagi209=0 -tflag209=0 -initx209=0 -inity209=0 -minx209=0 -miny209=0 -maxx209=0 -maxy209=0 -posx209=50 -posy209=50 -sizx209=800 -sizy209=600 -maxfps209=0 -initts209=0 -title210=Take no Prisoners -path210=D:\Games\Take no Prisoners\TNP.EXE -module210= -opengllib210= -ver210=0 -coord210=0 -flag210=134217730 -flagg210=16777248 -flagh210=20 -flagi210=0 -tflag210=0 -initx210=0 -inity210=0 -minx210=0 -miny210=0 -maxx210=0 -maxy210=0 -posx210=50 -posy210=50 -sizx210=800 -sizy210=600 -maxfps210=0 -initts210=0 -title211=Test Drive 4 -path211=D:\Games\Test Drive 4\td4.EXE -module211= -opengllib211= -ver211=0 -coord211=0 -flag211=-2013265885 -flagg211=-2147418110 -flagh211=20 -flagi211=0 -tflag211=0 -initx211=0 -inity211=0 -minx211=0 -miny211=0 -maxx211=0 -maxy211=0 -posx211=50 -posy211=50 -sizx211=800 -sizy211=600 -maxfps211=0 -initts211=-8 -title212=Test Drive 5 (D3D) -path212=D:\Games\Test Drive 5\TD5_D3D.exe -module212= -opengllib212= -ver212=0 -coord212=0 -flag212=671088640 -flagg212=0 -flagh212=20 -flagi212=0 -tflag212=258 -initx212=0 -inity212=0 -minx212=0 -miny212=0 -maxx212=0 -maxy212=0 -posx212=50 -posy212=50 -sizx212=800 -sizy212=600 -maxfps212=0 -initts212=0 -title213=The Nations Demo -path213=C:\Games\The Nations Demo\bin\Game.exe -module213= -opengllib213= -ver213=1 -coord213=0 -flag213=402661920 -flagg213=256 -flagh213=0 -flagi213=0 -tflag213=0 -initx213=0 -inity213=0 -minx213=0 -miny213=0 -maxx213=0 -maxy213=0 -posx213=50 -posy213=50 -sizx213=800 -sizy213=600 -maxfps213=0 -initts213=0 -title214=The Sims -path214=D:\Games\sims\Sims.exe -module214= -opengllib214= -ver214=0 -coord214=0 -flag214=134225952 -flagg214=65536 -flagh214=16 -flagi214=0 -tflag214=3 -initx214=0 -inity214=0 -minx214=0 -miny214=0 -maxx214=0 -maxy214=0 -posx214=50 -posy214=50 -sizx214=800 -sizy214=600 -maxfps214=0 -initts214=0 -title215=Thief the Dark Project (FRE) -path215=C:\Games\thief\game\thieffixed.exe -module215= -opengllib215= -ver215=1 -coord215=0 -flag215=16390 -flagg215=0 -flagh215=0 -flagi215=0 -tflag215=0 -initx215=0 -inity215=0 -minx215=0 -miny215=0 -maxx215=0 -maxy215=0 -posx215=50 -posy215=50 -sizx215=800 -sizy215=600 -maxfps215=0 -initts215=0 -title216=TinTin: Prisoners of the Sun -path216=C:\Games\tintin\TINTINW.EXE -module216= -opengllib216= -ver216=0 -coord216=0 -flag216=34 -flagg216=0 -flagh216=0 -flagi216=0 -tflag216=2 -initx216=0 -inity216=0 -minx216=0 -miny216=0 -maxx216=0 -maxy216=0 -posx216=50 -posy216=50 -sizx216=800 -sizy216=600 -maxfps216=0 -initts216=0 -title217=Tintoy (BAD gfx) -path217=C:\Games\Tintoy\Tintoy.exe -module217= -opengllib217= -ver217=0 -coord217=0 -flag217=546 -flagg217=256 -flagh217=0 -flagi217=0 -tflag217=258 -initx217=0 -inity217=0 -minx217=0 -miny217=0 -maxx217=0 -maxy217=0 -posx217=50 -posy217=50 -sizx217=800 -sizy217=600 -maxfps217=0 -initts217=0 -title218=Tomb Raider - Anniversary -path218=C:\Games\Tomb Raider - Anniversary\tra.exe -module218= -opengllib218= -ver218=9 -coord218=0 -flag218=0 -flagg218=256 -flagh218=0 -flagi218=0 -tflag218=2 -initx218=0 -inity218=0 -minx218=0 -miny218=0 -maxx218=0 -maxy218=0 -posx218=50 -posy218=50 -sizx218=800 -sizy218=600 -maxfps218=0 -initts218=8 -title219=Tomb Raider 2 the Golden Mask -path219=D:\Games\TR2 Golden Mask\T2GOLD.EXE -module219= -opengllib219= -ver219=0 -coord219=0 -flag219=704643106 -flagg219=554713088 -flagh219=20 -flagi219=0 -tflag219=0 -initx219=0 -inity219=0 -minx219=0 -miny219=0 -maxx219=0 -maxy219=0 -posx219=50 -posy219=50 -sizx219=800 -sizy219=600 -maxfps219=0 -initts219=8 -title220=Tomb Raider 3 Demo -path220=C:\Games\Tomb Raider 3 - The Lost Artifact Demo\tr3gold.exe -module220= -opengllib220= -ver220=1 -coord220=0 -flag220=369098848 -flagg220=0 -flagh220=0 -flagi220=0 -tflag220=258 -initx220=0 -inity220=0 -minx220=0 -miny220=0 -maxx220=0 -maxy220=0 -posx220=50 -posy220=50 -sizx220=800 -sizy220=600 -maxfps220=0 -initts220=0 -title221=Tomb Raider 4 Demo -path221=C:\Games\Tomb Raider 4 - The Last Revelation (Demo)\tomb4.patched.exe -module221= -opengllib221= -ver221=0 -coord221=0 -flag221=234881056 -flagg221=16 -flagh221=0 -flagi221=0 -tflag221=258 -initx221=0 -inity221=0 -minx221=0 -miny221=0 -maxx221=0 -maxy221=0 -posx221=50 -posy221=50 -sizx221=800 -sizy221=600 -maxfps221=0 -initts221=0 -title222=Total Annihilation Kingdoms -path222=D:\Games\Total Annihilation Kingdoms\Kingdoms.exe -module222= -opengllib222= -ver222=0 -coord222=0 -flag222=134234146 -flagg222=1073741840 -flagh222=16 -flagi222=0 -tflag222=0 -initx222=0 -inity222=0 -minx222=0 -miny222=0 -maxx222=0 -maxy222=0 -posx222=50 -posy222=50 -sizx222=800 -sizy222=600 -maxfps222=0 -initts222=0 -title223=Total Soccer 2000 -path223=D:\Games\Total Soccer 2000\Total Soccer 2000\SOCCERdx.EXE -module223= -opengllib223= -ver223=1 -coord223=0 -flag223=167772226 -flagg223=1069056 -flagh223=20 -flagi223=0 -tflag223=0 -initx223=0 -inity223=0 -minx223=0 -miny223=0 -maxx223=0 -maxy223=0 -posx223=50 -posy223=50 -sizx223=800 -sizy223=600 -maxfps223=200 -initts223=0 -title224=Ultim@te Race Pro -path224=C:\Games\Ultim@te race pro\Ultim@te Race Pro.exe -module224= -opengllib224= -ver224=0 -coord224=0 -flag224=570425440 -flagg224=256 -flagh224=0 -flagi224=0 -tflag224=0 -initx224=0 -inity224=0 -minx224=0 -miny224=0 -maxx224=0 -maxy224=0 -posx224=50 -posy224=50 -sizx224=800 -sizy224=600 -maxfps224=0 -initts224=0 -title225=Uprising - Join or Die -path225=D:\Games\Uprising\uprising.exe -module225= -opengllib225= -ver225=0 -coord225=0 -flag225=-2013265882 -flagg225=18 -flagh225=16 -flagi225=0 -tflag225=0 -initx225=0 -inity225=0 -minx225=0 -miny225=0 -maxx225=0 -maxy225=0 -posx225=50 -posy225=50 -sizx225=800 -sizy225=600 -maxfps225=0 -initts225=0 -title226=Urban Assault -path226=D:\Games\Urban Assault\UA.EXE -module226= -opengllib226= -ver226=0 -coord226=0 -flag226=671236130 -flagg226=256 -flagh226=16 -flagi226=0 -tflag226=258 -initx226=0 -inity226=0 -minx226=0 -miny226=0 -maxx226=0 -maxy226=0 -posx226=50 -posy226=50 -sizx226=800 -sizy226=600 -maxfps226=0 -initts226=0 -title227=Urban Assault CD -path227=D:\Games\Urban Assault CD\UA.EXE -module227= -opengllib227= -ver227=0 -coord227=0 -flag227=671236130 -flagg227=33024 -flagh227=0 -flagi227=0 -tflag227=258 -initx227=0 -inity227=0 -minx227=0 -miny227=0 -maxx227=0 -maxy227=0 -posx227=50 -posy227=50 -sizx227=800 -sizy227=600 -maxfps227=0 -initts227=0 -title228=wa[cracked].exe -path228=D:\Games\Worms 2 Armageddon\wa[cracked].exe -module228= -opengllib228= -ver228=0 -coord228=0 -flag228=134217730 -flagg228=171966464 -flagh228=16 -flagi228=0 -tflag228=0 -initx228=0 -inity228=0 -minx228=0 -miny228=0 -maxx228=0 -maxy228=0 -posx228=50 -posy228=50 -sizx228=800 -sizy228=600 -maxfps228=0 -initts228=0 -title229=Warcraft 2 Battlenet Edition -path229=D:\Games\Warcraft 2\Warcraft II BNE.exe -module229= -opengllib229= -ver229=0 -coord229=0 -flag229=268452003 -flagg229=16 -flagh229=16 -flagi229=0 -tflag229=258 -initx229=0 -inity229=0 -minx229=0 -miny229=0 -maxx229=0 -maxy229=0 -posx229=50 -posy229=50 -sizx229=800 -sizy229=600 -maxfps229=40 -initts229=0 -title230=Wargames (demo) -path230=D:\Games\Wargames\wargames.exe -module230= -opengllib230= -ver230=0 -coord230=0 -flag230=268435618 -flagg230=1207959552 -flagh230=20 -flagi230=0 -tflag230=3 -initx230=0 -inity230=0 -minx230=0 -miny230=0 -maxx230=0 -maxy230=0 -posx230=50 -posy230=50 -sizx230=800 -sizy230=600 -maxfps230=0 -initts230=0 -title231=Warhammer 40K Final Liberation -path231=D:\Games\Warhammer 40K Final Liberation\EPIC40K.EXE -module231= -opengllib231= -ver231=1 -coord231=0 -flag231=134479874 -flagg231=135266304 -flagh231=31 -flagi231=0 -tflag231=0 -initx231=0 -inity231=0 -minx231=0 -miny231=0 -maxx231=0 -maxy231=0 -posx231=50 -posy231=50 -sizx231=800 -sizy231=600 -maxfps231=0 -initts231=0 -title232=WarHammer Rites of War -path232=C:\Games\Rites of War\RoW.exe -module232= -opengllib232= -ver232=0 -coord232=0 -flag232=134217760 -flagg232=128 -flagh232=0 -flagi232=0 -tflag232=0 -initx232=0 -inity232=0 -minx232=0 -miny232=0 -maxx232=0 -maxy232=0 -posx232=50 -posy232=50 -sizx232=800 -sizy232=600 -maxfps232=0 -initts232=0 -title233=Warlords 3 -path233=D:\Games\WARLORDS3\Darklord.exe -module233= -opengllib233= -ver233=0 -coord233=0 -flag233=-2147483102 -flagg233=268435488 -flagh233=532 -flagi233=0 -tflag233=259 -initx233=0 -inity233=0 -minx233=0 -miny233=0 -maxx233=0 -maxy233=0 -posx233=50 -posy233=50 -sizx233=0 -sizy233=0 -maxfps233=0 -initts233=0 -title234=WarTorn -path234=C:\Games\WarTorn\W.exe -module234= -opengllib234= -ver234=0 -coord234=0 -flag234=32 -flagg234=0 -flagh234=0 -flagi234=0 -tflag234=0 -initx234=0 -inity234=0 -minx234=0 -miny234=0 -maxx234=0 -maxy234=0 -posx234=50 -posy234=50 -sizx234=800 -sizy234=600 -maxfps234=0 -initts234=0 -title235=WarWind -path235=C:\Games\WarWind\WW.EXE -module235= -opengllib235= -ver235=0 -coord235=0 -flag235=16418 -flagg235=81936 -flagh235=0 -flagi235=0 -tflag235=0 -initx235=0 -inity235=0 -minx235=0 -miny235=0 -maxx235=0 -maxy235=0 -posx235=50 -posy235=50 -sizx235=800 -sizy235=600 -maxfps235=0 -initts235=0 -title236=Worms Armageddon Demo (BAD!!!) -path236=C:\Games\Worms Armageddon Demo\WaDemo.exe -module236= -opengllib236= -ver236=1 -coord236=0 -flag236=939524099 -flagg236=8 -flagh236=0 -flagi236=0 -tflag236=2 -initx236=0 -inity236=0 -minx236=0 -miny236=0 -maxx236=0 -maxy236=0 -posx236=0 -posy236=0 -sizx236=0 -sizy236=0 -maxfps236=0 -initts236=0 -title237=Worms World Party -path237=D:\Games\Worms World Party\wwp.exe -module237= -opengllib237= -ver237=1 -coord237=0 -flag237=8388610 -flagg237=0 -flagh237=0 -flagi237=0 -tflag237=0 -initx237=0 -inity237=0 -minx237=0 -miny237=0 -maxx237=0 -maxy237=0 -posx237=50 -posy237=50 -sizx237=800 -sizy237=600 -maxfps237=0 -initts237=0 -title238=Worms World Party Demo (BAD) -path238=C:\Games\WWP Demo\wwp.exe -module238=MFC42.DLL ltkrn10N.dll -opengllib238= -ver238=1 -coord238=0 -flag238=406847491 -flagg238=8 -flagh238=0 -flagi238=0 -tflag238=2 -initx238=0 -inity238=0 -minx238=0 -miny238=0 -maxx238=0 -maxy238=0 -posx238=0 -posy238=0 -sizx238=0 -sizy238=0 -maxfps238=0 -initts238=0 -title239=X-Com Enforcer -path239=C:\Games\X-Com Enforcer\System\xcom.exe -module239= -opengllib239= -ver239=1 -coord239=0 -flag239=32 -flagg239=0 -flagh239=0 -flagi239=0 -tflag239=0 -initx239=0 -inity239=0 -minx239=0 -miny239=0 -maxx239=0 -maxy239=0 -posx239=0 -posy239=0 -sizx239=800 -sizy239=600 -maxfps239=0 -initts239=0 -title240=X-Com Interceptor -path240=C:\Games\X-Com_Interceptor\X-COM Interceptor\Interceptor.exe -module240= -opengllib240= -ver240=0 -coord240=0 -flag240=16418 -flagg240=0 -flagh240=0 -flagi240=0 -tflag240=0 -initx240=0 -inity240=0 -minx240=0 -miny240=0 -maxx240=0 -maxy240=0 -posx240=50 -posy240=50 -sizx240=800 -sizy240=600 -maxfps240=0 -initts240=0 -title241=Z Steel Soldiers -path241=C:\Games\ZSteelSoldiers\Bin\z2.exe -module241= -opengllib241= -ver241=8 -coord241=0 -flag241=805462020 -flagg241=0 -flagh241=0 -flagi241=0 -tflag241=0 -initx241=0 -inity241=0 -minx241=0 -miny241=0 -maxx241=0 -maxy241=0 -posx241=50 -posy241=50 -sizx241=800 -sizy241=600 -maxfps241=0 -initts241=0 -title242=Zax Alien Hunter -path242=C:\Games\ZaxDemo\Zax.exe -module242= -opengllib242= -ver242=0 -coord242=0 -flag242=-1476386784 -flagg242=0 -flagh242=0 -flagi242=0 -tflag242=0 -initx242=0 -inity242=0 -minx242=0 -miny242=0 -maxx242=0 -maxy242=0 -posx242=50 -posy242=50 -sizx242=800 -sizy242=600 -maxfps242=0 -initts242=0 -title243=Zero Critical (BAD) -path243=C:\Games\zero_critical_-_satin_rift\ZEROCR.EXE -module243= -opengllib243= -ver243=0 -coord243=0 -flag243=679477858 -flagg243=8 -flagh243=0 -flagi243=0 -tflag243=0 -initx243=0 -inity243=0 -minx243=0 -miny243=0 -maxx243=0 -maxy243=0 -posx243=0 -posy243=0 -sizx243=800 -sizy243=600 -maxfps243=0 -initts243=0 -title244=Zero Population Count -path244=C:\Games\ZPC\ZPC.EXE -module244= -opengllib244= -ver244=0 -coord244=0 -flag244=1073741859 -flagg244=0 -flagh244=0 -flagi244=0 -tflag244=0 -initx244=0 -inity244=0 -minx244=0 -miny244=0 -maxx244=0 -maxy244=0 -posx244=0 -posy244=0 -sizx244=800 -sizy244=600 -maxfps244=0 -initts244=0 -title245=Zero Zone -path245=D:\ZZone\ZeroZone.exe -module245= -opengllib245= -ver245=0 -coord245=0 -flag245=34 -flagg245=0 -flagh245=0 -flagi245=0 -tflag245=0 -initx245=0 -inity245=0 -minx245=0 -miny245=0 -maxx245=0 -maxy245=0 -posx245=50 -posy245=50 -sizx245=800 -sizy245=600 -maxfps245=0 -initts245=0 -title246=Zeus Poseidon -path246=C:\Games\Zeus-Poseidon\Zeus.exe -module246= -opengllib246= -ver246=0 -coord246=0 -flag246=34 -flagg246=0 -flagh246=0 -flagi246=0 -tflag246=0 -initx246=0 -inity246=0 -minx246=0 -miny246=0 -maxx246=0 -maxy246=0 -posx246=50 -posy246=50 -sizx246=800 -sizy246=600 -maxfps246=0 -initts246=0 -title247=Zoo Tycoon -path247=C:\Games\Zoo Tycoon\zoo.exe -module247= -opengllib247= -ver247=0 -coord247=0 -flag247=-2013265886 -flagg247=0 -flagh247=0 -flagi247=0 -tflag247=0 -initx247=0 -inity247=0 -minx247=0 -miny247=0 -maxx247=0 -maxy247=0 -posx247=50 -posy247=50 -sizx247=800 -sizy247=600 -maxfps247=0 -initts247=0 -title248=Mortal Kombat 4 -path248=D:\Games\mk4\Mortal Kombat 4.exe -module248= -opengllib248= -ver248=0 -coord248=0 -flag248=536879107 -flagg248=135266308 -flagh248=276 -flagi248=0 -tflag248=3 -initx248=0 -inity248=0 -minx248=0 -miny248=0 -maxx248=0 -maxy248=0 -posx248=50 -posy248=50 -sizx248=800 -sizy248=600 -maxfps248=0 -initts248=0 -title249=Railroad Tycoon II -path249=D:\Games\Railroad.Tycoon.II\RT2.EXE -module249= -opengllib249= -ver249=0 -coord249=0 -flag249=2080 -flagg249=143654912 -flagh249=16 -flagi249=0 -tflag249=0 -initx249=0 -inity249=0 -minx249=0 -miny249=0 -maxx249=0 -maxy249=0 -posx249=50 -posy249=50 -sizx249=800 -sizy249=600 -maxfps249=0 -initts249=0 -title250=Space Hack -path250=D:\Games\Space Hack\main.exe -module250= -opengllib250= -ver250=0 -coord250=0 -flag250=134234144 -flagg250=134217728 -flagh250=20 -flagi250=0 -tflag250=3 -initx250=0 -inity250=0 -minx250=0 -miny250=0 -maxx250=0 -maxy250=0 -posx250=50 -posy250=50 -sizx250=800 -sizy250=600 -maxfps250=0 -initts250=0 -title251=Abomination - The Nemesis Project Demo -path251=D:\Games\Abomination - The Nemesis Project Demo\Abomb.exe -module251= -opengllib251= -ver251=0 -coord251=0 -flag251=134217826 -flagg251=134217728 -flagh251=20 -flagi251=0 -tflag251=64 -initx251=0 -inity251=0 -minx251=0 -miny251=0 -maxx251=0 -maxy251=0 -posx251=50 -posy251=50 -sizx251=800 -sizy251=600 -maxfps251=0 -initts251=0 -title252=Alien Nations DEMO -path252=D:\Games\Amazon & Aliens DEMO\Bin\AA.exe -module252= -opengllib252= -ver252=0 -coord252=0 -flag252=1207959654 -flagg252=135266306 -flagh252=20 -flagi252=0 -tflag252=259 -initx252=0 -inity252=0 -minx252=0 -miny252=0 -maxx252=0 -maxy252=0 -posx252=50 -posy252=50 -sizx252=800 -sizy252=600 -maxfps252=0 -initts252=0 -title253=Duckman -path253=D:\Games\duckman\DUCKMAN.EXE -module253= -opengllib253= -ver253=0 -coord253=0 -flag253=402653186 -flagg253=201326592 -flagh253=20 -flagi253=0 -tflag253=259 -initx253=0 -inity253=0 -minx253=0 -miny253=0 -maxx253=0 -maxy253=0 -posx253=50 -posy253=50 -sizx253=800 -sizy253=600 -maxfps253=0 -initts253=0 -[window] -posx=928 -posy=224 -sizx=320 -sizy=455 diff --git a/build/dxwnd.2.ini b/build/dxwnd.2.ini deleted file mode 100644 index 2ff451e..0000000 --- a/build/dxwnd.2.ini +++ /dev/null @@ -1,1133 +0,0 @@ -[target] -title0=101 Airborne Invasion -path0=D:\Games\101air\101.exe -module0= -opengllib0= -ver0=0 -coord0=0 -flag0=134217762 -flagg0=134217728 -flagh0=20 -flagi0=0 -tflag0=64 -initx0=0 -inity0=0 -minx0=0 -miny0=0 -maxx0=0 -maxy0=0 -posx0=50 -posy0=50 -sizx0=800 -sizy0=600 -maxfps0=0 -initts0=0 -title1=688I Hunter Killer -path1=D:\Games\688\688I_HK.EXE -module1= -opengllib1= -ver1=0 -coord1=0 -flag1=-937950686 -flagg1=134217728 -flagh1=32788 -flagi1=0 -tflag1=3 -initx1=0 -inity1=0 -minx1=0 -miny1=0 -maxx1=0 -maxy1=0 -posx1=50 -posy1=50 -sizx1=1200 -sizy1=900 -maxfps1=0 -initts1=0 -title2=Abomination the Nemesis Project -path2=D:\Games\Abomination\Abomb.exe -module2= -opengllib2= -ver2=0 -coord2=0 -flag2=134217762 -flagg2=134217728 -flagh2=20 -flagi2=0 -tflag2=67 -initx2=0 -inity2=0 -minx2=0 -miny2=0 -maxx2=0 -maxy2=0 -posx2=50 -posy2=50 -sizx2=800 -sizy2=600 -maxfps2=0 -initts2=0 -title3=Balls of Steel -path3=D:\Games\Balls of Steel\bos.exe -module3=duke.ddp mutation.ddp -opengllib3= -ver3=0 -coord3=0 -flag3=167772192 -flagg3=202375169 -flagh3=20 -flagi3=0 -tflag3=263 -initx3=0 -inity3=0 -minx3=0 -miny3=0 -maxx3=0 -maxy3=0 -posx3=50 -posy3=50 -sizx3=800 -sizy3=600 -maxfps3=0 -initts3=0 -title4=Barrage -path4=D:\Games\Barrage\SRC\BARRAGE.EXE -module4= -opengllib4= -ver4=0 -coord4=0 -flag4=142606368 -flagg4=134217728 -flagh4=8212 -flagi4=0 -tflag4=7 -initx4=0 -inity4=0 -minx4=0 -miny4=0 -maxx4=0 -maxy4=0 -posx4=50 -posy4=50 -sizx4=800 -sizy4=600 -maxfps4=0 -initts4=0 -title5=Carnivores -path5=D:\Games\Carnivores\HUNTSOFT.EXE -module5= -opengllib5= -ver5=0 -coord5=0 -flag5=671088674 -flagg5=135266304 -flagh5=20 -flagi5=0 -tflag5=64 -initx5=0 -inity5=0 -minx5=0 -miny5=0 -maxx5=0 -maxy5=0 -posx5=50 -posy5=50 -sizx5=800 -sizy5=600 -maxfps5=0 -initts5=0 -title6=Crazy Frog Racer -path6=D:\Games\CrazyFrog\CRAZY.EXE -module6= -opengllib6= -ver6=8 -coord6=0 -flag6=134217762 -flagg6=134217729 -flagh6=20 -flagi6=0 -tflag6=64 -initx6=0 -inity6=0 -minx6=0 -miny6=0 -maxx6=0 -maxy6=0 -posx6=50 -posy6=50 -sizx6=800 -sizy6=600 -maxfps6=0 -initts6=0 -title7=Crazy Taxy -path7=D:\Games\Crazy_Taxi\Crazy Taxi PC Version\crazy_taxi_pc.exe -module7= -opengllib7= -ver7=0 -coord7=0 -flag7=671219744 -flagg7=134217728 -flagh7=20 -flagi7=0 -tflag7=66 -initx7=0 -inity7=0 -minx7=0 -miny7=0 -maxx7=0 -maxy7=0 -posx7=50 -posy7=50 -sizx7=800 -sizy7=600 -maxfps7=0 -initts7=0 -title8=Dark Angael -path8=D:\Games\Dark Angael\GAME.EXE -module8= -opengllib8= -ver8=0 -coord8=0 -flag8=134217762 -flagg8=134217728 -flagh8=20 -flagi8=0 -tflag8=0 -initx8=0 -inity8=0 -minx8=0 -miny8=0 -maxx8=0 -maxy8=0 -posx8=50 -posy8=50 -sizx8=800 -sizy8=600 -maxfps8=0 -initts8=0 -title9=Dark Colony -path9=D:\Games\Dark Colony\DCOLONY\DC.EXE -module9= -opengllib9= -ver9=0 -coord9=0 -flag9=134217762 -flagg9=134217728 -flagh9=20 -flagi9=0 -tflag9=0 -initx9=0 -inity9=0 -minx9=0 -miny9=0 -maxx9=0 -maxy9=0 -posx9=50 -posy9=50 -sizx9=800 -sizy9=600 -maxfps9=0 -initts9=0 -title10=Dark Judgement -path10=D:\Games\Dark Judgement\Dark Judgement.EXE -module10= -opengllib10= -ver10=0 -coord10=0 -flag10=134217826 -flagg10=134217728 -flagh10=20 -flagi10=0 -tflag10=3 -initx10=0 -inity10=0 -minx10=0 -miny10=0 -maxx10=0 -maxy10=0 -posx10=50 -posy10=50 -sizx10=800 -sizy10=600 -maxfps10=0 -initts10=0 -title11=Dark Vengeance -path11=D:\Games\dark_vengeance\dv.exe -module11= -opengllib11= -ver11=0 -coord11=0 -flag11=142606386 -flagg11=134217728 -flagh11=8212 -flagi11=0 -tflag11=3 -initx11=0 -inity11=0 -minx11=0 -miny11=0 -maxx11=800 -maxy11=600 -posx11=50 -posy11=50 -sizx11=800 -sizy11=600 -maxfps11=0 -initts11=0 -title12=Descent 3 -path12=D:\Games\Descent_3\Descent 3.exe -module12= -opengllib12= -ver12=0 -coord12=0 -flag12=134217760 -flagg12=134348801 -flagh12=4 -flagi12=0 -tflag12=0 -initx12=0 -inity12=0 -minx12=0 -miny12=0 -maxx12=0 -maxy12=0 -posx12=50 -posy12=50 -sizx12=800 -sizy12=600 -maxfps12=0 -initts12=0 -title13=Descent 3 main -path13=D:\Games\Descent_3\main.exe -module13= -opengllib13= -ver13=0 -coord13=0 -flag13=771891234 -flagg13=201457664 -flagh13=8212 -flagi13=0 -tflag13=3 -initx13=0 -inity13=0 -minx13=0 -miny13=0 -maxx13=0 -maxy13=0 -posx13=50 -posy13=50 -sizx13=800 -sizy13=600 -maxfps13=0 -initts13=0 -title14=Duckman -path14=D:\Games\duckman\DUCKMAN.EXE -module14= -opengllib14= -ver14=0 -coord14=0 -flag14=402653218 -flagg14=134217728 -flagh14=1044 -flagi14=0 -tflag14=259 -initx14=0 -inity14=0 -minx14=0 -miny14=0 -maxx14=0 -maxy14=0 -posx14=50 -posy14=50 -sizx14=800 -sizy14=600 -maxfps14=0 -initts14=0 -title15=Dweep -path15=D:\Games\dweep\Dweep.exe -module15= -opengllib15= -ver15=0 -coord15=0 -flag15=134234146 -flagg15=134283264 -flagh15=20 -flagi15=0 -tflag15=0 -initx15=0 -inity15=0 -minx15=0 -miny15=0 -maxx15=0 -maxy15=0 -posx15=50 -posy15=50 -sizx15=800 -sizy15=600 -maxfps15=0 -initts15=2 -title16=Eliminator -path16=D:\Games\eliminat\Eliminator.exe -module16= -opengllib16= -ver16=0 -coord16=0 -flag16=134217760 -flagg16=134217728 -flagh16=1044 -flagi16=0 -tflag16=3 -initx16=0 -inity16=0 -minx16=0 -miny16=0 -maxx16=0 -maxy16=0 -posx16=800 -posy16=600 -sizx16=400 -sizy16=300 -maxfps16=0 -initts16=0 -title17=EMPIRES.EXE -path17=D:\Games\Age of Empires\EMPIRES.EXE -module17= -opengllib17= -ver17=0 -coord17=0 -flag17=134217762 -flagg17=134217728 -flagh17=20 -flagi17=0 -tflag17=64 -initx17=0 -inity17=0 -minx17=0 -miny17=0 -maxx17=0 -maxy17=0 -posx17=50 -posy17=50 -sizx17=800 -sizy17=600 -maxfps17=0 -initts17=0 -title18=EPIC40K.EXE -path18=D:\Games\war_hammer_final_liberation\EPIC40K.EXE -module18= -opengllib18= -ver18=0 -coord18=0 -flag18=134217762 -flagg18=135266304 -flagh18=20 -flagi18=0 -tflag18=3 -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=Fable - The Lost Chapters -path19=D:\Games\Fable - The Lost Chapters\Fable.exe -module19= -opengllib19= -ver19=9 -coord19=1 -flag19=134217760 -flagg19=201457672 -flagh19=20 -flagi19=0 -tflag19=258 -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=Fighting Forces -path20=D:\Games\Fighting Forces\FFORCE.EXE -module20= -opengllib20= -ver20=0 -coord20=0 -flag20=134217760 -flagg20=671088640 -flagh20=3092 -flagi20=0 -tflag20=514 -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=Final Fighter -path21=D:\Games\Final Fighter\FinalFighter.exe -module21= -opengllib21= -ver21=0 -coord21=0 -flag21=939524128 -flagg21=135266305 -flagh21=4 -flagi21=0 -tflag21=512 -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=Final Odyssey -path22=D:\Games\Final odyssey\FinalOdy.exe -module22= -opengllib22= -ver22=0 -coord22=0 -flag22=134217760 -flagg22=134217728 -flagh22=4 -flagi22=0 -tflag22=64 -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=Gangsters 2 -path23=D:\Games\Gangsters 2\Gangsters2.exe -module23= -opengllib23= -ver23=0 -coord23=0 -flag23=134217762 -flagg23=134217728 -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=Gex -path24=D:\Games\gex\GEX.EXE -module24= -opengllib24= -ver24=0 -coord24=0 -flag24=134217761 -flagg24=134217728 -flagh24=20 -flagi24=0 -tflag24=66 -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=Hard Truck - Road to Victory -path25=C:\Hard Truck\HTruck.exe -module25= -opengllib25= -ver25=0 -coord25=0 -flag25=134217760 -flagg25=134217728 -flagh25=2068 -flagi25=0 -tflag25=0 -initx25=0 -inity25=0 -minx25=0 -miny25=0 -maxx25=0 -maxy25=0 -posx25=50 -posy25=50 -sizx25=800 -sizy25=600 -maxfps25=0 -initts25=0 -title26=Hellcopter -path26=D:\Games\Hellcopter\HCopter.exe -module26= -opengllib26= -ver26=0 -coord26=0 -flag26=134217760 -flagg26=134217728 -flagh26=1044 -flagi26=0 -tflag26=512 -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=Heroes of Might & Magic 2 Gold -path27=D:\Games\heroes2gold\HEROES2W.EXE -module27= -opengllib27= -ver27=0 -coord27=0 -flag27=134217730 -flagg27=143654912 -flagh27=20 -flagi27=0 -tflag27=770 -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=Hooligans Storm over Europe -path28=D:\Games\Hooligans\Hooligans.exe -module28= -opengllib28= -ver28=0 -coord28=0 -flag28=134742048 -flagg28=202375168 -flagh28=20 -flagi28=0 -tflag28=259 -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=Imperialism -path29=D:\Games\Imperialism\Imperialism.exe -module29= -opengllib29= -ver29=0 -coord29=0 -flag29=679485474 -flagg29=134217728 -flagh29=32788 -flagi29=0 -tflag29=3 -initx29=0 -inity29=0 -minx29=0 -miny29=0 -maxx29=0 -maxy29=0 -posx29=50 -posy29=50 -sizx29=1200 -sizy29=900 -maxfps29=0 -initts29=0 -title30=Mechwarrior 3 -path30=D:\Games\Mechwarrior 3 (full)\Mech3.exe -module30= -opengllib30= -ver30=0 -coord30=0 -flag30=671096866 -flagg30=134217728 -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=Raiden II -path31=D:\Games\raiden2\RAIDENII.EXE -module31= -opengllib31= -ver31=0 -coord31=1 -flag31=134217762 -flagg31=134217728 -flagh31=20 -flagi31=0 -tflag31=0 -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=Rapanui -path32=D:\Games\Rapanui\Rapanui.exe -module32= -opengllib32= -ver32=0 -coord32=0 -flag32=134217762 -flagg32=134217728 -flagh32=20 -flagi32=0 -tflag32=0 -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=Silent Hunter II (shell) -path33=D:\Games\Silent Hunter II\Shell\Shell.exe -module33= -opengllib33= -ver33=0 -coord33=0 -flag33=402653221 -flagg33=135266304 -flagh33=20 -flagi33=0 -tflag33=3 -initx33=0 -inity33=0 -minx33=0 -miny33=0 -maxx33=800 -maxy33=600 -posx33=50 -posy33=50 -sizx33=800 -sizy33=600 -maxfps33=0 -initts33=0 -title34=Silent Hunter II (sim) -path34=D:\Games\Silent Hunter II\Sim\Sim.exe -module34= -opengllib34= -ver34=0 -coord34=0 -flag34=134217780 -flagg34=134217728 -flagh34=20 -flagi34=0 -tflag34=0 -initx34=400 -inity34=300 -minx34=0 -miny34=0 -maxx34=800 -maxy34=600 -posx34=50 -posy34=50 -sizx34=800 -sizy34=600 -maxfps34=0 -initts34=0 -title35=The Sims -path35=D:\Games\sims\Sims.exe -module35= -opengllib35= -ver35=0 -coord35=0 -flag35=679616546 -flagg35=134217728 -flagh35=84 -flagi35=0 -tflag35=67 -initx35=0 -inity35=0 -minx35=0 -miny35=0 -maxx35=0 -maxy35=0 -posx35=50 -posy35=50 -sizx35=800 -sizy35=600 -maxfps35=0 -initts35=0 -title36=Tomb Raider - The Last Revelation -path36=D:\Games\Tomb Raider - The Last Revelation\tomb4.exe -module36= -opengllib36= -ver36=0 -coord36=0 -flag36=134217826 -flagg36=134217728 -flagh36=20 -flagi36=0 -tflag36=3 -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=TOMB2.EXE -path37=D:\Games\Tomb Raider 2\TOMB2.EXE -module37= -opengllib37= -ver37=0 -coord37=0 -flag37=134217760 -flagg37=201326592 -flagh37=2068 -flagi37=0 -tflag37=0 -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=wa.exe -path38=D:\Games\worms_arma\Worms_2_Armageddon\wa.exe -module38= -opengllib38= -ver38=0 -coord38=0 -flag38=713031712 -flagg38=142606336 -flagh38=20 -flagi38=0 -tflag38=3 -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=Western Front -path39=D:\Games\Western Front\wf.exe -module39= -opengllib39= -ver39=0 -coord39=0 -flag39=679477282 -flagg39=135266304 -flagh39=16404 -flagi39=0 -tflag39=0 -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=G-Nome -path40=D:\Games\G-Nome\G-NOME.EXE -module40= -opengllib40= -ver40=0 -coord40=0 -flag40=-1433399262 -flagg40=201326592 -flagh40=33300 -flagi40=0 -tflag40=3 -initx40=0 -inity40=0 -minx40=0 -miny40=0 -maxx40=0 -maxy40=0 -posx40=250 -posy40=250 -sizx40=800 -sizy40=600 -maxfps40=0 -initts40=0 -title41=GeneRally -path41=D:\Games\generally105\GeneRally.exe -module41= -opengllib41= -ver41=7 -coord41=0 -flag41=134234146 -flagg41=135266305 -flagh41=20 -flagi41=0 -tflag41=0 -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=Warlords 3 -path42=D:\Games\Warlords3\Darklord.exe -module42= -opengllib42= -ver42=0 -coord42=0 -flag42=-2013249502 -flagg42=135266304 -flagh42=20 -flagi42=0 -tflag42=0 -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=Tachyon The Fringe -path43=D:\Games\TachyonTheFringe\space.exe -module43= -opengllib43= -ver43=0 -coord43=0 -flag43=151011364 -flagg43=134217728 -flagh43=20 -flagi43=0 -tflag43=3 -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=Tanktics -path44=D:\Games\Tanktics\tanktics.exe -module44= -opengllib44= -ver44=0 -coord44=1 -flag44=671088674 -flagg44=134217728 -flagh44=20 -flagi44=0 -tflag44=259 -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=Nightmare Ned -path45=D:\Games\Ned\NITENED.EXE -module45= -opengllib45= -ver45=0 -coord45=0 -flag45=134217762 -flagg45=134217728 -flagh45=20 -flagi45=0 -tflag45=3 -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=Imperialism II -path46=D:\Games\imperialism_2\imperialism II.exe -module46= -opengllib46= -ver46=0 -coord46=0 -flag46=142614562 -flagg46=470810688 -flagh46=20 -flagi46=0 -tflag46=67 -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=age3.exe -path47=D:\Games\Age of Empires III\age3.exe -module47= -opengllib47= -ver47=0 -coord47=0 -flag47=-394125278 -flagg47=134217728 -flagh47=20 -flagi47=0 -tflag47=64 -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=road.exe -path48=D:\Games\Vangers\road.exe -module48= -opengllib48= -ver48=1 -coord48=0 -flag48=134217762 -flagg48=134217728 -flagh48=20 -flagi48=0 -tflag48=323 -initx48=0 -inity48=0 -minx48=0 -miny48=0 -maxx48=0 -maxy48=0 -posx48=50 -posy48=50 -sizx48=800 -sizy48=600 -maxfps48=0 -initts48=0 -[window] -posx=1435 -posy=210 -sizx=320 -sizy=420 diff --git a/build/dxwnd.3.ini b/build/dxwnd.3.ini deleted file mode 100644 index 00c9d6c..0000000 --- a/build/dxwnd.3.ini +++ /dev/null @@ -1,167 +0,0 @@ -[window] -posx=1452 -posy=365 -sizx=320 -sizy=514 -[target] -title0=Rayman 2 Demo -path0=D:\Games\Rayman2Demo\Rayman2Demo.exe -module0= -opengllib0= -ver0=1 -coord0=0 -flag0=402653217 -flagg0=1210056704 -flagh0=2097172 -flagi0=0 -tflag0=64 -initx0=0 -inity0=0 -minx0=0 -miny0=0 -maxx0=0 -maxy0=0 -posx0=50 -posy0=50 -sizx0=800 -sizy0=600 -maxfps0=0 -initts0=0 -title1=Mirror's Edge -path1=D:\Games\Mirror's Edge\Binaries\MirrorsEdge.exe -module1= -opengllib1= -ver1=0 -coord1=0 -flag1=-2013265882 -flagg1=1207959552 -flagh1=2097172 -flagi1=0 -tflag1=5 -initx1=0 -inity1=0 -minx1=0 -miny1=0 -maxx1=0 -maxy1=0 -posx1=50 -posy1=50 -sizx1=800 -sizy1=600 -maxfps1=0 -initts1=6 -title2=LastHalfWin.exe -path2=D:\Games\Last Half Of Darkness\LastHalfWin.exe -module2= -opengllib2= -ver2=1 -coord2=0 -flag2=134217760 -flagg2=1207959552 -flagh2=4 -flagi2=0 -tflag2=512 -initx2=0 -inity2=0 -minx2=0 -miny2=0 -maxx2=0 -maxy2=0 -posx2=50 -posy2=50 -sizx2=800 -sizy2=600 -maxfps2=0 -initts2=0 -title3=DOOM95.EXE -path3=D:\Games\Doom95i\DOOM95.EXE -module3= -opengllib3= -ver3=0 -coord3=0 -flag3=134217762 -flagg3=1207959552 -flagh3=20 -flagi3=0 -tflag3=512 -initx3=0 -inity3=0 -minx3=0 -miny3=0 -maxx3=0 -maxy3=0 -posx3=50 -posy3=50 -sizx3=800 -sizy3=600 -maxfps3=0 -initts3=0 -title4=CNC3.exe -path4=D:\Games\Command & Conquer 3\CNC3.exe -module4= -opengllib4= -ver4=9 -coord4=0 -flag4=134217762 -flagg4=1207959552 -flagh4=20 -flagi4=0 -tflag4=512 -initx4=0 -inity4=0 -minx4=0 -miny4=0 -maxx4=0 -maxy4=0 -posx4=50 -posy4=50 -sizx4=800 -sizy4=600 -maxfps4=0 -initts4=0 -title5=Div.exe -path5=D:\Games\Beyond Divinity\Div.exe -module5= -opengllib5= -ver5=0 -coord5=0 -flag5=134217762 -flagg5=1207959552 -flagh5=20 -flagi5=0 -tflag5=512 -initx5=0 -inity5=0 -minx5=0 -miny5=0 -maxx5=0 -maxy5=0 -posx5=50 -posy5=50 -sizx5=800 -sizy5=600 -maxfps5=0 -initts5=0 -title6=martian gothic.exe -path6=D:\Games\Martian Gothic\martian gothic.exe -module6= -opengllib6= -ver6=7 -coord6=0 -flag6=201326626 -flagg6=1208090624 -flagh6=276 -flagi6=0 -tflag6=263 -initx6=0 -inity6=0 -minx6=0 -miny6=0 -maxx6=0 -maxy6=0 -posx6=50 -posy6=50 -sizx6=800 -sizy6=600 -maxfps6=0 -initts6=0 diff --git a/build/dxwnd.4.ini b/build/dxwnd.4.ini deleted file mode 100644 index 3ac8a3b..0000000 --- a/build/dxwnd.4.ini +++ /dev/null @@ -1,2214 +0,0 @@ -[target] -title0=101 Airborne Invasion -path0=D:\Games\101air\101.exe -module0= -opengllib0= -ver0=0 -coord0=0 -flag0=134217762 -flagg0=134217728 -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 -title1=688I Hunter Killer -path1=D:\Games\688\688I_HK.EXE -module1= -opengllib1= -ver1=0 -coord1=1 -flag1=1209532962 -flagg1=135266304 -flagh1=20 -flagi1=0 -tflag1=0 -initx1=0 -inity1=0 -minx1=0 -miny1=0 -maxx1=0 -maxy1=0 -posx1=50 -posy1=50 -sizx1=800 -sizy1=600 -maxfps1=0 -initts1=0 -title2=A10 Cuba -path2=D:\Games\A10\A10Cuba.exe -module2= -opengllib2= -ver2=0 -coord2=0 -flag2=134217762 -flagg2=1207959552 -flagh2=20 -flagi2=0 -tflag2=0 -initx2=0 -inity2=0 -minx2=0 -miny2=0 -maxx2=0 -maxy2=0 -posx2=50 -posy2=50 -sizx2=800 -sizy2=600 -maxfps2=0 -initts2=0 -title3=Abomination the Nemesis Project -path3=D:\Games\Abomination\Abomb.exe -module3= -opengllib3= -ver3=0 -coord3=0 -flag3=134217762 -flagg3=1207959552 -flagh3=20 -flagi3=0 -tflag3=66 -initx3=0 -inity3=0 -minx3=0 -miny3=0 -maxx3=0 -maxy3=0 -posx3=50 -posy3=50 -sizx3=800 -sizy3=600 -maxfps3=0 -initts3=0 -title4=ACabal95.exe -path4=D:\Games\Alien_cabal\ACabal95.exe -module4= -opengllib4= -ver4=0 -coord4=0 -flag4=671088674 -flagg4=1209008128 -flagh4=20 -flagi4=0 -tflag4=258 -initx4=0 -inity4=0 -minx4=0 -miny4=0 -maxx4=0 -maxy4=0 -posx4=50 -posy4=50 -sizx4=800 -sizy4=600 -maxfps4=0 -initts4=0 -title5=Actua Soccer 3 -path5=D:\Games\ActuaSoccer3\Soccer3.exe -module5= -opengllib5= -ver5=0 -coord5=0 -flag5=671088674 -flagg5=134217728 -flagh5=20 -flagi5=0 -tflag5=67 -initx5=0 -inity5=0 -minx5=0 -miny5=0 -maxx5=0 -maxy5=0 -posx5=50 -posy5=50 -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 -module6= -opengllib6= -ver6=0 -coord6=0 -flag6=134217762 -flagg6=1207959554 -flagh6=20 -flagi6=0 -tflag6=0 -initx6=0 -inity6=0 -minx6=0 -miny6=0 -maxx6=0 -maxy6=0 -posx6=50 -posy6=50 -sizx6=800 -sizy6=600 -maxfps6=0 -initts6=0 -title7=Ancient Conquest -path7=D:\Games\Ancient Conquest\ANCIENT.EXE -module7= -opengllib7= -ver7=0 -coord7=0 -flag7=671088674 -flagg7=1207959552 -flagh7=20 -flagi7=0 -tflag7=338 -initx7=0 -inity7=0 -minx7=0 -miny7=0 -maxx7=0 -maxy7=0 -posx7=50 -posy7=50 -sizx7=800 -sizy7=600 -maxfps7=0 -initts7=0 -title8=Army Men RTS -path8=D:\Games\Army Men RTS\amrts.exe -module8= -opengllib8= -ver8=0 -coord8=0 -flag8=134217762 -flagg8=1207959552 -flagh8=20 -flagi8=0 -tflag8=0 -initx8=0 -inity8=0 -minx8=0 -miny8=0 -maxx8=0 -maxy8=0 -posx8=50 -posy8=50 -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 -opengllib9= -ver9=0 -coord9=0 -flag9=167772192 -flagg9=202375169 -flagh9=20 -flagi9=0 -tflag9=262 -initx9=0 -inity9=0 -minx9=0 -miny9=0 -maxx9=0 -maxy9=0 -posx9=50 -posy9=50 -sizx9=800 -sizy9=600 -maxfps9=0 -initts9=0 -title10=Barrage -path10=D:\Games\Barrage\SRC\BARRAGE.EXE -module10= -opengllib10= -ver10=0 -coord10=0 -flag10=142606368 -flagg10=134217728 -flagh10=8212 -flagi10=0 -tflag10=6 -initx10=0 -inity10=0 -minx10=0 -miny10=0 -maxx10=0 -maxy10=0 -posx10=50 -posy10=50 -sizx10=800 -sizy10=600 -maxfps10=0 -initts10=0 -title11=Beavis & ButtHead do U. -path11=D:\Games\B_b\BEAVIS.EXE -module11= -opengllib11= -ver11=0 -coord11=0 -flag11=134217762 -flagg11=1207959552 -flagh11=20 -flagi11=0 -tflag11=3 -initx11=0 -inity11=0 -minx11=0 -miny11=0 -maxx11=0 -maxy11=0 -posx11=50 -posy11=50 -sizx11=800 -sizy11=600 -maxfps11=0 -initts11=0 -title12=Beyond Divinity -path12=D:\Games\Beyond Divinity\Div.exe -module12= -opengllib12= -ver12=0 -coord12=0 -flag12=134217762 -flagg12=1207959552 -flagh12=20 -flagi12=0 -tflag12=0 -initx12=0 -inity12=0 -minx12=0 -miny12=0 -maxx12=0 -maxy12=0 -posx12=50 -posy12=50 -sizx12=800 -sizy12=600 -maxfps12=0 -initts12=0 -title13=Black & White -path13=D:\Games\Black & White\runblack.exe -module13= -opengllib13= -ver13=0 -coord13=0 -flag13=679477280 -flagg13=1207959552 -flagh13=20 -flagi13=0 -tflag13=3 -initx13=0 -inity13=0 -minx13=0 -miny13=0 -maxx13=0 -maxy13=0 -posx13=50 -posy13=50 -sizx13=800 -sizy13=600 -maxfps13=0 -initts13=0 -title14=Black & White 2 Demo -path14=D:\Games\Black & White 2 Demo\BW2Demo.exe -module14= -opengllib14= -ver14=0 -coord14=0 -flag14=134217762 -flagg14=1208090624 -flagh14=20 -flagi14=0 -tflag14=1 -initx14=0 -inity14=0 -minx14=0 -miny14=0 -maxx14=0 -maxy14=0 -posx14=50 -posy14=50 -sizx14=800 -sizy14=600 -maxfps14=0 -initts14=0 -title15=Carnivores -path15=D:\Games\Carnivores\HUNTSOFT.EXE -module15= -opengllib15= -ver15=0 -coord15=1 -flag15=939524130 -flagg15=135266320 -flagh15=20 -flagi15=0 -tflag15=66 -initx15=0 -inity15=0 -minx15=0 -miny15=0 -maxx15=0 -maxy15=0 -posx15=50 -posy15=50 -sizx15=800 -sizy15=600 -maxfps15=0 -initts15=0 -title16=Cave Story (ITA) -path16=D:\Games\Cave Story\Doukutsu.exe -module16= -opengllib16= -ver16=0 -coord16=0 -flag16=134221858 -flagg16=1207959552 -flagh16=32790 -flagi16=0 -tflag16=2 -initx16=0 -inity16=0 -minx16=0 -miny16=0 -maxx16=0 -maxy16=0 -posx16=50 -posy16=50 -sizx16=800 -sizy16=600 -maxfps16=0 -initts16=0 -title17=Chariots of War -path17=D:\Games\Chariots of War\CoW.exe -module17= -opengllib17= -ver17=0 -coord17=0 -flag17=134217762 -flagg17=1207959552 -flagh17=20 -flagi17=0 -tflag17=0 -initx17=0 -inity17=0 -minx17=0 -miny17=0 -maxx17=0 -maxy17=0 -posx17=50 -posy17=50 -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=20 -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=0 -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=134217744 -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=3 -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=gpl.exe -path53=D:\Games\Grand Prix Legends\gpl\gpl.exe -module53= -opengllib53= -ver53=0 -coord53=0 -flag53=-1467875294 -flagg53=135266304 -flagh53=20 -flagi53=0 -tflag53=322 -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=Hard Truck - Road to Victory -path54=C:\Hard Truck\HTruck.exe -module54= -opengllib54= -ver54=0 -coord54=0 -flag54=134217760 -flagg54=134217728 -flagh54=2068 -flagi54=0 -tflag54=0 -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=Hellcopter -path55=D:\Games\Hellcopter\HCopter.exe -module55= -opengllib55= -ver55=0 -coord55=0 -flag55=134217762 -flagg55=134217728 -flagh55=1044 -flagi55=0 -tflag55=258 -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 & Magic 2 Gold -path56=D:\Games\heroes2gold\HEROES2W.EXE -module56= -opengllib56= -ver56=0 -coord56=0 -flag56=134217730 -flagg56=143654912 -flagh56=20 -flagi56=0 -tflag56=770 -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 CD -path57=D:\Games\Heroes of Might & Magic III\HEROES3.EXE -module57= -opengllib57= -ver57=0 -coord57=0 -flag57=134217762 -flagg57=1207959552 -flagh57=20 -flagi57=0 -tflag57=0 -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 3 Complete -path58=D:\Games\Heroes of Might and Magic 3 Complete\Heroes3.exe -module58= -opengllib58= -ver58=0 -coord58=0 -flag58=134217762 -flagg58=1207959552 -flagh58=20 -flagi58=0 -tflag58=3 -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 4 Complete -path59=D:\Games\Heroes of Might and Magic 4 Complete\heroes4.exe -module59= -opengllib59= -ver59=0 -coord59=2 -flag59=134283298 -flagg59=1207959552 -flagh59=65558 -flagi59=0 -tflag59=274 -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=Heroes of Might and Magic IV -path60=D:\Games\Heroes of Might and Magic IV\heroes4i.exe -module60= -opengllib60= -ver60=0 -coord60=1 -flag60=134283298 -flagg60=1211121728 -flagh60=65556 -flagi60=0 -tflag60=3 -initx60=0 -inity60=0 -minx60=0 -miny60=0 -maxx60=0 -maxy60=0 -posx60=50 -posy60=50 -sizx60=1200 -sizy60=900 -maxfps60=0 -initts60=0 -title61=HoI2.exe -path61=D:\Games\HoI2 Doomsday\HoI2.exe -module61= -opengllib61= -ver61=0 -coord61=0 -flag61=150994976 -flagg61=134217728 -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=Hooligans Storm over Europe -path62=D:\Games\Hooligans\Hooligans.exe -module62= -opengllib62= -ver62=0 -coord62=0 -flag62=134742048 -flagg62=202375168 -flagh62=20 -flagi62=0 -tflag62=258 -initx62=0 -inity62=0 -minx62=0 -miny62=0 -maxx62=0 -maxy62=0 -posx62=50 -posy62=50 -sizx62=800 -sizy62=600 -maxfps62=0 -initts62=0 -title63=Imperialism -path63=D:\Games\Imperialism\Imperialism.exe -module63= -opengllib63= -ver63=0 -coord63=0 -flag63=679485474 -flagg63=134217728 -flagh63=32788 -flagi63=0 -tflag63=2 -initx63=0 -inity63=0 -minx63=0 -miny63=0 -maxx63=0 -maxy63=0 -posx63=50 -posy63=50 -sizx63=1200 -sizy63=900 -maxfps63=0 -initts63=0 -title64=Imperialism II -path64=D:\Games\imperialism_2\imperialism II.exe -module64= -opengllib64= -ver64=0 -coord64=0 -flag64=671096866 -flagg64=470810688 -flagh64=20 -flagi64=0 -tflag64=66 -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=Kohan II Kings of War -path65=D:\Games\Kohan II Kings of War\k2.exe -module65= -opengllib65= -ver65=0 -coord65=0 -flag65=134217762 -flagg65=1207959552 -flagh65=20 -flagi65=0 -tflag65=0 -initx65=0 -inity65=0 -minx65=0 -miny65=0 -maxx65=0 -maxy65=0 -posx65=50 -posy65=50 -sizx65=800 -sizy65=600 -maxfps65=0 -initts65=0 -title66=Martian Gothic Unification -path66=D:\Games\Martian Gothic\martian gothic.exe -module66= -opengllib66= -ver66=0 -coord66=0 -flag66=402653217 -flagg66=134217728 -flagh66=20 -flagi66=0 -tflag66=3 -initx66=0 -inity66=0 -minx66=0 -miny66=0 -maxx66=0 -maxy66=0 -posx66=50 -posy66=100 -sizx66=400 -sizy66=300 -maxfps66=0 -initts66=0 -title67=Mechwarrior 3 -path67=D:\Games\Mechwarrior 3 (full)\Mech3.exe -module67= -opengllib67= -ver67=0 -coord67=0 -flag67=671096866 -flagg67=-2012086272 -flagh67=20 -flagi67=0 -tflag67=258 -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=Messiah GOG -path68=D:\Games\Messiah (GOG)\MessiahD3D.exe -module68= -opengllib68= -ver68=7 -coord68=0 -flag68=947912738 -flagg68=1207959552 -flagh68=20 -flagi68=0 -tflag68=3 -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=Nightmare Ned -path69=D:\Games\Ned\NITENED.EXE -module69= -opengllib69= -ver69=0 -coord69=0 -flag69=134217762 -flagg69=134217728 -flagh69=1048596 -flagi69=0 -tflag69=2 -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=Premier Manager 98 -path70=D:\Games\Premier Manager 98\MANAGER.EXE -module70= -opengllib70= -ver70=1 -coord70=0 -flag70=671088674 -flagg70=1207959552 -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=Raiden II -path71=D:\Games\raiden2\RAIDENII.EXE -module71= -opengllib71= -ver71=0 -coord71=1 -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=Rapanui -path72=D:\Games\Rapanui\Rapanui.exe -module72= -opengllib72= -ver72=0 -coord72=0 -flag72=134217762 -flagg72=134217728 -flagh72=20 -flagi72=0 -tflag72=0 -initx72=0 -inity72=0 -minx72=0 -miny72=0 -maxx72=0 -maxy72=0 -posx72=50 -posy72=50 -sizx72=800 -sizy72=600 -maxfps72=0 -initts72=0 -title73=Rayman 2 (GOG) -path73=D:\Games\GOG.com\Rayman 2\Rayman2.exe -module73= -opengllib73= -ver73=1 -coord73=0 -flag73=134217762 -flagg73=1208025088 -flagh73=20 -flagi73=0 -tflag73=274 -initx73=0 -inity73=0 -minx73=0 -miny73=0 -maxx73=0 -maxy73=0 -posx73=50 -posy73=50 -sizx73=800 -sizy73=600 -maxfps73=0 -initts73=8 -title74=Rayman2.exe -path74=C:\Program Files\GOG.com\Rayman 2\Rayman2.exe -module74= -opengllib74= -ver74=1 -coord74=0 -flag74=134217763 -flagg74=1208029184 -flagh74=2097172 -flagi74=0 -tflag74=18 -initx74=0 -inity74=0 -minx74=0 -miny74=0 -maxx74=0 -maxy74=0 -posx74=50 -posy74=50 -sizx74=800 -sizy74=600 -maxfps74=50 -initts74=8 -title75=Rayman2Demo.exe -path75=D:\Games\Rayman2Demo\Rayman2Demo.exe -module75= -opengllib75= -ver75=1 -coord75=0 -flag75=134217760 -flagg75=1207959552 -flagh75=20 -flagi75=0 -tflag75=0 -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=Silent Hunter II (shell) -path76=D:\Games\Silent Hunter II\Shell\Shell.exe -module76= -opengllib76= -ver76=0 -coord76=0 -flag76=402653221 -flagg76=135266304 -flagh76=20 -flagi76=0 -tflag76=2 -initx76=0 -inity76=0 -minx76=0 -miny76=0 -maxx76=800 -maxy76=600 -posx76=50 -posy76=50 -sizx76=800 -sizy76=600 -maxfps76=0 -initts76=0 -title77=Silent Hunter II (sim) -path77=D:\Games\Silent Hunter II\Sim\Sim.exe -module77= -opengllib77= -ver77=0 -coord77=0 -flag77=134217780 -flagg77=134217728 -flagh77=20 -flagi77=0 -tflag77=0 -initx77=400 -inity77=300 -minx77=0 -miny77=0 -maxx77=800 -maxy77=600 -posx77=50 -posy77=50 -sizx77=800 -sizy77=600 -maxfps77=0 -initts77=0 -title78=Space Hack -path78=D:\Games\Space Hack\main.exe -module78= -opengllib78= -ver78=0 -coord78=0 -flag78=671105058 -flagg78=134217728 -flagh78=20 -flagi78=0 -tflag78=258 -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=Tachyon The Fringe -path79=D:\Games\TachyonTheFringe\space.exe -module79= -opengllib79= -ver79=0 -coord79=0 -flag79=134234148 -flagg79=134217728 -flagh79=20 -flagi79=0 -tflag79=258 -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=Tanktics -path80=D:\Games\Tanktics\tanktics.exe -module80= -opengllib80= -ver80=0 -coord80=0 -flag80=671088674 -flagg80=134217728 -flagh80=20 -flagi80=0 -tflag80=258 -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=TD5_D3D.exe -path81=D:\Games\Test Drive 5\TD5_D3D.exe -module81= -opengllib81= -ver81=0 -coord81=0 -flag81=134217760 -flagg81=1207959552 -flagh81=20 -flagi81=0 -tflag81=64 -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=The Sims -path82=D:\Games\sims\Sims.exe -module82= -opengllib82= -ver82=0 -coord82=0 -flag82=671096866 -flagg82=134217728 -flagh82=20 -flagi82=0 -tflag82=66 -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=Tomb Raider - The Last Revelation -path83=D:\Games\Tomb Raider - The Last Revelation\tomb4.exe -module83= -opengllib83= -ver83=0 -coord83=0 -flag83=134217826 -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=TOMB2.EXE -path84=D:\Games\Tomb Raider 2\TOMB2.EXE -module84= -opengllib84= -ver84=0 -coord84=0 -flag84=134217760 -flagg84=201326592 -flagh84=2068 -flagi84=0 -tflag84=0 -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=Vangers one of the Road -path85=D:\Games\Vangers\road.exe -module85= -opengllib85= -ver85=1 -coord85=0 -flag85=406847650 -flagg85=671088640 -flagh85=262164 -flagi85=0 -tflag85=258 -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=wa.exe -path86=D:\Games\worms_arma\Worms_2_Armageddon\wa.exe -module86= -opengllib86= -ver86=0 -coord86=0 -flag86=713031712 -flagg86=142606336 -flagh86=20 -flagi86=0 -tflag86=2 -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=Wargames -path87=D:\Games\WarGames\wargames.exe -module87= -opengllib87= -ver87=0 -coord87=0 -flag87=134217762 -flagg87=1207959552 -flagh87=20 -flagi87=0 -tflag87=67 -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=Warlords 3 -path88=D:\Games\Warlords3\Darklord.exe -module88= -opengllib88= -ver88=0 -coord88=0 -flag88=-2013249502 -flagg88=135266304 -flagh88=20 -flagi88=0 -tflag88=2 -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=Western Front -path89=D:\Games\Western Front\wf.exe -module89= -opengllib89= -ver89=0 -coord89=0 -flag89=679477282 -flagg89=135266304 -flagh89=16404 -flagi89=0 -tflag89=0 -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=dw.exe -path90=D:\Games\Devil.Whiskey\dw.exe -module90= -opengllib90= -ver90=7 -coord90=0 -flag90=671088674 -flagg90=1208090624 -flagh90=5 -flagi90=0 -tflag90=64 -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=Dungeon Lords MMXII -path91=D:\Games\Dungeon Lords MMXII\dlords2012.exe -module91= -opengllib91= -ver91=0 -coord91=2 -flag91=-2013265886 -flagg91=1207959552 -flagh91=20 -flagi91=0 -tflag91=0 -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=Bunnies must die -path92=D:\Games\Bunnies must die\bmd.exe -module92= -opengllib92= -ver92=7 -coord92=0 -flag92=671088674 -flagg92=1209008128 -flagh92=4 -flagi92=0 -tflag92=3 -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=Magic & Mayhem -path93=D:\Games\Magic_&_Mayhem\Chaos.exe -module93= -opengllib93= -ver93=0 -coord93=0 -flag93=138412066 -flagg93=1275068416 -flagh93=8388628 -flagi93=0 -tflag93=259 -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=Submarine Titans Demo -path94=D:\Games\Submarine Titans Demo\st.exe -module94= -opengllib94= -ver94=0 -coord94=0 -flag94=675282978 -flagg94=1207959552 -flagh94=20 -flagi94=0 -tflag94=3 -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=Fate -path95=D:\Games\Fate\Fate.exe -module95= -opengllib95= -ver95=0 -coord95=2 -flag95=134217762 -flagg95=1207959552 -flagh95=20 -flagi95=0 -tflag95=64 -initx95=0 -inity95=0 -minx95=0 -miny95=0 -maxx95=0 -maxy95=0 -posx95=50 -posy95=50 -sizx95=800 -sizy95=600 -maxfps95=0 -initts95=0 -[window] -posx=1210 -posy=149 -sizx=360 -sizy=420 diff --git a/build/dxwnd.dll b/build/dxwnd.dll index 9f7cbd0..863ff0a 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0c14a21ce803c1f48696c754cbdb5368e40439fab6b64b9af7188331c159cba9 -size 414720 +oid sha256:d388e96ad41d9c1eafc912aecd8968fbd61f7f293a1f1a1cd69df02309c64344 +size 419328 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index c3cbae6..1bd0b4a 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:12cba4b1f36d3b9f0ed76b365035ee75fb22df7f464e0f05f05339a829c9586c +oid sha256:376135e3ce4f0be506edbfb44720a7c762f120258e1b24c11ccd6fe11cc6d375 size 526336 diff --git a/build/dxwnd.ini b/build/dxwnd.ini new file mode 100644 index 0000000..262883f --- /dev/null +++ b/build/dxwnd.ini @@ -0,0 +1,5 @@ +[window] +posx=1127 +posy=417 +sizx=320 +sizy=200 diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index c74180a..1b2454c 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -272,3 +272,13 @@ code reorganization GUI: removed useless flags and moved debug options in a hidden tab +v2.02.37 +CORE: +fix: now saves ZBUFFER capabilities to restore them on queries. This eliminates one possible d3d error when attempting use surface emulated mode. +fixed surface caps for "Ancient Evil", "Star Wars Shadows of the Empire", "Star Force Deluxe". +fixed surface handling in "Star Force Deluxe" that rely on a implicit PRIMARY surface created with 0 flags & 0 capabilities. +fixed handling of Flip operations when BACKBUFFER surface no longer exists, but there's a QueryInterface clone. +attempt to fix GetSystemPaletteEntries in windowed mode by using CreateHalftonePalette +d3d8/9 GetDisplayMode method duplicated to take in account the different prototype!! +added tentative wrapper for GetDCEx() call +initial coding for timers wrapping for time stretching \ No newline at end of file diff --git a/dll/analytic.cpp b/dll/analytic.cpp new file mode 100644 index 0000000..139597f --- /dev/null +++ b/dll/analytic.cpp @@ -0,0 +1,2 @@ + + diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index a3b8bf2..428b997 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -244,6 +244,7 @@ DDSURFACEDESC2 DDSD_Prim; DDSURFACEDESC2 DDSD_Back; DDSURFACEDESC2 DDSD_ZBuffer; +DWORD DDZBufferCaps; DWORD PaletteEntries[256]; DWORD *Palette16BPP = NULL; void *EmuScreenBuffer = NULL; // to implement pitch bug fix @@ -1658,6 +1659,15 @@ HRESULT WINAPI extQueryInterfaceS(void *lpdds, REFIID riid, LPVOID *obp) return DDERR_GENERIC; } break; + case 0xA4665C60: // IID_IDirect3DRGBDevice + OutTraceD("QueryInterface: IID_IDirect3DRGBDevice\n"); + break; + case 0xF2086B20: // IID_IDirect3DRampDevice + OutTraceD("QueryInterface: IID_IDirect3DRampDevice\n"); + break; + case 0x881949a1: // IID_IDirect3DMMXDevice + OutTraceD("QueryInterface: IID_IDirect3DMMXDevice\n"); + break; case 0x4B9F0EE0: OutTraceD("QueryInterface: IID_IDirectDrawColorControl\n"); break; @@ -1909,34 +1919,42 @@ HRESULT WINAPI extSetCooperativeLevel(void *lpdd, HWND hwnd, DWORD dwflags) return res; } -#define FIX_FLAGSMASK (DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH|DDSD_PITCH|DDSD_PIXELFORMAT|DDSD_ZBUFFERBITDEPTH) -//#define FIXCAPS_ANALITICAL +#define FIX_FLAGSMASK (DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH|DDSD_PITCH|DDSD_PIXELFORMAT|DDSD_ZBUFFERBITDEPTH|DDSD_TEXTURESTAGE) -static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) -{ - // To do: fix Dungeon Keeper II - - // rules of thumb: - // 1) always get rid of DDSCAPS_VIDEOMEMORY caps - // 2) always add DDSCAPS_SYSTEMMEMORY caps - // 3) DDSCAPS_SYSTEMMEMORY is supported from dxversion 4 - // 4) if DDSD_CAPS is not set, ignore caps - // 5) ignore DDSD_CKSRCBLT, .... - // 6) setting a different pixel format in memory requires DDSCAPS_OFFSCREENPLAIN capability - - if(!(lpddsd->dwFlags & DDSD_CAPS)) lpddsd->ddsCaps.dwCaps = 0; - - OutTraceD("FixSurfaceCaps: Flags=%x(%s) Caps=%x(%s)\n", - lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps)); - -#ifdef FIXCAPS_ANALITICAL +void FixSurfaceCapsAnalytic(LPDDSURFACEDESC2 lpddsd, int dxversion) +{ switch (lpddsd->dwFlags & FIX_FLAGSMASK){ + //case 0: + // switch (lpddsd->ddsCaps.dwCaps){ + // case 0: + // // Star Force Deluxe + // lpddsd->dwFlags = DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_PIXELFORMAT; + // lpddsd->ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY; + // lpddsd->dwHeight = dxw.GetScreenHeight(); + // lpddsd->dwWidth = dxw.GetScreenWidth(); + // SetPixFmt(lpddsd); + // return; + // break; + // } + // break; + case DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH|DDSD_PIXELFORMAT|DDSD_TEXTURESTAGE: + // Ancient Evil: + // dwFlags: DDSD_CAPS+HEIGHT+WIDTH+PIXELFORMAT+TEXTURESTAGE + // dwCaps1: DDSCAPS_OFFSCREENPLAIN+SYSTEMMEMORY+TEXTURE + // dwCaps2: DDSCAPS2_TEXTUREMANAGE + SetPixFmt(lpddsd); + return; + break; case DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_ZBUFFERBITDEPTH: switch (lpddsd->ddsCaps.dwCaps){ case DDSCAPS_VIDEOMEMORY|DDSCAPS_ZBUFFER: // Dungeon Keeper II return; break; + case DDSCAPS_SYSTEMMEMORY|DDSCAPS_ZBUFFER: + // "Star Wars Shadows of the Empire" through d3d + return; + break; } break; case DDSD_CAPS|DDSD_WIDTH: @@ -1955,6 +1973,10 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) // Martian Gothic return; break; + case DDSCAPS_VIDEOMEMORY|DDSCAPS_WRITEONLY|DDSCAPS_RESERVED2: + // Empire Earth + return; + break; } break; case DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH: @@ -2036,7 +2058,14 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) break; case DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_PIXELFORMAT: switch (lpddsd->ddsCaps.dwCaps){ - case DDSCAPS_OFFSCREENPLAIN: + case DDSCAPS_OFFSCREENPLAIN|DDSCAPS_3DDEVICE|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM: + // Empire Earth + // tbd + // try + lpddsd->ddsCaps.dwCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_3DDEVICE|DDSCAPS_SYSTEMMEMORY); + // eotry + return; + break; case DDSCAPS_OFFSCREENPLAIN: // Submarine titans (8BPP) lpddsd->ddsCaps.dwCaps = (DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN); SetPixFmt(lpddsd); @@ -2054,6 +2083,10 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) // Wargames Direct3D hw acceleration return; break; + case DDSCAPS_TEXTURE: + // Empire Earth + return; + break; case DDSCAPS_VIDEOMEMORY|DDSCAPS_ZBUFFER: // Martian Gothic lpddsd->ddsCaps.dwCaps = (DDSCAPS_SYSTEMMEMORY|DDSCAPS_ZBUFFER); // working ???? @@ -2074,6 +2107,20 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) lpddsd->ddsCaps.dwCaps = DDSCAPS_OVERLAY|DDSCAPS_SYSTEMMEMORY; return; break; + case DDSCAPS_SYSTEMMEMORY: + // Star Force Deluxe + lpddsd->ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY; + // SetPixFmt(lpddsd); + return; + break; + case DDSCAPS_TEXTURE|DDSCAPS_VIDEOMEMORY|DDSCAPS_ALLOCONLOAD: + // Star Wars Shadows of the Empire + // seems to work both with/without SetPixFmt, but doesn't like DDSCAPS_SYSTEMMEMORY textures. + // Setting SetPixFmt makes bad alpha transparencies! + //lpddsd->ddsCaps.dwCaps = (DDSCAPS_TEXTURE|DDSCAPS_SYSTEMMEMORY|DDSCAPS_ALLOCONLOAD); + //SetPixFmt(lpddsd); + return; + break; } break; case DDSD_CAPS|DDSD_WIDTH|DDSD_HEIGHT|DDSD_PITCH|DDSD_PIXELFORMAT: @@ -2100,9 +2147,35 @@ static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) sprintf(sMsg, "Flags=%x(%s) Caps=%x(%s)", lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps)); MessageBox(0, sMsg, "FixSurfaceCaps unmanaged setting", MB_OK | MB_ICONEXCLAMATION); } -#endif +} - if((lpddsd->dwFlags & (DDSD_WIDTH|DDSD_HEIGHT)) == DDSD_WIDTH) { // buffer surface - no changes +static void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion) +{ + // To do: fix Dungeon Keeper II + + // rules of thumb: + // 1) always get rid of DDSCAPS_VIDEOMEMORY caps + // 2) always add DDSCAPS_SYSTEMMEMORY caps + // 3) DDSCAPS_SYSTEMMEMORY is supported from dxversion 4 + // 4) if DDSD_CAPS is not set, ignore caps + // 5) ignore DDSD_CKSRCBLT, .... + // 6) setting a different pixel format in memory requires DDSCAPS_OFFSCREENPLAIN capability + // 7) DDSD_TEXTURESTAGE surfaces may need to adjust fixel format (....???) + + if(!(lpddsd->dwFlags & DDSD_CAPS)) lpddsd->ddsCaps.dwCaps = 0; + + OutTraceD("FixSurfaceCaps: Flags=%x(%s) Caps=%x(%s)\n", + lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps)); + + if(dxw.dwFlags3 & ANALYTICMODE) return FixSurfaceCapsAnalytic(lpddsd, dxversion); + + if((lpddsd->dwFlags & (DDSD_WIDTH|DDSD_HEIGHT)) == DDSD_WIDTH) { + // buffer surface - no changes + return; + } + if((lpddsd->dwFlags & (DDSD_PIXELFORMAT|DDSD_TEXTURESTAGE)) == (DDSD_PIXELFORMAT|DDSD_TEXTURESTAGE)){ + // textures, set proper color depth and make no further changes + SetPixFmt(lpddsd); return; } if((lpddsd->dwFlags & DDSD_CAPS) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER)) { // z-buffer surface - set to memory @@ -2394,8 +2467,6 @@ static HRESULT BuildGenericEmu(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf return res; } - if(ddsd.ddsCaps.dwCaps & DDSCAPS_ZBUFFER) lpDDZBuffer=*lplpdds; - OutTraceD("CreateSurface: created Emu_Generic dds=%x\n", *lplpdds); if(IsDebug) DescribeSurface(*lplpdds, dxversion, "DDSEmu_Generic", __LINE__); // diagnostic hooks .... @@ -2409,6 +2480,7 @@ static HRESULT BuildGenericDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf HRESULT res; DumpSurfaceAttributes((LPDDSURFACEDESC)lpddsd, "[Dir Generic]" , __LINE__); + res = (*pCreateSurface)(lpdd, lpddsd, lplpdds, 0); if(res){ if ((dxw.dwFlags1 & SWITCHVIDEOMEMORY) && (res==DDERR_OUTOFVIDEOMEMORY)){ @@ -2483,6 +2555,14 @@ static HRESULT WINAPI extCreateSurface(int dxversion, CreateSurface_Type pCreate memcpy(&ddsd, lpddsd, lpddsd->dwSize); // Copy + // v2.02.38: this is odd: in "Star Force Deluxe" there is no PRIMARY surface, but a surface with + // 0 flags and 0 capabilities serves for this purpose. Is it a side-effect of old ddraw releases? + if((dxversion == 1) && (ddsd.dwFlags == 0)){ // Star Force Deluxe + ddsd.dwFlags = DDSD_CAPS|DDSD_HEIGHT|DDSD_WIDTH; + ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; + if(dxw.VirtualPixelFormat.dwRGBBitCount == 8) ddsd.ddsCaps.dwCaps |= DDSCAPS_PALETTE; + } + // creation of the primary surface.... if(ddsd.dwFlags & DDSD_CAPS && ddsd.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE){ GetHookInfo()->Height=(short)dxw.GetScreenHeight(); @@ -2497,7 +2577,7 @@ static HRESULT WINAPI extCreateSurface(int dxversion, CreateSurface_Type pCreate if (lpDDC) while(lpDDC->Release()); if (lpDDSEmu_Back) while(lpDDSEmu_Back->Release()); if (lpDDSEmu_Prim) while(lpDDSEmu_Prim->Release()); - if (ddsd.dwFlags & DDSD_BACKBUFFERCOUNT) { + if (ddsd.dwFlags & DDSD_BACKBUFFERCOUNT) { // Praetorians !!!! if (lpDDSBack) while(lpDDSBack->Release()); lpBackBufferDD = NULL; } @@ -2574,7 +2654,14 @@ static HRESULT WINAPI extCreateSurface(int dxversion, CreateSurface_Type pCreate return res; } - // if nothing else, it's a generic surface + // if nothing else, it's a generic/zbuffer surface + + if(lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER) { + lpDDZBuffer=*lplpdds; + DDZBufferCaps = lpddsd->ddsCaps.dwCaps; + OutTraceD("CreateSurface: lpDDZBuffer=%x save ZBUFFER caps=%x(%s)\n", lpDDZBuffer, DDZBufferCaps, ExplainDDSCaps(DDZBufferCaps)); + } + res=BuildGeneric(lpdd, pCreateSurface, lpddsd, dxversion, lplpdds, pu); if(!res) dxw.MarkRegularSurface(*lplpdds); @@ -2617,7 +2704,7 @@ HRESULT WINAPI extGetAttachedSurface(int dxversion, GetAttachedSurface_Type pGet dxversion, lpdds, (IsPrim?"(PRIM)":(IsBack ? "(BACK)":"")), lpddsc->dwCaps, ExplainDDSCaps(lpddsc->dwCaps)); #if 0 - if(0 && (lpddsc->dwCaps & DDSCAPS_MIPMAP)){ + if(lpddsc->dwCaps & DDSCAPS_MIPMAP){ OutTraceD("GetAttachedSurface: emulate MIPMAP capability\n"); lpddsc->dwCaps &= ~DDSCAPS_MIPMAP; } @@ -2785,6 +2872,10 @@ HRESULT WINAPI sBlt(char *api, LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect, sprintf(sInfo, " ddbltfx.ROP=%x", lpddbltfx->dwROP); strcat(sLog, sInfo); } + if (dwflags & DDBLT_DEPTHFILL){ + sprintf(sInfo, " ddbltfx.FillDepth=%x", lpddbltfx->dwFillDepth); + strcat(sLog, sInfo); + } } strcat(sLog,"\n"); OutTrace(sLog); @@ -3041,6 +3132,12 @@ HRESULT WINAPI extFlip(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWSURFACE lpddssrc, res=sBlt("Flip", lpdds, NULL, lpddssrc, NULL, DDBLT_WAIT, 0, TRUE); } else{ + //v2.02.38: look for a valid BackBuffer surface + if(!lpDDSBack) lpDDSBack=dxw.GetBackBufferSurface(); + if(!lpDDSBack){ + OutTraceE("Flip: no backbuffer\n"); + return DDERR_INVALIDPARAMS; + } if (dxw.dwFlags2 & BACKBUFATTACH){ RECT NullArea; NullArea.left=NullArea.top=0; @@ -3139,6 +3236,8 @@ HRESULT WINAPI extBltFast(LPDIRECTDRAWSURFACE lpdds, DWORD dwx, DWORD dwy, return ret; } +#define DDPCAPS_INITIALIZE_LEGACY 0x00000008l + HRESULT WINAPI extCreatePalette(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTEENTRY lpddpa, LPDIRECTDRAWPALETTE *lplpddp, IUnknown *pu) { @@ -3157,6 +3256,8 @@ HRESULT WINAPI extCreatePalette(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTEENTRY return res; } + if (dwflags & ~(DDPCAPS_PRIMARYSURFACE|DDPCAPS_8BIT|DDPCAPS_ALLOW256|DDPCAPS_INITIALIZE_LEGACY)) STOPPER("Palette flags"); + res = (*pCreatePalette)(lpdd, dwflags & ~DDPCAPS_PRIMARYSURFACE, lpddpa, lplpddp, pu); if(res) { if (res) OutTraceD("CreatePalette: res=%x(%s)\n", res, ExplainDDError(res)); @@ -3165,7 +3266,8 @@ HRESULT WINAPI extCreatePalette(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTEENTRY HookDDPalette(lplpddp); - if(dwflags & DDPCAPS_PRIMARYSURFACE){ + //if(dwflags & DDPCAPS_PRIMARYSURFACE){ + if(dwflags & DDPCAPS_8BIT){ // v2.02.38 mySetPalette(0, 256, lpddpa); lpDDP = *lplpddp; } @@ -3251,8 +3353,8 @@ HRESULT WINAPI extSetEntries(LPDIRECTDRAWPALETTE lpddp, DWORD dwflags, DWORD dws HRESULT res; dxw.IsGDIPalette=FALSE; - OutTraceD("SetEntries: dwFlags=%x, start=%d, count=%d\n", //GHO: added trace infos - dwflags, dwstart, dwcount); + OutTraceD("SetEntries: lpddp=%x dwFlags=%x, start=%d, count=%d entries=%x\n", //GHO: added trace infos + lpddp, dwflags, dwstart, dwcount, lpentries); res = (*pSetEntries)(lpddp, dwflags, dwstart, dwcount, lpentries); if(res) OutTraceE("SetEntries: ERROR res=%x(%s)\n", res, ExplainDDError(res)); @@ -3831,6 +3933,10 @@ HRESULT WINAPI extReleaseS(LPDIRECTDRAWSURFACE lpdds) dxw.ResetPrimarySurface(); } } + if(lpdds==lpDDSBack) { // v2.02.38 + OutTraceD("Release(S): Clearing lpDDSBack pointer\n"); + lpDDSBack = NULL; + } } return res; } @@ -4016,8 +4122,14 @@ HRESULT WINAPI extGetCapsS(int dxInterface, GetCapsS_Type pGetCapsS, LPDIRECTDRA if ((caps->dwCaps & DDSCAPS_ZBUFFER) || (lpdds == lpDDZBuffer)){ OutTraceD("GetCaps(S%d): fixing ZBUFFER surface\n", dxInterface); IsFixed=TRUE; - caps->dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); - caps->dwCaps &= ~DDSCAPS_SYSTEMMEMORY; // zbuffer surfaces can't be this way (beware: it can be OFFSCREENPLAIN!) + if (DDZBufferCaps & DDSCAPS_SYSTEMMEMORY){ + caps->dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_SYSTEMMEMORY); + caps->dwCaps &= ~(DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); + } + else { + caps->dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); + caps->dwCaps &= ~DDSCAPS_SYSTEMMEMORY; + } } if(IsFixed) OutTraceD("GetCaps(S%d): lpdds=%x FIXED caps=%x(%s)\n", dxInterface, lpdds, caps->dwCaps, ExplainDDSCaps(caps->dwCaps)); @@ -4149,12 +4261,37 @@ HRESULT WINAPI extGetSurfaceDesc(GetSurfaceDesc_Type pGetSurfaceDesc, LPDIRECTDR if (lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER) { OutTraceD("GetSurfaceDesc: fixing ZBUFFER surface\n"); IsFixed=TRUE; - lpddsd->ddsCaps.dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); - //lpddsd->ddsCaps.dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_VIDEOMEMORY); - lpddsd->ddsCaps.dwCaps &= ~DDSCAPS_SYSTEMMEMORY; // zbuffer surfaces can't be this way + if (DDZBufferCaps & DDSCAPS_SYSTEMMEMORY){ + lpddsd->ddsCaps.dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_SYSTEMMEMORY); + lpddsd->ddsCaps.dwCaps &= ~(DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); + } + else { + lpddsd->ddsCaps.dwCaps |= (DDSCAPS_ZBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); + lpddsd->ddsCaps.dwCaps &= ~DDSCAPS_SYSTEMMEMORY; + } } +#ifdef EXPERIMENTAL_1 + if(1) { + IsFixed=TRUE; + if(lpddsd->ddsCaps.dwCaps & DDSCAPS_BACKBUFFER){ + lpddsd->dwSize = sizeof(DDSURFACEDESC2); + lpddsd->ddsCaps.dwCaps |= DDSCAPS_RESERVED2; + ((LPDDSURFACEDESC2)lpddsd)->ddsCaps.dwCaps2 = DDSCAPS2_RESERVED2; + ((LPDDSURFACEDESC2)lpddsd)->ddsCaps.dwCaps3 = 0; + } + else + if(lpddsd->ddsCaps.dwCaps & DDSCAPS_BACKBUFFER){ + } + else { + lpddsd->ddsCaps.dwCaps |= DDSCAPS_RESERVED2; + ((LPDDSURFACEDESC2)lpddsd)->ddsCaps.dwCaps2 |= DDSCAPS2_RESERVED2; + } + } +#endif + if(IsFixed) LogSurfaceAttributes(lpddsd, "GetSurfaceDesc [FIXED]", __LINE__); + return DD_OK; } diff --git a/dll/dxhelper.cpp b/dll/dxhelper.cpp index e55436d..51f8b05 100644 --- a/dll/dxhelper.cpp +++ b/dll/dxhelper.cpp @@ -401,17 +401,6 @@ char *ExplainFlipFlags(DWORD c) return(eb); } -char *ExplainFlipStatusFlags(DWORD c) -{ - char *ep; - switch(c){ - case DDGFS_CANFLIP: ep="DDGFS_CANFLIP"; break; - case DDGFS_ISFLIPDONE: ep="DDGFS_ISFLIPDONE"; break; - default: ep="unknown"; break; - } - return ep; -} - char *ExplainBltFlags(DWORD c) { static char eb[512]; @@ -467,6 +456,8 @@ char *ExplainBltFastFlags(DWORD c) return(eb); } +#define DDPCAPS_INITIALIZE_LEGACY 0x00000008l + char *ExplainCreatePaletteFlags(DWORD c) { static char eb[256]; @@ -475,7 +466,9 @@ char *ExplainCreatePaletteFlags(DWORD c) if (c & DDPCAPS_4BIT) strcat(eb, "4BIT+"); if (c & DDPCAPS_8BITENTRIES) strcat(eb, "8BITENTRIES+"); if (c & DDPCAPS_8BIT) strcat(eb, "8BIT+"); - if (c & DDPCAPS_INITIALIZE) strcat(eb, "INITIALIZE+"); + //if (c & DDPCAPS_INITIALIZE) strcat(eb, "INITIALIZE+"); + // DDPCAPS_INITIALIZE is obsolete and redefined to 0x0, but that is not the legacy value embedded in assembly! + if (c & DDPCAPS_INITIALIZE_LEGACY) strcat(eb, "INITIALIZE+"); if (c & DDPCAPS_PRIMARYSURFACE) strcat(eb, "PRIMARYSURFACE+"); if (c & DDPCAPS_PRIMARYSURFACELEFT) strcat(eb, "PRIMARYSURFACELEFT+"); if (c & DDPCAPS_ALLOW256) strcat(eb, "ALLOW256+"); @@ -637,6 +630,18 @@ char *ExplainBltStatus(DWORD c) return(eb); } +char *ExplainFlipStatus(DWORD c) +{ + static char *eb; + switch(c) + { + case DDGFS_CANFLIP: eb="DDGFS_CANFLIP"; break; + case DDGFS_ISFLIPDONE: eb="DDGFS_ISFLIPDONE"; break; + default: eb="invalid"; break; + } + return(eb); +} + char *ExplainDDError(DWORD c) { static char *eb; @@ -1492,4 +1497,32 @@ char *ExplainPeekRemoveMsg(DWORD c) if(c & QS_SENDMESSAGE) strcat(eb, "+SENDMESSAGE"); if(c & QS_ALLPOSTMESSAGE) strcat(eb, "+ALLPOSTMESSAGE"); return(eb); -} \ No newline at end of file +} + +char *ExplainGetDCExFlags(DWORD c) +{ + static char eb[128]; + unsigned int l; + strcpy(eb,"DCX_"); + if(c & DCX_WINDOW) strcat(eb, "WINDOW+"); + if(c & DCX_CACHE) strcat(eb, "CACHE+"); + if(c & DCX_PARENTCLIP) strcat(eb, "PARENTCLIP+"); + if(c & DCX_CLIPSIBLINGS) strcat(eb, "CLIPSIBLINGS+"); + if(c & DCX_CLIPCHILDREN) strcat(eb, "CLIPCHILDREN+"); + if(c & DCX_NORESETATTRS) strcat(eb, "NORESETATTRS+"); + if(c & DCX_EXCLUDERGN) strcat(eb, "EXCLUDERGN+"); + if(c & DCX_EXCLUDEUPDATE) strcat(eb, "EXCLUDEUPDATE+"); + if(c & DCX_INTERSECTRGN) strcat(eb, "INTERSECTRGN+"); + if(c & DCX_INTERSECTUPDATE) strcat(eb, "INTERSECTUPDATE+"); + if(c & DCX_VALIDATE) strcat(eb, "VALIDATE+"); + l=strlen(eb); + if (l>strlen("DCX_")) eb[l-1]=0; // delete last '+' if any + else strcpy(eb,"NULL"); + return(eb); +} + + + + + + diff --git a/dll/dxhelper.h b/dll/dxhelper.h index a1b4121..fe9e0c3 100644 --- a/dll/dxhelper.h +++ b/dll/dxhelper.h @@ -13,7 +13,6 @@ extern char *ExplainDDCKeyCaps(DWORD); extern char *ExplainCoopFlags(DWORD); extern char *ExplainPixelFormatFlags(DWORD); extern char *ExplainFlipFlags(DWORD); -extern char *ExplainFlipStatusFlags(DWORD); extern char *ExplainBltFlags(DWORD); extern char *ExplainBltFastFlags(DWORD); extern char *ExplainCreatePaletteFlags(DWORD); @@ -22,6 +21,7 @@ extern char *ExplainStyle(DWORD); extern char *ExplainExStyle(DWORD); extern char *ExplainShowCmd(int); extern char *ExplainBltStatus(DWORD); +extern char *ExplainFlipStatus(DWORD); extern char *ExplainDDError(DWORD); extern char *ExplainWinMessage(DWORD); extern char *ExplainResizing(DWORD); @@ -42,3 +42,4 @@ extern char *ExplainMCIFlags(DWORD, DWORD); extern char *ExplainRegType(DWORD); extern char *ExplainDCType(DWORD); extern char *ExplainPeekRemoveMsg(DWORD); +extern char *ExplainGetDCExFlags(DWORD); diff --git a/dll/dxwcore.cpp b/dll/dxwcore.cpp index 12a5498..2acefb4 100644 --- a/dll/dxwcore.cpp +++ b/dll/dxwcore.cpp @@ -15,7 +15,6 @@ dxwCore::dxwCore() { // initialization stuff .... FullScreen=FALSE; - if(dxw.dwFlags3 & FULLSCREENONLY) FullScreen=TRUE; SethWnd(NULL); SetScreenSize(); dwMaxDDVersion=7; @@ -60,6 +59,7 @@ void dxwCore::InitTarget(TARGETMAP *target) dwFlags3 = target->flags3; dwFlags4 = target->flags4; dwTFlags = target->tflags; + if(dxw.dwFlags3 & FULLSCREENONLY) FullScreen=TRUE; gsModules = target->module; MaxFPS = target->MaxFPS; CustomOpenGLLib = target->OpenGLLib; @@ -156,8 +156,8 @@ BOOL dxwCore::IsAPrimarySurface(LPDIRECTDRAWSURFACE ps) // treat NULL surface ptr as a non primary if(!ps) return FALSE; for (i=0;i. #include "dxwnd.h" #include "dxwcore.hpp" -#define VERSION "2.02.37" +#define VERSION "2.02.38" #define DDTHREADLOCK 1 @@ -160,7 +160,7 @@ LRESULT CALLBACK HookProc(int ncode, WPARAM wparam, LPARAM lparam) GetModuleFileName(0, name, MAX_PATH); for(i = 0; name[i]; i ++) name[i] = tolower(name[i]); WaitForSingleObject(hMutex, INFINITE); - for(i = 0; pMapping[i].path[0]; i ++){ + for(i = 0; pMapping[i].path[0] && (i + + diff --git a/dll/gdi32.cpp b/dll/gdi32.cpp index 4b650f9..c6f5aad 100644 --- a/dll/gdi32.cpp +++ b/dll/gdi32.cpp @@ -530,8 +530,20 @@ UINT WINAPI extGetSystemPaletteEntries(HDC hdc, UINT iStartIndex, UINT nEntries, ret=(*pGDIGetSystemPaletteEntries)(hdc, iStartIndex, nEntries, lppe); OutTraceD("GetSystemPaletteEntries: ret=%d\n", ret); if((ret == 0) && (dxw.dwFlags1 & EMULATESURFACE)) { - OutTraceD("GetSystemPaletteEntries: fixing ret=%d\n", nEntries); + //OutTraceD("GetSystemPaletteEntries: fixing ret=%d\n", nEntries); + //ret = nEntries; + // this seems to build a more reasonable system palette .... + HPALETTE hpal; + hpal=CreateHalftonePalette(NULL); + GetPaletteEntries(hpal, iStartIndex, nEntries, lppe); ret = nEntries; + OutTraceD("GetSystemPaletteEntries: fixing ret=%d\n", ret); + if(IsDebug){ + UINT idx; + OutTraceD("PaletteEntries[%x]= ", nEntries); + for(idx=0; idxWidth, pMode->Height, pMode->RefreshRate, pMode->Format); if(dxw.dwFlags2 & KEEPASPECTRATIO){ pMode->Width=dxw.iSizX; pMode->Height=dxw.iSizY; - OutTraceD("DEBUG: GetDisplayMode: fixed size=(%dx%d)\n", pMode->Width, pMode->Height); + OutTraceD("DEBUG: GetDisplayMode(8): fixed size=(%dx%d)\n", pMode->Width, pMode->Height); + } + return res; +} + +HRESULT WINAPI extGetDisplayMode9(void *lpd3d, UINT iSwapChain, D3DDISPLAYMODE *pMode) +{ + HRESULT res; + res=(*pGetDisplayMode9)(lpd3d, iSwapChain, pMode); + OutTraceD("DEBUG: GetDisplayMode(9): SwapChain=%d size=(%dx%d) RefreshRate=%d Format=%d\n", + iSwapChain, pMode->Width, pMode->Height, pMode->RefreshRate, pMode->Format); + if(dxw.dwFlags2 & KEEPASPECTRATIO){ + pMode->Width=dxw.iSizX; + pMode->Height=dxw.iSizY; + OutTraceD("DEBUG: GetDisplayMode(9): fixed size=(%dx%d)\n", pMode->Width, pMode->Height); } return res; } @@ -703,7 +720,7 @@ HRESULT WINAPI extCreateDevice(void *lpd3d, UINT adapter, D3DDEVTYPE devicetype, pReset=NULL; // to avoid assert condition SetHook((void *)(**(DWORD **)ppd3dd + 0), extQueryInterfaceDev8, (void **)&pQueryInterfaceDev8, "QueryInterface(D8)"); SetHook((void *)(**(DWORD **)ppd3dd + 24), extGetDirect3D, (void **)&pGetDirect3D, "GetDirect3D(D8)"); - //SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode, (void **)&pGetDisplayMode, "GetDisplayMode(D8)"); + SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode8, (void **)&pGetDisplayMode8, "GetDisplayMode(D8)"); SetHook((void *)(**(DWORD **)ppd3dd + 52), extCreateAdditionalSwapChain, (void **)&pCreateAdditionalSwapChain, "CreateAdditionalSwapChain(D8)"); SetHook((void *)(**(DWORD **)ppd3dd + 56), extReset, (void **)&pReset, "Reset(D8)"); SetHook((void *)(**(DWORD **)ppd3dd + 60), extPresent, (void **)&pPresent, "Present(D8)"); @@ -722,7 +739,7 @@ HRESULT WINAPI extCreateDevice(void *lpd3d, UINT adapter, D3DDEVTYPE devicetype, pReset=NULL; // to avoid assert condition SetHook((void *)(**(DWORD **)ppd3dd + 0), extQueryInterfaceDev9, (void **)&pQueryInterfaceDev9, "QueryInterface(D9)"); SetHook((void *)(**(DWORD **)ppd3dd + 24), extGetDirect3D, (void **)&pGetDirect3D, "GetDirect3D(D9)"); - //SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode, (void **)&pGetDisplayMode, "GetDisplayMode(D9)"); + SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode9, (void **)&pGetDisplayMode9, "GetDisplayMode(D9)"); SetHook((void *)(**(DWORD **)ppd3dd + 52), extCreateAdditionalSwapChain, (void **)&pCreateAdditionalSwapChain, "CreateAdditionalSwapChain(D9)"); SetHook((void *)(**(DWORD **)ppd3dd + 64), extReset, (void **)&pReset, "Reset(D9)"); SetHook((void *)(**(DWORD **)ppd3dd + 68), extPresent, (void **)&pPresent, "Present(D9)"); @@ -810,7 +827,7 @@ HRESULT WINAPI extCreateDeviceEx(void *lpd3d, UINT adapter, D3DDEVTYPE devicetyp void *pReset; pReset=NULL; // to avoid assert condition SetHook((void *)(**(DWORD **)ppd3dd + 0), extQueryInterfaceDev9, (void **)&pQueryInterfaceDev9, "QueryInterface(D9)"); - SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode, (void **)&pGetDisplayMode, "GetDisplayMode(D9)"); + SetHook((void *)(**(DWORD **)ppd3dd + 32), extGetDisplayMode9, (void **)&pGetDisplayMode9, "GetDisplayMode(D9)"); SetHook((void *)(**(DWORD **)ppd3dd + 52), extCreateAdditionalSwapChain, (void **)&pCreateAdditionalSwapChain, "CreateAdditionalSwapChain(D9)"); SetHook((void *)(**(DWORD **)ppd3dd + 64), extReset, (void **)&pReset, "Reset(D9)"); SetHook((void *)(**(DWORD **)ppd3dd + 68), extPresent, (void **)&pPresent, "Present(D9)"); @@ -1117,7 +1134,7 @@ HRESULT WINAPI extQueryInterfaceDev9(void *obj, REFIID riid, void** ppvObj) OutTraceD("Device hook for IID_IDirect3DDevice9 interface\n"); pReset=NULL; // to avoid assert condition SetHook((void *)(**(DWORD **)ppvObj + 0), extQueryInterfaceDev9, (void **)&pQueryInterfaceDev9, "QueryInterface(D9)"); - SetHook((void *)(**(DWORD **)ppvObj + 32), extGetDisplayMode, (void **)&pGetDisplayMode, "GetDisplayMode(D9)"); + SetHook((void *)(**(DWORD **)ppvObj + 32), extGetDisplayMode9, (void **)&pGetDisplayMode9, "GetDisplayMode(D9)"); SetHook((void *)(**(DWORD **)ppvObj + 52), extCreateAdditionalSwapChain, (void **)&pCreateAdditionalSwapChain, "CreateAdditionalSwapChain(D9)"); SetHook((void *)(**(DWORD **)ppvObj + 64), extReset, (void **)&pReset, "Reset(D9)"); SetHook((void *)(**(DWORD **)ppvObj + 68), extPresent, (void **)&pPresent, "Present(D9)"); diff --git a/dll/hd3d7.cpp b/dll/hd3d7.cpp index 72f48d5..6960319 100644 --- a/dll/hd3d7.cpp +++ b/dll/hd3d7.cpp @@ -37,6 +37,9 @@ typedef HRESULT (WINAPI *SetViewport_Type)(void *, LPD3DVIEWPORT); typedef HRESULT (WINAPI *GetViewport_Type)(void *, LPD3DVIEWPORT); typedef HRESULT (WINAPI *QueryInterfaceD3_Type)(void *, REFIID, LPVOID *); +typedef HRESULT (WINAPI *D3DInitialize_Type)(void *, LPDIRECT3D , LPGUID, LPD3DDEVICEDESC); +typedef HRESULT (WINAPI *D3DGetCaps_Type)(void *, LPD3DDEVICEDESC ,LPD3DDEVICEDESC); + Initialize_Type pInitialize = NULL; EnumDevices_Type pEnumDevices = NULL; CreateLight_Type pCreateLight = NULL; @@ -51,6 +54,9 @@ SetViewport_Type pSetViewport = NULL; GetViewport_Type pGetViewport = NULL; QueryInterfaceD3_Type pQueryInterfaceD3 = NULL; +D3DInitialize_Type pD3DInitialize = NULL; +D3DGetCaps_Type pD3DGetCaps = NULL; + HRESULT WINAPI extInitialize(void *); HRESULT WINAPI extEnumDevices(void *, LPD3DENUMDEVICESCALLBACK, LPVOID); HRESULT WINAPI extCreateLight(void *, LPDIRECT3DLIGHT *, IUnknown *); @@ -65,6 +71,9 @@ HRESULT WINAPI extSetViewport(void *, LPD3DVIEWPORT); HRESULT WINAPI extGetViewport(void *, LPD3DVIEWPORT); HRESULT WINAPI extQueryInterfaceD3(void *, REFIID, LPVOID *); +HRESULT WINAPI extD3DInitialize(void *, LPDIRECT3D , LPGUID, LPD3DDEVICEDESC); +HRESULT WINAPI extD3DGetCaps(void *, LPD3DDEVICEDESC ,LPD3DDEVICEDESC); + extern char *ExplainDDError(DWORD); int HookDirect3D7(HMODULE module, int version){ @@ -309,7 +318,6 @@ HRESULT WINAPI extDeviceProxy(GUID FAR *lpGuid, LPSTR lpDeviceDescription, LPSTR OutTraceD("EnumDevices: CALLBACK GUID=%x(%s) DeviceDescription=\"%s\", DeviceName=\"%s\", arg=%x\n", lpGuid->Data1, ExplainGUID(lpGuid), lpDeviceDescription, lpDeviceName, ((CallbackArg *)arg)->arg); DumpD3DDevideDesc(lpd3ddd1, "HWDEV"); DumpD3DDevideDesc(lpd3ddd2, "SWDEV"); - HookDirect3DDevice((LPDIRECTDRAW *)lpGuid, 0); res = (*(((CallbackArg *)arg)->cb))(lpGuid, lpDeviceDescription, lpDeviceName, lpd3ddd1, lpd3ddd2, ((CallbackArg *)arg)->arg); OutTraceD("EnumDevices: CALLBACK ret=%x\n", res); return res; @@ -426,8 +434,12 @@ HRESULT WINAPI extCreateDevice2(void *lpd3d, REFCLSID Guid, LPDIRECTDRAWSURFACE OutTraceE("CreateDevice(D3D2) ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__); return res; } + else + OutTraceD("CreateDevice(D3D2): lpd3dd=%x\n", lpd3d, *lplpd3dd); // Hook device here ...! + SetHook((void *)(**(DWORD **)lplpd3dd + 12), extD3DInitialize, (void **)&pD3DInitialize, "Initialize(D3D)"); + SetHook((void *)(**(DWORD **)lplpd3dd + 16), extD3DGetCaps, (void **)&pD3DGetCaps, "GetCaps(D3D)"); return res; } @@ -466,16 +478,28 @@ HRESULT WINAPI extCreateDevice3(void *lpd3d, REFCLSID Guid, LPDIRECTDRAWSURFACE4 return res; } -#if 0 -HRESULT WINAPI extInitialize(void *d3dd, LPDIRECT3D lpd3d, LPGUID lpGuid, LPD3DDEVICEDESC lpd3ddd) +HRESULT WINAPI extD3DInitialize(void *d3dd, LPDIRECT3D lpd3d, LPGUID lpGuid, LPD3DDEVICEDESC lpd3dd) { HRESULT res; - OutTrace("Initialize: d3dd=%x lpd3d=%x GUID=%x lpd3ddd=%x\n", d3dd, lpd3d, lpGuid->Data1, lpd3ddd); - res=(*pInitialize)(d3dd, lpd3d, lpGuid, lpd3ddd); + OutTrace("Initialize: d3dd=%x lpd3d=%x GUID=%x lpd3ddd=%x\n", d3dd, lpd3d, lpGuid->Data1, lpd3dd); + res=(*pD3DInitialize)(d3dd, lpd3d, lpGuid, lpd3dd); if(res) OutTraceE("Initialize ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__); + DumpD3DDevideDesc(lpd3dd, "INIT"); return res; } -HRESULT WINAPI extGetCaps(void *d3dd, LPD3DDEVICEDESC,LPD3DDEVICEDESC) + +HRESULT WINAPI extD3DGetCaps(void *d3dd, LPD3DDEVICEDESC lpd3dd ,LPD3DDEVICEDESC lpd3dd2) +{ + HRESULT res; + OutTrace("GetCaps(D3D): d3dd=%x lpd3dd=%x lpd3dd2=%x \n", d3dd, lpd3dd, lpd3dd2); + res=(*pD3DGetCaps)(d3dd, lpd3dd, lpd3dd2); + if(res) OutTraceE("GetCaps(D3D) ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__); + DumpD3DDevideDesc(lpd3dd, "HWDEV"); + DumpD3DDevideDesc(lpd3dd2, "SWDEV"); + return res; +} + +#if 0 //HRESULT WINAPI extSwapTextureHandles(void *d3dd, LPDIRECT3DTEXTURE,LPDIRECT3DTEXTURE) //HRESULT WINAPI extCreateExecuteBuffer(void *d3dd, LPD3DEXECUTEBUFFERDESC,LPDIRECT3DEXECUTEBUFFER*,IUnknown*) //HRESULT WINAPI extGetStats(void *d3dd, LPD3DSTATS) diff --git a/dll/hddproxy.cpp b/dll/hddproxy.cpp index 3d1ac93..5d20a51 100644 --- a/dll/hddproxy.cpp +++ b/dll/hddproxy.cpp @@ -694,22 +694,22 @@ HRESULT WINAPI extCreatePaletteProxy(LPDIRECTDRAW lpdd, DWORD dwflags, LPPALETTE -HRESULT WINAPI extGetCapsDProxy(LPDIRECTDRAW lpdd, LPDDCAPS c1, LPDDCAPS c2) -{ - HRESULT res; - OutTraceP("GetCaps(D): PROXED lpdd=%x c1=%x c2=%x\n", lpdd, c1, c2); - res=(*pGetCapsD)(lpdd, c1, c2); - if(res) - OutTraceP("GetCaps(D): ERROR res=%x(%s)\n", res, ExplainDDError(res)); - else { - // to do: a full Caps dump! - OutTraceP("GetCaps(D): "); - if (c1) OutTraceP("hwcaps size=%x ", c1->dwSize); - if (c2) OutTraceP("swcaps size=%x ", c2->dwSize); - OutTraceP("\n"); - } - return res; -} +//HRESULT WINAPI extGetCapsDProxy(LPDIRECTDRAW lpdd, LPDDCAPS c1, LPDDCAPS c2) +//{ +// HRESULT res; +// OutTraceP("GetCaps(D): PROXED lpdd=%x c1=%x c2=%x\n", lpdd, c1, c2); +// res=(*pGetCapsD)(lpdd, c1, c2); +// if(res) +// OutTraceP("GetCaps(D): ERROR res=%x(%s)\n", res, ExplainDDError(res)); +// else { +// // to do: a full Caps dump! +// OutTraceP("GetCaps(D): "); +// if (c1) OutTraceP("hwcaps size=%x ", c1->dwSize); +// if (c2) OutTraceP("swcaps size=%x ", c2->dwSize); +// OutTraceP("\n"); +// } +// return res; +//} HRESULT WINAPI extGetSurfaceFromDCProxy(LPDIRECTDRAW lpdd, HDC hdc, LPDIRECTDRAWSURFACE* lpDDS) { @@ -1186,26 +1186,13 @@ HRESULT WINAPI extGetClipperProxy(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWCLIPPER HRESULT WINAPI extGetFlipStatusProxy(LPDIRECTDRAWSURFACE lpdds, DWORD flags) { -#if 0 HRESULT res; - OutTraceP("GetFlipStatus(S): PROXED lpdds=%x flags=%x(%s)\n", lpdds, flags, ExplainFlipStatusFlags(flags)); + OutTraceP("GetFlipStatus(S): PROXED lpdds=%x flags=%x(%s)\n", lpdds, flags, ExplainFlipStatus(flags)); res=(*pGetFlipStatus)(lpdds, flags); if(res==DDERR_WASSTILLDRAWING) OutTraceP("GetFlipStatus(S): res=%x(%s)\n", res, ExplainDDError(res)); else if(res) OutTraceP("GetFlipStatus(S): ERROR err=%x(%s)\n", res, ExplainDDError(res)); return res; -#else - HRESULT res; - static int DeMux=0; - OutTraceP("GetFlipStatus(S): DELAYED lpdds=%x flags=%x(%s)\n", lpdds, flags, ExplainFlipStatusFlags(flags)); - DeMux = (DeMux + 1) % 10; - res=(*pGetFlipStatus)(lpdds, flags); - if(res==DDERR_WASSTILLDRAWING) OutTraceP("GetFlipStatus(S): res=%x(%s)\n", res, ExplainDDError(res)); - else - if(res) OutTraceP("GetFlipStatus(S): ERROR err=%x(%s)\n", res, ExplainDDError(res)); - if(DeMux) res=DDERR_WASSTILLDRAWING; - return res; -#endif } HRESULT WINAPI extGetOverlayPositionProxy(LPDIRECTDRAWSURFACE lpdds, LPLONG lpl1, LPLONG lpl2) @@ -1710,7 +1697,7 @@ static void HookDDSessionProxy(LPDIRECTDRAW *lplpdd, int dxVersion) // IDIrectDraw::FlipToGDISurface SetHook((void *)(**(DWORD **)lplpdd + 40), extFlipToGDISurfaceProxy, (void **)&pFlipToGDISurface, "FlipToGDISurface(D)"); // IDIrectDraw::GetCaps - SetHook((void *)(**(DWORD **)lplpdd + 44), extGetCapsDProxy, (void **)&pGetCapsD, "GetCaps(D)"); + SetHook((void *)(**(DWORD **)lplpdd + 44), extGetCapsD, (void **)&pGetCapsD, "GetCaps(D)"); // IDIrectDraw::GetDisplayMode SetHook((void *)(**(DWORD **)lplpdd + 48), extGetDisplayModeProxy, (void **)&pGetDisplayMode, "GetDisplayMode(D)"); // IDIrectDraw::GetFourCCCodes diff --git a/dll/hddproxy.h b/dll/hddproxy.h index 992a434..c4f151b 100644 --- a/dll/hddproxy.h +++ b/dll/hddproxy.h @@ -60,7 +60,7 @@ extern HRESULT WINAPI extGetSurfaceDesc4Proxy(LPDIRECTDRAWSURFACE2, LPDDSURFACED extern ULONG WINAPI extAddRefDProxy(LPDIRECTDRAW); extern ULONG WINAPI extCompactProxy(LPDIRECTDRAW); extern HRESULT WINAPI extEnumDisplayModesProxy(LPDIRECTDRAW, DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK); -extern HRESULT WINAPI extGetCapsDProxy(LPDIRECTDRAW, LPDDCAPS, LPDDCAPS); +extern HRESULT WINAPI extGetCapsD(LPDIRECTDRAW, LPDDCAPS, LPDDCAPS); extern HRESULT WINAPI extGetFourCCCodesProxy(LPDIRECTDRAW, LPDWORD, LPDWORD); extern HRESULT WINAPI extGetMonitorFrequencyProxy(LPDIRECTDRAW, LPDWORD); extern HRESULT WINAPI extGetScanLineProxy(LPDIRECTDRAW, LPDWORD); diff --git a/dll/syslibs.h b/dll/syslibs.h index dd22ad5..cef33aa 100644 --- a/dll/syslibs.h +++ b/dll/syslibs.h @@ -175,6 +175,8 @@ typedef HWND (WINAPI *SetCapture_Type)(HWND); // Winmm.dll: typedef MCIERROR(WINAPI *mciSendCommand_Type)(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR); typedef DWORD (WINAPI *timeGetTime_Type)(void); +typedef MMRESULT(WINAPI *timeKillEvent_Type)(UINT); +typedef MMRESULT(WINAPI *timeSetEvent_Type)(UINT, UINT, LPTIMECALLBACK, DWORD_PTR, UINT); /* =================================================================== hooked APIs real pointers @@ -352,6 +354,8 @@ DXWEXTERN SetCapture_Type pSetCapture DXWINITIALIZED; // Winmm.dll: DXWEXTERN mciSendCommand_Type pmciSendCommand DXWINITIALIZED; DXWEXTERN timeGetTime_Type ptimeGetTime DXWINITIALIZED; +DXWEXTERN timeKillEvent_Type ptimeKillEvent DXWINITIALIZED; +DXWEXTERN timeSetEvent_Type ptimeSetEvent DXWINITIALIZED; /* =================================================================== hook procedures (possibly more tnan one per each API...) @@ -526,6 +530,8 @@ extern HWND WINAPI extSetCapture(HWND); // Winmm.dll: extern MCIERROR WINAPI extmciSendCommand(MCIDEVICEID, UINT, DWORD_PTR, DWORD_PTR); extern DWORD WINAPI exttimeGetTime(void); +extern MMRESULT WINAPI exttimeSetEvent(UINT, UINT, LPTIMECALLBACK, DWORD_PTR, UINT); +extern MMRESULT WINAPI exttimeKillEvent(UINT); // extern function declaration diff --git a/dll/user32 - Copia.cpp b/dll/user32 - Copia.cpp new file mode 100644 index 0000000..01b9896 --- /dev/null +++ b/dll/user32 - Copia.cpp @@ -0,0 +1,1888 @@ +#define _WIN32_WINNT 0x0600 +#define WIN32_LEAN_AND_MEAN +#define _CRT_SECURE_NO_WARNINGS + +#include +#include +#include "dxwnd.h" +#include "dxwcore.hpp" +#include "syslibs.h" +#include "dxhook.h" +#include "hddraw.h" +#include "dxhelper.h" + +static HookEntry_Type Hooks[]={ + {"UpdateWindow", (FARPROC)NULL, (FARPROC *)&pUpdateWindow, (FARPROC)extUpdateWindow}, + //{"GetWindowPlacement", (FARPROC)NULL, (FARPROC *)&pGetWindowPlacement, (FARPROC)extGetWindowPlacement}, + //{"SetWindowPlacement", (FARPROC)NULL, (FARPROC *)&pSetWindowPlacement, (FARPROC)extSetWindowPlacement}, + {"ChangeDisplaySettingsA", (FARPROC)ChangeDisplaySettingsA, (FARPROC *)&pChangeDisplaySettings, (FARPROC)extChangeDisplaySettings}, + {"ChangeDisplaySettingsExA", (FARPROC)ChangeDisplaySettingsA, (FARPROC *)&pChangeDisplaySettingsEx, (FARPROC)extChangeDisplaySettingsEx}, + {"BeginPaint", (FARPROC)BeginPaint, (FARPROC *)&pBeginPaint, (FARPROC)extBeginPaint}, + {"EndPaint", (FARPROC)EndPaint, (FARPROC *)&pEndPaint, (FARPROC)extEndPaint}, + {"ShowCursor", (FARPROC)ShowCursor, (FARPROC *)&pShowCursor, (FARPROC)extShowCursor}, + {"CreateDialogIndirectParamA", (FARPROC)CreateDialogIndirectParamA, (FARPROC *)&pCreateDialogIndirectParam, (FARPROC)extCreateDialogIndirectParam}, + {"CreateDialogParamA", (FARPROC)CreateDialogParamA, (FARPROC *)&pCreateDialogParam, (FARPROC)extCreateDialogParam}, + {"MoveWindow", (FARPROC)MoveWindow, (FARPROC *)&pMoveWindow, (FARPROC)extMoveWindow}, + {"EnumDisplaySettingsA", (FARPROC)EnumDisplaySettingsA, (FARPROC *)&pEnumDisplaySettings, (FARPROC)extEnumDisplaySettings}, + {"GetClipCursor", (FARPROC)GetClipCursor, (FARPROC*)&pGetClipCursor, (FARPROC)extGetClipCursor}, + {"ClipCursor", (FARPROC)ClipCursor, (FARPROC *)&pClipCursor, (FARPROC)extClipCursor}, + {"FillRect", (FARPROC)NULL, (FARPROC *)&pFillRect, (FARPROC)extFillRect}, + {"FrameRect", (FARPROC)NULL, (FARPROC *)&pFrameRect, (FARPROC)extFrameRect}, + {"DefWindowProcA", (FARPROC)DefWindowProcA, (FARPROC *)&pDefWindowProc, (FARPROC)extDefWindowProc}, + {"CreateWindowExA", (FARPROC)CreateWindowExA, (FARPROC *)&pCreateWindowExA, (FARPROC)extCreateWindowExA}, + {"CreateWindowExW", (FARPROC)CreateWindowExW, (FARPROC *)&pCreateWindowExW, (FARPROC)extCreateWindowExW}, + {"RegisterClassExA", (FARPROC)RegisterClassExA, (FARPROC *)&pRegisterClassExA, (FARPROC)extRegisterClassExA}, + {"GetSystemMetrics", (FARPROC)GetSystemMetrics, (FARPROC *)&pGetSystemMetrics, (FARPROC)extGetSystemMetrics}, + {"GetDesktopWindow", (FARPROC)GetDesktopWindow, (FARPROC *)&pGetDesktopWindow, (FARPROC)extGetDesktopWindow}, + {"TabbedTextOutA", (FARPROC)TabbedTextOutA, (FARPROC *)&pTabbedTextOutA, (FARPROC)extTabbedTextOutA}, + {"CloseWindow", (FARPROC)NULL, (FARPROC *)&pCloseWindow, (FARPROC)extCloseWindow}, + {"DestroyWindow", (FARPROC)NULL, (FARPROC *)&pDestroyWindow, (FARPROC)extDestroyWindow}, + {"SetSysColors", (FARPROC)NULL, (FARPROC *)&pSetSysColors, (FARPROC)extSetSysColors}, + {"SetCapture", (FARPROC)NULL, (FARPROC *)&pSetCapture, (FARPROC)extSetCapture}, + {0, NULL, 0, 0} // terminator +}; + +static HookEntry_Type EmulateHooks[]={ + {"GetDC", (FARPROC)GetDC, (FARPROC *)&pGDIGetDC, (FARPROC)extGDIGetDC}, + //{"GetWindowDC", (FARPROC)GetWindowDC, (FARPROC *)&pGDIGetWindowDC, (FARPROC)extGDIGetDC}, // not ready yet + {"ReleaseDC", (FARPROC)ReleaseDC, (FARPROC *)&pGDIReleaseDC, (FARPROC)extGDIReleaseDC}, + {0, NULL, 0, 0} // terminator +}; + +static HookEntry_Type DDHooks[]={ + {"GetDC", (FARPROC)GetDC, (FARPROC *)&pGDIGetDC, (FARPROC)extDDGetDC}, + {"GetWindowDC", (FARPROC)GetWindowDC, (FARPROC *)&pGDIGetWindowDC, (FARPROC)extDDGetDC}, + {"ReleaseDC", (FARPROC)ReleaseDC, (FARPROC *)&pGDIReleaseDC, (FARPROC)extDDReleaseDC}, + {"InvalidateRect", (FARPROC)InvalidateRect, (FARPROC *)&pInvalidateRect, (FARPROC)extDDInvalidateRect}, + {0, NULL, 0, 0} // terminator +}; + +static HookEntry_Type GDIHooks[]={ + {"GetDC", (FARPROC)GetDC, (FARPROC *)&pGDIGetDC, (FARPROC)extGDIGetDC}, + {"GetDCEx", (FARPROC)NULL, (FARPROC *)&pGDIGetDCEx, (FARPROC)extGDIGetDCEx}, + {"GetWindowDC", (FARPROC)GetWindowDC, (FARPROC *)&pGDIGetWindowDC, (FARPROC)extGDIGetDC}, + {"ReleaseDC", (FARPROC)ReleaseDC, (FARPROC *)&pGDIReleaseDC, (FARPROC)extGDIReleaseDC}, + {"InvalidateRect", (FARPROC)InvalidateRect, (FARPROC *)&pInvalidateRect, (FARPROC)extInvalidateRect}, + {0, NULL, 0, 0} // terminator +}; + +static HookEntry_Type RemapHooks[]={ + {"ScreenToClient", (FARPROC)ScreenToClient, (FARPROC *)&pScreenToClient, (FARPROC)extScreenToClient}, + {"ClientToScreen", (FARPROC)ClientToScreen, (FARPROC *)&pClientToScreen, (FARPROC)extClientToScreen}, + {"GetClientRect", (FARPROC)GetClientRect, (FARPROC *)&pGetClientRect, (FARPROC)extGetClientRect}, + {"GetWindowRect", (FARPROC)GetWindowRect, (FARPROC *)&pGetWindowRect, (FARPROC)extGetWindowRect}, + {"MapWindowPoints", (FARPROC)MapWindowPoints, (FARPROC *)&pMapWindowPoints, (FARPROC)extMapWindowPoints}, + {0, NULL, 0, 0} // terminator +}; + +static HookEntry_Type PeekAllHooks[]={ + {"PeekMessageA", (FARPROC)NULL, (FARPROC *)&pPeekMessage, (FARPROC)extPeekMessage}, + {"PeekMessageW", (FARPROC)NULL, (FARPROC *)&pPeekMessage, (FARPROC)extPeekMessage}, + {0, NULL, 0, 0} // terminator +}; + +static HookEntry_Type MouseHooks[]={ + {"GetCursorPos", (FARPROC)GetCursorPos, (FARPROC *)&pGetCursorPos, (FARPROC)extGetCursorPos}, + {"SetCursor", (FARPROC)SetCursor, (FARPROC *)&pSetCursor, (FARPROC)extSetCursor}, + {"SendMessageA", (FARPROC)SendMessageA, (FARPROC *)&pSendMessageA, (FARPROC)extSendMessage}, // ??? + {"SendMessageW", (FARPROC)SendMessageW, (FARPROC *)&pSendMessageW, (FARPROC)extSendMessage}, // ??? + //{"SetPhysicalCursorPos", NULL, (FARPROC *)&pSetCursor, (FARPROC)extSetCursor}, // ??? + {0, NULL, 0, 0} // terminator +}; + +static HookEntry_Type WinHooks[]={ + {"ShowWindow", (FARPROC)ShowWindow, (FARPROC *)&pShowWindow, (FARPROC)extShowWindow}, + {"SetWindowLongA", (FARPROC)SetWindowLongA, (FARPROC *)&pSetWindowLong, (FARPROC)extSetWindowLong}, + {"GetWindowLongA", (FARPROC)GetWindowLongA, (FARPROC *)&pGetWindowLong, (FARPROC)extGetWindowLong}, + {"SetWindowPos", (FARPROC)SetWindowPos, (FARPROC *)&pSetWindowPos, (FARPROC)extSetWindowPos}, + {"DeferWindowPos", (FARPROC)DeferWindowPos, (FARPROC *)&pGDIDeferWindowPos, (FARPROC)extDeferWindowPos}, + {"CallWindowProcA", (FARPROC)CallWindowProcA, (FARPROC *)&pCallWindowProc, (FARPROC)extCallWindowProc}, + {0, NULL, 0, 0} // terminator +}; + +static HookEntry_Type MouseHooks2[]={ + {"SetCursorPos", (FARPROC)SetCursorPos, (FARPROC *)&pSetCursorPos, (FARPROC)extSetCursorPos}, + {0, NULL, 0, 0} // terminator +}; + +FARPROC Remap_user32_ProcAddress(LPCSTR proc, HMODULE hModule) +{ + FARPROC addr; + if (addr=RemapLibrary(proc, hModule, Hooks)) return addr; + if ((dxw.dwFlags3 & EMULATEDC) || (dxw.dwFlags2 & HOOKGDI) || (dxw.dwFlags1 & MAPGDITOPRIMARY)) + if (addr=RemapLibrary(proc, hModule, EmulateHooks)) return addr; + if (addr=RemapLibrary(proc, hModule, (dxw.dwFlags1 & MAPGDITOPRIMARY) ? DDHooks : GDIHooks)) return addr; + if (dxw.dwFlags1 & CLIENTREMAPPING) + if (addr=RemapLibrary(proc, hModule, RemapHooks)) return addr; + if(dxw.dwFlags1 & MODIFYMOUSE) + if (addr=RemapLibrary(proc, hModule, MouseHooks)) return addr; + if (dxw.dwFlags1 & (PREVENTMAXIMIZE|FIXWINFRAME|LOCKWINPOS|LOCKWINSTYLE)) + if (addr=RemapLibrary(proc, hModule, WinHooks)) return addr; + if((dxw.dwFlags1 & (MODIFYMOUSE|SLOWDOWN|KEEPCURSORWITHIN)) || (dxw.dwFlags2 & KEEPCURSORFIXED)) + if (addr=RemapLibrary(proc, hModule, MouseHooks2)) return addr; + if(dxw.dwFlags3 & PEEKALLMESSAGES) + if (addr=RemapLibrary(proc, hModule, PeekAllHooks)) return addr; + return NULL; +} + +static char *libname = "user32.dll"; + +void HookUser32(HMODULE hModule) +{ + HookLibrary(hModule, Hooks, libname); + if ((dxw.dwFlags3 & EMULATEDC) || (dxw.dwFlags2 & HOOKGDI) || (dxw.dwFlags1 & MAPGDITOPRIMARY)) + HookLibrary(hModule, EmulateHooks, libname); + HookLibrary(hModule, (dxw.dwFlags1 & MAPGDITOPRIMARY) ? DDHooks : GDIHooks, libname); + if (dxw.dwFlags1 & CLIENTREMAPPING) HookLibrary(hModule, RemapHooks, libname); + if(dxw.dwFlags1 & MODIFYMOUSE)HookLibrary(hModule, MouseHooks, libname); + if (dxw.dwFlags1 & (PREVENTMAXIMIZE|FIXWINFRAME|LOCKWINPOS|LOCKWINSTYLE))HookLibrary(hModule, WinHooks, libname); + if((dxw.dwFlags1 & (MODIFYMOUSE|SLOWDOWN|KEEPCURSORWITHIN)) || (dxw.dwFlags2 & KEEPCURSORFIXED)) HookLibrary(hModule, MouseHooks2, libname); + if(dxw.dwFlags3 & PEEKALLMESSAGES) HookLibrary(hModule, PeekAllHooks, libname); + return; +} + +void HookUser32Init() +{ + HookLibInit(Hooks); + HookLibInit(DDHooks); + HookLibInit(RemapHooks); + HookLibInit(MouseHooks); + HookLibInit(WinHooks); + HookLibInit(MouseHooks2); +} + +// -------------------------------------------------------------------------- +// +// globals, externs, static functions... +// +// -------------------------------------------------------------------------- + +// PrimHDC: DC handle of the selected DirectDraw primary surface. NULL when invalid. +HDC PrimHDC=NULL; + +BOOL isWithinDialog=FALSE; +LPRECT lpClipRegion=NULL; +RECT ClipRegion; +int LastCurPosX, LastCurPosY; + +extern GetDC_Type pGetDC; +extern ReleaseDC_Type pReleaseDC; +extern DEVMODE *pSetDevMode; +extern void FixWindowFrame(HWND); +extern LRESULT CALLBACK extChildWindowProc(HWND, UINT, WPARAM, LPARAM); +extern HRESULT WINAPI sBlt(char *, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURFACE, LPRECT, DWORD, LPDDBLTFX, BOOL); + +extern INT_PTR CALLBACK extDialogWindowProc(HWND, UINT, WPARAM, LPARAM); + +LONG WINAPI MyChangeDisplaySettings(char *fname, DEVMODE *lpDevMode, DWORD dwflags) +{ + HRESULT res; + + // v2.02.32: reset the emulated DC used in EMULATEDC mode + dxw.ResetEmulatedDC(); + + // save desired settings first v.2.1.89 + // v2.1.95 protect when lpDevMode is null (closing game... Jedi Outcast) + // v2.2.23 consider new width/height only when dmFields flags are set. + if(lpDevMode && (lpDevMode->dmFields & (DM_PELSWIDTH | DM_PELSHEIGHT))){ + RECT client; + dxw.SetScreenSize(lpDevMode->dmPelsWidth, lpDevMode->dmPelsHeight); + // v2.02.31: when main win is bigger that expected resolution, you're in windowed fullscreen mode + //(*pGetClientRect)((dxw.dwFlags1 & FIXPARENTWIN) ? dxw.hParentWnd : dxw.GethWnd(), &client); + (*pGetClientRect)(dxw.GethWnd(), &client); + OutTraceD("%s: current hWnd=%x size=(%d,%d)\n", fname, dxw.GethWnd(), client.right, client.bottom); + if((client.right>=(LONG)lpDevMode->dmPelsWidth) && (client.bottom>=(LONG)lpDevMode->dmPelsHeight)) { + OutTraceD("%s: entering FULLSCREEN mode\n", fname); + dxw.SetFullScreen(TRUE); + } + } + + if ((dwflags==0 || dwflags==CDS_FULLSCREEN) && lpDevMode){ + if (dxw.dwFlags1 & EMULATESURFACE || !(lpDevMode->dmFields & DM_BITSPERPEL)){ + OutTraceD("%s: BYPASS res=DISP_CHANGE_SUCCESSFUL\n", fname); + return DISP_CHANGE_SUCCESSFUL; + } + else{ + DEVMODE NewMode; + if(dwflags==CDS_FULLSCREEN) dwflags=0; // no FULLSCREEN + EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &NewMode); + OutTraceD("ChangeDisplaySettings: CURRENT wxh=(%dx%d) BitsPerPel=%d -> %d\n", + NewMode.dmPelsWidth, NewMode.dmPelsHeight, NewMode.dmBitsPerPel, + lpDevMode->dmBitsPerPel); + NewMode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT; + NewMode.dmBitsPerPel = lpDevMode->dmBitsPerPel; + res=(*pChangeDisplaySettings)(&NewMode, 0); + if(res) OutTraceE("ChangeDisplaySettings: ERROR err=%d at %d\n", GetLastError(), __LINE__); + return res; + } + } + else + return (*pChangeDisplaySettings)(lpDevMode, dwflags); +} + +void dxwFixWindowPos(char *ApiName, HWND hwnd, LPARAM lParam) +{ + LPWINDOWPOS wp; + int MaxX, MaxY; + wp = (LPWINDOWPOS)lParam; + MaxX = dxw.iSizX; + MaxY = dxw.iSizY; + if (!MaxX) MaxX = dxw.GetScreenWidth(); + if (!MaxY) MaxY = dxw.GetScreenHeight(); + static int iLastCX, iLastCY; + static int BorderX=-1; + static int BorderY=-1; + int cx, cy; + + OutTraceD("%s: GOT hwnd=%x pos=(%d,%d) dim=(%d,%d) Flags=%x(%s)\n", + ApiName, hwnd, wp->x, wp->y, wp->cx, wp->cy, wp->flags, ExplainWPFlags(wp->flags)); + + if (dxw.dwFlags1 & PREVENTMAXIMIZE){ + int UpdFlag = 0; + + if(wp->cx>MaxX) { wp->cx=MaxX; UpdFlag=1; } + if(wp->cy>MaxY) { wp->cy=MaxY; UpdFlag=1; } + if (UpdFlag) + OutTraceD("%s: SET max dim=(%d,%d)\n", ApiName, wp->cx, wp->cy); + } + + if ((wp->flags & (SWP_NOMOVE|SWP_NOSIZE))==(SWP_NOMOVE|SWP_NOSIZE)) return; //v2.02.13 + + if ((dxw.dwFlags1 & LOCKWINPOS) && dxw.IsFullScreen() && (hwnd==dxw.GethWnd())){ + extern void CalculateWindowPos(HWND, DWORD, DWORD, LPWINDOWPOS); + CalculateWindowPos(hwnd, MaxX, MaxY, wp); + OutTraceD("%s: LOCK pos=(%d,%d) dim=(%d,%d)\n", ApiName, wp->x, wp->y, wp->cx, wp->cy); + } + + if ((dxw.dwFlags2 & KEEPASPECTRATIO) && dxw.IsFullScreen() && (hwnd==dxw.GethWnd())){ + // note: while keeping aspect ration, resizing from one corner doesn't tell + // which coordinate is prevalent to the other. We made an arbitrary choice. + // note: v2.1.93: compensation must refer to the client area, not the wp + // window dimensions that include the window borders. + if(BorderX==-1){ + RECT client, full; + (*pGetClientRect)(hwnd, &client); + (*pGetWindowRect)(hwnd, &full); + BorderX= full.right - full.left - client.right; + BorderY= full.bottom - full.top - client.bottom; + OutTraceD("%s: KEEPASPECTRATIO window borders=(%d,%d)\n", ApiName, BorderX, BorderY); + } + extern LRESULT LastCursorPos; + switch (LastCursorPos){ + case HTBOTTOM: + case HTTOP: + case HTBOTTOMLEFT: + case HTBOTTOMRIGHT: + case HTTOPLEFT: + case HTTOPRIGHT: + cx = BorderX + ((wp->cy - BorderY) * dxw.GetScreenWidth()) / dxw.GetScreenHeight(); + if(cx!=wp->cx){ + OutTraceD("%s: KEEPASPECTRATIO adjusted cx=%d->%d\n", ApiName, wp->cx, cx); + wp->cx = cx; + } + break; + case HTLEFT: + case HTRIGHT: + cy = BorderY + ((wp->cx - BorderX) * dxw.GetScreenHeight()) / dxw.GetScreenWidth(); + if(cy!=wp->cy){ + OutTraceD("%s: KEEPASPECTRATIO adjusted cy=%d->%d\n", ApiName, wp->cy, cy); + wp->cy = cy; + } + break; + } + } + + iLastCX= wp->cx; + iLastCY= wp->cy; +} + +void dxwFixMinMaxInfo(char *ApiName, HWND hwnd, LPARAM lParam) +{ + if (dxw.dwFlags1 & PREVENTMAXIMIZE){ + LPMINMAXINFO lpmmi; + lpmmi=(LPMINMAXINFO)lParam; + OutTraceD("%s: GOT MaxPosition=(%d,%d) MaxSize=(%d,%d)\n", ApiName, + lpmmi->ptMaxPosition.x, lpmmi->ptMaxPosition.y, lpmmi->ptMaxSize.x, lpmmi->ptMaxSize.y); + lpmmi->ptMaxPosition.x=0; + lpmmi->ptMaxPosition.y=0; + if(pSetDevMode){ + lpmmi->ptMaxSize.x = pSetDevMode->dmPelsWidth; + lpmmi->ptMaxSize.y = pSetDevMode->dmPelsHeight; + } + else{ + lpmmi->ptMaxSize.x = dxw.GetScreenWidth(); + lpmmi->ptMaxSize.y = dxw.GetScreenHeight(); + } + OutTraceD("%s: SET PREVENTMAXIMIZE MaxPosition=(%d,%d) MaxSize=(%d,%d)\n", ApiName, + lpmmi->ptMaxPosition.x, lpmmi->ptMaxPosition.y, lpmmi->ptMaxSize.x, lpmmi->ptMaxSize.y); + } + // v2.1.75: added logic to fix win coordinates to selected ones. + // fixes the problem with "Achtung Spitfire", that can't be managed through PREVENTMAXIMIZE flag. + if (dxw.dwFlags1 & LOCKWINPOS){ + LPMINMAXINFO lpmmi; + lpmmi=(LPMINMAXINFO)lParam; + OutTraceD("%s: GOT MaxPosition=(%d,%d) MaxSize=(%d,%d)\n", ApiName, + lpmmi->ptMaxPosition.x, lpmmi->ptMaxPosition.y, lpmmi->ptMaxSize.x, lpmmi->ptMaxSize.y); + lpmmi->ptMaxPosition.x=dxw.iPosX; + lpmmi->ptMaxPosition.y=dxw.iPosY; + lpmmi->ptMaxSize.x = dxw.iSizX ? dxw.iSizX : dxw.GetScreenWidth(); + lpmmi->ptMaxSize.y = dxw.iSizY ? dxw.iSizY : dxw.GetScreenHeight(); + OutTraceD("%s: SET LOCKWINPOS MaxPosition=(%d,%d) MaxSize=(%d,%d)\n", ApiName, + lpmmi->ptMaxPosition.x, lpmmi->ptMaxPosition.y, lpmmi->ptMaxSize.x, lpmmi->ptMaxSize.y); + } +} + +static LRESULT WINAPI FixWindowProc(char *ApiName, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM *lpParam) +{ + LPARAM lParam; + + lParam=*lpParam; + OutTraceW("%s: hwnd=%x msg=[0x%x]%s(%x,%x)\n", + ApiName, hwnd, Msg, ExplainWinMessage(Msg), wParam, lParam); + + switch(Msg){ + case WM_ERASEBKGND: + OutTraceD("%s: prevent erase background\n", ApiName); + return 1; // 1=erased + break; // useless + case WM_GETMINMAXINFO: + dxwFixMinMaxInfo(ApiName, hwnd, lParam); + break; + case WM_WINDOWPOSCHANGING: + case WM_WINDOWPOSCHANGED: + dxwFixWindowPos(ApiName, hwnd, lParam); + break; + case WM_STYLECHANGING: + case WM_STYLECHANGED: + dxw.FixStyle(ApiName, hwnd, wParam, lParam); + break; + case WM_SIZE: + if ((dxw.dwFlags1 & LOCKWINPOS) && dxw.IsFullScreen()) return 0; + if (dxw.dwFlags1 & PREVENTMAXIMIZE){ + if ((wParam == SIZE_MAXIMIZED)||(wParam == SIZE_MAXSHOW)){ + OutTraceD("%s: prevent screen SIZE to fullscreen wparam=%d(%s) size=(%d,%d)\n", ApiName, + wParam, ExplainResizing(wParam), HIWORD(lParam), LOWORD(lParam)); + return 0; // checked + //lParam = MAKELPARAM(dxw.GetScreenWidth(), dxw.GetScreenHeight()); + //OutTraceD("%s: updated SIZE wparam=%d(%s) size=(%d,%d)\n", ApiName, + // wParam, ExplainResizing(wParam), HIWORD(lParam), LOWORD(lParam)); + } + } + break; + default: + break; + } + + // marker to run hooked function + return(-1); +} + +static POINT FixMessagePt(HWND hwnd, POINT point) +{ + RECT rect; + static POINT curr; + curr=point; + + if(!(*pScreenToClient)(hwnd, &curr)){ + OutTraceE("ScreenToClient ERROR=%d hwnd=%x at %d\n", GetLastError(), hwnd, __LINE__); + curr.x = curr.y = 0; + } + + if (!(*pGetClientRect)(hwnd, &rect)) { + OutTraceE("GetClientRect ERROR=%d hwnd=%x at %d\n", GetLastError(), hwnd, __LINE__); + curr.x = curr.y = 0; + } + +#ifdef ISDEBUG + if(IsDebug) OutTrace("FixMessagePt point=(%d,%d) hwnd=%x win pos=(%d,%d) size=(%d,%d)\n", + point.x, point.y, hwnd, point.x-curr.x, point.y-curr.y, rect.right, rect.bottom); +#endif + + if (curr.x < 0) curr.x=0; + if (curr.y < 0) curr.y=0; + if (curr.x > rect.right) curr.x=rect.right; + if (curr.y > rect.bottom) curr.y=rect.bottom; + if (rect.right) curr.x = (curr.x * dxw.GetScreenWidth()) / rect.right; + if (rect.bottom) curr.y = (curr.y * dxw.GetScreenHeight()) / rect.bottom; + + return curr; +} + +// -------------------------------------------------------------------------- +// +// user32 API hookers +// +// -------------------------------------------------------------------------- + +BOOL WINAPI extDDInvalidateRect(HWND hwnd, RECT *lpRect, BOOL bErase) +{ + if(lpRect) + OutTraceD("InvalidateRect: hwnd=%x rect=(%d,%d)-(%d,%d) erase=%x\n", + hwnd, lpRect->left, lpRect->top, lpRect->right, lpRect->bottom, bErase); + else + OutTraceD("InvalidateRect: hwnd=%x rect=NULL erase=%x\n", + hwnd, bErase); + + return (*pInvalidateRect)(hwnd, NULL, bErase); +} + +BOOL WINAPI extInvalidateRect(HWND hwnd, RECT *lpRect, BOOL bErase) +{ + if(lpRect) + OutTraceD("InvalidateRect: hwnd=%x rect=(%d,%d)-(%d,%d) erase=%x\n", + hwnd, lpRect->left, lpRect->top, lpRect->right, lpRect->bottom, bErase); + else + OutTraceD("InvalidateRect: hwnd=%x rect=NULL erase=%x\n", + hwnd, bErase); + + return (*pInvalidateRect)(hwnd, NULL, bErase); +} + +BOOL WINAPI extShowWindow(HWND hwnd, int nCmdShow) +{ + BOOL res; + + OutTraceD("ShowWindow: hwnd=%x, CmdShow=%x(%s)\n", hwnd, nCmdShow, ExplainShowCmd(nCmdShow)); + if (dxw.dwFlags1 & PREVENTMAXIMIZE){ + if(nCmdShow==SW_MAXIMIZE){ + OutTraceD("ShowWindow: suppress maximize\n"); + nCmdShow=SW_SHOWNORMAL; + } + } + + res=(*pShowWindow)(hwnd, nCmdShow); + + return res; +} + +LONG WINAPI extGetWindowLong(HWND hwnd, int nIndex) +{ + LONG res; + + res=(*pGetWindowLong)(hwnd, nIndex); + + OutTraceD("GetWindowLong: hwnd=%x, Index=%x(%s) res=%x\n", hwnd, nIndex, ExplainSetWindowIndex(nIndex), res); + + if(nIndex==GWL_WNDPROC){ + WNDPROC wp; + wp=WhndGetWindowProc(hwnd); + OutTraceD("GetWindowLong: remapping WindowProc res=%x -> %x\n", res, (LONG)wp); + if(wp) res=(LONG)wp; // if not found, don't alter the value. + } + + return res; +} + +LONG WINAPI extSetWindowLong(HWND hwnd, int nIndex, LONG dwNewLong) +{ + LONG res; + + OutTraceD("SetWindowLong: hwnd=%x, Index=%x(%s) Val=%x\n", + hwnd, nIndex, ExplainSetWindowIndex(nIndex), dwNewLong); + + //if(!hwnd) hwnd=dxw.GethWnd(); + + if (dxw.dwFlags1 & LOCKWINSTYLE){ + if(nIndex==GWL_STYLE){ + OutTraceD("SetWindowLong: Lock GWL_STYLE=%x\n", dwNewLong); + //return 1; + return (*pGetWindowLong)(hwnd, nIndex); + } + if(nIndex==GWL_EXSTYLE){ + OutTraceD("SetWindowLong: Lock GWL_EXSTYLE=%x\n", dwNewLong); + //return 1; + return (*pGetWindowLong)(hwnd, nIndex); + } + } + + if (dxw.dwFlags1 & PREVENTMAXIMIZE){ + if(nIndex==GWL_STYLE){ + dwNewLong &= ~WS_MAXIMIZE; + if(dxw.IsDesktop(hwnd)){ + OutTraceD("SetWindowLong: GWL_STYLE %x suppress MAXIMIZE\n", dwNewLong); + dwNewLong |= WS_OVERLAPPEDWINDOW; + dwNewLong &= ~(WS_DLGFRAME|WS_MAXIMIZE|WS_VSCROLL|WS_HSCROLL|WS_CLIPSIBLINGS); + } + } + // v2.02.32: disable topmost for main window only + if(dxw.IsDesktop(hwnd) && (nIndex==GWL_EXSTYLE)){ + OutTraceD("SetWindowLong: GWL_EXSTYLE %x suppress TOPMOST\n", dwNewLong); + dwNewLong = dwNewLong & ~(WS_EX_TOPMOST); + } + } + + if (dxw.dwFlags1 & FIXWINFRAME){ + if((nIndex==GWL_STYLE) && !(dwNewLong & WS_CHILD)){ + OutTraceD("SetWindowLong: GWL_STYLE %x force OVERLAPPEDWINDOW\n", dwNewLong); + dwNewLong |= WS_OVERLAPPEDWINDOW; + dwNewLong &= ~WS_CLIPSIBLINGS; + } + } + + if (nIndex==GWL_WNDPROC){ + WNDPROC lres; + WNDPROC OldProc; + // GPL fix + if(dxw.IsRealDesktop(hwnd)) { + hwnd=dxw.GethWnd(); + OutTraceD("SetWindowLong: DESKTOP hwnd, FIXING hwnd=%x\n",hwnd); + } + // end of GPL fix + + OldProc = (WNDPROC)(*pGetWindowLong)(hwnd, GWL_WNDPROC); + if(OldProc==extWindowProc) OldProc=WhndGetWindowProc(hwnd); + WhndStackPush(hwnd, (WNDPROC)dwNewLong); + res=(LONG)OldProc; + SetLastError(0); + lres=(WNDPROC)(*pSetWindowLong)(hwnd, GWL_WNDPROC, (LONG)extWindowProc); + if(!lres && GetLastError())OutTraceE("SetWindowLong: ERROR err=%d at %d\n", GetLastError(), __LINE__); + } + else { + res=(*pSetWindowLong)(hwnd, nIndex, dwNewLong); + } + + OutTraceD("SetWindowLong: hwnd=%x, nIndex=%x, Val=%x, res=%x\n", hwnd, nIndex, dwNewLong, res); + return res; +} + +BOOL WINAPI extSetWindowPos(HWND hwnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags) +{ + BOOL res; + + OutTraceD("SetWindowPos: hwnd=%x%s pos=(%d,%d) dim=(%d,%d) Flags=%x\n", + hwnd, dxw.IsFullScreen()?"(FULLSCREEN)":"", X, Y, cx, cy, uFlags); + + //if ((hwnd != dxw.GethWnd()) || !dxw.IsFullScreen()){ + if (!dxw.IsDesktop(hwnd) || !dxw.IsFullScreen()){ + // just proxy + res=(*pSetWindowPos)(hwnd, hWndInsertAfter, X, Y, cx, cy, uFlags); + if(!res)OutTraceE("SetWindowPos: ERROR err=%d at %d\n", GetLastError(), __LINE__); + return res; + } + + if ((dxw.dwFlags1 & LOCKWINPOS) && dxw.IsFullScreen()){ + // Note: any attempt to change the window position, no matter where and how, through the + // SetWindowPos API is causing resizing to the default 1:1 pixed size in Commandos. + // in such cases, there is incompatibility between LOCKWINPOS and LOCKWINSTYLE. + OutTraceD("SetWindowPos: locked position\n"); + return 1; + } + + if (dxw.dwFlags1 & PREVENTMAXIMIZE){ + int UpdFlag =0; + int MaxX, MaxY; + MaxX = dxw.iSizX; + MaxY = dxw.iSizY; + if (!MaxX) MaxX = dxw.GetScreenWidth(); + if (!MaxY) MaxY = dxw.GetScreenHeight(); + if(cx>MaxX) { cx=MaxX; UpdFlag=1; } + if(cy>MaxY) { cy=MaxY; UpdFlag=1; } + if (UpdFlag) + OutTraceD("SetWindowPos: using max dim=(%d,%d)\n", cx, cy); + } + + // useful??? to be demonstrated.... + // when altering main window in fullscreen mode, fix the coordinates for borders + DWORD dwCurStyle; + RECT rect; + rect.top=rect.left=0; + rect.right=cx; rect.bottom=cy; + dwCurStyle=(*pGetWindowLong)(hwnd, GWL_STYLE); + AdjustWindowRect(&rect, dwCurStyle, FALSE); + cx=rect.right; cy=rect.bottom; + OutTraceD("SetWindowPos: main form hwnd=%x fixed size=(%d,%d)\n", hwnd, cx, cy); + + res=(*pSetWindowPos)(hwnd, hWndInsertAfter, X, Y, cx, cy, uFlags); + if(!res)OutTraceE("SetWindowPos: ERROR err=%d at %d\n", GetLastError(), __LINE__); + return res; +} + +HDWP WINAPI extDeferWindowPos(HDWP hWinPosInfo, HWND hwnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags) +{ + // v2.02.31: heavily used by "Imperialism II" !!! + HDWP res; + + OutTraceD("DeferWindowPos: hwnd=%x%s pos=(%d,%d) dim=(%d,%d) Flags=%x\n", + hwnd, dxw.IsFullScreen()?"(FULLSCREEN)":"", X, Y, cx, cy, uFlags); + + if(dxw.IsFullScreen()){ + dxw.MapClient(&X, &Y, &cx, &cy); + OutTraceD("DeferWindowPos: remapped pos=(%d,%d) dim=(%d,%d)\n", X, Y, cx, cy); + } + + res=(*pGDIDeferWindowPos)(hWinPosInfo, hwnd, hWndInsertAfter, X, Y, cx, cy, uFlags); + if(!res)OutTraceE("DeferWindowPos: ERROR err=%d at %d\n", GetLastError(), __LINE__); + return res; +} + +LRESULT WINAPI extSendMessage(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + LRESULT ret; + OutTraceW("SendMessage: hwnd=%x WinMsg=[0x%x]%s(%x,%x)\n", + hwnd, Msg, ExplainWinMessage(Msg), wParam, lParam); + + //if(Msg==WM_NCDESTROY) return 1; + + if(dxw.dwFlags1 & MODIFYMOUSE){ + switch (Msg){ + case WM_MOUSEMOVE: + case WM_MOUSEWHEEL: + case WM_LBUTTONDOWN: + case WM_LBUTTONUP: + case WM_LBUTTONDBLCLK: + case WM_RBUTTONDOWN: + case WM_RBUTTONUP: + case WM_RBUTTONDBLCLK: + case WM_MBUTTONDOWN: + case WM_MBUTTONUP: + case WM_MBUTTONDBLCLK: + // revert here the WindowProc mouse correction + POINT prev, curr; + RECT rect; + prev.x = LOWORD(lParam); + prev.y = HIWORD(lParam); + (*pGetClientRect)(dxw.GethWnd(), &rect); + curr.x = (prev.x * rect.right) / dxw.GetScreenWidth(); + curr.y = (prev.y * rect.bottom) / dxw.GetScreenHeight(); + if (Msg == WM_MOUSEWHEEL){ // v2.02.33 mousewheel fix + POINT upleft={0,0}; + (*pClientToScreen)(dxw.GethWnd(), &upleft); + curr = dxw.AddCoordinates(curr, upleft); + } + lParam = MAKELPARAM(curr.x, curr.y); + OutTraceC("SendMessage: hwnd=%x pos XY=(%d,%d)->(%d,%d)\n", hwnd, prev.x, prev.y, curr.x, curr.y); + break; + default: + break; + } + } + ret=(*pSendMessageA)(hwnd, Msg, wParam, lParam); + OutTraceW("SendMessage: lresult=%x\n", ret); + return ret; +} + +HCURSOR WINAPI extSetCursor(HCURSOR hCursor) +{ + HCURSOR ret; + + ret=(*pSetCursor)(hCursor); + OutTraceD("GDI.SetCursor: Cursor=%x, ret=%x\n", hCursor, ret); + //MessageBox(0, "SelectPalette", "GDI32.dll", MB_OK | MB_ICONEXCLAMATION); + return ret; +} + +BOOL WINAPI extGetCursorPos(LPPOINT lppoint) +{ + HRESULT res; + static int PrevX, PrevY; + POINT prev; + + if(dxw.dwFlags1 & SLOWDOWN) dxw.DoSlow(2); + + if (pGetCursorPos) { + res=(*pGetCursorPos)(lppoint); + } + else { + lppoint->x =0; lppoint->y=0; + res=1; + } + + prev=*lppoint; + *lppoint=dxw.ScreenToClient(*lppoint); + *lppoint=dxw.FixCursorPos(*lppoint); + GetHookInfo()->CursorX=(short)lppoint->x; + GetHookInfo()->CursorY=(short)lppoint->y; + OutTraceC("GetCursorPos: FIXED pos=(%d,%d)->(%d,%d)\n", prev.x, prev.y, lppoint->x, lppoint->y); + + return res; +} + +BOOL WINAPI extSetCursorPos(int x, int y) +{ + BOOL res; + int PrevX, PrevY; + + PrevX=x; + PrevY=y; + + if(dxw.dwFlags2 & KEEPCURSORFIXED) { + OutTraceC("SetCursorPos: FIXED pos=(%d,%d)\n", x, y); + LastCurPosX=x; + LastCurPosY=y; + return 1; + } + + if(dxw.dwFlags1 & SLOWDOWN) dxw.DoSlow(2); + + if(dxw.dwFlags1 & KEEPCURSORWITHIN){ + // Intercept SetCursorPos outside screen boundaries (used as Cursor OFF in some games) + if ((y<0)||(y>=(int)dxw.GetScreenHeight())||(x<0)||(x>=(int)dxw.GetScreenWidth())) return 1; + } + + if(dxw.dwFlags1 & MODIFYMOUSE){ + POINT cur; + RECT rect; + + // find window metrics + if (!(*pGetClientRect)(dxw.GethWnd(), &rect)) { + // report error and ignore ... + OutTraceE("GetClientRect(%x) ERROR %d at %d\n", dxw.GethWnd(), GetLastError(), __LINE__); + return 0; + } + + x= x * rect.right / dxw.GetScreenWidth(); + y= y * rect.bottom / dxw.GetScreenHeight(); + + // check for boundaries (???) + if (x >= rect.right) x=rect.right-1; + if (x<0) x=0; + if (y >= rect.bottom) y=rect.bottom-1; + if (y<0) y=0; + + // make it screen absolute + cur.x = x; + cur.y = y; + if (!(*pClientToScreen)(dxw.GethWnd(), &cur)) { + OutTraceE("ClientToScreen(%x) ERROR %d at %d\n", dxw.GethWnd(), GetLastError(), __LINE__); + return 0; + } + x = cur.x; + y = cur.y; + } + + res=0; + if (pSetCursorPos) res=(*pSetCursorPos)(x,y); + + OutTraceC("SetCursorPos: res=%x XY=(%d,%d)->(%d,%d)\n",res, PrevX, PrevY, x, y); + return res; +} + +BOOL WINAPI extPeekMessage(LPMSG lpMsg, HWND hwnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg) +{ + BOOL res; + + res=(*pPeekMessage)(lpMsg, hwnd, 0, 0, (wRemoveMsg & 0x000F)); + + OutTraceW("PeekMessage: ANY lpmsg=%x hwnd=%x filter=(%x-%x) remove=%x(%s) msg=%x(%s) wparam=%x, lparam=%x pt=(%d,%d) res=%x\n", + lpMsg, lpMsg->hwnd, wMsgFilterMin, wMsgFilterMax, wRemoveMsg, ExplainPeekRemoveMsg(wRemoveMsg), + lpMsg->message, ExplainWinMessage(lpMsg->message & 0xFFFF), + lpMsg->wParam, lpMsg->lParam, lpMsg->pt.x, lpMsg->pt.y, res); + + return res; +} + +BOOL WINAPI extClientToScreen(HWND hwnd, LPPOINT lppoint) +{ + // v2.02.10: fully revised to handle scaled windows + BOOL res; + + OutTraceB("ClientToScreen: hwnd=%x hWnd=%x FullScreen=%x point=(%d,%d)\n", + hwnd, dxw.GethWnd(), dxw.IsFullScreen(), lppoint->x, lppoint->y); + if (lppoint && dxw.IsFullScreen()){ + *lppoint = dxw.AddCoordinates(*lppoint, dxw.ClientOffset(hwnd)); + OutTraceB("ClientToScreen: FIXED point=(%d,%d)\n", lppoint->x, lppoint->y); + res=TRUE; + } + else { + res=(*pClientToScreen)(hwnd, lppoint); + } + return res; +} + +BOOL WINAPI extScreenToClient(HWND hwnd, LPPOINT lppoint) +{ + // v2.02.10: fully revised to handle scaled windows + BOOL res; + OutTraceB("ScreenToClient: hwnd=%x hWnd=%x FullScreen=%x point=(%d,%d)\n", + hwnd, dxw.GethWnd(), dxw.IsFullScreen(), lppoint->x, lppoint->y); + + if (lppoint && (lppoint->x == -32000) && (lppoint->y == -32000)) return 1; + + if (lppoint && dxw.IsFullScreen()){ + *lppoint = dxw.SubCoordinates(*lppoint, dxw.ClientOffset(hwnd)); + OutTraceB("ScreenToClient: FIXED point=(%d,%d)\n", lppoint->x, lppoint->y); + res=TRUE; + } + else { + res=(*pScreenToClient)(hwnd, lppoint); + } + return res; +} + +BOOL WINAPI extGetClientRect(HWND hwnd, LPRECT lpRect) +{ + BOOL ret; + OutTraceB("GetClientRect: whnd=%x FullScreen=%x\n", hwnd, dxw.IsFullScreen()); + + if(!lpRect) return 0; + + // proxed call + ret=(*pGetClientRect)(hwnd, lpRect); + if(!ret) { + OutTraceE("GetClientRect: ERROR hwnd=%x err=%d at %d\n", hwnd, GetLastError(), __LINE__); + return ret; + } + OutTraceB("GetClientRect: actual rect=(%d,%d)-(%d,%d)\n", lpRect->left, lpRect->top, lpRect->right, lpRect->bottom); + + if (dxw.IsDesktop(hwnd)){ + *lpRect = dxw.GetScreenRect(); + OutTraceB("GetClientRect: desktop rect=(%d,%d)-(%d,%d)\n", lpRect->left, lpRect->top, lpRect->right, lpRect->bottom); + } + else + if (dxw.IsFullScreen()){ + *lpRect=dxw.GetClientRect(*lpRect); + OutTraceB("GetClientRect: fixed rect=(%d,%d)-(%d,%d)\n", lpRect->left, lpRect->top, lpRect->right, lpRect->bottom); + } + return ret; +} + +BOOL WINAPI extGetWindowRect(HWND hwnd, LPRECT lpRect) +{ + BOOL ret; + OutTraceB("GetWindowRect: hwnd=%x hWnd=%x FullScreen=%x\n", hwnd, dxw.GethWnd(), dxw.IsFullScreen()); + ret=(*pGetWindowRect)(hwnd, lpRect); + if(!ret) { + OutTraceE("GetWindowRect: GetWindowRect hwnd=%x error %d at %d\n", hwnd, GetLastError(), __LINE__); + return ret; + } + OutTraceB("GetWindowRect: rect=(%d,%d)-(%d,%d)\n", lpRect->left, lpRect->top, lpRect->right, lpRect->bottom); + + // minimized windows behaviour + if((lpRect->left == -32000)||(lpRect->top == -32000)) return ret; + + if (dxw.IsDesktop(hwnd)){ + // to avoid keeping track of window frame + *lpRect = dxw.GetScreenRect(); + OutTraceB("GetWindowRect: desktop rect=(%d,%d)-(%d,%d)\n", lpRect->left, lpRect->top, lpRect->right, lpRect->bottom); + } + else + if (dxw.IsFullScreen()){ + *lpRect=dxw.GetWindowRect(*lpRect); + + // Diablo fix: it retrieves coordinates for the explorer window, that are as big as the real desktop!!! + if(lpRect->left < 0) lpRect->left=0; + if(lpRect->right > (LONG)dxw.GetScreenWidth()) lpRect->right=dxw.GetScreenWidth(); + if(lpRect->top < 0) lpRect->top=0; + if(lpRect->bottom > (LONG)dxw.GetScreenHeight()) lpRect->bottom=dxw.GetScreenHeight(); + + OutTraceB("GetWindowRect: fixed rect=(%d,%d)-(%d,%d)\n", lpRect->left, lpRect->top, lpRect->right, lpRect->bottom); + } + + return ret; +} + +int WINAPI extMapWindowPoints(HWND hWndFrom, HWND hWndTo, LPPOINT lpPoints, UINT cPoints) +{ + UINT pi; + int ret; + // a rarely used API, but responsible for a painful headache: needs hooking for "Commandos 2", "Alien Nations". + + OutTraceD("MapWindowPoints: hWndFrom=%x%s hWndTo=%x%s cPoints=%d FullScreen=%x\n", + hWndFrom, dxw.IsDesktop(hWndFrom)?"(DESKTOP)":"", + hWndTo, dxw.IsDesktop(hWndTo)?"(DESKTOP)":"", + cPoints, dxw.IsFullScreen()); + if(IsDebug){ + OutTrace("Points: "); + for(pi=0; pi>16, ret&0x0000FFFF); + return ret; +} + +HWND WINAPI extGetDesktopWindow(void) +{ + // V2.1.73: correct ??? + HWND res; + + OutTraceD("GetDesktopWindow: FullScreen=%x\n", dxw.IsFullScreen()); + if (dxw.IsFullScreen()){ + OutTraceD("GetDesktopWindow: returning main window hwnd=%x\n", dxw.GethWnd()); + return dxw.GethWnd(); + } + else{ + res=(*pGetDesktopWindow)(); + OutTraceD("GetDesktopWindow: returning desktop window hwnd=%x\n", res); + return res; + } +} + +int WINAPI extGetSystemMetrics(int nindex) +{ + HRESULT res; + + res=(*pGetSystemMetrics)(nindex); + OutTraceD("GetSystemMetrics: index=%x(%s), res=%d\n", nindex, ExplainsSystemMetrics(nindex), res); + + // if you have a bypassed setting, use it first! + if(pSetDevMode){ + switch(nindex){ + case SM_CXFULLSCREEN: + case SM_CXSCREEN: + case SM_CXVIRTUALSCREEN: // v2.02.31 + res = pSetDevMode->dmPelsWidth; + OutTraceD("GetDeviceCaps: fix HORZRES cap=%d\n", res); + return res; + case SM_CYFULLSCREEN: + case SM_CYSCREEN: + case SM_CYVIRTUALSCREEN: // v2.02.31 + res = pSetDevMode->dmPelsHeight; + OutTraceD("GetDeviceCaps: fix VERTRES cap=%d\n", res); + return res; + } + } + + switch(nindex){ + case SM_CXFULLSCREEN: + case SM_CXSCREEN: + case SM_CXVIRTUALSCREEN: // v2.02.31 + res= dxw.GetScreenWidth(); + OutTraceD("GetSystemMetrics: fix SM_CXSCREEN=%d\n", res); + break; + case SM_CYFULLSCREEN: + case SM_CYSCREEN: + case SM_CYVIRTUALSCREEN: // v2.02.31 + res= dxw.GetScreenHeight(); + OutTraceD("GetSystemMetrics: fix SM_CYSCREEN=%d\n", res); + break; + case SM_CMONITORS: + if((dxw.dwFlags2 & HIDEMULTIMONITOR) && res>1) { + res=1; + OutTraceD("GetSystemMetrics: fix SM_CMONITORS=%d\n", res); + } + break; + } + + return res; +} + +ATOM WINAPI extRegisterClassExA(WNDCLASSEX *lpwcx) +{ + OutTraceD("RegisterClassEx: PROXED ClassName=%s style=%x(%s)\n", + lpwcx->lpszClassName, lpwcx->style, ExplainStyle(lpwcx->style)); + return (*pRegisterClassExA)(lpwcx); +} + +static HWND WINAPI extCreateWindowCommon( + LPCTSTR ApiName, + BOOL WideChar, + DWORD dwExStyle, + void *lpClassName, + void *lpWindowName, + DWORD dwStyle, + int x, + int y, + int nWidth, + int nHeight, + HWND hWndParent, + HMENU hMenu, + HINSTANCE hInstance, + LPVOID lpParam) +{ + HWND wndh; + WNDPROC pWindowProc; + BOOL isValidHandle=TRUE; + + // no maximized windows in any case + if (dxw.dwFlags1 & PREVENTMAXIMIZE){ + OutTraceD("%s: handling PREVENTMAXIMIZE mode\n", ApiName); + dwStyle &= ~WS_MAXIMIZE; + //dwStyle &= ~(WS_MAXIMIZE | WS_POPUP); + //dwExStyle &= ~WS_EX_TOPMOST; + } + + // v2.1.92: fixes size & position for auxiliary big window, often used + // for intro movies etc. : needed for ...... + // evidently, this was supposed to be a fullscreen window.... + // v2.1.100: fixes for "The Grinch": this game creates a new main window for OpenGL + // rendering using CW_USEDEFAULT placement and 800x600 size while the previous + // main win was 640x480 only! + // v2.02.13: if it's a WS_CHILD window, don't reposition the x,y, placement for BIG win. + // v2.02.30: fix (Fable - lost chapters) Fable creates a bigger win with negative x,y coordinates. + if ( + ( + ((x<=0)&&(y<=0)) || ((x==CW_USEDEFAULT)&&(y==CW_USEDEFAULT)) + ) + && + ((nWidth>=(int)dxw.GetScreenWidth())&&(nHeight>=(int)dxw.GetScreenHeight())) + && + !(dwExStyle & WS_EX_CONTROLPARENT) // Diablo fix + && + !(dwStyle & WS_CHILD) // Diablo fix + ){ + RECT screen; + POINT upleft = {0,0}; + + // v2.02.30: fix (Fable - lost chapters) + if(nWidth==CW_USEDEFAULT) nWidth=dxw.GetScreenWidth(); + if(nHeight==CW_USEDEFAULT) nHeight=dxw.GetScreenHeight(); + + // update virtual screen size if it has grown + dxw.SetScreenSize(nWidth, nHeight); + // inserted some checks here, since the main window could be destroyed + // or minimized (see "Jedi Outcast") so that you may get a dangerous + // zero size. In this case, better renew the hWnd assignement and its coordinates. + do { // fake loop + isValidHandle = FALSE; + if (!(*pGetClientRect)(dxw.GethWnd(),&screen)) break; + if (!(*pClientToScreen)(dxw.GethWnd(),&upleft)) break; + if (screen.right==0 || screen.bottom==0) break; + isValidHandle = TRUE; + } while(FALSE); + if (isValidHandle){ // use parent's coordinates + if (!(dwStyle & WS_CHILD)){ + x=upleft.x; + y=upleft.y; + } + nWidth=screen.right; + nHeight=screen.bottom; + OutTraceD("%s: fixed BIG win pos=(%d,%d) size=(%d,%d)\n", ApiName, x, y, nWidth, nHeight); + } + else { + // invalid parent coordinates: use initial placement, but leave the size. + // should also fix the window style and compensate for borders here? + // if (!(dwStyle & WS_CHILD)){ // commented out: can't be! see if condition + x=dxw.iPosX; + y=dxw.iPosY; + //} + nWidth=dxw.iSizX; + nHeight=dxw.iSizY; + OutTraceD("%s: renewed BIG win pos=(%d,%d) size=(%d,%d)\n", ApiName, x, y, nWidth, nHeight); + } + dxw.SetFullScreen(TRUE); + if(dxw.Coordinates==DXW_DESKTOP_WORKAREA){ + RECT workarea; + SystemParametersInfo(SPI_GETWORKAREA, NULL, &workarea, 0); + x=0; + y=0; + nWidth=workarea.right; + nHeight=workarea.bottom; + dwStyle=0; + OutTraceD("%s: WORKAREA win pos=(%d,%d) size=(%d,%d)\n", ApiName, x, y, nWidth, nHeight); + } + else if(dxw.Coordinates==DXW_DESKTOP_FULL){ + RECT workarea; + (*pGetClientRect)((*pGetDesktopWindow)(), &workarea); + x=0; + y=0; + nWidth=workarea.right; + nHeight=workarea.bottom; + dwStyle=0; + OutTraceD("%s: FULLDESKTOP win pos=(%d,%d) size=(%d,%d)\n", ApiName, x, y, nWidth, nHeight); + } + } + + if(!dxw.IsFullScreen()){ // v2.1.63: needed for "Monster Truck Madness" + if(WideChar) + wndh= (*pCreateWindowExW)(dwExStyle, (LPCWSTR)lpClassName, (LPCWSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); + else + wndh= (*pCreateWindowExA)(dwExStyle, (LPCSTR)lpClassName, (LPCSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); + OutTraceD("%s: windowed mode ret=%x\n", ApiName, wndh); + return wndh; + } + + // tested on Gangsters: coordinates must be window-relative!!! + // Age of Empires.... + if (dwStyle & WS_CHILD){ + dxw.MapClient(&x, &y, &nWidth, &nHeight); + OutTraceD("%s: fixed WS_CHILD pos=(%d,%d) size=(%d,%d)\n", + ApiName, x, y, nWidth, nHeight); + } + // needed for Diablo, that creates a new control parent window that must be + // overlapped to the directdraw surface. + else if (dwExStyle & WS_EX_CONTROLPARENT){ + dxw.MapWindow(&x, &y, &nWidth, &nHeight); + OutTraceD("%s: fixed WS_EX_CONTROLPARENT pos=(%d,%d) size=(%d,%d)\n", + ApiName, x, y, nWidth, nHeight); + } + + OutTraceB("%s: fixed pos=(%d,%d) size=(%d,%d) Style=%x(%s) ExStyle=%x(%s)\n", + ApiName, x, y, nWidth, nHeight, dwStyle, ExplainStyle(dwStyle), dwExStyle, ExplainExStyle(dwExStyle)); + + if(WideChar) + wndh= (*pCreateWindowExW)(dwExStyle, (LPCWSTR)lpClassName, (LPCWSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); + else + wndh= (*pCreateWindowExA)(dwExStyle, (LPCSTR)lpClassName, (LPCSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); + if (wndh==(HWND)NULL){ + OutTraceE("%s: ERROR err=%d Style=%x(%s) ExStyle=%x\n", + ApiName, GetLastError(), dwStyle, ExplainStyle(dwStyle), dwExStyle); + return wndh; + } + + if ((!isValidHandle) && dxw.IsFullScreen()) { + dxw.SethWnd(wndh); + extern void AdjustWindowPos(HWND, DWORD, DWORD); + (*pSetWindowLong)(wndh, GWL_STYLE, (dxw.dwFlags2 & MODALSTYLE) ? 0 : WS_OVERLAPPEDWINDOW); + (*pSetWindowLong)(wndh, GWL_EXSTYLE, 0); + OutTraceD("%s: hwnd=%x, set style=WS_OVERLAPPEDWINDOW extstyle=0\n", ApiName, wndh); + AdjustWindowPos(wndh, nWidth, nHeight); + (*pShowWindow)(wndh, SW_SHOWNORMAL); + } + + if ((dxw.dwFlags1 & FIXWINFRAME) && !(dwStyle & WS_CHILD)) + FixWindowFrame(wndh); + + // to do: handle inner child, and leave dialogue & modal child alone!!! + if ((dwStyle & WS_CHILD) && (dxw.dwFlags1 & HOOKCHILDWIN)){ + long res; + pWindowProc = (WNDPROC)(*pGetWindowLong)(wndh, GWL_WNDPROC); + OutTraceD("Hooking CHILD wndh=%x WindowProc %x->%x\n", wndh, pWindowProc, extChildWindowProc); + res=(*pSetWindowLong)(wndh, GWL_WNDPROC, (LONG)extChildWindowProc); + WhndStackPush(wndh, pWindowProc); + if(!res) OutTraceE("%s: SetWindowLong ERROR %x\n", ApiName, GetLastError()); + } + + OutTraceD("%s: ret=%x\n", ApiName, wndh); + return wndh; +} + +static LPCSTR ClassToStr(LPCSTR Class) +{ + static char AtomBuf[20+1]; + if(((DWORD)Class & 0xFFFF0000) == 0){ + sprintf(AtomBuf, "ATOM(%X)", Class); + return AtomBuf; + } + return Class; +} + +// to do: implement and use ClassToWStr() for widechar call + +HWND WINAPI extCreateWindowExW( + DWORD dwExStyle, + LPCWSTR lpClassName, + LPCWSTR lpWindowName, + DWORD dwStyle, + int x, + int y, + int nWidth, + int nHeight, + HWND hWndParent, + HMENU hMenu, + HINSTANCE hInstance, + LPVOID lpParam) +{ + OutTraceD("CreateWindowExW: class=\"%ls\" wname=\"%ls\" pos=(%d,%d) size=(%d,%d) Style=%x(%s) ExStyle=%x(%s)\n", + lpClassName, lpWindowName, x, y, nWidth, nHeight, + dwStyle, ExplainStyle(dwStyle), dwExStyle, ExplainExStyle(dwExStyle)); + if(IsDebug) OutTrace("CreateWindowExW: DEBUG screen=(%d,%d)\n", dxw.GetScreenWidth(), dxw.GetScreenHeight()); + + return extCreateWindowCommon("CreateWindowExW", TRUE, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); +} + +// GHO: pro Diablo +HWND WINAPI extCreateWindowExA( + DWORD dwExStyle, + LPCTSTR lpClassName, + LPCTSTR lpWindowName, + DWORD dwStyle, + int x, + int y, + int nWidth, + int nHeight, + HWND hWndParent, + HMENU hMenu, + HINSTANCE hInstance, + LPVOID lpParam) +{ + OutTraceD("CreateWindowExA: class=\"%s\" wname=\"%s\" pos=(%d,%d) size=(%d,%d) Style=%x(%s) ExStyle=%x(%s)\n", + ClassToStr(lpClassName), lpWindowName, x, y, nWidth, nHeight, + dwStyle, ExplainStyle(dwStyle), dwExStyle, ExplainExStyle(dwExStyle)); + if(IsDebug) OutTrace("CreateWindowExA: DEBUG screen=(%d,%d)\n", dxw.GetScreenWidth(), dxw.GetScreenHeight()); + + return extCreateWindowCommon("CreateWindowExA", false, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); +} + +LRESULT WINAPI extCallWindowProc(WNDPROC lpPrevWndFunc, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + // v2.02.30: fix (Imperialism II): apply to main window only !!! + HRESULT res; + + res = -1; + if(hwnd == dxw.GethWnd()) res=FixWindowProc("CallWindowProc", hwnd, Msg, wParam, &lParam); + + if (res==(HRESULT)-1) + return (*pCallWindowProc)(lpPrevWndFunc, hwnd, Msg, wParam, lParam); + else + return res; +} + +LRESULT WINAPI extDefWindowProc(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam) +{ + // v2.02.30: fix (Imperialism II): apply to main window only !!! + HRESULT res; + + res = -1; + if(hwnd == dxw.GethWnd()) res=FixWindowProc("DefWindowProc", hwnd, Msg, wParam, &lParam); + + if (res==(HRESULT)-1) + return (*pDefWindowProc)(hwnd, Msg, wParam, lParam); + else + return res; +} + +int WINAPI extFillRect(HDC hdc, const RECT *lprc, HBRUSH hbr) +{ + int res; + RECT rc; + OutTraceD("FillRect: hdc=%x hbrush=%x rect=(%d,%d)-(%d,%d)\n", hdc, hbr, lprc->left, lprc->top, lprc->right, lprc->bottom); + + // when not in fullscreen mode, just proxy the call + if(!dxw.IsFullScreen()) return (*pFillRect)(hdc, lprc, hbr); + + memcpy(&rc, lprc, sizeof(rc)); + if(OBJ_DC == GetObjectType(hdc)){ + if(rc.left < 0) rc.left = 0; + if(rc.top < 0) rc.top = 0; + if((DWORD)rc.right > dxw.GetScreenWidth()) rc.right = dxw.GetScreenWidth(); + if((DWORD)rc.bottom > dxw.GetScreenHeight()) rc.bottom = dxw.GetScreenHeight(); + dxw.MapClient(&rc); + OutTraceD("FillRect: fixed rect=(%d,%d)-(%d,%d)\n", rc.left, rc.top, rc.right, rc.bottom); + } + + res=(*pFillRect)(hdc, &rc, hbr); + return res; +} + +int WINAPI extFrameRect(HDC hdc, const RECT *lprc, HBRUSH hbr) +{ + int res; + RECT rc; + OutTraceD("FrameRect: hdc=%x hbrush=%x rect=(%d,%d)-(%d,%d)\n", hdc, hbr, lprc->left, lprc->top, lprc->right, lprc->bottom); + + // when not in fullscreen mode, just proxy the call + if(!dxw.IsFullScreen()) return (*pFrameRect)(hdc, lprc, hbr); + + memcpy(&rc, lprc, sizeof(rc)); + if(OBJ_DC == GetObjectType(hdc)){ + if(rc.left < 0) rc.left = 0; + if(rc.top < 0) rc.top = 0; + if((DWORD)rc.right > dxw.GetScreenWidth()) rc.right = dxw.GetScreenWidth(); + if((DWORD)rc.bottom > dxw.GetScreenHeight()) rc.bottom = dxw.GetScreenHeight(); + dxw.MapClient(&rc); + OutTraceD("FrameRect: fixed rect=(%d,%d)-(%d,%d)\n", rc.left, rc.top, rc.right, rc.bottom); + } + + res=(*pFrameRect)(hdc, &rc, hbr); + return res; +} + +BOOL WINAPI extClipCursor(RECT *lpRectArg) +{ + // reference: hooking and setting ClipCursor is mandatori in "Emergency: Fighters for Life" + // where the application expects the cursor to be moved just in a inner rect within the + // main window surface. + + BOOL res; + RECT *lpRect; + RECT Rect; + + if(IsTraceC){ + if (lpRectArg) + OutTrace("ClipCursor: rect=(%d,%d)-(%d,%d)\n", + lpRectArg->left,lpRectArg->top,lpRectArg->right,lpRectArg->bottom); + else + OutTrace("ClipCursor: rect=(NULL)\n"); + } + + if (!(dxw.dwFlags1 & ENABLECLIPPING)) return 1; + + if(lpRectArg){ + Rect=*lpRectArg; + lpRect=&Rect; + } + else + lpRect=NULL; + + if(dxw.dwFlags1 & MODIFYMOUSE){ + // save desired clip region + if (lpRect) { + ClipRegion=*lpRectArg; + lpClipRegion=&ClipRegion; + } + else + lpClipRegion=NULL; + + *lpRect=dxw.MapWindowRect(lpRect); + } + + if (pClipCursor) res=(*pClipCursor)(lpRect); + OutTraceD("ClipCursor: rect=(%d,%d)-(%d,%d) res=%x\n", + lpRect->left,lpRect->top,lpRect->right,lpRect->bottom, res); + + return TRUE; +} + +BOOL WINAPI extGetClipCursor(LPRECT lpRect) +{ + // v2.1.93: if ENABLECLIPPING, return the saved clip rect coordinates + + BOOL ret; + + // proxy.... + if (!(dxw.dwFlags1 & ENABLECLIPPING)) { + ret=(*pGetClipCursor)(lpRect); + if(IsTraceD){ + if (lpRect) + OutTrace("GetClipCursor: PROXED rect=(%d,%d)-(%d,%d) ret=%d\n", + lpRect->left,lpRect->top,lpRect->right,lpRect->bottom, ret); + else + OutTrace("GetClipCursor: PROXED rect=(NULL) ret=%d\n", ret); + } + return ret; + } + + if(lpRect){ + if(lpClipRegion) + *lpRect=ClipRegion; + else{ + lpRect->top = lpRect->left = 0; + lpRect->right = dxw.GetScreenWidth(); + lpRect->bottom = dxw.GetScreenHeight(); + } + OutTraceD("GetClipCursor: rect=(%d,%d)-(%d,%d) ret=%d\n", + lpRect->left,lpRect->top,lpRect->right,lpRect->bottom, TRUE); + } + + return TRUE; +} + +LONG WINAPI extEnumDisplaySettings(LPCTSTR lpszDeviceName, DWORD iModeNum, DEVMODE *lpDevMode) +{ + OutTraceD("EnumDisplaySettings: Devicename=%s ModeNum=%x\n", lpszDeviceName, iModeNum); + if(pSetDevMode && iModeNum==ENUM_CURRENT_SETTINGS){ + lpDevMode=pSetDevMode; + return 1; + } + else + return (*pEnumDisplaySettings)(lpszDeviceName, iModeNum, lpDevMode); +} + +LONG WINAPI extChangeDisplaySettings(DEVMODE *lpDevMode, DWORD dwflags) +{ + if(IsTraceD){ + OutTrace("ChangeDisplaySettings: lpDevMode=%x flags=%x", lpDevMode, dwflags); + if (lpDevMode) OutTrace(" fields=%x(%s) size=(%d x %d) bpp=%d", + lpDevMode->dmFields, ExplainDevModeFields(lpDevMode->dmFields), + lpDevMode->dmPelsWidth, lpDevMode->dmPelsHeight, lpDevMode->dmBitsPerPel); + OutTrace("\n"); + } + + return MyChangeDisplaySettings("ChangeDisplaySettings", lpDevMode, dwflags); +} + +LONG WINAPI extChangeDisplaySettingsEx(LPCTSTR lpszDeviceName, DEVMODE *lpDevMode, HWND hwnd, DWORD dwflags, LPVOID lParam) +{ + if(IsTraceD){ + OutTrace("ChangeDisplaySettingsEx: DeviceName=%s lpDevMode=%x flags=%x", lpszDeviceName, lpDevMode, dwflags); + if (lpDevMode) OutTrace(" size=(%d x %d) bpp=%d", + lpDevMode->dmPelsWidth, lpDevMode->dmPelsHeight, lpDevMode->dmBitsPerPel); + OutTrace("\n"); + } + + return MyChangeDisplaySettings("ChangeDisplaySettingsEx", lpDevMode, dwflags); +} + +HDC WINAPI extGDIGetDC(HWND hwnd) +{ + HDC ret; + HWND lochwnd; + + OutTraceD("GDI.GetDC: hwnd=%x\n", hwnd); + lochwnd=hwnd; + if (dxw.IsRealDesktop(hwnd)) { + OutTraceD("GDI.GetDC: desktop remapping hwnd=%x->%x\n", hwnd, dxw.GethWnd()); + lochwnd=dxw.GethWnd(); + } + + if(dxw.dwFlags3 & EMULATEDC) + ret=dxw.AcquireEmulatedDC(lochwnd); + else + ret=(*pGDIGetDC)(lochwnd); + + if(ret){ + OutTraceD("GDI.GetDC: hwnd=%x ret=%x\n", lochwnd, ret); + } + else{ + int err; + err=GetLastError(); + OutTraceE("GDI.GetDC ERROR: hwnd=%x err=%d at %d\n", lochwnd, err, __LINE__); + if((err==ERROR_INVALID_WINDOW_HANDLE) && (lochwnd!=hwnd)){ + ret=(*pGDIGetDC)(hwnd); + if(ret) + OutTraceD("GDI.GetDC: hwnd=%x ret=%x\n", hwnd, ret); + else + OutTraceE("GDI.GetDC ERROR: hwnd=%x err=%d at %d\n", hwnd, GetLastError(), __LINE__); + } + } + + return ret; +} + +HDC WINAPI extGDIGetDCEx(HWND hwnd, HRGN hrgnClip, DWORD flags) +{ + MessageBox(0, "GetDCEx", "to fix", MB_OK | MB_ICONEXCLAMATION); + return (HDC)NULL; +} + +HDC WINAPI extGDIGetWindowDC(HWND hwnd) +{ + HDC ret; + HWND lochwnd; + OutTraceD("GDI.GetWindowDC: hwnd=%x\n", hwnd); + lochwnd=hwnd; + if (dxw.IsRealDesktop(hwnd)) { + OutTraceD("GDI.GetWindowDC: desktop remapping hwnd=%x->%x\n", hwnd, dxw.GethWnd()); + lochwnd=dxw.GethWnd(); + } + + ret=(*pGDIGetWindowDC)(lochwnd); + + if(ret){ + OutTraceD("GDI.GetWindowDC: hwnd=%x ret=%x\n", lochwnd, ret); + } + else{ + int err; + err=GetLastError(); + OutTraceE("GDI.GetWindowDC ERROR: hwnd=%x err=%d at %d\n", lochwnd, err, __LINE__); + if((err==ERROR_INVALID_WINDOW_HANDLE) && (lochwnd!=hwnd)){ + ret=(*pGDIGetWindowDC)(hwnd); + if(ret) + OutTraceD("GDI.GetWindowDC: hwnd=%x ret=%x\n", hwnd, ret); + else + OutTraceE("GDI.GetWindowDC ERROR: hwnd=%x err=%d at %d\n", hwnd, GetLastError(), __LINE__); + } + } + return ret; +} + +int WINAPI extGDIReleaseDC(HWND hwnd, HDC hDC) +{ + int res; + + OutTraceD("GDI.ReleaseDC: hwnd=%x hdc=%x\n", hwnd, hDC); + if (dxw.IsRealDesktop(hwnd)) hwnd=dxw.GethWnd(); + + if(dxw.dwFlags3 & EMULATEDC) + res=dxw.ReleaseEmulatedDC(hwnd); + else + res=(*pGDIReleaseDC)(hwnd, hDC); + + if (!res) OutTraceE("GDI.ReleaseDC ERROR: err=%d at %d\n", GetLastError(), __LINE__); + return(res); +} + +HDC WINAPI extBeginPaint(HWND hwnd, LPPAINTSTRUCT lpPaint) +{ + HDC hdc; + extern HRESULT WINAPI extGetDC(LPDIRECTDRAWSURFACE, HDC FAR *); + + // proxy part ... + OutTraceD("GDI.BeginPaint: hwnd=%x lpPaint=%x FullScreen=%x\n", hwnd, lpPaint, dxw.IsFullScreen()); + hdc=(*pBeginPaint)(hwnd, lpPaint); + + // if not in fullscreen mode, that's all! + if(!dxw.IsFullScreen()) return hdc; + + if(dxw.dwFlags3 & EMULATEDC) return dxw.AcquireEmulatedDC(hwnd); + + // on MAPGDITOPRIMARY, return the PrimHDC handle instead of the window DC + if(dxw.dwFlags1 & MAPGDITOPRIMARY) { + if(pGetDC && dxw.lpDDSPrimHDC){ + extGetDC(dxw.lpDDSPrimHDC,&PrimHDC); + OutTraceD("GDI.BeginPaint: redirect hdc=%x -> PrimHDC=%x\n", hdc, PrimHDC); + hdc=PrimHDC; + } + else { + OutTraceD("GDI.BeginPaint: hdc=%x\n", hdc); + } + } + + // on CLIENTREMAPPING, resize the paint area to virtual screen size + if(dxw.dwFlags1 & CLIENTREMAPPING){ + lpPaint->rcPaint.top=0; + lpPaint->rcPaint.left=0; + lpPaint->rcPaint.right=dxw.GetScreenWidth(); + lpPaint->rcPaint.bottom=dxw.GetScreenHeight(); + } + + return hdc; +} + +BOOL WINAPI extEndPaint(HWND hwnd, const PAINTSTRUCT *lpPaint) +{ + BOOL ret; + HRESULT WINAPI extReleaseDC(LPDIRECTDRAWSURFACE lpdds, HDC FAR hdc); + + OutTraceD("GDI.EndPaint: hwnd=%x lpPaint=%x\n", hwnd, lpPaint); + + if((dxw.dwFlags3 & EMULATEDC) && dxw.IsFullScreen()){ + ret=dxw.ReleaseEmulatedDC(hwnd); + ret=(*pEndPaint)(hwnd, lpPaint); + OutTraceD("GDI.EndPaint: hwnd=%x ret=%x\n", hwnd, ret); + if(!ret) OutTraceE("GDI.EndPaint ERROR: err=%d at %d\n", GetLastError(), __LINE__); + return ret; + } + + // proxy part ... + ret=(*pEndPaint)(hwnd, lpPaint); + OutTraceD("GDI.EndPaint: hwnd=%x ret=%x\n", hwnd, ret); + if(!ret) OutTraceE("GDI.EndPaint ERROR: err=%d at %d\n", GetLastError(), __LINE__); + + //return ret; + + // if not in fullscreen mode, that's all! + if(!dxw.IsFullScreen()) return ret; + + // v2.02.09: on MAPGDITOPRIMARY, release the PrimHDC handle + if(dxw.dwFlags1 & MAPGDITOPRIMARY) { + if(pReleaseDC && dxw.lpDDSPrimHDC){ + extReleaseDC(dxw.lpDDSPrimHDC, PrimHDC); + OutTraceD("GDI.EndPaint: released hdc=%x\n", PrimHDC); + } + } + + return ret; +} + +HWND WINAPI extCreateDialogIndirectParam(HINSTANCE hInstance, LPCDLGTEMPLATE lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM lParamInit) +{ + HWND RetHWND; + isWithinDialog=TRUE; + OutTraceD("CreateDialogIndirectParam: hInstance=%x lpTemplate=%s hWndParent=%x lpDialogFunc=%x lParamInit=%x\n", + hInstance, "tbd", hWndParent, lpDialogFunc, lParamInit); + if(hWndParent==NULL) hWndParent=dxw.GethWnd(); + RetHWND=(*pCreateDialogIndirectParam)(hInstance, lpTemplate, hWndParent, lpDialogFunc, lParamInit); + + WhndStackPush(RetHWND, (WNDPROC)lpDialogFunc); + if(!(*pSetWindowLong)(RetHWND, DWL_DLGPROC, (LONG)extDialogWindowProc)) + OutTraceE("SetWindowLong: ERROR err=%d at %d\n", GetLastError(), __LINE__); + + OutTraceD("CreateDialogIndirectParam: hwnd=%x\n", RetHWND); + isWithinDialog=FALSE; + //if (IsDebug) EnumChildWindows(RetHWND, (WNDENUMPROC)TraceChildWin, (LPARAM)RetHWND); + return RetHWND; +} + +HWND WINAPI extCreateDialogParam(HINSTANCE hInstance, LPCTSTR lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM lParamInit) +{ + HWND RetHWND; + isWithinDialog=TRUE; + OutTraceD("CreateDialogParam: hInstance=%x lpTemplateName=%s hWndParent=%x lpDialogFunc=%x lParamInit=%x\n", + hInstance, "tbd", hWndParent, lpDialogFunc, lParamInit); + if(hWndParent==NULL) hWndParent=dxw.GethWnd(); + RetHWND=(*pCreateDialogParam)(hInstance, lpTemplateName, hWndParent, lpDialogFunc, lParamInit); + + WhndStackPush(RetHWND, (WNDPROC)lpDialogFunc); + if(!(*pSetWindowLong)(RetHWND, DWL_DLGPROC, (LONG)extDialogWindowProc)) + OutTraceE("SetWindowLong: ERROR err=%d at %d\n", GetLastError(), __LINE__); + + OutTraceD("CreateDialogParam: hwnd=%x\n", RetHWND); + isWithinDialog=FALSE; + //if (IsDebug) EnumChildWindows(RetHWND, (WNDENUMPROC)TraceChildWin, (LPARAM)RetHWND); + return RetHWND; +} + +BOOL WINAPI extMoveWindow(HWND hwnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint) +{ + BOOL ret; + OutTraceD("MoveWindow: hwnd=%x xy=(%d,%d) size=(%d,%d) repaint=%x indialog=%x fullscreen=%x\n", + hwnd, X, Y, nWidth, nHeight, bRepaint, isWithinDialog, dxw.IsFullScreen()); + + if(dxw.IsDesktop(hwnd)){ + // v2.1.93: happens in "Emergency Fighters for Life" ... + // what is the meaning of this? is it related to video stretching? + static BOOL MovedAlready=FALSE; + if(MovedAlready){ + OutTraceD("MoveWindow: prevent moving desktop win\n"); + return TRUE; + } + else { + WINDOWPLACEMENT wp; + MovedAlready=TRUE; + OutTraceD("MoveWindow: initialize desktop win at pos=(%d,%d) size=(%dx%d)\n", dxw.iPosX, dxw.iPosY, dxw.iSizX, dxw.iSizY); + ret=(*pMoveWindow)(hwnd, dxw.iPosX, dxw.iPosY, dxw.iSizX, dxw.iSizY, bRepaint); + if(!ret) OutTraceE("MoveWindow ERROR: err=%d at %d\n", GetLastError(), __LINE__); + memset(&wp, 0, sizeof(wp)); + wp.length=sizeof(wp); + if(!GetWindowPlacement(hwnd, &wp)) OutTraceE("GetWindowPlacement ERROR: err=%d at %d\n", GetLastError(), __LINE__); + wp.rcNormalPosition.left=dxw.iPosX; + wp.rcNormalPosition.top=dxw.iPosY; + wp.rcNormalPosition.right=dxw.iPosX+dxw.iSizX; + wp.rcNormalPosition.bottom=dxw.iPosY+dxw.iSizY; + if(!SetWindowPlacement(hwnd, &wp)) OutTraceE("SetWindowPlacement ERROR: err=%d at %d\n", GetLastError(), __LINE__); + return TRUE; + } + } + + if((hwnd==dxw.GethWnd()) || (hwnd==dxw.hParentWnd)){ + static BOOL MovedAlready=FALSE; + if(MovedAlready){ + OutTraceD("MoveWindow: prevent moving main win\n"); + return TRUE; + } + else { + WINDOWPLACEMENT wp; + MovedAlready=TRUE; + OutTraceD("MoveWindow: initialize main win at pos=(%d,%d) size=(%dx%d)\n", dxw.iPosX, dxw.iPosY, dxw.iSizX, dxw.iSizY); + ret=(*pMoveWindow)(hwnd, dxw.iPosX, dxw.iPosY, dxw.iSizX, dxw.iSizY, bRepaint); + if(!ret) OutTraceE("MoveWindow ERROR: err=%d at %d\n", GetLastError(), __LINE__); + memset(&wp, 0, sizeof(wp)); + wp.length=sizeof(wp); + if(!GetWindowPlacement(hwnd, &wp)) OutTraceE("GetWindowPlacement ERROR: err=%d at %d\n", GetLastError(), __LINE__); + wp.rcNormalPosition.left=dxw.iPosX; + wp.rcNormalPosition.top=dxw.iPosY; + wp.rcNormalPosition.right=dxw.iPosX+dxw.iSizX; + wp.rcNormalPosition.bottom=dxw.iPosY+dxw.iSizY; + if(!SetWindowPlacement(hwnd, &wp)) OutTraceE("SetWindowPlacement ERROR: err=%d at %d\n", GetLastError(), __LINE__); + return TRUE; + } + } + + if (dxw.IsFullScreen()){ + POINT upleft={0,0}; + RECT client; + BOOL isChild; + (*pClientToScreen)(dxw.GethWnd(),&upleft); + (*pGetClientRect)(dxw.GethWnd(),&client); + if ((*pGetWindowLong)(hwnd, GWL_STYLE) & WS_CHILD){ + isChild=TRUE; + // child coordinate adjustement + X = (X * client.right) / dxw.GetScreenWidth(); + Y = (Y * client.bottom) / dxw.GetScreenHeight(); + nWidth = (nWidth * client.right) / dxw.GetScreenWidth(); + nHeight = (nHeight * client.bottom) / dxw.GetScreenHeight(); + } + else { + isChild=FALSE; + // regular win coordinate adjustement + X = upleft.x + (X * client.right) / dxw.GetScreenWidth(); + Y = upleft.y + (Y * client.bottom) / dxw.GetScreenHeight(); + nWidth = (nWidth * client.right) / dxw.GetScreenWidth(); + nHeight = (nHeight * client.bottom) / dxw.GetScreenHeight(); + } + OutTraceD("MoveWindow: DEBUG client=(%d,%d) screen=(%d,%d)\n", + client.right, client.bottom, dxw.GetScreenWidth(), dxw.GetScreenHeight()); + OutTraceD("MoveWindow: hwnd=%x child=%x relocated to xy=(%d,%d) size=(%d,%d)\n", + hwnd, isChild, X, Y, nWidth, nHeight); + } + else{ + if((X==0)&&(Y==0)&&(nWidth==dxw.GetScreenWidth())&&(nHeight==dxw.GetScreenHeight())){ + //if((X<=0)&&(Y<=0)&&(nWidth>=dxw.GetScreenWidth())&&(nHeight>=dxw.GetScreenHeight())){ + // evidently, this was supposed to be a fullscreen window.... + RECT screen; + POINT upleft = {0,0}; + (*pGetClientRect)(dxw.GethWnd(),&screen); + (*pClientToScreen)(dxw.GethWnd(),&upleft); + X=upleft.x; + Y=upleft.y; + nWidth=screen.right; + nHeight=screen.bottom; + OutTraceD("MoveWindow: fixed BIG win pos=(%d,%d) size=(%d,%d)\n", X, Y, nWidth, nHeight); + } + } + + ret=(*pMoveWindow)(hwnd, X, Y, nWidth, nHeight, bRepaint); + if(!ret) OutTraceE("MoveWindow: ERROR err=%d at %d\n", GetLastError(), __LINE__); + return ret; +} + +int WINAPI extShowCursor(BOOL bShow) +{ + static int iFakeCounter; + int ret; + + OutTraceC("ShowCursor: bShow=%x\n", bShow); + if (bShow){ + if (dxw.dwFlags1 & HIDEHWCURSOR){ + iFakeCounter++; + OutTraceC("ShowCursor: HIDEHWCURSOR ret=%x\n", iFakeCounter); + return iFakeCounter; + } + } + else { + if (dxw.dwFlags2 & SHOWHWCURSOR){ + iFakeCounter--; + OutTraceC("ShowCursor: SHOWHWCURSOR ret=%x\n", iFakeCounter); + return iFakeCounter; + } + } + ret=(*pShowCursor)(bShow); + OutTraceC("ShowCursor: ret=%x\n", ret); + return ret; +} + +int WINAPI extDrawTextA(HDC hDC, LPCTSTR lpchText, int nCount, LPRECT lpRect, UINT uFormat) +{ + return 0; +} + +int WINAPI extDrawTextExA(HDC hDC, LPCTSTR lpchText, int cchText, LPRECT lprc, UINT dwDTFormat, LPDRAWTEXTPARAMS lpDTParams) +{ + return 0; +} + +BOOL WINAPI extDrawFocusRect(HDC hDC, const RECT *lprc) +{ + return TRUE; +} + +BOOL WINAPI extScrollDC(HDC hDC, int dx, int dy, const RECT *lprcScroll, const RECT *lprcClip, HRGN hrgnUpdate, LPRECT lprcUpdate) +{ + return TRUE; +} + +HWND WINAPI extGetTopWindow(HWND hwnd) +{ + HWND ret; + OutTraceD("GetTopWindow: hwnd=%x fullscreen=%x\n", hwnd, dxw.IsFullScreen()); + // a fullscreen program is supposed to be always top Z-order on the desktop! + ret = (dxw.IsFullScreen() && dxw.IsDesktop(hwnd)) ? dxw.GethWnd() : (*pGetTopWindow)(hwnd); + OutTraceD("GetTopWindow: ret=%x\n", ret); + return ret; +} + +LONG WINAPI extTabbedTextOutA(HDC hdc, int X, int Y, LPCTSTR lpString, int nCount, int nTabPositions, const LPINT lpnTabStopPositions, int nTabOrigin) +{ + BOOL res; + OutTraceD("TabbedTextOut: hdc=%x xy=(%d,%d) nCount=%d nTP=%d nTOS=%d str=(%d)\"%s\"\n", + hdc, X, Y, nCount, nTabPositions, nTabOrigin, lpString); + + if (dxw.IsFullScreen() && (OBJ_DC == GetObjectType(hdc))){ + dxw.MapClient(&X, &Y); + OutTraceD("TextOut: fixed dest=(%d,%d)\n", X, Y); + } + + res=(*pTabbedTextOutA)(hdc, X, Y, lpString, nCount, nTabPositions, lpnTabStopPositions, nTabOrigin); + return res; +} + +BOOL WINAPI extDestroyWindow(HWND hWnd) +{ + 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); + if(!res)OutTraceE("DestroyWindow: ERROR err=%d\n", GetLastError()); + return res; +} + +BOOL WINAPI extCloseWindow(HWND hWnd) +{ + BOOL res; + OutTraceB("CloseWindow: hwnd=%x\n", hWnd); + if (hWnd == dxw.GethWnd()) { + OutTraceD("CloseWindow: close main hwnd=%x\n", hWnd); + dxw.SethWnd(NULL); + } + res=(*pCloseWindow)(hWnd); + if(!res)OutTraceE("CloseWindow: ERROR err=%d\n", GetLastError()); + return res; +} + +BOOL WINAPI extSetSysColors(int cElements, const INT *lpaElements, const COLORREF *lpaRgbValues) +{ + // v2.02.32: added to avoid SysColors changes by "Western Front" + BOOL ret; + OutTraceD("SetSysColors: Elements=%d\n", cElements); + + if(dxw.dwFlags3 & LOCKSYSCOLORS) return TRUE; + + ret=(*pSetSysColors)(cElements, lpaElements, lpaRgbValues); + if(!ret) OutTraceE("SetSysColors: ERROR er=%d\n", GetLastError()); + return ret; +} + +BOOL WINAPI extUpdateWindow(HWND hwnd) +{ + BOOL ret; + OutTraceD("UpdateWindow: hwnd=%x\n", hwnd); + + if(dxw.IsRealDesktop(hwnd)){ + OutTraceD("UpdateWindow: remapping hwnd=%x->%x\n", hwnd, dxw.GethWnd()); + hwnd=dxw.GethWnd(); + } + + ret=(*pUpdateWindow)(hwnd); + if(!ret) OutTraceE("UpdateWindow: ERROR er=%d\n", GetLastError()); + return ret; +} + +BOOL WINAPI extGetWindowPlacement(HWND hwnd, WINDOWPLACEMENT *lpwndpl) +{ + BOOL ret; + OutTraceD("GetWindowPlacement: hwnd=%x\n", hwnd); + + if(dxw.IsRealDesktop(hwnd)){ + OutTraceD("GetWindowPlacement: remapping hwnd=%x->%x\n", hwnd, dxw.GethWnd()); + hwnd=dxw.GethWnd(); + } + + ret=(*pGetWindowPlacement)(hwnd, lpwndpl); + OutTraceD("GetWindowPlacement: flags=%x showCmd=%x MinPosition=(%d,%d) MaxPosition=(%d,%d) NormalPosition=(%d,%d)-(%d,%d)\n", + lpwndpl->flags, lpwndpl->showCmd, + lpwndpl->ptMinPosition.x, lpwndpl->ptMinPosition.y, + lpwndpl->ptMaxPosition.x, lpwndpl->ptMaxPosition.y, + lpwndpl->rcNormalPosition.left, lpwndpl->rcNormalPosition.top, lpwndpl->rcNormalPosition.right, lpwndpl->rcNormalPosition.bottom); + + switch (lpwndpl->showCmd){ + case SW_SHOW: + if (dxw.IsFullScreen()){ + lpwndpl->showCmd = SW_MAXIMIZE; + OutTraceD("GetWindowPlacement: forcing SW_MAXIMIZE state\n"); + } + break; + } + if(!ret) OutTraceE("GetWindowPlacement: ERROR er=%d\n", GetLastError()); + return ret; +} + +BOOL WINAPI extSetWindowPlacement(HWND hwnd, WINDOWPLACEMENT *lpwndpl) +{ + BOOL ret; + OutTraceD("SetWindowPlacement: hwnd=%x\n", hwnd); + + if(dxw.IsRealDesktop(hwnd)){ + OutTraceD("SetWindowPlacement: remapping hwnd=%x->%x\n", hwnd, dxw.GethWnd()); + hwnd=dxw.GethWnd(); + } + + OutTraceD("SetWindowPlacement: flags=%x showCmd=%x MinPosition=(%d,%d) MaxPosition=(%d,%d) NormalPosition=(%d,%d)-(%d,%d)\n", + lpwndpl->flags, lpwndpl->showCmd, + lpwndpl->ptMinPosition.x, lpwndpl->ptMinPosition.y, + lpwndpl->ptMaxPosition.x, lpwndpl->ptMaxPosition.y, + lpwndpl->rcNormalPosition.left, lpwndpl->rcNormalPosition.top, lpwndpl->rcNormalPosition.right, lpwndpl->rcNormalPosition.bottom); + + switch (lpwndpl->showCmd){ + case SW_SHOW: + if (dxw.IsFullScreen()){ + lpwndpl->showCmd = SW_MAXIMIZE; + OutTraceD("SetWindowPlacement: forcing SW_MAXIMIZE state\n"); + } + break; + } + ret=(*pSetWindowPlacement)(hwnd, lpwndpl); + if(!ret) OutTraceE("SetWindowPlacement: ERROR er=%d\n", GetLastError()); + return ret; +} + +HWND WINAPI extSetCapture(HWND hwnd) +{ + HWND ret; + OutTraceD("SetCapture: hwnd=%x\n", hwnd); + ret=(*pSetCapture)(hwnd); + OutTraceD("SetCapture: ret=%x\n", ret); + return ret; +} \ No newline at end of file diff --git a/dll/user32.cpp b/dll/user32.cpp index 4afd241..56280d4 100644 --- a/dll/user32.cpp +++ b/dll/user32.cpp @@ -3,6 +3,7 @@ #define _CRT_SECURE_NO_WARNINGS #include +#include #include "dxwnd.h" #include "dxwcore.hpp" #include "syslibs.h" @@ -12,7 +13,8 @@ static HookEntry_Type Hooks[]={ {"UpdateWindow", (FARPROC)NULL, (FARPROC *)&pUpdateWindow, (FARPROC)extUpdateWindow}, - {"GetWindowPlacement", (FARPROC)NULL, (FARPROC *)&pGetWindowPlacement, (FARPROC)extGetWindowPlacement}, + //{"GetWindowPlacement", (FARPROC)NULL, (FARPROC *)&pGetWindowPlacement, (FARPROC)extGetWindowPlacement}, + //{"SetWindowPlacement", (FARPROC)NULL, (FARPROC *)&pSetWindowPlacement, (FARPROC)extSetWindowPlacement}, {"ChangeDisplaySettingsA", (FARPROC)ChangeDisplaySettingsA, (FARPROC *)&pChangeDisplaySettings, (FARPROC)extChangeDisplaySettings}, {"ChangeDisplaySettingsExA", (FARPROC)ChangeDisplaySettingsA, (FARPROC *)&pChangeDisplaySettingsEx, (FARPROC)extChangeDisplaySettingsEx}, {"BeginPaint", (FARPROC)BeginPaint, (FARPROC *)&pBeginPaint, (FARPROC)extBeginPaint}, @@ -971,9 +973,10 @@ ATOM WINAPI extRegisterClassExA(WNDCLASSEX *lpwcx) static HWND WINAPI extCreateWindowCommon( LPCTSTR ApiName, + BOOL WideChar, DWORD dwExStyle, - LPCTSTR lpClassName, - LPCTSTR lpWindowName, + void *lpClassName, + void *lpWindowName, DWORD dwStyle, int x, int y, @@ -1078,8 +1081,10 @@ static HWND WINAPI extCreateWindowCommon( } if(!dxw.IsFullScreen()){ // v2.1.63: needed for "Monster Truck Madness" - wndh= (*pCreateWindowExA)(dwExStyle, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, - hWndParent, hMenu, hInstance, lpParam); + if(WideChar) + wndh= (*pCreateWindowExW)(dwExStyle, (LPCWSTR)lpClassName, (LPCWSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); + else + wndh= (*pCreateWindowExA)(dwExStyle, (LPCSTR)lpClassName, (LPCSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); OutTraceD("%s: windowed mode ret=%x\n", ApiName, wndh); return wndh; } @@ -1102,8 +1107,10 @@ static HWND WINAPI extCreateWindowCommon( OutTraceB("%s: fixed pos=(%d,%d) size=(%d,%d) Style=%x(%s) ExStyle=%x(%s)\n", ApiName, x, y, nWidth, nHeight, dwStyle, ExplainStyle(dwStyle), dwExStyle, ExplainExStyle(dwExStyle)); - wndh= (*pCreateWindowExA)(dwExStyle, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, - hWndParent, hMenu, hInstance, lpParam); + if(WideChar) + wndh= (*pCreateWindowExW)(dwExStyle, (LPCWSTR)lpClassName, (LPCWSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); + else + wndh= (*pCreateWindowExA)(dwExStyle, (LPCSTR)lpClassName, (LPCSTR)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); if (wndh==(HWND)NULL){ OutTraceE("%s: ERROR err=%d Style=%x(%s) ExStyle=%x\n", ApiName, GetLastError(), dwStyle, ExplainStyle(dwStyle), dwExStyle); @@ -1163,17 +1170,12 @@ HWND WINAPI extCreateWindowExW( HINSTANCE hInstance, LPVOID lpParam) { - char sClassName[256+1]; - char sWindowName[256+1]; - wcstombs_s(NULL, sClassName, lpClassName, 80); - wcstombs_s(NULL, sWindowName, lpWindowName, 80); - OutTraceD("CreateWindowExW: class=\"%ls\" wname=\"%ls\" pos=(%d,%d) size=(%d,%d) Style=%x(%s) ExStyle=%x(%s)\n", lpClassName, lpWindowName, x, y, nWidth, nHeight, dwStyle, ExplainStyle(dwStyle), dwExStyle, ExplainExStyle(dwExStyle)); if(IsDebug) OutTrace("CreateWindowExW: DEBUG screen=(%d,%d)\n", dxw.GetScreenWidth(), dxw.GetScreenHeight()); - return extCreateWindowCommon("CreateWindowExW", dwExStyle, sClassName, sWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); + return extCreateWindowCommon("CreateWindowExW", TRUE, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); } // GHO: pro Diablo @@ -1196,7 +1198,7 @@ HWND WINAPI extCreateWindowExA( dwStyle, ExplainStyle(dwStyle), dwExStyle, ExplainExStyle(dwExStyle)); if(IsDebug) OutTrace("CreateWindowExA: DEBUG screen=(%d,%d)\n", dxw.GetScreenWidth(), dxw.GetScreenHeight()); - return extCreateWindowCommon("CreateWindowExA", dwExStyle, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); + return extCreateWindowCommon("CreateWindowExA", false, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); } LRESULT WINAPI extCallWindowProc(WNDPROC lpPrevWndFunc, HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam) @@ -1427,8 +1429,39 @@ HDC WINAPI extGDIGetDC(HWND hwnd) HDC WINAPI extGDIGetDCEx(HWND hwnd, HRGN hrgnClip, DWORD flags) { - MessageBox(0, "GetDCEx", "to fix", MB_OK | MB_ICONEXCLAMATION); - return (HDC)NULL; + // used by Star Wars Shadow of the Empire + HDC ret; + HWND lochwnd; + + OutTraceD("GDI.GetDCEx: hwnd=%x hrgnClip=%x flags=%x(%s)\n", hwnd, hrgnClip, flags, ExplainGetDCExFlags(flags)); + lochwnd=hwnd; + if (dxw.IsRealDesktop(hwnd)) { + OutTraceD("GDI.GetDCEx: desktop remapping hwnd=%x->%x\n", hwnd, dxw.GethWnd()); + lochwnd=dxw.GethWnd(); + } + + if(dxw.dwFlags3 & EMULATEDC) + ret=dxw.AcquireEmulatedDC(lochwnd); + else + ret=(*pGDIGetDC)(lochwnd); + + if(ret){ + OutTraceD("GDI.GetDCEx: hwnd=%x ret=%x\n", lochwnd, ret); + } + else{ + int err; + err=GetLastError(); + OutTraceE("GDI.GetDCEx ERROR: hwnd=%x err=%d at %d\n", lochwnd, err, __LINE__); + if((err==ERROR_INVALID_WINDOW_HANDLE) && (lochwnd!=hwnd)){ + ret=(*pGDIGetDCEx)(hwnd, hrgnClip, flags); + if(ret) + OutTraceD("GDI.GetDCEx: hwnd=%x ret=%x\n", hwnd, ret); + else + OutTraceE("GDI.GetDCEx ERROR: hwnd=%x err=%d at %d\n", hwnd, GetLastError(), __LINE__); + } + } + + return ret; } HDC WINAPI extGDIGetWindowDC(HWND hwnd) @@ -1598,14 +1631,14 @@ BOOL WINAPI extMoveWindow(HWND hwnd, int X, int Y, int nWidth, int nHeight, BOOL if(dxw.IsDesktop(hwnd)){ // v2.1.93: happens in "Emergency Fighters for Life" ... // what is the meaning of this? is it related to video stretching? - OutTraceD("MoveWindow: prevent moving desktop win\n"); - return TRUE; - } + OutTraceD("MoveWindow: prevent moving desktop win\n"); + return TRUE; + } if((hwnd==dxw.GethWnd()) || (hwnd==dxw.hParentWnd)){ - OutTraceD("MoveWindow: prevent moving main win\n"); - return TRUE; - } + OutTraceD("MoveWindow: prevent moving main win\n"); + return TRUE; + } if (dxw.IsFullScreen()){ POINT upleft={0,0}; diff --git a/dll/winmm.cpp b/dll/winmm.cpp index 7294d4c..d3050d9 100644 --- a/dll/winmm.cpp +++ b/dll/winmm.cpp @@ -6,6 +6,9 @@ #include "MMSystem.h" +#undef OutTraceD +#define OutTraceD OutTrace + static HookEntry_Type Hooks[]={ {"mciSendCommandA", NULL, (FARPROC *)&pmciSendCommand, (FARPROC)extmciSendCommand}, {0, NULL, 0, 0} // terminator @@ -13,6 +16,8 @@ static HookEntry_Type Hooks[]={ static HookEntry_Type TimeHooks[]={ {"timeGetTime", NULL, (FARPROC *)&ptimeGetTime, (FARPROC)exttimeGetTime}, + {"timeKillEvent", NULL, (FARPROC *)&ptimeKillEvent, (FARPROC)exttimeKillEvent}, + {"timeSetEvent", NULL, (FARPROC *)&ptimeSetEvent, (FARPROC)exttimeSetEvent}, {0, NULL, 0, 0} // terminator }; @@ -41,6 +46,25 @@ DWORD WINAPI exttimeGetTime(void) return ret; } +MMRESULT WINAPI exttimeSetEvent(UINT uDelay, UINT uResolution, LPTIMECALLBACK lpTimeProc, DWORD_PTR dwUser, UINT fuEvent) +{ + MMRESULT res; + 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); + return res; +} + +MMRESULT WINAPI exttimeKillEvent(UINT uTimerID) +{ + MMRESULT res; + OutTraceD("timeKillEvent: TimerID=%x\n", uTimerID); + res=(*ptimeKillEvent)(uTimerID); + OutTraceD("timeKillEvent: ret=%x\n", res); + return res; +} + /* MCI_DGV_PUT_FRAME The rectangle defined for MCI_DGV_RECT applies to the frame rectangle. diff --git a/exports/007 NightFire.dxw b/exports/007 NightFire.dxw new file mode 100644 index 0000000..1fde1e2 --- /dev/null +++ b/exports/007 NightFire.dxw @@ -0,0 +1,24 @@ +[target] +title0=007 NightFire +path0=D:\Games\007_NightFire\Bond.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134234146 +flagg0=134217728 +flagh0=65556 +flagi0=0 +tflag0=67 +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/exports/101 The Airborne Invasion of Normandy.dxw b/exports/101 The Airborne Invasion of Normandy.dxw new file mode 100644 index 0000000..71bb96f --- /dev/null +++ b/exports/101 The Airborne Invasion of Normandy.dxw @@ -0,0 +1,24 @@ +[target] +title0=101 The Airborne Invasion of Normandy +path0=D:\Games\101air\101.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134234146 +flagg0=134217728 +flagh0=20 +flagi0=0 +tflag0=192 +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/exports/Age of Empires III.dxw b/exports/Age of Empires III.dxw new file mode 100644 index 0000000..c1efb73 --- /dev/null +++ b/exports/Age of Empires III.dxw @@ -0,0 +1,24 @@ +[target] +title0=Age of Empires III +path0=D:\Games\Age of Empires III\age3.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=-394125278 +flagg0=134217728 +flagh0=20 +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/exports/Akuma Demon Spawn - Lamentation Sword.dxw b/exports/Akuma Demon Spawn - Lamentation Sword.dxw new file mode 100644 index 0000000..d73692c --- /dev/null +++ b/exports/Akuma Demon Spawn - Lamentation Sword.dxw @@ -0,0 +1,24 @@ +[target] +title0=Akuma Demon Spawn - Lamentation Sword +path0=D:\Games\Akuma Demon Spawn - Lamentation Sword (1999)\Akuma\Akuma.EXE +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134234146 +flagg0=134217728 +flagh0=20 +flagi0=0 +tflag0=64 +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/exports/Ancient Evil demo.dxw b/exports/Ancient Evil demo.dxw new file mode 100644 index 0000000..c6ad005 --- /dev/null +++ b/exports/Ancient Evil demo.dxw @@ -0,0 +1,24 @@ +[target] +title0=Ancient Evil demo +path0=D:\Games\AECSC\aecsc-demo.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=150994976 +flagg0=1207959552 +flagh0=25165844 +flagi0=0 +tflag0=259 +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/exports/Army Men RTS.dxw b/exports/Army Men RTS.dxw new file mode 100644 index 0000000..163d2cf --- /dev/null +++ b/exports/Army Men RTS.dxw @@ -0,0 +1,24 @@ +[target] +title0=Army Men RTS +path0=D:\Games\Army Men RTS\amrts.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=671088676 +flagg0=1207959552 +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/exports/Attack of the Saucerman.dxw b/exports/Attack of the Saucerman.dxw new file mode 100644 index 0000000..fd88a78 --- /dev/null +++ b/exports/Attack of the Saucerman.dxw @@ -0,0 +1,24 @@ +[target] +title0=Attack of the Saucerman +path0=D:\Games\Attack of the Saucerman\attack of the saucerman.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217730 +flagg0=134217728 +flagh0=20 +flagi0=0 +tflag0=192 +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/exports/Beyond Divinity.dxw b/exports/Beyond Divinity.dxw new file mode 100644 index 0000000..ee7c05a --- /dev/null +++ b/exports/Beyond Divinity.dxw @@ -0,0 +1,24 @@ +[target] +title0=Beyond Divinity +path0=D:\Games\Beyond Divinity\Div.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134234144 +flagg0=134217728 +flagh0=61 +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/exports/Daikatana.dxw b/exports/Daikatana.dxw new file mode 100644 index 0000000..ff305de --- /dev/null +++ b/exports/Daikatana.dxw @@ -0,0 +1,24 @@ +[target] +title0=Daikatana +path0=D:\Games\Daikatana\daikatana.exe +module0= +opengllib0= +ver0=12 +coord0=0 +flag0=269492738 +flagg0=537002497 +flagh0=20 +flagi0=0 +tflag0=2 +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/exports/Devastation.dxw b/exports/Devastation.dxw new file mode 100644 index 0000000..d42a274 --- /dev/null +++ b/exports/Devastation.dxw @@ -0,0 +1,24 @@ +[target] +title0=Devastation +path0=D:\Games\Devastation\System\Devastation.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217762 +flagg0=1207959552 +flagh0=16 +flagi0=0 +tflag0=67 +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/exports/Diablo.dxw b/exports/Diablo.dxw new file mode 100644 index 0000000..63c7691 --- /dev/null +++ b/exports/Diablo.dxw @@ -0,0 +1,24 @@ +[target] +title0=Diablo +path0=D:\Games\Diablo\Diablo.exe +module0= +opengllib0= +ver0=1 +coord0=0 +flag0=138428450 +flagg0=1108344848 +flagh0=20 +flagi0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=640 +sizy0=480 +maxfps0=0 +initts0=0 diff --git a/exports/Doom Shareware for Windows 95.dxw b/exports/Doom Shareware for Windows 95.dxw new file mode 100644 index 0000000..e29750c --- /dev/null +++ b/exports/Doom Shareware for Windows 95.dxw @@ -0,0 +1,24 @@ +[target] +title0=Doom Shareware for Windows 95 +path0=D:\Games\Doom Shareware for Windows 95\Doom95.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217762 +flagg0=134217728 +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/exports/Dungeon Keeper II.dxw b/exports/Dungeon Keeper II.dxw new file mode 100644 index 0000000..3b5d517 --- /dev/null +++ b/exports/Dungeon Keeper II.dxw @@ -0,0 +1,24 @@ +[target] +title0=Dungeon Keeper II +path0=D:\Games\Dungeon Keeper 2\DKII.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=16418 +flagg0=574619648 +flagh0=20 +flagi0=0 +tflag0=263 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=150 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 diff --git a/exports/Dungeon Lords MMXII.dxw b/exports/Dungeon Lords MMXII.dxw new file mode 100644 index 0000000..bc4f6f5 --- /dev/null +++ b/exports/Dungeon Lords MMXII.dxw @@ -0,0 +1,24 @@ +[target] +title0=Dungeon Lords MMXII +path0=D:\Games\Dungeon Lords MMXII\dlords2012.exe +module0= +opengllib0= +ver0=0 +coord0=2 +flag0=-2013265886 +flagg0=1207959552 +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/exports/GTA 3.dxw b/exports/GTA 3.dxw new file mode 100644 index 0000000..c7e4c44 --- /dev/null +++ b/exports/GTA 3.dxw @@ -0,0 +1,24 @@ +[target] +title0=GTA 3 +path0=D:\Games\GTA3\gta3.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134234150 +flagg0=1207975952 +flagh0=176 +flagi0=0 +tflag0=2 +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/exports/Grand Prix Legends.dxw b/exports/Grand Prix Legends.dxw new file mode 100644 index 0000000..999ae13 Binary files /dev/null and b/exports/Grand Prix Legends.dxw differ diff --git a/exports/Grand Prix World.dxw b/exports/Grand Prix World.dxw new file mode 100644 index 0000000..b218903 --- /dev/null +++ b/exports/Grand Prix World.dxw @@ -0,0 +1,24 @@ +[target] +title0=Grand Prix World +path0=D:\Games\Grand Prix World\gpwxp2.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134283428 +flagg0=134217728 +flagh0=29 +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/exports/Hamsterball.dxw b/exports/Hamsterball.dxw new file mode 100644 index 0000000..e4bdc3e --- /dev/null +++ b/exports/Hamsterball.dxw @@ -0,0 +1,24 @@ +[target] +title0=Hamsterball +path0=D:\Games\Hamsterball\Hamsterball.exe +module0= +opengllib0= +ver0=8 +coord0=0 +flag0=134217762 +flagg0=1207959552 +flagh0=20 +flagi0=0 +tflag0=323 +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/exports/Heroes of Might and Magic IV.dxw b/exports/Heroes of Might and Magic IV.dxw new file mode 100644 index 0000000..cf7cd79 --- /dev/null +++ b/exports/Heroes of Might and Magic IV.dxw @@ -0,0 +1,24 @@ +[target] +title0=Heroes of Might and Magic IV +path0=D:\Games\Heroes of Might and Magic IV\heroes4i.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134283298 +flagg0=1211121728 +flagh0=65556 +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/exports/Homeworld 2.dxw b/exports/Homeworld 2.dxw new file mode 100644 index 0000000..9aa9229 --- /dev/null +++ b/exports/Homeworld 2.dxw @@ -0,0 +1,24 @@ +[target] +title0=Homeworld 2 +path0=D:\Games\Homeworld2\Bin\Release\Homeworld2.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=671088642 +flagg0=134217728 +flagh0=477 +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/exports/JetMoto.dxw b/exports/JetMoto.dxw new file mode 100644 index 0000000..65069a9 --- /dev/null +++ b/exports/JetMoto.dxw @@ -0,0 +1,24 @@ +[target] +title0=JetMoto +path0=D:\Games\Jet_Moto\JETMOTO.EXE +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=671088674 +flagg0=1207959552 +flagh0=20 +flagi0=0 +tflag0=64 +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/exports/Kiss Psycho Circus.dxw b/exports/Kiss Psycho Circus.dxw new file mode 100644 index 0000000..79f48c5 --- /dev/null +++ b/exports/Kiss Psycho Circus.dxw @@ -0,0 +1,24 @@ +[target] +title0=Kiss Psycho Circus +path0=D:\Games\Kiss\client.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217760 +flagg0=1207959552 +flagh0=20 +flagi0=0 +tflag0=67 +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/exports/L'Elefante a Strisce.dxw b/exports/L'Elefante a Strisce.dxw new file mode 100644 index 0000000..f119aca --- /dev/null +++ b/exports/L'Elefante a Strisce.dxw @@ -0,0 +1,24 @@ +[target] +title0=L'Elefante a Strisce +path0=D:\Games\L'Elefante a Strisce\Pilots1I.EXE +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217762 +flagg0=134217728 +flagh0=20 +flagi0=0 +tflag0=64 +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/exports/Land of the Dead.dxw b/exports/Land of the Dead.dxw new file mode 100644 index 0000000..517fb28 --- /dev/null +++ b/exports/Land of the Dead.dxw @@ -0,0 +1,24 @@ +[target] +title0=Land of the Dead +path0=D:\Games\Land of the Dead\System\LOTD.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217766 +flagg0=1207959552 +flagh0=20 +flagi0=0 +tflag0=64 +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/exports/Last Bronx.dxw b/exports/Last Bronx.dxw new file mode 100644 index 0000000..3415a45 --- /dev/null +++ b/exports/Last Bronx.dxw @@ -0,0 +1,24 @@ +[target] +title0=Last Bronx +path0=D:\Games\Last_Bronx\LB.EXE +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217762 +flagg0=1207959552 +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/exports/Mageslayer.dxw b/exports/Mageslayer.dxw new file mode 100644 index 0000000..4732846 --- /dev/null +++ b/exports/Mageslayer.dxw @@ -0,0 +1,24 @@ +[target] +title0=Mageslayer +path0=D:\Games\MAGE\MAGESLAY.EXE +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134234146 +flagg0=134217760 +flagh0=20 +flagi0=0 +tflag0=64 +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/exports/Magic & Mayhem.dxw b/exports/Magic & Mayhem.dxw new file mode 100644 index 0000000..8e8066e --- /dev/null +++ b/exports/Magic & Mayhem.dxw @@ -0,0 +1,24 @@ +[target] +title0=Magic & Mayhem +path0=D:\Games\Magic_&_Mayhem\Chaos.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=138428450 +flagg0=1275068416 +flagh0=8388628 +flagi0=0 +tflag0=259 +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/exports/Mirror's Edge.dxw b/exports/Mirror's Edge.dxw new file mode 100644 index 0000000..07855d2 --- /dev/null +++ b/exports/Mirror's Edge.dxw @@ -0,0 +1,24 @@ +[target] +title0=Mirror's Edge +path0=D:\Games\Mirror's Edge\Binaries\MirrorsEdge.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=-2013265882 +flagg0=1207959552 +flagh0=2097172 +flagi0=0 +tflag0=15 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=6 diff --git a/exports/Praetorians.dxw b/exports/Praetorians.dxw new file mode 100644 index 0000000..a07422a --- /dev/null +++ b/exports/Praetorians.dxw @@ -0,0 +1,24 @@ +[target] +title0=Praetorians +path0=D:\Games\Praetorians\Praetorians.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217760 +flagg0=1207959552 +flagh0=20 +flagi0=0 +tflag0=259 +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/exports/Premier Manager 98.dxw b/exports/Premier Manager 98.dxw new file mode 100644 index 0000000..202d582 --- /dev/null +++ b/exports/Premier Manager 98.dxw @@ -0,0 +1,24 @@ +[target] +title0=Premier Manager 98 +path0=D:\Games\Premier Manager 98\MANAGER.EXE +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=671088674 +flagg0=1207959552 +flagh0=16 +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/exports/Primitive Wars.dxw b/exports/Primitive Wars.dxw new file mode 100644 index 0000000..9cc72eb --- /dev/null +++ b/exports/Primitive Wars.dxw @@ -0,0 +1,24 @@ +[target] +title0=Primitive Wars +path0=D:\Games\Primitive Wars\Pw.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=402653218 +flagg0=1207959552 +flagh0=20 +flagi0=0 +tflag0=64 +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/exports/Railroad Tycoon II.dxw b/exports/Railroad Tycoon II.dxw new file mode 100644 index 0000000..c3cb149 --- /dev/null +++ b/exports/Railroad Tycoon II.dxw @@ -0,0 +1,24 @@ +[target] +title0=Railroad Tycoon II +path0=D:\Games\Railroad.Tycoon.II\RT2.EXE +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=2082 +flagg0=143654912 +flagh0=16 +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/exports/Rayman 2 Demo.dxw b/exports/Rayman 2 Demo.dxw new file mode 100644 index 0000000..d67ddef --- /dev/null +++ b/exports/Rayman 2 Demo.dxw @@ -0,0 +1,24 @@ +[target] +title0=Rayman2Demo.exe +path0=D:\Games\Rayman2Demo\Rayman2Demo.exe +module0= +opengllib0= +ver0=1 +coord0=0 +flag0=939524129 +flagg0=1207959552 +flagh0=20 +flagi0=0 +tflag0=323 +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/exports/Space Rangers.dxw b/exports/Space Rangers.dxw new file mode 100644 index 0000000..adba567 --- /dev/null +++ b/exports/Space Rangers.dxw @@ -0,0 +1,24 @@ +[target] +title0=Space Rangers +path0=D:\Games\Space Rangers\Rangers.exe +module0= +opengllib0= +ver0=1 +coord0=0 +flag0=134234146 +flagg0=1207959552 +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/exports/Star Wars Shadow of the Empire (DEMO).dxw b/exports/Star Wars Shadow of the Empire (DEMO).dxw new file mode 100644 index 0000000..e50772d --- /dev/null +++ b/exports/Star Wars Shadow of the Empire (DEMO).dxw @@ -0,0 +1,24 @@ +[target] +title0=Star Wars Shadow of the Empire (DEMO) +path0=D:\Games\shadowsdemo\shadows.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217762 +flagg0=1208483844 +flagh0=25165844 +flagi0=0 +tflag0=275 +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/exports/Star Wars Shadow of the Empire.dxw b/exports/Star Wars Shadow of the Empire.dxw new file mode 100644 index 0000000..0ca1af9 --- /dev/null +++ b/exports/Star Wars Shadow of the Empire.dxw @@ -0,0 +1,24 @@ +[target] +title0=Star Wars Shadow of the Empire +path0=D:\Games\Star Wars Shadow of the Empire\game\SDATA\SHADOWS.EXE +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217762 +flagg0=1476919296 +flagh0=25166364 +flagi0=0 +tflag0=274 +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/exports/StarCraft.dxw b/exports/StarCraft.dxw new file mode 100644 index 0000000..ec3c771 --- /dev/null +++ b/exports/StarCraft.dxw @@ -0,0 +1,24 @@ +[target] +title0=StarCraft +path0=D:\Games\Starcraft\StarCraft.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217762 +flagg0=136314880 +flagh0=20 +flagi0=0 +tflag0=64 +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/exports/Talis Gear.dxw b/exports/Talis Gear.dxw new file mode 100644 index 0000000..bc14a14 --- /dev/null +++ b/exports/Talis Gear.dxw @@ -0,0 +1,24 @@ +[target] +title0=Talis Gear +path0=D:\Games\TailsGear078\DT_MAIN.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217760 +flagg0=1207959552 +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/exports/Theseus.dxw b/exports/Theseus.dxw new file mode 100644 index 0000000..076b5e3 --- /dev/null +++ b/exports/Theseus.dxw @@ -0,0 +1,24 @@ +[target] +title0=Theseus +path0=D:\Games\theseus\Theseus.exe +module0= +opengllib0= +ver0=8 +coord0=0 +flag0=134217730 +flagg0=1207959552 +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/exports/Total Annihilation Kingdoms.dxw b/exports/Total Annihilation Kingdoms.dxw new file mode 100644 index 0000000..bf596e7 --- /dev/null +++ b/exports/Total Annihilation Kingdoms.dxw @@ -0,0 +1,24 @@ +[target] +title0=Total Annihilation Kingdoms +path0=D:\Games\Total Annihilation Kingdoms\Kingdoms.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134234146 +flagg0=1073741840 +flagh0=16 +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/exports/Vangers.dxw b/exports/Vangers.dxw new file mode 100644 index 0000000..d7459f7 --- /dev/null +++ b/exports/Vangers.dxw @@ -0,0 +1,24 @@ +[target] +title0=Vangers +path0=D:\Games\Vangers\road.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=402653219 +flagg0=671088640 +flagh0=20 +flagi0=0 +tflag0=67 +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/exports/Wargames.dxw b/exports/Wargames.dxw new file mode 100644 index 0000000..0ea1bb9 --- /dev/null +++ b/exports/Wargames.dxw @@ -0,0 +1,24 @@ +[target] +title0=Wargames (demo) +path0=D:\Games\Wargames\wargames.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=268435618 +flagg0=1207959552 +flagh0=20 +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/exports/Warlords 3.dxw b/exports/Warlords 3.dxw new file mode 100644 index 0000000..ed24623 --- /dev/null +++ b/exports/Warlords 3.dxw @@ -0,0 +1,24 @@ +[target] +title0=Warlords 3 +path0=D:\Games\WARLORDS3\Darklord.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=-2147483102 +flagg0=269484064 +flagh0=532 +flagi0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=0 +sizy0=0 +maxfps0=0 +initts0=0 diff --git a/exports/deadrising2otr1.dxw b/exports/deadrising2otr1.dxw new file mode 100644 index 0000000..11f51ac --- /dev/null +++ b/exports/deadrising2otr1.dxw @@ -0,0 +1,24 @@ +[target] +title0=deadrising2otr.exe +path0=C:\Program Files (x86)\Capcom\Dead Rising 2 Off The Record\deadrising2otr.exe +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=0 +flagg0=134217728 +flagh0=16 +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/host/Release/BuildLog.htm b/host/Release/BuildLog.htm deleted file mode 100644 index 599e102..0000000 Binary files a/host/Release/BuildLog.htm and /dev/null differ diff --git a/host/Release/Inject.obj b/host/Release/Inject.obj deleted file mode 100644 index 34caff2..0000000 Binary files a/host/Release/Inject.obj and /dev/null differ diff --git a/host/Release/KillProc.obj b/host/Release/KillProc.obj deleted file mode 100644 index 0bc0bab..0000000 Binary files a/host/Release/KillProc.obj and /dev/null differ diff --git a/host/Release/MainFrm.obj b/host/Release/MainFrm.obj deleted file mode 100644 index b16764f..0000000 Binary files a/host/Release/MainFrm.obj and /dev/null differ diff --git a/host/Release/StatusDialog.obj b/host/Release/StatusDialog.obj deleted file mode 100644 index 6a5a5ea..0000000 Binary files a/host/Release/StatusDialog.obj and /dev/null differ diff --git a/host/Release/StdAfx.obj b/host/Release/StdAfx.obj deleted file mode 100644 index eca6dd6..0000000 Binary files a/host/Release/StdAfx.obj and /dev/null differ diff --git a/host/Release/SystemTray.obj b/host/Release/SystemTray.obj deleted file mode 100644 index 2f2a12b..0000000 Binary files a/host/Release/SystemTray.obj and /dev/null differ diff --git a/host/Release/TabColor.obj b/host/Release/TabColor.obj deleted file mode 100644 index 693e73f..0000000 Binary files a/host/Release/TabColor.obj and /dev/null differ diff --git a/host/Release/TabCompat.obj b/host/Release/TabCompat.obj deleted file mode 100644 index 11b537b..0000000 Binary files a/host/Release/TabCompat.obj and /dev/null differ diff --git a/host/Release/TabDebug.obj b/host/Release/TabDebug.obj deleted file mode 100644 index 9a7d6be..0000000 Binary files a/host/Release/TabDebug.obj and /dev/null differ diff --git a/host/Release/TabDirectX.obj b/host/Release/TabDirectX.obj deleted file mode 100644 index 00802ed..0000000 Binary files a/host/Release/TabDirectX.obj and /dev/null differ diff --git a/host/Release/TabGDI.obj b/host/Release/TabGDI.obj deleted file mode 100644 index 6341e4b..0000000 Binary files a/host/Release/TabGDI.obj and /dev/null differ diff --git a/host/Release/TabLogs.obj b/host/Release/TabLogs.obj deleted file mode 100644 index 516e25b..0000000 Binary files a/host/Release/TabLogs.obj and /dev/null differ diff --git a/host/Release/TabMouse.obj b/host/Release/TabMouse.obj deleted file mode 100644 index c08ecb9..0000000 Binary files a/host/Release/TabMouse.obj and /dev/null differ diff --git a/host/Release/TabOpenGL.obj b/host/Release/TabOpenGL.obj deleted file mode 100644 index 6b40b2a..0000000 Binary files a/host/Release/TabOpenGL.obj and /dev/null differ diff --git a/host/Release/TabProgram.obj b/host/Release/TabProgram.obj deleted file mode 100644 index 295331a..0000000 Binary files a/host/Release/TabProgram.obj and /dev/null differ diff --git a/host/Release/TabTiming.obj b/host/Release/TabTiming.obj deleted file mode 100644 index 91fc170..0000000 Binary files a/host/Release/TabTiming.obj and /dev/null differ diff --git a/host/Release/TabWindow.obj b/host/Release/TabWindow.obj deleted file mode 100644 index 8b615c1..0000000 Binary files a/host/Release/TabWindow.obj and /dev/null differ diff --git a/host/Release/TargetDlg.obj b/host/Release/TargetDlg.obj deleted file mode 100644 index 69366bc..0000000 Binary files a/host/Release/TargetDlg.obj and /dev/null differ diff --git a/host/Release/TimeSliderDlg.obj b/host/Release/TimeSliderDlg.obj deleted file mode 100644 index ca36c6e..0000000 Binary files a/host/Release/TimeSliderDlg.obj and /dev/null differ diff --git a/host/Release/dxTabCtrl.obj b/host/Release/dxTabCtrl.obj deleted file mode 100644 index 7c62f0c..0000000 Binary files a/host/Release/dxTabCtrl.obj and /dev/null differ diff --git a/host/Release/dxwnd.exe.intermediate.manifest b/host/Release/dxwnd.exe.intermediate.manifest deleted file mode 100644 index ecea6f7..0000000 --- a/host/Release/dxwnd.exe.intermediate.manifest +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/host/Release/dxwndhost.obj b/host/Release/dxwndhost.obj deleted file mode 100644 index f07e9e9..0000000 Binary files a/host/Release/dxwndhost.obj and /dev/null differ diff --git a/host/Release/dxwndhost.pch b/host/Release/dxwndhost.pch deleted file mode 100644 index 4a642bf..0000000 Binary files a/host/Release/dxwndhost.pch and /dev/null differ diff --git a/host/Release/dxwndhost.res b/host/Release/dxwndhost.res deleted file mode 100644 index c22d768..0000000 Binary files a/host/Release/dxwndhost.res and /dev/null differ diff --git a/host/Release/dxwndhostDoc.obj b/host/Release/dxwndhostDoc.obj deleted file mode 100644 index 29b6c4a..0000000 Binary files a/host/Release/dxwndhostDoc.obj and /dev/null differ diff --git a/host/Release/dxwndhostView.obj b/host/Release/dxwndhostView.obj deleted file mode 100644 index 0fe88df..0000000 Binary files a/host/Release/dxwndhostView.obj and /dev/null differ diff --git a/host/Release/getfname.obj b/host/Release/getfname.obj deleted file mode 100644 index 1813caf..0000000 Binary files a/host/Release/getfname.obj and /dev/null differ diff --git a/host/Release/mt.dep b/host/Release/mt.dep deleted file mode 100644 index 7451b80..0000000 --- a/host/Release/mt.dep +++ /dev/null @@ -1 +0,0 @@ -Manifest resource last updated at 9:28:09,93 on 12/10/2013 diff --git a/host/Release/vc90.idb b/host/Release/vc90.idb deleted file mode 100644 index 6b4bd2f..0000000 Binary files a/host/Release/vc90.idb and /dev/null differ diff --git a/host/Resource.h b/host/Resource.h index 3b5d970..3fadfe3 100644 --- a/host/Resource.h +++ b/host/Resource.h @@ -148,6 +148,8 @@ #define IDC_FULLRECTBLT2 1103 #define IDC_SURFACEWARN 1103 #define IDC_HOOKDLLS 1104 +#define IDC_ANALITICALMODE 1104 +#define IDC_ANALYTICMODE 1104 #define IDC_HOOKENABLED 1105 #define IDC_DESKTOPWORKAREA 1106 #define IDC_DESKTOPFULL 1107 diff --git a/host/TabDebug.cpp b/host/TabDebug.cpp index b4d8a75..94bc60a 100644 --- a/host/TabDebug.cpp +++ b/host/TabDebug.cpp @@ -33,6 +33,7 @@ void CTabDebug::DoDataExchange(CDataExchange* pDX) DDX_Check(pDX, IDC_ASSERT, cTarget->m_AssertDialog); DDX_Check(pDX, IDC_FULLRECTBLT, cTarget->m_FullRectBlt); DDX_Check(pDX, IDC_MARKBLIT, cTarget->m_MarkBlit); + DDX_Check(pDX, IDC_ANALYTICMODE, cTarget->m_AnalyticMode); DDX_Check(pDX, IDC_SURFACEWARN, cTarget->m_SurfaceWarn); } @@ -58,4 +59,5 @@ END_MESSAGE_MAP() // List->SetCurSel(cTarget->m_FakeVersion); // CDialog::OnInitDialog(); // return TRUE; -//} \ No newline at end of file +//} + diff --git a/host/TabDebug.h b/host/TabDebug.h index 8bdcde8..342d516 100644 --- a/host/TabDebug.h +++ b/host/TabDebug.h @@ -42,6 +42,7 @@ protected: // NOTE: the ClassWizard will add member functions here //}}AFX_MSG DECLARE_MESSAGE_MAP() +public: }; //{{AFX_INSERT_LOCATION}} diff --git a/host/TargetDlg.cpp b/host/TargetDlg.cpp index 36ca306..eaeffca 100644 --- a/host/TargetDlg.cpp +++ b/host/TargetDlg.cpp @@ -109,6 +109,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/) m_FakeVersion = FALSE; m_FullRectBlt = FALSE; m_SurfaceWarn = FALSE; + m_AnalyticMode = FALSE; m_NoPaletteUpdate = FALSE; m_WireFrame = FALSE; m_BlackWhite = FALSE; diff --git a/host/TargetDlg.h b/host/TargetDlg.h index d53ee9b..720bf9b 100644 --- a/host/TargetDlg.h +++ b/host/TargetDlg.h @@ -105,6 +105,7 @@ public: BOOL m_FakeVersion; BOOL m_FullRectBlt; BOOL m_SurfaceWarn; + BOOL m_AnalyticMode; BOOL m_NoPaletteUpdate; BOOL m_LimitResources; BOOL m_CDROMDriveType; diff --git a/host/dxwndhost.aps b/host/dxwndhost.aps index c4df5f6..cda1032 100644 Binary files a/host/dxwndhost.aps and b/host/dxwndhost.aps differ diff --git a/host/dxwndhost.rc b/host/dxwndhost.rc index 79a1530..e4f95b5 100644 --- a/host/dxwndhost.rc +++ b/host/dxwndhost.rc @@ -474,7 +474,8 @@ BEGIN CONTROL "Assert Dialog",IDC_ASSERT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,166,73,11 CONTROL "ddraw Proxy",IDC_DXPROXED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,178,73,9 CONTROL "Warning for analytic surface mode",IDC_SURFACEWARN, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,72,127,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,84,127,10 + CONTROL "Analytic surface mode",IDC_ANALYTICMODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,72,127,10 END diff --git a/host/dxwndhost.vs2008.ncb b/host/dxwndhost.vs2008.ncb deleted file mode 100644 index 46530f4..0000000 Binary files a/host/dxwndhost.vs2008.ncb and /dev/null differ diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo index ab5c33a..52d091c 100644 Binary files a/host/dxwndhost.vs2008.suo and b/host/dxwndhost.vs2008.suo differ diff --git a/host/dxwndhost.vs2008.vcproj.User-PC.User.user b/host/dxwndhost.vs2008.vcproj.User-PC.User.user deleted file mode 100644 index 0d18496..0000000 --- a/host/dxwndhost.vs2008.vcproj.User-PC.User.user +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - diff --git a/host/dxwndhostView.cpp b/host/dxwndhostView.cpp index a910f87..9f010c1 100644 --- a/host/dxwndhostView.cpp +++ b/host/dxwndhostView.cpp @@ -214,6 +214,7 @@ static void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg) if(dlg->m_FullRectBlt) t->flags2 |= FULLRECTBLT; if(dlg->m_NoPaletteUpdate) t->flags2 |= NOPALETTEUPDATE; if(dlg->m_SurfaceWarn) t->flags3 |= SURFACEWARN; + if(dlg->m_AnalyticMode) t->flags3 |= ANALYTICMODE; t->initx = dlg->m_InitX; t->inity = dlg->m_InitY; t->minx = dlg->m_MinX; @@ -341,6 +342,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg) dlg->m_FullRectBlt = t->flags2 & FULLRECTBLT ? 1 : 0; dlg->m_NoPaletteUpdate = t->flags2 & NOPALETTEUPDATE ? 1 : 0; dlg->m_SurfaceWarn = t->flags3 & SURFACEWARN ? 1 : 0; + dlg->m_AnalyticMode = t->flags3 & ANALYTICMODE ? 1 : 0; dlg->m_InitX = t->initx; dlg->m_InitY = t->inity; dlg->m_MinX = t->minx;