summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2020-10-09 05:43:07 +0200
committerMorph <39850852+Morph1984@users.noreply.github.com>2020-11-16 05:33:20 +0100
commit652d6766d55acec6416dccb900a45c6660a86607 (patch)
tree7f9c64b78ca02aa1f62de77e25fcacbb2fdc4291 /src/core
parentcontrollers/npad: Stop games from vibrating incorrect controllers (diff)
downloadyuzu-652d6766d55acec6416dccb900a45c6660a86607.tar
yuzu-652d6766d55acec6416dccb900a45c6660a86607.tar.gz
yuzu-652d6766d55acec6416dccb900a45c6660a86607.tar.bz2
yuzu-652d6766d55acec6416dccb900a45c6660a86607.tar.lz
yuzu-652d6766d55acec6416dccb900a45c6660a86607.tar.xz
yuzu-652d6766d55acec6416dccb900a45c6660a86607.tar.zst
yuzu-652d6766d55acec6416dccb900a45c6660a86607.zip
Diffstat (limited to 'src/core')
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp3
-rw-r--r--src/core/settings.cpp1
-rw-r--r--src/core/settings.h1
3 files changed, 4 insertions, 1 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index f865e3f5f..924f209c0 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -703,7 +703,8 @@ void Controller_NPad::VibrateController(const std::vector<DeviceHandle>& vibrati
// TODO: Vibrate left/right vibration motors independently if possible.
button_state[A - BUTTON_HID_BEGIN]->SetRumblePlay(
- vibration_values[i].amp_high, vibration_values[i].amp_low,
+ vibration_values[i].amp_high * Settings::values.vibration_strength.GetValue() / 100,
+ vibration_values[i].amp_low * Settings::values.vibration_strength.GetValue() / 100,
vibration_values[i].freq_high, vibration_values[i].freq_low);
latest_vibration_values[npad_index][device_index] = vibration_values[i];
diff --git a/src/core/settings.cpp b/src/core/settings.cpp
index aadbc3932..6e39aebb5 100644
--- a/src/core/settings.cpp
+++ b/src/core/settings.cpp
@@ -150,6 +150,7 @@ void RestoreGlobalState() {
values.players.SetGlobal(true);
values.use_docked_mode.SetGlobal(true);
values.vibration_enabled.SetGlobal(true);
+ values.vibration_strength.SetGlobal(true);
values.motion_enabled.SetGlobal(true);
}
diff --git a/src/core/settings.h b/src/core/settings.h
index edd2a00ca..496f47747 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -170,6 +170,7 @@ struct Values {
Setting<bool> use_docked_mode;
Setting<bool> vibration_enabled;
+ Setting<int> vibration_strength;
Setting<bool> motion_enabled;
std::string motion_device;