diff --git a/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs b/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
index bfb1cdc1b0..5618b22879 100644
--- a/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
+++ b/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
@@ -14,7 +14,7 @@ namespace Ryujinx.Configuration
///
/// The current version of the file format
///
- public const int CurrentVersion = 16;
+ public const int CurrentVersion = 17;
public int Version { get; set; }
@@ -188,6 +188,11 @@ namespace Ryujinx.Configuration
///
public string CustomThemePath { get; set; }
+ ///
+ /// Start games in fullscreen mode
+ ///
+ public bool StartFullscreen { get; set; }
+
///
/// Enable or disable keyboard support (Independent from controllers binding)
///
diff --git a/Ryujinx.Common/Configuration/ConfigurationState.cs b/Ryujinx.Common/Configuration/ConfigurationState.cs
index 2d7251494b..ef4a433722 100644
--- a/Ryujinx.Common/Configuration/ConfigurationState.cs
+++ b/Ryujinx.Common/Configuration/ConfigurationState.cs
@@ -1,4 +1,4 @@
-using Ryujinx.Common;
+using Ryujinx.Common;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Configuration.Hid;
using Ryujinx.Common.Logging;
@@ -82,6 +82,11 @@ namespace Ryujinx.Configuration
///
public ReactiveObject CustomThemePath { get; private set; }
+ ///
+ /// Start games in fullscreen mode
+ ///
+ public ReactiveObject StartFullscreen { get; private set; }
+
public UiSection()
{
GuiColumns = new Columns();
@@ -89,6 +94,7 @@ namespace Ryujinx.Configuration
GameDirs = new ReactiveObject>();
EnableCustomTheme = new ReactiveObject();
CustomThemePath = new ReactiveObject();
+ StartFullscreen = new ReactiveObject();
}
}
@@ -435,6 +441,7 @@ namespace Ryujinx.Configuration
GameDirs = Ui.GameDirs,
EnableCustomTheme = Ui.EnableCustomTheme,
CustomThemePath = Ui.CustomThemePath,
+ StartFullscreen = Ui.StartFullscreen,
EnableKeyboard = Hid.EnableKeyboard,
Hotkeys = Hid.Hotkeys,
KeyboardConfig = keyboardConfigList,
@@ -490,6 +497,7 @@ namespace Ryujinx.Configuration
Ui.GameDirs.Value = new List();
Ui.EnableCustomTheme.Value = false;
Ui.CustomThemePath.Value = "";
+ Ui.StartFullscreen.Value = false;
Hid.EnableKeyboard.Value = false;
Hid.Hotkeys.Value = new KeyboardHotkeys
{
@@ -744,6 +752,15 @@ namespace Ryujinx.Configuration
configurationFileUpdated = true;
}
+ if (configurationFileFormat.Version < 17)
+ {
+ Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 17.");
+
+ configurationFileFormat.StartFullscreen = false;
+
+ configurationFileUpdated = true;
+ }
+
List inputConfig = new List();
inputConfig.AddRange(configurationFileFormat.ControllerConfig);
inputConfig.AddRange(configurationFileFormat.KeyboardConfig);
@@ -792,6 +809,7 @@ namespace Ryujinx.Configuration
Ui.GameDirs.Value = configurationFileFormat.GameDirs;
Ui.EnableCustomTheme.Value = configurationFileFormat.EnableCustomTheme;
Ui.CustomThemePath.Value = configurationFileFormat.CustomThemePath;
+ Ui.StartFullscreen.Value = configurationFileFormat.StartFullscreen;
Hid.EnableKeyboard.Value = configurationFileFormat.EnableKeyboard;
Hid.Hotkeys.Value = configurationFileFormat.Hotkeys;
Hid.InputConfig.Value = inputConfig;
diff --git a/Ryujinx/Config.json b/Ryujinx/Config.json
index 6c6f9befa6..293a8dca92 100644
--- a/Ryujinx/Config.json
+++ b/Ryujinx/Config.json
@@ -1,5 +1,5 @@
-{
- "version": 15,
+{
+ "version": 17,
"res_scale": 1,
"res_scale_custom": 1,
"max_anisotropy": -1,
@@ -47,6 +47,7 @@
"game_dirs": [],
"enable_custom_theme": false,
"custom_theme_path": "",
+ "start_fullscreen": false,
"enable_keyboard": false,
"hotkeys": {
"toggle_vsync": "Tab"
diff --git a/Ryujinx/Program.cs b/Ryujinx/Program.cs
index 927ed80a11..12db52a396 100644
--- a/Ryujinx/Program.cs
+++ b/Ryujinx/Program.cs
@@ -25,6 +25,7 @@ namespace Ryujinx
// Parse Arguments
string launchPath = null;
string baseDirPath = null;
+ bool startFullscreen = false;
for (int i = 0; i < args.Length; ++i)
{
string arg = args[i];
@@ -39,6 +40,10 @@ namespace Ryujinx
baseDirPath = args[++i];
}
+ else if (arg == "-f" || arg == "--fullscreen")
+ {
+ startFullscreen = true;
+ }
else if (launchPath == null)
{
launchPath = arg;
@@ -107,6 +112,11 @@ namespace Ryujinx
ConfigurationState.Instance.ToFileFormat().SaveConfig(appDataConfigurationPath);
}
+ if (startFullscreen)
+ {
+ ConfigurationState.Instance.Ui.StartFullscreen.Value = true;
+ }
+
PrintSystemInfo();
Application.Init();
diff --git a/Ryujinx/Ui/MainWindow.cs b/Ryujinx/Ui/MainWindow.cs
index 639229487e..b54ba6249c 100644
--- a/Ryujinx/Ui/MainWindow.cs
+++ b/Ryujinx/Ui/MainWindow.cs
@@ -57,6 +57,7 @@ namespace Ryujinx.Ui
[GUI] Box _statusBar;
[GUI] MenuItem _stopEmulation;
[GUI] MenuItem _fullScreen;
+ [GUI] CheckMenuItem _startFullScreen;
[GUI] CheckMenuItem _favToggle;
[GUI] MenuItem _firmwareInstallDirectory;
[GUI] MenuItem _firmwareInstallFile;
@@ -136,6 +137,11 @@ namespace Ryujinx.Ui
ApplyTheme();
+ if (ConfigurationState.Instance.Ui.StartFullscreen)
+ {
+ _startFullScreen.Active = true;
+ }
+
_stopEmulation.Sensitive = false;
if (ConfigurationState.Instance.Ui.GuiColumns.FavColumn) _favToggle.Active = true;
@@ -552,6 +558,10 @@ namespace Ryujinx.Ui
{
ToggleExtraWidgets(false);
}
+ else if (ConfigurationState.Instance.Ui.StartFullscreen.Value)
+ {
+ FullScreen_Toggled(null, null);
+ }
});
_glWidget.WaitEvent.WaitOne();
@@ -1164,7 +1174,7 @@ namespace Ryujinx.Ui
}
}
- private void FullScreen_Toggled(object o, EventArgs args)
+ private void FullScreen_Toggled(object sender, EventArgs args)
{
bool fullScreenToggled = this.Window.State.HasFlag(Gdk.WindowState.Fullscreen);
@@ -1182,6 +1192,13 @@ namespace Ryujinx.Ui
}
}
+ private void StartFullScreen_Toggled(object sender, EventArgs args)
+ {
+ ConfigurationState.Instance.Ui.StartFullscreen.Value = _startFullScreen.Active;
+
+ SaveConfig();
+ }
+
private void Settings_Pressed(object sender, EventArgs args)
{
SettingsWindow settingsWin = new SettingsWindow(_virtualFileSystem, _contentManager);
diff --git a/Ryujinx/Ui/MainWindow.glade b/Ryujinx/Ui/MainWindow.glade
index 1dbec21365..3b93486105 100644
--- a/Ryujinx/Ui/MainWindow.glade
+++ b/Ryujinx/Ui/MainWindow.glade
@@ -112,11 +112,26 @@
True
+
+
+
+
+
+