From 39bdf6d41e6cad370f7a10b766d91418c194ead8 Mon Sep 17 00:00:00 2001
From: Mary <mary@mary.zone>
Date: Wed, 4 May 2022 20:21:27 +0200
Subject: [PATCH] infra: Warn about support drop of old Windows versions
 (#3299)

* infra: Warn about support drop of old Windows versions

See #3298.

* Address comment
---
 Ryujinx/Program.cs | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/Ryujinx/Program.cs b/Ryujinx/Program.cs
index 26b89d06f9..267acefa6c 100644
--- a/Ryujinx/Program.cs
+++ b/Ryujinx/Program.cs
@@ -32,8 +32,20 @@ namespace Ryujinx
         [DllImport("libX11")]
         private extern static int XInitThreads();
 
+        [DllImport("user32.dll", SetLastError = true)]
+        public static extern int MessageBoxA(IntPtr hWnd, string text, string caption, uint type);
+
+        private const uint MB_ICONWARNING = 0x30;
+
         static void Main(string[] args)
-        { 
+        {
+            Version = ReleaseInformations.GetVersion();
+
+            if (OperatingSystem.IsWindows() && !OperatingSystem.IsWindowsVersionAtLeast(10, 0, 17134))
+            {
+                MessageBoxA(IntPtr.Zero, "You are running an outdated version of Windows.\n\nStarting on June 1st 2022, Ryujinx will only support Windows 10 1803 and newer.\n", $"Ryujinx {Version}", MB_ICONWARNING);
+            }
+
             // Parse Arguments.
             string launchPathArg      = null;
             string baseDirPathArg     = null;
@@ -82,8 +94,6 @@ namespace Ryujinx
             // Delete backup files after updating.
             Task.Run(Updater.CleanupUpdate);
 
-            Version = ReleaseInformations.GetVersion();
-
             Console.Title = $"Ryujinx Console {Version}";
 
             // NOTE: GTK3 doesn't init X11 in a multi threaded way.