From 735588aa1a2a772bf374df2b25d5ad052784f13e Mon Sep 17 00:00:00 2001 From: Megamouse Date: Wed, 10 Sep 2025 18:16:36 +0200 Subject: [PATCH] qt/input: add vibration threshold to pad settings dialog --- rpcs3/rpcs3qt/pad_settings_dialog.cpp | 4 ++ rpcs3/rpcs3qt/pad_settings_dialog.ui | 66 +++++++++++++++++---------- rpcs3/rpcs3qt/tooltips.h | 2 +- 3 files changed, 47 insertions(+), 25 deletions(-) diff --git a/rpcs3/rpcs3qt/pad_settings_dialog.cpp b/rpcs3/rpcs3qt/pad_settings_dialog.cpp index 09032c0926..8a81982d4e 100644 --- a/rpcs3/rpcs3qt/pad_settings_dialog.cpp +++ b/rpcs3/rpcs3qt/pad_settings_dialog.cpp @@ -1133,6 +1133,9 @@ void pad_settings_dialog::UpdateLabels(bool is_reset) ui->sb_vibration_small->setRange(cfg.multiplier_vibration_motor_small.min, cfg.multiplier_vibration_motor_small.max); ui->sb_vibration_small->setValue(cfg.multiplier_vibration_motor_small.get()); + ui->sb_vibration_threshold->setRange(cfg.vibration_threshold.min, cfg.vibration_threshold.max); + ui->sb_vibration_threshold->setValue(cfg.vibration_threshold.get()); + ui->chb_vibration_switch->setChecked(cfg.switch_vibration_motors.get()); // Update Trigger Thresholds @@ -1886,6 +1889,7 @@ void pad_settings_dialog::ApplyCurrentPlayerConfig(int new_player_id) { cfg.multiplier_vibration_motor_large.set(ui->sb_vibration_large->value()); cfg.multiplier_vibration_motor_small.set(ui->sb_vibration_small->value()); + cfg.vibration_threshold.set(ui->sb_vibration_threshold->value()); cfg.switch_vibration_motors.set(ui->chb_vibration_switch->isChecked()); } diff --git a/rpcs3/rpcs3qt/pad_settings_dialog.ui b/rpcs3/rpcs3qt/pad_settings_dialog.ui index 0ff621c6a2..f41fe42971 100644 --- a/rpcs3/rpcs3qt/pad_settings_dialog.ui +++ b/rpcs3/rpcs3qt/pad_settings_dialog.ui @@ -937,7 +937,7 @@ Enable Vibration - + 5 @@ -951,31 +951,49 @@ 5 - - - % - - - Large - - + + + + + % + + + Small + + + + + + + % + + + Large + + + + - - - % - - - Small - - - - - - - Switch - - + + + + + Threshold + + + 255 + + + + + + + Switch + + + + diff --git a/rpcs3/rpcs3qt/tooltips.h b/rpcs3/rpcs3qt/tooltips.h index 5bf2e91d87..3eea425bb3 100644 --- a/rpcs3/rpcs3qt/tooltips.h +++ b/rpcs3/rpcs3qt/tooltips.h @@ -301,7 +301,7 @@ public: const QString squircle_factor = tr("The actual DualShock 3's stick range is not circular but formed like a rounded square (or squircle) which represents the maximum range of the emulated sticks. You can use the squircle values to modify the stick input if your sticks can't reach the corners of that range. A value of 0 does not apply any so called squircling. A value of 8000 is usually recommended."); const QString stick_multiplier = tr("The stick multipliers can be used to change the sensitivity of your stick movements.
The default setting is 1 and represents normal input."); const QString stick_deadzones = tr("A stick's deadzone determines how far the stick has to be moved until it is fully recognized by the game. The resulting range will be projected onto the full input range in order to give you a smooth experience. Movement inside the deadzone is simulated using the anti-deadzone slider (default is 13%), so don't worry if there is still movement shown in the emulated stick preview."); - const QString vibration = tr("The PS3 activates two motors (large and small) to handle controller vibrations.
You can enable, disable or even switch these signals for the currently selected pad here."); + const QString vibration = tr("The PS3 activates two motors (large and small) to handle controller vibrations.
You can enable, disable or even switch these signals for the currently selected pad here.
The game sends values from 0-255 to activate the motors.
Any value smaller or equal the threshold will be set to 0. This is 63 by default for pad handlers other than DualShock3 in order to emulate the DualShock3's behavior."); const QString motion_controls = tr("Use this to configure the gamepad motion controls."); const QString emulated_preview = tr("The emulated stick values (red dots) in the stick preview represent the actual stick positions as they will be visible to the game. The actual DualShock 3's stick range is not circular but formed like a rounded square (or squircle) which represents the maximum range of the emulated sticks. The blue regular dots represent the raw stick values (including stick multipliers) before they are converted for ingame usage."); const QString trigger_deadzones = tr("A trigger's deadzone determines how far the trigger has to be moved until it is recognized by the game. The resulting range will be projected onto the full input range in order to give you a smooth experience.");