diff --git a/src/Ryujinx.Common/Helpers/ConsoleHelper.cs b/src/Ryujinx.Common/Helpers/ConsoleHelper.cs index 2b3c11b1e..776ff13d7 100644 --- a/src/Ryujinx.Common/Helpers/ConsoleHelper.cs +++ b/src/Ryujinx.Common/Helpers/ConsoleHelper.cs @@ -16,15 +16,6 @@ namespace Ryujinx.Common.Helper [return: MarshalAs(UnmanagedType.Bool)] private static partial bool ShowWindow(nint hWnd, int nCmdShow); - [SupportedOSPlatform("windows")] - [LibraryImport("user32")] - private static partial nint GetForegroundWindow(); - - [SupportedOSPlatform("windows")] - [LibraryImport("user32")] - [return: MarshalAs(UnmanagedType.Bool)] - private static partial bool SetForegroundWindow(nint hWnd); - public static bool SetConsoleWindowStateSupported => OperatingSystem.IsWindows(); public static void SetConsoleWindowState(bool show) @@ -53,10 +44,6 @@ namespace Ryujinx.Common.Helper return; } - SetForegroundWindow(hWnd); - - hWnd = GetForegroundWindow(); - ShowWindow(hWnd, show ? SW_SHOW : SW_HIDE); } } diff --git a/src/Ryujinx/Program.cs b/src/Ryujinx/Program.cs index d1b85c6b0..4340beaee 100644 --- a/src/Ryujinx/Program.cs +++ b/src/Ryujinx/Program.cs @@ -24,9 +24,11 @@ using Ryujinx.Headless; using Ryujinx.SDL3.Common; using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; using System.Security.Principal; +using System.Text; using System.Threading.Tasks; namespace Ryujinx.Ava @@ -52,6 +54,17 @@ namespace Ryujinx.Ava if (OperatingSystem.IsWindows()) { +#if !DEBUG + // this fixes the "hide console" option by forcing the emulator to launch in an old-school cmd + if (!Console.Title.Contains("conhost.exe")) + { + string sargs = string.Join(" ", args); + + Process.Start("conhost.exe", $"{Environment.ProcessPath} {sargs}"); + return 0; + } +#endif + if (!OperatingSystem.IsWindowsVersionAtLeast(10, 0, 19041)) { _ = Win32NativeInterop.MessageBoxA(nint.Zero, "You are running an outdated version of Windows.\n\nRyujinx supports Windows 10 version 20H1 and newer.\n", $"Ryujinx {Version}", MbIconwarning);