mirror of
https://github.com/RetroDECK/Wiki.git
synced 2025-04-10 19:15:16 +00:00
input
This commit is contained in:
parent
899a137181
commit
2103ce923c
|
@ -1,10 +1,8 @@
|
||||||
# Steam Input - Development
|
# Steam Input - Development
|
||||||
|
|
||||||
W.I.P
|
|
||||||
|
|
||||||
**Note:**
|
**Note:**
|
||||||
|
|
||||||
Applications that are not native on Steam gets a random AppID number.
|
Applications that are not native on Steam get a random AppID number.
|
||||||
|
|
||||||
## Folder structure
|
## Folder structure
|
||||||
|
|
||||||
|
@ -14,7 +12,84 @@ Applications that are not native on Steam gets a random AppID number.
|
||||||
| Application Templates Folder |`~/.steam/steam/steamapps/common/Steam Controller Configs/<AppID>/config/retrodeck/` | Temporary changes are stored here |
|
| Application Templates Folder |`~/.steam/steam/steamapps/common/Steam Controller Configs/<AppID>/config/retrodeck/` | Temporary changes are stored here |
|
||||||
| Steam Binding Icons Folder |`~/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/` | | |
|
| Steam Binding Icons Folder |`~/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/` | | |
|
||||||
|
|
||||||
## Data Mangement
|
## What Controllers does Steam Input Support?
|
||||||
|
|
||||||
|
| Manufacturer | System | Controller | .vdf file | RetroDECK Support | Comment |
|
||||||
|
|--------------|---------------------|---------------------------|-------------------------------------------|------------|---------|
|
||||||
|
| Android | Cellphones / Tables | Touchscreen | `controller_android.vdf` | No | |
|
||||||
|
| Apple | Cellphones / Tables | Touchscreen | `controller_apple.vdf` | No | |
|
||||||
|
| Generic | Off Brand / 3rd Party| | `controller_generic.vdf` | Yes | |
|
||||||
|
| Generic Mobile| Cellphones / Tables | Touchscreen | `controller_mobile_touch` | No | |
|
||||||
|
| Microsoft | Xbox 360 | Xbox 360 Controller | `controller_xbox360.vdf` | Yes | |
|
||||||
|
| Microsoft | Xbox One | Xbox One Controller | `controller_xboxone.vdf` | Yes | |
|
||||||
|
| Microsoft | Xbox Series X | Xbox Series X Controller | `controller_xboxone.vdf` | Yes | |
|
||||||
|
| Nintendo | Nintendo Switch | Nintendo Switch Pro | `controller_switch_pro.vdf` | Yes | |
|
||||||
|
| Nintendo | Nintendo Switch | Switch Joycons | `controller_switch_joycon_left.vdf` and `controller_switch_joycon_right.vdf` | No | |
|
||||||
|
| Sony | PlayStation 5 | DualSense | `controller_ps5.vdf` | Yes | |
|
||||||
|
| Sony | PlayStation 3 | DualShock 3 | `controller_ps3.vdf` | Yes | |
|
||||||
|
| Sony | PlayStation 4 | DualShock 4 | `controller_ps4.vdf` | Yes | |
|
||||||
|
| Valve | Steam | Steam Controller | `controller_steamcontroller_gordon.vdf` | Yes | |
|
||||||
|
| Valve | Steam Deck | Steam Deck Controller | `controller_neptune.vdf` | Yes | |
|
||||||
|
|
||||||
|
## How does RetroDECK Inject the Templates and Custom Icons?
|
||||||
|
|
||||||
|
If the user chooses to install the Steam Input Templates for RetroDECK:
|
||||||
|
|
||||||
|
- Templates are injected into: `~/.steam/steam/controller_base/templates/`
|
||||||
|
- Icons are injected into: `~/.steam/steam/tenfoot/resource/images/library/controller/binding_icons/`
|
||||||
|
|
||||||
|
## What Happens when you enable a Template from Steam?
|
||||||
|
|
||||||
|
When a template is selected from the Template Menu in Steam, it is copied from `~/.steam/steam/controller_base/templates/` to `~/.steam/steam/steamapps/common/Steam Controller Configs/<AppID>/config/retrodeck/` with the same name.
|
||||||
|
|
||||||
|
## What happens when I make changes to a template?
|
||||||
|
|
||||||
|
If the user or developer makes changes to the template via the Steam Input GUI, a new template .vdf file is created in `~/.steam/steam/steamapps/common/Steam Controller Configs/<AppID>/config/retrodeck/`.
|
||||||
|
|
||||||
|
The name is based on the device used.
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
If you are editing the RetroDECK Steam Deck template, a new template with the edits will be called `controller_neptune.vdf`.
|
||||||
|
|
||||||
|
## File Naming Standard
|
||||||
|
|
||||||
|
The .vdf file will always have the same filename and is thus overwritten when a new version comes out in the:
|
||||||
|
|
||||||
|
`~/.steam/steam/controller_base/templates/` folder.
|
||||||
|
|
||||||
|
|
||||||
|
**The naming syntax is:**
|
||||||
|
|
||||||
|
```
|
||||||
|
RetroDECK_controller_<SystemSource>_<controllername>_<template_type>.vdf
|
||||||
|
|
||||||
|
<SystemSource> <- Original System or Source where the controller comes from.
|
||||||
|
<controllername> <- The Name of the Controller in Steam
|
||||||
|
<template_type> <- The type of RetroDECK Template
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
```
|
||||||
|
RetroDECK_controller_ps5_dualsense_simple.vdf
|
||||||
|
|
||||||
|
<SystemSource> <- ps5
|
||||||
|
<controllername> <- dualsense
|
||||||
|
<template_type> <- simple
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
This is the DualSense for the PS5 using the Simple RetroDECK Template.
|
||||||
|
|
||||||
|
|
||||||
|
## .vdf Data Mangement
|
||||||
|
|
||||||
|
The following should be empty as it is not relevant to the use case of RetroDECK. Neither should the creator be shown as that hardlinks to the real SteamID of the person that makes the changes.
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
"creator" ""
|
"creator" ""
|
||||||
|
@ -23,7 +98,7 @@ Applications that are not native on Steam gets a random AppID number.
|
||||||
"export_type" ""
|
"export_type" ""
|
||||||
```
|
```
|
||||||
|
|
||||||
Should be empty as it is not relevant to the usecase of RetroDECK. Neither should the creator be shown as that hardlinks to the real SteamID of the person that makes the changes.
|
**Example:**
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -47,29 +122,6 @@ Should be empty as it is not relevant to the usecase of RetroDECK. Neither shoul
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## File Naming Standard
|
|
||||||
|
|
||||||
The .vdf file will always have the same filename is thus overwritten when a new version comes out.
|
|
||||||
|
|
||||||
The naming syntax is:
|
|
||||||
|
|
||||||
```
|
|
||||||
RetroDECK_controller_<OGSystem>_<controllername>_<template type>.vdf
|
|
||||||
```
|
|
||||||
|
|
||||||
**Example:**
|
|
||||||
|
|
||||||
```
|
|
||||||
RetroDECK_controller_ps5_dualsense_simple.vdf
|
|
||||||
```
|
|
||||||
|
|
||||||
This is the DualSense for the PS5 using the Simple RetroDECK Template.
|
|
||||||
|
|
||||||
Note:
|
|
||||||
|
|
||||||
Only the Steam Deck have two seperate templates shipped so far.
|
|
||||||
|
|
||||||
## Versioning and Template Naming
|
## Versioning and Template Naming
|
||||||
|
|
||||||
Inside the config you want to manipulate the following fields
|
Inside the config you want to manipulate the following fields
|
||||||
|
@ -83,15 +135,22 @@ Inside the config you want to manipulate the following fields
|
||||||
|
|
||||||
### What constitutes a new major version?
|
### What constitutes a new major version?
|
||||||
|
|
||||||
Adding new menus or submenus to the profiles.
|
- Adding new menus or submenus
|
||||||
|
- Major function changes
|
||||||
|
- Adding new functions
|
||||||
|
|
||||||
### What constitutes a new minor version?
|
### What constitutes a new minor version?
|
||||||
|
|
||||||
Bugfixes
|
- Bugfixes
|
||||||
|
- Minor tweaks
|
||||||
|
- Icon Fixes
|
||||||
|
- Moving buttons around.
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
|
|
||||||
We add a new submenu to the Steam Controller - Gordon profile. This corresponds to a major release to we change all the fields so it matches the version of 2.0.
|
**2.0**
|
||||||
|
|
||||||
|
We add a new submenu to the RetroDECK: DualSense template.
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -101,7 +160,7 @@ We add a new submenu to the Steam Controller - Gordon profile. This corresponds
|
||||||
"minor_revision" "0" <- Should correspond to the minor version of the template
|
"minor_revision" "0" <- Should correspond to the minor version of the template
|
||||||
```
|
```
|
||||||
|
|
||||||
While a 2.1 with a bugfix would be
|
**2.1 with a bugfix**
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
@ -111,7 +170,7 @@ While a 2.1 with a bugfix would be
|
||||||
"minor_revision" "1" <- Should correspond to the minor version of the template
|
"minor_revision" "1" <- Should correspond to the minor version of the template
|
||||||
```
|
```
|
||||||
|
|
||||||
3.0
|
**3.0**
|
||||||
|
|
||||||
```
|
```
|
||||||
"title" "RetroDECK: DualSense v.3b" <- The name shows the version number
|
"title" "RetroDECK: DualSense v.3b" <- The name shows the version number
|
||||||
|
@ -122,7 +181,8 @@ While a 2.1 with a bugfix would be
|
||||||
|
|
||||||
### Steam Deck Example
|
### Steam Deck Example
|
||||||
|
|
||||||
The Steam Deck is so far the only template that ships with two diffrent templates
|
The Steam Deck is so far the only device that ships with two different templates:
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
"title" "RetroDECK: Steam Deck - Neptune v.1.1b FULL"
|
"title" "RetroDECK: Steam Deck - Neptune v.1.1b FULL"
|
||||||
|
@ -132,4 +192,5 @@ The Steam Deck is so far the only template that ships with two diffrent template
|
||||||
"description" "RetroDECK: Steam Deck - Neptune v.1b SIMPLE"
|
"description" "RetroDECK: Steam Deck - Neptune v.1b SIMPLE"
|
||||||
|
|
||||||
```
|
```
|
||||||
Then we add the template type by the end of the title and description.
|
|
||||||
|
We add the template type by the end of the title and description.
|
||||||
|
|
Loading…
Reference in a new issue