diff --git a/CMakeLists.txt b/CMakeLists.txt
index ce5a6a9c2d..640d323b45 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -420,13 +420,6 @@ set(CommonMIPS
)
source_group(MIPS FILES ${CommonMIPS})
-if(NOT (X86 OR ARM OR MIPS))
- set(CommonFake
- Common/FakeCPUDetect.cpp
- )
- source_group(Fake FILES ${CommonFake})
-endif()
-
if(WIN32)
set(CommonD3D
Common/GPU/D3D9/D3D9ShaderCompiler.cpp
@@ -446,7 +439,6 @@ add_library(Common STATIC
${CommonARM}
${CommonARM64}
${CommonMIPS}
- ${CommonFake}
${CommonD3D}
Common/Serialize/Serializer.cpp
Common/Serialize/Serializer.h
@@ -643,6 +635,7 @@ add_library(Common STATIC
Common/ConsoleListener.h
Common/DbgNew.h
Common/FakeEmitter.h
+ Common/FakeCPUDetect.cpp
Common/ExceptionHandlerSetup.cpp
Common/ExceptionHandlerSetup.h
Common/Log.h
diff --git a/Common/Common.vcxproj b/Common/Common.vcxproj
index d66d2ebac2..69e6ff977b 100644
--- a/Common/Common.vcxproj
+++ b/Common/Common.vcxproj
@@ -795,6 +795,26 @@
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+
diff --git a/Common/Common.vcxproj.filters b/Common/Common.vcxproj.filters
index 3a7dbc7980..c83818b6bd 100644
--- a/Common/Common.vcxproj.filters
+++ b/Common/Common.vcxproj.filters
@@ -392,6 +392,8 @@
+
+
diff --git a/Common/FakeCPUDetect.cpp b/Common/FakeCPUDetect.cpp
index e110f0cdc0..9b1469c21c 100644
--- a/Common/FakeCPUDetect.cpp
+++ b/Common/FakeCPUDetect.cpp
@@ -15,6 +15,16 @@
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
+#include "ppsspp_config.h"
+#if PPSSPP_ARCH(ARM) || PPSSPP_ARCH(ARM64)
+#define REAL_CPUDETECT_AVAIL 1
+#elif PPSSPP_ARCH(X86) || PPSSPP_ARCH(AMD64)
+#define REAL_CPUDETECT_AVAIL 1
+#elif PPSSPP_ARCH(MIPS) || PPSSPP_ARCH(MIPS64)
+#define REAL_CPUDETECT_AVAIL 1
+#endif
+
+#ifndef REAL_CPUDETECT_AVAIL
#include
#include
#include
@@ -48,3 +58,4 @@ std::string CPUInfo::Summarize()
sum = StringFromFormat("%s, %i core", cpu_string, num_cores);
return sum;
}
+#endif
diff --git a/UWP/CommonUWP/CommonUWP.vcxproj b/UWP/CommonUWP/CommonUWP.vcxproj
index eec0403a85..e1ba07540c 100644
--- a/UWP/CommonUWP/CommonUWP.vcxproj
+++ b/UWP/CommonUWP/CommonUWP.vcxproj
@@ -573,6 +573,7 @@
+
diff --git a/UWP/CommonUWP/CommonUWP.vcxproj.filters b/UWP/CommonUWP/CommonUWP.vcxproj.filters
index c0fb4df3ec..95b4f0d0bd 100644
--- a/UWP/CommonUWP/CommonUWP.vcxproj.filters
+++ b/UWP/CommonUWP/CommonUWP.vcxproj.filters
@@ -96,6 +96,7 @@
+
diff --git a/android/jni/Android.mk b/android/jni/Android.mk
index 7475abcf13..04a223215c 100644
--- a/android/jni/Android.mk
+++ b/android/jni/Android.mk
@@ -16,7 +16,6 @@ ARCH_FILES := \
$(SRC)/Common/ABI.cpp \
$(SRC)/Common/x64Emitter.cpp \
$(SRC)/Common/x64Analyzer.cpp \
- $(SRC)/Common/CPUDetect.cpp \
$(SRC)/Common/Math/fast/fast_matrix_sse.c \
$(SRC)/Common/Thunk.cpp \
$(SRC)/Core/MIPS/x86/CompALU.cpp \
@@ -39,7 +38,6 @@ ARCH_FILES := \
$(SRC)/Common/ABI.cpp \
$(SRC)/Common/x64Emitter.cpp \
$(SRC)/Common/x64Analyzer.cpp \
- $(SRC)/Common/CPUDetect.cpp \
$(SRC)/Common/Math/fast/fast_matrix_sse.c \
$(SRC)/Common/Thunk.cpp \
$(SRC)/Core/MIPS/x86/CompALU.cpp \
@@ -62,7 +60,6 @@ ARCH_FILES := \
$(SRC)/GPU/Common/TextureDecoderNEON.cpp.neon \
$(SRC)/Core/Util/AudioFormatNEON.cpp.neon \
$(SRC)/Common/ArmEmitter.cpp \
- $(SRC)/Common/ArmCPUDetect.cpp \
$(SRC)/Common/ColorConvNEON.cpp.neon \
$(SRC)/Common/Math/fast/fast_matrix_neon.S.neon \
$(SRC)/Core/MIPS/ARM/ArmCompALU.cpp \
@@ -90,7 +87,6 @@ ARCH_FILES := \
$(SRC)/GPU/Common/TextureDecoderNEON.cpp \
$(SRC)/Core/Util/AudioFormatNEON.cpp \
$(SRC)/Common/Arm64Emitter.cpp \
- $(SRC)/Common/ArmCPUDetect.cpp \
$(SRC)/Common/ColorConvNEON.cpp \
$(SRC)/Core/MIPS/ARM64/Arm64CompALU.cpp \
$(SRC)/Core/MIPS/ARM64/Arm64CompBranch.cpp \
@@ -296,8 +292,11 @@ EXEC_AND_LIB_FILES := \
$(SRC)/Common/UI/View.cpp \
$(SRC)/Common/UI/ViewGroup.cpp \
$(SRC)/Common/Serialize/Serializer.cpp \
+ $(SRC)/Common/ArmCPUDetect.cpp \
$(SRC)/Common/ColorConv.cpp \
+ $(SRC)/Common/CPUDetect.cpp \
$(SRC)/Common/ExceptionHandlerSetup.cpp \
+ $(SRC)/Common/FakeCPUDetect.cpp \
$(SRC)/Common/Log.cpp \
$(SRC)/Common/LogManager.cpp \
$(SRC)/Common/MemArenaAndroid.cpp \
@@ -305,6 +304,7 @@ EXEC_AND_LIB_FILES := \
$(SRC)/Common/MemArenaWin32.cpp \
$(SRC)/Common/MemArenaPosix.cpp \
$(SRC)/Common/MemoryUtil.cpp \
+ $(SRC)/Common/MipsCPUDetect.cpp \
$(SRC)/Common/StringUtils.cpp \
$(SRC)/Common/SysError.cpp \
$(SRC)/Common/TimeUtil.cpp \
diff --git a/libretro/Makefile.common b/libretro/Makefile.common
index bb185a17a1..9cf38c96a0 100644
--- a/libretro/Makefile.common
+++ b/libretro/Makefile.common
@@ -214,13 +214,17 @@ SOURCES_CXX += \
$(COMMONDIR)/UI/View.cpp \
$(COMMONDIR)/UI/ViewGroup.cpp \
$(COMMONDIR)/System/Display.cpp \
+ $(COMMONDIR)/ArmCPUDetect.cpp \
+ $(COMMONDIR)/CPUDetect.cpp \
$(COMMONDIR)/Buffer.cpp \
$(COMMONDIR)/ConsoleListener.cpp \
$(COMMONDIR)/ExceptionHandlerSetup.cpp \
+ $(COMMONDIR)/FakeCPUDetect.cpp \
$(COMMONDIR)/Log.cpp \
$(COMMONDIR)/LogManager.cpp \
$(COMMONDIR)/OSVersion.cpp \
$(COMMONDIR)/MemoryUtil.cpp \
+ $(COMMONDIR)/MipsCPUDetect.cpp \
$(COMMONDIR)/SysError.cpp \
$(COMMONDIR)/StringUtils.cpp \
$(COMMONDIR)/TimeUtil.cpp
@@ -518,7 +522,6 @@ ifeq ($(WITH_DYNAREC),1)
ifeq ($(TARGET_ARCH),arm)
DYNAFLAGS += -D_ARCH_32
SOURCES_CXX += $(COMMONDIR)/ArmEmitter.cpp \
- $(COMMONDIR)/ArmCPUDetect.cpp \
$(COREDIR)/MIPS/ARM/ArmAsm.cpp \
$(COREDIR)/MIPS/ARM/ArmCompALU.cpp \
$(COREDIR)/MIPS/ARM/ArmCompBranch.cpp \
@@ -548,7 +551,6 @@ ifeq ($(WITH_DYNAREC),1)
else ifeq ($(TARGET_ARCH),arm64)
DYNAFLAGS += -D_ARCH_64
SOURCES_CXX += $(COMMONDIR)/Arm64Emitter.cpp \
- $(COMMONDIR)/ArmCPUDetect.cpp \
$(COREDIR)/MIPS/ARM64/Arm64Asm.cpp \
$(COREDIR)/MIPS/ARM64/Arm64CompALU.cpp \
$(COREDIR)/MIPS/ARM64/Arm64CompBranch.cpp \
@@ -597,7 +599,6 @@ endif
$(COMMONDIR)/x64Analyzer.cpp \
$(COMMONDIR)/ABI.cpp \
$(COMMONDIR)/Thunk.cpp \
- $(COMMONDIR)/CPUDetect.cpp \
$(COREDIR)/MIPS/x86/CompReplace.cpp \
$(COREDIR)/MIPS/x86/CompBranch.cpp \
$(COREDIR)/MIPS/x86/Asm.cpp \