summaryrefslogtreecommitdiffstats
path: root/src/video_core/command_processor.cpp
diff options
context:
space:
mode:
authorwwylele <wwylele@gmail.com>2017-04-17 09:01:45 +0200
committerwwylele <wwylele@gmail.com>2017-05-20 12:50:50 +0200
commitade45b5b9930b52b6a1d399306539073e8e2196d (patch)
tree19fc2c287591990b796530c383a1153f4b8fcda5 /src/video_core/command_processor.cpp
parentMerge pull request #2696 from Subv/vfp_revert (diff)
downloadyuzu-ade45b5b9930b52b6a1d399306539073e8e2196d.tar
yuzu-ade45b5b9930b52b6a1d399306539073e8e2196d.tar.gz
yuzu-ade45b5b9930b52b6a1d399306539073e8e2196d.tar.bz2
yuzu-ade45b5b9930b52b6a1d399306539073e8e2196d.tar.lz
yuzu-ade45b5b9930b52b6a1d399306539073e8e2196d.tar.xz
yuzu-ade45b5b9930b52b6a1d399306539073e8e2196d.tar.zst
yuzu-ade45b5b9930b52b6a1d399306539073e8e2196d.zip
Diffstat (limited to 'src/video_core/command_processor.cpp')
-rw-r--r--src/video_core/command_processor.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/video_core/command_processor.cpp b/src/video_core/command_processor.cpp
index 2e32ff905..49a93e980 100644
--- a/src/video_core/command_processor.cpp
+++ b/src/video_core/command_processor.cpp
@@ -458,6 +458,37 @@ static void WritePicaReg(u32 id, u32 value, u32 mask) {
break;
}
+ case PICA_REG_INDEX_WORKAROUND(texturing.proctex_lut_data[0], 0xb0):
+ case PICA_REG_INDEX_WORKAROUND(texturing.proctex_lut_data[1], 0xb1):
+ case PICA_REG_INDEX_WORKAROUND(texturing.proctex_lut_data[2], 0xb2):
+ case PICA_REG_INDEX_WORKAROUND(texturing.proctex_lut_data[3], 0xb3):
+ case PICA_REG_INDEX_WORKAROUND(texturing.proctex_lut_data[4], 0xb4):
+ case PICA_REG_INDEX_WORKAROUND(texturing.proctex_lut_data[5], 0xb5):
+ case PICA_REG_INDEX_WORKAROUND(texturing.proctex_lut_data[6], 0xb6):
+ case PICA_REG_INDEX_WORKAROUND(texturing.proctex_lut_data[7], 0xb7): {
+ auto& index = regs.texturing.proctex_lut_config.index;
+ auto& pt = g_state.proctex;
+
+ switch (regs.texturing.proctex_lut_config.ref_table.Value()) {
+ case TexturingRegs::ProcTexLutTable::Noise:
+ pt.noise_table[index % pt.noise_table.size()].raw = value;
+ break;
+ case TexturingRegs::ProcTexLutTable::ColorMap:
+ pt.color_map_table[index % pt.color_map_table.size()].raw = value;
+ break;
+ case TexturingRegs::ProcTexLutTable::AlphaMap:
+ pt.alpha_map_table[index % pt.alpha_map_table.size()].raw = value;
+ break;
+ case TexturingRegs::ProcTexLutTable::Color:
+ pt.color_table[index % pt.color_table.size()].raw = value;
+ break;
+ case TexturingRegs::ProcTexLutTable::ColorDiff:
+ pt.color_diff_table[index % pt.color_diff_table.size()].raw = value;
+ break;
+ }
+ index.Assign(index + 1);
+ break;
+ }
default:
break;
}