From bc7a13370d51e5a049198c37b4127704c6beb20d Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Wed, 23 Aug 2023 23:20:43 +0300 Subject: [PATCH] cleanup VideoOut library code --- CMakeLists.txt | 2 +- src/Core/PS4/HLE/Graphics/video_out.cpp | 13 +++++++++++- src/Core/PS4/HLE/Graphics/video_out.h | 9 +++++++- src/Core/PS4/HLE/LibSceVideoOut.cpp | 26 ----------------------- src/Core/PS4/HLE/LibSceVideoOut.h | 8 ------- src/Core/PS4/HLE/Libs.cpp | 4 ++-- src/Core/PS4/HLE/Libs.h | 2 +- src/Core/PS4/HLE/VideoOut/VideoOutCodes.h | 7 ------ 8 files changed, 24 insertions(+), 47 deletions(-) delete mode 100644 src/Core/PS4/HLE/LibSceVideoOut.cpp delete mode 100644 src/Core/PS4/HLE/LibSceVideoOut.h delete mode 100644 src/Core/PS4/HLE/VideoOut/VideoOutCodes.h diff --git a/CMakeLists.txt b/CMakeLists.txt index bd04dbdb..9f7b16fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,7 +52,7 @@ add_executable(shadps4 src/Core/PS4/HLE/Kernel/event_queues.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" "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/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/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") find_package(OpenGL REQUIRED) target_link_libraries(shadps4 PUBLIC fmt mincore spdlog IMGUI SDL3-shared ${OPENGL_LIBRARY}) diff --git a/src/Core/PS4/HLE/Graphics/video_out.cpp b/src/Core/PS4/HLE/Graphics/video_out.cpp index 02d50d5b..94210c5f 100644 --- a/src/Core/PS4/HLE/Graphics/video_out.cpp +++ b/src/Core/PS4/HLE/Graphics/video_out.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include @@ -122,4 +121,16 @@ s32 PS4_SYSV_ABI sceVideoOutOpen(SceUserServiceUserId userId, s32 busType, s32 i return handle; } + +void videoOutRegisterLib(SymbolsResolver* sym) { + LIB_FUNCTION("SbU3dwp80lQ", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutGetFlipStatus); + LIB_FUNCTION("U46NwOiJpys", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutSubmitFlip); + LIB_FUNCTION("w3BY+tAEiQY", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutRegisterBuffers); + LIB_FUNCTION("HXzjK9yI30k", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutAddFlipEvent); + LIB_FUNCTION("CBiu4mCE1DA", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutSetFlipRate); + LIB_FUNCTION("i6-sR91Wt-4", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutSetBufferAttribute); + LIB_FUNCTION("6kPnj51T62Y", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutGetResolutionStatus); + LIB_FUNCTION("Up36PTk687E", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutOpen); + LIB_FUNCTION("zgXifHT9ErY", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutIsFlipPending); +} } // namespace HLE::Libs::Graphics::VideoOut \ No newline at end of file diff --git a/src/Core/PS4/HLE/Graphics/video_out.h b/src/Core/PS4/HLE/Graphics/video_out.h index cbbf0795..60c6fc95 100644 --- a/src/Core/PS4/HLE/Graphics/video_out.h +++ b/src/Core/PS4/HLE/Graphics/video_out.h @@ -1,12 +1,18 @@ #pragma once #include +#include #include #include namespace HLE::Libs::Graphics::VideoOut { -using SceUserServiceUserId = s32; //TODO move it to proper place +using SceUserServiceUserId = s32; // TODO move it to proper place + +// SceVideoOutBusType +constexpr int SCE_VIDEO_OUT_BUS_TYPE_MAIN = 0; // Main output +constexpr int SCE_VIDEO_OUT_BUS_TYPE_AUX_SOCIAL_SCREEN = 5; // Aux output for social +constexpr int SCE_VIDEO_OUT_BUS_TYPE_AUX_GAME_LIVE_STREAMING = 6; // Aux output for screaming // SceVideoOutRefreshRate constexpr int SCE_VIDEO_OUT_REFRESH_RATE_UNKNOWN = 0; @@ -81,6 +87,7 @@ struct SceVideoOutVblankStatus { void videoOutInit(u32 width, u32 height); std::string getPixelFormatString(s32 format); +void videoOutRegisterLib(SymbolsResolver* sym); void PS4_SYSV_ABI sceVideoOutSetBufferAttribute(SceVideoOutBufferAttribute* attribute, u32 pixelFormat, u32 tilingMode, u32 aspectRatio, u32 width, u32 height, u32 pitchInPixel); diff --git a/src/Core/PS4/HLE/LibSceVideoOut.cpp b/src/Core/PS4/HLE/LibSceVideoOut.cpp deleted file mode 100644 index 3ed1e7e5..00000000 --- a/src/Core/PS4/HLE/LibSceVideoOut.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "LibSceVideoOut.h" - -#include - -#include "../../../Util/Log.h" -#include "../Loader/Elf.h" -#include "Graphics/video_out.h" -#include "Libs.h" -#include "UserManagement/UsrMngCodes.h" -#include "VideoOut/VideoOutCodes.h" - -namespace HLE::Libs::LibSceVideoOut { - -void LibSceVideoOut_Register(SymbolsResolver* sym) { - LIB_FUNCTION("SbU3dwp80lQ", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, HLE::Libs::Graphics::VideoOut::sceVideoOutGetFlipStatus); - LIB_FUNCTION("U46NwOiJpys", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, HLE::Libs::Graphics::VideoOut::sceVideoOutSubmitFlip); - LIB_FUNCTION("w3BY+tAEiQY", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, HLE::Libs::Graphics::VideoOut::sceVideoOutRegisterBuffers); - LIB_FUNCTION("HXzjK9yI30k", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, HLE::Libs::Graphics::VideoOut::sceVideoOutAddFlipEvent); - LIB_FUNCTION("CBiu4mCE1DA", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, HLE::Libs::Graphics::VideoOut::sceVideoOutSetFlipRate); - LIB_FUNCTION("i6-sR91Wt-4", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, HLE::Libs::Graphics::VideoOut::sceVideoOutSetBufferAttribute); - LIB_FUNCTION("6kPnj51T62Y", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, HLE::Libs::Graphics::VideoOut::sceVideoOutGetResolutionStatus); - LIB_FUNCTION("Up36PTk687E", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, HLE::Libs::Graphics::VideoOut::sceVideoOutOpen); - LIB_FUNCTION("zgXifHT9ErY", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, HLE::Libs::Graphics::VideoOut::sceVideoOutIsFlipPending); -} - -}; // namespace HLE::Libs::LibSceVideoOut \ No newline at end of file diff --git a/src/Core/PS4/HLE/LibSceVideoOut.h b/src/Core/PS4/HLE/LibSceVideoOut.h deleted file mode 100644 index a454040e..00000000 --- a/src/Core/PS4/HLE/LibSceVideoOut.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once -#include "../Loader/SymbolsResolver.h" - -namespace HLE::Libs::LibSceVideoOut { - -void LibSceVideoOut_Register(SymbolsResolver* sym); - -}; // namespace HLE::Libs::LibSceVideoOut \ No newline at end of file diff --git a/src/Core/PS4/HLE/Libs.cpp b/src/Core/PS4/HLE/Libs.cpp index f7559ac7..60f82e8c 100644 --- a/src/Core/PS4/HLE/Libs.cpp +++ b/src/Core/PS4/HLE/Libs.cpp @@ -3,14 +3,14 @@ #include "LibC.h" #include "LibKernel.h" #include "LibSceGnmDriver.h" -#include "LibSceVideoOut.h" +#include namespace HLE::Libs { void Init_HLE_Libs(SymbolsResolver *sym) { LibC::LibC_Register(sym); LibKernel::LibKernel_Register(sym); - LibSceVideoOut::LibSceVideoOut_Register(sym); + Graphics::VideoOut::videoOutRegisterLib(sym); LibSceGnmDriver::LibSceGnmDriver_Register(sym); } } // namespace HLE::Libs \ No newline at end of file diff --git a/src/Core/PS4/HLE/Libs.h b/src/Core/PS4/HLE/Libs.h index 1a246f1a..39c15d47 100644 --- a/src/Core/PS4/HLE/Libs.h +++ b/src/Core/PS4/HLE/Libs.h @@ -1,6 +1,6 @@ #pragma once #include "../Loader/SymbolsResolver.h" - +#include #define LIB_FUNCTION(nid, lib, libversion, mod, moduleVersionMajor, moduleVersionMinor, function) \ {\ diff --git a/src/Core/PS4/HLE/VideoOut/VideoOutCodes.h b/src/Core/PS4/HLE/VideoOut/VideoOutCodes.h deleted file mode 100644 index b5058f9b..00000000 --- a/src/Core/PS4/HLE/VideoOut/VideoOutCodes.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -// SceVideoOutBusType - -constexpr int SCE_VIDEO_OUT_BUS_TYPE_MAIN = 0; //Main output -constexpr int SCE_VIDEO_OUT_BUS_TYPE_AUX_SOCIAL_SCREEN = 5; //Aux output for social -constexpr int SCE_VIDEO_OUT_BUS_TYPE_AUX_GAME_LIVE_STREAMING = 6; //Aux output for screaming