diff --git a/Source/Core/VideoCommon/VertexShaderGen.cpp b/Source/Core/VideoCommon/VertexShaderGen.cpp index c613e237d0..313d1bc5f7 100644 --- a/Source/Core/VideoCommon/VertexShaderGen.cpp +++ b/Source/Core/VideoCommon/VertexShaderGen.cpp @@ -227,9 +227,7 @@ static T GenerateVertexShader(API_TYPE api_type) out.Write("coord = float4(tex%d.x, tex%d.y, 1.0, 1.0);\n", texinfo.sourcerow - XF_SRCTEX0_INROW, texinfo.sourcerow - XF_SRCTEX0_INROW); break; } - // An input form other than ABC1 or AB11 doesn't exist - // But the hardware has it as a two bit field - _assert_(texinfo.inputform == XF_TEXINPUT_ABC1 || texinfo.inputform == XF_TEXINPUT_AB11); + // Input form of AB11 sets z element to 1.0 uid_data->texMtxInfo[i].inputform = xfmem.texMtxInfo[i].inputform; if (texinfo.inputform == XF_TEXINPUT_AB11) out.Write("coord.z = 1.0;\n"); diff --git a/Source/Core/VideoCommon/XFMemory.h b/Source/Core/VideoCommon/XFMemory.h index 006383df89..99d01f2d45 100644 --- a/Source/Core/VideoCommon/XFMemory.h +++ b/Source/Core/VideoCommon/XFMemory.h @@ -178,7 +178,8 @@ union TexMtxInfo { u32 unknown : 1; u32 projection : 1; // XF_TEXPROJ_X - u32 inputform : 2; // XF_TEXINPUT_X + u32 inputform : 1; // XF_TEXINPUT_X + u32 unknown2 : 1; u32 texgentype : 3; // XF_TEXGEN_X u32 sourcerow : 5; // XF_SRCGEOM_X u32 embosssourceshift : 3; // what generated texcoord to use