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.
constexpr std::array<const char*, 19> GAME_QUIRKS_NAMES{
constexpr std::array<const char*, 21> GAME_QUIRKS_NAMES{
"icache-matters",
"directly-reads-wiimote-input",
"uses-DVDLowStopLaser",
@ -153,6 +153,8 @@ constexpr std::array<const char*, 19> GAME_QUIRKS_NAMES{
"uses-unknown-xf-command",
"uses-maybe-invalid-cp-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),
"Game quirks names and enum definition are out of sync.");

View File

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

View File

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

View File

@ -17,6 +17,7 @@
#include "Common/CommonTypes.h"
#include "Core/DSP/DSPAccelerator.h"
#include "Core/DolphinAnalytics.h"
#include "Core/HW/DSP.h"
#include "Core/HW/DSPHLE/UCodes/AX.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)
{
// TODO
DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::USES_AX_INITIAL_TIME_DELAY);
}
#ifdef AX_WII