diff --git a/duckstation.sln b/duckstation.sln
index a6949ecfb..af512b58f 100644
--- a/duckstation.sln
+++ b/duckstation.sln
@@ -31,6 +31,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core", "src\core\core.vcxpr
{BB08260F-6FBC-46AF-8924-090EE71360C6} = {BB08260F-6FBC-46AF-8924-090EE71360C6}
{E4357877-D459-45C7-B8F6-DCBB587BB528} = {E4357877-D459-45C7-B8F6-DCBB587BB528}
{ED601289-AC1A-46B8-A8ED-17DB9EB73423} = {ED601289-AC1A-46B8-A8ED-17DB9EB73423}
+ {EDF3634A-CE8A-4625-92BD-27BAD5D30A9A} = {EDF3634A-CE8A-4625-92BD-27BAD5D30A9A}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stb", "dep\stb\stb.vcxproj", "{ED601289-AC1A-46B8-A8ED-17DB9EB73423}"
diff --git a/src/core/core.props b/src/core/core.props
index 7f3b8c7d7..6f6436108 100644
--- a/src/core/core.props
+++ b/src/core/core.props
@@ -9,7 +9,7 @@
WITH_RECOMPILER=1;%(PreprocessorDefinitions)
WITH_MMAP_FASTMEM=1;%(PreprocessorDefinitions)
- $(SolutionDir)dep\tinyxml2\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\stb\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\xxhash\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\rcheevos\include;$(SolutionDir)dep\rapidjson\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
+ $(SolutionDir)dep\ggpo-x\include;$(SolutionDir)dep\tinyxml2\include;$(SolutionDir)dep\glad\include;$(SolutionDir)dep\stb\include;$(SolutionDir)dep\imgui\include;$(SolutionDir)dep\xxhash\include;$(SolutionDir)dep\zlib\include;$(SolutionDir)dep\rcheevos\include;$(SolutionDir)dep\rapidjson\include;$(SolutionDir)src;%(AdditionalIncludeDirectories)
$(SolutionDir)dep\rainterface;%(AdditionalIncludeDirectories)
$(SolutionDir)dep\xbyak\xbyak;%(AdditionalIncludeDirectories)
@@ -19,7 +19,7 @@
- $(RootBuildDir)tinyxml2\tinyxml2.lib;$(RootBuildDir)rcheevos\rcheevos.lib;$(RootBuildDir)imgui\imgui.lib;$(RootBuildDir)stb\stb.lib;$(RootBuildDir)xxhash\xxhash.lib;$(RootBuildDir)zlib\zlib.lib;$(RootBuildDir)util\util.lib;$(RootBuildDir)common\common.lib;%(AdditionalDependencies)
+ $(RootBuildDir)ggpo-x\ggpo-x.lib;$(RootBuildDir)tinyxml2\tinyxml2.lib;$(RootBuildDir)rcheevos\rcheevos.lib;$(RootBuildDir)imgui\imgui.lib;$(RootBuildDir)stb\stb.lib;$(RootBuildDir)xxhash\xxhash.lib;$(RootBuildDir)zlib\zlib.lib;$(RootBuildDir)util\util.lib;$(RootBuildDir)common\common.lib;%(AdditionalDependencies)
$(RootBuildDir)rainterface\rainterface.lib;%(AdditionalDependencies)
$(RootBuildDir)vixl\vixl.lib;%(AdditionalDependencies)
diff --git a/src/core/core.vcxproj b/src/core/core.vcxproj
index fc2d34c2a..ad9ba3965 100644
--- a/src/core/core.vcxproj
+++ b/src/core/core.vcxproj
@@ -62,6 +62,7 @@
+
@@ -137,6 +138,7 @@
+
diff --git a/src/core/core.vcxproj.filters b/src/core/core.vcxproj.filters
index b0951bd14..c2b246773 100644
--- a/src/core/core.vcxproj.filters
+++ b/src/core/core.vcxproj.filters
@@ -59,6 +59,7 @@
+
@@ -125,5 +126,6 @@
+
\ No newline at end of file
diff --git a/src/core/netplay.cpp b/src/core/netplay.cpp
index b44b6962f..8d0e8cb8e 100644
--- a/src/core/netplay.cpp
+++ b/src/core/netplay.cpp
@@ -4,6 +4,10 @@
#include "system.h"
#include
+#ifdef _WIN32
+#pragma comment(lib, "ws2_32.lib")
+#endif
+
// Netplay Impl
Netplay::Session::Session() = default;
diff --git a/src/duckstation-qt/duckstation-qt.vcxproj b/src/duckstation-qt/duckstation-qt.vcxproj
index f01010de3..6e851e84e 100644
--- a/src/duckstation-qt/duckstation-qt.vcxproj
+++ b/src/duckstation-qt/duckstation-qt.vcxproj
@@ -41,6 +41,7 @@
+
@@ -97,6 +98,7 @@
+
@@ -130,6 +132,9 @@
Document
+
+ Document
+
Document
@@ -260,6 +265,7 @@
+