diff options
| author | Pokechu22 <Pokechu022@gmail.com> | 2023-05-06 17:18:17 -0700 |
|---|---|---|
| committer | Pokechu22 <Pokechu022@gmail.com> | 2023-05-06 17:18:17 -0700 |
| commit | 810eb70f0ec94bf2d1de5cbff52ddc04551fb227 (patch) | |
| tree | 1c31d312791d28effe32e505e56d072b9e0452f7 /Source | |
| parent | 2319210d853899a4d0659c120cfa6162a108daed (diff) | |
DolphinAnalytics: Add READS_BOUNDING_BOX game quirk
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Core/DolphinAnalytics.cpp | 3 | ||||
| -rw-r--r-- | Source/Core/Core/DolphinAnalytics.h | 5 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/VideoBackendBase.cpp | 3 |
3 files changed, 10 insertions, 1 deletions
diff --git a/Source/Core/Core/DolphinAnalytics.cpp b/Source/Core/Core/DolphinAnalytics.cpp index b999b55e2a..4edb936343 100644 --- a/Source/Core/Core/DolphinAnalytics.cpp +++ b/Source/Core/Core/DolphinAnalytics.cpp @@ -136,7 +136,7 @@ void DolphinAnalytics::ReportGameStart() } // Keep in sync with enum class GameQuirk definition. -constexpr std::array<const char*, 27> GAME_QUIRKS_NAMES{ +constexpr std::array<const char*, 28> GAME_QUIRKS_NAMES{ "directly-reads-wiimote-input", "uses-DVDLowStopLaser", "uses-DVDLowOffset", @@ -164,6 +164,7 @@ constexpr std::array<const char*, 27> GAME_QUIRKS_NAMES{ "mismatched-gpu-normals-between-cp-and-xf", "mismatched-gpu-tex-coords-between-cp-and-xf", "mismatched-gpu-matrix-indices-between-cp-and-xf", + "reads-bounding-box", }; static_assert(GAME_QUIRKS_NAMES.size() == static_cast<u32>(GameQuirk::COUNT), "Game quirks names and enum definition are out of sync."); diff --git a/Source/Core/Core/DolphinAnalytics.h b/Source/Core/Core/DolphinAnalytics.h index 98c7d4a973..76e69f49c2 100644 --- a/Source/Core/Core/DolphinAnalytics.h +++ b/Source/Core/Core/DolphinAnalytics.h @@ -89,6 +89,11 @@ enum class GameQuirk // but testing is needed to find out which of these is actually used for what. MISMATCHED_GPU_MATRIX_INDICES_BETWEEN_CP_AND_XF, + // Only a few games use the Bounding Box feature. Note that every game initializes the bounding + // box registers (using BPMEM_CLEARBBOX1/BPMEM_CLEARBBOX2) on startup, as part of the SDK, but + // only a few read them (from PE_BBOX_LEFT etc.) + READS_BOUNDING_BOX, + COUNT, }; diff --git a/Source/Core/VideoCommon/VideoBackendBase.cpp b/Source/Core/VideoCommon/VideoBackendBase.cpp index b6f4fee2f3..9d6ff70664 100644 --- a/Source/Core/VideoCommon/VideoBackendBase.cpp +++ b/Source/Core/VideoCommon/VideoBackendBase.cpp @@ -20,6 +20,7 @@ #include "Core/Config/MainSettings.h" #include "Core/ConfigManager.h" #include "Core/Core.h" +#include "Core/DolphinAnalytics.h" #include "Core/System.h" // TODO: ugly @@ -171,6 +172,8 @@ u32 VideoBackendBase::Video_GetQueryResult(PerfQueryType type) u16 VideoBackendBase::Video_GetBoundingBox(int index) { + DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::READS_BOUNDING_BOX); + if (!g_ActiveConfig.bBBoxEnable) { static bool warn_once = true; |
