diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index 74e18056b..00d0aa40d 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -780,5 +780,10 @@
"MultiplayerMode": "Mode:",
"MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
"MultiplayerModeDisabled": "Disabled",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "SettingsTabDebug": "Debug",
+ "SettingsTabDebugTitle": "Debug (WARNING: For developer use only)",
+ "SettingsTabDebugEnableGDBStub": "Enable GDB Stub",
+ "GDBStubToggleTooltip": "Enables the GDB stub which makes it possible to debug the running application. For development use only!",
+ "GDBStubPort": "GDB stub port:"
}
diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs
index 70e5fa5c7..b85ca8df5 100644
--- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs
@@ -54,6 +54,8 @@ namespace Ryujinx.Ava.UI.ViewModels
public event Action SaveSettingsEvent;
private int _networkInterfaceIndex;
private int _multiplayerModeIndex;
+ private bool _enableGDBStub;
+ private ushort _gdbStubPort;
public int ResolutionScale
{
@@ -259,6 +261,26 @@ namespace Ryujinx.Ava.UI.ViewModels
}
}
+ public bool EnableGdbStub
+ {
+ get => _enableGDBStub;
+ set
+ {
+ _enableGDBStub = value;
+ ConfigurationState.Instance.Debug.EnableGdbStub.Value = _enableGDBStub;
+ }
+ }
+
+ public ushort GDBStubPort
+ {
+ get => _gdbStubPort;
+ set
+ {
+ _gdbStubPort = value;
+ ConfigurationState.Instance.Debug.GdbStubPort.Value = _gdbStubPort;
+ }
+ }
+
public SettingsViewModel(VirtualFileSystem virtualFileSystem, ContentManager contentManager) : this()
{
_virtualFileSystem = virtualFileSystem;
@@ -472,7 +494,12 @@ namespace Ryujinx.Ava.UI.ViewModels
FsGlobalAccessLogMode = config.System.FsGlobalAccessLogMode;
OpenglDebugLevel = (int)config.Logger.GraphicsDebugLevel.Value;
+ // Multiplayer
MultiplayerModeIndex = (int)config.Multiplayer.Mode.Value;
+
+ // Debug
+ EnableGdbStub = config.Debug.EnableGdbStub.Value;
+ GDBStubPort = config.Debug.GdbStubPort.Value;
}
public void SaveSettings()
@@ -578,9 +605,14 @@ namespace Ryujinx.Ava.UI.ViewModels
config.System.FsGlobalAccessLogMode.Value = FsGlobalAccessLogMode;
config.Logger.GraphicsDebugLevel.Value = (GraphicsDebugLevel)OpenglDebugLevel;
+ // Multiplayer
config.Multiplayer.LanInterfaceId.Value = _networkInterfaces[NetworkInterfaceList[NetworkInterfaceIndex]];
config.Multiplayer.Mode.Value = (MultiplayerMode)MultiplayerModeIndex;
+ // Debug
+ config.Debug.EnableGdbStub.Value = EnableGdbStub;
+ config.Debug.GdbStubPort.Value = GDBStubPort;
+
config.ToFileFormat().SaveConfig(Program.ConfigurationPath);
MainWindow.UpdateGraphicsConfig();
diff --git a/src/Ryujinx/UI/Views/Settings/SettingsDebugView.axaml b/src/Ryujinx/UI/Views/Settings/SettingsDebugView.axaml
new file mode 100644
index 000000000..d47d8d8e6
--- /dev/null
+++ b/src/Ryujinx/UI/Views/Settings/SettingsDebugView.axaml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Ryujinx/UI/Views/Settings/SettingsDebugView.axaml.cs b/src/Ryujinx/UI/Views/Settings/SettingsDebugView.axaml.cs
new file mode 100644
index 000000000..14a65b8b2
--- /dev/null
+++ b/src/Ryujinx/UI/Views/Settings/SettingsDebugView.axaml.cs
@@ -0,0 +1,13 @@
+using Avalonia.Controls;
+
+namespace Ryujinx.Ava.UI.Views.Settings
+{
+ public partial class SettingsDebugView : UserControl
+ {
+ public SettingsDebugView()
+ {
+ InitializeComponent();
+ }
+ }
+}
+
diff --git a/src/Ryujinx/UI/Windows/SettingsWindow.axaml b/src/Ryujinx/UI/Windows/SettingsWindow.axaml
index de3c2291a..c6f5d3950 100644
--- a/src/Ryujinx/UI/Windows/SettingsWindow.axaml
+++ b/src/Ryujinx/UI/Windows/SettingsWindow.axaml
@@ -42,6 +42,7 @@
+
+