ryujinx/Ryujinx/_schema.json

1009 lines
28 KiB
JSON
Raw Normal View History

{
"$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",
"system_region",
"docked_mode",
"enable_vsync",
"enable_multicore_scheduling",
"enable_fs_integrity_checks",
"fs_global_access_log_mode",
"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"
]
},
"system_region": {
"$id": "#/properties/system_region",
"type": "string",
"title": "System Region",
"description": "Change System Region",
"default": "USA",
"enum": [
"Japan",
"USA",
"Europe",
"Australia",
"China",
"Korea",
"Taiwan"
],
"examples": [
"USA"
]
},
"system_time_offset": {
"$id": "#/properties/system_time_offset",
"type": "integer",
"title": "System Time Offset",
"description": "System time offset in seconds.",
"default": 0,
"examples": [
-3600,
0,
3600
]
},
"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",
2019-05-30 22:27:43 +02:00
"type": "boolean",
"title": "Enable Discord Rich Presence",
"description": "Enable or disable Discord Rich Presence",
2019-05-30 22:27:43 +02:00
"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",
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 20:56:22 +02:00
"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
]
},
"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
]
},
Added GUI to Ryujinx (#695) * Added GUI to Ryujinx * Updated to use Glade Also added scrollbar and default dark theme * Added support for loading icon from .nro files and cleaned up the code a bit * Added General Settings Menu (read-only for now) and moved some functionality from MainMenu.cs to ApplicationLibrary.cs * Added custom GUI theme support and changed the defualt theme to one I just wrote * Added GTK to process path, fixed a bug and minor edits * some more edits and a bug fix * general settings menu is now fully functional. also fixed the bug where ryujinx crashes when it trys to load an invalid gamedir * big rewrite * aesthetic changes to General Settings menu * Added Control Settings one day done feature :P * minor changes * 1st wave of changes * 2nd wave of changes * 3rd wave of changes * Cleanup settings ui * minor edits * new about window added, still needs styling * added spin button for new option and tooltips to settings * Game icons and names are now shown in the games list * add nuget package which contains gtk dependencies * requested changes have been changed * put CreateGameWindow on a new thread and stopped destroying the main menu when a game loads * fixed bug that allowed a user to attempt to load multiple games at a time which causes a crash * Added LastPlayed and TimePlayed columns to the game list * Did some testing and fixed some bugs Im not happy with one of the fixes so i will do it properly an upcoming commit * did some more bug testing and fixed another 2 bugs * caught an exception when ryujinx tries to load non-homebrew as homebrew * Large changes Rewrote ApplicationLibrary.cs (added comments too) so any devs reading it wont get eye cancer, also its probably more efficient now. Added 2 new columns (Developer name and application version) to the game list and wrote the logic for it. Ryujinx now loads NRO's TitleName and TitleID from the NACP file instead of the default NPDM. I also killed a lot of bugs * Moved Files moved ApplicationLibrary.cs to Ryujinx.HLE as that is a better place for it. Moved contents of GUI folder to Ui folder and changed the namespaces of the gui files from Ryujinx to Ryujinx.Ui * Added 'Open Ryujinx Folder' button to the file menu and did some small fixes * New features * updated nuget package with missing dlls and changed emmauss' requested changes * fixed some minor issues * all requested changes marked as resolved have been changed * gdkchan's requested changes * fixed an issue with settings window getting chopped on small res * fixed 2 problems caused by rebase * changed the default theme * applied Thog's patch to fix issue on linux * fixed issue caused by rebase * added update check button that runs ryujinx-updater * reads version info from installer and displays it in about menu * changes completed * requested changes changed * fixed issue with default theme * fixed a bug and completed requested changes * added more tooltips and changed some text
2019-09-02 18:03:57 +02:00
"game_dirs": {
"$id": "#/properties/game_dirs",
Add features to GUI (#757) * controller image changes depending on the selected controller type the new controller image assets are temporary until i get new ones * Game list scans subdirs for games * Key file existence check * Only shows Program NCAs in Application list * Change shown GUI columns without restarting * Sort by column if you click on the column header Columns are sorted as text so there are inaccuracies on some columns * Fix sort on Time Played, Last Played and File Size columns * Add ability to designate favourite games #1 TODO: - Make fav games persistent - Fix invisible check marks due to theme * Add ability to designate favourite games #2 Also removed default theme * Added a Windows specific build condition and a Linux bug fix * bugfix * Load metadata from JSONs * Temp bug fix for MacOS * lil clean up * requested changes * Misc fixes * edited schema and config * Show the TitleID of games on the title bar * gui column config option have names * Async loading of game list * bugfix and cleanup * thog's requested changes * requested changes and cleanup still need to fix the gtk seizure * Fix issue where an ExeFS as a NSP didn't show up in the application list * Minor fixes * catch glib unhandled exceptions * Make sure to do UI manipulation in the main thread * Print path of invalid files * Ac_k's requested changes * Return of the dark theme * move AboutInfo struct to another file * sort usings * changes - gdkchan's requested changes that have been marked resolved - made some structs internal as they aren't used outside of the GUI - renamed Ryujinx.UI to Ryujinx.Ui to fit naming convention and folder structure - fixed bug where controller type dropdown box is stretched
2019-11-29 05:32:51 +01:00
"type": "array",
Added GUI to Ryujinx (#695) * Added GUI to Ryujinx * Updated to use Glade Also added scrollbar and default dark theme * Added support for loading icon from .nro files and cleaned up the code a bit * Added General Settings Menu (read-only for now) and moved some functionality from MainMenu.cs to ApplicationLibrary.cs * Added custom GUI theme support and changed the defualt theme to one I just wrote * Added GTK to process path, fixed a bug and minor edits * some more edits and a bug fix * general settings menu is now fully functional. also fixed the bug where ryujinx crashes when it trys to load an invalid gamedir * big rewrite * aesthetic changes to General Settings menu * Added Control Settings one day done feature :P * minor changes * 1st wave of changes * 2nd wave of changes * 3rd wave of changes * Cleanup settings ui * minor edits * new about window added, still needs styling * added spin button for new option and tooltips to settings * Game icons and names are now shown in the games list * add nuget package which contains gtk dependencies * requested changes have been changed * put CreateGameWindow on a new thread and stopped destroying the main menu when a game loads * fixed bug that allowed a user to attempt to load multiple games at a time which causes a crash * Added LastPlayed and TimePlayed columns to the game list * Did some testing and fixed some bugs Im not happy with one of the fixes so i will do it properly an upcoming commit * did some more bug testing and fixed another 2 bugs * caught an exception when ryujinx tries to load non-homebrew as homebrew * Large changes Rewrote ApplicationLibrary.cs (added comments too) so any devs reading it wont get eye cancer, also its probably more efficient now. Added 2 new columns (Developer name and application version) to the game list and wrote the logic for it. Ryujinx now loads NRO's TitleName and TitleID from the NACP file instead of the default NPDM. I also killed a lot of bugs * Moved Files moved ApplicationLibrary.cs to Ryujinx.HLE as that is a better place for it. Moved contents of GUI folder to Ui folder and changed the namespaces of the gui files from Ryujinx to Ryujinx.Ui * Added 'Open Ryujinx Folder' button to the file menu and did some small fixes * New features * updated nuget package with missing dlls and changed emmauss' requested changes * fixed some minor issues * all requested changes marked as resolved have been changed * gdkchan's requested changes * fixed an issue with settings window getting chopped on small res * fixed 2 problems caused by rebase * changed the default theme * applied Thog's patch to fix issue on linux * fixed issue caused by rebase * added update check button that runs ryujinx-updater * reads version info from installer and displays it in about menu * changes completed * requested changes changed * fixed issue with default theme * fixed a bug and completed requested changes * added more tooltips and changed some text
2019-09-02 18:03:57 +02:00
"title": "List of Game Directories",
"description": "A list of directories containing games to be used to load games into the games list",
"default": []
},
"gui_columns": {
"$id": "#/properties/gui_columns",
Add features to GUI (#757) * controller image changes depending on the selected controller type the new controller image assets are temporary until i get new ones * Game list scans subdirs for games * Key file existence check * Only shows Program NCAs in Application list * Change shown GUI columns without restarting * Sort by column if you click on the column header Columns are sorted as text so there are inaccuracies on some columns * Fix sort on Time Played, Last Played and File Size columns * Add ability to designate favourite games #1 TODO: - Make fav games persistent - Fix invisible check marks due to theme * Add ability to designate favourite games #2 Also removed default theme * Added a Windows specific build condition and a Linux bug fix * bugfix * Load metadata from JSONs * Temp bug fix for MacOS * lil clean up * requested changes * Misc fixes * edited schema and config * Show the TitleID of games on the title bar * gui column config option have names * Async loading of game list * bugfix and cleanup * thog's requested changes * requested changes and cleanup still need to fix the gtk seizure * Fix issue where an ExeFS as a NSP didn't show up in the application list * Minor fixes * catch glib unhandled exceptions * Make sure to do UI manipulation in the main thread * Print path of invalid files * Ac_k's requested changes * Return of the dark theme * move AboutInfo struct to another file * sort usings * changes - gdkchan's requested changes that have been marked resolved - made some structs internal as they aren't used outside of the GUI - renamed Ryujinx.UI to Ryujinx.Ui to fit naming convention and folder structure - fixed bug where controller type dropdown box is stretched
2019-11-29 05:32:51 +01:00
"type": "array",
Added GUI to Ryujinx (#695) * Added GUI to Ryujinx * Updated to use Glade Also added scrollbar and default dark theme * Added support for loading icon from .nro files and cleaned up the code a bit * Added General Settings Menu (read-only for now) and moved some functionality from MainMenu.cs to ApplicationLibrary.cs * Added custom GUI theme support and changed the defualt theme to one I just wrote * Added GTK to process path, fixed a bug and minor edits * some more edits and a bug fix * general settings menu is now fully functional. also fixed the bug where ryujinx crashes when it trys to load an invalid gamedir * big rewrite * aesthetic changes to General Settings menu * Added Control Settings one day done feature :P * minor changes * 1st wave of changes * 2nd wave of changes * 3rd wave of changes * Cleanup settings ui * minor edits * new about window added, still needs styling * added spin button for new option and tooltips to settings * Game icons and names are now shown in the games list * add nuget package which contains gtk dependencies * requested changes have been changed * put CreateGameWindow on a new thread and stopped destroying the main menu when a game loads * fixed bug that allowed a user to attempt to load multiple games at a time which causes a crash * Added LastPlayed and TimePlayed columns to the game list * Did some testing and fixed some bugs Im not happy with one of the fixes so i will do it properly an upcoming commit * did some more bug testing and fixed another 2 bugs * caught an exception when ryujinx tries to load non-homebrew as homebrew * Large changes Rewrote ApplicationLibrary.cs (added comments too) so any devs reading it wont get eye cancer, also its probably more efficient now. Added 2 new columns (Developer name and application version) to the game list and wrote the logic for it. Ryujinx now loads NRO's TitleName and TitleID from the NACP file instead of the default NPDM. I also killed a lot of bugs * Moved Files moved ApplicationLibrary.cs to Ryujinx.HLE as that is a better place for it. Moved contents of GUI folder to Ui folder and changed the namespaces of the gui files from Ryujinx to Ryujinx.Ui * Added 'Open Ryujinx Folder' button to the file menu and did some small fixes * New features * updated nuget package with missing dlls and changed emmauss' requested changes * fixed some minor issues * all requested changes marked as resolved have been changed * gdkchan's requested changes * fixed an issue with settings window getting chopped on small res * fixed 2 problems caused by rebase * changed the default theme * applied Thog's patch to fix issue on linux * fixed issue caused by rebase * added update check button that runs ryujinx-updater * reads version info from installer and displays it in about menu * changes completed * requested changes changed * fixed issue with default theme * fixed a bug and completed requested changes * added more tooltips and changed some text
2019-09-02 18:03:57 +02:00
"title": "Used to toggle columns in the GUI",
"description": "Used to toggle columns in the GUI",
Add features to GUI (#757) * controller image changes depending on the selected controller type the new controller image assets are temporary until i get new ones * Game list scans subdirs for games * Key file existence check * Only shows Program NCAs in Application list * Change shown GUI columns without restarting * Sort by column if you click on the column header Columns are sorted as text so there are inaccuracies on some columns * Fix sort on Time Played, Last Played and File Size columns * Add ability to designate favourite games #1 TODO: - Make fav games persistent - Fix invisible check marks due to theme * Add ability to designate favourite games #2 Also removed default theme * Added a Windows specific build condition and a Linux bug fix * bugfix * Load metadata from JSONs * Temp bug fix for MacOS * lil clean up * requested changes * Misc fixes * edited schema and config * Show the TitleID of games on the title bar * gui column config option have names * Async loading of game list * bugfix and cleanup * thog's requested changes * requested changes and cleanup still need to fix the gtk seizure * Fix issue where an ExeFS as a NSP didn't show up in the application list * Minor fixes * catch glib unhandled exceptions * Make sure to do UI manipulation in the main thread * Print path of invalid files * Ac_k's requested changes * Return of the dark theme * move AboutInfo struct to another file * sort usings * changes - gdkchan's requested changes that have been marked resolved - made some structs internal as they aren't used outside of the GUI - renamed Ryujinx.UI to Ryujinx.Ui to fit naming convention and folder structure - fixed bug where controller type dropdown box is stretched
2019-11-29 05:32:51 +01:00
"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
}
Added GUI to Ryujinx (#695) * Added GUI to Ryujinx * Updated to use Glade Also added scrollbar and default dark theme * Added support for loading icon from .nro files and cleaned up the code a bit * Added General Settings Menu (read-only for now) and moved some functionality from MainMenu.cs to ApplicationLibrary.cs * Added custom GUI theme support and changed the defualt theme to one I just wrote * Added GTK to process path, fixed a bug and minor edits * some more edits and a bug fix * general settings menu is now fully functional. also fixed the bug where ryujinx crashes when it trys to load an invalid gamedir * big rewrite * aesthetic changes to General Settings menu * Added Control Settings one day done feature :P * minor changes * 1st wave of changes * 2nd wave of changes * 3rd wave of changes * Cleanup settings ui * minor edits * new about window added, still needs styling * added spin button for new option and tooltips to settings * Game icons and names are now shown in the games list * add nuget package which contains gtk dependencies * requested changes have been changed * put CreateGameWindow on a new thread and stopped destroying the main menu when a game loads * fixed bug that allowed a user to attempt to load multiple games at a time which causes a crash * Added LastPlayed and TimePlayed columns to the game list * Did some testing and fixed some bugs Im not happy with one of the fixes so i will do it properly an upcoming commit * did some more bug testing and fixed another 2 bugs * caught an exception when ryujinx tries to load non-homebrew as homebrew * Large changes Rewrote ApplicationLibrary.cs (added comments too) so any devs reading it wont get eye cancer, also its probably more efficient now. Added 2 new columns (Developer name and application version) to the game list and wrote the logic for it. Ryujinx now loads NRO's TitleName and TitleID from the NACP file instead of the default NPDM. I also killed a lot of bugs * Moved Files moved ApplicationLibrary.cs to Ryujinx.HLE as that is a better place for it. Moved contents of GUI folder to Ui folder and changed the namespaces of the gui files from Ryujinx to Ryujinx.Ui * Added 'Open Ryujinx Folder' button to the file menu and did some small fixes * New features * updated nuget package with missing dlls and changed emmauss' requested changes * fixed some minor issues * all requested changes marked as resolved have been changed * gdkchan's requested changes * fixed an issue with settings window getting chopped on small res * fixed 2 problems caused by rebase * changed the default theme * applied Thog's patch to fix issue on linux * fixed issue caused by rebase * added update check button that runs ryujinx-updater * reads version info from installer and displays it in about menu * changes completed * requested changes changed * fixed issue with default theme * fixed a bug and completed requested changes * added more tooltips and changed some text
2019-09-02 18:03:57 +02:00
},
"enable_custom_theme": {
"$id": "#/properties/enable_custom_theme",
"type": "boolean",
"title": "Enable custom themes in the GUI",
"description": "Enable or disable custom themes in the GUI",
"default": false,
"examples": [
true,
false
]
},
"custom_theme_path": {
"$id": "#/properties/custom_theme_path",
"type": "string",
"title": "Path to custom GUI theme",
"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",
"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": 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"
}
}
}
}
}
}
}