diff --git a/CMakeLists.txt b/CMakeLists.txt index 348fa5103..a81530a3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -96,7 +96,7 @@ add_executable(shadps4 src/Core/PS4/HLE/Kernel/cpu_management.cpp src/Core/PS4/HLE/Kernel/cpu_management.h - "src/Util/Disassembler.cpp" "src/Util/Disassembler.h" "src/Core/PS4/Util/aerolib.h" "src/Core/PS4/Loader/SymbolsResolver.h" "src/Core/PS4/Loader/SymbolsResolver.cpp" "src/Core/PS4/HLE/Libs.cpp" "src/Core/PS4/HLE/Libs.h" "src/Core/PS4/HLE/LibC.cpp" "src/Core/PS4/HLE/LibC.h" "src/Core/PS4/HLE/LibKernel.cpp" "src/Core/PS4/HLE/LibKernel.h" "src/Core/PS4/HLE/LibSceGnmDriver.cpp" "src/Core/PS4/HLE/LibSceGnmDriver.h" "src/Core/PS4/HLE/Kernel/ThreadManagement.cpp" "src/Core/PS4/HLE/Kernel/ThreadManagement.h" "src/Core/PS4/HLE/ErrorCodes.h" "src/debug.h" "src/Core/PS4/HLE/Kernel/memory_management.cpp" "src/Core/PS4/HLE/Kernel/memory_management.h" "src/Core/PS4/GPU/gpu_memory.cpp" "src/Core/PS4/GPU/gpu_memory.h" "src/emulator.cpp" "src/emulator.h" "src/Core/PS4/HLE/Kernel/Objects/event_queue.h" "src/Core/PS4/HLE/Kernel/Objects/event_queue.cpp" "src/Core/PS4/HLE/Graphics/Objects/video_out_ctx.cpp" "src/Core/PS4/HLE/Graphics/Objects/video_out_ctx.h" "src/Core/PS4/HLE/Graphics/graphics_ctx.h" "src/vulkan_util.cpp" "src/vulkan_util.h" "src/Core/PS4/GPU/video_out_buffer.cpp" "src/Core/PS4/GPU/video_out_buffer.h" "src/Core/PS4/HLE/Graphics/graphics_render.cpp" "src/Core/PS4/HLE/Graphics/graphics_render.h" "src/Core/PS4/GPU/tile_manager.cpp" "src/Core/PS4/GPU/tile_manager.h" "src/version.h" "src/Emulator/HLE/Libraries/LibSystemService/system_service.cpp" "src/Emulator/HLE/Libraries/LibSystemService/system_service.h" "src/Emulator/HLE/Libraries/LibKernel/FileSystem/meta_file_system.h" "src/Emulator/HLE/Libraries/LibKernel/FileSystem/meta_file_system.cpp") + "src/Util/Disassembler.cpp" "src/Util/Disassembler.h" "src/Core/PS4/Util/aerolib.h" "src/Core/PS4/Loader/SymbolsResolver.h" "src/Core/PS4/Loader/SymbolsResolver.cpp" "src/Core/PS4/HLE/Libs.cpp" "src/Core/PS4/HLE/Libs.h" "src/Core/PS4/HLE/LibC.cpp" "src/Core/PS4/HLE/LibC.h" "src/Core/PS4/HLE/LibKernel.cpp" "src/Core/PS4/HLE/LibKernel.h" "src/Core/PS4/HLE/LibSceGnmDriver.cpp" "src/Core/PS4/HLE/LibSceGnmDriver.h" "src/Core/PS4/HLE/Kernel/ThreadManagement.cpp" "src/Core/PS4/HLE/Kernel/ThreadManagement.h" "src/Core/PS4/HLE/ErrorCodes.h" "src/debug.h" "src/Core/PS4/HLE/Kernel/memory_management.cpp" "src/Core/PS4/HLE/Kernel/memory_management.h" "src/Core/PS4/GPU/gpu_memory.cpp" "src/Core/PS4/GPU/gpu_memory.h" "src/emulator.cpp" "src/emulator.h" "src/Core/PS4/HLE/Kernel/Objects/event_queue.h" "src/Core/PS4/HLE/Kernel/Objects/event_queue.cpp" "src/Core/PS4/HLE/Graphics/Objects/video_out_ctx.cpp" "src/Core/PS4/HLE/Graphics/Objects/video_out_ctx.h" "src/Core/PS4/HLE/Graphics/graphics_ctx.h" "src/vulkan_util.cpp" "src/vulkan_util.h" "src/Core/PS4/GPU/video_out_buffer.cpp" "src/Core/PS4/GPU/video_out_buffer.h" "src/Core/PS4/HLE/Graphics/graphics_render.cpp" "src/Core/PS4/HLE/Graphics/graphics_render.h" "src/Core/PS4/GPU/tile_manager.cpp" "src/Core/PS4/GPU/tile_manager.h" "src/version.h" "src/Emulator/HLE/Libraries/LibSystemService/system_service.cpp" "src/Emulator/HLE/Libraries/LibSystemService/system_service.h" ) find_package(OpenGL REQUIRED) target_link_libraries(shadps4 PUBLIC fmt mincore spdlog IMGUI SDL3-shared ${OPENGL_LIBRARY} vulkan-1 spirv-tools-opt spirv-tools) diff --git a/src/Emulator/HLE/Libraries/LibKernel/FileSystem/generic_file_system.h b/src/Emulator/HLE/Libraries/LibKernel/FileSystem/generic_file_system.h deleted file mode 100644 index 424f14986..000000000 --- a/src/Emulator/HLE/Libraries/LibKernel/FileSystem/generic_file_system.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once -#include - -#include - -namespace Emulator::Host::GenericFS { - -enum FileAccess { - FILEACCESS_READ = 0, - FILEACCESS_WRITE = 1, - FILEACCESS_READWRITE = 2 - -}; - -class GenericHandleAllocator { - public: - virtual u32 requestHandle() = 0; - virtual void releaseHandle(u32 handle) = 0; -}; - -class AbstractFileSystem { - public: - virtual bool ownsHandle(u32 handle) = 0; - virtual u32 openFile(std::string filename, FileAccess access) = 0; - virtual void closeFile(u32 handle) = 0; -}; -} // namespace Emulator::Host::GenericFS \ No newline at end of file diff --git a/src/Emulator/HLE/Libraries/LibKernel/FileSystem/meta_file_system.cpp b/src/Emulator/HLE/Libraries/LibKernel/FileSystem/meta_file_system.cpp deleted file mode 100644 index 9750ee51a..000000000 --- a/src/Emulator/HLE/Libraries/LibKernel/FileSystem/meta_file_system.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "meta_file_system.h" - -namespace Emulator::Host::GenericFS { - -void MetaFileSystem::mount(std::string prefix, AbstractFileSystem* system) { - System x; - x.prefix = prefix; - x.system = system; - fileSystems.push_back(x); -} - -void MetaFileSystem::unMount(AbstractFileSystem* system) {} - -void MetaFileSystem::unMountAll() { fileSystems.clear(); } - -AbstractFileSystem* MetaFileSystem::getHandleOwner(u32 handle) { - for (u32 i = 0; i < fileSystems.size(); i++) { - if (fileSystems[i].system->ownsHandle(handle)) return fileSystems[i].system; // got it! - } - return nullptr; - -} - -bool MetaFileSystem::mapFilePath(std::string inpath, std::string* outpath, AbstractFileSystem** system) { - for (unsigned int i = 0; i < fileSystems.size(); i++) { - int prefLen = fileSystems[i].prefix.size(); - if (fileSystems[i].prefix == inpath.substr(0, prefLen)) - { - *outpath = inpath.substr(prefLen); - *system = fileSystems[i].system; - return true; - } - } - return false; -} - -u32 MetaFileSystem::openFile(std::string filename, FileAccess access) { - AbstractFileSystem* system; - std::string of; - if (mapFilePath(filename, &of, &system)) { - return system->openFile(of, access); - } - return 0; -} - -void MetaFileSystem::closeFile(u32 handle) { - AbstractFileSystem* sys = getHandleOwner(handle); - if (sys) sys->closeFile(handle); -} - - -} // namespace Emulator::Host::GenericFS \ No newline at end of file diff --git a/src/Emulator/HLE/Libraries/LibKernel/FileSystem/meta_file_system.h b/src/Emulator/HLE/Libraries/LibKernel/FileSystem/meta_file_system.h deleted file mode 100644 index 83b047448..000000000 --- a/src/Emulator/HLE/Libraries/LibKernel/FileSystem/meta_file_system.h +++ /dev/null @@ -1,40 +0,0 @@ -#pragma once -#include - -#include -#include - -#include "generic_file_system.h" - -namespace Emulator::Host::GenericFS { - -class MetaFileSystem : public GenericHandleAllocator, AbstractFileSystem { - struct System { - std::string prefix; - AbstractFileSystem *system; - }; - - u32 current; - std::vector fileSystems; - std::string currentDirectory; - std::vector handler; - - public: - MetaFileSystem() : current(0) {} - - void mount(std::string prefix, AbstractFileSystem *system); - void unMount(AbstractFileSystem *system); - void unMountAll(); - AbstractFileSystem *getHandleOwner(u32 handle); - bool mapFilePath(std::string inpath, std::string *outpath, AbstractFileSystem **system); - u32 requestHandle() { - handler.push_back(current); - current++; - return handler.back(); - } - void releaseHandle(u32 handle) { handler.erase(std::remove(handler.begin(), handler.end(), handle), handler.end()); } - bool ownsHandle(u32 handle) { return false; } - u32 openFile(std::string filename, FileAccess access); - void closeFile(u32 handle); -}; -} // namespace Emulator::Host::GenericFS \ No newline at end of file