diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0bdfe17939..2daab5c16f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -814,7 +814,6 @@ if(ANDROID)
)
set(NativeAppSource ${NativeAppSource}
- ext/native/base/NativeApp.h
android/jni/app-android.cpp
android/jni/AndroidEGLContext.cpp
android/jni/AndroidEGLContext.h
diff --git a/Common/Common.vcxproj b/Common/Common.vcxproj
index 6d8e13d2f8..e319b38ae2 100644
--- a/Common/Common.vcxproj
+++ b/Common/Common.vcxproj
@@ -451,6 +451,9 @@
+
+
+
@@ -722,6 +725,7 @@
+
diff --git a/Common/Common.vcxproj.filters b/Common/Common.vcxproj.filters
index 483144fcab..397028e32a 100644
--- a/Common/Common.vcxproj.filters
+++ b/Common/Common.vcxproj.filters
@@ -229,6 +229,15 @@
Profiler
+
+ System
+
+
+ System
+
+
+ System
+
@@ -439,6 +448,9 @@
Profiler
+
+ System
+
diff --git a/Common/Data/Format/RIFF.cpp b/Common/Data/Format/RIFF.cpp
index 2ef0576fde..2b6056a125 100644
--- a/Common/Data/Format/RIFF.cpp
+++ b/Common/Data/Format/RIFF.cpp
@@ -1,3 +1,5 @@
+#include
+
#include "Common/Log.h"
#include "Common/Data/Format/RIFF.h"
diff --git a/Common/Data/Format/RIFF.h b/Common/Data/Format/RIFF.h
index ab1b5c020f..0e0dbee623 100644
--- a/Common/Data/Format/RIFF.h
+++ b/Common/Data/Format/RIFF.h
@@ -10,7 +10,6 @@
// otherwise the scheme breaks.
#include
-#include
#include
class RIFFReader {
diff --git a/Common/MemArenaAndroid.cpp b/Common/MemArenaAndroid.cpp
index 462d1a3a94..c304f86435 100644
--- a/Common/MemArenaAndroid.cpp
+++ b/Common/MemArenaAndroid.cpp
@@ -27,11 +27,11 @@
#include
#include
-#include "base/NativeApp.h"
#include "Common/Log.h"
#include "Common/MemoryUtil.h"
#include "Common/MemArena.h"
#include "Common/StringUtils.h"
+#include "Common/System/System.h"
// Hopefully this ABI will never change...
diff --git a/Common/MemArenaPosix.cpp b/Common/MemArenaPosix.cpp
index 566af59ce4..016be57ce5 100644
--- a/Common/MemArenaPosix.cpp
+++ b/Common/MemArenaPosix.cpp
@@ -21,9 +21,10 @@
#include
-#include "FileUtil.h"
-#include "MemoryUtil.h"
-#include "MemArena.h"
+#include "Common/FileUtil.h"
+#include "Common/MemoryUtil.h"
+#include "Common/MemArena.h"
+#include "Common/Log.h"
#include
#include
diff --git a/ext/native/base/NativeApp.h b/Common/System/NativeApp.h
similarity index 55%
rename from ext/native/base/NativeApp.h
rename to Common/System/NativeApp.h
index 3242bfa019..d501d03b43 100644
--- a/ext/native/base/NativeApp.h
+++ b/Common/System/NativeApp.h
@@ -2,7 +2,6 @@
#include
#include
-#include
// The Native App API.
//
@@ -17,17 +16,6 @@ struct AxisInput;
class GraphicsContext;
-enum SystemPermission {
- SYSTEM_PERMISSION_STORAGE,
-};
-
-enum PermissionStatus {
- PERMISSION_STATUS_UNKNOWN,
- PERMISSION_STATUS_DENIED,
- PERMISSION_STATUS_PENDING,
- PERMISSION_STATUS_GRANTED,
-};
-
// The first function to get called, just write strings to the two pointers.
// This might get called multiple times in some implementations, you must be able to handle that.
void NativeGetAppInfo(std::string *app_dir_name, std::string *app_nice_name, bool *landscape, std::string *version);
@@ -101,89 +89,3 @@ void NativeSetMixer(void* mixer);
// Main thread.
void NativeShutdownGraphics();
void NativeShutdown();
-
-// Calls back into Java / SDL
-// These APIs must be implemented by every port (for example app-android.cpp, SDLMain.cpp).
-// You are free to call these.
-void SystemToast(const char *text);
-void ShowKeyboard();
-
-// Vibrate either takes a number of milliseconds to vibrate unconditionally,
-// or you can specify these constants for "standard" feedback. On Android,
-// these will only be performed if haptic feedback is enabled globally.
-// Also, on Android, these will work even if you don't have the VIBRATE permission,
-// while generic vibration will not if you don't have it.
-enum {
- HAPTIC_SOFT_KEYBOARD = -1,
- HAPTIC_VIRTUAL_KEY = -2,
- HAPTIC_LONG_PRESS_ACTIVATED = -3,
-};
-void Vibrate(int length_ms);
-void OpenDirectory(const char *path);
-void LaunchBrowser(const char *url);
-void LaunchMarket(const char *url);
-void LaunchEmail(const char *email_address);
-void System_InputBoxGetString(const std::string &title, const std::string &defaultValue, std::function cb);
-void System_SendMessage(const char *command, const char *parameter);
-PermissionStatus System_GetPermissionStatus(SystemPermission permission);
-void System_AskForPermission(SystemPermission permission);
-
-// This will get muddy with multi-screen support :/ But this will always be the type of the main device.
-enum SystemDeviceType {
- DEVICE_TYPE_MOBILE = 0, // phones and pads
- DEVICE_TYPE_TV = 1, // Android TV and similar
- DEVICE_TYPE_DESKTOP = 2, // Desktop computer
-};
-
-enum SystemProperty {
- SYSPROP_NAME,
- SYSPROP_LANGREGION,
- SYSPROP_CPUINFO,
- SYSPROP_BOARDNAME,
- SYSPROP_CLIPBOARD_TEXT,
- SYSPROP_GPUDRIVER_VERSION,
-
- SYSPROP_HAS_FILE_BROWSER,
- SYSPROP_HAS_IMAGE_BROWSER,
- SYSPROP_HAS_BACK_BUTTON,
-
- // Available as Int:
- SYSPROP_SYSTEMVERSION,
- SYSPROP_DISPLAY_XRES,
- SYSPROP_DISPLAY_YRES,
- SYSPROP_DISPLAY_REFRESH_RATE,
- SYSPROP_DISPLAY_LOGICAL_DPI,
- SYSPROP_DISPLAY_DPI,
- SYSPROP_DISPLAY_COUNT,
- SYSPROP_MOGA_VERSION,
-
- // Float only:
- SYSPROP_DISPLAY_SAFE_INSET_LEFT,
- SYSPROP_DISPLAY_SAFE_INSET_RIGHT,
- SYSPROP_DISPLAY_SAFE_INSET_TOP,
- SYSPROP_DISPLAY_SAFE_INSET_BOTTOM,
-
- SYSPROP_DEVICE_TYPE,
- SYSPROP_APP_GOLD, // To avoid having #ifdef GOLD other than in main.cpp and similar.
-
- // Exposed on Android. Choosing the optimal sample rate for audio
- // will result in lower latencies. Buffer size is automatically matched
- // by the OpenSL audio backend, only exposed here for debugging/info.
- SYSPROP_AUDIO_SAMPLE_RATE,
- SYSPROP_AUDIO_FRAMES_PER_BUFFER,
- SYSPROP_AUDIO_OPTIMAL_SAMPLE_RATE,
- SYSPROP_AUDIO_OPTIMAL_FRAMES_PER_BUFFER,
-
- // Exposed on SDL.
- SYSPROP_AUDIO_DEVICE_LIST,
-
- SYSPROP_SUPPORTS_PERMISSIONS,
- SYSPROP_SUPPORTS_SUSTAINED_PERF_MODE,
-};
-
-std::string System_GetProperty(SystemProperty prop);
-int System_GetPropertyInt(SystemProperty prop);
-float System_GetPropertyFloat(SystemProperty prop);
-bool System_GetPropertyBool(SystemProperty prop);
-
-std::vector __cameraGetDeviceList();
diff --git a/Common/System/System.h b/Common/System/System.h
new file mode 100644
index 0000000000..2d87f7399d
--- /dev/null
+++ b/Common/System/System.h
@@ -0,0 +1,101 @@
+#pragma once
+
+#include
+#include
+#include
+
+enum SystemPermission {
+ SYSTEM_PERMISSION_STORAGE,
+};
+
+enum PermissionStatus {
+ PERMISSION_STATUS_UNKNOWN,
+ PERMISSION_STATUS_DENIED,
+ PERMISSION_STATUS_PENDING,
+ PERMISSION_STATUS_GRANTED,
+};
+
+// These APIs must be implemented by every port (for example app-android.cpp, SDLMain.cpp).
+// Ideally these should be safe to call from any thread.
+void SystemToast(const char *text);
+void ShowKeyboard();
+
+// Vibrate either takes a number of milliseconds to vibrate unconditionally,
+// or you can specify these constants for "standard" feedback. On Android,
+// these will only be performed if haptic feedback is enabled globally.
+// Also, on Android, these will work even if you don't have the VIBRATE permission,
+// while generic vibration will not if you don't have it.
+enum {
+ HAPTIC_SOFT_KEYBOARD = -1,
+ HAPTIC_VIRTUAL_KEY = -2,
+ HAPTIC_LONG_PRESS_ACTIVATED = -3,
+};
+void Vibrate(int length_ms);
+void OpenDirectory(const char *path);
+void LaunchBrowser(const char *url);
+void LaunchMarket(const char *url);
+void LaunchEmail(const char *email_address);
+void System_InputBoxGetString(const std::string &title, const std::string &defaultValue, std::function cb);
+void System_SendMessage(const char *command, const char *parameter);
+PermissionStatus System_GetPermissionStatus(SystemPermission permission);
+void System_AskForPermission(SystemPermission permission);
+
+// This will get muddy with multi-screen support :/ But this will always be the type of the main device.
+enum SystemDeviceType {
+ DEVICE_TYPE_MOBILE = 0, // phones and pads
+ DEVICE_TYPE_TV = 1, // Android TV and similar
+ DEVICE_TYPE_DESKTOP = 2, // Desktop computer
+};
+
+enum SystemProperty {
+ SYSPROP_NAME,
+ SYSPROP_LANGREGION,
+ SYSPROP_CPUINFO,
+ SYSPROP_BOARDNAME,
+ SYSPROP_CLIPBOARD_TEXT,
+ SYSPROP_GPUDRIVER_VERSION,
+
+ SYSPROP_HAS_FILE_BROWSER,
+ SYSPROP_HAS_IMAGE_BROWSER,
+ SYSPROP_HAS_BACK_BUTTON,
+
+ // Available as Int:
+ SYSPROP_SYSTEMVERSION,
+ SYSPROP_DISPLAY_XRES,
+ SYSPROP_DISPLAY_YRES,
+ SYSPROP_DISPLAY_REFRESH_RATE,
+ SYSPROP_DISPLAY_LOGICAL_DPI,
+ SYSPROP_DISPLAY_DPI,
+ SYSPROP_DISPLAY_COUNT,
+ SYSPROP_MOGA_VERSION,
+
+ // Float only:
+ SYSPROP_DISPLAY_SAFE_INSET_LEFT,
+ SYSPROP_DISPLAY_SAFE_INSET_RIGHT,
+ SYSPROP_DISPLAY_SAFE_INSET_TOP,
+ SYSPROP_DISPLAY_SAFE_INSET_BOTTOM,
+
+ SYSPROP_DEVICE_TYPE,
+ SYSPROP_APP_GOLD, // To avoid having #ifdef GOLD other than in main.cpp and similar.
+
+ // Exposed on Android. Choosing the optimal sample rate for audio
+ // will result in lower latencies. Buffer size is automatically matched
+ // by the OpenSL audio backend, only exposed here for debugging/info.
+ SYSPROP_AUDIO_SAMPLE_RATE,
+ SYSPROP_AUDIO_FRAMES_PER_BUFFER,
+ SYSPROP_AUDIO_OPTIMAL_SAMPLE_RATE,
+ SYSPROP_AUDIO_OPTIMAL_FRAMES_PER_BUFFER,
+
+ // Exposed on SDL.
+ SYSPROP_AUDIO_DEVICE_LIST,
+
+ SYSPROP_SUPPORTS_PERMISSIONS,
+ SYSPROP_SUPPORTS_SUSTAINED_PERF_MODE,
+};
+
+std::string System_GetProperty(SystemProperty prop);
+int System_GetPropertyInt(SystemProperty prop);
+float System_GetPropertyFloat(SystemProperty prop);
+bool System_GetPropertyBool(SystemProperty prop);
+
+std::vector __cameraGetDeviceList();
diff --git a/Common/Vulkan/VulkanLoader.cpp b/Common/Vulkan/VulkanLoader.cpp
index b70259c610..0a58291277 100644
--- a/Common/Vulkan/VulkanLoader.cpp
+++ b/Common/Vulkan/VulkanLoader.cpp
@@ -21,7 +21,7 @@
#include
#include "Common/Log.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
#ifndef _WIN32
#include
diff --git a/Core/Config.cpp b/Core/Config.cpp
index 89aeb90706..3a98ae836f 100644
--- a/Core/Config.cpp
+++ b/Core/Config.cpp
@@ -24,8 +24,6 @@
#include "ppsspp_config.h"
-#include "Common/System/Display.h"
-#include "base/NativeApp.h"
#include "gfx_es2/gpu_features.h"
#include "net/http_client.h"
#include "net/url.h"
@@ -39,6 +37,8 @@
#include "Common/FileUtil.h"
#include "Common/LogManager.h"
#include "Common/OSVersion.h"
+#include "Common/System/Display.h"
+#include "Common/System/System.h"
#include "Common/StringUtils.h"
#include "Common/Vulkan/VulkanLoader.h"
#include "Core/Config.h"
diff --git a/Core/Core.cpp b/Core/Core.cpp
index 9748441e1a..f3cdd9b624 100644
--- a/Core/Core.cpp
+++ b/Core/Core.cpp
@@ -22,7 +22,8 @@
#include
#include
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/System/Display.h"
#include "Common/TimeUtil.h"
#include "Common/Thread/ThreadUtil.h"
diff --git a/Core/Dialog/PSPOskDialog.cpp b/Core/Dialog/PSPOskDialog.cpp
index add21d1cdd..c049225f02 100755
--- a/Core/Dialog/PSPOskDialog.cpp
+++ b/Core/Dialog/PSPOskDialog.cpp
@@ -16,12 +16,14 @@
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
#include
-#include "base/NativeApp.h"
+
#include "Common/Data/Text/I18n.h"
#include "Common/Math/math_util.h"
#include "Common/Data/Encoding/Utf8.h"
-
#include "Common/Serialize/SerializeFuncs.h"
+#include "Common/System/System.h"
+#include "Common/Serialize/Serializer.h"
+
#include "Core/Dialog/PSPOskDialog.h"
#include "Core/Util/PPGeDraw.h"
#include "Core/HLE/sceCtrl.h"
@@ -29,7 +31,6 @@
#include "Core/HLE/sceUtility.h"
#include "Core/Config.h"
#include "Core/Reporting.h"
-#include "Common/Serialize/Serializer.h"
#include "GPU/GPUState.h"
#ifndef _WIN32
diff --git a/Core/HLE/sceDisplay.cpp b/Core/HLE/sceDisplay.cpp
index 1c82dfa0a6..6df19c4cea 100644
--- a/Core/HLE/sceDisplay.cpp
+++ b/Core/HLE/sceDisplay.cpp
@@ -26,12 +26,11 @@
#include
#endif
-#include "Common/Data/Text/I18n.h"
-#include "Common/Profiler/Profiler.h"
-
-#include "base/NativeApp.h"
#include "gfx_es2/gpu_features.h"
+#include "Common/Data/Text/I18n.h"
+#include "Common/Profiler/Profiler.h"
+#include "Common/System/System.h"
#include "Common/Serialize/Serializer.h"
#include "Common/Serialize/SerializeFuncs.h"
#include "Common/Serialize/SerializeMap.h"
diff --git a/Core/HLE/sceUsbCam.cpp b/Core/HLE/sceUsbCam.cpp
index 7de78168ee..7793e372a0 100644
--- a/Core/HLE/sceUsbCam.cpp
+++ b/Core/HLE/sceUsbCam.cpp
@@ -20,7 +20,7 @@
#include "ppsspp_config.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Serialize/Serializer.h"
#include "Common/Serialize/SerializeFuncs.h"
#include "Core/HLE/HLE.h"
diff --git a/Core/HLE/sceUsbGps.cpp b/Core/HLE/sceUsbGps.cpp
index 3d014318ac..723e83d445 100644
--- a/Core/HLE/sceUsbGps.cpp
+++ b/Core/HLE/sceUsbGps.cpp
@@ -16,7 +16,8 @@
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
#include
-#include "base/NativeApp.h"
+
+#include "Common/System/System.h"
#include "Common/Serialize/Serializer.h"
#include "Common/Serialize/SerializeFuncs.h"
#include "Core/HLE/HLE.h"
diff --git a/Core/HW/StereoResampler.cpp b/Core/HW/StereoResampler.cpp
index c1e9b00049..898f21b48c 100644
--- a/Core/HW/StereoResampler.cpp
+++ b/Core/HW/StereoResampler.cpp
@@ -35,7 +35,7 @@
#include
#include
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/MathUtil.h"
#include "Common/Serialize/Serializer.h"
#include "Common/Log.h"
diff --git a/Core/KeyMap.cpp b/Core/KeyMap.cpp
index 20d04b9599..8d94087708 100644
--- a/Core/KeyMap.cpp
+++ b/Core/KeyMap.cpp
@@ -26,7 +26,8 @@
#include "ppsspp_config.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Data/Format/IniFile.h"
#include "Common/Input/InputState.h"
#include "Common/Log.h"
diff --git a/Core/System.cpp b/Core/System.cpp
index a9f68c324b..48e22b6f5e 100644
--- a/Core/System.cpp
+++ b/Core/System.cpp
@@ -32,7 +32,7 @@
#include
#include
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Math/math_util.h"
#include "Common/Thread/ThreadUtil.h"
#include "Common/Data/Encoding/Utf8.h"
diff --git a/GPU/Common/PresentationCommon.cpp b/GPU/Common/PresentationCommon.cpp
index d80394f55f..31e36a847c 100644
--- a/GPU/Common/PresentationCommon.cpp
+++ b/GPU/Common/PresentationCommon.cpp
@@ -19,10 +19,10 @@
#include
#include
-#include "Common/System/Display.h"
-#include "base/NativeApp.h"
#include "thin3d/thin3d.h"
+#include "Common/System/Display.h"
+#include "Common/System/System.h"
#include "Common/File/VFS/VFS.h"
#include "Common/Log.h"
#include "Common/TimeUtil.h"
diff --git a/GPU/D3D11/GPU_D3D11.cpp b/GPU/D3D11/GPU_D3D11.cpp
index 8199b3667c..a8f7b95fa6 100644
--- a/GPU/D3D11/GPU_D3D11.cpp
+++ b/GPU/D3D11/GPU_D3D11.cpp
@@ -39,7 +39,7 @@
#include "Common/Log.h"
#include "Common/Serialize/Serializer.h"
#include "Common/GraphicsContext.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Profiler/Profiler.h"
#include "Common/Data/Text/I18n.h"
#include "Core/Debugger/Breakpoints.h"
diff --git a/GPU/Directx9/GPU_DX9.cpp b/GPU/Directx9/GPU_DX9.cpp
index 1b5be8e793..5db0cbffd8 100644
--- a/GPU/Directx9/GPU_DX9.cpp
+++ b/GPU/Directx9/GPU_DX9.cpp
@@ -19,7 +19,7 @@
#include "Common/Serialize/Serializer.h"
#include "Common/GraphicsContext.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Profiler/Profiler.h"
#include "Common/Data/Text/I18n.h"
#include "Core/Debugger/Breakpoints.h"
diff --git a/Qt/QtMain.cpp b/Qt/QtMain.cpp
index 7f46133c19..450eefee31 100644
--- a/Qt/QtMain.cpp
+++ b/Qt/QtMain.cpp
@@ -31,7 +31,8 @@
#include "SDL_audio.h"
#endif
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "gfx_es2/gpu_features.h"
#include "Common/Math/math_util.h"
diff --git a/Qt/QtMain.h b/Qt/QtMain.h
index 3a1cd3a750..cd33b61765 100644
--- a/Qt/QtMain.h
+++ b/Qt/QtMain.h
@@ -24,7 +24,8 @@ QTM_USE_NAMESPACE
#include "Common/System/Display.h"
#include "Common/TimeUtil.h"
-#include "file/zip_read.h"
+#include "Common/File/VFS/VFS.h"
+#include "Common/File/VFS/AssetReader.h"
#include "gfx/gl_common.h"
#include "gfx_es2/gpu_features.h"
#include "Common/Input/InputState.h"
diff --git a/Qt/mainwindow.cpp b/Qt/mainwindow.cpp
index fe48956f2e..c2301004d3 100644
--- a/Qt/mainwindow.cpp
+++ b/Qt/mainwindow.cpp
@@ -8,7 +8,8 @@
#include
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Core/MIPS/MIPSDebugInterface.h"
#include "Core/Debugger/SymbolMap.h"
#include "Core/HLE/sceUmd.h"
diff --git a/Qt/mainwindow.h b/Qt/mainwindow.h
index 6334bc4aca..cdc08ca196 100644
--- a/Qt/mainwindow.h
+++ b/Qt/mainwindow.h
@@ -8,7 +8,8 @@
#include
#include
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
#include "ConsoleListener.h"
#include "Core/Core.h"
#include "Core/Config.h"
diff --git a/SDL/SDLGLGraphicsContext.cpp b/SDL/SDLGLGraphicsContext.cpp
index 2d41fd1c4f..168a07afcd 100644
--- a/SDL/SDLGLGraphicsContext.cpp
+++ b/SDL/SDLGLGraphicsContext.cpp
@@ -1,12 +1,16 @@
#include
+
#include "SDLGLGraphicsContext.h"
+
+#include "gfx_es2/gpu_features.h"
+#include "thin3d/thin3d_create.h"
+
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
+#include "Common/System/Display.h"
#include "Core/Config.h"
#include "Core/ConfigValues.h"
#include "Core/System.h"
-#include "base/NativeApp.h"
-#include "Common/System/Display.h"
-#include "gfx_es2/gpu_features.h"
-#include "thin3d/thin3d_create.h"
#if defined(USING_EGL)
#include "EGL/egl.h"
diff --git a/SDL/SDLJoystick.cpp b/SDL/SDLJoystick.cpp
index 53ed2cc921..50793957e1 100644
--- a/SDL/SDLJoystick.cpp
+++ b/SDL/SDLJoystick.cpp
@@ -1,7 +1,8 @@
#include
#include
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/File/VFS/VFS.h"
#include "Common/FileUtil.h"
diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp
index 37b3ad12af..78eef5170e 100644
--- a/SDL/SDLMain.cpp
+++ b/SDL/SDLMain.cpp
@@ -21,7 +21,8 @@ SDLJoystick *joystick = NULL;
#include
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
#include "ext/glslang/glslang/Public/ShaderLang.h"
#include "image/png_load.h"
#include "net/resolve.h"
diff --git a/SDL/SDLVulkanGraphicsContext.cpp b/SDL/SDLVulkanGraphicsContext.cpp
index 77bb943ecc..3c07ab942c 100644
--- a/SDL/SDLVulkanGraphicsContext.cpp
+++ b/SDL/SDLVulkanGraphicsContext.cpp
@@ -1,6 +1,7 @@
#include "Core/Config.h"
#include "Core/ConfigValues.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
#include "Common/System/Display.h"
#include "thin3d/thin3d.h"
#include "thin3d/thin3d_create.h"
@@ -154,4 +155,4 @@ void SDLVulkanGraphicsContext::Poll() {
if (vulkan_->GetSwapchain() && renderManager_->NeedsSwapchainRecreate()) {
Resize();
}
-}
\ No newline at end of file
+}
diff --git a/UI/ChatScreen.cpp b/UI/ChatScreen.cpp
index b7e4b33819..3283d86bf8 100644
--- a/UI/ChatScreen.cpp
+++ b/UI/ChatScreen.cpp
@@ -1,7 +1,6 @@
#include
#include "ppsspp_config.h"
-#include "base/NativeApp.h"
#include "ui/root.h"
#include "ui/ui_context.h"
#include "ui/view.h"
@@ -10,6 +9,7 @@
#include "Common/Data/Text/I18n.h"
#include "Common/Data/Encoding/Utf8.h"
+#include "Common/System/System.h"
#include "Core/Config.h"
#include "Core/System.h"
#include "Core/HLE/proAdhoc.h"
diff --git a/UI/ControlMappingScreen.cpp b/UI/ControlMappingScreen.cpp
index 518d805292..da64c785f2 100644
--- a/UI/ControlMappingScreen.cpp
+++ b/UI/ControlMappingScreen.cpp
@@ -19,8 +19,6 @@
#include
#include
-#include "Common/System/Display.h"
-#include "base/NativeApp.h"
#include "gfx/texture_atlas.h"
#include "ui/root.h"
#include "ui/ui.h"
@@ -28,11 +26,13 @@
#include "ui/view.h"
#include "ui/viewgroup.h"
+#include "Common/Log.h"
#include "Common/Data/Color/RGBAUtil.h"
#include "Common/Data/Text/I18n.h"
#include "Common/Input/KeyCodes.h"
#include "Common/Input/InputState.h"
-#include "Common/Log.h"
+#include "Common/System/Display.h"
+#include "Common/System/System.h"
#include "Core/KeyMap.h"
#include "Core/Host.h"
#include "Core/HLE/sceCtrl.h"
diff --git a/UI/CwCheatScreen.cpp b/UI/CwCheatScreen.cpp
index eb67a666b8..c92f7b838d 100644
--- a/UI/CwCheatScreen.cpp
+++ b/UI/CwCheatScreen.cpp
@@ -15,7 +15,6 @@
// Official git repository and contact information can be found at
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
-#include "base/NativeApp.h"
#include "ext/xxhash.h"
#include "ui/ui.h"
@@ -23,6 +22,7 @@
#include "Common/Data/Encoding/Utf8.h"
#include "Common/FileUtil.h"
#include "Common/StringUtils.h"
+#include "Common/System/System.h"
#include "Core/Core.h"
#include "Core/Config.h"
#include "Core/CwCheat.h"
diff --git a/UI/DevScreens.cpp b/UI/DevScreens.cpp
index 7f7bf849fd..530b0d31ed 100644
--- a/UI/DevScreens.cpp
+++ b/UI/DevScreens.cpp
@@ -19,7 +19,8 @@
#include "ppsspp_config.h"
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "gfx_es2/gpu_features.h"
#include "Common/Data/Text/I18n.h"
#include "ui/ui_context.h"
diff --git a/UI/DisplayLayoutScreen.cpp b/UI/DisplayLayoutScreen.cpp
index 1df7c0d072..8694bbd8bb 100644
--- a/UI/DisplayLayoutScreen.cpp
+++ b/UI/DisplayLayoutScreen.cpp
@@ -19,7 +19,7 @@
#include
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
#include "gfx/texture_atlas.h"
#include "gfx_es2/draw_buffer.h"
#include "ui/ui_context.h"
diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp
index 1856580ce8..f6c6cda45e 100644
--- a/UI/EmuScreen.cpp
+++ b/UI/EmuScreen.cpp
@@ -19,15 +19,10 @@
#include
-#include "Common/System/Display.h"
-#include "base/NativeApp.h"
-#include "Common/Profiler/Profiler.h"
-
#include "gfx/texture_atlas.h"
#include "gfx_es2/gpu_features.h"
#include "gfx_es2/draw_text.h"
-#include "Common/Math/curves.h"
#include "ui/root.h"
#include "ui/ui.h"
#include "ui/ui_context.h"
@@ -37,6 +32,11 @@
#include "Common/Data/Text/I18n.h"
#include "Common/Input/InputState.h"
#include "Common/Log.h"
+#include "Common/System/Display.h"
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
+#include "Common/Profiler/Profiler.h"
+#include "Common/Math/curves.h"
#include "Common/TimeUtil.h"
#ifndef MOBILE_DEVICE
diff --git a/UI/GameScreen.cpp b/UI/GameScreen.cpp
index 81b5c585d1..9404173d19 100644
--- a/UI/GameScreen.cpp
+++ b/UI/GameScreen.cpp
@@ -19,7 +19,6 @@
#include "ppsspp_config.h"
-#include "base/NativeApp.h"
#include "gfx_es2/draw_buffer.h"
#include "ui/ui_context.h"
#include "ui/view.h"
@@ -28,6 +27,8 @@
#include "Common/Data/Text/I18n.h"
#include "Common/Data/Encoding/Utf8.h"
#include "Common/FileUtil.h"
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
#include "Core/Host.h"
#include "Core/Config.h"
#include "Core/System.h"
diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp
index 77ed61bed0..8788263d2b 100644
--- a/UI/GameSettingsScreen.cpp
+++ b/UI/GameSettingsScreen.cpp
@@ -19,20 +19,21 @@
#include
-#include "Common/System/Display.h" // Only to check screen aspect ratio with pixel_yres/pixel_xres
-#include "base/NativeApp.h"
-
-#include "Common/Data/Color/RGBAUtil.h"
-#include "Common/Math/curves.h"
#include "net/resolve.h"
#include "gfx_es2/gpu_features.h"
#include "gfx_es2/draw_buffer.h"
-#include "Common/Data/Text/I18n.h"
-#include "Common/Data/Encoding/Utf8.h"
#include "ui/root.h"
#include "ui/view.h"
#include "ui/viewgroup.h"
#include "ui/ui_context.h"
+
+#include "Common/System/Display.h" // Only to check screen aspect ratio with pixel_yres/pixel_xres
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
+#include "Common/Data/Color/RGBAUtil.h"
+#include "Common/Math/curves.h"
+#include "Common/Data/Text/I18n.h"
+#include "Common/Data/Encoding/Utf8.h"
#include "UI/EmuScreen.h"
#include "UI/GameSettingsScreen.h"
#include "UI/GameInfoCache.h"
diff --git a/UI/GamepadEmu.cpp b/UI/GamepadEmu.cpp
index 8b4d4b8b4a..8337c83d1c 100644
--- a/UI/GamepadEmu.cpp
+++ b/UI/GamepadEmu.cpp
@@ -19,7 +19,7 @@
#include "Common/Data/Color/RGBAUtil.h"
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
#include "gfx/texture_atlas.h"
#include "Common/Math/math_util.h"
#include "ui/ui_context.h"
diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp
index 04aa540a49..6439628258 100644
--- a/UI/MainScreen.cpp
+++ b/UI/MainScreen.cpp
@@ -21,7 +21,7 @@
#include "ppsspp_config.h"
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
#include "gfx/texture_atlas.h"
#include "gfx_es2/draw_buffer.h"
#include "ui/root.h"
diff --git a/UI/MiscScreens.cpp b/UI/MiscScreens.cpp
index 86bc8360b2..b19f59bdaf 100644
--- a/UI/MiscScreens.cpp
+++ b/UI/MiscScreens.cpp
@@ -20,14 +20,16 @@
#include
#include
-#include "base/NativeApp.h"
-#include "Common/System/Display.h"
#include "gfx_es2/draw_buffer.h"
-#include "Common/Math/curves.h"
#include "ui/ui_context.h"
#include "ui/view.h"
#include "ui/viewgroup.h"
#include "ui/ui.h"
+
+#include "Common/System/Display.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
+#include "Common/Math/curves.h"
#include "Common/File/VFS/VFS.h"
#include "Common/Data/Color/RGBAUtil.h"
diff --git a/UI/NativeApp.cpp b/UI/NativeApp.cpp
index b4bd291126..f0da507d1a 100644
--- a/UI/NativeApp.cpp
+++ b/UI/NativeApp.cpp
@@ -43,27 +43,27 @@
#include "Windows/CaptureDevice.h"
#endif
-#include "Common/System/Display.h"
-#include "base/NativeApp.h"
#include "net/http_client.h"
#include "net/resolve.h"
#include "gfx/texture_atlas.h"
#include "gfx_es2/draw_text.h"
#include "gfx_es2/gpu_features.h"
+#include "thin3d/thin3d.h"
+#include "ui/ui.h"
+#include "ui/screen.h"
+#include "ui/ui_context.h"
+#include "ui/view.h"
+#include "android/jni/app-android.h"
+
+#include "Common/System/Display.h"
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
#include "Common/Data/Text/I18n.h"
#include "Common/Input/InputState.h"
#include "Common/Math/fast/fast_math.h"
#include "Common/Math/math_util.h"
#include "Common/Math/lin/matrix4x4.h"
#include "Common/Profiler/Profiler.h"
-#include "thin3d/thin3d.h"
-#include "ui/ui.h"
-#include "ui/screen.h"
-#include "ui/ui_context.h"
-#include "ui/view.h"
-
-#include "android/jni/app-android.h"
-
#include "Common/Data/Encoding/Utf8.h"
#include "Common/File/VFS/VFS.h"
#include "Common/File/VFS/AssetReader.h"
diff --git a/UI/PauseScreen.cpp b/UI/PauseScreen.cpp
index f2ec060b2a..620e5c1fc1 100644
--- a/UI/PauseScreen.cpp
+++ b/UI/PauseScreen.cpp
@@ -18,7 +18,6 @@
#include
#include
-#include "base/NativeApp.h"
#include "gfx_es2/draw_buffer.h"
#include "ui/view.h"
#include "ui/viewgroup.h"
@@ -28,19 +27,19 @@
#include "Common/Data/Text/I18n.h"
#include "Common/StringUtils.h"
+#include "Common/System/System.h"
#include "Core/Reporting.h"
#include "Core/SaveState.h"
#include "Core/System.h"
#include "Core/Config.h"
#include "Core/ELF/ParamSFO.h"
+#include "Core/HLE/sceDisplay.h"
+#include "Core/HLE/sceUmd.h"
#include "GPU/GPUCommon.h"
#include "GPU/GPUState.h"
-#include "Core/HLE/sceDisplay.h"
-#include "Core/HLE/sceUmd.h"
-
#include "UI/PauseScreen.h"
#include "UI/GameSettingsScreen.h"
#include "UI/ReportScreen.h"
diff --git a/UI/RemoteISOScreen.cpp b/UI/RemoteISOScreen.cpp
index be00a5eae6..0e6ae604c9 100644
--- a/UI/RemoteISOScreen.cpp
+++ b/UI/RemoteISOScreen.cpp
@@ -25,7 +25,6 @@
#include
#endif
-#include "base/NativeApp.h"
// TODO: For text align flags, probably shouldn't be in gfx_es2/...
#include "gfx_es2/draw_buffer.h"
#include "net/http_client.h"
@@ -38,6 +37,7 @@
#include "Common/Common.h"
#include "Common/TimeUtil.h"
#include "Common/StringUtils.h"
+#include "Common/System/System.h"
#include "Core/Config.h"
#include "Core/WebServer.h"
#include "UI/RemoteISOScreen.h"
diff --git a/UI/ReportScreen.cpp b/UI/ReportScreen.cpp
index bf63825722..480ad5a9f6 100644
--- a/UI/ReportScreen.cpp
+++ b/UI/ReportScreen.cpp
@@ -17,8 +17,6 @@
#include
-#include "Common/System/Display.h"
-#include "base/NativeApp.h"
// TODO: For text align flags, probably shouldn't be in gfx_es2/...
#include "gfx_es2/draw_buffer.h"
#include "thin3d/thin3d.h"
@@ -30,6 +28,8 @@
#include "Common/FileUtil.h"
#include "Common/Log.h"
#include "Common/StringUtils.h"
+#include "Common/System/Display.h"
+#include "Common/System/System.h"
#include "Core/Core.h"
#include "Core/Reporting.h"
#include "Core/Screenshot.h"
diff --git a/UWP/App.cpp b/UWP/App.cpp
index ee26dd40a0..94159e7602 100644
--- a/UWP/App.cpp
+++ b/UWP/App.cpp
@@ -5,8 +5,9 @@
#include
-#include "base/NativeApp.h"
#include "Common/Input/InputState.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Core/System.h"
#include "Core/Core.h"
diff --git a/UWP/CommonUWP/CommonUWP.vcxproj b/UWP/CommonUWP/CommonUWP.vcxproj
index af2508dc88..d1b6b551bc 100644
--- a/UWP/CommonUWP/CommonUWP.vcxproj
+++ b/UWP/CommonUWP/CommonUWP.vcxproj
@@ -454,6 +454,8 @@
+
+
diff --git a/UWP/CommonUWP/CommonUWP.vcxproj.filters b/UWP/CommonUWP/CommonUWP.vcxproj.filters
index 189cf456c9..22b87aec1e 100644
--- a/UWP/CommonUWP/CommonUWP.vcxproj.filters
+++ b/UWP/CommonUWP/CommonUWP.vcxproj.filters
@@ -446,6 +446,12 @@
System
+
+ System
+
+
+ System
+
diff --git a/UWP/NativeUWP/NativeUWP.vcxproj b/UWP/NativeUWP/NativeUWP.vcxproj
index 721cda4f7d..ced0674db9 100644
--- a/UWP/NativeUWP/NativeUWP.vcxproj
+++ b/UWP/NativeUWP/NativeUWP.vcxproj
@@ -379,8 +379,6 @@
-
-
@@ -410,7 +408,6 @@
-
diff --git a/UWP/NativeUWP/NativeUWP.vcxproj.filters b/UWP/NativeUWP/NativeUWP.vcxproj.filters
index a2f90645d1..9cade1425a 100644
--- a/UWP/NativeUWP/NativeUWP.vcxproj.filters
+++ b/UWP/NativeUWP/NativeUWP.vcxproj.filters
@@ -1,9 +1,6 @@
-
- {903dae00-880d-4c12-bd10-29fca750376f}
-
{98343696-3517-451a-9b47-94d462263e3e}
@@ -25,9 +22,6 @@
-
- base
-
thin3d
@@ -110,12 +104,6 @@
-
- base
-
-
- base
-
thin3d
diff --git a/UWP/PPSSPP_UWPMain.cpp b/UWP/PPSSPP_UWPMain.cpp
index 6f48714b88..54c9b1a73e 100644
--- a/UWP/PPSSPP_UWPMain.cpp
+++ b/UWP/PPSSPP_UWPMain.cpp
@@ -3,11 +3,9 @@
#include
-#include "base/NativeApp.h"
#include "file/file_util.h"
#include "net/http_client.h"
#include "net/resolve.h"
-#include "Common/System/Display.h"
#include "thin3d/thin3d_create.h"
#include "Common/Common.h"
@@ -22,6 +20,9 @@
#include "Common/LogManager.h"
#include "Common/TimeUtil.h"
#include "Common/StringUtils.h"
+#include "Common/System/Display.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Core/System.h"
#include "Core/Loaders.h"
diff --git a/UWP/UWPHost.cpp b/UWP/UWPHost.cpp
index d7526a9e2c..be3f93d826 100644
--- a/UWP/UWPHost.cpp
+++ b/UWP/UWPHost.cpp
@@ -20,7 +20,8 @@
#include
#include "file/file_util.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Input/InputState.h"
#include "Common/StringUtils.h"
diff --git a/Windows/DinputDevice.cpp b/Windows/DinputDevice.cpp
index 8d57cd19c5..d59874d680 100644
--- a/Windows/DinputDevice.cpp
+++ b/Windows/DinputDevice.cpp
@@ -24,7 +24,7 @@
#include "DinputDevice.h"
#include "Core/Config.h"
#include "Common/Input/InputState.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
#include "Common/Input/KeyCodes.h"
#include "Core/Reporting.h"
#include "Xinput.h"
diff --git a/Windows/EmuThread.cpp b/Windows/EmuThread.cpp
index bfb2df00c6..120130161e 100644
--- a/Windows/EmuThread.cpp
+++ b/Windows/EmuThread.cpp
@@ -2,15 +2,17 @@
#include
#include
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Data/Text/I18n.h"
#include "Common/Input/InputState.h"
#include "Common/Data/Encoding/Utf8.h"
-
#include "Common/Log.h"
#include "Common/StringUtils.h"
#include "Common/GraphicsContext.h"
#include "Common/TimeUtil.h"
+#include "Common/Thread/ThreadUtil.h"
+
#include "Windows/EmuThread.h"
#include "Windows/W32Util/Misc.h"
#include "Windows/MainWindow.h"
@@ -23,7 +25,6 @@
#include "Core/System.h"
#include "Core/Config.h"
#include "Core/ConfigValues.h"
-#include "Common/Thread/ThreadUtil.h"
enum class EmuThreadState {
DISABLED,
diff --git a/Windows/MainWindow.cpp b/Windows/MainWindow.cpp
index 560073b65e..439791544e 100644
--- a/Windows/MainWindow.cpp
+++ b/Windows/MainWindow.cpp
@@ -32,7 +32,8 @@
#include
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/TimeUtil.h"
#include "Common/StringUtils.h"
#include "Common/Data/Text/I18n.h"
diff --git a/Windows/MainWindowMenu.cpp b/Windows/MainWindowMenu.cpp
index fab9c450cc..6cbf136fc5 100644
--- a/Windows/MainWindowMenu.cpp
+++ b/Windows/MainWindowMenu.cpp
@@ -7,11 +7,12 @@
#include "resource.h"
+#include "gfx_es2/gpu_features.h"
+
#include "Common/Data/Text/I18n.h"
#include "Common/Data/Encoding/Utf8.h"
-#include "base/NativeApp.h"
-
-#include "gfx_es2/gpu_features.h"
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
#include "Common/FileUtil.h"
#include "Common/Log.h"
#include "Common/LogManager.h"
diff --git a/Windows/RawInput.cpp b/Windows/RawInput.cpp
index 6f8071058f..c23efbcf88 100644
--- a/Windows/RawInput.cpp
+++ b/Windows/RawInput.cpp
@@ -19,7 +19,7 @@
#include
#include
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
#include "Common/System/Display.h"
#include "Common/Input/InputState.h"
#include "Common/Log.h"
diff --git a/Windows/TouchInputHandler.cpp b/Windows/TouchInputHandler.cpp
index 1066e04c85..f216e8ac80 100644
--- a/Windows/TouchInputHandler.cpp
+++ b/Windows/TouchInputHandler.cpp
@@ -5,7 +5,7 @@
#include
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
#include "Common/CommonWindows.h"
#include "Common/CommonFuncs.h"
diff --git a/Windows/WindowsHost.cpp b/Windows/WindowsHost.cpp
index 02d28ff3d6..d337085dbd 100644
--- a/Windows/WindowsHost.cpp
+++ b/Windows/WindowsHost.cpp
@@ -33,7 +33,7 @@
// native stuff
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
#include "file/file_util.h"
#include "Common/Input/InputState.h"
#include "Common/Input/KeyCodes.h"
diff --git a/Windows/XinputDevice.cpp b/Windows/XinputDevice.cpp
index 3151a61935..4d12aa827c 100644
--- a/Windows/XinputDevice.cpp
+++ b/Windows/XinputDevice.cpp
@@ -3,7 +3,7 @@
#include
#include
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
#include "Core/Config.h"
#include "Common/CommonWindows.h"
#include "Common/Log.h"
diff --git a/Windows/main.cpp b/Windows/main.cpp
index c05d717714..6043e099ca 100644
--- a/Windows/main.cpp
+++ b/Windows/main.cpp
@@ -32,7 +32,8 @@
#include
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/File/VFS/VFS.h"
#include "Common/File/VFS/AssetReader.h"
#include "Common/Data/Text/I18n.h"
diff --git a/android/ab.cmd b/android/ab.cmd
index e6f3b7771d..33347178f4 100644
--- a/android/ab.cmd
+++ b/android/ab.cmd
@@ -5,7 +5,7 @@ copy ..\assets\langregion.ini assets\langregion.ini
copy ..\assets\compat.ini assets\compat.ini
copy ..\assets\Roboto-Condensed.ttf assets\Roboto-Condensed.ttf
copy ..\assets\*.png assets\
-REM SET NDK=C:\Android\sdk\ndk\21.3.6528147
-SET NDK=C:\Android\ndk
+SET NDK=C:\Android\sdk\ndk\21.3.6528147
+REM SET NDK=C:\Android\ndk
SET NDK_MODULE_PATH=..\ext;..\ext\native\ext
%NDK%/ndk-build -j32 %*
diff --git a/android/jni/AndroidEGLContext.cpp b/android/jni/AndroidEGLContext.cpp
index c84a79db01..c29ef49ba4 100644
--- a/android/jni/AndroidEGLContext.cpp
+++ b/android/jni/AndroidEGLContext.cpp
@@ -1,8 +1,8 @@
-#include "base/NativeApp.h"
#include "gfx_es2/gpu_features.h"
#include "thin3d/thin3d_create.h"
#include "Common/Log.h"
+#include "Common/System/System.h"
#include "AndroidEGLContext.h"
#include "GL/GLInterface/EGLAndroid.h"
#include "Core/ConfigValues.h"
diff --git a/android/jni/AndroidJavaGLContext.cpp b/android/jni/AndroidJavaGLContext.cpp
index d11feaf5a9..c797bd046d 100644
--- a/android/jni/AndroidJavaGLContext.cpp
+++ b/android/jni/AndroidJavaGLContext.cpp
@@ -1,6 +1,5 @@
#include "AndroidJavaGLContext.h"
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
#include "gfx_es2/gpu_features.h"
#include "Common/Log.h"
#include "Core/ConfigValues.h"
diff --git a/android/jni/AndroidVulkanContext.cpp b/android/jni/AndroidVulkanContext.cpp
index 6de6dc5cf7..8ddff75115 100644
--- a/android/jni/AndroidVulkanContext.cpp
+++ b/android/jni/AndroidVulkanContext.cpp
@@ -1,6 +1,7 @@
#include "AndroidVulkanContext.h"
-#include "base/NativeApp.h"
#include "Common/System/Display.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Log.h"
#include "Common/Vulkan/VulkanContext.h"
#include "Common/Vulkan/VulkanDebug.h"
diff --git a/android/jni/app-android.cpp b/android/jni/app-android.cpp
index e60f6bc01c..e81381aa6a 100644
--- a/android/jni/app-android.cpp
+++ b/android/jni/app-android.cpp
@@ -49,8 +49,14 @@ struct JNIEnv {};
#define JNI_VERSION_1_6 16
#endif
+#include "net/resolve.h"
+#include "android/jni/AndroidAudio.h"
+#include "gfx/gl_common.h"
+#include "gfx_es2/gpu_features.h"
+
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Thread/ThreadUtil.h"
#include "Common/File/VFS/VFS.h"
#include "Common/File/VFS/AssetReader.h"
@@ -58,11 +64,7 @@ struct JNIEnv {};
#include "Common/Input/KeyCodes.h"
#include "Common/Profiler/Profiler.h"
#include "Common/Math/math_util.h"
-#include "net/resolve.h"
#include "Common/Data/Text/Parsers.h"
-#include "android/jni/AndroidAudio.h"
-#include "gfx/gl_common.h"
-#include "gfx_es2/gpu_features.h"
#include "Common/Log.h"
#include "Common/GraphicsContext.h"
diff --git a/ext/native/native.vcxproj b/ext/native/native.vcxproj
index 7e8a930e49..f708266706 100644
--- a/ext/native/native.vcxproj
+++ b/ext/native/native.vcxproj
@@ -364,7 +364,6 @@
-
diff --git a/ext/native/native.vcxproj.filters b/ext/native/native.vcxproj.filters
index 76060179e4..b670b9fdb1 100644
--- a/ext/native/native.vcxproj.filters
+++ b/ext/native/native.vcxproj.filters
@@ -31,9 +31,6 @@
file
-
- base
-
ui
@@ -296,9 +293,6 @@
{49afd06e-eb44-41ac-b038-e109e444a834}
-
- {95e41110-57a2-497f-a938-b4c8e9dd6a27}
-
{d738c2d1-749d-4b60-b98f-f3da0bbbf40c}
diff --git a/ext/native/ui/ui_context.cpp b/ext/native/ui/ui_context.cpp
index 052332f0bd..68feedb298 100644
--- a/ext/native/ui/ui_context.cpp
+++ b/ext/native/ui/ui_context.cpp
@@ -3,7 +3,7 @@
#include
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
#include "ui/ui.h"
#include "ui/view.h"
#include "ui/ui_context.h"
diff --git a/ext/native/ui/view.cpp b/ext/native/ui/view.cpp
index 1f807d6b53..d0182622ca 100644
--- a/ext/native/ui/view.cpp
+++ b/ext/native/ui/view.cpp
@@ -12,8 +12,7 @@
#include "ui/ui_tween.h"
#include "ui/root.h"
#include "thin3d/thin3d.h"
-#include "base/NativeApp.h"
-
+#include "Common/System/System.h"
#include "Common/TimeUtil.h"
#include "Common/StringUtils.h"
diff --git a/headless/Headless.cpp b/headless/Headless.cpp
index 5d88aede92..bd6735e4fe 100644
--- a/headless/Headless.cpp
+++ b/headless/Headless.cpp
@@ -9,8 +9,9 @@
#include
#endif
-#include "base/NativeApp.h"
#include "Common/Profiler/Profiler.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/File/VFS/VFS.h"
#include "Common/File/VFS/AssetReader.h"
diff --git a/headless/SDLHeadlessHost.cpp b/headless/SDLHeadlessHost.cpp
index baf2da955d..f3652e03af 100644
--- a/headless/SDLHeadlessHost.cpp
+++ b/headless/SDLHeadlessHost.cpp
@@ -23,11 +23,11 @@
#include "headless/SDLHeadlessHost.h"
#include "gfx/gl_common.h"
#include "gfx_es2/gpu_features.h"
-#include "Common/File/VFS/VFS.h"
-#include "file/zip_read.h"
#include "thin3d/thin3d_create.h"
#include "thin3d/GLRenderManager.h"
+#include "Common/File/VFS/VFS.h"
+#include "Common/File/VFS/AssetReader.h"
#include "Common/Log.h"
#include "Common/FileUtil.h"
#include "Common/GraphicsContext.h"
diff --git a/ios/AppDelegate.mm b/ios/AppDelegate.mm
index ab79d0be07..ba8d4ff6d9 100644
--- a/ios/AppDelegate.mm
+++ b/ios/AppDelegate.mm
@@ -1,6 +1,7 @@
#import "AppDelegate.h"
#import "ViewController.h"
-#import "base/NativeApp.h"
+#import "Common/System/System.h"
+#import "Common/System/NativeApp.h"
#import "Core/System.h"
#import "Core/Config.h"
#import "Common/Log.h"
diff --git a/ios/DisplayManager.mm b/ios/DisplayManager.mm
index e3ae0a7b66..19f828d380 100644
--- a/ios/DisplayManager.mm
+++ b/ios/DisplayManager.mm
@@ -9,7 +9,8 @@
#import "ViewController.h"
#import "AppDelegate.h"
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
#include "Core/System.h"
#import
diff --git a/ios/PPSSPPUIApplication.mm b/ios/PPSSPPUIApplication.mm
index 4beb622c44..cc8d21c7af 100644
--- a/ios/PPSSPPUIApplication.mm
+++ b/ios/PPSSPPUIApplication.mm
@@ -13,9 +13,11 @@
#import
#include "Common/System/Display.h"
-#include "base/NativeApp.h"
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
#include "Common/TimeUtil.h"
-#include "file/zip_read.h"
+#include "Common/VFS/VFS.h"
+#include "Common/VFS/AssetReader.h"
#include "Common/Input/InputState.h"
#include "net/resolve.h"
#include "ui/screen.h"
diff --git a/ios/ViewController.mm b/ios/ViewController.mm
index 6e702ba12c..1b7837c65b 100644
--- a/ios/ViewController.mm
+++ b/ios/ViewController.mm
@@ -12,9 +12,6 @@
#import
#include
-#include "Common/System/Display.h"
-#include "base/NativeApp.h"
-#include "file/zip_read.h"
#include "net/resolve.h"
#include "ui/screen.h"
#include "thin3d/thin3d.h"
@@ -22,11 +19,16 @@
#include "thin3d/GLRenderManager.h"
#include "gfx_es2/gpu_features.h"
+#include "Common/System/Display.h"
+#include "Common/System/System.h"
+#include "Common/System/NativeApp.h"
+#include "Common/VFS/VFS.h"
#include "Common/Log.h"
#include "Common/TimeUtil.h"
#include "Common/Input/InputState.h"
#include "Common/Input/KeyCodes.h"
#include "Common/GraphicsContext.h"
+
#include "Core/Config.h"
#include "Core/ConfigValues.h"
#include "Core/System.h"
diff --git a/ios/main.mm b/ios/main.mm
index 762d4e8ade..5daecb3e79 100644
--- a/ios/main.mm
+++ b/ios/main.mm
@@ -14,7 +14,8 @@
#import "PPSSPPUIApplication.h"
#import "ViewController.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Profiler/Profiler.h"
#define CS_OPS_STATUS 0 /* return status */
diff --git a/libretro/libretro.cpp b/libretro/libretro.cpp
index 219432057e..8b0cefa854 100644
--- a/libretro/libretro.cpp
+++ b/libretro/libretro.cpp
@@ -5,11 +5,11 @@
#include
#include
-#include "base/NativeApp.h"
-
#include "Common/Log.h"
#include "Common/LogManager.h"
#include "Common/System/Display.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/TimeUtil.h"
#include "Common/FileUtil.h"
#include "Common/Serialize/Serializer.h"
diff --git a/unittest/JitHarness.cpp b/unittest/JitHarness.cpp
index 31899887c7..7ff7f589ad 100644
--- a/unittest/JitHarness.cpp
+++ b/unittest/JitHarness.cpp
@@ -18,7 +18,9 @@
#include
#include "ppsspp_config.h"
-#include "base/NativeApp.h"
+
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/TimeUtil.h"
#include "Core/ConfigValues.h"
#include "Core/MIPS/JitCommon/JitCommon.h"
diff --git a/unittest/UnitTest.cpp b/unittest/UnitTest.cpp
index 43e947fe95..edb5939cba 100644
--- a/unittest/UnitTest.cpp
+++ b/unittest/UnitTest.cpp
@@ -34,10 +34,11 @@
#endif
#include "ppsspp_config.h"
-#include "base/NativeApp.h"
+#include "Common/System/NativeApp.h"
+#include "Common/System/System.h"
#include "Common/Input/InputState.h"
#include "ext/disarm.h"
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/Data/Text/Parsers.h"
#include "Common/ArmEmitter.h"