diff --git a/Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp b/Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp index 00820bf55a..0e33182cf2 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp @@ -325,6 +325,12 @@ void EmulateIMUCursor(std::optional* state, ControllerEmu::IMUC // Avoid having to double dereference auto& st = *state; + if (!imu_ir_group->enabled) + { + st = std::nullopt; + return; + } + auto accel = imu_accelerometer_group->GetState(); auto ang_vel = imu_gyroscope_group->GetState(); diff --git a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp index 7133a07e59..9eedbf0747 100644 --- a/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp +++ b/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp @@ -18,7 +18,8 @@ namespace ControllerEmu { IMUCursor::IMUCursor(std::string name, std::string ui_name) - : ControlGroup(std::move(name), std::move(ui_name), GroupType::IMUCursor) + : ControlGroup(std::move(name), std::move(ui_name), GroupType::IMUCursor, + ControlGroup::CanBeDisabled::Yes) { controls.emplace_back(std::make_unique(Translate, _trans("Recenter")));