mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
made deadzones configurable
This commit is contained in:
parent
ec0e0d7047
commit
5daaaa3aad
4 changed files with 7 additions and 1 deletions
|
@ -226,6 +226,7 @@ void Config::Load(const char *iniFileName, const char *controllerIniFilename) {
|
||||||
control->Get("InvertTiltY", &bInvertTiltY, true);
|
control->Get("InvertTiltY", &bInvertTiltY, true);
|
||||||
control->Get("TiltSensitivityX", &iTiltSensitivityX, 100);
|
control->Get("TiltSensitivityX", &iTiltSensitivityX, 100);
|
||||||
control->Get("TiltSensitivityY", &iTiltSensitivityY, 100);
|
control->Get("TiltSensitivityY", &iTiltSensitivityY, 100);
|
||||||
|
control->Get("DeadzoneRadius", &fDeadzoneRadius, 0.35);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
control->Get("TouchButtonOpacity", &iTouchButtonOpacity, 65);
|
control->Get("TouchButtonOpacity", &iTouchButtonOpacity, 65);
|
||||||
|
@ -424,6 +425,7 @@ void Config::Save() {
|
||||||
control->Set("InvertTiltY", bInvertTiltY);
|
control->Set("InvertTiltY", bInvertTiltY);
|
||||||
control->Set("TiltSensitivityX", iTiltSensitivityX);
|
control->Set("TiltSensitivityX", iTiltSensitivityX);
|
||||||
control->Set("TiltSensitivityY", iTiltSensitivityY);
|
control->Set("TiltSensitivityY", iTiltSensitivityY);
|
||||||
|
control->Set("DeadzoneRadius", fDeadzoneRadius);
|
||||||
#endif
|
#endif
|
||||||
control->Set("TouchButtonOpacity", iTouchButtonOpacity);
|
control->Set("TouchButtonOpacity", iTouchButtonOpacity);
|
||||||
control->Set("ButtonScale", fButtonScale);
|
control->Set("ButtonScale", fButtonScale);
|
||||||
|
|
|
@ -119,6 +119,8 @@ public:
|
||||||
int iTiltSensitivityX;
|
int iTiltSensitivityX;
|
||||||
//the sensitivity of the tilt in the Y direction
|
//the sensitivity of the tilt in the Y direction
|
||||||
int iTiltSensitivityY;
|
int iTiltSensitivityY;
|
||||||
|
//the deadzone radius of the tilt
|
||||||
|
float fDeadzoneRadius;
|
||||||
|
|
||||||
// The three tabs.
|
// The three tabs.
|
||||||
bool bGridView1;
|
bool bGridView1;
|
||||||
|
|
|
@ -192,7 +192,7 @@ void EmuScreen::sendMessage(const char *message, const char *value) {
|
||||||
//curve1 implements a smooth deadzone as described here:
|
//curve1 implements a smooth deadzone as described here:
|
||||||
//http://www.gamasutra.com/blogs/JoshSutphin/20130416/190541/Doing_Thumbstick_Dead_Zones_Right.php
|
//http://www.gamasutra.com/blogs/JoshSutphin/20130416/190541/Doing_Thumbstick_Dead_Zones_Right.php
|
||||||
inline float curve1(float x) {
|
inline float curve1(float x) {
|
||||||
const float deadzone = 0.03f;
|
const float deadzone = g_Config.fDeadzoneRadius;
|
||||||
const float factor = 1.0f / (1.0f - deadzone);
|
const float factor = 1.0f / (1.0f - deadzone);
|
||||||
if (x > deadzone) {
|
if (x > deadzone) {
|
||||||
return (x - deadzone) * (x - deadzone) * factor;
|
return (x - deadzone) * (x - deadzone) * factor;
|
||||||
|
|
|
@ -24,6 +24,8 @@ void TiltAnalogSettingsScreen::CreateViews(){
|
||||||
//TODO: allow values greater than 100? I'm not sure if that's needed.
|
//TODO: allow values greater than 100? I'm not sure if that's needed.
|
||||||
settings->Add(new PopupSliderChoice(&g_Config.iTiltSensitivityX, 0, 100, c->T("Tilt Sensitivity along X axis"), screenManager()));
|
settings->Add(new PopupSliderChoice(&g_Config.iTiltSensitivityX, 0, 100, c->T("Tilt Sensitivity along X axis"), screenManager()));
|
||||||
settings->Add(new PopupSliderChoice(&g_Config.iTiltSensitivityY, 0, 100, c->T("Tilt Sensitivity along Y axis"), screenManager()));
|
settings->Add(new PopupSliderChoice(&g_Config.iTiltSensitivityY, 0, 100, c->T("Tilt Sensitivity along Y axis"), screenManager()));
|
||||||
|
settings->Add(new PopupSliderChoiceFloat(&g_Config.fDeadzoneRadius, 0.0, 1.0, c->T("Deadzone Radius"), screenManager()));
|
||||||
|
|
||||||
|
|
||||||
settings->Add(new ItemHeader(c->T("Calibration")));
|
settings->Add(new ItemHeader(c->T("Calibration")));
|
||||||
InfoItem *calibrationInfo = new InfoItem("To calibrate, keep device on a flat surface and press calibrate.", "");
|
InfoItem *calibrationInfo = new InfoItem("To calibrate, keep device on a flat surface and press calibrate.", "");
|
||||||
|
|
Loading…
Add table
Reference in a new issue