diff --git a/.gitignore b/.gitignore
index 1dd1c19d51a706b7b792ba2e32895ed9d88f8228..4ba05f7ca698b968eec6391857fa5ec68e1b422e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,4 +24,5 @@ Win32_LIB_ASM_Release
 /build
 /build/*
 /CMakeUserPresets.json
-/out
\ No newline at end of file
+/out
+/objs/VC10
diff --git a/src/console.c b/src/console.c
index e4bdec0cea6aa7dfefa5c4cfcbca410537448fac..4143e5e066b78e320a22e60b3f0ecb9712f848e3 100644
--- a/src/console.c
+++ b/src/console.c
@@ -220,7 +220,7 @@ static char *bindtable[NUMINPUTS];
 static void CONS_Bind_f(void)
 {
 	size_t na;
-	char *newcmd;
+	char *newcmd = NULL;
 	//size_t newlen = 0;
 	unsigned int i;
 	INT32 key;
diff --git a/src/m_menu.c b/src/m_menu.c
index de23acbfb46b4402261cef08c54bd972d61553ec..edbbdf2c1587a785479f8333c5ff0a8cbb997806 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -10535,7 +10535,7 @@ static void M_StartTimeAttackReplay(INT32 choice)
 // Player has selected the "REPLAY" from the time attack screen
 static void M_ReplayTimeAttack(INT32 choice)
 {
-	const char *which;
+	const char *which = NULL;
 	UINT8 error = DFILE_ERROR_NONE;
 
 	if (currentMenu == &SP_ReplayDef)
diff --git a/src/r_picformats.c b/src/r_picformats.c
index 7d7f1198d1805b24b715f78a339b07c952dd4e04..e4a59f2115d3833b3f5a76e38ff4a1cdd7d4ce30 100644
--- a/src/r_picformats.c
+++ b/src/r_picformats.c
@@ -376,7 +376,7 @@ void *Picture_PatchConvert(
 	// Write columns
 	for (INT32 x = 0; x < inwidth; x++)
 	{
-		post_t *post;
+		post_t *post = NULL;
 		size_t post_data_offset = 0;
 		boolean was_opaque = false;
 
diff --git a/src/r_textures.c b/src/r_textures.c
index 1bc0534ec6d4799aa8b4c4117f07a86fc103fc4f..0175a080e7cbd901bee865429660ddb3de51af9f 100644
--- a/src/r_textures.c
+++ b/src/r_textures.c
@@ -472,7 +472,7 @@ UINT8 *R_GenerateTexture(size_t texnum)
 
 	for (x = 0; x < texture->width; x++)
 	{
-		post_t *post;
+		post_t *post = NULL;
 		boolean was_opaque = false;
 
 		column_t *column = &temp_columns[x];
diff --git a/src/sdl/Srb2SDL-vc10.vcxproj b/src/sdl/Srb2SDL-vc10.vcxproj
index 4621700787f0c9b6395b5899730bc303a2699f1d..0f0355c6f28ad2afbd6d201f7fba46897e73f1f3 100644
--- a/src/sdl/Srb2SDL-vc10.vcxproj
+++ b/src/sdl/Srb2SDL-vc10.vcxproj
@@ -165,7 +165,22 @@
       <MultiProcessorCompilation>true</MultiProcessorCompilation>
       <MinimalRebuild>false</MinimalRebuild>
       <LanguageStandard>stdcpp17</LanguageStandard>
+      <PreprocessorDefinitions>HAVE_CURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\..\libs\curl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
     </ClCompile>
+    <CustomBuild>
+      <Command />
+    </CustomBuild>
+    <CustomBuild>
+      <Message />
+    </CustomBuild>
+    <CustomBuild>
+      <Outputs />
+    </CustomBuild>
+    <Link>
+      <AdditionalDependencies>libcurl.dll.a;libz32.a;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\..\libs\zlib\win32;..\..\libs\curl\lib32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
@@ -175,8 +190,51 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
       <DisableSpecificWarnings>4244;4267;4146;4003</DisableSpecificWarnings>
+      <PreprocessorDefinitions>HAVE_CURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\libs\curl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <CustomBuild>
+      <Command />
+    </CustomBuild>
+    <CustomBuild>
+      <Message />
+    </CustomBuild>
+    <CustomBuild>
+      <Outputs />
+    </CustomBuild>
+    <Link>
+      <AdditionalDependencies>libcurl.dll.a;libz32.a;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\libs\zlib\win32;..\libs\curl\lib32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <TreatWarningAsError>false</TreatWarningAsError>
     </ClCompile>
   </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <MinimalRebuild>false</MinimalRebuild>
+      <DisableSpecificWarnings>4244;4267;4146</DisableSpecificWarnings>
+      <PreprocessorDefinitions>HAVE_CURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <AdditionalIncludeDirectories>..\libs\curl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalModuleDependencies>..\libs\curl\lib64;%(AdditionalModuleDependencies)</AdditionalModuleDependencies>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libcurl.a;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\libs\curl\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PreprocessorDefinitions>HAVE_CURL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>libcurl.a;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>..\libs\curl\lib64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
   <ItemGroup>
     <ProjectReference Include="..\..\libs\libpng-src\projects\visualc10\libpng.vcxproj">
       <Project>{72b01aca-7a1a-4f7b-acef-2607299cf052}</Project>
@@ -314,7 +372,6 @@
     <ClInclude Include="..\netcode\server_connection.h" />
     <ClInclude Include="..\netcode\tic_command.h" />
     <ClInclude Include="..\p5prof.h" />
-    <ClInclude Include="..\p_haptic.h" />
     <ClInclude Include="..\p_local.h" />
     <ClInclude Include="..\p_maputl.h" />
     <ClInclude Include="..\p_mobj.h" />
@@ -400,6 +457,7 @@
     <ClCompile Include="..\blua\lmem.c" />
     <ClCompile Include="..\blua\lobject.c" />
     <ClCompile Include="..\blua\lopcodes.c" />
+    <ClCompile Include="..\blua\loslib.c" />
     <ClCompile Include="..\blua\lparser.c" />
     <ClCompile Include="..\blua\lstate.c" />
     <ClCompile Include="..\blua\lstring.c" />
@@ -438,6 +496,8 @@
     <ClCompile Include="..\hardware\hw_md3load.c" />
     <ClCompile Include="..\hardware\hw_model.c" />
     <ClCompile Include="..\hardware\r_opengl\r_opengl.c" />
+    <ClCompile Include="..\lua_colorlib.c" />
+    <ClCompile Include="..\r_bbox.c" />
     <ClCompile Include="..\u_list.c" />
     <ClCompile Include="..\hu_stuff.c" />
     <ClCompile Include="..\info.c" />
@@ -495,7 +555,6 @@
     <ClCompile Include="..\p_ceilng.c" />
     <ClCompile Include="..\p_enemy.c" />
     <ClCompile Include="..\p_floor.c" />
-    <ClCompile Include="..\p_haptic.c" />
     <ClCompile Include="..\p_inter.c" />
     <ClCompile Include="..\p_lights.c" />
     <ClCompile Include="..\p_map.c" />
@@ -567,7 +626,6 @@
     <ClCompile Include="IMG_xpm.c">
       <ExcludedFromBuild>true</ExcludedFromBuild>
     </ClCompile>
-    <ClCompile Include="i_gamepad.c" />
     <ClCompile Include="i_main.c" />
     <ClCompile Include="i_net.c" />
     <ClCompile Include="i_system.c" />
@@ -584,4 +642,4 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
-</Project>
+</Project>
\ No newline at end of file
diff --git a/src/sdl/Srb2SDL-vc10.vcxproj.filters b/src/sdl/Srb2SDL-vc10.vcxproj.filters
index 59bb76b52089708abec222a46052d89f6b25ab6f..183843018f84087b8555fbce59e638e67cfa3546 100644
--- a/src/sdl/Srb2SDL-vc10.vcxproj.filters
+++ b/src/sdl/Srb2SDL-vc10.vcxproj.filters
@@ -255,9 +255,6 @@
     <ClInclude Include="..\hardware\hw_model.h">
       <Filter>Hw_Hardware</Filter>
     </ClInclude>
-    <ClInclude Include="..\hardware\u_list.h">
-      <Filter>Hw_Hardware</Filter>
-    </ClInclude>
     <ClInclude Include="..\byteptr.h">
       <Filter>I_Interface</Filter>
     </ClInclude>
@@ -378,9 +375,6 @@
     <ClInclude Include="..\netcode\gamestate.h">
       <Filter>D_Doom</Filter>
     </ClInclude>
-    <ClInclude Include="..\netcode\http-mserv.h">
-      <Filter>I_Interface</Filter>
-    </ClInclude>
     <ClInclude Include="..\netcode\i_addrinfo.h">
       <Filter>I_Interface</Filter>
     </ClInclude>
@@ -558,12 +552,16 @@
     <ClInclude Include="..\r_fps.h">
       <Filter>R_Rend</Filter>
     </ClInclude>
-    <ClInclude Include="..\p_haptic.h">
-      <Filter>P_Play</Filter>
-    </ClInclude>
     <ClInclude Include="..\m_easing.h">
       <Filter>M_Misc</Filter>
     </ClInclude>
+    <ClInclude Include="..\d_clisrv.h" />
+    <ClInclude Include="..\d_net.h" />
+    <ClInclude Include="..\d_netcmd.h" />
+    <ClInclude Include="..\d_netfil.h" />
+    <ClInclude Include="..\u_list.h" />
+    <ClInclude Include="..\mserv.h" />
+    <ClInclude Include="..\http-mserv.h" />
   </ItemGroup>
   <ItemGroup>
     <CustomBuild Include="..\tmap.nas">
@@ -753,15 +751,9 @@
     <ClCompile Include="..\hardware\hw_model.c">
       <Filter>Hw_Hardware</Filter>
     </ClCompile>
-    <ClCompile Include="..\hardware\u_list.c">
-      <Filter>Hw_Hardware</Filter>
-    </ClCompile>
     <ClCompile Include="..\filesrch.c">
       <Filter>I_Interface</Filter>
     </ClCompile>
-    <ClCompile Include="..\i_tcp.c">
-      <Filter>I_Interface</Filter>
-    </ClCompile>
     <ClCompile Include="..\lua_baselib.c">
       <Filter>LUA</Filter>
     </ClCompile>
@@ -1105,21 +1097,25 @@
     <ClCompile Include="..\lua_hudlib_drawlist.c">
       <Filter>LUA</Filter>
     </ClCompile>
-    <ClCompile Include="i_gamepad.c">
-      <Filter>SDLApp</Filter>
-    </ClCompile>
     <ClCompile Include="..\i_time.c">
       <Filter>I_Interface</Filter>
     </ClCompile>
     <ClCompile Include="..\r_fps.c">
       <Filter>R_Rend</Filter>
     </ClCompile>
-    <ClCompile Include="..\p_haptic.c">
-      <Filter>P_Play</Filter>
-    </ClCompile>
     <ClCompile Include="..\m_easing.c">
       <Filter>M_Misc</Filter>
     </ClCompile>
+    <ClCompile Include="..\u_list.c" />
+    <ClCompile Include="..\blua\loslib.c">
+      <Filter>BLUA</Filter>
+    </ClCompile>
+    <ClCompile Include="..\lua_colorlib.c">
+      <Filter>LUA</Filter>
+    </ClCompile>
+    <ClCompile Include="..\r_bbox.c">
+      <Filter>R_Rend</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <Image Include="Srb2SDL.ico">