diff --git a/.gitignore b/.gitignore
index 90b47402da..853bb0300a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,11 +12,12 @@
*.dsw
*.bsc
*.aps
+*.exe
*.trace
-*.asm
*.dump
+*.asm
!/pcsx2/IPU/yuv2rgb.asm
!/pcsx2/x86/ix86-32/aVif_proc-32.asm
!/plugins/CDVDpeops/i386.asm
@@ -51,11 +52,15 @@ Devel
oprofile_data/
-/BuildLog.htm
-/UpgradeLog.XML
-/UpgradeLog2.XML
-/UpgradeLog3.XML
+# Visual Studio upgrades
+/Backup*
+/UpgradeLog*.htm
+/bin/**/*.dll
+/bin/**/*.exp
+/bin/**/*.ilk
+/bin/**/*.lib
+/bin/**/*.pdb
/bin/PCSX2
/bin/*ReplayLoader
/bin/bios
@@ -95,7 +100,6 @@ oprofile_data/
/nsis/svnrev_spu2x.nsh
/nsis/svnrev_zerogs.nsh
/nsis/svnrev_zerospu2.nsh
-/nsis/*.exe
/pcsx2/gui/Resources/*.h
!/pcsx2/gui/Resources/EmbeddedImage.h
/plugins/CDVDolio/Template
diff --git a/bin/.gitignore b/bin/.gitignore
deleted file mode 100644
index a9ecf7ed18..0000000000
--- a/bin/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-*.dll
-*.exe
-*.pdb
-*.ilk
-*.exp
-*.lib
diff --git a/build.cmd b/build.cmd
deleted file mode 100644
index b048972175..0000000000
--- a/build.cmd
+++ /dev/null
@@ -1,24 +0,0 @@
-REM PCSX2 - PS2 Emulator for PCs
-REM Copyright (C) 2002-2011 PCSX2 Dev Team
-REM
-REM PCSX2 is free software: you can redistribute it and/or modify it under the terms
-REM of the GNU Lesser General Public License as published by the Free Software Found-
-REM ation, either version 3 of the License, or (at your option) any later version.
-REM
-REM PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
-REM without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-REM PURPOSE. See the GNU General Public License for more details.
-REM
-REM You should have received a copy of the GNU General Public License along with PCSX2.
-REM If not, see .
-REM
-REM Ensure use Visual Studio Developer Command Prompt
-REM Example, into Solution Folder (pcsx2\)
-REM build.cmd "Debug" or
-REM build.cmd "Release" or
-REM build.cmd "Release AVX"
-
-@echo off
-SET Configuration=%1
-call clean_msvc.cmd
-MSBuild.exe PCSX2_suite.sln /m /p:BuildInParallel=true /p:CreateHardLinksForCopyLocalIfPossible=true /t:Clean,Rebuild /p:Configuration=%Configuration%
diff --git a/buildbot.xml b/buildbot.xml
new file mode 100644
index 0000000000..3503bcdcc5
--- /dev/null
+++ b/buildbot.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+ true
+ BuildInParallel=True;
+ CreateHardLinksForCopyFilesToOutputDirectoryIfPossible=$(CreateHardLinksIfPossible);
+ CreateHardLinksForCopyAdditionalFilesIfPossible=$(CreateHardLinksIfPossible);
+ CreateHardLinksForCopyLocalIfPossible=$(CreateHardLinksIfPossible);
+ CreateHardLinksForPublishFilesIfPossible=$(CreateHardLinksIfPossible);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Debug
+
+
+
+
+
+
+
+ Devel
+
+
+
+
+
+
+
+
+ Release
+
+
+
+
+
+
diff --git a/clean_msvc.cmd b/clean_msvc.cmd
deleted file mode 100644
index 4b66ac2822..0000000000
--- a/clean_msvc.cmd
+++ /dev/null
@@ -1,29 +0,0 @@
-:: clean_msvc.cmd
-::
-:: This batch file cleans up some files that MSVC's Clean/Rebuild commands tend to miss. In
-:: particular the .ilk and .pdb files are known to get corrupted and cause all sorts of odd linker
-:: linker errors, and the .ncb files can also get corrupted and cause intellisense breakges.
-::
-:: Safety: This tool should be pretty safe. It uses the command path to perform the deletion,
-:: instead of relying on the CWD (which can sometimes fail to be set when working with UNCs across
-:: network shares). Furthermore, none of the files it deletes are important. That is, they're
-:: all files MSVC just rebuilds automatically next time you run/recompile. The one minor
-:: exception is *.pdb, since windows and a lot of developer tools include PDB sets to assist in
-:: application debugging (however these files are by no means required by any software).
-
-del /s "%~dp0\*.ncb"
-del /s "%~dp0\*.obj"
-del /s "%~dp0\bin\*.ilk"
-del /s "%~dp0\*.idb"
-del /s "%~dp0\*.bsc"
-del /s "%~dp0\*.sbr"
-del /s "%~dp0\*.pch"
-del /s "%~dp0\*.pdb"
-
-del /s /q "%~dp0\deps"
-
-:: These two can't be used currently because they match unwanted 4+ letter extensions, such
-:: as *.resx and *.tmpl ... wow, stupid. >_<
-
-:: del /s "%~dp0\*.tmp"
-:: del /s "%~dp0\*.res"
diff --git a/mscompile.cmd b/mscompile.cmd
new file mode 100644
index 0000000000..ec5d4f2967
--- /dev/null
+++ b/mscompile.cmd
@@ -0,0 +1,65 @@
+@ECHO OFF
+REM PCSX2 - PS2 Emulator for PCs
+REM Copyright (C) 2002-2015 PCSX2 Dev Team
+REM
+REM PCSX2 is free software: you can redistribute it and/or modify it under the terms
+REM of the GNU Lesser General Public License as published by the Free Software Found-
+REM ation, either version 3 of the License, or (at your option) any later version.
+REM
+REM PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
+REM without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+REM PURPOSE. See the GNU General Public License for more details.
+REM
+REM You should have received a copy of the GNU General Public License along with PCSX2.
+REM If not, see .
+
+CLS
+ECHO Select your Visual Studio version:
+ECHO 1. Microsoft Visual Studio 2013 (default)
+ECHO 2. Microsoft Visual Studio 2015
+ECHO Q. Exit the script.
+CHOICE /C 12Q /T 10 /D 1 /M "Visual Studio version: "
+IF ERRORLEVEL 3 GOTO END
+IF ERRORLEVEL 2 SET "VCVARPATH=%VS140COMNTOOLS%..\..\VC\vcvarsall.bat"
+IF ERRORLEVEL 1 SET "VCVARPATH=%VS120COMNTOOLS%..\..\VC\vcvarsall.bat"
+
+ECHO.
+ECHO Select the desired configuration:
+ECHO 1. Release 32bit (default)
+ECHO 2. Devel 32bit
+ECHO 3. Debug 32bit
+ECHO 4. Release 64bit (WIP)
+ECHO 5. Devel 64bit (WIP)
+ECHO 6. Debug 64bit (WIP)
+ECHO Q. Exit the script.
+CHOICE /C 123456Q /T 10 /D 1 /M "Configuration: "
+IF ERRORLEVEL 7 GOTO END
+IF ERRORLEVEL 6 SET "SELARCH=amd64" && SET "SELCONF=DebugAll"
+IF ERRORLEVEL 5 SET "SELARCH=amd64" && SET "SELCONF=DevelAll"
+IF ERRORLEVEL 4 SET "SELARCH=amd64" && SET "SELCONF=ReleaseAll"
+IF ERRORLEVEL 3 SET "SELARCH=x86" && SET "SELCONF=DebugAll"
+IF ERRORLEVEL 2 SET "SELARCH=x86" && SET "SELCONF=DevelAll"
+IF ERRORLEVEL 1 SET "SELARCH=x86" && SET "SELCONF=ReleaseAll"
+
+IF EXIST "%VCVARPATH%" (call "%VCVARPATH%" %SELARCH%) ELSE GOTO ERRORVS
+cl > NUL 2>&1
+if %ERRORLEVEL% NEQ 0 GOTO ERRORVS
+
+ECHO.
+ECHO Using:
+cl 2>&1 | findstr "Version"
+ECHO.
+
+SET "LOGOPTIONS=/v:m /fl1 /fl2 /flp1:logfile="%~dpn0-%SELARCH%-%SELCONF%-errors.log";errorsonly /flp2:logfile="%~dpn0-%SELARCH%-%SELCONF%-warnings.log";warningsonly"
+msbuild "%~dp0\buildbot.xml" /m %LOGOPTIONS% /t:%SELCONF%
+GOTO END
+
+:ERRORVS
+ECHO.
+ECHO The selected Visual Studio version was not found.
+
+:END
+ECHO.
+ECHO Bye!
+ECHO.
+timeout /t 10