From 0866be0c3dfbfe2584ac14e9f34a7a29baec20b3 Mon Sep 17 00:00:00 2001 From: Isaac Marovitz <42140194+IsaacMarovitz@users.noreply.github.com> Date: Wed, 5 Mar 2025 17:37:52 +0000 Subject: [PATCH 1/5] Build all presets (#979) * Build all presets Signed-off-by: Isaac Marovitz * Add preset to file name Signed-off-by: Isaac Marovitz * Upload PDB Signed-off-by: Isaac Marovitz Fix Signed-off-by: Isaac Marovitz * Cache by preset Signed-off-by: Isaac Marovitz --------- Signed-off-by: Isaac Marovitz --- .github/workflows/validate.yml | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 9c6cb25..72b0781 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -14,9 +14,12 @@ jobs: build-linux: name: Build Linux runs-on: ubuntu-24.04 + strategy: + matrix: + preset: ["linux-debug", "linux-release", "linux-relwithdebinfo"] env: LLVM_VERSION: 18 - CMAKE_PRESET: linux-release + CMAKE_PRESET: ${{ matrix.preset }} steps: - name: Checkout Repository @@ -34,7 +37,7 @@ jobs: - name: Setup ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ccache-${{ runner.os }} + key: ccache-${{ runner.os }}-${{ matrix.preset }} - name: Cache vcpkg uses: actions/cache@v4 @@ -55,7 +58,7 @@ jobs: uses: actions/cache@v4 with: path: /tmp/ccache - key: ccache-${{ runner.os }} + key: ccache-${{ runner.os }}-${{ matrix.preset }} - name: Prepare Project run: cp ./private/* ./UnleashedRecompLib/private @@ -73,13 +76,16 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v4 with: - name: UnleashedRecomp-Linux + name: UnleashedRecomp-Linux-${{ env.CMAKE_PRESET }} path: ./out/build/${{ env.CMAKE_PRESET }}/UnleashedRecomp/UnleashedRecomp build-windows: name: Build Windows runs-on: windows-latest + strategy: + matrix: + preset: ["x64-Clang-Debug", "x64-Clang-Release", "x64-Clang-RelWithDebInfo"] env: - CMAKE_PRESET: x64-Clang-Release + CMAKE_PRESET: ${{ matrix.preset }} steps: - name: Checkout repository @@ -97,7 +103,7 @@ jobs: - name: Setup ccache uses: hendrikmuhs/ccache-action@v1.2 with: - key: ccache-${{ runner.os }} + key: ccache-${{ runner.os }}-${{ matrix.preset }} - name: Cache vcpkg uses: actions/cache@v4 @@ -144,8 +150,15 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v4 with: - name: UnleashedRecomp-Windows + name: UnleashedRecomp-Windows-${{ env.CMAKE_PRESET }} path: .\UnleashedRecomp-Windows.zip + + - name: Upload PDB + uses: actions/upload-artifact@v4 + if: ${{ matrix.preset != 'x64-Clang-Release' }} + with: + name: UnleashedRecomp-Windows-${{ env.CMAKE_PRESET }}-PDB + path: .\out\build\${{ env.CMAKE_PRESET }}\UnleashedRecomp\UnleashedRecomp.pdb build-flatpak: name: Build Flatpak runs-on: ubuntu-24.04 From 756d001d3565e8d9c669de83378b99c5bfe762c5 Mon Sep 17 00:00:00 2001 From: "Skyth (Asilkan)" <19259897+blueskythlikesclouds@users.noreply.github.com> Date: Thu, 6 Mar 2025 01:53:36 +0300 Subject: [PATCH 2/5] Disable hardware resolve on Intel GPUs. (#853) --- UnleashedRecomp/gpu/video.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/UnleashedRecomp/gpu/video.cpp b/UnleashedRecomp/gpu/video.cpp index 3919877..e24ce4d 100644 --- a/UnleashedRecomp/gpu/video.cpp +++ b/UnleashedRecomp/gpu/video.cpp @@ -287,8 +287,8 @@ static constexpr bool g_vulkan = true; static bool g_triangleStripWorkaround = false; -static constexpr bool g_hardwareResolve = true; -static constexpr bool g_hardwareDepthResolve = true; +static bool g_hardwareResolve = true; +static bool g_hardwareDepthResolve = true; static std::unique_ptr g_interface; static std::unique_ptr g_device; @@ -1698,6 +1698,10 @@ bool Video::CreateHostDevice(const char *sdlVideoDriver) continue; } } + + // Hardware resolve seems to be completely bugged on Intel D3D12 drivers. + g_hardwareResolve = (deviceDescription.vendor != RenderDeviceVendor::INTEL); + g_hardwareDepthResolve = (deviceDescription.vendor != RenderDeviceVendor::INTEL); } g_vulkan = (interfaceFunction == CreateVulkanInterfaceWrapper); @@ -2326,6 +2330,8 @@ static void DrawProfiler() ImGui::Text("Triangle Fan: %s", g_capabilities.triangleFan ? "Supported" : "Unsupported"); ImGui::Text("Dynamic Depth Bias: %s", g_capabilities.dynamicDepthBias ? "Supported" : "Unsupported"); ImGui::Text("Triangle Strip Workaround: %s", g_triangleStripWorkaround ? "Enabled" : "Disabled"); + ImGui::Text("Hardware Resolve: %s", g_hardwareResolve ? "Enabled" : "Disabled"); + ImGui::Text("Hardware Depth Resolve: %s", g_hardwareDepthResolve ? "Enabled" : "Disabled"); ImGui::NewLine(); ImGui::Text("API: %s", g_vulkan ? "Vulkan" : "D3D12"); From 6ef7789b17f6593c40d28c46e97f56c36a9b1896 Mon Sep 17 00:00:00 2001 From: JaceCear <11230293+JaceCear@users.noreply.github.com> Date: Thu, 6 Mar 2025 00:08:40 +0100 Subject: [PATCH 3/5] Fix typo in German translation (#980) --- UnleashedRecomp/locale/config_locale.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/UnleashedRecomp/locale/config_locale.cpp b/UnleashedRecomp/locale/config_locale.cpp index a02b10f..78a789c 100644 --- a/UnleashedRecomp/locale/config_locale.cpp +++ b/UnleashedRecomp/locale/config_locale.cpp @@ -562,9 +562,9 @@ CONFIG_DEFINE_ENUM_LOCALE(EAspectRatio) ELanguage::German, { { EAspectRatio::Auto, { "AUTO", "Auto: Das Seitenverhältnis passt sich automatisch der Fenstergröße an." } }, - { EAspectRatio::Wide, { "16:9", "16:9: Stellt das Spiel in einem Breitbildschirm-Vormat dar." } }, - { EAspectRatio::Narrow, { "4:3", "4:3: Stellt das Spiel in einem Mittel-Vormat dar." } }, - { EAspectRatio::OriginalNarrow, { "ORIGINAL 4:3", "Original 4:3: Stellt das Spiel in einem Mittel-Vormat dar, was der ursprünglichen Implementation originalgetreut bleibt." } } + { EAspectRatio::Wide, { "16:9", "16:9: Stellt das Spiel in einem Breitbildschirm-Format dar." } }, + { EAspectRatio::Narrow, { "4:3", "4:3: Stellt das Spiel in einem Mittel-Format dar." } }, + { EAspectRatio::OriginalNarrow, { "ORIGINAL 4:3", "Original 4:3: Stellt das Spiel in einem Mittel-Format dar, was der ursprünglichen Implementation originalgetreut bleibt." } } } }, { From 1c225184a1ba912ca3928984b484f6ea63e599c3 Mon Sep 17 00:00:00 2001 From: Nilton Perim Neto Date: Wed, 5 Mar 2025 20:15:51 -0300 Subject: [PATCH 4/5] Updated build instructions for Linux (#914) * Update BUILDING.md updated building to describe for Arch to make the groundwork for making an AUR repo * Update BUILDING.md * Update BUILDING.md * Removed vcpkg removed vcpkg from the Arch command since its not needed --------- Co-authored-by: Hyper <34012267+hyperbx@users.noreply.github.com> --- docs/BUILDING.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/BUILDING.md b/docs/BUILDING.md index 7630747..87a5de7 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -37,10 +37,15 @@ In the installer, you must select the following **Workloads** and **Individual c - C++ CMake tools for Windows ### Linux -The following command will install the required dependencies on a distro that uses `apt` (such as Ubuntu), but you can find the equivalent packages for your preferred distro. +The following command will install the required dependencies on a distro that uses `apt` (such as Debian-based distros). ```bash sudo apt install autoconf automake libtool pkg-config curl cmake ninja-build clang clang-tools libgtk-3-dev ``` +The following command will install the required dependencies on a distro that uses `pacman` (such as Arch-based distros). +```bash +sudo pacman -S base-devel ninja lld clang gtk3 +``` +You can also find the equivalent packages for your preferred distro. > [!NOTE] > This list may not be comprehensive for your particular distro and you may be required to install additional packages, should an error occur during configuration. From 48458cb903b73e7528526998fe150b1533617ec2 Mon Sep 17 00:00:00 2001 From: Michael <15317421+ActualMandM@users.noreply.github.com> Date: Wed, 5 Mar 2025 15:16:04 -0800 Subject: [PATCH 5/5] Update README.md (#1050) - Added a tip regarding supported media players with Music Attenuation - Added onto the mod support note, referring to the HMM wiki regarding the mod format --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 407e31f..abf1a3d 100644 --- a/README.md +++ b/README.md @@ -182,6 +182,9 @@ Many options have been integrated to address some common quality of life improve - The day/night transformation cutscene in towns can use either the Xbox 360 or PlayStation 3 version, with the Xbox version artificially extending loading times for the full video play out, whilst the PlayStation version ends as soon as it's done loading. - Music Attenuation is a feature that was originally present in the Xbox 360 version of the game, where it'd automatically mute the background music if the console's media player was in use. This feature has been implemented using information provided by the [Windows Media Control](https://learn.microsoft.com/en-us/uwp/api/windows.media.control?view=winrt-26100) APIs in [WinRT](https://en.wikipedia.org/wiki/Windows_Runtime). Applications that interface with Windows 10/11 to display media controls are supported. +> [!TIP] +> You may refer to Music Presence's [list of supported media players](https://github.com/ungive/discord-music-presence/blob/master/documentation/supported-media-players.md) for players that work with Music Attenuation out of the box. + > [!NOTE] > Please note that Music Attenuation is not currently available on Linux. Support for this feature may be added in a future update. @@ -206,6 +209,8 @@ Modded files for the Xbox 360 version of the game are compatible with Unleashed > [!NOTE] > Code modding is currently not possible and is [planned for a future update](#code-modding). As a workaround for the time being, some codes have been directly embedded into the game and can be accessed through Hedge Mod Manager's Codes tab. +> +> For information on the mod format, check out Hedge Mod Manager's [Basic Mod File Structure](https://github.com/thesupersonic16/HedgeModManager/wiki/Basic-Mod-File-Structure) wiki page. ## Update Roadmap