From 9b385bb3ec9eda5546ad3b7aac05738adcbf91ea Mon Sep 17 00:00:00 2001 From: gho tik Date: Fri, 28 Nov 2014 11:40:02 -0500 Subject: [PATCH] v2_03_01_src Former-commit-id: aa0c0917a03868571476a952c97f65283c8283e7 --- build/Resources_CN.dll | 3 + build/Resources_EN.dll | 3 + build/Resources_RU.dll | 3 + build/dxwnd.dll | 4 +- build/exports/Breath of Fire IV.dxw | 28 +++++ build/exports/Typing of the Dead, the.dxw | 28 +++++ build/exports/dxwnd.ini | 8 +- build/filter.dll | 3 + build/mp.dll | 3 - build/readme-relnotes.txt | 14 +++ dll/ddraw.cpp | 133 +++++++++++++--------- dll/dxhelper.cpp | 4 +- dll/dxwnd.cpp | 2 +- dll/dxwnd.vs2008.suo | Bin 280576 -> 280576 bytes dll/dxwnd.vs2008.vcproj.User-PC.User.user | 65 +++++++++++ dll/hd3d7.cpp | 11 +- dll/texv4handle.cpp | 56 +++++++-- {mp => filter}/bilinear16_555.cpp | 0 {mp => filter}/bilinear16_565.cpp | 0 {mp => filter}/bilinear32.cpp | 0 mp/mp.def => filter/filter.def | 2 +- mp/mp.sln => filter/filter.sln | 2 +- filter/filter.suo | Bin 0 -> 7680 bytes mp/mp.vcproj => filter/filter.vcproj | 33 +++--- {mp => filter}/mp.suo | Bin 10240 -> 10240 bytes locale/cn/Resources_Cn.rc | Bin 83036 -> 84806 bytes locale/cn/Resources_Cn.suo | Bin 7168 -> 7680 bytes locale/en/Resources_EN.rc | Bin 88730 -> 91182 bytes locale/en/Resources_En.suo | Bin 7168 -> 7168 bytes locale/ru/Resources_RU.rc | Bin 94520 -> 95818 bytes locale/ru/Resources_Ru.suo | Bin 7680 -> 7680 bytes mp/Release/BuildLog.htm | Bin 11510 -> 0 bytes mp/Release/bilinear16_555.obj | Bin 27294 -> 0 bytes mp/Release/bilinear16_565.obj | Bin 27294 -> 0 bytes mp/Release/bilinear32.obj | Bin 27261 -> 0 bytes mp/Release/mp.dll.embed.manifest | 15 --- mp/Release/mp.dll.embed.manifest.res | Bin 724 -> 0 bytes mp/Release/mp.dll.intermediate.manifest | 15 --- mp/Release/mt.dep | 1 - mp/Release/vc90.idb | Bin 240640 -> 0 bytes mp/Release/vc90.pdb | Bin 102400 -> 0 bytes mp/mp.vcproj.user | 1 - 42 files changed, 304 insertions(+), 133 deletions(-) create mode 100644 build/Resources_CN.dll create mode 100644 build/Resources_EN.dll create mode 100644 build/Resources_RU.dll create mode 100644 build/exports/Breath of Fire IV.dxw create mode 100644 build/exports/Typing of the Dead, the.dxw create mode 100644 build/filter.dll delete mode 100644 build/mp.dll create mode 100644 dll/dxwnd.vs2008.vcproj.User-PC.User.user rename {mp => filter}/bilinear16_555.cpp (100%) rename {mp => filter}/bilinear16_565.cpp (100%) rename {mp => filter}/bilinear32.cpp (100%) rename mp/mp.def => filter/filter.def (83%) rename mp/mp.sln => filter/filter.sln (85%) create mode 100644 filter/filter.suo rename mp/mp.vcproj => filter/filter.vcproj (86%) rename {mp => filter}/mp.suo (70%) delete mode 100644 mp/Release/BuildLog.htm delete mode 100644 mp/Release/bilinear16_555.obj delete mode 100644 mp/Release/bilinear16_565.obj delete mode 100644 mp/Release/bilinear32.obj delete mode 100644 mp/Release/mp.dll.embed.manifest delete mode 100644 mp/Release/mp.dll.embed.manifest.res delete mode 100644 mp/Release/mp.dll.intermediate.manifest delete mode 100644 mp/Release/mt.dep delete mode 100644 mp/Release/vc90.idb delete mode 100644 mp/Release/vc90.pdb delete mode 100644 mp/mp.vcproj.user diff --git a/build/Resources_CN.dll b/build/Resources_CN.dll new file mode 100644 index 0000000..aec1a83 --- /dev/null +++ b/build/Resources_CN.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bebe395edfd439cfe09e4875e481f37506e0a980a3c589958dd9781c7dc4e65 +size 105472 diff --git a/build/Resources_EN.dll b/build/Resources_EN.dll new file mode 100644 index 0000000..e87acca --- /dev/null +++ b/build/Resources_EN.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0612ced9b9f9b7805a31213cba47f847cc10eb0d6a95e2d47adff97484edf5f5 +size 89600 diff --git a/build/Resources_RU.dll b/build/Resources_RU.dll new file mode 100644 index 0000000..adbda6a --- /dev/null +++ b/build/Resources_RU.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36821f95e5eac34a48bccb62115ffdf4b1ff5f6bde33f90e220c709fa4be086a +size 114176 diff --git a/build/dxwnd.dll b/build/dxwnd.dll index 366d0fa..39fbedc 100644 --- a/build/dxwnd.dll +++ b/build/dxwnd.dll @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:9824b03ee7247489a9910c7407a1ac7ff990854e60fdfcb46311763dc75a5df8 -size 525312 +oid sha256:59e618b7d0672f738eebd3958be555bdbcfa2da9f34681a37df8cc6258bad250 +size 524288 diff --git a/build/exports/Breath of Fire IV.dxw b/build/exports/Breath of Fire IV.dxw new file mode 100644 index 0000000..ef8dcb8 --- /dev/null +++ b/build/exports/Breath of Fire IV.dxw @@ -0,0 +1,28 @@ +[target] +title0=Breath of Fire IV +path0=D:\Games\Breath of Fire 4\BOF4.exe +launchpath0= +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=134217762 +flagg0=1476395024 +flagh0=4116 +flagi0=-2011168764 +flagj0=4224 +tflag0=6402 +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 diff --git a/build/exports/Typing of the Dead, the.dxw b/build/exports/Typing of the Dead, the.dxw new file mode 100644 index 0000000..8cdcf03 --- /dev/null +++ b/build/exports/Typing of the Dead, the.dxw @@ -0,0 +1,28 @@ +[target] +title0=Typing of the Dead, the +path0=D:\Games\Typing of the dead\Tod_e.exe +launchpath0= +module0= +opengllib0= +ver0=0 +coord0=0 +flag0=671088674 +flagg0=1207959552 +flagh0=20 +flagi0=138412036 +flagj0=4224 +tflag0=1 +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 diff --git a/build/exports/dxwnd.ini b/build/exports/dxwnd.ini index 49efe1f..4e7b98e 100644 --- a/build/exports/dxwnd.ini +++ b/build/exports/dxwnd.ini @@ -1,5 +1,5 @@ [window] -posx=1122 -posy=297 -sizx=365 -sizy=298 +posx=1392 +posy=53 +sizx=320 +sizy=841 diff --git a/build/filter.dll b/build/filter.dll new file mode 100644 index 0000000..41f9d5a --- /dev/null +++ b/build/filter.dll @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d364d53ff922e8381c306d23d51c3a93a0512325824e5e0513c424e9372f9b4c +size 13312 diff --git a/build/mp.dll b/build/mp.dll deleted file mode 100644 index 528e5f5..0000000 --- a/build/mp.dll +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:df0d752747c863568c9965f6c437e91e3e21594695a9665dee285def0d20d6fe -size 16384 diff --git a/build/readme-relnotes.txt b/build/readme-relnotes.txt index c3a2fe2..0eb71ce 100644 --- a/build/readme-relnotes.txt +++ b/build/readme-relnotes.txt @@ -645,3 +645,17 @@ fix: revised ddsurface capabilities policy to allow D3D1-7 games to run in emula v2.02.99 fix: completed bilinear filtering for 16bpp desktop color depth +fix: fixed surface handling, Suppress SYSTEMMEMORY options now moved to debug flags (maybe unnecessary) +fix: AERO compatibility is now declared just once +fix: fast bilinear blitting in the 32 -> 32 BPP case +add: texture hooking +add: texture management +add: Direct3D dedicated configuration tab + +v2.3.01 +fix: fixed some bitmap handling while processing textures +add: texture management dump to texture.out folder and hack from texture.in folder +fix: AERO optimized mode with ddraw7 only surfaces: "Hoyle Casino Empire" works at least in fullscreen mode. +fix: bilinear filters compiled with optimized and openmp flags - big speed improvement. +fix: reduced the maximum amount of visible video card with "Limit available resources" flag: now "Breath of Fire IV" works. + diff --git a/dll/ddraw.cpp b/dll/ddraw.cpp index c822a94..f983209 100644 --- a/dll/ddraw.cpp +++ b/dll/ddraw.cpp @@ -756,18 +756,20 @@ Unlock4_Type pUnlockMethod(LPDIRECTDRAWSURFACE lpdds) // to do: return extUnlock for unhooked surfaces char sMsg[81]; - void * extUnlock; - __try{ // v2.02.31: catch some possible exception (i.e. Abomination in EMULATION mode) - extUnlock=(void *)*(DWORD *)(*(DWORD *)lpdds + 128); + void * extUnlock = NULL; + if(lpdds){ + __try{ // v2.02.31: catch some possible exception (i.e. Abomination in EMULATION mode) + extUnlock=(void *)*(DWORD *)(*(DWORD *)lpdds + 128); + } + __except (EXCEPTION_EXECUTE_HANDLER){ + OutTraceE("Exception at %d\n",__LINE__); + extUnlock=NULL; + }; + if(extUnlock==(void *)extUnlock1) return (Unlock4_Type)pUnlock1; + if(extUnlock==(void *)extUnlock4) return (Unlock4_Type)pUnlock4; + if(extUnlock==(void *)extUnlockDir1) return (Unlock4_Type)pUnlock1; + if(extUnlock==(void *)extUnlockDir4) return (Unlock4_Type)pUnlock4; } - __except (EXCEPTION_EXECUTE_HANDLER){ - OutTraceE("Exception at %d\n",__LINE__); - return (Unlock4_Type)pUnlock1; - }; - if(extUnlock==(void *)extUnlock1) return (Unlock4_Type)pUnlock1; - if(extUnlock==(void *)extUnlock4) return (Unlock4_Type)pUnlock4; - if(extUnlock==(void *)extUnlockDir1) return (Unlock4_Type)pUnlock1; - if(extUnlock==(void *)extUnlockDir4) return (Unlock4_Type)pUnlock4; sprintf_s(sMsg, 80, "pUnlockMethod: pUnlock(%x) can't match %x\n", lpdds, extUnlock); OutTraceDW(sMsg); if (IsAssertEnabled) MessageBox(0, sMsg, "pUnlockMethod", MB_OK | MB_ICONEXCLAMATION); @@ -779,19 +781,21 @@ Unlock4_Type pUnlockMethod(LPDIRECTDRAWSURFACE lpdds) Lock_Type pLockMethod(LPDIRECTDRAWSURFACE lpdds) { char sMsg[81]; - void * extUnlock; - __try{ // v2.02.31: catch some possible exception (i.e. Abomination in EMULATION mode) - extUnlock=(void *)*(DWORD *)(*(DWORD *)lpdds + 128); + void * extLock = NULL; + if(lpdds){ + __try{ // v2.02.31: catch some possible exception (i.e. Abomination in EMULATION mode) + extLock=(void *)*(DWORD *)(*(DWORD *)lpdds + 128); + } + __except (EXCEPTION_EXECUTE_HANDLER){ + OutTraceE("Exception at %d\n",__LINE__); + extLock=NULL; + }; + if(extUnlock==(void *)extUnlock1) return pLock1; + if(extUnlock==(void *)extUnlock4) return pLock4; + if(extUnlock==(void *)extUnlockDir1) return pLock1; + if(extUnlock==(void *)extUnlockDir4) return pLock4; } - __except (EXCEPTION_EXECUTE_HANDLER){ - OutTraceE("Exception at %d\n",__LINE__); - return (Unlock4_Type)pUnlock1; - }; - if(extUnlock==(void *)extUnlock1) return pLock1; - if(extUnlock==(void *)extUnlock4) return pLock4; - if(extUnlock==(void *)extUnlockDir1) return pLock1; - if(extUnlock==(void *)extUnlockDir4) return pLock4; - sprintf_s(sMsg, 80, "pLockMethod: pUnlock(%x) can't match %x\n", lpdds, extUnlock); + sprintf_s(sMsg, 80, "pLockMethod: pUnlock(%x) can't match %x\n", lpdds, extLock); OutTraceDW(sMsg); if (IsAssertEnabled) MessageBox(0, sMsg, "pLockMethod", MB_OK | MB_ICONEXCLAMATION); if (pLock4) return pLock4; @@ -802,15 +806,23 @@ Lock_Type pLockMethod(LPDIRECTDRAWSURFACE lpdds) CreateSurface2_Type pCreateSurfaceMethod(LPDIRECTDRAWSURFACE lpdds) { char sMsg[81]; - void * extUnlock; - extUnlock=(void *)*(DWORD *)(*(DWORD *)lpdds + 128); - if(extUnlock==(void *)extUnlock1) return (CreateSurface2_Type)pCreateSurface1; - if(extUnlock==(void *)extUnlock4) return pCreateSurface7 ? (CreateSurface2_Type)pCreateSurface7 : (CreateSurface2_Type)pCreateSurface4; - if(extUnlock==(void *)extUnlockDir1) return (CreateSurface2_Type)pCreateSurface1; - if(extUnlock==(void *)extUnlockDir4) return pCreateSurface7 ? (CreateSurface2_Type)pCreateSurface7 : (CreateSurface2_Type)pCreateSurface4; + void * extUnlock = NULL; + if(lpdds){ + __try{ // v2.02.31: catch some possible exception (i.e. Abomination in EMULATION mode) + extUnlock=(void *)*(DWORD *)(*(DWORD *)lpdds + 128); } + __except (EXCEPTION_EXECUTE_HANDLER){ + OutTraceE("Exception at %d\n",__LINE__); + extUnlock = NULL; + }; + if(extUnlock==(void *)extUnlock1) return (CreateSurface2_Type)pCreateSurface1; + if(extUnlock==(void *)extUnlock4) return pCreateSurface7 ? (CreateSurface2_Type)pCreateSurface7 : (CreateSurface2_Type)pCreateSurface4; + if(extUnlock==(void *)extUnlockDir1) return (CreateSurface2_Type)pCreateSurface1; + if(extUnlock==(void *)extUnlockDir4) return pCreateSurface7 ? (CreateSurface2_Type)pCreateSurface7 : (CreateSurface2_Type)pCreateSurface4; + } sprintf_s(sMsg, 80, "pCreateSurfaceMethod: pUnlock(%x) can't match %x\n", lpdds, extUnlock); OutTraceDW(sMsg); if (IsAssertEnabled) MessageBox(0, sMsg, "pCreateSurfaceMethod", MB_OK | MB_ICONEXCLAMATION); + if (pCreateSurface7) return pCreateSurface7; if (pCreateSurface4) return pCreateSurface4; return (CreateSurface2_Type)pCreateSurface1; } @@ -849,19 +861,21 @@ int SurfaceDescrSize(LPDIRECTDRAWSURFACE lpdds) int lpddsHookedVersion(LPDIRECTDRAWSURFACE lpdds) { char sMsg[81]; - void * extGetCaps; + void * extGetCaps = NULL; - __try{ - extGetCaps=(void *)*(DWORD *)(*(DWORD *)lpdds + 56); + if(lpdds){ + __try{ + extGetCaps=(void *)*(DWORD *)(*(DWORD *)lpdds + 56); + } + __except (EXCEPTION_EXECUTE_HANDLER){ + extGetCaps=NULL; + }; + if(extGetCaps==(void *)extGetCaps1S) return 1; + if(extGetCaps==(void *)extGetCaps2S) return 2; + if(extGetCaps==(void *)extGetCaps3S) return 3; + if(extGetCaps==(void *)extGetCaps4S) return 4; + if(extGetCaps==(void *)extGetCaps7S) return 7; } - __except (EXCEPTION_EXECUTE_HANDLER){ - extGetCaps=NULL; - }; - if(extGetCaps==(void *)extGetCaps1S) return 1; - if(extGetCaps==(void *)extGetCaps2S) return 2; - if(extGetCaps==(void *)extGetCaps3S) return 3; - if(extGetCaps==(void *)extGetCaps4S) return 4; - if(extGetCaps==(void *)extGetCaps7S) return 7; sprintf_s(sMsg, 80, "lpddsHookedVersion(%x) can't match %x\n", lpdds, extGetCaps); OutTraceDW(sMsg); if (IsAssertEnabled) MessageBox(0, sMsg, "lpddsHookedVersion", MB_OK | MB_ICONEXCLAMATION); @@ -871,18 +885,20 @@ int lpddsHookedVersion(LPDIRECTDRAWSURFACE lpdds) int lpddHookedVersion(LPDIRECTDRAW lpdd) { char sMsg[81]; - void * extCreateSurface; + void *extCreateSurface = NULL; - __try{ - extCreateSurface=(void *)*(DWORD *)(*(DWORD *)lpdd + 24); + if(lpPrimaryDD){ + __try{ + extCreateSurface=(void *)*(DWORD *)(*(DWORD *)lpdd + 24); + } + __except (EXCEPTION_EXECUTE_HANDLER){ + extCreateSurface=NULL; + }; + if(extCreateSurface==(void *)extCreateSurface7) return 7; + if(extCreateSurface==(void *)extCreateSurface4) return 4; + if(extCreateSurface==(void *)extCreateSurface2) return 2; + if(extCreateSurface==(void *)extCreateSurface1) return 1; } - __except (EXCEPTION_EXECUTE_HANDLER){ - extCreateSurface=NULL; - }; - if(extCreateSurface==(void *)extCreateSurface7) return 7; - if(extCreateSurface==(void *)extCreateSurface4) return 4; - if(extCreateSurface==(void *)extCreateSurface2) return 2; - if(extCreateSurface==(void *)extCreateSurface1) return 1; sprintf_s(sMsg, 80, "lpddHookedVersion(%x) can't match %x\n", lpdd, extCreateSurface); OutTraceDW(sMsg); if (IsAssertEnabled) MessageBox(0, sMsg, "lpddHookedVersion", MB_OK | MB_ICONEXCLAMATION); @@ -1587,7 +1603,7 @@ HRESULT WINAPI extDirectDrawCreate(GUID FAR *lpguid, LPDIRECTDRAW FAR *lplpdd, I //OutTrace("DirectDrawCreate: drivercaps=%x(%s) emulcaps=%x(%s)\n", DriverCaps.ddsCaps, "???", EmulCaps.ddsCaps, "???"); } - lpPrimaryDD=*lplpdd; + if(lpPrimaryDD==NULL) lpPrimaryDD=*lplpdd; // do not override the value set when creating the primary surface! return DD_OK; } @@ -1659,7 +1675,7 @@ HRESULT WINAPI extDirectDrawCreateEx(GUID FAR *lpguid, //OutTrace("DirectDrawCreate: drivercaps=%x(%s) emulcaps=%x(%s)\n", DriverCaps.ddsCaps, "???", EmulCaps.ddsCaps, "???"); } - lpPrimaryDD=*lplpdd; + if(lpPrimaryDD==NULL) lpPrimaryDD=*lplpdd; // do not override the value set when creating the primary surface! return DD_OK; } @@ -2258,6 +2274,9 @@ static HRESULT BuildPrimaryEmu(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf if (dxw.dwTFlags & OUTPROXYTRACE) HookDDSurfaceGeneric(&lpDDSEmu_Back, dxversion); } + // "Hoyle Casino Empire" opens a primary surface and NOT a backbuffer .... + iBakBufferVersion=dxversion; // v2.03.01 + return DD_OK; } @@ -2877,7 +2896,7 @@ void *LoadFilter(char *apiname) *p=0; SetDllDirectory(sSourcePath); - strcpy(p, "mp.dll"); + strcpy(p, "filter.dll"); filterlib=(*pLoadLibraryA)(sSourcePath); if(!filterlib) { OutTraceDW("DXWND: Load lib=\"%s\" failed err=%d\n", sSourcePath, GetLastError()); @@ -2979,10 +2998,10 @@ HRESULT WINAPI PrimaryBilinearBlt(LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect, break; } - filterlib=(*pLoadLibraryA)("mp.dll"); + filterlib=(*pLoadLibraryA)("filter.dll"); if(!filterlib) { char sMsg[80+1]; - sprintf(sMsg, "DXWND: ERROR can't load lib=\"mp.dll\" err=%x\n", GetLastError()); + sprintf(sMsg, "DXWND: ERROR can't load lib=\"filter.dll\" err=%x\n", GetLastError()); OutTraceE(sMsg); MessageBox(0, sMsg, "ERROR", MB_OK | MB_ICONEXCLAMATION); exit(0); @@ -4848,7 +4867,9 @@ HRESULT WINAPI extDDGetGammaRamp(LPDIRECTDRAWSURFACE lpdds, DWORD dwFlags, LPDDG HRESULT WINAPI extGetAvailableVidMem(LPDIRECTDRAW lpdd, LPDDSCAPS lpDDSCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree, GetAvailableVidMem_Type pGetAvailableVidMem) { HRESULT res; - const DWORD dwMaxMem = 0x7FFFF000; + //const DWORD dwMaxMem = 0x7FFFF000; + // v03.01.01: limit to smaller value to allow "Breath of Fire IV" card detection + const DWORD dwMaxMem = 0x70000000; OutTraceDDRAW("GetAvailableVidMem(D): lpdd=%x\n", lpdd); res=(*pGetAvailableVidMem)(lpdd, lpDDSCaps, lpdwTotal, lpdwFree); if(res){ diff --git a/dll/dxhelper.cpp b/dll/dxhelper.cpp index 91c1d90..fe54348 100644 --- a/dll/dxhelper.cpp +++ b/dll/dxhelper.cpp @@ -143,7 +143,7 @@ char *ExplainDDSCaps3(DWORD c) if (c & DDSCAPS3_DMAP) strcat(eb, "DDSCAPS3_DMAP+"); if (c & DDSCAPS3_MULTISAMPLE_QUALITY_MASK) { DWORD dwQuality; - char sQuality[20]; + char sQuality[32]; dwQuality = (c & DDSCAPS3_MULTISAMPLE_QUALITY_MASK) >> DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT; sprintf(sQuality, "QUALITY(%d)+", dwQuality); strcat(eb, sQuality); @@ -1552,7 +1552,7 @@ char *ExplainPaletteUse(UINT uUsage) char *ExplainRasterCaps(DWORD c) { - static char eb[128]; + static char eb[256]; unsigned int l; strcpy(eb,"RC_"); if(c & RC_BITBLT) strcat(eb, "BITBLT+"); diff --git a/dll/dxwnd.cpp b/dll/dxwnd.cpp index 91d1160..10c7778 100644 --- a/dll/dxwnd.cpp +++ b/dll/dxwnd.cpp @@ -24,7 +24,7 @@ along with this program. If not, see . #include "dxwnd.h" #include "dxwcore.hpp" -#define VERSION "2.02.99" +#define VERSION "2.03.01" #define DXWACTIVATESINGLETASK 1 // comment to allow multiple task activations #define DDTHREADLOCK 1 diff --git a/dll/dxwnd.vs2008.suo b/dll/dxwnd.vs2008.suo index 8dcc06aef698a6e7aad84f8aa8f34ff74ca101bc..95e97057a8338771ae62cf7c77349cfbdf5b772b 100644 GIT binary patch delta 33754 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
    CzWBB!g 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 P%kO5g(sN(?>_PtrM(*L7 delta 14458 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 + + + + + + + + + + diff --git a/dll/hd3d7.cpp b/dll/hd3d7.cpp index 5a94159..8fa743c 100644 --- a/dll/hd3d7.cpp +++ b/dll/hd3d7.cpp @@ -8,9 +8,6 @@ // exported API -//#undef OutTraceD3D -//#define OutTraceD3D OutTrace - typedef HRESULT (WINAPI *Direct3DCreateDevice_Type)(GUID FAR *, LPDIRECT3D, LPDIRECTDRAWSURFACE, LPDIRECT3D *, LPUNKNOWN); typedef HRESULT (WINAPI *Direct3DCreate_Type)(UINT, LPDIRECT3D *, LPUNKNOWN); @@ -371,10 +368,10 @@ void HookDirect3DDevice(void **lpd3ddev, int d3dversion) break; case 7: SetHook((void *)(**(DWORD **)lpd3ddev + 0), extQueryInterfaceD3, (void **)&pQueryInterfaceD3, "QueryInterface(D3D)"); - SetHook((void *)(**(DWORD **)lpd3ddev + 20), extBeginScene7, (void **)&pBeginScene7, "BeginScene(7)"); - SetHook((void *)(**(DWORD **)lpd3ddev + 24), extEndScene7, (void **)&pEndScene7, "EndScene(7)"); - SetHook((void *)(**(DWORD **)lpd3ddev + 52), extSetViewport7, (void **)&pSetViewport7, "SetViewport(7)"); - SetHook((void *)(**(DWORD **)lpd3ddev + 60), extGetViewport7, (void **)&pGetViewport7, "GetViewport(7)"); + //SetHook((void *)(**(DWORD **)lpd3ddev + 20), extBeginScene7, (void **)&pBeginScene7, "BeginScene(7)"); + //SetHook((void *)(**(DWORD **)lpd3ddev + 24), extEndScene7, (void **)&pEndScene7, "EndScene(7)"); + //SetHook((void *)(**(DWORD **)lpd3ddev + 52), extSetViewport7, (void **)&pSetViewport7, "SetViewport(7)"); + //SetHook((void *)(**(DWORD **)lpd3ddev + 60), extGetViewport7, (void **)&pGetViewport7, "GetViewport(7)"); SetHook((void *)(**(DWORD **)lpd3ddev + 80), extSetRenderState7, (void **)&pSetRenderState7, "SetRenderState(7)"); if (dxw.dwFlags4 & NOTEXTURES) SetHook((void *)(**(DWORD **)lpd3ddev + 140), extSetTexture7, (void **)&pSetTexture7, "SetTexture(D7)"); if(pSetRenderState7){ diff --git a/dll/texv4handle.cpp b/dll/texv4handle.cpp index 2e8284f..bffd8a9 100644 --- a/dll/texv4handle.cpp +++ b/dll/texv4handle.cpp @@ -35,6 +35,21 @@ static unsigned int Hash(BYTE *buf, int len) return hash; } +static unsigned int HashSurface(BYTE *buf, int pitch, int width, int height) +{ + unsigned int b = 378551; + unsigned int a = 63689; + DWORD hash = 0; + for(int y = 0; y < height; y++){ + BYTE *p = buf + (y * pitch); + for(int x = 0; x < width; x++){ + hash = hash * a + p[x]; + a = a * b; + } + } + return hash; +} + void TextureHighlight(LPDIRECTDRAWSURFACE s) { DDSURFACEDESC2 ddsd; @@ -111,8 +126,14 @@ void TextureHighlight(LPDIRECTDRAWSURFACE s) static void TextureDump(LPDIRECTDRAWSURFACE s) { DDSURFACEDESC2 ddsd; - int w, h, iSurfaceSize; + int w, h, iSurfaceSize, iScanLineSize; HRESULT res; + static BOOL DoOnce = TRUE; + + if(DoOnce){ // first time through, build the texture dir if not done yet + CreateDirectory("texture.out", NULL); + DoOnce = FALSE; + } memset(&ddsd,0,sizeof(DDSURFACEDESC2)); ddsd.dwSize = Set_dwSize_From_Surface(s); @@ -121,12 +142,18 @@ static void TextureDump(LPDIRECTDRAWSURFACE s) OutTraceE("TextureDump: Lock ERROR res=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__); return; } + extern LPDIRECTDRAWSURFACE lpDDSBack; if((ddsd.ddsCaps.dwCaps & DDSCAPS_TEXTURE) && (s != lpDDSBack)) while (TRUE) { OutTrace("TextureDump: lpdds=%x BitCount=%d size=(%dx%d)\n", s, ddsd.ddpfPixelFormat.dwRGBBitCount, ddsd.dwWidth, ddsd.dwHeight); w = ddsd.dwWidth; h = ddsd.dwHeight; + if((w<2) && (h<2)) { + OutTrace("TextureDump: SKIP small texture\n"); + break; + } + iSurfaceSize = ddsd.dwHeight * ddsd.lPitch; //HANDLE hf; // file handle @@ -156,17 +183,18 @@ static void TextureDump(LPDIRECTDRAWSURFACE s) pbi.bV4AlphaMask = ddsd.ddpfPixelFormat.dwRGBAlphaBitMask; pbi.bV4CSType = LCS_CALIBRATED_RGB; //pbi.bV4CSType = 0xFFFFFFFF; + iScanLineSize = ((pbi.bV4Width * pbi.bV4BitCount + 0x1F) & ~0x1F)/8; // calculate the bitmap hash DWORD hash; - hash = Hash((BYTE *)ddsd.lpSurface, iSurfaceSize); + hash = HashSurface((BYTE *)ddsd.lpSurface, ddsd.lPitch, ddsd.dwWidth, ddsd.dwHeight); if(!hash) { OutTrace("TextureDump: lpdds=%x hash=NULL\n", s); break; // almost certainly, an empty black surface! } // Create the .BMP file. - sprintf_s(pszFile, 80, "texture.%x.bmp", hash); + sprintf_s(pszFile, 80, "texture.out/texture.%03d.%03d.%08X.bmp", ddsd.dwWidth, ddsd.dwHeight, hash); hf = fopen(pszFile, "wb"); if(!hf) break; @@ -186,9 +214,8 @@ static void TextureDump(LPDIRECTDRAWSURFACE s) fwrite((LPVOID)&pbi, sizeof(BITMAPV4HEADER) + pbi.bV4ClrUsed * sizeof (RGBQUAD), 1, hf); // Copy the array of color indices into the .BMP file. - fwrite((LPVOID)ddsd.lpSurface, iSurfaceSize, 1, hf); - if(pbi.bV4SizeImage > (DWORD)iSurfaceSize) - for (int i = pbi.bV4SizeImage - iSurfaceSize; i; i--) putc(0, hf); + for(int y=0; y<(int)ddsd.dwHeight; y++) + fwrite((BYTE *)ddsd.lpSurface + (y*ddsd.lPitch), iScanLineSize, 1, hf); // Close the .BMP file. fclose(hf); @@ -201,7 +228,7 @@ static void TextureDump(LPDIRECTDRAWSURFACE s) static void TextureHack(LPDIRECTDRAWSURFACE s) { DDSURFACEDESC2 ddsd; - int w, h, iSurfaceSize; + int w, h, iSurfaceSize, iScanLineSize; HRESULT res; memset(&ddsd,0,sizeof(DDSURFACEDESC2)); @@ -232,14 +259,15 @@ static void TextureHack(LPDIRECTDRAWSURFACE s) pbi.biBitCount = (WORD)ddsd.ddpfPixelFormat.dwRGBBitCount; pbi.biSizeImage = ((pbi.biWidth * pbi.biBitCount + 0x1F) & ~0x1F)/8 * pbi.biHeight; iSizeImage = pbi.biSizeImage; + iScanLineSize = ((pbi.biWidth * pbi.biBitCount + 0x1F) & ~0x1F)/8; // calculate the bitmap hash DWORD hash; - hash = Hash((BYTE *)ddsd.lpSurface, iSurfaceSize); + hash = HashSurface((BYTE *)ddsd.lpSurface, ddsd.lPitch, ddsd.dwWidth, ddsd.dwHeight); if(!hash) break; // almost certainly, an empty black surface! // Look for the .BMP file. - sprintf_s(pszFile, 80, "texture.%x.bmp", hash); + sprintf_s(pszFile, 80, "texture.in/texture.%03d.%03d.%08X.bmp", ddsd.dwWidth, ddsd.dwHeight, hash); hf = fopen(pszFile, "rb"); if(!hf) break; // no updated texture to load @@ -258,12 +286,18 @@ static void TextureHack(LPDIRECTDRAWSURFACE s) // Read the new texture from the .BMP file. if(pbi.biHeight < 0){ - // height < 0 means scan lines in the up to down order, hence you can read them all - if(fread((LPVOID)ddsd.lpSurface, iSurfaceSize, 1, hf) != 1) break; + // biHeight < 0 -> scan lines from top to bottom, same as surface/texture convention + for(int y=0; y<(int)ddsd.dwHeight; y++){ + BYTE *p = (BYTE *)ddsd.lpSurface + (ddsd.lPitch * y); + fseek(hf, hdr.bfOffBits + (iScanLineSize * y), SEEK_SET); + if(fread((LPVOID)p, ddsd.lPitch, 1, hf) != 1) break; + } } else { + // biHeight > 0 -> scan lines from bottom to top, inverse order as surface/texture convention for(int y=0; y<(int)ddsd.dwHeight; y++){ BYTE *p = (BYTE *)ddsd.lpSurface + (ddsd.lPitch * ((ddsd.dwHeight-1) - y)); + fseek(hf, hdr.bfOffBits + (iScanLineSize * y), SEEK_SET); if(fread((LPVOID)p, ddsd.lPitch, 1, hf) != 1) break; } } diff --git a/mp/bilinear16_555.cpp b/filter/bilinear16_555.cpp similarity index 100% rename from mp/bilinear16_555.cpp rename to filter/bilinear16_555.cpp diff --git a/mp/bilinear16_565.cpp b/filter/bilinear16_565.cpp similarity index 100% rename from mp/bilinear16_565.cpp rename to filter/bilinear16_565.cpp diff --git a/mp/bilinear32.cpp b/filter/bilinear32.cpp similarity index 100% rename from mp/bilinear32.cpp rename to filter/bilinear32.cpp diff --git a/mp/mp.def b/filter/filter.def similarity index 83% rename from mp/mp.def rename to filter/filter.def index f1cd989..ad1ddd1 100644 --- a/mp/mp.def +++ b/filter/filter.def @@ -1,4 +1,4 @@ -LIBRARY mp +LIBRARY filter EXPORTS Resize_HQ_4ch @1 Resize_HQ_2ch565 @2 diff --git a/mp/mp.sln b/filter/filter.sln similarity index 85% rename from mp/mp.sln rename to filter/filter.sln index 3c2c4d2..2c0c570 100644 --- a/mp/mp.sln +++ b/filter/filter.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mp", "mp.vcproj", "{F3E96EF0-AF9C-43C2-8E3E-0DD10B66E0FC}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "filter", "filter.vcproj", "{F3E96EF0-AF9C-43C2-8E3E-0DD10B66E0FC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/filter/filter.suo b/filter/filter.suo new file mode 100644 index 0000000000000000000000000000000000000000..f8e3a3cde9023da3861e58a0ef8740df7b3f6970 GIT binary patch literal 7680 zcmeI0O>9(E6vt0Nlv+NeqE@XVEl`9u)7DrDqV^L^N{SRHCPXdmw3bdkLO+Bkn&`rf zCN4}gBrZ&F;{wCRwRY#K#HDdj7RIG6T?qB}zwh17blT3mnJGaHXL9a+bKiaUeB68g z=iGa9Zu|V#H!5yf2EAnK?ao4}J($*B!n4@XHnVj+=>MICg@vHejK}-*AM(I$bbTP4 z!wu9A!J6|@cq3c}KMZe%H^G`~@qPM#c;KXs^P94mb=Vm7MZ3%_N2i^(VR6rEePp9o ze!Y6Vr|f3QdOH1}g$12J;<#O~SCKx*Q-@s&UPLT++PV_WL^=IcNBqoyFGr`W&n9ie zx@?$w%1%=z(8;$?<`}RV`CI6t{SsBaFjIR=bOw2++#DqBJoP2(aq?%-r=O=>v(!#gM*#5pK6bc8>Cr^@2nLJkMBzy=if4bY(r|B)HJen?d$w608tT zoGV5+-}-%6}?sc1NKga+-`?n=~9)gX(un&ZFT&) z%)U}anv~+JlJL)CZ&dtIPUi>Alz*I+If_)BLwfP3uy7m;SBn7$z(3`z%1fil*PNXS z6%gJBk$lV{UMf=h*-Nlzrtr05fqJS;X>%yVU+;r(*sRraynQ3=(ayO2te??vjVQHGii0jirdet{jVTq$#o&#(h?5$CTGop*E=ifaEe^!+d# zxDD%d0-bbmH^EBJ)FSM-N~QCsg= zX9;^R#E3@lvW_gE)vXt0udVbNKza&!kF2>aDeTHek01iHpm8TS-UQxvfb6wstmj6a z>iM;YQ9<)@0|-=$UE zpDld+*WB#24h-jhnHXFH%h_X^xYa;7FXas!HBp-4Fym&^R64X5h8%1 z^9bu&Ie463z00=ivyOUpPRL(4`6#D2IDsb>d36p9vIWJv>?HhAZX-;Mia)#PI}eLa z6Hg_z&*h{8i#bz(OQ|>;^j=;Heu12p9>eA&+H|6gutQ#mB;VOx zsQhjh`;ure=6ER0^X;@;T(16-7W|*L{N0S8J3LY5>Wez>!PmOe%U{0YOieg|zi0LL zuRUP5)}ZbnlojNffkN!xi)?@X&gTE@J1;Om_aB;j-GQnO&B|KIcJ&vXW#1=R^?leo zLaAGrAb*c?`=C41{MY|JaCq_Dx7zoqTb}e=ItC1>fivUXq<;V@ CAoj}u literal 0 HcmV?d00001 diff --git a/mp/mp.vcproj b/filter/filter.vcproj similarity index 86% rename from mp/mp.vcproj rename to filter/filter.vcproj index ef9aa5a..036a7d0 100644 --- a/mp/mp.vcproj +++ b/filter/filter.vcproj @@ -2,9 +2,9 @@ @@ -39,16 +39,18 @@ /> diff --git a/mp/mp.suo b/filter/mp.suo similarity index 70% rename from mp/mp.suo rename to filter/mp.suo index b37c43dd254745363163ac3a11ae7d78a2ebffb3..29341e5ea9f0295c884f58836ae9910617447297 100644 GIT binary patch delta 535 zcmYjNO;5r=5Z%I-Lcb^l%ZD+hN(`tZZMb+r!Ez!dT@r2{yn66tdf}pt_y=@;h$j65 zBpkiyf9ZjE5NCmsZu0VW-n^OF*^q_o^M(pC*z_>Rj(-O;86N3a6IOUCgb>b9%C}%i zzcf-prI@HcvVAyaVkSBQ+E!b%Vd{8X=;K?ooim#CzX2euBiWNTtUhxWE^ugxsS}F~(&QxnF z>^cTT21D5qO-x8&8(mzcg1F8Q0u02uBz{Z1m?oSJs zjT5hhrcyXpe{AUqA^wdXb#qvEnbCvd4JIBF1o@S(*J-Sg3o5hRWb781C%4H0xkDC7 zleEZPa*y06OXLArCM)D2StXCixNn>G6S7V=NJj`wT*Re9O~YBG8n2cNiLTj1XuK%e z6r|G+M^B92aJkUz*)q?Jp3O$CiqFkw8vNQCBF7&}6DL5|X=8t)V^yd&G8OssHkWlc z?k2C&(WJyTw=GqC;zly9*2@&U!JfBe%Mwj1Q;ft5taP%;Y%nYbR*r$Ra6ERLl;00G z!*M;2FBLDhDY{s!FJMp^OzntQ;)B@XRX>T>{CCAi@eY&4c?^o`dsE@}^k-X4u-{as zr+$^rPwZ8<(rtg#d|OU4;$$QUYd!d83rYGLErc^8f99`sX(SxasQV1O#nZ+w)EgGI dXJ4v;-q&z2doA8*>=$gID5z%I$H|H{(-}HKLSmup z3=RK95Cv+JOGF5v%g;bF=|@CJ6#a<^?Pr8`?yikUUhch|^PcB9@B5tRe(aae4asBS z7FG{N9BA1WD1f3{(yHH;w-k9lqHSR+ub&59Q95dLbjV}@@8M?35| z>JKvo$i!{f8HnJxj~6o9M;KJL*@f>NcUa7;QOe7}0A+%zE|tM5=N_H{V8a0yt~V*s zai7x}Xg?oxKqmn;XlbdbqzQcBf(8hPXvzfOCdKt|1N`{brR87raDl>mn-|gXP>Hcg znYD;W#775(VA>`uN)lERxRXfQ6SQi$MpPcS3eD8W1C98gT#LsV(^9LU94n_d*4&zk#wWV}j4@hLjg38Tb(P&Kzm#`4bCaA@i-ra5`!;uf+ShrgFYxaQc z5kEbZ;ZL6rL#Mg)Vp5*&_}3zsU6X^MtzClqR=h+QoaE$akIRJX(-kZpnO}&wWrF^7 zK8uHzSB0rJE19_0do-t&CaeYrO}+_QXzo7fqS&ACf}7$7aN%^Y3+=Ofilmti3|L=b zJS-tyglZ?J)RTW)xTe*h delta 438 zcmY+AT_}Tb6vqF5@Aht7XbQ<^Ly}zV-MpLm+AiF=P)Zanl#&|TjLgM0Un4E@K5I(K zysnA3_nXP6U+4kZo?G_F;pKm?+P*3k(6t^#cV7dFQ-R3@S) z)kK80(}XuykkgYI(6dHtk4T(>808lCI>m;|Dp!pKINbMEWmb0Vd0M*%=KEGAJ(Z)- zB=V%hIIM29%E&GW>{jyK#3=3HL*IX@5NRJhjO4TQr1p;`;&0VK+g>Jr2QHeh<*mSB zR6z|mix%L%zf?Xw;g#5*S%B_|=R_jN%ja_(3a4{noAR<31<-2?>%)jh3i@aNYkGm2 z;k?N~;_?d(z6t4=XTKS7rWX-HxM(kY)(blCCbn7SU$FeT)Fu3HXGl8jGc0xx|?=ho2iZe0eR@FB>(^b diff --git a/locale/cn/Resources_Cn.suo b/locale/cn/Resources_Cn.suo index b0f99b820678aede403ca9fe4af620af3050826d..3231b3dc5828ced9c500e239ff606cc0acdee1f4 100644 GIT binary patch delta 898 zcma)3O=}Zj5T1AYCfy{Pq)AO;3)Zw1Or$GG{fZ)(Lo7&BLMzfsp!K7m5Uez*l!6lJ zKX5#F_TWVi>iPpBf)^Frf8j|lImAojGrLL5LBUyO-fjz8V414DqhM7FOT~#xXO)9bL8(C>Vtc!w32Vw@l4DzQr&_ zdgy>@Ml^SP&$1^$oPvv>cm{EHD3=CX^0&*2>YX{GM$gb15(rjU`k=jtC|#D=806#!qfohx5A4BD zBmes9Z2afp4_DYJM)wqd)OjvOajUViCE|VaMvGxIANnBtXS8;#;e-Mt=p274WCz+|pet(Iu+ly+f;Hpnje13?cWCRp}wkyQ}Lh5OJNh z=r))dZQ{I%bAzgUCG{ln*ACGOt)Qlk`fb|cZtAKPg_6RVugGfqrsnZ%OAH^J+lrR3l9jLZxS3;W7u3JQOC&0w)v-| aKO+Yhk~|A2L?#Dv_<*egSqTC_0RsT6BcqW3 diff --git a/locale/en/Resources_EN.rc b/locale/en/Resources_EN.rc index 1a713bb722619ecb50a31496f221cf2f3a26ce9a..52ac7d8667f391c70bf807954a2ec9c6f179a5c3 100644 GIT binary patch delta 1733 zcmZuyeN0nV6u*y_`uGrK0uBvW%gmH8X-i9srlDd*&@l^Rgz1Jb)Ila#p*V?7iz2dW zmfD}OP>o^6n0**h_B4LP4|EH2=unY4GZDcpPB-S%FtdNmcJ3>%CEFkOy?4(&zjM#| zosZ`~9@>5>)YH=8Zxnp`5aEz?F(go>&@&@eo{dM_8I2ThhyqGoB37M^;R3X|UVvD0 z2%ZKJ=_6*JdYPcaqnac5>a-Powe5ltPyWc1)%u)XY;#)iN!=HCag!C=XG$DBCZgv3 zBZ3wUeVHiU_yBKh5CuJSD@~HCzD2;^TB}sNX+(j8UnYjySQ@iQ(Pi<1f818<~^Uu^P4-f3>~>SC=x@L^^!wn1Q8_>YGqjn2M6h z7{V-K#jKFM!3x+SJRewrxffJ;&22^Jc_q$0j7riFCYRaRLbj6hxONWh7t{0A(RU&C zRL)1>qDT%Jkngt4w2=>0%)$PPwb4y^%s!4FpJYT1D`VyCz5hYvumyDY(s6{5nF%o+ zB{>>&_Nh?Zl_JNeBQ^~GiZcUy&ge*^DS{BP+{h^I+w-A4H5vZz{*kA%jB&a1rfXc^ zK)jN^uRT|Y#HAlR;|FG@8#@q@c>RE2Kx%g;*W=qbOzUlysnB&>@Kf(mO6{H-!E&%( z@e3w7?YxFO{cc<<6%`qbl3#6tV?>1Zv=X0faKiJpYLb~!o5GA^X_h{2m@2^jvj(me zk+EvFfmO0vTJO+WOUudXq066v2RkD9C5tKgbt2j-;vyEx`F))&V+A-~u^QQpHp;Jv z-tF1w9Go_R*M*)kk=JPP9u}cF9D|c?{rFKDQ9ff=kaD^jCwFM4n3+~4RnIa;$xTE4 z3LW~lwNX6j*t*?5Dw=sBCNo{ba$$~$39#Evq zskMyi#bCI(nRE?QRNUIJ5B-STFQUjj4<)%+zEm=9= zG95jwCAZz_Ox_=6PLnsBT+6c?I|T3JdRgN=G_%48QAR0iXNkfuA}SCjL4}^lU#cTLeT## z4uK+3QXkMKOI=+R3Pkl-QQaLt|CKD1Uj7L8u3FLdfryvB{RM}6W_3}4QY{SVyUjg;;z-%XP{>GduM#?=JpTK;2wK6=KKrk~eXN%9y5)Z*#N|C6(S85V2)Ra&!S%siIDGkfl7r z<>LA0vnFy&d1S}VWw?HKmUpQ(EXXvNs1q z_mU=MjP|KPE-e%8mcA^N+}DPnEn5ligZum~ZGIT8lm&A~tmyvjARNn8lt|r(1xFw4 z<0lFeZztMQi%BiN+a_R3UGmg*teUR3%cSrSYFIt(Yq4M`9*9ekw;G93PK1@guPMnMo9JZhYGaC}dN{{~leCwA9GfvF5 P3yop&@5*OiE-d*QJy$}& delta 999 zcmYjQZ%h++82pB&4>bEo~f7(6MAobS!?rL|s)(j6p4>FhY>v zgpPHr);=3op*EE`Fa}BGG@58gjmCe=Oyi_wsIm9~ondOS$ug&GzdOF{%f0V=?|bi` z=Xq}QW^Vua+)#w>IV*Kj+~ZHm<2i|aoRv7`M$dYRP?LZbj~&VMJK(*8=Fds>*aVS1|* zokS^hyTl`Tq&{3jjaZ%dDJ1Jz121V}!@YPC{21rWB+$1)P#)TIvus+#5Oa6wIZ&EPvw;ntGb(sH9fnR9&Oz*KWQJOBMXJPmXT-e!kHryXtc5{k$3I635T7hUvDAmhhxCY<4D!tJ1`T5M zMvO*JLjQXajM2}P1boLoL#ok$2SYlU|M6Z9bRz;hzZux9G&t+QTnbkYAv-l#yJ*B6dezIokXE zDEvYLabQZdNl8Q?t;N<}y*xK;DaPKz79?)*v=mjp6eukfx=ZfXbBJY`vL+JL!EmiY z(zg_M(;c|{XhCOUpdTIS4M??X5Xn44Xu^e1Mv!k$1}HXWsxjIsAUZV*w_kvQ=(|R7kZY?7Bvv_>ikK{FhUA?LMQ;c`{k-e%><*=#y zC*}*($};QZ)(6!b5)mHZi3&C-3eOFJnv@h%MV!%O#-VgA<^qB69G_<1 z8u{Avtboa3y);`uMcF$0K~DG*5BKvKX5>#^h`bWM`P+raA2G!}_m>{Y8UtK)I`sV6 uqg3U;>RZHGtdPXjR3{hxdolk4Q?X~mh4C%4Yq9bxOPU>Yl{CMLn*IYqRGLBn diff --git a/locale/en/Resources_En.suo b/locale/en/Resources_En.suo index 4b60a88dcc6dab3b4bbbc6f3504991ba274dedda..aeadd081aad48ebb5283d98dfc744e1163f8ea87 100644 GIT binary patch delta 206 zcmZp$Xt3De!@|flS&>Day+Cg9@o4S~n~Pc2v#=X8#4{K$7;e_&oX^O?!@$7s9|$I2 zWKo&iz{xWC2bcF`XF&i_jWom=h;!a>{Q$ ICT7J709MvYIsgCw delta 192 zcmZp$Xt3De!@|ftS&>Da{X*r{+}cOyHy5+4XJI#Dh-a{5FxjlhIiHb(mw|!dKM+j5 z$f7d2fs)!HT46^A~P^mdS@DY$rDeID?fs@B_68 z_)K;Yu$$Z@=)@xcRLzB?WAYb4f3U(5A%9**PM{1AlI-R$LTi{|j+(5=DZlxcm=!Ak D4Jtu_ diff --git a/locale/ru/Resources_RU.rc b/locale/ru/Resources_RU.rc index 14fc747b5c609635fc4856a91cac3528229275f3..8ed97c1606c54b3f15fcfc6ebd91f5392a1b9a31 100644 GIT binary patch delta 1061 zcmZuwU1$_n82xVN?wY8qSz}C5Fq^~|A=sJSo$PLOe-fkJ;CB6ov}ye*#s?L&x~)}P zQP33vk(dL{gOsME52c7iClDVb8lh12Wka_#sZz5xS)*A=d=nMzH?u+V(3iRQe%y1u zbI$$d#$(65f}^h^rTEBacBZxo^qiD9a(Aui`DUdk^^r<-q>&Hq&H&CHn^gQ1G!K1S zD?~khJRL=>-HEYtF657Qi6Dl4iz0K&iNO<(=Y^==f@1i7CHjun*!7#={i3K8#EZ_b z5&KM(q5u25;w9Dm;nX{!1juXtbb65kC3`)rr`b5;64mfbFBE?4+4~4R`xd&nOdd+n zF>0qhbbyY+JyYcl7DbZJUcIEl-TqN^L~1f7RsKd~lWgFfhnl3$yGA~*lQD>FRe69h zMZCYLn7lZ1M`OJbSN6Ngx6^uRrR}tXw(>4Xn<$AbhZ+$%xWrv=$K&OItdLZWN&7-y zw3d6UkwNYqkzT1{C{bQfWQkJ?eN1sm6jxmPDmu%-@z3R`ZD4GaIX1}}uD7u3b+n6B zSX!D{%O|uML&@+g+E4mi^r`@RwN!)|-y{?N!x5)OX52W3LnkYV_bzaIJnhgp5go7d zYm8WvaH3=45|;uLnp-MEDxX$#Qmtb5)b#}#g~)GHdGRhE=$`rzS06nSx_NnQqu_U~ zH>YwfLeY2*I&Xw$CrIM$Xpd6I)VaT+M&CTK1o=V-PL0p!i<%XyQC2FJ;mye-7|YFf zgt$QfLk}ykqP>Q-O3eJBRu&y_3%h;sJ$VjM{b_A);d}yLW>;fnHiAsH4_#T8+4X1g z1KXtE8cBFY`b#Z;#ldwS;K3~fQ8$`q4Z0-^t-mkDtG}~+_G9?Lgc4#A7V_|bG~Yaw zqI+kF&~UM}!u0&(w3rPyD+U$3n&;;V$~`t;5!q}x^- z8K)>gChaku=_>-65m~O0cQzDjXFoHCvV0)r64^GTnS4erA(o@7L0W&A{qtS?TvQIk J_KTO!{{S<3M*;u< delta 680 zcmYjPT}V@582-M_*_d-JEs3HivmbDT?40dvNA%e6LI@HX1`&dG5z$TQg_X`R6hdgJ z(>>AgB5P65P1*8*N+@*EMRc)14CzMB)~{=&g%=V9y=P45>VxO~zUS|I-xO?fIa@m3 zBLtXajP$f|!Oy&S_D(aZuN~p#3RBr}CNUoiV*IRv8`r-IK^8E&dJl6!Wh(fhrgxWd z7gqWvY!cm+EeNp|JLV%fm{&#a$Af+iO^ZA6CmBf&I)!=`z##Tw;8G1%`lkdR5hkKO zUgj^U1yFf8h||L^!yTL9MC&C_mQpClMZ+zO@Sq30ZIEKIN%K8QPkrXWDoLetn)G0?WKLHlK(_ z=8MSDc+$xwNO!G>d*E69O$k+cmmSlJ$i2}T#715dYH2r2ZlN1w*;@)I(Ih& z`jl~Kb05-uHF~I-+mVX9jo!SF6{IeTi2s;^nG$)x3Pt9o%M`L;Z3Ib9*Xv`gBo}(&#PHfEv5rJf=oJoL zg#*cWu^Jz%$J3;S^UI>qu`crRV9CGbD)F~gch+&Y@#tsAK^!}`dp59(FSYB9wcMqv Q?X*;}$IjVk7th%L0fFZ5bN~PV diff --git a/locale/ru/Resources_Ru.suo b/locale/ru/Resources_Ru.suo index a658ad449f663b64cb6013f887d751aef0c82e69..1f912f47b39d03a54bfa9711b86a75debc8ff98a 100644 GIT binary patch delta 687 zcmZ8eIZFdk5T3WbUDw@bG>67uqKO9{iLzdJU||styg@+=uOE=YB1oc$=`0loEbK(E zu@Sek5Nkn*jfGhFBT{Ii&P!rgGt0-$@y(n0-ph<<#%~kcWv#BXubWv`0RR~j_xY2k zCHJRj_`=)pQRkRa=c>U~UdgyPeyXQk-$d`AqWnA2MY(Q5v{>u0FSR9hr?;@m0oVo$ z`tT#vd^JbVtF?neU3eMw#cEK@VnKop&{HMVLiO zsXysn7Fu~S=U&AbGloe|R(PoBE)wz+lip<^FUIRg+Bt7Racm#Pm98$0b za`hd22sJu*fiwS!^{8GehLqH%0FymrBMbMu-~oi^^L{DDqxulO1r4o0#uuOOtRXIH zh+jwelcq%|*aLgNVU}UswA5CL6ZThNiRpd^Pwk}O71M!MZ1Fdt#WkETxRB#$tI~01 zjDlSP86E|j9V(>SI@&0#Tmo(d!)ypQgOT2gJXgvFkWVuSi*yxa7JXAN0>dyw7^P%C c9Abp~So!_@ooop0JbfU0^XeizfYYJ$FHO_lwg3PC delta 669 zcmY*W&r2Io5dPk}8`osJCPvqUu1)*_DtHJY62*%pRobT2O2LbupoI!SL8Amu3xa2L z&gwz&(o40t){GF|l%#zy^{$bvXo zi&xD7(LRnvg7PlwX>kn zy`H0TV$qU~Min;I6K~C!3Y5EQmd-$;1xzkV3BR5!Y0ch6hLt cZMcrOq|a`zjI;~Tx$BVE=TTcr2dDMtLE0mq!36$k}6>mIB|YC&^t6`gPh1C61ucIQ{EEvqs+y&-4bKIgk&U>o3vB&tv>E^EV+zMZ5cY@x(KzqzLn$%zxMKt%eLz! z*x}irck}e;B_q>zZ}{IORVghb_6=`C?jF)Cef+7fEv_AUXBZSF8uTsnAy8Ed6C7%8 zWTQHX!-5}qLyqQOv zc&|~bGExiH)9e;B57kl;>(^yO^j+?!EhDKoM@fCL&FIB*Rdboqj;Ez-oY2A}#xKvv z)zPu>vZ}wuc<60>Y*A{?J@6^NFviM}eU7NVO>H60=D1L(k<3%`i0cbK=2@kLq$*l| zj(hadvx(9-+;5)#@XU}m5Z6J0zX+V}!fhUX^o~1n&pzoak>n2HOfs~TBP8*b{`gGOU7|2ixeYJX9yK#&B$R2k+YI z9&E_(5n5W{Ty{Rsmn_>pnpQTgmzX=UaN}T7I(UFd^VD*r409$)kH(iYvpCEl5BVpT zvji8xfut}zC$Ao>X=^o;fz^vzE1|7|^pco4Z)D=7HOFP)3Ld|Ta#o?Z0PdAz)<9or zyl15?LumyHNq*AWJ&6%%X34$-a)n^U4*LHvlCxUhgzG}8ZTT7}+y}%1x1ijG!$VTq z?srlaMT76Ov}EO%Q|(CNp zDxO9G8q&qmmSJ=XcniXo5b+AHY>ph0yFBiLzAcvZtC4f;u5`BJLpVC5P;vb2?Z@DZ$B z+t0UoM&U9Zhh!)3R%;u3M59%xN@tqAQEu9I8pH?L8aMb~qua1?aoB?EtHt2i;}ql; zqJr!5_GNP_{a9ZSzv8oWykGO}VZHD2iB1RjeQ{N~@|`K~vh2=iAb5VwtqAVA1I?t~Abd+ER2np0|DxPeNLC zcurkJ&e!Elr#=3;3@l6{zp#omE|xyO$nQfqxGt=wZQ{cWtWF}oN#u9_I{2`?(0a=x z^0PJl7M61o`Psh3B=QS#7|)CPG?CxgmOx(j_>rG>F8}*`v1>lAJMzznRVl?$b-d=c z-uG1>CVR1?oiIr6#oEqH*!gN=BXr6C(f(4zdYtY0XYWG2C7S8@SjcvAm;7$r4DpuL zY=fHC5+Vy1ca?p_4FL-B&cz;koOhB(3r)UeZ`wl%_Qut6?!$3k+!0 zR{6q&N^9>}t8R+L6p87n^*KA0pq{1I#%#SQ?DP%ihqbfh9^cvJ(z|=lX

    ;k<;& zO6LpIQ$Go5OH>6bjncJr9|78*rP_|ZnNfdhj)DL zNctgtJw-2!x^W}kBTg^rt+P57ug=k?_FiX+t+i{VKl7Y5?(Zq9b0Rt~rFIIw{Vd+p z?+!I=|3Ba*Ppyb}*v5Q7OI%y;#f^==A$EoKv<9bV9LXzwZTSWDgyuA6SJ0j>;Ql_n znDr&Zwbp;srj6AtG)(s1hmc%n6ofPz8I?`0iK~p(poMF#C~0);{Db5uiK(ZOxcX%| z)~;|+BQ>0g5LSkxa9i=TvV-|z>!)^xM{5XY*VG=ets)e`o9z#V6Hvnl9N;x;ECZhY z-#8N%CU`mvi32=+9^QrNzGE~^k9n&3IPoY(KeL$hDB>pzZ5`M&uC#U+Jr=CBt%Byf zHk5UqM{7=@NiVy@l^vXO{uh!(Oj7^= diff --git a/mp/Release/bilinear16_555.obj b/mp/Release/bilinear16_555.obj deleted file mode 100644 index f830298a6456ac12a91f9d948c99aab2c063cf85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27294 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 Ls{<|`1L1!F`e9>X diff --git a/mp/Release/mp.dll.embed.manifest b/mp/Release/mp.dll.embed.manifest deleted file mode 100644 index bfec505..0000000 --- a/mp/Release/mp.dll.embed.manifest +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mp/Release/mp.dll.embed.manifest.res b/mp/Release/mp.dll.embed.manifest.res deleted file mode 100644 index 03f5c96c42dd56c5f1560aabb34a24e136f52122..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 724 zcma)4%}T>S5Dwx+!Mn$0?@f~yq%BFMh(b|8qh`Lf7a1s0XjF%SKK zGtkncO3!2dFuUpuI726NDsrPC<~1NcADq>r@AuFU^y$*L`p!?mWdpJkE3qOy$^2rcQXD|kGgxk zM%`BQ8Xl#v0G-nC8!fHJO*XUM)@i0cC4eLO%+(9p&a2Y>9%otqL9gf2f*01Tgc>`s@<}<6uCzq39Gp?COmZc!p`OuHR!=08gQTAfMF`;l a`pIf6zq{G=8Fd>?`wF)Hwbm_u?0Me=VdBdG diff --git a/mp/Release/mp.dll.intermediate.manifest b/mp/Release/mp.dll.intermediate.manifest deleted file mode 100644 index 7256947..0000000 --- a/mp/Release/mp.dll.intermediate.manifest +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/mp/Release/mt.dep b/mp/Release/mt.dep deleted file mode 100644 index a39d202..0000000 --- a/mp/Release/mt.dep +++ /dev/null @@ -1 +0,0 @@ -Manifest resource last updated at 12:28:44.86 on 23/11/2014 diff --git a/mp/Release/vc90.idb b/mp/Release/vc90.idb deleted file mode 100644 index 6b486a50d8e786931459c9c123e66352c6921876..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240640 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 diff --git a/mp/Release/vc90.pdb b/mp/Release/vc90.pdb deleted file mode 100644 index 281774d4f4443b14f00bef36e6f82c206d149c01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102400 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 \ No newline at end of file