diff --git a/CMakeLists.txt b/CMakeLists.txt index f0a7fb03..89a5cc03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,7 +50,9 @@ add_executable(shadps4 src/discord.cpp src/Core/PS4/HLE/Kernel/event_queues.cpp src/Core/PS4/HLE/Kernel/event_queues.h - "src/Util/Singleton.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/Lib/Timer.cpp" "src/Lib/Timer.h" "src/Core/PS4/HLE/LibKernel.cpp" "src/Core/PS4/HLE/LibKernel.h" "src/Core/PS4/HLE/LibSceVideoOut.cpp" "src/Core/PS4/HLE/LibSceVideoOut.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/cpu_management.cpp + src/Core/PS4/HLE/Kernel/cpu_management.h + "src/Util/Singleton.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/Lib/Timer.cpp" "src/Lib/Timer.h" "src/Core/PS4/HLE/LibKernel.cpp" "src/Core/PS4/HLE/LibKernel.h" "src/Core/PS4/HLE/LibSceVideoOut.cpp" "src/Core/PS4/HLE/LibSceVideoOut.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" ) find_package(OpenGL REQUIRED) target_link_libraries(shadps4 PUBLIC fmt mincore spdlog IMGUI SDL3-shared ${OPENGL_LIBRARY}) diff --git a/src/Core/PS4/HLE/Kernel/cpu_management.cpp b/src/Core/PS4/HLE/Kernel/cpu_management.cpp new file mode 100644 index 00000000..210d4caa --- /dev/null +++ b/src/Core/PS4/HLE/Kernel/cpu_management.cpp @@ -0,0 +1,13 @@ +#include "cpu_management.h" +#include "Util/config.h" +#include +#include + +namespace HLE::Libs::LibKernel::CPUManagement { +int PS4_SYSV_ABI sceKernelIsNeoMode() { + PRINT_FUNCTION_NAME(); + bool isNeo = Config::isNeoMode(); + return isNeo ? 1 : 0; +} + +}; // namespace HLE::Libs::LibKernel::CPUManagement diff --git a/src/Core/PS4/HLE/Kernel/cpu_management.h b/src/Core/PS4/HLE/Kernel/cpu_management.h new file mode 100644 index 00000000..b6147abb --- /dev/null +++ b/src/Core/PS4/HLE/Kernel/cpu_management.h @@ -0,0 +1,6 @@ +#pragma once +#include + +namespace HLE::Libs::LibKernel::CPUManagement { +int PS4_SYSV_ABI sceKernelIsNeoMode(); +}; \ No newline at end of file diff --git a/src/Core/PS4/HLE/LibKernel.cpp b/src/Core/PS4/HLE/LibKernel.cpp index 30f54a34..a33454df 100644 --- a/src/Core/PS4/HLE/LibKernel.cpp +++ b/src/Core/PS4/HLE/LibKernel.cpp @@ -6,7 +6,7 @@ #include "Kernel/memory_management.h" #include "../../../Util/Singleton.h" #include "Kernel/Objects/physical_memory.h" -#include "Util/config.h" +#include "Kernel/cpu_management.h" namespace HLE::Libs::LibKernel { @@ -28,12 +28,6 @@ namespace HLE::Libs::LibKernel { BREAKPOINT(); return 0; } - int PS4_SYSV_ABI sceKernelIsNeoMode() - { - PRINT_FUNCTION_NAME(); - bool isNeo = Config::isNeoMode(); - return isNeo ? 1 : 0; - } static PS4_SYSV_ABI void stack_chk_fail() { BREAKPOINT(); } @@ -49,7 +43,7 @@ namespace HLE::Libs::LibKernel { LIB_FUNCTION("D0OdFMjp46I", "libkernel", 1, "libkernel", 1, 1, sceKernelCreateEqueue); LIB_FUNCTION("fzyMKs9kim0", "libkernel", 1, "libkernel", 1, 1, sceKernelWaitEqueue); //misc - LIB_FUNCTION("WslcK1FQcGI", "libkernel", 1, "libkernel", 1, 1, sceKernelIsNeoMode); + LIB_FUNCTION("WslcK1FQcGI", "libkernel", 1, "libkernel", 1, 1, CPUManagement::sceKernelIsNeoMode); LIB_FUNCTION("Ou3iL1abvng", "libkernel", 1, "libkernel", 1, 1, stack_chk_fail); } diff --git a/src/Core/PS4/HLE/LibKernel.h b/src/Core/PS4/HLE/LibKernel.h index 16a7b4c4..2ae505ff 100644 --- a/src/Core/PS4/HLE/LibKernel.h +++ b/src/Core/PS4/HLE/LibKernel.h @@ -8,6 +8,6 @@ void LibKernel_Register(SymbolsResolver* sym); int PS4_SYSV_ABI sceKernelCreateEqueue(/* SceKernelEqueue* eq*/ int eq, const char* name); int32_t PS4_SYSV_ABI sceKernelReleaseDirectMemory(off_t start, size_t len); -int PS4_SYSV_ABI sceKernelIsNeoMode(); + int PS4_SYSV_ABI sceKernelWaitEqueue(/*SceKernelEqueue eq, SceKernelEvent* ev,*/ int num, int* out /*, SceKernelUseconds* timo*/); }; // namespace HLE::Libs::LibKernel \ No newline at end of file