IOS/WD: Report game quirk if unimplemented ioctl is used

Lets us find games to test more easily.
This commit is contained in:
Léo Lam 2020-12-15 18:42:12 +01:00
parent 9a87d27612
commit 9b3cdd0645
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
3 changed files with 7 additions and 3 deletions

View File

@ -133,7 +133,7 @@ void DolphinAnalytics::ReportGameStart()
} }
// Keep in sync with enum class GameQuirk definition. // Keep in sync with enum class GameQuirk definition.
constexpr std::array<const char*, 13> GAME_QUIRKS_NAMES{"icache-matters", constexpr std::array<const char*, 14> GAME_QUIRKS_NAMES{"icache-matters",
"directly-reads-wiimote-input", "directly-reads-wiimote-input",
"uses-DVDLowStopLaser", "uses-DVDLowStopLaser",
"uses-DVDLowOffset", "uses-DVDLowOffset",
@ -145,7 +145,8 @@ constexpr std::array<const char*, 13> GAME_QUIRKS_NAMES{"icache-matters",
"uses-di-interrupt-command", "uses-di-interrupt-command",
"mismatched-gpu-texgens-between-xf-and-bp", "mismatched-gpu-texgens-between-xf-and-bp",
"mismatched-gpu-colors-between-xf-and-bp", "mismatched-gpu-colors-between-xf-and-bp",
"uses-uncommon-wd-mode"}; "uses-uncommon-wd-mode",
"uses-wd-unimplemented-ioctl"};
static_assert(GAME_QUIRKS_NAMES.size() == static_cast<u32>(GameQuirk::COUNT), static_assert(GAME_QUIRKS_NAMES.size() == static_cast<u32>(GameQuirk::COUNT),
"Game quirks names and enum definition are out of sync."); "Game quirks names and enum definition are out of sync.");

View File

@ -59,6 +59,8 @@ enum class GameQuirk
// are used by games and the system menu respectively. // are used by games and the system menu respectively.
USES_UNCOMMON_WD_MODE, USES_UNCOMMON_WD_MODE,
USES_WD_UNIMPLEMENTED_IOCTL,
COUNT, COUNT,
}; };

View File

@ -377,7 +377,8 @@ IPCCommandResult NetWDCommand::IOCtlV(const IOCtlVRequest& request)
case IOCTLV_WD_CHANGE_GAMEINFO: case IOCTLV_WD_CHANGE_GAMEINFO:
case IOCTLV_WD_CHANGE_VTSF: case IOCTLV_WD_CHANGE_VTSF:
default: default:
request.Dump(GetDeviceName(), Common::Log::IOS_NET, Common::Log::LINFO); DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_WD_UNIMPLEMENTED_IOCTL);
request.Dump(GetDeviceName(), Common::Log::IOS_NET, Common::Log::LWARNING);
} }
return GetDefaultReply(IPC_SUCCESS); return GetDefaultReply(IPC_SUCCESS);