diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 05002d3c..5ee4a366 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -9,7 +9,7 @@ on: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true - + jobs: build-linux: name: Build Linux @@ -38,7 +38,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1.2 with: key: ccache-${{ runner.os }}-${{ matrix.preset }} - + - name: Cache vcpkg uses: actions/cache@v4 with: @@ -52,7 +52,7 @@ jobs: - name: Install Dependencies (Linux) run: |- sudo apt update - sudo apt install -y ninja-build llvm-${{ env.LLVM_VERSION }}-dev libgtk-3-dev + sudo apt install -y ninja-build llvm-${{ env.LLVM_VERSION }}-dev libgtk-3-dev libasound2-dev libpulse-dev libpipewire-0.3-dev - name: Cache ccache Directory uses: actions/cache@v4 @@ -119,7 +119,7 @@ jobs: run: | choco install ninja Remove-Item -Path "C:\ProgramData\Chocolatey\bin\ccache.exe" -Force -ErrorAction SilentlyContinue - + - name: Configure Developer Command Prompt uses: ilammy/msvc-dev-cmd@v1 @@ -134,7 +134,7 @@ jobs: - name: Build Project run: cmake --build .\out\build\${{ env.CMAKE_PRESET }} --target UnleashedRecomp - + - name: Pack Release run: | New-Item -ItemType Directory -Path .\release @@ -162,8 +162,6 @@ jobs: runs-on: ubuntu-24.04 env: FLATPAK_ID: io.github.hedge_dev.unleashedrecomp - FREEDESKTOP_VERSION: 23.08 - LLVM_VERSION: 18 steps: - name: Checkout Repository @@ -190,13 +188,11 @@ jobs: key: ccache-${{ runner.os }} - name: Prepare Project - run: cp ./private/* ./UnleashedRecompLib/private + run: cp ./private/* ./UnleashedRecompLib/private - name: Prepare Flatpak run: | flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo - flatpak --user install -y flathub org.freedesktop.Sdk//${{ env.FREEDESKTOP_VERSION }} - flatpak --user install -y flathub org.freedesktop.Sdk.Extension.llvm${{ env.LLVM_VERSION }}//${{ env.FREEDESKTOP_VERSION }} - name: Build Flatpak run: | diff --git a/README.md b/README.md index 066cbefb..995b73f9 100644 --- a/README.md +++ b/README.md @@ -460,7 +460,7 @@ The team behind Unleashed Recompiled does not currently have any plans to port m - [Goalringmod27](https://linktr.ee/goalringmod27): Concept Artist behind the achievements overlay shown during gameplay. Aided in the creation of the Transparency Anti-Aliasing thumbnail. -- [M&M](https://github.com/ActualMandM): Provisional support for dynamic UI aspect ratio. +- [RagdollClash](https://github.com/RagdollClash): Provisional support for dynamic UI aspect ratio. - [DaGuAr](https://twitter.com/TheDaguar): Provided Spanish localization for the custom menus alongside DarĂ­o. diff --git a/UnleashedRecomp/hid/driver/sdl_hid.cpp b/UnleashedRecomp/hid/driver/sdl_hid.cpp index aa0e4779..76235524 100644 --- a/UnleashedRecomp/hid/driver/sdl_hid.cpp +++ b/UnleashedRecomp/hid/driver/sdl_hid.cpp @@ -138,7 +138,7 @@ class Controller this->vibration = vibration; - SDL_GameControllerRumble(controller, vibration.wLeftMotorSpeed * 256, vibration.wRightMotorSpeed * 256, VIBRATION_TIMEOUT_MS); + SDL_GameControllerRumble(controller, vibration.wLeftMotorSpeed, vibration.wRightMotorSpeed, VIBRATION_TIMEOUT_MS); } void SetLED(const uint8_t r, const uint8_t g, const uint8_t b) const diff --git a/UnleashedRecomp/patches/fps_patches.cpp b/UnleashedRecomp/patches/fps_patches.cpp index afd07267..322073cf 100644 --- a/UnleashedRecomp/patches/fps_patches.cpp +++ b/UnleashedRecomp/patches/fps_patches.cpp @@ -195,3 +195,11 @@ bool SparkleLocusMidAsmHook() // This has the side effect of the locus particle eventually snapping to the rest position during pause, but it's better than vertices exploding. return App::s_deltaTime < (1.0 / 60.0); } + +void CEvilSonicContext_CStateWall_LeaveRotationMidAsmHook(PPCRegister& f1) +{ + // The code in the Werehog's "wall" state for leaving walls adds a constant + // value of 0.05 to his transform every frame. This makes the value respect + // delta time whilst maintaining the original behaviour at 30 FPS. + f1.f64 = f1.f64 * (std::min(App::s_deltaTime, 1.0 / 15.0) / (1.0 / 30.0)); +} diff --git a/UnleashedRecomp/res/credits.h b/UnleashedRecomp/res/credits.h index 7cbd82ee..294916fc 100644 --- a/UnleashedRecomp/res/credits.h +++ b/UnleashedRecomp/res/credits.h @@ -15,7 +15,7 @@ inline std::array g_credits = "LJSTAR", "saguinee", "Goalringmod27", - "M&M", + "RagdollClash", "DaGuAr", "brianuuuSonic", "Kitzuku" diff --git a/UnleashedRecompLib/config/SWA.toml b/UnleashedRecompLib/config/SWA.toml index eb871b8a..5063e712 100644 --- a/UnleashedRecompLib/config/SWA.toml +++ b/UnleashedRecompLib/config/SWA.toml @@ -1141,3 +1141,15 @@ registers = ["r3"] name = "EndingTextPositionMidAsmHook" address = 0x82580168 registers = ["r31", "f13"] + +# Wall Leave - Left +[[midasm_hook]] +name = "CEvilSonicContext_CStateWall_LeaveRotationMidAsmHook" +address = 0x824067BC +registers = ["f1"] + +# Wall Leave - Right +[[midasm_hook]] +name = "CEvilSonicContext_CStateWall_LeaveRotationMidAsmHook" +address = 0x82406774 +registers = ["f1"] diff --git a/flatpak/io.github.hedge_dev.unleashedrecomp.json b/flatpak/io.github.hedge_dev.unleashedrecomp.json index f6ae9324..5821bad2 100644 --- a/flatpak/io.github.hedge_dev.unleashedrecomp.json +++ b/flatpak/io.github.hedge_dev.unleashedrecomp.json @@ -1,7 +1,7 @@ { "id": "io.github.hedge_dev.unleashedrecomp", "runtime": "org.freedesktop.Platform", - "runtime-version": "23.08", + "runtime-version": "24.08", "sdk": "org.freedesktop.Sdk", "sdk-extensions" : [ "org.freedesktop.Sdk.Extension.llvm18" ], "finish-args": [