diff --git a/src/Ryujinx.Gtk3/UI/MainWindow.cs b/src/Ryujinx.Gtk3/UI/MainWindow.cs
index d1ca6ce6a..9e34c4115 100644
--- a/src/Ryujinx.Gtk3/UI/MainWindow.cs
+++ b/src/Ryujinx.Gtk3/UI/MainWindow.cs
@@ -1,3 +1,4 @@
+using Avalonia.Controls;
 using Gtk;
 using LibHac.Common;
 using LibHac.Common.Keys;
@@ -1442,7 +1443,19 @@ namespace Ryujinx.UI
             _pauseEmulation.Sensitive = false;
             _resumeEmulation.Sensitive = false;
             UpdateMenuItem.Sensitive = true;
-            RendererWidget?.Exit();
+
+            Logger.Warning?.Print(LogClass.Emulation, "afgadfgasgfgsjhfgdsjfgds" + ConfigurationState.Instance.CloseOnEmulatorStop.Value);
+            //Shutdown if "Close Ryujinx on Emulator Stop" is enabled
+            if (ConfigurationState.Instance.CloseOnEmulatorStop.Value)
+            {
+                Logger.Warning?.Print(LogClass.Emulation, "Shut Ryujinx down" + ConfigurationState.Instance.CloseOnEmulatorStop.Value);
+                UserControl.CloseWindow();
+            }
+            else
+            {
+                Logger.Warning?.Print(LogClass.Emulation, "Don't shut Ryujinx down" + ConfigurationState.Instance.CloseOnEmulatorStop.Value);
+                RendererWidget?.Exit();
+            }
         }
 
         private void PauseEmulation_Pressed(object sender, EventArgs args)
@@ -1451,7 +1464,7 @@ namespace Ryujinx.UI
             _resumeEmulation.Sensitive = true;
             _emulationContext.System.TogglePauseEmulation(true);
             Title = TitleHelper.ActiveApplicationTitle(_emulationContext.Processes.ActiveApplication, Program.Version, "Paused");
-            Logger.Info?.Print(LogClass.Emulation, "Emulation was paused");
+            Logger.Info?.Print(LogClass.Emulation, "Emulation was dinkleberry");
         }
 
         private void ResumeEmulation_Pressed(object sender, EventArgs args)
diff --git a/src/Ryujinx.Gtk3/UI/Windows/SettingsWindow.cs b/src/Ryujinx.Gtk3/UI/Windows/SettingsWindow.cs
index dc467c0f2..5ed930615 100644
--- a/src/Ryujinx.Gtk3/UI/Windows/SettingsWindow.cs
+++ b/src/Ryujinx.Gtk3/UI/Windows/SettingsWindow.cs
@@ -53,6 +53,7 @@ namespace Ryujinx.UI.Windows
         [GUI] CheckButton _discordToggle;
         [GUI] CheckButton _checkUpdatesToggle;
         [GUI] CheckButton _showConfirmExitToggle;
+        [GUI] CheckButton _closeOnEmulatorStopToggle;
         [GUI] RadioButton _hideCursorNever;
         [GUI] RadioButton _hideCursorOnIdle;
         [GUI] RadioButton _hideCursorAlways;
@@ -230,6 +231,11 @@ namespace Ryujinx.UI.Windows
                 _showConfirmExitToggle.Click();
             }
 
