From 900600c5384168b49d1f7d9d84947418fd79240f Mon Sep 17 00:00:00 2001 From: Kode-Z <162533196+Kode-Z@users.noreply.github.com> Date: Thu, 18 Sep 2025 04:50:17 +0100 Subject: [PATCH] Custom touch controls for Shenmue 1 & 2 (#794) * Update resident-evil.json Opacity adjustments. * Add files via upload * Add files via upload --- touch-layouts/1022228933.json | 7 + touch-layouts/114172147.json | 7 + touch-layouts/layouts/resident-evil.json | 21 +-- touch-layouts/layouts/shenmue-1-and-2.json | 199 +++++++++++++++++++++ 4 files changed, 222 insertions(+), 12 deletions(-) create mode 100644 touch-layouts/1022228933.json create mode 100644 touch-layouts/114172147.json create mode 100644 touch-layouts/layouts/shenmue-1-and-2.json diff --git a/touch-layouts/1022228933.json b/touch-layouts/1022228933.json new file mode 100644 index 0000000..672ac81 --- /dev/null +++ b/touch-layouts/1022228933.json @@ -0,0 +1,7 @@ +{ + "name": "Shenmue II", + "default_layout": "custom", + "layouts": [ + "shenmue-1-and-2" + ] +} \ No newline at end of file diff --git a/touch-layouts/114172147.json b/touch-layouts/114172147.json new file mode 100644 index 0000000..d3a2fe5 --- /dev/null +++ b/touch-layouts/114172147.json @@ -0,0 +1,7 @@ +{ + "name": "Shenmue", + "default_layout": "custom", + "layouts": [ + "shenmue-1-and-2" + ] +} \ No newline at end of file diff --git a/touch-layouts/layouts/resident-evil.json b/touch-layouts/layouts/resident-evil.json index 63798cf..b2182dd 100644 --- a/touch-layouts/layouts/resident-evil.json +++ b/touch-layouts/layouts/resident-evil.json @@ -49,21 +49,18 @@ "action": "leftTrigger", "styles": { "default": { - "outline": { - "indicator": { - "type": "color", - "value": "#ffffff" - }, - "stroke": { - "type": "solid", - "color": "#ffffff" - }, - "opacity": 0.1 - }, "knob": { "faceImage": { "type": "icon", "value": "aim" + }, + "background": { + "type": "color", + "value": "#ffffff", + "opacity": 0.1 + }, + "stroke": { + "opacity": 0.1 } } } @@ -226,4 +223,4 @@ } } } -} \ No newline at end of file +} diff --git a/touch-layouts/layouts/shenmue-1-and-2.json b/touch-layouts/layouts/shenmue-1-and-2.json new file mode 100644 index 0000000..a0b0196 --- /dev/null +++ b/touch-layouts/layouts/shenmue-1-and-2.json @@ -0,0 +1,199 @@ +{ + "schema_version": 1, + "layouts": { + "custom": { + "name": "Custom", + "author": "Kode-Z", + "content": { + "left": { + "inner": [ + { + "type": "joystick", + "axis": { + "input": "axisXY", + "output": "leftJoystick" + }, + "styles": { + "default": { + "knob": { + "faceImage": { + "type": "icon", + "value": "walk" + } + } + } + } + } + ] + }, + "right": { + "inner": [ + { + "type": "joystick", + "axis": { + "input": "axisXY", + "output": "rightJoystick" + } + } + ], + "outer": [ + [ + null, + { + "type": "button", + "action": { + "type": "layer", + "target": "dPad" + }, + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "dPad", + "opacity": 0.5 + }, + "background": { + "type": "color", + "value": "#1992cf", + "opacity": 0.2 + } + } + }, + "toggle": true + }, + null + ], + { + "type": "button", + "action": "rightTrigger", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "sprint" + } + } + } + }, + { + "type": "button", + "action": "gamepadB", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "close" + } + } + } + }, + { + "type": "button", + "action": "gamepadA", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "interact" + } + } + } + }, + { + "type": "button", + "action": "gamepadX", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "notebook" + } + } + } + }, + { + "type": "button", + "action": "gamepadY", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "inventory" + } + } + } + }, + [ + { + "type": "touchpad", + "axis": { + "input": "axisXY", + "output": "rightJoystick", + "sensitivity": 5, + "deadzone": { + "threshold": 0, + "radial": true + } + }, + "renderAsButton": true, + "action": [ + "leftTrigger" + ], + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "look" + } + } + } + }, + null + ] + ] + }, + "upper": { + "right": [ + null, + null, + { + "type": "button", + "action": "menu" + }, + { + "type": "button", + "action": "rightTrigger" + }, + { + "type": "button", + "action": "leftTrigger" + } + ] + }, + "layers": { + "dPad": { + "left": { + "inner": [ + { + "type": "directionalPad", + "scale": 2.2 + } + ] + }, + "right": { + "inner": [ + { + "type": "joystick", + "axis": { + "input": "axisXY", + "output": "rightJoystick" + } + } + ] + } + } + } + } + } + } +} \ No newline at end of file