diff --git a/inc/d3d9shader.h b/inc/d3d9shader.h index ea38c66..71575b8 100644 --- a/inc/d3d9shader.h +++ b/inc/d3d9shader.h @@ -407,23 +407,23 @@ const BYTE D3D9_PALETTE_SHADER_BILINEAR[] = mul r1.xy, r1, r1.wzyx mad r1.zw, r1, c1.y, c1.x mul r1.zw, r1, r4 - mul r0, r0, r1.x - mul r0, r2.z, r0 - mul r3, r2.w, r3 - mul r4, r2.w, r6 - mad r0, r4, r1.y, r0 - mad r0, r3, r2.z, r0 - mul r3, r2.w, r5 - mul r4, r1.w, r7 - mad r0, r4, r2.z, r0 - mad r0, r3, r1.z, r0 - mul r1.x, r2.z, r1.x - mad r1.x, r2.w, r1.y, r1.x - mad r1.x, r2.w, r2.z, r1.x - mad r1.x, r1.w, r2.z, r1.x - mad r1.x, r2.w, r1.z, r1.x - rcp r1.x, r1.x - mul r0, r0, r1.x + mul r0.w, r2.z, r1.x + mul r0.xyz, r0.w, r0 + mad r0.w, r2.w, r1.y, r0.w + mul r3.w, r1.y, r2.w + mad r0.w, r2.w, r2.z, r0.w + mad r0.w, r1.w, r2.z, r0.w + mad r0.w, r2.w, r1.z, r0.w + rcp r0.w, r0.w + mad r0.xyz, r6, r3.w, r0 + mul r3.w, r2.z, r2.w + mad r0.xyz, r3, r3.w, r0 + mul r5.w, r2.z, r1.w + mul r7.w, r1.z, r2.w + mad r0.xyz, r7, r5.w, r0 + mad r0.xyz, r5, r7.w, r0 + mul r0.xyz, r0.w, r0 + mov r0.w, c1.z mov oC0, r0 // approximately 58 instruction slots used (5 texture, 53 arithmetic) @@ -464,22 +464,21 @@ float4 catmull_rom(float2 coord) texPos3 /= TextureSize.xy; texPos12 /= TextureSize.xy; - float4 result = 0.0f; - //result += tex2D(SurfaceTex, float2(texPos0.x, texPos0.y)) * w0.x * w0.y; - result += tex2D(SurfaceTex, float2(texPos12.x, texPos0.y)) * w12.x * w0.y; - //result += tex2D(SurfaceTex, float2(texPos3.x, texPos0.y)) * w3.x * w0.y; + float wtm = w12.x * w0.y; + float wml = w0.x * w12.y; + float wmm = w12.x * w12.y; + float wmr = w3.x * w12.y; + float wbm = w12.x * w3.y; - result += tex2D(SurfaceTex, float2(texPos0.x, texPos12.y)) * w0.x * w12.y; - result += tex2D(SurfaceTex, float2(texPos12.x, texPos12.y)) * w12.x * w12.y; - result += tex2D(SurfaceTex, float2(texPos3.x, texPos12.y)) * w3.x * w12.y; + float3 result = 0.0f; - //result += tex2D(SurfaceTex, float2(texPos0.x, texPos3.y)) * w0.x * w3.y; - result += tex2D(SurfaceTex, float2(texPos12.x, texPos3.y)) * w12.x * w3.y; - //result += tex2D(SurfaceTex, float2(texPos3.x, texPos3.y)) * w3.x * w3.y; + result += tex2D(SurfaceTex, float2(texPos12.x, texPos0.y)).rgb * wtm; + result += tex2D(SurfaceTex, float2(texPos0.x, texPos12.y)).rgb * wml; + result += tex2D(SurfaceTex, float2(texPos12.x, texPos12.y)).rgb * wmm; + result += tex2D(SurfaceTex, float2(texPos3.x, texPos12.y)).rgb * wmr; + result += tex2D(SurfaceTex, float2(texPos12.x, texPos3.y)).rgb * wbm; - float wm = 1./((w12.x * w0.y)+(w0.x * w12.y)+(w12.x * w12.y)+(w3.x * w12.y)+(w12.x * w3.y)); - - return result * wm; + return float4(result * (1./(wtm+wml+wmm+wmr+wbm)), 1.0); } float4 main(float2 texCoords : TEXCOORD) : COLOR @@ -492,207 +491,208 @@ float4 main(float2 texCoords : TEXCOORD) : COLOR const BYTE D3D9_CATMULL_ROM_SHADER[] = { - 0, 2, 255, 255, 254, 255, - 44, 0, 67, 84, 65, 66, - 28, 0, 0, 0, 131, 0, - 0, 0, 0, 2, 255, 255, - 2, 0, 0, 0, 28, 0, - 0, 0, 0, 1, 0, 0, - 124, 0, 0, 0, 68, 0, - 0, 0, 3, 0, 0, 0, - 1, 0, 0, 0, 80, 0, - 0, 0, 0, 0, 0, 0, - 96, 0, 0, 0, 2, 0, - 0, 0, 1, 0, 2, 0, - 108, 0, 0, 0, 0, 0, - 0, 0, 83, 117, 114, 102, - 97, 99, 101, 84, 101, 120, - 0, 171, 4, 0, 12, 0, - 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 84, 101, 120, 116, 117, 114, - 101, 83, 105, 122, 101, 0, - 1, 0, 3, 0, 1, 0, - 4, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 112, 115, - 95, 50, 95, 48, 0, 77, - 105, 99, 114, 111, 115, 111, - 102, 116, 32, 40, 82, 41, - 32, 72, 76, 83, 76, 32, - 83, 104, 97, 100, 101, 114, - 32, 67, 111, 109, 112, 105, - 108, 101, 114, 32, 49, 48, - 46, 49, 0, 171, 81, 0, - 0, 5, 1, 0, 15, 160, - 0, 0, 0, 191, 0, 0, - 0, 63, 0, 0, 128, 63, - 0, 0, 32, 64, 81, 0, - 0, 5, 2, 0, 15, 160, - 0, 0, 192, 63, 0, 0, - 32, 192, 0, 0, 0, 64, - 0, 0, 0, 0, 31, 0, - 0, 2, 0, 0, 0, 128, - 0, 0, 3, 176, 31, 0, - 0, 2, 0, 0, 0, 144, - 0, 8, 15, 160, 1, 0, - 0, 2, 0, 0, 8, 128, - 1, 0, 0, 160, 4, 0, - 0, 4, 0, 0, 3, 128, - 0, 0, 228, 176, 0, 0, - 228, 160, 0, 0, 255, 128, - 19, 0, 0, 2, 0, 0, - 12, 128, 0, 0, 27, 128, - 2, 0, 0, 3, 0, 0, - 3, 128, 0, 0, 27, 129, - 0, 0, 228, 128, 2, 0, - 0, 3, 0, 0, 12, 128, - 0, 0, 27, 128, 1, 0, - 0, 160, 6, 0, 0, 2, - 1, 0, 1, 128, 0, 0, - 0, 160, 6, 0, 0, 2, - 1, 0, 2, 128, 0, 0, - 85, 160, 5, 0, 0, 3, - 2, 0, 3, 128, 0, 0, - 27, 128, 1, 0, 228, 128, - 1, 0, 0, 2, 3, 0, - 1, 128, 2, 0, 0, 128, - 2, 0, 0, 3, 0, 0, - 12, 128, 0, 0, 27, 128, - 1, 0, 85, 160, 2, 0, - 0, 3, 0, 0, 3, 128, - 0, 0, 228, 128, 1, 0, - 255, 160, 5, 0, 0, 3, - 0, 0, 3, 128, 1, 0, - 228, 128, 0, 0, 228, 128, - 4, 0, 0, 4, 1, 0, - 12, 128, 0, 0, 27, 176, - 0, 0, 27, 160, 0, 0, - 228, 129, 4, 0, 0, 4, - 2, 0, 12, 128, 1, 0, - 228, 128, 2, 0, 0, 161, - 2, 0, 170, 160, 4, 0, - 0, 4, 2, 0, 12, 128, - 1, 0, 228, 128, 2, 0, - 228, 128, 1, 0, 85, 160, - 5, 0, 0, 3, 3, 0, - 12, 128, 1, 0, 228, 128, - 2, 0, 228, 128, 4, 0, - 0, 4, 4, 0, 3, 128, - 1, 0, 27, 128, 2, 0, - 0, 160, 2, 0, 85, 160, - 5, 0, 0, 3, 4, 0, - 12, 128, 1, 0, 228, 128, - 1, 0, 228, 128, 4, 0, - 0, 4, 4, 0, 3, 128, - 4, 0, 27, 128, 4, 0, - 228, 128, 1, 0, 170, 160, - 4, 0, 0, 4, 2, 0, - 12, 128, 1, 0, 228, 128, - 2, 0, 228, 128, 4, 0, - 27, 128, 6, 0, 0, 2, - 4, 0, 1, 128, 2, 0, - 255, 128, 6, 0, 0, 2, - 4, 0, 2, 128, 2, 0, - 170, 128, 4, 0, 0, 4, - 0, 0, 12, 128, 3, 0, - 228, 128, 4, 0, 27, 128, - 0, 0, 228, 128, 5, 0, - 0, 3, 1, 0, 3, 128, - 1, 0, 228, 128, 0, 0, - 27, 128, 1, 0, 0, 2, - 3, 0, 2, 128, 1, 0, - 85, 128, 1, 0, 0, 2, - 4, 0, 2, 128, 3, 0, - 85, 128, 1, 0, 0, 2, - 2, 0, 1, 128, 1, 0, - 0, 128, 1, 0, 0, 2, - 5, 0, 1, 128, 2, 0, - 0, 128, 1, 0, 0, 2, - 4, 0, 1, 128, 0, 0, - 0, 128, 1, 0, 0, 2, - 5, 0, 2, 128, 0, 0, - 85, 128, 66, 0, 0, 3, - 0, 0, 15, 128, 3, 0, - 228, 128, 0, 8, 228, 160, - 66, 0, 0, 3, 3, 0, - 15, 128, 1, 0, 228, 128, - 0, 8, 228, 160, 66, 0, - 0, 3, 6, 0, 15, 128, - 2, 0, 228, 128, 0, 8, - 228, 160, 66, 0, 0, 3, - 5, 0, 15, 128, 5, 0, - 228, 128, 0, 8, 228, 160, - 66, 0, 0, 3, 7, 0, - 15, 128, 4, 0, 228, 128, - 0, 8, 228, 160, 4, 0, - 0, 4, 1, 0, 3, 128, - 1, 0, 27, 128, 1, 0, - 85, 161, 1, 0, 170, 160, - 4, 0, 0, 4, 1, 0, - 3, 128, 1, 0, 27, 128, - 1, 0, 228, 128, 1, 0, - 0, 160, 5, 0, 0, 3, - 1, 0, 3, 128, 1, 0, - 228, 128, 1, 0, 27, 128, - 4, 0, 0, 4, 1, 0, - 12, 128, 1, 0, 228, 128, - 1, 0, 85, 160, 1, 0, - 0, 160, 5, 0, 0, 3, - 1, 0, 12, 128, 1, 0, - 228, 128, 4, 0, 228, 128, - 5, 0, 0, 3, 0, 0, - 15, 128, 0, 0, 228, 128, - 1, 0, 0, 128, 5, 0, - 0, 3, 0, 0, 15, 128, - 2, 0, 170, 128, 0, 0, - 228, 128, 5, 0, 0, 3, - 3, 0, 15, 128, 2, 0, - 255, 128, 3, 0, 228, 128, - 5, 0, 0, 3, 4, 0, - 15, 128, 2, 0, 255, 128, - 6, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 4, 0, 228, 128, 1, 0, - 85, 128, 0, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 128, 3, 0, 228, 128, - 2, 0, 170, 128, 0, 0, - 228, 128, 5, 0, 0, 3, - 3, 0, 15, 128, 2, 0, - 255, 128, 5, 0, 228, 128, - 5, 0, 0, 3, 4, 0, - 15, 128, 1, 0, 255, 128, - 7, 0, 228, 128, 4, 0, - 0, 4, 0, 0, 15, 128, - 4, 0, 228, 128, 2, 0, - 170, 128, 0, 0, 228, 128, - 4, 0, 0, 4, 0, 0, - 15, 128, 3, 0, 228, 128, - 1, 0, 170, 128, 0, 0, - 228, 128, 5, 0, 0, 3, - 1, 0, 1, 128, 2, 0, - 170, 128, 1, 0, 0, 128, - 4, 0, 0, 4, 1, 0, - 1, 128, 2, 0, 255, 128, - 1, 0, 85, 128, 1, 0, - 0, 128, 4, 0, 0, 4, - 1, 0, 1, 128, 2, 0, - 255, 128, 2, 0, 170, 128, - 1, 0, 0, 128, 4, 0, - 0, 4, 1, 0, 1, 128, - 1, 0, 255, 128, 2, 0, - 170, 128, 1, 0, 0, 128, - 4, 0, 0, 4, 1, 0, - 1, 128, 2, 0, 255, 128, - 1, 0, 170, 128, 1, 0, - 0, 128, 6, 0, 0, 2, - 1, 0, 1, 128, 1, 0, - 0, 128, 5, 0, 0, 3, - 0, 0, 15, 128, 0, 0, - 228, 128, 1, 0, 0, 128, - 1, 0, 0, 2, 0, 8, - 15, 128, 0, 0, 228, 128, - 255, 255, 0, 0 + 0, 2, 255, 255, 254, 255, + 44, 0, 67, 84, 65, 66, + 28, 0, 0, 0, 131, 0, + 0, 0, 0, 2, 255, 255, + 2, 0, 0, 0, 28, 0, + 0, 0, 0, 1, 0, 0, + 124, 0, 0, 0, 68, 0, + 0, 0, 3, 0, 0, 0, + 1, 0, 0, 0, 80, 0, + 0, 0, 0, 0, 0, 0, + 96, 0, 0, 0, 2, 0, + 0, 0, 1, 0, 2, 0, + 108, 0, 0, 0, 0, 0, + 0, 0, 83, 117, 114, 102, + 97, 99, 101, 84, 101, 120, + 0, 171, 4, 0, 12, 0, + 1, 0, 1, 0, 1, 0, + 0, 0, 0, 0, 0, 0, + 84, 101, 120, 116, 117, 114, + 101, 83, 105, 122, 101, 0, + 1, 0, 3, 0, 1, 0, + 4, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 112, 115, + 95, 50, 95, 48, 0, 77, + 105, 99, 114, 111, 115, 111, + 102, 116, 32, 40, 82, 41, + 32, 72, 76, 83, 76, 32, + 83, 104, 97, 100, 101, 114, + 32, 67, 111, 109, 112, 105, + 108, 101, 114, 32, 49, 48, + 46, 49, 0, 171, 81, 0, + 0, 5, 1, 0, 15, 160, + 0, 0, 0, 191, 0, 0, + 0, 63, 0, 0, 128, 63, + 0, 0, 32, 64, 81, 0, + 0, 5, 2, 0, 15, 160, + 0, 0, 192, 63, 0, 0, + 32, 192, 0, 0, 0, 64, + 0, 0, 0, 0, 31, 0, + 0, 2, 0, 0, 0, 128, + 0, 0, 3, 176, 31, 0, + 0, 2, 0, 0, 0, 144, + 0, 8, 15, 160, 1, 0, + 0, 2, 0, 0, 8, 128, + 1, 0, 0, 160, 4, 0, + 0, 4, 0, 0, 3, 128, + 0, 0, 228, 176, 0, 0, + 228, 160, 0, 0, 255, 128, + 19, 0, 0, 2, 0, 0, + 12, 128, 0, 0, 27, 128, + 2, 0, 0, 3, 0, 0, + 3, 128, 0, 0, 27, 129, + 0, 0, 228, 128, 2, 0, + 0, 3, 0, 0, 12, 128, + 0, 0, 27, 128, 1, 0, + 0, 160, 6, 0, 0, 2, + 1, 0, 1, 128, 0, 0, + 0, 160, 6, 0, 0, 2, + 1, 0, 2, 128, 0, 0, + 85, 160, 5, 0, 0, 3, + 2, 0, 3, 128, 0, 0, + 27, 128, 1, 0, 228, 128, + 1, 0, 0, 2, 3, 0, + 1, 128, 2, 0, 0, 128, + 2, 0, 0, 3, 0, 0, + 12, 128, 0, 0, 27, 128, + 1, 0, 85, 160, 2, 0, + 0, 3, 0, 0, 3, 128, + 0, 0, 228, 128, 1, 0, + 255, 160, 5, 0, 0, 3, + 0, 0, 3, 128, 1, 0, + 228, 128, 0, 0, 228, 128, + 4, 0, 0, 4, 1, 0, + 12, 128, 0, 0, 27, 176, + 0, 0, 27, 160, 0, 0, + 228, 129, 4, 0, 0, 4, + 2, 0, 12, 128, 1, 0, + 228, 128, 2, 0, 0, 161, + 2, 0, 170, 160, 4, 0, + 0, 4, 2, 0, 12, 128, + 1, 0, 228, 128, 2, 0, + 228, 128, 1, 0, 85, 160, + 5, 0, 0, 3, 3, 0, + 12, 128, 1, 0, 228, 128, + 2, 0, 228, 128, 4, 0, + 0, 4, 4, 0, 3, 128, + 1, 0, 27, 128, 2, 0, + 0, 160, 2, 0, 85, 160, + 5, 0, 0, 3, 4, 0, + 12, 128, 1, 0, 228, 128, + 1, 0, 228, 128, 4, 0, + 0, 4, 4, 0, 3, 128, + 4, 0, 27, 128, 4, 0, + 228, 128, 1, 0, 170, 160, + 4, 0, 0, 4, 2, 0, + 12, 128, 1, 0, 228, 128, + 2, 0, 228, 128, 4, 0, + 27, 128, 6, 0, 0, 2, + 4, 0, 1, 128, 2, 0, + 255, 128, 6, 0, 0, 2, + 4, 0, 2, 128, 2, 0, + 170, 128, 4, 0, 0, 4, + 0, 0, 12, 128, 3, 0, + 228, 128, 4, 0, 27, 128, + 0, 0, 228, 128, 5, 0, + 0, 3, 1, 0, 3, 128, + 1, 0, 228, 128, 0, 0, + 27, 128, 1, 0, 0, 2, + 3, 0, 2, 128, 1, 0, + 85, 128, 1, 0, 0, 2, + 4, 0, 2, 128, 3, 0, + 85, 128, 1, 0, 0, 2, + 2, 0, 1, 128, 1, 0, + 0, 128, 1, 0, 0, 2, + 5, 0, 1, 128, 2, 0, + 0, 128, 1, 0, 0, 2, + 4, 0, 1, 128, 0, 0, + 0, 128, 1, 0, 0, 2, + 5, 0, 2, 128, 0, 0, + 85, 128, 66, 0, 0, 3, + 0, 0, 15, 128, 3, 0, + 228, 128, 0, 8, 228, 160, + 66, 0, 0, 3, 3, 0, + 15, 128, 1, 0, 228, 128, + 0, 8, 228, 160, 66, 0, + 0, 3, 6, 0, 15, 128, + 2, 0, 228, 128, 0, 8, + 228, 160, 66, 0, 0, 3, + 5, 0, 15, 128, 5, 0, + 228, 128, 0, 8, 228, 160, + 66, 0, 0, 3, 7, 0, + 15, 128, 4, 0, 228, 128, + 0, 8, 228, 160, 4, 0, + 0, 4, 1, 0, 3, 128, + 1, 0, 27, 128, 1, 0, + 85, 161, 1, 0, 170, 160, + 4, 0, 0, 4, 1, 0, + 3, 128, 1, 0, 27, 128, + 1, 0, 228, 128, 1, 0, + 0, 160, 5, 0, 0, 3, + 1, 0, 3, 128, 1, 0, + 228, 128, 1, 0, 27, 128, + 4, 0, 0, 4, 1, 0, + 12, 128, 1, 0, 228, 128, + 1, 0, 85, 160, 1, 0, + 0, 160, 5, 0, 0, 3, + 1, 0, 12, 128, 1, 0, + 228, 128, 4, 0, 228, 128, + 5, 0, 0, 3, 0, 0, + 8, 128, 2, 0, 170, 128, + 1, 0, 0, 128, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 255, 128, 0, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 8, 128, 2, 0, + 255, 128, 1, 0, 85, 128, + 0, 0, 255, 128, 5, 0, + 0, 3, 3, 0, 8, 128, + 1, 0, 85, 128, 2, 0, + 255, 128, 4, 0, 0, 4, + 0, 0, 8, 128, 2, 0, + 255, 128, 2, 0, 170, 128, + 0, 0, 255, 128, 4, 0, + 0, 4, 0, 0, 8, 128, + 1, 0, 255, 128, 2, 0, + 170, 128, 0, 0, 255, 128, + 4, 0, 0, 4, 0, 0, + 8, 128, 2, 0, 255, 128, + 1, 0, 170, 128, 0, 0, + 255, 128, 6, 0, 0, 2, + 0, 0, 8, 128, 0, 0, + 255, 128, 4, 0, 0, 4, + 0, 0, 7, 128, 6, 0, + 228, 128, 3, 0, 255, 128, + 0, 0, 228, 128, 5, 0, + 0, 3, 3, 0, 8, 128, + 2, 0, 170, 128, 2, 0, + 255, 128, 4, 0, 0, 4, + 0, 0, 7, 128, 3, 0, + 228, 128, 3, 0, 255, 128, + 0, 0, 228, 128, 5, 0, + 0, 3, 5, 0, 8, 128, + 2, 0, 170, 128, 1, 0, + 255, 128, 5, 0, 0, 3, + 7, 0, 8, 128, 1, 0, + 170, 128, 2, 0, 255, 128, + 4, 0, 0, 4, 0, 0, + 7, 128, 7, 0, 228, 128, + 5, 0, 255, 128, 0, 0, + 228, 128, 4, 0, 0, 4, + 0, 0, 7, 128, 5, 0, + 228, 128, 7, 0, 255, 128, + 0, 0, 228, 128, 5, 0, + 0, 3, 0, 0, 7, 128, + 0, 0, 255, 128, 0, 0, + 228, 128, 1, 0, 0, 2, + 0, 0, 8, 128, 1, 0, + 170, 160, 1, 0, 0, 2, + 0, 8, 15, 128, 0, 0, + 228, 128, 255, 255, 0, 0 }; + + #endif