void DecodedMuxForSemiPixelShader::Reset(void) { Decode(m_dwMux0, m_dwMux1); splitType[0] = CM_FMT_TYPE_NOT_CHECKED; splitType[1] = CM_FMT_TYPE_NOT_CHECKED; splitType[2] = CM_FMT_TYPE_NOT_CHECKED; splitType[3] = CM_FMT_TYPE_NOT_CHECKED; Hack(); gRSP.bProcessDiffuseColor = false; gRSP.bProcessSpecularColor = false; CheckCombineInCycle1(); if( g_curRomInfo.bTexture1Hack ) { ReplaceVal(MUX_TEXEL1,MUX_TEXEL0,2); ReplaceVal(MUX_TEXEL1,MUX_TEXEL0,3); } m_bTexel0IsUsed = isUsed(MUX_TEXEL0); m_bTexel1IsUsed = isUsed(MUX_TEXEL1); }
void DecodedMux::Simplify(void) { CheckCombineInCycle1(); if (gRDP.otherMode.text_lod) ConvertLODFracTo0(); if (g_curRomInfo.bTexture1Hack) { ReplaceVal(MUX_TEXEL1, MUX_TEXEL0, 2, MUX_MASK); ReplaceVal(MUX_TEXEL1, MUX_TEXEL0, 3, MUX_MASK); } Reformat(true); UseShadeForConstant(); Reformat(true); if (m_dwShadeColorChannelFlag == MUX_0) { MergeShadeWithConstants(); Reformat(true); } #ifdef ALLOW_USE_TEXTURE_FOR_CONSTANTS UseTextureForConstant(); for (int i=0; i<2; i++) { if (m_ColorTextureFlag[i] != 0) { if (m_dwShadeColorChannelFlag == m_ColorTextureFlag[i]) { ReplaceVal(MUX_SHADE, MUX_TEXEL0+i, N64Cycle0RGB, MUX_MASK); ReplaceVal(MUX_SHADE, MUX_TEXEL0+i, N64Cycle1RGB, MUX_MASK); m_dwShadeColorChannelFlag = 0; } if (m_dwShadeAlphaChannelFlag == m_ColorTextureFlag[i]) { ReplaceVal(MUX_SHADE, MUX_TEXEL0+i, N64Cycle0Alpha, MUX_MASK); ReplaceVal(MUX_SHADE, MUX_TEXEL0+i, N64Cycle1Alpha, MUX_MASK); ReplaceVal(MUX_SHADE|MUX_ALPHAREPLICATE, (MUX_TEXEL0+i)|MUX_ALPHAREPLICATE, N64Cycle0RGB, MUX_MASK_WITH_ALPHA); ReplaceVal(MUX_SHADE|MUX_ALPHAREPLICATE, (MUX_TEXEL0+i)|MUX_ALPHAREPLICATE, N64Cycle1RGB, MUX_MASK_WITH_ALPHA); m_dwShadeAlphaChannelFlag = 0; } } } Reformat(true); #endif m_bTexel0IsUsed = IsUsed(MUX_TEXEL0, MUX_MASK); m_bTexel1IsUsed = IsUsed(MUX_TEXEL1, MUX_MASK); }
void DecodedMuxForOGL14V2::Simplify(void) { CheckCombineInCycle1(); if( g_curRomInfo.bTexture1Hack ) { ReplaceVal(MUX_TEXEL1,MUX_TEXEL0,2); ReplaceVal(MUX_TEXEL1,MUX_TEXEL0,3); } Reformat(); UseTextureForConstant(); Reformat(); m_bTexel0IsUsed = isUsed(MUX_TEXEL0); m_bTexel1IsUsed = isUsed(MUX_TEXEL1); }
void DecodedMuxForPixelShader::Simplify(void) { CheckCombineInCycle1(); //Reformat(); if( g_curRomInfo.bTexture1Hack ) { ReplaceVal(MUX_TEXEL1,MUX_TEXEL0,2); ReplaceVal(MUX_TEXEL1,MUX_TEXEL0,3); } splitType[0] = CM_FMT_TYPE_NOT_USED; splitType[1] = CM_FMT_TYPE_NOT_USED; splitType[2] = CM_FMT_TYPE_NOT_USED; splitType[3] = CM_FMT_TYPE_NOT_USED; mType = CM_FMT_TYPE_NOT_USED; m_bTexel0IsUsed = isUsed(MUX_TEXEL0); m_bTexel1IsUsed = isUsed(MUX_TEXEL1); }