From 0c6f2b470fde23011ba3c840b6ed40f79cbee7b7 Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Sat, 5 Apr 2025 13:14:27 -0700 Subject: [PATCH 01/27] renderer_vulkan: Use more depth-stencil dynamic state. (#2749) --- src/video_core/amdgpu/liverpool.h | 4 + .../renderer_vulkan/vk_graphics_pipeline.cpp | 30 ++-- .../renderer_vulkan/vk_graphics_pipeline.h | 16 -- .../renderer_vulkan/vk_instance.cpp | 4 + src/video_core/renderer_vulkan/vk_instance.h | 5 + .../renderer_vulkan/vk_pipeline_cache.cpp | 14 +- .../renderer_vulkan/vk_rasterizer.cpp | 157 ++++++++++-------- .../renderer_vulkan/vk_rasterizer.h | 3 +- 8 files changed, 116 insertions(+), 117 deletions(-) diff --git a/src/video_core/amdgpu/liverpool.h b/src/video_core/amdgpu/liverpool.h index 474c04ec2..8f9292f1c 100644 --- a/src/video_core/amdgpu/liverpool.h +++ b/src/video_core/amdgpu/liverpool.h @@ -1423,6 +1423,10 @@ struct Liverpool { return num_samples; } + bool IsClipDisabled() const { + return clipper_control.clip_disable || primitive_type == PrimitiveType::RectList; + } + void SetDefaults(); }; diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp index c528258fb..7cd4bd872 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp @@ -105,7 +105,6 @@ GraphicsPipeline::GraphicsPipeline( .frontFace = key.front_face == Liverpool::FrontFace::Clockwise ? vk::FrontFace::eClockwise : vk::FrontFace::eCounterClockwise, - .depthBiasEnable = key.depth_bias_enable, .lineWidth = 1.0f, }; @@ -123,18 +122,20 @@ GraphicsPipeline::GraphicsPipeline( .pNext = instance.IsDepthClipControlSupported() ? &clip_control : nullptr, }; - boost::container::static_vector dynamic_states = { - vk::DynamicState::eViewportWithCountEXT, - vk::DynamicState::eScissorWithCountEXT, - vk::DynamicState::eBlendConstants, - vk::DynamicState::eDepthBounds, - vk::DynamicState::eDepthBias, - vk::DynamicState::eStencilReference, - vk::DynamicState::eStencilCompareMask, - vk::DynamicState::eStencilWriteMask, + boost::container::static_vector dynamic_states = { + vk::DynamicState::eViewportWithCountEXT, vk::DynamicState::eScissorWithCountEXT, + vk::DynamicState::eBlendConstants, vk::DynamicState::eDepthTestEnableEXT, + vk::DynamicState::eDepthWriteEnableEXT, vk::DynamicState::eDepthCompareOpEXT, + vk::DynamicState::eDepthBiasEnableEXT, vk::DynamicState::eDepthBias, + vk::DynamicState::eStencilTestEnableEXT, vk::DynamicState::eStencilReference, + vk::DynamicState::eStencilCompareMask, vk::DynamicState::eStencilWriteMask, vk::DynamicState::eStencilOpEXT, }; + if (instance.IsDepthBoundsSupported()) { + dynamic_states.push_back(vk::DynamicState::eDepthBoundsTestEnableEXT); + dynamic_states.push_back(vk::DynamicState::eDepthBounds); + } if (instance.IsDynamicColorWriteMaskSupported()) { dynamic_states.push_back(vk::DynamicState::eColorWriteMaskEXT); } @@ -149,14 +150,6 @@ GraphicsPipeline::GraphicsPipeline( .pDynamicStates = dynamic_states.data(), }; - const vk::PipelineDepthStencilStateCreateInfo depth_info = { - .depthTestEnable = key.depth_test_enable, - .depthWriteEnable = key.depth_write_enable, - .depthCompareOp = key.depth_compare_op, - .depthBoundsTestEnable = key.depth_bounds_test_enable, - .stencilTestEnable = key.stencil_test_enable, - }; - boost::container::static_vector shader_stages; auto stage = u32(Shader::LogicalStage::Vertex); @@ -292,7 +285,6 @@ GraphicsPipeline::GraphicsPipeline( .pViewportState = &viewport_info, .pRasterizationState = &raster_state, .pMultisampleState = &multisampling, - .pDepthStencilState = &depth_info, .pColorBlendState = &color_blending, .pDynamicState = &dynamic_info, .layout = *pipeline_layout, diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.h b/src/video_core/renderer_vulkan/vk_graphics_pipeline.h index e6596db2f..7ffd14064 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.h +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.h @@ -39,18 +39,6 @@ struct GraphicsPipelineKey { vk::Format depth_format; vk::Format stencil_format; - struct { - bool clip_disable : 1; - bool depth_test_enable : 1; - bool depth_write_enable : 1; - bool depth_bounds_test_enable : 1; - bool depth_bias_enable : 1; - bool stencil_test_enable : 1; - // Must be named to be zero-initialized. - u8 _unused : 2; - }; - vk::CompareOp depth_compare_op; - u32 num_samples; u32 mrt_mask; AmdGpu::PrimitiveType prim_type; @@ -94,10 +82,6 @@ public: return key.mrt_mask; } - auto IsClipDisabled() const { - return key.clip_disable; - } - [[nodiscard]] bool IsPrimitiveListTopology() const { return key.prim_type == AmdGpu::PrimitiveType::PointList || key.prim_type == AmdGpu::PrimitiveType::LineList || diff --git a/src/video_core/renderer_vulkan/vk_instance.cpp b/src/video_core/renderer_vulkan/vk_instance.cpp index 1f0125791..d45889054 100644 --- a/src/video_core/renderer_vulkan/vk_instance.cpp +++ b/src/video_core/renderer_vulkan/vk_instance.cpp @@ -247,6 +247,7 @@ bool Instance::CreateDevice() { add_extension(VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME); add_extension(VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME); add_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME); + add_extension(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME); add_extension(VK_EXT_TOOLING_INFO_EXTENSION_NAME); const bool maintenance4 = add_extension(VK_KHR_MAINTENANCE_4_EXTENSION_NAME); @@ -380,6 +381,9 @@ bool Instance::CreateDevice() { vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT{ .extendedDynamicState = true, }, + vk::PhysicalDeviceExtendedDynamicState2FeaturesEXT{ + .extendedDynamicState2 = true, + }, vk::PhysicalDeviceMaintenance4FeaturesKHR{ .maintenance4 = true, }, diff --git a/src/video_core/renderer_vulkan/vk_instance.h b/src/video_core/renderer_vulkan/vk_instance.h index 013003b9b..04b68c1d0 100644 --- a/src/video_core/renderer_vulkan/vk_instance.h +++ b/src/video_core/renderer_vulkan/vk_instance.h @@ -84,6 +84,11 @@ public: return features.samplerAnisotropy; } + /// Returns true if depth bounds testing is supported + bool IsDepthBoundsSupported() const { + return features.depthBounds; + } + /// Returns true when VK_EXT_custom_border_color is supported bool IsCustomBorderColorSupported() const { return custom_border_color; diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index d51c8fbd5..17a1fdec4 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -123,7 +123,7 @@ const Shader::RuntimeInfo& PipelineCache::BuildRuntimeInfo(Stage stage, LogicalS info.vs_info.emulate_depth_negative_one_to_one = !instance.IsDepthClipControlSupported() && regs.clipper_control.clip_space == Liverpool::ClipSpace::MinusWToW; - info.vs_info.clip_disable = graphics_key.clip_disable; + info.vs_info.clip_disable = regs.IsClipDisabled(); if (l_stage == LogicalStage::TessellationEval) { info.vs_info.tess_type = regs.tess_config.type; info.vs_info.tess_topology = regs.tess_config.topology; @@ -267,16 +267,6 @@ bool PipelineCache::RefreshGraphicsKey() { auto& regs = liverpool->regs; auto& key = graphics_key; - key.clip_disable = - regs.clipper_control.clip_disable || regs.primitive_type == AmdGpu::PrimitiveType::RectList; - key.depth_test_enable = regs.depth_control.depth_enable; - key.depth_write_enable = - regs.depth_control.depth_write_enable && !regs.depth_render_control.depth_clear_enable; - key.depth_bounds_test_enable = regs.depth_control.depth_bounds_enable; - key.depth_bias_enable = regs.polygon_control.NeedsBias(); - key.depth_compare_op = LiverpoolToVK::CompareOp(regs.depth_control.depth_func); - key.stencil_test_enable = regs.depth_control.stencil_enable; - const auto depth_format = instance.GetSupportedFormat( LiverpoolToVK::DepthFormat(regs.depth_buffer.z_info.format, regs.depth_buffer.stencil_info.format), @@ -285,13 +275,11 @@ bool PipelineCache::RefreshGraphicsKey() { key.depth_format = depth_format; } else { key.depth_format = vk::Format::eUndefined; - key.depth_test_enable = false; } if (regs.depth_buffer.StencilValid()) { key.stencil_format = depth_format; } else { key.stencil_format = vk::Format::eUndefined; - key.stencil_test_enable = false; } key.prim_type = regs.primitive_type; diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 87d07a967..ecb0c0a75 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -947,81 +947,18 @@ void Rasterizer::UnmapMemory(VAddr addr, u64 size) { } void Rasterizer::UpdateDynamicState(const GraphicsPipeline& pipeline) { - UpdateViewportScissorState(pipeline); + UpdateViewportScissorState(); + UpdateDepthStencilState(); - auto& regs = liverpool->regs; + const auto& regs = liverpool->regs; const auto cmdbuf = scheduler.CommandBuffer(); cmdbuf.setBlendConstants(®s.blend_constants.red); - if (instance.IsDynamicColorWriteMaskSupported()) { cmdbuf.setColorWriteMaskEXT(0, pipeline.GetWriteMasks()); } - if (regs.depth_control.depth_bounds_enable) { - cmdbuf.setDepthBounds(regs.depth_bounds_min, regs.depth_bounds_max); - } - if (regs.polygon_control.enable_polygon_offset_front) { - cmdbuf.setDepthBias(regs.poly_offset.front_offset, regs.poly_offset.depth_bias, - regs.poly_offset.front_scale / 16.f); - } else if (regs.polygon_control.enable_polygon_offset_back) { - cmdbuf.setDepthBias(regs.poly_offset.back_offset, regs.poly_offset.depth_bias, - regs.poly_offset.back_scale / 16.f); - } - - if (regs.depth_control.stencil_enable) { - const auto front_fail_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_fail_front); - const auto front_pass_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zpass_front); - const auto front_depth_fail_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zfail_front); - const auto front_compare_op = LiverpoolToVK::CompareOp(regs.depth_control.stencil_ref_func); - if (regs.depth_control.backface_enable) { - const auto back_fail_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_fail_back); - const auto back_pass_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zpass_back); - const auto back_depth_fail_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zfail_back); - const auto back_compare_op = - LiverpoolToVK::CompareOp(regs.depth_control.stencil_bf_func); - cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eFront, front_fail_op, front_pass_op, - front_depth_fail_op, front_compare_op); - cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eBack, back_fail_op, back_pass_op, - back_depth_fail_op, back_compare_op); - } else { - cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eFrontAndBack, front_fail_op, - front_pass_op, front_depth_fail_op, front_compare_op); - } - - const auto front = regs.stencil_ref_front; - const auto back = regs.stencil_ref_back; - if (front.stencil_test_val == back.stencil_test_val) { - cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eFrontAndBack, - front.stencil_test_val); - } else { - cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eFront, front.stencil_test_val); - cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eBack, back.stencil_test_val); - } - - if (front.stencil_write_mask == back.stencil_write_mask) { - cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eFrontAndBack, - front.stencil_write_mask); - } else { - cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eFront, front.stencil_write_mask); - cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eBack, back.stencil_write_mask); - } - - if (front.stencil_mask == back.stencil_mask) { - cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eFrontAndBack, - front.stencil_mask); - } else { - cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eFront, front.stencil_mask); - cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eBack, back.stencil_mask); - } - } } -void Rasterizer::UpdateViewportScissorState(const GraphicsPipeline& pipeline) { +void Rasterizer::UpdateViewportScissorState() { const auto& regs = liverpool->regs; const auto combined_scissor_value_tl = [](s16 scr, s16 win, s16 gen, s16 win_offset) { @@ -1072,7 +1009,7 @@ void Rasterizer::UpdateViewportScissorState(const GraphicsPipeline& pipeline) { const auto zoffset = vp_ctl.zoffset_enable ? vp.zoffset : 0.f; const auto zscale = vp_ctl.zscale_enable ? vp.zscale : 1.f; - if (pipeline.IsClipDisabled()) { + if (regs.IsClipDisabled()) { // In case if clipping is disabled we patch the shader to convert vertex position // from screen space coordinates to NDC by defining a render space as full hardware // window range [0..16383, 0..16383] and setting the viewport to its size. @@ -1139,6 +1076,90 @@ void Rasterizer::UpdateViewportScissorState(const GraphicsPipeline& pipeline) { cmdbuf.setScissorWithCountEXT(scissors); } +void Rasterizer::UpdateDepthStencilState() { + auto& regs = liverpool->regs; + const auto cmdbuf = scheduler.CommandBuffer(); + + bool depth_test = regs.depth_control.depth_enable && regs.depth_buffer.DepthValid(); + cmdbuf.setDepthTestEnableEXT(depth_test); + cmdbuf.setDepthWriteEnableEXT(regs.depth_control.depth_write_enable && + !regs.depth_render_control.depth_clear_enable); + if (depth_test) { + cmdbuf.setDepthCompareOpEXT(LiverpoolToVK::CompareOp(regs.depth_control.depth_func)); + } + + if (instance.IsDepthBoundsSupported()) { + cmdbuf.setDepthBoundsTestEnableEXT(regs.depth_control.depth_bounds_enable); + if (regs.depth_control.depth_bounds_enable) { + cmdbuf.setDepthBounds(regs.depth_bounds_min, regs.depth_bounds_max); + } + } + + cmdbuf.setDepthBiasEnableEXT(regs.polygon_control.NeedsBias()); + if (regs.polygon_control.enable_polygon_offset_front) { + cmdbuf.setDepthBias(regs.poly_offset.front_offset, regs.poly_offset.depth_bias, + regs.poly_offset.front_scale / 16.f); + } else if (regs.polygon_control.enable_polygon_offset_back) { + cmdbuf.setDepthBias(regs.poly_offset.back_offset, regs.poly_offset.depth_bias, + regs.poly_offset.back_scale / 16.f); + } + + cmdbuf.setStencilTestEnableEXT(regs.depth_control.stencil_enable && + regs.depth_buffer.StencilValid()); + if (regs.depth_control.stencil_enable) { + const auto front_fail_op = + LiverpoolToVK::StencilOp(regs.stencil_control.stencil_fail_front); + const auto front_pass_op = + LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zpass_front); + const auto front_depth_fail_op = + LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zfail_front); + const auto front_compare_op = LiverpoolToVK::CompareOp(regs.depth_control.stencil_ref_func); + if (regs.depth_control.backface_enable) { + const auto back_fail_op = + LiverpoolToVK::StencilOp(regs.stencil_control.stencil_fail_back); + const auto back_pass_op = + LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zpass_back); + const auto back_depth_fail_op = + LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zfail_back); + const auto back_compare_op = + LiverpoolToVK::CompareOp(regs.depth_control.stencil_bf_func); + cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eFront, front_fail_op, front_pass_op, + front_depth_fail_op, front_compare_op); + cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eBack, back_fail_op, back_pass_op, + back_depth_fail_op, back_compare_op); + } else { + cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eFrontAndBack, front_fail_op, + front_pass_op, front_depth_fail_op, front_compare_op); + } + + const auto front = regs.stencil_ref_front; + const auto back = regs.stencil_ref_back; + if (front.stencil_test_val == back.stencil_test_val) { + cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eFrontAndBack, + front.stencil_test_val); + } else { + cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eFront, front.stencil_test_val); + cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eBack, back.stencil_test_val); + } + + if (front.stencil_write_mask == back.stencil_write_mask) { + cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eFrontAndBack, + front.stencil_write_mask); + } else { + cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eFront, front.stencil_write_mask); + cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eBack, back.stencil_write_mask); + } + + if (front.stencil_mask == back.stencil_mask) { + cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eFrontAndBack, + front.stencil_mask); + } else { + cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eFront, front.stencil_mask); + cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eBack, back.stencil_mask); + } + } +} + void Rasterizer::ScopeMarkerBegin(const std::string_view& str, bool from_guest) { if ((from_guest && !Config::getVkGuestMarkersEnabled()) || (!from_guest && !Config::getVkHostMarkersEnabled())) { diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index 2fac8c8da..8e5d0065b 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h @@ -76,7 +76,8 @@ private: void EliminateFastClear(); void UpdateDynamicState(const GraphicsPipeline& pipeline); - void UpdateViewportScissorState(const GraphicsPipeline& pipeline); + void UpdateViewportScissorState(); + void UpdateDepthStencilState(); bool FilterDraw(); From 9d2175180e1dafeecefef5d7870376c199107b6c Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Mon, 7 Apr 2025 02:22:51 -0700 Subject: [PATCH 02/27] build: Move versioning to CMake file. (#2752) --- CMakeLists.txt | 7 ++++--- src/common/config.cpp | 10 +++++----- src/common/scm_rev.cpp.in | 22 +++++++++------------- src/common/scm_rev.h | 3 +++ src/common/version.h | 14 -------------- src/emulator.cpp | 11 +++++------ src/input/input_handler.cpp | 1 - src/qt_gui/check_update.cpp | 5 ++--- src/qt_gui/gui_context_menus.h | 6 +++--- src/qt_gui/main_window.cpp | 9 ++++----- src/qt_gui/settings_dialog.cpp | 4 ++-- src/sdl_window.cpp | 1 - 12 files changed, 37 insertions(+), 56 deletions(-) delete mode 100644 src/common/version.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 2af30ed46..844553340 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -202,6 +202,8 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE ) +set(APP_VERSION "0.7.1 WIP") +set(APP_IS_RELEASE false) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/common/scm_rev.cpp.in" "${CMAKE_CURRENT_BINARY_DIR}/src/common/scm_rev.cpp" @ONLY) message("end git things, remote: ${GIT_REMOTE_NAME}, branch: ${GIT_BRANCH}") @@ -671,7 +673,6 @@ set(COMMON src/common/logging/backend.cpp src/common/uint128.h src/common/unique_function.h src/common/va_ctx.h - src/common/version.h src/common/ntapi.h src/common/ntapi.cpp src/common/number_utils.h @@ -1193,8 +1194,8 @@ if (ENABLE_QT_GUI) MACOSX_BUNDLE ON MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/dist/MacOSBundleInfo.plist.in" MACOSX_BUNDLE_ICON_FILE "shadPS4.icns" - MACOSX_BUNDLE_SHORT_VERSION_STRING "0.4.1" - ) + MACOSX_BUNDLE_SHORT_VERSION_STRING "${APP_VERSION}" + ) set_source_files_properties(src/images/shadPS4.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) diff --git a/src/common/config.cpp b/src/common/config.cpp index 2657cd12a..111c0cfa9 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -7,10 +7,10 @@ #include // for wstring support #include +#include "common/config.h" +#include "common/logging/formatter.h" #include "common/path_util.h" -#include "config.h" -#include "logging/formatter.h" -#include "version.h" +#include "common/scm_rev.h" namespace toml { template @@ -763,7 +763,7 @@ void load(const std::filesystem::path& path) { logFilter = toml::find_or(general, "logFilter", ""); logType = toml::find_or(general, "logType", "sync"); userName = toml::find_or(general, "userName", "shadPS4"); - if (Common::isRelease) { + if (Common::g_is_release) { updateChannel = toml::find_or(general, "updateChannel", "Release"); } else { updateChannel = toml::find_or(general, "updateChannel", "Nightly"); @@ -1108,7 +1108,7 @@ void setDefaultValues() { logFilter = ""; logType = "sync"; userName = "shadPS4"; - if (Common::isRelease) { + if (Common::g_is_release) { updateChannel = "Release"; } else { updateChannel = "Nightly"; diff --git a/src/common/scm_rev.cpp.in b/src/common/scm_rev.cpp.in index 2de04e0be..71c4c2d0a 100644 --- a/src/common/scm_rev.cpp.in +++ b/src/common/scm_rev.cpp.in @@ -3,21 +3,17 @@ #include "common/scm_rev.h" -#define GIT_REV "@GIT_REV@" -#define GIT_BRANCH "@GIT_BRANCH@" -#define GIT_DESC "@GIT_DESC@" -#define GIT_REMOTE_NAME "@GIT_REMOTE_NAME@" -#define GIT_REMOTE_URL "@GIT_REMOTE_URL@" -#define BUILD_DATE "@BUILD_DATE@" - namespace Common { -const char g_scm_rev[] = GIT_REV; -const char g_scm_branch[] = GIT_BRANCH; -const char g_scm_desc[] = GIT_DESC; -const char g_scm_remote_name[] = GIT_REMOTE_NAME; -const char g_scm_remote_url[] = GIT_REMOTE_URL; -const char g_scm_date[] = BUILD_DATE; +constexpr char g_version[] = "@APP_VERSION@"; +constexpr bool g_is_release = @APP_IS_RELEASE@; + +constexpr char g_scm_rev[] = "@GIT_REV@"; +constexpr char g_scm_branch[] = "@GIT_BRANCH@"; +constexpr char g_scm_desc[] = "@GIT_DESC@"; +constexpr char g_scm_remote_name[] = "@GIT_REMOTE_NAME@"; +constexpr char g_scm_remote_url[] = "@GIT_REMOTE_URL@"; +constexpr char g_scm_date[] = "@BUILD_DATE@"; } // namespace diff --git a/src/common/scm_rev.h b/src/common/scm_rev.h index f38efff42..36b844e94 100644 --- a/src/common/scm_rev.h +++ b/src/common/scm_rev.h @@ -5,6 +5,9 @@ namespace Common { +extern const char g_version[]; +extern const bool g_is_release; + extern const char g_scm_rev[]; extern const char g_scm_branch[]; extern const char g_scm_desc[]; diff --git a/src/common/version.h b/src/common/version.h deleted file mode 100644 index 652f36e6d..000000000 --- a/src/common/version.h +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include - -namespace Common { - -constexpr char VERSION[] = "0.7.1 WIP"; -constexpr bool isRelease = false; - -} // namespace Common diff --git a/src/emulator.cpp b/src/emulator.cpp index 5f94f008a..1a71b99cb 100644 --- a/src/emulator.cpp +++ b/src/emulator.cpp @@ -22,7 +22,6 @@ #include "common/polyfill_thread.h" #include "common/scm_rev.h" #include "common/singleton.h" -#include "common/version.h" #include "core/file_format/psf.h" #include "core/file_format/trp.h" #include "core/file_sys/fs.h" @@ -123,7 +122,7 @@ void Emulator::Run(const std::filesystem::path& file, const std::vector", id, title, app_version); std::string window_title = ""; - if (Common::isRelease) { - window_title = fmt::format("shadPS4 v{} | {}", Common::VERSION, game_title); + if (Common::g_is_release) { + window_title = fmt::format("shadPS4 v{} | {}", Common::g_version, game_title); } else { std::string remote_url(Common::g_scm_remote_url); std::string remote_host; @@ -208,10 +207,10 @@ void Emulator::Run(const std::filesystem::path& file, const std::vector #include #include -#include #include "check_update.h" using namespace Common::FS; @@ -52,7 +51,7 @@ void CheckUpdate::CheckForUpdates(const bool showMessage) { url = QUrl("https://api.github.com/repos/shadps4-emu/shadPS4/releases/latest"); checkName = false; } else { - if (Common::isRelease) { + if (Common::g_is_release) { Config::setUpdateChannel("Release"); } else { Config::setUpdateChannel("Nightly"); @@ -162,7 +161,7 @@ tr("The Auto Updater allows up to 60 update checks per hour.\\nYou have reached QString currentRev = (updateChannel == "Nightly") ? QString::fromStdString(Common::g_scm_rev) - : "v." + QString::fromStdString(Common::VERSION); + : "v." + QString::fromStdString(Common::g_version); QString currentDate = Common::g_scm_date; QDateTime dateTime = QDateTime::fromString(latestDate, Qt::ISODate); diff --git a/src/qt_gui/gui_context_menus.h b/src/qt_gui/gui_context_menus.h index b5732d0ca..0aff80ccc 100644 --- a/src/qt_gui/gui_context_menus.h +++ b/src/qt_gui/gui_context_menus.h @@ -13,7 +13,7 @@ #include "cheats_patches.h" #include "common/config.h" #include "common/path_util.h" -#include "common/version.h" +#include "common/scm_rev.h" #include "compatibility_info.h" #include "game_info.h" #include "trophy_viewer.h" @@ -115,7 +115,7 @@ public: compatibilityMenu->addAction(updateCompatibility); compatibilityMenu->addAction(viewCompatibilityReport); - if (Common::isRelease) { + if (Common::g_is_release) { compatibilityMenu->addAction(submitCompatibilityReport); } @@ -571,7 +571,7 @@ public: query.addQueryItem("game-name", QString::fromStdString(m_games[itemID].name)); query.addQueryItem("game-serial", QString::fromStdString(m_games[itemID].serial)); query.addQueryItem("game-version", QString::fromStdString(m_games[itemID].version)); - query.addQueryItem("emulator-version", QString(Common::VERSION)); + query.addQueryItem("emulator-version", QString(Common::g_version)); url.setQuery(query); QDesktopServices::openUrl(url); diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp index 072ad70e5..60ab58274 100644 --- a/src/qt_gui/main_window.cpp +++ b/src/qt_gui/main_window.cpp @@ -18,7 +18,6 @@ #include "common/path_util.h" #include "common/scm_rev.h" #include "common/string_util.h" -#include "common/version.h" #include "control_settings.h" #include "game_install_dialog.h" #include "kbm_gui.h" @@ -58,8 +57,8 @@ bool MainWindow::Init() { // show ui setMinimumSize(720, 405); std::string window_title = ""; - if (Common::isRelease) { - window_title = fmt::format("shadPS4 v{}", Common::VERSION); + if (Common::g_is_release) { + window_title = fmt::format("shadPS4 v{}", Common::g_version); } else { std::string remote_url(Common::g_scm_remote_url); std::string remote_host; @@ -69,10 +68,10 @@ bool MainWindow::Init() { remote_host = "unknown"; } if (remote_host == "shadps4-emu" || remote_url.length() == 0) { - window_title = fmt::format("shadPS4 v{} {} {}", Common::VERSION, Common::g_scm_branch, + window_title = fmt::format("shadPS4 v{} {} {}", Common::g_version, Common::g_scm_branch, Common::g_scm_desc); } else { - window_title = fmt::format("shadPS4 v{} {}/{} {}", Common::VERSION, remote_host, + window_title = fmt::format("shadPS4 v{} {}/{} {}", Common::g_version, remote_host, Common::g_scm_branch, Common::g_scm_desc); } } diff --git a/src/qt_gui/settings_dialog.cpp b/src/qt_gui/settings_dialog.cpp index 25c27fef3..5ee802b0c 100644 --- a/src/qt_gui/settings_dialog.cpp +++ b/src/qt_gui/settings_dialog.cpp @@ -9,7 +9,7 @@ #include #include "common/config.h" -#include "common/version.h" +#include "common/scm_rev.h" #include "qt_gui/compatibility_info.h" #ifdef ENABLE_DISCORD_RPC #include "common/discord_rpc_handler.h" @@ -491,7 +491,7 @@ void SettingsDialog::LoadValuesFromConfig() { QString updateChannel = QString::fromStdString(Config::getUpdateChannel()); ui->updateComboBox->setCurrentText( channelMap.key(updateChannel != "Release" && updateChannel != "Nightly" - ? (Common::isRelease ? "Release" : "Nightly") + ? (Common::g_is_release ? "Release" : "Nightly") : updateChannel)); #endif diff --git a/src/sdl_window.cpp b/src/sdl_window.cpp index fcdde7240..e369240c6 100644 --- a/src/sdl_window.cpp +++ b/src/sdl_window.cpp @@ -10,7 +10,6 @@ #include "common/assert.h" #include "common/config.h" #include "common/elf_info.h" -#include "common/version.h" #include "core/debug_state.h" #include "core/libraries/kernel/time.h" #include "core/libraries/pad/pad.h" From b8f6ef1c0b197291091af15713d48ac240fa61a9 Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Mon, 7 Apr 2025 02:23:04 -0700 Subject: [PATCH 03/27] externals: Update MoltenVK (#2754) --- CMakeLists.txt | 2 +- externals/MoltenVK/MoltenVK | 2 +- externals/MoltenVK/SPIRV-Cross | 2 +- externals/vulkan-headers | 2 +- src/video_core/renderer_vulkan/vk_platform.cpp | 10 ---------- 5 files changed, 4 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 844553340..c5d9f7c9c 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -220,7 +220,7 @@ find_package(SDL3 3.1.2 CONFIG) find_package(stb MODULE) find_package(toml11 4.2.0 CONFIG) find_package(tsl-robin-map 1.3.0 CONFIG) -find_package(VulkanHeaders 1.4.305 CONFIG) +find_package(VulkanHeaders 1.4.309 CONFIG) find_package(VulkanMemoryAllocator 3.1.0 CONFIG) find_package(xbyak 7.07 CONFIG) find_package(xxHash 0.8.2 MODULE) diff --git a/externals/MoltenVK/MoltenVK b/externals/MoltenVK/MoltenVK index 2048427e5..83510e0f3 160000 --- a/externals/MoltenVK/MoltenVK +++ b/externals/MoltenVK/MoltenVK @@ -1 +1 @@ -Subproject commit 2048427e50f9eb20f2b8f98d316ecaee398c9b91 +Subproject commit 83510e0f3835c3c43651dda087305abc42572e17 diff --git a/externals/MoltenVK/SPIRV-Cross b/externals/MoltenVK/SPIRV-Cross index 2c32b6bf8..cb71abe30 160000 --- a/externals/MoltenVK/SPIRV-Cross +++ b/externals/MoltenVK/SPIRV-Cross @@ -1 +1 @@ -Subproject commit 2c32b6bf86f3c4a5539aa1f0bacbd59fe61759cf +Subproject commit cb71abe3063094bf383379b15473d39cb1144120 diff --git a/externals/vulkan-headers b/externals/vulkan-headers index a03d2f6d5..952f776f6 160000 --- a/externals/vulkan-headers +++ b/externals/vulkan-headers @@ -1 +1 @@ -Subproject commit a03d2f6d5753b365d704d58161825890baad0755 +Subproject commit 952f776f6573aafbb62ea717d871cd1d6816c387 diff --git a/src/video_core/renderer_vulkan/vk_platform.cpp b/src/video_core/renderer_vulkan/vk_platform.cpp index 716473377..e656369b2 100644 --- a/src/video_core/renderer_vulkan/vk_platform.cpp +++ b/src/video_core/renderer_vulkan/vk_platform.cpp @@ -278,7 +278,6 @@ vk::UniqueInstance CreateInstance(Frontend::WindowSystemType window_type, bool e vk::Bool32 enable_force_barriers = vk::True; #ifdef __APPLE__ const vk::Bool32 mvk_debug_mode = enable_crash_diagnostic ? vk::True : vk::False; - constexpr vk::Bool32 mvk_use_mtlheap = vk::True; #endif const std::array layer_setings = { @@ -355,15 +354,6 @@ vk::UniqueInstance CreateInstance(Frontend::WindowSystemType window_type, bool e .valueCount = 1, .pValues = &mvk_debug_mode, }, - // Use MTLHeap to back device memory, which among other things allows us to - // use VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT via memory aliasing. - vk::LayerSettingEXT{ - .pLayerName = "MoltenVK", - .pSettingName = "MVK_CONFIG_USE_MTLHEAP", - .type = vk::LayerSettingTypeEXT::eBool32, - .valueCount = 1, - .pValues = &mvk_use_mtlheap, - }, #endif }; From 473b66649f6fc4645812526eb21b520f8f88f302 Mon Sep 17 00:00:00 2001 From: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com> Date: Mon, 7 Apr 2025 11:25:49 +0200 Subject: [PATCH 04/27] Fix compatibility related issues in the GUI (#2755) Co-authored-by: georgemoralis --- src/qt_gui/gui_context_menus.h | 43 ++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/src/qt_gui/gui_context_menus.h b/src/qt_gui/gui_context_menus.h index 0aff80ccc..2fd4588d2 100644 --- a/src/qt_gui/gui_context_menus.h +++ b/src/qt_gui/gui_context_menus.h @@ -122,7 +122,8 @@ public: menu.addMenu(compatibilityMenu); compatibilityMenu->setEnabled(Config::getCompatibilityEnabled()); - viewCompatibilityReport->setEnabled(!m_games[itemID].compatibility.url.isEmpty()); + viewCompatibilityReport->setEnabled(m_games[itemID].compatibility.status != + CompatibilityStatus::Unknown); // Show menu. auto selected = menu.exec(global_pos); @@ -557,24 +558,36 @@ public: } if (selected == viewCompatibilityReport) { - if (!m_games[itemID].compatibility.url.isEmpty()) - QDesktopServices::openUrl(QUrl(m_games[itemID].compatibility.url)); + if (m_games[itemID].compatibility.issue_number != "") { + auto url_issues = + "https://github.com/shadps4-emu/shadps4-game-compatibility/issues/"; + QDesktopServices::openUrl( + QUrl(url_issues + m_games[itemID].compatibility.issue_number)); + } } if (selected == submitCompatibilityReport) { - QUrl url = QUrl("https://github.com/shadps4-emu/shadps4-game-compatibility/issues/new"); - QUrlQuery query; - query.addQueryItem("template", QString("game_compatibility.yml")); - query.addQueryItem( - "title", QString("%1 - %2").arg(QString::fromStdString(m_games[itemID].serial), - QString::fromStdString(m_games[itemID].name))); - query.addQueryItem("game-name", QString::fromStdString(m_games[itemID].name)); - query.addQueryItem("game-serial", QString::fromStdString(m_games[itemID].serial)); - query.addQueryItem("game-version", QString::fromStdString(m_games[itemID].version)); - query.addQueryItem("emulator-version", QString(Common::g_version)); - url.setQuery(query); + if (m_games[itemID].compatibility.issue_number == "") { + QUrl url = + QUrl("https://github.com/shadps4-emu/shadps4-game-compatibility/issues/new"); + QUrlQuery query; + query.addQueryItem("template", QString("game_compatibility.yml")); + query.addQueryItem( + "title", QString("%1 - %2").arg(QString::fromStdString(m_games[itemID].serial), + QString::fromStdString(m_games[itemID].name))); + query.addQueryItem("game-name", QString::fromStdString(m_games[itemID].name)); + query.addQueryItem("game-serial", QString::fromStdString(m_games[itemID].serial)); + query.addQueryItem("game-version", QString::fromStdString(m_games[itemID].version)); + query.addQueryItem("emulator-version", QString(Common::g_version)); + url.setQuery(query); - QDesktopServices::openUrl(url); + QDesktopServices::openUrl(url); + } else { + auto url_issues = + "https://github.com/shadps4-emu/shadps4-game-compatibility/issues/"; + QDesktopServices::openUrl( + QUrl(url_issues + m_games[itemID].compatibility.issue_number)); + } } } From 040fd79ef7fa3b47683a98d6cbc301c368ca6807 Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Mon, 7 Apr 2025 10:57:39 -0700 Subject: [PATCH 05/27] Revert "build: Target same CPU architecture level as PS4. (#2745)" (#2757) * Revert "build: Target same CPU architecture level as PS4. (#2745)" This reverts commit 54b4d7fc788d570c14924d21fbb1f58de0254aad. Causing issues on M1 CPUs for some reason. * build: Update architecture comments and set mtune=generic. --- CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c5d9f7c9c..7f3d4468f 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,8 +54,9 @@ else() endif() if (ARCHITECTURE STREQUAL "x86_64") - # Target the same x86_64 feature set as the PS4 CPU to match requirements. - add_compile_options(-march=btver2 -mno-sse4a) + # Target Sandy Bridge as a reasonable subset of instructions supported by PS4 and host CPUs. + # Note that the native PS4 architecture 'btver2' has been attempted but causes issues with M1 CPUs. + add_compile_options(-march=sandybridge -mtune=generic) endif() if (APPLE AND ARCHITECTURE STREQUAL "x86_64" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64") From 7fee289b66bcc650e7fd7f116a36e0976ea9cdca Mon Sep 17 00:00:00 2001 From: Missake212 Date: Mon, 7 Apr 2025 19:29:51 +0100 Subject: [PATCH 06/27] Add information about firmware files (sys modules) in the README (#2758) * Update README.md * Update README.md * Update README.md --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index 6462c8bd2..0e2248970 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,27 @@ R3 | M | Keyboard and mouse inputs can be customized in the settings menu by clicking the Controller button, and further details and help on controls are also found there. Custom bindings are saved per-game. Inputs support up to three keys per binding, mouse buttons, mouse movement mapped to joystick input, and more. +# Firmware files + +shadPS4 can load some PlayStation 4 firmware files, these must be dumped from your legally owned PlayStation 4 console.\ +The following firmware modules are supported and must be placed in shadPS4's `user/sys_modules` folder. + +
+ +| Modules | Modules | Modules | Modules | +|-------------------------|-------------------------|-------------------------|-------------------------| +| libSceCesCs.sprx | libSceFont.sprx | libSceFontFt.sprx | libSceFreeTypeOt.sprx | +| libSceJson.sprx | libSceJson2.sprx | libSceLibcInternal.sprx | libSceNgs2.sprx | +| libSceRtc.sprx | libSceUlt.sprx | | | + +
+ +> [!Caution] +> The above modules are required to run the games properly and must be extracted from your PlayStation 4.\ +> **We do not provide any information or support on how to do this**. + + + # Main team - [**georgemoralis**](https://github.com/georgemoralis) From 08731303d857ba0d8684f77e193f2958e7691ccb Mon Sep 17 00:00:00 2001 From: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com> Date: Mon, 7 Apr 2025 22:58:00 +0200 Subject: [PATCH 07/27] Fix incorrect calculation setting the center of the joysticks one value off causing stick drift in games that assume already corrected input values (#2760) --- src/input/input_handler.cpp | 6 +++--- src/input/input_mouse.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/input/input_handler.cpp b/src/input/input_handler.cpp index f7c2ee296..3e2d66a6b 100644 --- a/src/input/input_handler.cpp +++ b/src/input/input_handler.cpp @@ -550,18 +550,18 @@ void ControllerOutput::FinalizeUpdate() { break; case Axis::TriggerLeft: ApplyDeadzone(new_param, lefttrigger_deadzone); - controller->Axis(0, c_axis, GetAxis(0x0, 0x80, *new_param)); + controller->Axis(0, c_axis, GetAxis(0x0, 0x7f, *new_param)); controller->CheckButton(0, OrbisPadButtonDataOffset::L2, *new_param > 0x20); return; case Axis::TriggerRight: ApplyDeadzone(new_param, righttrigger_deadzone); - controller->Axis(0, c_axis, GetAxis(0x0, 0x80, *new_param)); + controller->Axis(0, c_axis, GetAxis(0x0, 0x7f, *new_param)); controller->CheckButton(0, OrbisPadButtonDataOffset::R2, *new_param > 0x20); return; default: break; } - controller->Axis(0, c_axis, GetAxis(-0x80, 0x80, *new_param * multiplier)); + controller->Axis(0, c_axis, GetAxis(-0x80, 0x7f, *new_param * multiplier)); } } diff --git a/src/input/input_mouse.cpp b/src/input/input_mouse.cpp index 11feaeebb..c84d14b3f 100644 --- a/src/input/input_mouse.cpp +++ b/src/input/input_mouse.cpp @@ -61,11 +61,11 @@ Uint32 MousePolling(void* param, Uint32 id, Uint32 interval) { float a_x = cos(angle) * output_speed, a_y = sin(angle) * output_speed; if (d_x != 0 && d_y != 0) { - controller->Axis(0, axis_x, GetAxis(-0x80, 0x80, a_x)); - controller->Axis(0, axis_y, GetAxis(-0x80, 0x80, a_y)); + controller->Axis(0, axis_x, GetAxis(-0x80, 0x7f, a_x)); + controller->Axis(0, axis_y, GetAxis(-0x80, 0x7f, a_y)); } else { - controller->Axis(0, axis_x, GetAxis(-0x80, 0x80, 0)); - controller->Axis(0, axis_y, GetAxis(-0x80, 0x80, 0)); + controller->Axis(0, axis_x, GetAxis(-0x80, 0x7f, 0)); + controller->Axis(0, axis_y, GetAxis(-0x80, 0x7f, 0)); } return interval; From 03b1fef3318ce5f972e9d1c3590556e556343345 Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Tue, 8 Apr 2025 07:22:16 -0700 Subject: [PATCH 08/27] renderer_vulkan: Only update dynamic state when changed. (#2751) --- .../renderer_vulkan/vk_rasterizer.cpp | 139 +++++------ .../renderer_vulkan/vk_rasterizer.h | 6 +- .../renderer_vulkan/vk_scheduler.cpp | 136 +++++++++++ src/video_core/renderer_vulkan/vk_scheduler.h | 219 ++++++++++++++++++ 4 files changed, 414 insertions(+), 86 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index ecb0c0a75..600c205e3 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -946,19 +946,19 @@ void Rasterizer::UnmapMemory(VAddr addr, u64 size) { mapped_ranges -= boost::icl::interval::right_open(addr, addr + size); } -void Rasterizer::UpdateDynamicState(const GraphicsPipeline& pipeline) { +void Rasterizer::UpdateDynamicState(const GraphicsPipeline& pipeline) const { UpdateViewportScissorState(); UpdateDepthStencilState(); - const auto& regs = liverpool->regs; - const auto cmdbuf = scheduler.CommandBuffer(); - cmdbuf.setBlendConstants(®s.blend_constants.red); - if (instance.IsDynamicColorWriteMaskSupported()) { - cmdbuf.setColorWriteMaskEXT(0, pipeline.GetWriteMasks()); - } + auto& dynamic_state = scheduler.GetDynamicState(); + dynamic_state.SetBlendConstants(&liverpool->regs.blend_constants.red); + dynamic_state.SetColorWriteMasks(pipeline.GetWriteMasks()); + + // Commit new dynamic state to the command buffer. + dynamic_state.Commit(instance, scheduler.CommandBuffer()); } -void Rasterizer::UpdateViewportScissorState() { +void Rasterizer::UpdateViewportScissorState() const { const auto& regs = liverpool->regs; const auto combined_scissor_value_tl = [](s16 scr, s16 win, s16 gen, s16 win_offset) { @@ -1071,92 +1071,65 @@ void Rasterizer::UpdateViewportScissorState() { scissors.push_back(empty_scissor); } - const auto cmdbuf = scheduler.CommandBuffer(); - cmdbuf.setViewportWithCountEXT(viewports); - cmdbuf.setScissorWithCountEXT(scissors); + auto& dynamic_state = scheduler.GetDynamicState(); + dynamic_state.SetViewports(viewports); + dynamic_state.SetScissors(scissors); } -void Rasterizer::UpdateDepthStencilState() { - auto& regs = liverpool->regs; - const auto cmdbuf = scheduler.CommandBuffer(); +void Rasterizer::UpdateDepthStencilState() const { + const auto& regs = liverpool->regs; + auto& dynamic_state = scheduler.GetDynamicState(); - bool depth_test = regs.depth_control.depth_enable && regs.depth_buffer.DepthValid(); - cmdbuf.setDepthTestEnableEXT(depth_test); - cmdbuf.setDepthWriteEnableEXT(regs.depth_control.depth_write_enable && - !regs.depth_render_control.depth_clear_enable); - if (depth_test) { - cmdbuf.setDepthCompareOpEXT(LiverpoolToVK::CompareOp(regs.depth_control.depth_func)); + const auto depth_test_enabled = + regs.depth_control.depth_enable && regs.depth_buffer.DepthValid(); + dynamic_state.SetDepthTestEnabled(depth_test_enabled); + if (depth_test_enabled) { + dynamic_state.SetDepthWriteEnabled(regs.depth_control.depth_write_enable && + !regs.depth_render_control.depth_clear_enable); + dynamic_state.SetDepthCompareOp(LiverpoolToVK::CompareOp(regs.depth_control.depth_func)); } - if (instance.IsDepthBoundsSupported()) { - cmdbuf.setDepthBoundsTestEnableEXT(regs.depth_control.depth_bounds_enable); - if (regs.depth_control.depth_bounds_enable) { - cmdbuf.setDepthBounds(regs.depth_bounds_min, regs.depth_bounds_max); - } + const auto depth_bounds_test_enabled = regs.depth_control.depth_bounds_enable; + dynamic_state.SetDepthBoundsTestEnabled(depth_bounds_test_enabled); + if (depth_bounds_test_enabled) { + dynamic_state.SetDepthBounds(regs.depth_bounds_min, regs.depth_bounds_max); } - cmdbuf.setDepthBiasEnableEXT(regs.polygon_control.NeedsBias()); - if (regs.polygon_control.enable_polygon_offset_front) { - cmdbuf.setDepthBias(regs.poly_offset.front_offset, regs.poly_offset.depth_bias, - regs.poly_offset.front_scale / 16.f); - } else if (regs.polygon_control.enable_polygon_offset_back) { - cmdbuf.setDepthBias(regs.poly_offset.back_offset, regs.poly_offset.depth_bias, - regs.poly_offset.back_scale / 16.f); + const auto depth_bias_enabled = regs.polygon_control.NeedsBias(); + if (depth_bias_enabled) { + dynamic_state.SetDepthBias( + regs.polygon_control.enable_polygon_offset_front ? regs.poly_offset.front_offset + : regs.poly_offset.back_offset, + regs.poly_offset.depth_bias, + (regs.polygon_control.enable_polygon_offset_front ? regs.poly_offset.front_scale + : regs.poly_offset.back_scale) / + 16.f); } - cmdbuf.setStencilTestEnableEXT(regs.depth_control.stencil_enable && - regs.depth_buffer.StencilValid()); - if (regs.depth_control.stencil_enable) { - const auto front_fail_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_fail_front); - const auto front_pass_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zpass_front); - const auto front_depth_fail_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zfail_front); - const auto front_compare_op = LiverpoolToVK::CompareOp(regs.depth_control.stencil_ref_func); - if (regs.depth_control.backface_enable) { - const auto back_fail_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_fail_back); - const auto back_pass_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zpass_back); - const auto back_depth_fail_op = - LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zfail_back); - const auto back_compare_op = - LiverpoolToVK::CompareOp(regs.depth_control.stencil_bf_func); - cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eFront, front_fail_op, front_pass_op, - front_depth_fail_op, front_compare_op); - cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eBack, back_fail_op, back_pass_op, - back_depth_fail_op, back_compare_op); - } else { - cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eFrontAndBack, front_fail_op, - front_pass_op, front_depth_fail_op, front_compare_op); - } + const auto stencil_test_enabled = + regs.depth_control.stencil_enable && regs.depth_buffer.StencilValid(); + dynamic_state.SetStencilTestEnabled(stencil_test_enabled); + if (stencil_test_enabled) { + const StencilOps front_ops{ + .fail_op = LiverpoolToVK::StencilOp(regs.stencil_control.stencil_fail_front), + .pass_op = LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zpass_front), + .depth_fail_op = LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zfail_front), + .compare_op = LiverpoolToVK::CompareOp(regs.depth_control.stencil_ref_func), + }; + const StencilOps back_ops = regs.depth_control.backface_enable ? StencilOps{ + .fail_op = LiverpoolToVK::StencilOp(regs.stencil_control.stencil_fail_back), + .pass_op = LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zpass_back), + .depth_fail_op = LiverpoolToVK::StencilOp(regs.stencil_control.stencil_zfail_back), + .compare_op = LiverpoolToVK::CompareOp(regs.depth_control.stencil_bf_func), + } : front_ops; + dynamic_state.SetStencilOps(front_ops, back_ops); const auto front = regs.stencil_ref_front; - const auto back = regs.stencil_ref_back; - if (front.stencil_test_val == back.stencil_test_val) { - cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eFrontAndBack, - front.stencil_test_val); - } else { - cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eFront, front.stencil_test_val); - cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eBack, back.stencil_test_val); - } - - if (front.stencil_write_mask == back.stencil_write_mask) { - cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eFrontAndBack, - front.stencil_write_mask); - } else { - cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eFront, front.stencil_write_mask); - cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eBack, back.stencil_write_mask); - } - - if (front.stencil_mask == back.stencil_mask) { - cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eFrontAndBack, - front.stencil_mask); - } else { - cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eFront, front.stencil_mask); - cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eBack, back.stencil_mask); - } + const auto back = + regs.depth_control.backface_enable ? regs.stencil_ref_back : regs.stencil_ref_front; + dynamic_state.SetStencilReferences(front.stencil_test_val, back.stencil_test_val); + dynamic_state.SetStencilWriteMasks(front.stencil_write_mask, back.stencil_write_mask); + dynamic_state.SetStencilCompareMasks(front.stencil_mask, back.stencil_mask); } } diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index 8e5d0065b..02c24c7ec 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h @@ -75,9 +75,9 @@ private: void DepthStencilCopy(bool is_depth, bool is_stencil); void EliminateFastClear(); - void UpdateDynamicState(const GraphicsPipeline& pipeline); - void UpdateViewportScissorState(); - void UpdateDepthStencilState(); + void UpdateDynamicState(const GraphicsPipeline& pipeline) const; + void UpdateViewportScissorState() const; + void UpdateDepthStencilState() const; bool FilterDraw(); diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp index fd84c54ed..6b872bdaa 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.cpp +++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp @@ -97,6 +97,9 @@ void Scheduler::AllocateWorkerCommandBuffers() { ASSERT_MSG(begin_result == vk::Result::eSuccess, "Failed to begin command buffer: {}", vk::to_string(begin_result)); + // Invalidate dynamic state so it gets applied to the new command buffer. + dynamic_state.Invalidate(); + #if TRACY_GPU_ENABLED auto* profiler_ctx = instance.GetProfilerContext(); if (profiler_ctx) { @@ -164,4 +167,137 @@ void Scheduler::SubmitExecution(SubmitInfo& info) { } } +void DynamicState::Commit(const Instance& instance, const vk::CommandBuffer& cmdbuf) { + if (dirty_state.viewports) { + dirty_state.viewports = false; + cmdbuf.setViewportWithCountEXT(viewports); + } + if (dirty_state.scissors) { + dirty_state.scissors = false; + cmdbuf.setScissorWithCountEXT(scissors); + } + if (dirty_state.depth_test_enabled) { + dirty_state.depth_test_enabled = false; + cmdbuf.setDepthTestEnableEXT(depth_test_enabled); + } + if (dirty_state.depth_write_enabled) { + dirty_state.depth_write_enabled = false; + // Note that this must be set in a command buffer even if depth test is disabled. + cmdbuf.setDepthWriteEnableEXT(depth_write_enabled); + } + if (depth_test_enabled && dirty_state.depth_compare_op) { + dirty_state.depth_compare_op = false; + cmdbuf.setDepthCompareOpEXT(depth_compare_op); + } + if (dirty_state.depth_bounds_test_enabled) { + dirty_state.depth_bounds_test_enabled = false; + if (instance.IsDepthBoundsSupported()) { + cmdbuf.setDepthBoundsTestEnableEXT(depth_bounds_test_enabled); + } + } + if (depth_bounds_test_enabled && dirty_state.depth_bounds) { + dirty_state.depth_bounds = false; + if (instance.IsDepthBoundsSupported()) { + cmdbuf.setDepthBounds(depth_bounds_min, depth_bounds_max); + } + } + if (dirty_state.depth_bias_enabled) { + dirty_state.depth_bias_enabled = false; + cmdbuf.setDepthBiasEnableEXT(depth_bias_enabled); + } + if (depth_bias_enabled && dirty_state.depth_bias) { + dirty_state.depth_bias = false; + cmdbuf.setDepthBias(depth_bias_constant, depth_bias_clamp, depth_bias_slope); + } + if (dirty_state.stencil_test_enabled) { + dirty_state.stencil_test_enabled = false; + cmdbuf.setStencilTestEnableEXT(stencil_test_enabled); + } + if (stencil_test_enabled) { + if (dirty_state.stencil_front_ops && dirty_state.stencil_back_ops && + stencil_front_ops == stencil_back_ops) { + dirty_state.stencil_front_ops = false; + dirty_state.stencil_back_ops = false; + cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eFrontAndBack, + stencil_front_ops.fail_op, stencil_front_ops.pass_op, + stencil_front_ops.depth_fail_op, stencil_front_ops.compare_op); + } else { + if (dirty_state.stencil_front_ops) { + dirty_state.stencil_front_ops = false; + cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eFront, stencil_front_ops.fail_op, + stencil_front_ops.pass_op, stencil_front_ops.depth_fail_op, + stencil_front_ops.compare_op); + } + if (dirty_state.stencil_back_ops) { + dirty_state.stencil_back_ops = false; + cmdbuf.setStencilOpEXT(vk::StencilFaceFlagBits::eBack, stencil_back_ops.fail_op, + stencil_back_ops.pass_op, stencil_back_ops.depth_fail_op, + stencil_back_ops.compare_op); + } + } + if (dirty_state.stencil_front_reference && dirty_state.stencil_back_reference && + stencil_front_reference == stencil_back_reference) { + dirty_state.stencil_front_reference = false; + dirty_state.stencil_back_reference = false; + cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eFrontAndBack, + stencil_front_reference); + } else { + if (dirty_state.stencil_front_reference) { + dirty_state.stencil_front_reference = false; + cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eFront, + stencil_front_reference); + } + if (dirty_state.stencil_back_reference) { + dirty_state.stencil_back_reference = false; + cmdbuf.setStencilReference(vk::StencilFaceFlagBits::eBack, stencil_back_reference); + } + } + if (dirty_state.stencil_front_write_mask && dirty_state.stencil_back_write_mask && + stencil_front_write_mask == stencil_back_write_mask) { + dirty_state.stencil_front_write_mask = false; + dirty_state.stencil_back_write_mask = false; + cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eFrontAndBack, + stencil_front_write_mask); + } else { + if (dirty_state.stencil_front_write_mask) { + dirty_state.stencil_front_write_mask = false; + cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eFront, + stencil_front_write_mask); + } + if (dirty_state.stencil_back_write_mask) { + dirty_state.stencil_back_write_mask = false; + cmdbuf.setStencilWriteMask(vk::StencilFaceFlagBits::eBack, stencil_back_write_mask); + } + } + if (dirty_state.stencil_front_compare_mask && dirty_state.stencil_back_compare_mask && + stencil_front_compare_mask == stencil_back_compare_mask) { + dirty_state.stencil_front_compare_mask = false; + dirty_state.stencil_back_compare_mask = false; + cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eFrontAndBack, + stencil_front_compare_mask); + } else { + if (dirty_state.stencil_front_compare_mask) { + dirty_state.stencil_front_compare_mask = false; + cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eFront, + stencil_front_compare_mask); + } + if (dirty_state.stencil_back_compare_mask) { + dirty_state.stencil_back_compare_mask = false; + cmdbuf.setStencilCompareMask(vk::StencilFaceFlagBits::eBack, + stencil_back_compare_mask); + } + } + } + if (dirty_state.blend_constants) { + dirty_state.blend_constants = false; + cmdbuf.setBlendConstants(blend_constants); + } + if (dirty_state.color_write_masks) { + dirty_state.color_write_masks = false; + if (instance.IsDynamicColorWriteMaskSupported()) { + cmdbuf.setColorWriteMaskEXT(0, color_write_masks); + } + } +} + } // namespace Vulkan diff --git a/src/video_core/renderer_vulkan/vk_scheduler.h b/src/video_core/renderer_vulkan/vk_scheduler.h index fd5e68373..880bd4b04 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.h +++ b/src/video_core/renderer_vulkan/vk_scheduler.h @@ -7,6 +7,7 @@ #include #include "common/types.h" #include "common/unique_function.h" +#include "video_core/amdgpu/liverpool.h" #include "video_core/renderer_vulkan/vk_master_semaphore.h" #include "video_core/renderer_vulkan/vk_resource_pool.h" @@ -55,6 +56,219 @@ struct SubmitInfo { } }; +using Viewports = boost::container::static_vector; +using Scissors = boost::container::static_vector; +using ColorWriteMasks = std::array; +struct StencilOps { + vk::StencilOp fail_op{}; + vk::StencilOp pass_op{}; + vk::StencilOp depth_fail_op{}; + vk::CompareOp compare_op{}; + + bool operator==(const StencilOps& other) const { + return fail_op == other.fail_op && pass_op == other.pass_op && + depth_fail_op == other.depth_fail_op && compare_op == other.compare_op; + } +}; +struct DynamicState { + struct { + bool viewports : 1; + bool scissors : 1; + + bool depth_test_enabled : 1; + bool depth_write_enabled : 1; + bool depth_compare_op : 1; + + bool depth_bounds_test_enabled : 1; + bool depth_bounds : 1; + + bool depth_bias_enabled : 1; + bool depth_bias : 1; + + bool stencil_test_enabled : 1; + bool stencil_front_ops : 1; + bool stencil_front_reference : 1; + bool stencil_front_write_mask : 1; + bool stencil_front_compare_mask : 1; + bool stencil_back_ops : 1; + bool stencil_back_reference : 1; + bool stencil_back_write_mask : 1; + bool stencil_back_compare_mask : 1; + + bool blend_constants : 1; + bool color_write_masks : 1; + } dirty_state{}; + + Viewports viewports{}; + Scissors scissors{}; + + bool depth_test_enabled{}; + bool depth_write_enabled{}; + vk::CompareOp depth_compare_op{}; + + bool depth_bounds_test_enabled{}; + float depth_bounds_min{}; + float depth_bounds_max{}; + + bool depth_bias_enabled{}; + float depth_bias_constant{}; + float depth_bias_clamp{}; + float depth_bias_slope{}; + + bool stencil_test_enabled{}; + StencilOps stencil_front_ops{}; + u32 stencil_front_reference{}; + u32 stencil_front_write_mask{}; + u32 stencil_front_compare_mask{}; + StencilOps stencil_back_ops{}; + u32 stencil_back_reference{}; + u32 stencil_back_write_mask{}; + u32 stencil_back_compare_mask{}; + + float blend_constants[4]{}; + ColorWriteMasks color_write_masks{}; + + /// Commits the dynamic state to the provided command buffer. + void Commit(const Instance& instance, const vk::CommandBuffer& cmdbuf); + + /// Invalidates all dynamic state to be flushed into the next command buffer. + void Invalidate() { + std::memset(&dirty_state, 0xFF, sizeof(dirty_state)); + } + + void SetViewports(const Viewports& viewports_) { + if (!std::ranges::equal(viewports, viewports_)) { + viewports = viewports_; + dirty_state.viewports = true; + } + } + + void SetScissors(const Scissors& scissors_) { + if (!std::ranges::equal(scissors, scissors_)) { + scissors = scissors_; + dirty_state.scissors = true; + } + } + + void SetDepthTestEnabled(const bool enabled) { + if (depth_test_enabled != enabled) { + depth_test_enabled = enabled; + dirty_state.depth_test_enabled = true; + } + } + + void SetDepthWriteEnabled(const bool enabled) { + if (depth_write_enabled != enabled) { + depth_write_enabled = enabled; + dirty_state.depth_write_enabled = true; + } + } + + void SetDepthCompareOp(const vk::CompareOp compare_op) { + if (depth_compare_op != compare_op) { + depth_compare_op = compare_op; + dirty_state.depth_compare_op = true; + } + } + + void SetDepthBoundsTestEnabled(const bool enabled) { + if (depth_bounds_test_enabled != enabled) { + depth_bounds_test_enabled = enabled; + dirty_state.depth_bounds_test_enabled = true; + } + } + + void SetDepthBounds(const float min, const float max) { + if (depth_bounds_min != min || depth_bounds_max != max) { + depth_bounds_min = min; + depth_bounds_max = max; + dirty_state.depth_bounds = true; + } + } + + void SetDepthBiasEnabled(const bool enabled) { + if (depth_bias_enabled != enabled) { + depth_bias_enabled = enabled; + dirty_state.depth_bias_enabled = true; + } + } + + void SetDepthBias(const float constant, const float clamp, const float slope) { + if (depth_bias_constant != constant || depth_bias_clamp != clamp || + depth_bias_slope != slope) { + depth_bias_constant = constant; + depth_bias_clamp = clamp; + depth_bias_slope = slope; + dirty_state.depth_bias = true; + } + } + + void SetStencilTestEnabled(const bool enabled) { + if (stencil_test_enabled != enabled) { + stencil_test_enabled = enabled; + dirty_state.stencil_test_enabled = true; + } + } + + void SetStencilOps(const StencilOps& front_ops, const StencilOps& back_ops) { + if (stencil_front_ops != front_ops) { + stencil_front_ops = front_ops; + dirty_state.stencil_front_ops = true; + } + if (stencil_back_ops != back_ops) { + stencil_back_ops = back_ops; + dirty_state.stencil_back_ops = true; + } + } + + void SetStencilReferences(const u32 front_reference, const u32 back_reference) { + if (stencil_front_reference != front_reference) { + stencil_front_reference = front_reference; + dirty_state.stencil_front_reference = true; + } + if (stencil_back_reference != back_reference) { + stencil_back_reference = back_reference; + dirty_state.stencil_back_reference = true; + } + } + + void SetStencilWriteMasks(const u32 front_write_mask, const u32 back_write_mask) { + if (stencil_front_write_mask != front_write_mask) { + stencil_front_write_mask = front_write_mask; + dirty_state.stencil_front_write_mask = true; + } + if (stencil_back_write_mask != back_write_mask) { + stencil_back_write_mask = back_write_mask; + dirty_state.stencil_back_write_mask = true; + } + } + + void SetStencilCompareMasks(const u32 front_compare_mask, const u32 back_compare_mask) { + if (stencil_front_compare_mask != front_compare_mask) { + stencil_front_compare_mask = front_compare_mask; + dirty_state.stencil_front_compare_mask = true; + } + if (stencil_back_compare_mask != back_compare_mask) { + stencil_back_compare_mask = back_compare_mask; + dirty_state.stencil_back_compare_mask = true; + } + } + + void SetBlendConstants(const float blend_constants_[4]) { + if (!std::equal(blend_constants, std::end(blend_constants), blend_constants_)) { + std::memcpy(blend_constants, blend_constants_, sizeof(blend_constants)); + dirty_state.blend_constants = true; + } + } + + void SetColorWriteMasks(const ColorWriteMasks& color_write_masks_) { + if (!std::ranges::equal(color_write_masks, color_write_masks_)) { + color_write_masks = color_write_masks_; + dirty_state.color_write_masks = true; + } + } +}; + class Scheduler { public: explicit Scheduler(const Instance& instance); @@ -81,6 +295,10 @@ public: return render_state; } + DynamicState& GetDynamicState() { + return dynamic_state; + } + /// Returns the current command buffer. vk::CommandBuffer CommandBuffer() const { return current_cmdbuf; @@ -125,6 +343,7 @@ private: }; std::queue pending_ops; RenderState render_state; + DynamicState dynamic_state; bool is_rendering = false; tracy::VkCtxScope* profiler_scope{}; }; From 29656563259be924e04dca02e5f2a7c63f27beee Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Wed, 9 Apr 2025 00:54:39 -0700 Subject: [PATCH 09/27] build: Target same CPU architecture level as PS4. (#2763) --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f3d4468f..37492eeb3 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,9 +54,9 @@ else() endif() if (ARCHITECTURE STREQUAL "x86_64") - # Target Sandy Bridge as a reasonable subset of instructions supported by PS4 and host CPUs. - # Note that the native PS4 architecture 'btver2' has been attempted but causes issues with M1 CPUs. - add_compile_options(-march=sandybridge -mtune=generic) + # Target the same CPU architecture as the PS4, to maintain the same level of compatibility. + # Exclude SSE4a as it is only available on AMD CPUs. + add_compile_options(-march=btver2 -mtune=generic -mno-sse4a) endif() if (APPLE AND ARCHITECTURE STREQUAL "x86_64" AND CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64") From e3b1c041d0de657795e8753cea34da8481c61c4c Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Wed, 9 Apr 2025 00:59:33 -0700 Subject: [PATCH 10/27] documents: Update macOS version in quickstart guide. --- documents/Quickstart/Quickstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documents/Quickstart/Quickstart.md b/documents/Quickstart/Quickstart.md index 9c6bc5a6f..55825ac7d 100644 --- a/documents/Quickstart/Quickstart.md +++ b/documents/Quickstart/Quickstart.md @@ -24,7 +24,7 @@ SPDX-License-Identifier: GPL-2.0-or-later - A CPU supporting the following instruction sets: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, F16C, CLMUL, AES, BMI1, MOVBE, XSAVE, ABM - **Intel**: Haswell generation or newer - **AMD**: Jaguar generation or newer - - **Apple**: Rosetta 2 on macOS 15 or newer + - **Apple**: Rosetta 2 on macOS 15.4 or newer ### GPU From 5abec2a2917a52cf01f2ef9f5c9e3e2656988383 Mon Sep 17 00:00:00 2001 From: Dmugetsu <168934208+diegolix29@users.noreply.github.com> Date: Wed, 9 Apr 2025 18:06:54 -0600 Subject: [PATCH 11/27] Enabling Depth Bias Explicity (#2766) --- src/video_core/renderer_vulkan/vk_rasterizer.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 600c205e3..5aae43cc8 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -1096,14 +1096,13 @@ void Rasterizer::UpdateDepthStencilState() const { } const auto depth_bias_enabled = regs.polygon_control.NeedsBias(); + dynamic_state.SetDepthBiasEnabled(depth_bias_enabled); if (depth_bias_enabled) { + const bool front = regs.polygon_control.enable_polygon_offset_front; dynamic_state.SetDepthBias( - regs.polygon_control.enable_polygon_offset_front ? regs.poly_offset.front_offset - : regs.poly_offset.back_offset, + front ? regs.poly_offset.front_offset : regs.poly_offset.back_offset, regs.poly_offset.depth_bias, - (regs.polygon_control.enable_polygon_offset_front ? regs.poly_offset.front_scale - : regs.poly_offset.back_scale) / - 16.f); + (front ? regs.poly_offset.front_scale : regs.poly_offset.back_scale) / 16.f); } const auto stencil_test_enabled = From 37d4cd091c0ff3d534380f686b986a5699da8f8b Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Thu, 10 Apr 2025 16:20:01 -0700 Subject: [PATCH 12/27] renderer_vulkan: Make some primitive state dynamic. (#2764) * renderer_vulkan: Make some primitive state dynamic. * renderer_vulkan: Silence MoltenVK primitive restart warning spam. --- .../renderer_vulkan/liverpool_to_vk.cpp | 12 ++++++ .../renderer_vulkan/liverpool_to_vk.h | 2 + .../renderer_vulkan/vk_graphics_pipeline.cpp | 41 ++++++++++--------- .../renderer_vulkan/vk_graphics_pipeline.h | 14 ------- src/video_core/renderer_vulkan/vk_instance.h | 5 +++ .../renderer_vulkan/vk_pipeline_cache.cpp | 4 -- .../renderer_vulkan/vk_rasterizer.cpp | 20 +++++++++ .../renderer_vulkan/vk_rasterizer.h | 1 + .../renderer_vulkan/vk_scheduler.cpp | 14 +++++++ src/video_core/renderer_vulkan/vk_scheduler.h | 29 +++++++++++++ 10 files changed, 105 insertions(+), 37 deletions(-) diff --git a/src/video_core/renderer_vulkan/liverpool_to_vk.cpp b/src/video_core/renderer_vulkan/liverpool_to_vk.cpp index 843bedb20..a6ae0c304 100644 --- a/src/video_core/renderer_vulkan/liverpool_to_vk.cpp +++ b/src/video_core/renderer_vulkan/liverpool_to_vk.cpp @@ -156,6 +156,18 @@ vk::CullModeFlags CullMode(Liverpool::CullMode mode) { } } +vk::FrontFace FrontFace(Liverpool::FrontFace face) { + switch (face) { + case Liverpool::FrontFace::Clockwise: + return vk::FrontFace::eClockwise; + case Liverpool::FrontFace::CounterClockwise: + return vk::FrontFace::eCounterClockwise; + default: + UNREACHABLE(); + return vk::FrontFace::eClockwise; + } +} + vk::BlendFactor BlendFactor(Liverpool::BlendControl::BlendFactor factor) { using BlendFactor = Liverpool::BlendControl::BlendFactor; switch (factor) { diff --git a/src/video_core/renderer_vulkan/liverpool_to_vk.h b/src/video_core/renderer_vulkan/liverpool_to_vk.h index 42da7aa06..fca0a8378 100644 --- a/src/video_core/renderer_vulkan/liverpool_to_vk.h +++ b/src/video_core/renderer_vulkan/liverpool_to_vk.h @@ -26,6 +26,8 @@ vk::PolygonMode PolygonMode(Liverpool::PolygonMode mode); vk::CullModeFlags CullMode(Liverpool::CullMode mode); +vk::FrontFace FrontFace(Liverpool::FrontFace mode); + vk::BlendFactor BlendFactor(Liverpool::BlendControl::BlendFactor factor); vk::BlendOp BlendOp(Liverpool::BlendControl::BlendFunc func); diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp index 7cd4bd872..354e22331 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp @@ -28,6 +28,15 @@ static constexpr std::array LogicalStageToStageBit = { vk::ShaderStageFlagBits::eCompute, }; +static bool IsPrimitiveTopologyList(const vk::PrimitiveTopology topology) { + return topology == vk::PrimitiveTopology::ePointList || + topology == vk::PrimitiveTopology::eLineList || + topology == vk::PrimitiveTopology::eTriangleList || + topology == vk::PrimitiveTopology::eLineListWithAdjacency || + topology == vk::PrimitiveTopology::eTriangleListWithAdjacency || + topology == vk::PrimitiveTopology::ePatchList; +} + GraphicsPipeline::GraphicsPipeline( const Instance& instance, Scheduler& scheduler, DescriptorHeap& desc_heap, const Shader::Profile& profile, const GraphicsPipelineKey& key_, @@ -75,19 +84,15 @@ GraphicsPipeline::GraphicsPipeline( .pVertexAttributeDescriptions = vertex_attributes.data(), }; - auto prim_restart = key.enable_primitive_restart != 0; - if (prim_restart && IsPrimitiveListTopology() && !instance.IsListRestartSupported()) { - LOG_DEBUG(Render_Vulkan, - "Primitive restart is enabled for list topology but not supported by driver."); - prim_restart = false; - } + const auto topology = LiverpoolToVK::PrimitiveType(key.prim_type); const vk::PipelineInputAssemblyStateCreateInfo input_assembly = { - .topology = LiverpoolToVK::PrimitiveType(key.prim_type), - .primitiveRestartEnable = prim_restart, + .topology = topology, + // Avoid warning spam on all pipelines about unsupported restart disable, if not supported. + // However, must be false for list topologies to avoid validation errors. + .primitiveRestartEnable = + !instance.IsPrimitiveRestartDisableSupported() && !IsPrimitiveTopologyList(topology), }; - ASSERT_MSG(!prim_restart || key.primitive_restart_index == 0xFFFF || - key.primitive_restart_index == 0xFFFFFFFF, - "Primitive restart index other than -1 is not supported yet"); + const bool is_rect_list = key.prim_type == AmdGpu::PrimitiveType::RectList; const bool is_quad_list = key.prim_type == AmdGpu::PrimitiveType::QuadList; const auto& fs_info = runtime_infos[u32(Shader::LogicalStage::Fragment)].fs_info; @@ -99,12 +104,6 @@ GraphicsPipeline::GraphicsPipeline( .depthClampEnable = false, .rasterizerDiscardEnable = false, .polygonMode = LiverpoolToVK::PolygonMode(key.polygon_mode), - .cullMode = LiverpoolToVK::IsPrimitiveCulled(key.prim_type) - ? LiverpoolToVK::CullMode(key.cull_mode) - : vk::CullModeFlagBits::eNone, - .frontFace = key.front_face == Liverpool::FrontFace::Clockwise - ? vk::FrontFace::eClockwise - : vk::FrontFace::eCounterClockwise, .lineWidth = 1.0f, }; @@ -122,16 +121,20 @@ GraphicsPipeline::GraphicsPipeline( .pNext = instance.IsDepthClipControlSupported() ? &clip_control : nullptr, }; - boost::container::static_vector dynamic_states = { + boost::container::static_vector dynamic_states = { vk::DynamicState::eViewportWithCountEXT, vk::DynamicState::eScissorWithCountEXT, vk::DynamicState::eBlendConstants, vk::DynamicState::eDepthTestEnableEXT, vk::DynamicState::eDepthWriteEnableEXT, vk::DynamicState::eDepthCompareOpEXT, vk::DynamicState::eDepthBiasEnableEXT, vk::DynamicState::eDepthBias, vk::DynamicState::eStencilTestEnableEXT, vk::DynamicState::eStencilReference, vk::DynamicState::eStencilCompareMask, vk::DynamicState::eStencilWriteMask, - vk::DynamicState::eStencilOpEXT, + vk::DynamicState::eStencilOpEXT, vk::DynamicState::eCullModeEXT, + vk::DynamicState::eFrontFaceEXT, }; + if (instance.IsPrimitiveRestartDisableSupported()) { + dynamic_states.push_back(vk::DynamicState::ePrimitiveRestartEnableEXT); + } if (instance.IsDepthBoundsSupported()) { dynamic_states.push_back(vk::DynamicState::eDepthBoundsTestEnableEXT); dynamic_states.push_back(vk::DynamicState::eDepthBounds); diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.h b/src/video_core/renderer_vulkan/vk_graphics_pipeline.h index 7ffd14064..59230ae46 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.h +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.h @@ -42,11 +42,7 @@ struct GraphicsPipelineKey { u32 num_samples; u32 mrt_mask; AmdGpu::PrimitiveType prim_type; - u32 enable_primitive_restart; - u32 primitive_restart_index; Liverpool::PolygonMode polygon_mode; - Liverpool::CullMode cull_mode; - Liverpool::FrontFace front_face; Liverpool::ClipSpace clip_space; Liverpool::ColorBufferMask cb_shader_mask; std::array blend_controls; @@ -82,16 +78,6 @@ public: return key.mrt_mask; } - [[nodiscard]] bool IsPrimitiveListTopology() const { - return key.prim_type == AmdGpu::PrimitiveType::PointList || - key.prim_type == AmdGpu::PrimitiveType::LineList || - key.prim_type == AmdGpu::PrimitiveType::TriangleList || - key.prim_type == AmdGpu::PrimitiveType::AdjLineList || - key.prim_type == AmdGpu::PrimitiveType::AdjTriangleList || - key.prim_type == AmdGpu::PrimitiveType::RectList || - key.prim_type == AmdGpu::PrimitiveType::QuadList; - } - /// Gets the attributes and bindings for vertex inputs. template void GetVertexInputs(VertexInputs& attributes, VertexInputs& bindings, diff --git a/src/video_core/renderer_vulkan/vk_instance.h b/src/video_core/renderer_vulkan/vk_instance.h index 04b68c1d0..6de419041 100644 --- a/src/video_core/renderer_vulkan/vk_instance.h +++ b/src/video_core/renderer_vulkan/vk_instance.h @@ -292,6 +292,11 @@ public: properties.limits.framebufferStencilSampleCounts; } + /// Returns whether disabling primitive restart is supported. + bool IsPrimitiveRestartDisableSupported() const { + return driver_id != vk::DriverId::eMoltenvk; + } + private: /// Creates the logical device opportunistically enabling extensions bool CreateDevice(); diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index 17a1fdec4..bad2a549c 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -283,12 +283,8 @@ bool PipelineCache::RefreshGraphicsKey() { } key.prim_type = regs.primitive_type; - key.enable_primitive_restart = regs.enable_primitive_restart & 1; - key.primitive_restart_index = regs.primitive_restart_index; key.polygon_mode = regs.polygon_control.PolyMode(); - key.cull_mode = regs.polygon_control.CullingMode(); key.clip_space = regs.clipper_control.clip_space; - key.front_face = regs.polygon_control.front_face; key.num_samples = regs.NumSamples(); const bool skip_cb_binding = diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 5aae43cc8..30102960a 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -949,6 +949,7 @@ void Rasterizer::UnmapMemory(VAddr addr, u64 size) { void Rasterizer::UpdateDynamicState(const GraphicsPipeline& pipeline) const { UpdateViewportScissorState(); UpdateDepthStencilState(); + UpdatePrimitiveState(); auto& dynamic_state = scheduler.GetDynamicState(); dynamic_state.SetBlendConstants(&liverpool->regs.blend_constants.red); @@ -1132,6 +1133,25 @@ void Rasterizer::UpdateDepthStencilState() const { } } +void Rasterizer::UpdatePrimitiveState() const { + const auto& regs = liverpool->regs; + auto& dynamic_state = scheduler.GetDynamicState(); + + const auto prim_restart = (regs.enable_primitive_restart & 1) != 0; + ASSERT_MSG(!prim_restart || regs.primitive_restart_index == 0xFFFF || + regs.primitive_restart_index == 0xFFFFFFFF, + "Primitive restart index other than -1 is not supported yet"); + + const auto cull_mode = LiverpoolToVK::IsPrimitiveCulled(regs.primitive_type) + ? LiverpoolToVK::CullMode(regs.polygon_control.CullingMode()) + : vk::CullModeFlagBits::eNone; + const auto front_face = LiverpoolToVK::FrontFace(regs.polygon_control.front_face); + + dynamic_state.SetPrimitiveRestartEnabled(prim_restart); + dynamic_state.SetCullMode(cull_mode); + dynamic_state.SetFrontFace(front_face); +} + void Rasterizer::ScopeMarkerBegin(const std::string_view& str, bool from_guest) { if ((from_guest && !Config::getVkGuestMarkersEnabled()) || (!from_guest && !Config::getVkHostMarkersEnabled())) { diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index 02c24c7ec..54bf3d253 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h @@ -78,6 +78,7 @@ private: void UpdateDynamicState(const GraphicsPipeline& pipeline) const; void UpdateViewportScissorState() const; void UpdateDepthStencilState() const; + void UpdatePrimitiveState() const; bool FilterDraw(); diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp index 6b872bdaa..a48d93dee 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.cpp +++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp @@ -288,6 +288,20 @@ void DynamicState::Commit(const Instance& instance, const vk::CommandBuffer& cmd } } } + if (dirty_state.primitive_restart_enable) { + dirty_state.primitive_restart_enable = false; + if (instance.IsPrimitiveRestartDisableSupported()) { + cmdbuf.setPrimitiveRestartEnableEXT(primitive_restart_enable); + } + } + if (dirty_state.cull_mode) { + dirty_state.cull_mode = false; + cmdbuf.setCullModeEXT(cull_mode); + } + if (dirty_state.front_face) { + dirty_state.front_face = false; + cmdbuf.setFrontFaceEXT(front_face); + } if (dirty_state.blend_constants) { dirty_state.blend_constants = false; cmdbuf.setBlendConstants(blend_constants); diff --git a/src/video_core/renderer_vulkan/vk_scheduler.h b/src/video_core/renderer_vulkan/vk_scheduler.h index 880bd4b04..7709e1d41 100644 --- a/src/video_core/renderer_vulkan/vk_scheduler.h +++ b/src/video_core/renderer_vulkan/vk_scheduler.h @@ -95,6 +95,10 @@ struct DynamicState { bool stencil_back_write_mask : 1; bool stencil_back_compare_mask : 1; + bool primitive_restart_enable : 1; + bool cull_mode : 1; + bool front_face : 1; + bool blend_constants : 1; bool color_write_masks : 1; } dirty_state{}; @@ -125,6 +129,10 @@ struct DynamicState { u32 stencil_back_write_mask{}; u32 stencil_back_compare_mask{}; + bool primitive_restart_enable{}; + vk::CullModeFlags cull_mode{}; + vk::FrontFace front_face{}; + float blend_constants[4]{}; ColorWriteMasks color_write_masks{}; @@ -254,6 +262,27 @@ struct DynamicState { } } + void SetPrimitiveRestartEnabled(const bool enabled) { + if (primitive_restart_enable != enabled) { + primitive_restart_enable = enabled; + dirty_state.primitive_restart_enable = true; + } + } + + void SetCullMode(const vk::CullModeFlags cull_mode_) { + if (cull_mode != cull_mode_) { + cull_mode = cull_mode_; + dirty_state.cull_mode = true; + } + } + + void SetFrontFace(const vk::FrontFace front_face_) { + if (front_face != front_face_) { + front_face = front_face_; + dirty_state.front_face = true; + } + } + void SetBlendConstants(const float blend_constants_[4]) { if (!std::equal(blend_constants, std::end(blend_constants), blend_constants_)) { std::memcpy(blend_constants, blend_constants_, sizeof(blend_constants)); From 6ebed7ce69a54264454c122a1f6f0d84f2fb800a Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Sat, 12 Apr 2025 18:01:39 +0300 Subject: [PATCH 13/27] update submodules (#2773) --- externals/MoltenVK/SPIRV-Cross | 2 +- externals/MoltenVK/cereal | 2 +- externals/date | 2 +- externals/ffmpeg-core | 2 +- externals/fmt | 2 +- externals/glslang | 2 +- externals/libpng | 2 +- externals/libusb | 2 +- externals/magic_enum | 2 +- externals/pugixml | 2 +- externals/robin-map | 2 +- externals/sdl3 | 2 +- externals/toml11 | 2 +- externals/vma | 2 +- externals/vulkan-headers | 2 +- externals/winpthreads | 2 +- externals/xbyak | 2 +- externals/xxhash | 2 +- externals/zlib-ng | 2 +- externals/zydis | 2 +- 20 files changed, 20 insertions(+), 20 deletions(-) diff --git a/externals/MoltenVK/SPIRV-Cross b/externals/MoltenVK/SPIRV-Cross index cb71abe30..68300dc07 160000 --- a/externals/MoltenVK/SPIRV-Cross +++ b/externals/MoltenVK/SPIRV-Cross @@ -1 +1 @@ -Subproject commit cb71abe3063094bf383379b15473d39cb1144120 +Subproject commit 68300dc07ac3dc592dbbdb87e02d5180f984ad12 diff --git a/externals/MoltenVK/cereal b/externals/MoltenVK/cereal index d1fcec807..a56bad8bb 160000 --- a/externals/MoltenVK/cereal +++ b/externals/MoltenVK/cereal @@ -1 +1 @@ -Subproject commit d1fcec807b372f04e4c1041b3058e11c12853e6e +Subproject commit a56bad8bbb770ee266e930c95d37fff2a5be7fea diff --git a/externals/date b/externals/date index 28b7b2325..a45ea7c17 160000 --- a/externals/date +++ b/externals/date @@ -1 +1 @@ -Subproject commit 28b7b232521ace2c8ef3f2ad4126daec3569c14f +Subproject commit a45ea7c17b4a7f320e199b71436074bd624c9e15 diff --git a/externals/ffmpeg-core b/externals/ffmpeg-core index 27de97c82..42557a704 160000 --- a/externals/ffmpeg-core +++ b/externals/ffmpeg-core @@ -1 +1 @@ -Subproject commit 27de97c826b6b40c255891c37ac046a25836a575 +Subproject commit 42557a704720d1b7d85c03bff0c2d369a61848da diff --git a/externals/fmt b/externals/fmt index 8ee89546f..64db979e3 160000 --- a/externals/fmt +++ b/externals/fmt @@ -1 +1 @@ -Subproject commit 8ee89546ffcf046309d1f0d38c0393f02fde56c8 +Subproject commit 64db979e38ec644b1798e41610b28c8d2c8a2739 diff --git a/externals/glslang b/externals/glslang index a0995c49e..ba1640446 160000 --- a/externals/glslang +++ b/externals/glslang @@ -1 +1 @@ -Subproject commit a0995c49ebcaca2c6d3b03efbabf74f3843decdb +Subproject commit ba1640446f3826a518721d1f083f3a8cca1120c3 diff --git a/externals/libpng b/externals/libpng index c1cc0f3f4..34005e3d3 160000 --- a/externals/libpng +++ b/externals/libpng @@ -1 +1 @@ -Subproject commit c1cc0f3f4c3d4abd11ca68c59446a29ff6f95003 +Subproject commit 34005e3d3d373c0c36898cc55eae48a79c8238a1 diff --git a/externals/libusb b/externals/libusb index 8f0b4a38f..a63a7e43e 160000 --- a/externals/libusb +++ b/externals/libusb @@ -1 +1 @@ -Subproject commit 8f0b4a38fc3eefa2b26a99dff89e1c12bf37afd4 +Subproject commit a63a7e43e0950a595cf4b98a0eaf4051749ace5f diff --git a/externals/magic_enum b/externals/magic_enum index 1a1824df7..a413fcc9c 160000 --- a/externals/magic_enum +++ b/externals/magic_enum @@ -1 +1 @@ -Subproject commit 1a1824df7ac798177a521eed952720681b0bf482 +Subproject commit a413fcc9c46a020a746907136a384c227f3cd095 diff --git a/externals/pugixml b/externals/pugixml index 4bc14418d..caade5a28 160000 --- a/externals/pugixml +++ b/externals/pugixml @@ -1 +1 @@ -Subproject commit 4bc14418d12d289dd9978fdce9490a45deeb653e +Subproject commit caade5a28aad86b92a4b5337a9dc70c4ba73c5eb diff --git a/externals/robin-map b/externals/robin-map index fe845fd78..4ec1bf19c 160000 --- a/externals/robin-map +++ b/externals/robin-map @@ -1 +1 @@ -Subproject commit fe845fd7852ef541c5479ae23b3d36b57f8608ee +Subproject commit 4ec1bf19c6a96125ea22062f38c2cf5b958e448e diff --git a/externals/sdl3 b/externals/sdl3 index a336b62d8..4093e4a19 160000 --- a/externals/sdl3 +++ b/externals/sdl3 @@ -1 +1 @@ -Subproject commit a336b62d8b0b97b09214e053203e442e2b6e2be5 +Subproject commit 4093e4a193971ef1d4928158e0a1832be42e4599 diff --git a/externals/toml11 b/externals/toml11 index 7f6c574ff..a01fe3b4c 160000 --- a/externals/toml11 +++ b/externals/toml11 @@ -1 +1 @@ -Subproject commit 7f6c574ff5aa1053534e7e19c0a4f22bf4c6aaca +Subproject commit a01fe3b4c14c6d7b99ee3f07c9e80058c6403097 diff --git a/externals/vma b/externals/vma index 5a53a1989..f378e7b3f 160000 --- a/externals/vma +++ b/externals/vma @@ -1 +1 @@ -Subproject commit 5a53a198945ba8260fbc58fadb788745ce6aa263 +Subproject commit f378e7b3f18f6e2b06b957f6ba7b1c7207d2a536 diff --git a/externals/vulkan-headers b/externals/vulkan-headers index 952f776f6..5ceb9ed48 160000 --- a/externals/vulkan-headers +++ b/externals/vulkan-headers @@ -1 +1 @@ -Subproject commit 952f776f6573aafbb62ea717d871cd1d6816c387 +Subproject commit 5ceb9ed481e58e705d0d9b5326537daedd06b97d diff --git a/externals/winpthreads b/externals/winpthreads index f00c973a6..f35b0948d 160000 --- a/externals/winpthreads +++ b/externals/winpthreads @@ -1 +1 @@ -Subproject commit f00c973a6ab2a23573708568b8ef4acc20a9d36b +Subproject commit f35b0948d36a736e6a2d052ae295a3ffde09703f diff --git a/externals/xbyak b/externals/xbyak index 4e44f4614..44a72f369 160000 --- a/externals/xbyak +++ b/externals/xbyak @@ -1 +1 @@ -Subproject commit 4e44f4614ddbf038f2a6296f5b906d5c72691e0f +Subproject commit 44a72f369268f7d552650891b296693e91db86bb diff --git a/externals/xxhash b/externals/xxhash index 2bf8313b9..953a09abc 160000 --- a/externals/xxhash +++ b/externals/xxhash @@ -1 +1 @@ -Subproject commit 2bf8313b934633b2a5b7e8fd239645b85e10c852 +Subproject commit 953a09abc39096da9e216b6eb0002c681cdc1199 diff --git a/externals/zlib-ng b/externals/zlib-ng index d54e3769b..fd0d263ce 160000 --- a/externals/zlib-ng +++ b/externals/zlib-ng @@ -1 +1 @@ -Subproject commit d54e3769be0c522015b784eca2af258b1c026107 +Subproject commit fd0d263cedab1a136f40d65199987e3eaeecfcbd diff --git a/externals/zydis b/externals/zydis index bffbb610c..120e0e705 160000 --- a/externals/zydis +++ b/externals/zydis @@ -1 +1 @@ -Subproject commit bffbb610cfea643b98e87658b9058382f7522807 +Subproject commit 120e0e705f8e3b507dc49377ac2879979f0d545c From b0fe1532f706e3cbf8f2f431836e71a902684d85 Mon Sep 17 00:00:00 2001 From: JohnLogostini <55333109+johnlogostini@users.noreply.github.com> Date: Sat, 12 Apr 2025 13:09:21 -0300 Subject: [PATCH 14/27] Icon Updates (#2768) * Updated the trophy icons to match those on the PS4 * Updated the Windows icon to have less harsh aliasing at smaller sizes. * Created a correctly sized SVG client icon. * Remade all of the link icons. Remade all of the icons for links to a standard 1K size and fixed all of the crazy aliasing problems. * Revert "Updated the trophy icons to match those on the PS4" This reverts commit 223c70de132276857393ad372ea2d02329d06bab. * Created SVG versions of all of the link icons. * Update REUSE.toml --------- Co-authored-by: georgemoralis --- REUSE.toml | 6 +++ src/images/discord.png | Bin 68549 -> 43672 bytes src/images/discord.svg | 24 ++++++++++ src/images/github.png | Bin 116428 -> 43288 bytes src/images/github.svg | 22 +++++++++ src/images/ko-fi.png | Bin 39500 -> 40174 bytes src/images/ko-fi.svg | 22 +++++++++ src/images/shadps4.ico | Bin 74814 -> 410598 bytes src/images/shadps4.svg | 105 +++++++++++++++++++++++++++++++++++++++++ src/images/website.png | Bin 90853 -> 73633 bytes src/images/website.svg | 22 +++++++++ src/images/youtube.png | Bin 39404 -> 33075 bytes src/images/youtube.svg | 28 +++++++++++ 13 files changed, 229 insertions(+) create mode 100644 src/images/discord.svg create mode 100644 src/images/github.svg create mode 100644 src/images/ko-fi.svg create mode 100644 src/images/shadps4.svg create mode 100644 src/images/website.svg create mode 100644 src/images/youtube.svg diff --git a/REUSE.toml b/REUSE.toml index ad2bc3678..d17594e4d 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -62,6 +62,12 @@ path = [ "src/images/update_icon.png", "src/images/youtube.png", "src/images/website.png", + "src/images/discord.svg", + "src/images/github.svg", + "src/images/ko-fi.svg", + "src/images/shadps4.svg", + "src/images/website.svg", + "src/images/youtube.svg", "src/shadps4.qrc", "src/shadps4.rc", "src/qt_gui/translations/update_translation.sh", diff --git a/src/images/discord.png b/src/images/discord.png index 2fa455fd10a5cd8ae4df56f2f35e642b4c0d8b38..9858f217ee8f81b93ffce550798b0447620a8ea1 100644 GIT binary patch literal 43672 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

cncH$!M6UtDw0&smnmYJY!yO@4lE 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 MUHx3vIVCg!0B0GYR{#J2 literal 68549 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 + + + diff --git a/src/images/github.png b/src/images/github.png index 22b1017982f887fa2001d1cdf9c9e5e85385e0df..7b61598cc9032c85442adc48ebd36e1eb1e7248d 100644 GIT binary patch literal 43288 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 JtaD0e0s#9rR$2f6 literal 116428 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 diff --git a/src/images/github.svg b/src/images/github.svg new file mode 100644 index 000000000..1872a00ce --- /dev/null +++ b/src/images/github.svg @@ -0,0 +1,22 @@ + + + + diff --git a/src/images/ko-fi.png b/src/images/ko-fi.png index d19991b5f3a895e1e3ee4b23d08ec2716024fd9d..ec0c9477371fe2b8dbb91599750082df0add340c 100644 GIT binary patch literal 40174 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 literal 39500 zcmeAS@N?(olHy`uVBq!ia0y~yV4MKL9Bd2>3=R9u&M+`Aa29w(7Bet#3xhBt!>lsd^Q;1q>iyV_#8_n4FzjqL7rDo|$K>^nUk#C56ls zTcvPQUjyF)=hTc$kE){7;3~h6MhJ1(0FtBTx$+|-gpg^Jvqyke^gTP3i$ zR(Zu%AYpwa1+bEmY+EHqkcA2nz5xo(`9-M;rh2Bj$p%J-3g(u2hNdQ#hK4!{Mh1q) z`i2JjMwYsUhE^u#R)%H@P@rVTrJ$f-Q_{ffi_eM3D1eQcTvkX(nNsURgy-%!sOtEQA> zxJ3n}MLA&qq$KO7=A`DP=9Lud8|oQi)mM>Q5E76M*Nb8w%#kJf1?gBd7nitX=Hk~| z98y`3s_&ASo0?agnGXs}?7`%Y-x%!nSL7D>`r_A^n~THcL8*u|fYsL!mj|U5=a&{G zrv{~_DPxPQ;u6=g68ug;HORFrHLnD#Q3VDalO3;U|y`PHm|b znK-n8WFXqWxd@WDZ7OmLtelHd6H8KE5=&C;j0}v7bqx%4jm$y}EUioptPCu*4NR?! z4Q%w$R3c&?VMcyYNPd2f9VC+nz(PR5*;zp&JTosPzr0uz$sDL^G=qHeQ!>*kVU97; zH8j*UGz>Acv@$TYGBVLMFt##)ItEE4x*4e@i7AOCiA0%#tQN_ff|N9?fTH}A(&W@4 zJ5XVjqY&WYrr?^Fo|%`b5SCg5$^i;S26`Z9W^8PukD>#~q?BZ+hglAKhe2!fSUjyWazNWx$P(ACP;M77?QJ6$d zrk!^t$W5T~FDDaKk&Qk`6jd+Sa!iXr=^!K^-O4W@F+H`|&JY~cNCHS6g%ng)9*MZikcTKO&C4vY3&^ZU%_)W{1PdXIg$EUq%aM$NMN2?VVo9oB zVs2_Nk|fAUm=O&17Dyr|)6TgvF%Oaq&=UttcTT3AZ(@3CUP&TBb&;t#Ir-%Tl{w`k zCTC+;1rbG0k)U?FX zoDv0y^$KA7!EuJH2oaqSLqI``Fb9>$M+R1;VPT@xf|&|?WAiX*@vjsm+0IZQx7 z=Id(}l$w{432GZT=Oh*v+Z7b$=cic}q@;nJk13CE4^+QPesU?O$>Ql^SCLzwmy(%c zWnpTRVrXPyscUSKoT!^-X=12rVUn1ln`)3^nrLibY-Vm~3Ns!_JBHDodBr7(dC93z zqccH9nYA9Er0OObTBPbGCmLI(q$Zjq8l)w`j7HLqVYGiyW_o5` zVh)n^rKOoER+eVQNv0;rX1XSprb)Uc=0*m(iAgEOx(23(=B9~;hL(xO$uRS=n1NxB zOKMSOS!#+~QGPCw3CyOrBq%k_DihQ1NtUK5Nr@>Yx@iWey zNK7$FOEd(PA86VUZUQAZi0LWhMjD28Y^LW^6u1y8u$Y0(sv?}J7h(*WJi-WABqBu+ zQke-&+a8(4CHX~_ND`nR1eKYnSq+k(!JU?zOd{hMst4R2wMt9|BP!zhB zmB7RhPKM|Jxd5UGOA;|iPO&ggPP5QWPBKZy^t;J|!X=Q2xYcWEM0;|GpNO68zNqJ&Xsw1fWfHoaHb8|B#{{-HRa4Ktc~3E2ypg(YS+VA{$5$ zLGxX5eqLE>Q3(louOP7~F*mg&wW!!G4OF%#78K-UCMSY&v3@~*aS3F^L7^mH0a>Oj zF9kZLkcmkCusB6B5bs^;m z6OsHtWhjIP9#nw@#=w-7DUilIEJHvm58P3K_BbkrUyOd=WM&d}1x zz(yZk6e$=HQa-79=_MI_?%L(J?2KB;dXsP5D9fKvNXEZ zNc>unrO~w_bcTY4sCXA#DG~s6DT9KIsoh-65FfuZ<(Z>)**8(mKf(sIpQ|-)5 zO^r>VT9Aa%b%28}0zNMbNy=b*&}FddjKrxENd~GDlF*Q5&B3J$L^R07&5p}PA3WI) zn)nAxL9zf1NvOkUXoG@+!l)%Ah3{x^jRqGTqK16Ns32P*JyB&6apkE z9!*`N!9`LCkfeAtb&UoWNg+Uz;?dMK8eAlW07;5RQ`cy4krVTqK16Ns32P z*JyB&6apkE#+$mh5GU-V=B3ywl`GlXHT>sa%D}*&kn9oU%fL{j%D~Xj%)s#TKLbO< zO9qBg0|tgy2@DKYGZ+}e^C!h0bz@-gvi5Xw45_&FW^ZLl$k)IB|0fvTRI`rcY*BTX z5~{VLBO-gH**j^y9aHPxu>0q({C4B6-aLQ%YulF3j{m*+>b1OUPlKbQR%^rtL@i8m zHH+j);NbMW;mP6IrZV}y{QB<>OL7`jir=64TzGCy3*)5f_~Pew&$oVe=BO7a=&y_2 z=eA#-eGVtf-Qt%H94AWRFE{q+_4_FBdX)ZGUwQic`(M?&E^(GH2rjr=d;i|k^X!db z3Oq6lQFn^pzWbT>y?8t0dZza~=S%**IZ?0w#r)O}CXO>5D(1ZKwSUc#=uvL|FXVwv zLdf*jmRJAQMu{)7XIq^f1Sx>=W#}L zi?i>lJ3Bw9{7qqc*qCi_)OL~iw*|lVacHo1HU4whR{g}v(X*_{;KbkAb?+|!o;a^% z`nt~s0qk!|4+(sY`L_G{HzwY97dhUP{jZA`-^f`msM*;)p`oKinOB41)7`}q8inUw z_xAofkg#Aw_Xd`^1tq-Js=q({v7U3o)j3&KhOct#&h>B4DMz-q?wd9Dz?*{ld++3S z-}x`<#H947Per-o9BuJ3f_F|vRLj0OHNt8 zZiL)Y(bJn-Ea&VIcVbeqaje(jF=dfB_Hd8u%HPF;?ZUTDo;%EOBFEP0dP+@*Mww;e zO|Ca3@#edpZ?irq=)|Oyq$Z*2C&9JBiD<@~EYrJ3hN>7nd z@a~cemBP#$V~!Ohl!)g$C$9YQ#pheH;#%JWSqn~8YJQE~Bc`aL@W_5o&x;%VjuGMC zS#*3tyPjHeZD85aQ6IHYrN$(G6JrGDp2s#*ncrPh3-)wyNt)cRy8k$1dcwk$2hZI; zQMPE|YZb%JvQy?(>z5p}HM8JPo%=bWg~dfhz%?Rnv53a=4+e*f6xh96Uf&XkeOVHB z+)n4_zH^nT?-L)cjaoCy+rz;{Mrf{6G=~q|7tVr_djfjbx?=HT=*)9;LXyueD*?u_s>br#?*L+c&8L{G(Pl8r~ z-L(4}hfWo=e$e8*v2W7%2J?p2h#A^eUjjWGT=b1txPyIPu1l zYgnf-|1Xp4oY2rAr_!N%%)P+E(vI=<%LxS>_QH2#H!;0duDo5Tel=slViuPI4r5m+vPFxuZFjqvX{XC#$U0Y_`iDsyV4!$r_BdiZ%jCRG2)%``hEd5 znd(N?G%LXj1>w$8{__n0AP~R`Q=-!SQh)|1QNfF?&T$^FK>iJ%xY4 zMGc_|EXu62CsZ4Xt=n~}Qub(-Z;OSVobg15HWl_=7`||IG*n#YZ+YS6Xx#NP1S}kmw9OTTn^LBjpvzpVPVXnmZ z(Kfk3`p)B|9PNZvXOvv}C-uDDBiZm&{PV`YZ>>|MI6LGu54!dHu&+DJrZA0(ai&{G zoZ^F)WC5{jr%J!?5Hooh&h$t)Xyad*=?vuwqG3-zS+%^l{5`?YK*)O&v&qi(B4r@~ z|9Ylf9IH3%;>zYaGdZ%QgHutQQ{!2|(lFj>8R9|${)Qr}H|%1|=8O#@>zy{E zW$LfQ?9}`NtJa)5DwOZk@k3dZJ5$sme~IJ`rOh4=eqV)8vPRS&Pd!kf^HHs(BYx7x z8jpR|`?n`9-S}7ksY0jZP|DjyjhFzPd>@yglGJ(~YS}$!O!fzS$cm zOg-YiTlP?D(FA(Ugs`ojrrN^G|bnouD z?n){O?Hm^VkF6f)<#gqViSbXZ;Fvh$OY!%Hk~KZ`2G=rn-0k!@YoISRX!f|^=4OKm6!b261to7IrQ6g;OQ z=GmP9#g-SG{!1pZypHl$VLZvW%g@<`TLBdHR&nwi#j}%I6Rhpw#hs8ZMwHji@;t-v#^CzyPmpi6MX(~O@;Ub zok}^U4m+`lO6p1%U#;08IlJYNB6@L-$E43L+l1TCwtdu4&^*AxXU^$m(;~1@Xkx~E4_mQwU8^^$e^gUoOo$Qx zD6uL#f*$8rW9G7TW zyI?P?#KP<_j)#VVng^XCq&p`s4f&{~;Cg`9&*9jMC{d@12{qp{%9M&6n1rgG4qQD@ zpS;_4%Xw#xhoM||+3(#wz*cil`B6EeC+j*!yT0CZ{#U<5oGND2`MDG|sHrRM(|!MS zb3;n<_V+_ALU3_+2(w*6#Fk zFnfGhPSBpqL%@Rl_2(IFx-DL=JNXq`_P^VE)6YdIA~bC8eU~HoOqckx`S!@|IMnIh zcEp+Ep)u3D!v(88JKbuKstLRI+MH36Atb5u^X7ni&KwW(gBt%uaMamv5cOW??NBu% zr{bdyku~-zoTpo_ zcsW$HF--fugPS|{>B}f#rz0ynrX(B|TixJhV^?vJpUFr_I`~tdPUgBaM@5%CLM2W@ zbMNhrW-59mlAySHb^}*>1ZRhUQe5WouI5j3DsqmcrF%N;^0b;}vY*XD`u023j{;6d zcC!l|>S}9>kXS9&zwXG_O$|Lq#GGT>RHt8gt=Qrra_MgEdftfk($(G$ev^a}tO{he zNq9X{Z1GTGau5?cXT=cm_~1VQeJ&5K4}xp%J3qeJD$wauudWik;h%uN@4K(F8kR5x zH)d~4J17%t@6^Ha-GwQ_GGF=H%6F22o}XqcY)cXimp`brVbRkZCyt37F4mVm&nZ~L z{>{_j-(;l+LOG}2S*#Iqe5kGHqI8+R`^=La@4qKJ)bXG4t;*Bk9D7>QZ(E}$l^lvk z6a_o=7J423wlaT8gG`!A!RF6)CaYXH6#q>Q$$619S$Kl2kicrA9h|p68v0!C5O9*2 zEU>L(mE`T^a+d?bCb9PzGVTzx5MR4g)Tu*wBCE_1t1IQZ-U|mguvvfnVPLk(rIKH< z#o}YF^-<2_Y)KXchSQiPy=i%DmcX-WhmcdpW#Juvlv zN;;2Xi-5YmQe{N*L%*ae2@=|jnn#76Pfy})Ua3)|+9GgQvEysI48t`h-cALD$QwH* zy>8%7=q%}M7jP<>KjE{@wj|!RhZW)zHgCB5Ox((FVg-ldk(KukZ@%;Ws-MTBActRx z4_Eak9TsYTu~pouL++zflb=mi!?X&K2_+Al4~QPnPzYYXTfpfHhv4^&1^ng`-lP=Di^eL+!M1!1ryKu%R8g=zz`n6EJXuA~iR0p87wt_2awo!mDJ;Af z&QxSppdD5_b=mbO4#le0GkQv!c5bhaj4!EAXMDVow|Qq(ZL7ed>n9FB@hI^xnN?0(+&`fYVhe)|TljftJ%jLctlaVfg2pWLPUG@IexQK8rS zK091$;L3^Fy@y}1<%RXB4W9C%egQSl8>b{57SeZHe5+Mpk$$HYJ8wksLp%FQg})op z4)QZT%?JT`ZfnDo-PIpf-225K|7Iz({$Z!^!ygN8z7q|PIr!t_V@Znwh04mxB};A` zI`ZvXS?oNgFUNQ_C2YRPWoKtEUc0t;*)laLY3ZBW^X09}-Xy%fwl?R^j)|{cWl6sI zv1E7khsXn3Yu0SP{F-SJkIxaWlfQnSeUzG-dZ+I9Tc5dBQw@`k1w=%6Xoy@|s^P-J z*?zd?aN?}lvoo`@7A;)Z7`wY{W9n(KSFc{JSh;fHvSn?o++rsp-mBlg+kKtk_REJ~ zx9?R{_`7jlKYzgv<4fW;pH3*p)ct%qWy%x*u2v2fkxJo1+)I`%n>1^dS6SJ&h0m2H za^&XbmXwspe2U1*%8J-uXB!$C`seTa`t*l~T08T0$*h_9JNAKYLbU(C5A*uEQyHE! zeoqQ65B{6*aAolFPgmF1P5pe{{(r6b3V}oO?|C^pGk^X1HRt}mxw_HYHWWN`npgAb zWQ!@M0e=Ncgb%;p>$fkp)+io$dcf5|&~C+^UH^W){`v3w{_{Vd&-c&DT6M41>BpP| z0}nShwxdUn^2poG;S^RYILInqa5HtfVbT$fTeohlSi9C&Wirc#JIC$TC}pn?XH7A> zW>FzF;Zf=8dsVO3+Wh%&cuwIl$*Sv|g2!8&6xsOY&R9O5b2v0S_GoB$tZQMRVYisB zSIg!1?XK-g2iU%UnA0G_EPwFZ9P!G#i$q05|9oh-Pr0%pu&SJMB1iefy1yQNernp< z-3y)Djq>hTtlR&u>YUYUoma13-Pl>2ZZp4blkg-db%nEWLK9MSF4xceY-ba{>-U$- z{>A4kpUY@Ti#Vx>&73)N%G9Za_bQ(kUUU@?jEg&WYio99PEODDV7`Rj*4Z2Xz7$-~ z;bB+6yGpM3_;`cb3N^sPaRfkoicyhiFwO@OkqlHJosZlX2F>mhO@F& zTV9y0T)EO`rctY)vfGD7{+fpB_j|8j-*w|@^MC0BVSXExUYFQRFv-a|S$X4`<9Xwf z7XhWSxfT6pE?T5y_p#G|L&ilVHUD{Uo(F4|e1BJL*}JX#vgm}52PA)_M27hJ@tr(* zvPzso(Qjse#*rzS!4-c#9-nDjy)E8DjlusPkp?2;@grXDzSf^I^+`n z{P7csFjsf$x&{_swrpA_~h;TnPxxj7u#LiKQRdb z@mwbq*8JWhF#m~ti@>7oC(fOFwrqCZBmeqeljrm8p1-@j|D8AE$-|G*Qhy}mbP70q zIeGkN!h}<&y!Ll`a9wLN>)0Ox+^-tC#S9pRH#~9leH9i zbSr!P)8qF4HpcT+DqItvbTyi3(vy~C1G|~ksx1N=MJ7t;@0r*xS9OBFefH~jZ>h9_qP4&oLQHzuH#u5?_MZD%dcjCC{%hbpq z|MP_Vk3-`79$a;P(|*=c=Ah@h3M)xQ&%;taZoB36S_B@6XlQ9Ydbj)ivORn5tZtvt zFX|myAapcHU0GqJ-^8}$%hIg^PIHu=K7AT@u6@bw>c1!E2~FTh;0RbUJ&r@sZ~kfh z{d4l`KF^M`-Q!e#{=7vjW2YHE-;&v~T}~W|eSR7uk6x`_ucoekyt{pR@6=Cx78BiA z{2sB-ZS=k8d-1ehi-4_jWu;}m?Y9}?{JK}~e%7ADHfK}Al!TL?53Z;T;3yPPn&`3K z=F!|UXMEP}`Q)Xgt-ZG_!}Hxd`(v303@row-4&+=oV<41g`-gAVZn^h)nOY;UIy{W zSU9-39n1W?XUP(kNs}j^JaIxnTf6(totRIbK51xZD43g@zk4%%?%cDn<#&(nsr+nH zo^j*ea-|1%g9RtlIWz_ZrC7$fXGIFG;Z;+HvIE7^7QfYDbmK_{8l&%#4Qc8hI% zKEHlmTfyos^3|zTD`hEEyDW>9KtIuq+v)S!oZ{~C^_EY4P zJI*Z0@a6h#Wjl^`P@NwY9i5q0zOUs!F1}}c^`1G;EMQO{{ ztrxFdbE~elX6Kh%vUl%X4;3eO_v4DYUEWTZG)d_CH;dRsW}lggpPx&8cV}nK+wAz{ zXJ=-{&9nR}|K!=TqOVuOjqCr_=*x!H>+nyyB+JN|c(c58{_hFjzLiNyNo8baCjS5T z_s!ki)8|^3Zz_Ku$0uV^;NfCrWyN<_WAfz5p8o#oy1KnzzLXRd6`eSBN=aS4{mPY) zOP4Njv^p(WzI^hmS+At6P0Yxc;qd+aeSc?X=HK7n+oyC-nyhnXXcT6t4zP&ueTRg^Z9T#yY$`8 z=Rq+sXTH6?y|>8YW`t?p3TviIroZ)SRAj2Zy;-hTCsZd;%(ce zt&QG(>DH~PJM$+_o9337sCe|~Q4tXlP&=!x&aSn!b;{JKhBZG5*!W~T>gwzk2An9K ze`@i)qxbe!-`teSJ=-jI(Y9^Va&K?jSp7Y(?Cq_i@9yrtxiOjj_V)bc3l~0YvERIA zO-~~;yWB6Uq$3<|y;82OuB@u6sw~Y>6Cb-iJ2Ug}9LwS#hvokrSUNqa&$HH@ZB6MMJkv)}phE&Ng@9iKiGty;Z$Z-E8l8tK{-QeZulp=r_i6I{56A8QP2`m}D|m3A z(QdP&h0L?L<@X-8ipM3qzqfbEk|h&n&-M-rOIpG|d)BOqpHHXPUTinazh~3NC+p?v z+PeI6#oW1bO-xKc&5-kV@)~>{L<8!T7$x7bENQZkP88B-+En>DEw1LHE7-E`_&-f| zcb6ZJIdg4Y?CCv~pKokV=YLo*T}IW>E;ItN?xm)F<( z@BjO@Jq zBkwgV_j7VY6#ZS)t(SCTL*hKq2>}{My!H1!S^BzKeZ!eb#p5cHKlBq+1rD-h96kH^ zT6F%~H7i%X{Gu!?D?4{}*xFZn-tYTell=bFsZ-~k&#&KC{QKKm+oFH@dp^27xBY(S z@$Aq0A9ZP4JwH49`ps+Cu1T)XxxH=e=U=baf4{qT!J0K|ivRxlI&W)sboA`$>%MYq zkojTZe#X`2(qRo2t;WnF5C0Y0S1V|Tt$FbAxcu{r?($#H8s^{F&?u@MHeu>i*TTY& znz#4v+&S}lTy^hpx$2(y|G%#9v;6<{_4UoUx6Qh`x+E+L6i%M}Xg>K$zZ^%zN7pa& z9vofN?x5fh8!KD<{M^?=55F9~B>BG3MK$b0M}0_-uFy&6inguU*FU|E|9@-s?bCgy zca^^Wap$?6dv>rAwFIU3DodC+A78`Mn3X@BjO@@WO=o9c7~Fsi}sAk6cXU zt2*4}Yo}~JZ#VmP{{Fj@_u9yDZ~R(*D}d)s!Mu~dPn87UiTARxIdW}nbmgm+%YR(# zuX}R4I3qXrY4QBuGR4o%B)-13R{ih)TeoljJZ}H*;QxQ`|NjcI+0}Kzzy8G~1>!rD85$aaK!gmJ7B|s)}V*x%xM?Pft64L-qH(XXoagKFn_~ zBmVsJ*Y)*(muN3L^w1!G&qua?`+pYP;(A~H?zI1W#@OcnpU*irHYh4y+xqLIbKSe0 z&wtgZ{5@$<@WA1m^?MtA*`U759aoY$Jp?DLKCShw<#6IOoybGV{We18&#zp#aNvC1 zH{*X_*VoIIM`fu9B_3|${qrW>{<9a)4tJ3Ej>P}_B>wH)-PPQ8lH)u=L#IA(v9-3I zy)pTCm9GO=|I*l-|QTd%suviO-n{=GempE=*UeY^7Y+U<|N-I=Z*f9|yY z{x?$%MGt*^(9B=;$@F8y(To$BE)O!8CN;lh@Vx$1#QN6l+bdVCdbD(UT-WQ*f1c{s zpS+#F|L?vV#U%=l=Kufme8;|nU}rr%)VeRaO62{Xzu#`p`^++PDW`75uxZ({XBUchm%V+IU;jHgrfuD>OBXI2 zu>bdw|Ngr8-tf4}r&IGnIlrBhwYHrbxY(`oX@OCLal4$Zb%Lwa ziATobf_A%bfmGlNlgASxQW6!{)a~j?a!*cHULC%^uY1$g$%%J&mG1fZY_^H1sbHr| z#P+C`>x1o)=={A$4>q&g7TcUWdGg8g=hY`&{>}+Yab;C$ z(4Bbd@eOG%SAF5$|Nmdd|Myz)Ic{Ig&xNhN+TrVbRuso?$qq=+)sm#H@P6NKz5IPY(+=%T6xWG3@aN~}$Xz9wPIG_1 zy1F`YXVKC<0{j~j4mM4WD!voW!o;}#>?^ObsE>AxKl^{hUEFSBZoWD3Fx$1Y(bEH- z-@S0*!2iGZ|9?DVd|qV^JJW`emzRR0Y;~&MSKZl^+P&OHp#NfYX#yLjzd-(w#btjpgm*?Lua z{!-?~hU;NU=1I3X&6(Jl{Y*Y>5c?VuYgg-ETx@)MTkd2SSaoh!J!$K&9yE+#VlB-u(i8^g~@@%drA2zvyDHuC^HK3^778R(=~lU`H3qb zlO|2!vt#p&;P=Q1aro32v|MXbl>FsOmzL>oMJGlJT3jePLo(?YV=^?4^$d zwrt({(&__8GaIjxt?k|5>uv2GjBbpR8{abK2q!YGIw0i40cuA?Ma@b-^7ud_bDVLY zy-xf*5r$J6)topzcs#tkf{wNe$bEL$b7{}@ix(fdGIoYltFSgSo@2gfc1VJ=L(9%3 zDr(j`X8wT4NYA*qdFg%2_wJp0?3mm7nVP#=49st}&RgfLZpPB==zlcYHOIr#^P|sG ze zyJO=f`E64-SlsGdXL-p`$<%b}nl(B_MIo+pPo$)!c{wDVxw0~Nra>ap!GsIJavjsn zRLT^&U&w!TnDW0v@Z`ypDe39KF)=#HDh8I8mh*NMsw#m-uAJNXzFsjjH8&5AjeYA{ zyp(Y!W6trlP7#Jm0vw=*S7zqQo{0;lOr3ghe|^2`#pE+bI)!c3A3ZFX@$~fc>WeXs z3c3xZZ70h66lczyDKvp4?ZJUY5m8aiPC4gyJD?RlvmA03S|i`~D1T`9>!LnP@)hhUGKZPYOj zgJV6ChaVhl7Twn+c>njk?=x&FH>n@3{`~Chnc3$4OiF$J3IYiS8W`tPKAUOe)?`@q zCBw_x`)TcwhEu1!mif>3(-8Ue&x{8r zU(K(0K7Icm)yZnUpWb|Ydw2Kr`oFK^_X!9*Y!z1$Sg>c$oX_X1{f~JFfGYYnUg>3g zU+kVOY?lL#B7I$R_cpk~OL};yRY;)l)05}V!HKTkNXXXN&yO#7nUA8qef+T(&hPgB zuLE@eii(SEt9zi8t-O3qsb^((;^DT!ld98C2o#=MIz8^x6wP3pt<_5RW}0S;eZN~i z|9P<=sLDGk9{;7cq2$%2PkgPdtu;@S4Uh_uTvc(T?$=MmfJASF40|na=dsvY9=C%R%D@KJ#pDPClFc@q{zK?Gf?) zKV1FK?XsFwU~y(s>gk%~XwD9HO%06)kGl2KZf(gla+4|g`}MkU*_#N-Mbl57Jo)fu z`uwN!s^5L|T^b!4D(Y|hbxOR?9lifIyI09^6kLl;H>~|tBB^|C$Ln>wXP9J8+S4DG z_Uz2eJ%2u(_L*;Y_cG^a<;YDboZi!PKAwKKjkTdHHt*iz6)QTr^>%g4G)_MyQF!Rd z$;mrE9+Q5&?)_o!*&?S;ovQfta(U&Ki|#XxQoGiBEtx%g_FlVPOSA?#WPRP^=x`|G|e zzH;r_ryI%rCl%~c4z+OJsrh`iN5;}f@4UVY-}j&I_k27iy>iW(lvh_)@<kw z^{Q2WzWvK%oV7^K!+6282!0_B775cV5%W6*%-Z4Wz8tM!E}XGti^;ovzw^#nyY?x{+hnq`_T_I}T2KObkdMb$OWjORbxbXu?b_C(d0GiRQeVc7iWQPQ`! zx82jyo@H{TdU%{BAO`A9Gd@{-V$D4Hf)6M*L8qGf%qVxAoeZ6k?xy{OltD6Eej6d;_nKH$o_E!n0w39si*k_hW=k9mAx<5WX zep=$uik8EParJ*o_j8@FO9*F>VB)!O`X&E4i^n{m7}V0%PUYzbjlC?l`>LttJL}2q zRSFk>U%7t$^V|IT+x_iw2f5ZuF&$7_aLjgLoj|`Z51ZxdHJf)lpI2@2?e5~5Z=2^o z{d8Ji-P$_(n1K7zojYfS$5kFRPrlu+q>#8kmGcJA8z!#1%9?TUTM8c^Gt9kZ65nfP zA+>VlN*)P=hMpdtu(eU3F`2J@UpV6beVRVgFqy5Hoqw9)5yQ%_SHou-Cbz}&?`MtR zUc<|f&y>%2d*h919~f`myctvVa_ODw_j`@n+-F!8tC`;|nXJETU)PO|$;bKRYQF^9 z&vz2wV4TUQaMad8Q77Io zoU!?wRrk%!>BVPFub+_E>r+{2`Tbt?`ctJxJv)y-?zcZ@eBMTwfB9w3Ef2qWux{9N zmnlJD)`{2IO$QYwtNA{fJpa!UDc|hBL4U3sHckbDv;_*J--rR5B zzWwA<)$qRdeRWLv-BKa`LMJiZs3Tvm$IDOe3l-;IV*IMnWVib5FPDx_?+6JCEBgQU zdvIW&V)Gm}e%mhs#%X6dUSE8(DBY(2Xt((1lm2x^ao@kW*iK-MwVl9xAa1#yQs0TQ zXP-{;)>9Pf{IE8^w)^Vp@Y5R0737T5&n?-qCFGcZx=4S2{h!BcqPOeC`ES0Pd6Y4R zk42~DYJ=O%BdR}t{;c`3SRUL{Pd?T&(Q((oW`4U9zUFsTK7w?za*Gulmn}cCx#EFI zlKckwHB8((o%;@JdP|1g(|+XRvToNaErxynzOD}r4_9A2r$N8|=jl6z$7QEXpMF~6 z(F{-&{d&E=`14uwt}pVU1WA+={ZxuLM^4~@pYE`wqGXLOcegGb$xBG zf6XIdA^yUcS+i#SxIF)#OKNKBo^EzO=~Z*W3YIjOFnx`1iany~>go!bajyB;9e>4X zRq}_k`E`?T=kJewq}X@*+1c4Y>;J$14{AH9p3>Z&puGN@`+SbFpQrhj8?4=B^60+s z&R45ed-(f5x4!?g&#PwlhYQa9h0o`f8)aNjkaU)rT43Q*TWfp&|G)2l_g!DS+r+xJ zL&n$P)`qwVZm~)q{qyqlrpHxjE)3|9|MP(T%zS(Mg>NTLo_zTKpY#67zNklveJ4R0pP0Vy%TgE9gLcaWkBdxr8)3QLL%?aF zz~yDW$|777Crvu^`Mmx7famdXapyobnqH4_uB+Rp$MJD~`Ptgv5u4L^LG!i3-<+o{ zW;{K)ytE!VDSehNr*?y0)`~UO&3zp*=PTV-m0RrAoAm9?O%XA%PY;^; zFWr)|pL)0aZmIb8`*qfn)qE#abU44cw|90cxA>>o_y4q67C$?o;C{XJu8g6+Va1gC zJ1s|d@p(B2O?FT?FhS9I$J1%ipky=A9n`zDV>T2;1O)#_ov z3|?uo4M|72o}HU3t*@P4-Q0X`Wro!!{XR8?>WvoD%bHaz0tHW=JNK;m{_lC~lMlxK zzIAdgYomD(2?l`Ux`CV!64wEr$~!(@yCiKgRBw z^7Qod&%a);SATS3qTJP_<*cSMsX@OtHXZzWAWSDyiBYhjbnX1=cRQCXT{?08{PX>F zUzGjjo`aUjyt%pA^8KFADsqJ$$;rySy}h6T@AUI>uU@@cv2I=3+gn@LL~eF#y13aS zQMjU9=B<9es=`?rxit|Q(p?&$+5I^d6R%teDJm}h`EC3Dw=0eATff`UJkvP6=pd{3 zic72X?dG)|2Kk#;+U&xuTV7F7QT>1J^!4#6P2`Z3m6frnn6Pb|SyXiN&CTij(c5xB zgC1XBUqAl)o4x-F(`&W&?#MD)zOb2Kd!XQEK#8gVhe6$+3N9`#4GoP4?Djtz)lb#D z-~Has?%T$G!@55es;7TikTaqd#$Znc%A+~hsQcxd2L|pvy z3FZC`1rHC+ka73(bD!d${0F)Okq)3WjFh7y&RXy>3NST%qMjUt52Fa)3dO!aDD&&eIJiW?|i*( zcSz<_#z~VVrL_E5-1|NJ@ugVCmq)ZVzPiglxuN6nq*=30{rLFU)7x8FUAUd5vD zRVkqMWZv$#+nlc^C~Ye#DLKLM(S6H=tm_;1^b2!xL@=c?o5dKa%OO2Q=bv<>w#vshNckxlp$#dtP z1+B!<(@Q%sLGk}Y@tyyEy#{rE#bXK@%cgN({Qjow`>#@&
%tSU{a7q9P@w-b1w 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 uBd0PK$N8p + + + diff --git a/src/images/shadps4.ico b/src/images/shadps4.ico index bb50f9995ac82ebe259df8199ea9a805b35df411..870569def13a9afb256f30a9c4f4d5e7a58da677 100644 GIT binary patch literal 410598 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 JGm5~z0|545Addh5 diff --git a/src/images/shadps4.svg b/src/images/shadps4.svg new file mode 100644 index 000000000..0243f550b --- /dev/null +++ b/src/images/shadps4.svg @@ -0,0 +1,105 @@ + + diff --git a/src/images/website.png b/src/images/website.png index 9584f6b829add7101f6fe51c5e451beade335bd7..e872e60a29d8524bfa709204c5371e842823e4ed 100644 GIT binary patch literal 73633 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 literal 90853 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
N# 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

-9D7>3SPAmgsx( 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 + + + diff --git a/src/images/youtube.png b/src/images/youtube.png index 362ac578120a555ad47a80f8ec63b40294e0ffb9..2a69760e6ab506a370e674415fcb03d3d4b75548 100644 GIT binary patch literal 33075 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 Rg@J*A!PC{xWt~$(698%@yjK7K literal 39404 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 + + + + + From 8ed82712a05dbb6c127a7949072d358463411d90 Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Sat, 12 Apr 2025 21:13:04 -0700 Subject: [PATCH 15/27] hotfix: Fix logo resolution in Qt UI. --- src/qt_gui/about_dialog.ui | 2 +- src/qt_gui/check_update.cpp | 2 +- src/shadps4.qrc | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/qt_gui/about_dialog.ui b/src/qt_gui/about_dialog.ui index 3842513a5..804f0aea2 100644 --- a/src/qt_gui/about_dialog.ui +++ b/src/qt_gui/about_dialog.ui @@ -35,7 +35,7 @@ - :/images/shadps4.ico + :/images/shadps4.svg true diff --git a/src/qt_gui/check_update.cpp b/src/qt_gui/check_update.cpp index 7d3a42798..a823eedab 100644 --- a/src/qt_gui/check_update.cpp +++ b/src/qt_gui/check_update.cpp @@ -188,7 +188,7 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate, QHBoxLayout* titleLayout = new QHBoxLayout(); QLabel* imageLabel = new QLabel(this); - QPixmap pixmap(":/images/shadps4.ico"); + QPixmap pixmap(":/images/shadps4.svg"); imageLabel->setPixmap(pixmap); imageLabel->setScaledContents(true); imageLabel->setFixedSize(50, 50); diff --git a/src/shadps4.qrc b/src/shadps4.qrc index 83dea01c4..81a36af34 100644 --- a/src/shadps4.qrc +++ b/src/shadps4.qrc @@ -1,6 +1,7 @@ images/shadps4.ico + images/shadps4.svg images/about_icon.png images/dump_icon.png images/play_icon.png From 6c2574364b7d8907087759c2961d36859010ec43 Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Sun, 13 Apr 2025 08:12:02 -0700 Subject: [PATCH 16/27] libraries: Reduce some controller log spam. (#2777) --- src/core/libraries/move/move.cpp | 8 +++++++- src/core/libraries/pad/pad.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/core/libraries/move/move.cpp b/src/core/libraries/move/move.cpp index 626fed9b4..500d89586 100644 --- a/src/core/libraries/move/move.cpp +++ b/src/core/libraries/move/move.cpp @@ -9,7 +9,7 @@ namespace Libraries::Move { int PS4_SYSV_ABI sceMoveOpen() { - LOG_ERROR(Lib_Move, "(STUBBED) called"); + LOG_TRACE(Lib_Move, "(STUBBED) called"); return ORBIS_FAIL; } @@ -18,6 +18,11 @@ int PS4_SYSV_ABI sceMoveGetDeviceInfo() { return ORBIS_OK; } +int PS4_SYSV_ABI sceMoveReadStateLatest() { + LOG_TRACE(Lib_Move, "(STUBBED) called"); + return ORBIS_OK; +} + int PS4_SYSV_ABI sceMoveReadStateRecent() { LOG_TRACE(Lib_Move, "(STUBBED) called"); return ORBIS_OK; @@ -36,6 +41,7 @@ int PS4_SYSV_ABI sceMoveInit() { void RegisterlibSceMove(Core::Loader::SymbolsResolver* sym) { LIB_FUNCTION("HzC60MfjJxU", "libSceMove", 1, "libSceMove", 1, 1, sceMoveOpen); LIB_FUNCTION("GWXTyxs4QbE", "libSceMove", 1, "libSceMove", 1, 1, sceMoveGetDeviceInfo); + LIB_FUNCTION("ttU+JOhShl4", "libSceMove", 1, "libSceMove", 1, 1, sceMoveReadStateLatest); LIB_FUNCTION("f2bcpK6kJfg", "libSceMove", 1, "libSceMove", 1, 1, sceMoveReadStateRecent); LIB_FUNCTION("tsZi60H4ypY", "libSceMove", 1, "libSceMove", 1, 1, sceMoveTerm); LIB_FUNCTION("j1ITE-EoJmE", "libSceMove", 1, "libSceMove", 1, 1, sceMoveInit); diff --git a/src/core/libraries/pad/pad.cpp b/src/core/libraries/pad/pad.cpp index 2e5973144..5dfc68e90 100644 --- a/src/core/libraries/pad/pad.cpp +++ b/src/core/libraries/pad/pad.cpp @@ -250,7 +250,6 @@ int PS4_SYSV_ABI scePadMbusTerm() { } int PS4_SYSV_ABI scePadOpen(s32 userId, s32 type, s32 index, const OrbisPadOpenParam* pParam) { - LOG_INFO(Lib_Pad, "(DUMMY) called user_id = {} type = {} index = {}", userId, type, index); if (userId == -1) { return ORBIS_PAD_ERROR_DEVICE_NO_HANDLE; } @@ -261,6 +260,7 @@ int PS4_SYSV_ABI scePadOpen(s32 userId, s32 type, s32 index, const OrbisPadOpenP if (type != ORBIS_PAD_PORT_TYPE_STANDARD && type != ORBIS_PAD_PORT_TYPE_REMOTE_CONTROL) return ORBIS_PAD_ERROR_DEVICE_NOT_CONNECTED; } + LOG_INFO(Lib_Pad, "(DUMMY) called user_id = {} type = {} index = {}", userId, type, index); scePadResetLightBar(1); return 1; // dummy } From aec6e330dc339de856deb77d8711caaad539928f Mon Sep 17 00:00:00 2001 From: Vinicius Rangel Date: Sun, 13 Apr 2025 13:27:20 -0300 Subject: [PATCH 17/27] Update ImGui submodule (#2779) * update imgui submodule * fix imgui breaking changes * update ffmpeg-core submodule --- externals/dear_imgui | 2 +- externals/ffmpeg-core | 2 +- src/core/devtools/widget/text_editor.cpp | 59 ++++++++++-------------- src/imgui/imgui_std.h | 4 +- 4 files changed, 29 insertions(+), 38 deletions(-) diff --git a/externals/dear_imgui b/externals/dear_imgui index 636cd4a7d..f4d935909 160000 --- a/externals/dear_imgui +++ b/externals/dear_imgui @@ -1 +1 @@ -Subproject commit 636cd4a7d623a2bc9bf59bb3acbb4ca075befba3 +Subproject commit f4d9359095eff3eb03f685921edc1cf0e37b1687 diff --git a/externals/ffmpeg-core b/externals/ffmpeg-core index 42557a704..b0de1dcca 160000 --- a/externals/ffmpeg-core +++ b/externals/ffmpeg-core @@ -1 +1 @@ -Subproject commit 42557a704720d1b7d85c03bff0c2d369a61848da +Subproject commit b0de1dcca26c0ebfb8011b8e59dd17fc399db0ff diff --git a/src/core/devtools/widget/text_editor.cpp b/src/core/devtools/widget/text_editor.cpp index 7171cac47..12031d1ef 100644 --- a/src/core/devtools/widget/text_editor.cpp +++ b/src/core/devtools/widget/text_editor.cpp @@ -627,65 +627,56 @@ void TextEditor::HandleKeyboardInputs() { io.WantCaptureKeyboard = true; io.WantTextInput = true; - if (!IsReadOnly() && ctrl && !shift && !alt && - ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Z))) + if (!IsReadOnly() && ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Z)) Undo(); - else if (!IsReadOnly() && !ctrl && !shift && alt && - ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Backspace))) + else if (!IsReadOnly() && !ctrl && !shift && alt && ImGui::IsKeyPressed(ImGuiKey_Backspace)) Undo(); - else if (!IsReadOnly() && ctrl && !shift && !alt && - ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Y))) + else if (!IsReadOnly() && ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Y)) Redo(); - else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_UpArrow))) + else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_UpArrow)) MoveUp(1, shift); - else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_DownArrow))) + else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_DownArrow)) MoveDown(1, shift); - else if (!alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_LeftArrow))) + else if (!alt && ImGui::IsKeyPressed(ImGuiKey_LeftArrow)) MoveLeft(1, shift, ctrl); - else if (!alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_RightArrow))) + else if (!alt && ImGui::IsKeyPressed(ImGuiKey_RightArrow)) MoveRight(1, shift, ctrl); - else if (!alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_PageUp))) + else if (!alt && ImGui::IsKeyPressed(ImGuiKey_PageUp)) MoveUp(GetPageSize() - 4, shift); - else if (!alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_PageDown))) + else if (!alt && ImGui::IsKeyPressed(ImGuiKey_PageDown)) MoveDown(GetPageSize() - 4, shift); - else if (!alt && ctrl && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Home))) + else if (!alt && ctrl && ImGui::IsKeyPressed(ImGuiKey_Home)) MoveTop(shift); - else if (ctrl && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_End))) + else if (ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_End)) MoveBottom(shift); - else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Home))) + else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_Home)) MoveHome(shift); - else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_End))) + else if (!ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_End)) MoveEnd(shift); - else if (!IsReadOnly() && !ctrl && !shift && !alt && - ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Delete))) + else if (!IsReadOnly() && !ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Delete)) Delete(); else if (!IsReadOnly() && !ctrl && !shift && !alt && - ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Backspace))) + ImGui::IsKeyPressed(ImGuiKey_Backspace)) Backspace(); - else if (!ctrl && !shift && !alt && - ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Insert))) + else if (!ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Insert)) mOverwrite ^= true; - else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Insert))) + else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Insert)) Copy(); - else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_C))) + else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_C)) Copy(); - else if (!IsReadOnly() && !ctrl && shift && !alt && - ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Insert))) + else if (!IsReadOnly() && !ctrl && shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Insert)) Paste(); - else if (!IsReadOnly() && ctrl && !shift && !alt && - ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_V))) + else if (!IsReadOnly() && ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_V)) Paste(); - else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_X))) + else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_X)) Cut(); - else if (!ctrl && shift && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Delete))) + else if (!ctrl && shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Delete)) Cut(); - else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_A))) + else if (ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_A)) SelectAll(); - else if (!IsReadOnly() && !ctrl && !shift && !alt && - ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Enter))) + else if (!IsReadOnly() && !ctrl && !shift && !alt && ImGui::IsKeyPressed(ImGuiKey_Enter)) EnterCharacter('\n', false); - else if (!IsReadOnly() && !ctrl && !alt && - ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Tab))) + else if (!IsReadOnly() && !ctrl && !alt && ImGui::IsKeyPressed(ImGuiKey_Tab)) EnterCharacter('\t', shift); if (!IsReadOnly() && !io.InputQueueCharacters.empty()) { diff --git a/src/imgui/imgui_std.h b/src/imgui/imgui_std.h index cd7208064..743702657 100644 --- a/src/imgui/imgui_std.h +++ b/src/imgui/imgui_std.h @@ -50,14 +50,14 @@ inline void KeepWindowInside(ImVec2 display_size = GetIO().DisplaySize) { } inline void KeepNavHighlight() { - GetCurrentContext()->NavDisableHighlight = false; + GetCurrentContext()->NavCursorVisible = true; } inline void SetItemCurrentNavFocus(const ImGuiID id = -1) { const auto ctx = GetCurrentContext(); SetFocusID(id == -1 ? ctx->LastItemData.ID : id, ctx->CurrentWindow); ctx->NavInitResult.Clear(); - ctx->NavDisableHighlight = false; + ctx->NavCursorVisible = true; } inline void DrawPrettyBackground() { From 14fad28a9bc3bbf68b53b0c63937c85bc1eafc2e Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Sun, 13 Apr 2025 12:10:24 -0700 Subject: [PATCH 18/27] misc: Few small fixes. (#2780) * qt: Use PNG file for logo. * build: Fix some CMake issues. --- CMakeLists.txt | 12 +++++------- REUSE.toml | 1 + src/images/shadps4.png | Bin 0 -> 35291 bytes src/qt_gui/about_dialog.ui | 2 +- src/qt_gui/check_update.cpp | 2 +- src/shadps4.qrc | 2 +- 6 files changed, 9 insertions(+), 10 deletions(-) create mode 100644 src/images/shadps4.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 37492eeb3..63dc7b4c3 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED True) if(APPLE) list(APPEND ADDITIONAL_LANGUAGES OBJC) # Starting with 15.4, Rosetta 2 has support for all the necessary instruction sets. - set(CMAKE_OSX_DEPLOYMENT_TARGET 15.4) + set(CMAKE_OSX_DEPLOYMENT_TARGET 15.4 CACHE STRING "") endif() if (NOT CMAKE_BUILD_TYPE) @@ -105,11 +105,8 @@ if (CLANG_FORMAT) unset(CCOMMENT) endif() -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") - # generate git revision information -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules/") -include(GetGitRevisionDescription) +include("${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules/GetGitRevisionDescription.cmake") get_git_head_revision(GIT_REF_SPEC GIT_REV) git_describe(GIT_DESC --always --long --dirty) git_branch_name(GIT_BRANCH) @@ -209,6 +206,7 @@ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/common/scm_rev.cpp.in" "${CMAKE_ message("end git things, remote: ${GIT_REMOTE_NAME}, branch: ${GIT_BRANCH}") +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") find_package(Boost 1.84.0 CONFIG) find_package(FFmpeg 5.1.2 MODULE) find_package(fmt 10.2.0 CONFIG) @@ -229,10 +227,10 @@ find_package(ZLIB 1.3 MODULE) find_package(Zydis 5.0.0 CONFIG) find_package(pugixml 1.14 CONFIG) find_package(libusb 1.0.27 MODULE) - if (APPLE) find_package(date 3.0.1 CONFIG) endif() +list(POP_BACK CMAKE_MODULE_PATH) # Note: Windows always has these functions through winpthreads include(CheckSymbolExists) @@ -1174,7 +1172,7 @@ target_include_directories(shadps4 PRIVATE ${HOST_SHADERS_INCLUDE}) # embed resources -include(CMakeRC) +include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/CMakeRC.cmake") cmrc_add_resource_library(embedded-resources ALIAS res::embedded NAMESPACE res diff --git a/REUSE.toml b/REUSE.toml index d17594e4d..662987611 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -57,6 +57,7 @@ path = [ "src/images/utils_icon.png", "src/images/shadPS4.icns", "src/images/shadps4.ico", + "src/images/shadps4.png", "src/images/net.shadps4.shadPS4.svg", "src/images/themes_icon.png", "src/images/update_icon.png", diff --git a/src/images/shadps4.png b/src/images/shadps4.png new file mode 100644 index 0000000000000000000000000000000000000000..037732e3b14d6a97574ce29956c703a6ce7089ac GIT binary patch literal 35291 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 HDWM4f6lcyn literal 0 HcmV?d00001 diff --git a/src/qt_gui/about_dialog.ui b/src/qt_gui/about_dialog.ui index 804f0aea2..0e9ef222c 100644 --- a/src/qt_gui/about_dialog.ui +++ b/src/qt_gui/about_dialog.ui @@ -35,7 +35,7 @@ - :/images/shadps4.svg + :/images/shadps4.png true diff --git a/src/qt_gui/check_update.cpp b/src/qt_gui/check_update.cpp index a823eedab..550fdddb5 100644 --- a/src/qt_gui/check_update.cpp +++ b/src/qt_gui/check_update.cpp @@ -188,7 +188,7 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate, QHBoxLayout* titleLayout = new QHBoxLayout(); QLabel* imageLabel = new QLabel(this); - QPixmap pixmap(":/images/shadps4.svg"); + QPixmap pixmap(":/images/shadps4.png"); imageLabel->setPixmap(pixmap); imageLabel->setScaledContents(true); imageLabel->setFixedSize(50, 50); diff --git a/src/shadps4.qrc b/src/shadps4.qrc index 81a36af34..2aee394c8 100644 --- a/src/shadps4.qrc +++ b/src/shadps4.qrc @@ -1,7 +1,7 @@ images/shadps4.ico - images/shadps4.svg + images/shadps4.png images/about_icon.png images/dump_icon.png images/play_icon.png From d188d14e197ccc05414106ad2d089701d039267d Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Sun, 13 Apr 2025 12:18:28 -0700 Subject: [PATCH 19/27] hotfix: Update discord-rpc to remove invasive macOS minimum linker flag. --- externals/discord-rpc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/externals/discord-rpc b/externals/discord-rpc index d3b5af882..19f66e6dc 160000 --- a/externals/discord-rpc +++ b/externals/discord-rpc @@ -1 +1 @@ -Subproject commit d3b5af8827031f3bccbf8c15d5dc1bfdc9467f17 +Subproject commit 19f66e6dcabb2268965f453db9e5774ede43238f From ec515ad113d344fb6d9c498d7f547bc18e97348c Mon Sep 17 00:00:00 2001 From: Stephen Miller <56742918+StevenMiller123@users.noreply.github.com> Date: Sun, 13 Apr 2025 19:08:27 -0500 Subject: [PATCH 20/27] Implement sceVideoOutGetEventCount and sceVideoOutDeleteVblankEvent (#2753) * Implement sceVideoOutDeleteVblankEvent * Implement sceVideoOutGetEventCount Based on decompilation, needs testing. I also tidied up some types for other functions in here. * Change hexadecimal numbers to lowercase A minor change to make sure my implementation follows the formatting standards seen in https://github.com/shadps4-emu/shadPS4/pull/2423 --- src/core/libraries/videoout/video_out.cpp | 33 +++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/core/libraries/videoout/video_out.cpp b/src/core/libraries/videoout/video_out.cpp index 219d0886b..3c839dadd 100644 --- a/src/core/libraries/videoout/video_out.cpp +++ b/src/core/libraries/videoout/video_out.cpp @@ -104,6 +104,20 @@ s32 PS4_SYSV_ABI sceVideoOutAddVblankEvent(Kernel::SceKernelEqueue eq, s32 handl return ORBIS_OK; } +s32 PS4_SYSV_ABI sceVideoOutDeleteVblankEvent(Kernel::SceKernelEqueue eq, s32 handle) { + auto* port = driver->GetPort(handle); + if (port == nullptr) { + return ORBIS_VIDEO_OUT_ERROR_INVALID_HANDLE; + } + + if (eq == nullptr) { + return ORBIS_VIDEO_OUT_ERROR_INVALID_EVENT_QUEUE; + } + eq->RemoveEvent(handle, Kernel::SceKernelEvent::Filter::VideoOut); + port->vblank_events.erase(find(port->vblank_events.begin(), port->vblank_events.end(), eq)); + return ORBIS_OK; +} + s32 PS4_SYSV_ABI sceVideoOutRegisterBuffers(s32 handle, s32 startIndex, void* const* addresses, s32 bufferNum, const BufferAttribute* attribute) { if (!addresses || !attribute) { @@ -166,7 +180,7 @@ s32 PS4_SYSV_ABI sceVideoOutSubmitFlip(s32 handle, s32 bufferIndex, s32 flipMode return ORBIS_OK; } -int PS4_SYSV_ABI sceVideoOutGetEventId(const Kernel::SceKernelEvent* ev) { +s32 PS4_SYSV_ABI sceVideoOutGetEventId(const Kernel::SceKernelEvent* ev) { if (ev == nullptr) { return ORBIS_VIDEO_OUT_ERROR_INVALID_ADDRESS; } @@ -194,7 +208,7 @@ int PS4_SYSV_ABI sceVideoOutGetEventId(const Kernel::SceKernelEvent* ev) { } } -int PS4_SYSV_ABI sceVideoOutGetEventData(const Kernel::SceKernelEvent* ev, int64_t* data) { +s32 PS4_SYSV_ABI sceVideoOutGetEventData(const Kernel::SceKernelEvent* ev, s64* data) { if (ev == nullptr || data == nullptr) { return ORBIS_VIDEO_OUT_ERROR_INVALID_ADDRESS; } @@ -211,6 +225,17 @@ int PS4_SYSV_ABI sceVideoOutGetEventData(const Kernel::SceKernelEvent* ev, int64 return ORBIS_OK; } +s32 PS4_SYSV_ABI sceVideoOutGetEventCount(const Kernel::SceKernelEvent* ev) { + if (ev == nullptr) { + return ORBIS_VIDEO_OUT_ERROR_INVALID_ADDRESS; + } + if (ev->filter != Kernel::SceKernelEvent::Filter::VideoOut) { + return ORBIS_VIDEO_OUT_ERROR_INVALID_EVENT; + } + + return (ev->data >> 0xc) & 0xf; +} + s32 PS4_SYSV_ABI sceVideoOutGetFlipStatus(s32 handle, FlipStatus* status) { if (!status) { LOG_ERROR(Lib_VideoOut, "Flip status is null"); @@ -447,12 +472,16 @@ void RegisterLib(Core::Loader::SymbolsResolver* sym) { LIB_FUNCTION("U2JJtSqNKZI", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutGetEventId); LIB_FUNCTION("rWUTcKdkUzQ", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutGetEventData); + LIB_FUNCTION("Mt4QHHkxkOc", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, + sceVideoOutGetEventCount); LIB_FUNCTION("DYhhWbJSeRg", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutColorSettingsSetGamma); LIB_FUNCTION("pv9CI5VC+R0", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutAdjustColor); LIB_FUNCTION("-Ozn0F1AFRg", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutDeleteFlipEvent); + LIB_FUNCTION("oNOQn3knW6s", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, + sceVideoOutDeleteVblankEvent); LIB_FUNCTION("pjkDsgxli6c", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, sceVideoOutModeSetAny_); LIB_FUNCTION("N1bEoJ4SRw4", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, From fb146f2a2057795957fb341d3d046efde34f2f2a Mon Sep 17 00:00:00 2001 From: davidantunes23 <147332596+davidantunes23@users.noreply.github.com> Date: Mon, 14 Apr 2025 07:17:28 +0100 Subject: [PATCH 21/27] Fix #2613: Game icon size not working properly on grid view (#2759) * Fix #2613: Game icon size not working properly on grid view When you select grid view mode and try to change the game icon size, the icons change to the wrong size, or don't change at all. To solve this I added a line to call the function that populates the game grid with the games when the user changes the icon size. That way the size of the icons is updated to match the size selected by the user, which is the intended behaviour. I also added code to update the check on the size when changing view mode. * Fix #2613: fixed clang format issue --- src/qt_gui/main_window.cpp | 59 ++++++++++++++++++++++++++++---------- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp index 60ab58274..36037fd4c 100644 --- a/src/qt_gui/main_window.cpp +++ b/src/qt_gui/main_window.cpp @@ -516,9 +516,11 @@ void MainWindow::CreateConnects() { Config::setIconSize(36); Config::setSliderPosition(0); } else { + m_game_grid_frame->icon_size = 69; ui->sizeSlider->setValue(0); // icone_size - 36 Config::setIconSizeGrid(69); Config::setSliderPositionGrid(0); + m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); } }); @@ -529,9 +531,11 @@ void MainWindow::CreateConnects() { Config::setIconSize(64); Config::setSliderPosition(28); } else { + m_game_grid_frame->icon_size = 97; ui->sizeSlider->setValue(28); Config::setIconSizeGrid(97); Config::setSliderPositionGrid(28); + m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); } }); @@ -542,9 +546,11 @@ void MainWindow::CreateConnects() { Config::setIconSize(128); Config::setSliderPosition(92); } else { + m_game_grid_frame->icon_size = 161; ui->sizeSlider->setValue(92); - Config::setIconSizeGrid(160); - Config::setSliderPositionGrid(91); + Config::setIconSizeGrid(161); + Config::setSliderPositionGrid(92); + m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); } }); @@ -555,9 +561,11 @@ void MainWindow::CreateConnects() { Config::setIconSize(256); Config::setSliderPosition(220); } else { + m_game_grid_frame->icon_size = 256; ui->sizeSlider->setValue(220); Config::setIconSizeGrid(256); Config::setSliderPositionGrid(220); + m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); } }); // List @@ -577,6 +585,7 @@ void MainWindow::CreateConnects() { ui->sizeSlider->setEnabled(true); ui->sizeSlider->setSliderPosition(slider_pos); ui->mw_searchbar->setText(""); + SetLastIconSizeBullet(); }); // Grid connect(ui->setlistModeGridAct, &QAction::triggered, m_dock_widget.data(), [this]() { @@ -595,6 +604,7 @@ void MainWindow::CreateConnects() { ui->sizeSlider->setEnabled(true); ui->sizeSlider->setSliderPosition(slider_pos_grid); ui->mw_searchbar->setText(""); + SetLastIconSizeBullet(); }); // Elf Viewer connect(ui->setlistElfAct, &QAction::triggered, m_dock_widget.data(), [this]() { @@ -606,6 +616,7 @@ void MainWindow::CreateConnects() { isTableList = false; ui->sizeSlider->setDisabled(true); Config::setTableMode(2); + SetLastIconSizeBullet(); }); // Cheats/Patches Download. @@ -1031,19 +1042,37 @@ void MainWindow::SetLastUsedTheme() { void MainWindow::SetLastIconSizeBullet() { // set QAction bullet point if applicable int lastSize = Config::getIconSize(); - switch (lastSize) { - case 36: - ui->setIconSizeTinyAct->setChecked(true); - break; - case 64: - ui->setIconSizeSmallAct->setChecked(true); - break; - case 128: - ui->setIconSizeMediumAct->setChecked(true); - break; - case 256: - ui->setIconSizeLargeAct->setChecked(true); - break; + int lastSizeGrid = Config::getIconSizeGrid(); + if (isTableList) { + switch (lastSize) { + case 36: + ui->setIconSizeTinyAct->setChecked(true); + break; + case 64: + ui->setIconSizeSmallAct->setChecked(true); + break; + case 128: + ui->setIconSizeMediumAct->setChecked(true); + break; + case 256: + ui->setIconSizeLargeAct->setChecked(true); + break; + } + } else { + switch (lastSizeGrid) { + case 69: + ui->setIconSizeTinyAct->setChecked(true); + break; + case 97: + ui->setIconSizeSmallAct->setChecked(true); + break; + case 161: + ui->setIconSizeMediumAct->setChecked(true); + break; + case 256: + ui->setIconSizeLargeAct->setChecked(true); + break; + } } } From 657073b9e217d4005235d2089af234ab7864a7e7 Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Sun, 13 Apr 2025 23:46:10 -0700 Subject: [PATCH 22/27] libraries: Initial Audio3d implementation. (#2776) * feat: Audio3d * feat: Audio3d * audio3d: disable output * audio3d: Implement central Audio3d output. * audio3d: Ignore AudioOut already initialized error. * audio3d: Convert and retain sample buffers when queued. * audio3d: Treat object audio as single channel. * audio3d: Clean up. --------- Co-authored-by: auser1337 <154299690+auser1337@users.noreply.github.com> --- CMakeLists.txt | 2 - src/core/libraries/audio/audioout.cpp | 3 +- src/core/libraries/audio/audioout.h | 10 +- src/core/libraries/audio3d/audio3d.cpp | 797 +++++++++++++------- src/core/libraries/audio3d/audio3d.h | 194 ++--- src/core/libraries/audio3d/audio3d_error.h | 2 - src/core/libraries/audio3d/audio3d_impl.cpp | 13 - src/core/libraries/audio3d/audio3d_impl.h | 16 - 8 files changed, 637 insertions(+), 400 deletions(-) delete mode 100644 src/core/libraries/audio3d/audio3d_impl.cpp delete mode 100644 src/core/libraries/audio3d/audio3d_impl.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 63dc7b4c3..0ea8688df 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -450,8 +450,6 @@ set(SYSTEM_LIBS src/core/libraries/system/commondialog.cpp src/core/libraries/audio3d/audio3d.cpp src/core/libraries/audio3d/audio3d.h src/core/libraries/audio3d/audio3d_error.h - src/core/libraries/audio3d/audio3d_impl.cpp - src/core/libraries/audio3d/audio3d_impl.h src/core/libraries/game_live_streaming/gamelivestreaming.cpp src/core/libraries/game_live_streaming/gamelivestreaming.h src/core/libraries/remote_play/remoteplay.cpp diff --git a/src/core/libraries/audio/audioout.cpp b/src/core/libraries/audio/audioout.cpp index dea8115e9..92488443f 100644 --- a/src/core/libraries/audio/audioout.cpp +++ b/src/core/libraries/audio/audioout.cpp @@ -191,6 +191,7 @@ int PS4_SYSV_ABI sceAudioOutGetPortState(s32 handle, OrbisAudioOutPortState* sta case OrbisAudioOutPort::Main: case OrbisAudioOutPort::Bgm: case OrbisAudioOutPort::Voice: + case OrbisAudioOutPort::Audio3d: state->output = 1; state->channel = port.format_info.num_channels > 2 ? 2 : port.format_info.num_channels; break; @@ -316,7 +317,7 @@ s32 PS4_SYSV_ABI sceAudioOutOpen(UserService::OrbisUserServiceUserId user_id, return ORBIS_AUDIO_OUT_ERROR_NOT_INIT; } if ((port_type < OrbisAudioOutPort::Main || port_type > OrbisAudioOutPort::Padspk) && - (port_type != OrbisAudioOutPort::Aux)) { + (port_type != OrbisAudioOutPort::Audio3d && port_type != OrbisAudioOutPort::Aux)) { LOG_ERROR(Lib_AudioOut, "Invalid port type"); return ORBIS_AUDIO_OUT_ERROR_INVALID_PORT_TYPE; } diff --git a/src/core/libraries/audio/audioout.h b/src/core/libraries/audio/audioout.h index 5eafb43a1..7fcc25095 100644 --- a/src/core/libraries/audio/audioout.h +++ b/src/core/libraries/audio/audioout.h @@ -20,7 +20,15 @@ class PortBackend; constexpr s32 SCE_AUDIO_OUT_NUM_PORTS = 22; constexpr s32 SCE_AUDIO_OUT_VOLUME_0DB = 32768; // max volume value -enum class OrbisAudioOutPort { Main = 0, Bgm = 1, Voice = 2, Personal = 3, Padspk = 4, Aux = 127 }; +enum class OrbisAudioOutPort { + Main = 0, + Bgm = 1, + Voice = 2, + Personal = 3, + Padspk = 4, + Audio3d = 126, + Aux = 127, +}; enum class OrbisAudioOutParamFormat : u32 { S16Mono = 0, diff --git a/src/core/libraries/audio3d/audio3d.cpp b/src/core/libraries/audio3d/audio3d.cpp index d896524c6..646c28949 100644 --- a/src/core/libraries/audio3d/audio3d.cpp +++ b/src/core/libraries/audio3d/audio3d.cpp @@ -1,8 +1,13 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later +#include +#include + +#include "common/assert.h" #include "common/logging/log.h" #include "core/libraries/audio/audioout.h" +#include "core/libraries/audio/audioout_error.h" #include "core/libraries/audio3d/audio3d.h" #include "core/libraries/audio3d/audio3d_error.h" #include "core/libraries/error_codes.h" @@ -10,331 +15,577 @@ namespace Libraries::Audio3d { -int PS4_SYSV_ABI sceAudio3dInitialize(s64 iReserved) { - LOG_INFO(Lib_Audio3d, "iReserved = {}", iReserved); - return ORBIS_OK; +static constexpr u32 AUDIO3D_SAMPLE_RATE = 48000; + +static constexpr AudioOut::OrbisAudioOutParamFormat AUDIO3D_OUTPUT_FORMAT = + AudioOut::OrbisAudioOutParamFormat::S16Stereo; +static constexpr u32 AUDIO3D_OUTPUT_NUM_CHANNELS = 2; +static constexpr u32 AUDIO3D_OUTPUT_BUFFER_FRAMES = 0x100; + +static std::unique_ptr state; + +s32 PS4_SYSV_ABI sceAudio3dAudioOutClose(const s32 handle) { + LOG_INFO(Lib_Audio3d, "called, handle = {}", handle); + return AudioOut::sceAudioOutClose(handle); } -int PS4_SYSV_ABI sceAudio3dTerminate() { - // TODO: When not initialized or some ports still open, return ORBIS_AUDIO3D_ERROR_NOT_READY - LOG_INFO(Lib_Audio3d, "called"); - return ORBIS_OK; -} - -void PS4_SYSV_ABI sceAudio3dGetDefaultOpenParameters(OrbisAudio3dOpenParameters* parameters) { - if (parameters == nullptr) { - LOG_ERROR(Lib_Audio3d, "Invalid OpenParameters ptr"); - return; - } - - parameters->size_this = sizeof(OrbisAudio3dOpenParameters); - parameters->granularity = 256; - parameters->rate = OrbisAudio3dRate::Rate48000; - parameters->max_objects = 512; - parameters->queue_depth = 2; - parameters->buffer_mode = OrbisAudio3dBufferMode::AdvanceAndPush; - parameters->num_beds = 2; -} - -int PS4_SYSV_ABI sceAudio3dPortOpen(OrbisUserServiceUserId iUserId, - const OrbisAudio3dOpenParameters* pParameters, - OrbisAudio3dPortId* pId) { - LOG_INFO(Lib_Audio3d, "iUserId = {}", iUserId); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortClose(OrbisAudio3dPortId uiPortId) { - LOG_INFO(Lib_Audio3d, "uiPortId = {}", uiPortId); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortSetAttribute(OrbisAudio3dPortId uiPortId, - OrbisAudio3dAttributeId uiAttributeId, - const void* pAttribute, size_t szAttribute) { - LOG_INFO(Lib_Audio3d, "uiPortId = {}, uiAttributeId = {}, szAttribute = {}", uiPortId, - uiAttributeId, szAttribute); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortFlush(OrbisAudio3dPortId uiPortId) { - LOG_INFO(Lib_Audio3d, "uiPortId = {}", uiPortId); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortAdvance(OrbisAudio3dPortId uiPortId) { - LOG_TRACE(Lib_Audio3d, "uiPortId = {}", uiPortId); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortPush(OrbisAudio3dPortId uiPortId, OrbisAudio3dBlocking eBlocking) { - LOG_TRACE(Lib_Audio3d, "uiPortId = {}", uiPortId); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortGetAttributesSupported(OrbisAudio3dPortId uiPortId, - OrbisAudio3dAttributeId* pCapabilities, - u32* pNumCapabilities) { - LOG_INFO(Lib_Audio3d, "uiPortId = {}", uiPortId); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortGetQueueLevel(OrbisAudio3dPortId uiPortId, u32* pQueueLevel, - u32* pQueueAvailable) { - LOG_TRACE(Lib_Audio3d, "uiPortId = {}", uiPortId); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dObjectReserve(OrbisAudio3dPortId uiPortId, OrbisAudio3dObjectId* pId) { - LOG_INFO(Lib_Audio3d, "uiPortId = {}", uiPortId); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dObjectUnreserve(OrbisAudio3dPortId uiPortId, - OrbisAudio3dObjectId uiObjectId) { - LOG_INFO(Lib_Audio3d, "uiPortId = {}, uiObjectId = {}", uiPortId, uiObjectId); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dObjectSetAttributes(OrbisAudio3dPortId uiPortId, - OrbisAudio3dObjectId uiObjectId, - size_t szNumAttributes, - const OrbisAudio3dAttribute* pAttributeArray) { - LOG_INFO(Lib_Audio3d, "uiPortId = {}, uiObjectId = {}, szNumAttributes = {}", uiPortId, - uiObjectId, szNumAttributes); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dBedWrite(OrbisAudio3dPortId uiPortId, u32 uiNumChannels, - OrbisAudio3dFormat eFormat, const void* pBuffer, - u32 uiNumSamples) { - LOG_TRACE(Lib_Audio3d, "uiPortId = {}, uiNumChannels = {}, uiNumSamples = {}", uiPortId, - uiNumChannels, uiNumSamples); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dBedWrite2(OrbisAudio3dPortId uiPortId, u32 uiNumChannels, - OrbisAudio3dFormat eFormat, const void* pBuffer, - u32 uiNumSamples, OrbisAudio3dOutputRoute eOutputRoute, - bool bRestricted) { - LOG_INFO(Lib_Audio3d, "uiPortId = {}, uiNumChannels = {}, uiNumSamples = {}, bRestricted = {}", - uiPortId, uiNumChannels, uiNumSamples, bRestricted); - return ORBIS_OK; -} - -size_t PS4_SYSV_ABI sceAudio3dGetSpeakerArrayMemorySize(u32 uiNumSpeakers, bool bIs3d) { - LOG_INFO(Lib_Audio3d, "uiNumSpeakers = {}, bIs3d = {}", uiNumSpeakers, bIs3d); - return ORBIS_OK; -} - -int PS4_SYSV_ABI -sceAudio3dCreateSpeakerArray(OrbisAudio3dSpeakerArrayHandle* pHandle, - const OrbisAudio3dSpeakerArrayParameters* pParameters) { - if (pHandle == nullptr || pParameters == nullptr) { - LOG_ERROR(Lib_Audio3d, "invalid SpeakerArray parameters"); - return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; - } - LOG_INFO(Lib_Audio3d, "called"); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dDeleteSpeakerArray(OrbisAudio3dSpeakerArrayHandle handle) { - if (handle == nullptr) { - LOG_ERROR(Lib_Audio3d, "invalid SpeakerArrayHandle"); - return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; - } - LOG_INFO(Lib_Audio3d, "called"); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dGetSpeakerArrayMixCoefficients(OrbisAudio3dSpeakerArrayHandle handle, - OrbisAudio3dPosition pos, float fSpread, - float* pCoefficients, - u32 uiNumCoefficients) { - LOG_INFO(Lib_Audio3d, "fSpread = {}, uiNumCoefficients = {}", fSpread, uiNumCoefficients); - if (handle == nullptr) { - LOG_ERROR(Lib_Audio3d, "invalid SpeakerArrayHandle"); - return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; - } - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dGetSpeakerArrayMixCoefficients2(OrbisAudio3dSpeakerArrayHandle handle, - OrbisAudio3dPosition pos, float fSpread, - float* pCoefficients, - u32 uiNumCoefficients, bool bHeightAware, - float fDownmixSpreadRadius) { +s32 PS4_SYSV_ABI +sceAudio3dAudioOutOpen(const OrbisAudio3dPortId port_id, const OrbisUserServiceUserId user_id, + s32 type, const s32 index, const u32 len, const u32 freq, + const AudioOut::OrbisAudioOutParamExtendedInformation param) { LOG_INFO(Lib_Audio3d, - "fSpread = {}, uiNumCoefficients = {}, bHeightAware = {}, fDownmixSpreadRadius = {}", - fSpread, uiNumCoefficients, bHeightAware, fDownmixSpreadRadius); - if (handle == nullptr) { - LOG_ERROR(Lib_Audio3d, "invalid SpeakerArrayHandle"); + "called, port_id = {}, user_id = {}, type = {}, index = {}, len = {}, freq = {}", + port_id, user_id, type, index, len, freq); + + if (!state->ports.contains(port_id)) { + LOG_ERROR(Lib_Audio3d, "!state->ports.contains(port_id)"); + return ORBIS_AUDIO3D_ERROR_INVALID_PORT; + } + + if (len != state->ports[port_id].parameters.granularity) { + LOG_ERROR(Lib_Audio3d, "len != state->ports[port_id].parameters.granularity"); return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; } + + return sceAudioOutOpen(user_id, static_cast(type), index, len, + freq, param); +} + +s32 PS4_SYSV_ABI sceAudio3dAudioOutOutput(const s32 handle, void* ptr) { + LOG_DEBUG(Lib_Audio3d, "called, handle = {}, ptr = {}", handle, ptr); + + if (!ptr) { + LOG_ERROR(Lib_Audio3d, "!ptr"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + + if (handle < 0 || (handle & 0xFFFF) > 25) { + LOG_ERROR(Lib_Audio3d, "handle < 0 || (handle & 0xFFFF) > 25"); + return ORBIS_AUDIO3D_ERROR_INVALID_PORT; + } + + return AudioOut::sceAudioOutOutput(handle, ptr); +} + +s32 PS4_SYSV_ABI sceAudio3dAudioOutOutputs(AudioOut::OrbisAudioOutOutputParam* param, + const u32 num) { + LOG_DEBUG(Lib_Audio3d, "called, param = {}, num = {}", static_cast(param), num); + + if (!param || !num) { + LOG_ERROR(Lib_Audio3d, "!param || !num"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + + return AudioOut::sceAudioOutOutputs(param, num); +} + +static s32 PortQueueAudio(Port& port, const OrbisAudio3dPcm& pcm, const u32 num_channels) { + // Audio3d output is configured for stereo signed 16-bit PCM. Convert the data to match. + const SDL_AudioSpec src_spec = { + .format = pcm.format == OrbisAudio3dFormat::ORBIS_AUDIO3D_FORMAT_S16 ? SDL_AUDIO_S16LE + : SDL_AUDIO_F32LE, + .channels = static_cast(num_channels), + .freq = AUDIO3D_SAMPLE_RATE, + }; + constexpr SDL_AudioSpec dst_spec = { + .format = SDL_AUDIO_S16LE, + .channels = AUDIO3D_OUTPUT_NUM_CHANNELS, + .freq = AUDIO3D_SAMPLE_RATE, + }; + const auto src_size = pcm.num_samples * + (pcm.format == OrbisAudio3dFormat::ORBIS_AUDIO3D_FORMAT_S16 ? 2 : 4) * + num_channels; + + u8* dst_data; + int dst_len; + if (!SDL_ConvertAudioSamples(&src_spec, static_cast(pcm.sample_buffer), + static_cast(src_size), &dst_spec, &dst_data, &dst_len)) { + LOG_ERROR(Lib_Audio3d, "SDL_ConvertAudioSamples failed: {}", SDL_GetError()); + return ORBIS_AUDIO3D_ERROR_OUT_OF_MEMORY; + } + + port.queue.emplace_back(AudioData{ + .sample_buffer = dst_data, + .num_samples = pcm.num_samples, + }); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dBedWrite(const OrbisAudio3dPortId port_id, const u32 num_channels, + const OrbisAudio3dFormat format, void* buffer, + const u32 num_samples) { + return sceAudio3dBedWrite2(port_id, num_channels, format, buffer, num_samples, + OrbisAudio3dOutputRoute::ORBIS_AUDIO3D_OUTPUT_BOTH, false); +} + +s32 PS4_SYSV_ABI sceAudio3dBedWrite2(const OrbisAudio3dPortId port_id, const u32 num_channels, + const OrbisAudio3dFormat format, void* buffer, + const u32 num_samples, + const OrbisAudio3dOutputRoute output_route, + const bool restricted) { + LOG_DEBUG( + Lib_Audio3d, + "called, port_id = {}, num_channels = {}, format = {}, num_samples = {}, output_route " + "= {}, restricted = {}", + port_id, num_channels, magic_enum::enum_name(format), num_samples, + magic_enum::enum_name(output_route), restricted); + + if (!state->ports.contains(port_id)) { + LOG_ERROR(Lib_Audio3d, "!state->ports.contains(port_id)"); + return ORBIS_AUDIO3D_ERROR_INVALID_PORT; + } + + if (output_route > OrbisAudio3dOutputRoute::ORBIS_AUDIO3D_OUTPUT_BOTH) { + LOG_ERROR(Lib_Audio3d, "output_route > ORBIS_AUDIO3D_OUTPUT_BOTH"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + + if (format > OrbisAudio3dFormat::ORBIS_AUDIO3D_FORMAT_FLOAT) { + LOG_ERROR(Lib_Audio3d, "format > ORBIS_AUDIO3D_FORMAT_FLOAT"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + + if (num_channels != 2 && num_channels != 8) { + LOG_ERROR(Lib_Audio3d, "num_channels != 2 && num_channels != 8"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + + if (!buffer || !num_samples) { + LOG_ERROR(Lib_Audio3d, "!buffer || !num_samples"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + + if (format == OrbisAudio3dFormat::ORBIS_AUDIO3D_FORMAT_FLOAT) { + if ((reinterpret_cast(buffer) & 3) != 0) { + LOG_ERROR(Lib_Audio3d, "buffer & 3 != 0"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + } else if (format == OrbisAudio3dFormat::ORBIS_AUDIO3D_FORMAT_S16) { + if ((reinterpret_cast(buffer) & 1) != 0) { + LOG_ERROR(Lib_Audio3d, "buffer & 1 != 0"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + } + + return PortQueueAudio(state->ports[port_id], + OrbisAudio3dPcm{ + .format = format, + .sample_buffer = buffer, + .num_samples = num_samples, + }, + num_channels); +} + +s32 PS4_SYSV_ABI sceAudio3dCreateSpeakerArray() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dDeleteSpeakerArray() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dGetDefaultOpenParameters(OrbisAudio3dOpenParameters* params) { + LOG_DEBUG(Lib_Audio3d, "called"); + if (params) { + *params = OrbisAudio3dOpenParameters{ + .size_this = 0x20, + .granularity = 0x100, + .rate = OrbisAudio3dRate::ORBIS_AUDIO3D_RATE_48000, + .max_objects = 512, + .queue_depth = 2, + .buffer_mode = OrbisAudio3dBufferMode::ORBIS_AUDIO3D_BUFFER_ADVANCE_AND_PUSH, + }; + } return ORBIS_OK; } -s32 PS4_SYSV_ABI sceAudio3dAudioOutOpen(OrbisAudio3dPortId uiPortId, OrbisUserServiceUserId userId, - s32 type, s32 index, u32 len, u32 freq, u32 param) { +s32 PS4_SYSV_ABI sceAudio3dGetSpeakerArrayMemorySize() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dGetSpeakerArrayMixCoefficients() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dGetSpeakerArrayMixCoefficients2() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dInitialize(const s64 reserved) { + LOG_INFO(Lib_Audio3d, "called, reserved = {}", reserved); + + if (reserved != 0) { + LOG_ERROR(Lib_Audio3d, "reserved != 0"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + + if (state) { + LOG_ERROR(Lib_Audio3d, "already initialized"); + return ORBIS_AUDIO3D_ERROR_NOT_READY; + } + + state = std::make_unique(); + + if (const auto init_ret = AudioOut::sceAudioOutInit(); + init_ret < 0 && init_ret != ORBIS_AUDIO_OUT_ERROR_ALREADY_INIT) { + return init_ret; + } + + AudioOut::OrbisAudioOutParamExtendedInformation ext_info{}; + ext_info.data_format.Assign(AUDIO3D_OUTPUT_FORMAT); + state->audio_out_handle = + AudioOut::sceAudioOutOpen(0xFF, AudioOut::OrbisAudioOutPort::Audio3d, 0, + AUDIO3D_OUTPUT_BUFFER_FRAMES, AUDIO3D_SAMPLE_RATE, ext_info); + if (state->audio_out_handle < 0) { + return state->audio_out_handle; + } + + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dObjectReserve(const OrbisAudio3dPortId port_id, + OrbisAudio3dObjectId* object_id) { + LOG_INFO(Lib_Audio3d, "called, port_id = {}, object_id = {}", port_id, + static_cast(object_id)); + + if (!state->ports.contains(port_id)) { + LOG_ERROR(Lib_Audio3d, "!state->ports.contains(port_id)"); + return ORBIS_AUDIO3D_ERROR_INVALID_PORT; + } + + if (!object_id) { + LOG_ERROR(Lib_Audio3d, "!object_id"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + + static int last_id = 0; + *object_id = ++last_id; + + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dObjectSetAttributes(const OrbisAudio3dPortId port_id, + OrbisAudio3dObjectId object_id, + const u64 num_attributes, + const OrbisAudio3dAttribute* attribute_array) { + LOG_DEBUG(Lib_Audio3d, + "called, port_id = {}, object_id = {}, num_attributes = {}, attribute_array = {}", + port_id, object_id, num_attributes, fmt::ptr(attribute_array)); + + if (!state->ports.contains(port_id)) { + LOG_ERROR(Lib_Audio3d, "!state->ports.contains(port_id)"); + return ORBIS_AUDIO3D_ERROR_INVALID_PORT; + } + + auto& port = state->ports[port_id]; + + for (u64 i = 0; i < num_attributes; i++) { + const auto& attribute = attribute_array[i]; + + switch (attribute.attribute_id) { + case OrbisAudio3dAttributeId::ORBIS_AUDIO3D_ATTRIBUTE_PCM: { + const auto pcm = static_cast(attribute.value); + // Object audio has 1 channel. + if (const auto ret = PortQueueAudio(port, *pcm, 1); ret != ORBIS_OK) { + return ret; + } + break; + } + default: + LOG_ERROR(Lib_Audio3d, "Unsupported attribute ID: {:#x}", + static_cast(attribute.attribute_id)); + break; + } + } + + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dObjectUnreserve() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortAdvance(const OrbisAudio3dPortId port_id) { + LOG_DEBUG(Lib_Audio3d, "called, port_id = {}", port_id); + + if (!state->ports.contains(port_id)) { + LOG_ERROR(Lib_Audio3d, "!state->ports.contains(port_id)"); + return ORBIS_AUDIO3D_ERROR_INVALID_PORT; + } + + if (state->ports[port_id].parameters.buffer_mode == + OrbisAudio3dBufferMode::ORBIS_AUDIO3D_BUFFER_NO_ADVANCE) { + LOG_ERROR(Lib_Audio3d, "port doesn't have advance capability"); + return ORBIS_AUDIO3D_ERROR_NOT_SUPPORTED; + } + + auto& port = state->ports[port_id]; + if (port.current_buffer.has_value()) { + // Free existing buffer before replacing. + SDL_free(port.current_buffer->sample_buffer); + } + + if (!port.queue.empty()) { + port.current_buffer = port.queue.front(); + port.queue.pop_front(); + } else { + // Nothing to advance to. + LOG_DEBUG(Lib_Audio3d, "Port advance with no buffer queued"); + port.current_buffer = std::nullopt; + } + + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortClose() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortCreate() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortDestroy() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortFlush() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortFreeState() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortGetAttributesSupported() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortGetList() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortGetParameters() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortGetQueueLevel(const OrbisAudio3dPortId port_id, u32* queue_level, + u32* queue_available) { + LOG_DEBUG(Lib_Audio3d, "called, port_id = {}, queue_level = {}, queue_available = {}", port_id, + static_cast(queue_level), static_cast(queue_available)); + + if (!state->ports.contains(port_id)) { + LOG_ERROR(Lib_Audio3d, "!state->ports.contains(port_id)"); + return ORBIS_AUDIO3D_ERROR_INVALID_PORT; + } + + if (!queue_level && !queue_available) { + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + + const auto port = state->ports[port_id]; + const size_t size = port.queue.size(); + + if (queue_level) { + *queue_level = size; + } + + if (queue_available) { + *queue_available = port.parameters.queue_depth - size; + } + + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortGetState() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortGetStatus() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortOpen(const OrbisUserServiceUserId user_id, + const OrbisAudio3dOpenParameters* parameters, + OrbisAudio3dPortId* port_id) { + LOG_INFO(Lib_Audio3d, "called, user_id = {}, parameters = {}, id = {}", user_id, + static_cast(parameters), static_cast(port_id)); + + if (!state) { + LOG_ERROR(Lib_Audio3d, "!initialized"); + return ORBIS_AUDIO3D_ERROR_NOT_READY; + } + + if (!parameters || !port_id) { + LOG_ERROR(Lib_Audio3d, "!parameters || !id"); + return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; + } + + const int id = static_cast(state->ports.size()) + 1; + + if (id > 3) { + LOG_ERROR(Lib_Audio3d, "id > 3"); + return ORBIS_AUDIO3D_ERROR_OUT_OF_RESOURCES; + } + + *port_id = id; + std::memcpy(&state->ports[id].parameters, parameters, sizeof(OrbisAudio3dOpenParameters)); + + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortPush(const OrbisAudio3dPortId port_id, + const OrbisAudio3dBlocking blocking) { + LOG_DEBUG(Lib_Audio3d, "called, port_id = {}, blocking = {}", port_id, + magic_enum::enum_name(blocking)); + + if (!state->ports.contains(port_id)) { + LOG_ERROR(Lib_Audio3d, "!state->ports.contains(port_id)"); + return ORBIS_AUDIO3D_ERROR_INVALID_PORT; + } + + const auto& port = state->ports[port_id]; + if (port.parameters.buffer_mode != + OrbisAudio3dBufferMode::ORBIS_AUDIO3D_BUFFER_ADVANCE_AND_PUSH) { + LOG_ERROR(Lib_Audio3d, "port doesn't have push capability"); + return ORBIS_AUDIO3D_ERROR_NOT_SUPPORTED; + } + + if (!port.current_buffer.has_value()) { + // Nothing to push. + LOG_DEBUG(Lib_Audio3d, "Port push with no buffer ready"); + return ORBIS_OK; + } + + // TODO: Implement asynchronous blocking mode. + const auto& [sample_buffer, num_samples] = port.current_buffer.value(); + return AudioOut::sceAudioOutOutput(state->audio_out_handle, sample_buffer); +} + +s32 PS4_SYSV_ABI sceAudio3dPortQueryDebug() { + LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); + return ORBIS_OK; +} + +s32 PS4_SYSV_ABI sceAudio3dPortSetAttribute(const OrbisAudio3dPortId port_id, + const OrbisAudio3dAttributeId attribute_id, + void* attribute, const u64 attribute_size) { LOG_INFO(Lib_Audio3d, - "uiPortId = {}, userId = {}, type = {}, index = {}, len = {}, freq = {}, param = {}", - uiPortId, userId, type, index, len, freq, param); - return ORBIS_OK; -} + "called, port_id = {}, attribute_id = {}, attribute = {}, attribute_size = {}", + port_id, static_cast(attribute_id), attribute, attribute_size); -s32 PS4_SYSV_ABI sceAudio3dAudioOutClose(s32 handle) { - LOG_INFO(Lib_Audio3d, "handle = {}", handle); - return ORBIS_OK; -} + if (!state->ports.contains(port_id)) { + LOG_ERROR(Lib_Audio3d, "!state->ports.contains(port_id)"); + return ORBIS_AUDIO3D_ERROR_INVALID_PORT; + } -s32 PS4_SYSV_ABI sceAudio3dAudioOutOutput(s32 handle, const void* ptr) { - LOG_TRACE(Lib_Audio3d, "handle = {}", handle); - if (ptr == nullptr) { - LOG_ERROR(Lib_Audio3d, "invalid Output ptr"); + if (!attribute) { + LOG_ERROR(Lib_Audio3d, "!attribute"); return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; } + + // TODO + return ORBIS_OK; } -s32 PS4_SYSV_ABI sceAudio3dAudioOutOutputs(::Libraries::AudioOut::OrbisAudioOutOutputParam* param, - s32 num) { - LOG_INFO(Lib_Audio3d, "num = {}", num); - if (param == nullptr) { - LOG_ERROR(Lib_Audio3d, "invalid OutputParam ptr"); - return ORBIS_AUDIO3D_ERROR_INVALID_PARAMETER; - } - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortCreate(u32 uiGranularity, OrbisAudio3dRate eRate, s64 iReserved, - OrbisAudio3dPortId* pId) { - LOG_INFO(Lib_Audio3d, "uiGranularity = {}, iReserved = {}", uiGranularity, iReserved); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortDestroy(OrbisAudio3dPortId uiPortId) { - LOG_INFO(Lib_Audio3d, "uiPortId = {}", uiPortId); - return ORBIS_OK; -} - -// Audio3dPrivate - -const char* PS4_SYSV_ABI sceAudio3dStrError(int iErrorCode) { - LOG_ERROR(Lib_Audio3d, "(PRIVATE) called, iErrorCode = {}", iErrorCode); - return "NOT_IMPLEMENTED"; -} - -// Audio3dDebug - -int PS4_SYSV_ABI sceAudio3dPortQueryDebug() { - LOG_WARNING(Lib_Audio3d, "(DEBUG) sceAudio3dPortQueryDebug called"); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortGetList() { - LOG_WARNING(Lib_Audio3d, "(DEBUG) sceAudio3dPortGetList called"); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortGetParameters() { - LOG_WARNING(Lib_Audio3d, "(DEBUG) sceAudio3dPortGetParameters called"); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortGetState() { - LOG_WARNING(Lib_Audio3d, "(DEBUG) sceAudio3dPortGetState called"); - return ORBIS_OK; -} - -int PS4_SYSV_ABI sceAudio3dPortFreeState() { - LOG_WARNING(Lib_Audio3d, "(DEBUG) sceAudio3dPortFreeState called"); - return ORBIS_OK; -} - -// Unknown - -int PS4_SYSV_ABI sceAudio3dPortGetBufferLevel() { +s32 PS4_SYSV_ABI sceAudio3dReportRegisterHandler() { LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); return ORBIS_OK; } -int PS4_SYSV_ABI sceAudio3dPortGetStatus() { +s32 PS4_SYSV_ABI sceAudio3dReportUnregisterHandler() { LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); return ORBIS_OK; } -int PS4_SYSV_ABI sceAudio3dReportRegisterHandler() { +s32 PS4_SYSV_ABI sceAudio3dSetGpuRenderer() { LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); return ORBIS_OK; } -int PS4_SYSV_ABI sceAudio3dReportUnregisterHandler() { +s32 PS4_SYSV_ABI sceAudio3dStrError() { LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); return ORBIS_OK; } -int PS4_SYSV_ABI sceAudio3dSetGpuRenderer() { +s32 PS4_SYSV_ABI sceAudio3dTerminate() { LOG_ERROR(Lib_Audio3d, "(STUBBED) called"); return ORBIS_OK; } void RegisterlibSceAudio3d(Core::Loader::SymbolsResolver* sym) { + LIB_FUNCTION("pZlOm1aF3aA", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dAudioOutClose); + LIB_FUNCTION("ucEsi62soTo", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dAudioOutOpen); + LIB_FUNCTION("7NYEzJ9SJbM", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dAudioOutOutput); + LIB_FUNCTION("HbxYY27lK6E", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dAudioOutOutputs); + LIB_FUNCTION("9tEwE0GV0qo", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dBedWrite); + LIB_FUNCTION("xH4Q9UILL3o", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dBedWrite2); + LIB_FUNCTION("lvWMW6vEqFU", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dCreateSpeakerArray); + LIB_FUNCTION("8hm6YdoQgwg", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dDeleteSpeakerArray); + LIB_FUNCTION("Im+jOoa5WAI", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dGetDefaultOpenParameters); + LIB_FUNCTION("kEqqyDkmgdI", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dGetSpeakerArrayMemorySize); LIB_FUNCTION("-R1DukFq7Dk", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dGetSpeakerArrayMixCoefficients); LIB_FUNCTION("-Re+pCWvwjQ", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dGetSpeakerArrayMixCoefficients2); - LIB_FUNCTION("-pzYDZozm+M", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dPortQueryDebug); - LIB_FUNCTION("1HXxo-+1qCw", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dObjectUnreserve); + LIB_FUNCTION("UmCvjSmuZIw", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dInitialize); + LIB_FUNCTION("jO2tec4dJ2M", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dObjectReserve); LIB_FUNCTION("4uyHN9q4ZeU", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dObjectSetAttributes); - LIB_FUNCTION("7NYEzJ9SJbM", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dAudioOutOutput); - LIB_FUNCTION("8hm6YdoQgwg", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dDeleteSpeakerArray); + LIB_FUNCTION("1HXxo-+1qCw", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dObjectUnreserve); + LIB_FUNCTION("lw0qrdSjZt8", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortAdvance); + LIB_FUNCTION("OyVqOeVNtSk", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortClose); + LIB_FUNCTION("UHFOgVNz0kk", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortCreate); + LIB_FUNCTION("Mw9mRQtWepY", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortDestroy); + LIB_FUNCTION("ZOGrxWLgQzE", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortFlush); + LIB_FUNCTION("uJ0VhGcxCTQ", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortFreeState); LIB_FUNCTION("9ZA23Ia46Po", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortGetAttributesSupported); - LIB_FUNCTION("9tEwE0GV0qo", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dBedWrite); - LIB_FUNCTION("Aacl5qkRU6U", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dStrError); - LIB_FUNCTION("CKHlRW2E9dA", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortGetState); - LIB_FUNCTION("HbxYY27lK6E", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dAudioOutOutputs); - LIB_FUNCTION("Im+jOoa5WAI", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dGetDefaultOpenParameters); - LIB_FUNCTION("Mw9mRQtWepY", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortDestroy); - LIB_FUNCTION("OyVqOeVNtSk", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortClose); - LIB_FUNCTION("QfNXBrKZeI0", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dReportRegisterHandler); - LIB_FUNCTION("QqgTQQdzEMY", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dPortGetBufferLevel); LIB_FUNCTION("SEggctIeTcI", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortGetList); - LIB_FUNCTION("UHFOgVNz0kk", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortCreate); - LIB_FUNCTION("UmCvjSmuZIw", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dInitialize); - LIB_FUNCTION("VEVhZ9qd4ZY", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortPush); - LIB_FUNCTION("WW1TS2iz5yc", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dTerminate); - LIB_FUNCTION("XeDDK0xJWQA", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortOpen); - LIB_FUNCTION("YaaDbDwKpFM", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dPortGetQueueLevel); - LIB_FUNCTION("Yq9bfUQ0uJg", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dPortSetAttribute); - LIB_FUNCTION("ZOGrxWLgQzE", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortFlush); LIB_FUNCTION("flPcUaXVXcw", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortGetParameters); + LIB_FUNCTION("YaaDbDwKpFM", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dPortGetQueueLevel); + LIB_FUNCTION("CKHlRW2E9dA", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortGetState); LIB_FUNCTION("iRX6GJs9tvE", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortGetStatus); - LIB_FUNCTION("jO2tec4dJ2M", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dObjectReserve); - LIB_FUNCTION("kEqqyDkmgdI", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dGetSpeakerArrayMemorySize); - LIB_FUNCTION("lvWMW6vEqFU", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, - sceAudio3dCreateSpeakerArray); - LIB_FUNCTION("lw0qrdSjZt8", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortAdvance); - LIB_FUNCTION("pZlOm1aF3aA", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dAudioOutClose); + LIB_FUNCTION("XeDDK0xJWQA", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortOpen); + LIB_FUNCTION("VEVhZ9qd4ZY", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortPush); + LIB_FUNCTION("-pzYDZozm+M", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dPortQueryDebug); + LIB_FUNCTION("Yq9bfUQ0uJg", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dPortSetAttribute); + LIB_FUNCTION("QfNXBrKZeI0", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, + sceAudio3dReportRegisterHandler); LIB_FUNCTION("psv2gbihC1A", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dReportUnregisterHandler); - LIB_FUNCTION("uJ0VhGcxCTQ", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dPortFreeState); - LIB_FUNCTION("ucEsi62soTo", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dAudioOutOpen); - LIB_FUNCTION("xH4Q9UILL3o", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dBedWrite2); LIB_FUNCTION("yEYXcbAGK14", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dSetGpuRenderer); + LIB_FUNCTION("Aacl5qkRU6U", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dStrError); + LIB_FUNCTION("WW1TS2iz5yc", "libSceAudio3d", 1, "libSceAudio3d", 1, 1, sceAudio3dTerminate); }; } // namespace Libraries::Audio3d diff --git a/src/core/libraries/audio3d/audio3d.h b/src/core/libraries/audio3d/audio3d.h index 6f344226f..f4e9ada8a 100644 --- a/src/core/libraries/audio3d/audio3d.h +++ b/src/core/libraries/audio3d/audio3d.h @@ -1,11 +1,13 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project +// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include "common/types.h" +#include +#include -#include +#include "common/types.h" +#include "core/libraries/audio/audioout.h" namespace Core::Loader { class SymbolsResolver; @@ -13,123 +15,131 @@ class SymbolsResolver; namespace Libraries::Audio3d { -class Audio3d; - using OrbisUserServiceUserId = s32; -using OrbisAudio3dPortId = u32; -using OrbisAudio3dObjectId = u32; -using OrbisAudio3dAttributeId = u32; -enum class OrbisAudio3dFormat { - S16 = 0, - Float = 1, +enum class OrbisAudio3dRate : u32 { + ORBIS_AUDIO3D_RATE_48000 = 0, }; -enum class OrbisAudio3dRate { - Rate48000 = 0, +enum class OrbisAudio3dBufferMode : u32 { + ORBIS_AUDIO3D_BUFFER_NO_ADVANCE = 0, + ORBIS_AUDIO3D_BUFFER_ADVANCE_NO_PUSH = 1, + ORBIS_AUDIO3D_BUFFER_ADVANCE_AND_PUSH = 2, }; -enum class OrbisAudio3dBufferMode { NoAdvance = 0, AdvanceNoPush = 1, AdvanceAndPush = 2 }; - -enum class OrbisAudio3dBlocking { - Async = 0, - Sync = 1, -}; - -enum class OrbisAudio3dPassthrough { - None = 0, - Left = 1, - Right = 2, -}; - -enum class OrbisAudio3dOutputRoute { - Both = 0, - HmuOnly = 1, - TvOnly = 2, -}; - -enum class OrbisAudio3dAmbisonics : u32 { - None = ~0U, - W = 0, - X = 1, - Y = 2, - Z = 3, - R = 4, - S = 5, - T = 6, - U = 7, - V = 8, - K = 9, - L = 10, - M = 11, - N = 12, - O = 13, - P = 14, - Q = 15 -}; - -static const OrbisAudio3dAttributeId s_sceAudio3dAttributePcm = 0x00000001; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributePriority = 0x00000002; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributePosition = 0x00000003; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributeSpread = 0x00000004; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributeGain = 0x00000005; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributePassthrough = 0x00000006; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributeResetState = 0x00000007; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributeApplicationSpecific = 0x00000008; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributeAmbisonics = 0x00000009; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributeRestricted = 0x0000000A; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributeOutputRoute = 0x0000000B; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributeLateReverbLevel = 0x00010001; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributeDownmixSpreadRadius = 0x00010002; -static const OrbisAudio3dAttributeId s_sceAudio3dAttributeDownmixSpreadHeightAware = 0x00010003; - -struct OrbisAudio3dSpeakerArray; -using OrbisAudio3dSpeakerArrayHandle = OrbisAudio3dSpeakerArray*; // head - struct OrbisAudio3dOpenParameters { - size_t size_this; + u64 size_this; u32 granularity; OrbisAudio3dRate rate; u32 max_objects; u32 queue_depth; OrbisAudio3dBufferMode buffer_mode; - char padding[32]; + int : 32; u32 num_beds; }; -struct OrbisAudio3dAttribute { - OrbisAudio3dAttributeId attribute_id; - char padding[32]; - const void* p_value; - size_t value; +enum class OrbisAudio3dFormat : u32 { + ORBIS_AUDIO3D_FORMAT_S16 = 0, + ORBIS_AUDIO3D_FORMAT_FLOAT = 1, }; -struct OrbisAudio3dPosition { - float fX; - float fY; - float fZ; +enum class OrbisAudio3dOutputRoute : u32 { + ORBIS_AUDIO3D_OUTPUT_BOTH = 0, + ORBIS_AUDIO3D_OUTPUT_HMU_ONLY = 1, + ORBIS_AUDIO3D_OUTPUT_TV_ONLY = 2, +}; + +enum class OrbisAudio3dBlocking : u32 { + ORBIS_AUDIO3D_BLOCKING_ASYNC = 0, + ORBIS_AUDIO3D_BLOCKING_SYNC = 1, }; struct OrbisAudio3dPcm { OrbisAudio3dFormat format; - const void* sample_buffer; + void* sample_buffer; u32 num_samples; }; -struct OrbisAudio3dSpeakerArrayParameters { - OrbisAudio3dPosition* speaker_position; - u32 num_speakers; - bool is_3d; - void* buffer; - size_t size; +enum class OrbisAudio3dAttributeId : u32 { + ORBIS_AUDIO3D_ATTRIBUTE_PCM = 1, }; -struct OrbisAudio3dApplicationSpecific { - size_t size_this; - u8 application_specific[32]; +using OrbisAudio3dPortId = u32; +using OrbisAudio3dObjectId = u32; + +struct OrbisAudio3dAttribute { + OrbisAudio3dAttributeId attribute_id; + int : 32; + void* value; + u64 value_size; }; -void PS4_SYSV_ABI sceAudio3dGetDefaultOpenParameters(OrbisAudio3dOpenParameters* sParameters); +struct AudioData { + u8* sample_buffer; + u32 num_samples; +}; + +struct Port { + OrbisAudio3dOpenParameters parameters{}; + std::deque queue; // Only stores PCM buffers for now + std::optional current_buffer{}; +}; + +struct Audio3dState { + std::unordered_map ports; + s32 audio_out_handle; +}; + +s32 PS4_SYSV_ABI sceAudio3dAudioOutClose(s32 handle); +s32 PS4_SYSV_ABI sceAudio3dAudioOutOpen(OrbisAudio3dPortId port_id, OrbisUserServiceUserId user_id, + s32 type, s32 index, u32 len, u32 freq, + AudioOut::OrbisAudioOutParamExtendedInformation param); +s32 PS4_SYSV_ABI sceAudio3dAudioOutOutput(s32 handle, void* ptr); +s32 PS4_SYSV_ABI sceAudio3dAudioOutOutputs(AudioOut::OrbisAudioOutOutputParam* param, u32 num); +s32 PS4_SYSV_ABI sceAudio3dBedWrite(OrbisAudio3dPortId port_id, u32 num_channels, + OrbisAudio3dFormat format, void* buffer, u32 num_samples); +s32 PS4_SYSV_ABI sceAudio3dBedWrite2(OrbisAudio3dPortId port_id, u32 num_channels, + OrbisAudio3dFormat format, void* buffer, u32 num_samples, + OrbisAudio3dOutputRoute output_route, bool restricted); +s32 PS4_SYSV_ABI sceAudio3dCreateSpeakerArray(); +s32 PS4_SYSV_ABI sceAudio3dDeleteSpeakerArray(); +s32 PS4_SYSV_ABI sceAudio3dGetDefaultOpenParameters(OrbisAudio3dOpenParameters* params); +s32 PS4_SYSV_ABI sceAudio3dGetSpeakerArrayMemorySize(); +s32 PS4_SYSV_ABI sceAudio3dGetSpeakerArrayMixCoefficients(); +s32 PS4_SYSV_ABI sceAudio3dGetSpeakerArrayMixCoefficients2(); +s32 PS4_SYSV_ABI sceAudio3dInitialize(s64 reserved); +s32 PS4_SYSV_ABI sceAudio3dObjectReserve(OrbisAudio3dPortId port_id, + OrbisAudio3dObjectId* object_id); +s32 PS4_SYSV_ABI sceAudio3dObjectSetAttributes(OrbisAudio3dPortId port_id, + OrbisAudio3dObjectId object_id, u64 num_attributes, + const OrbisAudio3dAttribute* attribute_array); +s32 PS4_SYSV_ABI sceAudio3dObjectUnreserve(); +s32 PS4_SYSV_ABI sceAudio3dPortAdvance(OrbisAudio3dPortId port_id); +s32 PS4_SYSV_ABI sceAudio3dPortClose(); +s32 PS4_SYSV_ABI sceAudio3dPortCreate(); +s32 PS4_SYSV_ABI sceAudio3dPortDestroy(); +s32 PS4_SYSV_ABI sceAudio3dPortFlush(); +s32 PS4_SYSV_ABI sceAudio3dPortFreeState(); +s32 PS4_SYSV_ABI sceAudio3dPortGetAttributesSupported(); +s32 PS4_SYSV_ABI sceAudio3dPortGetList(); +s32 PS4_SYSV_ABI sceAudio3dPortGetParameters(); +s32 PS4_SYSV_ABI sceAudio3dPortGetQueueLevel(OrbisAudio3dPortId port_id, u32* queue_level, + u32* queue_available); +s32 PS4_SYSV_ABI sceAudio3dPortGetState(); +s32 PS4_SYSV_ABI sceAudio3dPortGetStatus(); +s32 PS4_SYSV_ABI sceAudio3dPortOpen(OrbisUserServiceUserId user_id, + const OrbisAudio3dOpenParameters* parameters, + OrbisAudio3dPortId* port_id); +s32 PS4_SYSV_ABI sceAudio3dPortPush(OrbisAudio3dPortId port_id, OrbisAudio3dBlocking blocking); +s32 PS4_SYSV_ABI sceAudio3dPortQueryDebug(); +s32 PS4_SYSV_ABI sceAudio3dPortSetAttribute(OrbisAudio3dPortId port_id, + OrbisAudio3dAttributeId attribute_id, void* attribute, + u64 attribute_size); +s32 PS4_SYSV_ABI sceAudio3dReportRegisterHandler(); +s32 PS4_SYSV_ABI sceAudio3dReportUnregisterHandler(); +s32 PS4_SYSV_ABI sceAudio3dSetGpuRenderer(); +s32 PS4_SYSV_ABI sceAudio3dStrError(); +s32 PS4_SYSV_ABI sceAudio3dTerminate(); void RegisterlibSceAudio3d(Core::Loader::SymbolsResolver* sym); } // namespace Libraries::Audio3d diff --git a/src/core/libraries/audio3d/audio3d_error.h b/src/core/libraries/audio3d/audio3d_error.h index 626ac8699..ff9d9749c 100644 --- a/src/core/libraries/audio3d/audio3d_error.h +++ b/src/core/libraries/audio3d/audio3d_error.h @@ -3,8 +3,6 @@ #pragma once -#include "core/libraries/error_codes.h" - constexpr int ORBIS_AUDIO3D_ERROR_UNKNOWN = 0x80EA0001; constexpr int ORBIS_AUDIO3D_ERROR_INVALID_PORT = 0x80EA0002; constexpr int ORBIS_AUDIO3D_ERROR_INVALID_OBJECT = 0x80EA0003; diff --git a/src/core/libraries/audio3d/audio3d_impl.cpp b/src/core/libraries/audio3d/audio3d_impl.cpp deleted file mode 100644 index 3069e8800..000000000 --- a/src/core/libraries/audio3d/audio3d_impl.cpp +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "audio3d_error.h" -#include "audio3d_impl.h" - -#include "common/logging/log.h" -#include "core/libraries/error_codes.h" -#include "core/libraries/kernel/kernel.h" - -using namespace Libraries::Kernel; - -namespace Libraries::Audio3d {} // namespace Libraries::Audio3d diff --git a/src/core/libraries/audio3d/audio3d_impl.h b/src/core/libraries/audio3d/audio3d_impl.h deleted file mode 100644 index 1213a030e..000000000 --- a/src/core/libraries/audio3d/audio3d_impl.h +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include "audio3d.h" - -namespace Libraries::Audio3d { - -class Audio3d { -public: -private: - using OrbisAudio3dPluginId = u32; -}; - -} // namespace Libraries::Audio3d From bec1b9056f7ca5c94efef424985eb54a63cad518 Mon Sep 17 00:00:00 2001 From: squidbus <175574877+squidbus@users.noreply.github.com> Date: Sun, 13 Apr 2025 23:46:30 -0700 Subject: [PATCH 23/27] shader_recompiler: Misc shader fixes. (#2781) * shader_recompiler: Fix frexp exponent type. * shader_recompiler: Implement V_CMP_CLASS_F32 negative class mask. * shader_recompiler: Define operands for DS_ORDERED_COUNT. --- .../backend/spirv/emit_spirv_floating_point.cpp | 4 ++-- src/shader_recompiler/backend/spirv/spirv_emit_context.cpp | 4 ++-- src/shader_recompiler/frontend/format.cpp | 3 +-- src/shader_recompiler/frontend/translate/vector_alu.cpp | 4 +++- src/shader_recompiler/ir/reg.h | 1 + 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp index 8de903ce6..347c4cb0a 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp @@ -267,12 +267,12 @@ Id EmitFPFrexpSig64(EmitContext& ctx, Id value) { Id EmitFPFrexpExp32(EmitContext& ctx, Id value) { const auto frexp = ctx.OpFrexpStruct(ctx.frexp_result_f32, value); - return ctx.OpCompositeExtract(ctx.U32[1], frexp, 1); + return ctx.OpBitcast(ctx.U32[1], ctx.OpCompositeExtract(ctx.S32[1], frexp, 1)); } Id EmitFPFrexpExp64(EmitContext& ctx, Id value) { const auto frexp = ctx.OpFrexpStruct(ctx.frexp_result_f64, value); - return ctx.OpCompositeExtract(ctx.U32[1], frexp, 1); + return ctx.OpBitcast(ctx.U32[1], ctx.OpCompositeExtract(ctx.S32[1], frexp, 1)); } Id EmitFPOrdEqual16(EmitContext& ctx, Id lhs, Id rhs) { diff --git a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp index e20cfeae2..8433251ff 100644 --- a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp +++ b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp @@ -153,9 +153,9 @@ void EmitContext::DefineArithmeticTypes() { full_result_i32x2 = Name(TypeStruct(S32[1], S32[1]), "full_result_i32x2"); full_result_u32x2 = Name(TypeStruct(U32[1], U32[1]), "full_result_u32x2"); - frexp_result_f32 = Name(TypeStruct(F32[1], U32[1]), "frexp_result_f32"); + frexp_result_f32 = Name(TypeStruct(F32[1], S32[1]), "frexp_result_f32"); if (info.uses_fp64) { - frexp_result_f64 = Name(TypeStruct(F64[1], U32[1]), "frexp_result_f64"); + frexp_result_f64 = Name(TypeStruct(F64[1], S32[1]), "frexp_result_f64"); } } diff --git a/src/shader_recompiler/frontend/format.cpp b/src/shader_recompiler/frontend/format.cpp index 76b1cc818..f89f0a582 100644 --- a/src/shader_recompiler/frontend/format.cpp +++ b/src/shader_recompiler/frontend/format.cpp @@ -2784,8 +2784,7 @@ constexpr std::array InstructionFormatDS = {{ // 62 = DS_APPEND {InstClass::DsAppendCon, InstCategory::DataShare, 3, 1, ScalarType::Uint32, ScalarType::Uint32}, // 63 = DS_ORDERED_COUNT - {InstClass::GdsOrdCnt, InstCategory::DataShare, 3, 1, ScalarType::Undefined, - ScalarType::Undefined}, + {InstClass::GdsOrdCnt, InstCategory::DataShare, 3, 1, ScalarType::Uint32, ScalarType::Uint32}, // 64 = DS_ADD_U64 {InstClass::DsAtomicArith64, InstCategory::DataShare, 3, 1, ScalarType::Uint64, ScalarType::Uint64}, diff --git a/src/shader_recompiler/frontend/translate/vector_alu.cpp b/src/shader_recompiler/frontend/translate/vector_alu.cpp index 22020d59f..da25f5434 100644 --- a/src/shader_recompiler/frontend/translate/vector_alu.cpp +++ b/src/shader_recompiler/frontend/translate/vector_alu.cpp @@ -1010,8 +1010,10 @@ void Translator::V_CMP_CLASS_F32(const GcnInst& inst) { value = ir.FPIsNan(src0); } else if ((class_mask & IR::FloatClassFunc::Infinity) == IR::FloatClassFunc::Infinity) { value = ir.FPIsInf(src0); + } else if ((class_mask & IR::FloatClassFunc::Negative) == IR::FloatClassFunc::Negative) { + value = ir.FPLessThanEqual(src0, ir.Imm32(-0.f)); } else { - UNREACHABLE(); + UNREACHABLE_MSG("Unsupported float class mask: {:#x}", static_cast(class_mask)); } } else { // We don't know the type yet, delay its resolution. diff --git a/src/shader_recompiler/ir/reg.h b/src/shader_recompiler/ir/reg.h index 40c4b61c3..622190cf0 100644 --- a/src/shader_recompiler/ir/reg.h +++ b/src/shader_recompiler/ir/reg.h @@ -25,6 +25,7 @@ enum class FloatClassFunc : u32 { NaN = SignalingNan | QuietNan, Infinity = PositiveInfinity | NegativeInfinity, + Negative = NegativeInfinity | NegativeNormal | NegativeDenorm | NegativeZero, Finite = NegativeNormal | NegativeDenorm | NegativeZero | PositiveNormal | PositiveDenorm | PositiveZero, }; From b8884d9591a878e9b6b1b92bdafe22c34cbf0c63 Mon Sep 17 00:00:00 2001 From: Missake212 Date: Mon, 14 Apr 2025 10:26:39 +0100 Subject: [PATCH 24/27] Adding requirements to the App Bug Report template based on the Game Bug Report template (#2783) * Update app-bug-report.yaml Forcing people to fill information about their hardware to make it easier for debugging problems, example: "shad crashes after I open it" with this we can tell if the user has a CPU with an iGPU instead of asking them. * Update app-bug-report.yaml VRAM amount shouldn't be needed actually. --- .github/ISSUE_TEMPLATE/app-bug-report.yaml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/app-bug-report.yaml b/.github/ISSUE_TEMPLATE/app-bug-report.yaml index cd540e06e..8959221a0 100644 --- a/.github/ISSUE_TEMPLATE/app-bug-report.yaml +++ b/.github/ISSUE_TEMPLATE/app-bug-report.yaml @@ -53,3 +53,24 @@ body: placeholder: "Example: Windows 11, Arch Linux, MacOS 15" validations: required: true + - type: input + id: cpu + attributes: + label: CPU + placeholder: "Example: Intel Core i7-8700" + validations: + required: true + - type: input + id: gpu + attributes: + label: GPU + placeholder: "Example: nVidia GTX 1650" + validations: + required: true + - type: input + id: ram + attributes: + label: Amount of RAM in GB + placeholder: "Example: 16 GB" + validations: + required: true From 7d32efbd3130c5d5aa12729f7c8385bd028985ad Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Mon, 14 Apr 2025 12:26:54 +0300 Subject: [PATCH 25/27] New Crowdin updates (#2748) * New translations en_us.ts (Chinese Traditional) * New translations en_us.ts (Chinese Traditional) * New translations en_us.ts (Chinese Traditional) * New translations en_us.ts (Chinese Traditional) * New translations en_us.ts (Chinese Traditional) * New translations en_us.ts (Chinese Traditional) * New translations en_us.ts (Chinese Traditional) * New translations en_us.ts (Chinese Traditional) * New translations en_us.ts (Dutch) * New translations en_us.ts (Slovenian) * New translations en_us.ts (Arabic) * New translations en_us.ts (Arabic) --- src/qt_gui/translations/ar_SA.ts | 38 +- src/qt_gui/translations/nl_NL.ts | 4 +- src/qt_gui/translations/sl_SI.ts | 2081 ++++++++++++++++++++++++++++++ src/qt_gui/translations/zh_TW.ts | 840 ++++++------ 4 files changed, 2522 insertions(+), 441 deletions(-) create mode 100644 src/qt_gui/translations/sl_SI.ts diff --git a/src/qt_gui/translations/ar_SA.ts b/src/qt_gui/translations/ar_SA.ts index 63ae733e8..f71ec7d3a 100644 --- a/src/qt_gui/translations/ar_SA.ts +++ b/src/qt_gui/translations/ar_SA.ts @@ -1892,43 +1892,43 @@ Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. + نسخ مخازن الذاكرة الخاصة بالـ GPU:\nيتجاوز مشكلة التزامن المتعلقة بتقديمات GPU.\n قد يساعد أو لا يساعد في حل أعطال PM4 من النوع 0. Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. - Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. + علامات تصحيح الأخطاء للمضيف:\nقوم بإدراج معلومات في المحاكي مثل علامات للأوامر AMDGPU المرتبطة بأوامر فولكن، إضافةً إلى تخصيص أسماء لتصحيح الأخطاء للموارد.\nمن الأفضل تفعيل تشخيص الأعطال عند تفعيل هذه الخاصية.\nمفيد لبرامج مثل أداة تصحيح الأخطاء الرسومية. Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. - Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. + علامات تصحيح الضيف:\nيُدخل أي علامات تصحيح أضافتها اللعبة بنفسها إلى ذاكرة أوامر الرسوميات.\nإذا تم التفعيل الأفضل تمكين "تشخيص الأعطال".\nمفيد لبرامج مثل دوك. Save Data Path:\nThe folder where game save data will be saved. - Save Data Path:\nThe folder where game save data will be saved. + مسار حفظ البيانات:\nالمجلد الذي سيتم فيه حفظ بيانات تخزين اللعبة. Browse:\nBrowse for a folder to set as the save data path. - Browse:\nBrowse for a folder to set as the save data path. + تصفح:\nاختر مجلدًا لتحديده كمكان لحفظ بيانات التخزين. Release - Release + إصدار Nightly - Nightly + إصدار ليلي Set the volume of the background music. - Set the volume of the background music. + ضبط صوت الموسيقى في الخلفية. Enable Motion Controls - Enable Motion Controls + تفعيل التحكم بالحركة Save Data Path - Save Data Path + مسار بيانات الحفظ Browse @@ -1936,15 +1936,15 @@ async - async + غير متزامن sync - sync + متزامن Auto Select - Auto Select + تلقائي Directory to install games @@ -1952,11 +1952,11 @@ Directory to save data - Directory to save data + مسار الحفظ لبيانات الألعاب Video - Video + الفيديو Display Mode @@ -1992,7 +1992,7 @@ Separate Log Files:\nWrites a separate logfile for each game. - Separate Log Files:\nWrites a separate logfile for each game. + ملفات السجل المنفصلة:\nيتم كتابة سجل منفصل لكل لعبه. Trophy Notification Position @@ -2028,7 +2028,7 @@ Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it. - Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it. + مجلد المستخدم القابل للنقل:\nتخزين إعدادات وبيانات المحاكي التي ستُطبق فقط على هذا الإصدار في المجلد الحالي. بعد إنشاء مجلد المستخدم القابل للنقل، يجب إعادة تشغيل التطبيق للبدء في استخدامه. Cannot create portable user folder @@ -2040,7 +2040,7 @@ Portable user folder created - Portable user folder created + تم إنشاء مجلد مستخدم محمول %1 successfully created. @@ -2048,7 +2048,7 @@ Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions. - Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions. + افتح مجلد الصور/الأصوات الخاصة بالجوائز المخصصة:\nيمكنك إضافة صور مخصصة للجوائز وصوت مرفق.\nأضف الملفات إلى مجلد custom_trophy بالأسماء التالية:\ntrophy.wav أو trophy.mp3، bronze.png، gold.png، platinum.png، silver.png\nملاحظة: الصوت سيعمل فقط في الإصدارات التي تستخدم QT. diff --git a/src/qt_gui/translations/nl_NL.ts b/src/qt_gui/translations/nl_NL.ts index 66872455e..2d75b74eb 100644 --- a/src/qt_gui/translations/nl_NL.ts +++ b/src/qt_gui/translations/nl_NL.ts @@ -7,7 +7,7 @@ AboutDialog About shadPS4 - About shadPS4 + Over shadPS4 shadPS4 is an experimental open-source emulator for the PlayStation 4. @@ -582,7 +582,7 @@ Could not open the file for reading - Could not open the file for reading + Could not open the file for writing diff --git a/src/qt_gui/translations/sl_SI.ts b/src/qt_gui/translations/sl_SI.ts new file mode 100644 index 000000000..ab61a5d3a --- /dev/null +++ b/src/qt_gui/translations/sl_SI.ts @@ -0,0 +1,2081 @@ + + + + + + AboutDialog + + About shadPS4 + About shadPS4 + + + shadPS4 is an experimental open-source emulator for the PlayStation 4. + shadPS4 is an experimental open-source emulator for the PlayStation 4. + + + This software should not be used to play games you have not legally obtained. + This software should not be used to play games you have not legally obtained. + + + + CheatsPatches + + Cheats / Patches for + Cheats / Patches for + + + Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n + Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n + + + No Image Available + No Image Available + + + Serial: + Serial: + + + Version: + Version: + + + Size: + Size: + + + Select Cheat File: + Select Cheat File: + + + Repository: + Repository: + + + Download Cheats + Download Cheats + + + Delete File + Delete File + + + No files selected. + No files selected. + + + You can delete the cheats you don't want after downloading them. + You can delete the cheats you don't want after downloading them. + + + Do you want to delete the selected file?\n%1 + Do you want to delete the selected file?\n%1 + + + Select Patch File: + Select Patch File: + + + Download Patches + Download Patches + + + Save + Save + + + Cheats + Cheats + + + Patches + Patches + + + Error + Error + + + No patch selected. + No patch selected. + + + Unable to open files.json for reading. + Unable to open files.json for reading. + + + No patch file found for the current serial. + No patch file found for the current serial. + + + Unable to open the file for reading. + Unable to open the file for reading. + + + Unable to open the file for writing. + Unable to open the file for writing. + + + Failed to parse XML: + Failed to parse XML: + + + Success + Success + + + Options saved successfully. + Options saved successfully. + + + Invalid Source + Invalid Source + + + The selected source is invalid. + The selected source is invalid. + + + File Exists + File Exists + + + File already exists. Do you want to replace it? + File already exists. Do you want to replace it? + + + Failed to save file: + Failed to save file: + + + Failed to download file: + Failed to download file: + + + Cheats Not Found + Cheats Not Found + + + No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. + No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. + + + Cheats Downloaded Successfully + Cheats Downloaded Successfully + + + You have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list. + You have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list. + + + Failed to save: + Failed to save: + + + Failed to download: + Failed to download: + + + Download Complete + Download Complete + + + Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats. If the patch does not appear, it may be that it does not exist for the specific serial and version of the game. + Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats. If the patch does not appear, it may be that it does not exist for the specific serial and version of the game. + + + Failed to parse JSON data from HTML. + Failed to parse JSON data from HTML. + + + Failed to retrieve HTML page. + Failed to retrieve HTML page. + + + The game is in version: %1 + The game is in version: %1 + + + The downloaded patch only works on version: %1 + The downloaded patch only works on version: %1 + + + You may need to update your game. + You may need to update your game. + + + Incompatibility Notice + Incompatibility Notice + + + Failed to open file: + Failed to open file: + + + XML ERROR: + XML ERROR: + + + Failed to open files.json for writing + Failed to open files.json for writing + + + Author: + Author: + + + Directory does not exist: + Directory does not exist: + + + Failed to open files.json for reading. + Failed to open files.json for reading. + + + Name: + Name: + + + Can't apply cheats before the game is started + Can't apply cheats before the game is started + + + Close + Close + + + + CheckUpdate + + Auto Updater + Auto Updater + + + Error + Error + + + Network error: + Network error: + + + The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. + The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. + + + Failed to parse update information. + Failed to parse update information. + + + No pre-releases found. + No pre-releases found. + + + Invalid release data. + Invalid release data. + + + No download URL found for the specified asset. + No download URL found for the specified asset. + + + Your version is already up to date! + Your version is already up to date! + + + Update Available + Update Available + + + Update Channel + Update Channel + + + Current Version + Current Version + + + Latest Version + Latest Version + + + Do you want to update? + Do you want to update? + + + Show Changelog + Show Changelog + + + Check for Updates at Startup + Check for Updates at Startup + + + Update + Update + + + No + No + + + Hide Changelog + Hide Changelog + + + Changes + Changes + + + Network error occurred while trying to access the URL + Network error occurred while trying to access the URL + + + Download Complete + Download Complete + + + The update has been downloaded, press OK to install. + The update has been downloaded, press OK to install. + + + Failed to save the update file at + Failed to save the update file at + + + Starting Update... + Starting Update... + + + Failed to create the update script file + Failed to create the update script file + + + + CompatibilityInfoClass + + Fetching compatibility data, please wait + Fetching compatibility data, please wait + + + Cancel + Cancel + + + Loading... + Loading... + + + Error + Error + + + Unable to update compatibility data! Try again later. + Unable to update compatibility data! Try again later. + + + Unable to open compatibility_data.json for writing. + Unable to open compatibility_data.json for writing. + + + Unknown + Unknown + + + Nothing + Nothing + + + Boots + Boots + + + Menus + Menus + + + Ingame + Ingame + + + Playable + Playable + + + + ControlSettings + + Configure Controls + Configure Controls + + + D-Pad + D-Pad + + + Up + Up + + + Left + Left + + + Right + Right + + + Down + Down + + + Left Stick Deadzone (def:2 max:127) + Left Stick Deadzone (def:2 max:127) + + + Left Deadzone + Left Deadzone + + + Left Stick + Left Stick + + + Config Selection + Config Selection + + + Common Config + Common Config + + + Use per-game configs + Use per-game configs + + + L1 / LB + L1 / LB + + + L2 / LT + L2 / LT + + + Back + Back + + + R1 / RB + R1 / RB + + + R2 / RT + R2 / RT + + + L3 + L3 + + + Options / Start + Options / Start + + + R3 + R3 + + + Face Buttons + Face Buttons + + + Triangle / Y + Triangle / Y + + + Square / X + Square / X + + + Circle / B + Circle / B + + + Cross / A + Cross / A + + + Right Stick Deadzone (def:2, max:127) + Right Stick Deadzone (def:2, max:127) + + + Right Deadzone + Right Deadzone + + + Right Stick + Right Stick + + + Color Adjustment + Color Adjustment + + + R: + R: + + + G: + G: + + + B: + B: + + + Override Lightbar Color + Override Lightbar Color + + + Override Color + Override Color + + + Unable to Save + Unable to Save + + + Cannot bind axis values more than once + Cannot bind axis values more than once + + + Save + Save + + + Apply + Apply + + + Restore Defaults + Restore Defaults + + + Cancel + Cancel + + + + EditorDialog + + Edit Keyboard + Mouse and Controller input bindings + Edit Keyboard + Mouse and Controller input bindings + + + Use Per-Game configs + Use Per-Game configs + + + Error + Error + + + Could not open the file for reading + Could not open the file for reading + + + Could not open the file for writing + Could not open the file for writing + + + Save Changes + Save Changes + + + Do you want to save changes? + Do you want to save changes? + + + Help + Help + + + Do you want to reset your custom default config to the original default config? + Do you want to reset your custom default config to the original default config? + + + Do you want to reset this config to your custom default config? + Do you want to reset this config to your custom default config? + + + Reset to Default + Reset to Default + + + + ElfViewer + + Open Folder + Open Folder + + + + GameInfoClass + + Loading game list, please wait :3 + Loading game list, please wait :3 + + + Cancel + Cancel + + + Loading... + Loading... + + + + GameInstallDialog + + shadPS4 - Choose directory + shadPS4 - Choose directory + + + Directory to install games + Directory to install games + + + Browse + Browse + + + Error + Error + + + Directory to install DLC + Directory to install DLC + + + + GameListFrame + + Icon + Icon + + + Name + Name + + + Serial + Serial + + + Compatibility + Compatibility + + + Region + Region + + + Firmware + Firmware + + + Size + Size + + + Version + Version + + + Path + Path + + + Play Time + Play Time + + + Never Played + Never Played + + + h + h + + + m + m + + + s + s + + + Compatibility is untested + Compatibility is untested + + + Game does not initialize properly / crashes the emulator + Game does not initialize properly / crashes the emulator + + + Game boots, but only displays a blank screen + Game boots, but only displays a blank screen + + + Game displays an image but does not go past the menu + Game displays an image but does not go past the menu + + + Game has game-breaking glitches or unplayable performance + Game has game-breaking glitches or unplayable performance + + + Game can be completed with playable performance and no major glitches + Game can be completed with playable performance and no major glitches + + + Click to see details on github + Click to see details on github + + + Last updated + Last updated + + + + GameListUtils + + B + B + + + KB + KB + + + MB + MB + + + GB + GB + + + TB + TB + + + + GuiContextMenus + + Create Shortcut + Create Shortcut + + + Cheats / Patches + Cheats / Patches + + + SFO Viewer + SFO Viewer + + + Trophy Viewer + Trophy Viewer + + + Open Folder... + Open Folder... + + + Open Game Folder + Open Game Folder + + + Open Save Data Folder + Open Save Data Folder + + + Open Log Folder + Open Log Folder + + + Copy info... + Copy info... + + + Copy Name + Copy Name + + + Copy Serial + Copy Serial + + + Copy Version + Copy Version + + + Copy Size + Copy Size + + + Copy All + Copy All + + + Delete... + Delete... + + + Delete Game + Delete Game + + + Delete Update + Delete Update + + + Delete DLC + Delete DLC + + + Delete Trophy + Delete Trophy + + + Compatibility... + Compatibility... + + + Update database + Update database + + + View report + View report + + + Submit a report + Submit a report + + + Shortcut creation + Shortcut creation + + + Shortcut created successfully! + Shortcut created successfully! + + + Error + Error + + + Error creating shortcut! + Error creating shortcut! + + + Game + Game + + + This game has no update to delete! + This game has no update to delete! + + + Update + Update + + + This game has no DLC to delete! + This game has no DLC to delete! + + + DLC + DLC + + + Delete %1 + Delete %1 + + + Are you sure you want to delete %1's %2 directory? + Are you sure you want to delete %1's %2 directory? + + + Open Update Folder + Open Update Folder + + + Delete Save Data + Delete Save Data + + + This game has no update folder to open! + This game has no update folder to open! + + + No log file found for this game! + No log file found for this game! + + + Failed to convert icon. + Failed to convert icon. + + + This game has no save data to delete! + This game has no save data to delete! + + + This game has no saved trophies to delete! + This game has no saved trophies to delete! + + + Save Data + Save Data + + + Trophy + Trophy + + + SFO Viewer for + SFO Viewer for + + + + HelpDialog + + Quickstart + Quickstart + + + FAQ + FAQ + + + Syntax + Syntax + + + Special Bindings + Special Bindings + + + Keybindings + Keybindings + + + + KBMSettings + + Configure Controls + Configure Controls + + + D-Pad + D-Pad + + + Up + Up + + + unmapped + unmapped + + + Left + Left + + + Right + Right + + + Down + Down + + + Left Analog Halfmode + Left Analog Halfmode + + + hold to move left stick at half-speed + hold to move left stick at half-speed + + + Left Stick + Left Stick + + + Config Selection + Config Selection + + + Common Config + Common Config + + + Use per-game configs + Use per-game configs + + + L1 + L1 + + + L2 + L2 + + + Text Editor + Text Editor + + + Help + Help + + + R1 + R1 + + + R2 + R2 + + + L3 + L3 + + + Touchpad Click + Touchpad Click + + + Mouse to Joystick + Mouse to Joystick + + + *press F7 ingame to activate + *press F7 ingame to activate + + + R3 + R3 + + + Options + Options + + + Mouse Movement Parameters + Mouse Movement Parameters + + + note: click Help Button/Special Keybindings for more information + note: click Help Button/Special Keybindings for more information + + + Face Buttons + Face Buttons + + + Triangle + Triangle + + + Square + Square + + + Circle + Circle + + + Cross + Cross + + + Right Analog Halfmode + Right Analog Halfmode + + + hold to move right stick at half-speed + hold to move right stick at half-speed + + + Right Stick + Right Stick + + + Speed Offset (def 0.125): + Speed Offset (def 0.125): + + + Copy from Common Config + Copy from Common Config + + + Deadzone Offset (def 0.50): + Deadzone Offset (def 0.50): + + + Speed Multiplier (def 1.0): + Speed Multiplier (def 1.0): + + + Common Config Selected + Common Config Selected + + + This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config. + This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config. + + + Copy values from Common Config + Copy values from Common Config + + + Do you want to overwrite existing mappings with the mappings from the Common Config? + Do you want to overwrite existing mappings with the mappings from the Common Config? + + + Unable to Save + Unable to Save + + + Cannot bind any unique input more than once + Cannot bind any unique input more than once + + + Press a key + Press a key + + + Cannot set mapping + Cannot set mapping + + + Mousewheel cannot be mapped to stick outputs + Mousewheel cannot be mapped to stick outputs + + + Save + Save + + + Apply + Apply + + + Restore Defaults + Restore Defaults + + + Cancel + Cancel + + + + MainWindow + + Open/Add Elf Folder + Open/Add Elf Folder + + + Boot Game + Boot Game + + + Check for Updates + Check for Updates + + + About shadPS4 + About shadPS4 + + + Configure... + Configure... + + + Recent Games + Recent Games + + + Open shadPS4 Folder + Open shadPS4 Folder + + + Exit + Exit + + + Exit shadPS4 + Exit shadPS4 + + + Exit the application. + Exit the application. + + + Show Game List + Show Game List + + + Game List Refresh + Game List Refresh + + + Tiny + Tiny + + + Small + Small + + + Medium + Medium + + + Large + Large + + + List View + List View + + + Grid View + Grid View + + + Elf Viewer + Elf Viewer + + + Game Install Directory + Game Install Directory + + + Download Cheats/Patches + Download Cheats/Patches + + + Dump Game List + Dump Game List + + + Trophy Viewer + Trophy Viewer + + + No games found. Please add your games to your library first. + No games found. Please add your games to your library first. + + + Search... + Search... + + + File + File + + + View + View + + + Game List Icons + Game List Icons + + + Game List Mode + Game List Mode + + + Settings + Settings + + + Utils + Utils + + + Themes + Themes + + + Help + Help + + + Dark + Dark + + + Light + Light + + + Green + Green + + + Blue + Blue + + + Violet + Violet + + + toolBar + toolBar + + + Game List + Game List + + + * Unsupported Vulkan Version + * Unsupported Vulkan Version + + + Download Cheats For All Installed Games + Download Cheats For All Installed Games + + + Download Patches For All Games + Download Patches For All Games + + + Download Complete + Download Complete + + + You have downloaded cheats for all the games you have installed. + You have downloaded cheats for all the games you have installed. + + + Patches Downloaded Successfully! + Patches Downloaded Successfully! + + + All Patches available for all games have been downloaded. + All Patches available for all games have been downloaded. + + + Games: + Games: + + + ELF files (*.bin *.elf *.oelf) + ELF files (*.bin *.elf *.oelf) + + + Game Boot + Game Boot + + + Only one file can be selected! + Only one file can be selected! + + + Run Game + Run Game + + + Eboot.bin file not found + Eboot.bin file not found + + + Game is already running! + Game is already running! + + + shadPS4 + shadPS4 + + + Play + Play + + + Pause + Pause + + + Stop + Stop + + + Restart + Restart + + + Full Screen + Full Screen + + + Controllers + Controllers + + + Keyboard + Keyboard + + + Refresh List + Refresh List + + + Resume + Resume + + + Show Labels Under Icons + Show Labels Under Icons + + + + SettingsDialog + + Settings + Settings + + + General + General + + + System + System + + + Console Language + Console Language + + + Emulator Language + Emulator Language + + + Emulator + Emulator + + + Default tab when opening settings + Default tab when opening settings + + + Show Game Size In List + Show Game Size In List + + + Show Splash + Show Splash + + + Enable Discord Rich Presence + Enable Discord Rich Presence + + + Username + Username + + + Trophy Key + Trophy Key + + + Trophy + Trophy + + + Open the custom trophy images/sounds folder + Open the custom trophy images/sounds folder + + + Logger + Logger + + + Log Type + Log Type + + + Log Filter + Log Filter + + + Open Log Location + Open Log Location + + + Input + Input + + + Cursor + Cursor + + + Hide Cursor + Hide Cursor + + + Hide Cursor Idle Timeout + Hide Cursor Idle Timeout + + + s + s + + + Controller + Controller + + + Back Button Behavior + Back Button Behavior + + + Graphics + Graphics + + + GUI + GUI + + + User + User + + + Graphics Device + Graphics Device + + + Vblank Divider + Vblank Divider + + + Advanced + Advanced + + + Enable Shaders Dumping + Enable Shaders Dumping + + + Enable NULL GPU + Enable NULL GPU + + + Enable HDR + Enable HDR + + + Paths + Paths + + + Game Folders + Game Folders + + + Add... + Add... + + + Remove + Remove + + + Debug + Debug + + + Enable Debug Dumping + Enable Debug Dumping + + + Enable Vulkan Validation Layers + Enable Vulkan Validation Layers + + + Enable Vulkan Synchronization Validation + Enable Vulkan Synchronization Validation + + + Enable RenderDoc Debugging + Enable RenderDoc Debugging + + + Enable Crash Diagnostics + Enable Crash Diagnostics + + + Collect Shaders + Collect Shaders + + + Copy GPU Buffers + Copy GPU Buffers + + + Host Debug Markers + Host Debug Markers + + + Guest Debug Markers + Guest Debug Markers + + + Update + Update + + + Check for Updates at Startup + Check for Updates at Startup + + + Always Show Changelog + Always Show Changelog + + + Update Channel + Update Channel + + + Check for Updates + Check for Updates + + + GUI Settings + GUI Settings + + + Title Music + Title Music + + + Disable Trophy Notification + Disable Trophy Notification + + + Background Image + Background Image + + + Show Background Image + Show Background Image + + + Opacity + Opacity + + + Play title music + Play title music + + + Update Compatibility Database On Startup + Update Compatibility Database On Startup + + + Game Compatibility + Game Compatibility + + + Display Compatibility Data + Display Compatibility Data + + + Update Compatibility Database + Update Compatibility Database + + + Volume + Volume + + + Save + Save + + + Apply + Apply + + + Restore Defaults + Restore Defaults + + + Close + Close + + + Point your mouse at an option to display its description. + Point your mouse at an option to display its description. + + + Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region. + Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region. + + + Emulator Language:\nSets the language of the emulator's user interface. + Emulator Language:\nSets the language of the emulator's user interface. + + + Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. + Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. + + + Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. + Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. + + + Username:\nSets the PS4's account username, which may be displayed by some games. + Username:\nSets the PS4's account username, which may be displayed by some games. + + + Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. + Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. + + + Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. + Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. + + + Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it. + Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it. + + + Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable. + Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable. + + + Background Image:\nControl the opacity of the game background image. + Background Image:\nControl the opacity of the game background image. + + + Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. + Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. + + + Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window). + Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window). + + + Hide Cursor:\nChoose when the cursor will disappear:\nNever: You will always see the mouse.\nidle: Set a time for it to disappear after being idle.\nAlways: you will never see the mouse. + Hide Cursor:\nChoose when the cursor will disappear:\nNever: You will always see the mouse.\nidle: Set a time for it to disappear after being idle.\nAlways: you will never see the mouse. + + + Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. + Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. + + + Back Button Behavior:\nSets the controller's back button to emulate tapping the specified position on the PS4 touchpad. + Back Button Behavior:\nSets the controller's back button to emulate tapping the specified position on the PS4 touchpad. + + + Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. + Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. + + + Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. + Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. + + + Update Compatibility Database:\nImmediately update the compatibility database. + Update Compatibility Database:\nImmediately update the compatibility database. + + + Never + Never + + + Idle + Idle + + + Always + Always + + + Touchpad Left + Touchpad Left + + + Touchpad Right + Touchpad Right + + + Touchpad Center + Touchpad Center + + + None + None + + + Graphics Device:\nOn multiple GPU systems, select the GPU the emulator will use from the drop down list,\nor select "Auto Select" to automatically determine it. + Graphics Device:\nOn multiple GPU systems, select the GPU the emulator will use from the drop down list,\nor select "Auto Select" to automatically determine it. + + + Width/Height:\nSets the size of the emulator window at launch, which can be resized during gameplay.\nThis is different from the in-game resolution. + Width/Height:\nSets the size of the emulator window at launch, which can be resized during gameplay.\nThis is different from the in-game resolution. + + + Vblank Divider:\nThe frame rate at which the emulator refreshes at is multiplied by this number. Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change! + Vblank Divider:\nThe frame rate at which the emulator refreshes at is multiplied by this number. Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change! + + + Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. + Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. + + + Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. + Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. + + + Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format. + Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format. + + + Game Folders:\nThe list of folders to check for installed games. + Game Folders:\nThe list of folders to check for installed games. + + + Add:\nAdd a folder to the list. + Add:\nAdd a folder to the list. + + + Remove:\nRemove a folder from the list. + Remove:\nRemove a folder from the list. + + + Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. + Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. + + + Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation. + Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation. + + + Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation. + Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation. + + + Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. + Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. + + + Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). + Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). + + + Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. + Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. + + + Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. + Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. + + + Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. + Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. + + + Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. + Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. + + + Save Data Path:\nThe folder where game save data will be saved. + Save Data Path:\nThe folder where game save data will be saved. + + + Browse:\nBrowse for a folder to set as the save data path. + Browse:\nBrowse for a folder to set as the save data path. + + + Release + Release + + + Nightly + Nightly + + + Set the volume of the background music. + Set the volume of the background music. + + + Enable Motion Controls + Enable Motion Controls + + + Save Data Path + Save Data Path + + + Browse + Browse + + + async + async + + + sync + sync + + + Auto Select + Auto Select + + + Directory to install games + Directory to install games + + + Directory to save data + Directory to save data + + + Video + Video + + + Display Mode + Display Mode + + + Windowed + Windowed + + + Fullscreen + Fullscreen + + + Fullscreen (Borderless) + Fullscreen (Borderless) + + + Window Size + Window Size + + + W: + W: + + + H: + H: + + + Separate Log Files + Separate Log Files + + + Separate Log Files:\nWrites a separate logfile for each game. + Separate Log Files:\nWrites a separate logfile for each game. + + + Trophy Notification Position + Trophy Notification Position + + + Left + Left + + + Right + Right + + + Top + Top + + + Bottom + Bottom + + + Notification Duration + Notification Duration + + + Portable User Folder + Portable User Folder + + + Create Portable User Folder from Common User Folder + Create Portable User Folder from Common User Folder + + + Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it. + Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it. + + + Cannot create portable user folder + Cannot create portable user folder + + + %1 already exists + %1 already exists + + + Portable user folder created + Portable user folder created + + + %1 successfully created. + %1 successfully created. + + + Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions. + Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions. + + + + TrophyViewer + + Trophy Viewer + Trophy Viewer + + + Select Game: + Select Game: + + + Progress + Progress + + + Show Earned Trophies + Show Earned Trophies + + + Show Not Earned Trophies + Show Not Earned Trophies + + + Show Hidden Trophies + Show Hidden Trophies + + + diff --git a/src/qt_gui/translations/zh_TW.ts b/src/qt_gui/translations/zh_TW.ts index 077455558..bd051651d 100644 --- a/src/qt_gui/translations/zh_TW.ts +++ b/src/qt_gui/translations/zh_TW.ts @@ -7,26 +7,26 @@ AboutDialog About shadPS4 - About shadPS4 + 關於 shadPS4 shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 is an experimental open-source emulator for the PlayStation 4. + shadPS4 是一款試驗性質的 PlayStation 4 開源模擬器軟體。 This software should not be used to play games you have not legally obtained. - This software should not be used to play games you have not legally obtained. + 不得用此軟體來遊玩你未曾合法獲取的遊戲。 CheatsPatches Cheats / Patches for - Cheats / Patches for + 金手指/修補程式: Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n - 作弊/補丁為實驗性功能。\n請小心使用。\n\n透過選擇儲存庫並點擊下載按鈕來單獨下載作弊程式。\n在“補丁”標籤頁中,您可以一次下載所有補丁,選擇要使用的補丁並保存您的選擇。\n\n由於我們不開發作弊/補丁,\n請將問題報告給作弊程式的作者。\n\n創建了新的作弊程式?請訪問:\n + 金手指/修補檔屬於試驗性質功能。\n請小心使用。\n\n透過選取儲存庫並點擊下載按鈕來單獨下載作弊程式。\n在“修補檔”標籤頁中,你可以一次下載所有修補檔,選擇要使用的補丁並保存您的選擇。\n\n由於我們不負責開發金手指/修補檔,\n請將問題匯報給作弊程式的作者。\n\n建立了新的作弊程式?請瀏覽:\n No Image Available @@ -34,27 +34,27 @@ Serial: - 序號: + 序號: Version: - 版本: + 版本: Size: - 大小: + 大小: Select Cheat File: - 選擇作弊檔案: + 選取金手指檔案: Repository: - 儲存庫: + 儲存庫: Download Cheats - 下載作弊碼 + 下載金手指 Delete File @@ -62,19 +62,19 @@ No files selected. - 沒有選擇檔案。 + 未選取檔案。 You can delete the cheats you don't want after downloading them. - 您可以在下載後刪除不需要的作弊碼。 + 下載後可以刪除不需要的金手指。 Do you want to delete the selected file?\n%1 - 您是否要刪除選定的檔案?\n%1 + 確定要刪除選取的檔案?\n%1 Select Patch File: - 選擇修補檔案: + 選取修補檔案: Download Patches @@ -86,7 +86,7 @@ Cheats - 作弊碼 + 金手指 Patches @@ -98,27 +98,27 @@ No patch selected. - 未選擇修補檔。 + 未選取修補檔。 Unable to open files.json for reading. - 無法打開 files.json 進行讀取。 + 無法開啟 files.json 進行讀取。 No patch file found for the current serial. - 找不到當前序號的修補檔。 + 找不到目前序號的修補檔。 Unable to open the file for reading. - 無法打開檔案進行讀取。 + 無法開啟檔案進行讀取。 Unable to open the file for writing. - 無法打開檔案進行寫入。 + 無法開啟檔案進行寫入。 Failed to parse XML: - 解析 XML 失敗: + 解析 XML 失敗: Success @@ -126,7 +126,7 @@ Options saved successfully. - 選項已成功儲存。 + 已成功儲存選項。 Invalid Source @@ -134,7 +134,7 @@ The selected source is invalid. - 選擇的來源無效。 + 選取的來源無效。 File Exists @@ -142,39 +142,39 @@ File already exists. Do you want to replace it? - 檔案已存在。您是否希望替換它? + 檔案已存在,您要取代嗎? Failed to save file: - 無法儲存檔案: + 無法儲存檔案: Failed to download file: - 無法下載檔案: + 無法下載檔案: Cheats Not Found - 未找到作弊碼 + 找不到金手指 No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - 在此版本的儲存庫中未找到該遊戲的作弊碼,請嘗試另一個儲存庫或不同版本的遊戲。 + 在此版本的儲存庫中未找到該遊戲的金手指,請嘗試另一個儲存庫或不同版本的遊戲。 Cheats Downloaded Successfully - 作弊碼下載成功 + 全手指下載成功 You have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list. - 您已成功下載該遊戲版本的作弊碼 從選定的儲存庫中。 您可以嘗試從其他儲存庫下載,如果可用,您也可以選擇從列表中選擇檔案來使用它。 + 你已成功從選取的儲存庫中下載該遊戲版本的金手指。 可用的話,你可以嘗試從其他儲存庫下載,你也可以從列表中選取檔案來使用它。 Failed to save: - 儲存失敗: + 儲存失敗: Failed to download: - 下載失敗: + 下載失敗: Download Complete @@ -182,15 +182,15 @@ Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats. If the patch does not appear, it may be that it does not exist for the specific serial and version of the game. - 修補檔下載成功!所有遊戲的修補檔已下載完成,無需像作弊碼那樣為每個遊戲單獨下載。如果補丁未顯示,可能是該補丁不適用於特定的序號和遊戲版本。 + 修補檔下載成功!所有遊戲的修補檔已下載完成,無需像金手指那樣為每個遊戲單獨下載。如果修補檔仍未顯示,可能該修補檔是不適用於特定的序號和遊戲版本。 Failed to parse JSON data from HTML. - 無法從 HTML 解析 JSON 數據。 + 無法從 HTML 分析 JSON 資料。 Failed to retrieve HTML page. - 無法檢索 HTML 頁面。 + 無法接收 HTML 頁面。 The game is in version: %1 @@ -198,11 +198,11 @@ The downloaded patch only works on version: %1 - 下載的補丁僅適用於版本: %1 + 下載的修補檔僅適用於版本: %1 You may need to update your game. - 您可能需要更新遊戲。 + 你可能需要更新你的遊戲。 Incompatibility Notice @@ -210,35 +210,35 @@ Failed to open file: - 無法打開檔案: + 無法開啟檔案: XML ERROR: - XML 錯誤: + XML 錯誤: Failed to open files.json for writing - 無法打開 files.json 進行寫入 + 無法開啟 files.json 進行寫入 Author: - 作者: + 作者: Directory does not exist: - 目錄不存在: + 目錄不存在: Failed to open files.json for reading. - 無法打開 files.json 進行讀取。 + 無法開啟 files.json 進行讀取。 Name: - 名稱: + 名稱: Can't apply cheats before the game is started - 在遊戲開始之前無法應用作弊。 + 在遊戲'開始之前無法套用金手指 Close @@ -265,19 +265,19 @@ Failed to parse update information. - 無法解析更新資訊。 + 無法分析更新資訊。 No pre-releases found. - 未找到預發布版本。 + 未找到預發佈版本。 Invalid release data. - 無效的發行數據。 + 無效的發佈資料。 No download URL found for the specified asset. - 未找到指定資產的下載 URL。 + 未找到指定資源的下載 URL。 Your version is already up to date! @@ -293,7 +293,7 @@ Current Version - 當前版本 + 目前版本 Latest Version @@ -301,7 +301,7 @@ Do you want to update? - 您想要更新嗎? + 你要更新嗎? Show Changelog @@ -321,7 +321,7 @@ Hide Changelog - 隱藏變更日誌 + 隱藏變更日誌紀錄 Changes @@ -329,7 +329,7 @@ Network error occurred while trying to access the URL - 嘗試訪問 URL 時發生網路錯誤 + 嘗試存取 URL 時發生了網路錯誤 Download Complete @@ -337,11 +337,11 @@ The update has been downloaded, press OK to install. - 更新已下載,按 OK 安裝。 + 已下載更新,按 OK 安裝。 Failed to save the update file at - 無法將更新文件保存到 + 無法將更新檔案儲存到 Starting Update... @@ -349,7 +349,7 @@ Failed to create the update script file - 無法創建更新腳本文件 + 無法建立更新程式碼檔案 @@ -364,7 +364,7 @@ Loading... - 載入中... + 正在載入… Error @@ -388,134 +388,134 @@ Boots - 靴子 + 可啟動 Menus - 選單 + 可顯示標題畫面 Ingame - 遊戲內 + 可進入遊戲 Playable - 可玩 + 可如常遊玩 ControlSettings Configure Controls - 操控設定 + 操控組態 D-Pad - D-Pad + 十字方向鍵 Up - Up + Left - Left + Right - Right + Down - Down + Left Stick Deadzone (def:2 max:127) - Left Stick Deadzone (def:2 max:127) + 左搖桿無效區域(預設:2 最大:127) Left Deadzone - Left Deadzone + 左無效區域 Left Stick - Left Stick + 左搖桿 Config Selection - Config Selection + 選取組態 Common Config - Common Config + 通用組態 Use per-game configs - Use per-game configs + 使用個別遊戲組態 L1 / LB - L1 / LB + L1 / LB L2 / LT - L2 / LT + L2 / LT Back - Back + Back R1 / RB - R1 / RB + R1 / RB R2 / RT - R2 / RT + R2 / RT L3 - L3 + L3 Options / Start - Options / Start + Options / Start R3 - R3 + R3 Face Buttons - Face Buttons + 功能鍵(動作按鈕) Triangle / Y - Triangle / Y + 三角 / Y Square / X - Square / X + 正方 / X Circle / B - Circle / B + 圖形 / B Cross / A - Cross / A + 交叉 / A Right Stick Deadzone (def:2, max:127) - Right Stick Deadzone (def:2, max:127) + 右搖桿無效區域(預設:2 最大:127) Right Deadzone - Right Deadzone + 右無效區域 Right Stick - Right Stick + 右搖桿 Color Adjustment @@ -523,35 +523,35 @@ R: - R: + 紅: G: - G: + 綠: B: - B: + 藍: Override Lightbar Color - Override Lightbar Color + 覆寫燈條顏色 Override Color - Override Color + 覆寫顏色 Unable to Save - 無法保存 + 無法儲存 Cannot bind axis values more than once - Cannot bind axis values more than once + 不能同時連結多個方向軸設定值 Save - 保存 + 儲存 Apply @@ -559,7 +559,7 @@ Restore Defaults - Restore Defaults + 還原成預設值 Cancel @@ -570,11 +570,11 @@ EditorDialog Edit Keyboard + Mouse and Controller input bindings - Edit Keyboard + Mouse and Controller input bindings + 編輯鍵盤滑鼠和控制器按鈕連結 Use Per-Game configs - Use Per-Game configs + 使用個別遊戲組態 Error @@ -582,11 +582,11 @@ Could not open the file for reading - Could not open the file for reading + 無法開啟檔案進行讀取 Could not open the file for writing - Could not open the file for writing + 無法開啟檔案進行寫入 Save Changes @@ -594,68 +594,68 @@ Do you want to save changes? - Do you want to save changes? + 你要儲存變更嗎? Help - Help + 幫助 Do you want to reset your custom default config to the original default config? - Do you want to reset your custom default config to the original default config? + 你要將自訂預設組態還原成原始預設組態嗎? Do you want to reset this config to your custom default config? - Do you want to reset this config to your custom default config? + 你要將此組態還原成自訂預設組態嗎? Reset to Default - Reset to Default + 還原成預設值 ElfViewer Open Folder - Open Folder + 開啟資料夾 GameInfoClass Loading game list, please wait :3 - Loading game list, please wait :3 + 正在載入遊戲列表,請稍候 :3 Cancel - Cancel + 取消 Loading... - Loading... + 正在載入… GameInstallDialog shadPS4 - Choose directory - shadPS4 - Choose directory + shadPS4 - 選取檔案目錄 Directory to install games - Directory to install games + 要安裝遊戲的目錄 Browse - Browse + 瀏覽 Error - Error + 錯誤 Directory to install DLC - Directory to install DLC + 要安裝DLC的目錄 @@ -674,7 +674,7 @@ Compatibility - Compatibility + 相容性 Region @@ -682,7 +682,7 @@ Firmware - 固件 + 韌體 Size @@ -702,43 +702,43 @@ Never Played - Never Played + 從未玩過 h - h + 小時 m - m + 分鐘 s - s + Compatibility is untested - Compatibility is untested + 未曾測試相容性 Game does not initialize properly / crashes the emulator - Game does not initialize properly / crashes the emulator + 無法正確初始化遊戲/模擬器當機 Game boots, but only displays a blank screen - Game boots, but only displays a blank screen + 遊戲可啟動,但只會顯示空白畫面 Game displays an image but does not go past the menu - Game displays an image but does not go past the menu + 可以顯示遊戲畫面,但是在標題畫面無法繼續 Game has game-breaking glitches or unplayable performance - Game has game-breaking glitches or unplayable performance + 遊戲有嚴重的BUG或者效能過低而無法遊玩 Game can be completed with playable performance and no major glitches - Game can be completed with playable performance and no major glitches + 遊戲能在可以合理遊玩的效能下破關也沒有重大BUG Click to see details on github @@ -753,447 +753,447 @@ GameListUtils B - B + B KB - KB + KB MB - MB + MB GB - GB + GB TB - TB + TB GuiContextMenus Create Shortcut - Create Shortcut + 建立捷徑 Cheats / Patches - Zuòbì / Xiūbǔ chéngshì + 金手指/修補程式 SFO Viewer - SFO Viewer + SFO 檢視器 Trophy Viewer - Trophy Viewer + 獎盃檢視器 Open Folder... - 打開資料夾... + 開啟資料夾… Open Game Folder - 打開遊戲資料夾 + 開啟遊戲資料夾 Open Save Data Folder - 打開存檔資料夾 + 開啟遊戲存檔資料夾 Open Log Folder - 打開日誌資料夾 + 開啟日誌紀錄資料夾 Copy info... - Copy info... + 複製資訊... Copy Name - Copy Name + 複製名稱 Copy Serial - Copy Serial + 複製序號 Copy Version - Copy Version + 複製版本資訊 Copy Size - Copy Size + 複製大小 Copy All - Copy All + 全部複製 Delete... - Delete... + 刪除… Delete Game - Delete Game + 刪除遊戲 Delete Update - Delete Update + 刪除更新 Delete DLC - Delete DLC + 刪除DLC Delete Trophy - Delete Trophy + 刪除獎盃 Compatibility... - Compatibility... + 相容性… Update database - Update database + 更新資料庫 View report - View report + 檢視報告 Submit a report - Submit a report + 提交報告 Shortcut creation - Shortcut creation + 建立捷徑 Shortcut created successfully! - Shortcut created successfully! + 成功建立捷徑! Error - Error + 錯誤 Error creating shortcut! - Error creating shortcut! + 建立捷徑出錯! Game - Game + 遊戲 This game has no update to delete! - This game has no update to delete! + 此遊戲沒有可刪除的更新! Update - Update + 更新 This game has no DLC to delete! - This game has no DLC to delete! + 此遊戲沒有可刪除的DLC! DLC - DLC + DLC Delete %1 - Delete %1 + 刪除 %1 Are you sure you want to delete %1's %2 directory? - Are you sure you want to delete %1's %2 directory? + 確定要刪除 %1' 的%2目錄? Open Update Folder - Open Update Folder + 開啟更新資料夾 Delete Save Data - Delete Save Data + 刪除遊戲存檔 This game has no update folder to open! - This game has no update folder to open! + 此遊戲沒有可開啟的更新資料夾! No log file found for this game! - No log file found for this game! + 找不到此遊戲的日誌紀錄檔! Failed to convert icon. - Failed to convert icon. + 轉換圖示失敗。 This game has no save data to delete! - This game has no save data to delete! + 此遊戲沒有可刪除的遊戲存檔! This game has no saved trophies to delete! - This game has no saved trophies to delete! + 此遊戲沒有可刪除的已儲存獎盃! Save Data - Save Data + 遊戲存檔 Trophy - Trophy + 獎盃 SFO Viewer for - SFO Viewer for + SFO 檢視器: HelpDialog Quickstart - Quickstart + 快速入門 FAQ - FAQ + 常見問答 Syntax - Syntax + 語法 Special Bindings - Special Bindings + 特殊連結 Keybindings - Keybindings + 按鍵連結 KBMSettings Configure Controls - Configure Controls + 操控組態 D-Pad - D-Pad + 十字方向鍵 Up - Up + unmapped - unmapped + 鍵位未有對應 Left - Left + Right - Right + Down - Down + Left Analog Halfmode - Left Analog Halfmode + 左類比搖桿半速模式 hold to move left stick at half-speed - hold to move left stick at half-speed + 按住可半速移動左搖桿 Left Stick - Left Stick + 左搖桿 Config Selection - Config Selection + 選取組態 Common Config - Common Config + 通用組態 Use per-game configs - Use per-game configs + 使用個別遊戲組態 L1 - L1 + L1 L2 - L2 + L2 Text Editor - Text Editor + 文字編輯器 Help - Help + 幫助 R1 - R1 + R1 R2 - R2 + R2 L3 - L3 + L3 Touchpad Click - Touchpad Click + 觸控板點擊 Mouse to Joystick - Mouse to Joystick + 滑鼠操控操縱桿 *press F7 ingame to activate - *press F7 ingame to activate + *在遊戲中按F7啟動 R3 - R3 + R3 Options - Options + Options Mouse Movement Parameters - Mouse Movement Parameters + 滑鼠指標移動參數 note: click Help Button/Special Keybindings for more information - note: click Help Button/Special Keybindings for more information + 注意:點擊 幫助 按鈕/特殊按鍵連結以取得更多資訊 Face Buttons - Face Buttons + 功能鍵(動作按鈕) Triangle - Triangle + 三角 Square - Square + 正方 Circle - Circle + 圓形 Cross - Cross + 交叉 Right Analog Halfmode - Right Analog Halfmode + 右類比搖桿半速模式 hold to move right stick at half-speed - hold to move right stick at half-speed + 按住可半速移動右搖桿 Right Stick - Right Stick + 右搖桿 Speed Offset (def 0.125): - Speed Offset (def 0.125): + 速度偏移量(預設為 0.125): Copy from Common Config - Copy from Common Config + 從通用組態中複製設定值 Deadzone Offset (def 0.50): - Deadzone Offset (def 0.50): + 無效區偏移量(預設為 0.50): Speed Multiplier (def 1.0): - Speed Multiplier (def 1.0): + 速度倍數(預設為 1.0): Common Config Selected - Common Config Selected + 已選取通用組態 This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config. - This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config. + 此按鈕會將通用組態中的鍵位對應複製到目前選取的組態檔案,選取通用組態時無法使用此按鈕。 Copy values from Common Config - Copy values from Common Config + 從通用組態中複製設定值 Do you want to overwrite existing mappings with the mappings from the Common Config? - Do you want to overwrite existing mappings with the mappings from the Common Config? + 你要將通用組態中的鍵位對應覆寫到現有的鍵位對應嗎? Unable to Save - Unable to Save + 無法儲存 Cannot bind any unique input more than once - Cannot bind any unique input more than once + 任何唯一的鍵位都不能重複連結 Press a key - Press a key + 按下按鍵 Cannot set mapping - Cannot set mapping + 無法設定鍵位對應 Mousewheel cannot be mapped to stick outputs - Mousewheel cannot be mapped to stick outputs + 滑鼠滾輪無法對應到搖桿輸出 Save - Save + 儲存 Apply - Apply + 套用 Restore Defaults - Restore Defaults + 還原成預設值 Cancel - Cancel + 取消 MainWindow Open/Add Elf Folder - Open/Add Elf Folder + 開啟/新增 Elf 資料夾 Boot Game - Boot Game + 啟動遊戲 Check for Updates @@ -1201,119 +1201,119 @@ About shadPS4 - About shadPS4 + 關於 shadPS4 Configure... - Configure... + 組態… Recent Games - Recent Games + 最近遊玩的遊戲 Open shadPS4 Folder - Open shadPS4 Folder + 開啟 shadPS4 資料夾 Exit - Exit + 退出 Exit shadPS4 - Exit shadPS4 + 退出 shadPS4 Exit the application. - Exit the application. + 退出應用程式。 Show Game List - Show Game List + 顯示遊戲列表 Game List Refresh - Game List Refresh + 重新整理遊戲列表 Tiny - Tiny + 微小 Small - Small + Medium - Medium + Large - Large + List View - List View + 以列表顯示 Grid View - Grid View + 以網格顯視 Elf Viewer - Elf Viewer + Elf 檢視器 Game Install Directory - Game Install Directory + 遊戲安裝目錄 Download Cheats/Patches - Xiàzài Zuòbì / Xiūbǔ chéngshì + 下載金手指/修補檔 Dump Game List - Dump Game List + 偵印遊戲列表 Trophy Viewer - Trophy Viewer + 獎盃檢視器 No games found. Please add your games to your library first. - No games found. Please add your games to your library first. + 找不到遊戲,請先將你的遊戲加入遊戲庫中。 Search... - Search... + 搜尋… File - File + 檔案 View - View + 檢視 Game List Icons - Game List Icons + 遊戲列表圖示 Game List Mode - Game List Mode + 遊戲列表模式 Settings - Settings + 設定 Utils - Utils + 工具 Themes - Themes + 主題 Help @@ -1321,27 +1321,27 @@ Dark - Dark + 深色 Light - Light + 淺色 Green - Green + 綠色 Blue - Blue + 藍色 Violet - Violet + 紫羅蘭色 toolBar - toolBar + 工具列 Game List @@ -1353,7 +1353,7 @@ Download Cheats For All Installed Games - 下載所有已安裝遊戲的作弊碼 + 下載所有已安裝遊戲的金手指 Download Patches For All Games @@ -1365,7 +1365,7 @@ You have downloaded cheats for all the games you have installed. - 您已經下載了所有已安裝遊戲的作弊碼。 + 你已下載所有已安裝遊戲的金手指。 Patches Downloaded Successfully! @@ -1377,7 +1377,7 @@ Games: - 遊戲: + 遊戲: ELF files (*.bin *.elf *.oelf) @@ -1389,102 +1389,102 @@ Only one file can be selected! - 只能選擇一個檔案! + 只能選取一個檔案! Run Game - Run Game + 執行遊戲 Eboot.bin file not found - Eboot.bin file not found + 找不到 Eboot.bin 檔案 Game is already running! - Game is already running! + 已在執行遊戲! shadPS4 - shadPS4 + shadPS4 Play - Play + 遊玩 Pause - Pause + 暫停 Stop - Stop + 停止 Restart - Restart + 重新啟動 Full Screen - Full Screen + 全螢幕 Controllers - Controllers + 控制器 Keyboard - Keyboard + 鍵盤 Refresh List - Refresh List + 重新整理列表 Resume - Resume + 繼續 Show Labels Under Icons - Show Labels Under Icons + 在圖示下方顯示標籤 SettingsDialog Settings - Settings + 設定 General - General + 一般 System - System + 系統 Console Language - Console Language + 主機語言 Emulator Language - Emulator Language + 模擬器語言 Emulator - Emulator + 模擬器 Default tab when opening settings - 打開設置時的默認選項卡 + 開啟設定時的預設選項頁面 Show Game Size In List - 顯示遊戲大小在列表中 + 在列表中顯示遊戲大小 Show Splash - Show Splash + 顯示啟動畫面 Enable Discord Rich Presence @@ -1492,35 +1492,35 @@ Username - Username + 使用者名稱 Trophy Key - Trophy Key + 獎盃金鑰 Trophy - Trophy + 獎盃 Open the custom trophy images/sounds folder - Open the custom trophy images/sounds folder + 開啟自訂獎盃圖像/音效資料夾 Logger - Logger + 日誌紀錄器 Log Type - Log Type + 日誌記錄類型 Log Filter - Log Filter + 日誌紀錄過濾器 Open Log Location - 開啟日誌位置 + 開啟日誌記錄位置 Input @@ -1528,19 +1528,19 @@ Cursor - 游標 + 滑鼠遊標 Hide Cursor - 隱藏游標 + 隱藏滑鼠指標 Hide Cursor Idle Timeout - 游標空閒超時隱藏 + 空閒滑鼠指標逾時隱藏 s - s + Controller @@ -1552,7 +1552,7 @@ Graphics - Graphics + 圖形 GUI @@ -1564,27 +1564,27 @@ Graphics Device - Graphics Device + 圖形裝置 Vblank Divider - Vblank Divider + Vblank 分隔符 Advanced - Advanced + 進階 Enable Shaders Dumping - Enable Shaders Dumping + 啟用著色器傾印 Enable NULL GPU - Enable NULL GPU + 啟用空值GPU Enable HDR - Enable HDR + 啟用 HDR Paths @@ -1596,7 +1596,7 @@ Add... - 添加... + 新增… Remove @@ -1604,43 +1604,43 @@ Debug - Debug + 偵錯 Enable Debug Dumping - Enable Debug Dumping + 啟用偵錯傾印 Enable Vulkan Validation Layers - Enable Vulkan Validation Layers + 啟用 Vulkan 驗證層 Enable Vulkan Synchronization Validation - Enable Vulkan Synchronization Validation + 啟用 Vulkan 同步驗證 Enable RenderDoc Debugging - Enable RenderDoc Debugging + 啟用 RenderDoc 偵錯 Enable Crash Diagnostics - Enable Crash Diagnostics + 啟用當機診斷 Collect Shaders - Collect Shaders + 收集著色器 Copy GPU Buffers - Copy GPU Buffers + 複製 GPU 緩衝區 Host Debug Markers - Host Debug Markers + Host 偵錯標記 Guest Debug Markers - Guest Debug Markers + Guest 偵錯標記 Update @@ -1664,27 +1664,27 @@ GUI Settings - 介面設置 + 介面設定 Title Music - Title Music + 標題音樂 Disable Trophy Notification - Disable Trophy Notification + 停用獎盃通知 Background Image - Background Image + 背景圖像 Show Background Image - Show Background Image + 顯示背景影像 Opacity - Opacity + 透明度 Play title music @@ -1692,19 +1692,19 @@ Update Compatibility Database On Startup - Update Compatibility Database On Startup + 啟動時更新相容性資料庫 Game Compatibility - Game Compatibility + 遊戲相容性 Display Compatibility Data - Display Compatibility Data + 顯示相容性資料 Update Compatibility Database - Update Compatibility Database + 更新相容性資料庫 Volume @@ -1720,7 +1720,7 @@ Restore Defaults - 還原預設值 + 還原成預設值 Close @@ -1728,79 +1728,79 @@ Point your mouse at an option to display its description. - 將鼠標指向選項以顯示其描述。 + 將滑鼠指標指向選項就會顯示其描述。 Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region. - 主機語言:\n設定PS4遊戲使用的語言。\n建議將其設置為遊戲支持的語言,這會因地區而異。 + 主機語言:\n設定 PS4 遊戲使用的語言。 \n建議將其設定為遊戲'支援的語言,該語言因地區而異。 Emulator Language:\nSets the language of the emulator's user interface. - 模擬器語言:\n設定模擬器的用戶介面的語言。 + 模擬器語言:\n設定模擬器'的使用者介面語言。 Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - 顯示啟動畫面:\n在遊戲啟動時顯示遊戲的啟動畫面(特殊圖片)。 + 顯示啟動畫面:\n遊戲'開始時顯示遊戲的啟動畫面(特殊圖像)。 Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - 啟用 Discord Rich Presence:\n在您的 Discord 個人檔案上顯示模擬器圖標和相關信息。 + 啟用 Discord Rich Presence:\n在你的 Discord 個人檔案上顯示模擬器圖示和相關資訊。 Username:\nSets the PS4's account username, which may be displayed by some games. - 用戶名:\n設定PS4帳號的用戶名,某些遊戲中可能會顯示。 + 使用者名稱:\n設定 PS4 '的帳號使用者名稱,某些遊戲可能會顯示該使用者名稱。 Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. + 獎盃金鑰:\n用於解密獎盃的金鑰,必須從你的越獄主機中獲取。 \n僅包含十六進制字元。 Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - 日誌類型:\n設定是否同步日誌窗口的輸出以提高性能。可能對模擬產生不良影響。 + 日誌記錄類型:\n設定是否同步日誌記錄視窗的輸出以提高效能。可能會對模擬產生負面影響。 Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it. - 日誌過濾器:\n過濾日誌以僅打印特定信息。\n範例:"Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" 等級: Trace, Debug, Info, Warning, Error, Critical - 以此順序,特定級別靜音所有前面的級別,並記錄其後的每個級別。 + 日誌記錄過濾器:\n過濾日誌記錄以僅列出特定資訊。 \n範例:{[="-=]}Core:Trace{[="-=]} {[="-=]}Lib.Pad:Debug Common.Filesystem:Error{[="-=]} {[="-=]}*:Critical{[="-=]}\n等級:Trace、Debug、Info、Warning、Error、Critical - 按照此順序,指定等級之後會不列出列表中等級低於其的所有資訊,並記錄列出等級高於其/同級的資訊。 Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable. - 更新:\nRelease: 每月發布的官方版本,可能非常舊,但更可靠且經過測試。\nNightly: 開發版本,擁有所有最新的功能和修復,但可能包含錯誤,穩定性較差。 + 更新:\n正式版:每月發布的正式版本可能會過時,但更可靠而且有經過測試。 \n預覽版:具有所有最新功能和修復的開發版本,但可能含有一些錯誤而且不太穩定。 Background Image:\nControl the opacity of the game background image. - Background Image:\nControl the opacity of the game background image. + 背景圖像:\n控制遊戲背​​景圖像的能見度。 Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - 播放標題音樂:\n如果遊戲支持,啟用在GUI中選擇遊戲時播放特殊音樂。 + 播放標題音樂:\n如果遊戲支援的話,則啟用在 GUI 中選取遊戲時播放特殊音樂。 Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window). - Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window). + 停用獎盃彈出視窗:\n停用遊戲內獎盃通知,仍然可以使用獎盃檢視器(在主視窗中右鍵單擊遊戲)追蹤獎盃進度。 Hide Cursor:\nChoose when the cursor will disappear:\nNever: You will always see the mouse.\nidle: Set a time for it to disappear after being idle.\nAlways: you will never see the mouse. - 隱藏游標:\n選擇游標何時消失:\n從不: 您將始終看到滑鼠。\n閒置: 設定在閒置後消失的時間。\n始終: 您將永遠看不到滑鼠。 + 隱藏滑鼠指標:\n選擇滑鼠指標何時消失:\n從不:你始終會看到滑鼠指標。 \n閒置:設定滑鼠指標空閒多久後消失的時間。 \n始終:你始終看不到滑鼠指標。 Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - 設定滑鼠在閒置後消失的時間。 + 空閒滑鼠指標隱藏逾時:\n閒置滑鼠指標隱藏自身之前的持續顯示時間(秒)。 Back Button Behavior:\nSets the controller's back button to emulate tapping the specified position on the PS4 touchpad. - 返回按鈕行為:\n設定控制器的返回按鈕模擬在 PS4 觸控板上指定位置的觸碰。 + 返回按鈕行為:\n設定控制器'的返回按鈕以模擬點擊 PS4 控制器觸控板上的指定位置。 Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. + 顯示相容性資料:\n在表格顯視模式中顯示遊戲相容性資訊。啟用「啟動"時更新相容性」以取得"最新資訊。 Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. + 啟動時更新相容性:\n在 shadPS4 啟動時自動更新相容性資料庫。 Update Compatibility Database:\nImmediately update the compatibility database. - Update Compatibility Database:\nImmediately update the compatibility database. + 更新相容性資料庫:\n立即更新相容性資料庫。 Never @@ -1832,250 +1832,250 @@ Graphics Device:\nOn multiple GPU systems, select the GPU the emulator will use from the drop down list,\nor select "Auto Select" to automatically determine it. - 圖形設備:\n在多GPU系統中,從下拉列表中選擇模擬器將使用的GPU,\n或選擇「自動選擇」以自動確定。 + 圖形裝置:\n在多GPU系統中,從下拉列表中選取模擬器將使用的GPU,\n或選取「自動選取」以自動選用適合的GPU。 Width/Height:\nSets the size of the emulator window at launch, which can be resized during gameplay.\nThis is different from the in-game resolution. - 寬度/高度:\n設定模擬器啟動時的窗口大小,可以在遊戲過程中調整。\n這與遊戲內解析度不同。 + 寬度/高度:\n設定模擬器啟動時的視窗大小,可以在遊戲過程中調整。\n這與遊戲內部解析度不同。 Vblank Divider:\nThe frame rate at which the emulator refreshes at is multiplied by this number. Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change! - Vblank分隔符:\n模擬器的幀速率將乘以這個數字。更改此數字可能會有不良影響,例如增加遊戲速度,或破壞不預期此變化的關鍵遊戲功能! + Vblank分隔符:\n模擬器的畫格速率將乘以這個數字。變更此數字可能會有不良影響,例如增加遊戲速度,或可能會不似預期地破壞關鍵的遊戲功能! Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - 啟用著色器轉儲:\n為了技術調試,將遊戲的著色器在渲染時保存到文件夾中。 + 啟用著色器傾印:\n作為技術偵錯用途,將遊戲的著色器在渲染時儲存到資料夾中。 Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - 啟用空GPU:\n為了技術調試,禁用遊戲渲染,彷彿沒有顯示卡。 + 啟用空值GPU:\n作為技術偵錯用途,停用遊戲渲染,彷如沒有顯示卡。 Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format. - Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format. + 啟用 HDR:\n在支援 HDR 的遊戲中啟用 HDR。 \n您的顯示器必須支援 BT2020 PQ 色彩空間和 RGB10A2 交換鏈格式。 Game Folders:\nThe list of folders to check for installed games. - 遊戲資料夾:\n檢查已安裝遊戲的資料夾列表。 + 遊戲資料夾:\n檢查已安裝遊戲的資料夾列表。 Add:\nAdd a folder to the list. - 添加:\n將資料夾添加到列表。 + 新增:\n將資料夾新增到列表中。 Remove:\nRemove a folder from the list. - 移除:\n從列表中移除資料夾。 + 移除:\n從列表中移除資料夾。 Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - 啟用調試轉儲:\n將當前運行的PS4程序的輸入和輸出符號及文件頭信息保存到目錄中。 + 啟用偵錯傾印:\n將目前執行的PS4程式的輸入和輸出符號以及檔案頭資訊儲存到目錄中。 Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation. - 啟用Vulkan驗證層:\n啟用一個系統來驗證Vulkan渲染器的狀態並記錄其內部狀態的信息。這將降低性能並可能改變模擬行為。 + 啟用Vulkan驗證層:\n啟用一個系統來驗證Vulkan渲染器的狀態並記錄其內部狀態的資訊。這樣將會降低效能並可能改變模擬行為。 Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation. - 啟用Vulkan同步驗證:\n啟用一個系統來驗證Vulkan渲染任務的時間。這將降低性能並可能改變模擬行為。 + 啟用Vulkan同步驗證:\n啟用一個系統來驗證Vulkan渲染工作的時間。\n這樣將會降低效能並可能改變模擬行為。 Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - 啟用RenderDoc調試:\n如果啟用,模擬器將提供與Renderdoc的兼容性,以允許捕獲和分析當前渲染的幀。 + 啟用RenderDoc偵錯:\n如果啟用的話,模擬器將會提供與Renderdoc的相容性,以便允許擷取和分析目前渲染的畫格。 Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). + 收集著色器:\n您需要啟用此功能才能使用偵錯功能表 (Ctrl + F10) 編輯著色器。 Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. + 當機診斷:\n會建立一個 .yaml 檔案,其中包含有關當機時 Vulkan 狀態的資訊。 \n對於偵錯「'裝置遺失」的'錯誤很有用。如果啟用了此功能,則應啟用主機和來賓偵錯標記。 \n不適用於 Intel GPU。 \n你需要啟用 Vulkan 驗證層和 Vulkan SDK 才能使此功能如常運作。 Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. + 複製 GPU 緩衝區:\n解決涉及 GPU 提交的競爭條件。 \n說不定能幫助解決 PM4 類型 0 的當機。 Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. - Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. + Host 偵錯標記:\n插入模擬器端資訊,例如圍繞 Vulkan 指令的特定 AMDGPU 指令的標記,以及提供資源偵錯名稱。 \n如果啟用此功能,則應啟用當機診斷。 \n對於 RenderDoc 等程式很有用。 Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. - Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc. + Guest 偵錯標記:\n插入遊戲本身已新增至指令緩衝區的任何偵錯標記。 \n如果啟用此功能,則應啟用當機診斷。 \n對於 RenderDoc 等程式很有用。 Save Data Path:\nThe folder where game save data will be saved. - Save Data Path:\nThe folder where game save data will be saved. + 遊戲存檔路徑:\n存放遊戲存檔資料的資料夾。 Browse:\nBrowse for a folder to set as the save data path. - Browse:\nBrowse for a folder to set as the save data path. + 瀏覽:\n選取要設定為存放遊戲存檔路徑的資料夾。 Release - Release + 正式版 Nightly - Nightly + 預覽版 Set the volume of the background music. - Set the volume of the background music. + 設定背景音樂的音量。 Enable Motion Controls - Enable Motion Controls + 啟用動態感應控制 Save Data Path - Save Data Path + 遊戲存檔路徑 Browse - Browse + 瀏覽 async - async + 異步 sync - sync + 同步 Auto Select - Auto Select + 自動選取 Directory to install games - Directory to install games + 要安裝遊戲的目錄 Directory to save data - Directory to save data + 遊戲存檔的目錄 Video - Video + 影像 Display Mode - Display Mode + 顯示模式 Windowed - Windowed + 視窗 Fullscreen - Fullscreen + 全螢幕 Fullscreen (Borderless) - Fullscreen (Borderless) + 全螢幕(無邊框) Window Size - Window Size + 視窗大小 W: - W: + 寬: H: - H: + 高: Separate Log Files - Separate Log Files + 單獨的日誌紀錄檔 Separate Log Files:\nWrites a separate logfile for each game. - Separate Log Files:\nWrites a separate logfile for each game. + 單獨的日誌紀錄檔:\n為個別遊戲寫入單獨的日誌記錄檔。 Trophy Notification Position - Trophy Notification Position + 獎盃通知位置 Left - Left + 左側 Right - Right + 右側 Top - Top + 頂部 Bottom - Bottom + 底部 Notification Duration - Notification Duration + 通知顯示持續時間 Portable User Folder - Portable User Folder + 可移植的使用者資料夾 Create Portable User Folder from Common User Folder - Create Portable User Folder from Common User Folder + 從通用使用者資料夾建立可移植的使用者資料夾 Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it. - Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it. + 可移植的使用者資料夾:\n儲存僅套用於目前資料夾中的 shadPS4 版本的 shadPS4 設定和資料。建立可移植的使用者資料夾後重新啟動應用程式以便開始使用它。 Cannot create portable user folder - Cannot create portable user folder + 無法建立可移植的使用者資料夾 %1 already exists - %1 already exists + %1 已存在 Portable user folder created - Portable user folder created + 已建立可移植的使用者資料夾 %1 successfully created. - %1 successfully created. + 已成功建立 %1。 Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions. - Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions. + 開啟自訂獎盃影像/聲音資料夾:\n您可以將自訂影像新增至獎盃和音訊。 \n將檔案加入 custom_tropy,名稱如下:\ntropy.wav OR trophy.mp3、bronze.png、gold.png、platinum.png、silver.png\n注意:聲音僅在 QT 版本中有效。 TrophyViewer Trophy Viewer - Trophy Viewer + 獎盃檢視器 Select Game: - Select Game: + 選取遊戲: Progress - Progress + 進度 Show Earned Trophies - Show Earned Trophies + 顯示已獲得的獎盃 Show Not Earned Trophies - Show Not Earned Trophies + 顯示未獲得的獎盃 Show Hidden Trophies - Show Hidden Trophies + 顯示隱藏的獎盃 From cd8e2c4e7974c99a035acb8bac2b3114737f8610 Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Mon, 14 Apr 2025 12:37:06 +0300 Subject: [PATCH 26/27] hotfix: fix libpng issues under linux --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0ea8688df..6412e51fb 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,7 +213,7 @@ find_package(fmt 10.2.0 CONFIG) find_package(glslang 15 CONFIG) find_package(half 1.12.0 MODULE) find_package(magic_enum 0.9.7 CONFIG) -find_package(PNG 1.6 MODULE) +find_package(PNG 1.6.47 MODULE) find_package(RenderDoc 1.6.0 MODULE) find_package(SDL3 3.1.2 CONFIG) find_package(stb MODULE) From 2b633fd3c566fbabf5a63fd2e14a049e28bab3ef Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Mon, 14 Apr 2025 14:08:39 +0300 Subject: [PATCH 27/27] downgrade libpng to fix an issue with linux-qt (#2784) * downgrade libpng * revert cmake change --- CMakeLists.txt | 2 +- externals/libpng | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6412e51fb..0ea8688df 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,7 +213,7 @@ find_package(fmt 10.2.0 CONFIG) find_package(glslang 15 CONFIG) find_package(half 1.12.0 MODULE) find_package(magic_enum 0.9.7 CONFIG) -find_package(PNG 1.6.47 MODULE) +find_package(PNG 1.6 MODULE) find_package(RenderDoc 1.6.0 MODULE) find_package(SDL3 3.1.2 CONFIG) find_package(stb MODULE) diff --git a/externals/libpng b/externals/libpng index 34005e3d3..c1cc0f3f4 160000 --- a/externals/libpng +++ b/externals/libpng @@ -1 +1 @@ -Subproject commit 34005e3d3d373c0c36898cc55eae48a79c8238a1 +Subproject commit c1cc0f3f4c3d4abd11ca68c59446a29ff6f95003