diff --git a/Source/Core/Core/DolphinAnalytics.cpp b/Source/Core/Core/DolphinAnalytics.cpp index cc74b4d8af..5f54420013 100644 --- a/Source/Core/Core/DolphinAnalytics.cpp +++ b/Source/Core/Core/DolphinAnalytics.cpp @@ -137,7 +137,7 @@ void DolphinAnalytics::ReportGameStart() } // Keep in sync with enum class GameQuirk definition. -constexpr std::array GAME_QUIRKS_NAMES{ +constexpr std::array GAME_QUIRKS_NAMES{ "directly-reads-wiimote-input", "uses-DVDLowStopLaser", "uses-DVDLowOffset", @@ -158,6 +158,8 @@ constexpr std::array GAME_QUIRKS_NAMES{ "uses-cp-perf-command", "uses-unimplemented-ax-command", "uses-ax-initial-time-delay", + "uses-ax-wiimote-lowpass", + "uses-ax-wiimote-biquad", "sets-xf-clipdisable-bit-0", "sets-xf-clipdisable-bit-1", "sets-xf-clipdisable-bit-2", diff --git a/Source/Core/Core/DolphinAnalytics.h b/Source/Core/Core/DolphinAnalytics.h index b200bf8ea4..83a5a45822 100644 --- a/Source/Core/Core/DolphinAnalytics.h +++ b/Source/Core/Core/DolphinAnalytics.h @@ -72,6 +72,8 @@ enum class GameQuirk // We don't implement all AX features yet. USES_UNIMPLEMENTED_AX_COMMAND, USES_AX_INITIAL_TIME_DELAY, + USES_AX_WIIMOTE_LOWPASS, + USES_AX_WIIMOTE_BIQUAD, // We don't implement XFMEM_CLIPDISABLE yet. SETS_XF_CLIPDISABLE_BIT_0, diff --git a/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h b/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h index 59813ac229..ad491196e2 100644 --- a/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h +++ b/Source/Core/Core/HW/DSPHLE/UCodes/AXVoice.h @@ -567,10 +567,12 @@ void ProcessVoice(HLEAccelerator* accelerator, PB_TYPE& pb, const AXBuffers& buf // Only one filter at most for Wiimotes. if (pb.remote_iir.on == 2) { + DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_AX_WIIMOTE_BIQUAD); BiquadFilter(samples, count, pb.remote_iir.biquad); } else { + DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_AX_WIIMOTE_LOWPASS); LowPassFilter(samples, count, pb.remote_iir.lpf); } }