summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2025-02-13 17:39:54 -0600
committerJordan Woyak <jordan.woyak@gmail.com>2025-02-13 17:39:54 -0600
commit7a37d015b7dc187d304b6f52a223daa8a58a55eb (patch)
tree2e6d6cfb352a44c4ca30cdfe52749668f4ee6179
parent59d25aceb6a2f4a91fc50b864260581d906b942c (diff)
DolphinAnalytics/WiimoteEmu: Remove now-irrelevant game quirk check.
-rw-r--r--Source/Core/Core/DolphinAnalytics.cpp3
-rw-r--r--Source/Core/Core/DolphinAnalytics.h5
-rw-r--r--Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp18
-rw-r--r--Source/Core/Core/HW/WiimoteEmu/Extension/Extension.cpp9
4 files changed, 3 insertions, 32 deletions
diff --git a/Source/Core/Core/DolphinAnalytics.cpp b/Source/Core/Core/DolphinAnalytics.cpp
index 5f54420013..ebd855f2c4 100644
--- a/Source/Core/Core/DolphinAnalytics.cpp
+++ b/Source/Core/Core/DolphinAnalytics.cpp
@@ -137,8 +137,7 @@ void DolphinAnalytics::ReportGameStart()
}
// Keep in sync with enum class GameQuirk definition.
-constexpr std::array<const char*, 34> GAME_QUIRKS_NAMES{
- "directly-reads-wiimote-input",
+constexpr std::array GAME_QUIRKS_NAMES{
"uses-DVDLowStopLaser",
"uses-DVDLowOffset",
"uses-DVDLowReadDiskBca",
diff --git a/Source/Core/Core/DolphinAnalytics.h b/Source/Core/Core/DolphinAnalytics.h
index 83a5a45822..8fc23161a8 100644
--- a/Source/Core/Core/DolphinAnalytics.h
+++ b/Source/Core/Core/DolphinAnalytics.h
@@ -4,7 +4,6 @@
#pragma once
#include <array>
-#include <memory>
#include <mutex>
#include <string>
#include <string_view>
@@ -21,10 +20,6 @@
enum class GameQuirk
{
- // The Wii remote hardware makes it possible to bypass normal data reporting and directly
- // "read" extension or IR data. This would break our current TAS/NetPlay implementation.
- DIRECTLY_READS_WIIMOTE_INPUT = 0,
-
// Several Wii DI commands that are rarely/never used and not implemented by Dolphin
USES_DVD_LOW_STOP_LASER,
USES_DVD_LOW_OFFSET,
diff --git a/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp b/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp
index 9d354a4b8e..7c3202cc0b 100644
--- a/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp
+++ b/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp
@@ -4,22 +4,19 @@
#include "Core/HW/WiimoteEmu/WiimoteEmu.h"
#include <cmath>
-#include <fstream>
#include <iterator>
#include "Common/BitUtils.h"
#include "Common/ChunkFile.h"
#include "Common/CommonTypes.h"
#include "Common/EnumUtils.h"
-#include "Common/FileUtil.h"
#include "Common/Logging/Log.h"
#include "Common/MsgHandler.h"
#include "Common/Swap.h"
+
#include "Core/Core.h"
-#include "Core/DolphinAnalytics.h"
#include "Core/HW/Wiimote.h"
#include "Core/HW/WiimoteCommon/WiimoteHid.h"
-#include "InputCommon/ControllerEmu/ControlGroup/Attachments.h"
namespace WiimoteEmu
{
@@ -490,19 +487,6 @@ bool Wiimote::ProcessReadDataRequest()
break;
}
- // It is possible to bypass data reporting and directly read extension input.
- // While I am not aware of any games that actually do this,
- // our NetPlay and TAS methods are completely unprepared for it.
- const bool is_reading_ext = EncryptedExtension::I2C_ADDR == m_read_request.slave_address &&
- m_read_request.address < EncryptedExtension::CONTROLLER_DATA_BYTES;
- const bool is_reading_ir =
- CameraLogic::I2C_ADDR == m_read_request.slave_address &&
- m_read_request.address < CameraLogic::REPORT_DATA_OFFSET + CameraLogic::CAMERA_DATA_BYTES &&
- m_read_request.address + m_read_request.size > CameraLogic::REPORT_DATA_OFFSET;
-
- if (is_reading_ext || is_reading_ir)
- DolphinAnalytics::Instance().ReportGameQuirk(GameQuirk::DIRECTLY_READS_WIIMOTE_INPUT);
-
// Top byte of address is ignored on the bus, but it IS maintained in the read-reply.
auto const bytes_read = m_i2c_bus.BusRead(
m_read_request.slave_address, (u8)m_read_request.address, bytes_to_read, reply.data);
diff --git a/Source/Core/Core/HW/WiimoteEmu/Extension/Extension.cpp b/Source/Core/Core/HW/WiimoteEmu/Extension/Extension.cpp
index fd2b185872..d733385dbb 100644
--- a/Source/Core/Core/HW/WiimoteEmu/Extension/Extension.cpp
+++ b/Source/Core/Core/HW/WiimoteEmu/Extension/Extension.cpp
@@ -3,19 +3,14 @@
#include "Core/HW/WiimoteEmu/Extension/Extension.h"
-#include <algorithm>
-#include <array>
#include <cstring>
#include "Common/CommonTypes.h"
-#include "Common/Inline.h"
#include "Core/HW/Wiimote.h"
#include "Core/HW/WiimoteEmu/Extension/DesiredExtensionState.h"
#include "Core/HW/WiimoteEmu/WiimoteEmu.h"
-#include "Common/Logging/Log.h"
-
namespace WiimoteEmu
{
Extension::Extension(const char* name) : Extension(name, name)
@@ -91,11 +86,9 @@ int EncryptedExtension::BusRead(u8 slave_addr, u8 addr, int count, u8* data_out)
if (I2C_ADDR != slave_addr)
return 0;
- if (0x00 == addr)
+ if (offsetof(Register, controller_data) == addr)
{
// This is where real hardware would update controller data
- // We do it in Update() for TAS determinism
- // TAS code fails to sync data reads and such..
}
auto const result = RawRead(&m_reg, addr, count, data_out);