From 26115624e49f2aca160272e7a30d52ebce1dc768 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Thu, 13 Feb 2025 04:07:35 +0100 Subject: [PATCH] make circular analog range setting work in ares --- src/BizHawk.Client.Common/config/Config.cs | 2 +- src/BizHawk.Client.EmuHawk/MainForm.cs | 6 ++++-- .../Base Implementations/Axes/CircularAxisConstraint.cs | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/BizHawk.Client.Common/config/Config.cs b/src/BizHawk.Client.Common/config/Config.cs index 93ad31ac11..e41402915f 100644 --- a/src/BizHawk.Client.Common/config/Config.cs +++ b/src/BizHawk.Client.Common/config/Config.cs @@ -191,7 +191,7 @@ namespace BizHawk.Client.Common public ClientProfile SelectedProfile { get; set; } = ClientProfile.Unknown; - // N64 + // TODO: make this not N64-specific, it doesn't need to be public bool N64UseCircularAnalogConstraint { get; set; } = true; // Run-Control settings diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index df5c67e20f..1bcfa17fc6 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -872,8 +872,10 @@ namespace BizHawk.Client.EmuHawk InputManager.ActiveController.LatchFromPhysical(finalHostController); - InputManager.ActiveController.ApplyAxisConstraints( - (Emulator is N64 && Config.N64UseCircularAnalogConstraint) ? "Natural Circle" : null); + if (Config.N64UseCircularAnalogConstraint) + { + InputManager.ActiveController.ApplyAxisConstraints("Natural Circle"); + } InputManager.ActiveController.OR_FromLogical(InputManager.ClickyVirtualPadController); InputManager.AutoFireController.LatchFromPhysical(finalHostController); diff --git a/src/BizHawk.Emulation.Common/Base Implementations/Axes/CircularAxisConstraint.cs b/src/BizHawk.Emulation.Common/Base Implementations/Axes/CircularAxisConstraint.cs index 2a5ce75e3a..40e64c6ee5 100644 --- a/src/BizHawk.Emulation.Common/Base Implementations/Axes/CircularAxisConstraint.cs +++ b/src/BizHawk.Emulation.Common/Base Implementations/Axes/CircularAxisConstraint.cs @@ -22,7 +22,7 @@ namespace BizHawk.Emulation.Common var length = Math.Sqrt(xVal * xVal + yVal * yVal); var ratio = Magnitude / length; return ratio < 1.0 - ? ((int) (xVal * ratio), (int) (yVal * ratio)) + ? ((int) Math.Round(xVal * ratio), (int) Math.Round(yVal * ratio)) : ((int) xVal, (int) yVal); } }