diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
index 1de762f03..2b7606758 100644
--- a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
+++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
@@ -16,7 +16,7 @@ namespace Ryujinx.UI.Common.Configuration
///
/// The current version of the file format
///
- public const int CurrentVersion = 56;
+ public const int CurrentVersion = 57;
///
/// Version of the configuration file format
@@ -355,6 +355,11 @@ namespace Ryujinx.UI.Common.Configuration
///
public bool StartFullscreen { get; set; }
+ ///
+ /// Start games with UI hidden
+ ///
+ public bool StartNoUI { get; set; }
+
///
/// Show console window
///
diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
index de8b68ace..c8846451b 100644
--- a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
+++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
@@ -165,6 +165,11 @@ namespace Ryujinx.UI.Common.Configuration
///
public ReactiveObject StartFullscreen { get; private set; }
+ ///
+ /// Start games with UI hidden
+ ///
+ public ReactiveObject StartNoUI { get; private set; }
+
///
/// Hide / Show Console Window
///
@@ -207,6 +212,7 @@ namespace Ryujinx.UI.Common.Configuration
CustomThemePath = new ReactiveObject();
BaseStyle = new ReactiveObject();
StartFullscreen = new ReactiveObject();
+ StartNoUI = new ReactiveObject();
GameListViewMode = new ReactiveObject();
ShowNames = new ReactiveObject();
GridSize = new ReactiveObject();
@@ -818,6 +824,7 @@ namespace Ryujinx.UI.Common.Configuration
ApplicationSort = UI.ApplicationSort,
IsAscendingOrder = UI.IsAscendingOrder,
StartFullscreen = UI.StartFullscreen,
+ StartNoUI = UI.StartNoUI,
ShowConsole = UI.ShowConsole,
EnableKeyboard = Hid.EnableKeyboard,
EnableMouse = Hid.EnableMouse,
@@ -1615,6 +1622,15 @@ namespace Ryujinx.UI.Common.Configuration
configurationFileUpdated = true;
}
+ if (configurationFileFormat.Version < 57)
+ {
+ Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 55.");
+
+ configurationFileFormat.StartNoUI = false;
+
+ configurationFileUpdated = true;
+ }
+
Logger.EnableFileLog.Value = configurationFileFormat.EnableFileLog;
Graphics.ResScale.Value = configurationFileFormat.ResScale;
Graphics.ResScaleCustom.Value = configurationFileFormat.ResScaleCustom;
@@ -1697,6 +1713,7 @@ namespace Ryujinx.UI.Common.Configuration
UI.GridSize.Value = configurationFileFormat.GridSize;
UI.ApplicationSort.Value = configurationFileFormat.ApplicationSort;
UI.StartFullscreen.Value = configurationFileFormat.StartFullscreen;
+ UI.StartNoUI.Value = configurationFileFormat.StartNoUI;
UI.ShowConsole.Value = configurationFileFormat.ShowConsole;
UI.WindowStartup.WindowSizeWidth.Value = configurationFileFormat.WindowStartup.WindowSizeWidth;
UI.WindowStartup.WindowSizeHeight.Value = configurationFileFormat.WindowStartup.WindowSizeHeight;
diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs
index 1bb32c8be..c357e1682 100644
--- a/src/Ryujinx/AppHost.cs
+++ b/src/Ryujinx/AppHost.cs
@@ -1031,7 +1031,7 @@ namespace Ryujinx.Ava
_viewModel.WindowState = WindowState.FullScreen;
}
- if (_viewModel.WindowState == WindowState.FullScreen)
+ if (_viewModel.WindowState == WindowState.FullScreen || _viewModel.StartGamesWithoutUI)
{
_viewModel.ShowMenuAndStatusBar = false;
}
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index 388c22506..0edfe3139 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -20,6 +20,7 @@
"MenuBarOptions": "_Options",
"MenuBarOptionsToggleFullscreen": "Toggle Fullscreen",
"MenuBarOptionsStartGamesInFullscreen": "Start Games in Fullscreen Mode",
+ "MenuBarOptionsStartGamesWithoutUI": "Start Games with UI Hidden",
"MenuBarOptionsStopEmulation": "Stop Emulation",
"MenuBarOptionsSettings": "_Settings",
"MenuBarOptionsManageUserProfiles": "_Manage User Profiles",
diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
index 1dfd304b6..a07a3e80f 100644
--- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
@@ -922,6 +922,19 @@ namespace Ryujinx.Ava.UI.ViewModels
}
}
+ public bool StartGamesWithoutUI
+ {
+ get => ConfigurationState.Instance.UI.StartNoUI;
+ set
+ {
+ ConfigurationState.Instance.UI.StartNoUI.Value = value;
+
+ ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath);
+
+ OnPropertyChanged();
+ }
+ }
+
public bool ShowConsole
{
get => ConfigurationState.Instance.UI.ShowConsole;
@@ -1649,6 +1662,11 @@ namespace Ryujinx.Ava.UI.ViewModels
StartGamesInFullscreen = !StartGamesInFullscreen;
}
+ public void ToggleStartGamesWithoutUI()
+ {
+ StartGamesWithoutUI = !StartGamesWithoutUI;
+ }
+
public void ToggleShowConsole()
{
ShowConsole = !ShowConsole;
diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml
index dba633873..4ec13b273 100644
--- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml
+++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml
@@ -94,6 +94,29 @@
+