From ca02f6842d8844272e152cfa9e2c4a8ab0f1ef18 Mon Sep 17 00:00:00 2001 From: Cooper Knaak Date: Sat, 25 Nov 2023 20:36:51 -0800 Subject: [PATCH 1/2] Add support for clickable joysticks on game controllers, L3 and R3. --- .../Game Controllers/MFi/MFiGameController.swift | 13 +++++++++---- .../Model/Inputs/StandardGameControllerInput.swift | 6 ++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/DeltaCore/Game Controllers/MFi/MFiGameController.swift b/DeltaCore/Game Controllers/MFi/MFiGameController.swift index 07be168..b47996d 100644 --- a/DeltaCore/Game Controllers/MFi/MFiGameController.swift +++ b/DeltaCore/Game Controllers/MFi/MFiGameController.swift @@ -44,12 +44,14 @@ extension MFiGameController case leftThumbstickDown case leftThumbstickLeft case leftThumbstickRight - + case leftThumbstickButton + case rightThumbstickUp case rightThumbstickDown case rightThumbstickLeft case rightThumbstickRight - + case rightThumbstickButton + case a case b case x @@ -177,12 +179,15 @@ public class MFiGameController: NSObject, GameController profile.buttons[GCInputButtonB]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.b, pressed) } profile.buttons[GCInputButtonX]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.x, pressed) } profile.buttons[GCInputButtonY]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.y, pressed) } - + profile.buttons[GCInputLeftShoulder]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.leftShoulder, pressed) } profile.buttons[GCInputLeftTrigger]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.leftTrigger, pressed) } profile.buttons[GCInputRightShoulder]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.rightShoulder, pressed) } profile.buttons[GCInputRightTrigger]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.rightTrigger, pressed) } - + + profile.buttons[GCInputLeftThumbstickButton]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.leftThumbstickButton, pressed) } + profile.buttons[GCInputRightThumbstickButton]?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.rightThumbstickButton, pressed) } + // Menu = Primary menu button (Start/+/Menu) let menuButton = profile.buttons[GCInputButtonMenu] menuButton?.pressedChangedHandler = { (button, value, pressed) in inputChangedHandler(.menu, pressed) } diff --git a/DeltaCore/Model/Inputs/StandardGameControllerInput.swift b/DeltaCore/Model/Inputs/StandardGameControllerInput.swift index 0fb0a97..edf1d6c 100644 --- a/DeltaCore/Model/Inputs/StandardGameControllerInput.swift +++ b/DeltaCore/Model/Inputs/StandardGameControllerInput.swift @@ -26,12 +26,14 @@ public enum StandardGameControllerInput: String, Codable case leftThumbstickDown case leftThumbstickLeft case leftThumbstickRight - + case leftThumbstickButton + case rightThumbstickUp case rightThumbstickDown case rightThumbstickLeft case rightThumbstickRight - + case rightThumbstickButton + case a case b case x From 055bc258cc025254efbd24dd494c99b493edcfce Mon Sep 17 00:00:00 2001 From: Cooper Knaak Date: Fri, 28 Nov 2025 11:09:52 -0800 Subject: [PATCH 2/2] Add L3 and R3 to MFiGameController.deltamapping. --- .../MFiGameController.deltamapping | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/DeltaCore/Supporting Files/MFiGameController.deltamapping b/DeltaCore/Supporting Files/MFiGameController.deltamapping index af2695c..3b56ca9 100644 --- a/DeltaCore/Supporting Files/MFiGameController.deltamapping +++ b/DeltaCore/Supporting Files/MFiGameController.deltamapping @@ -41,6 +41,13 @@ type standard + leftThumbstickButton + + identifier + l3 + type + standard + leftThumbstickDown identifier @@ -97,6 +104,13 @@ type standard + rightThumbstickButton + + identifier + r3 + type + standard + rightThumbstickDown identifier