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
         /// <summary>
         /// The current version of the file format
         /// </summary>
-        public const int CurrentVersion = 16;
+        public const int CurrentVersion = 17;
 
         public int Version { get; set; }
 
@@ -188,6 +188,11 @@ namespace Ryujinx.Configuration
         /// </summary>
         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>
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
             /// </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 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 @@
                         <property name="use_underline">True</property>
                       </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 4401c03caa..1602b48a4a 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",