diff --git a/CMakeLists.txt b/CMakeLists.txt
index acbbbe43ac..6bafe8c74b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -437,6 +437,8 @@ add_library(Common STATIC
Common/Data/Collections/TinySet.h
Common/Data/Color/RGBAUtil.cpp
Common/Data/Color/RGBAUtil.h
+ Common/Data/Convert/SmallDataConvert.cpp
+ Common/Data/Convert/SmallDataConvert.h
Common/Data/Encoding/Base64.cpp
Common/Data/Encoding/Base64.h
Common/Data/Encoding/Compression.cpp
@@ -445,6 +447,10 @@ add_library(Common STATIC
Common/Data/Encoding/Utf8.cpp
Common/Data/Encoding/Utf8.h
Common/Data/Encoding/Utf16.h
+ Common/Data/Format/RIFF.cpp
+ Common/Data/Format/RIFF.h
+ Common/Data/Format/IniFile.cpp
+ Common/Data/Format/IniFile.h
Common/Data/Hash/Hash.cpp
Common/Data/Hash/Hash.h
Common/Data/Text/I18n.cpp
@@ -454,11 +460,33 @@ add_library(Common STATIC
Common/Data/Text/WrapText.cpp
Common/Data/Text/WrapText.h
Common/Data/Random/Rng.h
+ Common/File/VFS/VFS.h
+ Common/File/VFS/VFS.cpp
+ Common/File/VFS/AssetReader.cpp
+ Common/File/VFS/AssetReader.h
+ Common/File/DiskFree.h
+ Common/File/DiskFree.cpp
+ Common/File/PathBrowser.h
+ Common/File/PathBrowser.cpp
Common/Input/GestureDetector.cpp
Common/Input/GestureDetector.h
Common/Input/KeyCodes.h
Common/Input/InputState.cpp
Common/Input/InputState.h
+ Common/Math/fast/fast_math.c
+ Common/Math/fast/fast_matrix.c
+ Common/Math/fast/fast_matrix_neon.S
+ Common/Math/fast/fast_matrix_sse.c
+ Common/Math/curves.cpp
+ Common/Math/curves.h
+ Common/Math/expression_parser.cpp
+ Common/Math/expression_parser.h
+ Common/Math/lin/matrix4x4.cpp
+ Common/Math/lin/matrix4x4.h
+ Common/Math/lin/vec3.cpp
+ Common/Math/lin/vec3.h
+ Common/Math/math_util.cpp
+ Common/Math/math_util.h
Common/Thread/Executor.cpp
Common/Thread/Executor.h
Common/Thread/PrioritizedWorkQueue.cpp
@@ -486,8 +514,6 @@ add_library(Common STATIC
Common/ExceptionHandlerSetup.h
Common/FileUtil.cpp
Common/FileUtil.h
- Common/KeyMap.cpp
- Common/KeyMap.h
Common/Hashmaps.h
Common/Log.h
Common/Log.cpp
@@ -980,21 +1006,10 @@ add_library(native STATIC
${nativeExtra}
ext/native/base/display.cpp
ext/native/base/display.h
- ext/native/file/chunk_file.cpp
- ext/native/file/chunk_file.h
ext/native/file/fd_util.cpp
ext/native/file/fd_util.h
ext/native/file/file_util.cpp
ext/native/file/file_util.h
- ext/native/file/free.cpp
- ext/native/file/free.h
- ext/native/file/ini_file.cpp
- ext/native/file/ini_file.h
- ext/native/file/path.cpp
- ext/native/file/path.h
- ext/native/file/vfs.h
- ext/native/file/zip_read.cpp
- ext/native/file/zip_read.h
ext/native/gfx/gl_common.h
ext/native/gfx/gl_debug_log.cpp
ext/native/gfx/gl_debug_log.h
@@ -1030,22 +1045,6 @@ add_library(native STATIC
ext/native/json/json_reader.cpp
ext/native/json/json_writer.h
ext/native/json/json_writer.cpp
- ext/native/math/fast/fast_math.c
- ext/native/math/fast/fast_matrix.c
- ext/native/math/fast/fast_matrix_neon.S
- ext/native/math/fast/fast_matrix_sse.c
- ext/native/math/dataconv.cpp
- ext/native/math/dataconv.h
- ext/native/math/curves.cpp
- ext/native/math/curves.h
- ext/native/math/expression_parser.cpp
- ext/native/math/expression_parser.h
- ext/native/math/lin/matrix4x4.cpp
- ext/native/math/lin/matrix4x4.h
- ext/native/math/lin/vec3.cpp
- ext/native/math/lin/vec3.h
- ext/native/math/math_util.cpp
- ext/native/math/math_util.h
ext/native/net/http_client.cpp
ext/native/net/http_client.h
ext/native/net/http_headers.cpp
@@ -1465,6 +1464,8 @@ add_library(${CoreLibName} ${CoreLinkType}
Core/HDRemaster.h
Core/Instance.cpp
Core/Instance.h
+ Core/KeyMap.cpp
+ Core/KeyMap.h
Core/ThreadEventQueue.h
Core/WebServer.cpp
Core/WebServer.h
diff --git a/Common/Common.vcxproj b/Common/Common.vcxproj
index 5a4aef7e51..d914911c40 100644
--- a/Common/Common.vcxproj
+++ b/Common/Common.vcxproj
@@ -362,20 +362,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -420,7 +435,6 @@
-
@@ -628,16 +642,31 @@
false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -677,7 +706,6 @@
true
true
-
@@ -712,6 +740,10 @@
{f761046e-6c38-4428-a5f1-38391a37bb34}
+
+
+
+
diff --git a/Common/Common.vcxproj.filters b/Common/Common.vcxproj.filters
index 6408cd9512..ae66327176 100644
--- a/Common/Common.vcxproj.filters
+++ b/Common/Common.vcxproj.filters
@@ -23,7 +23,6 @@
Crypto
-
@@ -176,6 +175,51 @@
Data\Color
+
+ Data\Convert
+
+
+ Math
+
+
+ Math
+
+
+ Math
+
+
+ Math
+
+
+ Math\lin
+
+
+ Math\lin
+
+
+ Math\fast
+
+
+ Math\fast
+
+
+ Data\Format
+
+
+ File
+
+
+ File
+
+
+ File\VFS
+
+
+ File\VFS
+
+
+ Data\Format
+
@@ -195,7 +239,6 @@
Crypto
-
Crypto
@@ -333,6 +376,51 @@
Data\Color
+
+ Data\Convert
+
+
+ Math
+
+
+ Math
+
+
+ Math
+
+
+ Math\lin
+
+
+ Math\lin
+
+
+ Math\fast
+
+
+ Math\fast
+
+
+ Math\fast
+
+
+ Data\Format
+
+
+ File
+
+
+ File
+
+
+ File\VFS
+
+
+ File\VFS
+
+
+ Data\Format
+
@@ -383,10 +471,39 @@
{1ada1f0f-6f1c-4bf2-8450-1fc63d77da17}
+
+ {9f70c234-1671-49db-aa45-1a6a75698a40}
+
+
+ {98967255-542c-490d-9183-a4b21c074703}
+
+
+ {aa083b68-34ed-4679-a8de-1797a00a1772}
+
+
+ {ffa5052d-e78f-4c47-a43e-e3537c5e7ad0}
+
+
+ {3eebbd6c-0c35-4dac-9869-5d38419432a6}
+
+
+ {d9e60709-9bf4-4bc7-b902-742219df7ffb}
+
+
+ {b10822cf-4cc0-4bc3-91a9-b20cb66e5cbd}
+
ext\libpng17
+
+
+ Math\lin
+
+
+ Math\fast
+
+
\ No newline at end of file
diff --git a/Common/CommonTypes.h b/Common/CommonTypes.h
index 93a0c8cb30..ab2b7145af 100644
--- a/Common/CommonTypes.h
+++ b/Common/CommonTypes.h
@@ -22,14 +22,6 @@
#pragma once
-struct u24_be {
- unsigned char value[3];
-
- operator unsigned int(){
- return 0x00000000 | (value[0] << 16) | (value[1] << 8) | (value[2] << 0);
- }
-};
-
#if defined(_MSC_VER)
typedef unsigned __int8 u8;
diff --git a/ext/native/math/dataconv.cpp b/Common/Data/Convert/SmallDataConvert.cpp
similarity index 68%
rename from ext/native/math/dataconv.cpp
rename to Common/Data/Convert/SmallDataConvert.cpp
index 2fcc339c90..4f0d65ea11 100644
--- a/ext/native/math/dataconv.cpp
+++ b/Common/Data/Convert/SmallDataConvert.cpp
@@ -1,3 +1,3 @@
-#include "dataconv.h"
+#include "Common/Data/Convert/SmallDataConvert.h"
alignas(16) const float one_over_255_x4[4] = { 1.0f / 255.0f, 1.0f / 255.0f, 1.0f / 255.0f, 1.0f / 255.0f, };
diff --git a/ext/native/math/dataconv.h b/Common/Data/Convert/SmallDataConvert.h
similarity index 100%
rename from ext/native/math/dataconv.h
rename to Common/Data/Convert/SmallDataConvert.h
diff --git a/ext/native/file/ini_file.cpp b/Common/Data/Format/IniFile.cpp
similarity index 99%
rename from ext/native/file/ini_file.cpp
rename to Common/Data/Format/IniFile.cpp
index d0a5c71bf9..8e001f802d 100644
--- a/ext/native/file/ini_file.cpp
+++ b/Common/Data/Format/IniFile.cpp
@@ -16,8 +16,8 @@
#include
#include
-#include "file/ini_file.h"
-#include "file/vfs.h"
+#include "Common/Data/Format/IniFile.h"
+#include "Common/File/VFS/VFS.h"
#include "Common/Data/Text/Parsers.h"
#ifdef _WIN32
diff --git a/ext/native/file/ini_file.h b/Common/Data/Format/IniFile.h
similarity index 100%
rename from ext/native/file/ini_file.h
rename to Common/Data/Format/IniFile.h
diff --git a/ext/native/file/chunk_file.cpp b/Common/Data/Format/RIFF.cpp
similarity index 96%
rename from ext/native/file/chunk_file.cpp
rename to Common/Data/Format/RIFF.cpp
index 2dab992913..2ef0576fde 100644
--- a/ext/native/file/chunk_file.cpp
+++ b/Common/Data/Format/RIFF.cpp
@@ -1,8 +1,5 @@
-#include "file/chunk_file.h"
-#include "file/zip_read.h"
-#include "file/file_util.h"
-
#include "Common/Log.h"
+#include "Common/Data/Format/RIFF.h"
inline uint32_t flipID(uint32_t id) {
return ((id >> 24) & 0xFF) | ((id >> 8) & 0xFF00) | ((id << 8) & 0xFF0000) | ((id << 24) & 0xFF000000);
diff --git a/ext/native/file/chunk_file.h b/Common/Data/Format/RIFF.h
similarity index 94%
rename from ext/native/file/chunk_file.h
rename to Common/Data/Format/RIFF.h
index ebc2db99a4..ab1b5c020f 100644
--- a/ext/native/file/chunk_file.h
+++ b/Common/Data/Format/RIFF.h
@@ -1,6 +1,6 @@
#pragma once
-// Simple RIFF file format reader/writer.
+// Simple RIFF file format reader.
// Unrelated to the ChunkFile.h used in Dolphin and PPSSPP.
// TO REMEMBER WHEN USING:
diff --git a/Common/Data/Text/I18n.cpp b/Common/Data/Text/I18n.cpp
index e0bd685049..72e16a6eb6 100644
--- a/Common/Data/Text/I18n.cpp
+++ b/Common/Data/Text/I18n.cpp
@@ -1,6 +1,6 @@
#include "Common/Data/Text/I18n.h"
-#include "file/ini_file.h"
-#include "file/vfs.h"
+#include "Common/Data/Format/IniFile.h"
+#include "Common/File/VFS/VFS.h"
#include "Common/StringUtils.h"
diff --git a/ext/native/file/free.cpp b/Common/File/DiskFree.cpp
similarity index 100%
rename from ext/native/file/free.cpp
rename to Common/File/DiskFree.cpp
diff --git a/ext/native/file/free.h b/Common/File/DiskFree.h
similarity index 100%
rename from ext/native/file/free.h
rename to Common/File/DiskFree.h
diff --git a/ext/native/file/path.cpp b/Common/File/PathBrowser.cpp
similarity index 99%
rename from ext/native/file/path.cpp
rename to Common/File/PathBrowser.cpp
index e7be80c609..0e02907b46 100644
--- a/ext/native/file/path.cpp
+++ b/Common/File/PathBrowser.cpp
@@ -2,12 +2,12 @@
#include
#include
-#include "Common/StringUtils.h"
-#include "Common/TimeUtil.h"
-
-#include "file/path.h"
#include "net/http_client.h"
#include "net/url.h"
+
+#include "Common/File/PathBrowser.h"
+#include "Common/StringUtils.h"
+#include "Common/TimeUtil.h"
#include "Common/Thread/ThreadUtil.h"
bool LoadRemoteFileList(const std::string &url, bool *cancel, std::vector &files) {
diff --git a/ext/native/file/path.h b/Common/File/PathBrowser.h
similarity index 93%
rename from ext/native/file/path.h
rename to Common/File/PathBrowser.h
index ed14962156..bdbce21250 100644
--- a/ext/native/file/path.h
+++ b/Common/File/PathBrowser.h
@@ -3,7 +3,7 @@
#include
#include
#include
-#include
+#include
#include
#include
#include
@@ -36,7 +36,7 @@ public:
// Do nothing
#elif defined(__linux)
char *home = getenv("HOME");
- if (home != NULL && !strncmp(str.c_str(), home, strlen(home))) {
+ if (home != nullptr && !strncmp(str.c_str(), home, strlen(home))) {
str = str.substr(strlen(home));
str.insert(0, 1, '~');
}
diff --git a/ext/native/file/zip_read.cpp b/Common/File/VFS/AssetReader.cpp
similarity index 60%
rename from ext/native/file/zip_read.cpp
rename to Common/File/VFS/AssetReader.cpp
index 45acc56f9b..1fec28922b 100644
--- a/ext/native/file/zip_read.cpp
+++ b/Common/File/VFS/AssetReader.cpp
@@ -7,10 +7,9 @@
#include
#endif
-#include "file/zip_read.h"
-
#include "Common/Common.h"
#include "Common/Log.h"
+#include "Common/File/VFS/AssetReader.h"
#ifdef __ANDROID__
uint8_t *ReadFromZip(zip *archive, const char* filename, size_t *size) {
@@ -34,34 +33,6 @@ uint8_t *ReadFromZip(zip *archive, const char* filename, size_t *size) {
#endif
-// The return is non-const because - why not?
-uint8_t *ReadLocalFile(const char *filename, size_t *size) {
- FILE *file = openCFile(filename, "rb");
- if (!file) {
- *size = 0;
- return nullptr;
- }
- fseek(file, 0, SEEK_END);
- size_t f_size = ftell(file);
- if ((long)f_size < 0) {
- *size = 0;
- fclose(file);
- return nullptr;
- }
- fseek(file, 0, SEEK_SET);
- uint8_t *contents = new uint8_t[f_size+1];
- if (fread(contents, 1, f_size, file) != f_size) {
- delete [] contents;
- contents = nullptr;
- *size = 0;
- } else {
- contents[f_size] = 0;
- *size = f_size;
- }
- fclose(file);
- return contents;
-}
-
#ifdef __ANDROID__
ZipAssetReader::ZipAssetReader(const char *zip_file, const char *in_zip_path) {
@@ -258,118 +229,3 @@ bool DirectoryAssetReader::GetFileInfo(const char *path, FileInfo *info)
strcat(new_path, path);
return getFileInfo(new_path, info);
}
-
-struct VFSEntry {
- const char *prefix;
- AssetReader *reader;
-};
-
-static VFSEntry entries[16];
-static int num_entries = 0;
-
-void VFSRegister(const char *prefix, AssetReader *reader) {
- entries[num_entries].prefix = prefix;
- entries[num_entries].reader = reader;
- DEBUG_LOG(IO, "Registered VFS for prefix %s: %s", prefix, reader->toString().c_str());
- num_entries++;
-}
-
-void VFSShutdown() {
- for (int i = 0; i < num_entries; i++) {
- delete entries[i].reader;
- }
- num_entries = 0;
-}
-
-static bool IsLocalPath(const char *path) {
- bool isUnixLocal = path[0] == '/';
-#ifdef _WIN32
- bool isWindowsLocal = isalpha(path[0]) && path[1] == ':';
-#else
- bool isWindowsLocal = false;
-#endif
- return isUnixLocal || isWindowsLocal;
-}
-
-// The returned data should be free'd with delete[].
-uint8_t *VFSReadFile(const char *filename, size_t *size) {
- if (IsLocalPath(filename)) {
- // Local path, not VFS.
- // INFO_LOG(IO, "Not a VFS path: %s . Reading local file.", filename);
- return ReadLocalFile(filename, size);
- }
-
- int fn_len = (int)strlen(filename);
- bool fileSystemFound = false;
- for (int i = 0; i < num_entries; i++) {
- int prefix_len = (int)strlen(entries[i].prefix);
- if (prefix_len >= fn_len) continue;
- if (0 == memcmp(filename, entries[i].prefix, prefix_len)) {
- fileSystemFound = true;
- // INFO_LOG(IO, "Prefix match: %s (%s) -> %s", entries[i].prefix, filename, filename + prefix_len);
- uint8_t *data = entries[i].reader->ReadAsset(filename + prefix_len, size);
- if (data)
- return data;
- else
- continue;
- // Else try the other registered file systems.
- }
- }
- if (!fileSystemFound) {
- ERROR_LOG(IO, "Missing filesystem for '%s'", filename);
- } // Otherwise, the file was just missing. No need to log.
- return 0;
-}
-
-bool VFSGetFileListing(const char *path, std::vector *listing, const char *filter) {
- if (IsLocalPath(path)) {
- // Local path, not VFS.
- // INFO_LOG(IO, "Not a VFS path: %s . Reading local directory.", path);
- getFilesInDir(path, listing, filter);
- return true;
- }
-
- int fn_len = (int)strlen(path);
- bool fileSystemFound = false;
- for (int i = 0; i < num_entries; i++) {
- int prefix_len = (int)strlen(entries[i].prefix);
- if (prefix_len >= fn_len) continue;
- if (0 == memcmp(path, entries[i].prefix, prefix_len)) {
- fileSystemFound = true;
- if (entries[i].reader->GetFileListing(path + prefix_len, listing, filter)) {
- return true;
- }
- }
- }
-
- if (!fileSystemFound) {
- ERROR_LOG(IO, "Missing filesystem for %s", path);
- } // Otherwise, the file was just missing. No need to log.
- return false;
-}
-
-bool VFSGetFileInfo(const char *path, FileInfo *info) {
- if (IsLocalPath(path)) {
- // Local path, not VFS.
- // INFO_LOG(IO, "Not a VFS path: %s . Getting local file info.", path);
- return getFileInfo(path, info);
- }
-
- bool fileSystemFound = false;
- int fn_len = (int)strlen(path);
- for (int i = 0; i < num_entries; i++) {
- int prefix_len = (int)strlen(entries[i].prefix);
- if (prefix_len >= fn_len) continue;
- if (0 == memcmp(path, entries[i].prefix, prefix_len)) {
- fileSystemFound = true;
- if (entries[i].reader->GetFileInfo(path + prefix_len, info))
- return true;
- else
- continue;
- }
- }
- if (!fileSystemFound) {
- ERROR_LOG(IO, "Missing filesystem for %s", path);
- } // Otherwise, the file was just missing. No need to log.
- return false;
-}
diff --git a/ext/native/file/zip_read.h b/Common/File/VFS/AssetReader.h
similarity index 98%
rename from ext/native/file/zip_read.h
rename to Common/File/VFS/AssetReader.h
index 086fc43775..76b5a31439 100644
--- a/ext/native/file/zip_read.h
+++ b/Common/File/VFS/AssetReader.h
@@ -8,7 +8,7 @@
#include
#include
-#include "file/vfs.h"
+#include "Common/File/VFS/VFS.h"
#include "file/file_util.h"
// Direct readers. deallocate using delete [].
diff --git a/Common/File/VFS/VFS.cpp b/Common/File/VFS/VFS.cpp
new file mode 100644
index 0000000000..0353169d79
--- /dev/null
+++ b/Common/File/VFS/VFS.cpp
@@ -0,0 +1,118 @@
+#include "Common/Log.h"
+#include "Common/File/VFS/VFS.h"
+#include "Common/File/VFS/AssetReader.h"
+
+struct VFSEntry {
+ const char *prefix;
+ AssetReader *reader;
+};
+
+static VFSEntry entries[16];
+static int num_entries = 0;
+
+void VFSRegister(const char *prefix, AssetReader *reader) {
+ entries[num_entries].prefix = prefix;
+ entries[num_entries].reader = reader;
+ DEBUG_LOG(IO, "Registered VFS for prefix %s: %s", prefix, reader->toString().c_str());
+ num_entries++;
+}
+
+void VFSShutdown() {
+ for (int i = 0; i < num_entries; i++) {
+ delete entries[i].reader;
+ }
+ num_entries = 0;
+}
+
+static bool IsLocalPath(const char *path) {
+ bool isUnixLocal = path[0] == '/';
+#ifdef _WIN32
+ bool isWindowsLocal = isalpha(path[0]) && path[1] == ':';
+#else
+ bool isWindowsLocal = false;
+#endif
+ return isUnixLocal || isWindowsLocal;
+}
+
+// The returned data should be free'd with delete[].
+uint8_t *VFSReadFile(const char *filename, size_t *size) {
+ if (IsLocalPath(filename)) {
+ // Local path, not VFS.
+ // INFO_LOG(IO, "Not a VFS path: %s . Reading local file.", filename);
+ return ReadLocalFile(filename, size);
+ }
+
+ int fn_len = (int)strlen(filename);
+ bool fileSystemFound = false;
+ for (int i = 0; i < num_entries; i++) {
+ int prefix_len = (int)strlen(entries[i].prefix);
+ if (prefix_len >= fn_len) continue;
+ if (0 == memcmp(filename, entries[i].prefix, prefix_len)) {
+ fileSystemFound = true;
+ // INFO_LOG(IO, "Prefix match: %s (%s) -> %s", entries[i].prefix, filename, filename + prefix_len);
+ uint8_t *data = entries[i].reader->ReadAsset(filename + prefix_len, size);
+ if (data)
+ return data;
+ else
+ continue;
+ // Else try the other registered file systems.
+ }
+ }
+ if (!fileSystemFound) {
+ ERROR_LOG(IO, "Missing filesystem for '%s'", filename);
+ } // Otherwise, the file was just missing. No need to log.
+ return 0;
+}
+
+bool VFSGetFileListing(const char *path, std::vector *listing, const char *filter) {
+ if (IsLocalPath(path)) {
+ // Local path, not VFS.
+ // INFO_LOG(IO, "Not a VFS path: %s . Reading local directory.", path);
+ getFilesInDir(path, listing, filter);
+ return true;
+ }
+
+ int fn_len = (int)strlen(path);
+ bool fileSystemFound = false;
+ for (int i = 0; i < num_entries; i++) {
+ int prefix_len = (int)strlen(entries[i].prefix);
+ if (prefix_len >= fn_len) continue;
+ if (0 == memcmp(path, entries[i].prefix, prefix_len)) {
+ fileSystemFound = true;
+ if (entries[i].reader->GetFileListing(path + prefix_len, listing, filter)) {
+ return true;
+ }
+ }
+ }
+
+ if (!fileSystemFound) {
+ ERROR_LOG(IO, "Missing filesystem for %s", path);
+ } // Otherwise, the file was just missing. No need to log.
+ return false;
+}
+
+bool VFSGetFileInfo(const char *path, FileInfo *info) {
+ if (IsLocalPath(path)) {
+ // Local path, not VFS.
+ // INFO_LOG(IO, "Not a VFS path: %s . Getting local file info.", path);
+ return getFileInfo(path, info);
+ }
+
+ bool fileSystemFound = false;
+ int fn_len = (int)strlen(path);
+ for (int i = 0; i < num_entries; i++) {
+ int prefix_len = (int)strlen(entries[i].prefix);
+ if (prefix_len >= fn_len) continue;
+ if (0 == memcmp(path, entries[i].prefix, prefix_len)) {
+ fileSystemFound = true;
+ if (entries[i].reader->GetFileInfo(path + prefix_len, info))
+ return true;
+ else
+ continue;
+ }
+ }
+ if (!fileSystemFound) {
+ ERROR_LOG(IO, "Missing filesystem for %s", path);
+ } // Otherwise, the file was just missing. No need to log.
+ return false;
+}
diff --git a/ext/native/file/vfs.h b/Common/File/VFS/VFS.h
similarity index 100%
rename from ext/native/file/vfs.h
rename to Common/File/VFS/VFS.h
diff --git a/Common/FileUtil.h b/Common/FileUtil.h
index f9f86433a7..59552d56a5 100644
--- a/Common/FileUtil.h
+++ b/Common/FileUtil.h
@@ -114,6 +114,7 @@ bool SetCurrentDir(const std::string &directory);
const std::string &GetExeDirectory();
+
// simple wrapper for cstdlib file functions to
// hopefully will make error checking easier
// and make forgetting an fclose() harder
diff --git a/Common/Input/GestureDetector.h b/Common/Input/GestureDetector.h
index 908f960769..5d4e54f36e 100644
--- a/Common/Input/GestureDetector.h
+++ b/Common/Input/GestureDetector.h
@@ -1,5 +1,5 @@
#include "Common/Input/InputState.h"
-#include "math/geom2d.h"
+#include "Common/Math/geom2d.h"
// Mainly for detecting (multi-)touch gestures but also useable for left button mouse dragging etc.
// Currently only supports simple scroll-drags with inertia.
diff --git a/Common/Input/InputState.h b/Common/Input/InputState.h
index 175d6786df..59a0a6e057 100644
--- a/Common/Input/InputState.h
+++ b/Common/Input/InputState.h
@@ -7,7 +7,7 @@
#include
#include
-#include "math/lin/vec3.h"
+#include "Common/Math/lin/vec3.h"
#include "Common/Input/KeyCodes.h"
// Default device IDs
diff --git a/Common/LogManager.h b/Common/LogManager.h
index 346561430f..9fcff28d80 100644
--- a/Common/LogManager.h
+++ b/Common/LogManager.h
@@ -23,7 +23,7 @@
#include
#include
-#include "file/ini_file.h"
+#include "Common/Data/Format/IniFile.h"
#include "Common/CommonFuncs.h"
#include "Common/Log.h"
diff --git a/ext/native/math/curves.cpp b/Common/Math/curves.cpp
similarity index 98%
rename from ext/native/math/curves.cpp
rename to Common/Math/curves.cpp
index 65dae53f5e..2488ba5c30 100644
--- a/ext/native/math/curves.cpp
+++ b/Common/Math/curves.cpp
@@ -1,7 +1,7 @@
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "curves.h"
#include "Common/Common.h"
diff --git a/ext/native/math/curves.h b/Common/Math/curves.h
similarity index 100%
rename from ext/native/math/curves.h
rename to Common/Math/curves.h
diff --git a/ext/native/math/expression_parser.cpp b/Common/Math/expression_parser.cpp
similarity index 92%
rename from ext/native/math/expression_parser.cpp
rename to Common/Math/expression_parser.cpp
index 2c277c000a..9499cce7e0 100644
--- a/ext/native/math/expression_parser.cpp
+++ b/Common/Math/expression_parser.cpp
@@ -244,7 +244,7 @@ bool initPostfixExpression(const char* infix, IExpressionFunctions* funcs, Postf
isFloat = true;
else if (parseNumber(subStr,16,subPos,value) == false)
{
- sprintf(expressionError,"Invalid number \"%s\"",subStr);
+ snprintf(expressionError, sizeof(expressionError), "Invalid number \"%s\"",subStr);
return false;
}
@@ -273,14 +273,14 @@ bool initPostfixExpression(const char* infix, IExpressionFunctions* funcs, Postf
continue;
}
- sprintf(expressionError,"Invalid symbol \"%s\"",subStr);
+ snprintf(expressionError, sizeof(expressionError), "Invalid symbol \"%s\"",subStr);
return false;
} else {
int len;
ExpressionOpcodeType type = getExpressionOpcode(&infix[infixPos],len,lastOpcode);
if (type == EXOP_NONE)
{
- sprintf(expressionError,"Invalid operator at \"%s\"",&infix[infixPos]);
+ snprintf(expressionError, sizeof(expressionError), "Invalid operator at \"%s\"",&infix[infixPos]);
return false;
}
@@ -295,7 +295,7 @@ bool initPostfixExpression(const char* infix, IExpressionFunctions* funcs, Postf
{
if (opcodeStack.empty())
{
- sprintf(expressionError,"Closing parenthesis without opening one");
+ snprintf(expressionError, sizeof(expressionError), "Closing parenthesis without opening one");
return false;
}
ExpressionOpcodeType t = opcodeStack[opcodeStack.size()-1];
@@ -309,7 +309,7 @@ bool initPostfixExpression(const char* infix, IExpressionFunctions* funcs, Postf
{
if (opcodeStack.empty())
{
- sprintf(expressionError,"Closing bracket without opening one");
+ snprintf(expressionError, sizeof(expressionError), "Closing bracket without opening one");
return false;
}
ExpressionOpcodeType t = opcodeStack[opcodeStack.size()-1];
@@ -362,7 +362,7 @@ bool initPostfixExpression(const char* infix, IExpressionFunctions* funcs, Postf
if (t == EXOP_BRACKETL) // opening bracket without closing one
{
- sprintf(expressionError,"Parenthesis not closed");
+ snprintf(expressionError, sizeof(expressionError), "Parenthesis not closed");
return false;
}
dest.push_back(ExpressionPair(EXCOMM_OP,t));
@@ -421,7 +421,7 @@ bool parsePostfixExpression(PostfixExpression& exp, IExpressionFunctions* funcs,
opcode = exp[num++].second;
if (valueStack.size() < ExpressionOpcodes[opcode].args)
{
- sprintf(expressionError,"Not enough arguments");
+ snprintf(expressionError, sizeof(expressionError), "Not enough arguments");
return false;
}
for (int l = 0; l < ExpressionOpcodes[opcode].args; l++)
@@ -437,7 +437,7 @@ bool parsePostfixExpression(PostfixExpression& exp, IExpressionFunctions* funcs,
case EXOP_MEMSIZE: // must be followed by EXOP_MEM
if (exp[num++].second != EXOP_MEM)
{
- sprintf(expressionError,"Invalid memsize operator");
+ snprintf(expressionError, sizeof(expressionError), "Invalid memsize operator");
return false;
}
@@ -481,7 +481,7 @@ bool parsePostfixExpression(PostfixExpression& exp, IExpressionFunctions* funcs,
case EXOP_DIV: // a/b
if (arg[0] == 0)
{
- sprintf(expressionError,"Division by zero");
+ snprintf(expressionError, sizeof(expressionError), "Division by zero");
return false;
}
if (useFloat)
@@ -492,7 +492,7 @@ bool parsePostfixExpression(PostfixExpression& exp, IExpressionFunctions* funcs,
case EXOP_MOD: // a%b
if (arg[0] == 0)
{
- sprintf(expressionError,"Modulo by zero");
+ snprintf(expressionError, sizeof(expressionError), "Modulo by zero");
return false;
}
valueStack.push_back(arg[1]%arg[0]);
@@ -565,7 +565,7 @@ bool parsePostfixExpression(PostfixExpression& exp, IExpressionFunctions* funcs,
case EXOP_TERTELSE: // exp ? exp : exp, else muss zuerst kommen!
if (exp[num++].second != EXOP_TERTIF)
{
- sprintf(expressionError,"Invalid tertiary operator");
+ snprintf(expressionError, sizeof(expressionError), "Invalid tertiary operator");
return false;
}
valueStack.push_back(arg[2]?arg[1]:arg[0]);
@@ -589,6 +589,6 @@ bool parseExpression(char* exp, IExpressionFunctions* funcs, uint32_t& dest)
const char* getExpressionError()
{
- if (expressionError[0] == 0) strcpy(expressionError,"Invalid expression");
+ if (expressionError[0] == 0) snprintf(expressionError, sizeof(expressionError), "Invalid expression");
return expressionError;
}
diff --git a/ext/native/math/expression_parser.h b/Common/Math/expression_parser.h
similarity index 100%
rename from ext/native/math/expression_parser.h
rename to Common/Math/expression_parser.h
diff --git a/ext/native/math/fast/fast_math.c b/Common/Math/fast/fast_math.c
similarity index 100%
rename from ext/native/math/fast/fast_math.c
rename to Common/Math/fast/fast_math.c
diff --git a/ext/native/math/fast/fast_math.h b/Common/Math/fast/fast_math.h
similarity index 100%
rename from ext/native/math/fast/fast_math.h
rename to Common/Math/fast/fast_math.h
diff --git a/ext/native/math/fast/fast_matrix.c b/Common/Math/fast/fast_matrix.c
similarity index 100%
rename from ext/native/math/fast/fast_matrix.c
rename to Common/Math/fast/fast_matrix.c
diff --git a/ext/native/math/fast/fast_matrix.h b/Common/Math/fast/fast_matrix.h
similarity index 100%
rename from ext/native/math/fast/fast_matrix.h
rename to Common/Math/fast/fast_matrix.h
diff --git a/ext/native/math/fast/fast_matrix_neon.S b/Common/Math/fast/fast_matrix_neon.S
similarity index 100%
rename from ext/native/math/fast/fast_matrix_neon.S
rename to Common/Math/fast/fast_matrix_neon.S
diff --git a/ext/native/math/fast/fast_matrix_sse.c b/Common/Math/fast/fast_matrix_sse.c
similarity index 100%
rename from ext/native/math/fast/fast_matrix_sse.c
rename to Common/Math/fast/fast_matrix_sse.c
diff --git a/ext/native/math/geom2d.h b/Common/Math/geom2d.h
similarity index 100%
rename from ext/native/math/geom2d.h
rename to Common/Math/geom2d.h
diff --git a/ext/native/math/lin/matrix4x4.cpp b/Common/Math/lin/matrix4x4.cpp
similarity index 95%
rename from ext/native/math/lin/matrix4x4.cpp
rename to Common/Math/lin/matrix4x4.cpp
index b514714573..e341210cee 100644
--- a/ext/native/math/lin/matrix4x4.cpp
+++ b/Common/Math/lin/matrix4x4.cpp
@@ -1,9 +1,9 @@
-#include "math/lin/matrix4x4.h"
+#include "Common/Math/lin/matrix4x4.h"
#include
-#include "math/lin/vec3.h"
-#include "math/fast/fast_matrix.h"
+#include "Common/Math/lin/vec3.h"
+#include "Common/Math/fast/fast_matrix.h"
#ifdef _WIN32
#undef far
diff --git a/ext/native/math/lin/matrix4x4.h b/Common/Math/lin/matrix4x4.h
similarity index 98%
rename from ext/native/math/lin/matrix4x4.h
rename to Common/Math/lin/matrix4x4.h
index 70644a80f6..575b6a61d4 100644
--- a/ext/native/math/lin/matrix4x4.h
+++ b/Common/Math/lin/matrix4x4.h
@@ -1,7 +1,7 @@
#ifndef _MATH_LIN_MATRIX4X4_H
#define _MATH_LIN_MATRIX4X4_H
-#include "math/lin/vec3.h"
+#include "Common/Math/lin/vec3.h"
namespace Lin {
diff --git a/ext/native/math/lin/matrix_neon.s b/Common/Math/lin/matrix_neon.s
similarity index 100%
rename from ext/native/math/lin/matrix_neon.s
rename to Common/Math/lin/matrix_neon.s
diff --git a/ext/native/math/lin/vec3.cpp b/Common/Math/lin/vec3.cpp
similarity index 83%
rename from ext/native/math/lin/vec3.cpp
rename to Common/Math/lin/vec3.cpp
index 7c66339cda..8329e2191e 100644
--- a/ext/native/math/lin/vec3.cpp
+++ b/Common/Math/lin/vec3.cpp
@@ -1,7 +1,7 @@
#include
-#include "math/lin/vec3.h"
-#include "math/lin/matrix4x4.h"
+#include "Common/Math/lin/vec3.h"
+#include "Common/Math/lin/matrix4x4.h"
namespace Lin {
diff --git a/ext/native/math/lin/vec3.h b/Common/Math/lin/vec3.h
similarity index 100%
rename from ext/native/math/lin/vec3.h
rename to Common/Math/lin/vec3.h
diff --git a/ext/native/math/math_util.cpp b/Common/Math/math_util.cpp
similarity index 96%
rename from ext/native/math/math_util.cpp
rename to Common/Math/math_util.cpp
index 11eb15b215..9b1a59a755 100644
--- a/ext/native/math/math_util.cpp
+++ b/Common/Math/math_util.cpp
@@ -1,4 +1,4 @@
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include
// QNX can only use RunFast mode and it is already the default.
diff --git a/ext/native/math/math_util.h b/Common/Math/math_util.h
similarity index 100%
rename from ext/native/math/math_util.h
rename to Common/Math/math_util.h
diff --git a/Common/Vulkan/VulkanMemory.cpp b/Common/Vulkan/VulkanMemory.cpp
index 74cd1cb660..9674fb702a 100644
--- a/Common/Vulkan/VulkanMemory.cpp
+++ b/Common/Vulkan/VulkanMemory.cpp
@@ -18,7 +18,7 @@
// Additionally, Common/Vulkan/* , including this file, are also licensed
// under the public domain.
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/Log.h"
#include "Common/TimeUtil.h"
diff --git a/Core/Compatibility.cpp b/Core/Compatibility.cpp
index 547ebb5925..bd7c044c8b 100644
--- a/Core/Compatibility.cpp
+++ b/Core/Compatibility.cpp
@@ -16,7 +16,8 @@
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
#include
-#include "file/ini_file.h"
+
+#include "Common/Data/Format/IniFile.h"
#include "Core/Compatibility.h"
#include "Core/System.h"
diff --git a/Core/Config.cpp b/Core/Config.cpp
index 8f56969908..98a70cfab6 100644
--- a/Core/Config.cpp
+++ b/Core/Config.cpp
@@ -25,7 +25,7 @@
#include "ppsspp_config.h"
#include "base/display.h"
#include "base/NativeApp.h"
-#include "file/ini_file.h"
+#include "Common/Data/Format/IniFile.h"
#include "Common/Data/Text/I18n.h"
#include "json/json_reader.h"
#include "gfx_es2/gpu_features.h"
@@ -35,7 +35,6 @@
#include "Common/CPUDetect.h"
#include "Common/FileUtil.h"
-#include "Common/KeyMap.h"
#include "Common/LogManager.h"
#include "Common/OSVersion.h"
#include "Common/StringUtils.h"
@@ -43,6 +42,7 @@
#include "Core/Config.h"
#include "Core/ConfigValues.h"
#include "Core/Loaders.h"
+#include "Core/KeyMap.h"
#include "Core/HLE/sceUtility.h"
#include "Core/Instance.h"
#include "GPU/Common/FramebufferManagerCommon.h"
diff --git a/Core/Core.vcxproj b/Core/Core.vcxproj
index d1cb94b914..2fc9e33ae1 100644
--- a/Core/Core.vcxproj
+++ b/Core/Core.vcxproj
@@ -453,6 +453,7 @@
+
@@ -996,6 +997,7 @@
+
diff --git a/Core/Core.vcxproj.filters b/Core/Core.vcxproj.filters
index 611c164009..f59875b48c 100644
--- a/Core/Core.vcxproj.filters
+++ b/Core/Core.vcxproj.filters
@@ -959,6 +959,9 @@
Ext\libzip
+
+ Core
+
@@ -1637,6 +1640,9 @@
Ext\libzip
+
+ Core
+
diff --git a/Core/Debugger/DebugInterface.h b/Core/Debugger/DebugInterface.h
index 0b98e1d512..6f48c7db0f 100644
--- a/Core/Debugger/DebugInterface.h
+++ b/Core/Debugger/DebugInterface.h
@@ -19,7 +19,7 @@
#include
#include
#include "Common/CommonTypes.h"
-#include "math/expression_parser.h"
+#include "Common/Math/expression_parser.h"
struct MemMap;
diff --git a/Core/Dialog/PSPOskDialog.cpp b/Core/Dialog/PSPOskDialog.cpp
index cf52cd9fe0..add21d1cdd 100755
--- a/Core/Dialog/PSPOskDialog.cpp
+++ b/Core/Dialog/PSPOskDialog.cpp
@@ -18,7 +18,7 @@
#include
#include "base/NativeApp.h"
#include "Common/Data/Text/I18n.h"
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/Data/Encoding/Utf8.h"
#include "Common/Serialize/SerializeFuncs.h"
diff --git a/Core/FileLoaders/DiskCachingFileLoader.cpp b/Core/FileLoaders/DiskCachingFileLoader.cpp
index fc2991b399..ee028f662d 100644
--- a/Core/FileLoaders/DiskCachingFileLoader.cpp
+++ b/Core/FileLoaders/DiskCachingFileLoader.cpp
@@ -23,8 +23,8 @@
#include "ppsspp_config.h"
#include "file/file_util.h"
-#include "file/free.h"
#include "Common/Data/Encoding/Utf8.h"
+#include "Common/File/DiskFree.h"
#include "Common/FileUtil.h"
#include "Common/CommonWindows.h"
#include "Core/FileLoaders/DiskCachingFileLoader.h"
diff --git a/Core/FileSystems/DirectoryFileSystem.cpp b/Core/FileSystems/DirectoryFileSystem.cpp
index b4c3ca2260..0389244e0f 100644
--- a/Core/FileSystems/DirectoryFileSystem.cpp
+++ b/Core/FileSystems/DirectoryFileSystem.cpp
@@ -20,14 +20,14 @@
#include
#include
-#include "file/free.h"
-#include "file/zip_read.h"
#include "Common/Data/Text/I18n.h"
#include "Common/Data/Encoding/Utf8.h"
#include "Common/Serialize/Serializer.h"
#include "Common/Serialize/SerializeFuncs.h"
#include "Common/StringUtils.h"
#include "Common/FileUtil.h"
+#include "Common/File/DiskFree.h"
+#include "Common/File/VFS/VFS.h"
#include "Core/FileSystems/DirectoryFileSystem.h"
#include "Core/FileSystems/ISOFileSystem.h"
#include "Core/HLE/sceKernel.h"
diff --git a/Core/FileSystems/VirtualDiscFileSystem.cpp b/Core/FileSystems/VirtualDiscFileSystem.cpp
index c713d9965c..7aaef4327c 100644
--- a/Core/FileSystems/VirtualDiscFileSystem.cpp
+++ b/Core/FileSystems/VirtualDiscFileSystem.cpp
@@ -25,7 +25,6 @@
#include "Core/FileSystems/ISOFileSystem.h"
#include "Core/HLE/sceKernel.h"
#include "Core/Reporting.h"
-#include "file/zip_read.h"
#include "Common/Data/Encoding/Utf8.h"
#ifdef _WIN32
diff --git a/Core/HLE/Plugins.cpp b/Core/HLE/Plugins.cpp
index 5f22e9fc37..9572d6e5ea 100644
--- a/Core/HLE/Plugins.cpp
+++ b/Core/HLE/Plugins.cpp
@@ -17,7 +17,7 @@
#include
#include "file/file_util.h"
-#include "file/ini_file.h"
+#include "Common/Data/Format/IniFile.h"
#include "Common/FileUtil.h"
#include "Common/Serialize/SerializeFuncs.h"
#include "Core/Config.h"
diff --git a/Core/HLE/sceJpeg.cpp b/Core/HLE/sceJpeg.cpp
index aa6d554ded..4230675599 100644
--- a/Core/HLE/sceJpeg.cpp
+++ b/Core/HLE/sceJpeg.cpp
@@ -29,12 +29,20 @@
#include "Core/MemMap.h"
#include "Core/Reporting.h"
-//Uncomment if you want to dump JPEGs loaded through sceJpeg to a file
-//#define JPEG_DEBUG
+// Uncomment if you want to dump JPEGs loaded through sceJpeg to a file
+// #define JPEG_DEBUG
#ifdef JPEG_DEBUG
#include "ext/xxhash.h"
#endif
+struct u24_be {
+ unsigned char value[3];
+
+ operator unsigned int() {
+ return 0x00000000 | (value[0] << 16) | (value[1] << 8) | (value[2] << 0);
+ }
+};
+
static int mjpegWidth, mjpegHeight;
void __JpegInit() {
diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp
index bc738beebb..966ed2d6c1 100644
--- a/Core/HLE/sceUtility.cpp
+++ b/Core/HLE/sceUtility.cpp
@@ -18,7 +18,7 @@
#include
#include
-#include "file/ini_file.h"
+#include "Common/Data/Format/IniFile.h"
#include "Common/Serialize/Serializer.h"
#include "Common/Serialize/SerializeFuncs.h"
diff --git a/Common/KeyMap.cpp b/Core/KeyMap.cpp
similarity index 99%
rename from Common/KeyMap.cpp
rename to Core/KeyMap.cpp
index 408e8a3124..20d04b9599 100644
--- a/Common/KeyMap.cpp
+++ b/Core/KeyMap.cpp
@@ -27,13 +27,13 @@
#include "ppsspp_config.h"
#include "base/NativeApp.h"
-#include "file/ini_file.h"
+#include "Common/Data/Format/IniFile.h"
#include "Common/Input/InputState.h"
#include "Common/Log.h"
-#include "Common/KeyMap.h"
#include "Common/StringUtils.h"
#include "Core/HLE/sceUtility.h"
#include "Core/Config.h"
+#include "Core/KeyMap.h"
namespace KeyMap {
diff --git a/Common/KeyMap.h b/Core/KeyMap.h
similarity index 100%
rename from Common/KeyMap.h
rename to Core/KeyMap.h
diff --git a/Core/MIPS/ARM/ArmCompVFPU.cpp b/Core/MIPS/ARM/ArmCompVFPU.cpp
index 979baedfaa..4291f694f2 100644
--- a/Core/MIPS/ARM/ArmCompVFPU.cpp
+++ b/Core/MIPS/ARM/ArmCompVFPU.cpp
@@ -19,7 +19,7 @@
#if PPSSPP_ARCH(ARM)
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Core/Compatibility.h"
#include "Core/Config.h"
diff --git a/Core/MIPS/ARM/ArmCompVFPUNEON.cpp b/Core/MIPS/ARM/ArmCompVFPUNEON.cpp
index 990e36e293..34bd76f055 100644
--- a/Core/MIPS/ARM/ArmCompVFPUNEON.cpp
+++ b/Core/MIPS/ARM/ArmCompVFPUNEON.cpp
@@ -30,7 +30,7 @@
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/CPUDetect.h"
#include "Core/MemMap.h"
diff --git a/Core/MIPS/ARM/ArmCompVFPUNEONUtil.cpp b/Core/MIPS/ARM/ArmCompVFPUNEONUtil.cpp
index 7fada69a92..5a6f727456 100644
--- a/Core/MIPS/ARM/ArmCompVFPUNEONUtil.cpp
+++ b/Core/MIPS/ARM/ArmCompVFPUNEONUtil.cpp
@@ -30,7 +30,7 @@
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/CPUDetect.h"
#include "Core/MemMap.h"
diff --git a/Core/MIPS/ARM64/Arm64CompVFPU.cpp b/Core/MIPS/ARM64/Arm64CompVFPU.cpp
index b297f139e4..6b6e26eca7 100644
--- a/Core/MIPS/ARM64/Arm64CompVFPU.cpp
+++ b/Core/MIPS/ARM64/Arm64CompVFPU.cpp
@@ -19,7 +19,7 @@
#if PPSSPP_ARCH(ARM64)
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Core/Compatibility.h"
#include "Core/Config.h"
diff --git a/Core/MIPS/IR/IRCompVFPU.cpp b/Core/MIPS/IR/IRCompVFPU.cpp
index 13fa39b2c2..054594f4c5 100644
--- a/Core/MIPS/IR/IRCompVFPU.cpp
+++ b/Core/MIPS/IR/IRCompVFPU.cpp
@@ -17,7 +17,7 @@
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/CPUDetect.h"
#include "Core/Compatibility.h"
diff --git a/Core/MIPS/IR/IRInterpreter.cpp b/Core/MIPS/IR/IRInterpreter.cpp
index 63a1d57189..aa962dbb5e 100644
--- a/Core/MIPS/IR/IRInterpreter.cpp
+++ b/Core/MIPS/IR/IRInterpreter.cpp
@@ -2,7 +2,7 @@
#include
#include "ppsspp_config.h"
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/Common.h"
#include "Common/BitScan.h"
diff --git a/Core/MIPS/MIPS.cpp b/Core/MIPS/MIPS.cpp
index a85e5a9999..37210c8c5d 100644
--- a/Core/MIPS/MIPS.cpp
+++ b/Core/MIPS/MIPS.cpp
@@ -18,7 +18,7 @@
#include
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common.h"
#include "Common/Serialize/Serializer.h"
diff --git a/Core/MIPS/MIPSInt.cpp b/Core/MIPS/MIPSInt.cpp
index 49847dc4a5..b49dab057f 100644
--- a/Core/MIPS/MIPSInt.cpp
+++ b/Core/MIPS/MIPSInt.cpp
@@ -17,7 +17,7 @@
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/BitSet.h"
#include "Common/BitScan.h"
diff --git a/Core/MIPS/MIPSIntVFPU.cpp b/Core/MIPS/MIPSIntVFPU.cpp
index bc8d698c59..a9c3b66832 100644
--- a/Core/MIPS/MIPSIntVFPU.cpp
+++ b/Core/MIPS/MIPSIntVFPU.cpp
@@ -21,7 +21,7 @@
#include
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Core/Compatibility.h"
#include "Core/Core.h"
diff --git a/Core/MIPS/x86/Asm.cpp b/Core/MIPS/x86/Asm.cpp
index a70a414049..a099e1044b 100644
--- a/Core/MIPS/x86/Asm.cpp
+++ b/Core/MIPS/x86/Asm.cpp
@@ -18,7 +18,7 @@
#include "ppsspp_config.h"
#if PPSSPP_ARCH(X86) || PPSSPP_ARCH(AMD64)
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "ABI.h"
#include "x64Emitter.h"
diff --git a/Core/MIPS/x86/CompVFPU.cpp b/Core/MIPS/x86/CompVFPU.cpp
index de23b3b2d2..f2cd64fd45 100644
--- a/Core/MIPS/x86/CompVFPU.cpp
+++ b/Core/MIPS/x86/CompVFPU.cpp
@@ -25,7 +25,7 @@
#include
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/CPUDetect.h"
#include "Common/Log.h"
diff --git a/Core/MIPS/x86/Jit.cpp b/Core/MIPS/x86/Jit.cpp
index fb4ec02292..21e57bf525 100644
--- a/Core/MIPS/x86/Jit.cpp
+++ b/Core/MIPS/x86/Jit.cpp
@@ -21,7 +21,7 @@
#include
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "profiler/profiler.h"
#include "Common/Serialize/Serializer.h"
diff --git a/Core/Reporting.cpp b/Core/Reporting.cpp
index 86d73612ed..449070cf6a 100644
--- a/Core/Reporting.cpp
+++ b/Core/Reporting.cpp
@@ -24,7 +24,7 @@
#include
#include "Core/Reporting.h"
-
+#include "Common/File/VFS/VFS.h"
#include "Common/CPUDetect.h"
#include "Common/FileUtil.h"
#include "Common/Serialize/SerializeFuncs.h"
@@ -47,9 +47,8 @@
#include "net/http_client.h"
#include "net/resolve.h"
#include "net/url.h"
-
+#include "file/file_util.h"
#include "Common/Thread/ThreadUtil.h"
-#include "file/zip_read.h"
namespace Reporting
{
diff --git a/Core/System.cpp b/Core/System.cpp
index e812043278..a9f68c324b 100644
--- a/Core/System.cpp
+++ b/Core/System.cpp
@@ -33,7 +33,7 @@
#include
#include "base/NativeApp.h"
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/Thread/ThreadUtil.h"
#include "Common/Data/Encoding/Utf8.h"
diff --git a/Core/TextureReplacer.cpp b/Core/TextureReplacer.cpp
index 56a3f743f9..c2f8a15533 100644
--- a/Core/TextureReplacer.cpp
+++ b/Core/TextureReplacer.cpp
@@ -25,7 +25,7 @@
#include "Common/Data/Text/I18n.h"
#include "ext/xxhash.h"
-#include "file/ini_file.h"
+#include "Common/Data/Format/IniFile.h"
#include "Common/Data/Text/Parsers.h"
#include "Common/ColorConv.h"
#include "Common/FileUtil.h"
diff --git a/Core/Util/GameManager.cpp b/Core/Util/GameManager.cpp
index 3c943bda9a..c0e6b5eb0e 100644
--- a/Core/Util/GameManager.cpp
+++ b/Core/Util/GameManager.cpp
@@ -30,7 +30,7 @@
#include "ext/libzip/zip.h"
#endif
#include "Common/Data/Encoding/Utf8.h"
-#include "file/ini_file.h"
+#include "Common/Data/Format/IniFile.h"
#include "Common/Log.h"
#include "Common/FileUtil.h"
diff --git a/Core/Util/PPGeDraw.cpp b/Core/Util/PPGeDraw.cpp
index 17881b5204..61507801cb 100644
--- a/Core/Util/PPGeDraw.cpp
+++ b/Core/Util/PPGeDraw.cpp
@@ -18,7 +18,7 @@
#include
#include "Common/Data/Color/RGBAUtil.h"
-#include "file/vfs.h"
+#include "Common/File/VFS/VFS.h"
#include "gfx/texture_atlas.h"
#include "gfx_es2/draw_text.h"
#include "image/zim_load.h"
diff --git a/GPU/Common/PostShader.cpp b/GPU/Common/PostShader.cpp
index 3a91e60695..1e650b9db1 100644
--- a/GPU/Common/PostShader.cpp
+++ b/GPU/Common/PostShader.cpp
@@ -22,9 +22,9 @@
#include
#include
-#include "file/ini_file.h"
+#include "Common/Data/Format/IniFile.h"
#include "file/file_util.h"
-#include "file/vfs.h"
+#include "Common/File/VFS/VFS.h"
#include "gfx_es2/gpu_features.h"
#include "Common/StringUtils.h"
diff --git a/GPU/Common/PostShader.h b/GPU/Common/PostShader.h
index 3ad0d50485..42aa30d4bc 100644
--- a/GPU/Common/PostShader.h
+++ b/GPU/Common/PostShader.h
@@ -22,7 +22,7 @@
#include
#include
-#include "file/ini_file.h"
+#include "Common/Data/Format/IniFile.h"
struct ShaderInfo {
std::string iniFile; // which ini file was this definition in? So we can write settings back later
diff --git a/GPU/Common/PresentationCommon.cpp b/GPU/Common/PresentationCommon.cpp
index 53c09b9d04..7c8266624b 100644
--- a/GPU/Common/PresentationCommon.cpp
+++ b/GPU/Common/PresentationCommon.cpp
@@ -21,9 +21,9 @@
#include "base/display.h"
#include "base/NativeApp.h"
-#include "file/vfs.h"
-#include "file/zip_read.h"
#include "thin3d/thin3d.h"
+
+#include "Common/File/VFS/VFS.h"
#include "Common/TimeUtil.h"
#include "Core/Config.h"
#include "Core/ConfigValues.h"
diff --git a/GPU/Common/ShaderUniforms.cpp b/GPU/Common/ShaderUniforms.cpp
index 352ae43ddc..f266721050 100644
--- a/GPU/Common/ShaderUniforms.cpp
+++ b/GPU/Common/ShaderUniforms.cpp
@@ -3,10 +3,10 @@
#include "ShaderUniforms.h"
#include "base/display.h"
-#include "math/dataconv.h"
-#include "math/lin/matrix4x4.h"
-#include "math/math_util.h"
-#include "math/lin/vec3.h"
+#include "Common/Data/Convert/SmallDataConvert.h"
+#include "Common/Math/lin/matrix4x4.h"
+#include "Common/Math/math_util.h"
+#include "Common/Math/lin/vec3.h"
#include "GPU/GPUState.h"
#include "GPU/Common/FramebufferManagerCommon.h"
#include "GPU/Common/GPUStateUtils.h"
diff --git a/GPU/Common/SoftwareTransformCommon.cpp b/GPU/Common/SoftwareTransformCommon.cpp
index 92d570019a..2f68d891e0 100644
--- a/GPU/Common/SoftwareTransformCommon.cpp
+++ b/GPU/Common/SoftwareTransformCommon.cpp
@@ -17,7 +17,7 @@
#include
#include
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "gfx_es2/gpu_features.h"
#include "Core/Config.h"
diff --git a/GPU/D3D11/FramebufferManagerD3D11.cpp b/GPU/D3D11/FramebufferManagerD3D11.cpp
index b48d67529b..83a2beab65 100644
--- a/GPU/D3D11/FramebufferManagerD3D11.cpp
+++ b/GPU/D3D11/FramebufferManagerD3D11.cpp
@@ -20,7 +20,7 @@
#include
#include "base/display.h"
-#include "math/lin/matrix4x4.h"
+#include "Common/Math/lin/matrix4x4.h"
#include "ext/native/thin3d/thin3d.h"
#include "Common/Common.h"
diff --git a/GPU/D3D11/ShaderManagerD3D11.cpp b/GPU/D3D11/ShaderManagerD3D11.cpp
index 81b093f11d..a6c23e1c9d 100644
--- a/GPU/D3D11/ShaderManagerD3D11.cpp
+++ b/GPU/D3D11/ShaderManagerD3D11.cpp
@@ -22,9 +22,9 @@
#include
@@ -50,7 +71,6 @@
-
@@ -169,6 +189,51 @@
Data\Text
+
+ Data\Convert
+
+
+ Math
+
+
+ Math
+
+
+ Math
+
+
+ Math\fast
+
+
+ Math\fast
+
+
+ Math\fast
+
+
+ Math\lin
+
+
+ Math\lin
+
+
+ File
+
+
+ File
+
+
+ Data\Format
+
+
+ File\VFS
+
+
+ File\VFS
+
+
+ Data\Format
+
@@ -193,7 +258,6 @@
-
@@ -307,10 +371,63 @@
Data\Text
+
+ Data\Convert
+
+
+ Math
+
+
+ Math
+
+
+ Math
+
+
+ Math
+
+
+ Math\fast
+
+
+ Math\fast
+
+
+ Math\lin
+
+
+ Math\lin
+
+
+ File
+
+
+ File
+
+
+ Data\Format
+
+
+ File\VFS
+
+
+ File\VFS
+
+
+ Data\Format
+
ext\libpng17
+
+
+ Math\fast
+
+
+ Math\lin
+
+
\ No newline at end of file
diff --git a/UWP/CoreUWP/CoreUWP.vcxproj b/UWP/CoreUWP/CoreUWP.vcxproj
index a860f0886c..1ee0d6c4b8 100644
--- a/UWP/CoreUWP/CoreUWP.vcxproj
+++ b/UWP/CoreUWP/CoreUWP.vcxproj
@@ -520,6 +520,7 @@
+
@@ -745,6 +746,7 @@
+
diff --git a/UWP/CoreUWP/CoreUWP.vcxproj.filters b/UWP/CoreUWP/CoreUWP.vcxproj.filters
index 8283fb162e..11ff8c7a08 100644
--- a/UWP/CoreUWP/CoreUWP.vcxproj.filters
+++ b/UWP/CoreUWP/CoreUWP.vcxproj.filters
@@ -910,6 +910,7 @@
Ext\libzip
+
@@ -1540,6 +1541,7 @@
Ext\libzip
+
diff --git a/UWP/NativeUWP/NativeUWP.vcxproj b/UWP/NativeUWP/NativeUWP.vcxproj
index 115cd1d8f1..cebd2c1d40 100644
--- a/UWP/NativeUWP/NativeUWP.vcxproj
+++ b/UWP/NativeUWP/NativeUWP.vcxproj
@@ -381,14 +381,8 @@
-
-
-
-
-
-
@@ -398,16 +392,6 @@
-
-
-
-
-
-
-
-
-
-
@@ -429,13 +413,8 @@
-
-
-
-
-
@@ -445,126 +424,6 @@
-
-
-
-
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
- NotUsing
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -605,4 +464,4 @@
-
+
\ No newline at end of file
diff --git a/UWP/NativeUWP/NativeUWP.vcxproj.filters b/UWP/NativeUWP/NativeUWP.vcxproj.filters
index 63749eb6bf..8a588b0d57 100644
--- a/UWP/NativeUWP/NativeUWP.vcxproj.filters
+++ b/UWP/NativeUWP/NativeUWP.vcxproj.filters
@@ -7,24 +7,15 @@
{98343696-3517-451a-9b47-94d462263e3e}
-
- {63177c91-8ebd-4e87-ad4e-e6b8b52879c8}
-
{8a254b8c-46f2-4ff1-bc53-deea7e614276}
{244992ec-8dcf-49f4-b63c-cae6ac437c58}
-
- {6f098c49-cf71-466b-9b1e-c4287681ab26}
-
{9d02a269-6cdd-4726-ab58-34c012e37d37}
-
- {8292cb5c-02c9-46a4-a8d5-ea5e8f362688}
-
{d8c0dd74-7ad2-440a-a3e0-5dbf3435a2fc}
@@ -49,27 +40,12 @@
gfx
-
- file
-
file
file
-
- file
-
-
- file
-
-
- file
-
-
- file
-
ui
@@ -94,30 +70,6 @@
ui
-
- math
-
-
- math
-
-
- math
-
-
- math
-
-
- math
-
-
- math
-
-
- math
-
-
- math
-
net
@@ -148,9 +100,6 @@
gfx
-
- math
-
@@ -178,30 +127,12 @@
gfx
-
- file
-
file
file
-
- file
-
-
- file
-
-
- file
-
-
- file
-
-
- file
-
ui
@@ -226,36 +157,6 @@
ui
-
- math
-
-
- math
-
-
- math
-
-
- math
-
-
- math
-
-
- math
-
-
- math
-
-
- math
-
-
- math
-
-
- math
-
net
@@ -295,4 +196,4 @@
gfx
-
+
\ No newline at end of file
diff --git a/UWP/PPSSPP_UWPMain.cpp b/UWP/PPSSPP_UWPMain.cpp
index b66c452f59..6188606368 100644
--- a/UWP/PPSSPP_UWPMain.cpp
+++ b/UWP/PPSSPP_UWPMain.cpp
@@ -4,18 +4,18 @@
#include
#include "base/NativeApp.h"
-#include "Common/Input/InputState.h"
-#include "file/vfs.h"
-#include "file/zip_read.h"
#include "file/file_util.h"
#include "net/http_client.h"
#include "net/resolve.h"
#include "base/display.h"
-#include "Common/Thread/ThreadUtil.h"
#include "thin3d/thin3d_create.h"
-#include "Common/Data/Encoding/Utf8.h"
#include "Common/Common.h"
+#include "Common/Input/InputState.h"
+#include "Common/File/VFS/VFS.h"
+#include "Common/File/VFS/AssetReader.h"
+#include "Common/Thread/ThreadUtil.h"
+#include "Common/Data/Encoding/Utf8.h"
#include "Common/DirectXHelper.h"
#include "Common/FileUtil.h"
#include "Common/Log.h"
diff --git a/Windows/GEDebugger/SimpleGLWindow.cpp b/Windows/GEDebugger/SimpleGLWindow.cpp
index 4586ab566b..3416bc17df 100644
--- a/Windows/GEDebugger/SimpleGLWindow.cpp
+++ b/Windows/GEDebugger/SimpleGLWindow.cpp
@@ -16,7 +16,7 @@
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
#include
-#include "math/lin/matrix4x4.h"
+#include "Common/Math/lin/matrix4x4.h"
#include "gfx_es2/glsl_program.h"
#include "gfx_es2/gpu_features.h"
#include "Common/Common.h"
diff --git a/Windows/GEDebugger/VertexPreview.cpp b/Windows/GEDebugger/VertexPreview.cpp
index 271302237b..aefddc7088 100644
--- a/Windows/GEDebugger/VertexPreview.cpp
+++ b/Windows/GEDebugger/VertexPreview.cpp
@@ -15,7 +15,7 @@
// Official git repository and contact information can be found at
// https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/.
-#include "math/lin/matrix4x4.h"
+#include "Common/Math/lin/matrix4x4.h"
#include "gfx_es2/glsl_program.h"
#include "gfx_es2/gpu_features.h"
#include "Windows/GEDebugger/GEDebugger.h"
diff --git a/Windows/MainWindow.cpp b/Windows/MainWindow.cpp
index f4d2be55bf..3178e1adfe 100644
--- a/Windows/MainWindow.cpp
+++ b/Windows/MainWindow.cpp
@@ -22,7 +22,6 @@
// It's improving slowly, though. :)
#include "stdafx.h"
#include "Common/CommonWindows.h"
-#include "Common/KeyMap.h"
#include "Common/OSVersion.h"
#include "ppsspp_config.h"
@@ -47,6 +46,7 @@
#include "Core/ConfigValues.h"
#include "Core/Debugger/SymbolMap.h"
#include "Core/Instance.h"
+#include "Core/KeyMap.h"
#include "Core/MIPS/JitCommon/JitCommon.h"
#include "Core/MIPS/JitCommon/JitBlockCache.h"
#include "Windows/InputBox.h"
diff --git a/Windows/MainWindowMenu.cpp b/Windows/MainWindowMenu.cpp
index 310be72aa3..fab9c450cc 100644
--- a/Windows/MainWindowMenu.cpp
+++ b/Windows/MainWindowMenu.cpp
@@ -33,6 +33,7 @@
#include "Core/Config.h"
#include "Core/ConfigValues.h"
#include "Core/FileSystems/MetaFileSystem.h"
+#include "Core/KeyMap.h"
#include "UI/OnScreenDisplay.h"
#include "Windows/MainWindowMenu.h"
#include "Windows/MainWindow.h"
diff --git a/Windows/MainWindowMenu.h b/Windows/MainWindowMenu.h
index 673681a292..26bdfc608e 100644
--- a/Windows/MainWindowMenu.h
+++ b/Windows/MainWindowMenu.h
@@ -1,7 +1,6 @@
#pragma once
#include "Common/CommonWindows.h"
-#include "Common/KeyMap.h"
#include
namespace MainWindow {
diff --git a/Windows/TouchInputHandler.cpp b/Windows/TouchInputHandler.cpp
index 3622dac160..b052ed3fa9 100644
--- a/Windows/TouchInputHandler.cpp
+++ b/Windows/TouchInputHandler.cpp
@@ -6,8 +6,10 @@
#include "base/display.h"
#include "base/NativeApp.h"
+
#include "Common/CommonWindows.h"
#include "Common/CommonFuncs.h"
+#include "Common/Input/InputState.h"
#include "Common/Log.h"
#include "Common/SysError.h"
#include "Windows/MainWindow.h"
diff --git a/Windows/XinputDevice.cpp b/Windows/XinputDevice.cpp
index 17f8da078d..3151a61935 100644
--- a/Windows/XinputDevice.cpp
+++ b/Windows/XinputDevice.cpp
@@ -6,12 +6,12 @@
#include "base/NativeApp.h"
#include "Core/Config.h"
#include "Common/CommonWindows.h"
-#include "Common/KeyMap.h"
#include "Common/Log.h"
#include "Common/Input/InputState.h"
#include "Common/Input/KeyCodes.h"
#include "XinputDevice.h"
#include "Core/Core.h"
+#include "Core/KeyMap.h"
#include "Core/HLE/sceCtrl.h"
#include "Common/Timer.h"
diff --git a/Windows/main.cpp b/Windows/main.cpp
index 33843554dd..40e4acdc34 100644
--- a/Windows/main.cpp
+++ b/Windows/main.cpp
@@ -33,8 +33,8 @@
#include "base/display.h"
#include "base/NativeApp.h"
-#include "file/vfs.h"
-#include "file/zip_read.h"
+#include "Common/File/VFS/VFS.h"
+#include "Common/File/VFS/AssetReader.h"
#include "Common/Data/Text/I18n.h"
#include "profiler/profiler.h"
#include "Common/Thread/ThreadUtil.h"
diff --git a/android/jni/Android.mk b/android/jni/Android.mk
index 34309d62b9..b97043f228 100644
--- a/android/jni/Android.mk
+++ b/android/jni/Android.mk
@@ -270,13 +270,26 @@ EXEC_AND_LIB_FILES := \
$(SRC)/Common/Crypto/sha1.cpp \
$(SRC)/Common/Crypto/sha256.cpp \
$(SRC)/Common/Data/Color/RGBAUtil.cpp \
+ $(SRC)/Common/Data/Convert/SmallDataConvert.cpp \
$(SRC)/Common/Data/Encoding/Base64.cpp \
$(SRC)/Common/Data/Encoding/Compression.cpp \
$(SRC)/Common/Data/Encoding/Utf8.cpp \
+ $(SRC)/Common/Data/Format/RIFF.cpp \
$(SRC)/Common/Data/Hash/Hash.cpp \
$(SRC)/Common/Data/Text/I18n.cpp \
$(SRC)/Common/Data/Text/Parsers.cpp \
$(SRC)/Common/Data/Text/WrapText.cpp \
+ $(SRC)/Common/File/VFS/VFS.cpp \
+ $(SRC)/Common/File/VFS/AssetReader.cpp \
+ $(SRC)/Common/File/DiskFree.cpp \
+ $(SRC)/Common/File/PathBrowser.cpp \
+ $(SRC)/Common/Math/fast/fast_math.c \
+ $(SRC)/Common/Math/fast/fast_matrix.c \
+ $(SRC)/Common/Math/math_util.cpp \
+ $(SRC)/Common/Math/curves.cpp \
+ $(SRC)/Common/Math/expression_parser.cpp \
+ $(SRC)/Common/Math/lin/vec3.cpp.arm \
+ $(SRC)/Common/Math/lin/matrix4x4.cpp.arm \
$(SRC)/Common/Thread/Executor.cpp \
$(SRC)/Common/Thread/PrioritizedWorkQueue.cpp \
$(SRC)/Common/Thread/ThreadPool.cpp \
@@ -286,7 +299,6 @@ EXEC_AND_LIB_FILES := \
$(SRC)/Common/Serialize/Serializer.cpp \
$(SRC)/Common/ColorConv.cpp \
$(SRC)/Common/ExceptionHandlerSetup.cpp \
- $(SRC)/Common/KeyMap.cpp \
$(SRC)/Common/Log.cpp \
$(SRC)/Common/LogManager.cpp \
$(SRC)/Common/MemArenaAndroid.cpp \
@@ -373,6 +385,7 @@ EXEC_AND_LIB_FILES := \
$(SRC)/Core/CwCheat.cpp \
$(SRC)/Core/HDRemaster.cpp \
$(SRC)/Core/Instance.cpp \
+ $(SRC)/Core/KeyMap.cpp \
$(SRC)/Core/Host.cpp \
$(SRC)/Core/Loaders.cpp \
$(SRC)/Core/PSPLoaders.cpp \
@@ -615,39 +628,26 @@ LOCAL_SRC_FILES := \
$(SRC)/UI/TextureUtil.cpp \
$(SRC)/UI/ComboKeyMappingScreen.cpp
-#NATIVE
-#LOCAL_CFLAGS := -O3 -DUSING_GLES2 -fsigned-char -fno-strict-aliasing -Wall -Wno-multichar -D__STDC_CONSTANT_MACROS
-#LOCAL_CPPFLAGS := -fno-exceptions -std=gnu++11 -fno-rtti -Wno-reorder
-#LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../ext $(LOCAL_PATH)/../../ext/libpng17 $(LOCAL_PATH)/../../ext/libzip $(LOCAL_PATH)/../../ext/glslang ..
-
-#Portable native and separate code on android in future is easy you needs add files
-#by ($(target_arch_ABI),arquitecture (armeabi-v7a , armeabi , x86 , MIPS)
-# ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
ifeq ($(findstring armeabi-v7a,$(TARGET_ARCH_ABI)),armeabi-v7a)
-LOCAL_CFLAGS := $(LOCAL_CFLAGS) -DARM -DARMEABI_V7A
+LOCAL_CFLAGS := $(LOCAL_CFLAGS) -DARM
LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
- $(SRC)/ext/native/math/fast/fast_matrix_neon.S.neon \
- ../../ext/libpng17/arm/arm_init.c \
- ../../ext/libpng17/arm/filter_neon_intrinsics.c \
- ../../ext/libpng17/arm/filter_neon.S.neon
+ $(SRC)/Common/Math/fast/fast_matrix_neon.S.neon \
+ $(SRC)/ext/libpng17/arm/arm_init.c \
+ $(SRC)/ext/libpng17/arm/filter_neon_intrinsics.c \
+ $(SRC)/ext/libpng17/arm/filter_neon.S.neon
-else ifeq ($(TARGET_ARCH_ABI),armeabi)
-LOCAL_CFLAGS := $(LOCAL_CFLAGS) -DARM -DARMEABI -march=armv6
else ifeq ($(TARGET_ARCH_ABI),x86)
-LOCAL_CFLAGS := $(LOCAL_CFLAGS) -D_M_IX86
LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
- $(SRC)/ext/native/math/fast/fast_matrix_sse.c
+ $(SRC)/Common/Math/fast/fast_matrix_sse.c
else ifeq ($(TARGET_ARCH_ABI),x86_64)
-LOCAL_CFLAGS := $(LOCAL_CFLAGS) -D_M_X64
LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
- $(SRC)/ext/native/math/fast/fast_matrix_sse.c
+ $(SRC)/Common/Math/fast/fast_matrix_sse.c
endif
ifneq ($(SKIPAPP),1)
include $(BUILD_SHARED_LIBRARY)
endif
-
ifeq ($(HEADLESS),1)
include $(CLEAR_VARS)
include $(LOCAL_PATH)/Locals.mk
diff --git a/android/jni/app-android.cpp b/android/jni/app-android.cpp
index 3813fbb44a..b25ff4fdcd 100644
--- a/android/jni/app-android.cpp
+++ b/android/jni/app-android.cpp
@@ -52,11 +52,12 @@ struct JNIEnv {};
#include "base/display.h"
#include "base/NativeApp.h"
#include "Common/Thread/ThreadUtil.h"
-#include "file/zip_read.h"
+#include "Common/File/VFS/VFS.h"
+#include "Common/File/VFS/AssetReader.h"
#include "Common/Input/InputState.h"
#include "Common/Input/KeyCodes.h"
#include "profiler/profiler.h"
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "net/resolve.h"
#include "Common/Data/Text/Parsers.h"
#include "android/jni/AndroidAudio.h"
diff --git a/ext/native/base/display.cpp b/ext/native/base/display.cpp
index 28a482aa06..f90784b819 100644
--- a/ext/native/base/display.cpp
+++ b/ext/native/base/display.cpp
@@ -1,5 +1,5 @@
#include "base/display.h"
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
int dp_xres;
int dp_yres;
diff --git a/ext/native/base/display.h b/ext/native/base/display.h
index d91e426931..586c346f77 100644
--- a/ext/native/base/display.h
+++ b/ext/native/base/display.h
@@ -1,6 +1,6 @@
#pragma once
-#include "math/lin/matrix4x4.h"
+#include "Common/Math/lin/matrix4x4.h"
// This is meant to be a framework for handling DPI scaling etc.
// For now, it just consists of these ugly globals.
diff --git a/ext/native/file/file_util.cpp b/ext/native/file/file_util.cpp
index 0453cd5a88..55c31bb677 100644
--- a/ext/native/file/file_util.cpp
+++ b/ext/native/file/file_util.cpp
@@ -126,6 +126,34 @@ bool readFileToString(bool text_file, const char *filename, std::string &str)
return true;
}
+uint8_t *ReadLocalFile(const char *filename, size_t *size) {
+ FILE *file = openCFile(filename, "rb");
+ if (!file) {
+ *size = 0;
+ return nullptr;
+ }
+ fseek(file, 0, SEEK_END);
+ size_t f_size = ftell(file);
+ if ((long)f_size < 0) {
+ *size = 0;
+ fclose(file);
+ return nullptr;
+ }
+ fseek(file, 0, SEEK_SET);
+ uint8_t *contents = new uint8_t[f_size + 1];
+ if (fread(contents, 1, f_size, file) != f_size) {
+ delete[] contents;
+ contents = nullptr;
+ *size = 0;
+ } else {
+ contents[f_size] = 0;
+ *size = f_size;
+ }
+ fclose(file);
+ return contents;
+}
+
+
// Returns true if filename is a directory
bool isDirectory(const std::string &filename) {
FileInfo info;
diff --git a/ext/native/file/file_util.h b/ext/native/file/file_util.h
index e194f3f2b2..3b2fb8ac6a 100644
--- a/ext/native/file/file_util.h
+++ b/ext/native/file/file_util.h
@@ -9,10 +9,12 @@
// Whole-file reading/writing
bool writeStringToFile(bool text_file, const std::string &str, const char *filename);
-bool readFileToString(bool text_file, const char *filename, std::string &str);
-
bool writeDataToFile(bool text_file, const void* data, const unsigned int size, const char *filename);
+bool readFileToString(bool text_file, const char *filename, std::string &str);
+// Return value must be delete[]-d.
+uint8_t *ReadLocalFile(const char *filename, size_t *size);
+
// Beginnings of a directory utility system. TODO: Improve.
struct FileInfo {
diff --git a/ext/native/gfx_es2/draw_buffer.cpp b/ext/native/gfx_es2/draw_buffer.cpp
index 15ea08c217..a5c0e5a7a6 100644
--- a/ext/native/gfx_es2/draw_buffer.cpp
+++ b/ext/native/gfx_es2/draw_buffer.cpp
@@ -4,7 +4,7 @@
#include
#include "base/display.h"
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "gfx/texture_atlas.h"
#include "gfx/gl_debug_log.h"
#include "gfx_es2/draw_buffer.h"
diff --git a/ext/native/gfx_es2/draw_buffer.h b/ext/native/gfx_es2/draw_buffer.h
index 97edf9f3ca..bfcd756010 100644
--- a/ext/native/gfx_es2/draw_buffer.h
+++ b/ext/native/gfx_es2/draw_buffer.h
@@ -7,8 +7,8 @@
#include "Common/Data/Color/RGBAUtil.h"
#include "gfx/texture_atlas.h"
-#include "math/geom2d.h"
-#include "math/lin/matrix4x4.h"
+#include "Common/Math/geom2d.h"
+#include "Common/Math/lin/matrix4x4.h"
#include "thin3d/thin3d.h"
struct Atlas;
diff --git a/ext/native/gfx_es2/glsl_program.cpp b/ext/native/gfx_es2/glsl_program.cpp
index 3400b381b3..0578cd2cfe 100644
--- a/ext/native/gfx_es2/glsl_program.cpp
+++ b/ext/native/gfx_es2/glsl_program.cpp
@@ -4,8 +4,8 @@
#include
#include
-#include "file/vfs.h"
-#include "file/zip_read.h"
+#include "Common/File/VFS/VFS.h"
+//#include "file/zip_read.h"
#include "glsl_program.h"
#include "Common/Log.h"
diff --git a/ext/native/image/zim_load.cpp b/ext/native/image/zim_load.cpp
index 86d2627f0c..80ed88d3c2 100644
--- a/ext/native/image/zim_load.cpp
+++ b/ext/native/image/zim_load.cpp
@@ -4,8 +4,8 @@
#include "zlib.h"
#include "image/zim_load.h"
-#include "math/math_util.h"
-#include "file/vfs.h"
+#include "Common/Math/math_util.h"
+#include "Common/File/VFS/VFS.h"
#include "Common/Log.h"
diff --git a/ext/native/json/json_reader.cpp b/ext/native/json/json_reader.cpp
index c0d1f1213a..2f95f082d8 100644
--- a/ext/native/json/json_reader.cpp
+++ b/ext/native/json/json_reader.cpp
@@ -1,5 +1,4 @@
-#include "file/zip_read.h"
-#include "file/vfs.h"
+#include "Common/File/VFS/VFS.h"
#include "json/json_reader.h"
namespace json {
diff --git a/ext/native/native.vcxproj b/ext/native/native.vcxproj
index b5b4fe78b1..55cab0400b 100644
--- a/ext/native/native.vcxproj
+++ b/ext/native/native.vcxproj
@@ -372,20 +372,13 @@
-
-
-
-
-
-
-
@@ -416,15 +409,6 @@
-
-
-
-
-
-
-
-
-
@@ -464,13 +448,8 @@
true
true
-
-
-
-
-
@@ -480,7 +459,6 @@
-
@@ -509,18 +487,6 @@
-
-
-
-
-
-
-
-
- AssemblyAndSourceCode
- AssemblyAndSourceCode
- AssemblyAndSourceCode
-
diff --git a/ext/native/native.vcxproj.filters b/ext/native/native.vcxproj.filters
index cfb2d16ef1..49e559580a 100644
--- a/ext/native/native.vcxproj.filters
+++ b/ext/native/native.vcxproj.filters
@@ -5,9 +5,6 @@
tools
-
- math\fast
-
base
@@ -25,12 +22,6 @@
image
-
- math
-
-
- math
-
gfx
@@ -40,30 +31,15 @@
profiler
-
- file
-
-
- file
-
-
- file
-
gfx
-
- math
-
json
file
-
- file
-
base
@@ -85,48 +61,30 @@
ui
-
- math
-
ui
gfx
-
- file
-
ui
ui
-
- math
-
net
ui
-
- math
-
gfx
gfx
-
- math\fast
-
-
- math\fast
-
thin3d
@@ -142,12 +100,6 @@
gfx
-
- file
-
-
- math
-
net
@@ -225,12 +177,6 @@
image
-
- math
-
-
- math
-
gfx
@@ -240,12 +186,6 @@
profiler
-
- file
-
-
- file
-
gfx
@@ -255,18 +195,12 @@
file
-
- file
-
base
ui
-
- math
-
net
@@ -279,18 +213,12 @@
ui
-
- math
-
ui
gfx
-
- file
-
ui
@@ -303,24 +231,12 @@
ui
-
- math
-
gfx
gfx
-
- math\fast
-
-
- math\fast
-
-
- math\fast
-
thin3d
@@ -345,9 +261,6 @@
base
-
- file
-
thin3d
@@ -375,9 +288,6 @@
gfx
-
- math
-
thin3d
@@ -419,9 +329,6 @@
{828bddaf-63e5-4311-985b-bf377f86ff00}
-
- {f3f83007-7c3b-473f-a2f7-423c5087fbfa}
-
{c57b41dd-cc33-46ac-b479-19676455ae54}
@@ -443,9 +350,6 @@
{4515306f-4664-46bf-a89b-abfec5520a15}
-
- {5ce64c0e-98e4-4411-86cc-aacaf2f60b21}
-
{06c6305a-a646-485b-85b9-645a24dd6553}
diff --git a/ext/native/thin3d/GLQueueRunner.cpp b/ext/native/thin3d/GLQueueRunner.cpp
index aec9acb5d1..6ce2682804 100644
--- a/ext/native/thin3d/GLQueueRunner.cpp
+++ b/ext/native/thin3d/GLQueueRunner.cpp
@@ -4,12 +4,12 @@
#include "gfx/gl_debug_log.h"
#include "gfx_es2/gpu_features.h"
#include "thin3d/DataFormatGL.h"
-#include "math/dataconv.h"
-#include "math/math_util.h"
+#include "Common/Math/math_util.h"
#include "Common/Log.h"
#include "Common/MemoryUtil.h"
#include "Common/StringUtils.h"
+#include "Common/Data/Convert/SmallDataConvert.h"
#include "Core/Reporting.h"
#include "GLQueueRunner.h"
diff --git a/ext/native/thin3d/GLRenderManager.h b/ext/native/thin3d/GLRenderManager.h
index d9721bf4ae..9fb0bc1847 100644
--- a/ext/native/thin3d/GLRenderManager.h
+++ b/ext/native/thin3d/GLRenderManager.h
@@ -10,7 +10,7 @@
#include
#include "gfx/gl_common.h"
-#include "math/dataconv.h"
+#include "Common/Data/Convert/SmallDataConvert.h"
#include "Common/Log.h"
#include "GLQueueRunner.h"
diff --git a/ext/native/thin3d/VulkanQueueRunner.h b/ext/native/thin3d/VulkanQueueRunner.h
index d46efdb42d..1bad9619ce 100644
--- a/ext/native/thin3d/VulkanQueueRunner.h
+++ b/ext/native/thin3d/VulkanQueueRunner.h
@@ -4,7 +4,7 @@
#include "Common/Hashmaps.h"
#include "Common/Vulkan/VulkanContext.h"
-#include "math/dataconv.h"
+#include "Common/Data/Convert/SmallDataConvert.h"
#include "thin3d/DataFormat.h"
#include "Common/Data/Collections/TinySet.h"
diff --git a/ext/native/thin3d/VulkanRenderManager.h b/ext/native/thin3d/VulkanRenderManager.h
index 57b1e78ec7..60a99d4cc3 100644
--- a/ext/native/thin3d/VulkanRenderManager.h
+++ b/ext/native/thin3d/VulkanRenderManager.h
@@ -12,8 +12,8 @@
#include "base/display.h"
#include "Common/Vulkan/VulkanContext.h"
-#include "math/dataconv.h"
-#include "math/math_util.h"
+#include "Common/Data/Convert/SmallDataConvert.h"
+#include "Common/Math/math_util.h"
#include "thin3d/DataFormat.h"
#include "thin3d/VulkanQueueRunner.h"
diff --git a/ext/native/thin3d/thin3d_d3d11.cpp b/ext/native/thin3d/thin3d_d3d11.cpp
index 1a5bc12d85..d111f75461 100644
--- a/ext/native/thin3d/thin3d_d3d11.cpp
+++ b/ext/native/thin3d/thin3d_d3d11.cpp
@@ -7,7 +7,7 @@
#include "thin3d/d3d11_loader.h"
#endif
#include "base/display.h"
-#include "math/dataconv.h"
+#include "Common/Data/Convert/SmallDataConvert.h"
#include "Common/Data/Encoding/Utf8.h"
#include "Common/ColorConv.h"
diff --git a/ext/native/thin3d/thin3d_d3d9.cpp b/ext/native/thin3d/thin3d_d3d9.cpp
index 8a97cbd26e..464da5c08d 100644
--- a/ext/native/thin3d/thin3d_d3d9.cpp
+++ b/ext/native/thin3d/thin3d_d3d9.cpp
@@ -33,7 +33,7 @@
#define D3DXERR_INVALIDDATA 0x88760b59
#endif
-#include "math/lin/matrix4x4.h"
+#include "Common/Math/lin/matrix4x4.h"
#include "thin3d/thin3d.h"
#include "gfx/d3d9_state.h"
diff --git a/ext/native/thin3d/thin3d_gl.cpp b/ext/native/thin3d/thin3d_gl.cpp
index abcf53dc3e..222b918a16 100644
--- a/ext/native/thin3d/thin3d_gl.cpp
+++ b/ext/native/thin3d/thin3d_gl.cpp
@@ -4,9 +4,9 @@
#include
#include
-#include "math/dataconv.h"
-#include "math/math_util.h"
-#include "math/lin/matrix4x4.h"
+#include "Common/Data/Convert/SmallDataConvert.h"
+#include "Common/Math/math_util.h"
+#include "Common/Math/lin/matrix4x4.h"
#include "thin3d/thin3d.h"
#include "thin3d/DataFormatGL.h"
#include "gfx/gl_common.h"
diff --git a/ext/native/thin3d/thin3d_vulkan.cpp b/ext/native/thin3d/thin3d_vulkan.cpp
index 855f80c7c8..7195bc7bf4 100644
--- a/ext/native/thin3d/thin3d_vulkan.cpp
+++ b/ext/native/thin3d/thin3d_vulkan.cpp
@@ -22,8 +22,8 @@
#include "base/display.h"
#include "image/zim_load.h"
-#include "math/lin/matrix4x4.h"
-#include "math/dataconv.h"
+#include "Common/Math/lin/matrix4x4.h"
+#include "Common/Data/Convert/SmallDataConvert.h"
#include "thin3d/thin3d.h"
#include "thin3d/VulkanRenderManager.h"
diff --git a/ext/native/ui/ui_context.h b/ext/native/ui/ui_context.h
index 03130d29b9..696e8b6bb8 100644
--- a/ext/native/ui/ui_context.h
+++ b/ext/native/ui/ui_context.h
@@ -4,8 +4,8 @@
#include
#include
-#include "math/geom2d.h"
-#include "math/lin/vec3.h"
+#include "Common/Math/geom2d.h"
+#include "Common/Math/lin/vec3.h"
#include "gfx/texture_atlas.h"
// Everything you need to draw a UI collected into a single unit that can be passed around.
diff --git a/ext/native/ui/ui_screen.cpp b/ext/native/ui/ui_screen.cpp
index 0406ed271d..3e96d79c39 100644
--- a/ext/native/ui/ui_screen.cpp
+++ b/ext/native/ui/ui_screen.cpp
@@ -5,7 +5,7 @@
#include "base/display.h"
#include "Common/Input/InputState.h"
#include "Common/Input/KeyCodes.h"
-#include "math/curves.h"
+#include "Common/Math/curves.h"
#include "ui/ui_screen.h"
#include "ui/ui_context.h"
#include "ui/screen.h"
diff --git a/ext/native/ui/ui_screen.h b/ext/native/ui/ui_screen.h
index 14d9472750..3184b03d09 100644
--- a/ext/native/ui/ui_screen.h
+++ b/ext/native/ui/ui_screen.h
@@ -2,7 +2,7 @@
#include
-#include "math/lin/vec3.h"
+#include "Common/Math/lin/vec3.h"
#include "ui/screen.h"
#include "ui/viewgroup.h"
diff --git a/ext/native/ui/view.h b/ext/native/ui/view.h
index 379456301f..8c46ff9060 100644
--- a/ext/native/ui/view.h
+++ b/ext/native/ui/view.h
@@ -16,9 +16,9 @@
#include
#include "gfx/texture_atlas.h"
-#include "math/lin/matrix4x4.h"
-#include "math/math_util.h"
-#include "math/geom2d.h"
+#include "Common/Math/lin/matrix4x4.h"
+#include "Common/Math/math_util.h"
+#include "Common/Math/geom2d.h"
#include "Common/Common.h"
diff --git a/ext/native/ui/viewgroup.cpp b/ext/native/ui/viewgroup.cpp
index 2ceae3146a..c48f1d22f2 100644
--- a/ext/native/ui/viewgroup.cpp
+++ b/ext/native/ui/viewgroup.cpp
@@ -4,7 +4,7 @@
#include
#include "Common/Input/KeyCodes.h"
-#include "math/curves.h"
+#include "Common/Math/curves.h"
#include "ui/ui_context.h"
#include "ui/ui_tween.h"
#include "ui/root.h"
diff --git a/ext/native/ui/viewgroup.h b/ext/native/ui/viewgroup.h
index d61305b2e9..7b2ec02fb0 100644
--- a/ext/native/ui/viewgroup.h
+++ b/ext/native/ui/viewgroup.h
@@ -5,7 +5,7 @@
#include
#include
-#include "math/geom2d.h"
+#include "Common/Math/geom2d.h"
#include "Common/Input/GestureDetector.h"
#include "ui/view.h"
diff --git a/headless/SDLHeadlessHost.cpp b/headless/SDLHeadlessHost.cpp
index 56e6ddc9d2..baf2da955d 100644
--- a/headless/SDLHeadlessHost.cpp
+++ b/headless/SDLHeadlessHost.cpp
@@ -23,7 +23,7 @@
#include "headless/SDLHeadlessHost.h"
#include "gfx/gl_common.h"
#include "gfx_es2/gpu_features.h"
-#include "file/vfs.h"
+#include "Common/File/VFS/VFS.h"
#include "file/zip_read.h"
#include "thin3d/thin3d_create.h"
#include "thin3d/GLRenderManager.h"
diff --git a/headless/WindowsHeadlessHost.cpp b/headless/WindowsHeadlessHost.cpp
index c5b9ef9594..64d22cc57b 100644
--- a/headless/WindowsHeadlessHost.cpp
+++ b/headless/WindowsHeadlessHost.cpp
@@ -21,8 +21,8 @@
#include "gfx/gl_common.h"
#include "gfx_es2/gpu_features.h"
-#include "file/vfs.h"
-#include "file/zip_read.h"
+#include "Common/File/VFS/VFS.h"
+#include "Common/File/VFS/AssetReader.h"
#include "Common/CommonWindows.h"
#include "Common/Log.h"
diff --git a/libretro/Makefile.common b/libretro/Makefile.common
index 145be50d2e..8f7588e532 100644
--- a/libretro/Makefile.common
+++ b/libretro/Makefile.common
@@ -144,14 +144,23 @@ SOURCES_CXX += \
SOURCES_CXX += \
$(COMMONDIR)/Data/Color/RGBAUtil.cpp \
+ $(COMMONDIR)/Data/Convert/SmallDataConvert.cpp \
$(COMMONDIR)/Data/Encoding/Base64.cpp \
$(COMMONDIR)/Data/Encoding/Compression.cpp \
$(COMMONDIR)/Data/Encoding/Utf8.cpp \
+ $(COMMONDIR)/Data/Format/RIFF.cpp \
+ $(COMMONDIR)/Data/Format/IniFile.cpp \
$(COMMONDIR)/Data/Hash/Hash.cpp \
$(COMMONDIR)/Data/Text/I18n.cpp \
$(COMMONDIR)/Data/Text/Parsers.cpp \
$(COMMONDIR)/Data/Text/WrapText.cpp \
+SOURCES_CXX += \
+ $(COMMONDIR)/File/VFS/VFS.cpp \
+ $(COMMONDIR)/File/VFS/AssetReader.cpp \
+ $(COMMONDIR)/File/DiskFree.cpp \
+ $(COMMONDIR)/File/PathBrowser.cpp
+
SOURCES_CXX += \
$(COMMONDIR)/Serialize/Serializer.cpp \
$(COMMONDIR)/Thread/Executor.cpp \
@@ -176,7 +185,6 @@ SOURCES_CXX += \
$(COMMONDIR)/ThreadPools.cpp
-
SOURCES_CXX += \
$(GPUCOMMONDIR)/VertexDecoderCommon.cpp \
$(GPUCOMMONDIR)/GPUStateUtils.cpp \
@@ -295,9 +303,6 @@ endif
SOURCES_CXX += $(NATIVEDIR)/math/dataconv.cpp \
$(NATIVEDIR)/file/fd_util.cpp \
$(NATIVEDIR)/file/file_util.cpp \
- $(NATIVEDIR)/file/ini_file.cpp \
- $(NATIVEDIR)/file/free.cpp \
- $(NATIVEDIR)/file/zip_read.cpp \
$(NATIVEDIR)/gfx/gl_debug_log.cpp \
$(NATIVEDIR)/gfx/texture_atlas.cpp \
$(NATIVEDIR)/gfx/d3d9_shader.cpp \
diff --git a/libretro/libretro.cpp b/libretro/libretro.cpp
index 4e71ad7000..f0efc6437b 100644
--- a/libretro/libretro.cpp
+++ b/libretro/libretro.cpp
@@ -21,7 +21,7 @@
#include "Log.h"
#include "LogManager.h"
#include "ConsoleListener.h"
-#include "file/vfs.h"
+#include "Common/File/VFS/VFS.h"
#include "file/zip_read.h"
#include "GPU/GPUState.h"
#include "GPU/GPUInterface.h"