From f9d2d42a4c44459d391d5e48060f6b0aa303c5e9 Mon Sep 17 00:00:00 2001 From: Tillmann Karras Date: Sun, 15 Aug 2021 04:36:08 +0100 Subject: 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). --- Source/Core/VideoCommon/XFStructs.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'Source/Core/VideoCommon/XFStructs.cpp') 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; -- cgit v1.2.3