aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Ryujinx.Common/Configuration/ConfigurationFileFormat.cs7
-rw-r--r--Ryujinx.Common/Configuration/ConfigurationState.cs20
-rw-r--r--Ryujinx/Config.json5
-rw-r--r--Ryujinx/Program.cs10
-rw-r--r--Ryujinx/Ui/MainWindow.cs19
-rw-r--r--Ryujinx/Ui/MainWindow.glade17
-rw-r--r--Ryujinx/_schema.json11
7 files changed, 83 insertions, 6 deletions
diff --git a/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs b/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
index bfb1cdc1..5618b228 100644
--- a/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
+++ b/Ryujinx.Common/Configuration/ConfigurationFileFormat.cs
@@ -14,7 +14,7 @@ namespace Ryujinx.Configuration
/// <summary>
/// The current version of the file format
/// </summary>
- public const int CurrentVersion = 16;
+ public const int CurrentVersion = 17;
public int Version { get; set; }
@@ -189,6 +189,11 @@ namespace Ryujinx.Configuration
public string CustomThemePath { get; set; }
/// <summary>
+ /// Start games in fullscreen mode
+ /// </summary>
+ public bool StartFullscreen { get; set; }
+
+ /// <summary>
/// Enable or disable keyboard support (Independent from controllers binding)
/// </summary>
public bool EnableKeyboard { get; set; }
diff --git a/Ryujinx.Common/Configuration/ConfigurationState.cs b/Ryujinx.Common/Configuration/ConfigurationState.cs
index 2d725149..ef4a4337 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
/// </summary>
public ReactiveObject<string> CustomThemePath { get; private set; }
+ /// <summary>
+ /// Start games in fullscreen mode
+ /// </summary>
+ public ReactiveObject<bool> StartFullscreen { get; private set; }
+
public UiSection()
{
GuiColumns = new Columns();
@@ -89,6 +94,7 @@ namespace Ryujinx.Configuration
GameDirs = new ReactiveObject<List<string>>();
EnableCustomTheme = new ReactiveObject<bool>();
CustomThemePath = new ReactiveObject<string>();
+ StartFullscreen = new ReactiveObject<bool>();
}
}
@@ -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<string>();
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> inputConfig = new List<InputConfig>();
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 6c6f9bef..293a8dca 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 927ed80a..12db52a3 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 63922948..b54ba624 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 1dbec213..3b934861 100644
--- a/Ryujinx/Ui/MainWindow.glade
+++ b/Ryujinx/Ui/MainWindow.glade
@@ -113,10 +113,25 @@
</object>
</child>
<child>
+ <object class="GtkCheckMenuItem" id="_startFullScreen">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Start Games in Fullscreen Mode</property>
+ <property name="use_underline">True</property>
+ <signal name="toggled" handler="StartFullScreen_Toggled" swapped="no"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparatorMenuItem">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ <child>
<object class="GtkMenuItem" id="_stopEmulation">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes">Stop emualtion of the current game and return to game selection</property>
+ <property name="tooltip_text" translatable="yes">Stop emulation of the current game and return to game selection</property>
<property name="label" translatable="yes">Stop Emulation</property>
<property name="use_underline">True</property>
<signal name="activate" handler="StopEmulation_Pressed" swapped="no"/>
diff --git a/Ryujinx/_schema.json b/Ryujinx/_schema.json
index 4401c03c..1602b48a 100644
--- a/Ryujinx/_schema.json
+++ b/Ryujinx/_schema.json
@@ -1379,6 +1379,17 @@
"description": "Path to custom GUI theme",
"default": ""
},
+ "start_fullscreen": {
+ "$id": "#/properties/start_fullscreen",
+ "type": "boolean",
+ "title": "Start games in fullscreen mode",
+ "description": "Start games in fullscreen mode",
+ "default": false,
+ "examples": [
+ true,
+ false
+ ]
+ },
"enable_keyboard": {
"$id": "#/properties/enable_keyboard",
"type": "boolean",