+            if (ConfigurationState.Instance.CloseOnEmulatorStop)
+            {
+                _closeOnEmulatorStopToggle.Click();
+            }
+
             switch (ConfigurationState.Instance.HideCursor.Value)
             {
                 case HideCursorMode.Never:
@@ -627,6 +633,7 @@ namespace Ryujinx.UI.Windows
             ConfigurationState.Instance.EnableDiscordIntegration.Value = _discordToggle.Active;
             ConfigurationState.Instance.CheckUpdatesOnStart.Value = _checkUpdatesToggle.Active;
             ConfigurationState.Instance.ShowConfirmExit.Value = _showConfirmExitToggle.Active;
+            ConfigurationState.Instance.CloseOnEmulatorStop.Value = _closeOnEmulatorStopToggle.Active;
             ConfigurationState.Instance.HideCursor.Value = hideCursor;
             ConfigurationState.Instance.Graphics.EnableVsync.Value = _vSyncToggle.Active;
             ConfigurationState.Instance.Graphics.EnableShaderCache.Value = _shaderCacheToggle.Active;
diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
index 0f6c21ef2..56a91dab8 100644
--- a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
+++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
@@ -1,3 +1,4 @@
+using Ryujinx.Common;
 using Ryujinx.Common.Configuration;
 using Ryujinx.Common.Configuration.Hid;
 using Ryujinx.Common.Configuration.Multiplayer;
@@ -162,6 +163,11 @@ namespace Ryujinx.UI.Common.Configuration
         /// </summary>
         public bool ShowConfirmExit { get; set; }
 
+        /// <summary>
+        /// Close Ryujinx on Emulator Stop
+        /// </summary>
+        public bool CloseOnEmulatorStop { get; set; }
+
         /// <summary>
         /// Whether to hide cursor on idle, always or never
         /// </summary>
diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
index b7f36087c..bd08ca78d 100644
--- a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
+++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
@@ -626,6 +626,11 @@ namespace Ryujinx.UI.Common.Configuration
         /// </summary>
         public ReactiveObject<bool> ShowConfirmExit { get; private set; }
 
+        /// <summary>
+        /// Close Ryujinx on Emulator Stop
+        /// </summary>
+        public ReactiveObject<bool> CloseOnEmulatorStop { get; private set; }
+
         /// <summary>
         /// Hide Cursor on Idle
         /// </summary>
@@ -642,6 +647,7 @@ namespace Ryujinx.UI.Common.Configuration
             EnableDiscordIntegration = new ReactiveObject<bool>();
             CheckUpdatesOnStart = new ReactiveObject<bool>();
             ShowConfirmExit = new ReactiveObject<bool>();
+            CloseOnEmulatorStop = new ReactiveObject<bool>();
             HideCursor = new ReactiveObject<HideCursorMode>();
         }
 
@@ -678,6 +684,7 @@ namespace Ryujinx.UI.Common.Configuration
                 EnableDiscordIntegration = EnableDiscordIntegration,
                 CheckUpdatesOnStart = CheckUpdatesOnStart,
                 ShowConfirmExit = ShowConfirmExit,
+                CloseOnEmulatorStop = CloseOnEmulatorStop,
                 HideCursor = HideCursor,
                 EnableVsync = Graphics.EnableVsync,
                 EnableShaderCache = Graphics.EnableShaderCache,
@@ -785,6 +792,7 @@ namespace Ryujinx.UI.Common.Configuration
             EnableDiscordIntegration.Value = true;
             CheckUpdatesOnStart.Value = true;
             ShowConfirmExit.Value = true;
+            CloseOnEmulatorStop.Value = false;
             HideCursor.Value = HideCursorMode.OnIdle;
             Graphics.EnableVsync.Value = true;
             Graphics.EnableShaderCache.Value = true;
@@ -1056,6 +1064,8 @@ namespace Ryujinx.UI.Common.Configuration
 
                 configurationFileFormat.ShowConfirmExit = true;
 
+                configurationFileFormat.CloseOnEmulatorStop = false;
+
                 configurationFileUpdated = true;
             }
 
@@ -1472,6 +1482,7 @@ namespace Ryujinx.UI.Common.Configuration
             EnableDiscordIntegration.Value = configurationFileFormat.EnableDiscordIntegration;
             CheckUpdatesOnStart.Value = configurationFileFormat.CheckUpdatesOnStart;
             ShowConfirmExit.Value = configurationFileFormat.ShowConfirmExit;
