summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexLoaderManager.cpp
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2021-03-26 19:29:55 -0700
committerPokechu22 <Pokechu022@gmail.com>2021-04-06 11:54:48 -0700
commit193f6a67a7c3a59ccc7980392bdeb6476720356a (patch)
treee633e6bd052874dd4b09dd492c95de53087fcd0d /Source/Core/VideoCommon/VertexLoaderManager.cpp
parent7fe1292c62621e80c061c8f017efa2e07f1a064b (diff)
Log a warning for inexact uses of MATINDEX or VCD commands
Diffstat (limited to 'Source/Core/VideoCommon/VertexLoaderManager.cpp')
-rw-r--r--Source/Core/VideoCommon/VertexLoaderManager.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/VertexLoaderManager.cpp b/Source/Core/VideoCommon/VertexLoaderManager.cpp
index a5088cef3a..33e340cfd3 100644
--- a/Source/Core/VideoCommon/VertexLoaderManager.cpp
+++ b/Source/Core/VideoCommon/VertexLoaderManager.cpp
@@ -325,7 +325,13 @@ void LoadCPReg(u32 sub_cmd, u32 value, bool is_preprocess)
{
case MATINDEX_A:
if (sub_cmd != MATINDEX_A)
+ {
DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
+ WARN_LOG_FMT(VIDEO,
+ "CP MATINDEX_A: an exact value of {:02x} was expected "
+ "but instead a value of {:02x} was seen",
+ MATINDEX_A, sub_cmd);
+ }
if (update_global_state)
VertexShaderManager::SetTexMatrixChangedA(value);
@@ -333,7 +339,13 @@ void LoadCPReg(u32 sub_cmd, u32 value, bool is_preprocess)
case MATINDEX_B:
if (sub_cmd != MATINDEX_B)
+ {
DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
+ WARN_LOG_FMT(VIDEO,
+ "CP MATINDEX_B: an exact value of {:02x} was expected "
+ "but instead a value of {:02x} was seen",
+ MATINDEX_B, sub_cmd);
+ }
if (update_global_state)
VertexShaderManager::SetTexMatrixChangedB(value);
@@ -341,7 +353,13 @@ void LoadCPReg(u32 sub_cmd, u32 value, bool is_preprocess)
case VCD_LO:
if (sub_cmd != VCD_LO) // Stricter than YAGCD
+ {
DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
+ WARN_LOG_FMT(VIDEO,
+ "CP VCD_LO: an exact value of {:02x} was expected "
+ "but instead a value of {:02x} was seen",
+ VCD_LO, sub_cmd);
+ }
state->vtx_desc.low.Hex = value;
state->attr_dirty = BitSet32::AllTrue(CP_NUM_VAT_REG);
@@ -350,7 +368,13 @@ void LoadCPReg(u32 sub_cmd, u32 value, bool is_preprocess)
case VCD_HI:
if (sub_cmd != VCD_HI) // Stricter than YAGCD
+ {
DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_MAYBE_INVALID_CP_COMMAND);
+ WARN_LOG_FMT(VIDEO,
+ "CP VCD_HI: an exact value of {:02x} was expected "
+ "but instead a value of {:02x} was seen",
+ VCD_HI, sub_cmd);
+ }
state->vtx_desc.high.Hex = value;
state->attr_dirty = BitSet32::AllTrue(CP_NUM_VAT_REG);