From 8f3bc994d08ccfc7e094898d6d389d24ed185ee1 Mon Sep 17 00:00:00 2001 From: gho tik Date: Tue, 22 Jan 2013 11:17:01 -0500 Subject: [PATCH] v2_02_06_src Former-commit-id: d4efddb04484dd2edfc4dfcea2129763baf1ca88 --- build/dxwnd.dll | 4 +- build/dxwnd.exe | 2 +- build/readme-relnotes.txt | 7 +- debug/dxwnd.ini | 3881 +++++++++++++++++ dll/dxhook.cpp | 39 +- dll/dxwcore.cpp | 60 +- dll/dxwcore.hpp | 4 +- dll/dxwnd.cpp | 2 +- ...xwnd.ws2005.vcproj => dxwnd.vs2005.vcproj} | 0 dll/{dxwnd.ws2008.sln => dxwnd.vs2008.sln} | 2 +- dll/dxwnd.vs2008.suo | Bin 0 -> 11264 bytes ...xwnd.ws2008.vcproj => dxwnd.vs2008.vcproj} | 0 dll/dxwnd.ws2005.sln | 20 - dll/dxwnd.ws2005.suo | Bin 61680 -> 0 bytes dll/dxwnd.ws2008.suo | Bin 81408 -> 0 bytes dll/hddraw.cpp | 29 +- dll/syslibs.cpp | 1 + host/StatusDialog.cpp | 4 +- host/TimeSliderDialog.h | 1 + host/TimeSliderDlg.cpp | 9 +- host/dxwndhost.aps | Bin 141512 -> 141640 bytes host/dxwndhost.cpp | 11 + host/dxwndhost.rc | 4 +- host/dxwndhost.vs2008.suo | Bin 39424 -> 45568 bytes 24 files changed, 4028 insertions(+), 52 deletions(-) create mode 100644 debug/dxwnd.ini rename dll/{dxwnd.ws2005.vcproj => dxwnd.vs2005.vcproj} (100%) rename dll/{dxwnd.ws2008.sln => dxwnd.vs2008.sln} (92%) create mode 100644 dll/dxwnd.vs2008.suo rename dll/{dxwnd.ws2008.vcproj => dxwnd.vs2008.vcproj} (100%) delete mode 100644 dll/dxwnd.ws2005.sln delete mode 100644 dll/dxwnd.ws2005.suo delete mode 100644 dll/dxwnd.ws2008.suo diff --git a/build/dxwnd.dll b/build/dxwnd.dll index fe6e70f..abc0e71 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d748f1b239ec33cab73c3a6b40b6900a093f28c33c42e1b430f2e08f499e36fd -size 262144 +oid sha256:19d29414d50135080a863b7865dfe2c8685150e1df359c9a5e528a65d5f9a46d +size 263168 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index 08ebd30..bffbd32 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b9e5a9b8b7cadb640fa36491af117b34e6979ac7eb3cee8fa4b55b06e1a3ab9f +oid sha256:fcaebaa1f5eaffeb624d13fdb6f6058db5383fcaeadf22df4a641a766127c8d5 size 488448 diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index 2f54251..997044a 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -17,4 +17,9 @@ Time stretching by keyboard control (Alt F5/F6) and/or Time Slider dialog v2.02.05: hooked winmm timeGetTime() API: makes time stretching work for Age of Empires series changed time stretching grain: now it's not the coarse grained 2x, 4x,... series in 9 possible values but the fine grained series 1.5x, 2x, 3x,.... in 17 possible values -added status and time stretching view panels to tray icon menu \ No newline at end of file +added status and time stretching view panels to tray icon menu + +v2.02.06: +preliminary FPS counter overlapped on game screen, Alt-F7 to toggle display on/off. +fixed buf on time stretch logging (and possible game crash). +revised GetDC handling with 8BPP paletized surfaces: avoided need to emulate reverse-blitting and got an impressive speed improvement for games such as Age of Empires I & II and Hyperblade. \ No newline at end of file diff --git a/debug/dxwnd.ini b/debug/dxwnd.ini new file mode 100644 index 0000000..b47adbd --- /dev/null +++ b/debug/dxwnd.ini @@ -0,0 +1,3881 @@ +[target] +title0=1602 A.D. +path0=C:\Games\1602 A.D\1602.exe +module0= +ver0=0 +flag0=679608354 +flagg0=0 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +title1=7th Legion +path1=D:\Games\7th_Legion\LEGION.EXE +module1= +ver1=0 +flag1=402669607 +flagg1=2064 +tflag1=13 +initx1=0 +inity1=0 +minx1=0 +miny1=0 +maxx1=0 +maxy1=0 +posx1=50 +posy1=50 +sizx1=800 +sizy1=600 +title2=A10 Cuba +path2=D:\Games\A10\A10Cuba.exe +module2= +ver2=0 +flag2=34 +flagg2=0 +tflag2=0 +initx2=0 +inity2=0 +minx2=0 +miny2=0 +maxx2=0 +maxy2=0 +posx2=50 +posy2=50 +sizx2=800 +sizy2=600 +title3=Achtung Spitfire +path3=C:\Games\Achtung Spitfire\ASP95.EXE +module3= +ver3=0 +flag3=536870946 +flagg3=0 +tflag3=70 +initx3=0 +inity3=0 +minx3=0 +miny3=0 +maxx3=0 +maxy3=0 +posx3=50 +posy3=50 +sizx3=800 +sizy3=600 +title4=Actua Soccer 3 +path4=C:\Games\ActuaSoccer3\ActuaSoccer3\Soccer3.exe +module4= +ver4=0 +flag4=671088928 +flagg4=256 +tflag4=0 +initx4=0 +inity4=0 +minx4=0 +miny4=0 +maxx4=0 +maxy4=0 +posx4=50 +posy4=50 +sizx4=800 +sizy4=600 +title5=AfterLife +path5=d:\Games\ALIFE\ALIFE.EXE +module5= +ver5=1 +flag5=134217762 +flagg5=32 +tflag5=3 +initx5=0 +inity5=0 +minx5=0 +miny5=0 +maxx5=0 +maxy5=0 +posx5=50 +posy5=50 +sizx5=800 +sizy5=600 +title6=Age of Empires +path6=D:\Games\Age of Empires\EMPIRES.EXE +module6= +ver6=0 +flag6=268435619 +flagg6=65552 +tflag6=3 +initx6=0 +inity6=0 +minx6=0 +miny6=0 +maxx6=0 +maxy6=0 +posx6=50 +posy6=50 +sizx6=800 +sizy6=600 +title7=Age of Empires 2 +path7=D:\Games\Age of Empires 2\empires2.exe +module7= +ver7=0 +flag7=134217762 +flagg7=0 +tflag7=0 +initx7=0 +inity7=0 +minx7=0 +miny7=0 +maxx7=0 +maxy7=0 +posx7=50 +posy7=50 +sizx7=800 +sizy7=600 +title8=Age of Empires the Rise of Rome +path8=D:\Games\Age of Empires\EMPIRESX.EXE +module8= +ver8=0 +flag8=134217762 +flagg8=81920 +tflag8=0 +initx8=0 +inity8=0 +minx8=0 +miny8=0 +maxx8=0 +maxy8=0 +posx8=50 +posy8=50 +sizx8=800 +sizy8=600 +title9=Age of Wonders +path9=D:\Games\Age of Wonders\AoW.exe +module9=VideoP.dpl vcl30.dpl +ver9=0 +flag9=545390594 +flagg9=17 +tflag9=131 +initx9=0 +inity9=0 +minx9=0 +miny9=0 +maxx9=0 +maxy9=0 +posx9=50 +posy9=50 +sizx9=800 +sizy9=600 +title10=Airline Tycoon Evolution +path10=C:\Games\Airline.Tycoon.Evolution.UV.Carlows\AT.EXE +module10= +ver10=0 +flag10=32 +flagg10=0 +tflag10=2 +initx10=0 +inity10=0 +minx10=0 +miny10=0 +maxx10=0 +maxy10=0 +posx10=50 +posy10=50 +sizx10=800 +sizy10=600 +title11=Alien Cabal 95 +path11=C:\Games\Alien_cabal\ACabal95.exe +module11= +ver11=0 +flag11=67108896 +flagg11=0 +tflag11=2 +initx11=0 +inity11=0 +minx11=0 +miny11=0 +maxx11=0 +maxy11=0 +posx11=50 +posy11=50 +sizx11=800 +sizy11=600 +title12=Alien vs. Predator +path12=C:\Games\Alien vs Predator\AvP.exe +module12= +ver12=0 +flag12=8224 +flagg12=0 +tflag12=130 +initx12=0 +inity12=0 +minx12=0 +miny12=0 +maxx12=0 +maxy12=0 +posx12=50 +posy12=50 +sizx12=800 +sizy12=600 +title13=Aliens Nations Demo +path13=C:\Games\aademo\Bin\AA.exe +module13= +ver13=0 +flag13=134217762 +flagg13=0 +tflag13=0 +initx13=0 +inity13=0 +minx13=0 +miny13=0 +maxx13=0 +maxy13=0 +posx13=0 +posy13=0 +sizx13=800 +sizy13=600 +title14=America +path14=D:\Games\America\america.exe +module14= +ver14=0 +flag14=134234150 +flagg14=16 +tflag14=0 +initx14=0 +inity14=0 +minx14=0 +miny14=0 +maxx14=0 +maxy14=0 +posx14=50 +posy14=50 +sizx14=800 +sizy14=600 +title15=American McGee's Alice Demo +path15=D:\Games\American McGee's Alice Demo\alice.exe +module15= +ver15=10 +flag15=268435458 +flagg15=0 +tflag15=0 +initx15=0 +inity15=0 +minx15=0 +miny15=0 +maxx15=0 +maxy15=0 +posx15=50 +posy15=50 +sizx15=800 +sizy15=600 +title16=Ancient Evil +path16=C:\Games\Ancient Evil\RPG.EXE +module16=DDW16.DLL +ver16=1 +flag16=-2013249497 +flagg16=0 +tflag16=2 +initx16=0 +inity16=0 +minx16=0 +miny16=0 +maxx16=0 +maxy16=0 +posx16=50 +posy16=50 +sizx16=800 +sizy16=600 +title17=Ancient Evil Demo +path17=C:\Games\Ancient Evil Curse of the Snake Cult\aecsc-demo.exe +module17= +ver17=1 +flag17=134242336 +flagg17=0 +tflag17=0 +initx17=0 +inity17=0 +minx17=0 +miny17=0 +maxx17=0 +maxy17=0 +posx17=50 +posy17=50 +sizx17=800 +sizy17=600 +title18=Armymen +path18=C:\Games\armymen\Armymen.exe +module18= +ver18=0 +flag18=134218274 +flagg18=1 +tflag18=0 +initx18=0 +inity18=0 +minx18=0 +miny18=0 +maxx18=0 +maxy18=0 +posx18=50 +posy18=50 +sizx18=800 +sizy18=600 +title19=ArmyMen 2 +path19=C:\Games\army2\ArmyMen2.exe +module19= +ver19=0 +flag19=402653730 +flagg19=0 +tflag19=0 +initx19=0 +inity19=0 +minx19=0 +miny19=0 +maxx19=0 +maxy19=0 +posx19=50 +posy19=50 +sizx19=800 +sizy19=600 +title20=Atomic Bomberman +path20=C:\Games\Atomic Bomberman\BM95.EXE +module20= +ver20=0 +flag20=2 +flagg20=0 +tflag20=0 +initx20=0 +inity20=0 +minx20=0 +miny20=0 +maxx20=0 +maxy20=0 +posx20=50 +posy20=50 +sizx20=800 +sizy20=600 +title21=Axis & Allies Iron Blitz Edition +path21=C:\Games\Axis & Allies Iron Blitz Edition\Axis & Allies\AxisAllies.exe +module21= +ver21=0 +flag21=-2147483614 +flagg21=0 +tflag21=0 +initx21=0 +inity21=0 +minx21=0 +miny21=0 +maxx21=0 +maxy21=0 +posx21=50 +posy21=50 +sizx21=800 +sizy21=600 +title22=Baldies +path22=C:\Games\Baldies for Win95\baldies.exe +module22= +ver22=0 +flag22=537010210 +flagg22=0 +tflag22=0 +initx22=0 +inity22=0 +minx22=0 +miny22=0 +maxx22=0 +maxy22=0 +posx22=50 +posy22=50 +sizx22=800 +sizy22=600 +title23=Battle Arena Toshinden 2 (BAD!!) +path23=C:\Games\Battle Arena Toshinden 2\tsd2\T2.EXE +module23= +ver23=1 +flag23=8388640 +flagg23=0 +tflag23=258 +initx23=0 +inity23=0 +minx23=0 +miny23=0 +maxx23=0 +maxy23=0 +posx23=50 +posy23=50 +sizx23=800 +sizy23=600 +title24=Beasts & Bumpkins +path24=C:\Games\Beasts and Bumpkins\BEASTS.EXE +module24= +ver24=0 +flag24=2105890 +flagg24=0 +tflag24=2 +initx24=0 +inity24=0 +minx24=0 +miny24=0 +maxx24=0 +maxy24=0 +posx24=50 +posy24=50 +sizx24=800 +sizy24=600 +title25=Beats of Rage +path25=C:\Games\BOR\BeatsOfRage.exe +module25= +ver25=0 +flag25=537002018 +flagg25=0 +tflag25=0 +initx25=0 +inity25=0 +minx25=0 +miny25=0 +maxx25=0 +maxy25=0 +posx25=50 +posy25=50 +sizx25=800 +sizy25=600 +title26=Beyond Good & Evil Demo +path26=C:\Games\Beyond Good & Evil\BGE.exe +module26= +ver26=0 +flag26=0 +flagg26=0 +tflag26=0 +initx26=0 +inity26=0 +minx26=0 +miny26=0 +maxx26=0 +maxy26=0 +posx26=50 +posy26=50 +sizx26=800 +sizy26=600 +title27=Black Moon Lune Noire +path27=C:\Games\Black Moon\Lune noire\Engine.exe +module27= +ver27=0 +flag27=262179 +flagg27=0 +tflag27=0 +initx27=0 +inity27=0 +minx27=0 +miny27=0 +maxx27=0 +maxy27=0 +posx27=50 +posy27=50 +sizx27=800 +sizy27=600 +title28=Blood Omen Legacy of Kain +path28=C:\Games\Blood Omen\KAIN.EXE +module28= +ver28=0 +flag28=49190 +flagg28=0 +tflag28=0 +initx28=0 +inity28=0 +minx28=0 +miny28=0 +maxx28=0 +maxy28=0 +posx28=50 +posy28=50 +sizx28=800 +sizy28=600 +title29=Bonkheads +path29=C:\Games\Bonkheads\Bonkheads.exe +module29= +ver29=0 +flag29=262690 +flagg29=16 +tflag29=78 +initx29=0 +inity29=0 +minx29=0 +miny29=0 +maxx29=0 +maxy29=0 +posx29=50 +posy29=50 +sizx29=800 +sizy29=600 +title30=Bubble Bobble 2 +path30=C:\Games\bubble2\BOBO2.EXE +module30= +ver30=0 +flag30=34 +flagg30=0 +tflag30=0 +initx30=0 +inity30=0 +minx30=0 +miny30=0 +maxx30=0 +maxy30=0 +posx30=50 +posy30=50 +sizx30=800 +sizy30=600 +title31=Bug! +path31=C:\Games\Bug\BUG!.EXE +module31= +ver31=0 +flag31=134225954 +flagg31=32 +tflag31=2 +initx31=0 +inity31=0 +minx31=0 +miny31=0 +maxx31=0 +maxy31=0 +posx31=0 +posy31=0 +sizx31=800 +sizy31=600 +title32=Caesar III +path32=C:\Games\Caesar III\c3.exe +module32= +ver32=0 +flag32=-2147475422 +flagg32=0 +tflag32=0 +initx32=0 +inity32=0 +minx32=0 +miny32=0 +maxx32=0 +maxy32=0 +posx32=50 +posy32=50 +sizx32=800 +sizy32=600 +title33=Championship Manager 99-00 +path33=C:\Games\CM9900\cm9900.exe +module33= +ver33=0 +flag33=10306 +flagg33=0 +tflag33=0 +initx33=0 +inity33=0 +minx33=0 +miny33=0 +maxx33=0 +maxy33=0 +posx33=50 +posy33=50 +sizx33=800 +sizy33=600 +title34=Civilization Call to Power +path34=C:\Games\civctp\Civilization_Call_To_Power\ctp_program\ctp\civctp.exe +module34= +ver34=0 +flag34=545267746 +flagg34=0 +tflag34=0 +initx34=0 +inity34=0 +minx34=0 +miny34=0 +maxx34=0 +maxy34=0 +posx34=50 +posy34=50 +sizx34=800 +sizy34=600 +title35=Claw +path35=C:\Games\claw\clawexe.exe +module35= +ver35=0 +flag35=24610 +flagg35=0 +tflag35=0 +initx35=0 +inity35=0 +minx35=0 +miny35=0 +maxx35=0 +maxy35=0 +posx35=50 +posy35=50 +sizx35=800 +sizy35=600 +title36=Commando's Behind Enemy Lines Demo +path36=C:\Games\Commando's Behind Enemy Lines Demo\COMANDOS\Comandos.exe +module36= +ver36=0 +flag36=1744838944 +flagg36=0 +tflag36=64 +initx36=0 +inity36=0 +minx36=0 +miny36=0 +maxx36=0 +maxy36=0 +posx36=50 +posy36=50 +sizx36=800 +sizy36=600 +title37=Commandos II: Men of Courage +path37=C:\Games\Commandos II\comm2.exe +module37= +ver37=0 +flag37=-1207951008 +flagg37=0 +tflag37=0 +initx37=0 +inity37=0 +minx37=0 +miny37=0 +maxx37=0 +maxy37=0 +posx37=50 +posy37=50 +sizx37=800 +sizy37=600 +title38=Crazy Taxy +path38=C:\Games\Crazy_Taxi\Crazy Taxi PC Version\crazy_taxi_pc.exe +module38= +ver38=8 +flag38=536870945 +flagg38=0 +tflag38=0 +initx38=0 +inity38=0 +minx38=0 +miny38=0 +maxx38=0 +maxy38=0 +posx38=50 +posy38=50 +sizx38=800 +sizy38=600 +title39=Crush! Deluxe +path39=C:\Games\Crush! Deluxe\CRUSHD.EXE +module39= +ver39=0 +flag39=134492706 +flagg39=0 +tflag39=0 +initx39=0 +inity39=0 +minx39=0 +miny39=0 +maxx39=0 +maxy39=0 +posx39=50 +posy39=50 +sizx39=800 +sizy39=600 +title40=Cybermercs +path40=C:\Games\cybermercs\cybermercs.exe +module40= +ver40=0 +flag40=134234146 +flagg40=16 +tflag40=0 +initx40=0 +inity40=0 +minx40=0 +miny40=0 +maxx40=0 +maxy40=0 +posx40=50 +posy40=50 +sizx40=800 +sizy40=600 +title41=Daikatana +path41=D:\Games\Daikatana\daikatana.exe +module41=OpenGL32.dll +ver41=9 +flag41=514 +flagg41=513 +tflag41=387 +initx41=0 +inity41=0 +minx41=0 +miny41=0 +maxx41=0 +maxy41=0 +posx41=50 +posy41=50 +sizx41=800 +sizy41=600 +title42=Darius Gaiden +path42=C:\Games\Darius_gaiden\DARIUS.EXE +module42= +ver42=0 +flag42=536870946 +flagg42=0 +tflag42=0 +initx42=0 +inity42=0 +minx42=0 +miny42=0 +maxx42=0 +maxy42=0 +posx42=50 +posy42=50 +sizx42=800 +sizy42=600 +title43=Dark Colony the Council Wars +path43=C:\Games\darkcolony_council\dc\DC16.EXE +module43= +ver43=0 +flag43=268435462 +flagg43=0 +tflag43=0 +initx43=0 +inity43=0 +minx43=0 +miny43=0 +maxx43=0 +maxy43=0 +posx43=50 +posy43=50 +sizx43=800 +sizy43=600 +title44=Darkstone +path44=C:\Games\darkstone\Darkstone.exe +module44= +ver44=0 +flag44=134234148 +flagg44=0 +tflag44=0 +initx44=0 +inity44=0 +minx44=0 +miny44=0 +maxx44=0 +maxy44=0 +posx44=50 +posy44=50 +sizx44=800 +sizy44=600 +title45=Dave Mirra Freestyle BMX Demo +path45=C:\Games\Dave Mirra Freestyle BMX\NgBMXDemo.exe +module45= +ver45=0 +flag45=8224 +flagg45=0 +tflag45=0 +initx45=0 +inity45=0 +minx45=0 +miny45=0 +maxx45=0 +maxy45=0 +posx45=50 +posy45=50 +sizx45=800 +sizy45=600 +title46=Daytona USA Deluxe +path46=C:\Games\Daytona USA Deluxe\DAYTONA USA Deluxe.exe +module46= +ver46=0 +flag46=402661410 +flagg46=0 +tflag46=0 +initx46=0 +inity46=0 +minx46=0 +miny46=0 +maxx46=0 +maxy46=0 +posx46=50 +posy46=50 +sizx46=800 +sizy46=600 +title47=Deadlock 2 +path47=C:\Games\deadlock2\DEADLOCK.EXE +module47= +ver47=0 +flag47=-2012995550 +flagg47=0 +tflag47=0 +initx47=0 +inity47=0 +minx47=0 +miny47=0 +maxx47=0 +maxy47=0 +posx47=50 +posy47=50 +sizx47=800 +sizy47=600 +title48=Deeper Dungeons 95 +path48=C:\Games\Keeper95\Deeper95.exe +module48= +ver48=0 +flag48=268460070 +flagg48=0 +tflag48=0 +initx48=0 +inity48=0 +minx48=0 +miny48=0 +maxx48=0 +maxy48=0 +posx48=50 +posy48=50 +sizx48=800 +sizy48=600 +title49=Delta Force +path49=C:\Games\Delta Force\Df.exe +module49= +ver49=0 +flag49=34 +flagg49=0 +tflag49=0 +initx49=0 +inity49=0 +minx49=0 +miny49=0 +maxx49=0 +maxy49=0 +posx49=50 +posy49=50 +sizx49=800 +sizy49=600 +title50=Dementia +path50=C:\Games\dementia\program\CRUX.EXE -h +module50= +ver50=0 +flag50=536887330 +flagg50=0 +tflag50=2 +initx50=0 +inity50=0 +minx50=0 +miny50=0 +maxx50=0 +maxy50=0 +posx50=50 +posy50=50 +sizx50=800 +sizy50=600 +title51=Dethkarz +path51=D:\Games\DethKarz\Dethkarz.exe +module51= +ver51=0 +flag51=0 +flagg51=0 +tflag51=0 +initx51=0 +inity51=0 +minx51=0 +miny51=0 +maxx51=0 +maxy51=0 +posx51=50 +posy51=50 +sizx51=800 +sizy51=600 +title52=Devil Inside +path52=C:\Games\Devil Inside\Devil.exe +module52= +ver52=0 +flag52=32 +flagg52=0 +tflag52=0 +initx52=0 +inity52=0 +minx52=0 +miny52=0 +maxx52=0 +maxy52=0 +posx52=50 +posy52=50 +sizx52=800 +sizy52=600 +title53=Diablo +path53=D:\Games\Diablo\Diablo.exe +module53= +ver53=1 +flag53=134234150 +flagg53=65552 +tflag53=3 +initx53=0 +inity53=0 +minx53=0 +miny53=0 +maxx53=0 +maxy53=0 +posx53=50 +posy53=50 +sizx53=800 +sizy53=600 +title54=Dink Smallwood (BAD) +path54=C:\Games\Dink SmallWood\Dink.exe +module54= +ver54=0 +flag54=546 +flagg54=0 +tflag54=258 +initx54=0 +inity54=0 +minx54=0 +miny54=0 +maxx54=0 +maxy54=0 +posx54=50 +posy54=50 +sizx54=800 +sizy54=600 +title55=Doom 64 Absolution +path55=D:\Games\Doom 64\Bin\Absolution.exe +module55= +ver55=8 +flag55=0 +flagg55=0 +tflag55=259 +initx55=0 +inity55=0 +minx55=0 +miny55=0 +maxx55=0 +maxy55=0 +posx55=50 +posy55=50 +sizx55=800 +sizy55=600 +title56=Drakan +path56=C:\Games\Drakan\drakan.exe +module56= +ver56=0 +flag56=536887328 +flagg56=0 +tflag56=0 +initx56=0 +inity56=0 +minx56=0 +miny56=0 +maxx56=0 +maxy56=0 +posx56=50 +posy56=50 +sizx56=800 +sizy56=600 +title57=Dungeon Keeper 2 GOG release +path57=D:\Games\Dungeon Keeper 2 GOG release\DKII.EXE +module57= +ver57=0 +flag57=134217762 +flagg57=81920 +tflag57=0 +initx57=0 +inity57=0 +minx57=0 +miny57=0 +maxx57=0 +maxy57=0 +posx57=50 +posy57=50 +sizx57=800 +sizy57=600 +title58=Dungeon Keeper 95 +path58=D:\Games\Keeper95\KEEPER95.EXE +module58= +ver58=0 +flag58=24614 +flagg58=0 +tflag58=64 +initx58=0 +inity58=0 +minx58=0 +miny58=0 +maxx58=0 +maxy58=0 +posx58=50 +posy58=50 +sizx58=800 +sizy58=600 +title59=Dungeon Keeper II +path59=C:\Games\Dungeon Keeper II\DKII.exe +module59= +ver59=0 +flag59=34 +flagg59=0 +tflag59=82 +initx59=0 +inity59=0 +minx59=0 +miny59=0 +maxx59=0 +maxy59=0 +posx59=50 +posy59=50 +sizx59=800 +sizy59=600 +title60=Emergency Fighters for life +path60=D:\Games\Emergency\EMERGY.EXE +module60= +ver60=0 +flag60=134283811 +flagg60=18 +tflag60=3 +initx60=0 +inity60=0 +minx60=0 +miny60=0 +maxx60=0 +maxy60=0 +posx60=50 +posy60=50 +sizx60=800 +sizy60=600 +title61=Enemy Infestation +path61=C:\Games\Enemy Infestation (1998)\Ei.exe +module61= +ver61=0 +flag61=38 +flagg61=0 +tflag61=0 +initx61=0 +inity61=0 +minx61=0 +miny61=0 +maxx61=0 +maxy61=0 +posx61=50 +posy61=50 +sizx61=800 +sizy61=600 +title62=Evil Genius +path62=D:\Games\Evil Genius\ReleaseExe\EvilGenius_Cracked.exe +module62= +ver62=9 +flag62=2053 +flagg62=80 +tflag62=0 +initx62=0 +inity62=0 +minx62=0 +miny62=0 +maxx62=0 +maxy62=0 +posx62=50 +posy62=50 +sizx62=800 +sizy62=600 +title63=Expendable +path63=C:\Games\eXpendable\go.exe -nocputest +module63= +ver63=0 +flag63=402653280 +flagg63=1 +tflag63=2 +initx63=0 +inity63=0 +minx63=0 +miny63=0 +maxx63=0 +maxy63=0 +posx63=50 +posy63=50 +sizx63=800 +sizy63=600 +title64=Fallen Heaven (BAD) +path64=C:\Games\falhaven\Exe\FALLEN.EXE +module64= +ver64=0 +flag64=679485962 +flagg64=32 +tflag64=0 +initx64=0 +inity64=0 +minx64=0 +miny64=0 +maxx64=0 +maxy64=0 +posx64=0 +posy64=0 +sizx64=800 +sizy64=600 +title65=Fallout +path65=D:\Games\Fallout\FALLOUTW.EXE +module65= +ver65=1 +flag65=134217734 +flagg65=16 +tflag65=0 +initx65=0 +inity65=0 +minx65=0 +miny65=0 +maxx65=0 +maxy65=0 +posx65=50 +posy65=50 +sizx65=800 +sizy65=600 +title66=FreakOut +path66=C:\Games\Freak Out - Extreme Freeride\FreakOut.exe +module66= +ver66=9 +flag66=0 +flagg66=0 +tflag66=2 +initx66=0 +inity66=0 +minx66=0 +miny66=0 +maxx66=0 +maxy66=0 +posx66=50 +posy66=50 +sizx66=800 +sizy66=600 +title67=Funtracks +path67=C:\Games\Funtracks\Fun_win.exe +module67= +ver67=1 +flag67=2 +flagg67=0 +tflag67=258 +initx67=0 +inity67=0 +minx67=0 +miny67=0 +maxx67=0 +maxy67=0 +posx67=50 +posy67=50 +sizx67=800 +sizy67=600 +title68=Galapagos +path68=C:\Games\Galapagos\GALA.EXE +module68= +ver68=0 +flag68=134217760 +flagg68=0 +tflag68=0 +initx68=0 +inity68=0 +minx68=0 +miny68=0 +maxx68=0 +maxy68=0 +posx68=50 +posy68=50 +sizx68=800 +sizy68=600 +title69=Gangsters +path69=C:\Games\Gangsters\gangsters.exe +module69= +ver69=0 +flag69=134217762 +flagg69=0 +tflag69=2 +initx69=0 +inity69=0 +minx69=0 +miny69=0 +maxx69=0 +maxy69=0 +posx69=100 +posy69=100 +sizx69=800 +sizy69=600 +title70=GeneRally +path70=C:\Games\generally105\GeneRally.exe +module70= +ver70=0 +flag70=34 +flagg70=0 +tflag70=0 +initx70=0 +inity70=0 +minx70=0 +miny70=0 +maxx70=0 +maxy70=0 +posx70=50 +posy70=50 +sizx70=800 +sizy70=600 +title71=Get Medieval +path71=C:\Games\Get Medieval\MEDIEVAL.EXE +module71= +ver71=0 +flag71=34 +flagg71=2 +tflag71=0 +initx71=0 +inity71=0 +minx71=0 +miny71=0 +maxx71=0 +maxy71=0 +posx71=0 +posy71=0 +sizx71=800 +sizy71=600 +title72=Gift +path72=C:\Games\Gift\Gift.exe +module72= +ver72=0 +flag72=4196384 +flagg72=0 +tflag72=34 +initx72=0 +inity72=0 +minx72=0 +miny72=0 +maxx72=0 +maxy72=0 +posx72=0 +posy72=0 +sizx72=0 +sizy72=0 +title73=Golden Age of Racing +path73=C:\Games\Golden Age of Racing\GAOR.exe +module73= +ver73=0 +flag73=34 +flagg73=0 +tflag73=0 +initx73=0 +inity73=0 +minx73=0 +miny73=0 +maxx73=0 +maxy73=0 +posx73=50 +posy73=50 +sizx73=800 +sizy73=600 +title74=Gp500 for Win2K +path74=C:\Games\gp500\gp500_win2k.exe +module74= +ver74=1 +flag74=545677860 +flagg74=0 +tflag74=2 +initx74=0 +inity74=0 +minx74=0 +miny74=0 +maxx74=0 +maxy74=0 +posx74=50 +posy74=50 +sizx74=800 +sizy74=600 +title75=G-Police +path75=C:\Games\gpolice\GPOLICE.EXE +module75= +ver75=0 +flag75=67125286 +flagg75=0 +tflag75=2 +initx75=0 +inity75=0 +minx75=0 +miny75=0 +maxx75=0 +maxy75=0 +posx75=50 +posy75=50 +sizx75=800 +sizy75=600 +title76=Grand Prix Legends +path76=C:\Games\grand prix legends\gpl\gpl.exe +module76= +ver76=7 +flag76=134217760 +flagg76=4 +tflag76=0 +initx76=0 +inity76=0 +minx76=0 +miny76=0 +maxx76=0 +maxy76=0 +posx76=50 +posy76=50 +sizx76=0 +sizy76=0 +title77=Grim Fandango Demo +path77=C:\Games\GrimWebDemo\grimdemo.exe +module77= +ver77=0 +flag77=34 +flagg77=0 +tflag77=258 +initx77=0 +inity77=0 +minx77=0 +miny77=0 +maxx77=0 +maxy77=0 +posx77=50 +posy77=50 +sizx77=800 +sizy77=600 +title78=Half-Life Blue-Shift (d3d) +path78=D:\Games\Half-Life Blue-Shift\bshift.exe +module78= +ver78=10 +flag78=1073741826 +flagg78=513 +tflag78=259 +initx78=0 +inity78=0 +minx78=0 +miny78=0 +maxx78=0 +maxy78=0 +posx78=50 +posy78=50 +sizx78=640 +sizy78=480 +title79=Half-Life Uplink Demo +path79=D:\Games\Half-Life Uplink\hldemo.exe +module79= +ver79=1 +flag79=1073741826 +flagg79=512 +tflag79=3 +initx79=0 +inity79=0 +minx79=0 +miny79=0 +maxx79=0 +maxy79=0 +posx79=50 +posy79=50 +sizx79=640 +sizy79=480 +title80=Halo Combat Evolved +path80=D:\Games\Halo Combat Evolved\halo.exe +module80= +ver80=9 +flag80=570425377 +flagg80=0 +tflag80=479 +initx80=0 +inity80=0 +minx80=0 +miny80=0 +maxx80=0 +maxy80=0 +posx80=50 +posy80=50 +sizx80=800 +sizy80=600 +title81=Heart of Darkness +path81=C:\Games\Heart_of_Darkness\HODWin32.exe +module81= +ver81=0 +flag81=8226 +flagg81=0 +tflag81=0 +initx81=0 +inity81=0 +minx81=0 +miny81=0 +maxx81=0 +maxy81=0 +posx81=50 +posy81=50 +sizx81=800 +sizy81=600 +title82=Heavy Metal FAKK 2 +path82=C:\Games\Heavy Metal - FAKK2\fakk2.exe +module82= +ver82=0 +flag82=33554464 +flagg82=64 +tflag82=2 +initx82=0 +inity82=0 +minx82=0 +miny82=0 +maxx82=0 +maxy82=0 +posx82=50 +posy82=50 +sizx82=800 +sizy82=600 +title83=HellCopter +path83=C:\Games\hellcop\HCopter.exe +module83= +ver83=0 +flag83=-2013249500 +flagg83=256 +tflag83=0 +initx83=0 +inity83=0 +minx83=0 +miny83=0 +maxx83=0 +maxy83=0 +posx83=50 +posy83=50 +sizx83=800 +sizy83=600 +title84=Heroes of Might & Magic III Demo +path84=C:\Games\Heroes III Demo\h3demo.exe +module84= +ver84=1 +flag84=134234146 +flagg84=0 +tflag84=2 +initx84=0 +inity84=0 +minx84=0 +miny84=0 +maxx84=0 +maxy84=0 +posx84=50 +posy84=50 +sizx84=800 +sizy84=600 +title85=Hexen II (opengl) +path85=D:\Games\Hexen II\glh2.exe +module85= +ver85=10 +flag85=3 +flagg85=212993 +tflag85=387 +initx85=0 +inity85=0 +minx85=0 +miny85=0 +maxx85=0 +maxy85=0 +posx85=50 +posy85=50 +sizx85=800 +sizy85=600 +title86=Hexen II (software) +path86=D:\Games\Hexen II\h2.exe +module86= +ver86=10 +flag86=671088642 +flagg86=1052672 +tflag86=0 +initx86=0 +inity86=0 +minx86=0 +miny86=0 +maxx86=0 +maxy86=0 +posx86=50 +posy86=50 +sizx86=800 +sizy86=600 +title87=hover +path87=C:\Games\hover\hoverX.exe +module87= +ver87=0 +flag87=8224 +flagg87=0 +tflag87=0 +initx87=0 +inity87=0 +minx87=0 +miny87=0 +maxx87=0 +maxy87=0 +posx87=50 +posy87=50 +sizx87=800 +sizy87=600 +title88=Hyperblade +path88=D:\Games\Hyperblade\HYPERX.EXE +module88= +ver88=0 +flag88=163 +flagg88=1052690 +tflag88=3 +initx88=0 +inity88=0 +minx88=0 +miny88=0 +maxx88=0 +maxy88=0 +posx88=50 +posy88=50 +sizx88=800 +sizy88=600 +title89=Idinaloq +path89=C:\Games\idina101\idinaloq.exe +module89= +ver89=0 +flag89=32 +flagg89=0 +tflag89=0 +initx89=0 +inity89=0 +minx89=0 +miny89=0 +maxx89=0 +maxy89=0 +posx89=50 +posy89=50 +sizx89=800 +sizy89=600 +title90=Immanis +path90=C:\Games\Immanis CD release\immanis.exe +module90= +ver90=0 +flag90=24611 +flagg90=0 +tflag90=0 +initx90=0 +inity90=0 +minx90=0 +miny90=0 +maxx90=0 +maxy90=0 +posx90=50 +posy90=50 +sizx90=800 +sizy90=600 +title91=Immanis (v2) +path91=C:\Games\Immanis CD release\immanis_v2.exe +module91= +ver91=0 +flag91=268460067 +flagg91=0 +tflag91=0 +initx91=0 +inity91=0 +minx91=0 +miny91=0 +maxx91=0 +maxy91=0 +posx91=50 +posy91=50 +sizx91=800 +sizy91=600 +title92=In the Hunt +path92=C:\Games\In The Hunt\e8.exe +module92= +ver92=0 +flag92=2 +flagg92=0 +tflag92=0 +initx92=0 +inity92=0 +minx92=0 +miny92=0 +maxx92=0 +maxy92=0 +posx92=50 +posy92=50 +sizx92=800 +sizy92=600 +title93=Incoming Forces +path93=D:\Games\Incoming Forces\forces.exe +module93= +ver93=8 +flag93=134217760 +flagg93=0 +tflag93=3 +initx93=0 +inity93=0 +minx93=0 +miny93=0 +maxx93=0 +maxy93=0 +posx93=50 +posy93=50 +sizx93=800 +sizy93=600 +title94=International Superstar Soccer 3 +path94=C:\Games\ISS_3\iss3.exe +module94= +ver94=8 +flag94=545267715 +flagg94=0 +tflag94=0 +initx94=0 +inity94=0 +minx94=0 +miny94=0 +maxx94=0 +maxy94=0 +posx94=50 +posy94=50 +sizx94=800 +sizy94=600 +title95=Jedi Knight II Jedi Outcast +path95=D:\Games\Jedi Knight II Jedi Outcast\GameData\jk2sp.exe +module95= +ver95=0 +flag95=0 +flagg95=512 +tflag95=267 +initx95=0 +inity95=0 +minx95=0 +miny95=0 +maxx95=0 +maxy95=0 +posx95=50 +posy95=50 +sizx95=800 +sizy95=600 +title96=Jet Moto +path96=M:\JETMOTO.EXE +module96= +ver96=0 +flag96=139298 +flagg96=0 +tflag96=0 +initx96=0 +inity96=0 +minx96=0 +miny96=0 +maxx96=0 +maxy96=0 +posx96=50 +posy96=50 +sizx96=800 +sizy96=600 +title97=Kiss Psyco Cyrcus +path97=C:\Games\Psycho\client.exe +module97=d3d.ren +ver97=7 +flag97=537018404 +flagg97=0 +tflag97=0 +initx97=0 +inity97=0 +minx97=0 +miny97=0 +maxx97=0 +maxy97=0 +posx97=50 +posy97=50 +sizx97=800 +sizy97=600 +title98=Krazy Ivan +path98=C:\Games\Krazy Ivan\KRAZY.EXE +module98= +ver98=0 +flag98=536870914 +flagg98=0 +tflag98=0 +initx98=0 +inity98=0 +minx98=0 +miny98=0 +maxx98=0 +maxy98=0 +posx98=50 +posy98=50 +sizx98=800 +sizy98=600 +title99=Last Bronx +path99=C:\Games\Last_Bronx\LB.EXE +module99= +ver99=0 +flag99=40994 +flagg99=0 +tflag99=64 +initx99=0 +inity99=0 +minx99=0 +miny99=0 +maxx99=0 +maxy99=0 +posx99=50 +posy99=50 +sizx99=800 +sizy99=600 +title100=Lionheart +path100=C:\Games\Lionheart Demo\Lionheart.exe +module100= +ver100=0 +flag100=-2147483612 +flagg100=0 +tflag100=0 +initx100=0 +inity100=0 +minx100=0 +miny100=0 +maxx100=0 +maxy100=0 +posx100=50 +posy100=50 +sizx100=800 +sizy100=600 +title101=lithtech.exe +path101=D:\Games\NOLF Technology Demo\lithtech.exe +module101= +ver101=7 +flag101=0 +flagg101=512 +tflag101=259 +initx101=0 +inity101=0 +minx101=0 +miny101=0 +maxx101=0 +maxy101=0 +posx101=50 +posy101=50 +sizx101=800 +sizy101=600 +title102=M.A.X. 2 +path102=C:\Games\MAX 2\MAX_2\MAX2\MAX2.EXE +module102= +ver102=0 +flag102=34 +flagg102=0 +tflag102=0 +initx102=0 +inity102=0 +minx102=0 +miny102=0 +maxx102=0 +maxy102=0 +posx102=50 +posy102=50 +sizx102=800 +sizy102=600 +title103=M1 Tank Platoon 2 +path103=C:\Games\M1 Tank Platoon 2\M1TP2.exe +module103= +ver103=8 +flag103=34 +flagg103=0 +tflag103=0 +initx103=0 +inity103=0 +minx103=0 +miny103=0 +maxx103=0 +maxy103=0 +posx103=50 +posy103=50 +sizx103=800 +sizy103=600 +title104=Mario Worlds (stripped PE) +path104=C:\Games\Mario Worlds\Mario Worlds.exe +module104= +ver104=1 +flag104=2 +flagg104=1 +tflag104=386 +initx104=0 +inity104=0 +minx104=0 +miny104=0 +maxx104=0 +maxy104=0 +posx104=50 +posy104=50 +sizx104=800 +sizy104=600 +title105=Masters of Orion 2 +path105=C:\Games\Orion2\Orion95.exe +module105= +ver105=0 +flag105=34 +flagg105=0 +tflag105=0 +initx105=0 +inity105=0 +minx105=0 +miny105=0 +maxx105=0 +maxy105=0 +posx105=50 +posy105=50 +sizx105=800 +sizy105=600 +title106=Microsoft Flight Simulator 98 +path106=C:\Games\Flight Simulator 98\FLTSIM98.EXE +module106= +ver106=0 +flag106=288 +flagg106=0 +tflag106=0 +initx106=0 +inity106=0 +minx106=0 +miny106=0 +maxx106=0 +maxy106=0 +posx106=50 +posy106=50 +sizx106=800 +sizy106=600 +title107=Microsoft Midtown Madness +path107=C:\Games\Midtown Madness\midtown.exe +module107= +ver107=0 +flag107=8192 +flagg107=0 +tflag107=2 +initx107=0 +inity107=0 +minx107=0 +miny107=0 +maxx107=0 +maxy107=0 +posx107=50 +posy107=50 +sizx107=800 +sizy107=600 +title108=Microsoft Midtown Madness Trial (BAD) +path108=C:\Games\Midtown Madness Trial\midtrial.exe +module108= +ver108=0 +flag108=2 +flagg108=0 +tflag108=0 +initx108=0 +inity108=0 +minx108=0 +miny108=0 +maxx108=0 +maxy108=0 +posx108=0 +posy108=0 +sizx108=800 +sizy108=600 +title109=Microsoft Motocross Madness 2 (BAD!!) +path109=C:\Games\Motocross Madness 2\MCM2.cracked.EXE +module109= +ver109=7 +flag109=201326664 +flagg109=1 +tflag109=82 +initx109=0 +inity109=0 +minx109=0 +miny109=0 +maxx109=0 +maxy109=0 +posx109=50 +posy109=50 +sizx109=800 +sizy109=600 +title110=Microsoft Motocross Madness Trial (BAD) +path110=C:\Games\Motocross Madness Trial\mcm.exe +module110= +ver110=1 +flag110=134225952 +flagg110=0 +tflag110=130 +initx110=0 +inity110=0 +minx110=0 +miny110=0 +maxx110=0 +maxy110=0 +posx110=50 +posy110=50 +sizx110=0 +sizy110=0 +title111=Mission Force Cyberstorm (BAD ?) +path111=C:\Games\SIERRA\CSTORM\CSTORM.EXE +module111= +ver111=0 +flag111=33562658 +flagg111=0 +tflag111=0 +initx111=0 +inity111=0 +minx111=0 +miny111=0 +maxx111=0 +maxy111=0 +posx111=50 +posy111=50 +sizx111=0 +sizy111=0 +title112=Monopoly 3D +path112=C:\Games\Monopoly (Edition 3D)\Monopoly.exe +module112= +ver112=0 +flag112=134244388 +flagg112=0 +tflag112=2 +initx112=0 +inity112=0 +minx112=0 +miny112=0 +maxx112=0 +maxy112=0 +posx112=50 +posy112=50 +sizx112=800 +sizy112=600 +title113=Monster Truck Madness 2 +path113=C:\Games\Monster Truck Madness 2\Monster.EXE +module113= +ver113=1 +flag113=34 +flagg113=1 +tflag113=0 +initx113=0 +inity113=0 +minx113=0 +miny113=0 +maxx113=0 +maxy113=0 +posx113=50 +posy113=50 +sizx113=800 +sizy113=600 +title114=Moto Racer Demo +path114=D:\Games\Moto Racer Demo\PlayDemo.exe +module114= +ver114=0 +flag114=167903267 +flagg114=192 +tflag114=14 +initx114=0 +inity114=0 +minx114=0 +miny114=0 +maxx114=0 +maxy114=0 +posx114=50 +posy114=50 +sizx114=800 +sizy114=600 +title115=Necrodrome +path115=C:\Games\Necrodome\NECRO95.EXE +module115= +ver115=0 +flag115=268435495 +flagg115=256 +tflag115=0 +initx115=0 +inity115=0 +minx115=0 +miny115=0 +maxx115=0 +maxy115=0 +posx115=50 +posy115=50 +sizx115=800 +sizy115=600 +title116=Need For Speed - Porsche 2000 +path116=C:\Games\Need For Speed - Porsche 2000\Porsche.exe +module116= +ver116=7 +flag116=0 +flagg116=0 +tflag116=258 +initx116=0 +inity116=0 +minx116=0 +miny116=0 +maxx116=0 +maxy116=0 +posx116=50 +posy116=50 +sizx116=800 +sizy116=600 +title117=Netstorm Islands at War +path117=C:\Games\Netstorm\Netstorm.exe +module117= +ver117=0 +flag117=2 +flagg117=0 +tflag117=0 +initx117=0 +inity117=0 +minx117=0 +miny117=0 +maxx117=0 +maxy117=0 +posx117=50 +posy117=50 +sizx117=800 +sizy117=600 +title118=Nox +path118=C:\Games\Nox2\Game.exe +module118= +ver118=0 +flag118=939540515 +flagg118=0 +tflag118=386 +initx118=0 +inity118=0 +minx118=0 +miny118=0 +maxx118=0 +maxy118=0 +posx118=50 +posy118=50 +sizx118=800 +sizy118=600 +title119=Pacific General +path119=C:\Games\Pacific General\PACGEN.EXE +module119= +ver119=0 +flag119=8226 +flagg119=0 +tflag119=2 +initx119=0 +inity119=0 +minx119=0 +miny119=0 +maxx119=0 +maxy119=0 +posx119=50 +posy119=50 +sizx119=800 +sizy119=600 +title120=Project Nomads Demo (BAD) +path120=C:\Games\Project Nomads Demo\bin\win32\nomads.exe +module120= +ver120=8 +flag120=-1476394912 +flagg120=256 +tflag120=258 +initx120=0 +inity120=0 +minx120=0 +miny120=0 +maxx120=0 +maxy120=0 +posx120=50 +posy120=50 +sizx120=800 +sizy120=600 +title121=Puzzle Bubble +path121=C:\Games\Puzzle Bubble\PB.EXE +module121= +ver121=0 +flag121=34 +flagg121=0 +tflag121=0 +initx121=0 +inity121=0 +minx121=0 +miny121=0 +maxx121=0 +maxy121=0 +posx121=50 +posy121=50 +sizx121=800 +sizy121=600 +title122=Quake 2 +path122=D:\Games\QUAKE2\quake2.exe +module122= +ver122=10 +flag122=167772672 +flagg122=1 +tflag122=387 +initx122=0 +inity122=0 +minx122=0 +miny122=0 +maxx122=0 +maxy122=0 +posx122=50 +posy122=50 +sizx122=800 +sizy122=600 +title123=Quake 3 Arena +path123=D:\Games\Q3A\quake3.exe +module123= +ver123=10 +flag123=0 +flagg123=513 +tflag123=0 +initx123=0 +inity123=0 +minx123=0 +miny123=0 +maxx123=0 +maxy123=0 +posx123=50 +posy123=50 +sizx123=800 +sizy123=600 +title124=Raiden II +path124=C:\Games\Raiden II\Raiden II\RAIDENII.EXE +module124= +ver124=0 +flag124=34 +flagg124=0 +tflag124=0 +initx124=0 +inity124=0 +minx124=0 +miny124=0 +maxx124=0 +maxy124=0 +posx124=50 +posy124=50 +sizx124=800 +sizy124=600 +title125=Railroad Tycoon II +path125=C:\Games\Railroad.Tycoon.II\RT2.EXE +module125= +ver125=1 +flag125=134225954 +flagg125=0 +tflag125=0 +initx125=0 +inity125=0 +minx125=0 +miny125=0 +maxx125=0 +maxy125=0 +posx125=50 +posy125=50 +sizx125=800 +sizy125=600 +title126=Rally Championship 2000 +path126=C:\Games\Rally Championship 2000\RAL.EXE +module126= +ver126=0 +flag126=67108864 +flagg126=0 +tflag126=2 +initx126=0 +inity126=0 +minx126=0 +miny126=0 +maxx126=0 +maxy126=0 +posx126=50 +posy126=50 +sizx126=800 +sizy126=600 +title127=Rebel Moon Rising +path127=C:\Games\Rebel Moon Rising\Rmr.exe +module127= +ver127=0 +flag127=0 +flagg127=0 +tflag127=0 +initx127=0 +inity127=0 +minx127=0 +miny127=0 +maxx127=0 +maxy127=0 +posx127=50 +posy127=50 +sizx127=800 +sizy127=600 +title128=Redline - Gang Warfare 2066 +path128=C:\Games\Redline - Gang Warfare 2066\redline.exe +module128= +ver128=0 +flag128=32 +flagg128=0 +tflag128=386 +initx128=0 +inity128=0 +minx128=0 +miny128=0 +maxx128=0 +maxy128=0 +posx128=50 +posy128=50 +sizx128=800 +sizy128=600 +title129=Resident Evil +path129=D:\Games\Resident Evil\residentevil.patched.exe +module129= +ver129=1 +flag129=134217827 +flagg129=128 +tflag129=2 +initx129=0 +inity129=0 +minx129=0 +miny129=0 +maxx129=0 +maxy129=0 +posx129=50 +posy129=50 +sizx129=800 +sizy129=600 +title130=Re-Volt +path130=C:\Games\Re-Volt\REVOLT.EXE +module130= +ver130=0 +flag130=134217792 +flagg130=0 +tflag130=0 +initx130=0 +inity130=0 +minx130=0 +miny130=0 +maxx130=0 +maxy130=0 +posx130=50 +posy130=50 +sizx130=800 +sizy130=600 +title131=Road Rash +path131=D:\Games\Road Rash\ROADRASH\ROADRASH.EXE +module131= +ver131=0 +flag131=134217730 +flagg131=0 +tflag131=387 +initx131=0 +inity131=0 +minx131=0 +miny131=0 +maxx131=0 +maxy131=0 +posx131=50 +posy131=50 +sizx131=800 +sizy131=600 +title132=Road Rash Demo +path132=D:\Games\RoadRash DEMO\DEMORASH.EXE +module132= +ver132=0 +flag132=134218242 +flagg132=0 +tflag132=259 +initx132=0 +inity132=0 +minx132=0 +miny132=0 +maxx132=0 +maxy132=0 +posx132=50 +posy132=50 +sizx132=800 +sizy132=600 +title133=RollerCoaster Tycoon 2 Mini Game +path133=C:\Games\RollerCoaster Tycoon 2 Mini Game\rct2.exe +module133= +ver133=1 +flag133=536870946 +flagg133=0 +tflag133=0 +initx133=0 +inity133=0 +minx133=0 +miny133=0 +maxx133=0 +maxy133=0 +posx133=0 +posy133=0 +sizx133=800 +sizy133=600 +title134=Sega Rally 2 Championship +path134=C:\Games\Sega Rally 2 Championship\SEGA RALLY 2.exe +module134= +ver134=1 +flag134=268435488 +flagg134=2 +tflag134=0 +initx134=0 +inity134=0 +minx134=0 +miny134=0 +maxx134=0 +maxy134=0 +posx134=0 +posy134=0 +sizx134=800 +sizy134=600 +title135=Sentinel Returns +path135=D:\Games\Sentinel Returns\Sentinel.exe +module135= +ver135=1 +flag135=3 +flagg135=0 +tflag135=0 +initx135=0 +inity135=0 +minx135=0 +miny135=0 +maxx135=0 +maxy135=0 +posx135=50 +posy135=50 +sizx135=800 +sizy135=600 +title136=Shadow Master (TBD) +path136=C:\Games\Shadow Master\rmg.exe +module136= +ver136=1 +flag136=32 +flagg136=256 +tflag136=450 +initx136=0 +inity136=0 +minx136=0 +miny136=0 +maxx136=0 +maxy136=0 +posx136=50 +posy136=50 +sizx136=800 +sizy136=600 +title137=Sid Meier's SimGolf Demo +path137=C:\Games\Sid Meier's SimGolf Demo\golf.exe +module137=jgl.dll +ver137=0 +flag137=33554434 +flagg137=0 +tflag137=2 +initx137=0 +inity137=0 +minx137=0 +miny137=0 +maxx137=0 +maxy137=0 +posx137=50 +posy137=50 +sizx137=800 +sizy137=600 +title138=Sin, Wages of (sw renderer) +path138=D:\Games\sin\sin.exe +module138=ref_gl.dll ref_soft.dll +ver138=10 +flag138=402670082 +flagg138=769 +tflag138=387 +initx138=0 +inity138=0 +minx138=0 +miny138=0 +maxx138=0 +maxy138=0 +posx138=50 +posy138=50 +sizx138=800 +sizy138=600 +title139=SleepWalker +path139=C:\Games\SleepWalker\Sleepy.exe +module139= +ver139=0 +flag139=301989954 +flagg139=0 +tflag139=198 +initx139=0 +inity139=0 +minx139=0 +miny139=0 +maxx139=0 +maxy139=0 +posx139=50 +posy139=50 +sizx139=800 +sizy139=600 +title140=SnowBoard Racer +path140=C:\Games\Snowboard Racer\SnowBoard.exe +module140= +ver140=0 +flag140=268443681 +flagg140=0 +tflag140=0 +initx140=0 +inity140=0 +minx140=0 +miny140=0 +maxx140=0 +maxy140=0 +posx140=50 +posy140=50 +sizx140=800 +sizy140=600 +title141=Solaris (~BAD) +path141=c:\Games\Solaris\solaris.exe +module141= +ver141=7 +flag141=973078627 +flagg141=1 +tflag141=2 +initx141=0 +inity141=0 +minx141=0 +miny141=0 +maxx141=0 +maxy141=0 +posx141=50 +posy141=50 +sizx141=800 +sizy141=600 +title142=Soldiers at War +path142=D:\Games\Soldiers at War\SAW_Game.exe +module142= +ver142=0 +flag142=671359010 +flagg142=64 +tflag142=0 +initx142=0 +inity142=0 +minx142=0 +miny142=0 +maxx142=0 +maxy142=0 +posx142=50 +posy142=50 +sizx142=640 +sizy142=480 +title143=Sonic 3 +path143=C:\Games\Sonic 3 + Sonic et Knuckles\Sonic 3\SONIC3K.EXE +module143= +ver143=1 +flag143=546 +flagg143=0 +tflag143=0 +initx143=0 +inity143=0 +minx143=0 +miny143=0 +maxx143=0 +maxy143=0 +posx143=50 +posy143=50 +sizx143=800 +sizy143=600 +title144=Sonic 3D Blast +path144=C:\Games\Sonic3D\pcsonic.exe +module144= +ver144=0 +flag144=134217762 +flagg144=0 +tflag144=0 +initx144=0 +inity144=0 +minx144=0 +miny144=0 +maxx144=0 +maxy144=0 +posx144=50 +posy144=50 +sizx144=800 +sizy144=600 +title145=Sonic R +path145=C:\Games\SonicR\sonicr.exe +module145= +ver145=0 +flag145=8288 +flagg145=0 +tflag145=0 +initx145=0 +inity145=0 +minx145=0 +miny145=0 +maxx145=0 +maxy145=0 +posx145=50 +posy145=50 +sizx145=800 +sizy145=600 +title146=Soulbringer +path146=C:\Games\SoulBringer\SoulbringeVCnoeax.exe +module146= +ver146=0 +flag146=143024174 +flagg146=0 +tflag146=0 +initx146=0 +inity146=0 +minx146=0 +miny146=0 +maxx146=0 +maxy146=0 +posx146=50 +posy146=50 +sizx146=800 +sizy146=600 +title147=Speedboat Attack (BAD) +path147=C:\Games\Speedboat Attack\SBOAT.EXE +module147= +ver147=0 +flag147=541073954 +flagg147=0 +tflag147=2 +initx147=0 +inity147=0 +minx147=0 +miny147=0 +maxx147=0 +maxy147=0 +posx147=50 +posy147=50 +sizx147=800 +sizy147=600 +title148=Star trek Klingon Honor Guard +path148=D:\Games\Star trek Klingon Honor Guard\System\Khg.exe +module148=OGIDrv.dll +ver148=10 +flag148=0 +flagg148=513 +tflag148=386 +initx148=0 +inity148=0 +minx148=0 +miny148=0 +maxx148=0 +maxy148=0 +posx148=50 +posy148=50 +sizx148=800 +sizy148=600 +title149=Star Wars Episode 1 Racer +path149=C:\Games\sw racer\SWEP1RCR.EXE +module149= +ver149=0 +flag149=142606368 +flagg149=0 +tflag149=0 +initx149=0 +inity149=0 +minx149=0 +miny149=0 +maxx149=0 +maxy149=0 +posx149=50 +posy149=50 +sizx149=800 +sizy149=600 +title150=Star Wars Jedi Knight Jedi Academy +path150=D:\Games\Star_Wars_Jedi_Knight_Jedi_Academy\GameData\jasp.exe +module150= +ver150=10 +flag150=0 +flagg150=65536 +tflag150=3 +initx150=0 +inity150=0 +minx150=0 +miny150=0 +maxx150=0 +maxy150=0 +posx150=50 +posy150=50 +sizx150=800 +sizy150=600 +title151=Star Wars: Jedi Knight +path151=C:\Games\Jedi Knight\Jedi Knight\JK.EXE +module151= +ver151=0 +flag151=8226 +flagg151=0 +tflag151=0 +initx151=0 +inity151=0 +minx151=0 +miny151=0 +maxx151=0 +maxy151=0 +posx151=50 +posy151=50 +sizx151=800 +sizy151=600 +title152=Star Wars: the Gungan Frontier +path152=C:\Games\sw the gungan frontier\Gungan Frontier.exe +module152= +ver152=1 +flag152=402915362 +flagg152=512 +tflag152=0 +initx152=0 +inity152=0 +minx152=0 +miny152=0 +maxx152=0 +maxy152=0 +posx152=0 +posy152=0 +sizx152=800 +sizy152=600 +title153=Starship Troopers +path153=C:\Games\Starship Troopers - Terran Ascendancy\stta\StarshipTroopers.exe +module153= +ver153=1 +flag153=32 +flagg153=0 +tflag153=0 +initx153=0 +inity153=0 +minx153=0 +miny153=0 +maxx153=0 +maxy153=0 +posx153=50 +posy153=50 +sizx153=800 +sizy153=600 +title154=Starshot Space Circus +path154=D:\SpaceCircus.exe +module154= +ver154=0 +flag154=66 +flagg154=0 +tflag154=0 +initx154=0 +inity154=0 +minx154=0 +miny154=0 +maxx154=0 +maxy154=0 +posx154=50 +posy154=50 +sizx154=800 +sizy154=600 +title155=Stronghold Demo +path155=C:\Games\Firefly Studios' Stronghold - Demo\Stronghold Demo.exe +module155= +ver155=0 +flag155=98 +flagg155=0 +tflag155=0 +initx155=0 +inity155=0 +minx155=0 +miny155=0 +maxx155=0 +maxy155=0 +posx155=50 +posy155=50 +sizx155=800 +sizy155=600 +title156=Sub Culture +path156=C:\Games\Sub Culture\sc.exe +module156= +ver156=0 +flag156=66 +flagg156=256 +tflag156=10 +initx156=50 +inity156=50 +minx156=50 +miny156=50 +maxx156=800 +maxy156=600 +posx156=50 +posy156=50 +sizx156=800 +sizy156=600 +title157=Superbike 2001 +path157=C:\Games\Superbike 2001\Sbk2001.exe +module157= +ver157=1 +flag157=536887332 +flagg157=0 +tflag157=0 +initx157=0 +inity157=0 +minx157=0 +miny157=0 +maxx157=0 +maxy157=0 +posx157=50 +posy157=50 +sizx157=800 +sizy157=600 +title158=Syberia 2 Demo +path158=C:\Games\Syberia 2 Demo\Syberia2Demo.exe +module158= +ver158=8 +flag158=536887332 +flagg158=0 +tflag158=0 +initx158=0 +inity158=0 +minx158=0 +miny158=0 +maxx158=0 +maxy158=0 +posx158=50 +posy158=50 +sizx158=800 +sizy158=600 +title159=Syberia Demo +path159=C:\Games\SyberiaDemo\SyberiaDemo.exe +module159= +ver159=1 +flag159=536887332 +flagg159=0 +tflag159=0 +initx159=0 +inity159=0 +minx159=0 +miny159=0 +maxx159=0 +maxy159=0 +posx159=50 +posy159=50 +sizx159=800 +sizy159=600 +title160=System Shock 2 (BAD!!!) +path160=C:\Games\Sys Shock II\Shock2.exe +module160= +ver160=1 +flag160=0 +flagg160=64 +tflag160=0 +initx160=0 +inity160=0 +minx160=0 +miny160=0 +maxx160=0 +maxy160=0 +posx160=50 +posy160=50 +sizx160=800 +sizy160=600 +title161=Test Drive 4 +path161=D:\Games\Test Drive 4\td4.EXE +module161= +ver161=0 +flag161=-2013265886 +flagg161=16 +tflag161=3 +initx161=0 +inity161=0 +minx161=0 +miny161=0 +maxx161=0 +maxy161=0 +posx161=50 +posy161=50 +sizx161=800 +sizy161=600 +title162=The Nations Demo +path162=C:\Games\The Nations Demo\bin\Game.exe +module162= +ver162=1 +flag162=402661920 +flagg162=256 +tflag162=0 +initx162=0 +inity162=0 +minx162=0 +miny162=0 +maxx162=0 +maxy162=0 +posx162=50 +posy162=50 +sizx162=800 +sizy162=600 +title163=The Sims +path163=C:\Games\The Sims\Sims.exe +module163= +ver163=0 +flag163=134226976 +flagg163=0 +tflag163=2 +initx163=0 +inity163=0 +minx163=0 +miny163=0 +maxx163=0 +maxy163=0 +posx163=50 +posy163=50 +sizx163=800 +sizy163=600 +title164=Thief the Dark Project (FRE) +path164=C:\Games\thief\game\thieffixed.exe +module164= +ver164=1 +flag164=16390 +flagg164=0 +tflag164=0 +initx164=0 +inity164=0 +minx164=0 +miny164=0 +maxx164=0 +maxy164=0 +posx164=50 +posy164=50 +sizx164=800 +sizy164=600 +title165=TinTin: Prisoners of the Sun +path165=C:\Games\tintin\TINTINW.EXE +module165= +ver165=0 +flag165=34 +flagg165=0 +tflag165=2 +initx165=0 +inity165=0 +minx165=0 +miny165=0 +maxx165=0 +maxy165=0 +posx165=50 +posy165=50 +sizx165=800 +sizy165=600 +title166=Tintoy (BAD gfx) +path166=C:\Games\Tintoy\Tintoy.exe +module166= +ver166=0 +flag166=546 +flagg166=256 +tflag166=258 +initx166=0 +inity166=0 +minx166=0 +miny166=0 +maxx166=0 +maxy166=0 +posx166=50 +posy166=50 +sizx166=800 +sizy166=600 +title167=Tomb Raider - Anniversary +path167=C:\Games\Tomb Raider - Anniversary\tra.exe +module167= +ver167=9 +flag167=0 +flagg167=256 +tflag167=2 +initx167=0 +inity167=0 +minx167=0 +miny167=0 +maxx167=0 +maxy167=0 +posx167=50 +posy167=50 +sizx167=800 +sizy167=600 +title168=Tomb Raider 2 the Golden Mask +path168=D:\Games\TR2 Golden Mask\T2GOLD.EXE +module168= +ver168=0 +flag168=570688034 +flagg168=0 +tflag168=258 +initx168=0 +inity168=0 +minx168=0 +miny168=0 +maxx168=0 +maxy168=0 +posx168=50 +posy168=50 +sizx168=800 +sizy168=600 +title169=Tomb Raider 3 Demo +path169=C:\Games\Tomb Raider 3 - The Lost Artifact Demo\tr3gold.exe +module169= +ver169=1 +flag169=369098848 +flagg169=0 +tflag169=258 +initx169=0 +inity169=0 +minx169=0 +miny169=0 +maxx169=0 +maxy169=0 +posx169=50 +posy169=50 +sizx169=800 +sizy169=600 +title170=Tomb Raider 4 Demo +path170=C:\Games\Tomb Raider 4 - The Last Revelation (Demo)\tomb4.patched.exe +module170= +ver170=0 +flag170=234881056 +flagg170=16 +tflag170=258 +initx170=0 +inity170=0 +minx170=0 +miny170=0 +maxx170=0 +maxy170=0 +posx170=50 +posy170=50 +sizx170=800 +sizy170=600 +title171=Total Annihilation Kingdoms +path171=D:\Games\Total Annihilation Kingdoms\Kingdoms.exe +module171= +ver171=0 +flag171=134234146 +flagg171=0 +tflag171=0 +initx171=0 +inity171=0 +minx171=0 +miny171=0 +maxx171=0 +maxy171=0 +posx171=50 +posy171=50 +sizx171=800 +sizy171=600 +title172=Total Soccer 2000 +path172=D:\Games\Total Soccer 2000\Total Soccer 2000\SOCCERDX.EXE +module172= +ver172=1 +flag172=33554434 +flagg172=1134592 +tflag172=1 +initx172=0 +inity172=0 +minx172=0 +miny172=0 +maxx172=0 +maxy172=0 +posx172=50 +posy172=50 +sizx172=800 +sizy172=600 +title173=Ultim@te Race Pro +path173=C:\Games\Ultim@te race pro\Ultim@te Race Pro.exe +module173= +ver173=0 +flag173=570425440 +flagg173=256 +tflag173=0 +initx173=0 +inity173=0 +minx173=0 +miny173=0 +maxx173=0 +maxy173=0 +posx173=50 +posy173=50 +sizx173=800 +sizy173=600 +title174=Uprising - Join or Die +path174=D:\Games\Uprising\uprising.exe +module174= +ver174=0 +flag174=-2013265882 +flagg174=18 +tflag174=0 +initx174=0 +inity174=0 +minx174=0 +miny174=0 +maxx174=0 +maxy174=0 +posx174=50 +posy174=50 +sizx174=800 +sizy174=600 +title175=Urban Assault +path175=D:\Games\Urban Assault\UA.EXE +module175= +ver175=0 +flag175=671236130 +flagg175=256 +tflag175=3 +initx175=0 +inity175=0 +minx175=0 +miny175=0 +maxx175=0 +maxy175=0 +posx175=50 +posy175=50 +sizx175=800 +sizy175=600 +title176=Warcraft 2 Battlenet Edition +path176=D:\Games\Warcraft 2\Warcraft II BNE.exe +module176= +ver176=0 +flag176=24611 +flagg176=65552 +tflag176=0 +initx176=0 +inity176=0 +minx176=0 +miny176=0 +maxx176=0 +maxy176=0 +posx176=50 +posy176=50 +sizx176=800 +sizy176=600 +title177=WarHammer Rites of War +path177=C:\Games\Rites of War\RoW.exe +module177= +ver177=0 +flag177=134217760 +flagg177=128 +tflag177=0 +initx177=0 +inity177=0 +minx177=0 +miny177=0 +maxx177=0 +maxy177=0 +posx177=50 +posy177=50 +sizx177=800 +sizy177=600 +title178=Warlords 3 +path178=D:\Games\WARLORDS3\Darklord.exe +module178= +ver178=0 +flag178=-2013265374 +flagg178=1048608 +tflag178=2 +initx178=0 +inity178=0 +minx178=0 +miny178=0 +maxx178=0 +maxy178=0 +posx178=50 +posy178=50 +sizx178=800 +sizy178=600 +title179=WarTorn +path179=C:\Games\WarTorn\W.exe +module179= +ver179=0 +flag179=32 +flagg179=0 +tflag179=0 +initx179=0 +inity179=0 +minx179=0 +miny179=0 +maxx179=0 +maxy179=0 +posx179=50 +posy179=50 +sizx179=800 +sizy179=600 +title180=WarWind +path180=C:\Games\WarWind\WW.EXE +module180= +ver180=0 +flag180=16418 +flagg180=81936 +tflag180=0 +initx180=0 +inity180=0 +minx180=0 +miny180=0 +maxx180=0 +maxy180=0 +posx180=50 +posy180=50 +sizx180=800 +sizy180=600 +title181=Worms Armageddon Demo (BAD!!!) +path181=C:\Games\Worms Armageddon Demo\WaDemo.exe +module181= +ver181=1 +flag181=939524099 +flagg181=8 +tflag181=2 +initx181=0 +inity181=0 +minx181=0 +miny181=0 +maxx181=0 +maxy181=0 +posx181=0 +posy181=0 +sizx181=0 +sizy181=0 +title182=Worms World Party +path182=D:\Games\Worms World Party\wwp.exe +module182= +ver182=1 +flag182=8388610 +flagg182=0 +tflag182=0 +initx182=0 +inity182=0 +minx182=0 +miny182=0 +maxx182=0 +maxy182=0 +posx182=50 +posy182=50 +sizx182=800 +sizy182=600 +title183=Worms World Party Demo (BAD) +path183=C:\Games\WWP Demo\wwp.exe +module183=MFC42.DLL ltkrn10N.dll +ver183=1 +flag183=406847491 +flagg183=8 +tflag183=2 +initx183=0 +inity183=0 +minx183=0 +miny183=0 +maxx183=0 +maxy183=0 +posx183=0 +posy183=0 +sizx183=0 +sizy183=0 +title184=X-Com Enforcer +path184=C:\Games\X-Com Enforcer\System\xcom.exe +module184= +ver184=1 +flag184=32 +flagg184=0 +tflag184=0 +initx184=0 +inity184=0 +minx184=0 +miny184=0 +maxx184=0 +maxy184=0 +posx184=0 +posy184=0 +sizx184=800 +sizy184=600 +title185=X-Com Interceptor +path185=C:\Games\X-Com_Interceptor\X-COM Interceptor\Interceptor.exe +module185= +ver185=0 +flag185=16418 +flagg185=0 +tflag185=0 +initx185=0 +inity185=0 +minx185=0 +miny185=0 +maxx185=0 +maxy185=0 +posx185=50 +posy185=50 +sizx185=800 +sizy185=600 +title186=Z Steel Soldiers +path186=C:\Games\ZSteelSoldiers\Bin\z2.exe +module186= +ver186=8 +flag186=805462020 +flagg186=0 +tflag186=0 +initx186=0 +inity186=0 +minx186=0 +miny186=0 +maxx186=0 +maxy186=0 +posx186=50 +posy186=50 +sizx186=800 +sizy186=600 +title187=Zax Alien Hunter +path187=C:\Games\ZaxDemo\Zax.exe +module187= +ver187=0 +flag187=-1476386784 +flagg187=0 +tflag187=0 +initx187=0 +inity187=0 +minx187=0 +miny187=0 +maxx187=0 +maxy187=0 +posx187=50 +posy187=50 +sizx187=800 +sizy187=600 +maxfps0=0 +maxfps1=0 +maxfps2=0 +maxfps3=0 +maxfps4=0 +maxfps5=0 +maxfps6=0 +maxfps7=0 +maxfps8=0 +maxfps9=0 +maxfps10=0 +maxfps11=0 +maxfps12=0 +maxfps13=0 +maxfps14=0 +maxfps15=0 +maxfps16=0 +maxfps17=0 +maxfps18=0 +maxfps19=0 +maxfps20=0 +maxfps21=0 +maxfps22=0 +maxfps23=0 +maxfps24=0 +maxfps25=0 +maxfps26=0 +maxfps27=0 +maxfps28=0 +maxfps29=0 +maxfps30=0 +maxfps31=0 +maxfps32=0 +maxfps33=0 +maxfps34=0 +maxfps35=0 +maxfps36=0 +maxfps37=0 +maxfps38=0 +maxfps39=0 +maxfps40=0 +maxfps41=0 +maxfps42=0 +maxfps43=0 +maxfps44=0 +maxfps45=0 +maxfps46=0 +maxfps47=0 +maxfps48=0 +maxfps49=0 +maxfps50=0 +maxfps51=0 +maxfps52=0 +maxfps53=0 +maxfps54=0 +maxfps55=0 +maxfps56=0 +maxfps57=0 +maxfps58=0 +maxfps59=0 +maxfps60=0 +maxfps61=0 +maxfps62=0 +maxfps63=0 +maxfps64=0 +maxfps65=0 +maxfps66=0 +maxfps67=0 +maxfps68=0 +maxfps69=0 +maxfps70=0 +maxfps71=0 +maxfps72=0 +maxfps73=0 +maxfps74=0 +maxfps75=0 +maxfps76=0 +maxfps77=0 +maxfps78=0 +maxfps79=0 +maxfps80=0 +maxfps81=0 +maxfps82=0 +maxfps83=0 +maxfps84=0 +maxfps85=0 +maxfps86=200 +maxfps87=0 +maxfps88=40 +maxfps89=0 +maxfps90=0 +maxfps91=0 +maxfps92=0 +maxfps93=0 +maxfps94=0 +maxfps95=0 +maxfps96=0 +maxfps97=0 +maxfps98=0 +maxfps99=0 +maxfps100=0 +maxfps101=0 +maxfps102=0 +maxfps103=0 +maxfps104=0 +maxfps105=0 +maxfps106=0 +maxfps107=0 +maxfps108=0 +maxfps109=0 +maxfps110=0 +maxfps111=0 +maxfps112=0 +maxfps113=0 +maxfps114=0 +maxfps115=0 +maxfps116=0 +maxfps117=0 +maxfps118=0 +maxfps119=0 +maxfps120=0 +maxfps121=0 +maxfps122=0 +maxfps123=0 +maxfps124=0 +maxfps125=0 +maxfps126=0 +maxfps127=0 +maxfps128=0 +maxfps129=0 +maxfps130=0 +maxfps131=0 +maxfps132=0 +maxfps133=0 +maxfps134=0 +maxfps135=0 +maxfps136=0 +maxfps137=0 +maxfps138=0 +maxfps139=0 +maxfps140=0 +maxfps141=0 +maxfps142=0 +maxfps143=0 +maxfps144=0 +maxfps145=0 +maxfps146=0 +maxfps147=0 +maxfps148=0 +maxfps149=0 +maxfps150=0 +maxfps151=0 +maxfps152=0 +maxfps153=0 +maxfps154=0 +maxfps155=0 +maxfps156=0 +maxfps157=0 +maxfps158=0 +maxfps159=0 +maxfps160=0 +maxfps161=0 +maxfps162=0 +maxfps163=0 +maxfps164=0 +maxfps165=0 +maxfps166=0 +maxfps167=0 +maxfps168=0 +maxfps169=0 +maxfps170=0 +maxfps171=0 +maxfps172=20 +maxfps173=0 +maxfps174=0 +maxfps175=0 +maxfps176=0 +maxfps177=0 +maxfps178=0 +maxfps179=0 +maxfps180=0 +maxfps181=0 +maxfps182=0 +maxfps183=0 +maxfps184=0 +maxfps185=0 +maxfps186=0 +maxfps187=0 +title188=Zero Critical (BAD) +path188=C:\Games\zero_critical_-_satin_rift\ZEROCR.EXE +module188= +ver188=0 +flag188=679477858 +flagg188=8 +tflag188=0 +initx188=0 +inity188=0 +minx188=0 +miny188=0 +maxx188=0 +maxy188=0 +posx188=0 +posy188=0 +sizx188=800 +maxfps188=0 +opengllib0= +initts0=0 +opengllib1= +initts1=0 +opengllib2= +initts2=0 +opengllib3= +initts3=0 +opengllib4= +initts4=0 +opengllib5= +initts5=0 +opengllib6= +initts6=0 +opengllib7= +initts7=0 +opengllib8= +initts8=0 +opengllib9= +initts9=0 +opengllib10= +initts10=0 +opengllib11= +initts11=0 +opengllib12= +initts12=0 +opengllib13= +initts13=0 +opengllib14= +initts14=0 +opengllib15= +initts15=0 +opengllib16= +initts16=0 +opengllib17= +initts17=0 +opengllib18= +initts18=0 +opengllib19= +initts19=0 +opengllib20= +initts20=0 +opengllib21= +initts21=0 +opengllib22= +initts22=0 +opengllib23= +initts23=0 +opengllib24= +initts24=0 +opengllib25= +initts25=0 +opengllib26= +initts26=0 +opengllib27= +initts27=0 +opengllib28= +initts28=0 +opengllib29= +initts29=0 +opengllib30= +initts30=0 +opengllib31= +initts31=0 +opengllib32= +initts32=0 +opengllib33= +initts33=0 +opengllib34= +initts34=0 +opengllib35= +initts35=0 +opengllib36= +initts36=0 +opengllib37= +initts37=0 +opengllib38= +initts38=0 +opengllib39= +initts39=0 +opengllib40= +initts40=0 +opengllib41= +initts41=0 +opengllib42= +initts42=0 +opengllib43= +initts43=0 +opengllib44= +initts44=0 +opengllib45= +initts45=0 +opengllib46= +initts46=0 +opengllib47= +initts47=0 +opengllib48= +initts48=0 +opengllib49= +initts49=0 +opengllib50= +initts50=0 +opengllib51= +initts51=0 +opengllib52= +initts52=0 +opengllib53= +initts53=0 +opengllib54= +initts54=0 +opengllib55= +initts55=0 +opengllib56= +initts56=0 +opengllib57= +initts57=0 +opengllib58= +initts58=0 +opengllib59= +initts59=0 +opengllib60= +initts60=0 +opengllib61= +initts61=0 +opengllib62= +initts62=0 +opengllib63= +initts63=0 +opengllib64= +initts64=0 +opengllib65= +initts65=0 +opengllib66= +initts66=0 +opengllib67= +initts67=0 +opengllib68= +initts68=0 +opengllib69= +initts69=0 +opengllib70= +initts70=0 +opengllib71= +initts71=0 +opengllib72= +initts72=0 +opengllib73= +initts73=0 +opengllib74= +initts74=0 +opengllib75= +initts75=0 +opengllib76= +initts76=0 +opengllib77= +initts77=0 +opengllib78= +initts78=0 +opengllib79= +initts79=0 +opengllib80= +initts80=0 +opengllib81= +initts81=0 +opengllib82= +initts82=0 +opengllib83= +initts83=0 +opengllib84= +initts84=0 +opengllib85= +initts85=0 +opengllib86= +initts86=0 +opengllib87= +initts87=0 +opengllib88= +initts88=0 +opengllib89= +initts89=0 +opengllib90= +initts90=0 +opengllib91= +initts91=0 +opengllib92= +initts92=0 +opengllib93= +initts93=0 +opengllib94= +initts94=0 +opengllib95= +initts95=0 +opengllib96= +initts96=0 +opengllib97= +initts97=0 +opengllib98= +initts98=0 +opengllib99= +initts99=0 +opengllib100= +initts100=0 +opengllib101= +initts101=0 +opengllib102= +initts102=0 +opengllib103= +initts103=0 +opengllib104= +initts104=0 +opengllib105= +initts105=0 +opengllib106= +initts106=0 +opengllib107= +initts107=0 +opengllib108= +initts108=0 +opengllib109= +initts109=0 +opengllib110= +initts110=0 +opengllib111= +initts111=0 +opengllib112= +initts112=0 +opengllib113= +initts113=0 +opengllib114= +initts114=0 +opengllib115= +initts115=0 +opengllib116= +initts116=0 +opengllib117= +initts117=0 +opengllib118= +initts118=0 +opengllib119= +initts119=0 +opengllib120= +initts120=0 +opengllib121= +initts121=0 +opengllib122= +initts122=0 +opengllib123= +initts123=0 +opengllib124= +initts124=0 +opengllib125= +initts125=0 +opengllib126= +initts126=0 +opengllib127= +initts127=0 +opengllib128= +initts128=0 +opengllib129= +initts129=0 +opengllib130= +initts130=0 +opengllib131= +initts131=0 +opengllib132= +initts132=0 +opengllib133= +initts133=0 +opengllib134= +initts134=0 +opengllib135= +initts135=0 +opengllib136= +initts136=0 +opengllib137= +initts137=0 +opengllib138= +initts138=0 +opengllib139= +initts139=0 +opengllib140= +initts140=0 +opengllib141= +initts141=0 +opengllib142= +initts142=0 +opengllib143= +initts143=0 +opengllib144= +initts144=0 +opengllib145= +initts145=0 +opengllib146= +initts146=0 +opengllib147= +initts147=0 +opengllib148= +initts148=0 +opengllib149= +initts149=0 +opengllib150= +initts150=0 +opengllib151= +initts151=0 +opengllib152= +initts152=0 +opengllib153= +initts153=0 +opengllib154= +initts154=0 +opengllib155= +initts155=0 +opengllib156= +initts156=0 +opengllib157= +initts157=0 +opengllib158= +initts158=0 +opengllib159= +initts159=0 +opengllib160= +initts160=0 +opengllib161= +initts161=0 +opengllib162= +initts162=0 +opengllib163= +initts163=0 +opengllib164= +initts164=0 +opengllib165= +initts165=0 +opengllib166= +initts166=0 +opengllib167= +initts167=0 +opengllib168= +initts168=0 +opengllib169= +initts169=0 +opengllib170= +initts170=0 +opengllib171= +initts171=0 +opengllib172= +initts172=0 +opengllib173= +initts173=0 +opengllib174= +initts174=0 +opengllib175= +initts175=0 +opengllib176= +initts176=0 +opengllib177= +initts177=0 +opengllib178= +initts178=0 +opengllib179= +initts179=0 +opengllib180= +initts180=0 +opengllib181= +initts181=0 +opengllib182= +initts182=0 +opengllib183= +initts183=0 +opengllib184= +initts184=0 +opengllib185= +initts185=0 +opengllib186= +initts186=0 +opengllib187= +initts187=0 +opengllib188= +sizy188=600 +initts188=0 +title189=Zero Population Count +path189=C:\Games\ZPC\ZPC.EXE +module189= +opengllib189= +ver189=0 +flag189=1073741859 +flagg189=0 +tflag189=0 +initx189=0 +inity189=0 +minx189=0 +miny189=0 +maxx189=0 +maxy189=0 +posx189=0 +posy189=0 +sizx189=800 +sizy189=600 +maxfps189=0 +initts189=0 +title190=Zero Zone +module190= +opengllib190= +path190=D:\ZZone\ZeroZone.exe +ver190=0 +flag190=34 +flagg190=0 +tflag190=0 +initx190=0 +inity190=0 +minx190=0 +miny190=0 +maxx190=0 +maxy190=0 +posx190=50 +posy190=50 +sizx190=800 +sizy190=600 +maxfps190=0 +initts190=0 +title191=Zeus Poseidon +path191=C:\Games\Zeus-Poseidon\Zeus.exe +module191= +opengllib191= +ver191=0 +flag191=34 +flagg191=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=Zoo Tycoon +path192=C:\Games\Zoo Tycoon\zoo.exe +module192= +opengllib192= +ver192=0 +flag192=-2013265886 +flagg192=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=Return to Castle Wolfenstein +path193=D:\Games\Return to Castle Wolfenstein (2001)\Return to Castle Wolfenstein\WolfSP.exe +module193= +opengllib193= +ver193=0 +flag193=134234114 +flagg193=131072 +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 diff --git a/dll/dxhook.cpp b/dll/dxhook.cpp index c85fe37..dc45232 100644 --- a/dll/dxhook.cpp +++ b/dll/dxhook.cpp @@ -504,7 +504,7 @@ static void dx_TogglePositionLock(HWND hwnd) } } -void dx_ToggleDC() +static void dx_ToggleDC() { if(dxw.dwFlags1 & HANDLEDC){ dxw.dwFlags1 &= ~HANDLEDC; @@ -516,6 +516,18 @@ void dx_ToggleDC() } } +static void dx_ToggleFPS() +{ + if(dxw.dwFlags2 & SHOWFPS){ + dxw.dwFlags2 &= ~SHOWFPS; + OutTrace("ToggleFPS: SHOWFPS mode OFF\n"); + } + else { + dxw.dwFlags2 |= SHOWFPS; + OutTrace("ToggleFPS: SHOWFPS mode ON\n"); + } +} + LRESULT LastCursorPos; LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) @@ -684,23 +696,26 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp case VK_F8: dx_ToggleDC(); break; + case VK_F7: + dx_ToggleFPS(); + break; + case VK_F6: + case VK_F5: + if (dxw.dwFlags2 & TIMESTRETCH) { + char *sTSCaption[17]={"x16","x8","x4","x2","x1",":2",":4",":8",":16"}; + if (wparam == VK_F5 && (dxw.TimeShift < 8)) dxw.TimeShift++; + if (wparam == VK_F6 && (dxw.TimeShift > -8)) dxw.TimeShift--; + OutTrace("Time Stretch: shift=%d speed=%s\n", dxw.TimeShift, dxw.GetTSCaption()); + DxWndStatus.iTimeShift=dxw.TimeShift; + SetHookStatus(&DxWndStatus); + } + break; case VK_F4: if (dxw.dwFlags1 & HANDLEALTF4) { OutTraceD("WindowProc: WM_SYSKEYDOWN(ALT-F4) - terminating process\n"); TerminateProcess(GetCurrentProcess(),0); } break; - case VK_F5: - case VK_F6: - if (dxw.dwFlags2 & TIMESTRETCH) { - char *sTSCaption[9]={"x16","x8","x4","x2","x1",":2",":4",":8",":16"}; - if (wparam == VK_F5 && (dxw.TimeShift < 8)) dxw.TimeShift++; - if (wparam == VK_F6 && (dxw.TimeShift > -8)) dxw.TimeShift--; - OutTrace("Time Stretch: shift=%d speed=%s\n", dxw.TimeShift, sTSCaption[dxw.TimeShift+4]); - DxWndStatus.iTimeShift=dxw.TimeShift; - SetHookStatus(&DxWndStatus); - } - break; default: break; } diff --git a/dll/dxwcore.cpp b/dll/dxwcore.cpp index bf50ae4..26588db 100644 --- a/dll/dxwcore.cpp +++ b/dll/dxwcore.cpp @@ -1,3 +1,4 @@ +#include #include "dxwnd.h" #include "dxwcore.hpp" #include "syslibs.h" @@ -323,7 +324,7 @@ void dxwCore::ScreenRefresh(void) } -static void ShowFPS() +static void CountFPS() { static DWORD time = 0xFFFFFFFF; static DWORD FPSCount = 0; @@ -333,6 +334,7 @@ static void ShowFPS() // log fps count OutTrace("FPSCount=%d\n", FPSCount); // show fps count on status win + GetHookStatus(&DxWndStatus); DxWndStatus.FPSCount = FPSCount; SetHookStatus(&DxWndStatus); // reset @@ -372,7 +374,7 @@ static BOOL SkipFrameCount(int delay) BOOL dxwCore::HandleFPS() { - if(dwFlags2 & SHOWFPS) ShowFPS(); + if(dwFlags2 & SHOWFPS) CountFPS(); if(dwFlags2 & LIMITFPS) LimitFrameCount(dxw.MaxFPS); if(dwFlags2 & SKIPFPS) if(SkipFrameCount(dxw.MaxFPS)) return TRUE; return FALSE; @@ -452,4 +454,58 @@ void dxwCore::GetSystemTime(LPSYSTEMTIME lpSystemTime) StartFileTime = CurrFileTime; dwStartTick = dwCurrentTick; } +} + +void dxwCore::ShowFPS(LPDIRECTDRAWSURFACE lpdds) +{ + HDC xdc; // the working dc + char sBuf[81]; + static DWORD dwTimer = 0; + static int corner = 0; + static int x, y; + static DWORD color; + + if((*pGetTickCount)()-dwTimer > 4000){ + if(!dwTimer) srand ((*pGetTickCount)()); + dwTimer = (*pGetTickCount)(); + //corner = rand() % 4; + corner = dwTimer % 4; + //color = ((0x80 + (rand() % 0x80))) + + // ((0x80 + (rand() % 0x80))<<8) + + // ((0x80 + (rand() % 0x80))<<16); + // color = rand() % 0x1000000; + //color = RGB(rand()%0x100, rand()%0x100, rand()%0x100); + //color = RGB(dwTimer%0x100, dwTimer%0x100, dwTimer%0x100); + color=0xFF0000; // blue + switch (corner) { + case 0: x=10; y=10; break; + case 1: x=dwScreenWidth-60; y=10; break; + case 2: x=dwScreenWidth-60; y=dwScreenHeight-20; break; + case 3: x=10; y=dwScreenHeight-20; break; + } + } + + if (FAILED(lpdds->GetDC(&xdc))) return; + SetTextColor(xdc,color); + //SetBkMode(xdc, TRANSPARENT); + SetBkMode(xdc, OPAQUE); + sprintf(sBuf, "FPS: %d", DxWndStatus.FPSCount); + TextOut(xdc, x, y, sBuf, strlen(sBuf)); + lpdds->ReleaseDC(xdc); +} + +char *dxwCore::GetTSCaption(int shift) +{ + static char *sTSCaption[17]={ + "x16","x12","x8","x6", + "x4","x3","x2","x1.5", + "x1", + ":1.5",":2",":3",":4", + ":6",":8",":12",":16"}; + if (shift<0 || shift>16) return "???"; + return sTSCaption[shift+8]; +} +char *dxwCore::GetTSCaption(void) +{ + return GetTSCaption(TimeShift); } \ No newline at end of file diff --git a/dll/dxwcore.hpp b/dll/dxwcore.hpp index 7bc7b0c..c051c12 100644 --- a/dll/dxwcore.hpp +++ b/dll/dxwcore.hpp @@ -42,7 +42,9 @@ public: // methods void ResetPrimarySurface(void); void GetSystemTime(LPSYSTEMTIME lpSystemTime); DWORD StretchTime(DWORD); - + void ShowFPS(LPDIRECTDRAWSURFACE); + char *GetTSCaption(int); + char *GetTSCaption(void); public: // simple data variables DDPIXELFORMAT ActualPixelFormat; diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index 7665ebc..5a61ec7 100644 --- a/dll/dxwnd.cpp +++ b/dll/dxwnd.cpp @@ -23,7 +23,7 @@ along with this program. If not, see . #include #include "dxwnd.h" -#define VERSION "2.02.05" +#define VERSION "2.02.06" LRESULT CALLBACK HookProc(int ncode, WPARAM wparam, LPARAM lparam); diff --git a/dll/dxwnd.ws2005.vcproj b/dll/dxwnd.vs2005.vcproj similarity index 100% rename from dll/dxwnd.ws2005.vcproj rename to dll/dxwnd.vs2005.vcproj diff --git a/dll/dxwnd.ws2008.sln b/dll/dxwnd.vs2008.sln similarity index 92% rename from dll/dxwnd.ws2008.sln rename to dll/dxwnd.vs2008.sln index d2888f1..0d2e531 100644 --- a/dll/dxwnd.ws2008.sln +++ b/dll/dxwnd.vs2008.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dxwnd", "dxwnd.ws2008.vcproj", "{579E7FE7-2745-4100-A802-23511711FCDE}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dxwnd", "dxwnd.vs2008.vcproj", "{579E7FE7-2745-4100-A802-23511711FCDE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo new file mode 100644 index 0000000000000000000000000000000000000000..ed13ce260509d5fed1b5cf39b4396d2f7868ea82 GIT binary patch literal 11264 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 diff --git a/dll/dxwnd.ws2008.suo b/dll/dxwnd.ws2008.suo deleted file mode 100644 index 58cb1cf11756fe22e80566de69b7d2b18c51a75e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81408 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 DYT{Nf diff --git a/dll/hddraw.cpp b/dll/hddraw.cpp index 2193ac5..c3cb504 100644 --- a/dll/hddraw.cpp +++ b/dll/hddraw.cpp @@ -210,7 +210,7 @@ SetEntries_Type pSetEntries; LPDIRECTDRAWSURFACE lpDDSEmu_Prim=NULL, lpDDSEmu_Back=NULL; LPDIRECTDRAWSURFACE lpDDSBack=NULL; LPDIRECTDRAWCLIPPER lpDDC=NULL; -LPDIRECTDRAWPALETTE lpDDP = 0; +LPDIRECTDRAWPALETTE lpDDP=NULL; LPDIRECTDRAW lpDD=NULL; // v2.1.87: lpServiceDD is the DIRECTDRAW object to which the primary surface and all // the service objects (emulated backbuffer, emulater primary, ....) are attached. @@ -1688,14 +1688,12 @@ HRESULT WINAPI extCreateSurfaceEmu(int dxversion, CreateSurface_Type pCreateSurf // beware of the different behaviour between older and newer directdraw releases... if(dxversion >= 4){ - //if (lpDDSHDC) while(lpDDSHDC->Release()); 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 (lpDDSBack) while(lpDDSBack->Release()); } - //lpDDSHDC=NULL; lpDDC=NULL; lpDDSEmu_Back=NULL; lpDDSEmu_Prim=NULL; @@ -1873,6 +1871,26 @@ HRESULT WINAPI extCreateSurfaceEmu(int dxversion, CreateSurface_Type pCreateSurf return res; } + // for 8BPP palettized surfaces, connect them to either the ddraw emulated palette or the GDI emulated palette + if(ddsd.ddpfPixelFormat.dwRGBBitCount==8){ // use a better condition here.... + if(lpDDP==NULL){ + // should link here to the GDI palette? See Hyperblade.... + //static PALETTEENTRY Palette[256]; + extern PALETTEENTRY *GDIPalette; + //res=(*pCreatePalette)(lpdd, DDPCAPS_ALLOW256|DDPCAPS_8BIT|DDPCAPS_INITIALIZE, Palette, &lpDDP, NULL); + res=(*pCreatePalette)(lpdd, DDPCAPS_ALLOW256|DDPCAPS_8BIT|DDPCAPS_INITIALIZE, GDIPalette, &lpDDP, NULL); + if (res) { + OutTraceE("CreateSurface: CreatePalette ERROR res=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__); + return res; + } + } + res=(*pSetPalette)(*lplpdds, lpDDP); + if (res) { + OutTraceE("CreateSurface: SetPalette ERROR res=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__); + return res; + } + } + // diagnostic hooks .... HookDDSurfaceGeneric(lplpdds, dxversion); // unmark this as possible primary @@ -2428,6 +2446,7 @@ HRESULT WINAPI sBlt(char *api, LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect, work on my PC. */ if(res==DDERR_UNSUPPORTED){ + if (dxw.dwFlags2 & SHOWFPS) dxw.ShowFPS(lpddssrc); res=(*pBlt)(lpDDSEmu_Prim, &destrect, lpddssrc, lpsrcrect, dwflags, lpddbltfx); if (res) BlitError(res, lpsrcrect, &destrect, __LINE__); } @@ -2462,6 +2481,7 @@ HRESULT WINAPI sBlt(char *api, LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect, lpDDSSource = lpdds; } + if (dxw.dwFlags2 & SHOWFPS) dxw.ShowFPS(lpDDSSource); res=(*pBlt)(lpDDSEmu_Prim, &destrect, lpDDSSource, &emurect, DDBLT_WAIT, 0); if (res==DDERR_NOCLIPLIST){ RenewClipper(lpDD, lpDDSEmu_Prim); @@ -2880,6 +2900,7 @@ HRESULT WINAPI extUnlock(int dxversion, Unlock4_Type pUnlock, LPDIRECTDRAWSURFAC lpDDSSource=lpdds; } + if (dxw.dwFlags2 & SHOWFPS) dxw.ShowFPS(lpDDSSource); res=(*pBlt)(lpDDSEmu_Prim, &screen, lpDDSSource, &rect, DDBLT_WAIT, 0); if (res==DDERR_NOCLIPLIST) { RenewClipper(lpDD, lpDDSEmu_Prim); @@ -2921,7 +2942,7 @@ HRESULT WINAPI extGetDC(LPDIRECTDRAWSURFACE lpdds, HDC FAR *pHDC) // Should the surface have a RGB color setting to allow for DC creation? // log an error just when not intercepted by EMULATESURFACE|HANDLEDC handling below - if ((dxw.dwFlags1 & (EMULATESURFACE|HANDLEDC))!=(EMULATESURFACE|HANDLEDC)) + if ((dxw.dwFlags1 & (EMULATESURFACE|HANDLEDC))!=(EMULATESURFACE|HANDLEDC)) OutTraceE("GetDC ERROR: lpdss=%x%s, hdc=%x, res=%x(%s) at %d\n", lpdds, IsPrim?"(PRIM)":"", *pHDC, res, ExplainDDError(res), __LINE__); diff --git a/dll/syslibs.cpp b/dll/syslibs.cpp index 37354db..9bdccb9 100644 --- a/dll/syslibs.cpp +++ b/dll/syslibs.cpp @@ -2265,6 +2265,7 @@ typedef struct tagDxWndLOGPALETTE } DxWndLOGPALETTE; DxWndLOGPALETTE MyPal; +PALETTEENTRY *GDIPalette = MyPal.palPalEntry; //BOOL G_bForceBackground; HPALETTE WINAPI extGDICreatePalette(CONST LOGPALETTE *plpal) diff --git a/host/StatusDialog.cpp b/host/StatusDialog.cpp index d505394..0722c99 100644 --- a/host/StatusDialog.cpp +++ b/host/StatusDialog.cpp @@ -44,6 +44,7 @@ void CStatusDialog::OnTimer(UINT_PTR nIDEvent) extern PRIVATEMAP *pTitles; extern TARGETMAP *pTargets; TARGETMAP *Target; + extern char *GetTSCaption(int); CDialog::OnTimer(nIDEvent); DxStatus=GetHookStatus(NULL); @@ -56,7 +57,6 @@ void CStatusDialog::OnTimer(UINT_PTR nIDEvent) GetDllVersion(DllVersion); DxWndStatus.Status=DxStatus; if(DxStatus==DXW_RUNNING){ - char *sTSCaption[17]={"x16","x12","x8","x6","x4","x3","x2","x1.5","x1",":1.5",":2",":3",":4",":6",":8",":12",":16"}; GetHookStatus(&DxWndStatus); Target=&pTargets[DxWndStatus.TaskIdx]; @@ -76,7 +76,7 @@ void CStatusDialog::OnTimer(UINT_PTR nIDEvent) } if(Target->flags2 & TIMESTRETCH){ if(DxWndStatus.iTimeShift>=-8 && DxWndStatus.iTimeShift<=8){ - sprintf(sMsgBuf, "\nTime speed: %s", sTSCaption[DxWndStatus.iTimeShift+8]); + sprintf(sMsgBuf, "\nTime speed: %s", GetTSCaption(DxWndStatus.iTimeShift)); strcat(sMsg, sMsgBuf); } } diff --git a/host/TimeSliderDialog.h b/host/TimeSliderDialog.h index b9012a1..6615576 100644 --- a/host/TimeSliderDialog.h +++ b/host/TimeSliderDialog.h @@ -10,6 +10,7 @@ class CTimeSliderDialog : public CDialog public: CTimeSliderDialog(CWnd* pParent = NULL); // standard constructor virtual ~CTimeSliderDialog(); + //~CTimeSliderDialog(); // Dialog Data enum { IDD = IDD_TIMESLIDER }; diff --git a/host/TimeSliderDlg.cpp b/host/TimeSliderDlg.cpp index c420dcb..e88546e 100644 --- a/host/TimeSliderDlg.cpp +++ b/host/TimeSliderDlg.cpp @@ -16,6 +16,8 @@ CTimeSliderDialog::CTimeSliderDialog(CWnd* pParent /*=NULL*/) CTimeSliderDialog::~CTimeSliderDialog() { + MessageBoxEx(0, "Time Slider destructor", "Warning", MB_OK | MB_ICONEXCLAMATION, NULL); + //CTimeSliderDialog::OnOK(); // kill timer.... } void CTimeSliderDialog::DoDataExchange(CDataExchange* pDX) @@ -40,9 +42,9 @@ void CTimeSliderDialog::OnTimer(UINT_PTR nIDEvent) DXWNDSTATUS Status; CSliderCtrl *Slider; CStatic *Text; - char *sTSCaption[17]={"x16","x12","x8","x6","x4","x3","x2","x1.5","x1",":1.5",":2",":3",":4",":6",":8",":12",":16"}; char sMsg[81]; static int iLastPos=-1; + extern char *GetTSCaption(int); Slider=(CSliderCtrl *)this->GetDlgItem(IDC_TIMESLIDER); Text=(CStatic *)this->GetDlgItem(IDC_TIMESPEED); @@ -67,7 +69,7 @@ void CTimeSliderDialog::OnTimer(UINT_PTR nIDEvent) SetHookStatus(&Status); } iLastPos = i_TimeSlider; - sprintf(sMsg, "Time speed: %s", sTSCaption[i_TimeSlider+8]); + sprintf(sMsg, "Time speed %s", GetTSCaption(i_TimeSlider)); Text->SetWindowTextA(sMsg); } @@ -93,8 +95,9 @@ void CTimeSliderDialog::OnOK() { // TODO: Add your specialized code here and/or call the base class - KillTimer(IDTIMER); // stop timer + // MessageBoxEx(0, "Stopping Time Slider dialog", "Warning", MB_OK | MB_ICONEXCLAMATION, NULL); + KillTimer(IDTIMER); DXWNDSTATUS Status; GetHookStatus(&Status); diff --git a/host/dxwndhost.aps b/host/dxwndhost.aps index 359278852ddf9b17beecabf9bb93465b8b936250..c912e6bccc2a259acc08a844c0e76ee2c95adf06 100644 GIT binary patch delta 1162 zcmZ{hTTD|~6o&WS!~#z11re3Yp)Jrl4hD(ZM1+7!V*I+bVv2Jvy4%zwP9;p$m^^3?ef~w&2{V?W1)JtH)MB)wzRl>J6oE( z%*HMUWP1 zBJL7+?x|4|J_`FfEYPs?f#&ak#oMmwhcWbS$<)kd_`G|ArW;|~PmeUc7p(s6ny!Lg zzg5+zg9~BWuc!t#27iE@K%wSNlJf)#G}ppugWF^44!|nT;qj?9x|^bTT%JOqb_Rz0?;QbSv7zX+ zk2~PVY&nm^(Cl_@gSWHCcq;^wD>A!T7hRq3Te4scV_(0XVm)+3)hzw9sgQT!R+z#T zvux^UJs3_cgICFga@Dsb z`2e0UielYJ9%KF%ykHb&QMwQBOWxcMy8X%mdlO?HFxwt+5Q^eo5f~6h~*{pju+T0aULTQW7tO!-3A;lk#AIRO47Lo=Oo>A zxTuu4(t{O5+OoNnp8A3jf~Y)!{c>9SCyvYM1Dur8XZTU#DH_VCUr zL@4H?*e9pqPdF~8YdKEI=|%iVaYiTOxY#0!M2&(K7Mknp&_$$uBbM|6eG-4+6^TKd zB#6QU&dF}aKe)(B-T$%NN^w&Tx}>G0rS&bteraFe6=`di;}lu(a~{sgxEBqpDXz=M biq&NAVl!DnM5Y}I_EVaXWfXY0SgiU6(h*|? delta 1114 zcmZ9J-%nF#7{{OY#T}V&aEOi{wx{$51sADOg4>usP)ec>3PLADTMicvtUpMWnT-oB zmUT-;ri|^mc+|M*AE1p}H^!2hXkr2`(&1tvZKKh|3uA1=izO^E>7Lgfyx2J>`Fy|6 z_xrx*%{g;_7th@(o(gOzu9a}4H5?f0A3YNO%x`Yxrv=MHmE!o%pIj?lZ|?5tGn)fu zdv`F@+uhj*O>hC@xdB}^|-kX-6#+kkWOW#Or3bn7c%ntne@CTOe!1Uo+OAq27 z;k}k_#F|LGrG0qlwcdi~BVKF171NPAOE+QV;EML+N3V4=;)=#|krK=fZsZj=A}*{p zl~SK*8+Ms1Yu`V`UBxtZNU#n5^eY> zU0HGzqA(1npcMe~>5W_Re0>RH{JXZn|1a5NfB|daO;D{@J#=O(Fq~N<^Lad)aVeZG z;A+OTx=?Dx?=uzntWa7mq_(W;#@e#Kw`Ijthd54mYGu9f(7(0Pp^d){uoNW2DP3~v zW7LKX8gj~2(ldhRM+~jK6JQ{Usi>iq@EI3=qqtN0#ar~qDVs%D!H%ivb=rae7@wj2 zE@_Ap6m?05*iI7+=}F>bvPRp?h096$lM8bB8a-8fa*x)yWsSB|0!%H^J8qsWWoWimU~1MU2*efA(~gPQBI+ObPsR6R7yS%cVF5msCd&yqlyc=Xj1WP55<{ch~~L2 z#we#&T^*ycI!==l2&iMd(J)@Kw6{@I8) return "???"; + return sTSCaption[shift+8]; +} \ No newline at end of file diff --git a/host/dxwndhost.rc b/host/dxwndhost.rc index 8f415f6..78c9950 100644 --- a/host/dxwndhost.rc +++ b/host/dxwndhost.rc @@ -328,13 +328,13 @@ BEGIN END IDD_TIMESLIDER DIALOGEX 0, 0, 168, 65 -STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION CAPTION "Time Slider" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "OK",IDOK,111,44,50,14 CONTROL "",IDC_TIMESLIDER,"msctls_trackbar32",TBS_AUTOTICKS | TBS_TRANSPARENTBKGND | WS_TABSTOP,7,7,154,18,WS_EX_TRANSPARENT - LTEXT "Time shift:",IDC_TIMESPEED,7,43,64,15 + LTEXT "Time speed",IDC_TIMESPEED,7,43,86,15 LTEXT "x16",IDC_STATIC,7,31,15,9 LTEXT "x8",IDC_STATIC,30,30,15,9 LTEXT "x4",IDC_STATIC,47,30,15,9 diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo index 7ce95c6bc97e4d404da0976ffff3b48bfbb6189b..4bb561051134fc0e4f883a17ec24a745c0e72163 100644 GIT binary patch delta 3382 zcmZvee^6A{702&e-do?Y{8*RY3kXPc`4JHoaUu9KG_GNxg2>OU0b}Ay z)sV!J$Z45OW)eHvPCIGR#%?Bm)nq$%G7Z&+wCS|d>9qF8ADwAy(iu9VHj#eMV;?MS z4)fujJ@?%E?mPFqb8qNvQ|Pazmpqbut^O&K+$Dsdh-tIDhn0VrG`WqHgt+|Tb|{a6 zy}$=LKquG-9xN>_G5et(;NO=zuFlGXNgn6#K79S|Eh!GRNPtes^GY35GyTb(LO*D+ zQ>kpGh$_>B;x&u)=t^GG<*~_hSJ7min=;KKQe*fz^JSA%MMsO%c+zmaWlAzjHBhaw zBh4}_O@i*nw&Yj24r8^i#Q1xsHMF(`2$&O@zh+ z=(UzSUb8s@gWF0;wq4}0HPor%lLvQ}BnehX7FY*veZRtP*f-+$Hoy{V_loelw(}C* zm?-BZzeSVwRmN&hDOyT@)V5j|oA ze?n}cr1?GLmyH&-yhB%9dHNiM^r_1x717TA0{sEDLWh)0 z^%}n?wqB2cr^vIeL>$A)AErMRt@daN+cwkL6^rt5PoY*neGaAIZF zd}%Az{vL&j?oxSS-pb3hm%cAc_bILN=Z<@r{465zAGDu=&%pz*1cXGl9ZtMmHl5bg zu%~J|5mUz`dw8+&rb5qX=`>UPI?Wch(=S@b$n$t4#Vqvn`5R}oND(LErc5*($cg*q zZZqY|snp!|t(8^UX<@7R_-S!kJSA#Gm2e}qnnXR?GEppciE`+>pjC)U=x%7$q7;7h z(A>Ibm1sau18kMBxZ(XYKNkT*W`%@aN}LM*C~f zR!8+(v|nSL{^>6~!=rcOR|{wbUeE^ifOfDK_&^7k0gnP6vk&cl@EAB4wH=PO-O-jm zB14XTfvrzM%)f$;W1t@lfa72goB%^$7>s~XFb2i}N@}6)43rQsgd*p@yRsK~G}+sk zR95b;sH}=jA)6jOt`t#;j_UAkqs!+H$=Gy33%$;jRNL9Jnra%Y4>ZsAc@ntnrvffs zG;MQQkR&1rsNt{n-7-mq_->4EHJv;;@l@y9M3MeTs-BMJ_|GX;R?bV)pJz3873T1J z19IGQp*hip3Tu@#WJQpU_GX5EJG9yKe@Uk%{<_ifB1YzdZ_$p{{3^(&Cs;MSiU*coZDpYZfk8tJjQK9B-qKv=mAXbk_?d6u0Kn;5_~| zhI|ZoS7Hl0S6e}MQbduJ1`LRcbum|9Za>bl z+I*>W#jO!;O|foDC*1nz-jg^#I0N0WofMqdOE*s7Y@1lnkG|U2-tgk&&G?jn=oTlj zO-E2GmjADQp|759w>!xb)N<3JPPJ&$0gD6hKo;XzTrO1V><))itw+z3B`fuC*clrF%K?mg zg2&P4U&@uXEyp>t!t96r*mCg8jo_;u_;HMl`+%hvUe9ys)<@SwpHq>42=>QeW(i=P zVKFX(V)cX`8v4~Ke&zL6IKUUB5+^^{_&Vb;cFTDv+!Mwr3)CgO;H`6 zn|K(ov;ywuJ}+SD25e)F06*X`@NbUhmjTP55NDP@HT*CJ%s_t#T#DK_*9q9bH=;K7 zeHrjey%M!0qdgB;UIpyKTlgAa;ctpPNJkAhC56&DiDGi6!WZDAg#44Wpx(;Z=>oW$cU8U(6Qw$j#V!#7_PP zT#!aeI&}tc_p7I*0o+ok*w_ZOS{0f7Irm3~y83Nq7f#lLx=QrpDOG$G*(7)VFx{K zS(K~{C~OS`%2j=8oH3Mq%2G9oO(STYH);(r)_$QIliV~ zeGRn8s#+3OXr@*HHigGrG|{k=e04r9)A__wVUHEU{f&pI&SIi#9Vh8h!bTI}aZ1}Z z)3E_7^_q3qJL&dl|EJC}nP;fn{hd|h(H-b>7xXXaKhT^Y;EYpb%nl8#DWB(!B3_UU zXW+6-y<=&Lhtf3T2vzk!Tnw>#L4FV%pbk#e)uqTaU5^#}Znm3sfCgBU1u<`7gX}r> zG+WMA;8bKxeu(>@O`BE^UYK5Rwv|mNj0@;DHJeLWQo2qz`mEZ&+7+sn%Ba0-A|KL{ zuwjRjd7worb72m$0IO%KSPS-UaLqv0s+bq2en<+;&sG9=LjN{MwqSKa`ejue^>>;A zkyL}4dCN|dHSse!s|;i~Y)Zw~2a2-Uwdpc1w}+~(iK}@p2wtKEx>{76L6=99+v>>I znWo6jA#(N_MGY~E_pLEKGsV9doKg*Dun_4B`;D~xSDhS7{ zRbAAI6XD7h)u}FUE;uO&**0*k_`Gm)6V`if`{IEp-Q2E5>6HNseZHfe8f+zK3Z*PY zr?=bYL)m#!6|&ab=;qcZ?gm4PP-lf&j#Tcsl*)G~wUq(MpmK92D z6!+BTLEleSxFr_P@3HDYYtf{FDwdyw5{Lk-W(>9=;CmdUG#%EZZtPyBQJeDE#35}1 z+ex-lHcIc=uX966#B{!EM~8dll>iH~-E_D|bRvrG?N)drU~d-Q+ePvBEU$_mi65>8 zm4U=S@0m}{DiuLX%VDCkF3n-6pX=zKC35LH9bST_YsF8VumRc^sEtFxVExW6nvV3j3)~)73xPIxj$2Ce*?YijCGTi>5qk?~=U}fe`GG<2pV~&_dhdPYIrfI> Ef3y@0y#N3J