diff --git a/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs b/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
index e2431ac62d..e00e1eaa78 100644
--- a/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
+++ b/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
@@ -13,7 +13,7 @@ namespace Ryujinx.Configuration
///
/// The current version of the file format
///
- public const int CurrentVersion = 8;
+ public const int CurrentVersion = 9;
public int Version { get; set; }
@@ -137,6 +137,11 @@ namespace Ryujinx.Configuration
///
public GuiColumns GuiColumns { get; set; }
+ ///
+ /// Used to configure column sort settings in the GUI
+ ///
+ public ColumnSort ColumnSort { get; set; }
+
///
/// A list of directories containing games to be used to load games into the games list
///
@@ -157,6 +162,11 @@ namespace Ryujinx.Configuration
///
public bool EnableKeyboard { get; set; }
+ ///
+ /// Hotkey Keyboard Bindings
+ ///
+ public KeyboardHotkeys Hotkeys { get; set; }
+
///
/// Keyboard control bindings
///
diff --git a/Ryujinx.Common/Configuration/ConfigurationState.cs b/Ryujinx.Common/Configuration/ConfigurationState.cs
index 26bbabc7bd..2a85f7e197 100644
--- a/Ryujinx.Common/Configuration/ConfigurationState.cs
+++ b/Ryujinx.Common/Configuration/ConfigurationState.cs
@@ -44,11 +44,28 @@ namespace Ryujinx.Configuration
}
}
+ public class ColumnSortSettings
+ {
+ public ReactiveObject SortColumnId { get; private set; }
+ public ReactiveObject SortAscending { get; private set; }
+
+ public ColumnSortSettings()
+ {
+ SortColumnId = new ReactiveObject();
+ SortAscending = new ReactiveObject();
+ }
+ }
+
///
/// Used to toggle columns in the GUI
///
public Columns GuiColumns { get; private set; }
+ ///
+ /// Used to configure column sort settings in the GUI
+ ///
+ public ColumnSortSettings ColumnSort { get; private set; }
+
///
/// A list of directories containing games to be used to load games into the games list
///
@@ -67,6 +84,7 @@ namespace Ryujinx.Configuration
public UiSection()
{
GuiColumns = new Columns();
+ ColumnSort = new ColumnSortSettings();
GameDirs = new ReactiveObject>();
EnableCustomTheme = new ReactiveObject();
CustomThemePath = new ReactiveObject();
@@ -217,6 +235,11 @@ namespace Ryujinx.Configuration
///
public ReactiveObject EnableKeyboard { get; private set; }
+ ///
+ /// Hotkey Keyboard Bindings
+ ///
+ public ReactiveObject Hotkeys { get; private set; }
+
///
/// Input device configuration.
/// NOTE: This ReactiveObject won't issue an event when the List has elements added or removed.
@@ -227,6 +250,7 @@ namespace Ryujinx.Configuration
public HidSection()
{
EnableKeyboard = new ReactiveObject();
+ Hotkeys = new ReactiveObject();
InputConfig = new ReactiveObject>();
}
}
@@ -347,7 +371,7 @@ namespace Ryujinx.Configuration
EnableFsIntegrityChecks = System.EnableFsIntegrityChecks,
FsGlobalAccessLogMode = System.FsGlobalAccessLogMode,
IgnoreMissingServices = System.IgnoreMissingServices,
- GuiColumns = new GuiColumns()
+ GuiColumns = new GuiColumns
{
FavColumn = Ui.GuiColumns.FavColumn,
IconColumn = Ui.GuiColumns.IconColumn,
@@ -360,10 +384,16 @@ namespace Ryujinx.Configuration
FileSizeColumn = Ui.GuiColumns.FileSizeColumn,
PathColumn = Ui.GuiColumns.PathColumn,
},
+ ColumnSort = new ColumnSort
+ {
+ SortColumnId = Ui.ColumnSort.SortColumnId,
+ SortAscending = Ui.ColumnSort.SortAscending
+ },
GameDirs = Ui.GameDirs,
EnableCustomTheme = Ui.EnableCustomTheme,
CustomThemePath = Ui.CustomThemePath,
EnableKeyboard = Hid.EnableKeyboard,
+ Hotkeys = Hid.Hotkeys,
KeyboardConfig = keyboardConfigList,
ControllerConfig = controllerConfigList
};
@@ -406,10 +436,17 @@ namespace Ryujinx.Configuration
Ui.GuiColumns.FileExtColumn.Value = true;
Ui.GuiColumns.FileSizeColumn.Value = true;
Ui.GuiColumns.PathColumn.Value = true;
+ Ui.ColumnSort.SortColumnId.Value = 0;
+ Ui.ColumnSort.SortAscending.Value = false;
Ui.GameDirs.Value = new List();
Ui.EnableCustomTheme.Value = false;
Ui.CustomThemePath.Value = "";
Hid.EnableKeyboard.Value = false;
+
+ Hid.Hotkeys.Value = new KeyboardHotkeys
+ {
+ ToggleVsync = Key.Tab
+ };
Hid.InputConfig.Value = new List
{
@@ -451,10 +488,6 @@ namespace Ryujinx.Configuration
ButtonZr = Key.O,
ButtonSl = Key.PageUp,
ButtonSr = Key.PageDown
- },
- Hotkeys = new KeyboardHotkeys
- {
- ToggleVsync = Key.Tab
}
}
};
@@ -553,10 +586,6 @@ namespace Ryujinx.Configuration
ButtonZr = Key.O,
ButtonSl = Key.Unbound,
ButtonSr = Key.Unbound
- },
- Hotkeys = new KeyboardHotkeys
- {
- ToggleVsync = Key.Tab
}
}
};
@@ -587,6 +616,24 @@ namespace Ryujinx.Configuration
configurationFileUpdated = true;
}
+ if (configurationFileFormat.Version < 9)
+ {
+ Common.Logging.Logger.PrintWarning(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 9.");
+
+ configurationFileFormat.ColumnSort = new ColumnSort
+ {
+ SortColumnId = 0,
+ SortAscending = false
+ };
+
+ configurationFileFormat.Hotkeys = new KeyboardHotkeys
+ {
+ ToggleVsync = Key.Tab
+ };
+
+ configurationFileUpdated = true;
+ }
+
List inputConfig = new List();
foreach (ControllerConfig controllerConfig in configurationFileFormat.ControllerConfig)
{
@@ -631,10 +678,13 @@ namespace Ryujinx.Configuration
Ui.GuiColumns.FileExtColumn.Value = configurationFileFormat.GuiColumns.FileExtColumn;
Ui.GuiColumns.FileSizeColumn.Value = configurationFileFormat.GuiColumns.FileSizeColumn;
Ui.GuiColumns.PathColumn.Value = configurationFileFormat.GuiColumns.PathColumn;
+ Ui.ColumnSort.SortColumnId.Value = configurationFileFormat.ColumnSort.SortColumnId;
+ Ui.ColumnSort.SortAscending.Value = configurationFileFormat.ColumnSort.SortAscending;
Ui.GameDirs.Value = configurationFileFormat.GameDirs;
Ui.EnableCustomTheme.Value = configurationFileFormat.EnableCustomTheme;
Ui.CustomThemePath.Value = configurationFileFormat.CustomThemePath;
Hid.EnableKeyboard.Value = configurationFileFormat.EnableKeyboard;
+ Hid.Hotkeys.Value = configurationFileFormat.Hotkeys;
Hid.InputConfig.Value = inputConfig;
if (configurationFileUpdated)
diff --git a/Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs b/Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs
index 7dfbcb87e1..4e217ae5d1 100644
--- a/Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs
+++ b/Ryujinx.Common/Configuration/Hid/KeyboardConfig.cs
@@ -14,10 +14,5 @@ namespace Ryujinx.Common.Configuration.Hid
/// Right JoyCon Keyboard Bindings
///
public NpadKeyboardRight RightJoycon { get; set; }
-
- ///
- /// Hotkey Keyboard Bindings
- ///
- public KeyboardHotkeys Hotkeys { get; set; }
}
}
\ No newline at end of file
diff --git a/Ryujinx.Common/Configuration/Ui/ColumnSort.cs b/Ryujinx.Common/Configuration/Ui/ColumnSort.cs
new file mode 100644
index 0000000000..fd8b5da1aa
--- /dev/null
+++ b/Ryujinx.Common/Configuration/Ui/ColumnSort.cs
@@ -0,0 +1,8 @@
+namespace Ryujinx.Configuration.Ui
+{
+ public struct ColumnSort
+ {
+ public int SortColumnId { get; set; }
+ public bool SortAscending { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/Ryujinx/Config.json b/Ryujinx/Config.json
index e87d34b109..a23df338e7 100644
--- a/Ryujinx/Config.json
+++ b/Ryujinx/Config.json
@@ -1,5 +1,5 @@
{
- "version": 8,
+ "version": 9,
"max_anisotropy": -1,
"graphics_shaders_dump_path": "",
"logging_enable_debug": false,
@@ -35,10 +35,17 @@
"file_size_column": true,
"path_column": true
},
+ "column_sort": {
+ "sort_column_id": 0,
+ "sort_ascending": false
+ },
"game_dirs": [],
"enable_custom_theme": false,
"custom_theme_path": "",
"enable_keyboard": false,
+ "hotkeys": {
+ "toggle_vsync": "Tab"
+ },
"keyboard_config": [
{
"index": 0,
@@ -75,9 +82,6 @@
"button_zr": "O",
"button_sl": "Unbound",
"button_sr": "Unbound"
- },
- "hotkeys": {
- "toggle_vsync": "Tab"
}
}
],
diff --git a/Ryujinx/Ui/ApplicationData.cs b/Ryujinx/Ui/ApplicationData.cs
index 49d7dfaad2..34784c6c9f 100644
--- a/Ryujinx/Ui/ApplicationData.cs
+++ b/Ryujinx/Ui/ApplicationData.cs
@@ -17,7 +17,6 @@ namespace Ryujinx.Ui
public string FileExtension { get; set; }
public string FileSize { get; set; }
public string Path { get; set; }
- public string SaveDataPath { get; set; }
public BlitStruct ControlHolder { get; set; }
}
}
diff --git a/Ryujinx/Ui/ApplicationLibrary.cs b/Ryujinx/Ui/ApplicationLibrary.cs
index 776f4fa4cc..5e8a24327a 100644
--- a/Ryujinx/Ui/ApplicationLibrary.cs
+++ b/Ryujinx/Ui/ApplicationLibrary.cs
@@ -131,7 +131,6 @@ namespace Ryujinx.Ui
string titleId = "0000000000000000";
string developer = "Unknown";
string version = "0";
- string saveDataPath = null;
byte[] applicationIcon = null;
BlitStruct controlHolder = new BlitStruct(1);
@@ -389,20 +388,6 @@ namespace Ryujinx.Ui
ApplicationMetadata appMetadata = LoadAndSaveMetaData(titleId);
- if (ulong.TryParse(titleId, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out ulong titleIdNum))
- {
- SaveDataFilter filter = new SaveDataFilter();
- filter.SetUserId(new UserId(1, 0));
- filter.SetProgramId(new TitleId(titleIdNum));
-
- Result result = virtualFileSystem.FsClient.FindSaveDataWithFilter(out SaveDataInfo saveDataInfo, SaveDataSpaceId.User, ref filter);
-
- if (result.IsSuccess())
- {
- saveDataPath = Path.Combine(virtualFileSystem.GetNandPath(), "user", "save", saveDataInfo.SaveDataId.ToString("x16"));
- }
- }
-
ApplicationData data = new ApplicationData
{
Favorite = appMetadata.Favorite,
@@ -416,7 +401,6 @@ namespace Ryujinx.Ui
FileExtension = Path.GetExtension(applicationPath).ToUpper().Remove(0, 1),
FileSize = (fileSize < 1) ? (fileSize * 1024).ToString("0.##") + "MB" : fileSize.ToString("0.##") + "GB",
Path = applicationPath,
- SaveDataPath = saveDataPath,
ControlHolder = controlHolder
};
diff --git a/Ryujinx/Ui/ControllerWindow.cs b/Ryujinx/Ui/ControllerWindow.cs
index 47d6db196b..35c3859fc0 100644
--- a/Ryujinx/Ui/ControllerWindow.cs
+++ b/Ryujinx/Ui/ControllerWindow.cs
@@ -419,10 +419,6 @@ namespace Ryujinx.Ui
ButtonZr = rButtonZr,
ButtonSl = rButtonSl,
ButtonSr = rButtonSr
- },
- Hotkeys = new KeyboardHotkeys
- {
- ToggleVsync = Key.Tab //TODO: Make this an option in the GUI
}
};
}
@@ -754,10 +750,6 @@ namespace Ryujinx.Ui
ButtonZr = Key.O,
ButtonSl = Key.Unbound,
ButtonSr = Key.Unbound
- },
- Hotkeys = new KeyboardHotkeys
- {
- ToggleVsync = Key.Tab
}
};
}
diff --git a/Ryujinx/Ui/GLRenderer.cs b/Ryujinx/Ui/GLRenderer.cs
index 6651358d31..17b592a70a 100644
--- a/Ryujinx/Ui/GLRenderer.cs
+++ b/Ryujinx/Ui/GLRenderer.cs
@@ -449,17 +449,6 @@ namespace Ryujinx.Ui
{
_device.Hid.Keyboard.Update(hidKeyboard.Value);
}
-
- // Toggle vsync
- HotkeyButtons currentHotkeyButtons = keyboardController.GetHotkeyButtons();
-
- if (currentHotkeyButtons.HasFlag(HotkeyButtons.ToggleVSync) &&
- !_prevHotkeyButtons.HasFlag(HotkeyButtons.ToggleVSync))
- {
- _device.EnableDeviceVsync = !_device.EnableDeviceVsync;
- }
-
- _prevHotkeyButtons = currentHotkeyButtons;
}
}
else if (inputConfig is Common.Configuration.Hid.ControllerConfig controllerConfig)
@@ -498,6 +487,17 @@ namespace Ryujinx.Ui
_device.Hid.Npads.SetGamepadsInput(gamepadInputs.ToArray());
+ // Hotkeys
+ HotkeyButtons currentHotkeyButtons = KeyboardController.GetHotkeyButtons(OpenTK.Input.Keyboard.GetState());
+
+ if (currentHotkeyButtons.HasFlag(HotkeyButtons.ToggleVSync) &&
+ !_prevHotkeyButtons.HasFlag(HotkeyButtons.ToggleVSync))
+ {
+ _device.EnableDeviceVsync = !_device.EnableDeviceVsync;
+ }
+
+ _prevHotkeyButtons = currentHotkeyButtons;
+
//Touchscreen
bool hasTouch = false;
diff --git a/Ryujinx/Ui/KeyboardController.cs b/Ryujinx/Ui/KeyboardController.cs
index efa7bf5668..f52642e3e1 100644
--- a/Ryujinx/Ui/KeyboardController.cs
+++ b/Ryujinx/Ui/KeyboardController.cs
@@ -1,6 +1,7 @@
using System;
using OpenTK.Input;
using Ryujinx.Common.Configuration.Hid;
+using Ryujinx.Configuration;
using Ryujinx.HLE.HOS.Services.Hid;
namespace Ryujinx.Ui
@@ -91,20 +92,21 @@ namespace Ryujinx.Ui
return (dx, dy);
}
- public HotkeyButtons GetHotkeyButtons()
+ public static HotkeyButtons GetHotkeyButtons(KeyboardState keyboard)
{
- KeyboardState keyboard = GetKeyboardState(_config.Index);
-
HotkeyButtons buttons = 0;
- if (keyboard[(Key)_config.Hotkeys.ToggleVsync]) buttons |= HotkeyButtons.ToggleVSync;
+ if (keyboard[(Key)ConfigurationState.Instance.Hid.Hotkeys.Value.ToggleVsync])
+ {
+ buttons |= HotkeyButtons.ToggleVSync;
+ }
return buttons;
}
class KeyMappingEntry
{
- public Key TargetKey;
+ public Key TargetKey;
public byte Target;
}
diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs
index 342acc9f8f..3bfeee5578 100644
--- a/Ryujinx/Ui/MainWindow.cs
+++ b/Ryujinx/Ui/MainWindow.cs
@@ -167,7 +167,11 @@ namespace Ryujinx.Ui
_tableStore.SetSortFunc(5, TimePlayedSort);
_tableStore.SetSortFunc(6, LastPlayedSort);
_tableStore.SetSortFunc(8, FileSizeSort);
- _tableStore.SetSortColumnId(0, SortType.Descending);
+
+ int columnId = ConfigurationState.Instance.Ui.ColumnSort.SortColumnId;
+ bool ascending = ConfigurationState.Instance.Ui.ColumnSort.SortAscending;
+
+ _tableStore.SetSortColumnId(columnId, ascending ? SortType.Ascending : SortType.Descending);
_gameTable.EnableSearch = true;
_gameTable.SearchColumn = 2;
@@ -254,15 +258,45 @@ namespace Ryujinx.Ui
foreach (TreeViewColumn column in _gameTable.Columns)
{
- if (column.Title == "Fav" && ConfigurationState.Instance.Ui.GuiColumns.FavColumn) column.SortColumnId = 0;
- else if (column.Title == "Application" && ConfigurationState.Instance.Ui.GuiColumns.AppColumn) column.SortColumnId = 2;
- else if (column.Title == "Developer" && ConfigurationState.Instance.Ui.GuiColumns.DevColumn) column.SortColumnId = 3;
- else if (column.Title == "Version" && ConfigurationState.Instance.Ui.GuiColumns.VersionColumn) column.SortColumnId = 4;
- else if (column.Title == "Time Played" && ConfigurationState.Instance.Ui.GuiColumns.TimePlayedColumn) column.SortColumnId = 5;
- else if (column.Title == "Last Played" && ConfigurationState.Instance.Ui.GuiColumns.LastPlayedColumn) column.SortColumnId = 6;
- else if (column.Title == "File Ext" && ConfigurationState.Instance.Ui.GuiColumns.FileExtColumn) column.SortColumnId = 7;
- else if (column.Title == "File Size" && ConfigurationState.Instance.Ui.GuiColumns.FileSizeColumn) column.SortColumnId = 8;
- else if (column.Title == "Path" && ConfigurationState.Instance.Ui.GuiColumns.PathColumn) column.SortColumnId = 9;
+ switch (column.Title)
+ {
+ case "Fav":
+ column.SortColumnId = 0;
+ column.Clicked += Column_Clicked;
+ break;
+ case "Application":
+ column.SortColumnId = 2;
+ column.Clicked += Column_Clicked;
+ break;
+ case "Developer":
+ column.SortColumnId = 3;
+ column.Clicked += Column_Clicked;
+ break;
+ case "Version":
+ column.SortColumnId = 4;
+ column.Clicked += Column_Clicked;
+ break;
+ case "Time Played":
+ column.SortColumnId = 5;
+ column.Clicked += Column_Clicked;
+ break;
+ case "Last Played":
+ column.SortColumnId = 6;
+ column.Clicked += Column_Clicked;
+ break;
+ case "File Ext":
+ column.SortColumnId = 7;
+ column.Clicked += Column_Clicked;
+ break;
+ case "File Size":
+ column.SortColumnId = 8;
+ column.Clicked += Column_Clicked;
+ break;
+ case "Path":
+ column.SortColumnId = 9;
+ column.Clicked += Column_Clicked;
+ break;
+ }
}
}
@@ -666,6 +700,11 @@ namespace Ryujinx.Ui
}
_progressBar.Value = barValue;
+
+ if (args.NumAppsLoaded == args.NumAppsFound) // Reset the vertical scrollbar to the top when titles finish loading
+ {
+ _gameTableWindow.Vadjustment.Value = 0;
+ }
});
}
@@ -707,6 +746,16 @@ namespace Ryujinx.Ui
});
}
+ private void Column_Clicked(object sender, EventArgs args)
+ {
+ TreeViewColumn column = (TreeViewColumn)sender;
+
+ ConfigurationState.Instance.Ui.ColumnSort.SortColumnId.Value = column.SortColumnId;
+ ConfigurationState.Instance.Ui.ColumnSort.SortAscending.Value = column.SortOrder == SortType.Ascending;
+
+ SaveConfig();
+ }
+
private void Row_Activated(object sender, RowActivatedArgs args)
{
_gameTableSelection.GetSelected(out TreeIter treeIter);
diff --git a/Ryujinx/_schema.json b/Ryujinx/_schema.json
index c940d4c90d..6d57b7887b 100644
--- a/Ryujinx/_schema.json
+++ b/Ryujinx/_schema.json
@@ -22,10 +22,9 @@
"enable_ptc",
"enable_fs_integrity_checks",
"fs_global_access_log_mode",
- "controller_type",
"enable_keyboard",
- "keyboard_controls",
- "joystick_controls"
+ "keyboard_config",
+ "controller_config"
],
"definitions": {
"key": {
@@ -222,9 +221,498 @@
"Hat2Left",
"Hat2Right"
]
+ },
+ "keyboard_config": {
+ "type": "object",
+ "properties": {
+ "index": {
+ "$id": "#/definitions/keyboard_config/properties/index",
+ "type": "integer",
+ "title": "Keyboard Index",
+ "description": "Keyboard Device Index",
+ "default": 0,
+ "minimum": 0,
+ "examples": [
+ 0,
+ 1,
+ 2
+ ]
+ },
+ "controller_type": {
+ "$id": "#/properties/keyboard_config/properties/controller_type",
+ "type": "string",
+ "title": "Controller Type",
+ "default": "Handheld",
+ "enum": [
+ "Handheld",
+ "ProController",
+ "JoyconPair",
+ "JoyconLeft",
+ "JoyconRight"
+ ],
+ "examples": [
+ "Handheld",
+ "ProController",
+ "JoyconPair",
+ "JoyconLeft",
+ "JoyconRight"
+ ]
+ },
+ "player_index": {
+ "$id": "#/properties/keyboard_config/properties/player_index",
+ "type": "string",
+ "title": "Player Index",
+ "default": "Player1",
+ "enum": [
+ "Player1",
+ "Player2",
+ "Player3",
+ "Player4",
+ "Player5",
+ "Player6",
+ "Player7",
+ "Player8",
+ "Handheld"
+ ]
+ },
+ "left_joycon": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon",
+ "type": "object",
+ "title": "Left JoyCon Controls",
+ "required": [
+ "stick_up",
+ "stick_down",
+ "stick_left",
+ "stick_right",
+ "stick_button",
+ "dpad_up",
+ "dpad_down",
+ "dpad_left",
+ "dpad_right",
+ "button_minus",
+ "button_l",
+ "button_zl"
+ ],
+ "properties": {
+ "stick_up": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/stick_up",
+ "$ref": "#/definitions/key",
+ "title": "Stick Up",
+ "default": "w"
+ },
+ "stick_down": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/stick_down",
+ "$ref": "#/definitions/key",
+ "title": "Stick Down",
+ "default": "S"
+ },
+ "stick_left": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/stick_left",
+ "$ref": "#/definitions/key",
+ "title": "Stick Left",
+ "default": "A"
+ },
+ "stick_right": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/stick_right",
+ "$ref": "#/definitions/key",
+ "title": "Stick Right",
+ "default": "D"
+ },
+ "stick_button": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/stick_button",
+ "$ref": "#/definitions/key",
+ "title": "Stick Button",
+ "default": "F"
+ },
+ "dpad_up": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/dpad_up",
+ "$ref": "#/definitions/key",
+ "title": "Dpad Up",
+ "default": "Up"
+ },
+ "dpad_down": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/dpad_down",
+ "$ref": "#/definitions/key",
+ "title": "Dpad Down",
+ "default": "Down"
+ },
+ "dpad_left": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/dpad_left",
+ "$ref": "#/definitions/key",
+ "title": "Dpad Left",
+ "default": "Left"
+ },
+ "dpad_right": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/dpad_right",
+ "$ref": "#/definitions/key",
+ "title": "Dpad Right",
+ "default": "Right"
+ },
+ "button_minus": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/button_minus",
+ "$ref": "#/definitions/key",
+ "title": "Button Minus",
+ "default": "Minus"
+ },
+ "button_l": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/button_l",
+ "$ref": "#/definitions/key",
+ "title": "Button L",
+ "default": "E"
+ },
+ "button_zl": {
+ "$id": "#/definitions/keyboard_config/properties/left_joycon/properties/button_zl",
+ "$ref": "#/definitions/key",
+ "title": "Button ZL",
+ "default": "Q"
+ }
+ }
+ },
+ "right_joycon": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon",
+ "type": "object",
+ "title": "Right JoyCon Controls",
+ "required": [
+ "stick_up",
+ "stick_down",
+ "stick_left",
+ "stick_right",
+ "stick_button",
+ "button_a",
+ "button_b",
+ "button_x",
+ "button_y",
+ "button_plus",
+ "button_r",
+ "button_zr"
+ ],
+ "properties": {
+ "stick_up": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/stick_up",
+ "$ref": "#/definitions/key",
+ "title": "Stick Up",
+ "default": "I"
+ },
+ "stick_down": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/stick_down",
+ "$ref": "#/definitions/key",
+ "title": "Stick Down",
+ "default": "K"
+ },
+ "stick_left": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/stick_left",
+ "$ref": "#/definitions/key",
+ "title": "Stick Left",
+ "default": "J"
+ },
+ "stick_right": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/stick_right",
+ "$ref": "#/definitions/key",
+ "title": "Stick Right",
+ "default": "L"
+ },
+ "stick_button": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/stick_button",
+ "$ref": "#/definitions/key",
+ "title": "Stick Button",
+ "default": "H"
+ },
+ "button_a": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/button_a",
+ "$ref": "#/definitions/key",
+ "title": "Button A",
+ "default": "Z"
+ },
+ "button_b": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/button_b",
+ "$ref": "#/definitions/key",
+ "title": "Button B",
+ "default": "X"
+ },
+ "button_x": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/button_x",
+ "$ref": "#/definitions/key",
+ "title": "Button X",
+ "default": "C"
+ },
+ "button_y": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/button_y",
+ "$ref": "#/definitions/key",
+ "title": "Button Y",
+ "default": "V"
+ },
+ "button_plus": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/button_plus",
+ "$ref": "#/definitions/key",
+ "title": "Button Plus",
+ "default": "Plus"
+ },
+ "button_r": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/button_r",
+ "$ref": "#/definitions/key",
+ "title": "Button R",
+ "default": "U"
+ },
+ "button_zr": {
+ "$id": "#/definitions/keyboard_config/properties/right_joycon/properties/button_zr",
+ "$ref": "#/definitions/key",
+ "title": "Button Zr",
+ "default": "O"
+ }
+ }
+ }
+ }
+ },
+ "controller_config": {
+ "type": "object",
+ "properties": {
+ "index": {
+ "$id": "#/definitions/controller_config/properties/index",
+ "type": "integer",
+ "title": "Controller Index",
+ "description": "Controller Device Index",
+ "default": 0,
+ "minimum": 0,
+ "examples": [
+ 0,
+ 1,
+ 2
+ ]
+ },
+ "controller_type": {
+ "$id": "#/properties/controller_config/properties/controller_type",
+ "type": "string",
+ "title": "Controller Type",
+ "default": "Handheld",
+ "enum": [
+ "Handheld",
+ "ProController",
+ "JoyconPair",
+ "JoyconLeft",
+ "JoyconRight"
+ ],
+ "examples": [
+ "Handheld",
+ "ProController",
+ "JoyconPair",
+ "JoyconLeft",
+ "JoyconRight"
+ ]
+ },
+ "player_index": {
+ "$id": "#/properties/controller_config/properties/player_index",
+ "type": "string",
+ "title": "Player Index",
+ "default": "Player1",
+ "enum": [
+ "Player1",
+ "Player2",
+ "Player3",
+ "Player4",
+ "Player5",
+ "Player6",
+ "Player7",
+ "Player8",
+ "Handheld"
+ ]
+ },
+ "deadzone_left": {
+ "$id": "#/definitions/controller_config/properties/deadzone_left",
+ "type": "number",
+ "title": "Left Joystick Deadzone",
+ "description": "Controller Left Analog Stick Deadzone",
+ "default": 0.05,
+ "minimum": 0.00,
+ "maximum": 1.00,
+ "examples": [
+ 0.05
+ ]
+ },
+ "deadzone_right": {
+ "$id": "#/definitions/controller_config/properties/deadzone_right",
+ "type": "number",
+ "title": "Right Joystick Deadzone",
+ "description": "Controller Right Analog Stick Deadzone",
+ "default": 0.05,
+ "minimum": 0.00,
+ "maximum": 1.00,
+ "examples": [
+ 0.05
+ ]
+ },
+ "trigger_threshold": {
+ "$id": "#/definitions/controller_config/properties/trigger_threshold",
+ "type": "number",
+ "title": "Controller Trigger Threshold",
+ "description": "The value of how pressed down each trigger has to be in order to register a button press",
+ "default": 0.5,
+ "minimum": 0.0,
+ "maximum": 1.0,
+ "examples": [
+ 0.5
+ ]
+ },
+ "left_joycon": {
+ "$id": "#/definitions/controller_config/properties/left_joycon",
+ "type": "object",
+ "title": "Left JoyCon Controls",
+ "required": [
+ "stick",
+ "stick_button",
+ "dpad_up",
+ "dpad_down",
+ "dpad_left",
+ "dpad_right",
+ "button_minus",
+ "button_l",
+ "button_zl"
+ ],
+ "properties": {
+ "stick": {
+ "$id": "#/definitions/controller_config/properties/left_joycon/properties/stick",
+ "$ref": "#/definitions/input",
+ "title": "Stick",
+ "default": "Axis0"
+ },
+ "stick_button": {
+ "$id": "#/definitions/controller_config/properties/left_joycon/properties/stick_button",
+ "$ref": "#/definitions/input",
+ "title": "Stick Button",
+ "default": "Button13"
+ },
+ "dpad_up": {
+ "$id": "#/definitions/controller_config/properties/left_joycon/properties/dpad_up",
+ "$ref": "#/definitions/input",
+ "title": "Dpad Up",
+ "default": "Hat0Up"
+ },
+ "dpad_down": {
+ "$id": "#/definitions/controller_config/properties/left_joycon/properties/dpad_down",
+ "$ref": "#/definitions/input",
+ "title": "Dpad Down",
+ "default": "Hat0Down"
+ },
+ "dpad_left": {
+ "$id": "#/definitions/controller_config/properties/left_joycon/properties/dpad_left",
+ "$ref": "#/definitions/input",
+ "title": "Dpad Left",
+ "default": "Hat0Left"
+ },
+ "dpad_right": {
+ "$id": "#/definitions/controller_config/properties/left_joycon/properties/dpad_right",
+ "$ref": "#/definitions/input",
+ "title": "Dpad Right",
+ "default": "Hat0Right"
+ },
+ "button_minus": {
+ "$id": "#/definitions/controller_config/properties/left_joycon/properties/button_minus",
+ "$ref": "#/definitions/input",
+ "title": "Button Minus",
+ "default": "Button10"
+ },
+ "button_l": {
+ "$id": "#/definitions/controller_config/properties/left_joycon/properties/button_l",
+ "$ref": "#/definitions/input",
+ "title": "Button L",
+ "default": "Button6"
+ },
+ "button_zl": {
+ "$id": "#/definitions/controller_config/properties/left_joycon/properties/button_zl",
+ "$ref": "#/definitions/input",
+ "title": "Button ZL",
+ "default": "Button8"
+ }
+ }
+ },
+ "right_joycon": {
+ "$id": "#/definitions/controller_config/properties/right_joycon",
+ "type": "object",
+ "title": "Right JoyCon Controls",
+ "required": [
+ "stick",
+ "stick_button",
+ "button_a",
+ "button_b",
+ "button_x",
+ "button_y",
+ "button_plus",
+ "button_r",
+ "button_zr"
+ ],
+ "properties": {
+ "stick": {
+ "$id": "#/definitions/controller_config/properties/right_joycon/properties/stick",
+ "$ref": "#/definitions/input",
+ "title": "Stick",
+ "default": "Axis2"
+ },
+ "stick_button": {
+ "$id": "#/definitions/controller_config/properties/right_joycon/properties/stick_button",
+ "$ref": "#/definitions/input",
+ "title": "Stick Button",
+ "default": "Button14"
+ },
+ "button_a": {
+ "$id": "#/definitions/controller_config/properties/right_joycon/properties/button_a",
+ "$ref": "#/definitions/input",
+ "title": "Button A",
+ "default": "Button0"
+ },
+ "button_b": {
+ "$id": "#/definitions/controller_config/properties/right_joycon/properties/button_b",
+ "$ref": "#/definitions/input",
+ "title": "Button B",
+ "default": "Button1"
+ },
+ "button_x": {
+ "$id": "#/definitions/controller_config/properties/right_joycon/properties/button_x",
+ "$ref": "#/definitions/input",
+ "title": "Button X",
+ "default": "Button3"
+ },
+ "button_y": {
+ "$id": "#/definitions/controller_config/properties/right_joycon/properties/button_y",
+ "$ref": "#/definitions/input",
+ "title": "Button Y",
+ "default": "Button4"
+ },
+ "button_plus": {
+ "$id": "#/definitions/controller_config/properties/right_joycon/properties/button_plus",
+ "$ref": "#/definitions/input",
+ "title": "Button Plus",
+ "default": "Button11"
+ },
+ "button_r": {
+ "$id": "#/definitions/controller_config/properties/right_joycon/properties/button_r",
+ "$ref": "#/definitions/input",
+ "title": "Button R",
+ "default": "Button7"
+ },
+ "button_zr": {
+ "$id": "#/definitions/controller_config/properties/right_joycon/properties/button_zr",
+ "$ref": "#/definitions/input",
+ "title": "Button ZR",
+ "default": "Button9"
+ }
+ }
+ }
+ }
}
},
"properties": {
+ "max_anisotropy": {
+ "$id": "#/properties/max_anisotropy",
+ "type": "integer",
+ "title": "Max Anisotropy. Values range from 0 - 16. Set to -1 to let the game decide.",
+ "description": "Max Anisotropy. Values range from 0 - 16. Set to -1 to let the game decide.",
+ "default": -1,
+ "examples": [
+ -1,
+ 4,
+ 8,
+ 16
+ ]
+ },
"graphics_shaders_dump_path": {
"$id": "#/properties/graphics_shaders_dump_path",
"type": "string",
@@ -526,6 +1014,94 @@
false
]
},
+ "gui_columns": {
+ "$id": "#/properties/gui_columns",
+ "type": "object",
+ "title": "Used to toggle columns in the GUI",
+ "description": "Used to toggle columns in the GUI",
+ "properties": {
+ "fav_column": {
+ "$id": "#/properties/gui_columns/properties/fav_column",
+ "type": "boolean",
+ "title": "",
+ "default": true
+ },
+ "icon_column": {
+ "$id": "#/properties/gui_columns/properties/icon_column",
+ "type": "boolean",
+ "title": "",
+ "default": true
+ },
+ "app_column": {
+ "$id": "#/properties/gui_columns/properties/app_column",
+ "type": "boolean",
+ "title": "",
+ "default": true
+ },
+ "dev_column": {
+ "$id": "#/properties/gui_columns/properties/dev_column",
+ "type": "boolean",
+ "title": "",
+ "default": true
+ },
+ "version_column": {
+ "$id": "#/properties/gui_columns/properties/version_column",
+ "type": "boolean",
+ "title": "",
+ "default": true
+ },
+ "time_played_column": {
+ "$id": "#/properties/gui_columns/properties/time_played_column",
+ "type": "boolean",
+ "title": "",
+ "default": true
+ },
+ "last_played_column": {
+ "$id": "#/properties/gui_columns/properties/last_played_column",
+ "type": "boolean",
+ "title": "",
+ "default": true
+ },
+ "file_ext_column": {
+ "$id": "#/properties/gui_columns/properties/file_ext_column",
+ "type": "boolean",
+ "title": "",
+ "default": true
+ },
+ "file_size_column": {
+ "$id": "#/properties/gui_columns/properties/file_size_column",
+ "type": "boolean",
+ "title": "",
+ "default": true
+ },
+ "path_column": {
+ "$id": "#/properties/gui_columns/properties/path_column",
+ "type": "boolean",
+ "title": "",
+ "default": true
+ }
+ }
+ },
+ "column_sort": {
+ "$id": "#/properties/column_sort",
+ "type": "object",
+ "title": "Used to configure column sort settings in the GUI",
+ "description": "Used to configure column sort settings in the GUI",
+ "properties": {
+ "sort_column_id": {
+ "$id": "#/properties/column_sort/properties/sort_column_id",
+ "type": "integer",
+ "title": "",
+ "default": 0
+ },
+ "sort_ascending": {
+ "$id": "#/properties/column_sort/properties/sort_ascending",
+ "type": "boolean",
+ "title": "",
+ "default": false
+ }
+ }
+ },
"game_dirs": {
"$id": "#/properties/game_dirs",
"type": "array",
@@ -533,24 +1109,6 @@
"description": "A list of directories containing games to be used to load games into the games list",
"default": []
},
- "gui_columns": {
- "$id": "#/properties/gui_columns",
- "type": "array",
- "title": "Used to toggle columns in the GUI",
- "description": "Used to toggle columns in the GUI",
- "default": {
- "fav_column": true,
- "icon_column": true,
- "app_column": true,
- "dev_column": true,
- "version_column": true,
- "time_played_column": true,
- "last_played_column": true,
- "file_ext_column": true,
- "file_size_column": true,
- "path_column": true
- }
- },
"enable_custom_theme": {
"$id": "#/properties/enable_custom_theme",
"type": "boolean",
@@ -569,26 +1127,6 @@
"description": "Path to custom GUI theme",
"default": ""
},
- "controller_type": {
- "$id": "#/properties/controller_type",
- "type": "string",
- "title": "Controller Type",
- "default": "Handheld",
- "enum": [
- "Handheld",
- "ProController",
- "NpadPair",
- "NpadLeft",
- "NpadRight"
- ],
- "examples": [
- "Handheld",
- "ProController",
- "NpadPair",
- "NpadLeft",
- "NpadRight"
- ]
- },
"enable_keyboard": {
"$id": "#/properties/enable_keyboard",
"type": "boolean",
@@ -600,421 +1138,77 @@
false
]
},
- "keyboard_controls": {
- "$id": "#/properties/keyboard_controls",
+ "hotkeys": {
+ "$id": "#/properties/hotkeys",
"type": "object",
- "title": "Keyboard Controls",
+ "title": "Hotkey Controls",
"required": [
- "left_joycon",
- "right_joycon"
+ "toggle_vsync"
],
"properties": {
- "left_joycon": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon",
- "type": "object",
- "title": "Left JoyCon Controls",
- "required": [
- "stick_up",
- "stick_down",
- "stick_left",
- "stick_right",
- "stick_button",
- "dpad_up",
- "dpad_down",
- "dpad_left",
- "dpad_right",
- "button_minus",
- "button_l",
- "button_zl"
- ],
- "properties": {
- "stick_up": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/stick_up",
- "$ref": "#/definitions/key",
- "title": "Stick Up",
- "default": "w"
- },
- "stick_down": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/stick_down",
- "$ref": "#/definitions/key",
- "title": "Stick Down",
- "default": "S"
- },
- "stick_left": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/stick_left",
- "$ref": "#/definitions/key",
- "title": "Stick Left",
- "default": "A"
- },
- "stick_right": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/stick_right",
- "$ref": "#/definitions/key",
- "title": "Stick Right",
- "default": "D"
- },
- "stick_button": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/stick_button",
- "$ref": "#/definitions/key",
- "title": "Stick Button",
- "default": "F"
- },
- "dpad_up": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/dpad_up",
- "$ref": "#/definitions/key",
- "title": "Dpad Up",
- "default": "Up"
- },
- "dpad_down": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/dpad_down",
- "$ref": "#/definitions/key",
- "title": "Dpad Down",
- "default": "Down"
- },
- "dpad_left": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/dpad_left",
- "$ref": "#/definitions/key",
- "title": "Dpad Left",
- "default": "Left"
- },
- "dpad_right": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/dpad_right",
- "$ref": "#/definitions/key",
- "title": "Dpad Right",
- "default": "Right"
- },
- "button_minus": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/button_minus",
- "$ref": "#/definitions/key",
- "title": "Button Minus",
- "default": "Minus"
- },
- "button_l": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/button_l",
- "$ref": "#/definitions/key",
- "title": "Button L",
- "default": "E"
- },
- "button_zl": {
- "$id": "#/properties/keyboard_controls/properties/left_joycon/properties/button_zl",
- "$ref": "#/definitions/key",
- "title": "Button ZL",
- "default": "Q"
- }
- }
- },
- "right_joycon": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon",
- "type": "object",
- "title": "Right JoyCon Controls",
- "required": [
- "stick_up",
- "stick_down",
- "stick_left",
- "stick_right",
- "stick_button",
- "button_a",
- "button_b",
- "button_x",
- "button_y",
- "button_plus",
- "button_r",
- "button_zr"
- ],
- "properties": {
- "stick_up": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/stick_up",
- "$ref": "#/definitions/key",
- "title": "Stick Up",
- "default": "I"
- },
- "stick_down": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/stick_down",
- "$ref": "#/definitions/key",
- "title": "Stick Down",
- "default": "K"
- },
- "stick_left": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/stick_left",
- "$ref": "#/definitions/key",
- "title": "Stick Left",
- "default": "J"
- },
- "stick_right": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/stick_right",
- "$ref": "#/definitions/key",
- "title": "Stick Right",
- "default": "L"
- },
- "stick_button": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/stick_button",
- "$ref": "#/definitions/key",
- "title": "Stick Button",
- "default": "H"
- },
- "button_a": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/button_a",
- "$ref": "#/definitions/key",
- "title": "Button A",
- "default": "Z"
- },
- "button_b": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/button_b",
- "$ref": "#/definitions/key",
- "title": "Button B",
- "default": "X"
- },
- "button_x": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/button_x",
- "$ref": "#/definitions/key",
- "title": "Button X",
- "default": "C"
- },
- "button_y": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/button_y",
- "$ref": "#/definitions/key",
- "title": "Button Y",
- "default": "V"
- },
- "button_plus": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/button_plus",
- "$ref": "#/definitions/key",
- "title": "Button Plus",
- "default": "Plus"
- },
- "button_r": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/button_r",
- "$ref": "#/definitions/key",
- "title": "Button R",
- "default": "U"
- },
- "button_zr": {
- "$id": "#/properties/keyboard_controls/properties/right_joycon/properties/button_zr",
- "$ref": "#/definitions/key",
- "title": "Button Zr",
- "default": "O"
- }
- }
- },
- "hotkeys": {
- "$id": "#/properties/keyboard_controls/properties/hotkeys",
- "type": "object",
- "title": "Hotkey Controls",
- "required": [
- "toggle_vsync"
- ],
- "properties": {
- "toggle_vsync": {
- "$id": "#/properties/keyboard_controls/properties/hotkeys/properties/toggle_vsync",
- "$ref": "#/definitions/key",
- "title": "Toggle VSync",
- "default": "Tab"
- }
- }
+ "toggle_vsync": {
+ "$id": "#/properties/hotkeys/properties/toggle_vsync",
+ "$ref": "#/definitions/key",
+ "title": "Toggle VSync",
+ "default": "Tab"
}
}
},
- "joystick_controls": {
- "$id": "#/properties/joystick_controls",
- "type": "object",
- "title": "Joystick Controls",
- "required": [
- "left_joycon",
- "right_joycon"
- ],
- "properties": {
- "enable": {
- "$id": "#/properties/joystick_controls/properties/enable",
- "type": "boolean",
- "title": "Joystick Enable",
- "description": "Enables or disables controller support",
- "default": true,
- "examples": [
- true,
- false
- ]
- },
- "index": {
- "$id": "#/properties/joystick_controls/properties/index",
- "type": "integer",
- "title": "Joystick Index",
- "description": "Controller Device Index",
- "default": 0,
- "minimum": 0,
- "examples": [
- 0,
- 1,
- 2
- ]
- },
- "deadzone": {
- "$id": "#/properties/joystick_controls/properties/deadzone",
- "type": "number",
- "title": "Joystick Deadzone",
- "description": "Controller Analog Stick Deadzone",
- "default": 0.05,
- "minimum": 0.00,
- "maximum": 1.00,
- "examples": [
- 0.05
- ]
- },
- "trigger_threshold": {
- "$id": "#/properties/joystick_controls/properties/trigger_threshold",
- "type": "number",
- "title": "Controller Trigger Threshold",
- "description": "The value of how pressed down each trigger has to be in order to register a button press",
- "default": 0.5,
- "minimum": 0.0,
- "maximum": 1.0,
- "examples": [
- 0.5
- ]
- },
- "left_joycon": {
- "$id": "#/properties/joystick_controls/properties/left_joycon",
- "type": "object",
- "title": "Left JoyCon Controls",
- "required": [
- "stick",
- "stick_button",
- "dpad_up",
- "dpad_down",
- "dpad_left",
- "dpad_right",
- "button_minus",
- "button_l",
- "button_zl"
- ],
- "properties": {
- "stick": {
- "$id": "#/properties/joystick_controls/properties/left_joycon/properties/stick",
- "$ref": "#/definitions/input",
- "title": "Stick",
- "default": "Axis0"
- },
- "stick_button": {
- "$id": "#/properties/joystick_controls/properties/left_joycon/properties/stick_button",
- "$ref": "#/definitions/input",
- "title": "Stick Button",
- "default": "Button13"
- },
- "dpad_up": {
- "$id": "#/properties/joystick_controls/properties/left_joycon/properties/dpad_up",
- "$ref": "#/definitions/input",
- "title": "Dpad Up",
- "default": "Hat0Up"
- },
- "dpad_down": {
- "$id": "#/properties/joystick_controls/properties/left_joycon/properties/dpad_down",
- "$ref": "#/definitions/input",
- "title": "Dpad Down",
- "default": "Hat0Down"
- },
- "dpad_left": {
- "$id": "#/properties/joystick_controls/properties/left_joycon/properties/dpad_left",
- "$ref": "#/definitions/input",
- "title": "Dpad Left",
- "default": "Hat0Left"
- },
- "dpad_right": {
- "$id": "#/properties/joystick_controls/properties/left_joycon/properties/dpad_right",
- "$ref": "#/definitions/input",
- "title": "Dpad Right",
- "default": "Hat0Right"
- },
- "button_minus": {
- "$id": "#/properties/joystick_controls/properties/left_joycon/properties/button_minus",
- "$ref": "#/definitions/input",
- "title": "Button Minus",
- "default": "Button10"
- },
- "button_l": {
- "$id": "#/properties/joystick_controls/properties/left_joycon/properties/button_l",
- "$ref": "#/definitions/input",
- "title": "Button L",
- "default": "Button6"
- },
- "button_zl": {
- "$id": "#/properties/joystick_controls/properties/left_joycon/properties/button_zl",
- "$ref": "#/definitions/input",
- "title": "Button ZL",
- "default": "Button8"
- }
- }
- },
- "right_joycon": {
- "$id": "#/properties/joystick_controls/properties/right_joycon",
- "type": "object",
- "title": "Right JoyCon Controls",
- "required": [
- "stick",
- "stick_button",
- "button_a",
- "button_b",
- "button_x",
- "button_y",
- "button_plus",
- "button_r",
- "button_zr"
- ],
- "properties": {
- "stick": {
- "$id": "#/properties/joystick_controls/properties/right_joycon/properties/stick",
- "$ref": "#/definitions/input",
- "title": "Stick",
- "default": "Axis2"
- },
- "stick_button": {
- "$id": "#/properties/joystick_controls/properties/right_joycon/properties/stick_button",
- "$ref": "#/definitions/input",
- "title": "Stick Button",
- "default": "Button14"
- },
- "button_a": {
- "$id": "#/properties/joystick_controls/properties/right_joycon/properties/button_a",
- "$ref": "#/definitions/input",
- "title": "Button A",
- "default": "Button0"
- },
- "button_b": {
- "$id": "#/properties/joystick_controls/properties/right_joycon/properties/button_b",
- "$ref": "#/definitions/input",
- "title": "Button B",
- "default": "Button1"
- },
- "button_x": {
- "$id": "#/properties/joystick_controls/properties/right_joycon/properties/button_x",
- "$ref": "#/definitions/input",
- "title": "Button X",
- "default": "Button3"
- },
- "button_y": {
- "$id": "#/properties/joystick_controls/properties/right_joycon/properties/button_y",
- "$ref": "#/definitions/input",
- "title": "Button Y",
- "default": "Button4"
- },
- "button_plus": {
- "$id": "#/properties/joystick_controls/properties/right_joycon/properties/button_plus",
- "$ref": "#/definitions/input",
- "title": "Button Plus",
- "default": "Button11"
- },
- "button_r": {
- "$id": "#/properties/joystick_controls/properties/right_joycon/properties/button_r",
- "$ref": "#/definitions/input",
- "title": "Button R",
- "default": "Button7"
- },
- "button_zr": {
- "$id": "#/properties/joystick_controls/properties/right_joycon/properties/button_zr",
- "$ref": "#/definitions/input",
- "title": "Button ZR",
- "default": "Button9"
- }
+ "keyboard_config": {
+ "$id": "#/properties/keyboard_config",
+ "type": "array",
+ "title": "Keyboard Config",
+ "items": {
+ "$ref": "#/definitions/keyboard_config"
+ },
+ "default": [
+ {
+ "index": 0,
+ "controller_type": "JoyconPair",
+ "player_index": "Player1",
+ "left_joycon": {
+ "stick_up": "W",
+ "stick_down": "S",
+ "stick_left": "A",
+ "stick_right": "D",
+ "stick_button": "F",
+ "dpad_up": "Up",
+ "dpad_down": "Down",
+ "dpad_left": "Left",
+ "dpad_right": "Right",
+ "button_minus": "Minus",
+ "button_l": "E",
+ "button_zl": "Q",
+ "button_sl": "Unbound",
+ "button_sr": "Unbound"
+ },
+ "right_joycon": {
+ "stick_up": "I",
+ "stick_down": "K",
+ "stick_left": "J",
+ "stick_right": "L",
+ "stick_button": "H",
+ "button_a": "Z",
+ "button_b": "X",
+ "button_x": "C",
+ "button_y": "V",
+ "button_plus": "Plus",
+ "button_r": "U",
+ "button_zr": "O",
+ "button_sl": "Unbound",
+ "button_sr": "Unbound"
}
}
- }
+ ]
+ },
+ "controller_config": {
+ "$id": "#/properties/controller_config",
+ "type": "array",
+ "title": "Controller Config",
+ "items": {
+ "$ref": "#/definitions/controller_config"
+ },
+ "default": []
}
}
-}
+}
\ No newline at end of file