diff --git a/UWP/CoreUWP/CoreUWP.vcxproj b/UWP/CoreUWP/CoreUWP.vcxproj
index 80830c4cc3..8d706d5566 100644
--- a/UWP/CoreUWP/CoreUWP.vcxproj
+++ b/UWP/CoreUWP/CoreUWP.vcxproj
@@ -565,6 +565,7 @@
+
@@ -804,6 +805,7 @@
+
@@ -947,8 +949,11 @@
{acb316ca-3ecb-48e5-be0a-91e72d5b0f12}
+
+ {d31fd4f0-53eb-477c-9dc7-149796f628e2}
+
-
+
\ No newline at end of file
diff --git a/UWP/CoreUWP/CoreUWP.vcxproj.filters b/UWP/CoreUWP/CoreUWP.vcxproj.filters
index 5e9b91ec56..b4eaac21a4 100644
--- a/UWP/CoreUWP/CoreUWP.vcxproj.filters
+++ b/UWP/CoreUWP/CoreUWP.vcxproj.filters
@@ -708,6 +708,9 @@
HW
+
+ Util
+
@@ -1307,5 +1310,8 @@
HW
+
+ Util
+
-
+
\ No newline at end of file
diff --git a/UWP/PPSSPP_UWP.sln b/UWP/PPSSPP_UWP.sln
index 73a916158b..63a8e5f693 100644
--- a/UWP/PPSSPP_UWP.sln
+++ b/UWP/PPSSPP_UWP.sln
@@ -5,6 +5,9 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CommonUWP", "CommonUWP\CommonUWP.vcxproj", "{ACB316CA-3ECB-48E5-BE0A-91E72D5B0F12}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CoreUWP", "CoreUWP\CoreUWP.vcxproj", "{40B76674-02DE-40EF-889B-FAD1489685E7}"
+ ProjectSection(ProjectDependencies) = postProject
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2} = {D31FD4F0-53EB-477C-9DC7-149796F628E2}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GPU_UWP", "GPU_UWP\GPU_UWP.vcxproj", "{5D271429-C288-4534-98AF-94475D940058}"
EndProject
@@ -17,6 +20,9 @@ EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlib_UWP", "zlib_UWP\zlib_UWP.vcxproj", "{DDF90203-0AAE-4F38-B589-2E9637658CE6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PPSSPP_UWP", "UWP.vcxproj", "{01D7D581-09A3-4A26-94BD-A7C529B29329}"
+ ProjectSection(ProjectDependencies) = postProject
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2} = {D31FD4F0-53EB-477C-9DC7-149796F628E2}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glslang_UWP", "glslang_UWP\glslang_UWP.vcxproj", "{D326891E-ECE4-4B94-B5E7-8AA0A8E8ECBC}"
EndProject
@@ -24,6 +30,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPIRVCross_UWP", "SPIRVCros
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Armips_UWP", "Armips_UWP\Armips_UWP.vcxproj", "{75286959-E7A2-4CBE-8B95-BF05C9C540FF}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniupnpc_UWP", "miniupnpc_UWP\miniupnpc_UWP.vcxproj", "{D31FD4F0-53EB-477C-9DC7-149796F628E2}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|ARM = Debug|ARM
@@ -316,6 +324,30 @@ Global
{75286959-E7A2-4CBE-8B95-BF05C9C540FF}.UWP Gold|Win32.Build.0 = Release|Win32
{75286959-E7A2-4CBE-8B95-BF05C9C540FF}.UWP Gold|x64.ActiveCfg = Release|x64
{75286959-E7A2-4CBE-8B95-BF05C9C540FF}.UWP Gold|x64.Build.0 = Release|x64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Debug|ARM.ActiveCfg = Debug|ARM
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Debug|ARM.Build.0 = Debug|ARM
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Debug|ARM64.Build.0 = Debug|ARM64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Debug|Win32.Build.0 = Debug|Win32
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Debug|x64.ActiveCfg = Debug|x64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Debug|x64.Build.0 = Debug|x64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Release|ARM.ActiveCfg = Release|ARM
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Release|ARM.Build.0 = Release|ARM
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Release|ARM64.ActiveCfg = Release|ARM64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Release|ARM64.Build.0 = Release|ARM64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Release|Win32.ActiveCfg = Release|Win32
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Release|Win32.Build.0 = Release|Win32
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Release|x64.ActiveCfg = Release|x64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.Release|x64.Build.0 = Release|x64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.UWP Gold|ARM.ActiveCfg = UWP Gold|ARM
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.UWP Gold|ARM.Build.0 = UWP Gold|ARM
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.UWP Gold|ARM64.ActiveCfg = UWP Gold|ARM64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.UWP Gold|ARM64.Build.0 = UWP Gold|ARM64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.UWP Gold|Win32.ActiveCfg = UWP Gold|Win32
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.UWP Gold|Win32.Build.0 = UWP Gold|Win32
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.UWP Gold|x64.ActiveCfg = UWP Gold|x64
+ {D31FD4F0-53EB-477C-9DC7-149796F628E2}.UWP Gold|x64.Build.0 = UWP Gold|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/UWP/miniupnpc_UWP/miniupnpc_UWP.vcxproj b/UWP/miniupnpc_UWP/miniupnpc_UWP.vcxproj
new file mode 100644
index 0000000000..836bc5b430
--- /dev/null
+++ b/UWP/miniupnpc_UWP/miniupnpc_UWP.vcxproj
@@ -0,0 +1,427 @@
+
+
+
+
+ Debug
+ ARM
+
+
+ Debug
+ ARM64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ ARM
+
+
+ Release
+ ARM64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+ UWP Gold
+ ARM
+
+
+ UWP Gold
+ ARM64
+
+
+ UWP Gold
+ Win32
+
+
+ UWP Gold
+ x64
+
+
+
+ {d31fd4f0-53eb-477c-9dc7-149796f628e2}
+ StaticLibrary
+ miniupnpc_UWP
+ en-US
+ 14.0
+ true
+ Windows Store
+ 10.0.15063.0
+ 10.0
+ 10.0.17763.0
+
+
+
+ StaticLibrary
+ true
+
+
+ StaticLibrary
+ true
+
+
+ StaticLibrary
+ true
+
+
+ StaticLibrary
+ true
+
+
+ StaticLibrary
+ false
+ true
+
+
+ StaticLibrary
+ false
+ true
+
+
+ StaticLibrary
+ false
+ false
+
+
+ StaticLibrary
+ false
+ false
+
+
+ StaticLibrary
+ false
+ false
+
+
+ StaticLibrary
+ false
+ false
+
+
+ StaticLibrary
+ false
+ true
+
+
+ StaticLibrary
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+ false
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1;%(ClCompile.PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_ARM64_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1;%(ClCompile.PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1;%(ClCompile.PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_ARM64_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1;%(ClCompile.PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1;%(ClCompile.PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_ARM64_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1;%(ClCompile.PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+ Use
+ false
+ true
+ pch.h
+ _CRT_SECURE_NO_WARNINGS;NOMINMAX;MINIUPNP_STATICLIB;_WINSOCK_DEPRECATED_NO_WARNINGS;_UNICODE;UNICODE;%(PreprocessorDefinitions)
+ ../../ext/miniupnpc;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories)
+
+
+ Console
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+ Create
+ Create
+ Create
+ Create
+ Create
+ Create
+ Create
+ Create
+ Create
+ Create
+
+
+
+
+
+
\ No newline at end of file
diff --git a/UWP/miniupnpc_UWP/miniupnpc_UWP.vcxproj.filters b/UWP/miniupnpc_UWP/miniupnpc_UWP.vcxproj.filters
new file mode 100644
index 0000000000..7c2633456f
--- /dev/null
+++ b/UWP/miniupnpc_UWP/miniupnpc_UWP.vcxproj.filters
@@ -0,0 +1,94 @@
+
+
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+
+
+ {3e20a98f-6a6c-4ba1-8b5a-d44430460dd1}
+
+
+
\ No newline at end of file
diff --git a/UWP/miniupnpc_UWP/pch.c b/UWP/miniupnpc_UWP/pch.c
new file mode 100644
index 0000000000..bcb5590be1
--- /dev/null
+++ b/UWP/miniupnpc_UWP/pch.c
@@ -0,0 +1 @@
+#include "pch.h"
diff --git a/UWP/miniupnpc_UWP/pch.h b/UWP/miniupnpc_UWP/pch.h
new file mode 100644
index 0000000000..be721813fc
--- /dev/null
+++ b/UWP/miniupnpc_UWP/pch.h
@@ -0,0 +1,4 @@
+#pragma once
+
+#include "targetver.h"
+
diff --git a/UWP/miniupnpc_UWP/targetver.h b/UWP/miniupnpc_UWP/targetver.h
new file mode 100644
index 0000000000..a66ecb00f1
--- /dev/null
+++ b/UWP/miniupnpc_UWP/targetver.h
@@ -0,0 +1,8 @@
+#pragma once
+
+// Including SDKDDKVer.h defines the highest available Windows platform.
+
+// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
+// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
+
+#include