DSPHLE: report games that use unimplemented AX features

Not including GC DPL2 mixing here since it's easy to find games that use it.
This commit is contained in:
Tillmann Karras 2021-08-01 03:40:06 +01:00
parent 627832355e
commit f45bb89e97
4 changed files with 11 additions and 1 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*, 19> GAME_QUIRKS_NAMES{ constexpr std::array<const char*, 21> GAME_QUIRKS_NAMES{
"icache-matters", "icache-matters",
"directly-reads-wiimote-input", "directly-reads-wiimote-input",
"uses-DVDLowStopLaser", "uses-DVDLowStopLaser",
@ -153,6 +153,8 @@ constexpr std::array<const char*, 19> GAME_QUIRKS_NAMES{
"uses-unknown-xf-command", "uses-unknown-xf-command",
"uses-maybe-invalid-cp-command", "uses-maybe-invalid-cp-command",
"uses-cp-perf-command", "uses-cp-perf-command",
"uses-unimplemented-ax-command",
"uses-ax-initial-time-delay",
}; };
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

@ -72,6 +72,10 @@ enum class GameQuirk
// Track them separately. // Track them separately.
USES_CP_PERF_COMMAND, USES_CP_PERF_COMMAND,
// We don't implement all AX features yet.
USES_UNIMPLEMENTED_AX_COMMAND,
USES_AX_INITIAL_TIME_DELAY,
COUNT, COUNT,
}; };

View File

@ -13,6 +13,7 @@
#include "Common/IOFile.h" #include "Common/IOFile.h"
#include "Common/Logging/Log.h" #include "Common/Logging/Log.h"
#include "Common/Swap.h" #include "Common/Swap.h"
#include "Core/DolphinAnalytics.h"
#include "Core/HW/DSP.h" #include "Core/HW/DSP.h"
#include "Core/HW/DSPHLE/DSPHLE.h" #include "Core/HW/DSPHLE/DSPHLE.h"
#include "Core/HW/DSPHLE/MailHandler.h" #include "Core/HW/DSPHLE/MailHandler.h"
@ -173,6 +174,7 @@ void AXUCode::HandleCommandList()
break; break;
case CMD_UNK_08: case CMD_UNK_08:
DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_UNIMPLEMENTED_AX_COMMAND);
curr_idx += 10; curr_idx += 10;
break; // TODO: check break; // TODO: check

View File

@ -17,6 +17,7 @@
#include "Common/CommonTypes.h" #include "Common/CommonTypes.h"
#include "Core/DSP/DSPAccelerator.h" #include "Core/DSP/DSPAccelerator.h"
#include "Core/DolphinAnalytics.h"
#include "Core/HW/DSP.h" #include "Core/HW/DSP.h"
#include "Core/HW/DSPHLE/UCodes/AX.h" #include "Core/HW/DSPHLE/UCodes/AX.h"
#include "Core/HW/DSPHLE/UCodes/AXStructs.h" #include "Core/HW/DSPHLE/UCodes/AXStructs.h"
@ -473,6 +474,7 @@ void ProcessVoice(PB_TYPE& pb, const AXBuffers& buffers, u16 count, AXMixControl
if (pb.initial_time_delay.on) if (pb.initial_time_delay.on)
{ {
// TODO // TODO
DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_AX_INITIAL_TIME_DELAY);
} }
#ifdef AX_WII #ifdef AX_WII