diff --git a/gfx/shader_hlsl.c b/gfx/shader_hlsl.c
index 02232da600..dc7ec7484f 100644
--- a/gfx/shader_hlsl.c
+++ b/gfx/shader_hlsl.c
@@ -105,11 +105,13 @@ void hlsl_set_params(unsigned width, unsigned height,
set_param_2f(prg[active_index].tex_size_f, tex_size, prg[active_index].f_ctable);
set_param_2f(prg[active_index].out_size_f, out_size, prg[active_index].f_ctable);
set_param_1f(prg[active_index].frame_cnt_f, (float)frame_count, prg[active_index].f_ctable);
+ set_param_1f(prg[active_index].frame_dir_f, g_extern.frame_is_reverse ? -1.0 : 1.0,prg[active_index].f_ctable);
set_param_2f(prg[active_index].vid_size_v, ori_size, prg[active_index].v_ctable);
set_param_2f(prg[active_index].tex_size_v, tex_size, prg[active_index].v_ctable);
set_param_2f(prg[active_index].out_size_v, out_size, prg[active_index].v_ctable);
set_param_1f(prg[active_index].frame_cnt_v, (float)frame_count, prg[active_index].v_ctable);
+ set_param_1f(prg[active_index].frame_dir_v, g_extern.frame_is_reverse ? -1.0 : 1.0,prg[active_index].v_ctable);
/* TODO: Move to D3DXMATRIX here */
prg[active_index].v_ctable->SetMatrix(d3d_device_ptr, prg[active_index].mvp, (D3DXMATRIX*)&prg[active_index].mvp_val);
@@ -135,17 +137,17 @@ static bool load_program(unsigned index, const char *prog, bool path_is_file)
if (path_is_file)
{
ret_fp = D3DXCompileShaderFromFile(prog, NULL, NULL,
- "main_fragment", "ps_2_0", 0, &code_f, &listing_f, &prg[index].f_ctable);
+ "main_fragment", "ps_3_0", 0, &code_f, &listing_f, &prg[index].f_ctable);
ret_vp = D3DXCompileShaderFromFile(prog, NULL, NULL,
- "main_vertex", "vs_2_0", 0, &code_v, &listing_v, &prg[index].v_ctable);
+ "main_vertex", "vs_3_0", 0, &code_v, &listing_v, &prg[index].v_ctable);
}
else
{
/* TODO - crashes currently - to do with 'end of line' of stock shader */
ret_fp = D3DXCompileShader(prog, (UINT)strlen(prog), NULL, NULL,
- "main_fragment", "ps_2_0", 0, &code_f, &listing_f, &prg[index].f_ctable );
+ "main_fragment", "ps_3_0", 0, &code_f, &listing_f, &prg[index].f_ctable );
ret_vp = D3DXCompileShader(prog, (UINT)strlen(prog), NULL, NULL,
- "main_vertex", "vs_2_0", 0, &code_v, &listing_v, &prg[index].v_ctable );
+ "main_vertex", "vs_3_0", 0, &code_v, &listing_v, &prg[index].v_ctable );
}
if (FAILED(ret_fp) || FAILED(ret_vp) || listing_v || listing_f)
@@ -231,16 +233,27 @@ static bool load_preset(const char *path)
static void set_program_attributes(unsigned i)
{
+ SSNES_LOG("Fragment: IN.video_size.\n");
prg[i].vid_size_f = prg[i].f_ctable->GetConstantByName(NULL, "$IN.video_size");
+ SSNES_LOG("Fragment: IN.texture_size.\n");
prg[i].tex_size_f = prg[i].f_ctable->GetConstantByName(NULL, "$IN.texture_size");
+ SSNES_LOG("Fragment: IN.output_size.\n");
prg[i].out_size_f = prg[i].f_ctable->GetConstantByName(NULL, "$IN.output_size");
+ SSNES_LOG("Fragment: IN.frame_count.\n");
prg[i].frame_cnt_f = prg[i].f_ctable->GetConstantByName(NULL, "$IN.frame_count");
+ SSNES_LOG("Fragment: IN.frame_direction.\n");
prg[i].frame_dir_f = prg[i].f_ctable->GetConstantByName(NULL, "$IN.frame_direction");
+ SSNES_LOG("Vertex: IN.video_size.\n");
prg[i].vid_size_v = prg[i].v_ctable->GetConstantByName(NULL, "$IN.video_size");
+ SSNES_LOG("Vertex: IN.texture_size.\n");
prg[i].tex_size_v = prg[i].v_ctable->GetConstantByName(NULL, "$IN.texture_size");
+ SSNES_LOG("Vertex: IN.output_size.\n");
prg[i].out_size_v = prg[i].v_ctable->GetConstantByName(NULL, "$IN.output_size");
+ SSNES_LOG("Vertex: IN.frame_count.\n");
prg[i].frame_cnt_v = prg[i].v_ctable->GetConstantByName(NULL, "$IN.frame_count");
+ SSNES_LOG("Vertex: IN.frame_direction.\n");
prg[i].frame_dir_v = prg[i].v_ctable->GetConstantByName(NULL, "$IN.frame_direction");
+ SSNES_LOG("Vertex: modelViewProj.\n");
prg[i].mvp = prg[i].v_ctable->GetConstantByName(NULL, "$modelViewProj");
}
diff --git a/msvc-360/SSNES-360/SSNES-360.vcxproj b/msvc-360/SSNES-360/SSNES-360.vcxproj
index cb7db39155..8750205da1 100644
--- a/msvc-360/SSNES-360/SSNES-360.vcxproj
+++ b/msvc-360/SSNES-360/SSNES-360.vcxproj
@@ -562,6 +562,12 @@
copy %(FullPath) $(OutDir)media\shaders\stock.cg
copy %(FullPath) $(OutDir)media\shaders\stock.cg
copy %(FullPath) $(OutDir)media\shaders\stock.cg
+ true
+ true
+ true
+ true
+ true
+ true