diff --git a/Include/dxwnd.h b/Include/dxwnd.h index c1d4cec..c018474 100644 --- a/Include/dxwnd.h +++ b/Include/dxwnd.h @@ -207,7 +207,7 @@ #define REUSEEMULATEDDC 0x00800000 #define CREATEDESKTOP 0x01000000 // creates a virtual desktop window to replace the real one #define NOWINDOWHOOKS 0x02000000 // do not intercept window callback routines -//#define NOMOUSEPROC 0x04000000 // don't process mouse x,y coordinates twice in WindowProc and MessageHook hookers +#define SYNCPALETTE 0x04000000 // Syncronize GDI to DDRAW palette // logging Tflags DWORD: #define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general diff --git a/build/dxwnd.dll b/build/dxwnd.dll index 164a363..95f92cb 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d724989d76de31cdefc98848587998e2e3464ea49793397892e068d37db2c730 -size 593408 +oid sha256:aea2bada6a8f9329392fea5ab8975c3751d32c6a84c8f02924cdef0f42854dca +size 595456 diff --git a/build/dxwnd.exe b/build/dxwnd.exe index a960b3c..2f0682e 100644 --- a/build/dxwnd.exe +++ b/build/dxwnd.exe @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:17c20de2bcab09a41568811d8227ff38f2411dd95c133e1252e2852293ab643f -size 545280 +oid sha256:d242c24095ab0e76e32fe9d98821ab993f406512317a733859b531f466d160f7 +size 545792 diff --git a/build/dxwnd.ini b/build/dxwnd.ini new file mode 100644 index 0000000..e99a2ff --- /dev/null +++ b/build/dxwnd.ini @@ -0,0 +1,163 @@ +[window] +exportpath=D:\DxWnd\exports\ +posx=1231 +posy=493 +sizx=320 +sizy=200 +exepath=D:\Games\Men in Black\ +[target] +title0=Fin-Fin +path0=D:\Games\Fin-Fin\v90seger\teoboot.exe +launchpath0=D:\Games\Fin-Fin\v90seger\FinFin.exe +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=-1465909214 +flagg0=1207959552 +flagh0=20 +flagi0=205520900 +flagj0=4224 +flagk0=327680 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 +title1=Men in Black +path1=D:\Games\Men in Black\MiBd.exe +launchpath1= +module1=RWL21 +opengllib1= +notes1= +registry1= +ver1=0 +coord1=0 +flag1=136314914 +flagg1=1209008128 +flagh1=20 +flagi1=138412036 +flagj1=4224 +flagk1=327680 +tflag1=-2147477245 +initx1=0 +inity1=0 +minx1=0 +miny1=0 +maxx1=0 +maxy1=0 +posx1=50 +posy1=50 +sizx1=800 +sizy1=600 +maxfps1=0 +initts1=0 +winver1=0 +maxres1=-1 +swapeffect1=0 +title2=STCC Swedish TouringCar Championship +path2=D:\Games\STCC\STCC.exe +launchpath2= +module2= +opengllib2= +notes2=Still slow and choppy in emulation mode +registry2= +ver2=0 +coord2=0 +flag2=136314914 +flagg2=1207959552 +flagh2=-2147483628 +flagi2=138412036 +flagj2=268439680 +flagk2=69632 +tflag2=-2147477245 +initx2=0 +inity2=0 +minx2=0 +miny2=0 +maxx2=0 +maxy2=0 +posx2=50 +posy2=50 +sizx2=800 +sizy2=600 +maxfps2=0 +initts2=0 +winver2=0 +maxres2=-1 +swapeffect2=0 +title3=DOSBox.exe +path3=D:\Program Files (x86)\DOSBox-0.74\DOSBox.exe +launchpath3= +module3= +opengllib3= +notes3= +registry3= +ver3=0 +coord3=0 +flag3=681574434 +flagg3=1744830464 +flagh3=20 +flagi3=138412036 +flagj3=4224 +flagk3=327680 +tflag3=0 +initx3=0 +inity3=0 +minx3=0 +miny3=0 +maxx3=0 +maxy3=0 +posx3=50 +posy3=50 +sizx3=800 +sizy3=600 +maxfps3=0 +initts3=0 +winver3=0 +maxres3=-1 +swapeffect3=0 +title4=Imperialism +path4=D:\Games\Imperialism\Imperialism.exe +launchpath4= +module4= +opengllib4= +notes4=Note:\nMap zooming is currently not workind. Do not click on the magnifying glass, \nor the game will crash. +registry4= +ver4=0 +coord4=0 +flag4=1746935843 +flagg4=1209008128 +flagh4=20 +flagi4=4194308 +flagj4=128 +flagk4=0 +tflag4=0 +initx4=0 +inity4=0 +minx4=0 +miny4=0 +maxx4=0 +maxy4=0 +posx4=50 +posy4=50 +sizx4=800 +sizy4=600 +maxfps4=0 +initts4=0 +winver4=0 +maxres4=-1 +swapeffect4=0 diff --git a/build/exports/Fifa 99 (Direct3D).dxw b/build/exports/Fifa 99 (Direct3D).dxw index f8c3673..9ebbd8a 100644 --- a/build/exports/Fifa 99 (Direct3D).dxw +++ b/build/exports/Fifa 99 (Direct3D).dxw @@ -27,5 +27,6 @@ initts0=0 winver0=0 maxres0=-1 notes0= -flagk0=0 +flagk0=65536 swapeffect0=0 +registry0= diff --git a/build/exports/Fin-Fin.dxw b/build/exports/Fin-Fin.dxw index 321cc05..9b57ce1 100644 --- a/build/exports/Fin-Fin.dxw +++ b/build/exports/Fin-Fin.dxw @@ -1,17 +1,17 @@ [target] title0=Fin-Fin path0=D:\Games\Fin-Fin\v90seger\teoboot.exe -launchpath0=D:\Games\Fin-Fin\v90seger\FinFin.exe +launchpath0= module0= opengllib0= notes0= registry0= ver0=0 coord0=0 -flag0=-1465909214 +flag0=136314914 flagg0=1207959552 flagh0=20 -flagi0=205520900 +flagi0=138412036 flagj0=4224 flagk0=327680 tflag0=0 diff --git a/build/exports/Imperialism II.dxw b/build/exports/Imperialism II.dxw index edc1d09..877dcee 100644 --- a/build/exports/Imperialism II.dxw +++ b/build/exports/Imperialism II.dxw @@ -6,9 +6,9 @@ opengllib0= ver0=0 coord0=0 flag0=679485474 -flagg0=1207959552 -flagh0=32788 -flagi0=4 +flagg0=1209008128 +flagh0=20 +flagi0=4194308 tflag0=0 initx0=0 inity0=0 @@ -24,3 +24,9 @@ maxfps0=0 initts0=0 winver0=0 maxres0=0 +launchpath0= +notes0= +registry0= +flagj0=0 +flagk0=262144 +swapeffect0=0 diff --git a/build/exports/Imperialism.dxw b/build/exports/Imperialism.dxw index 1678029..7c57902 100644 --- a/build/exports/Imperialism.dxw +++ b/build/exports/Imperialism.dxw @@ -5,11 +5,11 @@ module0= opengllib0= ver0=0 coord0=0 -flag0=1744839201 -flagg0=134217728 -flagh0=32788 +flag0=1746935843 +flagg0=1209008128 +flagh0=20 flagi0=4194308 -tflag0=6466 +tflag0=0 initx0=0 inity0=0 minx0=0 @@ -24,3 +24,9 @@ maxfps0=0 initts0=0 winver0=0 maxres0=-1 +launchpath0= +notes0=Note:\nMap zooming is currently not workind. Do not click on the magnifying glass, \nor the game will crash. +registry0= +flagj0=128 +flagk0=0 +swapeffect0=0 diff --git a/build/exports/Men in Black.dxw b/build/exports/Men in Black.dxw new file mode 100644 index 0000000..c21f90b --- /dev/null +++ b/build/exports/Men in Black.dxw @@ -0,0 +1,32 @@ +[target] +title0=Men in Black +path0=D:\Games\Men in Black\MiBd.exe +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +flagk0=67436544 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 diff --git a/build/exports/Take no Prisoners.dxw b/build/exports/Take no Prisoners.dxw index 9040b3b..1f21887 100644 --- a/build/exports/Take no Prisoners.dxw +++ b/build/exports/Take no Prisoners.dxw @@ -27,3 +27,6 @@ notes0= flagj0=128 winver0=0 maxres0=0 +registry0= +flagk0=65536 +swapeffect0=0 diff --git a/build/exports/Virtua Fighter.dxw b/build/exports/Virtua Fighter.dxw new file mode 100644 index 0000000..f6995fa --- /dev/null +++ b/build/exports/Virtua Fighter.dxw @@ -0,0 +1,32 @@ +[target] +title0=Virtua Fighter +path0=D:\Games\Virtua Fighter\VFPC.EXE +launchpath0= +module0= +opengllib0= +notes0= +registry0= +ver0=0 +coord0=0 +flag0=136314914 +flagg0=1207959552 +flagh0=20 +flagi0=134217732 +flagj0=4224 +flagk0=327680 +tflag0=0 +initx0=0 +inity0=0 +minx0=0 +miny0=0 +maxx0=0 +maxy0=0 +posx0=50 +posy0=50 +sizx0=800 +sizy0=600 +maxfps0=0 +initts0=0 +winver0=0 +maxres0=-1 +swapeffect0=0 diff --git a/build/exports/dxwnd.ini b/build/exports/dxwnd.ini deleted file mode 100644 index 33f790b..0000000 --- a/build/exports/dxwnd.ini +++ /dev/null @@ -1,5 +0,0 @@ -[window] -posx=1363 -posy=191 -sizx=320 -sizy=542 diff --git a/build/redist/S3DTKW.DLL b/build/redist/S3DTKW.DLL new file mode 100644 index 0000000..00a8e5d Binary files /dev/null and b/build/redist/S3DTKW.DLL differ diff --git a/build/registry/dxwnd.688IHK.reg b/build/registry/dxwnd.688IHK.reg deleted file mode 100644 index 997c54f..0000000 --- a/build/registry/dxwnd.688IHK.reg +++ /dev/null @@ -1,15 +0,0 @@ -# 688I Hunter Killer: nocd patch - -[HKEY_LOCAL_MACHINE\SOFTWARE\Jane's Combat Simulations] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Jane's Combat Simulations\688I Hunter-Killer] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Jane's Combat Simulations\688I Hunter-Killer\1.0] -"cdInstallPath"="d:\\games\\688\\" -"sfxInstallPath"="d:\\games\\688\\sfx\\sfx.agg+" -"midiInstallPath"="d:\\games\\688\\midi" -"objectsInstallPath"="d:\\games\\688\\objects" -"graphicsInstallPath"="d:\\games\\688\\graphics" -"booksInstallPath"="d:\\games\\688\\books" -"rootInstallPath"="d:\\games\\688\\" - diff --git a/build/registry/dxwnd.Die Hard Trilogy.REG b/build/registry/dxwnd.Die Hard Trilogy.REG deleted file mode 100644 index 3b1826b..0000000 --- a/build/registry/dxwnd.Die Hard Trilogy.REG +++ /dev/null @@ -1,69 +0,0 @@ - -[HKEY_LOCAL_MACHINE] -[HKEY_LOCAL_MACHINE\SOFTWARE] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard] -"Install Directory"="d:\\games\\Die Hard Trilogy" -"FMV Installed"=dword:00000000 -"Data Installed"=dword:00000001 -"Abnormal Termination"=dword:00000000 -"StartupFolder"="Fox Interactive" -"Version"="1.00" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\Configuration] -"complexity"=dword:00000000 -"cutoff"=dword:00000000 -"perspective"=dword:00000000 -"Quality"=dword:00000000 -"Use Hardware"=dword:00000000 -"Preferred Height"=dword:00000258 -"Preferred Width"=dword:00000320 -"lighting"=dword:00000001 -"texture quality"=dword:00000000 -"Language"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d1] -"Input"=dword:00000000 -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d1\Keyboard] -"keyboard"=dword:00000001 -"speed"=dword:00000000 -"sensitivity"=dword:00000000 -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d1\Joystick] -"joystick"=dword:00000001 -"speed"=dword:00000000 -"sensitivity"=dword:00000000 -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d1\Mouse] -"mouse"=dword:00000001 -"speed"=dword:00000000 -"sensitivity"=dword:00000000 -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d2] -"Input"=dword:00000000 -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d2\Keyboard] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d2\Keyboard\speed] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d2\Keyboard\sensitivity] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d2\Joystick] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d2\Joystick\speed] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d2\Joystick\sensitivity] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d2\Mouse] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d2\Mouse\speed] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d2\Mouse\sensitivity] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d3] -"Input"=dword:00000000 -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d3\Keyboard] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d3\Keyboard\speed] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d3\Keyboard\sensitivity] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d3\Joystick] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d3\Joystick\speed] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d3\Joystick\sensitivity] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d3\Mouse] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d3\Mouse\speed] -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\d3\Mouse\sensitivity] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Die Hard\Sound] -"Music Volume"=dword:000000ff -"Music Mute"=dword:00000000 -"SFX Volume"=dword:000000ff -"SFX Mute"=dword:00000000 - -[HKEY_LOCAL_MACHINE\SOFTWARE\Fox Interactive] -[HKEY_LOCAL_MACHINE\SOFTWARE\Fox Interactive\Die Hard Trilogy] -[HKEY_LOCAL_MACHINE\SOFTWARE\Fox Interactive\Die Hard Trilogy\1.0] diff --git a/build/registry/dxwnd.Hercules.REG b/build/registry/dxwnd.Hercules.REG deleted file mode 100644 index 0bcb9f8..0000000 --- a/build/registry/dxwnd.Hercules.REG +++ /dev/null @@ -1,14 +0,0 @@ - -[HKEY_LOCAL_MACHINE\SOFTWARE] -[HKEY_LOCAL_MACHINE\SOFTWARE\Disney Interactive] -[HKEY_LOCAL_MACHINE\SOFTWARE\Disney Interactive\Hercules] -[HKEY_LOCAL_MACHINE\SOFTWARE\Disney Interactive\Hercules\1.00] -"DATA"="DATA\\" -"User Path"=".\\" -"BitVersion"="32 Bit" -"PATH"=".\\" -"EntryPoint"=".\\Hercules.exe" -"Help"=".\\hercules.hlp" -"Uninstall"="C:\\WINDOWS\\uninst.exe -fC:\\Hercules\\DeIsL1.isu" -"Config"=hex:05,ca,ab,07,01,01,01,00,03,01,01,00,01,01,01,00,ff,3f,00,00,01,00,ff,ff,03,00,00,00,26,00,28,00,25,00,27,00,58,00,5a,00,43,00,44,00,53,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 - diff --git a/build/registry/dxwnd.Requiem.reg b/build/registry/dxwnd.Requiem.reg deleted file mode 100644 index 71b12c0..0000000 --- a/build/registry/dxwnd.Requiem.reg +++ /dev/null @@ -1,10 +0,0 @@ -# Requiem Avenging Angel: DirectX version patch - -[HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\DirectX] -"Version"="4.07.00.0704" - -[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectX] -"Version"="4.07.00.0704" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectX] -"Version"="4.07.00.0704" diff --git a/build/registry/dxwnd.Settlers 3.REG b/build/registry/dxwnd.Settlers 3.REG deleted file mode 100644 index f478303..0000000 --- a/build/registry/dxwnd.Settlers 3.REG +++ /dev/null @@ -1,29 +0,0 @@ -REGEDIT4 - -[HKEY_LOCAL_MACHINE\SOFTWARE\Bluebyte] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Bluebyte\Siedler3] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Bluebyte\Siedler3\1.0] - -[HKEY_LOCAL_MACHINE\SOFTWARE\Bluebyte\Siedler3\1.0\Patches] -"convert"="0" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Bluebyte\Siedler3\1.0\General] -"Resolution"=dword:00000000 -"NoAlpha"=dword:00000000 -"FogSpeed"=dword:00000003 -"GDIMouse"=dword:00000000 -"WaitVBlank"=dword:00000001 -"ScrollMode"=dword:00000001 -"ScrollSpeed"=dword:00000005 -"BuildHelp"=dword:00000001 -"SoundFormat"=dword:00000001 -"CDAudio"=dword:00000000 -"VideoFormat"=dword:00000000 -"MessageLevel"=dword:00000009 -"Intro"=dword:00000000 -"SerialNumber"="6784-1136-5836-4351-2191" -"Playername"="TP" -"Language"=dword:00000000 - diff --git a/build/registry/dxwnd.SimCity 2000.reg b/build/registry/dxwnd.SimCity 2000.reg deleted file mode 100644 index 9728bbc..0000000 --- a/build/registry/dxwnd.SimCity 2000.reg +++ /dev/null @@ -1,47 +0,0 @@ -[HKEY_CURRENT_USER\SOFTWARE] -[HKEY_CURRENT_USER\SOFTWARE\Maxis] -[HKEY_CURRENT_USER\SOFTWARE\Maxis\SimCity 2000] -[HKEY_CURRENT_USER\SOFTWARE\Maxis\SimCity 2000\Localize] -"Language"="USA" - -[HKEY_CURRENT_USER\SOFTWARE\Maxis\SimCity 2000\Options] -"AutoBudget"=dword:00000000 -"AutoGoto"=dword:00000001 -"AutoSave"=dword:00000000 -"Disasters"=dword:00000001 -"Music"=dword:00000001 -"Sound"=dword:00000001 -"Speed"=dword:00000001 - -[HKEY_CURRENT_USER\SOFTWARE\Maxis\SimCity 2000\Paths] -"Cities"="D:\\Games\\Simcity 2000\\Cities" -"Data"="D:\\Games\\Simcity 2000\\Data" -"Goodies"="D:\\Games\\Simcity 2000\\Goodies" -"Graphics"="D:\\Games\\Simcity 2000\\Bitmaps" -"Home"="D:\\Games\\Simcity 2000" -"Music"="D:\\Games\\Simcity 2000\\Sounds" -"SaveGame"="D:\\Games\\Simcity 2000\\Cities" -"Folder"="Maxis" -"Scenarios"="D:\\Games\\Simcity 2000\\Scenario" -"TileSets"="D:\\Games\\Simcity 2000\\ScurkArt" - -[HKEY_CURRENT_USER\SOFTWARE\Maxis\SimCity 2000\Registration] -"Company Name"="nameless mutual loan company" -"Mayor Name"="Jane Doe" - -[HKEY_CURRENT_USER\SOFTWARE\Maxis\SimCity 2000\SCURK] -"CycleColors"=dword:00000001 -"GridHeight"=dword:00000008 -"GridWidth"=dword:00000008 -"ShowClipRegion"=dword:00000000 -"ShowDrawGrid"=dword:00000000 -"SnapToGrid"=dword:00000000 -"Sound"=dword:00000001 - -[HKEY_CURRENT_USER\SOFTWARE\Maxis\SimCity 2000\Version] -"SimCity 2000"=dword:00000100 -"SCURK"=dword:00000100 - -[HKEY_CURRENT_USER\SOFTWARE\Maxis\SimCity 2000\Windows] -"Color Check"=dword:00000000 -"Display"="8 1" diff --git a/build/registry/dxwnd.Street Fighters Zero.REG b/build/registry/dxwnd.Street Fighters Zero.REG deleted file mode 100644 index f6fbd85..0000000 --- a/build/registry/dxwnd.Street Fighters Zero.REG +++ /dev/null @@ -1,7 +0,0 @@ - -[HKEY_LOCAL_MACHINE\SOFTWARE\CAPCOM] -[HKEY_LOCAL_MACHINE\SOFTWARE\CAPCOM\STREETFIGHTERZERO] -""="..\\bin" - -[HKEY_LOCAL_MACHINE\SOFTWARE\CAPCOM\STREETFIGHTERZERO\1.0] - diff --git a/build/registry/dxwnd.chaos island.REG b/build/registry/dxwnd.chaos island.REG deleted file mode 100644 index 678c936..0000000 --- a/build/registry/dxwnd.chaos island.REG +++ /dev/null @@ -1,16 +0,0 @@ - -[HKEY_LOCAL_MACHINE\SOFTWARE\] -[HKEY_LOCAL_MACHINE\SOFTWARE\DreamWorks Interactive] -[HKEY_LOCAL_MACHINE\SOFTWARE\DreamWorks Interactive\ChaosIsland] -"Data Drive"=".\\" -"PID"="71239-442-3367621-91206" -"Installed Directory"=".\\" -"Run File"=".\\" -"InstallType"=dword:00000001 -"KBPS_OTHER"=dword:00000000 -"KBPS"=dword:00000000 -"Installed"=dword:00000001 -"NextTip"=dword:00000001 -"StartupTips"=dword:00000001 -"FPS"=dword:00000003 - diff --git a/build/registry/dxwnd.close combat 2.REG b/build/registry/dxwnd.close combat 2.REG deleted file mode 100644 index 9ded368..0000000 --- a/build/registry/dxwnd.close combat 2.REG +++ /dev/null @@ -1,28 +0,0 @@ -// Close Combat 2 a bridge too far - -[HKEY_LOCAL_MACHINE\SOFTWARE] -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft] -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games] -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Close Combat] -[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Close Combat\2.00] -"PID"="00000-000-0000000-00000" -"InstalledTo"=".\\" -"ScreenX"="800" -"ScreenY"="600" -"Version"="2.0" -"IType"=hex:01,00,00,00 -"GameSpeed"=hex:01,00,00,00 -"ShowDSAlert"=hex:01,00,00,00 -"ShowQuickHelp"=hex:01,00,00,00 -"PlaySounds"=hex:01,00,00,00 -"PlayMusic"=hex:01,00,00,00 -"PlayVideos"=hex:00,00,00,00 -"FCopy"=hex:00,00,00,00 -"SMethod"=hex:00,00,00,00 -"Save"=hex:00,00,00,00 -"ShowTrees"=hex:01,00,00,00 -"StaticFPS"=hex:0a,00,00,00 -"InstalledFrom"=".\\" -"Launched"="1" -"VersionType"="RetailVersion" - diff --git a/build/registry/dxwnd.road rash.reg b/build/registry/dxwnd.road rash.reg deleted file mode 100644 index 03f7ff3..0000000 --- a/build/registry/dxwnd.road rash.reg +++ /dev/null @@ -1,13 +0,0 @@ -[HKEY_LOCAL_MACHINE\SOFTWARE] - -; Road Rash - -[HKEY_LOCAL_MACHINE\SOFTWARE\Electronic Arts] -[HKEY_LOCAL_MACHINE\SOFTWARE\Electronic Arts\RoadRash 95] -""="" -"Path"="." -"CheckDialup"=hex:00 -"ChatState"=hex:02 -"MiniDash"=hex:00 -"OpponentList"=hex:01 - diff --git a/build/registry/dxwnd.tak.reg b/build/registry/dxwnd.tak.reg deleted file mode 100644 index 2edbbea..0000000 --- a/build/registry/dxwnd.tak.reg +++ /dev/null @@ -1,15 +0,0 @@ - -[HKEY_LOCAL_MACHINE\Software] -[HKEY_LOCAL_MACHINE\Software\Cavedog Entertainment] -[HKEY_LOCAL_MACHINE\Software\Cavedog Entertainment\Total Annihilation: Kingdoms] -[HKEY_LOCAL_MACHINE\Software\Cavedog Entertainment\Total Annihilation: Kingdoms\1.00.000] - -[HKEY_CURRENT_USER\Software\Cavedog Entertainment] -[HKEY_CURRENT_USER\Software\Cavedog Entertainment\Kingdoms] -"InstallDirectX"=dword:00000001 - -[HKEY_CURRENT_USER\Software\Cavedog Entertainment\Kingdoms\InterfaceOptions] -"Language"="ENGLISH" - -[HKEY_CURRENT_USER\Software\Cavedog Entertainment\Cartographer] - diff --git a/build/registry/dxwnd.the Divide.REG b/build/registry/dxwnd.the Divide.REG deleted file mode 100644 index 42406af..0000000 --- a/build/registry/dxwnd.the Divide.REG +++ /dev/null @@ -1,20 +0,0 @@ -[HKEY_LOCAL_MACHINE\SOFTWARE] -[HKEY_LOCAL_MACHINE\SOFTWARE\Viacom New Media] -[HKEY_LOCAL_MACHINE\SOFTWARE\Viacom New Media\The Divide] -[HKEY_LOCAL_MACHINE\SOFTWARE\Viacom New Media\The Divide\1.0] -"Display Name"="\"The Divide\"" -"InstallDir"="." -"InstallSrc"="." -"CDROM"=".:" -"ProgramDir"="." -"LevelsDir"=".\\Levels\\" -"MoviesDir"=".\\Movies\\" -"SoundsDir"=".\\pc\\" - - -[HKEY_CURRENT_USER\SOFTWARE\Viacom New Media\The Divide\Config] -"Game Settings"=hex:20,03,00,00,58,02,00,00,20,03,00,00,58,02,00,00\ -00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,01,00,00,00,00\ -00,00,00,00,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,00,00\ -00,00,01,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00 - diff --git a/build/registry/dxwnd.the Hive.reg b/build/registry/dxwnd.the Hive.reg deleted file mode 100644 index 58b1a93..0000000 --- a/build/registry/dxwnd.the Hive.reg +++ /dev/null @@ -1,27 +0,0 @@ -# The Hive registry settings - -[HKEY_LOCAL_MACHINE\SOFTWARE\Rainbow] -[HKEY_LOCAL_MACHINE\SOFTWARE\Rainbow\TheHIVE] -[HKEY_LOCAL_MACHINE\SOFTWARE\Rainbow\TheHIVE\GlobalInfo] -"currentPlayer"="GHO" -"workingGameDirectory"=".\\" - -[HKEY_LOCAL_MACHINE\SOFTWARE\Rainbow\TheHIVE\GHO] -"userInfo"=dword:4ac9fbcb -"displayMode"=dword:000003fb -"profile"=dword:00010020 - -# displaymode = 3F7 (fair) -# displaymode = 3F9 (good) -# displaymode = 3Fa (better) -# displaymode = 3Fb (best) - -# userInfo = 4ac9fbcb (1st level) -# userInfo = 4B49fADB (2nd level) -# userinfo = d249f6d6 (??) - -# profile = 0x00010020 (practice) -# profile = 0x00010000 (normal) -# profile = 0x00010010 (expert) - -# profile = 0x.......1 (flip joystick direction) diff --git a/build/registry/dxwnd.the Industry Giant.reg b/build/registry/dxwnd.the Industry Giant.reg deleted file mode 100644 index 718f49f..0000000 --- a/build/registry/dxwnd.the Industry Giant.reg +++ /dev/null @@ -1,9 +0,0 @@ -[HKEY_LOCAL_MACHINE\SOFTWARE] - -; the Industry Giant - - -[HKEY_LOCAL_MACHINE\SOFTWARE\JoWooD] -[HKEY_LOCAL_MACHINE\SOFTWARE\JoWooD\The IndustryGiant] -"InstallPath"="." - diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index 560e7f9..d03599d 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -2321,6 +2321,18 @@ static HRESULT BuildPrimaryEmu(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf // "Hoyle Casino Empire" opens a primary surface and NOT a backbuffer .... iBakBufferVersion=dxversion; // v2.03.01 + // build a default System palette and apply it to primary surface + if((ddsd.ddpfPixelFormat.dwFlags & DDPF_PALETTEINDEXED8) && + (dxw.dwFlags6 & SYNCPALETTE)){ + if(lpDDP == NULL){ + res=(*pCreatePalette)(lpdd, DDPCAPS_8BIT|DDPCAPS_ALLOW256, DefaultSystemPalette, &lpDDP, NULL); + if(res) OutTrace("CreateSurface: CreatePalette ERROR err=%x at %d\n", res, __LINE__); + } + // this must be done after hooking - who knows why? + res=(*pSetPalette)(*lplpdds, lpDDP); + if(res) OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__); + } + // set a global capability value for surfaces that have to blit to primary // DDSCAPS_OFFSCREENPLAIN seems required to support the palette in memory surfaces // DDSCAPS_SYSTEMMEMORY makes operations faster, but it is not always good... @@ -2386,6 +2398,18 @@ static HRESULT BuildPrimaryFlippable(LPDIRECTDRAW lpdd, CreateSurface_Type pCrea // "Hoyle Casino Empire" opens a primary surface and NOT a backbuffer .... iBakBufferVersion=dxversion; // v2.03.01 + // build a default System palette and apply it to primary surface + if((ddsd.ddpfPixelFormat.dwFlags & DDPF_PALETTEINDEXED8) && + (dxw.dwFlags6 & SYNCPALETTE)){ + if(lpDDP == NULL){ + res=(*pCreatePalette)(lpdd, DDPCAPS_8BIT|DDPCAPS_ALLOW256, DefaultSystemPalette, &lpDDP, NULL); + if(res) OutTrace("CreateSurface: CreatePalette ERROR err=%x at %d\n", res, __LINE__); + } + // this must be done after hooking - who knows why? + res=(*pSetPalette)(*lplpdds, lpDDP); + if(res) OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__); + } + // set a global capability value for surfaces that have to blit to primary dwBackBufferCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY); // on WinXP Fifa 99 doesn't like DDSCAPS_SYSTEMMEMORY cap, so better to leave a way to unset it.... @@ -2496,6 +2520,17 @@ static HRESULT BuildBackBufferEmu(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateS HookDDSurfaceGeneric(lplpdds, dxversion); // added !!! iBakBufferVersion=dxversion; // v2.02.31 + if((ddsd.ddpfPixelFormat.dwFlags & DDPF_PALETTEINDEXED8) && + (dxw.dwFlags6 & SYNCPALETTE)){ + if(lpDDP == NULL){ + res=(*pCreatePalette)(lpdd, DDPCAPS_8BIT|DDPCAPS_ALLOW256, DefaultSystemPalette, &lpDDP, NULL); + if(res) OutTrace("CreateSurface: CreatePalette ERROR err=%x at %d\n", res, __LINE__); + } + // this must be done after hooking - who knows why? + res=(*pSetPalette)(*lplpdds, lpDDP); + if(res) OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__); + } + // V2.1.85/V2.2.34: tricky !!!! // When a real backbuffer is created, it has a reference to its frontbuffer. // some games (Monopoly 3D) may depend on this setting - i.e. they could close @@ -2541,6 +2576,17 @@ static HRESULT BuildBackBufferFlippable(LPDIRECTDRAW lpdd, CreateSurface_Type pC HookDDSurfaceGeneric(lplpdds, dxversion); // added !!! iBakBufferVersion=dxversion; // v2.02.31 + if((ddsd.ddpfPixelFormat.dwFlags & DDPF_PALETTEINDEXED8) && + (dxw.dwFlags6 & SYNCPALETTE)){ + if(lpDDP == NULL){ + res=(*pCreatePalette)(lpdd, DDPCAPS_8BIT|DDPCAPS_ALLOW256, DefaultSystemPalette, &lpDDP, NULL); + if(res) OutTrace("CreateSurface: CreatePalette ERROR err=%x at %d\n", res, __LINE__); + } + // this must be done after hooking - who knows why? + res=(*pSetPalette)(*lplpdds, lpDDP); + if(res) OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__); + } + return DD_OK; } diff --git a/dll/dxhook.cpp b/dll/dxhook.cpp index b45ff20..b376ba1 100644 --- a/dll/dxhook.cpp +++ b/dll/dxhook.cpp @@ -113,7 +113,7 @@ static char *Flag6Names[32]={ "NOSYSMEMPRIMARY", "NOSYSMEMBACKBUF", "CONFIRMONCLOSE", "TERMINATEONCLOSE", "FLIPEMULATION", "SETZBUFFERBITDEPTHS", "SHAREDDC", "WOW32REGISTRY", "STRETCHMOVIES", "BYPASSMCI", "FIXPIXELZOOM", "REUSEEMULATEDDC", - "CREATEDESKTOP", "NOWINDOWHOOKS", "--NOMOUSEPROC--", "", + "CREATEDESKTOP", "NOWINDOWHOOKS", "SYNCPALETTE", "", "", "", "", "", }; diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index dcbf3a9..fda1426 100644 --- a/dll/dxwnd.cpp +++ b/dll/dxwnd.cpp @@ -27,7 +27,7 @@ along with this program. If not, see . #include "TlHelp32.h" -#define VERSION "2.03.41" +#define VERSION "2.03.42" #define DDTHREADLOCK 1 //#define LOCKTHREADS diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index f07b3d7..9f6c481 100644 Binary files a/dll/dxwnd.vs2008.suo and b/dll/dxwnd.vs2008.suo differ diff --git a/dll/gdi32.cpp b/dll/gdi32.cpp index 13f2c62..2e8e04a 100644 --- a/dll/gdi32.cpp +++ b/dll/gdi32.cpp @@ -231,6 +231,7 @@ extern HRESULT WINAPI sBlt(char *, LPDIRECTDRAWSURFACE, LPRECT, LPDIRECTDRAWSURF extern GetDC_Type pGetDC; extern ReleaseDC_Type pReleaseDC; +#if 0 static COLORREF GetMatchingColor(COLORREF crColor) { int iDistance, iMinDistance; @@ -306,6 +307,7 @@ static COLORREF GetMatchingColor(COLORREF crColor) } return crColor; } +#endif //-------------------------------------------------------------------------------------------- // @@ -564,17 +566,19 @@ HPALETTE WINAPI extSelectPalette(HDC hdc, HPALETTE hpal, BOOL bForceBackground) OutTraceDW("GDI.SelectPalette: hdc=%x hpal=%x ForceBackground=%x\n", hdc, hpal, bForceBackground); if(hdc==dxw.RealHDC) hdc= dxw.VirtualHDC; - if(dxw.dwFlags1 & EMULATESURFACE){ + if((dxw.dwFlags1 & EMULATESURFACE) && (dxw.dwFlags6 & SYNCPALETTE) && bFlippedDC){ hDesktopPalette=hpal; - PALETTEENTRY lppe[256]; - int nEntries; - if(bFlippedDC) hdc = hFlippedDC; - ret=(*pGDISelectPalette)(hdc, hpal, bForceBackground); - nEntries=(*pGetPaletteEntries)(hpal, 0, 256, lppe); - //mySetPalette(0, nEntries, lppe); - //OutTraceDW("GDI.SelectPalette: register desktop palette hpal=%x nEntries=%d\n", hpal, nEntries); - OutTraceDW("GDI.SelectPalette: remapped hdc=%x hpal=%x nEntries=%d\n", hdc, hpal, nEntries); - if(IsDebug && nEntries) dxw.DumpPalette(nEntries, lppe); + if(hFlippedDC){ + hdc = hFlippedDC; + ret=(*pGDISelectPalette)(hdc, hpal, bForceBackground); + } + else{ + LPDIRECTDRAWSURFACE lpDDSPrim; + lpDDSPrim = dxwss.GetPrimarySurface(); + (*pGetDC)(lpDDSPrim, &hdc); + ret=(*pGDISelectPalette)(hdc, hpal, bForceBackground); + (*pReleaseDC)(lpDDSPrim, hdc); + } } else{ ret=(*pGDISelectPalette)(hdc, hpal, bForceBackground); @@ -591,13 +595,13 @@ BOOL WINAPI extAnimatePalette(HPALETTE hpal, UINT iStartIndex, UINT cEntries, co return TRUE; } -UINT WINAPI extRealizePalette(HDC hdc) +UINT WINAPI extRealizePalette(HDC hdc) { UINT ret; OutTraceDW("GDI.RealizePalette: hdc=%x\n", hdc); - if(dxw.dwFlags1 & EMULATESURFACE){ + if((dxw.dwFlags1 & EMULATESURFACE) && (dxw.dwFlags6 & SYNCPALETTE)){ PALETTEENTRY PalEntries[256]; UINT nEntries; if(bFlippedDC) hdc = hFlippedDC; @@ -608,6 +612,11 @@ UINT WINAPI extRealizePalette(HDC hdc) mySetPalette(0, nEntries, PalEntries); if(IsDebug && nEntries) dxw.DumpPalette(nEntries, PalEntries); ret=nEntries; + + HRESULT res; + extern LPDIRECTDRAWPALETTE lpDDP; + extern SetEntries_Type pSetEntries; + res=(*pSetEntries)(lpDDP, 0, 0, 256, PalEntries); } else ret=(*pGDIRealizePalette)(hdc); @@ -623,7 +632,7 @@ UINT WINAPI extGetSystemPaletteEntries(HDC hdc, UINT iStartIndex, UINT nEntries, OutTraceDW("GetSystemPaletteEntries: hdc=%x start=%d num=%d\n", hdc, iStartIndex, nEntries); ret=(*pGDIGetSystemPaletteEntries)(hdc, iStartIndex, nEntries, lppe); OutTraceDW("GetSystemPaletteEntries: ret=%d\n", ret); - if((ret == 0) && (dxw.dwFlags1 & EMULATESURFACE)) { + if((ret == 0) && (dxw.dwFlags1 & EMULATESURFACE) && (dxw.dwFlags6 & SYNCPALETTE)) { // use static default data... for(UINT idx=0; idx 256) ? nEntries : 256; // "M.I.B." patch .... + if((res < nEntries) && (dxw.dwFlags6 & SYNCPALETTE)) { + res = nEntries; + OutTraceDW("GDI.GetPaletteEntries: faking missing entries=%d\n", res); } if(IsDebug && res) dxw.DumpPalette(res, &lppe[iStartIndex]); //mySetPalette(0, nEntries, lppe); diff --git a/dll/msvfw.cpp b/dll/msvfw.cpp index 49d9bdc..cda90b5 100644 --- a/dll/msvfw.cpp +++ b/dll/msvfw.cpp @@ -20,7 +20,7 @@ BOOL WINAPI extDrawDibDraw(HDRAWDIB, HDC, int, int, int, int, LPBITMAPINFOHEADER static HookEntry_Type Hooks[]={ //{HOOK_HOT_CANDIDATE, "ICSendMessage", (FARPROC)NULL, (FARPROC *)&pICSendMessage, (FARPROC)extICSendMessage}, //{HOOK_HOT_CANDIDATE, "ICOpen", (FARPROC)NULL, (FARPROC *)&pICOpen, (FARPROC)extICOpen}, - //{HOOK_HOT_CANDIDATE, "MCIWndCreateA", (FARPROC)NULL, (FARPROC *)&pMCIWndCreateA, (FARPROC)extMCIWndCreateA}, // "Man in Black" - beware: this is NOT STDCALL!!! + {HOOK_HOT_CANDIDATE, "MCIWndCreateA", (FARPROC)NULL, (FARPROC *)&pMCIWndCreateA, (FARPROC)extMCIWndCreateA}, // "Man in Black" - beware: this is NOT STDCALL!!! {HOOK_HOT_CANDIDATE, "ICGetDisplayFormat", (FARPROC)NULL, (FARPROC *)&pICGetDisplayFormat, (FARPROC)extICGetDisplayFormat}, // "Man in Black" - beware: this is NOT STDCALL!!! {HOOK_HOT_CANDIDATE, "ICDrawBegin", (FARPROC)NULL, (FARPROC *)&pICDrawBegin, (FARPROC)extICDrawBegin}, {HOOK_HOT_CANDIDATE, "DrawDibDraw", (FARPROC)NULL, (FARPROC *)&pDrawDibDraw, (FARPROC)extDrawDibDraw}, @@ -172,17 +172,31 @@ HWND extMCIWndCreateA(HWND hwndParent, HINSTANCE hInstance, DWORD dwStyle, LPCTS HWND g_hwndMCIWnd; OutTraceDW("MCIWndCreateA: hwnd=%x hInst=%x style=%x(%s) file=%s\n", hwndParent, hInstance, dwStyle, ExplainMCIWndCreateFlags(dwStyle), szFile); - if(dxw.dwFlags6 & NOMOVIES) return NULL; + if(dxw.dwFlags6 & NOMOVIES) { + OutTraceDW("MCIWndCreateA: SUPPRESSED\n"); + return NULL; + } g_hwndMCIWnd = (*pMCIWndCreateA)(hwndParent, hInstance, dwStyle, szFile); // look at https://msdn.microsoft.com/en-us/library/windows/desktop/dd757178%28v=vs.85%29.aspx if(dxw.dwFlags5 & REMAPMCI){ - (*pSetWindowPos)(g_hwndMCIWnd, // window to resize - NULL, // z-order: don't care - (800-640)/2, (600-480)/2, 640, 480, + // since there seem to be no way to stretch the movie, we do an attempt to center + // the movie on the screen by shifting the video window. + // We assume (but we don't really know for sure ...) that the movie was to be rendered + // fulscreen using the size of the virtual desktop + RECT client; + OutTraceDW("MCIWndCreateA: CENTERED\n"); + (*pGetClientRect)(dxw.GethWnd(), &client); + (*pSetWindowPos)(g_hwndMCIWnd, // window to resize + NULL, // z-order: don't care + (client.right - dxw.GetScreenWidth()) / 2, // X pos + (client.bottom - dxw.GetScreenHeight()) / 2, // Y pos + dxw.GetScreenWidth(), // width + dxw.GetScreenHeight(), // height SWP_NOZORDER | SWP_NOACTIVATE); + //(*pUpdateWindow)(g_hwndMCIWnd); } return g_hwndMCIWnd; diff --git a/dll/user32.cpp b/dll/user32.cpp index a13b3f0..6653001 100644 --- a/dll/user32.cpp +++ b/dll/user32.cpp @@ -620,15 +620,19 @@ BOOL WINAPI extInvalidateRect(HWND hwnd, RECT *lpRect, BOOL bErase) OutTraceDW("InvalidateRect: hwnd=%x rect=NULL erase=%x\n", hwnd, bErase); - if(dxw.IsFullScreen() && dxw.IsRealDesktop(hwnd)) { - hwnd=dxw.GethWnd(); - dxw.MapClient(lpRect); - return (*pInvalidateRect)(hwnd, lpRect, bErase); - } - else{ - // don't exagerate ... - return (*pInvalidateRect)(hwnd, lpRect, bErase); + + if(dxw.IsFullScreen()) { + switch(GDIEmulationMode){ + case GDIMODE_STRETCHED: + if(lpRect) dxw.MapClient(lpRect); + break; + case GDIMODE_EMULATED: + default: + break; + } } + + return (*pInvalidateRect)(hwnd, lpRect, bErase); } BOOL WINAPI extShowWindow(HWND hwnd, int nCmdShow) diff --git a/dll/winproc.cpp b/dll/winproc.cpp index 7d3fbfc..ae87a21 100644 --- a/dll/winproc.cpp +++ b/dll/winproc.cpp @@ -407,18 +407,18 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp if(dxw.Windowize){ prev.x = LOWORD(lparam); prev.y = HIWORD(lparam); - if ((dxw.dwFlags1 & HIDEHWCURSOR) && dxw.IsFullScreen()){ - (*pGetClientRect)(hwnd, &rect); - if(prev.x >= 0 && prev.x < rect.right && prev.y >= 0 && prev.y < rect.bottom) - while((*pShowCursor)(0) >= 0); - else + if(dxw.IsFullScreen()){ + if (dxw.dwFlags1 & HIDEHWCURSOR){ + (*pGetClientRect)(hwnd, &rect); + if(prev.x >= 0 && prev.x < rect.right && prev.y >= 0 && prev.y < rect.bottom) + while((*pShowCursor)(0) >= 0); + else + while((*pShowCursor)(1) < 0); + } + if (dxw.dwFlags1 & SHOWHWCURSOR){ while((*pShowCursor)(1) < 0); + } } - else { - while((*pShowCursor)(1) < 0); - } - //if(dxw.dwFlags1 & MODIFYMOUSE){ // mouse processing - //if((dxw.dwFlags1 & MODIFYMOUSE) && !(dxw.dwFlags6 & NOMOUSEPROC)){ // mouse processing if((dxw.dwFlags1 & MODIFYMOUSE) && !(dxw.dwFlags1 & MESSAGEPROC)){ // mouse processing // scale mouse coordinates curr=dxw.FixCursorPos(prev); //v2.02.30 @@ -442,8 +442,6 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp case WM_MBUTTONDBLCLK: if(dxw.Windowize){ if((dxw.dwFlags1 & CLIPCURSOR) && ClipCursorToggleState) dxw.SetClipCursor(); - //if(dxw.dwFlags1 & MODIFYMOUSE){ // mouse processing - //if((dxw.dwFlags1 & MODIFYMOUSE) && !(dxw.dwFlags6 & NOMOUSEPROC)){ // mouse processing if((dxw.dwFlags1 & MODIFYMOUSE) && !(dxw.dwFlags1 & MESSAGEPROC)){ // mouse processing // scale mouse coordinates prev.x = LOWORD(lparam); diff --git a/host/TabSysLibs.cpp b/host/TabSysLibs.cpp index 82482fc..1f3d310 100644 --- a/host/TabSysLibs.cpp +++ b/host/TabSysLibs.cpp @@ -35,6 +35,7 @@ void CTabSysLibs::DoDataExchange(CDataExchange* pDX) DDX_Check(pDX, IDC_NOFILLRECT, cTarget->m_NoFillRect); DDX_Check(pDX, IDC_REUSEEMULATEDDC, cTarget->m_ReuseEmulatedDC); DDX_Check(pDX, IDC_CREATEDESKTOP, cTarget->m_CreateDesktop); + DDX_Check(pDX, IDC_SYNCPALETTE, cTarget->m_SyncPalette); // OpenGL DDX_Check(pDX, IDC_HOOKOPENGL, cTarget->m_HookOpenGL); // duplicated diff --git a/host/TargetDlg.cpp b/host/TargetDlg.cpp index 36738f6..b11eac2 100644 --- a/host/TargetDlg.cpp +++ b/host/TargetDlg.cpp @@ -197,6 +197,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/) m_NoFillRect = FALSE; m_ReuseEmulatedDC = FALSE; // ?? m_CreateDesktop = FALSE; + m_SyncPalette = FALSE; m_AnalyticMode = FALSE; m_NoPaletteUpdate = FALSE; m_WireFrame = FALSE; diff --git a/host/TargetDlg.h b/host/TargetDlg.h index 3180262..ed76f55 100644 --- a/host/TargetDlg.h +++ b/host/TargetDlg.h @@ -163,6 +163,7 @@ public: BOOL m_NoFillRect; BOOL m_ReuseEmulatedDC; BOOL m_CreateDesktop; + BOOL m_SyncPalette; BOOL m_AnalyticMode; BOOL m_NoPaletteUpdate; BOOL m_LimitResources; diff --git a/host/dxwndhost.aps b/host/dxwndhost.aps index 732034a..f5fd762 100644 Binary files a/host/dxwndhost.aps and b/host/dxwndhost.aps differ diff --git a/host/dxwndhost.rc b/host/dxwndhost.rc index e3edc1d..5035f2f 100644 Binary files a/host/dxwndhost.rc and b/host/dxwndhost.rc differ diff --git a/host/dxwndhost.vs2008.suo b/host/dxwndhost.vs2008.suo index 4d106bb..c76dae1 100644 Binary files a/host/dxwndhost.vs2008.suo and b/host/dxwndhost.vs2008.suo differ diff --git a/host/dxwndhostView.cpp b/host/dxwndhostView.cpp index bad4c01..cb749f4 100644 --- a/host/dxwndhostView.cpp +++ b/host/dxwndhostView.cpp @@ -401,6 +401,7 @@ static void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg) if(dlg->m_NoFillRect) t->flags4 |= NOFILLRECT; if(dlg->m_ReuseEmulatedDC) t->flags6 |= REUSEEMULATEDDC; if(dlg->m_CreateDesktop) t->flags6 |= CREATEDESKTOP; + if(dlg->m_SyncPalette) t->flags6 |= SYNCPALETTE; if(dlg->m_AnalyticMode) t->flags3 |= ANALYTICMODE; if(dlg->m_ReplacePrivOps) t->flags5 |= REPLACEPRIVOPS; t->initx = dlg->m_InitX; @@ -641,6 +642,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg) dlg->m_NoFillRect = t->flags4 & NOFILLRECT ? 1 : 0; dlg->m_ReuseEmulatedDC = t->flags6 & REUSEEMULATEDDC ? 1 : 0; dlg->m_CreateDesktop = t->flags6 & CREATEDESKTOP ? 1 : 0; + dlg->m_SyncPalette = t->flags6 & SYNCPALETTE ? 1 : 0; dlg->m_AnalyticMode = t->flags3 & ANALYTICMODE ? 1 : 0; dlg->m_ReplacePrivOps = t->flags5 & REPLACEPRIVOPS ? 1 : 0; dlg->m_InitX = t->initx; diff --git a/host/host.aps b/host/host.aps index b5dc05d..6500e13 100644 Binary files a/host/host.aps and b/host/host.aps differ diff --git a/host/resource b/host/resource index 4aed585..8de7c61 100644 Binary files a/host/resource and b/host/resource differ