diff --git a/.gitignore b/.gitignore
index 5734b7437..4a0ad784a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,6 +39,8 @@ tmtags
# VS
.vs
*.user
+*.sdf
+*.opensdf
bin/
obj/
@@ -74,7 +76,8 @@ scratch/
.anvil-cache
.build-cache/
-build/
+build/bin/
+build/obj/
build-out/
build-gen/
build-bin/
diff --git a/.gitmodules b/.gitmodules
index 5fb97f325..793bc7d74 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,18 +1,12 @@
[submodule "third_party/gflags"]
path = third_party/gflags
url = https://github.com/benvanik/gflags.git
-[submodule "third_party/sparsehash"]
- path = third_party/sparsehash
- url = https://github.com/benvanik/sparsehash.git
[submodule "third_party/beaengine"]
path = third_party/beaengine
url = https://github.com/benvanik/beaengine.git
[submodule "third_party/xbyak"]
path = third_party/xbyak
url = https://github.com/herumi/xbyak.git
-[submodule "third_party/gyp"]
- path = third_party/gyp
- url = https://chromium.googlesource.com/external/gyp
[submodule "third_party/catch"]
path = third_party/catch
url = https://github.com/philsquared/Catch.git
@@ -22,3 +16,6 @@
[submodule "third_party/dockpanelsuite"]
path = third_party/dockpanelsuite
url = https://github.com/dockpanelsuite/dockpanelsuite.git
+[submodule "third_party/flatbuffers"]
+ path = third_party/flatbuffers
+ url = https://github.com/google/flatbuffers.git
diff --git a/build/Xenia.Cpp.x64.Checked.props b/build/Xenia.Cpp.x64.Checked.props
new file mode 100644
index 000000000..3e642196c
--- /dev/null
+++ b/build/Xenia.Cpp.x64.Checked.props
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ false
+ MultiThreadedDebugDLL
+ AdvancedVectorExtensions
+ Guard
+ ProgramDatabase
+ CHECKED;%(PreprocessorDefinitions)
+
+
+
+
\ No newline at end of file
diff --git a/build/Xenia.Cpp.x64.Common.props b/build/Xenia.Cpp.x64.Common.props
new file mode 100644
index 000000000..9e9369b10
--- /dev/null
+++ b/build/Xenia.Cpp.x64.Common.props
@@ -0,0 +1,28 @@
+
+
+
+
+
+ $(SolutionDir)build\bin\$(Configuration)\
+ $(SolutionDir)build\obj\$(Configuration)\$(MSBuildProjectName)\
+
+
+
+ true
+ $(SolutionDir)\third_party\gflags\src\;$(SolutionDir)\src\;$(SolutionDir)\third_party;$(SolutionDir)\
+ GLEW_STATIC=1;GLEW_MX=1;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE;WIN32;_WIN64=1;_AMD64=1;%(PreprocessorDefinitions)
+ Level4
+ true
+ MultiThreadedDLL
+ false
+
+
+ $(SolutionDir)build\bin\$(Configuration)\
+ ntdll.lib;wsock32.lib;ws2_32.lib;xinput.lib;xaudio2.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)
+
+
+ $(SolutionDir)build\bin\$(Configuration)\
+
+
+
+
\ No newline at end of file
diff --git a/build/Xenia.Cpp.x64.Debug.props b/build/Xenia.Cpp.x64.Debug.props
new file mode 100644
index 000000000..2c2712ee0
--- /dev/null
+++ b/build/Xenia.Cpp.x64.Debug.props
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ false
+ AdvancedVectorExtensions
+ _NO_DEBUG_HEAP=1;DEBUG;XE_DEBUG=1;%(PreprocessorDefinitions)
+
+
+ false
+
+
+
+
\ No newline at end of file
diff --git a/build/Xenia.Cpp.x64.Release.props b/build/Xenia.Cpp.x64.Release.props
new file mode 100644
index 000000000..fed1ffb46
--- /dev/null
+++ b/build/Xenia.Cpp.x64.Release.props
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ AnySuitable
+
+
+
+
+ true
+ false
+ false
+ AdvancedVectorExtensions
+ NDEBUG;_STATIC_CPPLIB;%(PreprocessorDefinitions)
+ MultiThreaded
+ true
+
+
+ true
+
+
+ true
+
+
+
+
\ No newline at end of file
diff --git a/libxenia.vcxproj b/libxenia.vcxproj
new file mode 100644
index 000000000..16f14fcc8
--- /dev/null
+++ b/libxenia.vcxproj
@@ -0,0 +1,621 @@
+
+
+
+
+ Checked
+ x64
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {0CE149F6-41C3-4224-9E57-C02E8C7CD312}
+ Win32Proj
+ libxenia
+ 8.1
+
+
+
+ StaticLibrary
+ true
+ v140
+ Unicode
+
+
+ StaticLibrary
+ true
+ v140
+ Unicode
+
+
+ StaticLibrary
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ Disabled
+ BEA_ENGINE_STATIC=1;_LIB;%(PreprocessorDefinitions)
+ $(SolutionDir)\third_party\beaengine\include\;$(SolutionDir)\third_party\llvm\include\;$(SolutionDir)\third_party\gflags\src\;$(SolutionDir)\src\;$(SolutionDir)\third_party;$(SolutionDir)\
+
+
+ Windows
+ true
+
+
+ libgflags.lib;libglew.lib
+
+
+
+
+
+
+ Level3
+ Disabled
+ BEA_ENGINE_STATIC=1;WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)
+ $(SolutionDir)\third_party\beaengine\include\;$(SolutionDir)\third_party\llvm\include\;$(SolutionDir)\third_party\gflags\src\;$(SolutionDir)\src\;$(SolutionDir)\third_party;$(SolutionDir)\
+
+
+ Windows
+ true
+
+
+ libgflags.lib;libglew.lib
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ BEA_ENGINE_STATIC=1;WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)
+ $(SolutionDir)\third_party\beaengine\include\;$(SolutionDir)\third_party\llvm\include\;$(SolutionDir)\third_party\gflags\src\;$(SolutionDir)\src\;$(SolutionDir)\third_party;$(SolutionDir)\
+
+
+ Windows
+ true
+ true
+ true
+
+
+ libgflags.lib;libglew.lib
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libxenia.vcxproj.filters b/libxenia.vcxproj.filters
new file mode 100644
index 000000000..9485e5527
--- /dev/null
+++ b/libxenia.vcxproj.filters
@@ -0,0 +1,1626 @@
+
+
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {ac2ed3f3-54e5-4039-a771-dce7f1afb317}
+
+
+ {95c5da4e-5624-45cb-acd7-f3ea42f7f35f}
+
+
+ {b996d1c8-9a7a-4bf0-8c55-786c15a9a615}
+
+
+ {c3b64a9c-babd-4ed7-a495-b720522b9572}
+
+
+ {ea01c27b-70c2-4527-b8c5-e3cc5cfc92e1}
+
+
+ {11c993f1-4ff9-4edb-b589-684bd863c173}
+
+
+ {db2ffaf9-4c33-40bd-a6f6-898d1ff1696e}
+
+
+ {5b320879-0064-4d8e-bb97-f2c4bb9e53f2}
+
+
+ {22342627-7b86-4d86-b46a-86ad0babe279}
+
+
+ {9a9b0a2d-3c03-4377-87ee-d4f3d27fbff3}
+
+
+ {39b164c9-8888-40b3-9cc1-cf58e5fdd2f1}
+
+
+ {d208b57a-e9d9-44cd-84be-365a3992806e}
+
+
+ {1cdd538c-c1a8-4667-9f7c-dc1dcbdd2934}
+
+
+ {531deabc-1284-48f6-87b6-8a4537960b7a}
+
+
+ {b3e55480-f727-470f-a1d6-f602e477f6d5}
+
+
+ {7430583f-5bb5-4901-8ca7-a325978d517f}
+
+
+ {c205c825-d8a3-4c6d-b2c1-730517c4d62d}
+
+
+ {786f142c-5cff-4562-8237-b114650fc3bf}
+
+
+ {2a8239c3-db27-4eda-82d9-2e837c8c5ba6}
+
+
+ {c2844d0d-a762-4887-bfd1-46ec3c51585b}
+
+
+ {7621c4d6-7cf6-495e-b4c9-950deba29a01}
+
+
+ {42d47a43-1af4-4e1a-9ed7-afa7f7d18e9f}
+
+
+ {268545c9-fbdf-46d2-96f6-35188cec09d6}
+
+
+ {c1ac0db1-2f4b-4376-b1dc-e6355c99b395}
+
+
+ {4e0349c4-b0bd-4595-9e83-cb3cbe11a172}
+
+
+ {65927db3-9314-4d02-a392-702b09fca341}
+
+
+ {bb86c40a-ad91-482e-a7c8-ef0a84280c8d}
+
+
+ {447ef539-2dab-4969-a5b0-57c8d6f4c6ec}
+
+
+ {cceab7bd-2f0a-4a27-a297-2f89170b8f6b}
+
+
+ {9194a1f4-9934-465e-adcb-3ac0e337dfe3}
+
+
+ {119b6173-c3a2-491b-b1eb-dc9248a7ae50}
+
+
+ {23815560-d0dc-451d-acad-832ac6c2d634}
+
+
+ {fab30014-dd55-4ae2-b2b0-b5f9955fb90d}
+
+
+ {23bf3e93-569a-4432-b265-6bbfccf0e7ca}
+
+
+ {1e52ba44-1bf6-425d-a2c8-a0744f34d348}
+
+
+ {1775ec47-fb64-43eb-be29-3fc356cbfdca}
+
+
+ {686bc832-94dd-44af-8f4f-f5e9a1f70341}
+
+
+ {36203590-1da4-4d59-a270-80dd7f8dc9c5}
+
+
+ {e339422e-722c-4a25-9865-bfb382c32a14}
+
+
+ {0c75741e-deec-4675-a7f3-dea54c449ff9}
+
+
+ {c007145f-e965-4fab-b9be-f957a63e1281}
+
+
+ {1963ff6f-5514-4c96-a66e-35a6e5cef776}
+
+
+ {c976eeb2-a3c2-4692-8397-2b503d928123}
+
+
+ {b9a45887-83a6-444f-94a9-6002a507da50}
+
+
+ {f8917264-c401-4b7f-8df7-08752ae0acad}
+
+
+ {818cdefa-9c17-402a-b427-68640bec3d4c}
+
+
+ {7eec808d-2cd4-4987-9eaf-abde1c86d579}
+
+
+ {d1405e1d-d9b0-4d8d-89ce-29d43698c415}
+
+
+
+
+ src\xenia
+
+
+ src\xenia
+
+
+ src\xenia
+
+
+ src\xenia\apu
+
+
+ src\xenia\apu
+
+
+ src\xenia\apu
+
+
+ src\xenia\apu\nop
+
+
+ src\xenia\apu\nop
+
+
+ src\xenia\apu\xaudio2
+
+
+ src\xenia\apu\xaudio2
+
+
+ src\xenia\apu\xaudio2
+
+
+ src\xenia\base
+
+
+ src\xenia\cpu
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu\backend
+
+
+ src\xenia\cpu\backend
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\compiler
+
+
+ src\xenia\cpu\compiler
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\debug
+
+
+ src\xenia\debug
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\hid
+
+
+ src\xenia\hid
+
+
+ src\xenia\hid
+
+
+ src\xenia\hid\nop
+
+
+ src\xenia\hid\nop
+
+
+ src\xenia\hid\winkey
+
+
+ src\xenia\hid\winkey
+
+
+ src\xenia\hid\xinput
+
+
+ src\xenia\hid\xinput
+
+
+ src\xenia\ui\win32
+
+
+ src\xenia\ui\win32
+
+
+ src\xenia\ui\win32
+
+
+ src\xenia\ui\win32
+
+
+ src\xenia\ui
+
+
+ src\xenia\ui
+
+
+ src\xenia\ui
+
+
+ src\xenia\kernel\util
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\apps
+
+
+ src\xenia\kernel\apps
+
+
+ src\xenia\kernel\apps
+
+
+ src\xenia\kernel\apps
+
+
+ src\xenia\kernel\fs
+
+
+ src\xenia\kernel\fs
+
+
+ src\xenia\kernel\fs
+
+
+ src\xenia\kernel\fs
+
+
+ src\xenia\kernel\fs
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ third_party\beaengine\beaengineSources
+
+
+ third_party\mspack
+
+
+ third_party\xxhash
+
+
+
+
+ src\xenia
+
+
+ src\xenia
+
+
+ src\xenia
+
+
+ src\xenia
+
+
+ src\xenia\apu
+
+
+ src\xenia\apu
+
+
+ src\xenia\apu
+
+
+ src\xenia\apu
+
+
+ src\xenia\apu\nop
+
+
+ src\xenia\apu\nop
+
+
+ src\xenia\apu\nop
+
+
+ src\xenia\apu\xaudio2
+
+
+ src\xenia\apu\xaudio2
+
+
+ src\xenia\apu\xaudio2
+
+
+ src\xenia\apu\xaudio2
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\base
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu
+
+
+ src\xenia\cpu\backend
+
+
+ src\xenia\cpu\backend
+
+
+ src\xenia\cpu\backend
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\compiler
+
+
+ src\xenia\cpu\compiler
+
+
+ src\xenia\cpu\compiler
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\frontend
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\debug
+
+
+ src\xenia\debug
+
+
+ src\xenia\debug
+
+
+ src\xenia\debug
+
+
+ src\xenia\debug
+
+
+ src\xenia\cpu\compiler\passes
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\gpu\gl4
+
+
+ src\xenia\hid
+
+
+ src\xenia\hid
+
+
+ src\xenia\hid
+
+
+ src\xenia\hid
+
+
+ src\xenia\hid\nop
+
+
+ src\xenia\hid\nop
+
+
+ src\xenia\hid\nop
+
+
+ src\xenia\hid\winkey
+
+
+ src\xenia\hid\winkey
+
+
+ src\xenia\hid\winkey
+
+
+ src\xenia\hid\xinput
+
+
+ src\xenia\hid\xinput
+
+
+ src\xenia\hid\xinput
+
+
+ src\xenia\ui\win32
+
+
+ src\xenia\ui\win32
+
+
+ src\xenia\ui\win32
+
+
+ src\xenia\ui\win32
+
+
+ src\xenia\ui
+
+
+ src\xenia\ui
+
+
+ src\xenia\ui
+
+
+ src\xenia\ui
+
+
+ src\xenia\ui
+
+
+ src\xenia\ui
+
+
+ src\xenia\kernel\util
+
+
+ src\xenia\kernel\util
+
+
+ src\xenia\kernel\util
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\objects
+
+
+ src\xenia\kernel\apps
+
+
+ src\xenia\kernel\apps
+
+
+ src\xenia\kernel\apps
+
+
+ src\xenia\kernel\apps
+
+
+ src\xenia\kernel\fs
+
+
+ src\xenia\kernel\fs
+
+
+ src\xenia\kernel\fs
+
+
+ src\xenia\kernel\fs
+
+
+ src\xenia\kernel\fs
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel\fs\devices
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+ third_party\beaengine\include\beaengine
+
+
+ third_party\beaengine\include\beaengine
+
+
+ third_party\beaengine\include\beaengine
+
+
+ third_party\beaengine\include\beaengine
+
+
+ third_party\flatbuffers\include\flatbuffers
+
+
+ third_party\llvm\include\llvm\ADT
+
+
+ third_party\llvm\include\llvm\Support
+
+
+ third_party\llvm\include\llvm\Support
+
+
+ third_party\llvm\include\llvm\Support
+
+
+ third_party\microprofile
+
+
+ third_party\microprofile
+
+
+ third_party\mspack
+
+
+ third_party\mspack
+
+
+ third_party\pe
+
+
+ third_party\xxhash
+
+
+ third_party\xbyak\xbyak
+
+
+ third_party\xbyak\xbyak
+
+
+ third_party\xbyak\xbyak
+
+
+ third_party\xbyak\xbyak
+
+
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ Resource Files
+
+
+ src\xenia\cpu\backend\x64
+
+
+ src\xenia\cpu\hir
+
+
+ src\xenia\gpu
+
+
+ src\xenia\kernel\util
+
+
+ src\xenia\kernel\util
+
+
+ src\xenia\kernel\util
+
+
+ src\xenia\kernel\util
+
+
+ src\xenia\kernel
+
+
+ src\xenia\kernel
+
+
+
\ No newline at end of file
diff --git a/src/Xenia.Debugger/App.config b/src/Xenia.Debug.UI/App.config
similarity index 100%
rename from src/Xenia.Debugger/App.config
rename to src/Xenia.Debug.UI/App.config
diff --git a/src/Xenia.Debugger/Form1.Designer.cs b/src/Xenia.Debug.UI/Form1.Designer.cs
similarity index 96%
rename from src/Xenia.Debugger/Form1.Designer.cs
rename to src/Xenia.Debug.UI/Form1.Designer.cs
index 9c0e8b6d7..f4307e9c6 100644
--- a/src/Xenia.Debugger/Form1.Designer.cs
+++ b/src/Xenia.Debug.UI/Form1.Designer.cs
@@ -1,4 +1,4 @@
-namespace Xenia.Debugger {
+namespace Xenia.Debug.UI {
partial class Form1 {
///
/// Required designer variable.
diff --git a/src/Xenia.Debugger/Form1.cs b/src/Xenia.Debug.UI/Form1.cs
similarity index 60%
rename from src/Xenia.Debugger/Form1.cs
rename to src/Xenia.Debug.UI/Form1.cs
index 2e9d3c61d..d1e76d532 100644
--- a/src/Xenia.Debugger/Form1.cs
+++ b/src/Xenia.Debug.UI/Form1.cs
@@ -8,13 +8,10 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
-namespace Xenia.Debugger
-{
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
+namespace Xenia.Debug.UI {
+ public partial class Form1 : Form {
+ public Form1() {
+ InitializeComponent();
}
+ }
}
diff --git a/src/Xenia.Debugger/Program.cs b/src/Xenia.Debug.UI/Program.cs
similarity index 66%
rename from src/Xenia.Debugger/Program.cs
rename to src/Xenia.Debug.UI/Program.cs
index f77cbe624..30dc61c97 100644
--- a/src/Xenia.Debugger/Program.cs
+++ b/src/Xenia.Debug.UI/Program.cs
@@ -1,16 +1,12 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
using System.Windows.Forms;
-namespace Xenia.Debugger {
+namespace Xenia.Debug.UI {
static class Program {
///
/// The main entry point for the application.
///
- [STAThread]
- static void Main() {
+ [STAThread] static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
diff --git a/src/Xenia.Debugger/Properties/AssemblyInfo.cs b/src/Xenia.Debug.UI/Properties/AssemblyInfo.cs
similarity index 85%
rename from src/Xenia.Debugger/Properties/AssemblyInfo.cs
rename to src/Xenia.Debug.UI/Properties/AssemblyInfo.cs
index 5a00a5208..992434c2c 100644
--- a/src/Xenia.Debugger/Properties/AssemblyInfo.cs
+++ b/src/Xenia.Debug.UI/Properties/AssemblyInfo.cs
@@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly: AssemblyTitle("Xenia.Debugger")]
+[assembly: AssemblyTitle("Xenia.Debug.UI")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Xenia.Debugger")]
-[assembly: AssemblyCopyright("Copyright © Ben Vanik 2015")]
+[assembly: AssemblyProduct("Xenia.Debug.UI")]
+[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -20,7 +20,7 @@ using System.Runtime.InteropServices;
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("f3714614-7970-4dd3-acb7-ca0c122dd073")]
+[assembly: Guid("75a94ceb-442c-45b6-aeec-a5f16d4543f3")]
// Version information for an assembly consists of the following four values:
//
diff --git a/src/Xenia.Debugger/Properties/Resources.Designer.cs b/src/Xenia.Debug.UI/Properties/Resources.Designer.cs
similarity index 95%
rename from src/Xenia.Debugger/Properties/Resources.Designer.cs
rename to src/Xenia.Debug.UI/Properties/Resources.Designer.cs
index 659977e74..5b9a6bc66 100644
--- a/src/Xenia.Debugger/Properties/Resources.Designer.cs
+++ b/src/Xenia.Debug.UI/Properties/Resources.Designer.cs
@@ -8,7 +8,9 @@
//
//------------------------------------------------------------------------------
-namespace Xenia.Debugger.Properties {
+namespace Xenia.Debug.UI.Properties {
+
+
///
/// A strongly-typed resource class, for looking up localized strings, etc.
///
@@ -36,7 +38,7 @@ namespace Xenia.Debugger.Properties {
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if ((resourceMan == null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Xenia.Debugger.Properties.Resources", typeof(Resources).Assembly);
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Xenia.Debug.UI.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
diff --git a/src/Xenia.Debugger/Properties/Resources.resx b/src/Xenia.Debug.UI/Properties/Resources.resx
similarity index 100%
rename from src/Xenia.Debugger/Properties/Resources.resx
rename to src/Xenia.Debug.UI/Properties/Resources.resx
diff --git a/src/Xenia.Debugger/Properties/Settings.Designer.cs b/src/Xenia.Debug.UI/Properties/Settings.Designer.cs
similarity index 96%
rename from src/Xenia.Debugger/Properties/Settings.Designer.cs
rename to src/Xenia.Debug.UI/Properties/Settings.Designer.cs
index 0cde1e6ee..3d57573ac 100644
--- a/src/Xenia.Debugger/Properties/Settings.Designer.cs
+++ b/src/Xenia.Debug.UI/Properties/Settings.Designer.cs
@@ -8,7 +8,9 @@
//
//------------------------------------------------------------------------------
-namespace Xenia.Debugger.Properties {
+namespace Xenia.Debug.UI.Properties {
+
+
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
diff --git a/src/Xenia.Debugger/Properties/Settings.settings b/src/Xenia.Debug.UI/Properties/Settings.settings
similarity index 100%
rename from src/Xenia.Debugger/Properties/Settings.settings
rename to src/Xenia.Debug.UI/Properties/Settings.settings
diff --git a/src/Xenia.Debugger/Xenia.Debugger.csproj b/src/Xenia.Debug.UI/Xenia.Debug.UI.csproj
similarity index 84%
rename from src/Xenia.Debugger/Xenia.Debugger.csproj
rename to src/Xenia.Debug.UI/Xenia.Debug.UI.csproj
index f5745d0b4..f8a2623b1 100644
--- a/src/Xenia.Debugger/Xenia.Debugger.csproj
+++ b/src/Xenia.Debug.UI/Xenia.Debug.UI.csproj
@@ -4,17 +4,18 @@
Debug
AnyCPU
- {F3714614-7970-4DD3-ACB7-CA0C122DD073}
+ {75A94CEB-442C-45B6-AEEC-A5F16D4543F3}
WinExe
Properties
- Xenia.Debugger
- Xenia.Debugger
+ Xenia.Debug.UI
+ Xenia.Debug.UI
v4.5
512
true
- ..\..\build\xenia\Debug\
+ ..\..\build\bin\Debug\
+ ..\..\build\obj\Debug\
DEBUG;TRACE
full
x64
@@ -23,7 +24,8 @@
true
- ..\..\build\xenia\Release\
+ ..\..\build\bin\Release\
+ ..\..\build\obj\Release\
TRACE
true
pdbonly
@@ -33,7 +35,7 @@
true
- Xenia.Debugger.Program
+ Xenia.Debug.UI.Program
@@ -84,6 +86,10 @@
{c75532c4-765b-418e-b09b-46d36b2abdb1}
WinFormsUI
+
+ {58348c66-1b0d-497c-b51a-28e99df1ef74}
+ Xenia.Debug
+
+
\ No newline at end of file
diff --git a/src/Xenia.Debugger/Xenia.Debugger.sln b/src/Xenia.Debugger/Xenia.Debugger.sln
deleted file mode 100644
index e61345745..000000000
--- a/src/Xenia.Debugger/Xenia.Debugger.sln
+++ /dev/null
@@ -1,28 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.22823.1
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xenia.Debugger", "Xenia.Debugger.csproj", "{F3714614-7970-4DD3-ACB7-CA0C122DD073}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "..\..\third_party\dockpanelsuite\WinFormsUI\WinFormsUI.csproj", "{C75532C4-765B-418E-B09B-46D36B2ABDB1}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x64 = Debug|x64
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {F3714614-7970-4DD3-ACB7-CA0C122DD073}.Debug|x64.ActiveCfg = Debug|x64
- {F3714614-7970-4DD3-ACB7-CA0C122DD073}.Debug|x64.Build.0 = Debug|x64
- {F3714614-7970-4DD3-ACB7-CA0C122DD073}.Release|x64.ActiveCfg = Release|x64
- {F3714614-7970-4DD3-ACB7-CA0C122DD073}.Release|x64.Build.0 = Release|x64
- {C75532C4-765B-418E-B09B-46D36B2ABDB1}.Debug|x64.ActiveCfg = Debug|Any CPU
- {C75532C4-765B-418E-B09B-46D36B2ABDB1}.Debug|x64.Build.0 = Debug|Any CPU
- {C75532C4-765B-418E-B09B-46D36B2ABDB1}.Release|x64.ActiveCfg = Release|Any CPU
- {C75532C4-765B-418E-B09B-46D36B2ABDB1}.Release|x64.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/src/xenia/apu/nop/sources.gypi b/src/xenia/apu/nop/sources.gypi
deleted file mode 100644
index 6675eff1e..000000000
--- a/src/xenia/apu/nop/sources.gypi
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'nop_apu-private.h',
- 'nop_apu.cc',
- 'nop_apu.h',
- 'nop_audio_system.cc',
- 'nop_audio_system.h',
- ],
-}
diff --git a/src/xenia/apu/sources.gypi b/src/xenia/apu/sources.gypi
deleted file mode 100644
index 92ea3258f..000000000
--- a/src/xenia/apu/sources.gypi
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'apu-private.h',
- 'apu.cc',
- 'apu.h',
- 'audio_driver.cc',
- 'audio_driver.h',
- 'audio_system.cc',
- 'audio_system.h',
- ],
-
- 'includes': [
- 'nop/sources.gypi',
- ],
-
- 'conditions': [
- ['OS == "win"', {
- 'includes': [
- 'xaudio2/sources.gypi',
- ],
- }],
- ],
-}
diff --git a/src/xenia/apu/xaudio2/sources.gypi b/src/xenia/apu/xaudio2/sources.gypi
deleted file mode 100644
index 181c4f1c0..000000000
--- a/src/xenia/apu/xaudio2/sources.gypi
+++ /dev/null
@@ -1,12 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'xaudio2_apu-private.h',
- 'xaudio2_apu.cc',
- 'xaudio2_apu.h',
- 'xaudio2_audio_driver.cc',
- 'xaudio2_audio_driver.h',
- 'xaudio2_audio_system.cc',
- 'xaudio2_audio_system.h',
- ],
-}
diff --git a/src/xenia/base/sources.gypi b/src/xenia/base/sources.gypi
deleted file mode 100644
index d17873840..000000000
--- a/src/xenia/base/sources.gypi
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 2014 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'arena.cc',
- 'arena.h',
- 'assert.h',
- 'atomic.h',
- 'byte_order.h',
- 'debugging.h',
- 'delegate.h',
- 'fs.h',
- 'fs.cc',
- 'logging.cc',
- 'logging.h',
- 'main.h',
- 'mapped_memory.h',
- 'math.cc',
- 'math.h',
- 'memory_generic.cc',
- 'memory.h',
- 'platform.h',
- 'reset_scope.h',
- 'string.cc',
- 'string.h',
- 'string_buffer.cc',
- 'string_buffer.h',
- 'threading.cc',
- 'threading.h',
- 'type_pool.h',
- 'vec128.h',
- ],
-
- 'conditions': [
- ['OS == "mac" or OS == "linux"', {
- 'sources': [
- 'main_posix.cc',
- 'mapped_memory_posix.cc',
- ],
- }],
- ['OS == "linux"', {
- 'sources': [
- 'threading_posix.cc',
- ],
- }],
- ['OS == "mac"', {
- 'sources': [
- 'debugging_mac.cc',
- 'threading_mac.cc',
- ],
- }],
- ['OS == "win"', {
- 'sources': [
- 'debugging_win.cc',
- 'fs_win.cc',
- 'main_win.cc',
- 'mapped_memory_win.cc',
- 'threading_win.cc',
- ],
- }],
- ],
-
- 'includes': [
- ],
-}
diff --git a/src/xenia/base/string_buffer.cc b/src/xenia/base/string_buffer.cc
index 7b1b6e4f9..98a16878b 100644
--- a/src/xenia/base/string_buffer.cc
+++ b/src/xenia/base/string_buffer.cc
@@ -47,17 +47,19 @@ void StringBuffer::AppendVarargs(const char* format, va_list args) {
int length = vsnprintf(nullptr, 0, format, args);
auto offset = buffer_.size();
Grow(length + 1);
- buffer_.resize(buffer_.size() + length);
+ buffer_.resize(buffer_.size() + length + 1);
vsnprintf(buffer_.data() + offset, buffer_.capacity(), format, args);
- buffer_[buffer_.size()] = 0;
+ buffer_[buffer_.size() - 1] = 0;
+ buffer_.resize(buffer_.size() - 1);
}
void StringBuffer::AppendBytes(const uint8_t* buffer, size_t length) {
auto offset = buffer_.size();
Grow(length + 1);
- buffer_.resize(buffer_.size() + length);
+ buffer_.resize(buffer_.size() + length + 1);
memcpy(buffer_.data() + offset, buffer, length);
- buffer_[buffer_.size()] = 0;
+ buffer_[buffer_.size() - 1] = 0;
+ buffer_.resize(buffer_.size() - 1);
}
const char* StringBuffer::GetString() const { return buffer_.data(); }
diff --git a/src/xenia/base/threading.cc b/src/xenia/base/threading.cc
deleted file mode 100644
index bf9bdb755..000000000
--- a/src/xenia/base/threading.cc
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- ******************************************************************************
- * Xenia : Xbox 360 Emulator Research Project *
- ******************************************************************************
- * Copyright 2014 Ben Vanik. All rights reserved. *
- * Released under the BSD license - see LICENSE in the root for more details. *
- ******************************************************************************
- */
-
-#include "xenia/base/threading.h"
-
-namespace xe {
-namespace threading {
-
-//
-
-} // namespace threading
-} // namespace xe
diff --git a/src/xenia/cpu/backend/sources.gypi b/src/xenia/cpu/backend/sources.gypi
deleted file mode 100644
index 3cf3b826b..000000000
--- a/src/xenia/cpu/backend/sources.gypi
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'assembler.cc',
- 'assembler.h',
- 'backend.cc',
- 'backend.h',
- 'machine_info.h',
- ],
-
- 'includes': [
- 'x64/sources.gypi',
- ],
-}
diff --git a/src/xenia/cpu/backend/x64/sources.gypi b/src/xenia/cpu/backend/x64/sources.gypi
deleted file mode 100644
index a3ade7eeb..000000000
--- a/src/xenia/cpu/backend/x64/sources.gypi
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'x64_assembler.cc',
- 'x64_assembler.h',
- 'x64_backend.cc',
- 'x64_backend.h',
- 'x64_code_cache.h',
- 'x64_emitter.cc',
- 'x64_emitter.h',
- 'x64_function.cc',
- 'x64_function.h',
- 'x64_sequence.inl',
- 'x64_sequences.cc',
- 'x64_sequences.h',
- 'x64_thunk_emitter.cc',
- 'x64_thunk_emitter.h',
- 'x64_tracers.cc',
- 'x64_tracers.h',
- ],
-
- 'conditions': [
- ['OS == "mac" or OS == "linux"', {
- 'sources': [
- 'x64_code_cache_posix.cc',
- ],
- }],
- ['OS == "win"', {
- 'sources': [
- 'x64_code_cache_win.cc',
- ],
- }],
- ],
-}
diff --git a/src/xenia/cpu/backend/x64/x64_assembler.cc b/src/xenia/cpu/backend/x64/x64_assembler.cc
index 18e5dc088..e236cb53e 100644
--- a/src/xenia/cpu/backend/x64/x64_assembler.cc
+++ b/src/xenia/cpu/backend/x64/x64_assembler.cc
@@ -13,6 +13,7 @@
#include "xenia/cpu/backend/x64/x64_backend.h"
#include "xenia/cpu/backend/x64/x64_emitter.h"
#include "xenia/cpu/backend/x64/x64_function.h"
+#include "xenia/cpu/cpu-private.h"
#include "xenia/cpu/hir/hir_builder.h"
#include "xenia/cpu/hir/label.h"
#include "xenia/cpu/processor.h"
@@ -81,6 +82,14 @@ bool X64Assembler::Assemble(FunctionInfo* symbol_info, HIRBuilder* builder,
string_buffer_.Reset();
}
+ // Dump debug data.
+ //auto fn_data = backend_->processor()->debugger()->
+ if (FLAGS_disassemble_functions) {
+ if (debug_info_flags & DebugInfoFlags::kDebugInfoDisasmSource) {
+ //
+ }
+ }
+
{
X64Function* fn = new X64Function(symbol_info);
fn->set_debug_info(std::move(debug_info));
diff --git a/src/xenia/cpu/backend/x64/x64_emitter.h b/src/xenia/cpu/backend/x64/x64_emitter.h
index 3cc956232..e42670b95 100644
--- a/src/xenia/cpu/backend/x64/x64_emitter.h
+++ b/src/xenia/cpu/backend/x64/x64_emitter.h
@@ -15,7 +15,7 @@
#include "xenia/base/arena.h"
#include "xenia/cpu/hir/value.h"
-#include "xenia/debug/trace_data.h"
+#include "xenia/debug/function_trace_data.h"
namespace xe {
namespace cpu {
diff --git a/src/xenia/cpu/compiler/passes/register_allocation_pass.cc b/src/xenia/cpu/compiler/passes/register_allocation_pass.cc
index ad576e60c..298faaed2 100644
--- a/src/xenia/cpu/compiler/passes/register_allocation_pass.cc
+++ b/src/xenia/cpu/compiler/passes/register_allocation_pass.cc
@@ -210,8 +210,9 @@ void RegisterAllocationPass::AdvanceUses(Instr* instr) {
if (!usage_set) {
break;
}
+ std::vector to_add;
auto& upcoming_uses = usage_set->upcoming_uses;
- for (auto it = upcoming_uses.begin(); it != upcoming_uses.end();) {
+ for (auto& it = upcoming_uses.begin(); it != upcoming_uses.end();) {
if (!it->use) {
// No uses at all - we can remove right away.
// This comes up from instructions where the dest is never used,
@@ -243,9 +244,12 @@ void RegisterAllocationPass::AdvanceUses(Instr* instr) {
it = upcoming_uses.erase(it);
assert_true(next_use->instr->block == instr->block);
assert_true(value->def->block == instr->block);
- upcoming_uses.emplace_back(value, next_use);
+ to_add.emplace_back(value, next_use);
}
}
+ for (auto& use : to_add) {
+ upcoming_uses.emplace_back(use);
+ }
}
DumpUsage("AdvanceUses");
}
diff --git a/src/xenia/cpu/compiler/passes/sources.gypi b/src/xenia/cpu/compiler/passes/sources.gypi
deleted file mode 100644
index 12f16e695..000000000
--- a/src/xenia/cpu/compiler/passes/sources.gypi
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'constant_propagation_pass.cc',
- 'constant_propagation_pass.h',
- 'context_promotion_pass.cc',
- 'context_promotion_pass.h',
- 'control_flow_analysis_pass.cc',
- 'control_flow_analysis_pass.h',
- 'control_flow_simplification_pass.cc',
- 'control_flow_simplification_pass.h',
- 'data_flow_analysis_pass.cc',
- 'data_flow_analysis_pass.h',
- 'dead_code_elimination_pass.cc',
- 'dead_code_elimination_pass.h',
- 'finalization_pass.cc',
- 'finalization_pass.h',
- #'dead_store_elimination_pass.cc',
- #'dead_store_elimination_pass.h',
- 'register_allocation_pass.cc',
- 'register_allocation_pass.h',
- 'simplification_pass.cc',
- 'simplification_pass.h',
- 'validation_pass.cc',
- 'validation_pass.h',
- 'value_reduction_pass.cc',
- 'value_reduction_pass.h',
- ],
-}
diff --git a/src/xenia/cpu/compiler/sources.gypi b/src/xenia/cpu/compiler/sources.gypi
deleted file mode 100644
index d9a7df71a..000000000
--- a/src/xenia/cpu/compiler/sources.gypi
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'compiler.cc',
- 'compiler.h',
- 'compiler_pass.cc',
- 'compiler_pass.h',
- 'compiler_passes.h',
- ],
-
- 'includes': [
- 'passes/sources.gypi',
- ],
-}
diff --git a/src/xenia/cpu/cpu-private.h b/src/xenia/cpu/cpu-private.h
index 28520843a..65f7845dd 100644
--- a/src/xenia/cpu/cpu-private.h
+++ b/src/xenia/cpu/cpu-private.h
@@ -21,6 +21,7 @@ DECLARE_bool(dump_module_map);
DECLARE_bool(debug);
DECLARE_bool(always_disasm);
+DECLARE_bool(disassemble_functions);
DECLARE_bool(trace_functions);
DECLARE_bool(trace_function_coverage);
diff --git a/src/xenia/cpu/cpu.cc b/src/xenia/cpu/cpu.cc
index 7dd87992d..bd3079517 100644
--- a/src/xenia/cpu/cpu.cc
+++ b/src/xenia/cpu/cpu.cc
@@ -35,6 +35,8 @@ DEFINE_bool(debug, DEFAULT_DEBUG_FLAG,
DEFINE_bool(
always_disasm, false,
"Always add debug info to functions, even when no debugger is attached.");
+DEFINE_bool(disassemble_functions, false,
+ "Disassemble functions during generation.");
DEFINE_bool(trace_functions, false,
"Generate tracing for function statistics.");
diff --git a/src/xenia/cpu/debug_info.h b/src/xenia/cpu/debug_info.h
index 1ca37ce44..d15346135 100644
--- a/src/xenia/cpu/debug_info.h
+++ b/src/xenia/cpu/debug_info.h
@@ -13,7 +13,8 @@
#include
#include
-#include "xenia/debug/trace_data.h"
+#include "xenia/debug/function_data.h"
+#include "xenia/debug/function_trace_data.h"
namespace xe {
namespace cpu {
diff --git a/src/xenia/cpu/frontend/ppc_translator.cc b/src/xenia/cpu/frontend/ppc_translator.cc
index d293ab680..dde980294 100644
--- a/src/xenia/cpu/frontend/ppc_translator.cc
+++ b/src/xenia/cpu/frontend/ppc_translator.cc
@@ -134,11 +134,13 @@ bool PPCTranslator::Translate(FunctionInfo* symbol_info,
symbol_info->address(), symbol_info->end_address());
}
uint8_t* trace_data =
- frontend_->processor()->debugger()->AllocateTraceFunctionData(
+ frontend_->processor()->debugger()->AllocateFunctionTraceData(
trace_data_size);
- debug_info->trace_data().Reset(trace_data, trace_data_size,
- symbol_info->address(),
- symbol_info->end_address());
+ if (trace_data) {
+ debug_info->trace_data().Reset(trace_data, trace_data_size,
+ symbol_info->address(),
+ symbol_info->end_address());
+ }
}
// Stash source.
diff --git a/src/xenia/cpu/frontend/sources.gypi b/src/xenia/cpu/frontend/sources.gypi
deleted file mode 100644
index 67ea0774d..000000000
--- a/src/xenia/cpu/frontend/sources.gypi
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'context_info.cc',
- 'context_info.h',
- 'ppc_context.cc',
- 'ppc_context.h',
- 'ppc_disasm.cc',
- 'ppc_disasm.h',
- 'ppc_emit-private.h',
- 'ppc_emit.h',
- 'ppc_emit_altivec.cc',
- 'ppc_emit_alu.cc',
- 'ppc_emit_control.cc',
- 'ppc_emit_fpu.cc',
- 'ppc_emit_memory.cc',
- 'ppc_frontend.cc',
- 'ppc_frontend.h',
- 'ppc_hir_builder.cc',
- 'ppc_hir_builder.h',
- 'ppc_instr.cc',
- 'ppc_instr.h',
- 'ppc_instr_tables.h',
- 'ppc_scanner.cc',
- 'ppc_scanner.h',
- 'ppc_translator.cc',
- 'ppc_translator.h',
- ],
-
- 'includes': [
- ],
-}
diff --git a/src/xenia/cpu/frontend/test/test.gypi b/src/xenia/cpu/frontend/test/test.gypi
deleted file mode 100644
index 5fb138813..000000000
--- a/src/xenia/cpu/frontend/test/test.gypi
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2014 Ben Vanik. All Rights Reserved.
-{
- 'targets': [
- {
- 'target_name': 'xe-cpu-ppc-test',
- 'type': 'executable',
-
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'SubSystem': '1',
- },
- },
-
- 'dependencies': [
- 'libxenia',
- ],
-
- 'include_dirs': [
- '.',
- ],
-
- 'sources': [
- 'xe-cpu-ppc-test.cc',
- ],
- },
- ],
-}
diff --git a/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj b/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj
new file mode 100644
index 000000000..3cc6ae5c9
--- /dev/null
+++ b/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj
@@ -0,0 +1,217 @@
+
+
+
+
+ Checked
+ x64
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {9B8AC22F-9147-490F-BE03-3B8BA31990A8}
+ Win32Proj
+ xecpuppctest
+
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+
+
+
+ Level3
+ Disabled
+ _CONSOLE;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+ libxenia.lib;ntdll.lib;wsock32.lib;ws2_32.lib;xinput.lib;xaudio2.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+ Level3
+ Disabled
+ _CONSOLE;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+ libxenia.lib;ntdll.lib;wsock32.lib;ws2_32.lib;xinput.lib;xaudio2.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ _CONSOLE;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+ true
+ true
+ libxenia.lib;ntdll.lib;wsock32.lib;ws2_32.lib;xinput.lib;xaudio2.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj.filters b/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj.filters
new file mode 100644
index 000000000..8d959dd5f
--- /dev/null
+++ b/src/xenia/cpu/frontend/test/xe-cpu-ppc-test.vcxproj.filters
@@ -0,0 +1,113 @@
+
+
+
+
+
+ src\xenia\base
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {3beca96a-ec9a-4570-8873-3de8c124862f}
+
+
+ {eeea8b16-cc79-4e53-80a4-6db3089e6db9}
+
+
+ {459f7c23-b556-4300-b16d-8f86063c8e1a}
+
+
+
+
+ src\xenia\base
+
+
+
\ No newline at end of file
diff --git a/src/xenia/cpu/hir/sources.gypi b/src/xenia/cpu/hir/sources.gypi
deleted file mode 100644
index a0317ce2a..000000000
--- a/src/xenia/cpu/hir/sources.gypi
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'block.cc',
- 'block.h',
- 'hir_builder.cc',
- 'hir_builder.h',
- 'instr.cc',
- 'instr.h',
- 'label.h',
- 'opcodes.cc',
- 'opcodes.h',
- 'opcodes.inl',
- 'value.cc',
- 'value.h',
- ],
-}
diff --git a/src/xenia/cpu/sources.gypi b/src/xenia/cpu/sources.gypi
deleted file mode 100644
index a8652e844..000000000
--- a/src/xenia/cpu/sources.gypi
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'cpu-private.h',
- 'cpu.cc',
- 'cpu.h',
- 'debug_info.cc',
- 'debug_info.h',
- 'entry_table.cc',
- 'entry_table.h',
- 'export_resolver.cc',
- 'export_resolver.h',
- 'function.cc',
- 'function.h',
- 'instrument.cc',
- 'instrument.h',
- 'mmio_handler.cc',
- 'mmio_handler.h',
- 'module.cc',
- 'module.h',
- 'processor.cc',
- 'processor.h',
- 'raw_module.cc',
- 'raw_module.h',
- 'symbol_info.cc',
- 'symbol_info.h',
- 'test_module.cc',
- 'test_module.h',
- 'thread_state.cc',
- 'thread_state.h',
- 'xex_module.cc',
- 'xex_module.h',
- ],
-
- 'conditions': [
- ['OS == "mac" or OS == "linux"', {
- 'sources': [
- ],
- }],
- ['OS == "linux"', {
- 'sources': [
- ],
- }],
- ['OS == "mac"', {
- 'sources': [
- 'mmio_handler_mac.cc',
- ],
- }],
- ['OS == "win"', {
- 'sources': [
- 'mmio_handler_win.cc',
- ],
- }],
- ],
-
- 'includes': [
- 'backend/sources.gypi',
- 'compiler/sources.gypi',
- 'frontend/sources.gypi',
- 'hir/sources.gypi',
- ],
-}
diff --git a/src/xenia/cpu/test/test.gypi b/src/xenia/cpu/test/test.gypi
deleted file mode 100644
index 9c894bfd2..000000000
--- a/src/xenia/cpu/test/test.gypi
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright 2014 Ben Vanik. All Rights Reserved.
-{
- 'targets': [
- {
- 'target_name': 'xe-cpu-sandbox',
- 'type': 'executable',
-
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'SubSystem': '1'
- },
- },
-
- 'dependencies': [
- 'libxenia',
- ],
-
- 'include_dirs': [
- '.',
- ],
-
- 'sources': [
- 'xe-cpu-sandbox.cc',
- ],
- },
- ],
-
- 'targets': [
- {
- 'target_name': 'xe-cpu-hir-test',
- 'type': 'executable',
-
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'SubSystem': '1'
- },
- },
-
- 'dependencies': [
- 'libxenia',
- ],
-
- 'include_dirs': [
- '.',
- ],
-
- 'sources': [
- 'xe-cpu-hir-test.cc',
- 'util.h',
-
- #'test_abs.cc',
- 'test_add.cc',
- #'test_add_carry.cc',
- #'test_and.cc',
- #'test_assign.cc',
- #'test_atomic_add.cc',
- #'test_atomic_exchange.cc',
- #'test_atomic_sub.cc',
- #'test_branch.cc',
- 'test_byte_swap.cc',
- #'test_cast.cc',
- #'test_cntlz.cc',
- #'test_compare.cc',
- #'test_compare_exchange.cc',
- #'test_convert.cc',
- #'test_did_carry.cc',
- #'test_div.cc',
- #'test_dot_product_3.cc',
- #'test_dot_product_4.cc',
- 'test_extract.cc',
- 'test_insert.cc',
- #'test_is_true_false.cc',
- #'test_load_clock.cc',
- 'test_load_vector_shl_shr.cc',
- #'test_log2.cc',
- #'test_max.cc',
- #'test_min.cc',
- #'test_mul.cc',
- #'test_mul_add.cc',
- #'test_mul_hi.cc',
- #'test_mul_sub.cc',
- #'test_neg.cc',
- #'test_not.cc',
- #'test_or.cc',
- 'test_pack.cc',
- 'test_permute.cc',
- #'test_pow2.cc',
- #'test_rotate_left.cc',
- #'test_round.cc',
- #'test_rsqrt.cc',
- #'test_select.cc',
- 'test_sha.cc',
- 'test_shl.cc',
- 'test_shr.cc',
- #'test_sign_extend.cc',
- #'test_splat.cc',
- #'test_sqrt.cc',
- #'test_sub.cc',
- 'test_swizzle.cc',
- #'test_truncate.cc',
- 'test_unpack.cc',
- 'test_vector_add.cc',
- #'test_vector_compare.cc',
- #'test_vector_convert.cc',
- 'test_vector_max.cc',
- 'test_vector_min.cc',
- 'test_vector_rotate_left.cc',
- 'test_vector_sha.cc',
- 'test_vector_shl.cc',
- 'test_vector_shr.cc',
- #'test_vector_sub.cc',
- #'test_xor.cc',
- #'test_zero_extend.cc',
- ],
- },
- ],
-}
diff --git a/src/xenia/cpu/test/xe-cpu-hir-test.vcxproj b/src/xenia/cpu/test/xe-cpu-hir-test.vcxproj
new file mode 100644
index 000000000..0c9dd0450
--- /dev/null
+++ b/src/xenia/cpu/test/xe-cpu-hir-test.vcxproj
@@ -0,0 +1,149 @@
+
+
+
+
+ Checked
+ x64
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {6EC54AD0-4F5B-48D9-B820-43DF2F0DC83C}
+ Win32Proj
+ xecpuhirtest
+
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+
+
+
+ Level3
+ Disabled
+ _CONSOLE;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+ libxenia.lib;ntdll.lib;wsock32.lib;ws2_32.lib;xinput.lib;xaudio2.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+ Level3
+ Disabled
+ _CONSOLE;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+ libxenia.lib;ntdll.lib;wsock32.lib;ws2_32.lib;xinput.lib;xaudio2.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ _CONSOLE;%(PreprocessorDefinitions)
+
+
+ Console
+ true
+ true
+ true
+ libxenia.lib;ntdll.lib;wsock32.lib;ws2_32.lib;xinput.lib;xaudio2.lib;glu32.lib;opengl32.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/xenia/cpu/test/xe-cpu-hir-test.vcxproj.filters b/src/xenia/cpu/test/xe-cpu-hir-test.vcxproj.filters
new file mode 100644
index 000000000..24280d22e
--- /dev/null
+++ b/src/xenia/cpu/test/xe-cpu-hir-test.vcxproj.filters
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ src\xenia\base
+
+
+
+
+
+ src\xenia\base
+
+
+
+
+ {cd58f445-4d2f-452b-a5a0-1dd29a620341}
+
+
+ {a43f8164-d83a-4ff6-83a4-1915664abbf9}
+
+
+ {1bdcf344-57a7-4b58-93d6-3e860f50ad1b}
+
+
+
\ No newline at end of file
diff --git a/src/xenia/debug/debugger.cc b/src/xenia/debug/debugger.cc
index 7752a31b0..632782415 100644
--- a/src/xenia/debug/debugger.cc
+++ b/src/xenia/debug/debugger.cc
@@ -36,29 +36,44 @@ Debugger::~Debugger() = default;
bool Debugger::StartSession() {
std::wstring session_path = xe::to_wstring(FLAGS_debug_session_path);
- std::wstring trace_functions_path =
- xe::join_paths(session_path, L"trace.functions");
- trace_functions_ = ChunkedMappedMemoryWriter::Open(trace_functions_path,
- 32 * 1024 * 1024, true);
+ std::wstring functions_path = xe::join_paths(session_path, L"functions");
+ functions_file_ =
+ ChunkedMappedMemoryWriter::Open(functions_path, 32 * 1024 * 1024, false);
+
+ std::wstring functions_trace_path =
+ xe::join_paths(session_path, L"functions.trace");
+ functions_trace_file_ = ChunkedMappedMemoryWriter::Open(
+ functions_trace_path, 32 * 1024 * 1024, true);
return true;
}
void Debugger::StopSession() {
FlushSession();
- trace_functions_.reset();
+ functions_file_.reset();
+ functions_trace_file_.reset();
}
void Debugger::FlushSession() {
- if (trace_functions_) {
- trace_functions_->Flush();
+ if (functions_file_) {
+ functions_file_->Flush();
+ }
+ if (functions_trace_file_) {
+ functions_trace_file_->Flush();
}
}
-uint8_t* Debugger::AllocateTraceFunctionData(size_t size) {
- if (!trace_functions_) {
+uint8_t* Debugger::AllocateFunctionData(size_t size) {
+ if (!functions_file_) {
return nullptr;
}
- return trace_functions_->Allocate(size);
+ return functions_file_->Allocate(size);
+}
+
+uint8_t* Debugger::AllocateFunctionTraceData(size_t size) {
+ if (!functions_trace_file_) {
+ return nullptr;
+ }
+ return functions_trace_file_->Allocate(size);
}
int Debugger::SuspendAllThreads(uint32_t timeout_ms) {
diff --git a/src/xenia/debug/debugger.h b/src/xenia/debug/debugger.h
index 9e82950eb..e53182e49 100644
--- a/src/xenia/debug/debugger.h
+++ b/src/xenia/debug/debugger.h
@@ -71,7 +71,8 @@ class Debugger {
void StopSession();
void FlushSession();
- uint8_t* AllocateTraceFunctionData(size_t size);
+ uint8_t* AllocateFunctionData(size_t size);
+ uint8_t* AllocateFunctionTraceData(size_t size);
int SuspendAllThreads(uint32_t timeout_ms = UINT_MAX);
int ResumeThread(uint32_t thread_id);
@@ -100,7 +101,8 @@ class Debugger {
private:
cpu::Processor* processor_;
- std::unique_ptr trace_functions_;
+ std::unique_ptr functions_file_;
+ std::unique_ptr functions_trace_file_;
std::mutex threads_lock_;
std::unordered_map threads_;
diff --git a/src/xenia/debug/function_data.h b/src/xenia/debug/function_data.h
new file mode 100644
index 000000000..4fc95a17e
--- /dev/null
+++ b/src/xenia/debug/function_data.h
@@ -0,0 +1,81 @@
+/**
+ ******************************************************************************
+ * Xenia : Xbox 360 Emulator Research Project *
+ ******************************************************************************
+ * Copyright 2015 Ben Vanik. All rights reserved. *
+ * Released under the BSD license - see LICENSE in the root for more details. *
+ ******************************************************************************
+ */
+
+#ifndef XENIA_DEBUG_FUNCTION_DATA_H_
+#define XENIA_DEBUG_FUNCTION_DATA_H_
+
+#include
+
+#include "xenia/base/memory.h"
+
+namespace xe {
+namespace debug {
+
+class FunctionData {
+ public:
+ struct Header {
+ // Format is used by tooling, changes must be made across all targets.
+ // + 0 4b (data size)
+ // + 4 4b start_address
+ // + 8 4b end_address
+ // +12 4b type (user, external, etc)
+ // +16 4b source_map_entry_count
+ //
+ // +20 4b source_disasm_length
+ // +20 4b raw_hir_disasm_length
+ // +20 4b hir_disasm_length
+ // +20 4b machine_code_disasm_length
+ // +20 12b* source_map_entries
+ uint32_t data_size;
+ uint32_t start_address;
+ uint32_t end_address;
+ uint32_t type;
+ /*
+ source_map_count
+ source_map[] : {ppc_address, hir_offset, code_offset}
+ raw_hir_disasm_ (len + chars)
+ hir_disasm_ (len + chars)
+ machine_code_ (len + bytes) (without tracing? regen?)
+ */
+ };
+
+ FunctionData() : header_(nullptr) {}
+
+ void Reset(uint8_t* trace_data, size_t trace_data_size,
+ uint32_t start_address, uint32_t end_address) {
+ header_ = reinterpret_cast(trace_data);
+ header_->data_size = uint32_t(trace_data_size);
+ header_->start_address = start_address;
+ header_->end_address = end_address;
+ header_->type = 0;
+ // Clear any remaining.
+ std::memset(trace_data + sizeof(Header), 0,
+ trace_data_size - sizeof(Header));
+ }
+
+ bool is_valid() const { return header_ != nullptr; }
+
+ uint32_t start_address() const { return header_->start_address; }
+ uint32_t end_address() const { return header_->end_address; }
+ uint32_t instruction_count() const {
+ return (header_->end_address - header_->start_address) / 4 + 1;
+ }
+
+ Header* header() const { return header_; }
+
+ static size_t SizeOfHeader() { return sizeof(Header); }
+
+ private:
+ Header* header_;
+};
+
+} // namespace debug
+} // namespace xe
+
+#endif // XENIA_DEBUG_FUNCTION_DATA_H_
diff --git a/src/xenia/debug/trace_data.h b/src/xenia/debug/function_trace_data.h
similarity index 95%
rename from src/xenia/debug/trace_data.h
rename to src/xenia/debug/function_trace_data.h
index 60d621d44..29e03bfce 100644
--- a/src/xenia/debug/trace_data.h
+++ b/src/xenia/debug/function_trace_data.h
@@ -7,8 +7,8 @@
******************************************************************************
*/
-#ifndef XENIA_DEBUG_TRACE_DATA_H_
-#define XENIA_DEBUG_TRACE_DATA_H_
+#ifndef XENIA_DEBUG_FUNCTION_TRACE_DATA_H_
+#define XENIA_DEBUG_FUNCTION_TRACE_DATA_H_
#include
@@ -89,4 +89,4 @@ class FunctionTraceData {
} // namespace debug
} // namespace xe
-#endif // XENIA_DEBUG_TRACE_DATA_H_
+#endif // XENIA_DEBUG_FUNCTION_TRACE_DATA_H_
diff --git a/src/xenia/debug/sources.gypi b/src/xenia/debug/sources.gypi
deleted file mode 100644
index 42751bd16..000000000
--- a/src/xenia/debug/sources.gypi
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright 2015 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'debug_server.cc',
- 'debug_server.h',
- 'debugger.cc',
- 'debugger.h',
- 'trace_data.h',
- ],
-}
diff --git a/src/xenia/gpu/gl4/sources.gypi b/src/xenia/gpu/gl4/sources.gypi
deleted file mode 100644
index 18d991268..000000000
--- a/src/xenia/gpu/gl4/sources.gypi
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright 2014 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'blitter.cc',
- 'blitter.h',
- 'circular_buffer.cc',
- 'circular_buffer.h',
- 'command_processor.cc',
- 'command_processor.h',
- 'draw_batcher.cc',
- 'draw_batcher.h',
- 'gl4_gpu-private.h',
- 'gl4_gpu.cc',
- 'gl4_gpu.h',
- 'gl4_graphics_system.cc',
- 'gl4_graphics_system.h',
- 'gl4_profiler_display.cc',
- 'gl4_profiler_display.h',
- 'gl4_shader.cc',
- 'gl4_shader.h',
- 'gl4_shader_translator.cc',
- 'gl4_shader_translator.h',
- 'gl_context.cc',
- 'gl_context.h',
- 'texture_cache.cc',
- 'texture_cache.h',
- ],
-
- 'conditions': [
- ['OS == "win"', {
- 'sources': [
- 'wgl_control.cc',
- 'wgl_control.h',
- ],
- }],
- ],
-}
diff --git a/src/xenia/gpu/sources.gypi b/src/xenia/gpu/sources.gypi
deleted file mode 100644
index 02d227a31..000000000
--- a/src/xenia/gpu/sources.gypi
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'gpu-private.h',
- 'gpu.cc',
- 'gpu.h',
- 'graphics_system.cc',
- 'graphics_system.h',
- 'register_file.cc',
- 'register_file.h',
- 'register_table.inc',
- 'sampler_info.cc',
- 'sampler_info.h',
- 'shader.cc',
- 'shader.h',
- 'texture_info.cc',
- 'texture_info.h',
- 'tracing.h',
- 'ucode.h',
- 'ucode_disassembler.cc',
- 'ucode_disassembler.h',
- 'xenos.h',
- ],
-
- 'includes': [
- 'gl4/sources.gypi',
- ],
-}
diff --git a/src/xenia/hid/nop/sources.gypi b/src/xenia/hid/nop/sources.gypi
deleted file mode 100644
index 92497b41d..000000000
--- a/src/xenia/hid/nop/sources.gypi
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'nop_hid-private.h',
- 'nop_hid.cc',
- 'nop_hid.h',
- 'nop_input_driver.cc',
- 'nop_input_driver.h',
- ],
-}
diff --git a/src/xenia/hid/sources.gypi b/src/xenia/hid/sources.gypi
deleted file mode 100644
index 079d059ca..000000000
--- a/src/xenia/hid/sources.gypi
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'hid-private.h',
- 'hid.cc',
- 'hid.h',
- 'input_driver.cc',
- 'input_driver.h',
- 'input_system.cc',
- 'input_system.h',
- ],
-
- 'includes': [
- 'nop/sources.gypi',
- ],
-
- 'conditions': [
- ['OS == "win"', {
- 'includes': [
- 'winkey/sources.gypi',
- 'xinput/sources.gypi',
- ],
- }],
- ],
-}
diff --git a/src/xenia/hid/winkey/sources.gypi b/src/xenia/hid/winkey/sources.gypi
deleted file mode 100644
index 792ac571d..000000000
--- a/src/xenia/hid/winkey/sources.gypi
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'winkey_hid-private.h',
- 'winkey_hid.cc',
- 'winkey_hid.h',
- 'winkey_input_driver.cc',
- 'winkey_input_driver.h',
- ],
-}
diff --git a/src/xenia/hid/xinput/sources.gypi b/src/xenia/hid/xinput/sources.gypi
deleted file mode 100644
index e4801bdf0..000000000
--- a/src/xenia/hid/xinput/sources.gypi
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'xinput_hid-private.h',
- 'xinput_hid.cc',
- 'xinput_hid.h',
- 'xinput_input_driver.cc',
- 'xinput_input_driver.h',
- ],
-}
diff --git a/src/xenia/kernel/apps/sources.gypi b/src/xenia/kernel/apps/sources.gypi
deleted file mode 100644
index a0f9d03b3..000000000
--- a/src/xenia/kernel/apps/sources.gypi
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'apps.cc',
- 'apps.h',
- 'xgi_app.cc',
- 'xgi_app.h',
- 'xlivebase_app.cc',
- 'xlivebase_app.h',
- 'xmp_app.cc',
- 'xmp_app.h',
- ],
-}
diff --git a/src/xenia/kernel/fs/devices/sources.gypi b/src/xenia/kernel/fs/devices/sources.gypi
deleted file mode 100644
index 964ce692c..000000000
--- a/src/xenia/kernel/fs/devices/sources.gypi
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'disc_image_device.cc',
- 'disc_image_device.h',
- 'disc_image_entry.cc',
- 'disc_image_entry.h',
- 'disc_image_file.cc',
- 'disc_image_file.h',
- 'host_path_device.cc',
- 'host_path_device.h',
- 'host_path_entry.cc',
- 'host_path_entry.h',
- 'host_path_file.cc',
- 'host_path_file.h',
- 'stfs_container_device.cc',
- 'stfs_container_device.h',
- 'stfs_container_entry.cc',
- 'stfs_container_entry.h',
- 'stfs_container_file.cc',
- 'stfs_container_file.h',
- ],
-}
diff --git a/src/xenia/kernel/fs/sources.gypi b/src/xenia/kernel/fs/sources.gypi
deleted file mode 100644
index 4cc2107ce..000000000
--- a/src/xenia/kernel/fs/sources.gypi
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'device.cc',
- 'device.h',
- 'entry.cc',
- 'entry.h',
- 'filesystem.cc',
- 'filesystem.h',
- 'gdfx.cc',
- 'gdfx.h',
- 'stfs.cc',
- 'stfs.h',
- ],
-
- 'includes': [
- 'devices/sources.gypi',
- ],
-}
diff --git a/src/xenia/kernel/objects/sources.gypi b/src/xenia/kernel/objects/sources.gypi
deleted file mode 100644
index 49c07754a..000000000
--- a/src/xenia/kernel/objects/sources.gypi
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'xenumerator.cc',
- 'xenumerator.h',
- 'xevent.cc',
- 'xevent.h',
- 'xfile.cc',
- 'xfile.h',
- 'xkernel_module.cc',
- 'xkernel_module.h',
- 'xmodule.cc',
- 'xmodule.h',
- 'xmutant.cc',
- 'xmutant.h',
- 'xnotify_listener.cc',
- 'xnotify_listener.h',
- 'xsemaphore.cc',
- 'xsemaphore.h',
- 'xthread.cc',
- 'xthread.h',
- 'xtimer.cc',
- 'xtimer.h',
- 'xuser_module.cc',
- 'xuser_module.h',
- ],
-}
diff --git a/src/xenia/kernel/sources.gypi b/src/xenia/kernel/sources.gypi
deleted file mode 100644
index 8a8253b60..000000000
--- a/src/xenia/kernel/sources.gypi
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'app.cc',
- 'app.h',
- 'async_request.cc',
- 'async_request.h',
- 'content_manager.cc',
- 'content_manager.h',
- 'dispatcher.cc',
- 'dispatcher.h',
- 'kernel.h',
- 'kernel_state.cc',
- 'kernel_state.h',
- 'modules.h',
- 'native_list.cc',
- 'native_list.h',
- 'object_table.cc',
- 'object_table.h',
- 'user_profile.cc',
- 'user_profile.h',
- 'xam_content.cc',
- 'xam_info.cc',
- 'xam_input.cc',
- 'xam_module.cc',
- 'xam_module.h',
- 'xam_msg.cc',
- 'xam_net.cc',
- 'xam_notify.cc',
- 'xam_ordinals.h',
- 'xam_private.h',
- 'xam_table.inc',
- 'xam_ui.cc',
- 'xam_user.cc',
- 'xam_video.cc',
- 'xam_voice.cc',
- 'xboxkrnl_audio.cc',
- 'xboxkrnl_audio_xma.cc',
- 'xboxkrnl_debug.cc',
- 'xboxkrnl_hal.cc',
- 'xboxkrnl_io.cc',
- 'xboxkrnl_memory.cc',
- 'xboxkrnl_misc.cc',
- 'xboxkrnl_module.cc',
- 'xboxkrnl_module.h',
- 'xboxkrnl_modules.cc',
- 'xboxkrnl_ob.cc',
- 'xboxkrnl_ordinals.h',
- 'xboxkrnl_private.h',
- 'xboxkrnl_rtl.cc',
- 'xboxkrnl_rtl.h',
- 'xboxkrnl_strings.cc',
- 'xboxkrnl_table.inc',
- 'xboxkrnl_threading.cc',
- 'xboxkrnl_usbcam.cc',
- 'xboxkrnl_video.cc',
- 'xobject.cc',
- 'xobject.h',
- ],
-
- 'includes': [
- 'apps/sources.gypi',
- 'fs/sources.gypi',
- 'objects/sources.gypi',
- 'util/sources.gypi',
- ],
-}
diff --git a/src/xenia/kernel/util/sources.gypi b/src/xenia/kernel/util/sources.gypi
deleted file mode 100644
index eeeaae226..000000000
--- a/src/xenia/kernel/util/sources.gypi
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'export_table_post.inc',
- 'export_table_pre.inc',
- 'ordinal_table_post.inc',
- 'ordinal_table_pre.inc',
- 'shim_utils.h',
- 'xex2.cc',
- 'xex2.h',
- 'xex2_info.h',
- ],
-}
diff --git a/src/xenia/memory.h b/src/xenia/memory.h
index e0dd9d899..c8c164939 100644
--- a/src/xenia/memory.h
+++ b/src/xenia/memory.h
@@ -16,7 +16,6 @@
#include "xenia/base/platform.h"
#include "xenia/cpu/mmio_handler.h"
-#include "xenia/memory.h"
namespace xe {
diff --git a/src/xenia/sources.gypi b/src/xenia/sources.gypi
deleted file mode 100644
index a929237b5..000000000
--- a/src/xenia/sources.gypi
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'emulator.cc',
- 'emulator.h',
- 'memory.cc',
- 'memory.h',
- 'profiling.cc',
- 'profiling.h',
- 'xbox.h',
- # xenia_main.cc is purposefully omitted as it's used in another target.
- ],
-
- 'includes': [
- 'apu/sources.gypi',
- 'base/sources.gypi',
- 'cpu/sources.gypi',
- 'debug/sources.gypi',
- 'gpu/sources.gypi',
- 'hid/sources.gypi',
- 'kernel/sources.gypi',
- 'ui/sources.gypi',
- ],
-}
diff --git a/src/xenia/tools/api-scanner/sources.gypi b/src/xenia/tools/api-scanner/sources.gypi
deleted file mode 100644
index f2873b288..000000000
--- a/src/xenia/tools/api-scanner/sources.gypi
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright 2015 x1nixmzeng. All Rights Reserved.
-{
- 'sources': [
- 'api_scanner_loader.cc',
- 'api_scanner_loader.h',
- 'api_scanner_main.cc'
- ]
-}
diff --git a/src/xenia/ui/sources.gypi b/src/xenia/ui/sources.gypi
deleted file mode 100644
index 70be615d7..000000000
--- a/src/xenia/ui/sources.gypi
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright 2014 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'control.cc',
- 'control.h',
- 'loop.h',
- 'main_window.cc',
- 'main_window.h',
- 'menu_item.cc',
- 'menu_item.h',
- 'ui_event.h',
- 'window.h',
- ],
-
- 'conditions': [
- ['OS == "win"', {
- 'includes': [
- 'win32/sources.gypi',
- ],
- }],
- ],
-}
diff --git a/src/xenia/ui/win32/sources.gypi b/src/xenia/ui/win32/sources.gypi
deleted file mode 100644
index 184e94c3f..000000000
--- a/src/xenia/ui/win32/sources.gypi
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2014 Ben Vanik. All Rights Reserved.
-{
- 'sources': [
- 'win32_control.cc',
- 'win32_control.h',
- 'win32_loop.cc',
- 'win32_loop.h',
- 'win32_menu_item.cc',
- 'win32_menu_item.h',
- 'win32_window.cc',
- 'win32_window.h',
- ],
-}
diff --git a/third_party/beaengine.gypi b/third_party/beaengine.gypi
deleted file mode 100644
index 911bfa45f..000000000
--- a/third_party/beaengine.gypi
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'targets': [
- {
- 'target_name': 'beaengine',
- 'type': '<(library)',
-
- 'direct_dependent_settings': {
- 'include_dirs': [
- 'beaengine/include/',
- ],
- 'defines': [
- 'BEA_ENGINE_STATIC=1',
- ],
- },
-
- 'sources': [
- 'beaengine/beaengineSources/BeaEngine.c',
- 'beaengine/include/beaengine/basic_types.h',
- 'beaengine/include/beaengine/BeaEngine.h',
- 'beaengine/include/beaengine/export.h',
- 'beaengine/include/beaengine/macros.h',
- ],
-
- 'include_dirs': [
- 'beaengine/beaengineSources/',
- 'beaengine/include/',
- ],
-
- 'defines': [
- 'BEA_ENGINE_STATIC=1',
- #'BEA_LIGHT_DISASSEMBLY=1',
- ],
- }
- ]
-}
diff --git a/third_party/binutils/build.sh b/third_party/binutils/build.sh
index 8e6f8818f..21a119ce5 100644
--- a/third_party/binutils/build.sh
+++ b/third_party/binutils/build.sh
@@ -62,4 +62,4 @@ cd ..
echo ""
echo "Cleaning up binutils build temp"
-rm -rf ./binutils-$SNAPSHOT_VERSION
+#rm -rf ./binutils-$SNAPSHOT_VERSION
diff --git a/third_party/flatbuffers b/third_party/flatbuffers
new file mode 160000
index 000000000..ecb27817c
--- /dev/null
+++ b/third_party/flatbuffers
@@ -0,0 +1 @@
+Subproject commit ecb27817cab429925f311832cffb277df30a9908
diff --git a/third_party/flatc.vcxproj b/third_party/flatc.vcxproj
new file mode 100644
index 000000000..0b9df77f1
--- /dev/null
+++ b/third_party/flatc.vcxproj
@@ -0,0 +1,137 @@
+
+
+
+
+ Checked
+ x64
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {D3069A06-62FC-479F-9F5C-23B4377481B0}
+ Win32Proj
+ flatc
+
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+
+
+
+ Level3
+ Disabled
+ _CONSOLE;%(PreprocessorDefinitions)
+ $(SolutionDir)\third_party\flatbuffers\include\;$(SolutionDir)\third_party\gflags\src\;$(SolutionDir)\src\;$(SolutionDir)\third_party;$(SolutionDir)\
+
+
+ Console
+ true
+
+
+
+
+
+
+ Level3
+ Disabled
+ _CONSOLE;%(PreprocessorDefinitions)
+ $(SolutionDir)\third_party\flatbuffers\include\;$(SolutionDir)\third_party\gflags\src\;$(SolutionDir)\src\;$(SolutionDir)\third_party;$(SolutionDir)\
+
+
+ Console
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ _CONSOLE;%(PreprocessorDefinitions)
+ $(SolutionDir)\third_party\flatbuffers\include\;$(SolutionDir)\third_party\gflags\src\;$(SolutionDir)\src\;$(SolutionDir)\third_party;$(SolutionDir)\
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/third_party/flatc.vcxproj.filters b/third_party/flatc.vcxproj.filters
new file mode 100644
index 000000000..db06403aa
--- /dev/null
+++ b/third_party/flatc.vcxproj.filters
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/third_party/gflags.gypi b/third_party/gflags.gypi
deleted file mode 100644
index 202d2f1e3..000000000
--- a/third_party/gflags.gypi
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'targets': [
- {
- 'target_name': 'gflags',
- 'type': '<(library)',
-
- 'direct_dependent_settings': {
- 'conditions': [
- ['OS != "win"', {
- 'include_dirs': [
- 'gflags/src/',
- ],
- }],
- ['OS == "win"', {
- 'include_dirs': [
- 'gflags/src/windows/',
- ],
- 'defines': [
- 'GFLAGS_DLL_DECL=',
- 'GFLAGS_DLL_DEFINE_FLAG=',
- 'GFLAGS_DLL_DECLARE_FLAG=',
- ],
- }],
- ],
- },
-
- 'sources': [
- 'gflags/src/gflags.cc',
- 'gflags/src/gflags_completions.cc',
- 'gflags/src/gflags_nc.cc',
- 'gflags/src/gflags_reporting.cc',
- ],
-
- 'conditions': [
- ['OS != "win"', {
- 'include_dirs': [
- 'gflags/src/',
- ],
- }],
- ['OS == "win"', {
- 'include_dirs': [
- 'gflags/src/windows/',
- 'gflags/src/',
- ],
- 'sources+': [
- 'gflags/src/windows/port.cc',
- ],
- 'defines': [
- 'PATH_SEPARATOR=\'\\\\\'',
- 'GFLAGS_DLL_DECL=',
- 'GFLAGS_DLL_DEFINE_FLAG=',
- 'GFLAGS_DLL_DECLARE_FLAG=',
- ],
- }],
- ],
- }
- ]
-}
diff --git a/third_party/glew.gypi b/third_party/glew.gypi
deleted file mode 100644
index c1d2cb7ca..000000000
--- a/third_party/glew.gypi
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 2014 Ben Vanik. All Rights Reserved.
-{
- 'targets': [
- {
- 'target_name': 'glew',
- 'type': '<(library)',
-
- 'direct_dependent_settings': {
- 'include_dirs': [
- 'GL/',
- ],
- 'defines': [
- 'GLEW_STATIC=1',
- 'GLEW_MX=1',
- ],
- },
-
- 'include_dirs': [
- 'GL/',
- ],
-
- 'defines': [
- 'GLEW_STATIC=1',
- 'GLEW_MX=1',
- ],
-
- 'sources': [
- # Khronos sources:
- 'GL/glcorearb.h',
- 'GL/glext.h',
- 'GL/glxext.h',
- 'GL/wglext.h',
- # GLEW sources:
- 'GL/glew.c',
- 'GL/glew.h',
- 'GL/glxew.h',
- 'GL/wglew.h',
- ],
- }
- ]
-}
diff --git a/third_party/gyp b/third_party/gyp
deleted file mode 160000
index 6194e32f7..000000000
--- a/third_party/gyp
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6194e32f7fcbf42e625b04373adfa3c3d483c962
diff --git a/third_party/gyp.patch b/third_party/gyp.patch
deleted file mode 100644
index 5f10b609c..000000000
--- a/third_party/gyp.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/pylib/gyp/generator/msvs.py b/pylib/gyp/generator/msvs.py
-index 05783d6..539614c 100644
---- a/pylib/gyp/generator/msvs.py
-+++ b/pylib/gyp/generator/msvs.py
-@@ -1963,13 +1963,17 @@ def _AppendFiltersForMSBuild(parent_filter_name, sources,
- if isinstance(source, MSVSProject.Filter):
- # We have a sub-filter. Create the name of that sub-filter.
- if not parent_filter_name:
-- filter_name = source.name
-+ if source.name == '..':
-+ filter_name = ''
-+ else:
-+ filter_name = source.name
- else:
- filter_name = '%s\\%s' % (parent_filter_name, source.name)
- # Add the filter to the group.
-- filter_group.append(
-- ['Filter', {'Include': filter_name},
-- ['UniqueIdentifier', MSVSNew.MakeGuid(source.name)]])
-+ if filter_name:
-+ filter_group.append(
-+ ['Filter', {'Include': filter_name},
-+ ['UniqueIdentifier', MSVSNew.MakeGuid(source.name)]])
- # Recurse and add its dependents.
- _AppendFiltersForMSBuild(filter_name, source.contents,
- extension_to_rule_name,
diff --git a/third_party/imgui.gypi b/third_party/imgui.gypi
deleted file mode 100644
index 3e87ca450..000000000
--- a/third_party/imgui.gypi
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2015 Ben Vanik. All Rights Reserved.
-{
- 'targets': [
- {
- 'target_name': 'imgui',
- 'type': '<(library)',
-
- 'direct_dependent_settings': {
- 'include_dirs': [
- 'imgui/',
- ],
- },
-
- 'include_dirs': [
- 'imgui/',
- ],
-
- 'sources': [
- 'imgui/imconfig.h',
- 'imgui/imgui.cpp',
- 'imgui/imgui.h',
- 'imgui/stb_rect_pack.h',
- 'imgui/stb_textedit.h',
- 'imgui/stb_truetype.h',
- ],
- }
- ]
-}
diff --git a/third_party/libgflags.vcxproj b/third_party/libgflags.vcxproj
new file mode 100644
index 000000000..b6d17db51
--- /dev/null
+++ b/third_party/libgflags.vcxproj
@@ -0,0 +1,132 @@
+
+
+
+
+ Checked
+ x64
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {838020F9-94AA-4314-996D-69B923C45D39}
+ Win32Proj
+ libgflags
+
+
+
+ StaticLibrary
+ true
+ v140
+ Unicode
+
+
+ StaticLibrary
+ true
+ v140
+ Unicode
+
+
+ StaticLibrary
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ Disabled
+ PATH_SEPARATOR=%27\\%27;GFLAGS_DLL_DECL=;GFLAGS_DLL_DEFINE_FLAG=;GFLAGS_DLL_DECLARE_FLAG=;_LIB;%(PreprocessorDefinitions)
+ $(SolutionDir)\third_party\gflags\src\windows\;$(SolutionDir)\third_party\gflags\src\;$(SolutionDir)\src\;$(SolutionDir)\
+
+
+ Windows
+ true
+
+
+
+
+
+
+ Level3
+ Disabled
+ PATH_SEPARATOR=%27\\%27;GFLAGS_DLL_DECL=;GFLAGS_DLL_DEFINE_FLAG=;GFLAGS_DLL_DECLARE_FLAG=;_LIB;%(PreprocessorDefinitions)
+ $(SolutionDir)\third_party\gflags\src\windows\;$(SolutionDir)\third_party\gflags\src\;$(SolutionDir)\src\;$(SolutionDir)\
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ PATH_SEPARATOR=%27\\%27;GFLAGS_DLL_DECL=;GFLAGS_DLL_DEFINE_FLAG=;GFLAGS_DLL_DECLARE_FLAG=;_LIB;%(PreprocessorDefinitions)
+ $(SolutionDir)\third_party\gflags\src\windows\;$(SolutionDir)\third_party\gflags\src\;$(SolutionDir)\src\;$(SolutionDir)\
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/third_party/libgflags.vcxproj.filters b/third_party/libgflags.vcxproj.filters
new file mode 100644
index 000000000..d4268afc1
--- /dev/null
+++ b/third_party/libgflags.vcxproj.filters
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/third_party/libglew.vcxproj b/third_party/libglew.vcxproj
new file mode 100644
index 000000000..2970f2725
--- /dev/null
+++ b/third_party/libglew.vcxproj
@@ -0,0 +1,123 @@
+
+
+
+
+ Checked
+ x64
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {AE4AF147-715A-4C24-8BFA-136332DED28F}
+ Win32Proj
+ libglew
+
+
+
+ StaticLibrary
+ true
+ v140
+ Unicode
+
+
+ StaticLibrary
+ true
+ v140
+ Unicode
+
+
+ StaticLibrary
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ Disabled
+ _LIB;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+
+
+
+
+
+
+ Level3
+ Disabled
+ _LIB;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ _LIB;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/third_party/libglew.vcxproj.filters b/third_party/libglew.vcxproj.filters
new file mode 100644
index 000000000..72d16732c
--- /dev/null
+++ b/third_party/libglew.vcxproj.filters
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/third_party/libimgui.vcxproj b/third_party/libimgui.vcxproj
new file mode 100644
index 000000000..bc454b5eb
--- /dev/null
+++ b/third_party/libimgui.vcxproj
@@ -0,0 +1,121 @@
+
+
+
+
+ Checked
+ x64
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {CE3A80D4-12DB-4164-A050-67E5796A019B}
+ Win32Proj
+ libimgui
+
+
+
+ StaticLibrary
+ true
+ v140
+ Unicode
+
+
+ StaticLibrary
+ true
+ v140
+ Unicode
+
+
+ StaticLibrary
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Level3
+ Disabled
+ _LIB;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+
+
+
+
+
+
+ Level3
+ Disabled
+ _LIB;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ _LIB;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+ true
+ true
+
+
+
+
+
+
\ No newline at end of file
diff --git a/third_party/libimgui.vcxproj.filters b/third_party/libimgui.vcxproj.filters
new file mode 100644
index 000000000..7a8251173
--- /dev/null
+++ b/third_party/libimgui.vcxproj.filters
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/third_party/llvm.gypi b/third_party/llvm.gypi
deleted file mode 100644
index 3b8449729..000000000
--- a/third_party/llvm.gypi
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2014 Ben Vanik. All Rights Reserved.
-{
- 'targets': [
- {
- 'target_name': 'llvm',
- 'type': '<(library)',
-
- 'direct_dependent_settings': {
- 'include_dirs': [
- 'llvm/include/',
- ],
-
- 'defines': [
- ],
- },
-
- 'msvs_disabled_warnings': [4267],
-
- 'defines': [
- ],
-
- 'include_dirs': [
- 'llvm/include/',
- ],
-
- 'sources': [
- 'llvm/dummy.cc',
- 'llvm/include/llvm/ADT/BitVector.h',
- 'llvm/include/llvm/Support/Compiler.h',
- 'llvm/include/llvm/Support/MathExtras.h',
- 'llvm/include/llvm/Support/type_traits.h',
- ],
- }
- ]
-}
diff --git a/third_party/microprofile/microprofile.h b/third_party/microprofile/microprofile.h
index df21e4930..345358cc6 100644
--- a/third_party/microprofile/microprofile.h
+++ b/third_party/microprofile/microprofile.h
@@ -1666,7 +1666,7 @@ uint32_t MicroProfileWebServerPort()
void MicroProfileDumpHtml(const char* pFile)
{
- uint32_t nLen = strlen(pFile);
+ uint32_t nLen = uint32_t(strlen(pFile));
if(nLen > sizeof(S.HtmlDumpPath)-1)
{
return;
@@ -1914,7 +1914,7 @@ static uint64_t g_nMicroProfileDataSent = 0;
void MicroProfileWriteSocket(void* Handle, size_t nSize, const char* pData)
{
g_nMicroProfileDataSent += nSize;
- send(*(MpSocket*)Handle, pData, nSize, 0);
+ send(*(MpSocket*)Handle, pData, int(nSize), 0);
}
diff --git a/third_party/microprofile/microprofileui.h b/third_party/microprofile/microprofileui.h
index b84bf8c9c..a61dccdf5 100644
--- a/third_party/microprofile/microprofileui.h
+++ b/third_party/microprofile/microprofileui.h
@@ -49,6 +49,8 @@
#define MicroProfileSetDisplayMode(f) do{}while(0)
#else
+#pragma warning(disable: 4244) // implicit conversion from float -> int
+
#ifndef MICROPROFILE_DRAWCURSOR
#define MICROPROFILE_DRAWCURSOR 0
#endif
diff --git a/third_party/sparsehash b/third_party/sparsehash
deleted file mode 160000
index 09af64be1..000000000
--- a/third_party/sparsehash
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 09af64be1e18018f5d7a1ff337bed0f32e8067f2
diff --git a/third_party/sparsehash.gypi b/third_party/sparsehash.gypi
deleted file mode 100644
index ec611db8e..000000000
--- a/third_party/sparsehash.gypi
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'targets': [
- {
- 'target_name': 'sparsehash',
- 'type': '<(library)',
-
- 'direct_dependent_settings': {
- 'include_dirs': [
- 'sparsehash/src/',
- ],
- },
-
- 'include_dirs': [
- 'sparsehash/src/',
- ],
-
- 'sources': [
- ],
-
- 'conditions': [
- ['OS == "win"', {
- 'sources!': [
- 'sparsehash/src/windows/port.cc',
- ],
- }],
- ],
- }
- ]
-}
diff --git a/third_party/xxhash.gypi b/third_party/xxhash.gypi
deleted file mode 100644
index b39b9f56b..000000000
--- a/third_party/xxhash.gypi
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 2014 Ben Vanik. All Rights Reserved.
-{
- 'targets': [
- {
- 'target_name': 'xxhash',
- 'type': '<(library)',
-
- 'include_dirs': [
- 'xxhash/',
- ],
-
- 'sources': [
- 'xxhash/xxhash.c',
- 'xxhash/xxhash.h',
- ],
- }
- ]
-}
diff --git a/tools/tools.gypi b/tools/tools.gypi
deleted file mode 100644
index 7632461e1..000000000
--- a/tools/tools.gypi
+++ /dev/null
@@ -1,5 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'includes': [
- ],
-}
diff --git a/xb.bat b/xb.bat
index 9b2186043..81f6d2515 100644
--- a/xb.bat
+++ b/xb.bat
@@ -3,7 +3,7 @@ REM Copyright 2015 Ben Vanik. All Rights Reserved.
SET DIR=%~dp0
-SET XENIA_SLN=build\xenia\xenia.sln
+SET XENIA_SLN=xenia.sln
REM ============================================================================
REM Environment Validation
@@ -83,16 +83,16 @@ ECHO.
ECHO xb pull [--rebase]
ECHO Fetches latest changes from github and rebuilds dependencies.
ECHO.
-ECHO xb gyp
-ECHO Creates/updates xenia.sln and project files. Use after changing gypi.
+ECHO xb proto
+ECHO Regenerates protocol files (*.fbs).
ECHO.
ECHO xb edit
ECHO Opens Visual Studio with `xenia.sln`.
ECHO.
-ECHO xb build [--debug OR --release] [--force]
+ECHO xb build [--checked OR --debug OR --release] [--force]
ECHO Initializes dependencies and prepares build environment.
ECHO.
-ECHO xb test [--debug OR --release] [--continue]
+ECHO xb test [--checked OR --debug OR --release] [--continue]
ECHO Runs automated tests. Tests must have been built with `xb build`.
ECHO.
ECHO xb clean
@@ -128,16 +128,6 @@ IF %ERRORLEVEL% NEQ 0 (
GOTO :eof
)
-ECHO.
-ECHO ^> generating projects...
-CALL :generate_projects
-IF %_RESULT% NEQ 0 (
- ECHO.
- ECHO ERROR: failed to generate projects
- ENDLOCAL & SET _RESULT=1
- GOTO :eof
-)
-
ENDLOCAL & SET _RESULT=0
GOTO :eof
@@ -193,36 +183,20 @@ IF %ERRORLEVEL% NEQ 0 (
GOTO :eof
)
-ECHO.
-ECHO ^> generating projects...
-CALL :generate_projects
-IF %_RESULT% NEQ 0 (
- ECHO.
- ECHO ERROR: failed to generate projects
- ENDLOCAL & SET _RESULT=1
- GOTO :eof
-)
-
ENDLOCAL & SET _RESULT=0
GOTO :eof
REM ============================================================================
-REM xb gyp
+REM xb proto
REM ============================================================================
-:perform_gyp
+:perform_proto
SETLOCAL
-ECHO Generating projects...
+ECHO Generating proto files...
ECHO.
-ECHO ^> generating projects...
-CALL :generate_projects
-IF %_RESULT% NEQ 0 (
- ECHO.
- ECHO ERROR: failed to generate projects
- ENDLOCAL & SET _RESULT=1
- GOTO :eof
-)
+ECHO ^> running flatc...
+REM foo
ENDLOCAL & SET _RESULT=0
GOTO :eof
@@ -235,16 +209,6 @@ REM ============================================================================
SETLOCAL
ECHO Launching Visual Studio...
-ECHO.
-ECHO ^> generating projects...
-CALL :generate_projects
-IF %_RESULT% NEQ 0 (
- ECHO.
- ECHO ERROR: failed to generate projects
- ENDLOCAL & SET _RESULT=1
- GOTO :eof
-)
-
ECHO.
ECHO ^> devenv %XENIA_SLN%
START devenv %XENIA_SLN%
@@ -264,6 +228,7 @@ SHIFT
:perform_build_args
IF "%~1"=="" GOTO :perform_build_parsed
IF "%~1"=="--" GOTO :perform_build_parsed
+IF "%~1"=="--checked" (SET CONFIG="checked")
IF "%~1"=="--debug" (SET CONFIG="debug")
IF "%~1"=="--release" (SET CONFIG="release")
IF "%~1"=="--force" (SET FORCE=1)
@@ -272,16 +237,6 @@ GOTO :perform_build_args
:perform_build_parsed
ECHO Building for config %CONFIG%...
-ECHO.
-ECHO ^> generating projects...
-CALL :generate_projects
-IF %_RESULT% NEQ 0 (
- ECHO.
- ECHO ERROR: failed to generate projects
- ENDLOCAL & SET _RESULT=1
- GOTO :eof
-)
-
IF %FORCE% EQU 1 (
SET DEVENV_COMMAND=/rebuild
) ELSE (
@@ -314,6 +269,7 @@ SHIFT
:perform_test_args
IF "%~1"=="" GOTO :perform_test_parsed
IF "%~1"=="--" GOTO :perform_test_parsed
+IF "%~1"=="--checked" (SET CONFIG="checked")
IF "%~1"=="--debug" (SET CONFIG="debug")
IF "%~1"=="--release" (SET CONFIG="release")
IF "%~1"=="--continue" (SET CONTINUE=1)
@@ -324,7 +280,7 @@ ECHO Running automated testing for config %CONFIG%...
SET TEST_NAMES=xe-cpu-hir-test xe-cpu-ppc-test
FOR %%G IN (%TEST_NAMES%) DO (
- IF NOT EXIST build\xenia\%CONFIG%\%%G.exe (
+ IF NOT EXIST build\bin\%CONFIG%\%%G.exe (
ECHO.
ECHO ERROR: unable to find `%%G.exe` - ensure it is built.
ENDLOCAL & SET _RESULT=1
@@ -335,8 +291,8 @@ FOR %%G IN (%TEST_NAMES%) DO (
SET ANY_FAILED=0
FOR %%G IN (%TEST_NAMES%) DO (
ECHO.
- ECHO ^> build\xenia\%CONFIG%\%%G.exe
- build\xenia\%CONFIG%\%%G.exe
+ ECHO ^> build\bin\%CONFIG%\%%G.exe
+ build\bin\%CONFIG%\%%G.exe
IF !ERRORLEVEL! NEQ 0 (
SET ANY_FAILED=1
IF %CONTINUE% EQU 0 (
@@ -369,7 +325,7 @@ SETLOCAL
ECHO Cleaning normal build outputs...
ECHO (use nuke to kill all artifacts)
-SET CONFIG_NAMES=Debug Release
+SET CONFIG_NAMES=Checked Debug Release
FOR %%G IN (%CONFIG_NAMES%) DO (
ECHO.
ECHO ^> devenv %XENIA_SLN% /clean %%G
@@ -536,8 +492,3 @@ IF "%VS150COMNTOOLS%" NEQ "" (
)
)
GOTO :eof
-
-:generate_projects
-CALL third_party\gyp\gyp.bat -f msvs -G output_dir=. --depth=. --toplevel-dir=. --generator-output=build/xenia/ -G msvs_version=2015 -D windows_sdk_dir="C:\Program Files (x86)\Windows Kits\8.1" xenia.gyp
-SET _RESULT=%ERRORLEVEL%
-GOTO :eof
diff --git a/xenia.gyp b/xenia.gyp
deleted file mode 100644
index 9d32a9c32..000000000
--- a/xenia.gyp
+++ /dev/null
@@ -1,371 +0,0 @@
-# Copyright 2013 Ben Vanik. All Rights Reserved.
-{
- 'includes': [
- 'src/xenia/cpu/frontend/test/test.gypi',
- 'src/xenia/cpu/test/test.gypi',
- 'tools/tools.gypi',
- 'third_party/beaengine.gypi',
- 'third_party/gflags.gypi',
- 'third_party/glew.gypi',
- 'third_party/imgui.gypi',
- 'third_party/llvm.gypi',
- 'third_party/sparsehash.gypi',
- 'third_party/xxhash.gypi',
- ],
-
- 'default_configuration': 'release',
-
- 'variables': {
- 'configurations': {
- 'Debug': {
- },
- 'Release': {
- },
- },
-
- 'library%': 'static_library',
- 'target_arch%': 'x64',
- },
-
- 'conditions': [
- ['OS=="win"', {
- 'variables': {
- 'move_command%': 'move'
- },
- }, {
- 'variables': {
- 'move_command%': 'mv'
- },
- }]
- ],
-
- 'target_defaults': {
- 'include_dirs': [
- 'include/',
- 'third_party/',
- '.',
- ],
-
- 'defines': [
- '__STDC_LIMIT_MACROS=1',
- '__STDC_CONSTANT_MACROS=1',
- '_ISOC99_SOURCE=1',
- '_CRT_NONSTDC_NO_DEPRECATE=1',
- ],
-
- 'conditions': [
- ['OS == "win"', {
- 'defines': [
- '_WIN64=1',
- '_AMD64_=1',
-
- # HACK: it'd be nice to use the proper functions, when available.
- '_CRT_SECURE_NO_WARNINGS=1',
- ],
- }],
- ],
-
- 'cflags': [
- '-std=c++11',
- ],
-
- 'configurations': {
- 'common_base': {
- 'abstract': 1,
-
- 'msvs_configuration_platform': 'x64',
- 'msvs_configuration_attributes': {
- 'OutputDirectory': '$(SolutionDir)$(ConfigurationName)',
- 'IntermediateDirectory': '$(OutDir)\\obj\\$(ProjectName)',
- 'CharacterSet': '1',
- },
- 'msvs_disabled_warnings': [
- 4458, # warning C4458: declaration of 'x' hides class member
- ],
- 'msvs_configuration_platform': 'x64',
- 'msvs_cygwin_shell': '0',
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- #'MinimalRebuild': 'true',
- 'BufferSecurityCheck': 'true',
- 'EnableFunctionLevelLinking': 'true',
- 'RuntimeTypeInfo': 'false',
- 'WarningLevel': '3',
- #'WarnAsError': 'true',
- 'DebugInformationFormat': '3',
- 'ExceptionHandling': '1', # /EHsc
- 'AdditionalOptions': [
- #'/TP', # Compile as C++
- '/EHsc', # C++ exception handling,
- '/MP',
- ],
- },
- 'VCLinkerTool': {
- 'GenerateDebugInformation': 'true',
- #'LinkIncremental': '1', # 1 = NO, 2 = YES
- 'TargetMachine': '17', # x86 - 64
- 'AdditionalLibraryDirectories': [
- ],
- 'EntryPointSymbol': 'wWinMainCRTStartup',
- },
- },
-
- 'scons_settings': {
- 'sconsbuild_dir': '<(DEPTH)/build/xenia/',
- },
-
- 'xcode_settings': {
- 'SYMROOT': '<(DEPTH)/build/xenia/',
- 'ALWAYS_SEARCH_USER_PATHS': 'NO',
- 'ARCHS': ['x86_64'],
- 'CLANG_CXX_LANGUAGE_STANDARD': 'c++1y',
- 'COMBINE_HIDPI_IMAGES': 'YES',
- 'GCC_C_LANGUAGE_STANDARD': 'gnu99',
- 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES',
- #'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES',
- 'GCC_WARN_ABOUT_MISSING_NEWLINE': 'YES',
- 'GCC_VERSION': 'com.apple.compilers.llvm.clang.1_0',
- 'WARNING_CFLAGS': ['-Wall', '-Wendif-labels'],
- 'LIBRARY_SEARCH_PATHS': [
- ],
- },
-
- 'defines': [
- ],
- },
-
- 'Debug': {
- 'inherit_from': ['common_base',],
- 'defines': [
- 'DEBUG',
- 'XE_DEBUG=1',
- ],
- 'msvs_configuration_attributes': {
- 'OutputDirectory': '<(DEPTH)\\build\\xenia\\Debug',
- },
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'Optimization': '0',
- 'BasicRuntimeChecks': '0', # disable /RTC1 when compiling /O2
- 'DebugInformationFormat': '3',
- 'ExceptionHandling': '0',
- 'RuntimeTypeInfo': 'false',
- 'OmitFramePointers': 'false',
- },
- 'VCLinkerTool': {
- 'LinkIncremental': '2',
- 'GenerateDebugInformation': 'true',
- 'StackReserveSize': '2097152',
- },
- },
- 'xcode_settings': {
- 'GCC_OPTIMIZATION_LEVEL': '0',
- },
- },
- 'Debug_x64': {
- 'inherit_from': ['Debug',],
- },
-
- 'Release': {
- 'inherit_from': ['common_base',],
- 'defines': [
- 'RELEASE',
- 'NDEBUG',
- ],
- 'msvs_configuration_attributes': {
- 'OutputDirectory': '<(DEPTH)\\build\\xenia\\release',
- },
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'Optimization': '2',
- 'InlineFunctionExpansion': '2',
- 'EnableIntrinsicFunctions': 'true',
- 'FavorSizeOrSpeed': '0',
- 'ExceptionHandling': '0',
- 'RuntimeTypeInfo': 'false',
- 'OmitFramePointers': 'false',
- 'StringPooling': 'true',
- },
- 'VCLinkerTool': {
- 'LinkIncremental': '1',
- 'GenerateDebugInformation': 'true',
- 'OptimizeReferences': '2',
- 'EnableCOMDATFolding': '2',
- 'StackReserveSize': '2097152',
- },
- },
- },
- 'Release_x64': {
- 'inherit_from': ['Release',],
- },
- },
- },
-
- 'targets': [
- {
- 'target_name': 'libxenia',
- 'product_name': 'libxenia',
- 'type': 'static_library',
-
- 'dependencies': [
- 'beaengine',
- 'gflags',
- 'glew',
- 'llvm',
- 'xxhash',
- ],
- 'export_dependent_settings': [
- 'beaengine',
- 'gflags',
- 'glew',
- 'llvm',
- 'xxhash',
- ],
-
- 'direct_dependent_settings': {
- 'include_dirs': [
- 'src/',
- ],
-
- 'target_conditions': [
- ['_type=="shared_library"', {
- 'cflags': [
- ],
- }],
- ['_type=="executable"', {
- 'conditions': [
- ['OS == "win"', {
- 'libraries': [
- 'kernel32',
- 'user32',
- 'ole32',
- 'wsock32',
- 'Ws2_32',
- 'xinput',
- 'xaudio2',
- 'Shell32',
- 'advapi32',
- 'glu32',
- 'opengl32',
- 'gdi32',
- 'ntdll',
- ],
- }],
- ['OS == "mac"', {
- 'xcode_settings': {
- 'OTHER_LDFLAGS': [
- ],
- },
- }],
- ['OS == "linux"', {
- 'libraries': [
- '-lpthread',
- '-ldl',
- '-lGLU',
- '-lGL',
- ],
- }],
- ],
- }],
- ],
- },
-
- 'conditions': [
- ['OS == "mac"', {
- 'xcode_settings': {
- 'OTHER_CFLAGS': [
- '-fno-operator-names',
- ],
- },
- }],
- ['OS == "linux"', {
- 'cflags': [
- '-fno-operator-names',
- ],
- }],
- ],
-
- 'cflags': [
- ],
-
- 'include_dirs': [
- '.',
- 'src/',
- ],
-
- 'includes': [
- 'src/xenia/sources.gypi',
- ],
- },
-
- {
- 'target_name': 'xenia',
- 'type': 'executable',
-
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'SubSystem': '2'
- },
- },
-
- 'dependencies': [
- 'libxenia',
- ],
-
- 'include_dirs': [
- '.',
- ],
-
- 'sources': [
- 'src/xenia/xenia_main.cc',
- ],
- },
-
- {
- 'target_name': 'gpu-trace-viewer',
- 'type': 'executable',
-
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'SubSystem': '2'
- },
- },
-
- 'dependencies': [
- 'imgui',
- 'libxenia',
- ],
-
- 'include_dirs': [
- '.',
- ],
-
- 'sources': [
- 'src/xenia/gpu/trace_viewer_main.cc',
- ],
- },
-
- {
- 'target_name': 'api-scanner',
- 'type': 'executable',
-
- 'msvs_settings': {
- 'VCLinkerTool': {
- 'SubSystem': '1'
- },
- },
-
- 'dependencies': [
- 'libxenia',
- ],
-
- 'include_dirs': [
- '.',
- ],
-
- 'includes': [
- 'src/xenia/tools/api-scanner/sources.gypi',
- ],
- },
- ],
-}
diff --git a/xenia.sln b/xenia.sln
new file mode 100644
index 000000000..1f3d9afd9
--- /dev/null
+++ b/xenia.sln
@@ -0,0 +1,142 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.22823.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxenia", "libxenia.vcxproj", "{0CE149F6-41C3-4224-9E57-C02E8C7CD312}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AE4AF147-715A-4C24-8BFA-136332DED28F} = {AE4AF147-715A-4C24-8BFA-136332DED28F}
+ {838020F9-94AA-4314-996D-69B923C45D39} = {838020F9-94AA-4314-996D-69B923C45D39}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenia", "xenia.vcxproj", "{88F908AF-79A3-4ED4-87C7-A76368205264}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AE4AF147-715A-4C24-8BFA-136332DED28F} = {AE4AF147-715A-4C24-8BFA-136332DED28F}
+ {0CE149F6-41C3-4224-9E57-C02E8C7CD312} = {0CE149F6-41C3-4224-9E57-C02E8C7CD312}
+ {838020F9-94AA-4314-996D-69B923C45D39} = {838020F9-94AA-4314-996D-69B923C45D39}
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "third_party", "third_party", "{FCCBE57F-ECAE-420A-8A82-4B85F722C272}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{FD0BCA5D-908D-4091-AC05-47C2A640BA72}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "testing", "testing", "{9C5BDD9E-831B-4AEE-957F-0E88ADED79C6}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libglew", "third_party\libglew.vcxproj", "{AE4AF147-715A-4C24-8BFA-136332DED28F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgflags", "third_party\libgflags.vcxproj", "{838020F9-94AA-4314-996D-69B923C45D39}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libimgui", "third_party\libimgui.vcxproj", "{CE3A80D4-12DB-4164-A050-67E5796A019B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {AE4AF147-715A-4C24-8BFA-136332DED28F} = {AE4AF147-715A-4C24-8BFA-136332DED28F}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "flatc", "third_party\flatc.vcxproj", "{D3069A06-62FC-479F-9F5C-23B4377481B0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xe-cpu-hir-test", "src\xenia\cpu\test\xe-cpu-hir-test.vcxproj", "{6EC54AD0-4F5B-48D9-B820-43DF2F0DC83C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {0CE149F6-41C3-4224-9E57-C02E8C7CD312} = {0CE149F6-41C3-4224-9E57-C02E8C7CD312}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xe-cpu-ppc-test", "src\xenia\cpu\frontend\test\xe-cpu-ppc-test.vcxproj", "{9B8AC22F-9147-490F-BE03-3B8BA31990A8}"
+ ProjectSection(ProjectDependencies) = postProject
+ {0CE149F6-41C3-4224-9E57-C02E8C7CD312} = {0CE149F6-41C3-4224-9E57-C02E8C7CD312}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xenia.Debug", "src\Xenia.Debug\Xenia.Debug.csproj", "{58348C66-1B0D-497C-B51A-28E99DF1EF74}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "debugging", "debugging", "{345BD157-B21D-4989-9CE4-FA3C90FFC095}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xenia.Debug.UI", "src\Xenia.Debug.UI\Xenia.Debug.UI.csproj", "{75A94CEB-442C-45B6-AEEC-A5F16D4543F3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "third_party\dockpanelsuite\WinFormsUI\WinFormsUI.csproj", "{C75532C4-765B-418E-B09B-46D36B2ABDB1}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Checked|x64 = Checked|x64
+ Debug|x64 = Debug|x64
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0CE149F6-41C3-4224-9E57-C02E8C7CD312}.Checked|x64.ActiveCfg = Checked|x64
+ {0CE149F6-41C3-4224-9E57-C02E8C7CD312}.Checked|x64.Build.0 = Checked|x64
+ {0CE149F6-41C3-4224-9E57-C02E8C7CD312}.Debug|x64.ActiveCfg = Debug|x64
+ {0CE149F6-41C3-4224-9E57-C02E8C7CD312}.Debug|x64.Build.0 = Debug|x64
+ {0CE149F6-41C3-4224-9E57-C02E8C7CD312}.Release|x64.ActiveCfg = Release|x64
+ {0CE149F6-41C3-4224-9E57-C02E8C7CD312}.Release|x64.Build.0 = Release|x64
+ {88F908AF-79A3-4ED4-87C7-A76368205264}.Checked|x64.ActiveCfg = Checked|x64
+ {88F908AF-79A3-4ED4-87C7-A76368205264}.Checked|x64.Build.0 = Checked|x64
+ {88F908AF-79A3-4ED4-87C7-A76368205264}.Debug|x64.ActiveCfg = Debug|x64
+ {88F908AF-79A3-4ED4-87C7-A76368205264}.Debug|x64.Build.0 = Debug|x64
+ {88F908AF-79A3-4ED4-87C7-A76368205264}.Release|x64.ActiveCfg = Release|x64
+ {88F908AF-79A3-4ED4-87C7-A76368205264}.Release|x64.Build.0 = Release|x64
+ {AE4AF147-715A-4C24-8BFA-136332DED28F}.Checked|x64.ActiveCfg = Checked|x64
+ {AE4AF147-715A-4C24-8BFA-136332DED28F}.Checked|x64.Build.0 = Checked|x64
+ {AE4AF147-715A-4C24-8BFA-136332DED28F}.Debug|x64.ActiveCfg = Debug|x64
+ {AE4AF147-715A-4C24-8BFA-136332DED28F}.Debug|x64.Build.0 = Debug|x64
+ {AE4AF147-715A-4C24-8BFA-136332DED28F}.Release|x64.ActiveCfg = Release|x64
+ {AE4AF147-715A-4C24-8BFA-136332DED28F}.Release|x64.Build.0 = Release|x64
+ {838020F9-94AA-4314-996D-69B923C45D39}.Checked|x64.ActiveCfg = Checked|x64
+ {838020F9-94AA-4314-996D-69B923C45D39}.Checked|x64.Build.0 = Checked|x64
+ {838020F9-94AA-4314-996D-69B923C45D39}.Debug|x64.ActiveCfg = Debug|x64
+ {838020F9-94AA-4314-996D-69B923C45D39}.Debug|x64.Build.0 = Debug|x64
+ {838020F9-94AA-4314-996D-69B923C45D39}.Release|x64.ActiveCfg = Release|x64
+ {838020F9-94AA-4314-996D-69B923C45D39}.Release|x64.Build.0 = Release|x64
+ {CE3A80D4-12DB-4164-A050-67E5796A019B}.Checked|x64.ActiveCfg = Checked|x64
+ {CE3A80D4-12DB-4164-A050-67E5796A019B}.Checked|x64.Build.0 = Checked|x64
+ {CE3A80D4-12DB-4164-A050-67E5796A019B}.Debug|x64.ActiveCfg = Debug|x64
+ {CE3A80D4-12DB-4164-A050-67E5796A019B}.Debug|x64.Build.0 = Debug|x64
+ {CE3A80D4-12DB-4164-A050-67E5796A019B}.Release|x64.ActiveCfg = Release|x64
+ {CE3A80D4-12DB-4164-A050-67E5796A019B}.Release|x64.Build.0 = Release|x64
+ {D3069A06-62FC-479F-9F5C-23B4377481B0}.Checked|x64.ActiveCfg = Checked|x64
+ {D3069A06-62FC-479F-9F5C-23B4377481B0}.Checked|x64.Build.0 = Checked|x64
+ {D3069A06-62FC-479F-9F5C-23B4377481B0}.Debug|x64.ActiveCfg = Debug|x64
+ {D3069A06-62FC-479F-9F5C-23B4377481B0}.Debug|x64.Build.0 = Debug|x64
+ {D3069A06-62FC-479F-9F5C-23B4377481B0}.Release|x64.ActiveCfg = Release|x64
+ {D3069A06-62FC-479F-9F5C-23B4377481B0}.Release|x64.Build.0 = Release|x64
+ {6EC54AD0-4F5B-48D9-B820-43DF2F0DC83C}.Checked|x64.ActiveCfg = Checked|x64
+ {6EC54AD0-4F5B-48D9-B820-43DF2F0DC83C}.Checked|x64.Build.0 = Checked|x64
+ {6EC54AD0-4F5B-48D9-B820-43DF2F0DC83C}.Debug|x64.ActiveCfg = Debug|x64
+ {6EC54AD0-4F5B-48D9-B820-43DF2F0DC83C}.Debug|x64.Build.0 = Debug|x64
+ {6EC54AD0-4F5B-48D9-B820-43DF2F0DC83C}.Release|x64.ActiveCfg = Release|x64
+ {6EC54AD0-4F5B-48D9-B820-43DF2F0DC83C}.Release|x64.Build.0 = Release|x64
+ {9B8AC22F-9147-490F-BE03-3B8BA31990A8}.Checked|x64.ActiveCfg = Checked|x64
+ {9B8AC22F-9147-490F-BE03-3B8BA31990A8}.Checked|x64.Build.0 = Checked|x64
+ {9B8AC22F-9147-490F-BE03-3B8BA31990A8}.Debug|x64.ActiveCfg = Debug|x64
+ {9B8AC22F-9147-490F-BE03-3B8BA31990A8}.Debug|x64.Build.0 = Debug|x64
+ {9B8AC22F-9147-490F-BE03-3B8BA31990A8}.Release|x64.ActiveCfg = Release|x64
+ {9B8AC22F-9147-490F-BE03-3B8BA31990A8}.Release|x64.Build.0 = Release|x64
+ {58348C66-1B0D-497C-B51A-28E99DF1EF74}.Checked|x64.ActiveCfg = Debug|x64
+ {58348C66-1B0D-497C-B51A-28E99DF1EF74}.Checked|x64.Build.0 = Debug|x64
+ {58348C66-1B0D-497C-B51A-28E99DF1EF74}.Debug|x64.ActiveCfg = Debug|x64
+ {58348C66-1B0D-497C-B51A-28E99DF1EF74}.Debug|x64.Build.0 = Debug|x64
+ {58348C66-1B0D-497C-B51A-28E99DF1EF74}.Release|x64.ActiveCfg = Release|x64
+ {58348C66-1B0D-497C-B51A-28E99DF1EF74}.Release|x64.Build.0 = Release|x64
+ {75A94CEB-442C-45B6-AEEC-A5F16D4543F3}.Checked|x64.ActiveCfg = Debug|x64
+ {75A94CEB-442C-45B6-AEEC-A5F16D4543F3}.Checked|x64.Build.0 = Debug|x64
+ {75A94CEB-442C-45B6-AEEC-A5F16D4543F3}.Debug|x64.ActiveCfg = Debug|x64
+ {75A94CEB-442C-45B6-AEEC-A5F16D4543F3}.Debug|x64.Build.0 = Debug|x64
+ {75A94CEB-442C-45B6-AEEC-A5F16D4543F3}.Release|x64.ActiveCfg = Release|x64
+ {75A94CEB-442C-45B6-AEEC-A5F16D4543F3}.Release|x64.Build.0 = Release|x64
+ {C75532C4-765B-418E-B09B-46D36B2ABDB1}.Checked|x64.ActiveCfg = Debug|x64
+ {C75532C4-765B-418E-B09B-46D36B2ABDB1}.Checked|x64.Build.0 = Debug|x64
+ {C75532C4-765B-418E-B09B-46D36B2ABDB1}.Debug|x64.ActiveCfg = Debug|x64
+ {C75532C4-765B-418E-B09B-46D36B2ABDB1}.Debug|x64.Build.0 = Debug|x64
+ {C75532C4-765B-418E-B09B-46D36B2ABDB1}.Release|x64.ActiveCfg = Release|x64
+ {C75532C4-765B-418E-B09B-46D36B2ABDB1}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {AE4AF147-715A-4C24-8BFA-136332DED28F} = {FCCBE57F-ECAE-420A-8A82-4B85F722C272}
+ {838020F9-94AA-4314-996D-69B923C45D39} = {FCCBE57F-ECAE-420A-8A82-4B85F722C272}
+ {CE3A80D4-12DB-4164-A050-67E5796A019B} = {FCCBE57F-ECAE-420A-8A82-4B85F722C272}
+ {D3069A06-62FC-479F-9F5C-23B4377481B0} = {FCCBE57F-ECAE-420A-8A82-4B85F722C272}
+ {6EC54AD0-4F5B-48D9-B820-43DF2F0DC83C} = {9C5BDD9E-831B-4AEE-957F-0E88ADED79C6}
+ {9B8AC22F-9147-490F-BE03-3B8BA31990A8} = {9C5BDD9E-831B-4AEE-957F-0E88ADED79C6}
+ {58348C66-1B0D-497C-B51A-28E99DF1EF74} = {345BD157-B21D-4989-9CE4-FA3C90FFC095}
+ {75A94CEB-442C-45B6-AEEC-A5F16D4543F3} = {345BD157-B21D-4989-9CE4-FA3C90FFC095}
+ {C75532C4-765B-418E-B09B-46D36B2ABDB1} = {FCCBE57F-ECAE-420A-8A82-4B85F722C272}
+ EndGlobalSection
+EndGlobal
diff --git a/xenia.vcxproj b/xenia.vcxproj
new file mode 100644
index 000000000..431e079fa
--- /dev/null
+++ b/xenia.vcxproj
@@ -0,0 +1,129 @@
+
+
+
+
+ Checked
+ x64
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ {88F908AF-79A3-4ED4-87C7-A76368205264}
+ Win32Proj
+ xenia
+
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ true
+ v140
+ Unicode
+
+
+ Application
+ false
+ v140
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+
+
+
+ Level3
+ Disabled
+ _WINDOWS;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+ libgflags.lib;libglew.lib;libxenia.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+ Level3
+ Disabled
+ _WINDOWS;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+ libgflags.lib;libglew.lib;libxenia.lib;%(AdditionalDependencies)
+
+
+
+
+ Level3
+
+
+ MaxSpeed
+ true
+ true
+ _WINDOWS;%(PreprocessorDefinitions)
+
+
+ Windows
+ true
+ true
+ true
+ libgflags.lib;libglew.lib;libxenia.lib;%(AdditionalDependencies)
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/xenia.vcxproj.filters b/xenia.vcxproj.filters
new file mode 100644
index 000000000..8f0eec36d
--- /dev/null
+++ b/xenia.vcxproj.filters
@@ -0,0 +1,31 @@
+
+
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {944458a3-c5a7-42f3-9330-1e24284524cc}
+
+
+ {1f48c4ec-0864-4f6f-bc46-51d57f0650a8}
+
+
+ {a3d918ab-c42b-469d-9950-ec4656b77b32}
+
+
+
+
+ src\xenia\base
+
+
+ src\xenia
+
+
+
+
+ src\xenia\base
+
+
+
\ No newline at end of file