diff --git a/projects/openttd_vs140.sln b/projects/openttd_vs140.sln
index d256cfa495..32f3033fb2 100644
--- a/projects/openttd_vs140.sln
+++ b/projects/openttd_vs140.sln
@@ -24,6 +24,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settings", "settings_vs140.
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settingsgen", "settingsgen_vs140.vcxproj", "{E9548DE9-F089-49B7-93A6-30BE2CC311C7}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regression", "regression_vs140.vcxproj", "{4712B013-437D-42CE-947F-DEBABA15261F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -84,6 +86,10 @@ Global
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|Win32.Build.0 = Debug|Win32
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|x64.ActiveCfg = Debug|Win32
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|x64.Build.0 = Debug|Win32
+ {4712B013-437D-42CE-947F-DEBABA15261F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4712B013-437D-42CE-947F-DEBABA15261F}.Debug|x64.ActiveCfg = Debug|Win32
+ {4712B013-437D-42CE-947F-DEBABA15261F}.Release|Win32.ActiveCfg = Debug|Win32
+ {4712B013-437D-42CE-947F-DEBABA15261F}.Release|x64.ActiveCfg = Debug|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/projects/openttd_vs141.sln b/projects/openttd_vs141.sln
index e314c628a7..86f2685cd9 100644
--- a/projects/openttd_vs141.sln
+++ b/projects/openttd_vs141.sln
@@ -24,6 +24,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settings", "settings_vs141.
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "settingsgen", "settingsgen_vs141.vcxproj", "{E9548DE9-F089-49B7-93A6-30BE2CC311C7}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "regression", "regression_vs141.vcxproj", "{4712B013-437D-42CE-947F-DEBABA15261F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -84,6 +86,10 @@ Global
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|Win32.Build.0 = Debug|Win32
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|x64.ActiveCfg = Debug|Win32
{E9548DE9-F089-49B7-93A6-30BE2CC311C7}.Release|x64.Build.0 = Debug|Win32
+ {4712B013-437D-42CE-947F-DEBABA15261F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {4712B013-437D-42CE-947F-DEBABA15261F}.Debug|x64.ActiveCfg = Debug|Win32
+ {4712B013-437D-42CE-947F-DEBABA15261F}.Release|Win32.ActiveCfg = Debug|Win32
+ {4712B013-437D-42CE-947F-DEBABA15261F}.Release|x64.ActiveCfg = Debug|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/projects/regression.bat b/projects/regression.bat
new file mode 100644
index 0000000000..db373c371b
--- /dev/null
+++ b/projects/regression.bat
@@ -0,0 +1,6 @@
+cd ..\bin
+editbin /nologo /subsystem:console openttd.exe
+cscript /nologo ai\regression\run.vbs
+set RESULT=%ERRORLEVEL%
+editbin /nologo /subsystem:windows openttd.exe
+exit %RESULT%
diff --git a/projects/regression_vs140.vcxproj b/projects/regression_vs140.vcxproj
new file mode 100644
index 0000000000..b1c9f4930a
--- /dev/null
+++ b/projects/regression_vs140.vcxproj
@@ -0,0 +1,41 @@
+
+
+
+
+ Debug
+ Win32
+
+
+
+ {4712B013-437D-42CE-947F-DEBABA15261F}
+ regression
+ regression
+
+
+
+ Makefile
+ v140
+
+
+
+
+
+
+
+
+
+
+
+ call regression.bat
+ call regression.bat
+ del ..\bin\tmp.regression
+
+
+
+ {668328a0-b40e-4cdb-bd72-d0064424414a}
+
+
+
+
+
+
diff --git a/projects/regression_vs141.vcxproj b/projects/regression_vs141.vcxproj
new file mode 100644
index 0000000000..fda3f3312d
--- /dev/null
+++ b/projects/regression_vs141.vcxproj
@@ -0,0 +1,41 @@
+
+
+
+
+ Debug
+ Win32
+
+
+
+ {4712B013-437D-42CE-947F-DEBABA15261F}
+ regression
+ regression
+
+
+
+ Makefile
+ v141
+
+
+
+
+
+
+
+
+
+
+
+ call regression.bat
+ call regression.bat
+ del ..\bin\tmp.regression
+
+
+
+ {668328a0-b40e-4cdb-bd72-d0064424414a}
+
+
+
+
+
+