diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 000000000..f1b8435a9
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,438 @@
+# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+name: Build and Release
+
+on:
+ push:
+ branches: [ "*" ]
+ pull_request:
+ branches: [ "*" ]
+
+env:
+ BUILD_TYPE: Release
+
+jobs:
+ reuse:
+ runs-on: ubuntu-latest
+ continue-on-error: true
+ steps:
+ - uses: actions/checkout@v4
+ - uses: fsfe/reuse-action@v4
+
+ clang-format:
+ runs-on: ubuntu-latest
+ continue-on-error: true
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+ - name: Install
+ run: |
+ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
+ sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main'
+ sudo apt update
+ sudo apt install clang-format-17
+ - name: Build
+ env:
+ COMMIT_RANGE: ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
+ run: ./.ci/clang-format.sh
+
+ get-info:
+ runs-on: ubuntu-latest
+ outputs:
+ date: ${{ steps.vars.outputs.date }}
+ shorthash: ${{ steps.vars.outputs.shorthash }}
+ steps:
+ - uses: actions/checkout@v4
+ - name: Get date and git hash
+ id: vars
+ run: |
+ echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
+ echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
+ echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
+ echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
+
+ windows-sdl:
+ runs-on: windows-latest
+ needs: get-info
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: Cache CMake Configuration
+ uses: actions/cache@v4
+ env:
+ cache-name: ${{ runner.os }}-sdl-ninja-cache-cmake-configuration
+ with:
+ path: |
+ ${{github.workspace}}/build
+ key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+ restore-keys: |
+ ${{ env.cache-name }}-
+
+ - name: Cache CMake Build
+ uses: hendrikmuhs/ccache-action@v1.2.14
+ env:
+ cache-name: ${{ runner.os }}-sdl-cache-cmake-build
+ with:
+ append-timestamp: false
+ key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+
+ - name: Setup VS Environment
+ uses: ilammy/msvc-dev-cmd@v1.13.0
+ with:
+ arch: amd64
+
+ - name: Configure CMake
+ run: cmake --fresh -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
+
+ - name: Build
+ run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
+
+ - name: Upload Windows SDL artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: shadps4-win64-sdl-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
+ path: ${{github.workspace}}/build/shadPS4.exe
+
+ windows-qt:
+ runs-on: windows-latest
+ needs: get-info
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: Setup Qt
+ uses: jurplel/install-qt-action@v4
+ with:
+ version: 6.7.2
+ host: windows
+ target: desktop
+ arch: win64_msvc2019_64
+ archives: qtbase qttools
+
+ - name: Cache CMake Configuration
+ uses: actions/cache@v4
+ env:
+ cache-name: ${{ runner.os }}-qt-ninja-cache-cmake-configuration
+ with:
+ path: |
+ ${{github.workspace}}/build
+ key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+ restore-keys: |
+ ${{ env.cache-name }}-
+
+ - name: Cache CMake Build
+ uses: hendrikmuhs/ccache-action@v1.2.14
+ env:
+ cache-name: ${{ runner.os }}-qt-cache-cmake-build
+ with:
+ append-timestamp: false
+ key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+
+ - name: Setup VS Environment
+ uses: ilammy/msvc-dev-cmd@v1.13.0
+ with:
+ arch: amd64
+
+ - name: Configure CMake
+ run: cmake --fresh -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
+
+ - name: Build
+ run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
+
+ - name: Deploy and Package
+ run: |
+ mkdir upload
+ move build/shadPS4.exe upload
+ windeployqt --no-compiler-runtime --no-system-d3d-compiler --no-system-dxc-compiler --dir upload upload/shadPS4.exe
+ Compress-Archive -Path upload/* -DestinationPath shadps4-win64-qt-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}.zip
+
+ - name: Upload Windows Qt artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: shadps4-win64-qt-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
+ path: upload/
+
+ macos-sdl:
+ runs-on: macos-latest
+ needs: get-info
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: Setup latest Xcode
+ uses: maxim-lobanov/setup-xcode@v1
+ with:
+ xcode-version: latest
+
+ - name: Install MoltenVK
+ run: |
+ arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+ arch -x86_64 /usr/local/bin/brew install molten-vk
+
+ - name: Cache CMake Configuration
+ uses: actions/cache@v4
+ env:
+ cache-name: ${{ runner.os }}-sdl-cache-cmake-configuration
+ with:
+ path: |
+ ${{github.workspace}}/build
+ key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+ restore-keys: |
+ ${{ env.cache-name }}-
+
+ - name: Cache CMake Build
+ uses: hendrikmuhs/ccache-action@v1.2.14
+ env:
+ cache-name: ${{runner.os}}-sdl-cache-cmake-build
+ with:
+ append-timestamp: false
+ create-symlink: true
+ key: ${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+ variant: sccache
+
+ - name: Configure CMake
+ run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
+
+ - name: Build
+ run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(sysctl -n hw.ncpu)
+
+ - name: Package and Upload macOS SDL artifact
+ run: |
+ mkdir upload
+ mv ${{github.workspace}}/build/shadps4 upload
+ cp $(arch -x86_64 /usr/local/bin/brew --prefix)/opt/molten-vk/lib/libMoltenVK.dylib upload
+ tar cf shadps4-macos-sdl.tar.gz -C upload .
+ - uses: actions/upload-artifact@v4
+ with:
+ name: shadps4-macos-sdl-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
+ path: shadps4-macos-sdl.tar.gz
+
+ macos-qt:
+ runs-on: macos-latest
+ needs: get-info
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: Setup latest Xcode
+ uses: maxim-lobanov/setup-xcode@v1
+ with:
+ xcode-version: latest
+
+ - name: Install MoltenVK and Setup Qt
+ run: |
+ arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+ arch -x86_64 /usr/local/bin/brew install molten-vk
+ - uses: jurplel/install-qt-action@v4
+ with:
+ version: 6.7.2
+ host: mac
+ target: desktop
+ arch: clang_64
+ archives: qtbase qttools
+
+ - name: Cache CMake Configuration
+ uses: actions/cache@v4
+ env:
+ cache-name: ${{ runner.os }}-qt-cache-cmake-configuration
+ with:
+ path: |
+ ${{github.workspace}}/build
+ key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+ restore-keys: |
+ ${{ env.cache-name }}-
+
+ - name: Cache CMake Build
+ uses: hendrikmuhs/ccache-action@v1.2.14
+ env:
+ cache-name: ${{runner.os}}-qt-cache-cmake-build
+ with:
+ append-timestamp: false
+ create-symlink: true
+ key: ${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+ variant: sccache
+
+ - name: Configure CMake
+ run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
+
+ - name: Build
+ run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(sysctl -n hw.ncpu)
+
+ - name: Package and Upload macOS Qt artifact
+ run: |
+ mkdir upload
+ mv ${{github.workspace}}/build/shadps4.app upload
+ macdeployqt upload/shadps4.app
+ tar cf shadps4-macos-qt.tar.gz -C upload .
+ - uses: actions/upload-artifact@v4
+ with:
+ name: shadps4-macos-qt-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
+ path: shadps4-macos-qt.tar.gz
+
+ linux-sdl:
+ runs-on: ubuntu-24.04
+ needs: get-info
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: Install dependencies
+ run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libfuse2 clang build-essential
+
+ - name: Cache CMake Configuration
+ uses: actions/cache@v4
+ env:
+ cache-name: ${{ runner.os }}-sdl-cache-cmake-configuration
+ with:
+ path: |
+ ${{github.workspace}}/build
+ key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+ restore-keys: |
+ ${{ env.cache-name }}-
+
+ - name: Cache CMake Build
+ uses: hendrikmuhs/ccache-action@v1.2.14
+ env:
+ cache-name: ${{ runner.os }}-sdl-cache-cmake-build
+ with:
+ append-timestamp: false
+ key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+
+ - name: Configure CMake
+ run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
+
+ - name: Build
+ run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
+
+ - name: Package and Upload Linux(ubuntu64) SDL artifact
+ run: |
+ ls -la ${{ github.workspace }}/build/shadps4
+
+ - uses: actions/upload-artifact@v4
+ with:
+ name: shadps4-ubuntu64-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
+ path: ${{ github.workspace }}/build/shadps4
+
+ - name: Run AppImage packaging script
+ run: ./.github/linux-appimage-sdl.sh
+
+ - name: Package and Upload Linux SDL artifact
+ run: |
+ tar cf shadps4-linux-sdl.tar.gz -C ${{github.workspace}}/build shadps4
+ - uses: actions/upload-artifact@v4
+ with:
+ name: shadps4-linux-sdl-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
+ path: Shadps4-sdl.AppImage
+
+ linux-qt:
+ runs-on: ubuntu-24.04
+ needs: get-info
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ submodules: recursive
+
+ - name: Install dependencies
+ run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libfuse2 clang build-essential qt6-base-dev qt6-tools-dev
+
+ - name: Cache CMake Configuration
+ uses: actions/cache@v4
+ env:
+ cache-name: ${{ runner.os }}-qt-cache-cmake-configuration
+ with:
+ path: |
+ ${{github.workspace}}/build
+ key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+ restore-keys: |
+ ${{ env.cache-name }}-
+
+ - name: Cache CMake Build
+ uses: hendrikmuhs/ccache-action@v1.2.14
+ env:
+ cache-name: ${{ runner.os }}-qt-cache-cmake-build
+ with:
+ append-timestamp: false
+ key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
+
+ - name: Configure CMake
+ run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
+
+ - name: Build
+ run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
+
+ - name: Run AppImage packaging script
+ run: ./.github/linux-appimage-qt.sh
+
+ - name: Package and Upload Linux Qt artifact
+ run: |
+ tar cf shadps4-linux-qt.tar.gz -C ${{github.workspace}}/build shadps4
+ - uses: actions/upload-artifact@v4
+ with:
+ name: shadps4-linux-qt-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}
+ path: Shadps4-qt.AppImage
+
+ pre-release:
+ if: github.ref == 'refs/heads/main' && github.event_name == 'push'
+ needs: [get-info, windows-sdl, windows-qt, macos-sdl, macos-qt, linux-sdl, linux-qt]
+ runs-on: ubuntu-latest
+ steps:
+ - name: Download all artifacts
+ uses: actions/download-artifact@v4
+ with:
+ path: ./artifacts
+
+ - name: Compress individual directories (without parent directory)
+ run: |
+ cd ./artifacts
+ for dir in */; do
+ if [ -d "$dir" ]; then
+ dir_name=${dir%/}
+ echo "Creating zip for $dir_name"
+ (cd "$dir_name" && zip -r "../${dir_name}.zip" .)
+ fi
+ done
+
+ - name: Create Pre-Release on GitHub
+ uses: ncipollo/release-action@v1
+ with:
+ token: ${{ secrets.SHADPS4_TOKEN_REPO }}
+ name: "Pre-release-shadPS4-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}"
+ tag: "Pre-release-shadPS4-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}"
+ draft: false
+ prerelease: true
+ artifacts: |
+ ./artifacts/*.zip
+
+ - name: Delete old pre-releases and tags
+ env:
+ GITHUB_TOKEN: ${{ secrets.SHADPS4_TOKEN_REPO }}
+ run: |
+ current_date="${{ needs.get-info.outputs.date }}"
+ api_url="https://api.github.com/repos/${{ github.repository }}/releases"
+
+ # Get current pre-releases
+ releases=$(curl -H "Authorization: token $GITHUB_TOKEN" "$api_url?per_page=100")
+
+ # Parse and delete old pre-releases
+ echo "$releases" | jq -c '.[] | select(.prerelease == true)' | while read -r release; do
+ release_date=$(echo "$release" | jq -r '.created_at' | cut -d'T' -f1)
+ release_id=$(echo "$release" | jq -r '.id')
+ release_tag=$(echo "$release" | jq -r '.tag_name')
+
+ # Compare dates
+ if [[ "$release_date" < "$current_date" ]]; then
+ echo "Deleting old pre-release: $release_id from $release_date with tag: $release_tag"
+ # Delete the pre-release
+ curl -X DELETE -H "Authorization: token $GITHUB_TOKEN" "$api_url/$release_id"
+ # Delete the tag
+ curl -X DELETE -H "Authorization: token $GITHUB_TOKEN" "https://api.github.com/repos/${{ github.repository }}/git/refs/tags/$release_tag"
+ fi
+ done
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
deleted file mode 100644
index 123c7f3f8..000000000
--- a/.github/workflows/ci.yml
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-name: Reuse
-
-on:
- push:
- branches: [ main ]
- tags: [ "*" ]
- pull_request:
- branches: [ main ]
-jobs:
- reuse:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: fsfe/reuse-action@v4
diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml
deleted file mode 100644
index b9887ccac..000000000
--- a/.github/workflows/format.yml
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-name: Clang Format
-
-on:
- push:
- branches: [ "*" ]
- pull_request:
- branches: [ main ]
-
-jobs:
- clang-format:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- with:
- fetch-depth: 0
- - name: Install
- run: |
- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
- sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main'
- sudo apt update
- sudo apt install clang-format-17
- - name: Build
- env:
- COMMIT_RANGE: ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}
- run: ./.ci/clang-format.sh
\ No newline at end of file
diff --git a/.github/workflows/linux-qt.yml b/.github/workflows/linux-qt.yml
deleted file mode 100644
index fc9755fa4..000000000
--- a/.github/workflows/linux-qt.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-name: Linux-Qt
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
-
-env:
- BUILD_TYPE: Release
-
-jobs:
- build:
- runs-on: ubuntu-24.04
-
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Install misc packages
- run: >
- sudo apt-get update && sudo apt install libx11-dev libxext-dev libwayland-dev libfuse2 clang build-essential qt6-base-dev qt6-tools-dev
-
- - name: Cache CMake Configuration
- uses: actions/cache@v4
- env:
- cache-name: ${{ runner.os }}-qt-cache-cmake-configuration
- with:
- path: |
- ${{github.workspace}}/build
- key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- restore-keys: |
- ${{ env.cache-name }}-
-
- - name: Cache CMake Build
- uses: hendrikmuhs/ccache-action@v1.2.14
- env:
- cache-name: ${{ runner.os }}-qt-cache-cmake-build
- with:
- append-timestamp: false
- key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
-
- - name: Configure CMake
- run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-
- - name: Build
- run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
-
- - name: Run AppImage packaging script
- run: ./.github/linux-appimage-qt.sh
-
- - name: Get date and git hash
- id: vars
- run: |
- echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
-
- - name: Upload executable
- uses: actions/upload-artifact@v4
- with:
- name: shadps4-linux-qt-${{ steps.vars.outputs.date }}-${{ steps.vars.outputs.shorthash }}
- path: Shadps4-qt.AppImage
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
deleted file mode 100644
index 27bb8a401..000000000
--- a/.github/workflows/linux.yml
+++ /dev/null
@@ -1,73 +0,0 @@
-# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-name: Linux
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
-
-env:
- BUILD_TYPE: Release
-
-jobs:
- build:
- runs-on: ubuntu-24.04
-
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Install misc packages
- run: >
- sudo apt-get update && sudo apt install libx11-dev libxext-dev libwayland-dev libfuse2 clang build-essential
-
- - name: Cache CMake Configuration
- uses: actions/cache@v4
- env:
- cache-name: ${{ runner.os }}-sdl-cache-cmake-configuration
- with:
- path: |
- ${{github.workspace}}/build
- key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- restore-keys: |
- ${{ env.cache-name }}-
-
- - name: Cache CMake Build
- uses: hendrikmuhs/ccache-action@v1.2.14
- env:
- cache-name: ${{ runner.os }}-sdl-cache-cmake-build
- with:
- append-timestamp: false
- key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
-
- - name: Configure CMake
- run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-
- - name: Build
- run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
-
- - name: Get date and git hash
- id: vars
- run: |
- echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
-
- - name: Upload executable
- uses: actions/upload-artifact@v4
- with:
- name: shadps4-ubuntu64-${{ steps.vars.outputs.date }}-${{ steps.vars.outputs.shorthash }}
- path: |
- ${{github.workspace}}/build/shadps4
-
- - name: Run AppImage packaging script
- run: ./.github/linux-appimage-sdl.sh
-
- - name: Upload executable
- uses: actions/upload-artifact@v4
- with:
- name: shadps4-sdl-appimage-${{ steps.vars.outputs.date }}-${{ steps.vars.outputs.shorthash }}
- path: Shadps4-sdl.AppImage
diff --git a/.github/workflows/macos-qt.yml b/.github/workflows/macos-qt.yml
deleted file mode 100644
index 4cbfb9652..000000000
--- a/.github/workflows/macos-qt.yml
+++ /dev/null
@@ -1,88 +0,0 @@
-# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-name: macOS-Qt
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
-
-env:
- BUILD_TYPE: Release
-
-jobs:
- build:
- runs-on: macos-latest
-
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Setup latest Xcode
- uses: maxim-lobanov/setup-xcode@v1
- with:
- xcode-version: latest
-
- - name: Install MoltenVK
- run: |
- arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- arch -x86_64 /usr/local/bin/brew install molten-vk
-
- - name: Setup Qt
- uses: jurplel/install-qt-action@v4
- with:
- version: 6.7.2
- host: mac
- target: desktop
- arch: clang_64
- archives: qtbase qttools
-
- - name: Cache CMake Configuration
- uses: actions/cache@v4
- env:
- cache-name: ${{ runner.os }}-qt-cache-cmake-configuration
- with:
- path: |
- ${{github.workspace}}/build
- key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- restore-keys: |
- ${{ env.cache-name }}-
-
- - name: Cache CMake Build
- uses: hendrikmuhs/ccache-action@v1.2.14
- env:
- cache-name: ${{runner.os}}-qt-cache-cmake-build
- with:
- append-timestamp: false
- create-symlink: true
- key: ${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- variant: sccache
-
- - name: Configure CMake
- run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
-
- - name: Build
- run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(sysctl -n hw.ncpu)
-
- - name: Package
- run: |
- mkdir upload
- mv ${{github.workspace}}/build/shadps4.app upload
- macdeployqt upload/shadps4.app
- tar cf shadps4-macos-qt.tar.gz -C upload .
-
- - name: Get date and git hash
- id: vars
- run: |
- echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
-
-
- - name: Upload executable
- uses: actions/upload-artifact@v4
- with:
- name: shadps4-macos-qt-${{ steps.vars.outputs.date }}-${{ steps.vars.outputs.shorthash }}
- path: shadps4-macos-qt.tar.gz
diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml
deleted file mode 100644
index 99c85b7b8..000000000
--- a/.github/workflows/macos.yml
+++ /dev/null
@@ -1,79 +0,0 @@
-# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-name: macOS
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
-
-env:
- BUILD_TYPE: Release
-
-jobs:
- build:
- runs-on: macos-latest
-
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Setup latest Xcode
- uses: maxim-lobanov/setup-xcode@v1
- with:
- xcode-version: latest
-
- - name: Install MoltenVK
- run: |
- arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- arch -x86_64 /usr/local/bin/brew install molten-vk
-
- - name: Cache CMake Configuration
- uses: actions/cache@v4
- env:
- cache-name: ${{ runner.os }}-sdl-cache-cmake-configuration
- with:
- path: |
- ${{github.workspace}}/build
- key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- restore-keys: |
- ${{ env.cache-name }}-
-
- - name: Cache CMake Build
- uses: hendrikmuhs/ccache-action@v1.2.14
- env:
- cache-name: ${{runner.os}}-sdl-cache-cmake-build
- with:
- append-timestamp: false
- create-symlink: true
- key: ${{env.cache-name}}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- variant: sccache
-
- - name: Configure CMake
- run: cmake --fresh -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
-
- - name: Build
- run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(sysctl -n hw.ncpu)
-
- - name: Package
- run: |
- mkdir upload
- mv ${{github.workspace}}/build/shadps4 upload
- cp $(arch -x86_64 /usr/local/bin/brew --prefix)/opt/molten-vk/lib/libMoltenVK.dylib upload
- install_name_tool -add_rpath "@loader_path" upload/shadps4
- tar cf shadps4-macos-sdl.tar.gz -C upload .
-
- - name: Get date and git hash
- id: vars
- run: |
- echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- echo "shorthash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
-
- - name: Upload executable
- uses: actions/upload-artifact@v4
- with:
- name: shadps4-macos-sdl-${{ steps.vars.outputs.date }}-${{ steps.vars.outputs.shorthash }}
- path: shadps4-macos-sdl.tar.gz
diff --git a/.github/workflows/windows-qt.yml b/.github/workflows/windows-qt.yml
deleted file mode 100644
index c742ba8b8..000000000
--- a/.github/workflows/windows-qt.yml
+++ /dev/null
@@ -1,80 +0,0 @@
-# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-name: Windows-Qt
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
-
-env:
- BUILD_TYPE: Release
-
-jobs:
- build:
- runs-on: windows-latest
-
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Setup Qt
- uses: jurplel/install-qt-action@v4
- with:
- version: 6.7.2
- host: windows
- target: desktop
- arch: win64_msvc2019_64
- archives: qtbase qttools
-
- - name: Cache CMake Configuration
- uses: actions/cache@v4
- env:
- cache-name: ${{ runner.os }}-qt-ninja-cache-cmake-configuration
- with:
- path: |
- ${{github.workspace}}/build
- key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- restore-keys: |
- ${{ env.cache-name }}-
-
- - name: Cache CMake Build
- uses: hendrikmuhs/ccache-action@v1.2.14
- env:
- cache-name: ${{ runner.os }}-qt-cache-cmake-build
- with:
- append-timestamp: false
- key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
-
- - name: Setup VS Environment
- uses: ilammy/msvc-dev-cmd@v1.13.0
- with:
- arch: amd64
-
- - name: Configure CMake
- run: cmake --fresh -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-
- - name: Build
- run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
-
- - name: Deploy
- run: |
- mkdir upload
- move build/shadPS4.exe upload
- windeployqt --no-compiler-runtime --no-system-d3d-compiler --no-system-dxc-compiler --dir upload upload/shadPS4.exe
-
- - name: Get date and git hash
- id: vars
- shell: pwsh
- run: |
- echo "date=$(Get-Date -Format 'yyyy-MM-dd')" >> $env:GITHUB_OUTPUT
- echo "shorthash=$(git rev-parse --short HEAD)" >> $env:GITHUB_OUTPUT
-
- - name: Upload executable
- uses: actions/upload-artifact@v4
- with:
- name: shadps4-win64-qt-${{ steps.vars.outputs.date }}-${{ steps.vars.outputs.shorthash }}
- path: upload
\ No newline at end of file
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
deleted file mode 100644
index 9c65a7444..000000000
--- a/.github/workflows/windows.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project
-# SPDX-License-Identifier: GPL-2.0-or-later
-
-name: Windows
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
-
-env:
- BUILD_TYPE: Release
-
-jobs:
- build:
- runs-on: windows-latest
- steps:
- - uses: actions/checkout@v4
- with:
- submodules: recursive
-
- - name: Cache CMake Configuration
- uses: actions/cache@v4
- env:
- cache-name: ${{ runner.os }}-sdl-ninja-cache-cmake-configuration
- with:
- path: |
- ${{github.workspace}}/build
- key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
- restore-keys: |
- ${{ env.cache-name }}-
-
- - name: Cache CMake Build
- uses: hendrikmuhs/ccache-action@v1.2.14
- env:
- cache-name: ${{ runner.os }}-sdl-cache-cmake-build
- with:
- append-timestamp: false
- key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
-
- - name: Setup VS Environment
- uses: ilammy/msvc-dev-cmd@v1.13.0
- with:
- arch: amd64
-
- - name: Configure CMake
- run: cmake --fresh -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-
- - name: Build
- run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel
-
- - name: Get date and git hash
- id: vars
- shell: pwsh
- run: |
- echo "date=$(Get-Date -Format 'yyyy-MM-dd')" >> $env:GITHUB_OUTPUT
- echo "shorthash=$(git rev-parse --short HEAD)" >> $env:GITHUB_OUTPUT
-
- - name: Upload executable
- uses: actions/upload-artifact@v4
- with:
- name: shadps4-win64-sdl-${{ steps.vars.outputs.date }}-${{ steps.vars.outputs.shorthash }}
- path: |
- ${{github.workspace}}/build/shadPS4.exe
diff --git a/src/qt_gui/check_update.cpp b/src/qt_gui/check_update.cpp
index 3e4aed073..571ae6f92 100644
--- a/src/qt_gui/check_update.cpp
+++ b/src/qt_gui/check_update.cpp
@@ -41,7 +41,7 @@ void CheckUpdate::CheckForUpdates(const bool showMessage) {
QUrl url;
if (updateChannel == "unstable") {
- url = QUrl("https://api.github.com/repos/DanielSvoboda/shadPS4/releases?per_page=1");
+ url = QUrl("https://api.github.com/repos/shadps4-emu/shadPS4/releases");
} else if (updateChannel == "stable") {
url = QUrl("https://api.github.com/repos/shadps4-emu/shadPS4/releases/latest");
} else {
@@ -77,27 +77,61 @@ void CheckUpdate::CheckForUpdates(const bool showMessage) {
QString latestVersion;
QString latestRev;
QString latestDate;
+ QString platformString;
+
+#ifdef Q_OS_WIN
+ platformString = "win64-qt";
+#elif defined(Q_OS_LINUX)
+ platformString = "linux-qt";
+#elif defined(Q_OS_MAC)
+ platformString = "macos-qt";
+#endif
QJsonObject jsonObj;
- if (jsonDoc.isArray()) {
+ if (updateChannel == "unstable") {
QJsonArray jsonArray = jsonDoc.array();
- if (!jsonArray.isEmpty()) {
- jsonObj = jsonArray.first().toObject();
+ for (const QJsonValue& value : jsonArray) {
+ jsonObj = value.toObject();
+ if (jsonObj.contains("prerelease") && jsonObj["prerelease"].toBool()) {
+ break;
+ }
+ }
+ if (!jsonObj.isEmpty()) {
+ latestVersion = jsonObj["tag_name"].toString();
} else {
- QMessageBox::warning(this, tr("Error"), tr("No releases found."));
+ QMessageBox::warning(this, tr("Error"), tr("No pre-releases found."));
reply->deleteLater();
return;
}
} else {
jsonObj = jsonDoc.object();
+ if (jsonObj.contains("tag_name")) {
+ latestVersion = jsonObj["tag_name"].toString();
+ } else {
+ QMessageBox::warning(this, tr("Error"), tr("Invalid release data."));
+ reply->deleteLater();
+ return;
+ }
}
- if (jsonObj.contains("tag_name")) {
- latestVersion = jsonObj["tag_name"].toString();
- latestRev = latestVersion.right(7);
- latestDate = jsonObj["published_at"].toString();
- } else {
- QMessageBox::warning(this, tr("Error"), tr("Invalid release data."));
+ latestRev = latestVersion.right(7);
+ latestDate = jsonObj["published_at"].toString();
+
+ QJsonArray assets = jsonObj["assets"].toArray();
+ bool found = false;
+
+ for (const QJsonValue& assetValue : assets) {
+ QJsonObject assetObj = assetValue.toObject();
+ if (assetObj["name"].toString().contains(platformString)) {
+ downloadUrl = assetObj["browser_download_url"].toString();
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ QMessageBox::warning(this, tr("Error"),
+ tr("No download URL found for the specified asset."));
reply->deleteLater();
return;
}
@@ -108,30 +142,6 @@ void CheckUpdate::CheckForUpdates(const bool showMessage) {
QDateTime dateTime = QDateTime::fromString(latestDate, Qt::ISODate);
latestDate = dateTime.isValid() ? dateTime.toString("yyyy-MM-dd HH:mm:ss") : "Unknown date";
- QJsonArray assets = jsonObj["assets"].toArray();
- bool found = false;
- for (const QJsonValue& assetValue : assets) {
- QJsonObject assetObj = assetValue.toObject();
-
- QString platformString;
-#ifdef Q_OS_WIN
- platformString = "win64-qt";
-#elif defined(Q_OS_LINUX)
- platformString = "linux-qt";
-#elif defined(Q_OS_MAC)
- platformString = "macos-qt";
-#endif
- if (assetObj["name"].toString().contains(platformString)) {
- downloadUrl = assetObj["browser_download_url"].toString();
- found = true;
- break;
- }
- }
- if (!found) {
- QMessageBox::warning(this, tr("Error"),
- tr("No download URL found for the specified asset."));
- }
-
if (latestRev == currentRev) {
if (showMessage) {
QMessageBox::information(this, tr("Auto Updater"),
@@ -196,7 +206,7 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate,
} else {
QTextEdit* textField = new QTextEdit(this);
textField->setReadOnly(true);
- textField->setFixedWidth(400);
+ textField->setFixedWidth(500);
textField->setFixedHeight(200);
textField->setVisible(false);
layout->addWidget(textField);
@@ -244,7 +254,7 @@ void CheckUpdate::requestChangelog(const QString& currentRev, const QString& lat
const QString& downloadUrl, const QString& latestDate,
const QString& currentDate) {
QString compareUrlString =
- QString("https://api.github.com/repos/DanielSvoboda/shadPS4/compare/%1...%2")
+ QString("https://api.github.com/repos/shadps4-emu/shadPS4/compare/%1...%2")
.arg(currentRev)
.arg(latestRev);
diff --git a/src/qt_gui/translations/ar.ts b/src/qt_gui/translations/ar.ts
index 20a06ae94..ceb1f49b9 100644
--- a/src/qt_gui/translations/ar.ts
+++ b/src/qt_gui/translations/ar.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- لم يتم العثور على إصدارات.
+ No pre-releases found.
+ لم يتم العثور على أي إصدارات مسبقة.
diff --git a/src/qt_gui/translations/da_DK.ts b/src/qt_gui/translations/da_DK.ts
index 52b442a15..264af88d3 100644
--- a/src/qt_gui/translations/da_DK.ts
+++ b/src/qt_gui/translations/da_DK.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Ingen udgivelser fundet.
+ No pre-releases found.
+ Ingen forhåndsudgivelser fundet.
diff --git a/src/qt_gui/translations/de.ts b/src/qt_gui/translations/de.ts
index d9dd818f2..2f7598821 100644
--- a/src/qt_gui/translations/de.ts
+++ b/src/qt_gui/translations/de.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Keine Versionen gefunden.
+ No pre-releases found.
+ Keine Vorabveröffentlichungen gefunden.
diff --git a/src/qt_gui/translations/el.ts b/src/qt_gui/translations/el.ts
index eec6c7b1b..762b1bd87 100644
--- a/src/qt_gui/translations/el.ts
+++ b/src/qt_gui/translations/el.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Δεν βρέθηκαν εκδόσεις.
+ No pre-releases found.
+ Δεν βρέθηκαν προ-κυκλοφορίες.
diff --git a/src/qt_gui/translations/en.ts b/src/qt_gui/translations/en.ts
index 9dcb67b11..961621b1a 100644
--- a/src/qt_gui/translations/en.ts
+++ b/src/qt_gui/translations/en.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- No releases found.
+ No pre-releases found.
+ No pre-releases found.
diff --git a/src/qt_gui/translations/es_ES.ts b/src/qt_gui/translations/es_ES.ts
index 84e36b9b3..9ac7cae18 100644
--- a/src/qt_gui/translations/es_ES.ts
+++ b/src/qt_gui/translations/es_ES.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- No se encontraron versiones.
+ No pre-releases found.
+ No se encontraron prelanzamientos.
diff --git a/src/qt_gui/translations/fa_IR.ts b/src/qt_gui/translations/fa_IR.ts
index 400414a1a..9a370c8cc 100644
--- a/src/qt_gui/translations/fa_IR.ts
+++ b/src/qt_gui/translations/fa_IR.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- هیچ نسخه ای یافت نشد.
+ No pre-releases found.
+ هیچ پیش انتشاری یافت نشد.
diff --git a/src/qt_gui/translations/fi.ts b/src/qt_gui/translations/fi.ts
index e2dd07a60..3905bbfd4 100644
--- a/src/qt_gui/translations/fi.ts
+++ b/src/qt_gui/translations/fi.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Ei julkaisuja löytynyt.
+ No pre-releases found.
+ Ennakkojulkaisuja ei löytynyt.
diff --git a/src/qt_gui/translations/fr.ts b/src/qt_gui/translations/fr.ts
index 0246de6c6..a71087c65 100644
--- a/src/qt_gui/translations/fr.ts
+++ b/src/qt_gui/translations/fr.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Aucune version trouvée.
+ No pre-releases found.
+ Aucune pré-version trouvée.
diff --git a/src/qt_gui/translations/hu_HU.ts b/src/qt_gui/translations/hu_HU.ts
index ead0808b9..23b40a93a 100644
--- a/src/qt_gui/translations/hu_HU.ts
+++ b/src/qt_gui/translations/hu_HU.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Nincs kiadás található.
+ No pre-releases found.
+ Nem található előzetes kiadás.
diff --git a/src/qt_gui/translations/id.ts b/src/qt_gui/translations/id.ts
index 46baa0a65..c80185e61 100644
--- a/src/qt_gui/translations/id.ts
+++ b/src/qt_gui/translations/id.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Tidak ada rilis ditemukan.
+ No pre-releases found.
+ Tidak ada pra-rilis yang ditemukan.
diff --git a/src/qt_gui/translations/it.ts b/src/qt_gui/translations/it.ts
index 47e2fd1d5..29c234032 100644
--- a/src/qt_gui/translations/it.ts
+++ b/src/qt_gui/translations/it.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Nessuna release trovata.
+ No pre-releases found.
+ Nessuna anteprima trovata.
diff --git a/src/qt_gui/translations/ja_JP.ts b/src/qt_gui/translations/ja_JP.ts
index 13178b796..6a8074da0 100644
--- a/src/qt_gui/translations/ja_JP.ts
+++ b/src/qt_gui/translations/ja_JP.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- リリースが見つかりません。
+ No pre-releases found.
+ プレリリースは見つかりませんでした。
diff --git a/src/qt_gui/translations/ko_KR.ts b/src/qt_gui/translations/ko_KR.ts
index 0351fd7d5..43d45f268 100644
--- a/src/qt_gui/translations/ko_KR.ts
+++ b/src/qt_gui/translations/ko_KR.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- No releases found.
+ No pre-releases found.
+ No pre-releases found.
diff --git a/src/qt_gui/translations/lt_LT.ts b/src/qt_gui/translations/lt_LT.ts
index 1d31233bf..789fd2c0d 100644
--- a/src/qt_gui/translations/lt_LT.ts
+++ b/src/qt_gui/translations/lt_LT.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Nerasta leidimų.
+ No pre-releases found.
+ Išankstinių leidimų nerasta.
diff --git a/src/qt_gui/translations/nb.ts b/src/qt_gui/translations/nb.ts
index 6f7a8f54c..65c9c7cf4 100644
--- a/src/qt_gui/translations/nb.ts
+++ b/src/qt_gui/translations/nb.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Ingen utgivelser funnet.
+ No pre-releases found.
+ Fant ingen forhåndsutgivelser.
diff --git a/src/qt_gui/translations/nl.ts b/src/qt_gui/translations/nl.ts
index 686a65ebd..04cc8424f 100644
--- a/src/qt_gui/translations/nl.ts
+++ b/src/qt_gui/translations/nl.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Geen releases gevonden.
+ No pre-releases found.
+ Geen pre-releases gevonden.
diff --git a/src/qt_gui/translations/pl_PL.ts b/src/qt_gui/translations/pl_PL.ts
index b4e76d601..49e81d713 100644
--- a/src/qt_gui/translations/pl_PL.ts
+++ b/src/qt_gui/translations/pl_PL.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Nie znaleziono wydań.
+ No pre-releases found.
+ Nie znaleziono wersji przedpremierowych.
diff --git a/src/qt_gui/translations/pt_BR.ts b/src/qt_gui/translations/pt_BR.ts
index 0c4db13d0..61cd7d601 100644
--- a/src/qt_gui/translations/pt_BR.ts
+++ b/src/qt_gui/translations/pt_BR.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Nenhum release encontrado.
+ No pre-releases found.
+ Nenhuma pre-release encontrada.
diff --git a/src/qt_gui/translations/ro_RO.ts b/src/qt_gui/translations/ro_RO.ts
index 72e1b7fe0..c890a575d 100644
--- a/src/qt_gui/translations/ro_RO.ts
+++ b/src/qt_gui/translations/ro_RO.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Nu s-au găsit versiuni.
+ No pre-releases found.
+ Nu au fost găsite pre-lansări.
diff --git a/src/qt_gui/translations/ru_RU.ts b/src/qt_gui/translations/ru_RU.ts
index 9bbfd8115..a1779bd0d 100644
--- a/src/qt_gui/translations/ru_RU.ts
+++ b/src/qt_gui/translations/ru_RU.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Нет доступных релизов.
+ No pre-releases found.
+ Предварительных версий не найдено.
diff --git a/src/qt_gui/translations/sq.ts b/src/qt_gui/translations/sq.ts
index 6bc401782..3ffe20ff8 100644
--- a/src/qt_gui/translations/sq.ts
+++ b/src/qt_gui/translations/sq.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Nuk u gjetën asnjë lëshim.
+ No pre-releases found.
+ Nuk u gjetën publikime paraprake.
diff --git a/src/qt_gui/translations/tr_TR.ts b/src/qt_gui/translations/tr_TR.ts
index 6673a8068..7ede9ef24 100644
--- a/src/qt_gui/translations/tr_TR.ts
+++ b/src/qt_gui/translations/tr_TR.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Hiçbir sürüm bulunamadı.
+ No pre-releases found.
+ Ön sürüm bulunamadı.
diff --git a/src/qt_gui/translations/vi_VN.ts b/src/qt_gui/translations/vi_VN.ts
index 6edfdff64..47e3f96df 100644
--- a/src/qt_gui/translations/vi_VN.ts
+++ b/src/qt_gui/translations/vi_VN.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- Không tìm thấy bản phát hành nào.
+ No pre-releases found.
+ Không tìm thấy bản phát hành trước.
diff --git a/src/qt_gui/translations/zh_CN.ts b/src/qt_gui/translations/zh_CN.ts
index b887ef291..82af3be8a 100644
--- a/src/qt_gui/translations/zh_CN.ts
+++ b/src/qt_gui/translations/zh_CN.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- 未找到任何发布。
+ No pre-releases found.
+ 未找到预发布版本。
diff --git a/src/qt_gui/translations/zh_TW.ts b/src/qt_gui/translations/zh_TW.ts
index 03d32f012..2b274e38e 100644
--- a/src/qt_gui/translations/zh_TW.ts
+++ b/src/qt_gui/translations/zh_TW.ts
@@ -1029,8 +1029,8 @@
- No releases found.
- 未找到任何發行版本。
+ No pre-releases found.
+ 未找到預發布版本。