From 30120a775ff9c1301242233c6d00d56bc104477c Mon Sep 17 00:00:00 2001 From: Kode-Z <162533196+Kode-Z@users.noreply.github.com> Date: Mon, 11 Aug 2025 15:51:52 +0100 Subject: [PATCH] New custom touch controls (#765) * Update doom-3.json * Add files via upload * Add files via upload * Add files via upload * Add files via upload --- touch-layouts/1874191487.json | 7 + touch-layouts/379174015.json | 7 + touch-layouts/832645103.json | 7 + touch-layouts/layouts/doom-3.json | 15 +- touch-layouts/layouts/gta-4.json | 230 ++++++++++++++++++++ touch-layouts/layouts/high-on-life.json | 275 ++++++++++++++++++++++++ 6 files changed, 540 insertions(+), 1 deletion(-) create mode 100644 touch-layouts/1874191487.json create mode 100644 touch-layouts/379174015.json create mode 100644 touch-layouts/832645103.json create mode 100644 touch-layouts/layouts/gta-4.json create mode 100644 touch-layouts/layouts/high-on-life.json diff --git a/touch-layouts/1874191487.json b/touch-layouts/1874191487.json new file mode 100644 index 0000000..9f2145a --- /dev/null +++ b/touch-layouts/1874191487.json @@ -0,0 +1,7 @@ +{ + "name": "High On Life", + "default_layout": "custom", + "layouts": [ + "high-on-life" + ] +} \ No newline at end of file diff --git a/touch-layouts/379174015.json b/touch-layouts/379174015.json new file mode 100644 index 0000000..1b650fa --- /dev/null +++ b/touch-layouts/379174015.json @@ -0,0 +1,7 @@ +{ + "name": "Grand Theft Auto IV", + "default_layout": "custom", + "layouts": [ + "gta-4" + ] +} \ No newline at end of file diff --git a/touch-layouts/832645103.json b/touch-layouts/832645103.json new file mode 100644 index 0000000..8b1ab97 --- /dev/null +++ b/touch-layouts/832645103.json @@ -0,0 +1,7 @@ +{ + "name": "Grand Theft Auto: Episodes from Liberty City", + "default_layout": "custom", + "layouts": [ + "gta-4" + ] +} \ No newline at end of file diff --git a/touch-layouts/layouts/doom-3.json b/touch-layouts/layouts/doom-3.json index 0ed13cd..9f69139 100644 --- a/touch-layouts/layouts/doom-3.json +++ b/touch-layouts/layouts/doom-3.json @@ -139,7 +139,20 @@ } }, { - "type": "button", + "type": "touchpad", + "axis": [ + { + "input": "axisX", + "output": "rightJoystickX", + "sensitivity": 3 + }, + { + "input": "axisY", + "output": "rightJoystickY", + "sensitivity": 3 + } + ], + "renderAsButton": true, "action": "rightTrigger", "styles": { "default": { diff --git a/touch-layouts/layouts/gta-4.json b/touch-layouts/layouts/gta-4.json new file mode 100644 index 0000000..dee4e34 --- /dev/null +++ b/touch-layouts/layouts/gta-4.json @@ -0,0 +1,230 @@ +{ + "schema_version": 1, + "layouts": { + "custom": { + "name": "Custom", + "author": "Kode-Z", + "content": { + "left": { + "inner": [ + { + "type": "joystick", + "expand": false, + "axis": { + "input": "axisXY", + "output": "leftJoystick" + } + } + ], + "outer": [ + null, + null, + [ + { + "type": "directionalPad" + } + ], + null, + null, + { + "type": "joystick", + "axis": { + "input": "axisXY", + "output": "leftJoystick", + "deadzone": { + "threshold": 0, + "radial": true + } + }, + "action": "leftTrigger", + "styles": { + "default": { + "outline": { + "indicator": { + "type": "color", + "value": "#ffffff" + }, + "stroke": { + "type": "solid", + "color": "#ffffff" + }, + "opacity": 0.5 + }, + "knob": { + "faceImage": { + "type": "icon", + "value": "leftTrigger" + } + } + } + } + }, + { + "type": "joystick", + "axis": { + "input": "axisXY", + "output": "rightJoystick", + "deadzone": { + "threshold": 0, + "radial": true + } + }, + "action": "leftBumper", + "styles": { + "default": { + "outline": { + "indicator": { + "type": "color", + "value": "#ffffff" + }, + "stroke": { + "type": "solid", + "color": "#ffffff" + }, + "opacity": 0.5 + }, + "knob": { + "faceImage": { + "type": "icon", + "value": "leftBumper" + } + } + } + } + } + ] + }, + "right": { + "inner": [ + { + "type": "joystick", + "axis": { + "input": "axisXY", + "output": "rightJoystick" + } + } + ], + "outer": [ + [ + { + "type": "button", + "action": "rightBumper" + }, + { + "type": "button", + "action": "rightThumb", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "lookBehind2" + } + } + } + }, + { + "type": "touchpad", + "axis": { + "input": "axisXY", + "output": "rightJoystick", + "deadzone": { + "threshold": 0.50 + } + }, + "renderAsButton": true, + "action": [ + "rightTrigger" + ], + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "rightTrigger" + } + } + } + } + ], + [ + null, + { + "type": "button", + "action": "leftThumb" + }, + null + ], + { + "type": "button", + "action": "gamepadA", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "sprint" + } + } + } + }, + { + "type": "button", + "action": "gamepadB", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "lightPunch" + } + } + } + }, + { + "type": "button", + "action": "gamepadX", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "jump" + } + } + } + }, + { + "type": "button", + "action": "gamepadY", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "enterCar" + } + } + } + } + ] + }, + "upper": { + "right": [ + { + "type": "button", + "action": "menu" + }, + null, + { + "type": "button", + "action": "view", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "switchCamera" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/touch-layouts/layouts/high-on-life.json b/touch-layouts/layouts/high-on-life.json new file mode 100644 index 0000000..e4c938e --- /dev/null +++ b/touch-layouts/layouts/high-on-life.json @@ -0,0 +1,275 @@ +{ + "schema_version": 1, + "layouts": { + "custom": { + "name": "Custom", + "author": "Kode-Z", + "content": { + "left": { + "inner": [ + { + "type": "joystick", + "action": "leftThumb", + "actionThreshold": 2, + "axis": { + "input": "axisXY", + "output": "leftJoystick", + "deadzone": { + "threshold": 0.05, + "radial": true + } + }, + "styles": { + "default": { + "knob": { + "faceImage": { + "type": "icon", + "value": "walk" + } + } + }, + "activated": { + "knob": { + "faceImage": { + "type": "icon", + "value": "sprint" + } + } + } + } + } + ], + "outer": [ + null, + null, + null, + null, + [ + { + "type": "directionalPad", + "scale": 1.3 + } + ], + [ + { + "type": "joystick", + "axis": { + "input": "axisXY", + "output": "leftJoystick", + "deadzone": { + "threshold": 0, + "radial": true + } + }, + "action": "leftTrigger", + "styles": { + "default": { + "outline": { + "indicator": { + "type": "color", + "value": "#ffffff" + }, + "stroke": { + "type": "solid", + "color": "#ffffff" + }, + "opacity": 0.5 + }, + "knob": { + "faceImage": { + "type": "icon", + "value": "aim" + } + } + } + } + } + ] + ] + }, + "right": { + "inner": [ + { + "type": "joystick", + "axis": { + "input": "axisXY", + "output": "rightJoystick" + } + } + ], + "outer": [ + null, + null, + [ + { + "type": "button", + "action": "gamepadB" + }, + { + "type": "button", + "action": "dPadDown", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "crouch" + } + } + } + }, + { + "type": "button", + "action": "leftBumper" + }, + { + "type": "button", + "action": "gamepadA", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "jump" + } + } + } + } + ], + [ + { + "type": "button", + "action": "gamepadX", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "reload" + } + } + } + }, + { + "type": "touchpad", + "axis": { + "input": "axisXY", + "output": "rightJoystick", + "deadzone": { + "threshold": 0.5 + } + }, + "renderAsButton": true, + "action": [ + "rightThumb" + ], + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "sword" + } + } + } + }, + { + "type": "touchpad", + "axis": { + "input": "axisXY", + "output": "rightJoystick", + "deadzone": { + "threshold": 0.5 + } + }, + "renderAsButton": true, + "action": [ + "rightTrigger" + ], + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "fire" + } + } + } + } + ], + { + "type": "touchpad", + "axis": { + "input": "axisXY", + "output": "rightJoystick", + "deadzone": { + "threshold": 0.5 + } + }, + "renderAsButton": true, + "action": [ + "rightBumper" + ], + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "ability" + } + } + } + }, + { + "type": "joystick", + "axis": { + "input": "axisXY", + "output": "leftJoystick", + "deadzone": { + "threshold": 0, + "radial": true + } + }, + "action": "gamepadY", + "styles": { + "default": { + "outline": { + "indicator": { + "type": "color", + "value": "#ffffff" + }, + "stroke": { + "type": "solid", + "color": "#ffffff" + }, + "opacity": 0.5 + }, + "knob": { + "faceImage": { + "type": "icon", + "value": "weaponSelect" + } + } + } + } + } + ] + }, + "upper": { + "right": [ + { + "type": "button", + "action": "menu" + }, + { + "type": "button", + "action": "view", + "styles": { + "default": { + "faceImage": { + "type": "icon", + "value": "inventory" + } + } + } + } + ] + } + } + } + } +} \ No newline at end of file