From 037d6288d339d230056ac9f6b20d502fd457ee1e Mon Sep 17 00:00:00 2001 From: Voyager Date: Sat, 8 Aug 2026 10:40:49 -0400 Subject: [PATCH] fix(portmaster): correct muOS controller mapping --- settings/controller_mapping_manager.gd | 14 ++++++------- tests/controller_mapping_validation.gd | 27 ++++++++++++++------------ 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/settings/controller_mapping_manager.gd b/settings/controller_mapping_manager.gd index acff476..600c9b3 100644 --- a/settings/controller_mapping_manager.gd +++ b/settings/controller_mapping_manager.gd @@ -13,19 +13,19 @@ const MAX_PROFILE_BYTES: int = 1024 * 1024 const CAPTURE_AXIS_THRESHOLD: float = 0.55 const CAPTURE_AXIS_RELEASE_THRESHOLD: float = 0.30 const ACTIVE_DEVICE_AXIS_THRESHOLD: float = 0.35 -const MUOS_MAPPING_REVISION: String = "muos-v2" +const MUOS_MAPPING_REVISION: String = "muos-v3" const MUOS_CONTROLLER_NAMES: Array[String] = [ "muOS-Keys", "Deeplay-keys", ] const MUOS_MAPPING_BINDINGS: String = ( - "a:b2,b:b0,x:b1,y:b3," - + "leftshoulder:b6,rightshoulder:b7," - + "lefttrigger:b8,righttrigger:b9," - + "guide:b12,start:b11,back:b10," + "a:b4,b:b3,x:b5,y:b6," + + "leftshoulder:b7,rightshoulder:b8," + + "lefttrigger:b13,righttrigger:b14," + + "guide:b11,start:b10,back:b9," + "dpup:h0.1,dpleft:h0.8,dpright:h0.2,dpdown:h0.4," - + "leftx:a0,lefty:a1,leftstick:b4," - + "rightx:a2,righty:a3,rightstick:b5,platform:Linux," + + "leftx:a0,lefty:a1,leftstick:b12," + + "rightx:a2,righty:a3,rightstick:b15,platform:Linux," ) const ROLE_A: StringName = &"a" const ROLE_B: StringName = &"b" diff --git a/tests/controller_mapping_validation.gd b/tests/controller_mapping_validation.gd index 4416e2c..bb6ef3b 100644 --- a/tests/controller_mapping_validation.gd +++ b/tests/controller_mapping_validation.gd @@ -35,28 +35,31 @@ func _run() -> void: func _validate_manager(manager: ControllerMappingManagerType) -> String: var muos_mapping: String = ( ControllerMappingManagerType.build_muos_controller_mapping( - "19004ca6010000000100000000010000", + "19000000010000000100000000010000", "muOS-Keys", ) ) for expected_binding: String in [ - "a:b2", - "b:b0", - "x:b1", - "y:b3", - "leftshoulder:b6", - "rightshoulder:b7", - "lefttrigger:b8", - "righttrigger:b9", - "back:b10", - "start:b11", + "a:b4", + "b:b3", + "x:b5", + "y:b6", + "leftshoulder:b7", + "rightshoulder:b8", + "lefttrigger:b13", + "righttrigger:b14", + "back:b9", + "start:b10", + "guide:b11", + "leftstick:b12", + "rightstick:b15", "leftx:a0", "righty:a3", ]: if expected_binding not in muos_mapping: return "muOS compatibility mapping omitted " + expected_binding if not muos_mapping.begins_with( - "19004ca6010000000100000000010000,muOS-Keys," + "19000000010000000100000000010000,muOS-Keys," ): return "muOS compatibility mapping does not use the runtime guid" if not ControllerMappingManagerType.is_muos_controller_name(