Cleaned shader code up

Matched RwD3D9GetTransform in 1.01 and 3.0 EXEs
This commit is contained in:
Silent 2014-11-28 18:32:19 +01:00
parent 80f652762a
commit 49ddc29312
3 changed files with 3128 additions and 3133 deletions

View file

@ -37,10 +37,6 @@ static void* varRwD3D9CreateVertexShader = AddressByVersion<void*>(0x7FAC60, 0x7
WRAPPER RwBool RwD3D9CreateVertexShader(const RwUInt32 *function, void **shader) { VARJMP(varRwD3D9CreateVertexShader); }
static void* varRwD3D9DeleteVertexShader = AddressByVersion<void*>(0x7FAC90, 0x7FB590, 0x834C50);
WRAPPER void RwD3D9DeleteVertexShader(void *shader) { VARJMP(varRwD3D9DeleteVertexShader); }
static void* var_rwD3D9VSGetComposedTransformMatrix = AddressByVersion<void*>(0x7646E0, 0x764FF0, 0x79E6A0);
WRAPPER void _rwD3D9VSGetComposedTransformMatrix(void *transformMatrix) { VARJMP(var_rwD3D9VSGetComposedTransformMatrix); }
static void* var_rwD3D9VSSetActiveWorldMatrix = AddressByVersion<void*>(0x764650, 0x764F60, 0x79E610);
WRAPPER void _rwD3D9VSSetActiveWorldMatrix(const RwMatrix *worldMatrix) { VARJMP(var_rwD3D9VSSetActiveWorldMatrix); }
static void* var_rwD3D9SetVertexShaderConstant = AddressByVersion<void*>(0x7FACA0, 0x7FB5A0, 0x834C60);
WRAPPER void _rwD3D9SetVertexShaderConstant(RwUInt32 registerAddress,
const void *constantData,
@ -51,7 +47,7 @@ WRAPPER RwBool _rpD3D9VertexDeclarationInstColor(RwUInt8 *mem,
RwInt32 numVerts,
RwUInt32 stride) { VARJMP(var_rpD3D9VertexDeclarationInstColor); }
static void* varRwD3D9GetTransform = AddressByVersion<void*>(0x007FA4F0, 0x007FA4F0, 0x007FA4F0);
static void* varRwD3D9GetTransform = AddressByVersion<void*>(0x7FA4F0, 0x7FADF0, 0x8344B0);
WRAPPER void _RwD3D9GetTransform(RwUInt32 state, void* matrix) { VARJMP(varRwD3D9GetTransform); }
RwCamera* RwCameraBeginUpdate(RwCamera* camera)
@ -721,10 +717,8 @@ BOOL Initialise3D(void* pParam)
void SetShader(RxD3D9InstanceData* pInstData)
{
//GetAsyncKeyState(VK_F5) &&
if (bRenderNVC )
{
D3DMATRIX outMat;
float fEnvVars[2] = { m_fDNBalanceParam, RpMaterialGetColor(pInstData->material)->alpha * (1.0f/255.0f) };
RwRGBAReal* AmbientLight = RpLightGetColor(pAmbient);
@ -736,21 +730,20 @@ void SetShader(RxD3D9InstanceData* pInstData)
RwD3D9SetVertexShader(pNVCShader);
_rwD3D9VSSetActiveWorldMatrix(RwFrameGetLTM(RpAtomicGetFrame(pRenderedAtomic)));
//_rwD3D9VSSetActiveWorldMatrix(RwFrameGetLTM(RpAtomicGetFrame(pRenderedAtomic)));
//_rwD3D9VSSetActiveWorldMatrix(RwFrameGetMatrix(RpAtomicGetFrame(pRenderedAtomic)));
_rwD3D9VSGetComposedTransformMatrix(&outMat);
//_rwD3D9VSGetComposedTransformMatrix(&outMat);
D3DMATRIX worldMat, viewMat, projMat;
_RwD3D9GetTransform(D3DTS_WORLD, &worldMat);
_RwD3D9GetTransform(D3DTS_VIEW, &viewMat);
_RwD3D9GetTransform(D3DTS_PROJECTION, &projMat);
RwD3D9SetVertexShaderConstant(6, &worldMat, 4);
RwD3D9SetVertexShaderConstant(10, &viewMat, 4);
RwD3D9SetVertexShaderConstant(14, &projMat, 4);
RwD3D9SetVertexShaderConstant(2, &worldMat, 4);
RwD3D9SetVertexShaderConstant(6, &viewMat, 4);
RwD3D9SetVertexShaderConstant(10, &projMat, 4);
RwD3D9SetVertexShaderConstant(0, &outMat, 4);
RwD3D9SetVertexShaderConstant(4, fEnvVars, 1);
RwD3D9SetVertexShaderConstant(5, AmbientLight, 1);
RwD3D9SetVertexShaderConstant(0, fEnvVars, 1);
RwD3D9SetVertexShaderConstant(1, AmbientLight, 1);
}
else
RwD3D9SetVertexShader(pInstData->vertexShader);

View file

@ -13,24 +13,22 @@ struct VS_OUTPUT
float4 Color : COLOR0;
};
float4x4 viewProjMatrix : register(c0);
float2 fEnvVars : register(c4);
float4 AmbientLight : register(c5);
float4x4 world : register(c6);
float4x4 view : register(c10);
float4x4 proj : register(c14);
float2 fEnvVars : register(c0);
float4 AmbientLight : register(c1);
float4x4 world : register(c2);
float4x4 view : register(c6);
float4x4 proj : register(c10);
VS_OUTPUT NVC_vertex_shader( in VS_INPUT In )
{
VS_OUTPUT Out;
// Out.Position = mul(In.Position, viewProjMatrix);
Out.Position = mul(proj, mul(view, mul(world, In.Position)));
Out.Texture = In.Texture;
Out.Color.rgb = (In.DayColor.rgb * (1.0-fEnvVars[0]) + In.NightColor.rgb * fEnvVars[0]) + AmbientLight.rgb;
Out.Color.a = In.DayColor.a * (255.0/128.0) * fEnvVars[1];
//Out.Color.rgb = In.DayColor.rgb + AmbientLight.rgb;
Out.Color = lerp(In.DayColor, In.NightColor, fEnvVars[0]);
Out.Color.rgb += AmbientLight.rgb;
Out.Color.a *= (255.0/128.0) * fEnvVars[1];
Out.Color = saturate(Out.Color);
return Out;

View file

@ -1,6 +1,10 @@
#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16384
// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
//
// fxc /T vs_2_0 /E NVC_vertex_shader /Fh ..\SilentPatch\nvc.h
// ..\SilentPatch\nvc.fx
//
//
// Parameters:
//
@ -15,39 +19,39 @@
//
// Name Reg Size
// ------------ ----- ----
// fEnvVars c4 1
// AmbientLight c5 1
// world c6 4
// view c10 4
// proj c14 4
// fEnvVars c0 1
// AmbientLight c1 1
// world c2 4
// view c6 4
// proj c10 4
//
vs_2_0
def c0, 1, 0, 0, 0
def c14, 1.9921875, 0, 1, 0
dcl_position v0
dcl_texcoord v1
dcl_color v2
dcl_color1 v3
mul r0, v0.y, c7
mad r0, c6, v0.x, r0
mad r0, c8, v0.z, r0
mad r0, c9, v0.w, r0
mul r0, v0.y, c3
mad r0, c2, v0.x, r0
mad r0, c4, v0.z, r0
mad r0, c5, v0.w, r0
mul r1, r0.y, c7
mad r1, c6, r0.x, r1
mad r1, c8, r0.z, r1
mad r0, c9, r0.w, r1
mul r1, r0.y, c11
mad r1, c10, r0.x, r1
mad r1, c12, r0.z, r1
mad r0, c13, r0.w, r1
mul r1, r0.y, c15
mad r1, c14, r0.x, r1
mad r1, c16, r0.z, r1
mad oPos, c17, r0.w, r1
mov r0.x, c0.x
add r0.x, r0.x, -c4.x
mul r0.yzw, v2.xxyz, c4.x
mad r0.xyz, v3, r0.x, r0.yzww
add r0.xyz, r0, c5
mul r0.w, v3.w, c4.y
max r0, r0, c0.y
min oD0, r0, c0.x
mad oPos, c13, r0.w, r1
mov r0, v3
add r0, -r0, v2
mad r0, c0.x, r0, v3
mul r0.w, r0.w, c0.y
add r1.xyz, r0, c1
mul r1.w, r0.w, c14.x
max r0, r1, c14.y
min oD0, r0, c14.z
mov oT0.xy, v1
// approximately 21 instruction slots used
@ -62,21 +66,21 @@ const BYTE g_vs20_NVC_vertex_shader[] =
5, 0, 0, 0, 28, 0,
0, 0, 0, 1, 0, 0,
223, 0, 0, 0, 128, 0,
0, 0, 2, 0, 5, 0,
1, 0, 22, 0, 144, 0,
0, 0, 2, 0, 1, 0,
1, 0, 6, 0, 144, 0,
0, 0, 0, 0, 0, 0,
160, 0, 0, 0, 2, 0,
4, 0, 1, 0, 18, 0,
0, 0, 1, 0, 2, 0,
172, 0, 0, 0, 0, 0,
0, 0, 188, 0, 0, 0,
2, 0, 14, 0, 4, 0,
58, 0, 196, 0, 0, 0,
2, 0, 10, 0, 4, 0,
42, 0, 196, 0, 0, 0,
0, 0, 0, 0, 212, 0,
0, 0, 2, 0, 10, 0,
4, 0, 42, 0, 196, 0,
0, 0, 2, 0, 6, 0,
4, 0, 26, 0, 196, 0,
0, 0, 0, 0, 0, 0,
217, 0, 0, 0, 2, 0,
6, 0, 4, 0, 26, 0,
2, 0, 4, 0, 10, 0,
196, 0, 0, 0, 0, 0,
0, 0, 65, 109, 98, 105,
101, 110, 116, 76, 105, 103,
@ -101,12 +105,12 @@ const BYTE g_vs20_NVC_vertex_shader[] =
83, 76, 32, 83, 104, 97,
100, 101, 114, 32, 67, 111,
109, 112, 105, 108, 101, 114,
32, 54, 46, 51, 46, 57,
54, 48, 48, 46, 49, 54,
51, 56, 52, 0, 81, 0,
0, 5, 0, 0, 15, 160,
0, 0, 128, 63, 0, 0,
0, 0, 0, 0, 0, 0,
32, 57, 46, 50, 57, 46,
57, 53, 50, 46, 51, 49,
49, 49, 0, 171, 81, 0,
0, 5, 14, 0, 15, 160,
0, 0, 255, 63, 0, 0,
0, 0, 0, 0, 128, 63,
0, 0, 0, 0, 31, 0,
0, 2, 0, 0, 0, 128,
0, 0, 15, 144, 31, 0,
@ -117,64 +121,64 @@ const BYTE g_vs20_NVC_vertex_shader[] =
0, 2, 10, 0, 1, 128,
3, 0, 15, 144, 5, 0,
0, 3, 0, 0, 15, 128,
0, 0, 85, 144, 7, 0,
0, 0, 85, 144, 3, 0,
228, 160, 4, 0, 0, 4,
0, 0, 15, 128, 6, 0,
0, 0, 15, 128, 2, 0,
228, 160, 0, 0, 0, 144,
0, 0, 228, 128, 4, 0,
0, 4, 0, 0, 15, 128,
8, 0, 228, 160, 0, 0,
4, 0, 228, 160, 0, 0,
170, 144, 0, 0, 228, 128,
4, 0, 0, 4, 0, 0,
15, 128, 9, 0, 228, 160,
15, 128, 5, 0, 228, 160,
0, 0, 255, 144, 0, 0,
228, 128, 5, 0, 0, 3,
1, 0, 15, 128, 0, 0,
85, 128, 11, 0, 228, 160,
85, 128, 7, 0, 228, 160,
4, 0, 0, 4, 1, 0,
15, 128, 10, 0, 228, 160,
15, 128, 6, 0, 228, 160,
0, 0, 0, 128, 1, 0,
228, 128, 4, 0, 0, 4,
1, 0, 15, 128, 12, 0,
1, 0, 15, 128, 8, 0,
228, 160, 0, 0, 170, 128,
1, 0, 228, 128, 4, 0,
0, 4, 0, 0, 15, 128,
13, 0, 228, 160, 0, 0,
9, 0, 228, 160, 0, 0,
255, 128, 1, 0, 228, 128,
5, 0, 0, 3, 1, 0,
15, 128, 0, 0, 85, 128,
15, 0, 228, 160, 4, 0,
11, 0, 228, 160, 4, 0,
0, 4, 1, 0, 15, 128,
14, 0, 228, 160, 0, 0,
10, 0, 228, 160, 0, 0,
0, 128, 1, 0, 228, 128,
4, 0, 0, 4, 1, 0,
15, 128, 16, 0, 228, 160,
15, 128, 12, 0, 228, 160,
0, 0, 170, 128, 1, 0,
228, 128, 4, 0, 0, 4,
0, 0, 15, 192, 17, 0,
0, 0, 15, 192, 13, 0,
228, 160, 0, 0, 255, 128,
1, 0, 228, 128, 1, 0,
0, 2, 0, 0, 1, 128,
0, 0, 0, 160, 2, 0,
0, 3, 0, 0, 1, 128,
0, 0, 0, 128, 4, 0,
0, 161, 5, 0, 0, 3,
0, 0, 14, 128, 2, 0,
144, 144, 4, 0, 0, 160,
4, 0, 0, 4, 0, 0,
7, 128, 3, 0, 228, 144,
0, 0, 0, 128, 0, 0,
249, 128, 2, 0, 0, 3,
0, 0, 7, 128, 0, 0,
228, 128, 5, 0, 228, 160,
5, 0, 0, 3, 0, 0,
8, 128, 3, 0, 255, 144,
4, 0, 85, 160, 11, 0,
0, 2, 0, 0, 15, 128,
3, 0, 228, 144, 2, 0,
0, 3, 0, 0, 15, 128,
0, 0, 228, 128, 0, 0,
0, 0, 228, 129, 2, 0,
228, 144, 4, 0, 0, 4,
0, 0, 15, 128, 0, 0,
0, 160, 0, 0, 228, 128,
3, 0, 228, 144, 5, 0,
0, 3, 0, 0, 8, 128,
0, 0, 255, 128, 0, 0,
85, 160, 2, 0, 0, 3,
1, 0, 7, 128, 0, 0,
228, 128, 1, 0, 228, 160,
5, 0, 0, 3, 1, 0,
8, 128, 0, 0, 255, 128,
14, 0, 0, 160, 11, 0,
0, 3, 0, 0, 15, 128,
1, 0, 228, 128, 14, 0,
85, 160, 10, 0, 0, 3,
0, 0, 15, 208, 0, 0,
228, 128, 0, 0, 0, 160,
228, 128, 14, 0, 170, 160,
1, 0, 0, 2, 0, 0,
3, 224, 1, 0, 228, 144,
255, 255, 0, 0