diff --git a/Debug/.gitattributes b/Debug/.gitattributes
new file mode 100644
index 0000000..b110a24
--- /dev/null
+++ b/Debug/.gitattributes
@@ -0,0 +1 @@
+*.{dll,exe} filter=lfs diff=lfs merge=lfs -text
\ No newline at end of file
diff --git a/Debug/ddraw.dll b/Debug/ddraw.dll
new file mode 100644
index 0000000..a4a427a
--- /dev/null
+++ b/Debug/ddraw.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:57380350f6215b3dadaf6f920ebbf18fd2ec95162c1722bafac6f8b949eb851b
+size 458240
diff --git a/Debug/ddraw.ilk b/Debug/ddraw.ilk
new file mode 100644
index 0000000..8641d7b
Binary files /dev/null and b/Debug/ddraw.ilk differ
diff --git a/Include/dxwnd.h b/Include/dxwnd.h
index 1bf27d1..c3eb578 100644
--- a/Include/dxwnd.h
+++ b/Include/dxwnd.h
@@ -41,7 +41,7 @@
#define CLIENTREMAPPING 0x08000000 // hooks ClientToRect, RectToClient, GetClientRect, GetWinRect
#define HANDLEALTF4 0x10000000 // forces quitting the program when receiving Alt-F4 key
#define LOCKWINPOS 0x20000000 // prevent the program to change its own windows properties
-#define HOOKCHILDWIN 0x40000000 // hook CHILD windows to alter placement coordinates (UNUSED)
+#define HOOKCHILDWIN 0x40000000 // hook CHILD windows to alter placement coordinates
#define MESSAGEPROC 0x80000000 // process peek/get messages
// second flags DWORD dxw.dwFlags2:
@@ -246,8 +246,14 @@
#define ANCHORED 0x10000000 // Anchored position & size, mo stretching or sliding is allowed
#define CLEARTEXTUREFOURCC 0x20000000 // Clear DDSCAPS2_FOURCC bit and makes texture load without codec
#define NODDEXCLUSIVEMODE 0x40000000 // Do not allow ddraw EXCLUSIVE mode also in non windowed mode
+#define COPYNOSHIMS 0x80000000 // Create a hiden and temporary copy of the target exe so that shims are not applied
// eighth flags DWORD dxw.dwFlags8:
+#define FORCEWAIT 0x00000001 // Forces DDBLT/DDFLIP WAIT flags
+#define FORCENOWAIT 0x00000002 // Forces DDBLT/DDFLIP NOWAIT flags
+#define FORCEVSYNC 0x00000004 // Forces hardware VSync
+#define FORCENOVSYNC 0x00000008 // Forces NO hardware VSync
+#define VSYNCSCANLINE 0x00000010 // Activates WaitForVerticalBlank algorythm based on reaching a given scan line
// logging Tflags DWORD:
#define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general
@@ -258,7 +264,7 @@
//#define DXPROXED 0x00000020 // hook DX proxy methods to log each call in original behaviour
#define ASSERTDIALOG 0x00000040 // show assert messages in Dialog Box
#define OUTIMPORTTABLE 0x00000080 // dump import table contents
-#define OUTDEBUG 0x00000100 // detailed debugging indormation
+#define OUTDEBUG 0x00000100 // detailed debugging information
#define OUTREGISTRY 0x00000200 // log registry operations
#define TRACEHOOKS 0x00000400 // log hook operations
#define OUTD3DTRACE 0x00000800 // traces DxWnd direct3d screen handling
@@ -306,6 +312,7 @@ typedef struct TARGETMAP
short SwapEffect;
short MaxDdrawInterface;
short SlowRatio;
+ short ScanLine;
}TARGETMAP;
typedef struct
diff --git a/build/dxwnd.dll b/build/dxwnd.dll
index bc6f660..0c4260e 100644
--- a/build/dxwnd.dll
+++ b/build/dxwnd.dll
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:4af08fde73eb963389ed3ef80c024a9aaf6a711bfc70f8b2c2091c9c75dfbbad
-size 700928
+oid sha256:d7f4c6f63e720e5a4a2275522d0d414d00fba3b80e28751a6db8e1f0613483f0
+size 706560
diff --git a/build/dxwnd.exe b/build/dxwnd.exe
index bfd397d..6e6fa7e 100644
--- a/build/dxwnd.exe
+++ b/build/dxwnd.exe
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:2e87504512135e86893727a9d1fec372ce4ad78e50f6b897ddf819bc6fd3d9db
-size 665600
+oid sha256:4c369251987e49585a3cb5776a808fafe262ccf2d6b0ef0265275ba2080189ac
+size 667136
diff --git a/build/dxwnd.ini b/build/dxwnd.ini
deleted file mode 100644
index d7d96dd..0000000
--- a/build/dxwnd.ini
+++ /dev/null
@@ -1,349 +0,0 @@
-[window]
-exportpath=D:\DxWnd.develop\v2_03_97_beta\build\exports\
-posx=-592
-posy=438
-sizx=436
-sizy=417
-exepath=D:\Games\Warhammer 40.000 Dark Omen\PRG_ENG\
-debug=1
-autohide=0
-checkadmin=0
-namefromfolder=0
-multiprocesshook=0
-updatepaths=1
-defaultcoord=0
-defaultposx=50
-defaultposy=50
-defaultsizx=800
-defaultsizy=600
-[target]
-title0=Warhammer 40K Rites of War
-path0=D:\Games\Warhammer 40.000 Rites of War\RoWDemo.exe
-startfolder0=
-launchpath0=
-module0=
-opengllib0=
-notes0=After installing the game copy the "Map" -folder from the CD to the \nRites of War\ directory on your hard drive.\n\nThis will fix the issue where the game crashes when starting a campaign.
-registry0=
-ver0=0
-monitorid0=0
-coord0=0
-flag0=685772838
-flagg0=1207959680
-flagh0=20
-flagi0=138412036
-flagj0=4224
-flagk0=65536
-flagl0=0
-flagm0=0
-tflag0=0
-dflag0=0
-posx0=50
-posy0=50
-sizx0=800
-sizy0=600
-maxfps0=0
-initts0=0
-winver0=0
-maxres0=-1
-swapeffect0=0
-maxddinterface0=7
-slowratio0=2
-initresw0=0
-initresh0=0
-title1=Adrenix mod
-path1=D:\Games\Adrenix\Adrenix.exe
-startfolder1=
-launchpath1=
-module1=
-opengllib1=
-notes1=
-registry1=
-ver1=0
-monitorid1=-1
-coord1=0
-flag1=136314915
-flagg1=1207959552
-flagh1=8212
-flagi1=138412036
-flagj1=4224
-flagk1=2424840
-flagl1=0
-flagm1=0
-tflag1=-2147483647
-dflag1=0
-posx1=50
-posy1=50
-sizx1=0
-sizy1=0
-maxfps1=0
-initts1=0
-winver1=0
-maxres1=-1
-swapeffect1=0
-maxddinterface1=7
-slowratio1=2
-initresw1=800
-initresh1=600
-title2=Adrenix 3D
-path2=D:\Games\Adrenix\AdrenixD.exe
-startfolder2=
-launchpath2=
-module2=
-opengllib2=
-notes2=
-registry2=
-ver2=0
-monitorid2=0
-coord2=0
-flag2=134234150
-flagg2=1208025088
-flagh2=20
-flagi2=138412036
-flagj2=5248
-flagk2=65536
-flagl2=0
-flagm2=0
-tflag2=-2147477245
-dflag2=0
-posx2=50
-posy2=50
-sizx2=800
-sizy2=600
-maxfps2=0
-initts2=0
-winver2=0
-maxres2=-1
-swapeffect2=0
-maxddinterface2=7
-slowratio2=1
-initresw2=0
-initresh2=0
-title3=Minigolf master miniverse demo
-path3=D:\Games\MiniGolf Master Demo\mvdemo.exe
-startfolder3=
-launchpath3=
-module3=
-opengllib3=
-notes3=
-registry3=
-ver3=0
-monitorid3=-1
-coord3=0
-flag3=136314914
-flagg3=1207959552
-flagh3=20
-flagi3=138412036
-flagj3=4224
-flagk3=33882112
-flagl3=32768
-flagm3=0
-tflag3=0
-dflag3=0
-posx3=50
-posy3=50
-sizx3=800
-sizy3=600
-maxfps3=0
-initts3=0
-winver3=0
-maxres3=-1
-swapeffect3=0
-maxddinterface3=7
-slowratio3=2
-initresw3=640
-initresh3=480
-title4=Galapagos
-module4=
-opengllib4=
-monitorid4=-1
-dflag4=0
-initresw4=640
-initresh4=480
-path4=D:\Games\Galapagos\GALA.EXE
-startfolder4=
-launchpath4=
-notes4=
-registry4=
-ver4=7
-coord4=0
-flag4=137379894
-flagg4=1207959552
-flagh4=33300
-flagi4=138412036
-flagj4=469766272
-flagk4=67584
-flagl4=92340240
-flagm4=0
-tflag4=-2147477245
-posx4=150
-posy4=150
-sizx4=800
-sizy4=600
-maxfps4=0
-initts4=0
-winver4=0
-maxres4=-1
-swapeffect4=0
-maxddinterface4=7
-slowratio4=2
-title5=Incubation.exe
-module5=
-opengllib5=
-monitorid5=-1
-dflag5=0
-initresw5=800
-initresh5=600
-path5=D:\Games\Incubation\Incubation.exe
-startfolder5=
-launchpath5=
-notes5=
-registry5=
-ver5=0
-coord5=0
-flag5=681574434
-flagg5=1208221696
-flagh5=20
-flagi5=138412036
-flagj5=4224
-flagk5=65536
-flagl5=0
-flagm5=0
-tflag5=0
-posx5=50
-posy5=50
-sizx5=800
-sizy5=600
-maxfps5=0
-initts5=0
-winver5=0
-maxres5=-1
-swapeffect5=0
-maxddinterface5=7
-slowratio5=2
-title6=Autorun.exe
-path6=D:\Games\Incubation\Autorun.exe
-startfolder6=
-launchpath6=
-module6=
-opengllib6=
-notes6=
-registry6=
-ver6=0
-monitorid6=-1
-coord6=0
-flag6=136314914
-flagg6=1207959552
-flagh6=20
-flagi6=134217732
-flagj6=4224
-flagk6=65536
-flagl6=0
-flagm6=0
-tflag6=0
-dflag6=0
-posx6=50
-posy6=50
-sizx6=800
-sizy6=600
-maxfps6=0
-initts6=0
-winver6=0
-maxres6=-1
-swapeffect6=0
-maxddinterface6=7
-slowratio6=2
-initresw6=800
-initresh6=600
-title7=Warhammer 40.000 Dark Omen
-path7=D:\Games\Warhammer 40.000 Dark Omen\PRG_ENG\ENGREL.EXE
-startfolder7=
-launchpath7=
-module7=
-opengllib7=
-notes7=
-registry7=
-ver7=0
-monitorid7=-1
-coord7=0
-flag7=136314922
-flagg7=1207959552
-flagh7=4
-flagi7=138412036
-flagj7=4224
-flagk7=65536
-flagl7=0
-flagm7=0
-tflag7=-2147477245
-dflag7=0
-posx7=50
-posy7=50
-sizx7=800
-sizy7=600
-maxfps7=0
-initts7=0
-winver7=0
-maxres7=-1
-swapeffect7=0
-maxddinterface7=7
-slowratio7=2
-initresw7=800
-initresh7=600
-title8=Warhammer Dark Omen
-path8=D:\Games\Warhammer 40.000 Dark Omen\PRG_ENG\ENGREL.EXE
-startfolder8=
-launchpath8=
-module8=
-opengllib8=
-notes8=Dark Omen needs a d3drm.dll file to run:\n- This file can be located in the CD's \DIRECTX -folder.\n- Copy the file into the "Dark Omen\PRG_ENG" directory.\n\nSound issues:\nDark Omen can sometimes produce a burst of white noise from the speakers.\nUsing the Timing option "CPU slow down" may fix this issue.
-registry8=[HKEY_LOCAL_MACHINE\SOFTWARE\Electronic Arts\Dark Omen\1.0\Options\Options]\n"Selected"="4"\n"HardwareSelected"="252"\n"SoftwareSelected"="228"\n"MMXSelected"="256"\n"ToolTips"="1"\n"MusicVolume"="408"\n"SFXVolume"="816"\n"SoftwareSoundQuality"="2"\n"SoftwareParticleQuality"="2"\n"MMXSoundQuality"="2"\n"MMXParticaleQuality"="1"\n"HardwareSoundQuality"="2"\n"HardwareParticleQuality"="2"\n"InformationNum"="11"\n
-ver8=0
-monitorid8=-1
-coord8=0
-flag8=136314922
-flagg8=1207959552
-flagh8=9236
-flagi8=1212153860
-flagj8=4224
-flagk8=67584
-flagl8=0
-flagm8=0
-tflag8=0
-dflag8=0
-posx8=50
-posy8=50
-sizx8=800
-sizy8=600
-maxfps8=0
-initts8=0
-winver8=0
-maxres8=-1
-swapeffect8=0
-maxddinterface8=7
-slowratio8=2
-initresw8=800
-initresh8=600
-[texture]
-MinTexX=0
-MinTexY=0
-MaxTexX=0
-MaxTexY=0
-[keymapping]
-timetoggle=
-timefast=
-timeslow=
-altf4=
-cliptoggle=
-refresh=
-logtoggle=
-plogtoggle=
-fpstoggle=
-printscreen=
-corner=
-freezetime=
-fullscreen=
-workarea=
-desktop=
-minimize=
-restore=
-kill=
diff --git a/build/dxwnd.log b/build/dxwnd.log
deleted file mode 100644
index afd4dc3..0000000
--- a/build/dxwnd.log
+++ /dev/null
@@ -1,32 +0,0 @@
-OnRun idx=8 prog="D:\Games\Warhammer 40.000 Dark Omen\PRG_ENG\ENGREL.EXE"
-self elevation
-export virtual registry
-setwindowshook mode
-OnRun idx=8 prog="D:\Games\Warhammer 40.000 Dark Omen\PRG_ENG\ENGREL.EXE"
-self elevation
-export virtual registry
-setwindowshook mode
-OnRun idx=8 prog="D:\Games\Warhammer 40.000 Dark Omen\PRG_ENG\ENGREL.EXE"
-self elevation
-export virtual registry
-setwindowshook mode
-OnRun idx=8 prog="D:\Games\Warhammer 40.000 Dark Omen\PRG_ENG\ENGREL.EXE"
-self elevation
-export virtual registry
-setwindowshook mode
-OnRun idx=9 prog="D:\Games\If-18 Carrier Strike Fighter\if18.exe"
-setwindowshook mode
-OnRun idx=9 prog="D:\Games\If-18 Carrier Strike Fighter\if18.exe"
-setwindowshook mode
-OnRun idx=9 prog="D:\Games\If-18 Carrier Strike Fighter\if18.exe"
-setwindowshook mode
-OnRun idx=9 prog="D:\Games\If-18 Carrier Strike Fighter\if18.exe"
-setwindowshook mode
-OnRun idx=9 prog="D:\Games\If-18 Carrier Strike Fighter\if18.exe"
-setwindowshook mode
-OnRun idx=9 prog="D:\Games\If-18 Carrier Strike Fighter\if19.exe"
-setwindowshook mode
-OnRun idx=9 prog="D:\Games\If-18 Carrier Strike Fighter\if19.exe"
-setwindowshook mode
-OnRun idx=9 prog="D:\Games\If-18 Carrier Strike Fighter\if19.exe"
-setwindowshook mode
diff --git a/build/dxwnd.reg b/build/dxwnd.reg
deleted file mode 100644
index 79a481e..0000000
--- a/build/dxwnd.reg
+++ /dev/null
@@ -1,16 +0,0 @@
-[HKEY_LOCAL_MACHINE\SOFTWARE\Electronic Arts\Dark Omen\1.0\Options\Options]
-"Selected"="4"
-"HardwareSelected"="252"
-"SoftwareSelected"="228"
-"MMXSelected"="256"
-"ToolTips"="1"
-"MusicVolume"="408"
-"SFXVolume"="816"
-"SoftwareSoundQuality"="2"
-"SoftwareParticleQuality"="2"
-"MMXSoundQuality"="2"
-"MMXParticaleQuality"="1"
-"HardwareSoundQuality"="2"
-"HardwareParticleQuality"="2"
-"InformationNum"="11"
-
diff --git a/build/exports/Crimson Skies.dxw b/build/exports/Crimson Skies.dxw
index d8e69fa..9d127d1 100644
--- a/build/exports/Crimson Skies.dxw
+++ b/build/exports/Crimson Skies.dxw
@@ -1,11 +1,11 @@
[target]
title0=Crimson Skies
-path0=D:\Games\Crimson_Skies\crimson.exe
+path0=F:\Games\Crimson Skies\crimson.exe
module0=
opengllib0=
ver0=7
coord0=0
-flag0=140525606
+flag0=677396518
flagg0=1207959568
flagh0=20
flagi0=4194596
@@ -30,3 +30,13 @@ notes0=
flagk0=65536
swapeffect0=0
registry0=
+startfolder0=
+monitorid0=0
+flagl0=512
+flagm0=0
+dflag0=0
+maxddinterface0=7
+slowratio0=1
+scanline0=1
+initresw0=0
+initresh0=0
diff --git a/build/exports/DOSBox-0.74.dxw b/build/exports/DOSBox-0.74.dxw
new file mode 100644
index 0000000..261981c
--- /dev/null
+++ b/build/exports/DOSBox-0.74.dxw
@@ -0,0 +1,36 @@
+[target]
+title0=DOSBox-0.74
+path0=C:\Program Files (x86)\DOSBox-0.74\DOSBox.exe
+startfolder0=
+launchpath0=
+module0=sdl.dll
+opengllib0=
+notes0=
+registry0=
+ver0=0
+monitorid0=-1
+coord0=0
+flag0=136314914
+flagg0=1208090624
+flagh0=20
+flagi0=138412036
+flagj0=4224
+flagk0=4259840
+flagl0=4489216
+flagm0=0
+tflag0=0
+dflag0=0
+posx0=50
+posy0=50
+sizx0=800
+sizy0=600
+maxfps0=0
+initts0=0
+winver0=0
+maxres0=-1
+swapeffect0=0
+maxddinterface0=7
+slowratio0=2
+scanline0=0
+initresw0=800
+initresh0=600
diff --git a/build/exports/Dinosaur Resurrection.dxw b/build/exports/Dinosaur Resurrection.dxw
new file mode 100644
index 0000000..3ad193a
--- /dev/null
+++ b/build/exports/Dinosaur Resurrection.dxw
@@ -0,0 +1,35 @@
+[target]
+title0=Dinosaur Resurrection
+path0=F:\Games\Dinosaur Resurrection\FALCOM\DIN\DIN_Win.EXE
+startfolder0=
+launchpath0=
+module0=
+opengllib0=
+notes0=
+registry0=
+ver0=0
+monitorid0=-1
+coord0=0
+flag0=673185826
+flagg0=1207959552
+flagh0=20
+flagi0=138412036
+flagj0=4224
+flagk0=65536
+flagl0=8388608
+flagm0=0
+tflag0=0
+dflag0=0
+posx0=50
+posy0=50
+sizx0=800
+sizy0=600
+maxfps0=0
+initts0=0
+winver0=0
+maxres0=-1
+swapeffect0=0
+maxddinterface0=7
+slowratio0=2
+initresw0=640
+initresh0=480
diff --git a/build/exports/Need for Speed 5 Porsche Unleashed.dxw b/build/exports/Need for Speed 5 Porsche Unleashed.dxw
new file mode 100644
index 0000000..a42a283
--- /dev/null
+++ b/build/exports/Need for Speed 5 Porsche Unleashed.dxw
@@ -0,0 +1,35 @@
+[target]
+title0=Need for Speed 5 Porsche Unleashed
+path0=F:\Games\Need for Speed 5\Porsche.exe
+startfolder0=
+launchpath0=
+module0=
+opengllib0=
+notes0=
+registry0=
+ver0=0
+monitorid0=-1
+coord0=0
+flag0=136314914
+flagg0=1207959552
+flagh0=20
+flagi0=138412036
+flagj0=4224
+flagk0=65536
+flagl0=32768
+flagm0=0
+tflag0=0
+dflag0=0
+posx0=50
+posy0=50
+sizx0=800
+sizy0=600
+maxfps0=0
+initts0=0
+winver0=0
+maxres0=-1
+swapeffect0=0
+maxddinterface0=7
+slowratio0=2
+initresw0=800
+initresh0=600
diff --git a/build/exports/Ultimate Spiderman.dxw b/build/exports/Ultimate Spiderman.dxw
new file mode 100644
index 0000000..538362e
--- /dev/null
+++ b/build/exports/Ultimate Spiderman.dxw
@@ -0,0 +1,36 @@
+[target]
+title0=Ultimate Spiderman
+path0=F:\Games\Ultimate Spiderman\USM.exe
+startfolder0=
+launchpath0=
+module0=
+opengllib0=
+notes0=
+registry0=
+ver0=0
+monitorid0=-1
+coord0=0
+flag0=673202214
+flagg0=1207959552
+flagh0=20
+flagi0=138412036
+flagj0=1073746048
+flagk0=65536
+flagl0=1048576
+flagm0=0
+tflag0=0
+dflag0=0
+posx0=50
+posy0=50
+sizx0=800
+sizy0=600
+maxfps0=0
+initts0=0
+winver0=0
+maxres0=-1
+swapeffect0=0
+maxddinterface0=7
+slowratio0=2
+scanline0=0
+initresw0=800
+initresh0=600
diff --git a/build/exports/dxwnd.log b/build/exports/dxwnd.log
index ef57fae..af4a6d5 100644
--- a/build/exports/dxwnd.log
+++ b/build/exports/dxwnd.log
@@ -1,6 +1,12 @@
-OnRun idx=7 prog="F:\Games\Warhammer 40K Rites Of War\RoW.exe"
+OnRun idx=23 prog="D:\Games\Crimson_Skies\crimson.exe"
setwindowshook mode
-OnRun idx=7 prog="F:\Games\Warhammer 40K Rites Of War\RoW.exe"
-setwindowshook mode
-OnRun idx=7 prog="F:\Games\Warhammer 40K Rites Of War\RoW.exe"
+OnRun idx=23 prog="D:\Games\Crimson_Skies\crimson.exe"
setwindowshook mode
+OnRun idx=23 prog="D:\Games\Crimson_Skies\crimson.exe"
+injectsuspended mode
+InjectSuspended: exe=D:\Games\Crimson_Skies\crimson.exe dir=D:\Games\Crimson_Skies
+Target handle=844
+NT Header offset=F8
+AddressOfEntryPoint=1F7056 ImageBase=400000
+Thread start address=5f7056
+wait cycle 0 eip=5f7056
diff --git a/build/help/Colormanagement.html b/build/help/Colormanagement.html
index 2094666..732078d 100644
--- a/build/help/Colormanagement.html
+++ b/build/help/Colormanagement.html
@@ -51,7 +51,7 @@
-
+
Enables debug features. Not recommended!
/R:n
+Automatically starts DxWnd iconized to the system tray, runs the nth program in the configuration file, and exits DxWnd.
+/q
+Quiet mode. DxWnd will not produce message dialogs.
+SAVELOAD
Optimizes the CPU load, but only for DirectDraw operations (DirectX1 to DirectX7).
+Optimizes the CPU load, but only for DirectDraw operations (DirectX1 to DirectX9).
Free + |
+Allows you to move and resize the window freely, with commands from inside the application (through system calls) or from external user commands (such as grabbing the window border to stretch or move the window). + |
+
Floating + |
+Move and resize operations are allowed only from user commands, but internal operations are intercepted and neutralized. + |
+
Locked size + |
+It is only possible to move the window from user external commands, and the window can't be stretched or altered from internal operations. + |
+
Anchored + |
+The window will remain fixed in its original position. + |
+