diff --git a/code/asm/ftola.asm b/code/asm/ftola.asm
index eea9d0e3..321b6b5e 100644
--- a/code/asm/ftola.asm
+++ b/code/asm/ftola.asm
@@ -21,6 +21,9 @@
; MASM ftol conversion functions using SSE or FPU
; assume __cdecl calling convention is being used for x86, __fastcall for x64
+.686p
+.xmm
+
IFNDEF idx64
.model flat, c
ENDIF
diff --git a/code/asm/snapvector.asm b/code/asm/snapvector.asm
index 22f9b225..9e61bec6 100644
--- a/code/asm/snapvector.asm
+++ b/code/asm/snapvector.asm
@@ -24,6 +24,9 @@
; function prototype:
; void qsnapvector(vec3_t vec)
+.686p
+.xmm
+
IFNDEF idx64
.model flat, c
ENDIF
diff --git a/code/rend2/tr_init.c b/code/rend2/tr_init.c
index 2ee6ff32..94b97f8b 100644
--- a/code/rend2/tr_init.c
+++ b/code/rend2/tr_init.c
@@ -1504,7 +1504,7 @@ GetRefAPI
@@@@@@@@@@@@@@@@@@@@@
*/
#ifdef USE_RENDERER_DLOPEN
-Q_EXPORT refexport_t QDECL *GetRefAPI ( int apiVersion, refimport_t *rimp ) {
+Q_EXPORT refexport_t* QDECL GetRefAPI ( int apiVersion, refimport_t *rimp ) {
#else
refexport_t *GetRefAPI ( int apiVersion, refimport_t *rimp ) {
#endif
diff --git a/code/renderer/tr_init.c b/code/renderer/tr_init.c
index 963dcdeb..a36e6f58 100644
--- a/code/renderer/tr_init.c
+++ b/code/renderer/tr_init.c
@@ -1324,7 +1324,7 @@ GetRefAPI
@@@@@@@@@@@@@@@@@@@@@
*/
#ifdef USE_RENDERER_DLOPEN
-Q_EXPORT refexport_t QDECL *GetRefAPI ( int apiVersion, refimport_t *rimp ) {
+Q_EXPORT refexport_t* QDECL GetRefAPI ( int apiVersion, refimport_t *rimp ) {
#else
refexport_t *GetRefAPI ( int apiVersion, refimport_t *rimp ) {
#endif
diff --git a/misc/msvc/glsl_stringify.vbs b/misc/msvc/glsl_stringify.vbs
new file mode 100644
index 00000000..34e49553
--- /dev/null
+++ b/misc/msvc/glsl_stringify.vbs
@@ -0,0 +1,18 @@
+Dim fso, infile, outfile, line
+Set fso = CreateObject("Scripting.FileSystemObject")
+Set infile = fso.OpenTextFile(WScript.Arguments(0))
+Set outfile = fso.CreateTextFile(WScript.Arguments(1), True)
+
+outfile.WriteLine("const char *fallbackShader_" & fso.GetBaseName(WScript.Arguments(0)) & " =")
+While Not infile.AtEndOfStream
+ line = infile.ReadLine
+ line = Replace(line, "\", "\\")
+ line = Replace(line, Chr(9), "\t")
+ line = Replace(line, Chr(34), "\" & chr(34))
+ line = Chr(34) & line & "\n" & Chr(34)
+ outfile.WriteLine(line)
+Wend
+outfile.WriteLine(";")
+
+infile.Close
+outfile.Close
\ No newline at end of file
diff --git a/misc/msvc/ioq3.sln b/misc/msvc/ioq3.sln
index 88fa7f51..feeb79b9 100644
--- a/misc/msvc/ioq3.sln
+++ b/misc/msvc/ioq3.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
+# Visual C++ Express 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cgame", "cgame.vcproj", "{C878E295-CB82-4B40-8ECF-5CE5525466FA}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "game", "game.vcproj", "{F9EE10DA-2404-4154-B904-F93C936C040A}"
@@ -10,6 +10,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "quake3", "quake3.vcproj", "
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ui", "ui.vcproj", "{A8EAC38E-C7DA-42F8-811D-77FD092B9D19}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rend2", "rend2.vcproj", "{F7B397A4-8111-421B-A23B-B9A2CE509183}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opengl1", "opengl1.vcproj", "{CD289B03-887C-4602-BDCE-AB6785A7489E}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug TA|Win32 = Debug TA|Win32
@@ -54,6 +58,22 @@ Global
{A8EAC38E-C7DA-42F8-811D-77FD092B9D19}.Release TA|Win32.ActiveCfg = Release TA|Win32
{A8EAC38E-C7DA-42F8-811D-77FD092B9D19}.Release TA|Win32.Build.0 = Release TA|Win32
{A8EAC38E-C7DA-42F8-811D-77FD092B9D19}.Release|Win32.ActiveCfg = Release|Win32
+ {F7B397A4-8111-421B-A23B-B9A2CE509183}.Debug TA|Win32.ActiveCfg = Debug TA|Win32
+ {F7B397A4-8111-421B-A23B-B9A2CE509183}.Debug TA|Win32.Build.0 = Debug TA|Win32
+ {F7B397A4-8111-421B-A23B-B9A2CE509183}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F7B397A4-8111-421B-A23B-B9A2CE509183}.Debug|Win32.Build.0 = Debug|Win32
+ {F7B397A4-8111-421B-A23B-B9A2CE509183}.Release TA|Win32.ActiveCfg = Release TA|Win32
+ {F7B397A4-8111-421B-A23B-B9A2CE509183}.Release TA|Win32.Build.0 = Release TA|Win32
+ {F7B397A4-8111-421B-A23B-B9A2CE509183}.Release|Win32.ActiveCfg = Release|Win32
+ {F7B397A4-8111-421B-A23B-B9A2CE509183}.Release|Win32.Build.0 = Release|Win32
+ {CD289B03-887C-4602-BDCE-AB6785A7489E}.Debug TA|Win32.ActiveCfg = Debug TA|Win32
+ {CD289B03-887C-4602-BDCE-AB6785A7489E}.Debug TA|Win32.Build.0 = Debug TA|Win32
+ {CD289B03-887C-4602-BDCE-AB6785A7489E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CD289B03-887C-4602-BDCE-AB6785A7489E}.Debug|Win32.Build.0 = Debug|Win32
+ {CD289B03-887C-4602-BDCE-AB6785A7489E}.Release TA|Win32.ActiveCfg = Release TA|Win32
+ {CD289B03-887C-4602-BDCE-AB6785A7489E}.Release TA|Win32.Build.0 = Release TA|Win32
+ {CD289B03-887C-4602-BDCE-AB6785A7489E}.Release|Win32.ActiveCfg = Release|Win32
+ {CD289B03-887C-4602-BDCE-AB6785A7489E}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/misc/msvc/opengl1.vcproj b/misc/msvc/opengl1.vcproj
new file mode 100644
index 00000000..0d6e863b
--- /dev/null
+++ b/misc/msvc/opengl1.vcproj
@@ -0,0 +1,932 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/misc/msvc/quake3.vcproj b/misc/msvc/quake3.vcproj
index 09424501..5560da46 100644
--- a/misc/msvc/quake3.vcproj
+++ b/misc/msvc/quake3.vcproj
@@ -1,7 +1,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1526,14 +1574,6 @@
RelativePath="..\..\code\client\qal.c"
>
-
-
-
-
@@ -1542,6 +1582,50 @@
RelativePath="..\..\code\sdl\sdl_snd.c"
>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2479,246 +2563,6 @@
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -2943,130 +2787,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/misc/msvc/rend2.vcproj b/misc/msvc/rend2.vcproj
new file mode 100644
index 00000000..66f714ac
--- /dev/null
+++ b/misc/msvc/rend2.vcproj
@@ -0,0 +1,1076 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+