summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/XFStructs.cpp
diff options
context:
space:
mode:
authorTillmann Karras <tilkax@gmail.com>2021-08-15 04:36:08 +0100
committerTillmann Karras <tilkax@gmail.com>2021-08-15 04:41:49 +0100
commitf9d2d42a4c44459d391d5e48060f6b0aa303c5e9 (patch)
tree0ce619a9e06862d81e3fe8203b3fe18f1e1d585e /Source/Core/VideoCommon/XFStructs.cpp
parentfd8a818a93427c5aab34931edaf548e33e8f9fc8 (diff)
VideoCommon: report games that set bits in XFMEM_CLIPDISABLE
The SDK only exposes the lowest bit. The Nintendo Channel intro is currently broken because we don't implement this (see issue 12562).
Diffstat (limited to 'Source/Core/VideoCommon/XFStructs.cpp')
-rw-r--r--Source/Core/VideoCommon/XFStructs.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/Source/Core/VideoCommon/XFStructs.cpp b/Source/Core/VideoCommon/XFStructs.cpp
index ce763ada69..ebf9e8efab 100644
--- a/Source/Core/VideoCommon/XFStructs.cpp
+++ b/Source/Core/VideoCommon/XFStructs.cpp
@@ -48,10 +48,16 @@ static void XFRegWritten(int transferSize, u32 baseAddress, DataReader src)
break;
case XFMEM_CLIPDISABLE:
- // if (data & 1) {} // disable clipping detection
- // if (data & 2) {} // disable trivial rejection
- // if (data & 4) {} // disable cpoly clipping acceleration
+ {
+ ClipDisable setting{.hex = newValue};
+ if (setting.disable_clipping_detection)
+ DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::SETS_XF_CLIPDISABLE_BIT_0);
+ if (setting.disable_trivial_rejection)
+ DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::SETS_XF_CLIPDISABLE_BIT_1);
+ if (setting.disable_cpoly_clipping_acceleration)
+ DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::SETS_XF_CLIPDISABLE_BIT_2);
break;
+ }
case XFMEM_VTXSPECS: //__GXXfVtxSpecs, wrote 0004
break;