+            CloseOnEmulatorStop.Value = configurationFileFormat.CloseOnEmulatorStop;
             HideCursor.Value = configurationFileFormat.HideCursor;
             Graphics.EnableVsync.Value = configurationFileFormat.EnableVsync;
             Graphics.EnableShaderCache.Value = configurationFileFormat.EnableShaderCache;
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index 2febf90ec..3cd28b43c 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -92,6 +92,7 @@
   "SettingsTabGeneralEnableDiscordRichPresence": "Enable Discord Rich Presence",
   "SettingsTabGeneralCheckUpdatesOnLaunch": "Check for Updates on Launch",
   "SettingsTabGeneralShowConfirmExitDialog": "Show \"Confirm Exit\" Dialog",
+  "SettingsTabGeneralCloseOnEmulatorStop": "Close Ryujinx on Emulator Stop",
   "SettingsTabGeneralHideCursor": "Hide Cursor:",
   "SettingsTabGeneralHideCursorNever": "Never",
   "SettingsTabGeneralHideCursorOnIdle": "On Idle",
diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs
index bcaa08600..42530b077 100644
--- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs
@@ -132,6 +132,7 @@ namespace Ryujinx.Ava.UI.ViewModels
         public bool EnableDiscordIntegration { get; set; }
         public bool CheckUpdatesOnStart { get; set; }
         public bool ShowConfirmExit { get; set; }
+        public bool CloseOnEmulatorStop { get; set; }
         public int HideCursor { get; set; }
         public bool EnableDockedMode { get; set; }
         public bool EnableKeyboard { get; set; }
@@ -405,6 +406,7 @@ namespace Ryujinx.Ava.UI.ViewModels
             EnableDiscordIntegration = config.EnableDiscordIntegration;
             CheckUpdatesOnStart = config.CheckUpdatesOnStart;
             ShowConfirmExit = config.ShowConfirmExit;
+            CloseOnEmulatorStop = config.CloseOnEmulatorStop;
             HideCursor = (int)config.HideCursor.Value;
 
             GameDirectories.Clear();
@@ -489,6 +491,7 @@ namespace Ryujinx.Ava.UI.ViewModels
             config.EnableDiscordIntegration.Value = EnableDiscordIntegration;
             config.CheckUpdatesOnStart.Value = CheckUpdatesOnStart;
             config.ShowConfirmExit.Value = ShowConfirmExit;
+            config.CloseOnEmulatorStop.Value = CloseOnEmulatorStop;
             config.HideCursor.Value = (HideCursorMode)HideCursor;
 
             if (_directoryChanged)
diff --git a/src/Ryujinx/UI/Views/Settings/SettingsUIView.axaml b/src/Ryujinx/UI/Views/Settings/SettingsUIView.axaml
index 6504637e6..2dc66a34b 100644
--- a/src/Ryujinx/UI/Views/Settings/SettingsUIView.axaml
+++ b/src/Ryujinx/UI/Views/Settings/SettingsUIView.axaml
@@ -1,4 +1,4 @@
-<UserControl
+<UserControl
     x:Class="Ryujinx.Ava.UI.Views.Settings.SettingsUiView"
     xmlns="https://github.com/avaloniaui"
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
@@ -36,6 +36,9 @@
                     <CheckBox IsChecked="{Binding ShowConfirmExit}">
                         <TextBlock Text="{locale:Locale SettingsTabGeneralShowConfirmExitDialog}" />
                     </CheckBox>
+                    <CheckBox IsChecked="{Binding CloseOnEmulatorStop}">
+                        <TextBlock Text="{locale:Locale SettingsTabGeneralCloseOnEmulatorStop}" />
+                    </CheckBox>
                     <StackPanel Margin="0, 15, 0, 0" Orientation="Horizontal">
                         <TextBlock VerticalAlignment="Center"
                                    Text="{locale:Locale SettingsTabGeneralHideCursor}"