Track and log CP commands 0x00/0x10/0x20 differently from other unknown commands

They appear to relate to perf queries, and combining them with truely unknown commands would probably hide useful information.  Furthermore, 0x20 is issued by every title, so without this every title would be recorded as using an unknown command, which is very unhelpful.
This commit is contained in:
Pokechu22
2021-03-26 19:37:51 -07:00
parent 193f6a67a7
commit cde6cf2ab5
4 changed files with 24 additions and 1 deletions

View File

@ -133,7 +133,7 @@ void DolphinAnalytics::ReportGameStart()
}
// Keep in sync with enum class GameQuirk definition.
constexpr std::array<const char*, 18> GAME_QUIRKS_NAMES{
constexpr std::array<const char*, 19> GAME_QUIRKS_NAMES{
"icache-matters",
"directly-reads-wiimote-input",
"uses-DVDLowStopLaser",
@ -152,6 +152,7 @@ constexpr std::array<const char*, 18> GAME_QUIRKS_NAMES{
"uses-unknown-cp-command",
"uses-unknown-xf-command",
"uses-maybe-invalid-cp-command",
"uses-cp-perf-command",
};
static_assert(GAME_QUIRKS_NAMES.size() == static_cast<u32>(GameQuirk::COUNT),
"Game quirks names and enum definition are out of sync.");

View File

@ -69,6 +69,9 @@ enum class GameQuirk
USES_UNKNOWN_XF_COMMAND,
// YAGCD and Dolphin's implementation disagree about what is valid in some cases
USES_MAYBE_INVALID_CP_COMMAND,
// These commands are used by a few games (e.g. bug 12461), and seem to relate to perf queries.
// Track them separately.
USES_CP_PERF_COMMAND,
COUNT,
};