From 18d46630bcb06c59a157e7f52f3e8826cfab7dea Mon Sep 17 00:00:00 2001 From: zeromus Date: Sun, 12 Nov 2017 23:22:36 -0600 Subject: [PATCH] allow binding xpad triggers as analog controls. fixes #1054 --- BizHawk.Client.EmuHawk/Input/GamePad360.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/BizHawk.Client.EmuHawk/Input/GamePad360.cs b/BizHawk.Client.EmuHawk/Input/GamePad360.cs index a93d1dd1b2..00078cdeac 100644 --- a/BizHawk.Client.EmuHawk/Input/GamePad360.cs +++ b/BizHawk.Client.EmuHawk/Input/GamePad360.cs @@ -165,11 +165,19 @@ namespace BizHawk.Client.EmuHawk public IEnumerable> GetFloats() { var g = state.Gamepad; - const float f = 3.2768f; + + //constant for adapting a +/- 32768 range to a +/-10000-based range + const float f = 32768 / 10000.0f; + + //constant for adapting a 0-255 range to a 0-10000-based range + const float f255 = 255 / 10000.0f; + yield return new Tuple("LeftThumbX", g.sThumbLX / f); yield return new Tuple("LeftThumbY", g.sThumbLY / f); yield return new Tuple("RightThumbX", g.sThumbRX / f); yield return new Tuple("RightThumbY", g.sThumbRY / f); + yield return new Tuple("LeftTrigger", g.bLeftTrigger / f255); + yield return new Tuple("RightTrigger", g.bRightTrigger / f255); yield break; }