1
0
Fork 0
mirror of https://github.com/Ryujinx/Ryujinx.git synced 2024-12-12 09:22:01 +00:00
Ryujinx/Ryujinx/_schema.json
gdkchan a731ab3a2a Add a new JIT compiler for CPU code (#693)
* Start of the ARMeilleure project

* Refactoring around the old IRAdapter, now renamed to PreAllocator

* Optimize the LowestBitSet method

* Add CLZ support and fix CLS implementation

* Add missing Equals and GetHashCode overrides on some structs, misc small tweaks

* Implement the ByteSwap IR instruction, and some refactoring on the assembler

* Implement the DivideUI IR instruction and fix 64-bits IDIV

* Correct constant operand type on CSINC

* Move division instructions implementation to InstEmitDiv

* Fix destination type for the ConditionalSelect IR instruction

* Implement UMULH and SMULH, with new IR instructions

* Fix some issues with shift instructions

* Fix constant types for BFM instructions

* Fix up new tests using the new V128 struct

* Update tests

* Move DIV tests to a separate file

* Add support for calls, and some instructions that depends on them

* Start adding support for SIMD & FP types, along with some of the related ARM instructions

* Fix some typos and the divide instruction with FP operands

* Fix wrong method call on Clz_V

* Implement ARM FP & SIMD move instructions, Saddlv_V, and misc. fixes

* Implement SIMD logical instructions and more misc. fixes

* Fix PSRAD x86 instruction encoding, TRN, UABD and UABDL implementations

* Implement float conversion instruction, merge in LDj3SNuD fixes, and some other misc. fixes

* Implement SIMD shift instruction and fix Dup_V

* Add SCVTF and UCVTF (vector, fixed-point) variants to the opcode table

* Fix check with tolerance on tester

* Implement FP & SIMD comparison instructions, and some fixes

* Update FCVT (Scalar) encoding on the table to support the Half-float variants

* Support passing V128 structs, some cleanup on the register allocator, merge LDj3SNuD fixes

* Use old memory access methods, made a start on SIMD memory insts support, some fixes

* Fix float constant passed to functions, save and restore non-volatile XMM registers, other fixes

* Fix arguments count with struct return values, other fixes

* More instructions

* Misc. fixes and integrate LDj3SNuD fixes

* Update tests

* Add a faster linear scan allocator, unwinding support on windows, and other changes

* Update Ryujinx.HLE

* Update Ryujinx.Graphics

* Fix V128 return pointer passing, RCX is clobbered

* Update Ryujinx.Tests

* Update ITimeZoneService

* Stop using GetFunctionPointer as that can't be called from native code, misc. fixes and tweaks

* Use generic GetFunctionPointerForDelegate method and other tweaks

* Some refactoring on the code generator, assert on invalid operations and use a separate enum for intrinsics

* Remove some unused code on the assembler

* Fix REX.W prefix regression on float conversion instructions, add some sort of profiler

* Add hardware capability detection

* Fix regression on Sha1h and revert Fcm** changes

* Add SSE2-only paths on vector extract and insert, some refactoring on the pre-allocator

* Fix silly mistake introduced on last commit on CpuId

* Generate inline stack probes when the stack allocation is too large

* Initial support for the System-V ABI

* Support multiple destination operands

* Fix SSE2 VectorInsert8 path, and other fixes

* Change placement of XMM callee save and restore code to match other compilers

* Rename Dest to Destination and Inst to Instruction

* Fix a regression related to calls and the V128 type

* Add an extra space on comments to match code style

* Some refactoring

* Fix vector insert FP32 SSE2 path

* Port over the ARM32 instructions

* Avoid memory protection races on JIT Cache

* Another fix on VectorInsert FP32 (thanks to LDj3SNuD

* Float operands don't need to use the same register when VEX is supported

* Add a new register allocator, higher quality code for hot code (tier up), and other tweaks

* Some nits, small improvements on the pre allocator

* CpuThreadState is gone

* Allow changing CPU emulators with a config entry

* Add runtime identifiers on the ARMeilleure project

* Allow switching between CPUs through a config entry (pt. 2)

* Change win10-x64 to win-x64 on projects

* Update the Ryujinx project to use ARMeilleure

* Ensure that the selected register is valid on the hybrid allocator

* Allow exiting on returns to 0 (should fix test regression)

* Remove register assignments for most used variables on the hybrid allocator

* Do not use fixed registers as spill temp

* Add missing namespace and remove unneeded using

* Address PR feedback

* Fix types, etc

* Enable AssumeStrictAbiCompliance by default

* Ensure that Spill and Fill don't load or store any more than necessary
2019-08-08 21:56:22 +03:00

945 lines
27 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://ryujinx.org/_schema/config.json",
"type": "object",
"title": "Ryujinx Configuration Schema",
"required": [
"graphics_shaders_dump_path",
"logging_enable_debug",
"logging_enable_stub",
"logging_enable_info",
"logging_enable_warn",
"logging_enable_error",
"logging_enable_guest",
"logging_enable_fs_access_log",
"logging_filtered_classes",
"enable_file_log",
"system_language",
"docked_mode",
"enable_vsync",
"enable_multicore_scheduling",
"enable_fs_integrity_checks",
"fs_global_access_log_mode",
"enable_legacy_jit",
"controller_type",
"enable_keyboard",
"keyboard_controls",
"joystick_controls"
],
"definitions": {
"key": {
"type": "string",
"enum": [
"ShiftLeft",
"LShift",
"ShiftRight",
"RShift",
"ControlLeft",
"LControl",
"ControlRight",
"RControl",
"AltLeft",
"LAlt",
"AltRight",
"RAlt",
"WinLeft",
"LWin",
"WinRight",
"RWin",
"Menu",
"F1",
"F2",
"F3",
"F4",
"F5",
"F6",
"F7",
"F8",
"F9",
"F10",
"F11",
"F12",
"F13",
"F14",
"F15",
"F16",
"F17",
"F18",
"F19",
"F20",
"F21",
"F22",
"F23",
"F24",
"F25",
"F26",
"F27",
"F28",
"F29",
"F30",
"F31",
"F32",
"F33",
"F34",
"F35",
"Up",
"Down",
"Left",
"Right",
"Enter",
"Escape",
"Space",
"Tab",
"BackSpace",
"Back",
"Insert",
"Delete",
"PageUp",
"PageDown",
"Home",
"End",
"CapsLock",
"ScrollLock",
"PrintScreen",
"Pause",
"NumLock",
"Clear",
"Sleep",
"Keypad0",
"Keypad1",
"Keypad2",
"Keypad3",
"Keypad4",
"Keypad5",
"Keypad6",
"Keypad7",
"Keypad8",
"Keypad9",
"KeypadDivide",
"KeypadMultiply",
"KeypadSubtract",
"KeypadMinus",
"KeypadAdd",
"KeypadPlus",
"KeypadDecimal",
"KeypadPeriod",
"KeypadEnter",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"Number0",
"Number1",
"Number2",
"Number3",
"Number4",
"Number5",
"Number6",
"Number7",
"Number8",
"Number9",
"Tilde",
"Grave",
"Minus",
"Plus",
"BracketLeft",
"LBracket",
"BracketRight",
"RBracket",
"Semicolon",
"Quote",
"Comma",
"Period",
"Slash",
"BackSlash",
"NonUSBackSlash",
"LastKey"
]
},
"input": {
"type": "string",
"enum": [
"Button0",
"Button1",
"Button2",
"Button3",
"Button4",
"Button5",
"Button6",
"Button7",
"Button8",
"Button9",
"Button10",
"Button11",
"Button12",
"Button13",
"Button14",
"Button15",
"Button16",
"Button17",
"Button18",
"Button19",
"Button20",
"Axis0",
"Axis1",
"Axis2",
"Axis3",
"Axis4",
"Axis5",
"Hat0Up",
"Hat0Down",
"Hat0Left",
"Hat0Right",
"Hat1Up",
"Hat1Down",
"Hat1Left",
"Hat1Right",
"Hat2Up",
"Hat2Down",
"Hat2Left",
"Hat2Right"
]
}
},
"properties": {
"graphics_shaders_dump_path": {
"$id": "#/properties/graphics_shaders_dump_path",
"type": "string",
"title": "Graphics Shaders Dump Path",
"description": "Dumps shaders in this local directory",
"default": "",
"examples": [
"C:\\ShaderDumps"
]
},
"logging_enable_debug": {
"$id": "#/properties/logging_enable_debug",
"type": "boolean",
"title": "Logging Enable Debug",
"description": "Enables printing debug log messages",
"default": false,
"examples": [
true,
false
]
},
"logging_enable_stub": {
"$id": "#/properties/logging_enable_stub",
"type": "boolean",
"title": "Logging Enable Stub",
"description": "Enables printing stub log messages",
"default": true,
"examples": [
true,
false
]
},
"logging_enable_info": {
"$id": "#/properties/logging_enable_info",
"type": "boolean",
"title": "Logging Enable Info",
"description": "Enables printing info log messages",
"default": true,
"examples": [
true,
false
]
},
"logging_enable_warn": {
"$id": "#/properties/logging_enable_warn",
"type": "boolean",
"title": "Logging Enable Warn",
"description": "Enables printing warning log messages",
"default": true,
"examples": [
true,
false
]
},
"logging_enable_error": {
"$id": "#/properties/logging_enable_error",
"type": "boolean",
"title": "Logging Enable Error",
"description": "Enables printing error log messages",
"default": true,
"examples": [
true,
false
]
},
"logging_enable_guest": {
"$id": "#/properties/logging_enable_guest",
"type": "boolean",
"title": "Logging Enable Guest",
"description": "Enables printing guest log messages",
"default": true,
"examples": [
true,
false
]
},
"logging_enable_fs_access": {
"$id": "#/properties/logging_enable_fs_access_log",
"type": "boolean",
"title": "Logging Enable FS Access Log",
"description": "Enables printing FS access log messages",
"default": true,
"examples": [
true,
false
]
},
"logging_filtered_classes": {
"$id": "#/properties/logging_filtered_classes",
"type": "array",
"title": "Logging Filtered Classes",
"description": "Controls which log messages are written to the log targets",
"items": {
"type": "string",
"enum": [
"Application",
"Audio",
"Cpu",
"Font",
"Emulation",
"Gpu",
"Hid",
"Kernel",
"KernelIpc",
"KernelScheduler",
"KernelSvc",
"Loader",
"Service",
"ServiceAcc",
"ServiceAm",
"ServiceApm",
"ServiceAudio",
"ServiceBsd",
"ServiceCaps",
"ServiceFriend",
"ServiceFs",
"ServiceHid",
"ServiceIrs",
"ServiceLdr",
"ServiceLm",
"ServiceMm",
"ServiceNfp",
"ServiceNifm",
"ServiceNs",
"ServiceNv",
"ServicePctl",
"ServicePl",
"ServicePrepo",
"ServicePsm",
"ServiceSet",
"ServiceSfdnsres",
"ServiceSm",
"ServiceSsl",
"ServiceSss",
"ServiceTime",
"ServiceVi"
]
}
},
"enable_file_log": {
"$id": "#/properties/enable_file_log",
"type": "boolean",
"title": "Enable File Log",
"description": "Enables logging to a file on disk",
"default": true,
"examples": [
true,
false
]
},
"system_language": {
"$id": "#/properties/system_language",
"type": "string",
"title": "System Language",
"description": "Change System Language",
"default": "AmericanEnglish",
"enum": [
"Japanese",
"AmericanEnglish",
"French",
"German",
"Italian",
"Spanish",
"Chinese",
"Korean",
"Dutch",
"Portuguese",
"Russian",
"Taiwanese",
"BritishEnglish",
"CanadianFrench",
"LatinAmericanSpanish",
"SimplifiedChinese",
"TraditionalChinese"
],
"examples": [
"AmericanEnglish"
]
},
"docked_mode": {
"$id": "#/properties/docked_mode",
"type": "boolean",
"title": "Enable Docked Mode",
"description": "Enables or disables Docked Mode",
"default": false,
"examples": [
true,
false
]
},
"enable_discord_integration": {
"$id": "#/properties/enable_discord_integration",
"type": "boolean",
"title": "Enable Discord Rich Presence",
"description": "Enable or disable Discord Rich Presence",
"default": true,
"examples": [
true,
false
]
},
"enable_vsync": {
"$id": "#/properties/enable_vsync",
"type": "boolean",
"title": "Enable Vertical Sync",
"description": "Enables or disables Vertical Sync",
"default": true,
"examples": [
true,
false
]
},
"enable_multicore_scheduling": {
"$id": "#/properties/enable_multicore_scheduling",
"type": "boolean",
"title": "Enable Multicore Scheduling",
"description": "Enables or disables multi-core scheduling of threads",
"default": true,
"examples": [
true,
false
]
},
"enable_fs_integrity_checks": {
"$id": "#/properties/enable_fs_integrity_checks",
"type": "boolean",
"title": "Enable Filesystem Integrity Checks",
"description": "Enables integrity checks on Game content files. Only applies to ROMs loaded as XCI files",
"default": true,
"examples": [
true,
false
]
},
"fs_global_access_log_mode": {
"$id": "#/properties/fs_global_access_log_mode",
"type": "integer",
"title": "Enable FS access log",
"description": "Enables FS access log output. Possible modes are 0-3. Modes 2 and 3 output to the console",
"default": 0,
"minimum": 0,
"examples": [
0,
1,
2,
3
]
},
"enable_legacy_jit": {
"$id": "#/properties/enable_legacy_jit",
"type": "boolean",
"title": "Enable legacy JIT",
"description": "Use old ChocolArm64 ARM emulator",
"default": false,
"examples": [
true,
false
]
},
"ignore_missing_services": {
"$id": "#/properties/ignore_missing_services",
"type": "boolean",
"title": "Ignore Missing Services",
"description": "Enable or disable ignoring missing services, this may cause instability",
"default": false,
"examples": [
true,
false
]
},
"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",
"title": "(HID) Keyboard Enable",
"description": "Enable or disable direct keyboard access (HID) support (Provides games access to your keyboard as a text entry device).",
"default": true,
"examples": [
true,
false
]
},
"keyboard_controls": {
"$id": "#/properties/keyboard_controls",
"type": "object",
"title": "Keyboard Controls",
"required": [
"left_joycon",
"right_joycon"
],
"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"
}
}
}
}
},
"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": -32768.0,
"maximum": 32767.0,
"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"
}
}
}
}
}
}
}