diff --git a/src/Ryujinx/UI/ViewModels/Input/ControllerInputViewModel.cs b/src/Ryujinx/UI/ViewModels/Input/ControllerInputViewModel.cs
index c453b283f..bad2a22c2 100644
--- a/src/Ryujinx/UI/ViewModels/Input/ControllerInputViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/Input/ControllerInputViewModel.cs
@@ -7,7 +7,6 @@ using Ryujinx.Ava.Input;
using Ryujinx.Ava.UI.Models.Input;
using Ryujinx.Ava.UI.Views.Input;
using Ryujinx.Input;
-using System;
using System.Threading;
using System.Threading.Tasks;
@@ -18,7 +17,11 @@ namespace Ryujinx.Ava.UI.ViewModels.Input
[ObservableProperty] private GamepadInputConfig _config;
private const int StickUiPollMs = 50; // Milliseconds per poll.
- private const float CanvasCenterOffset = 47.5f;
+ private const int StickCircumference = 5;
+
+ private const int CanvasSize = 100;
+ private const int StickBorderSize = CanvasSize + 5;
+ private const float CanvasCenterOffset = (CanvasSize - StickCircumference) / 2;
private const int StickScaleFactor = 45;
private IGamepad _selectedGamepad;
@@ -88,15 +91,17 @@ namespace Ryujinx.Ava.UI.ViewModels.Input
}
}
- public float canvasCenter => CanvasCenterOffset;
+ public int UiStickCircumference => StickCircumference;
+ public int UiCanvasSize => CanvasSize;
+ public int UiStickBorderSize => StickBorderSize;
public float UiStickLeftX => UiStickLeft.Item1 + CanvasCenterOffset;
public float UiStickLeftY => UiStickLeft.Item2 + CanvasCenterOffset;
public float UiStickRightX => UiStickRight.Item1 + CanvasCenterOffset;
public float UiStickRightY => UiStickRight.Item2 + CanvasCenterOffset;
-
- public float UiDeadzoneLeft => Config.DeadzoneLeft * 95;
- public float UiDeadzoneRight => Config.DeadzoneRight * 95;
+
+ public float UiDeadzoneLeft => Config.DeadzoneLeft * (CanvasSize - StickCircumference);
+ public float UiDeadzoneRight => Config.DeadzoneRight * (CanvasSize - StickCircumference);
public ControllerInputViewModel(InputViewModel model, GamepadInputConfig config)
{
diff --git a/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml b/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml
index 2dc73e2fd..d7fc36b44 100644
--- a/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml
+++ b/src/Ryujinx/UI/Views/Input/ControllerInputView.axaml
@@ -334,15 +334,15 @@
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1"
CornerRadius="5"
- Height="105"
- Width="105">
+ Height="{Binding UiStickBorderSize}"
+ Width="{Binding UiStickBorderSize}">
@@ -376,15 +376,15 @@
BorderBrush="{DynamicResource ThemeControlBorderColor}"
BorderThickness="1"
CornerRadius="5"
- Height="105"
- Width="105">
+ Height="{Binding UiStickBorderSize}"
+ Width="{Binding UiStickBorderSize}">