From ed9ffbfb64c08914574b6397f4b3d6b38f7b26a5 Mon Sep 17 00:00:00 2001 From: georgemoralis Date: Fri, 31 Oct 2025 10:28:39 +0200 Subject: [PATCH] Remove Qt from emulator (#3733) * actions removal * removed qt dir # Conflicts: # src/qt_gui/check_update.cpp # src/qt_gui/translations/ar_SA.ts # src/qt_gui/translations/ca_ES.ts # src/qt_gui/translations/da_DK.ts # src/qt_gui/translations/de_DE.ts # src/qt_gui/translations/el_GR.ts # src/qt_gui/translations/en_US.ts # src/qt_gui/translations/es_ES.ts # src/qt_gui/translations/fa_IR.ts # src/qt_gui/translations/fi_FI.ts # src/qt_gui/translations/fr_FR.ts # src/qt_gui/translations/hu_HU.ts # src/qt_gui/translations/id_ID.ts # src/qt_gui/translations/it_IT.ts # src/qt_gui/translations/ja_JP.ts # src/qt_gui/translations/ko_KR.ts # src/qt_gui/translations/lt_LT.ts # src/qt_gui/translations/nb_NO.ts # src/qt_gui/translations/nl_NL.ts # src/qt_gui/translations/pl_PL.ts # src/qt_gui/translations/pt_BR.ts # src/qt_gui/translations/pt_PT.ts # src/qt_gui/translations/ro_RO.ts # src/qt_gui/translations/ru_RU.ts # src/qt_gui/translations/sl_SI.ts # src/qt_gui/translations/sq_AL.ts # src/qt_gui/translations/sr_CS.ts # src/qt_gui/translations/sv_SE.ts # src/qt_gui/translations/tr_TR.ts # src/qt_gui/translations/uk_UA.ts # src/qt_gui/translations/ur_PK.ts # src/qt_gui/translations/vi_VN.ts # src/qt_gui/translations/zh_CN.ts # src/qt_gui/translations/zh_TW.ts * removed CMakePresets for qt builds * clear cmakelists from qt * sync config file with qtlauncher * fixing review stuff * Remove Qt code from memory patcher and add non-Qt fallback for automatic loading of patches The second feature is disabled if IPC is present, to avoid conflicts with it. * Add json submodule * More Qt removal * Documentation update * fix build * fix REUSE? * removed qrc file * fix clang * Simplify Qt installation instructions for macOS Removed instructions for installing x86_64 Qt on ARM and x86_64 Macs. * Remove Qt installation instructions from guide Removed instructions for downloading and configuring Qt. --------- Co-authored-by: kalaposfos13 <153381648+kalaposfos13@users.noreply.github.com> --- .github/linux-appimage-qt.sh | 33 - .github/workflows/build.yml | 209 +- .gitmodules | 3 + CMakeLists.txt | 196 +- CMakePresets.json | 27 - CMakeSettings.json | 36 - README.md | 31 +- REUSE.toml | 8 +- cmake/DetectQtInstallation.cmake | 28 - dist/qt.conf | 2 - documents/building-linux.md | 30 +- documents/building-macos.md | 17 - documents/building-windows.md | 22 - externals/CMakeLists.txt | 4 + externals/json | 1 + shell.nix | 8 - src/common/config.cpp | 89 +- src/common/config.h | 25 +- src/common/memory_patcher.cpp | 299 +-- src/common/memory_patcher.h | 2 +- src/common/path_util.cpp | 29 - src/common/path_util.h | 23 - src/core/ipc/ipc.cpp | 2 + src/emulator.cpp | 13 +- src/main.cpp | 3 +- src/qt_gui/about_dialog.cpp | 195 -- src/qt_gui/about_dialog.h | 38 - src/qt_gui/about_dialog.ui | 233 --- src/qt_gui/background_music_player.cpp | 44 - src/qt_gui/background_music_player.h | 29 - src/qt_gui/cheats_patches.cpp | 1351 ------------ src/qt_gui/cheats_patches.h | 120 -- src/qt_gui/check_update.cpp | 633 ------ src/qt_gui/check_update.h | 43 - src/qt_gui/compatibility_info.cpp | 216 -- src/qt_gui/compatibility_info.h | 88 - src/qt_gui/control_settings.cpp | 1038 ---------- src/qt_gui/control_settings.h | 87 - src/qt_gui/control_settings.ui | 1816 ----------------- src/qt_gui/elf_viewer.cpp | 98 - src/qt_gui/elf_viewer.h | 53 - src/qt_gui/game_grid_frame.cpp | 297 --- src/qt_gui/game_grid_frame.h | 61 - src/qt_gui/game_info.cpp | 73 - src/qt_gui/game_info.h | 100 - src/qt_gui/game_install_dialog.cpp | 134 -- src/qt_gui/game_install_dialog.h | 32 - src/qt_gui/game_list_frame.cpp | 514 ----- src/qt_gui/game_list_frame.h | 139 -- src/qt_gui/game_list_utils.h | 235 --- src/qt_gui/gui_context_menus.h | 755 ------- src/qt_gui/gui_settings.cpp | 9 - src/qt_gui/gui_settings.h | 58 - src/qt_gui/hotkeys.cpp | 930 --------- src/qt_gui/hotkeys.h | 88 - src/qt_gui/hotkeys.ui | 549 ----- src/qt_gui/kbm_config_dialog.cpp | 239 --- src/qt_gui/kbm_config_dialog.h | 38 - src/qt_gui/kbm_gui.cpp | 1061 ---------- src/qt_gui/kbm_gui.h | 75 - src/qt_gui/kbm_gui.ui | 2118 ------------------- src/qt_gui/kbm_help_dialog.cpp | 306 --- src/qt_gui/kbm_help_dialog.h | 50 - src/qt_gui/log_presets_dialog.cpp | 414 ---- src/qt_gui/log_presets_dialog.h | 54 - src/qt_gui/main.cpp | 264 --- src/qt_gui/main_window.cpp | 1237 ----------- src/qt_gui/main_window.h | 124 -- src/qt_gui/main_window_themes.cpp | 197 -- src/qt_gui/main_window_themes.h | 16 - src/qt_gui/main_window_ui.h | 427 ---- src/qt_gui/sdl_event_wrapper.cpp | 57 - src/qt_gui/sdl_event_wrapper.h | 26 - src/qt_gui/settings.cpp | 91 - src/qt_gui/settings.h | 57 - src/qt_gui/settings_dialog.cpp | 1265 ------------ src/qt_gui/settings_dialog.h | 69 - src/qt_gui/settings_dialog.ui | 2609 ------------------------ src/qt_gui/translations/ar_SA.ts | 2461 ---------------------- src/qt_gui/translations/ca_ES.ts | 2459 ---------------------- src/qt_gui/translations/da_DK.ts | 2459 ---------------------- src/qt_gui/translations/de_DE.ts | 2462 ---------------------- src/qt_gui/translations/el_GR.ts | 2459 ---------------------- src/qt_gui/translations/en_US.ts | 2453 ---------------------- src/qt_gui/translations/es_ES.ts | 2459 ---------------------- src/qt_gui/translations/fa_IR.ts | 2459 ---------------------- src/qt_gui/translations/fi_FI.ts | 2459 ---------------------- src/qt_gui/translations/fr_FR.ts | 2459 ---------------------- src/qt_gui/translations/hu_HU.ts | 2459 ---------------------- src/qt_gui/translations/id_ID.ts | 2459 ---------------------- src/qt_gui/translations/it_IT.ts | 2459 ---------------------- src/qt_gui/translations/ja_JP.ts | 2459 ---------------------- src/qt_gui/translations/ko_KR.ts | 2459 ---------------------- src/qt_gui/translations/lt_LT.ts | 2459 ---------------------- src/qt_gui/translations/nb_NO.ts | 2459 ---------------------- src/qt_gui/translations/nl_NL.ts | 2459 ---------------------- src/qt_gui/translations/pl_PL.ts | 2459 ---------------------- src/qt_gui/translations/pt_BR.ts | 2459 ---------------------- src/qt_gui/translations/pt_PT.ts | 2459 ---------------------- src/qt_gui/translations/ro_RO.ts | 2459 ---------------------- src/qt_gui/translations/ru_RU.ts | 2459 ---------------------- src/qt_gui/translations/sl_SI.ts | 2459 ---------------------- src/qt_gui/translations/sq_AL.ts | 2459 ---------------------- src/qt_gui/translations/sr_CS.ts | 2459 ---------------------- src/qt_gui/translations/sv_SE.ts | 2459 ---------------------- src/qt_gui/translations/tr_TR.ts | 2459 ---------------------- src/qt_gui/translations/uk_UA.ts | 2459 ---------------------- src/qt_gui/translations/ur_PK.ts | 2461 ---------------------- src/qt_gui/translations/vi_VN.ts | 2459 ---------------------- src/qt_gui/translations/zh_CN.ts | 2459 ---------------------- src/qt_gui/translations/zh_TW.ts | 2459 ---------------------- src/qt_gui/trophy_viewer.cpp | 520 ----- src/qt_gui/trophy_viewer.h | 89 - src/sdl_window.cpp | 11 - src/shadps4.qrc | 43 - 115 files changed, 178 insertions(+), 103623 deletions(-) delete mode 100755 .github/linux-appimage-qt.sh delete mode 100644 cmake/DetectQtInstallation.cmake delete mode 100644 dist/qt.conf create mode 160000 externals/json delete mode 100644 src/qt_gui/about_dialog.cpp delete mode 100644 src/qt_gui/about_dialog.h delete mode 100644 src/qt_gui/about_dialog.ui delete mode 100644 src/qt_gui/background_music_player.cpp delete mode 100644 src/qt_gui/background_music_player.h delete mode 100644 src/qt_gui/cheats_patches.cpp delete mode 100644 src/qt_gui/cheats_patches.h delete mode 100644 src/qt_gui/check_update.cpp delete mode 100644 src/qt_gui/check_update.h delete mode 100644 src/qt_gui/compatibility_info.cpp delete mode 100644 src/qt_gui/compatibility_info.h delete mode 100644 src/qt_gui/control_settings.cpp delete mode 100644 src/qt_gui/control_settings.h delete mode 100644 src/qt_gui/control_settings.ui delete mode 100644 src/qt_gui/elf_viewer.cpp delete mode 100644 src/qt_gui/elf_viewer.h delete mode 100644 src/qt_gui/game_grid_frame.cpp delete mode 100644 src/qt_gui/game_grid_frame.h delete mode 100644 src/qt_gui/game_info.cpp delete mode 100644 src/qt_gui/game_info.h delete mode 100644 src/qt_gui/game_install_dialog.cpp delete mode 100644 src/qt_gui/game_install_dialog.h delete mode 100644 src/qt_gui/game_list_frame.cpp delete mode 100644 src/qt_gui/game_list_frame.h delete mode 100644 src/qt_gui/game_list_utils.h delete mode 100644 src/qt_gui/gui_context_menus.h delete mode 100644 src/qt_gui/gui_settings.cpp delete mode 100644 src/qt_gui/gui_settings.h delete mode 100644 src/qt_gui/hotkeys.cpp delete mode 100644 src/qt_gui/hotkeys.h delete mode 100644 src/qt_gui/hotkeys.ui delete mode 100644 src/qt_gui/kbm_config_dialog.cpp delete mode 100644 src/qt_gui/kbm_config_dialog.h delete mode 100644 src/qt_gui/kbm_gui.cpp delete mode 100644 src/qt_gui/kbm_gui.h delete mode 100644 src/qt_gui/kbm_gui.ui delete mode 100644 src/qt_gui/kbm_help_dialog.cpp delete mode 100644 src/qt_gui/kbm_help_dialog.h delete mode 100644 src/qt_gui/log_presets_dialog.cpp delete mode 100644 src/qt_gui/log_presets_dialog.h delete mode 100644 src/qt_gui/main.cpp delete mode 100644 src/qt_gui/main_window.cpp delete mode 100644 src/qt_gui/main_window.h delete mode 100644 src/qt_gui/main_window_themes.cpp delete mode 100644 src/qt_gui/main_window_themes.h delete mode 100644 src/qt_gui/main_window_ui.h delete mode 100644 src/qt_gui/sdl_event_wrapper.cpp delete mode 100644 src/qt_gui/sdl_event_wrapper.h delete mode 100644 src/qt_gui/settings.cpp delete mode 100644 src/qt_gui/settings.h delete mode 100644 src/qt_gui/settings_dialog.cpp delete mode 100644 src/qt_gui/settings_dialog.h delete mode 100644 src/qt_gui/settings_dialog.ui delete mode 100644 src/qt_gui/translations/ar_SA.ts delete mode 100644 src/qt_gui/translations/ca_ES.ts delete mode 100644 src/qt_gui/translations/da_DK.ts delete mode 100644 src/qt_gui/translations/de_DE.ts delete mode 100644 src/qt_gui/translations/el_GR.ts delete mode 100644 src/qt_gui/translations/en_US.ts delete mode 100644 src/qt_gui/translations/es_ES.ts delete mode 100644 src/qt_gui/translations/fa_IR.ts delete mode 100644 src/qt_gui/translations/fi_FI.ts delete mode 100644 src/qt_gui/translations/fr_FR.ts delete mode 100644 src/qt_gui/translations/hu_HU.ts delete mode 100644 src/qt_gui/translations/id_ID.ts delete mode 100644 src/qt_gui/translations/it_IT.ts delete mode 100644 src/qt_gui/translations/ja_JP.ts delete mode 100644 src/qt_gui/translations/ko_KR.ts delete mode 100644 src/qt_gui/translations/lt_LT.ts delete mode 100644 src/qt_gui/translations/nb_NO.ts delete mode 100644 src/qt_gui/translations/nl_NL.ts delete mode 100644 src/qt_gui/translations/pl_PL.ts delete mode 100644 src/qt_gui/translations/pt_BR.ts delete mode 100644 src/qt_gui/translations/pt_PT.ts delete mode 100644 src/qt_gui/translations/ro_RO.ts delete mode 100644 src/qt_gui/translations/ru_RU.ts delete mode 100644 src/qt_gui/translations/sl_SI.ts delete mode 100644 src/qt_gui/translations/sq_AL.ts delete mode 100644 src/qt_gui/translations/sr_CS.ts delete mode 100644 src/qt_gui/translations/sv_SE.ts delete mode 100644 src/qt_gui/translations/tr_TR.ts delete mode 100644 src/qt_gui/translations/uk_UA.ts delete mode 100644 src/qt_gui/translations/ur_PK.ts delete mode 100644 src/qt_gui/translations/vi_VN.ts delete mode 100644 src/qt_gui/translations/zh_CN.ts delete mode 100644 src/qt_gui/translations/zh_TW.ts delete mode 100644 src/qt_gui/trophy_viewer.cpp delete mode 100644 src/qt_gui/trophy_viewer.h delete mode 100644 src/shadps4.qrc diff --git a/.github/linux-appimage-qt.sh b/.github/linux-appimage-qt.sh deleted file mode 100755 index 776eed61e..000000000 --- a/.github/linux-appimage-qt.sh +++ /dev/null @@ -1,33 +0,0 @@ -# SPDX-FileCopyrightText: 2024 shadPS4 Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -#!/bin/bash - -if [[ -z $GITHUB_WORKSPACE ]]; then - GITHUB_WORKSPACE="${PWD%/*}" -fi - -export Qt6_DIR="/usr/lib/qt6" -export PATH="$Qt6_DIR/bin:$PATH" -export EXTRA_QT_PLUGINS="waylandcompositor" -export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so;libqwayland-generic.so" - -# Prepare Tools for building the AppImage -wget -q https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage -wget -q https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage -wget -q https://github.com/linuxdeploy/linuxdeploy-plugin-checkrt/releases/download/continuous/linuxdeploy-plugin-checkrt-x86_64.sh - -chmod a+x linuxdeploy-x86_64.AppImage -chmod a+x linuxdeploy-plugin-qt-x86_64.AppImage -chmod a+x linuxdeploy-plugin-checkrt-x86_64.sh - -# Build AppImage -./linuxdeploy-x86_64.AppImage --appdir AppDir -./linuxdeploy-plugin-checkrt-x86_64.sh --appdir AppDir - -cp -a "$GITHUB_WORKSPACE/build/translations" AppDir/usr/bin - -./linuxdeploy-x86_64.AppImage --appdir AppDir -d "$GITHUB_WORKSPACE"/dist/net.shadps4.shadPS4.desktop -e "$GITHUB_WORKSPACE"/build/shadps4 -i "$GITHUB_WORKSPACE"/src/images/net.shadps4.shadPS4.svg --plugin qt -rm AppDir/usr/plugins/multimedia/libgstreamermediaplugin.so -./linuxdeploy-x86_64.AppImage --appdir AppDir --output appimage -mv shadPS4-x86_64.AppImage Shadps4-qt.AppImage diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5e9fbd342..d1fab6354 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -95,64 +95,6 @@ jobs: 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-2025 - needs: get-info - steps: - - uses: actions/checkout@v5 - with: - submodules: recursive - - - name: Setup Qt - uses: jurplel/install-qt-action@v4 - with: - version: 6.9.3 - host: windows - target: desktop - arch: win64_msvc2022_64 - archives: qtbase qttools - modules: qtmultimedia - - - 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.19 - 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 -G Ninja -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DENABLE_QT_GUI=ON -DENABLE_UPDATER=ON -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=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 $env:NUMBER_OF_PROCESSORS - - - name: Deploy and Package - run: | - mkdir upload - mkdir upload/qtplugins - move build/shadPS4.exe upload - cp dist/qt.conf upload/qt.conf - windeployqt --plugindir upload/qtplugins --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-15 needs: get-info @@ -204,67 +146,6 @@ jobs: name: shadps4-macos-sdl-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }} path: upload/ - macos-qt: - runs-on: macos-15 - needs: get-info - steps: - - uses: actions/checkout@v5 - with: - submodules: recursive - - - name: Setup latest Xcode - uses: maxim-lobanov/setup-xcode@v1 - with: - xcode-version: latest - - - name: Setup Qt - uses: jurplel/install-qt-action@v4 - with: - version: 6.9.3 - host: mac - target: desktop - arch: clang_64 - archives: qtbase qttools - modules: qtmultimedia - - - 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.19 - 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 -DENABLE_UPDATER=ON -DCMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE=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 @@ -326,58 +207,6 @@ jobs: 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@v5 - with: - submodules: recursive - - - name: Add LLVM repository - run: | - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - sudo add-apt-repository 'deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main' - - - name: Install dependencies - run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libdecor-0-dev libxkbcommon-dev libglfw3-dev libgles2-mesa-dev libfuse2 clang-19 mold build-essential qt6-base-dev qt6-tools-dev qt6-multimedia-dev libasound2-dev libpulse-dev libopenal-dev libudev-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.19 - 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_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=mold" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=mold" -DENABLE_QT_GUI=ON -DENABLE_UPDATER=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache - - - name: Build - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(nproc) - - - 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 - linux-sdl-gcc: runs-on: ubuntu-24.04 needs: get-info @@ -414,45 +243,9 @@ jobs: - name: Build run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(nproc) - linux-qt-gcc: - runs-on: ubuntu-24.04 - needs: get-info - steps: - - uses: actions/checkout@v5 - with: - submodules: recursive - - - name: Install dependencies - run: sudo apt-get update && sudo apt install -y libx11-dev libxext-dev libwayland-dev libdecor-0-dev libxkbcommon-dev libglfw3-dev libgles2-mesa-dev libfuse2 gcc-14 mold build-essential qt6-base-dev qt6-tools-dev qt6-multimedia-dev libasound2-dev libpulse-dev libopenal-dev libudev-dev - - - name: Cache CMake Configuration - uses: actions/cache@v4 - env: - cache-name: ${{ runner.os }}-qt-gcc-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.19 - env: - cache-name: ${{ runner.os }}-qt-gcc-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_INTERPROCEDURAL_OPTIMIZATION_RELEASE=ON -DCMAKE_C_COMPILER=gcc-14 -DCMAKE_CXX_COMPILER=g++-14 -DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=mold" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=mold" -DENABLE_QT_GUI=ON -DENABLE_UPDATER=ON -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache - - - name: Build - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel $(nproc) - pre-release: if: github.ref == 'refs/heads/main' && github.repository == 'shadps4-emu/shadPS4' && github.event_name == 'push' - needs: [get-info, windows-sdl, windows-qt, macos-sdl, macos-qt, linux-sdl, linux-qt] + needs: [get-info, windows-sdl, macos-sdl, linux-sdl] runs-on: ubuntu-latest steps: - name: Download all artifacts diff --git a/.gitmodules b/.gitmodules index 0deb96309..38aed89a0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -110,3 +110,6 @@ path = externals/MoltenVK url = https://github.com/KhronosGroup/MoltenVK.git shallow = true +[submodule "externals/json"] + path = externals/json + url = https://github.com/nlohmann/json.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d88a9aa4..14ad3e3fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,7 +31,6 @@ if(UNIX AND NOT APPLE) endif() endif() -option(ENABLE_QT_GUI "Enable the Qt GUI. If not selected then the emulator uses a minimal SDL-based UI instead" OFF) option(ENABLE_DISCORD_RPC "Enable the Discord RPC integration" ON) option(ENABLE_UPDATER "Enables the options to updater" ON) @@ -220,10 +219,6 @@ if(NOT (GIT_REMOTE_URL_LOWER MATCHES "shadps4-emu/shadps4" AND (GIT_BRANCH STREQ set(ENABLE_UPDATER OFF) endif() -if(WIN32 AND ENABLE_QT_GUI AND NOT CMAKE_PREFIX_PATH) - include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/DetectQtInstallation.cmake") -endif () - list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") find_package(Boost 1.84.0 CONFIG) find_package(FFmpeg 5.1.2 MODULE) @@ -262,30 +257,6 @@ endif() add_subdirectory(externals) include_directories(src) -if(ENABLE_QT_GUI) - find_package(Qt6 REQUIRED COMPONENTS Widgets Concurrent LinguistTools Network Multimedia) - qt_standard_project_setup() - set(CMAKE_AUTORCC ON) - set(CMAKE_AUTOMOC ON) - set(CMAKE_AUTOUIC ON) - - set(QT_TRANSLATIONS "${PROJECT_SOURCE_DIR}/src/qt_gui/translations") - file(GLOB_RECURSE TRANSLATIONS_TS ${QT_TRANSLATIONS}/*.ts) - - set_source_files_properties(${TRANSLATIONS_TS} PROPERTIES OUTPUT_LOCATION "${CMAKE_CURRENT_BINARY_DIR}/translations") - qt_add_translation(TRANSLATIONS_QM ${TRANSLATIONS_TS}) - - set(TRANSLATIONS_QRC ${CMAKE_CURRENT_BINARY_DIR}/translations/translations.qrc) - file(WRITE ${TRANSLATIONS_QRC} "\n") - foreach (QM ${TRANSLATIONS_QM}) - get_filename_component(QM_FILE ${QM} NAME) - file(APPEND ${TRANSLATIONS_QRC} "${QM_FILE}\n") - endforeach (QM) - file(APPEND ${TRANSLATIONS_QRC} "") - - qt_add_resources(TRANSLATIONS ${TRANSLATIONS_QRC}) -endif() - set(AJM_LIB src/core/libraries/ajm/ajm.cpp src/core/libraries/ajm/ajm.h src/core/libraries/ajm/ajm_at9.cpp @@ -1066,112 +1037,26 @@ set(EMULATOR src/emulator.cpp src/sdl_window.cpp ) -# The above is shared in SDL and Qt version (TODO share them all) - -if(ENABLE_QT_GUI) -qt_add_resources(RESOURCE_FILES src/shadps4.qrc) - -if (ENABLE_UPDATER) - set(UPDATER src/qt_gui/check_update.cpp - src/qt_gui/check_update.h - ) -endif() - -set(QT_GUI src/qt_gui/about_dialog.cpp - src/qt_gui/about_dialog.h - src/qt_gui/about_dialog.ui - src/qt_gui/background_music_player.cpp - src/qt_gui/background_music_player.h - src/qt_gui/cheats_patches.cpp - src/qt_gui/cheats_patches.h - src/qt_gui/compatibility_info.cpp - src/qt_gui/compatibility_info.h - src/qt_gui/control_settings.cpp - src/qt_gui/control_settings.h - src/qt_gui/control_settings.ui - src/qt_gui/kbm_gui.cpp - src/qt_gui/kbm_gui.h - src/qt_gui/kbm_gui.ui - src/qt_gui/main_window_ui.h - src/qt_gui/main_window.cpp - src/qt_gui/main_window.h - src/qt_gui/gui_context_menus.h - src/qt_gui/game_list_utils.h - src/qt_gui/game_info.cpp - src/qt_gui/game_info.h - src/qt_gui/game_list_frame.cpp - src/qt_gui/game_list_frame.h - src/qt_gui/game_grid_frame.cpp - src/qt_gui/game_grid_frame.h - src/qt_gui/game_install_dialog.cpp - src/qt_gui/game_install_dialog.h - src/qt_gui/trophy_viewer.cpp - src/qt_gui/trophy_viewer.h - src/qt_gui/elf_viewer.cpp - src/qt_gui/elf_viewer.h - src/qt_gui/kbm_config_dialog.cpp - src/qt_gui/kbm_config_dialog.h - src/qt_gui/kbm_help_dialog.cpp - src/qt_gui/kbm_help_dialog.h - src/qt_gui/main_window_themes.cpp - src/qt_gui/main_window_themes.h - src/qt_gui/log_presets_dialog.cpp - src/qt_gui/log_presets_dialog.h - src/qt_gui/settings_dialog.cpp - src/qt_gui/settings_dialog.h - src/qt_gui/settings_dialog.ui - src/qt_gui/main.cpp - src/qt_gui/gui_settings.cpp - src/qt_gui/gui_settings.h - src/qt_gui/settings.cpp - src/qt_gui/settings.h - src/qt_gui/sdl_event_wrapper.cpp - src/qt_gui/sdl_event_wrapper.h - src/qt_gui/hotkeys.h - src/qt_gui/hotkeys.cpp - src/qt_gui/hotkeys.ui - ${EMULATOR} - ${RESOURCE_FILES} - ${TRANSLATIONS} - ${UPDATER} +add_executable(shadps4 + ${AUDIO_CORE} + ${IMGUI} + ${INPUT} + ${COMMON} + ${CORE} + ${SHADER_RECOMPILER} + ${VIDEO_CORE} + ${EMULATOR} + src/main.cpp + src/emulator.cpp + src/emulator.h + src/sdl_window.h + src/sdl_window.cpp ) -endif() - -if (ENABLE_QT_GUI) - qt_add_executable(shadps4 - ${AUDIO_CORE} - ${IMGUI} - ${INPUT} - ${QT_GUI} - ${COMMON} - ${CORE} - ${SHADER_RECOMPILER} - ${VIDEO_CORE} - ${EMULATOR} - src/images/shadPS4.icns - ) -else() - add_executable(shadps4 - ${AUDIO_CORE} - ${IMGUI} - ${INPUT} - ${COMMON} - ${CORE} - ${SHADER_RECOMPILER} - ${VIDEO_CORE} - ${EMULATOR} - src/main.cpp - src/emulator.cpp - src/emulator.h - src/sdl_window.h - src/sdl_window.cpp - ) -endif() create_target_directory_groups(shadps4) target_link_libraries(shadps4 PRIVATE magic_enum::magic_enum fmt::fmt toml11::toml11 tsl::robin_map xbyak::xbyak Tracy::TracyClient RenderDoc::API FFmpeg::ffmpeg Dear_ImGui gcn half::half ZLIB::ZLIB PNG::PNG) -target_link_libraries(shadps4 PRIVATE Boost::headers GPUOpen::VulkanMemoryAllocator LibAtrac9 sirit Vulkan::Headers xxHash::xxhash Zydis::Zydis glslang::glslang SDL3::SDL3 pugixml::pugixml stb::headers libusb::usb lfreist-hwinfo::hwinfo) +target_link_libraries(shadps4 PRIVATE Boost::headers GPUOpen::VulkanMemoryAllocator LibAtrac9 sirit Vulkan::Headers xxHash::xxhash Zydis::Zydis glslang::glslang SDL3::SDL3 pugixml::pugixml stb::headers libusb::usb lfreist-hwinfo::hwinfo nlohmann_json::nlohmann_json) target_compile_definitions(shadps4 PRIVATE IMGUI_USER_CONFIG="imgui/imgui_config.h") target_compile_definitions(Dear_ImGui PRIVATE IMGUI_USER_CONFIG="${PROJECT_SOURCE_DIR}/src/imgui/imgui_config.h") @@ -1191,20 +1076,9 @@ endif() if (APPLE) # Include MoltenVK, along with an ICD file so it can be found by the system Vulkan loader if used for loading layers. - if (ENABLE_QT_GUI) - set(MVK_BUNDLE_PATH "Resources/vulkan/icd.d") - set_property(TARGET shadps4 APPEND PROPERTY BUILD_RPATH "@executable_path/../${MVK_BUNDLE_PATH}") - set(MVK_DST ${CMAKE_CURRENT_BINARY_DIR}/shadps4.app/Contents/${MVK_BUNDLE_PATH}) - - add_custom_command( - OUTPUT ${MVK_DST} - COMMAND ${CMAKE_COMMAND} -E make_directory ${MVK_DST}) - else() - set_property(TARGET shadps4 APPEND PROPERTY BUILD_RPATH "@executable_path") - set(MVK_DST ${CMAKE_CURRENT_BINARY_DIR}) - endif() - - set(MVK_DYLIB_SRC ${CMAKE_CURRENT_BINARY_DIR}/externals/MoltenVK/MoltenVK/libMoltenVK.dylib) + set_property(TARGET shadps4 APPEND PROPERTY BUILD_RPATH "@executable_path") + set(MVK_DST ${CMAKE_CURRENT_BINARY_DIR}) + set(MVK_DYLIB_SRC ${CMAKE_CURRENT_BINARY_DIR}/externals/MoltenVK/libMoltenVK.dylib) set(MVK_DYLIB_DST ${MVK_DST}/libMoltenVK.dylib) set(MVK_ICD_SRC ${CMAKE_CURRENT_SOURCE_DIR}/externals/MoltenVK/MoltenVK/icd/MoltenVK_icd.json) set(MVK_ICD_DST ${MVK_DST}/MoltenVK_icd.json) @@ -1230,14 +1104,6 @@ if (APPLE) target_link_libraries(shadps4 PRIVATE date::date-tz epoll-shim) endif() -if (ENABLE_QT_GUI) - target_link_libraries(shadps4 PRIVATE Qt6::Widgets Qt6::Concurrent Qt6::Network Qt6::Multimedia) - add_definitions(-DENABLE_QT_GUI) - if (ENABLE_UPDATER) - add_definitions(-DENABLE_UPDATER) - endif() -endif() - if (WIN32) target_link_libraries(shadps4 PRIVATE mincore wepoll) @@ -1315,25 +1181,6 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src/imgui/renderer) add_dependencies(shadps4 ImGui_Resources) target_include_directories(shadps4 PRIVATE ${IMGUI_RESOURCES_INCLUDE}) -if (ENABLE_QT_GUI) - set_target_properties(shadps4 PROPERTIES -# WIN32_EXECUTABLE ON - 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 "${APP_VERSION}" - ) - - set_source_files_properties(src/images/shadPS4.icns PROPERTIES - MACOSX_PACKAGE_LOCATION Resources) -endif() - -if (UNIX AND NOT APPLE) - if (ENABLE_QT_GUI) - find_package(OpenSSL REQUIRED) - target_link_libraries(shadps4 PRIVATE ${OPENSSL_LIBRARIES}) - endif() -endif() # Discord RPC if (ENABLE_DISCORD_RPC) @@ -1342,10 +1189,3 @@ endif() # Install rules install(TARGETS shadps4 BUNDLE DESTINATION .) - -if (ENABLE_QT_GUI AND CMAKE_SYSTEM_NAME STREQUAL "Linux") - install(FILES "dist/net.shadps4.shadPS4.desktop" DESTINATION "share/applications") - install(FILES "dist/net.shadps4.shadPS4.metainfo.xml" DESTINATION "share/metainfo") - install(FILES ".github/shadps4.png" DESTINATION "share/icons/hicolor/512x512/apps" RENAME "net.shadps4.shadPS4.png") - install(FILES "src/images/net.shadps4.shadPS4.svg" DESTINATION "share/icons/hicolor/scalable/apps") -endif() diff --git a/CMakePresets.json b/CMakePresets.json index bd1aba36e..c34007a34 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -15,15 +15,6 @@ "CMAKE_BUILD_TYPE": "Debug" } }, - { - "name": "x64-Clang-Debug-Qt", - "displayName": "Clang x64 Debug with Qt", - "inherits": ["x64-Clang-Base"], - "cacheVariables": { - "CMAKE_BUILD_TYPE": "Debug", - "ENABLE_QT_GUI": "ON" - } - }, { "name": "x64-Clang-Release", "displayName": "Clang x64 Release", @@ -32,15 +23,6 @@ "CMAKE_BUILD_TYPE": "Release" } }, - { - "name": "x64-Clang-Release-Qt", - "displayName": "Clang x64 Release with Qt", - "inherits": ["x64-Clang-Base"], - "cacheVariables": { - "CMAKE_BUILD_TYPE": "Release", - "ENABLE_QT_GUI": "ON" - } - }, { "name": "x64-Clang-RelWithDebInfo", "displayName": "Clang x64 RelWithDebInfo", @@ -48,15 +30,6 @@ "cacheVariables": { "CMAKE_BUILD_TYPE": "RelWithDebInfo" } - }, - { - "name": "x64-Clang-RelWithDebInfo-Qt", - "displayName": "Clang x64 RelWithDebInfo with Qt", - "inherits": ["x64-Clang-Base"], - "cacheVariables": { - "CMAKE_BUILD_TYPE": "RelWithDebInfo", - "ENABLE_QT_GUI": "ON" - } } ] } \ No newline at end of file diff --git a/CMakeSettings.json b/CMakeSettings.json index e1ed36887..bb522fcfc 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -12,18 +12,6 @@ "inheritEnvironments": [ "clang_cl_x64_x64" ], "intelliSenseMode": "windows-clang-x64" }, - { - "name": "x64-Clang-Release-Qt", - "generator": "Ninja", - "configurationType": "Release", - "buildRoot": "${projectDir}\\Build\\${name}", - "installRoot": "${projectDir}\\Install\\${name}", - "cmakeCommandArgs": "-DENABLE_QT_GUI=ON", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "clang_cl_x64_x64" ], - "intelliSenseMode": "windows-clang-x64" - }, { "name": "x64-Clang-Debug", "generator": "Ninja", @@ -36,18 +24,6 @@ "inheritEnvironments": [ "clang_cl_x64_x64" ], "intelliSenseMode": "windows-clang-x64" }, - { - "name": "x64-Clang-Debug-Qt", - "generator": "Ninja", - "configurationType": "Debug", - "buildRoot": "${projectDir}\\Build\\${name}", - "installRoot": "${projectDir}\\Install\\${name}", - "cmakeCommandArgs": "-DENABLE_QT_GUI=ON", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "clang_cl_x64_x64" ], - "intelliSenseMode": "windows-clang-x64" - }, { "name": "x64-Clang-RelWithDebInfo", "generator": "Ninja", @@ -59,18 +35,6 @@ "ctestCommandArgs": "", "inheritEnvironments": [ "clang_cl_x64_x64" ], "intelliSenseMode": "windows-clang-x64" - }, - { - "name": "x64-Clang-RelWithDebInfo-Qt", - "generator": "Ninja", - "configurationType": "RelWithDebInfo", - "buildRoot": "${projectDir}\\Build\\${name}", - "installRoot": "${projectDir}\\Install\\${name}", - "cmakeCommandArgs": "-DENABLE_QT_GUI=ON", - "buildCommandArgs": "", - "ctestCommandArgs": "", - "inheritEnvironments": [ "clang_cl_x64_x64" ], - "intelliSenseMode": "windows-clang-x64" } ] } \ No newline at end of file diff --git a/README.md b/README.md index e08b47a55..dbb890f87 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,9 @@ SPDX-License-Identifier: GPL-2.0-or-later **shadPS4** is an early **PlayStation 4** emulator for **Windows**, **Linux** and **macOS** written in C++. +> [!IMPORTANT] +> This is the emulator core, which does not include a GUI. If you just want to use the emulator as an end user, download the [**QtLauncher**](https://github.com/shadps4-emu/shadps4-qtlauncher/releases) instead. + If you encounter problems or have doubts, do not hesitate to look at the [**Quickstart**](https://github.com/shadps4-emu/shadPS4/wiki/I.-Quick-start-%5BUsers%5D).\ To verify that a game works, you can look at [**shadPS4 Game Compatibility**](https://github.com/shadps4-compatibility/shadps4-game-compatibility).\ To discuss shadPS4 development, suggest ideas or to ask for help, join our [**Discord server**](https://discord.gg/bFJxfftGW6).\ @@ -55,9 +58,6 @@ This project began for fun. Given our limited free time, it may take some time b # Building -> [!IMPORTANT] -> If you want to use shadPS4 to play your games, you don't have to follow the build instructions, you can simply download the emulator from either the [**release tab**](https://github.com/shadps4-emu/shadPS4/releases) or the [**action tab**](https://github.com/shadps4-emu/shadPS4/actions). - ## Windows Check the build instructions for [**Windows**](https://github.com/shadps4-emu/shadPS4/blob/main/documents/building-windows.md). @@ -73,6 +73,22 @@ Check the build instructions for [**macOS**](https://github.com/shadps4-emu/shad > [!IMPORTANT] > macOS users need at least macOS 15.4 to run shadPS4. Due to GPU issues there are currently heavy bugs on Intel Macs. +# Usage examples + +> [!IMPORTANT] +> For a user-friendly GUI, download the [**QtLauncher**](https://github.com/shadps4-emu/shadps4-qtlauncher/releases). + +To get the list of all available commands and also a more detailed description of what each command does, please refer to the `--help` flag's output. + +Below is a list of commonly used command patterns: +```sh +shadPS4 CUSA00001 # Searches for a game folder called CUSA00001 in the list of game install folders, and boots it. +shadPS4 --fullscreen true --config-clean CUSA00001 # the game argument is always the last one, +shadPS4 -g CUSA00001 --fullscreen true --config-clean # ...unless manually specified otherwise. +shadPS4 /path/to/game.elf # Boots a PS4 ELF file directly. Useful if you want to boot an executable that is not named eboot.bin. +shadPS4 CUSA00001 -- -flag1 -flag2 # Passes '-flag1' and '-flag2' to the game executable in argv. +``` + # Debugging and reporting issues For more information on how to test, debug and report issues with the emulator or games, read the [**Debugging documentation**](https://github.com/shadps4-emu/shadPS4/blob/main/documents/Debugging/Debugging.md). @@ -160,15 +176,6 @@ Logo is done by [**Xphalnos**](https://github.com/Xphalnos) If you want to contribute, please read the [**CONTRIBUTING.md**](https://github.com/shadps4-emu/shadPS4/blob/main/CONTRIBUTING.md) file.\ Open a PR and we'll check it :) -# Translations - -If you want to translate shadPS4 to your language we use [**Crowdin**](https://crowdin.com/project/shadps4-emulator). -# Contributors - - - - - # Special Thanks diff --git a/REUSE.toml b/REUSE.toml index 1245f7b2e..18200ab28 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -74,7 +74,6 @@ path = [ "src/images/trophy.wav", "src/images/hotkey.png", "src/images/game_settings.png", - "src/shadps4.qrc", "src/shadps4.rc", ] precedence = "aggregate" @@ -130,9 +129,4 @@ SPDX-License-Identifier = "MIT" [[annotations]] path = "src/video_core/host_shaders/fsr/*" SPDX-FileCopyrightText = "Copyright (c) 2021 Advanced Micro Devices, Inc. All rights reserved." -SPDX-License-Identifier = "MIT" - -[[annotations]] -path = "dist/qt.conf" -SPDX-FileCopyrightText = "shadPS4 Emulator Project" -SPDX-License-Identifier = "GPL-2.0-or-later" +SPDX-License-Identifier = "MIT" \ No newline at end of file diff --git a/cmake/DetectQtInstallation.cmake b/cmake/DetectQtInstallation.cmake deleted file mode 100644 index 650cc9745..000000000 --- a/cmake/DetectQtInstallation.cmake +++ /dev/null @@ -1,28 +0,0 @@ -# SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -set(highest_version "0") -set(CANDIDATE_DRIVES A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) - -foreach(drive ${CANDIDATE_DRIVES}) - file(GLOB kits LIST_DIRECTORIES true CONFIGURE_DEPENDS "${drive}:/Qt/*/msvc*_64") - foreach(kit IN LISTS kits) - get_filename_component(version_dir "${kit}" DIRECTORY) - get_filename_component(kit_version "${version_dir}" NAME) - - message(STATUS "DetectQtInstallation.cmake: Detected Qt: ${kit}") - - if (kit_version VERSION_GREATER highest_version) - set(highest_version "${kit_version}") - set(QT_PREFIX "${kit}") - - endif() - endforeach() -endforeach() - -if(QT_PREFIX) - set(CMAKE_PREFIX_PATH "${QT_PREFIX}" CACHE PATH "Qt prefix auto‑detected" FORCE) - message(STATUS "DetectQtInstallation.cmake: Choose newest Qt: ${QT_PREFIX}") -else() - message(STATUS "DetectQtInstallation.cmake: No Qt‑Directory found in :/Qt – please set CMAKE_PREFIX_PATH manually") -endif() diff --git a/dist/qt.conf b/dist/qt.conf deleted file mode 100644 index 0bb15d2e0..000000000 --- a/dist/qt.conf +++ /dev/null @@ -1,2 +0,0 @@ -[Paths] -plugins = "./qtplugins" \ No newline at end of file diff --git a/documents/building-linux.md b/documents/building-linux.md index 00d73280e..49aacdfc9 100644 --- a/documents/building-linux.md +++ b/documents/building-linux.md @@ -17,8 +17,7 @@ First and foremost, Clang 18 is the **recommended compiler** as it is used for o sudo apt install build-essential clang git cmake libasound2-dev \ libpulse-dev libopenal-dev libssl-dev zlib1g-dev libedit-dev \ libudev-dev libevdev-dev libsdl2-dev libjack-dev libsndio-dev \ - qt6-base-dev qt6-tools-dev qt6-multimedia-dev libvulkan-dev \ - vulkan-validationlayers libpng-dev + libvulkan-dev vulkan-validationlayers libpng-dev ``` #### Fedora @@ -27,8 +26,6 @@ sudo apt install build-essential clang git cmake libasound2-dev \ sudo dnf install clang git cmake libatomic alsa-lib-devel \ pipewire-jack-audio-connection-kit-devel openal-soft-devel \ openssl-devel libevdev-devel libudev-devel libXext-devel \ - qt6-qtbase-devel qt6-qtbase-private-devel \ - qt6-qtmultimedia-devel qt6-qtsvg-devel qt6-qttools-devel \ vulkan-devel vulkan-validation-layers libpng-devel libuuid-devel ``` @@ -36,8 +33,7 @@ sudo dnf install clang git cmake libatomic alsa-lib-devel \ ```bash sudo pacman -S base-devel clang git cmake sndio jack2 openal \ - qt6-base qt6-declarative qt6-multimedia qt6-tools sdl2 \ - vulkan-validation-layers libpng + sdl2 vulkan-validation-layers libpng ``` **Note**: The `shadps4-git` AUR package is not maintained by any of the developers, and it uses the default compiler, which is often set to GCC. Use at your own discretion. @@ -48,9 +44,7 @@ sudo pacman -S base-devel clang git cmake sndio jack2 openal \ sudo zypper install clang git cmake libasound2 libpulse-devel \ libsndio7 libjack-devel openal-soft-devel libopenssl-devel \ zlib-devel libedit-devel systemd-devel libevdev-devel \ - qt6-base-devel qt6-multimedia-devel qt6-svg-devel \ - qt6-linguist-devel qt6-gui-private-devel vulkan-devel \ - vulkan-validationlayers libpng-devel + vulkan-devel vulkan-validationlayers libpng-devel ``` #### NixOS @@ -90,12 +84,12 @@ There are 3 options you can choose from. Option 1 is **highly recommended**. 1. Generate the build directory in the shadPS4 directory. ```bash -cmake -S . -B build/ -DENABLE_QT_GUI=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ +cmake -S . -B build/ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ``` -To disable the Qt GUI, remove the `-DENABLE_QT_GUI=ON` flag. To change the build type (for debugging), add `-DCMAKE_BUILD_TYPE=Debug`. +To change the build type (for debugging), add `-DCMAKE_BUILD_TYPE=Debug`. -2. Use CMake to build the project: +1. Use CMake to build the project: ```bash cmake --build ./build --parallel$(nproc) @@ -103,18 +97,12 @@ cmake --build ./build --parallel$(nproc) If your computer freezes during this step, this could be caused by excessive system resource usage. In that case, remove `--parallel$(nproc)`. -Now run the emulator. If Qt was enabled at configure time: +Now run the emulator to get the list of options: ```bash ./build/shadps4 ``` -Otherwise, specify the path to your game's boot file: - -```bash -./build/shadps4 /"PATH"/"TO"/"GAME"/"FOLDER"/eboot.bin -``` - You can also specify the Game ID as an argument for which game to boot, as long as the folder containing the games is specified in config.toml (example: Bloodborne (US) is CUSA00900). #### Option 2: Configuring with cmake-gui @@ -142,10 +130,6 @@ Go to Settings, filter by `@ext:ms-vscode.cmake-tools configure` and disable thi ![image](https://raw.githubusercontent.com/shadps4-emu/shadPS4/refs/heads/main/documents/Screenshots/Linux/1.png) -If you wish to build with the Qt GUI, add `-DENABLE_QT_GUI=ON` to the configure arguments: - -![image](https://raw.githubusercontent.com/shadps4-emu/shadPS4/refs/heads/main/documents/Screenshots/Linux/2.png) - On the CMake tab, change the options as you wish, but make sure that it looks similar to or exactly like this: ![image](https://raw.githubusercontent.com/shadps4-emu/shadPS4/refs/heads/main/documents/Screenshots/Linux/4.png) diff --git a/documents/building-macos.md b/documents/building-macos.md index 9a1a021ee..6189356f0 100644 --- a/documents/building-macos.md +++ b/documents/building-macos.md @@ -24,21 +24,6 @@ eval $(/opt/homebrew/bin/brew shellenv) brew install clang-format cmake ``` -Next, install x86_64 Qt. You can skip these steps and move on to **Cloning and compiling** if you do not intend to build the Qt GUI. - -**If you are on an ARM Mac:** -``` -# Installs x86_64 Homebrew to /usr/local -arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -# Installs libraries. -arch -x86_64 /usr/local/bin/brew install qt@6 -``` - -**If you are on an x86_64 Mac:** -``` -brew install qt@6 -``` - ### Cloning and compiling: Clone the repository recursively: @@ -52,8 +37,6 @@ Generate the build directory in the shadPS4 directory: cmake -S . -B build/ -DCMAKE_OSX_ARCHITECTURES=x86_64 ``` -If you want to build the Qt GUI, add `-DENABLE_QT_GUI=ON` to the end of this command as well. - Enter the directory: ``` cd build/ diff --git a/documents/building-windows.md b/documents/building-windows.md index 195028da5..aa7213abc 100644 --- a/documents/building-windows.md +++ b/documents/building-windows.md @@ -22,23 +22,6 @@ Once you are within the installer: 2. Go to "Individual Components" tab then search and select both `C++ Clang Compiler for Windows` and `MSBuild support for LLVM` 3. Continue the installation -### (Prerequisite) Download [**Qt**](https://doc.qt.io/qt-6/get-and-install-qt.html) - -Beware, this requires you to create a Qt account. If you do not want to do this, please follow the MSYS2/MinGW compilation method instead. - -1. Under the current, non beta version of Qt, select the option `MSVC 2022 64-bit` or similar, as well as `QT Multimedia`. - If you are on Windows on ARM / Qualcomm Snapdragon Elite X, select `MSVC 2022 ARM64` instead. - - Go through the installation normally. If you know what you are doing, you may unselect individual components that eat up too much disk space. - -2. Download and install [Qt Visual Studio Tools](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2022) - -Once you are finished, you will have to configure Qt within Visual Studio: - -1. Tools -> Options -> Qt -> Versions -2. Add a new Qt version and navigate it to the correct folder. Should look like so: `C:\Qt\\msvc2022_64` -3. Enable the default checkmark on the new version you just created. - ### (Prerequisite) Download [**Git for Windows**](https://git-scm.com/download/win) Go through the Git for Windows installation as normal @@ -79,13 +62,10 @@ Normal x86-based computers, follow: 1. Open "MSYS2 MINGW64" from your new applications 2. Run `pacman -Syu`, let it complete; 3. Run `pacman -S --needed git mingw-w64-x86_64-binutils mingw-w64-x86_64-clang mingw-w64-x86_64-cmake mingw-w64-x86_64-rapidjson mingw-w64-x86_64-ninja mingw-w64-x86_64-ffmpeg` - 1. Optional (Qt only): run `pacman -S --needed mingw-w64-x86_64-qt6-base mingw-w64-x86_64-qt6-tools mingw-w64-x86_64-qt6-multimedia` 4. Run `git clone --depth 1 --recursive https://github.com/shadps4-emu/shadPS4` 5. Run `cd shadPS4` 6. Run `cmake -S . -B build -DCMAKE_C_COMPILER="clang.exe" -DCMAKE_CXX_COMPILER="clang++.exe" -DCMAKE_CXX_FLAGS="-O2 -march=native"` - 1. Optional (Qt only): add `-DENABLE_QT_GUI=ON` 7. Run `cmake --build build` - 1. Optional (Qt only): run `windeployqt6 build/shadps4.exe` 8. To run the finished product, run `./build/shadPS4.exe` ARM64-based computers, follow: @@ -97,9 +77,7 @@ ARM64-based computers, follow: 4. Run `git clone --depth 1 --recursive https://github.com/shadps4-emu/shadPS4` 5. Run `cd shadPS4` 6. Run `cmake -S . -B build -DCMAKE_C_COMPILER="clang.exe" -DCMAKE_CXX_COMPILER="clang++.exe" -DCMAKE_CXX_FLAGS="-O2 -march=native"` - 1. Optional (Qt only): add `-DENABLE_QT_GUI=ON` 7. Run `cmake --build build` - 1. Optional (Qt only): run `windeployqt6 build/shadps4.exe` 8. To run the finished product, run `./build/shadPS4.exe` ## Note on MSYS2 builds diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 2df833426..a26f58d69 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -245,3 +245,7 @@ endif() if (WIN32) add_subdirectory(ext-wepoll) endif() + +#nlohmann json +set(JSON_BuildTests OFF CACHE INTERNAL "") +add_subdirectory(json) diff --git a/externals/json b/externals/json new file mode 160000 index 000000000..55f93686c --- /dev/null +++ b/externals/json @@ -0,0 +1 @@ +Subproject commit 55f93686c01528224f448c19128836e7df245f72 diff --git a/shell.nix b/shell.nix index 4eee9fdea..50336d1b2 100644 --- a/shell.nix +++ b/shell.nix @@ -17,7 +17,6 @@ pkgs.mkShell { pkgs.alsa-lib pkgs.libpulseaudio pkgs.openal - pkgs.openssl pkgs.zlib pkgs.libedit pkgs.udev @@ -25,9 +24,6 @@ pkgs.mkShell { pkgs.SDL2 pkgs.jack2 pkgs.sndio - pkgs.qt6.qtbase - pkgs.qt6.qttools - pkgs.qt6.qtmultimedia pkgs.vulkan-headers pkgs.vulkan-utility-libraries @@ -44,16 +40,12 @@ pkgs.mkShell { pkgs.xorg.xcbutilwm pkgs.sdl3 pkgs.stb - pkgs.qt6.qtwayland pkgs.wayland-protocols pkgs.libpng ]; shellHook = '' echo "Entering shadPS4 dev shell" - export QT_QPA_PLATFORM="wayland" - export QT_PLUGIN_PATH="${pkgs.qt6.qtwayland}/lib/qt-6/plugins:${pkgs.qt6.qtbase}/lib/qt-6/plugins" - export QML2_IMPORT_PATH="${pkgs.qt6.qtbase}/lib/qt-6/qml" export CMAKE_PREFIX_PATH="${pkgs.vulkan-headers}:$CMAKE_PREFIX_PATH" # OpenGL diff --git a/src/common/config.cpp b/src/common/config.cpp index ee9a12874..539c4242e 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -139,13 +139,10 @@ static ConfigEntry trophyNotificationDuration(6.0); static ConfigEntry logFilter(""); static ConfigEntry logType("sync"); static ConfigEntry userName("shadPS4"); -static ConfigEntry chooseHomeTab("General"); static ConfigEntry isShowSplash(false); static ConfigEntry isSideTrophy("right"); static ConfigEntry isConnectedToNetwork(false); static bool enableDiscordRPC = false; -static bool checkCompatibilityOnStartup = false; -static bool compatibilityData = false; static std::filesystem::path sys_modules_path = {}; // Input @@ -203,7 +200,6 @@ static ConfigEntry isFpsColor(true); static ConfigEntry logEnabled(true); // GUI -static bool load_game_size = true; static std::vector settings_install_dirs = {}; std::vector install_dirs_enabled = {}; std::filesystem::path settings_addon_install_dir = {}; @@ -218,9 +214,19 @@ static string trophyKey = ""; // Config version, used to determine if a user's config file is outdated. static string config_version = Common::g_scm_rev; -// These two entries aren't stored in the config +// These entries aren't stored in the config static bool overrideControllerColor = false; static int controllerCustomColorRGB[3] = {0, 0, 255}; +static bool isGameRunning = false; +static bool load_auto_patches = true; + +bool getGameRunning() { + return isGameRunning; +} + +void setGameRunning(bool running) { + isGameRunning = running; +} std::filesystem::path getSysModulesPath() { if (sys_modules_path.empty()) { @@ -278,10 +284,6 @@ void setTrophyKey(string key) { trophyKey = key; } -bool GetLoadGameSizeEnabled() { - return load_game_size; -} - std::filesystem::path GetSaveDataPath() { if (save_data_path.empty()) { return Common::FS::GetUserPath(Common::FS::PathType::UserDir) / "savedata"; @@ -293,10 +295,6 @@ void setVolumeSlider(int volumeValue, bool is_game_specific) { volumeSlider.set(volumeValue, is_game_specific); } -void setLoadGameSizeEnabled(bool enable) { - load_game_size = enable; -} - bool isNeoModeConsole() { return isNeo.get(); } @@ -309,8 +307,10 @@ int getExtraDmemInMbytes() { return extraDmemInMbytes.get(); } -void setExtraDmemInMbytes(int value) { - extraDmemInMbytes.base_value = 0; +void setExtraDmemInMbytes(int value, bool is_game_specific) { + // Disable setting in global config + is_game_specific ? extraDmemInMbytes.game_specific_value = value + : extraDmemInMbytes.base_value = 0; } bool getIsFullscreen() { @@ -389,10 +389,6 @@ string getUserName() { return userName.get(); } -string getChooseHomeTab() { - return chooseHomeTab.get(); -} - bool getUseSpecialPad() { return useSpecialPad.get(); } @@ -508,14 +504,6 @@ void setVkGuestMarkersEnabled(bool enable, bool is_game_specific) { vkGuestMarkers.set(enable, is_game_specific); } -bool getCompatibilityEnabled() { - return compatibilityData; -} - -bool getCheckCompatibilityOnStartup() { - return checkCompatibilityOnStartup; -} - bool getIsConnectedToNetwork() { return isConnectedToNetwork.get(); } @@ -600,6 +588,14 @@ void setVkSyncValidation(bool enable, bool is_game_specific) { vkValidationSync.set(enable, is_game_specific); } +void setVkCoreValidation(bool enable, bool is_game_specific) { + vkValidationCore.set(enable, is_game_specific); +} + +void setVkGpuValidation(bool enable, bool is_game_specific) { + vkValidationGpu.set(enable, is_game_specific); +} + void setRdocEnabled(bool enable, bool is_game_specific) { rdocEnable.set(enable, is_game_specific); } @@ -680,10 +676,6 @@ void setUserName(const string& name, bool is_game_specific) { userName.set(name, is_game_specific); } -void setChooseHomeTab(const string& type, bool is_game_specific) { - chooseHomeTab.set(type, is_game_specific); -} - void setUseSpecialPad(bool use) { useSpecialPad.base_value = use; } @@ -696,14 +688,6 @@ void setIsMotionControlsEnabled(bool use, bool is_game_specific) { isMotionControlsEnabled.set(use, is_game_specific); } -void setCompatibilityEnabled(bool use) { - compatibilityData = use; -} - -void setCheckCompatibilityOnStartup(bool use) { - checkCompatibilityOnStartup = use; -} - bool addGameInstallDir(const std::filesystem::path& dir, bool enabled) { for (const auto& install_dir : settings_install_dirs) { if (install_dir.path == dir) { @@ -833,6 +817,13 @@ void setRcasAttenuation(int value, bool is_game_specific) { rcasAttenuation.set(value, is_game_specific); } +bool getLoadAutoPatches() { + return load_auto_patches; +} +void setLoadAutoPatches(bool enable) { + load_auto_patches = enable; +} + void load(const std::filesystem::path& path, bool is_game_specific) { // If the configuration file does not exist, create it and return, unless it is game specific std::error_code error; @@ -874,12 +865,8 @@ void load(const std::filesystem::path& path, bool is_game_specific) { userName.setFromToml(general, "userName", is_game_specific); isShowSplash.setFromToml(general, "showSplash", is_game_specific); isSideTrophy.setFromToml(general, "sideTrophy", is_game_specific); - compatibilityData = toml::find_or(general, "compatibilityEnabled", compatibilityData); - checkCompatibilityOnStartup = toml::find_or(general, "checkCompatibilityOnStartup", - checkCompatibilityOnStartup); isConnectedToNetwork.setFromToml(general, "isConnectedToNetwork", is_game_specific); - chooseHomeTab.setFromToml(general, "chooseHomeTab", is_game_specific); defaultControllerID.setFromToml(general, "defaultControllerID", is_game_specific); sys_modules_path = toml::find_fs_path_or(general, "sysModulesPath", sys_modules_path); } @@ -957,8 +944,6 @@ void load(const std::filesystem::path& path, bool is_game_specific) { if (data.contains("GUI")) { const toml::value& gui = data.at("GUI"); - load_game_size = toml::find_or(gui, "loadGameSizeEnabled", load_game_size); - const auto install_dir_array = toml::find_or>(gui, "installDirs", {}); @@ -1062,7 +1047,6 @@ void save(const std::filesystem::path& path, bool is_game_specific) { logFilter.setTomlValue(data, "General", "logFilter", is_game_specific); logType.setTomlValue(data, "General", "logType", is_game_specific); userName.setTomlValue(data, "General", "userName", is_game_specific); - chooseHomeTab.setTomlValue(data, "General", "chooseHomeTab", is_game_specific); isShowSplash.setTomlValue(data, "General", "showSplash", is_game_specific); isSideTrophy.setTomlValue(data, "General", "sideTrophy", is_game_specific); isNeo.setTomlValue(data, "General", "isPS4Pro", is_game_specific); @@ -1104,6 +1088,8 @@ void save(const std::filesystem::path& path, bool is_game_specific) { gpuId.setTomlValue(data, "Vulkan", "gpuId", is_game_specific); vkValidation.setTomlValue(data, "Vulkan", "validation", is_game_specific); vkValidationSync.setTomlValue(data, "Vulkan", "validation_sync", is_game_specific); + vkValidationCore.setTomlValue(data, "Vulkan", "validation_core", is_game_specific); + vkValidationGpu.setTomlValue(data, "Vulkan", "validation_gpu", is_game_specific); vkCrashDiagnostic.setTomlValue(data, "Vulkan", "crashDiagnostic", is_game_specific); vkHostMarkers.setTomlValue(data, "Vulkan", "hostMarkers", is_game_specific); vkGuestMarkers.setTomlValue(data, "Vulkan", "guestMarkers", is_game_specific); @@ -1149,13 +1135,10 @@ void save(const std::filesystem::path& path, bool is_game_specific) { // Non game-specific entries data["General"]["enableDiscordRPC"] = enableDiscordRPC; - data["General"]["compatibilityEnabled"] = compatibilityData; - data["General"]["checkCompatibilityOnStartup"] = checkCompatibilityOnStartup; data["General"]["sysModulesPath"] = string{fmt::UTF(sys_modules_path.u8string()).data}; data["GUI"]["installDirs"] = install_dirs; data["GUI"]["installDirsEnabled"] = install_dirs_enabled; data["GUI"]["saveDataPath"] = string{fmt::UTF(save_data_path.u8string()).data}; - data["GUI"]["loadGameSizeEnabled"] = load_game_size; data["GUI"]["addonInstallDir"] = string{fmt::UTF(settings_addon_install_dir.u8string()).data}; data["Debug"]["ConfigVersion"] = config_version; @@ -1169,8 +1152,6 @@ void save(const std::filesystem::path& path, bool is_game_specific) { data["GPU"]["internalScreenWidth"] = internalScreenWidth.base_value; data["GPU"]["internalScreenHeight"] = internalScreenHeight.base_value; data["GPU"]["patchShaders"] = shouldPatchShaders.base_value; - data["Vulkan"]["validation_core"] = vkValidationCore.base_value; - data["Vulkan"]["validation_gpu"] = vkValidationGpu.base_value; data["Debug"]["FPSColor"] = isFpsColor.base_value; } @@ -1205,7 +1186,6 @@ void setDefaultValues(bool is_game_specific) { logFilter.set("", is_game_specific); logType.set("sync", is_game_specific); userName.set("shadPS4", is_game_specific); - chooseHomeTab.set("General", is_game_specific); isShowSplash.set(false, is_game_specific); isSideTrophy.set("right", is_game_specific); @@ -1258,8 +1238,6 @@ void setDefaultValues(bool is_game_specific) { // General enableDiscordRPC = false; - compatibilityData = false; - checkCompatibilityOnStartup = false; // Input useSpecialPad.base_value = false; @@ -1278,9 +1256,6 @@ void setDefaultValues(bool is_game_specific) { internalScreenWidth.base_value = 1280; internalScreenHeight.base_value = 720; - // GUI - load_game_size = true; - // Debug isFpsColor.base_value = true; } diff --git a/src/common/config.h b/src/common/config.h index 2760117f7..43bdf83f3 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -27,6 +27,8 @@ void load(const std::filesystem::path& path, bool is_game_specific = false); void save(const std::filesystem::path& path, bool is_game_specific = false); void resetGameSpecificValue(std::string entry); +bool getGameRunning(); +void setGameRunning(bool running); int getVolumeSlider(); void setVolumeSlider(int volumeValue, bool is_game_specific = false); std::string getTrophyKey(); @@ -79,6 +81,10 @@ bool vkValidationEnabled(); void setVkValidation(bool enable, bool is_game_specific = false); bool vkValidationSyncEnabled(); void setVkSyncValidation(bool enable, bool is_game_specific = false); +bool vkValidationGpuEnabled(); +void setVkGpuValidation(bool enable, bool is_game_specific = false); +bool vkValidationCoreEnabled(); +void setVkCoreValidation(bool enable, bool is_game_specific = false); bool getVkCrashDiagnosticEnabled(); void setVkCrashDiagnosticEnabled(bool enable, bool is_game_specific = false); bool getVkHostMarkersEnabled(); @@ -97,11 +103,10 @@ double getTrophyNotificationDuration(); void setTrophyNotificationDuration(double newTrophyNotificationDuration, bool is_game_specific = false); int getCursorHideTimeout(); -void setCursorHideTimeout(int newcursorHideTimeout); std::string getMainOutputDevice(); -void setMainOutputDevice(std::string device); +void setMainOutputDevice(std::string device, bool is_game_specific = false); std::string getPadSpkOutputDevice(); -void setPadSpkOutputDevice(std::string device); +void setPadSpkOutputDevice(std::string device, bool is_game_specific = false); std::string getMicDevice(); void setCursorHideTimeout(int newcursorHideTimeout, bool is_game_specific = false); void setMicDevice(std::string device, bool is_game_specific = false); @@ -122,10 +127,8 @@ void setNeoMode(bool enable, bool is_game_specific = false); bool isDevKitConsole(); void setDevKitConsole(bool enable, bool is_game_specific = false); -bool vkValidationCoreEnabled(); // no set -bool vkValidationGpuEnabled(); // no set int getExtraDmemInMbytes(); -void setExtraDmemInMbytes(int value); +void setExtraDmemInMbytes(int value, bool is_game_specific = false); bool getIsMotionControlsEnabled(); void setIsMotionControlsEnabled(bool use, bool is_game_specific = false); std::string getDefaultControllerID(); @@ -143,18 +146,14 @@ void setRcasAttenuation(int value, bool is_game_specific = false); bool getIsConnectedToNetwork(); void setConnectedToNetwork(bool enable, bool is_game_specific = false); void setUserName(const std::string& name, bool is_game_specific = false); -void setChooseHomeTab(const std::string& type, bool is_game_specific = false); std::filesystem::path getSysModulesPath(); void setSysModulesPath(const std::filesystem::path& path); +bool getLoadAutoPatches(); +void setLoadAutoPatches(bool enable); // TODO -bool GetLoadGameSizeEnabled(); std::filesystem::path GetSaveDataPath(); -void setLoadGameSizeEnabled(bool enable); -bool getCompatibilityEnabled(); -bool getCheckCompatibilityOnStartup(); std::string getUserName(); -std::string getChooseHomeTab(); bool GetUseUnifiedInputConfig(); void SetUseUnifiedInputConfig(bool use); bool GetOverrideControllerColor(); @@ -164,8 +163,6 @@ void SetControllerCustomColor(int r, int b, int g); void setGameInstallDirs(const std::vector& dirs_config); void setAllGameInstallDirs(const std::vector& dirs_config); void setSaveDataPath(const std::filesystem::path& path); -void setCompatibilityEnabled(bool use); -void setCheckCompatibilityOnStartup(bool use); // Gui bool addGameInstallDir(const std::filesystem::path& dir, bool enabled = true); void removeGameInstallDir(const std::filesystem::path& dir); diff --git a/src/common/memory_patcher.cpp b/src/common/memory_patcher.cpp index 123fcdc9c..a7755c1f1 100644 --- a/src/common/memory_patcher.cpp +++ b/src/common/memory_patcher.cpp @@ -3,20 +3,12 @@ #include #include +#include #include #include +#include #include -#ifdef ENABLE_QT_GUI -#include -#include -#include -#include -#include -#include -#include -#include -#include -#endif +#include "common/config.h" #include "common/elf_info.h" #include "common/logging/log.h" #include "common/path_util.h" @@ -28,7 +20,7 @@ namespace MemoryPatcher { EXPORT uintptr_t g_eboot_address; uint64_t g_eboot_image_size; std::string g_game_serial; -std::string patchFile; +std::string patch_file; bool patches_applied = false; std::vector pending_patches; @@ -122,223 +114,55 @@ std::string convertValueToHex(const std::string type, const std::string valueStr void ApplyPendingPatches(); -void OnGameLoaded() { - if (!patchFile.empty()) { - std::filesystem::path patchDir = Common::FS::GetUserPath(Common::FS::PathType::PatchesDir); +void ApplyPatchesFromXML(std::filesystem::path path) { + pugi::xml_document doc; + pugi::xml_parse_result result = doc.load_file(path.c_str()); - auto filePath = (patchDir / patchFile).native(); + auto* param_sfo = Common::Singleton::Instance(); + auto app_version = param_sfo->GetString("APP_VER").value_or("Unknown version"); - pugi::xml_document doc; - pugi::xml_parse_result result = doc.load_file(filePath.c_str()); + if (result) { + auto patchXML = doc.child("Patch"); + for (pugi::xml_node_iterator it = patchXML.children().begin(); + it != patchXML.children().end(); ++it) { - auto* param_sfo = Common::Singleton::Instance(); - auto app_version = param_sfo->GetString("APP_VER").value_or("Unknown version"); + if (std::string(it->name()) == "Metadata") { + if (std::string(it->attribute("isEnabled").value()) == "true") { + std::string currentPatchName = it->attribute("Name").value(); + std::string metadataAppVer = it->attribute("AppVer").value(); + bool versionMatches = metadataAppVer == app_version; - if (result) { - auto patchXML = doc.child("Patch"); - for (pugi::xml_node_iterator it = patchXML.children().begin(); - it != patchXML.children().end(); ++it) { + auto patchList = it->first_child(); + for (pugi::xml_node_iterator patchLineIt = patchList.children().begin(); + patchLineIt != patchList.children().end(); ++patchLineIt) { + + std::string type = patchLineIt->attribute("Type").value(); + if (!versionMatches && type != "mask" && type != "mask_jump32") + continue; - if (std::string(it->name()) == "Metadata") { - if (std::string(it->attribute("isEnabled").value()) == "true") { std::string currentPatchName = it->attribute("Name").value(); - std::string metadataAppVer = it->attribute("AppVer").value(); - bool versionMatches = metadataAppVer == app_version; - auto patchList = it->first_child(); for (pugi::xml_node_iterator patchLineIt = patchList.children().begin(); patchLineIt != patchList.children().end(); ++patchLineIt) { std::string type = patchLineIt->attribute("Type").value(); - if (!versionMatches && type != "mask" && type != "mask_jump32") - continue; - - std::string currentPatchName = it->attribute("Name").value(); - - for (pugi::xml_node_iterator patchLineIt = patchList.children().begin(); - patchLineIt != patchList.children().end(); ++patchLineIt) { - - std::string type = patchLineIt->attribute("Type").value(); - std::string address = patchLineIt->attribute("Address").value(); - std::string patchValue = patchLineIt->attribute("Value").value(); - std::string maskOffsetStr = - patchLineIt->attribute("Offset").value(); - std::string targetStr = ""; - std::string sizeStr = ""; - if (type == "mask_jump32") { - targetStr = patchLineIt->attribute("Target").value(); - sizeStr = patchLineIt->attribute("Size").value(); - } else { - patchValue = convertValueToHex(type, patchValue); - } - - bool littleEndian = false; - - if (type == "bytes16" || type == "bytes32" || type == "bytes64") { - littleEndian = true; - } - - MemoryPatcher::PatchMask patchMask = MemoryPatcher::PatchMask::None; - int maskOffsetValue = 0; - - if (type == "mask") - patchMask = MemoryPatcher::PatchMask::Mask; - - if (type == "mask_jump32") - patchMask = MemoryPatcher::PatchMask::Mask_Jump32; - - if ((type == "mask" || type == "mask_jump32") && - !maskOffsetStr.empty()) { - maskOffsetValue = std::stoi(maskOffsetStr, 0, 10); - } - - MemoryPatcher::PatchMemory(currentPatchName, address, patchValue, - targetStr, sizeStr, false, littleEndian, - patchMask, maskOffsetValue); - } - } - } - } - } - } else { - LOG_ERROR(Loader, "couldnt patch parse xml : {}", result.description()); - } - } - ApplyPendingPatches(); - -#ifdef ENABLE_QT_GUI - // We use the QT headers for the xml and json parsing, this define is only true on QT builds - QString patchDir; - Common::FS::PathToQString(patchDir, Common::FS::GetUserPath(Common::FS::PathType::PatchesDir)); - QDir dir(patchDir); - QStringList folders = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); - - for (const QString& folder : folders) { - QString filesJsonPath = patchDir + "/" + folder + "/files.json"; - - QFile jsonFile(filesJsonPath); - if (!jsonFile.open(QIODevice::ReadOnly)) { - LOG_ERROR(Loader, "Unable to open files.json for reading in repository {}", - folder.toStdString()); - continue; - } - - QByteArray jsonData = jsonFile.readAll(); - jsonFile.close(); - - QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData); - QJsonObject jsonObject = jsonDoc.object(); - - QString selectedFileName; - QString serial = QString::fromStdString(g_game_serial); - - for (auto it = jsonObject.constBegin(); it != jsonObject.constEnd(); ++it) { - QString filePath = it.key(); - QJsonArray idsArray = it.value().toArray(); - - if (idsArray.contains(QJsonValue(serial))) { - selectedFileName = filePath; - break; - } - } - - if (selectedFileName.isEmpty()) { - LOG_ERROR(Loader, "No patch file found for the current serial in repository {}", - folder.toStdString()); - continue; - } - - QString filePath = patchDir + "/" + folder + "/" + selectedFileName; - QFile file(filePath); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - LOG_ERROR(Loader, "Unable to open the file for reading."); - continue; - } - - QByteArray xmlData = file.readAll(); - file.close(); - - QString newXmlData; - - QXmlStreamReader xmlReader(xmlData); - - bool isEnabled = false; - std::string currentPatchName; - - auto* param_sfo = Common::Singleton::Instance(); - auto app_version = param_sfo->GetString("APP_VER").value_or("Unknown version"); - bool versionMatches = true; - - while (!xmlReader.atEnd()) { - xmlReader.readNext(); - - if (xmlReader.isStartElement()) { - QJsonArray patchLines; - if (xmlReader.name() == QStringLiteral("Metadata")) { - QString name = xmlReader.attributes().value("Name").toString(); - currentPatchName = name.toStdString(); - - QString appVer = xmlReader.attributes().value("AppVer").toString(); - - // Check and update the isEnabled attribute - isEnabled = false; - for (const QXmlStreamAttribute& attr : xmlReader.attributes()) { - if (attr.name() == QStringLiteral("isEnabled")) { - isEnabled = (attr.value().toString() == "true"); - } - } - versionMatches = (appVer.toStdString() == app_version); - - } else if (xmlReader.name() == QStringLiteral("PatchList")) { - QJsonArray linesArray; - while (!xmlReader.atEnd() && - !(xmlReader.tokenType() == QXmlStreamReader::EndElement && - xmlReader.name() == QStringLiteral("PatchList"))) { - xmlReader.readNext(); - if (xmlReader.tokenType() == QXmlStreamReader::StartElement && - xmlReader.name() == QStringLiteral("Line")) { - QXmlStreamAttributes attributes = xmlReader.attributes(); - QJsonObject lineObject; - lineObject["Type"] = attributes.value("Type").toString(); - lineObject["Address"] = attributes.value("Address").toString(); - lineObject["Value"] = attributes.value("Value").toString(); - lineObject["Offset"] = attributes.value("Offset").toString(); - if (lineObject["Type"].toString() == "mask_jump32") { - lineObject["Target"] = attributes.value("Target").toString(); - lineObject["Size"] = attributes.value("Size").toString(); - } - linesArray.append(lineObject); - } - } - - patchLines = linesArray; - if (isEnabled) { - foreach (const QJsonValue& value, patchLines) { - QJsonObject lineObject = value.toObject(); - QString type = lineObject["Type"].toString(); - - if ((type != "mask" && type != "mask_jump32") && !versionMatches) - continue; - - QString address = lineObject["Address"].toString(); - QString patchValue = lineObject["Value"].toString(); - QString maskOffsetStr = lineObject["Offset"].toString(); - - QString targetStr; - QString sizeStr; - + std::string address = patchLineIt->attribute("Address").value(); + std::string patchValue = patchLineIt->attribute("Value").value(); + std::string maskOffsetStr = patchLineIt->attribute("Offset").value(); + std::string targetStr = ""; + std::string sizeStr = ""; if (type == "mask_jump32") { - targetStr = lineObject["Target"].toString(); - sizeStr = lineObject["Size"].toString(); + targetStr = patchLineIt->attribute("Target").value(); + sizeStr = patchLineIt->attribute("Size").value(); } else { - patchValue = QString::fromStdString(convertValueToHex( - type.toStdString(), patchValue.toStdString())); + patchValue = convertValueToHex(type, patchValue); } bool littleEndian = false; - if (type == "bytes16" || type == "bytes32" || type == "bytes64") + if (type == "bytes16" || type == "bytes32" || type == "bytes64") { littleEndian = true; + } MemoryPatcher::PatchMask patchMask = MemoryPatcher::PatchMask::None; int maskOffsetValue = 0; @@ -350,28 +174,53 @@ void OnGameLoaded() { patchMask = MemoryPatcher::PatchMask::Mask_Jump32; if ((type == "mask" || type == "mask_jump32") && - !maskOffsetStr.toStdString().empty()) { - maskOffsetValue = std::stoi(maskOffsetStr.toStdString(), 0, 10); + !maskOffsetStr.empty()) { + maskOffsetValue = std::stoi(maskOffsetStr, 0, 10); } - MemoryPatcher::PatchMemory( - currentPatchName, address.toStdString(), patchValue.toStdString(), - targetStr.toStdString(), sizeStr.toStdString(), false, littleEndian, - patchMask, maskOffsetValue); + MemoryPatcher::PatchMemory(currentPatchName, address, patchValue, + targetStr, sizeStr, false, littleEndian, + patchMask, maskOffsetValue); } } } } } - - if (xmlReader.hasError()) { - LOG_ERROR(Loader, "Failed to parse XML for {}", g_game_serial); - } else { - LOG_INFO(Loader, "Patches loaded successfully, repository: {}", folder.toStdString()); - } - ApplyPendingPatches(); + } else { + LOG_ERROR(Loader, "Could not parse patch XML: {}", result.description()); } -#endif +} + +void OnGameLoaded() { + std::filesystem::path patch_dir = Common::FS::GetUserPath(Common::FS::PathType::PatchesDir); + if (!patch_file.empty()) { + + auto file_path = (patch_dir / patch_file).native(); + if (std::filesystem::exists(patch_file)) { + ApplyPatchesFromXML(patch_file); + } else { + ApplyPatchesFromXML(file_path); + } + } else if (Config::getLoadAutoPatches()) { + for (auto const& repo : std::filesystem::directory_iterator(patch_dir)) { + if (!repo.is_directory()) { + continue; + } + std::ifstream json_file{repo.path() / "files.json"}; + nlohmann::json available_patches = nlohmann::json::parse(json_file); + std::filesystem::path game_patch_file; + for (auto const& [filename, serials] : available_patches.items()) { + if (std::find(serials.begin(), serials.end(), g_game_serial) != serials.end()) { + game_patch_file = repo.path() / filename; + break; + } + } + if (std::filesystem::exists(game_patch_file)) { + ApplyPatchesFromXML(game_patch_file); + } + } + } + ApplyPendingPatches(); } void AddPatchToQueue(patchInfo patchToAdd) { diff --git a/src/common/memory_patcher.h b/src/common/memory_patcher.h index 93306f540..5a67beec5 100644 --- a/src/common/memory_patcher.h +++ b/src/common/memory_patcher.h @@ -17,7 +17,7 @@ namespace MemoryPatcher { extern EXPORT uintptr_t g_eboot_address; extern uint64_t g_eboot_image_size; extern std::string g_game_serial; -extern std::string patchFile; +extern std::string patch_file; enum PatchMask : uint8_t { None, diff --git a/src/common/path_util.cpp b/src/common/path_util.cpp index f368980bf..bd0aff040 100644 --- a/src/common/path_util.cpp +++ b/src/common/path_util.cpp @@ -25,10 +25,6 @@ #endif #endif -#ifdef ENABLE_QT_GUI -#include -#endif - namespace Common::FS { namespace fs = std::filesystem; @@ -88,13 +84,6 @@ static std::optional GetBundleParentDirectory() { #endif static auto UserPaths = [] { -#if defined(__APPLE__) && defined(ENABLE_QT_GUI) - // Set the current path to the directory containing the app bundle. - if (const auto bundle_dir = GetBundleParentDirectory()) { - std::filesystem::current_path(*bundle_dir); - } -#endif - // Try the portable user directory first. auto user_dir = std::filesystem::current_path() / PORTABLE_DIR; if (!std::filesystem::exists(user_dir)) { @@ -229,22 +218,4 @@ std::optional FindGameByID(const fs::path& dir, const std::string& gam return std::nullopt; } -#ifdef ENABLE_QT_GUI -void PathToQString(QString& result, const std::filesystem::path& path) { -#ifdef _WIN32 - result = QString::fromStdWString(path.wstring()); -#else - result = QString::fromStdString(path.string()); -#endif -} - -std::filesystem::path PathFromQString(const QString& path) { -#ifdef _WIN32 - return std::filesystem::path(path.toStdWString()); -#else - return std::filesystem::path(path.toStdString()); -#endif -} -#endif - } // namespace Common::FS diff --git a/src/common/path_util.h b/src/common/path_util.h index af40b3974..0a0234eba 100644 --- a/src/common/path_util.h +++ b/src/common/path_util.h @@ -7,10 +7,6 @@ #include #include -#ifdef ENABLE_QT_GUI -class QString; // to avoid including in this header -#endif - namespace Common::FS { enum class PathType { @@ -99,25 +95,6 @@ constexpr auto LOG_FILE = "shad_log.txt"; */ void SetUserPath(PathType user_path, const std::filesystem::path& new_path); -#ifdef ENABLE_QT_GUI -/** - * Converts an std::filesystem::path to a QString. - * The native underlying string of a path is wstring on Windows and string on POSIX. - * - * @param result The resulting QString - * @param path The path to convert - */ -void PathToQString(QString& result, const std::filesystem::path& path); - -/** - * Converts a QString to an std::filesystem::path. - * The native underlying string of a path is wstring on Windows and string on POSIX. - * - * @param path The path to convert - */ -[[nodiscard]] std::filesystem::path PathFromQString(const QString& path); -#endif - /** * Recursively searches for a game directory by its ID. * Limits search depth to prevent excessive filesystem traversal. diff --git a/src/core/ipc/ipc.cpp b/src/core/ipc/ipc.cpp index da5e0d667..0f416982d 100644 --- a/src/core/ipc/ipc.cpp +++ b/src/core/ipc/ipc.cpp @@ -70,6 +70,8 @@ void IPC::Init() { return; } + Config::setLoadAutoPatches(false); + input_thread = std::jthread([this] { Common::SetCurrentThreadName("IPC Read thread"); this->InputLoop(); diff --git a/src/emulator.cpp b/src/emulator.cpp index 625027c11..f9e1f7959 100644 --- a/src/emulator.cpp +++ b/src/emulator.cpp @@ -15,10 +15,6 @@ #include "common/logging/backend.h" #include "common/logging/log.h" #include "core/ipc/ipc.h" -#ifdef ENABLE_QT_GUI -#include -#endif -#include "common/assert.h" #ifdef ENABLE_DISCORD_RPC #include "common/discord_rpc_handler.h" #endif @@ -341,8 +337,6 @@ void Emulator::Run(std::filesystem::path file, std::vector args, } #endif - // Start the timer (Play Time) -#ifdef ENABLE_QT_GUI if (!id.empty()) { start_time = std::chrono::steady_clock::now(); @@ -354,7 +348,6 @@ void Emulator::Run(std::filesystem::path file, std::vector args, } }).detach(); } -#endif args.insert(args.begin(), eboot_name.generic_string()); linker->Execute(args); @@ -364,9 +357,7 @@ void Emulator::Run(std::filesystem::path file, std::vector args, window->WaitEvent(); } -#ifdef ENABLE_QT_GUI UpdatePlayTime(id); -#endif std::quick_exit(0); } @@ -389,9 +380,9 @@ void Emulator::Restart(std::filesystem::path eboot_path, args.push_back("--ignore-game-patch"); } - if (!MemoryPatcher::patchFile.empty()) { + if (!MemoryPatcher::patch_file.empty()) { args.push_back("--patch"); - args.push_back(MemoryPatcher::patchFile); + args.push_back(MemoryPatcher::patch_file); } args.push_back("--wait-for-pid"); diff --git a/src/main.cpp b/src/main.cpp index 4ba094314..32b583e10 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -86,13 +86,14 @@ int main(int argc, char* argv[]) { {"-p", [&](int& i) { if (i + 1 < argc) { - MemoryPatcher::patchFile = argv[++i]; + MemoryPatcher::patch_file = argv[++i]; } else { std::cerr << "Error: Missing argument for -p/--patch\n"; exit(1); } }}, {"--patch", [&](int& i) { arg_map["-p"](i); }}, + {"-i", [&](int&) { Core::FileSys::MntPoints::ignore_game_patches = true; }}, {"--ignore-game-patch", [&](int& i) { arg_map["-i"](i); }}, {"-f", diff --git a/src/qt_gui/about_dialog.cpp b/src/qt_gui/about_dialog.cpp deleted file mode 100644 index 627a0c052..000000000 --- a/src/qt_gui/about_dialog.cpp +++ /dev/null @@ -1,195 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include -#include -#include -#include -#include "about_dialog.h" -#include "main_window_themes.h" -#include "ui_about_dialog.h" - -AboutDialog::AboutDialog(std::shared_ptr gui_settings, QWidget* parent) - : QDialog(parent), ui(new Ui::AboutDialog), m_gui_settings(std::move(gui_settings)) { - ui->setupUi(this); - preloadImages(); - - ui->image_1->setAttribute(Qt::WA_Hover, true); - ui->image_2->setAttribute(Qt::WA_Hover, true); - ui->image_3->setAttribute(Qt::WA_Hover, true); - ui->image_4->setAttribute(Qt::WA_Hover, true); - ui->image_5->setAttribute(Qt::WA_Hover, true); - - ui->image_1->installEventFilter(this); - ui->image_2->installEventFilter(this); - ui->image_3->installEventFilter(this); - ui->image_4->installEventFilter(this); - ui->image_5->installEventFilter(this); -} - -AboutDialog::~AboutDialog() { - delete ui; -} - -void AboutDialog::preloadImages() { - originalImages[0] = ui->image_1->pixmap().copy(); - originalImages[1] = ui->image_2->pixmap().copy(); - originalImages[2] = ui->image_3->pixmap().copy(); - originalImages[3] = ui->image_4->pixmap().copy(); - originalImages[4] = ui->image_5->pixmap().copy(); - - for (int i = 0; i < 5; ++i) { - QImage image = originalImages[i].toImage(); - for (int y = 0; y < image.height(); ++y) { - for (int x = 0; x < image.width(); ++x) { - QColor color = image.pixelColor(x, y); - color.setRed(255 - color.red()); - color.setGreen(255 - color.green()); - color.setBlue(255 - color.blue()); - image.setPixelColor(x, y, color); - } - } - invertedImages[i] = QPixmap::fromImage(image); - } - updateImagesForCurrentTheme(); -} - -void AboutDialog::updateImagesForCurrentTheme() { - Theme currentTheme = static_cast(m_gui_settings->GetValue(gui::gen_theme).toInt()); - bool isDarkTheme = (currentTheme == Theme::Dark || currentTheme == Theme::Green || - currentTheme == Theme::Blue || currentTheme == Theme::Violet); - if (isDarkTheme) { - ui->image_1->setPixmap(invertedImages[0]); - ui->image_2->setPixmap(invertedImages[1]); - ui->image_3->setPixmap(invertedImages[2]); - ui->image_4->setPixmap(invertedImages[3]); - ui->image_5->setPixmap(invertedImages[4]); - } else { - ui->image_1->setPixmap(originalImages[0]); - ui->image_2->setPixmap(originalImages[1]); - ui->image_3->setPixmap(originalImages[2]); - ui->image_4->setPixmap(originalImages[3]); - ui->image_5->setPixmap(originalImages[4]); - } -} - -bool AboutDialog::eventFilter(QObject* obj, QEvent* event) { - if (event->type() == QEvent::Enter) { - if (obj == ui->image_1) { - if (isDarkTheme()) { - ui->image_1->setPixmap(originalImages[0]); - } else { - ui->image_1->setPixmap(invertedImages[0]); - } - applyHoverEffect(ui->image_1); - } else if (obj == ui->image_2) { - if (isDarkTheme()) { - ui->image_2->setPixmap(originalImages[1]); - } else { - ui->image_2->setPixmap(invertedImages[1]); - } - applyHoverEffect(ui->image_2); - } else if (obj == ui->image_3) { - if (isDarkTheme()) { - ui->image_3->setPixmap(originalImages[2]); - } else { - ui->image_3->setPixmap(invertedImages[2]); - } - applyHoverEffect(ui->image_3); - } else if (obj == ui->image_4) { - if (isDarkTheme()) { - ui->image_4->setPixmap(originalImages[3]); - } else { - ui->image_4->setPixmap(invertedImages[3]); - } - applyHoverEffect(ui->image_4); - } else if (obj == ui->image_5) { - if (isDarkTheme()) { - ui->image_5->setPixmap(originalImages[4]); - } else { - ui->image_5->setPixmap(invertedImages[4]); - } - applyHoverEffect(ui->image_5); - } - } else if (event->type() == QEvent::Leave) { - if (obj == ui->image_1) { - if (isDarkTheme()) { - ui->image_1->setPixmap(invertedImages[0]); - } else { - ui->image_1->setPixmap(originalImages[0]); - } - removeHoverEffect(ui->image_1); - } else if (obj == ui->image_2) { - if (isDarkTheme()) { - ui->image_2->setPixmap(invertedImages[1]); - } else { - ui->image_2->setPixmap(originalImages[1]); - } - removeHoverEffect(ui->image_2); - } else if (obj == ui->image_3) { - if (isDarkTheme()) { - ui->image_3->setPixmap(invertedImages[2]); - } else { - ui->image_3->setPixmap(originalImages[2]); - } - removeHoverEffect(ui->image_3); - } else if (obj == ui->image_4) { - if (isDarkTheme()) { - ui->image_4->setPixmap(invertedImages[3]); - } else { - ui->image_4->setPixmap(originalImages[3]); - } - removeHoverEffect(ui->image_4); - } else if (obj == ui->image_5) { - if (isDarkTheme()) { - ui->image_5->setPixmap(invertedImages[4]); - } else { - ui->image_5->setPixmap(originalImages[4]); - } - removeHoverEffect(ui->image_5); - } - } else if (event->type() == QEvent::MouseButtonPress) { - if (obj == ui->image_1) { - QDesktopServices::openUrl(QUrl("https://github.com/shadps4-emu/shadPS4")); - } else if (obj == ui->image_2) { - QDesktopServices::openUrl(QUrl("https://discord.gg/bFJxfftGW6")); - } else if (obj == ui->image_3) { - QDesktopServices::openUrl(QUrl("https://www.youtube.com/@shadPS4/videos")); - } else if (obj == ui->image_4) { - QDesktopServices::openUrl(QUrl("https://ko-fi.com/shadps4")); - } else if (obj == ui->image_5) { - QDesktopServices::openUrl(QUrl("https://shadps4.net")); - } - return true; - } - return QDialog::eventFilter(obj, event); -} - -void AboutDialog::applyHoverEffect(QLabel* label) { - QColor shadowColor = isDarkTheme() ? QColor(0, 0, 0) : QColor(169, 169, 169); - QGraphicsDropShadowEffect* shadow = new QGraphicsDropShadowEffect; - shadow->setBlurRadius(5); - shadow->setXOffset(2); - shadow->setYOffset(2); - shadow->setColor(shadowColor); - label->setGraphicsEffect(shadow); -} - -void AboutDialog::removeHoverEffect(QLabel* label) { - QColor shadowColor = isDarkTheme() ? QColor(50, 50, 50) : QColor(169, 169, 169); - QGraphicsDropShadowEffect* shadow = new QGraphicsDropShadowEffect; - shadow->setBlurRadius(3); - shadow->setXOffset(0); - shadow->setYOffset(0); - shadow->setColor(shadowColor); - label->setGraphicsEffect(shadow); -} - -bool AboutDialog::isDarkTheme() const { - Theme currentTheme = static_cast(m_gui_settings->GetValue(gui::gen_theme).toInt()); - return currentTheme == Theme::Dark || currentTheme == Theme::Green || - currentTheme == Theme::Blue || currentTheme == Theme::Violet; -} diff --git a/src/qt_gui/about_dialog.h b/src/qt_gui/about_dialog.h deleted file mode 100644 index b74cdfd1a..000000000 --- a/src/qt_gui/about_dialog.h +++ /dev/null @@ -1,38 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include -#include -#include -#include "gui_settings.h" - -namespace Ui { -class AboutDialog; -} - -class AboutDialog : public QDialog { - Q_OBJECT - -public: - explicit AboutDialog(std::shared_ptr gui_settings, QWidget* parent = nullptr); - ~AboutDialog(); - bool eventFilter(QObject* obj, QEvent* event); - -private: - Ui::AboutDialog* ui; - - void preloadImages(); - void updateImagesForCurrentTheme(); - void applyHoverEffect(QLabel* label); - void removeHoverEffect(QLabel* label); - - bool isDarkTheme() const; - - QPixmap originalImages[5]; - QPixmap invertedImages[5]; - std::shared_ptr m_gui_settings; -}; diff --git a/src/qt_gui/about_dialog.ui b/src/qt_gui/about_dialog.ui deleted file mode 100644 index 0e9ef222c..000000000 --- a/src/qt_gui/about_dialog.ui +++ /dev/null @@ -1,233 +0,0 @@ - - - - AboutDialog - - - - 0 - 0 - 780 - 310 - - - - About shadPS4 - - - - :/images/shadps4.ico:/images/shadps4.ico - - - - - 15 - 15 - 271 - 271 - - - - QFrame::NoFrame - - - - - - :/images/shadps4.png - - - true - - - - - - 310 - 15 - 171 - 41 - - - - - 24 - true - - - - shadPS4 - - - - - - 310 - 60 - 451 - 70 - - - - - 14 - - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - - - true - - - - - - 310 - 130 - 451 - 70 - - - - - 14 - - - - This software should not be used to play games you have not legally obtained. - - - true - - - - - - 310 - 210 - 80 - 80 - - - - ArrowCursor - - - QFrame::NoFrame - - - - - - :/images/github.png - - - true - - - - - - 400 - 210 - 80 - 80 - - - - ArrowCursor - - - QFrame::NoFrame - - - - - - :/images/discord.png - - - true - - - - - - 490 - 210 - 80 - 80 - - - - ArrowCursor - - - QFrame::NoFrame - - - - - - :/images/youtube.png - - - true - - - - - - 580 - 210 - 80 - 80 - - - - ArrowCursor - - - QFrame::NoFrame - - - - - - :/images/ko-fi.png - - - true - - - - - - 670 - 210 - 80 - 80 - - - - ArrowCursor - - - QFrame::NoFrame - - - - - - :/images/website.png - - - true - - - - - - diff --git a/src/qt_gui/background_music_player.cpp b/src/qt_gui/background_music_player.cpp deleted file mode 100644 index e2b7177b3..000000000 --- a/src/qt_gui/background_music_player.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "background_music_player.h" - -BackgroundMusicPlayer::BackgroundMusicPlayer(QObject* parent) : QObject(parent) { - m_mediaPlayer = new QMediaPlayer(this); - m_audioOutput = new QAudioOutput(this); - m_mediaPlayer->setAudioOutput(m_audioOutput); -} - -void BackgroundMusicPlayer::setVolume(int volume) { - float linearVolume = QAudio::convertVolume(volume / 100.0f, QAudio::LogarithmicVolumeScale, - QAudio::LinearVolumeScale); - m_audioOutput->setVolume(linearVolume); -} - -void BackgroundMusicPlayer::playMusic(const QString& snd0path, bool loops) { - if (snd0path.isEmpty()) { - stopMusic(); - return; - } - const auto newMusic = QUrl::fromLocalFile(snd0path); - if (m_mediaPlayer->playbackState() == QMediaPlayer::PlayingState && - m_currentMusic == newMusic) { - // already playing the correct music - return; - } - - if (loops) { - m_mediaPlayer->setLoops(QMediaPlayer::Infinite); - } else { - m_mediaPlayer->setLoops(1); - } - - m_currentMusic = newMusic; - m_mediaPlayer->setSource(newMusic); - m_mediaPlayer->play(); -} - -void BackgroundMusicPlayer::stopMusic() { - m_mediaPlayer->stop(); - m_mediaPlayer->setSource(QUrl("")); -} diff --git a/src/qt_gui/background_music_player.h b/src/qt_gui/background_music_player.h deleted file mode 100644 index 078710a01..000000000 --- a/src/qt_gui/background_music_player.h +++ /dev/null @@ -1,29 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include - -class BackgroundMusicPlayer : public QObject { - Q_OBJECT - -public: - static BackgroundMusicPlayer& getInstance() { - static BackgroundMusicPlayer instance; - return instance; - } - - void setVolume(int volume); - void playMusic(const QString& snd0path, bool loops = true); - void stopMusic(); - -private: - BackgroundMusicPlayer(QObject* parent = nullptr); - - QMediaPlayer* m_mediaPlayer; - QAudioOutput* m_audioOutput; - QUrl m_currentMusic; -}; diff --git a/src/qt_gui/cheats_patches.cpp b/src/qt_gui/cheats_patches.cpp deleted file mode 100644 index 1a2e3e19f..000000000 --- a/src/qt_gui/cheats_patches.cpp +++ /dev/null @@ -1,1351 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "cheats_patches.h" -#include "common/config.h" -#include "common/logging/log.h" -#include "common/memory_patcher.h" -#include "common/path_util.h" -#include "core/module.h" - -CheatsPatches::CheatsPatches(const QString& gameName, const QString& gameSerial, - const QString& gameVersion, const QString& gameSize, - const QPixmap& gameImage, QWidget* parent) - : QWidget(parent), m_gameName(gameName), m_gameSerial(gameSerial), m_gameVersion(gameVersion), - m_gameSize(gameSize), m_gameImage(gameImage), manager(new QNetworkAccessManager(this)) { - setupUI(); - resize(500, 400); - setWindowTitle(tr("Cheats / Patches for ") + m_gameName); -} - -CheatsPatches::~CheatsPatches() {} - -void CheatsPatches::setupUI() { - - // clang-format off - defaultTextEdit_MSG = tr("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").replace("\\n", "\n")+"https://github.com/shadps4-emu/ps4_cheats"; - CheatsNotFound_MSG = tr("No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game."); - CheatsDownloadedSuccessfully_MSG = tr("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."); - DownloadComplete_MSG = tr("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."); - // clang-format on - - QString CHEATS_DIR_QString; - Common::FS::PathToQString(CHEATS_DIR_QString, - Common::FS::GetUserPath(Common::FS::PathType::CheatsDir)); - QString PATCHS_DIR_QString; - Common::FS::PathToQString(PATCHS_DIR_QString, - Common::FS::GetUserPath(Common::FS::PathType::PatchesDir)); - QString NameCheatJson = m_gameSerial + "_" + m_gameVersion + ".json"; - m_cheatFilePath = CHEATS_DIR_QString + "/" + NameCheatJson; - - QHBoxLayout* mainLayout = new QHBoxLayout(this); - - // Create the game info group box - QGroupBox* gameInfoGroupBox = new QGroupBox(); - QVBoxLayout* gameInfoLayout = new QVBoxLayout(gameInfoGroupBox); - gameInfoLayout->setAlignment(Qt::AlignTop); - - QLabel* gameImageLabel = new QLabel(); - if (!m_gameImage.isNull()) { - gameImageLabel->setPixmap( - m_gameImage.scaled(275, 275, Qt::KeepAspectRatio, Qt::SmoothTransformation)); - } else { - gameImageLabel->setText(tr("No Image Available")); - } - gameImageLabel->setAlignment(Qt::AlignCenter); - gameInfoLayout->addWidget(gameImageLabel, 0, Qt::AlignCenter); - - QLabel* gameNameLabel = new QLabel(m_gameName); - gameNameLabel->setAlignment(Qt::AlignLeft); - gameNameLabel->setWordWrap(true); - gameInfoLayout->addWidget(gameNameLabel); - - QLabel* gameSerialLabel = new QLabel(tr("Serial: ") + m_gameSerial); - gameSerialLabel->setAlignment(Qt::AlignLeft); - gameInfoLayout->addWidget(gameSerialLabel); - - QLabel* gameVersionLabel = new QLabel(tr("Version: ") + m_gameVersion); - gameVersionLabel->setAlignment(Qt::AlignLeft); - gameInfoLayout->addWidget(gameVersionLabel); - - if (Config::GetLoadGameSizeEnabled()) { - QLabel* gameSizeLabel = new QLabel(tr("Size: ") + m_gameSize); - gameSizeLabel->setAlignment(Qt::AlignLeft); - gameInfoLayout->addWidget(gameSizeLabel); - } - - // Add a text area for instructions and 'Patch' descriptions - instructionsTextEdit = new QTextEdit(); - instructionsTextEdit->setText(defaultTextEdit_MSG); - instructionsTextEdit->setReadOnly(true); - instructionsTextEdit->setFixedHeight(290); - gameInfoLayout->addWidget(instructionsTextEdit); - - // Create the tab widget - QTabWidget* tabWidget = new QTabWidget(); - QWidget* cheatsTab = new QWidget(); - QWidget* patchesTab = new QWidget(); - - // Layouts for the tabs - QVBoxLayout* cheatsLayout = new QVBoxLayout(); - QVBoxLayout* patchesLayout = new QVBoxLayout(); - - // Setup the cheats tab - QGroupBox* cheatsGroupBox = new QGroupBox(); - rightLayout = new QVBoxLayout(cheatsGroupBox); - rightLayout->setAlignment(Qt::AlignTop); - - cheatsGroupBox->setLayout(rightLayout); - QScrollArea* scrollArea = new QScrollArea(); - scrollArea->setWidgetResizable(true); - scrollArea->setWidget(cheatsGroupBox); - scrollArea->setMinimumHeight(490); - cheatsLayout->addWidget(scrollArea); - - // QListView - listView_selectFile = new QListView(); - listView_selectFile->setSelectionMode(QAbstractItemView::SingleSelection); - listView_selectFile->setEditTriggers(QAbstractItemView::NoEditTriggers); - - // Add QListView to layout - QVBoxLayout* fileListLayout = new QVBoxLayout(); - fileListLayout->addWidget(new QLabel(tr("Select Cheat File:"))); - fileListLayout->addWidget(listView_selectFile); - cheatsLayout->addLayout(fileListLayout, 2); - - // Call the method to fill the list of cheat files - populateFileListCheats(); - - QLabel* repositoryLabel = new QLabel(tr("Repository:")); - repositoryLabel->setAlignment(Qt::AlignLeft); - repositoryLabel->setAlignment(Qt::AlignVCenter); - - // Add a combo box and a download button - QHBoxLayout* controlLayout = new QHBoxLayout(); - controlLayout->addWidget(repositoryLabel); - controlLayout->setAlignment(Qt::AlignLeft); - QComboBox* downloadComboBox = new QComboBox(); - - downloadComboBox->addItem("GoldHEN", "GoldHEN"); - downloadComboBox->addItem("shadPS4", "shadPS4"); - - controlLayout->addWidget(downloadComboBox); - - QPushButton* downloadButton = new QPushButton(tr("Download Cheats")); - connect(downloadButton, &QPushButton::clicked, [this, downloadComboBox]() { - QString source = downloadComboBox->currentData().toString(); - downloadCheats(source, m_gameSerial, m_gameVersion, true); - }); - - QPushButton* deleteCheatButton = new QPushButton(tr("Delete File")); - connect(deleteCheatButton, &QPushButton::clicked, [this, CHEATS_DIR_QString]() { - QStringListModel* model = qobject_cast(listView_selectFile->model()); - if (!model) { - return; - } - QItemSelectionModel* selectionModel = listView_selectFile->selectionModel(); - if (!selectionModel) { - return; - } - QModelIndexList selectedIndexes = selectionModel->selectedIndexes(); - if (selectedIndexes.isEmpty()) { - QMessageBox::warning( - this, tr("Delete File"), - tr("No files selected.") + "\n" + - tr("You can delete the cheats you don't want after downloading them.")); - return; - } - QModelIndex selectedIndex = selectedIndexes.first(); - QString selectedFileName = model->data(selectedIndex).toString(); - - int ret = QMessageBox::warning( - this, tr("Delete File"), - QString(tr("Do you want to delete the selected file?\\n%1").replace("\\n", "\n")) - .arg(selectedFileName), - QMessageBox::Yes | QMessageBox::No); - - if (ret == QMessageBox::Yes) { - QString filePath = CHEATS_DIR_QString + "/" + selectedFileName; - QFile::remove(filePath); - populateFileListCheats(); - } - }); - - QPushButton* closeButton = new QPushButton(tr("Close")); - connect(closeButton, &QPushButton::clicked, [this]() { QWidget::close(); }); - - controlLayout->addWidget(downloadButton); - controlLayout->addWidget(deleteCheatButton); - controlLayout->addWidget(closeButton); - - cheatsLayout->addLayout(controlLayout); - cheatsTab->setLayout(cheatsLayout); - - // Setup the patches tab - QGroupBox* patchesGroupBox = new QGroupBox(); - patchesGroupBoxLayout = new QVBoxLayout(patchesGroupBox); - patchesGroupBoxLayout->setAlignment(Qt::AlignTop); - patchesGroupBox->setLayout(patchesGroupBoxLayout); - - QScrollArea* patchesScrollArea = new QScrollArea(); - patchesScrollArea->setWidgetResizable(true); - patchesScrollArea->setWidget(patchesGroupBox); - patchesScrollArea->setMinimumHeight(490); - patchesLayout->addWidget(patchesScrollArea); - - // List of files in patchesListView - patchesListView = new QListView(); - patchesListView->setSelectionMode(QAbstractItemView::SingleSelection); - patchesListView->setEditTriggers(QAbstractItemView::NoEditTriggers); - - // Add new label "Select Patch File:" above the QListView - QVBoxLayout* patchFileListLayout = new QVBoxLayout(); - patchFileListLayout->addWidget(new QLabel(tr("Select Patch File:"))); - patchFileListLayout->addWidget(patchesListView); - patchesLayout->addLayout(patchFileListLayout, 2); - - QStringListModel* patchesModel = new QStringListModel(); - patchesListView->setModel(patchesModel); - - QHBoxLayout* patchesControlLayout = new QHBoxLayout(); - - QLabel* patchesRepositoryLabel = new QLabel(tr("Repository:")); - patchesRepositoryLabel->setAlignment(Qt::AlignLeft); - patchesRepositoryLabel->setAlignment(Qt::AlignVCenter); - patchesControlLayout->addWidget(patchesRepositoryLabel); - - // Add the combo box with options - patchesComboBox = new QComboBox(); - patchesComboBox->addItem("shadPS4", "shadPS4"); - patchesComboBox->addItem("GoldHEN", "GoldHEN"); - patchesControlLayout->addWidget(patchesComboBox); - - QPushButton* patchesButton = new QPushButton(tr("Download Patches")); - connect(patchesButton, &QPushButton::clicked, [this]() { - QString selectedOption = patchesComboBox->currentData().toString(); - downloadPatches(selectedOption, true); - }); - patchesControlLayout->addWidget(patchesButton); - - QPushButton* deletePatchButton = new QPushButton(tr("Delete File")); - connect(deletePatchButton, &QPushButton::clicked, [this, PATCHS_DIR_QString]() { - QStringListModel* model = qobject_cast(patchesListView->model()); - if (!model) { - return; - } - QItemSelectionModel* selectionModel = patchesListView->selectionModel(); - if (!selectionModel) { - return; - } - QModelIndexList selectedIndexes = selectionModel->selectedIndexes(); - if (selectedIndexes.isEmpty()) { - QMessageBox::warning(this, tr("Delete File"), tr("No files selected.")); - return; - } - QModelIndex selectedIndex = selectedIndexes.first(); - QString selectedFileName = model->data(selectedIndex).toString(); - - int ret = QMessageBox::warning( - this, tr("Delete File"), - QString(tr("Do you want to delete the selected file?\\n%1").replace("\\n", "\n")) - .arg(selectedFileName), - QMessageBox::Yes | QMessageBox::No); - - if (ret == QMessageBox::Yes) { - QString fileName = selectedFileName.split('|').first().trimmed(); - QString directoryName = selectedFileName.split('|').last().trimmed(); - QString filePath = PATCHS_DIR_QString + "/" + directoryName + "/" + fileName; - - QFile::remove(filePath); - createFilesJson(directoryName); - populateFileListPatches(); - } - }); - - QPushButton* saveButton = new QPushButton(tr("Save")); - connect(saveButton, &QPushButton::clicked, this, &CheatsPatches::onSaveButtonClicked); - - patchesControlLayout->addWidget(deletePatchButton); - patchesControlLayout->addWidget(saveButton); - - patchesLayout->addLayout(patchesControlLayout); - patchesTab->setLayout(patchesLayout); - - tabWidget->addTab(cheatsTab, tr("Cheats")); - tabWidget->addTab(patchesTab, tr("Patches")); - - connect(tabWidget, &QTabWidget::currentChanged, this, [this](int index) { - if (index == 1) { - populateFileListPatches(); - } - }); - - mainLayout->addWidget(gameInfoGroupBox, 1); - mainLayout->addWidget(tabWidget, 3); - - manager = new QNetworkAccessManager(this); - - setLayout(mainLayout); -} - -void CheatsPatches::onSaveButtonClicked() { - // Get the name of the selected folder in the patchesListView - QString selectedPatchName; - QModelIndexList selectedIndexes = patchesListView->selectionModel()->selectedIndexes(); - if (selectedIndexes.isEmpty()) { - QMessageBox::warning(this, tr("Error"), tr("No patch selected.")); - return; - } - selectedPatchName = patchesListView->model()->data(selectedIndexes.first()).toString(); - int separatorIndex = selectedPatchName.indexOf(" | "); - selectedPatchName = selectedPatchName.mid(separatorIndex + 3); - - QString patchDir; - Common::FS::PathToQString(patchDir, Common::FS::GetUserPath(Common::FS::PathType::PatchesDir)); - patchDir += "/" + selectedPatchName; - - QString filesJsonPath = patchDir + "/files.json"; - QFile jsonFile(filesJsonPath); - if (!jsonFile.open(QIODevice::ReadOnly)) { - QMessageBox::critical(this, tr("Error"), tr("Unable to open files.json for reading.")); - return; - } - - QByteArray jsonData = jsonFile.readAll(); - jsonFile.close(); - - QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData); - QJsonObject jsonObject = jsonDoc.object(); - - QString selectedFileName; - QString serial = m_gameSerial; - - for (auto it = jsonObject.constBegin(); it != jsonObject.constEnd(); ++it) { - QString filePath = it.key(); - QJsonArray idsArray = it.value().toArray(); - - if (idsArray.contains(QJsonValue(serial))) { - selectedFileName = filePath; - break; - } - } - - if (selectedFileName.isEmpty()) { - QMessageBox::critical(this, tr("Error"), tr("No patch file found for the current serial.")); - return; - } - - QString filePath = patchDir + "/" + selectedFileName; - QFile file(filePath); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - QMessageBox::critical(this, tr("Error"), tr("Unable to open the file for reading.")); - return; - } - - QByteArray xmlData = file.readAll(); - file.close(); - - QString newXmlData; - QXmlStreamWriter xmlWriter(&newXmlData); - xmlWriter.setAutoFormatting(true); - xmlWriter.writeStartDocument(); - - QXmlStreamReader xmlReader(xmlData); - - while (!xmlReader.atEnd()) { - xmlReader.readNext(); - - if (xmlReader.isStartElement()) { - if (xmlReader.name() == QStringLiteral("Metadata")) { - xmlWriter.writeStartElement(xmlReader.name().toString()); - - QString name = xmlReader.attributes().value("Name").toString(); - QString version = xmlReader.attributes().value("AppVer").toString(); - - bool versionMatch = version == m_gameVersion; - bool isEnabled = false; - bool foundPatchInfo = false; - - // Check and update the isEnabled attribute - for (const QXmlStreamAttribute& attr : xmlReader.attributes()) { - if (attr.name() == QStringLiteral("isEnabled")) - continue; - xmlWriter.writeAttribute(attr.name().toString(), attr.value().toString()); - } - - auto it = m_patchInfos.find(name); - if (it != m_patchInfos.end()) { - QCheckBox* checkBox = findCheckBoxByName(it->name); - if (checkBox) { - foundPatchInfo = true; - isEnabled = checkBox->isChecked(); - } - } - if (!foundPatchInfo) { - auto maskIt = m_patchInfos.find(name + " (any version)"); - if (maskIt != m_patchInfos.end()) { - QCheckBox* checkBox = findCheckBoxByName(maskIt->name); - if (checkBox) { - versionMatch = true; - foundPatchInfo = true; - isEnabled = checkBox->isChecked(); - } - } - } - if (foundPatchInfo) { - xmlWriter.writeAttribute("isEnabled", - (isEnabled && versionMatch) ? "true" : "false"); - } - } else { - xmlWriter.writeStartElement(xmlReader.name().toString()); - for (const QXmlStreamAttribute& attr : xmlReader.attributes()) { - xmlWriter.writeAttribute(attr.name().toString(), attr.value().toString()); - } - } - } else if (xmlReader.isEndElement()) { - xmlWriter.writeEndElement(); - } else if (xmlReader.isCharacters() && !xmlReader.isWhitespace()) { - xmlWriter.writeCharacters(xmlReader.text().toString()); - } - } - - xmlWriter.writeEndDocument(); - - if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { - QMessageBox::critical(this, tr("Error"), tr("Unable to open the file for writing.")); - return; - } - - QTextStream textStream(&file); - textStream << newXmlData; - file.close(); - - if (xmlReader.hasError()) { - QMessageBox::critical(this, tr("Error"), - tr("Failed to parse XML: ") + "\n" + xmlReader.errorString()); - } else { - QMessageBox::information(this, tr("Success"), tr("Options saved successfully.")); - } - - QWidget::close(); -} - -QCheckBox* CheatsPatches::findCheckBoxByName(const QString& name) { - for (int i = 0; i < patchesGroupBoxLayout->count(); ++i) { - QLayoutItem* item = patchesGroupBoxLayout->itemAt(i); - if (item) { - QWidget* widget = item->widget(); - QCheckBox* checkBox = qobject_cast(widget); - if (checkBox) { - const auto patchName = checkBox->property("patchName"); - if (patchName.isValid() && patchName.toString().toStdString().find( - name.toStdString()) != std::string::npos) { - return checkBox; - } - } - } - } - return nullptr; -} - -void CheatsPatches::downloadCheats(const QString& source, const QString& gameSerial, - const QString& gameVersion, const bool showMessageBox) { - QDir dir(Common::FS::GetUserPath(Common::FS::PathType::CheatsDir)); - if (!dir.exists()) { - dir.mkpath("."); - } - - QString url; - if (source == "GoldHEN") { - url = "https://raw.githubusercontent.com/GoldHEN/GoldHEN_Cheat_Repository/main/json.txt"; - } else if (source == "shadPS4") { - url = "https://raw.githubusercontent.com/shadps4-emu/ps4_cheats/main/CHEATS_JSON.txt"; - } else { - QMessageBox::warning(this, tr("Invalid Source"), - QString(tr("The selected source is invalid.") + "\n%1").arg(source)); - return; - } - - QNetworkRequest request(url); - QNetworkReply* reply = manager->get(request); - - connect(reply, &QNetworkReply::finished, [=, this]() { - if (reply->error() == QNetworkReply::NoError) { - QByteArray jsonData = reply->readAll(); - bool foundFiles = false; - - if (source == "GoldHEN" || source == "shadPS4") { - QString textContent(jsonData); - QRegularExpression regex( - QString("%1_%2[^=]*\\.json").arg(gameSerial).arg(gameVersion)); - QRegularExpressionMatchIterator matches = regex.globalMatch(textContent); - QString baseUrl; - - if (source == "GoldHEN") { - baseUrl = "https://raw.githubusercontent.com/GoldHEN/GoldHEN_Cheat_Repository/" - "main/json/"; - } else { - baseUrl = "https://raw.githubusercontent.com/shadps4-emu/ps4_cheats/" - "main/CHEATS/"; - } - - while (matches.hasNext()) { - QRegularExpressionMatch match = matches.next(); - QString fileName = match.captured(0); - - if (!fileName.isEmpty()) { - QString newFileName = fileName; - int dotIndex = newFileName.lastIndexOf('.'); - if (dotIndex != -1) { - - if (source == "GoldHEN") { - newFileName.insert(dotIndex, "_GoldHEN"); - } else { - newFileName.insert(dotIndex, "_shadPS4"); - } - } - QString fileUrl = baseUrl + fileName; - QString localFilePath = dir.filePath(newFileName); - - if (QFile::exists(localFilePath) && showMessageBox) { - QMessageBox::StandardButton reply; - reply = QMessageBox::question( - this, tr("File Exists"), - tr("File already exists. Do you want to replace it?") + "\n" + - newFileName, - QMessageBox::Yes | QMessageBox::No); - if (reply == QMessageBox::No) { - continue; - } - } - QNetworkRequest fileRequest(fileUrl); - QNetworkReply* fileReply = manager->get(fileRequest); - - connect(fileReply, &QNetworkReply::finished, [=, this]() { - if (fileReply->error() == QNetworkReply::NoError) { - QByteArray fileData = fileReply->readAll(); - QFile localFile(localFilePath); - if (localFile.open(QIODevice::WriteOnly)) { - localFile.write(fileData); - localFile.close(); - } else { - QMessageBox::warning( - this, tr("Error"), - QString(tr("Failed to save file:") + "\n%1") - .arg(localFilePath)); - } - } else { - QMessageBox::warning(this, tr("Error"), - QString(tr("Failed to download file:") + - "%1\n\n" + tr("Error") + ":%2") - .arg(fileUrl) - .arg(fileReply->errorString())); - } - fileReply->deleteLater(); - }); - - foundFiles = true; - } - } - if (!foundFiles && showMessageBox) { - QMessageBox::warning(this, tr("Cheats Not Found"), CheatsNotFound_MSG); - } - } - if (foundFiles && showMessageBox) { - QMessageBox::information(this, tr("Cheats Downloaded Successfully"), - CheatsDownloadedSuccessfully_MSG); - populateFileListCheats(); - } - - } else { - if (showMessageBox) { - QMessageBox::warning(this, tr("Cheats Not Found"), CheatsNotFound_MSG); - } - } - reply->deleteLater(); - emit downloadFinished(); - }); - - // connect(reply, &QNetworkReply::errorOccurred, [=](QNetworkReply::NetworkError code) { - // if (showMessageBox) - // QMessageBox::warning(this, "Download Error", - // QString("Error in response: %1").arg(reply->errorString())); - // }); -} - -void CheatsPatches::populateFileListPatches() { - QLayoutItem* item; - while ((item = patchesGroupBoxLayout->takeAt(0)) != nullptr) { - delete item->widget(); - delete item; - } - m_patchInfos.clear(); - - QString patchesDir; - Common::FS::PathToQString(patchesDir, - Common::FS::GetUserPath(Common::FS::PathType::PatchesDir)); - QDir dir(patchesDir); - - QStringList folders = dir.entryList(QDir::Dirs | QDir::NoDotAndDotDot); - QStringList matchingFiles; - QString shadPS4entry = ""; - - foreach (const QString& folder, folders) { - QString folderPath = dir.filePath(folder); - QDir subDir(folderPath); - - QString filesJsonPath = subDir.filePath("files.json"); - QFile file(filesJsonPath); - - if (file.open(QIODevice::ReadOnly)) { - QByteArray fileData = file.readAll(); - file.close(); - - QJsonDocument jsonDoc(QJsonDocument::fromJson(fileData)); - QJsonObject jsonObj = jsonDoc.object(); - - for (auto it = jsonObj.constBegin(); it != jsonObj.constEnd(); ++it) { - QString fileName = it.key(); - QJsonArray serials = it.value().toArray(); - - if (serials.contains(QJsonValue(m_gameSerial))) { - QString fileEntry = fileName + " | " + folder; - if (!matchingFiles.contains(fileEntry)) { - if (folder == "shadPS4") { - shadPS4entry = fileEntry; - } - matchingFiles << fileEntry; - } - } - } - } - } - QStringListModel* model = new QStringListModel(matchingFiles, this); - if (shadPS4entry != "") { - QModelIndexList matches = model->match(model->index(0, 0), Qt::DisplayRole, shadPS4entry, 1, - Qt::MatchExactly | Qt::MatchCaseSensitive); - QModelIndex shadPS4Index = matches.first(); - model->moveRow(QModelIndex(), shadPS4Index.row(), QModelIndex(), 0); - } - patchesListView->setModel(model); - - connect( - patchesListView->selectionModel(), &QItemSelectionModel::selectionChanged, this, [this]() { - QModelIndexList selectedIndexes = patchesListView->selectionModel()->selectedIndexes(); - if (!selectedIndexes.isEmpty()) { - QString selectedText = selectedIndexes.first().data().toString(); - addPatchesToLayout(selectedText); - } - }); - - if (!matchingFiles.isEmpty()) { - QModelIndex firstIndex = model->index(0, 0); - patchesListView->selectionModel()->select(firstIndex, QItemSelectionModel::Select | - QItemSelectionModel::Rows); - patchesListView->setCurrentIndex(firstIndex); - } -} - -void CheatsPatches::downloadPatches(const QString repository, const bool showMessageBox) { - QString url; - if (repository == "shadPS4") { - url = "https://api.github.com/repos/shadps4-emu/ps4_cheats/contents/PATCHES"; - } - if (repository == "GoldHEN") { - url = "https://api.github.com/repos/illusion0001/PS4-PS5-Game-Patch/contents/patches/xml"; - } - QNetworkAccessManager* manager = new QNetworkAccessManager(this); - QNetworkRequest request(url); - request.setRawHeader("Accept", "application/vnd.github.v3+json"); - QNetworkReply* reply = manager->get(request); - - connect(reply, &QNetworkReply::finished, [=, this]() { - if (reply->error() == QNetworkReply::NoError) { - QByteArray jsonData = reply->readAll(); - reply->deleteLater(); - - QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData); - QJsonArray itemsArray = jsonDoc.array(); - - if (itemsArray.isEmpty()) { - if (showMessageBox) { - QMessageBox::warning(this, tr("Error"), - tr("Failed to parse JSON data from HTML.")); - } - return; - } - - QDir dir(Common::FS::GetUserPath(Common::FS::PathType::PatchesDir)); - QString fullPath = dir.filePath(repository); - if (!dir.exists(fullPath)) { - dir.mkpath(fullPath); - } - dir.setPath(fullPath); - - foreach (const QJsonValue& value, itemsArray) { - QJsonObject fileObj = value.toObject(); - QString fileName = fileObj["name"].toString(); - QString filePath = fileObj["path"].toString(); - QString downloadUrl = fileObj["download_url"].toString(); - - if (fileName.endsWith(".xml")) { - QNetworkRequest fileRequest(downloadUrl); - QNetworkReply* fileReply = manager->get(fileRequest); - - connect(fileReply, &QNetworkReply::finished, [=, this]() { - if (fileReply->error() == QNetworkReply::NoError) { - QByteArray fileData = fileReply->readAll(); - QFile localFile(dir.filePath(fileName)); - if (localFile.open(QIODevice::WriteOnly)) { - localFile.write(fileData); - localFile.close(); - } else { - if (showMessageBox) { - QMessageBox::warning( - this, tr("Error"), - QString(tr("Failed to save:") + "\n%1").arg(fileName)); - } - } - } else { - if (showMessageBox) { - QMessageBox::warning( - this, tr("Error"), - QString(tr("Failed to download:") + "\n%1").arg(downloadUrl)); - } - } - fileReply->deleteLater(); - }); - } - } - if (showMessageBox) { - QMessageBox::information(this, tr("Download Complete"), - QString(DownloadComplete_MSG)); - } - // Create the files.json file with the identification of which file to open - createFilesJson(repository); - populateFileListPatches(); - compatibleVersionNotice(repository); - } else { - if (showMessageBox) { - QMessageBox::warning(this, tr("Error"), - QString(tr("Failed to retrieve HTML page.") + "\n%1") - .arg(reply->errorString())); - } - } - emit downloadFinished(); - }); -} - -void CheatsPatches::compatibleVersionNotice(const QString repository) { - QDir patchesDir(Common::FS::GetUserPath(Common::FS::PathType::PatchesDir)); - QDir dir = patchesDir.filePath(repository); - - QStringList xmlFiles = dir.entryList(QStringList() << "*.xml", QDir::Files); - QStringList incompatMessages; - - foreach (const QString& xmlFile, xmlFiles) { - QFile file(dir.filePath(xmlFile)); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - QMessageBox::warning(this, tr("Error"), - QString(tr("Failed to open file:") + "\n%1").arg(xmlFile)); - continue; - } - - QXmlStreamReader xmlReader(&file); - QSet appVersionsSet; - bool foundMatchingID = false; - - while (!xmlReader.atEnd() && !xmlReader.hasError()) { - QXmlStreamReader::TokenType token = xmlReader.readNext(); - if (token == QXmlStreamReader::StartElement) { - if (xmlReader.name() == QStringLiteral("ID")) { - QString id = xmlReader.readElementText(); - if (id == m_gameSerial) { - foundMatchingID = true; - } - } else if (xmlReader.name() == QStringLiteral("Metadata")) { - if (foundMatchingID) { - QString appVer = xmlReader.attributes().value("AppVer").toString(); - if (!appVer.isEmpty()) { - appVersionsSet.insert(appVer); - } - } - } - } - } - - if (xmlReader.hasError()) { - QMessageBox::warning(this, tr("Error"), - QString(tr("XML ERROR:") + "\n%1").arg(xmlReader.errorString())); - } - - if (!foundMatchingID) { - continue; - } - - for (const QString& appVer : appVersionsSet) { - if (appVer == QLatin1String("mask") || appVer == m_gameVersion) { - return; - } - } - - if (!appVersionsSet.isEmpty()) { - QStringList versionsList; - for (const QString& v : appVersionsSet) { - versionsList << v; - } - QString versions = versionsList.join(", "); - QString message = - QString(tr("The game is in version: %1")).arg(m_gameVersion) + "\n" + - QString(tr("The downloaded patch only works on version: %1")).arg(versions) + - QString("\n" + tr("You may need to update your game.")); - incompatMessages << message; - } - } - - if (!incompatMessages.isEmpty()) { - QString finalMsg = incompatMessages.join("\n\n---\n\n"); - QMessageBox::information(this, tr("Incompatibility Notice"), finalMsg); - } -} - -void CheatsPatches::createFilesJson(const QString& repository) { - - QDir dir(Common::FS::GetUserPath(Common::FS::PathType::PatchesDir)); - QString fullPath = dir.filePath(repository); - if (!dir.exists(fullPath)) { - dir.mkpath(fullPath); - } - dir.setPath(fullPath); - - QJsonObject filesObject; - QStringList xmlFiles = dir.entryList(QStringList() << "*.xml", QDir::Files); - - foreach (const QString& xmlFile, xmlFiles) { - QFile file(dir.filePath(xmlFile)); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - QMessageBox::warning(this, tr("Error"), - QString(tr("Failed to open file:") + "\n%1").arg(xmlFile)); - continue; - } - - QXmlStreamReader xmlReader(&file); - QJsonArray titleIdsArray; - - while (!xmlReader.atEnd() && !xmlReader.hasError()) { - QXmlStreamReader::TokenType token = xmlReader.readNext(); - if (token == QXmlStreamReader::StartElement) { - if (xmlReader.name() == QStringLiteral("ID")) { - titleIdsArray.append(xmlReader.readElementText()); - } - } - } - - if (xmlReader.hasError()) { - QMessageBox::warning(this, tr("Error"), - QString(tr("XML ERROR:") + "\n%1").arg(xmlReader.errorString())); - } - filesObject[xmlFile] = titleIdsArray; - } - - QFile jsonFile(dir.absolutePath() + "/files.json"); - if (!jsonFile.open(QIODevice::WriteOnly)) { - QMessageBox::warning(this, tr("Error"), tr("Failed to open files.json for writing")); - return; - } - - QJsonDocument jsonDoc(filesObject); - jsonFile.write(jsonDoc.toJson()); - jsonFile.close(); -} - -void CheatsPatches::clearListCheats() { - QLayoutItem* item; - while ((item = rightLayout->takeAt(0)) != nullptr) { - QWidget* widget = item->widget(); - if (widget) { - delete widget; - } else { - QLayout* layout = item->layout(); - if (layout) { - QLayoutItem* innerItem; - while ((innerItem = layout->takeAt(0)) != nullptr) { - QWidget* innerWidget = innerItem->widget(); - if (innerWidget) { - delete innerWidget; - } - delete innerItem; - } - delete layout; - } - } - } - m_cheats.clear(); - m_cheatCheckBoxes.clear(); -} - -void CheatsPatches::addCheatsToLayout(const QJsonArray& modsArray, const QJsonArray& creditsArray) { - clearListCheats(); - int maxWidthButton = 0; - - for (const QJsonValue& modValue : modsArray) { - QJsonObject modObject = modValue.toObject(); - QString modName = modObject["name"].toString(); - QString modType = modObject["type"].toString(); - - Cheat cheat; - cheat.name = modName; - cheat.type = modType; - - QJsonArray memoryArray = modObject["memory"].toArray(); - for (const QJsonValue& memoryValue : memoryArray) { - QJsonObject memoryObject = memoryValue.toObject(); - MemoryMod memoryMod; - memoryMod.offset = memoryObject["offset"].toString(); - memoryMod.on = memoryObject["on"].toString(); - memoryMod.off = memoryObject["off"].toString(); - cheat.memoryMods.append(memoryMod); - } - - // Check for the presence of 'hint' field - cheat.hasHint = modObject.contains("hint"); - - m_cheats[modName] = cheat; - - if (modType == "checkbox") { - QCheckBox* cheatCheckBox = new QCheckBox(modName); - rightLayout->addWidget(cheatCheckBox); - m_cheatCheckBoxes.append(cheatCheckBox); - connect(cheatCheckBox, &QCheckBox::toggled, - [this, modName](bool checked) { applyCheat(modName, checked); }); - } else if (modType == "button") { - QPushButton* cheatButton = new QPushButton(modName); - cheatButton->adjustSize(); - int buttonWidth = cheatButton->sizeHint().width(); - if (buttonWidth > maxWidthButton) { - maxWidthButton = buttonWidth; - } - - // Create a horizontal layout for buttons - QHBoxLayout* buttonLayout = new QHBoxLayout(); - buttonLayout->setContentsMargins(0, 0, 0, 0); - buttonLayout->addWidget(cheatButton); - buttonLayout->addStretch(); - - rightLayout->addLayout(buttonLayout); - connect(cheatButton, &QPushButton::clicked, - [this, modName]() { applyCheat(modName, true); }); - } - } - - // Set minimum and fixed size for all buttons + 20 - for (int i = 0; i < rightLayout->count(); ++i) { - QLayoutItem* layoutItem = rightLayout->itemAt(i); - QWidget* widget = layoutItem->widget(); - if (widget) { - QPushButton* button = qobject_cast(widget); - if (button) { - button->setMinimumWidth(maxWidthButton); - button->setFixedWidth(maxWidthButton + 20); - } - } else { - QLayout* layout = layoutItem->layout(); - if (layout) { - for (int j = 0; j < layout->count(); ++j) { - QLayoutItem* innerItem = layout->itemAt(j); - QWidget* innerWidget = innerItem->widget(); - if (innerWidget) { - QPushButton* button = qobject_cast(innerWidget); - if (button) { - button->setMinimumWidth(maxWidthButton); - button->setFixedWidth(maxWidthButton + 20); - } - } - } - } - } - } - - // Set credits label - QLabel* creditsLabel = new QLabel(); - QString creditsText = tr("Author: "); - if (!creditsArray.isEmpty()) { - QStringList authors; - for (const QJsonValue& credit : creditsArray) { - authors << credit.toString(); - } - creditsText += authors.join(", "); - } - creditsLabel->setText(creditsText); - creditsLabel->setAlignment(Qt::AlignLeft); - rightLayout->addWidget(creditsLabel); -} - -void CheatsPatches::populateFileListCheats() { - clearListCheats(); - - QString cheatsDir; - Common::FS::PathToQString(cheatsDir, Common::FS::GetUserPath(Common::FS::PathType::CheatsDir)); - - QString fullGameVersion = m_gameVersion; - QString modifiedGameVersion = m_gameVersion.mid(1); - - QString patternWithFirstChar = m_gameSerial + "_" + fullGameVersion + "*.json"; - QString patternWithoutFirstChar = m_gameSerial + "_" + modifiedGameVersion + "*.json"; - - QDir dir(cheatsDir); - QStringList filters; - filters << patternWithFirstChar << patternWithoutFirstChar; - dir.setNameFilters(filters); - - QFileInfoList fileList = dir.entryInfoList(QDir::Files); - QStringList fileNames; - - for (const QFileInfo& fileInfo : fileList) { - fileNames << fileInfo.fileName(); - } - - QStringListModel* model = new QStringListModel(fileNames, this); - listView_selectFile->setModel(model); - - connect(listView_selectFile->selectionModel(), &QItemSelectionModel::selectionChanged, this, - [this]() { - QModelIndexList selectedIndexes = - listView_selectFile->selectionModel()->selectedIndexes(); - if (!selectedIndexes.isEmpty()) { - - QString selectedFileName = selectedIndexes.first().data().toString(); - QString cheatsDir; - Common::FS::PathToQString( - cheatsDir, Common::FS::GetUserPath(Common::FS::PathType::CheatsDir)); - - QFile file(cheatsDir + "/" + selectedFileName); - if (file.open(QIODevice::ReadOnly)) { - QByteArray jsonData = file.readAll(); - QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData); - QJsonObject jsonObject = jsonDoc.object(); - QJsonArray modsArray = jsonObject["mods"].toArray(); - QJsonArray creditsArray = jsonObject["credits"].toArray(); - addCheatsToLayout(modsArray, creditsArray); - } - } - }); - - if (!fileNames.isEmpty()) { - QModelIndex firstIndex = model->index(0, 0); - listView_selectFile->selectionModel()->select(firstIndex, QItemSelectionModel::Select | - QItemSelectionModel::Rows); - listView_selectFile->setCurrentIndex(firstIndex); - } -} - -void CheatsPatches::addPatchesToLayout(const QString& filePath) { - if (filePath == "") { - return; - } - QString folderPath = filePath.section(" | ", 1, 1); - - // Clear existing layout items - QLayoutItem* item; - while ((item = patchesGroupBoxLayout->takeAt(0)) != nullptr) { - delete item->widget(); - delete item; - } - m_patchInfos.clear(); - - QDir dir(Common::FS::GetUserPath(Common::FS::PathType::PatchesDir)); - QString fullPath = dir.filePath(folderPath); - - if (!dir.exists(fullPath)) { - QMessageBox::warning(this, tr("Error"), - QString(tr("Directory does not exist:") + "\n%1").arg(fullPath)); - return; - } - dir.setPath(fullPath); - - QString filesJsonPath = dir.filePath("files.json"); - - QFile jsonFile(filesJsonPath); - if (!jsonFile.open(QIODevice::ReadOnly)) { - QMessageBox::warning(this, tr("Error"), tr("Failed to open files.json for reading.")); - return; - } - - QByteArray jsonData = jsonFile.readAll(); - jsonFile.close(); - - QJsonDocument jsonDoc = QJsonDocument::fromJson(jsonData); - QJsonObject jsonObject = jsonDoc.object(); - - bool patchAdded = false; - - // Iterate over each entry in the JSON file - for (auto it = jsonObject.constBegin(); it != jsonObject.constEnd(); ++it) { - QString xmlFileName = it.key(); - QJsonArray idsArray = it.value().toArray(); - - // Check if the serial is in the ID list - if (idsArray.contains(QJsonValue(m_gameSerial))) { - QString xmlFilePath = dir.filePath(xmlFileName); - QFile xmlFile(xmlFilePath); - - if (!xmlFile.open(QIODevice::ReadOnly)) { - QMessageBox::warning( - this, tr("Error"), - QString(tr("Failed to open file:") + "\n%1").arg(xmlFile.fileName())); - continue; - } - QXmlStreamReader xmlReader(&xmlFile); - QString patchName; - QString patchAuthor; - QString patchNote; - QJsonArray patchLines; - bool isEnabled = false; - - while (!xmlReader.atEnd() && !xmlReader.hasError()) { - xmlReader.readNext(); - - if (xmlReader.tokenType() == QXmlStreamReader::StartElement) { - if (xmlReader.name() == QStringLiteral("Metadata")) { - QXmlStreamAttributes attributes = xmlReader.attributes(); - QString appVer = attributes.value("AppVer").toString(); - if (appVer == m_gameVersion) { - patchName = attributes.value("Name").toString(); - patchAuthor = attributes.value("Author").toString(); - patchNote = attributes.value("Note").toString(); - isEnabled = - attributes.value("isEnabled").toString() == QStringLiteral("true"); - } - if (appVer == "mask") { - patchName = attributes.value("Name").toString() + " (any version)"; - patchAuthor = attributes.value("Author").toString(); - patchNote = attributes.value("Note").toString(); - isEnabled = - attributes.value("isEnabled").toString() == QStringLiteral("true"); - } - } else if (xmlReader.name() == QStringLiteral("PatchList")) { - QJsonArray linesArray; - while (!xmlReader.atEnd() && - !(xmlReader.tokenType() == QXmlStreamReader::EndElement && - xmlReader.name() == QStringLiteral("PatchList"))) { - xmlReader.readNext(); - if (xmlReader.tokenType() == QXmlStreamReader::StartElement && - xmlReader.name() == QStringLiteral("Line")) { - QXmlStreamAttributes attributes = xmlReader.attributes(); - QJsonObject lineObject; - lineObject["Type"] = attributes.value("Type").toString(); - lineObject["Address"] = attributes.value("Address").toString(); - lineObject["Value"] = attributes.value("Value").toString(); - linesArray.append(lineObject); - } - } - patchLines = linesArray; - } - } - - if (!patchName.isEmpty() && !patchLines.isEmpty()) { - QCheckBox* patchCheckBox = new QCheckBox(patchName); - patchCheckBox->setProperty("patchName", patchName); - patchCheckBox->setChecked(isEnabled); - patchesGroupBoxLayout->addWidget(patchCheckBox); - - PatchInfo patchInfo; - patchInfo.name = patchName; - patchInfo.author = patchAuthor; - patchInfo.note = patchNote; - patchInfo.linesArray = patchLines; - patchInfo.serial = m_gameSerial; - m_patchInfos[patchName] = patchInfo; - - patchCheckBox->installEventFilter(this); - - connect(patchCheckBox, &QCheckBox::toggled, - [this, patchName](bool checked) { applyPatch(patchName, checked); }); - - patchName.clear(); - patchAuthor.clear(); - patchNote.clear(); - patchLines = QJsonArray(); - patchAdded = true; - } - } - xmlFile.close(); - } - } - - // Remove the item from the list view if no patches were added - // (the game has patches, but not for the current version) - if (!patchAdded) { - QStringListModel* model = qobject_cast(patchesListView->model()); - if (model) { - QStringList items = model->stringList(); - int index = items.indexOf(filePath); - if (index != -1) { - items.removeAt(index); - model->setStringList(items); - } - } - } -} - -void CheatsPatches::updateNoteTextEdit(const QString& patchName) { - if (m_patchInfos.contains(patchName)) { - const PatchInfo& patchInfo = m_patchInfos[patchName]; - QString text = QString(tr("Name:") + " %1\n" + tr("Author: ") + "%2\n\n%3") - .arg(patchInfo.name) - .arg(patchInfo.author) - .arg(patchInfo.note); - - foreach (const QJsonValue& value, patchInfo.linesArray) { - QJsonObject lineObject = value.toObject(); - QString type = lineObject["Type"].toString(); - QString address = lineObject["Address"].toString(); - QString patchValue = lineObject["Value"].toString(); - } - text.replace("\\n", "\n"); - instructionsTextEdit->setText(text); - } -} - -bool showErrorMessage = true; -void CheatsPatches::uncheckAllCheatCheckBoxes() { - for (auto& cheatCheckBox : m_cheatCheckBoxes) { - cheatCheckBox->setChecked(false); - } - showErrorMessage = true; -} - -void CheatsPatches::applyCheat(const QString& modName, bool enabled) { - if (!m_cheats.contains(modName)) - return; - - if (MemoryPatcher::g_eboot_address == 0 && enabled) { - QMessageBox::critical(this, tr("Error"), - tr("Can't apply cheats before the game is started")); - uncheckAllCheatCheckBoxes(); - return; - } - - Cheat cheat = m_cheats[modName]; - - for (const MemoryMod& memoryMod : cheat.memoryMods) { - QString value = enabled ? memoryMod.on : memoryMod.off; - - std::string modNameStr = modName.toStdString(); - std::string offsetStr = memoryMod.offset.toStdString(); - std::string valueStr = value.toStdString(); - - if (MemoryPatcher::g_eboot_address == 0) - return; - - // Determine if the hint field is present - bool isHintPresent = m_cheats[modName].hasHint; - MemoryPatcher::PatchMemory(modNameStr, offsetStr, valueStr, "", "", !isHintPresent, false); - } -} - -void CheatsPatches::applyPatch(const QString& patchName, bool enabled) { - if (!enabled) - return; - if (m_patchInfos.contains(patchName)) { - const PatchInfo& patchInfo = m_patchInfos[patchName]; - - foreach (const QJsonValue& value, patchInfo.linesArray) { - QJsonObject lineObject = value.toObject(); - QString type = lineObject["Type"].toString(); - QString address = lineObject["Address"].toString(); - QString patchValue = lineObject["Value"].toString(); - QString maskOffsetStr = lineObject["Offset"].toString(); - - patchValue = QString::fromStdString( - MemoryPatcher::convertValueToHex(type.toStdString(), patchValue.toStdString())); - - bool littleEndian = false; - - if (type == "bytes16" || type == "bytes32" || type == "bytes64") { - littleEndian = true; - } - - MemoryPatcher::PatchMask patchMask = MemoryPatcher::PatchMask::None; - int maskOffsetValue = 0; - - if (type == "mask") - patchMask = MemoryPatcher::PatchMask::Mask; - - if (type == "mask_jump32") - patchMask = MemoryPatcher::PatchMask::Mask_Jump32; - - if ((type == "mask" || type == "mask_jump32") && !maskOffsetStr.toStdString().empty()) { - maskOffsetValue = std::stoi(maskOffsetStr.toStdString(), 0, 10); - } - - if (MemoryPatcher::g_eboot_address == 0) { - MemoryPatcher::patchInfo addingPatch; - addingPatch.gameSerial = patchInfo.serial.toStdString(); - addingPatch.modNameStr = patchName.toStdString(); - addingPatch.offsetStr = address.toStdString(); - addingPatch.valueStr = patchValue.toStdString(); - addingPatch.isOffset = false; - addingPatch.littleEndian = littleEndian; - addingPatch.patchMask = patchMask; - addingPatch.maskOffset = maskOffsetValue; - - MemoryPatcher::AddPatchToQueue(addingPatch); - continue; - } - MemoryPatcher::PatchMemory(patchName.toStdString(), address.toStdString(), - patchValue.toStdString(), "", "", false, littleEndian, - patchMask); - } - } -} - -bool CheatsPatches::eventFilter(QObject* obj, QEvent* event) { - if (event->type() == QEvent::HoverEnter || event->type() == QEvent::HoverLeave) { - QCheckBox* checkBox = qobject_cast(obj); - if (checkBox) { - bool hovered = (event->type() == QEvent::HoverEnter); - onPatchCheckBoxHovered(checkBox, hovered); - return true; - } - } - // Pass the event on to base class - return QWidget::eventFilter(obj, event); -} - -void CheatsPatches::onPatchCheckBoxHovered(QCheckBox* checkBox, bool hovered) { - if (hovered) { - const auto patchName = checkBox->property("patchName"); - if (patchName.isValid()) { - updateNoteTextEdit(patchName.toString()); - } - } else { - instructionsTextEdit->setText(defaultTextEdit_MSG); - } -} diff --git a/src/qt_gui/cheats_patches.h b/src/qt_gui/cheats_patches.h deleted file mode 100644 index 0f793b774..000000000 --- a/src/qt_gui/cheats_patches.h +++ /dev/null @@ -1,120 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#ifndef CHEATS_PATCHES_H -#define CHEATS_PATCHES_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -class CheatsPatches : public QWidget { - Q_OBJECT - -public: - CheatsPatches(const QString& gameName, const QString& gameSerial, const QString& gameVersion, - const QString& gameSize, const QPixmap& gameImage, QWidget* parent = nullptr); - ~CheatsPatches(); - - void downloadCheats(const QString& source, const QString& m_gameSerial, - const QString& m_gameVersion, bool showMessageBox); - void downloadPatches(const QString repository, const bool showMessageBox); - void createFilesJson(const QString& repository); - void clearListCheats(); - void compatibleVersionNotice(const QString repository); - -signals: - void downloadFinished(); - -private: - // UI Setup and Event Handlers - void setupUI(); - void onSaveButtonClicked(); - QCheckBox* findCheckBoxByName(const QString& name); - bool eventFilter(QObject* obj, QEvent* event); - void onPatchCheckBoxHovered(QCheckBox* checkBox, bool hovered); - - // Cheat and Patch Management - void populateFileListCheats(); - void populateFileListPatches(); - - void addCheatsToLayout(const QJsonArray& modsArray, const QJsonArray& creditsArray); - void addPatchesToLayout(const QString& serial); - - void applyCheat(const QString& modName, bool enabled); - void applyPatch(const QString& patchName, bool enabled); - - void uncheckAllCheatCheckBoxes(); - void updateNoteTextEdit(const QString& patchName); - - // Network Manager - QNetworkAccessManager* manager; - - // Patch Info Structures - struct MemoryMod { - QString offset; - QString on; - QString off; - }; - - struct Cheat { - QString name; - QString type; - bool hasHint; - QVector memoryMods; - }; - - struct PatchInfo { - QString name; - QString author; - QString note; - QJsonArray linesArray; - QString serial; - }; - - // Members - QString m_gameName; - QString m_gameSerial; - QString m_gameVersion; - QString m_gameSize; - QPixmap m_gameImage; - QString m_cheatFilePath; - QMap m_cheats; - QMap m_patchInfos; - QVector m_cheatCheckBoxes; - - // UI Elements - QVBoxLayout* rightLayout; - QVBoxLayout* patchesGroupBoxLayout; - QGroupBox* patchesGroupBox; - QVBoxLayout* patchesLayout; - QTextEdit* instructionsTextEdit; - QListView* listView_selectFile; - QItemSelectionModel* selectionModel; - QComboBox* patchesComboBox; - QListView* patchesListView; - - // Strings - QString defaultTextEdit_MSG; - QString CheatsNotFound_MSG; - QString CheatsDownloadedSuccessfully_MSG; - QString DownloadComplete_MSG; -}; - -#endif // CHEATS_PATCHES_H \ No newline at end of file diff --git a/src/qt_gui/check_update.cpp b/src/qt_gui/check_update.cpp deleted file mode 100644 index 75d2715b2..000000000 --- a/src/qt_gui/check_update.cpp +++ /dev/null @@ -1,633 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "check_update.h" - -using namespace Common::FS; - -CheckUpdate::CheckUpdate(std::shared_ptr gui_settings, const bool showMessage, - QWidget* parent) - : QDialog(parent), m_gui_settings(std::move(gui_settings)), - networkManager(new QNetworkAccessManager(this)) { - setWindowTitle(tr("Auto Updater")); - setFixedSize(0, 0); - CheckForUpdates(showMessage); -} - -CheckUpdate::~CheckUpdate() {} - -void CheckUpdate::CheckForUpdates(const bool showMessage) { - QString updateChannel; - QUrl url; - - bool checkName = true; - while (checkName) { - updateChannel = m_gui_settings->GetValue(gui::gen_updateChannel).toString(); - if (updateChannel == "Nightly") { - url = QUrl("https://api.github.com/repos/shadps4-emu/shadPS4/releases"); - checkName = false; - } else if (updateChannel == "Release") { - url = QUrl("https://api.github.com/repos/shadps4-emu/shadPS4/releases/latest"); - checkName = false; - } else { - if (Common::g_is_release) { - m_gui_settings->SetValue(gui::gen_updateChannel, "Release"); - } else { - m_gui_settings->SetValue(gui::gen_updateChannel, "Nightly"); - } - } - } - - QNetworkRequest request(url); - QNetworkReply* reply = networkManager->get(request); - - connect(reply, &QNetworkReply::finished, this, [this, reply, showMessage, updateChannel]() { - if (reply->error() != QNetworkReply::NoError) { - if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 403) { - QString response = reply->readAll(); - if (response.startsWith("{\"message\":\"API rate limit exceeded for")) { - QMessageBox::warning( - this, tr("Auto Updater"), - // clang-format off -tr("The Auto Updater allows up to 60 update checks per hour.\\nYou have reached this limit. Please try again later.").replace("\\n", "\n")); - // clang-format on - } else { - QMessageBox::warning( - this, tr("Error"), - QString(tr("Network error:") + "\n" + reply->errorString())); - } - } else { - QMessageBox::warning(this, tr("Error"), - QString(tr("Network error:") + "\n" + reply->errorString())); - } - reply->deleteLater(); - return; - } - - QByteArray response = reply->readAll(); - QJsonDocument jsonDoc(QJsonDocument::fromJson(response)); - - if (jsonDoc.isNull()) { - QMessageBox::warning(this, tr("Error"), tr("Failed to parse update information.")); - reply->deleteLater(); - return; - } - - QString downloadUrl; - 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 (updateChannel == "Nightly") { - QJsonArray jsonArray = jsonDoc.array(); - 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 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; - } - } - - latestRev = latestVersion.right(40); - 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("Auto Updater"), - // clang-format off -tr("Notice:

Starting from version 0.12.0, the Qt version of the emulator will no longer receive direct updates.

However, the Qt interface remains available through the new official launcher:

Qt Launcher - based on the original shadPS4 source code.

We recommend switching to this launcher to continue receiving updates.")); - // clang-format on - - reply->deleteLater(); - return; - } - - QString currentRev = (updateChannel == "Nightly") - ? QString::fromStdString(Common::g_scm_rev) - : "v." + QString::fromStdString(Common::g_version); - QString currentDate = Common::g_scm_date; - - QDateTime dateTime = QDateTime::fromString(latestDate, Qt::ISODate); - latestDate = dateTime.isValid() ? dateTime.toString("yyyy-MM-dd HH:mm:ss") : "Unknown date"; - - if (latestRev == currentRev) { - if (showMessage) { - QMessageBox::information(this, tr("Auto Updater"), - tr("Your version is already up to date!")); - } - close(); - return; - } else { - setupUI(downloadUrl, latestDate, latestRev, currentDate, currentRev); - } - reply->deleteLater(); - }); -} - -void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate, - const QString& latestRev, const QString& currentDate, - const QString& currentRev) { - QVBoxLayout* layout = new QVBoxLayout(this); - QHBoxLayout* titleLayout = new QHBoxLayout(); - - QLabel* imageLabel = new QLabel(this); - QPixmap pixmap(":/images/shadps4.png"); - imageLabel->setPixmap(pixmap); - imageLabel->setScaledContents(true); - imageLabel->setFixedSize(50, 50); - - QLabel* titleLabel = new QLabel("

" + tr("Update Available") + "

", this); - titleLayout->addWidget(imageLabel); - titleLayout->addWidget(titleLabel); - layout->addLayout(titleLayout); - - QString updateChannel = m_gui_settings->GetValue(gui::gen_updateChannel).toString(); - - QString updateText = - QString("

" + tr("Update Channel") + ": " + updateChannel + - "
" - "" - "" - "" - "" - "" - "" - "" - "" - "
" + - tr("Current Version") + - ":%1(%2)
" + - tr("Latest Version") + - ":%3(%4)

") - .arg(updateChannel == "Nightly" ? currentRev.left(7) : currentRev.left(8), currentDate, - updateChannel == "Nightly" ? latestRev.left(7) : latestRev.left(8), latestDate); - - QLabel* updateLabel = new QLabel(updateText, this); - layout->addWidget(updateLabel); - - // Setup bottom layout with action buttons - autoUpdateCheckBox = new QCheckBox(tr("Check for Updates at Startup"), this); - layout->addWidget(autoUpdateCheckBox); - - QHBoxLayout* updatePromptLayout = new QHBoxLayout(); - QLabel* updatePromptLabel = new QLabel(tr("Do you want to update?"), this); - updatePromptLayout->addWidget(updatePromptLabel); - - yesButton = new QPushButton(tr("Update"), this); - noButton = new QPushButton(tr("No"), this); - yesButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); - noButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); - - QSpacerItem* spacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum); - updatePromptLayout->addItem(spacer); - updatePromptLayout->addWidget(yesButton); - updatePromptLayout->addWidget(noButton); - - layout->addLayout(updatePromptLayout); - - // Don't show changelog button if: - // The current version is a pre-release and the version to be downloaded is a release. - bool current_isWIP = currentRev.endsWith("WIP", Qt::CaseInsensitive); - bool latest_isWIP = latestRev.endsWith("WIP", Qt::CaseInsensitive); - if (current_isWIP && !latest_isWIP) { - } else { - QTextBrowser* textField = new QTextBrowser(this); - textField->setReadOnly(true); - textField->setFixedWidth(500); - textField->setFixedHeight(200); - textField->setVisible(false); - layout->addWidget(textField); - - QPushButton* toggleButton = new QPushButton(tr("Show Changelog"), this); - layout->addWidget(toggleButton); - - connect(toggleButton, &QPushButton::clicked, - [this, textField, toggleButton, currentRev, latestRev, downloadUrl, latestDate, - currentDate]() { - if (!textField->isVisible()) { - requestChangelog(currentRev, latestRev, downloadUrl, latestDate, - currentDate); - textField->setVisible(true); - toggleButton->setText(tr("Hide Changelog")); - adjustSize(); - textField->setFixedWidth(textField->width() + 20); - } else { - textField->setVisible(false); - toggleButton->setText(tr("Show Changelog")); - adjustSize(); - } - }); - - if (m_gui_settings->GetValue(gui::gen_showChangeLog).toBool()) { - requestChangelog(currentRev, latestRev, downloadUrl, latestDate, currentDate); - textField->setVisible(true); - toggleButton->setText(tr("Hide Changelog")); - adjustSize(); - textField->setFixedWidth(textField->width() + 20); - } - } - - connect(yesButton, &QPushButton::clicked, this, [this, downloadUrl]() { - yesButton->setEnabled(false); - noButton->setEnabled(false); - DownloadUpdate(downloadUrl); - }); - - connect(noButton, &QPushButton::clicked, this, [this]() { close(); }); - - autoUpdateCheckBox->setChecked(m_gui_settings->GetValue(gui::gen_checkForUpdates).toBool()); -#if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0)) - connect(autoUpdateCheckBox, &QCheckBox::stateChanged, this, [this](int state) { -#else - connect(autoUpdateCheckBox, &QCheckBox::checkStateChanged, this, [this](Qt::CheckState state) { -#endif - const auto user_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir); - m_gui_settings->SetValue(gui::gen_checkForUpdates, (state == Qt::Checked)); - Config::save(user_dir / "config.toml"); - }); - - setLayout(layout); -} - -void CheckUpdate::requestChangelog(const QString& currentRev, const QString& latestRev, - const QString& downloadUrl, const QString& latestDate, - const QString& currentDate) { - QString compareUrlString = - QString("https://api.github.com/repos/shadps4-emu/shadPS4/compare/%1...%2") - .arg(currentRev) - .arg(latestRev); - - QUrl compareUrl(compareUrlString); - QNetworkRequest compareRequest(compareUrl); - QNetworkReply* compareReply = networkManager->get(compareRequest); - - connect(compareReply, &QNetworkReply::finished, this, - [this, compareReply, downloadUrl, latestDate, latestRev, currentDate, currentRev]() { - if (compareReply->error() != QNetworkReply::NoError) { - QMessageBox::warning( - this, tr("Error"), - QString(tr("Network error:") + "\n%1").arg(compareReply->errorString())); - compareReply->deleteLater(); - return; - } - - QByteArray compareResponse = compareReply->readAll(); - QJsonDocument compareJsonDoc(QJsonDocument::fromJson(compareResponse)); - QJsonObject compareJsonObj = compareJsonDoc.object(); - QJsonArray commits = compareJsonObj["commits"].toArray(); - - QString changes; - for (const QJsonValue& commitValue : commits) { - QJsonObject commitObj = commitValue.toObject(); - QString message = commitObj["commit"].toObject()["message"].toString(); - - // Remove texts after first line break, if any, to make it cleaner - int newlineIndex = message.indexOf('\n'); - if (newlineIndex != -1) { - message = message.left(newlineIndex); - } - if (!changes.isEmpty()) { - changes += "
"; - } - changes += "    • " + message; - } - - // Update the text field with the changelog - QTextBrowser* textField = findChild(); - if (textField) { - QRegularExpression re("\\(\\#(\\d+)\\)"); - QString newChanges; - int lastIndex = 0; - QRegularExpressionMatchIterator i = re.globalMatch(changes); - while (i.hasNext()) { - QRegularExpressionMatch match = i.next(); - newChanges += changes.mid(lastIndex, match.capturedStart() - lastIndex); - QString num = match.captured(1); - newChanges += - QString( - "(#%1)") - .arg(num); - lastIndex = match.capturedEnd(); - } - - newChanges += changes.mid(lastIndex); - changes = newChanges; - - textField->setOpenExternalLinks(true); - textField->setHtml("

" + tr("Changes") + ":

" + changes); - } - - compareReply->deleteLater(); - }); -} - -void CheckUpdate::DownloadUpdate(const QString& url) { - QProgressBar* progressBar = new QProgressBar(this); - progressBar->setRange(0, 100); - progressBar->setTextVisible(true); - progressBar->setValue(0); - - layout()->addWidget(progressBar); - - QNetworkRequest request(url); - QNetworkReply* reply = networkManager->get(request); - - connect(reply, &QNetworkReply::downloadProgress, this, - [progressBar](qint64 bytesReceived, qint64 bytesTotal) { - if (bytesTotal > 0) { - int percentage = static_cast((bytesReceived * 100) / bytesTotal); - progressBar->setValue(percentage); - } - }); - - connect(reply, &QNetworkReply::finished, this, [this, reply, progressBar, url]() { - progressBar->setValue(100); - if (reply->error() != QNetworkReply::NoError) { - QMessageBox::warning(this, tr("Error"), - tr("Network error occurred while trying to access the URL") + - ":\n" + url + "\n" + reply->errorString()); - reply->deleteLater(); - progressBar->deleteLater(); - return; - } - - QString userPath; - Common::FS::PathToQString(userPath, Common::FS::GetUserPath(Common::FS::PathType::UserDir)); -#ifdef Q_OS_WIN - QString tempDownloadPath = - QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + - "/Temp/temp_download_update"; -#else - QString tempDownloadPath = userPath + "/temp_download_update"; -#endif - QDir dir(tempDownloadPath); - if (!dir.exists()) { - dir.mkpath("."); - } - - QString downloadPath = tempDownloadPath + "/temp_download_update.zip"; - QFile file(downloadPath); - if (file.open(QIODevice::WriteOnly)) { - file.write(reply->readAll()); - file.close(); - QMessageBox::information(this, tr("Download Complete"), - tr("The update has been downloaded, press OK to install.")); - Install(); - } else { - QMessageBox::warning( - this, tr("Error"), - QString(tr("Failed to save the update file at") + ":\n" + downloadPath)); - } - - reply->deleteLater(); - progressBar->deleteLater(); - }); -} - -void CheckUpdate::Install() { - QString userPath; - Common::FS::PathToQString(userPath, Common::FS::GetUserPath(Common::FS::PathType::UserDir)); - - QString rootPath; - Common::FS::PathToQString(rootPath, std::filesystem::current_path()); - - QString tempDirPath = userPath + "/temp_download_update"; - QString startingUpdate = tr("Starting Update..."); - - QString binaryStartingUpdate; - for (QChar c : startingUpdate) { - binaryStartingUpdate.append(QString::number(c.unicode(), 2).rightJustified(16, '0')); - } - - QString scriptContent; - QString scriptFileName; - QStringList arguments; - QString processCommand; - -#ifdef Q_OS_WIN - // On windows, overwrite tempDirPath with AppData/Roaming/shadps4/Temp folder - // due to PowerShell Expand-Archive not being able to handle correctly - // paths in square brackets (ie: ./[shadps4]) - tempDirPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation) + - "/Temp/temp_download_update"; - - // Windows Batch Script - scriptFileName = tempDirPath + "/update.ps1"; - scriptContent = QStringLiteral( - "Set-ExecutionPolicy Bypass -Scope Process -Force\n" - "$binaryStartingUpdate = '%1'\n" - "$chars = @()\n" - "for ($i = 0; $i -lt $binaryStartingUpdate.Length; $i += 16) {\n" - " $chars += [char]([convert]::ToInt32($binaryStartingUpdate.Substring($i, 16), 2))\n" - "}\n" - "$startingUpdate = -join $chars\n" - "Write-Output $startingUpdate\n" - "Expand-Archive -Path '%2\\temp_download_update.zip' -DestinationPath '%2' -Force\n" - "Start-Sleep -Seconds 3\n" - "Copy-Item -Recurse -Force '%2\\*' '%3\\'\n" - "Start-Sleep -Seconds 2\n" - "Remove-Item -Force -LiteralPath '%3\\update.ps1'\n" - "Remove-Item -Force -LiteralPath '%3\\temp_download_update.zip'\n" - "Remove-Item -Recurse -Force '%2'\n" - "Start-Process -FilePath '%3\\shadps4.exe' " - "-WorkingDirectory ([WildcardPattern]::Escape('%3'))\n"); - arguments << "-ExecutionPolicy" - << "Bypass" - << "-File" << scriptFileName; - processCommand = "powershell.exe"; - -#elif defined(Q_OS_LINUX) - // Linux Shell Script - scriptFileName = tempDirPath + "/update.sh"; - scriptContent = QStringLiteral( - "#!/bin/bash\n" - "check_unzip() {\n" - " if ! command -v unzip &> /dev/null && ! command -v 7z &> /dev/null; then\n" - " echo \"Neither 'unzip' nor '7z' is installed.\"\n" - " read -p \"Would you like to install 'unzip'? (y/n): \" response\n" - " if [[ \"$response\" == \"y\" || \"$response\" == \"Y\" ]]; then\n" - " if [[ -f /etc/os-release ]]; then\n" - " . /etc/os-release\n" - " case \"$ID\" in\n" - " ubuntu|debian)\n" - " sudo apt-get install unzip -y\n" - " ;;\n" - " fedora|redhat)\n" - " sudo dnf install unzip -y\n" - " ;;\n" - " *)\n" - " echo \"Unsupported distribution for automatic installation.\"\n" - " exit 1\n" - " ;;\n" - " esac\n" - " else\n" - " echo \"Could not identify the distribution.\"\n" - " exit 1\n" - " fi\n" - " else\n" - " echo \"At least one of 'unzip' or '7z' is required to continue. The process " - "will be terminated.\"\n" - " exit 1\n" - " fi\n" - " fi\n" - "}\n" - "extract_file() {\n" - " if command -v unzip &> /dev/null; then\n" - " unzip -o \"%2/temp_download_update.zip\" -d \"%2/\"\n" - " elif command -v 7z &> /dev/null; then\n" - " 7z x \"%2/temp_download_update.zip\" -o\"%2/\" -y\n" - " else\n" - " echo \"No suitable extraction tool found.\"\n" - " exit 1\n" - " fi\n" - "}\n" - "main() {\n" - " check_unzip\n" - " echo \"%1\"\n" - " sleep 2\n" - " extract_file\n" - " sleep 2\n" - " if pgrep -f \"Shadps4-qt.AppImage\" > /dev/null; then\n" - " pkill -f \"Shadps4-qt.AppImage\"\n" - " sleep 2\n" - " fi\n" - " cp -r \"%2/\"* \"%3/\"\n" - " sleep 2\n" - " rm \"%3/update.sh\"\n" - " rm \"%3/temp_download_update.zip\"\n" - " chmod +x \"%3/Shadps4-qt.AppImage\"\n" - " rm -r \"%2\"\n" - " cd \"%3\" && ./Shadps4-qt.AppImage\n" - "}\n" - "main\n"); - arguments << scriptFileName; - processCommand = "bash"; - -#elif defined(Q_OS_MAC) - // macOS Shell Script - scriptFileName = tempDirPath + "/update.sh"; - scriptContent = QStringLiteral( - "#!/bin/bash\n" - "check_tools() {\n" - " if ! command -v unzip &> /dev/null && ! command -v tar &> /dev/null; then\n" - " echo \"Neither 'unzip' nor 'tar' is installed.\"\n" - " read -p \"Would you like to install 'unzip'? (y/n): \" response\n" - " if [[ \"$response\" == \"y\" || \"$response\" == \"Y\" ]]; then\n" - " echo \"Please install 'unzip' using Homebrew or another package manager.\"\n" - " exit 1\n" - " else\n" - " echo \"At least one of 'unzip' or 'tar' is required to continue. The process " - "will be terminated.\"\n" - " exit 1\n" - " fi\n" - " fi\n" - "}\n" - "check_tools\n" - "echo \"%1\"\n" - "sleep 2\n" - "unzip -o \"%2/temp_download_update.zip\" -d \"%2/\"\n" - "sleep 2\n" - "tar -xzf \"%2/shadps4-macos-qt.tar.gz\" -C \"%3\"\n" - "sleep 2\n" - "rm \"%3/update.sh\"\n" - "chmod +x \"%3/shadps4.app/Contents/MacOS/shadps4\"\n" - "open \"%3/shadps4.app\"\n" - "rm -r \"%2\"\n"); - - arguments << scriptFileName; - processCommand = "bash"; - -#else - QMessageBox::warning(this, tr("Error"), "Unsupported operating system."); - return; -#endif - - QFile scriptFile(scriptFileName); - if (scriptFile.open(QIODevice::WriteOnly | QIODevice::Text)) { - QTextStream out(&scriptFile); - scriptFile.write("\xEF\xBB\xBF"); -#ifdef Q_OS_WIN - out << scriptContent.arg(binaryStartingUpdate).arg(tempDirPath).arg(rootPath); -#endif -#if defined(Q_OS_LINUX) || defined(Q_OS_MAC) - out << scriptContent.arg(startingUpdate).arg(tempDirPath).arg(rootPath); -#endif - scriptFile.close(); - -// Make the script executable on Unix-like systems -#if defined(Q_OS_LINUX) || defined(Q_OS_MAC) - scriptFile.setPermissions(QFileDevice::ExeOwner | QFileDevice::ReadOwner | - QFileDevice::WriteOwner); -#endif - - QProcess::startDetached(processCommand, arguments); - - exit(EXIT_SUCCESS); - } else { - QMessageBox::warning( - this, tr("Error"), - QString(tr("Failed to create the update script file") + ":\n" + scriptFileName)); - } -} diff --git a/src/qt_gui/check_update.h b/src/qt_gui/check_update.h deleted file mode 100644 index 139059c41..000000000 --- a/src/qt_gui/check_update.h +++ /dev/null @@ -1,43 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#ifndef CHECKUPDATE_H -#define CHECKUPDATE_H - -#include -#include -#include -#include -#include "gui_settings.h" - -class CheckUpdate : public QDialog { - Q_OBJECT - -public: - explicit CheckUpdate(std::shared_ptr gui_settings, const bool showMessage, - QWidget* parent = nullptr); - ~CheckUpdate(); - -private slots: - void CheckForUpdates(const bool showMessage); - void DownloadUpdate(const QString& url); - void Install(); - -private: - void setupUI(const QString& downloadUrl, const QString& latestDate, const QString& latestRev, - const QString& currentDate, const QString& currentRev); - - void requestChangelog(const QString& currentRev, const QString& latestRev, - const QString& downloadUrl, const QString& latestDate, - const QString& currentDate); - - QCheckBox* autoUpdateCheckBox; - QPushButton* yesButton; - QPushButton* noButton; - QString updateDownloadUrl; - - QNetworkAccessManager* networkManager; - std::shared_ptr m_gui_settings; -}; - -#endif // CHECKUPDATE_H diff --git a/src/qt_gui/compatibility_info.cpp b/src/qt_gui/compatibility_info.cpp deleted file mode 100644 index eecd1bd47..000000000 --- a/src/qt_gui/compatibility_info.cpp +++ /dev/null @@ -1,216 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include - -#include "common/path_util.h" -#include "compatibility_info.h" - -CompatibilityInfoClass::CompatibilityInfoClass() - : m_network_manager(new QNetworkAccessManager(this)) { - QStringList file_paths; - std::filesystem::path compatibility_file_path = - Common::FS::GetUserPath(Common::FS::PathType::MetaDataDir) / "compatibility_data.json"; - Common::FS::PathToQString(m_compatibility_filename, compatibility_file_path); -}; -CompatibilityInfoClass::~CompatibilityInfoClass() = default; - -void CompatibilityInfoClass::UpdateCompatibilityDatabase(QWidget* parent, bool forced) { - if (!forced && LoadCompatibilityFile()) - return; - - QUrl url("https://github.com/shadps4-compatibility/shadps4-game-compatibility/releases/latest/" - "download/compatibility_data.json"); - QNetworkRequest request(url); - QNetworkReply* reply = m_network_manager->get(request); - - QProgressDialog dialog(tr("Fetching compatibility data, please wait"), tr("Cancel"), 0, 100, - parent); - dialog.setWindowTitle(tr("Loading...")); - dialog.setWindowModality(Qt::WindowModal); - dialog.setMinimumDuration(0); - dialog.setValue(0); - - connect(reply, &QNetworkReply::downloadProgress, - [&dialog](qint64 bytesReceived, qint64 bytesTotal) { - if (bytesTotal > 0) { - dialog.setMaximum(bytesTotal); - dialog.setValue(bytesReceived); - } - }); - - connect(&dialog, &QProgressDialog::canceled, reply, &QNetworkReply::abort); - - QEventLoop loop; - connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit); - loop.exec(); - - if (reply->error() != QNetworkReply::NoError) { - reply->deleteLater(); - QMessageBox::critical(parent, tr("Error"), - tr("Unable to update compatibility data! Try again later.")); - // Try loading compatibility_file.json again - if (!forced) - LoadCompatibilityFile(); - return; - } - - QFile compatibility_file(m_compatibility_filename); - if (!compatibility_file.open(QIODevice::WriteOnly | QIODevice::Truncate | QIODevice::Text)) { - QMessageBox::critical(parent, tr("Error"), - tr("Unable to open compatibility_data.json for writing.")); - reply->deleteLater(); - return; - } - - // Writes the received data to the file. - QByteArray json_data = reply->readAll(); - compatibility_file.write(json_data); - compatibility_file.close(); - reply->deleteLater(); - - LoadCompatibilityFile(); -} - -CompatibilityEntry CompatibilityInfoClass::GetCompatibilityInfo(const std::string& serial) { - QString title_id = QString::fromStdString(serial); - if (m_compatibility_database.contains(title_id)) { - QJsonObject compatibility_obj = m_compatibility_database[title_id].toObject(); - - // Set current_os automatically - QString current_os; -#ifdef Q_OS_WIN - current_os = "os-windows"; -#elif defined(Q_OS_MAC) - current_os = "os-macOS"; -#elif defined(Q_OS_LINUX) - current_os = "os-linux"; -#else - current_os = "os-unknown"; -#endif - // Check if the game is compatible with the current operating system - if (compatibility_obj.contains(current_os)) { - QJsonObject compatibility_entry_obj = compatibility_obj[current_os].toObject(); - CompatibilityEntry compatibility_entry{ - LabelToCompatStatus.at(compatibility_entry_obj["status"].toString()), - compatibility_entry_obj["version"].toString(), - QDateTime::fromString(compatibility_entry_obj["last_tested"].toString(), - Qt::ISODate), - compatibility_entry_obj["url"].toString(), - compatibility_entry_obj["issue_number"].toString()}; - return compatibility_entry; - } else { - // If there is no entry for the current operating system, return "Unknown" - return CompatibilityEntry{CompatibilityStatus::Unknown, "", - QDateTime::currentDateTime(), "", 0}; - } - } - - // If title not found, return "Unknown" - return CompatibilityEntry{CompatibilityStatus::Unknown, "", QDateTime::currentDateTime(), "", - 0}; -} - -bool CompatibilityInfoClass::LoadCompatibilityFile() { - // Returns true if compatibility is loaded succescfully - QFileInfo check_file(m_compatibility_filename); - const auto modified_delta = QDateTime::currentDateTime() - check_file.lastModified(); - if (!check_file.exists() || !check_file.isFile() || - std::chrono::duration_cast(modified_delta).count() > 60) { - return false; - } - - QFile compatibility_file(m_compatibility_filename); - if (!compatibility_file.open(QIODevice::ReadOnly)) { - compatibility_file.close(); - return false; - } - QByteArray json_data = compatibility_file.readAll(); - compatibility_file.close(); - - QJsonDocument json_doc = QJsonDocument::fromJson(json_data); - if (json_doc.isEmpty() || json_doc.isNull()) { - return false; - } - - m_compatibility_database = json_doc.object(); - return true; -} - -void CompatibilityInfoClass::ExtractCompatibilityInfo(QByteArray response) { - QJsonDocument json_doc(QJsonDocument::fromJson(response)); - - if (json_doc.isNull()) { - return; - } - - QJsonArray json_arr; - - json_arr = json_doc.array(); - - for (const auto& issue_ref : std::as_const(json_arr)) { - QJsonObject issue_obj = issue_ref.toObject(); - QString title_id; - QRegularExpression title_id_regex("CUSA[0-9]{5}"); - QRegularExpressionMatch title_id_match = - title_id_regex.match(issue_obj["title"].toString()); - QString current_os = "os-unknown"; - QString compatibility_status = "status-unknown"; - if (issue_obj.contains("labels") && title_id_match.hasMatch()) { - title_id = title_id_match.captured(0); - const QJsonArray& label_array = issue_obj["labels"].toArray(); - for (const auto& elem : label_array) { - QString label = elem.toObject()["name"].toString(); - if (LabelToOSType.contains(label)) { - current_os = label; - continue; - } - if (LabelToCompatStatus.contains(label)) { - compatibility_status = label; - continue; - } - } - - // QJson does not support editing nested objects directly.. - - QJsonObject compatibility_obj = m_compatibility_database[title_id].toObject(); - - QJsonObject compatibility_data{ - {{"status", compatibility_status}, - {"last_tested", issue_obj["updated_at"]}, - {"version", issue_obj["milestone"].isNull() - ? "unknown" - : issue_obj["milestone"].toObject()["title"].toString()}, - {"url", issue_obj["html_url"]}, - {"issue_number", issue_obj["number"]}}}; - - compatibility_obj[current_os] = compatibility_data; - - m_compatibility_database[title_id] = compatibility_obj; - } - } - - return; -} - -const QString CompatibilityInfoClass::GetCompatStatusString(const CompatibilityStatus status) { - switch (status) { - case CompatibilityStatus::Unknown: - return tr("Unknown"); - case CompatibilityStatus::Nothing: - return tr("Nothing"); - case CompatibilityStatus::Boots: - return tr("Boots"); - case CompatibilityStatus::Menus: - return tr("Menus"); - case CompatibilityStatus::Ingame: - return tr("Ingame"); - case CompatibilityStatus::Playable: - return tr("Playable"); - default: - return tr("Unknown"); - } -} diff --git a/src/qt_gui/compatibility_info.h b/src/qt_gui/compatibility_info.h deleted file mode 100644 index 7e70e998b..000000000 --- a/src/qt_gui/compatibility_info.h +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include -#include - -#include "common/config.h" -#include "core/file_format/psf.h" - -enum class CompatibilityStatus { - Unknown, - Nothing, - Boots, - Menus, - Ingame, - Playable, -}; - -// Prioritize different compatibility reports based on user's platform -enum class OSType { -#ifdef Q_OS_WIN - Win32 = 0, - Unknown, - Linux, - macOS, -#elif defined(Q_OS_LINUX) - Linux = 0, - Unknown, - Win32, - macOS, -#elif defined(Q_OS_MAC) - macOS = 0, - Unknown, - Linux, - Win32, -#endif - // Fake enum to allow for iteration - Last -}; - -struct CompatibilityEntry { - CompatibilityStatus status; - QString version; - QDateTime last_tested; - QString url; - QString issue_number; -}; - -class CompatibilityInfoClass : public QObject { - Q_OBJECT -public: - // Please think of a better alternative - inline static const std::unordered_map LabelToCompatStatus = { - {QStringLiteral("status-unknown"), CompatibilityStatus::Unknown}, - {QStringLiteral("status-nothing"), CompatibilityStatus::Nothing}, - {QStringLiteral("status-boots"), CompatibilityStatus::Boots}, - {QStringLiteral("status-menus"), CompatibilityStatus::Menus}, - {QStringLiteral("status-ingame"), CompatibilityStatus::Ingame}, - {QStringLiteral("status-playable"), CompatibilityStatus::Playable}}; - inline static const std::unordered_map LabelToOSType = { - {QStringLiteral("os-linux"), OSType::Linux}, - {QStringLiteral("os-macOS"), OSType::macOS}, - {QStringLiteral("os-windows"), OSType::Win32}, - }; - - inline static const std::unordered_map OSTypeToString = { - {OSType::Linux, QStringLiteral("os-linux")}, - {OSType::macOS, QStringLiteral("os-macOS")}, - {OSType::Win32, QStringLiteral("os-windows")}, - {OSType::Unknown, QStringLiteral("os-unknown")}}; - - CompatibilityInfoClass(); - ~CompatibilityInfoClass(); - void UpdateCompatibilityDatabase(QWidget* parent = nullptr, bool forced = false); - bool LoadCompatibilityFile(); - CompatibilityEntry GetCompatibilityInfo(const std::string& serial); - const QString GetCompatStatusString(const CompatibilityStatus status); - void ExtractCompatibilityInfo(QByteArray response); - -private: - QNetworkAccessManager* m_network_manager; - QString m_compatibility_filename; - QJsonObject m_compatibility_database; -}; \ No newline at end of file diff --git a/src/qt_gui/control_settings.cpp b/src/qt_gui/control_settings.cpp deleted file mode 100644 index 21ed50af6..000000000 --- a/src/qt_gui/control_settings.cpp +++ /dev/null @@ -1,1038 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include -#include "common/logging/log.h" -#include "common/path_util.h" -#include "control_settings.h" -#include "input/input_handler.h" -#include "ui_control_settings.h" - -ControlSettings::ControlSettings(std::shared_ptr game_info_get, bool isGameRunning, - std::string GameRunningSerial, QWidget* parent) - : QDialog(parent), m_game_info(game_info_get), GameRunning(isGameRunning), - RunningGameSerial(GameRunningSerial), ui(new Ui::ControlSettings) { - - ui->setupUi(this); - - if (!GameRunning) { - SDL_InitSubSystem(SDL_INIT_GAMEPAD); - SDL_InitSubSystem(SDL_INIT_EVENTS); - } else { - SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1"); - } - - AddBoxItems(); - SetUIValuestoMappings(); - UpdateLightbarColor(); - CheckGamePad(); - installEventFilter(this); - - ButtonsList = {ui->CrossButton, - ui->CircleButton, - ui->TriangleButton, - ui->SquareButton, - ui->L1Button, - ui->R1Button, - ui->L2Button, - ui->R2Button, - ui->L3Button, - ui->R3Button, - ui->OptionsButton, - ui->TouchpadLeftButton, - ui->TouchpadCenterButton, - ui->TouchpadRightButton, - ui->DpadUpButton, - ui->DpadDownButton, - ui->DpadLeftButton, - ui->DpadRightButton}; - - AxisList = {ui->LStickUpButton, ui->LStickDownButton, ui->LStickLeftButton, - ui->LStickRightButton, ui->RStickUpButton, ui->RStickDownButton, - ui->RStickLeftButton, ui->RStickRightButton}; - - for (auto& button : ButtonsList) { - connect(button, &QPushButton::clicked, this, - [this, &button]() { StartTimer(button, true); }); - } - - for (auto& button : AxisList) { - connect(button, &QPushButton::clicked, this, - [this, &button]() { StartTimer(button, false); }); - } - - connect(ui->buttonBox, &QDialogButtonBox::clicked, this, [this](QAbstractButton* button) { - if (button == ui->buttonBox->button(QDialogButtonBox::Save)) { - SaveControllerConfig(true); - } else if (button == ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)) { - SetDefault(); - } else if (button == ui->buttonBox->button(QDialogButtonBox::Apply)) { - SaveControllerConfig(false); - } - }); - - ui->buttonBox->button(QDialogButtonBox::Save)->setText(tr("Save")); - ui->buttonBox->button(QDialogButtonBox::Apply)->setText(tr("Apply")); - ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setText(tr("Restore Defaults")); - ui->buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("Cancel")); - - ui->PerGameCheckBox->setChecked(!Config::GetUseUnifiedInputConfig()); - - connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QWidget::close); - - connect(ui->ProfileComboBox, &QComboBox::currentTextChanged, this, [this] { - GetGameTitle(); - SetUIValuestoMappings(); - }); - - connect(ui->LeftDeadzoneSlider, &QSlider::valueChanged, this, - [this](int value) { ui->LeftDeadzoneValue->setText(QString::number(value)); }); - connect(ui->RightDeadzoneSlider, &QSlider::valueChanged, this, - [this](int value) { ui->RightDeadzoneValue->setText(QString::number(value)); }); - - connect(ui->RSlider, &QSlider::valueChanged, this, [this](int value) { - QString RedValue = QString("%1").arg(value, 3, 10, QChar('0')); - ui->RLabel->setText(RedValue); - UpdateLightbarColor(); - }); - - connect(ui->GSlider, &QSlider::valueChanged, this, [this](int value) { - QString GreenValue = QString("%1").arg(value, 3, 10, QChar('0')); - ui->GLabel->setText(GreenValue); - UpdateLightbarColor(); - }); - - connect(ui->BSlider, &QSlider::valueChanged, this, [this](int value) { - QString BlueValue = QString("%1").arg(value, 3, 10, QChar('0')); - ui->BLabel->setText(BlueValue); - UpdateLightbarColor(); - }); - - connect(this, &ControlSettings::PushGamepadEvent, this, - [this]() { CheckMapping(MappingButton); }); - connect(this, &ControlSettings::AxisChanged, this, - [this]() { ConnectAxisInputs(MappingButton); }); - connect(ui->ActiveGamepadBox, &QComboBox::currentIndexChanged, this, - &ControlSettings::ActiveControllerChanged); - - connect(ui->DefaultGamepadButton, &QPushButton::clicked, this, [this]() { - ui->DefaultGamepadName->setText(ui->ActiveGamepadBox->currentText()); - std::string GUID = - GamepadSelect::GetGUIDString(gamepads, ui->ActiveGamepadBox->currentIndex()); - ui->DefaultGamepadLabel->setText(tr("ID: ") + QString::fromStdString(GUID).right(16)); - Config::setDefaultControllerID(GUID); - Config::save(Common::FS::GetUserPath(Common::FS::PathType::UserDir) / "config.toml"); - QMessageBox::information(this, tr("Default Controller Selected"), - tr("Active controller set as default")); - }); - - connect(ui->RemoveDefaultGamepadButton, &QPushButton::clicked, this, [this]() { - ui->DefaultGamepadName->setText(tr("No default selected")); - ui->DefaultGamepadLabel->setText(tr("n/a")); - Config::setDefaultControllerID(""); - Config::save(Common::FS::GetUserPath(Common::FS::PathType::UserDir) / "config.toml"); - QMessageBox::information(this, tr("Default Controller Removed"), - tr("Default controller setting removed")); - }); - - RemapWrapper = SdlEventWrapper::Wrapper::GetInstance(); - SdlEventWrapper::Wrapper::wrapperActive = true; - QObject::connect(RemapWrapper, &SdlEventWrapper::Wrapper::SDLEvent, this, - &ControlSettings::processSDLEvents); - - if (!GameRunning) { - Polling = QtConcurrent::run(&ControlSettings::pollSDLEvents, this); - } -} - -void ControlSettings::SaveControllerConfig(bool CloseOnSave) { - QList list; - list << ui->RStickUpButton << ui->RStickRightButton << ui->LStickUpButton - << ui->LStickRightButton; - int count_axis_left_x = 0, count_axis_left_y = 0, count_axis_right_x = 0, - count_axis_right_y = 0; - for (const auto& i : list) { - if (i->text() == "axis_left_x") { - count_axis_left_x = count_axis_left_x + 1; - } else if (i->text() == "axis_left_y") { - count_axis_left_y = count_axis_left_y + 1; - } else if (i->text() == "axis_right_x") { - count_axis_right_x = count_axis_right_x + 1; - } else if (i->text() == "axis_right_y") { - count_axis_right_y = count_axis_right_y + 1; - } - } - - if (count_axis_left_x > 1 | count_axis_left_y > 1 | count_axis_right_x > 1 | - count_axis_right_y > 1) { - QMessageBox::information(this, tr("Unable to Save"), - tr("Cannot bind axis values more than once")); - return; - } - - std::string config_id; - config_id = (ui->ProfileComboBox->currentText() == tr("Common Config")) - ? "default" - : ui->ProfileComboBox->currentText().toStdString(); - const auto config_file = Config::GetFoolproofInputConfigFile(config_id); - - int lineCount = 0; - std::string line; - std::vector lines, inputs; - std::string output_string = "", input_string = ""; - std::fstream file(config_file); - - while (std::getline(file, line)) { - lineCount++; - - std::size_t comment_pos = line.find('#'); - if (comment_pos != std::string::npos) { - if (!line.contains("Range of deadzones")) - lines.push_back(line); - continue; - } - - std::size_t equal_pos = line.find('='); - if (equal_pos == std::string::npos) { - lines.push_back(line); - continue; - } - - output_string = line.substr(0, equal_pos - 1); - input_string = line.substr(equal_pos + 2); - - if (output_string.contains("hotkey")) { - lines.push_back(line); - continue; - } - - bool controllerInputdetected = false; - for (std::string input : ControllerInputs) { - // Needed to avoid detecting backspace while detecting back - if (input_string.contains(input) && !input_string.contains("backspace")) { - controllerInputdetected = true; - break; - } - } - - if (controllerInputdetected || output_string == "analog_deadzone" || - output_string == "override_controller_color") { - line.erase(); - continue; - } - lines.push_back(line); - } - - file.close(); - - // Lambda to reduce repetitive code for mapping buttons to config lines - auto add_mapping = [&](const QString& buttonText, const std::string& output_name) { - input_string = buttonText.toStdString(); - output_string = output_name; - if (input_string != "unmapped") { - lines.push_back(output_string + " = " + input_string); - inputs.push_back(input_string); - } - }; - - add_mapping(ui->CrossButton->text(), "cross"); - add_mapping(ui->CircleButton->text(), "circle"); - add_mapping(ui->SquareButton->text(), "square"); - add_mapping(ui->TriangleButton->text(), "triangle"); - - lines.push_back(""); - - add_mapping(ui->L1Button->text(), "l1"); - add_mapping(ui->R1Button->text(), "r1"); - add_mapping(ui->L2Button->text(), "l2"); - add_mapping(ui->R2Button->text(), "r2"); - add_mapping(ui->L3Button->text(), "l3"); - add_mapping(ui->R3Button->text(), "r3"); - - lines.push_back(""); - - add_mapping(ui->TouchpadLeftButton->text(), "touchpad_left"); - add_mapping(ui->TouchpadCenterButton->text(), "touchpad_center"); - add_mapping(ui->TouchpadRightButton->text(), "touchpad_right"); - add_mapping(ui->OptionsButton->text(), "options"); - - lines.push_back(""); - - add_mapping(ui->DpadUpButton->text(), "pad_up"); - add_mapping(ui->DpadDownButton->text(), "pad_down"); - add_mapping(ui->DpadLeftButton->text(), "pad_left"); - add_mapping(ui->DpadRightButton->text(), "pad_right"); - - lines.push_back(""); - - output_string = "axis_left_x"; - input_string = ui->LStickRightButton->text().toStdString(); - lines.push_back(output_string + " = " + input_string); - - output_string = "axis_left_y"; - input_string = ui->LStickUpButton->text().toStdString(); - lines.push_back(output_string + " = " + input_string); - - output_string = "axis_right_x"; - input_string = ui->RStickRightButton->text().toStdString(); - lines.push_back(output_string + " = " + input_string); - - output_string = "axis_right_y"; - input_string = ui->RStickUpButton->text().toStdString(); - lines.push_back(output_string + " = " + input_string); - - lines.push_back(""); - lines.push_back("# Range of deadzones: 1 (almost none) to 127 (max)"); - - std::string deadzonevalue = std::to_string(ui->LeftDeadzoneSlider->value()); - lines.push_back("analog_deadzone = leftjoystick, " + deadzonevalue + ", 127"); - - deadzonevalue = std::to_string(ui->RightDeadzoneSlider->value()); - lines.push_back("analog_deadzone = rightjoystick, " + deadzonevalue + ", 127"); - - lines.push_back(""); - std::string OverrideLB = ui->LightbarCheckBox->isChecked() ? "true" : "false"; - std::string LightBarR = std::to_string(ui->RSlider->value()); - std::string LightBarG = std::to_string(ui->GSlider->value()); - std::string LightBarB = std::to_string(ui->BSlider->value()); - lines.push_back("override_controller_color = " + OverrideLB + ", " + LightBarR + ", " + - LightBarG + ", " + LightBarB); - - // Prevent duplicate inputs that break the input engine - bool duplicateFound = false; - QSet duplicateMappings; - - for (auto it = inputs.begin(); it != inputs.end(); ++it) { - if (std::find(it + 1, inputs.end(), *it) != inputs.end()) { - duplicateFound = true; - duplicateMappings.insert(QString::fromStdString(*it)); - } - } - - if (duplicateFound) { - QStringList duplicatesList; - for (const QString mapping : duplicateMappings) { - for (const auto& button : ButtonsList) { - if (button->text() == mapping) - duplicatesList.append(button->objectName() + " - " + mapping); - } - } - QMessageBox::information( - this, tr("Unable to Save"), - // clang-format off - QString(tr("Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:\n\n%1").arg(duplicatesList.join("\n")))); - // clang-format on - return; - } - - std::vector save; - bool CurrentLineEmpty = false, LastLineEmpty = false; - for (auto const& line : lines) { - LastLineEmpty = CurrentLineEmpty ? true : false; - CurrentLineEmpty = line.empty() ? true : false; - if (!CurrentLineEmpty || !LastLineEmpty) - save.push_back(line); - } - - std::ofstream output_file(config_file); - for (auto const& line : save) { - output_file << line << '\n'; - } - output_file.close(); - - Config::SetUseUnifiedInputConfig(!ui->PerGameCheckBox->isChecked()); - Config::SetOverrideControllerColor(ui->LightbarCheckBox->isChecked()); - Config::SetControllerCustomColor(ui->RSlider->value(), ui->GSlider->value(), - ui->BSlider->value()); - Config::save(Common::FS::GetUserPath(Common::FS::PathType::UserDir) / "config.toml"); - - if (GameRunning) { - Config::GetUseUnifiedInputConfig() ? Input::ParseInputConfig("default") - : Input::ParseInputConfig(RunningGameSerial); - } - - if (CloseOnSave) - QWidget::close(); -} - -void ControlSettings::SetDefault() { - ui->CrossButton->setText("cross"); - ui->CircleButton->setText("circle"); - ui->SquareButton->setText("square"); - ui->TriangleButton->setText("triangle"); - ui->DpadUpButton->setText("pad_up"); - ui->DpadDownButton->setText("pad_down"); - ui->DpadLeftButton->setText("pad_left"); - ui->DpadRightButton->setText("pad_right"); - ui->L3Button->setText("l3"); - ui->R3Button->setText("r3"); - ui->L1Button->setText("l1"); - ui->R1Button->setText("r1"); - ui->L2Button->setText("l2"); - ui->R2Button->setText("r2"); - ui->OptionsButton->setText("options"); - ui->TouchpadLeftButton->setText("back"); - ui->TouchpadCenterButton->setText("unmapped"); - ui->TouchpadRightButton->setText("unmapped"); - - ui->LStickUpButton->setText("axis_left_y"); - ui->LStickDownButton->setText("axis_left_y"); - ui->LStickLeftButton->setText("axis_left_x"); - ui->LStickRightButton->setText("axis_left_x"); - ui->RStickUpButton->setText("axis_right_y"); - ui->RStickDownButton->setText("axis_right_y"); - ui->RStickLeftButton->setText("axis_right_x"); - ui->RStickRightButton->setText("axis_right_x"); - - ui->LeftDeadzoneSlider->setValue(2); - ui->RightDeadzoneSlider->setValue(2); - - ui->RSlider->setValue(0); - ui->GSlider->setValue(0); - ui->BSlider->setValue(255); - ui->LightbarCheckBox->setChecked(false); - ui->PerGameCheckBox->setChecked(false); -} - -void ControlSettings::AddBoxItems() { - ui->ProfileComboBox->addItem(tr("Common Config")); - for (int i = 0; i < m_game_info->m_games.size(); i++) { - ui->ProfileComboBox->addItem(QString::fromStdString(m_game_info->m_games[i].serial)); - } - ui->ProfileComboBox->setCurrentText(tr("Common Config")); - ui->TitleLabel->setText(tr("Common Config")); -} - -void ControlSettings::SetUIValuestoMappings() { - std::string config_id; - config_id = (ui->ProfileComboBox->currentText() == tr("Common Config")) - ? "default" - : ui->ProfileComboBox->currentText().toStdString(); - - const auto config_file = Config::GetFoolproofInputConfigFile(config_id); - std::ifstream file(config_file); - - bool CrossExists = false, CircleExists = false, SquareExists = false, TriangleExists = false, - L1Exists = false, L2Exists = false, L3Exists = false, R1Exists = false, R2Exists = false, - R3Exists = false, DPadUpExists = false, DPadDownExists = false, DPadLeftExists = false, - DPadRightExists = false, OptionsExists = false, TouchpadLeftExists = false, - TouchpadCenterExists = false, TouchpadRightExists = false, LStickXExists = false, - LStickYExists = false, RStickXExists = false, RStickYExists = false; - int lineCount = 0; - std::string line = ""; - while (std::getline(file, line)) { - lineCount++; - - line.erase(std::remove(line.begin(), line.end(), ' '), line.end()); - if (line.empty()) - continue; - - std::size_t comment_pos = line.find('#'); - if (comment_pos != std::string::npos) - line = line.substr(0, comment_pos); - - std::size_t equal_pos = line.find('='); - if (equal_pos == std::string::npos) - continue; - - std::string output_string = line.substr(0, equal_pos); - std::string input_string = line.substr(equal_pos + 1); - - bool controllerInputdetected = false; - for (std::string input : ControllerInputs) { - // Needed to avoid detecting backspace while detecting back - if (input_string.contains(input) && !input_string.contains("backspace")) { - controllerInputdetected = true; - break; - } - } - - if (controllerInputdetected) { - if (output_string == "cross") { - ui->CrossButton->setText(QString::fromStdString(input_string)); - CrossExists = true; - } else if (output_string == "circle") { - ui->CircleButton->setText(QString::fromStdString(input_string)); - CircleExists = true; - } else if (output_string == "square") { - ui->SquareButton->setText(QString::fromStdString(input_string)); - SquareExists = true; - } else if (output_string == "triangle") { - ui->TriangleButton->setText(QString::fromStdString(input_string)); - TriangleExists = true; - } else if (output_string == "l1") { - ui->L1Button->setText(QString::fromStdString(input_string)); - L1Exists = true; - } else if (output_string == "l2") { - ui->L2Button->setText(QString::fromStdString(input_string)); - L2Exists = true; - } else if (output_string == "r1") { - ui->R1Button->setText(QString::fromStdString(input_string)); - R1Exists = true; - } else if (output_string == "r2") { - ui->R2Button->setText(QString::fromStdString(input_string)); - R2Exists = true; - } else if (output_string == "l3") { - ui->L3Button->setText(QString::fromStdString(input_string)); - L3Exists = true; - } else if (output_string == "r3") { - ui->R3Button->setText(QString::fromStdString(input_string)); - R3Exists = true; - } else if (output_string == "pad_up") { - ui->DpadUpButton->setText(QString::fromStdString(input_string)); - DPadUpExists = true; - } else if (output_string == "pad_down") { - ui->DpadDownButton->setText(QString::fromStdString(input_string)); - DPadDownExists = true; - } else if (output_string == "pad_left") { - ui->DpadLeftButton->setText(QString::fromStdString(input_string)); - DPadLeftExists = true; - } else if (output_string == "pad_right") { - ui->DpadRightButton->setText(QString::fromStdString(input_string)); - DPadRightExists = true; - } else if (output_string == "options") { - ui->OptionsButton->setText(QString::fromStdString(input_string)); - OptionsExists = true; - } else if (output_string == "touchpad_left") { - ui->TouchpadLeftButton->setText(QString::fromStdString(input_string)); - TouchpadLeftExists = true; - } else if (output_string == "touchpad_center") { - ui->TouchpadCenterButton->setText(QString::fromStdString(input_string)); - TouchpadCenterExists = true; - } else if (output_string == "touchpad_right") { - ui->TouchpadRightButton->setText(QString::fromStdString(input_string)); - TouchpadRightExists = true; - } else if (output_string == "axis_left_x") { - ui->LStickRightButton->setText(QString::fromStdString(input_string)); - ui->LStickLeftButton->setText(QString::fromStdString(input_string)); - LStickXExists = true; - } else if (output_string == "axis_left_y") { - ui->LStickUpButton->setText(QString::fromStdString(input_string)); - ui->LStickDownButton->setText(QString::fromStdString(input_string)); - LStickYExists = true; - } else if (output_string == "axis_right_x") { - ui->RStickRightButton->setText(QString::fromStdString(input_string)); - ui->RStickLeftButton->setText(QString::fromStdString(input_string)); - RStickXExists = true; - } else if (output_string == "axis_right_y") { - ui->RStickUpButton->setText(QString::fromStdString(input_string)); - ui->RStickDownButton->setText(QString::fromStdString(input_string)); - RStickYExists = true; - } - } - - if (input_string.contains("leftjoystick")) { - std::size_t comma_pos = line.find(','); - if (comma_pos != std::string::npos) { - int deadzonevalue = std::stoi(line.substr(comma_pos + 1)); - ui->LeftDeadzoneSlider->setValue(deadzonevalue); - ui->LeftDeadzoneValue->setText(QString::number(deadzonevalue)); - } else { - ui->LeftDeadzoneSlider->setValue(2); - ui->LeftDeadzoneValue->setText("2"); - } - } - - if (input_string.contains("rightjoystick")) { - std::size_t comma_pos = line.find(','); - if (comma_pos != std::string::npos) { - int deadzonevalue = std::stoi(line.substr(comma_pos + 1)); - ui->RightDeadzoneSlider->setValue(deadzonevalue); - ui->RightDeadzoneValue->setText(QString::number(deadzonevalue)); - } else { - ui->RightDeadzoneSlider->setValue(2); - ui->RightDeadzoneValue->setText("2"); - } - } - - if (output_string == "override_controller_color") { - std::size_t comma_pos = line.find(','); - if (comma_pos != std::string::npos) { - std::string overridestring = line.substr(equal_pos + 1, comma_pos); - bool override = overridestring.contains("true") ? true : false; - ui->LightbarCheckBox->setChecked(override); - - std::string lightbarstring = line.substr(comma_pos + 1); - std::size_t comma_pos2 = lightbarstring.find(','); - if (comma_pos2 != std::string::npos) { - std::string Rstring = lightbarstring.substr(0, comma_pos2); - ui->RSlider->setValue(std::stoi(Rstring)); - QString RedValue = QString("%1").arg(std::stoi(Rstring), 3, 10, QChar('0')); - ui->RLabel->setText(RedValue); - } - - std::string GBstring = lightbarstring.substr(comma_pos2 + 1); - std::size_t comma_pos3 = GBstring.find(','); - if (comma_pos3 != std::string::npos) { - std::string Gstring = GBstring.substr(0, comma_pos3); - ui->GSlider->setValue(std::stoi(Gstring)); - QString GreenValue = QString("%1").arg(std::stoi(Gstring), 3, 10, QChar('0')); - ui->GLabel->setText(GreenValue); - - std::string Bstring = GBstring.substr(comma_pos3 + 1); - ui->BSlider->setValue(std::stoi(Bstring)); - QString BlueValue = QString("%1").arg(std::stoi(Bstring), 3, 10, QChar('0')); - ui->BLabel->setText(BlueValue); - } - } - } - } - file.close(); - - // If an entry does not exist in the config file, we assume the user wants it unmapped - if (!CrossExists) - ui->CrossButton->setText("unmapped"); - if (!CircleExists) - ui->CircleButton->setText("unmapped"); - if (!SquareExists) - ui->SquareButton->setText("unmapped"); - if (!TriangleExists) - ui->TriangleButton->setText("unmapped"); - if (!L1Exists) - ui->L1Button->setText("unmapped"); - if (!L2Exists) - ui->L2Button->setText("unmapped"); - if (!L3Exists) - ui->L3Button->setText("unmapped"); - if (!R1Exists) - ui->R1Button->setText("unmapped"); - if (!R2Exists) - ui->R2Button->setText("unmapped"); - if (!R3Exists) - ui->R3Button->setText("unmapped"); - if (!DPadUpExists) - ui->DpadUpButton->setText("unmapped"); - if (!DPadDownExists) - ui->DpadDownButton->setText("unmapped"); - if (!DPadLeftExists) - ui->DpadLeftButton->setText("unmapped"); - if (!DPadRightExists) - ui->DpadRightButton->setText("unmapped"); - if (!TouchpadLeftExists) - ui->TouchpadLeftButton->setText("unmapped"); - if (!TouchpadCenterExists) - ui->TouchpadCenterButton->setText("unmapped"); - if (!TouchpadRightExists) - ui->TouchpadRightButton->setText("unmapped"); - if (!OptionsExists) - ui->OptionsButton->setText("unmapped"); - - if (!LStickXExists) { - ui->LStickRightButton->setText("unmapped"); - ui->LStickLeftButton->setText("unmapped"); - } - if (!LStickYExists) { - ui->LStickUpButton->setText("unmapped"); - ui->LStickDownButton->setText("unmapped"); - } - if (!RStickXExists) { - ui->RStickRightButton->setText("unmapped"); - ui->RStickLeftButton->setText("unmapped"); - } - if (!RStickYExists) { - ui->RStickUpButton->setText("unmapped"); - ui->RStickDownButton->setText("unmapped"); - } -} - -void ControlSettings::GetGameTitle() { - if (ui->ProfileComboBox->currentText() == tr("Common Config")) { - ui->TitleLabel->setText(tr("Common Config")); - } else { - for (int i = 0; i < m_game_info->m_games.size(); i++) { - if (m_game_info->m_games[i].serial == - ui->ProfileComboBox->currentText().toStdString()) { - ui->TitleLabel->setText(QString::fromStdString(m_game_info->m_games[i].name)); - } - } - } -} - -void ControlSettings::UpdateLightbarColor() { - ui->LightbarColorFrame->setStyleSheet(""); - QString RValue = QString::number(ui->RSlider->value()); - QString GValue = QString::number(ui->GSlider->value()); - QString BValue = QString::number(ui->BSlider->value()); - QString colorstring = "background-color: rgb(" + RValue + "," + GValue + "," + BValue + ")"; - ui->LightbarColorFrame->setStyleSheet(colorstring); -} - -void ControlSettings::ActiveControllerChanged(int value) { - GamepadSelect::SetSelectedGamepad(GamepadSelect::GetGUIDString(gamepads, value)); - QString GUID = QString::fromStdString(GamepadSelect::GetSelectedGamepad()).right(16); - ui->ActiveGamepadLabel->setText("ID: " + GUID); - - if (gamepad) { - SDL_CloseGamepad(gamepad); - gamepad = nullptr; - } - - gamepad = SDL_OpenGamepad(gamepads[value]); - - if (!gamepad) { - LOG_ERROR(Input, "Failed to open gamepad: {}", SDL_GetError()); - } -} - -void ControlSettings::CheckGamePad() { - if (gamepad) { - SDL_CloseGamepad(gamepad); - gamepad = nullptr; - } - - gamepads = SDL_GetGamepads(&gamepad_count); - - if (!gamepads) { - LOG_ERROR(Input, "Cannot get gamepad list: {}", SDL_GetError()); - } - - QString defaultGUID = ""; - int defaultIndex = - GamepadSelect::GetIndexfromGUID(gamepads, gamepad_count, Config::getDefaultControllerID()); - int activeIndex = GamepadSelect::GetIndexfromGUID(gamepads, gamepad_count, - GamepadSelect::GetSelectedGamepad()); - - if (!GameRunning) { - if (activeIndex != -1) { - gamepad = SDL_OpenGamepad(gamepads[activeIndex]); - } else if (defaultIndex != -1) { - gamepad = SDL_OpenGamepad(gamepads[defaultIndex]); - } else { - LOG_INFO(Input, "Got {} gamepads. Opening the first one.", gamepad_count); - gamepad = SDL_OpenGamepad(gamepads[0]); - } - - if (!gamepad) { - LOG_ERROR(Input, "Failed to open gamepad: {}", SDL_GetError()); - } - } - - if (!gamepads || gamepad_count == 0) { - ui->ActiveGamepadBox->addItem("No gamepads detected"); - ui->ActiveGamepadBox->setCurrentIndex(0); - return; - } else { - for (int i = 0; i < gamepad_count; i++) { - QString name = SDL_GetGamepadNameForID(gamepads[i]); - ui->ActiveGamepadBox->addItem(QString("%1: %2").arg(QString::number(i + 1), name)); - } - } - - if (defaultIndex != -1) { - defaultGUID = - QString::fromStdString(GamepadSelect::GetGUIDString(gamepads, defaultIndex)).right(16); - ui->DefaultGamepadName->setText(SDL_GetGamepadNameForID(gamepads[defaultIndex])); - ui->DefaultGamepadLabel->setText(tr("ID: ") + defaultGUID); - } else { - ui->DefaultGamepadName->setText("Default controller not connected"); - ui->DefaultGamepadLabel->setText(tr("n/a")); - } - - if (activeIndex != -1) { - QString GUID = - QString::fromStdString(GamepadSelect::GetGUIDString(gamepads, activeIndex)).right(16); - ui->ActiveGamepadLabel->setText(tr("ID: ") + GUID); - ui->ActiveGamepadBox->setCurrentIndex(activeIndex); - } else if (defaultIndex != -1) { - ui->ActiveGamepadLabel->setText(defaultGUID); - ui->ActiveGamepadBox->setCurrentIndex(defaultIndex); - } else { - QString GUID = QString::fromStdString(GamepadSelect::GetGUIDString(gamepads, 0)).right(16); - ui->ActiveGamepadLabel->setText("ID: " + GUID); - ui->ActiveGamepadBox->setCurrentIndex(0); - } -} - -void ControlSettings::DisableMappingButtons() { - for (const auto& i : ButtonsList) { - i->setEnabled(false); - } - - for (const auto& i : AxisList) { - i->setEnabled(false); - } - - ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(false); - ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false); - ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setEnabled(false); -} - -void ControlSettings::EnableMappingButtons() { - for (const auto& i : ButtonsList) { - i->setEnabled(true); - } - - for (const auto& i : AxisList) { - i->setEnabled(true); - } - - ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(true); - ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true); - ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setEnabled(true); -} - -void ControlSettings::ConnectAxisInputs(QPushButton*& button) { - QString input = button->text(); - if (button == ui->LStickUpButton) { - ui->LStickDownButton->setText(input); - } else if (button == ui->LStickDownButton) { - ui->LStickUpButton->setText(input); - } else if (button == ui->LStickLeftButton) { - ui->LStickRightButton->setText(input); - } else if (button == ui->LStickRightButton) { - ui->LStickLeftButton->setText(input); - } else if (button == ui->RStickUpButton) { - ui->RStickDownButton->setText(input); - } else if (button == ui->RStickDownButton) { - ui->RStickUpButton->setText(input); - } else if (button == ui->RStickLeftButton) { - ui->RStickRightButton->setText(input); - } else if (button == ui->RStickRightButton) { - ui->RStickLeftButton->setText(input); - } -} - -void ControlSettings::StartTimer(QPushButton*& button, bool isButton) { - MappingTimer = 3; - isButton ? EnableButtonMapping = true : EnableAxisMapping = true; - MappingCompleted = false; - mapping = button->text(); - DisableMappingButtons(); - - EnableButtonMapping - ? button->setText(tr("Press a button") + " [" + QString::number(MappingTimer) + "]") - : button->setText(tr("Move analog stick") + " [" + QString::number(MappingTimer) + "]"); - - timer = new QTimer(this); - MappingButton = button; - timer->start(1000); - connect(timer, &QTimer::timeout, this, [this]() { CheckMapping(MappingButton); }); -} - -void ControlSettings::CheckMapping(QPushButton*& button) { - MappingTimer -= 1; - EnableButtonMapping - ? button->setText(tr("Press a button") + " [" + QString::number(MappingTimer) + "]") - : button->setText(tr("Move analog stick") + " [" + QString::number(MappingTimer) + "]"); - - if (pressedButtons.size() > 0) { - QStringList keyStrings; - - for (const QString& buttonAction : pressedButtons) { - keyStrings << buttonAction; - } - - QString combo = keyStrings.join(","); - SetMapping(combo); - MappingButton->setText(combo); - pressedButtons.clear(); - } - - if (MappingCompleted || MappingTimer <= 0) { - button->setText(mapping); - EnableButtonMapping = false; - EnableAxisMapping = false; - L2Pressed = false; - R2Pressed = false; - EnableMappingButtons(); - timer->stop(); - } -} - -void ControlSettings::SetMapping(QString input) { - mapping = input; - MappingCompleted = true; - if (EnableAxisMapping) { - emit PushGamepadEvent(); - emit AxisChanged(); - } -} - -// use QT events instead of SDL to override default event closing the window with escape -bool ControlSettings::eventFilter(QObject* obj, QEvent* event) { - if (event->type() == QEvent::KeyPress && EnableButtonMapping) { - QKeyEvent* keyEvent = static_cast(event); - if (keyEvent->key() == Qt::Key_Escape) { - SetMapping("unmapped"); - return true; - } - } - return QDialog::eventFilter(obj, event); -} - -void ControlSettings::processSDLEvents(int Type, int Input, int Value) { - if (EnableButtonMapping) { - - if (pressedButtons.size() >= 3) { - return; - } - - if (Type == SDL_EVENT_GAMEPAD_BUTTON_DOWN) { - switch (Input) { - case SDL_GAMEPAD_BUTTON_SOUTH: - pressedButtons.insert(5, "cross"); - break; - case SDL_GAMEPAD_BUTTON_EAST: - pressedButtons.insert(6, "circle"); - break; - case SDL_GAMEPAD_BUTTON_NORTH: - pressedButtons.insert(7, "triangle"); - break; - case SDL_GAMEPAD_BUTTON_WEST: - pressedButtons.insert(8, "square"); - break; - case SDL_GAMEPAD_BUTTON_LEFT_SHOULDER: - pressedButtons.insert(3, "l1"); - break; - case SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER: - pressedButtons.insert(4, "r1"); - break; - case SDL_GAMEPAD_BUTTON_LEFT_STICK: - pressedButtons.insert(9, "l3"); - break; - case SDL_GAMEPAD_BUTTON_RIGHT_STICK: - pressedButtons.insert(10, "r3"); - break; - case SDL_GAMEPAD_BUTTON_DPAD_UP: - pressedButtons.insert(13, "pad_up"); - break; - case SDL_GAMEPAD_BUTTON_DPAD_DOWN: - pressedButtons.insert(14, "pad_down"); - break; - case SDL_GAMEPAD_BUTTON_DPAD_LEFT: - pressedButtons.insert(15, "pad_left"); - break; - case SDL_GAMEPAD_BUTTON_DPAD_RIGHT: - pressedButtons.insert(16, "pad_right"); - break; - case SDL_GAMEPAD_BUTTON_BACK: - pressedButtons.insert(11, "back"); - break; - case SDL_GAMEPAD_BUTTON_LEFT_PADDLE1: - pressedButtons.insert(17, "lpaddle_high"); - break; - case SDL_GAMEPAD_BUTTON_RIGHT_PADDLE1: - pressedButtons.insert(18, "rpaddle_high"); - break; - case SDL_GAMEPAD_BUTTON_LEFT_PADDLE2: - pressedButtons.insert(19, "lpaddle_low"); - break; - case SDL_GAMEPAD_BUTTON_RIGHT_PADDLE2: - pressedButtons.insert(20, "rpaddle_low"); - break; - case SDL_GAMEPAD_BUTTON_START: - pressedButtons.insert(12, "options"); - break; - default: - break; - } - } - - if (Type == SDL_EVENT_GAMEPAD_AXIS_MOTION) { - // SDL trigger axis values range from 0 to 32000, set mapping on half movement - // Set zone for trigger release signal arbitrarily at 5000 - switch (Input) { - case SDL_GAMEPAD_AXIS_LEFT_TRIGGER: - if (Value > 16000) { - pressedButtons.insert(1, "l2"); - L2Pressed = true; - } else if (Value < 5000) { - if (L2Pressed && !R2Pressed) - emit PushGamepadEvent(); - } - break; - case SDL_GAMEPAD_AXIS_RIGHT_TRIGGER: - if (Value > 16000) { - pressedButtons.insert(2, "r2"); - R2Pressed = true; - } else if (Value < 5000) { - if (R2Pressed && !L2Pressed) - emit PushGamepadEvent(); - } - break; - default: - break; - } - } - - if (Type == SDL_EVENT_GAMEPAD_BUTTON_UP) - emit PushGamepadEvent(); - - } else if (EnableAxisMapping) { - if (Type == SDL_EVENT_GAMEPAD_AXIS_MOTION) { - // SDL stick axis values range from -32000 to 32000, set mapping on half movement - if (Value > 16000 || Value < -16000) { - switch (Input) { - case SDL_GAMEPAD_AXIS_LEFTX: - SetMapping("axis_left_x"); - break; - case SDL_GAMEPAD_AXIS_LEFTY: - SetMapping("axis_left_y"); - break; - case SDL_GAMEPAD_AXIS_RIGHTX: - SetMapping("axis_right_x"); - break; - case SDL_GAMEPAD_AXIS_RIGHTY: - SetMapping("axis_right_y"); - break; - default: - break; - } - } - } - } - - if (Type == SDL_EVENT_GAMEPAD_ADDED || SDL_EVENT_GAMEPAD_REMOVED) { - ui->ActiveGamepadBox->clear(); - CheckGamePad(); - } -} - -void ControlSettings::pollSDLEvents() { - SDL_Event event; - while (SdlEventWrapper::Wrapper::wrapperActive) { - - if (!SDL_WaitEvent(&event)) { - return; - } - - if (event.type == SDL_EVENT_QUIT) { - return; - } - - SdlEventWrapper::Wrapper::GetInstance()->Wrapper::ProcessEvent(&event); - } -} - -void ControlSettings::Cleanup() { - SdlEventWrapper::Wrapper::wrapperActive = false; - if (gamepad) { - SDL_CloseGamepad(gamepad); - gamepad = nullptr; - } - - SDL_free(gamepads); - - if (!GameRunning) { - SDL_Event quitLoop{}; - quitLoop.type = SDL_EVENT_QUIT; - SDL_PushEvent(&quitLoop); - Polling.waitForFinished(); - - SDL_QuitSubSystem(SDL_INIT_GAMEPAD); - SDL_QuitSubSystem(SDL_INIT_EVENTS); - SDL_Quit(); - } else { - if (!Config::getBackgroundControllerInput()) { - SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "0"); - } - SDL_Event checkGamepad{}; - checkGamepad.type = SDL_EVENT_CHANGE_CONTROLLER; - SDL_PushEvent(&checkGamepad); - } -} - -ControlSettings::~ControlSettings() {} diff --git a/src/qt_gui/control_settings.h b/src/qt_gui/control_settings.h deleted file mode 100644 index 1fa6337bb..000000000 --- a/src/qt_gui/control_settings.h +++ /dev/null @@ -1,87 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once -#include -#include -#include -#include "game_info.h" -#include "sdl_event_wrapper.h" - -namespace Ui { -class ControlSettings; -} - -class ControlSettings : public QDialog { - Q_OBJECT -public: - explicit ControlSettings(std::shared_ptr game_info_get, bool GameRunning, - std::string GameRunningSerial, QWidget* parent = nullptr); - ~ControlSettings(); - -signals: - void PushGamepadEvent(); - void AxisChanged(); - -private Q_SLOTS: - void SaveControllerConfig(bool CloseOnSave); - void SetDefault(); - void UpdateLightbarColor(); - void CheckMapping(QPushButton*& button); - void StartTimer(QPushButton*& button, bool isButton); - void ConnectAxisInputs(QPushButton*& button); - void ActiveControllerChanged(int value); - -private: - std::unique_ptr ui; - std::shared_ptr m_game_info; - - bool eventFilter(QObject* obj, QEvent* event) override; - void AddBoxItems(); - void SetUIValuestoMappings(); - void GetGameTitle(); - void CheckGamePad(); - void processSDLEvents(int Type, int Input, int Value); - void pollSDLEvents(); - void SetMapping(QString input); - void DisableMappingButtons(); - void EnableMappingButtons(); - void Cleanup(); - - // use QMap instead of QSet to maintain order of inserted strings - QMap pressedButtons; - QList ButtonsList; - QList AxisList; - - std::string RunningGameSerial; - bool GameRunning; - bool L2Pressed = false; - bool R2Pressed = false; - bool EnableButtonMapping = false; - bool EnableAxisMapping = false; - bool MappingCompleted = false; - QString mapping; - int MappingTimer; - int gamepad_count; - QTimer* timer; - QPushButton* MappingButton; - SDL_Gamepad* gamepad = nullptr; - SDL_JoystickID* gamepads; - SdlEventWrapper::Wrapper* RemapWrapper; - QFuture Polling; - - const std::vector ControllerInputs = { - "cross", "circle", "square", "triangle", "l1", - "r1", "l2", "r2", "l3", - - "r3", "options", "pad_up", - - "pad_down", - - "pad_left", "pad_right", "axis_left_x", "axis_left_y", "axis_right_x", - "axis_right_y", "back"}; - -protected: - void closeEvent(QCloseEvent* event) override { - Cleanup(); - } -}; diff --git a/src/qt_gui/control_settings.ui b/src/qt_gui/control_settings.ui deleted file mode 100644 index bdb2146bc..000000000 --- a/src/qt_gui/control_settings.ui +++ /dev/null @@ -1,1816 +0,0 @@ - - - - ControlSettings - - - Qt::WindowModality::WindowModal - - - - 0 - 0 - 1124 - 847 - - - - Configure Controls - - - - :/rpcs3.ico:/rpcs3.ico - - - - - - true - - - - - 0 - 0 - 1104 - 797 - - - - - - 0 - 0 - 1101 - 791 - - - - - - - 5 - - - - - true - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - D-Pad - - - - 6 - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 152 - 0 - - - - - 0 - 16777215 - - - - Up - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - Left - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - Right - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 152 - 0 - - - - - 124 - 16777215 - - - - Down - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - - L1 and L2 - - - - - - - 0 - 0 - - - - L1 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - L2 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - - 0 - 0 - - - - Left Stick Deadzone (def:2 max:127) - - - - - - - 0 - 0 - - - - Left Deadzone - - - Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - - - - - - - - 0 - 0 - - - - 1 - - - 127 - - - Qt::Orientation::Horizontal - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - Left Stick - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 16777215 - 2121 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - - 152 - 16777215 - - - - Up - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - Left - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - - 179 - 16777215 - - - - Right - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 152 - 0 - - - - - 124 - 21212 - - - - Down - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - - - - 0 - - - - - - 0 - 0 - - - - - 12 - true - - - - Config Selection - - - Qt::AlignmentFlag::AlignCenter - - - - - - - - - 9 - false - - - - - - - -1 - - - Common Config - - - - - - - - 10 - true - - - - Common Config - - - Qt::AlignmentFlag::AlignCenter - - - true - - - - - - - - - - 0 - 0 - - - - - 9 - false - - - - Use per-game configs - - - - - - - - 9 - true - - - - Active Gamepad - - - - - - - 9 - false - - - - - - - - - 9 - false - - - - Gamepad ID - - - Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - - - - - - - - - - - 9 - true - - - - Default Gamepad - - - - - - No default selected - - - - - - - - 9 - false - - - - n/a - - - Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - - - - - - - - - - - - - 9 - true - - - - Set Active Gamepad as Default - - - - - - - - 9 - true - - - - Remove Default Gamepad - - - - - - - - - - - - - 0 - 200 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 415 - 256 - - - - :/images/ps4_controller.png - - - true - - - Qt::AlignmentFlag::AlignBottom|Qt::AlignmentFlag::AlignHCenter - - - - - - - - - - 10 - - - QLayout::SizeConstraint::SetDefaultConstraint - - - - - - - - 0 - 0 - - - - L3 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - Options - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - - 0 - 0 - - - - R3 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - - - - - Touchpad Left - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - Touchpad Center - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - Touchpad Right - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - - - - - false - - - - Color Adjustment - - - - 6 - - - 6 - - - - - 6 - - - - - - false - - - - RED - - - - - - - - 0 - 0 - - - - 255 - - - Qt::Orientation::Horizontal - - - - - - - - 20 - 16777215 - - - - 000 - - - - - - - - - - - - false - - - - GREEN - - - - - - - - 0 - 0 - - - - 255 - - - Qt::Orientation::Horizontal - - - - - - - - 20 - 16777215 - - - - 000 - - - - - - - - - - - - false - - - - BLUE - - - - - - - - 0 - 0 - - - - 255 - - - 255 - - - Qt::Orientation::Horizontal - - - - - - - - 20 - 16777215 - - - - 255 - - - - - - - - - - - - - - - - - false - - - - Override Lightbar Color - - - - - - - false - - - - Override Color - - - - - - - QFrame::Shape::StyledPanel - - - QFrame::Shadow::Raised - - - - - - - - - - - - - - - - 5 - - - - - - 0 - 0 - - - - Face Buttons - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - - 152 - 0 - - - - - 0 - 16777215 - - - - Triangle - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - Square - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - Circle - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 152 - 0 - - - - - 124 - 16777215 - - - - Cross - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - - R1 and R2 - - - - - - - 0 - 0 - - - - R1 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - R2 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - - - - Qt::Orientation::Vertical - - - QSizePolicy::Policy::Expanding - - - - 20 - 40 - - - - - - - - - 0 - 0 - - - - Right Stick Deadzone (def:2, max:127) - - - - - - - 0 - 0 - - - - Right Deadzone - - - Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - - - - - - - - 0 - 0 - - - - 1 - - - 127 - - - Qt::Orientation::Horizontal - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - Right Stick - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 152 - 1231321 - - - - Up - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - Left - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - Right - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - unmapped - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 152 - 0 - - - - - 124 - 2121 - - - - Down - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - - - - - - - - - QDialogButtonBox::StandardButton::Apply|QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::RestoreDefaults|QDialogButtonBox::StandardButton::Save - - - false - - - - - - - - - - diff --git a/src/qt_gui/elf_viewer.cpp b/src/qt_gui/elf_viewer.cpp deleted file mode 100644 index 8d472755b..000000000 --- a/src/qt_gui/elf_viewer.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "elf_viewer.h" - -ElfViewer::ElfViewer(std::shared_ptr gui_settings, QWidget* parent) - : QTableWidget(parent), m_gui_settings(std::move(gui_settings)) { - - list = gui_settings::Var2List(m_gui_settings->GetValue(gui::gen_elfDirs)); - for (const auto& str : list) { - dir_list.append(str); - } - - CheckElfFolders(); - - this->setShowGrid(false); - this->setEditTriggers(QAbstractItemView::NoEditTriggers); - this->setSelectionBehavior(QAbstractItemView::SelectRows); - this->setSelectionMode(QAbstractItemView::SingleSelection); - this->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); - this->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); - this->verticalScrollBar()->installEventFilter(this); - this->verticalScrollBar()->setSingleStep(20); - this->horizontalScrollBar()->setSingleStep(20); - this->verticalHeader()->setVisible(false); - this->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); - this->horizontalHeader()->setHighlightSections(false); - this->horizontalHeader()->setSortIndicatorShown(true); - this->horizontalHeader()->setStretchLastSection(true); - this->setContextMenuPolicy(Qt::CustomContextMenu); - this->setColumnCount(2); - this->setColumnWidth(0, 250); - this->setColumnWidth(1, 400); - this->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); - this->setStyleSheet("QTableWidget { background-color: #D3D3D3; }"); - OpenElfFiles(); - QStringList headers; - headers << "Name" - << "Path"; - this->setHorizontalHeaderLabels(headers); - this->horizontalHeader()->setSortIndicatorShown(true); - this->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); -} - -void ElfViewer::OpenElfFolder() { - QString folderPath = - QFileDialog::getExistingDirectory(this, tr("Open Folder"), QDir::homePath()); - if (!dir_list.contains(folderPath)) { - dir_list.append(folderPath); - QDir directory(folderPath); - QFileInfoList fileInfoList = directory.entryInfoList(QDir::Files); - for (const QFileInfo& fileInfo : fileInfoList) { - QString file_ext = fileInfo.suffix(); - if (fileInfo.isFile() && (file_ext == "bin" || file_ext == "elf")) { - m_elf_list.append(fileInfo.absoluteFilePath()); - } - } - std::ranges::sort(m_elf_list); - OpenElfFiles(); - list.clear(); - for (auto dir : dir_list) { - list.push_back(dir); - } - m_gui_settings->SetValue(gui::gen_elfDirs, gui_settings::List2Var(list)); - } else { - // qDebug() << "Folder selection canceled."; - } -} - -void ElfViewer::CheckElfFolders() { - m_elf_list.clear(); - for (const QString& dir : dir_list) { - QDir directory(dir); - QFileInfoList fileInfoList = directory.entryInfoList(QDir::Files); - for (const QFileInfo& fileInfo : fileInfoList) { - QString file_ext = fileInfo.suffix(); - if (fileInfo.isFile() && (file_ext == "bin" || file_ext == "elf")) { - m_elf_list.append(fileInfo.absoluteFilePath()); - } - } - } - std::sort(m_elf_list.begin(), m_elf_list.end()); -} - -void ElfViewer::OpenElfFiles() { - this->clearContents(); - this->setRowCount(m_elf_list.size()); - for (int i = 0; auto elf : m_elf_list) { - QTableWidgetItem* item = new QTableWidgetItem(); - QFileInfo fileInfo(m_elf_list[i]); - QString fileName = fileInfo.baseName(); - SetTableItem(this, i, 0, fileName); - item = new QTableWidgetItem(); - SetTableItem(this, i, 1, m_elf_list[i]); - i++; - } - this->resizeColumnsToContents(); -} \ No newline at end of file diff --git a/src/qt_gui/elf_viewer.h b/src/qt_gui/elf_viewer.h deleted file mode 100644 index 6256abf31..000000000 --- a/src/qt_gui/elf_viewer.h +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include - -#include "core/loader/elf.h" -#include "game_list_frame.h" - -class ElfViewer : public QTableWidget { - Q_OBJECT -public: - explicit ElfViewer(std::shared_ptr gui_settings, QWidget* parent = nullptr); - QStringList m_elf_list; - -private: - void CheckElfFolders(); - void OpenElfFiles(); - - Core::Loader::Elf m_elf_file; - QStringList dir_list; - QStringList elf_headers_list; - QList list; - std::shared_ptr m_gui_settings; - - void SetTableItem(QTableWidget* game_list, int row, int column, QString itemStr) { - QTableWidgetItem* item = new QTableWidgetItem(); - QWidget* widget = new QWidget(this); - QVBoxLayout* layout = new QVBoxLayout(widget); - QLabel* label = new QLabel(itemStr, widget); - - label->setStyleSheet("color: white; font-size: 15px; font-weight: bold;"); - - // Create shadow effect - QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect(); - shadowEffect->setBlurRadius(5); // Set the blur radius of the shadow - shadowEffect->setColor(QColor(0, 0, 0, 160)); // Set the color and opacity of the shadow - shadowEffect->setOffset(2, 2); // Set the offset of the shadow - - label->setGraphicsEffect(shadowEffect); // Apply shadow effect to the QLabel - - layout->addWidget(label); - if (column != 8 && column != 1) - layout->setAlignment(Qt::AlignCenter); - widget->setLayout(layout); - game_list->setItem(row, column, item); - game_list->setCellWidget(row, column, widget); - } - -public slots: - void OpenElfFolder(); -}; diff --git a/src/qt_gui/game_grid_frame.cpp b/src/qt_gui/game_grid_frame.cpp deleted file mode 100644 index 7608e1150..000000000 --- a/src/qt_gui/game_grid_frame.cpp +++ /dev/null @@ -1,297 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "common/path_util.h" -#include "game_grid_frame.h" -#include "qt_gui/compatibility_info.h" - -GameGridFrame::GameGridFrame(std::shared_ptr gui_settings, - std::shared_ptr game_info_get, - std::shared_ptr compat_info_get, - QWidget* parent) - : QTableWidget(parent), m_gui_settings(std::move(gui_settings)), m_game_info(game_info_get), - m_compat_info(compat_info_get) { - icon_size = m_gui_settings->GetValue(gui::gg_icon_size).toInt(); - windowWidth = parent->width(); - this->setShowGrid(false); - this->setEditTriggers(QAbstractItemView::NoEditTriggers); - this->setSelectionBehavior(QAbstractItemView::SelectItems); - this->setSelectionMode(QAbstractItemView::SingleSelection); - this->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); - this->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); - this->verticalScrollBar()->installEventFilter(this); - this->verticalScrollBar()->setSingleStep(20); - this->horizontalScrollBar()->setSingleStep(20); - this->horizontalHeader()->setVisible(false); - this->verticalHeader()->setVisible(false); - this->setContextMenuPolicy(Qt::CustomContextMenu); - PopulateGameGrid(m_game_info->m_games, false); - - connect(this, &QTableWidget::currentCellChanged, this, &GameGridFrame::onCurrentCellChanged); - - connect(this->verticalScrollBar(), &QScrollBar::valueChanged, this, - &GameGridFrame::RefreshGridBackgroundImage); - connect(this->horizontalScrollBar(), &QScrollBar::valueChanged, this, - &GameGridFrame::RefreshGridBackgroundImage); - connect(this, &QTableWidget::customContextMenuRequested, this, [=, this](const QPoint& pos) { - m_gui_context_menus.RequestGameMenu(pos, m_game_info->m_games, m_compat_info, - m_gui_settings, this, false); - PopulateGameGrid(m_game_info->m_games, false); - }); -} - -void GameGridFrame::onCurrentCellChanged(int currentRow, int currentColumn, int previousRow, - int previousColumn) { - // Early exit for invalid indices - if (currentRow < 0 || currentColumn < 0) { - cellClicked = false; - validCellSelected = false; - BackgroundMusicPlayer::getInstance().stopMusic(); - return; - } - - crtRow = currentRow; - crtColumn = currentColumn; - columnCnt = this->columnCount(); - - // Prevent integer overflow - if (columnCnt <= 0 || crtRow > (std::numeric_limits::max() / columnCnt)) { - cellClicked = false; - validCellSelected = false; - BackgroundMusicPlayer::getInstance().stopMusic(); - return; - } - - auto itemID = (crtRow * columnCnt) + currentColumn; - if (itemID < 0 || itemID > m_game_info->m_games.count() - 1) { - cellClicked = false; - validCellSelected = false; - BackgroundMusicPlayer::getInstance().stopMusic(); - return; - } - - cellClicked = true; - validCellSelected = true; - SetGridBackgroundImage(crtRow, crtColumn); - auto snd0Path = QString::fromStdString(m_game_info->m_games[itemID].snd0_path.string()); - PlayBackgroundMusic(snd0Path); -} - -void GameGridFrame::PlayBackgroundMusic(QString path) { - if (path.isEmpty() || !m_gui_settings->GetValue(gui::gl_playBackgroundMusic).toBool()) { - BackgroundMusicPlayer::getInstance().stopMusic(); - return; - } - BackgroundMusicPlayer::getInstance().playMusic(path); -} - -void GameGridFrame::PopulateGameGrid(QVector m_games_search, bool fromSearch) { - this->crtRow = -1; - this->crtColumn = -1; - QVector m_games_; - this->clearContents(); - if (fromSearch) { - SortByFavorite(&m_games_search); - m_games_ = m_games_search; - } else { - SortByFavorite(&(m_game_info->m_games)); - m_games_ = m_game_info->m_games; - } - m_games_shared = std::make_shared>(m_games_); - icon_size = - m_gui_settings->GetValue(gui::gg_icon_size).toInt(); // update icon size for resize event. - - int gamesPerRow = windowWidth / (icon_size + 20); // 2 x cell widget border size. - int row = 0; - int gameCounter = 0; - int rowCount = m_games_.size() / gamesPerRow; - if (m_games_.size() % gamesPerRow != 0) { - rowCount += 1; // Add an extra row for the remainder - } - - int column = 0; - this->setColumnCount(gamesPerRow); - this->setRowCount(rowCount); - for (int i = 0; i < m_games_.size(); i++) { - QWidget* widget = new QWidget(); - QVBoxLayout* layout = new QVBoxLayout(); - - QWidget* image_container = new QWidget(); - image_container->setFixedSize(icon_size, icon_size); - - QLabel* image_label = new QLabel(image_container); - QImage icon = m_games_[gameCounter].icon.scaled( - QSize(icon_size, icon_size), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); - image_label->setFixedSize(icon.width(), icon.height()); - image_label->setPixmap(QPixmap::fromImage(icon)); - image_label->move(0, 0); - SetFavoriteIcon(image_container, m_games_, gameCounter); - SetGameConfigIcon(image_container, m_games_, gameCounter); - - QLabel* name_label = new QLabel(QString::fromStdString(m_games_[gameCounter].serial)); - name_label->setAlignment(Qt::AlignHCenter); - layout->addWidget(image_container); - layout->addWidget(name_label); - - // Resizing of font-size. - float fontSize = (m_gui_settings->GetValue(gui::gg_icon_size).toInt() / 5.5f); - QString styleSheet = - QString("color: white; font-weight: bold; font-size: %1px;").arg(fontSize); - name_label->setStyleSheet(styleSheet); - - QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect(); - shadowEffect->setBlurRadius(5); // Set the blur radius of the shadow - shadowEffect->setColor(QColor(0, 0, 0, 160)); // Set the color and opacity of the shadow - shadowEffect->setOffset(2, 2); // Set the offset of the shadow - - name_label->setGraphicsEffect(shadowEffect); - widget->setLayout(layout); - QString tooltipText = QString::fromStdString(m_games_[gameCounter].name + " (" + - m_games_[gameCounter].version + ", " + - m_games_[gameCounter].region + ")"); - widget->setToolTip(tooltipText); - QString tooltipStyle = QString("QToolTip {" - "background-color: #ffffff;" - "color: #000000;" - "border: 1px solid #000000;" - "padding: 2px;" - "font-size: 12px; }"); - widget->setStyleSheet(tooltipStyle); - this->setCellWidget(row, column, widget); - - column++; - if (column == gamesPerRow) { - column = 0; - row++; - } - - gameCounter++; - if (gameCounter >= m_games_.size()) { - break; - } - } - m_games_.clear(); - this->resizeRowsToContents(); - this->resizeColumnsToContents(); -} - -void GameGridFrame::SetGridBackgroundImage(int row, int column) { - int itemID = (row * this->columnCount()) + column; - QWidget* item = this->cellWidget(row, column); - if (!item) { - // handle case where no item was clicked - return; - } - - // If background images are hidden, clear the background image - if (!m_gui_settings->GetValue(gui::gl_showBackgroundImage).toBool()) { - backgroundImage = QImage(); - m_last_opacity = -1; // Reset opacity tracking when disabled - m_current_game_path.clear(); // Reset current game path - RefreshGridBackgroundImage(); - return; - } - - const auto& game = (*m_games_shared)[itemID]; - const int opacity = m_gui_settings->GetValue(gui::gl_backgroundImageOpacity).toInt(); - - // Recompute if opacity changed or we switched to a different game - if (opacity != m_last_opacity || game.pic_path != m_current_game_path) { - QImage original_image(QString::fromStdString(game.pic_path.string())); - if (!original_image.isNull()) { - backgroundImage = m_game_list_utils.ChangeImageOpacity( - original_image, original_image.rect(), opacity / 100.0f); - m_last_opacity = opacity; - m_current_game_path = game.pic_path; - } - } - - RefreshGridBackgroundImage(); -} - -void GameGridFrame::RefreshGridBackgroundImage() { - QPalette palette; - if (!backgroundImage.isNull() && - m_gui_settings->GetValue(gui::gl_showBackgroundImage).toBool()) { - QSize widgetSize = size(); - QPixmap scaledPixmap = - QPixmap::fromImage(backgroundImage) - .scaled(widgetSize, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation); - int x = (widgetSize.width() - scaledPixmap.width()) / 2; - int y = (widgetSize.height() - scaledPixmap.height()) / 2; - QPixmap finalPixmap(widgetSize); - finalPixmap.fill(Qt::transparent); - QPainter painter(&finalPixmap); - painter.drawPixmap(x, y, scaledPixmap); - palette.setBrush(QPalette::Base, QBrush(finalPixmap)); - } - QColor transparentColor = QColor(135, 206, 235, 40); - palette.setColor(QPalette::Highlight, transparentColor); - this->setPalette(palette); -} - -void GameGridFrame::resizeEvent(QResizeEvent* event) { - QTableWidget::resizeEvent(event); - RefreshGridBackgroundImage(); -} - -bool GameGridFrame::IsValidCellSelected() { - return validCellSelected; -} - -void GameGridFrame::SetFavoriteIcon(QWidget* parentWidget, QVector m_games_, - int gameCounter) { - QString serialStr = QString::fromStdString(m_games_[gameCounter].serial); - QList list = gui_settings::Var2List(m_gui_settings->GetValue(gui::favorites_list)); - bool isFavorite = list.contains(serialStr); - - QLabel* label = new QLabel(parentWidget); - label->setPixmap(QPixmap(":images/favorite_icon.png") - .scaled(icon_size / 3.8, icon_size / 3.8, Qt::KeepAspectRatio, - Qt::SmoothTransformation)); - label->move(icon_size - icon_size / 4, 2); - label->raise(); - label->setVisible(isFavorite); - label->setObjectName("favoriteIcon"); -} - -void GameGridFrame::SetGameConfigIcon(QWidget* parentWidget, QVector m_games_, - int gameCounter) { - std::string serialStr = m_games_[gameCounter].serial; - - bool hasGameConfig = std::filesystem::exists( - Common::FS::GetUserPath(Common::FS::PathType::CustomConfigs) / (serialStr + ".toml")); - - QLabel* label = new QLabel(parentWidget); - label->setPixmap(QPixmap(":images/game_settings.png") - .scaled(icon_size / 3.8, icon_size / 3.8, Qt::KeepAspectRatio, - Qt::SmoothTransformation)); - label->move(2, 2); - label->raise(); - label->setVisible(hasGameConfig); - label->setObjectName("gameConfigIcon"); -} - -void GameGridFrame::SortByFavorite(QVector* game_list) { - std::sort(game_list->begin(), game_list->end(), [this](const GameInfo& a, const GameInfo& b) { - return this->CompareWithFavorite(a, b); - }); -} - -bool GameGridFrame::CompareWithFavorite(GameInfo a, GameInfo b) { - std::string serial_a = a.serial; - std::string serial_b = b.serial; - QString serialStr_a = QString::fromStdString(a.serial); - QString serialStr_b = QString::fromStdString(b.serial); - QList list = gui_settings::Var2List(m_gui_settings->GetValue(gui::favorites_list)); - bool isFavorite_a = list.contains(serialStr_a); - bool isFavorite_b = list.contains(serialStr_b); - if (isFavorite_a != isFavorite_b) { - return isFavorite_a; - } else { - std::string name_a = a.name, name_b = b.name; - std::transform(name_a.begin(), name_a.end(), name_a.begin(), ::tolower); - std::transform(name_b.begin(), name_b.end(), name_b.begin(), ::tolower); - return name_a < name_b; - } -} diff --git a/src/qt_gui/game_grid_frame.h b/src/qt_gui/game_grid_frame.h deleted file mode 100644 index 4da5b9147..000000000 --- a/src/qt_gui/game_grid_frame.h +++ /dev/null @@ -1,61 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include - -#include "background_music_player.h" -#include "common/config.h" -#include "game_info.h" -#include "game_list_utils.h" -#include "gui_context_menus.h" -#include "gui_settings.h" -#include "qt_gui/compatibility_info.h" - -class GameGridFrame : public QTableWidget { - Q_OBJECT - -Q_SIGNALS: - void GameGridFrameClosed(); - -public Q_SLOTS: - void SetGridBackgroundImage(int row, int column); - void RefreshGridBackgroundImage(); - void resizeEvent(QResizeEvent* event); - void PlayBackgroundMusic(QString path); - void onCurrentCellChanged(int currentRow, int currentColumn, int previousRow, - int previousColumn); - -private: - QImage backgroundImage; - GameListUtils m_game_list_utils; - GuiContextMenus m_gui_context_menus; - std::shared_ptr m_game_info; - std::shared_ptr m_compat_info; - std::shared_ptr> m_games_shared; - bool validCellSelected = false; - int m_last_opacity = -1; // Track last opacity to avoid unnecessary recomputation - std::filesystem::path m_current_game_path; // Track current game path to detect changes - std::shared_ptr m_gui_settings; - void SetFavoriteIcon(QWidget* parentWidget, QVector m_games_, int gameCounter); - void SetGameConfigIcon(QWidget* parentWidget, QVector m_games_, int gameCounter); - bool CompareWithFavorite(GameInfo a, GameInfo b); - -public: - explicit GameGridFrame(std::shared_ptr gui_settings, - std::shared_ptr game_info_get, - std::shared_ptr compat_info_get, - QWidget* parent = nullptr); - void PopulateGameGrid(QVector m_games, bool fromSearch); - bool IsValidCellSelected(); - void SortByFavorite(QVector* game_list); - - bool cellClicked = false; - int icon_size; - int windowWidth; - int crtRow; - int crtColumn; - int columnCnt; -}; diff --git a/src/qt_gui/game_info.cpp b/src/qt_gui/game_info.cpp deleted file mode 100644 index 19b6adc1e..000000000 --- a/src/qt_gui/game_info.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include - -#include "common/path_util.h" -#include "compatibility_info.h" -#include "game_info.h" - -// Maximum depth to search for games in subdirectories -const int max_recursion_depth = 5; - -void ScanDirectoryRecursively(const QString& dir, QStringList& filePaths, int current_depth = 0) { - // Stop recursion if we've reached the maximum depth - if (current_depth >= max_recursion_depth) { - return; - } - - QDir directory(dir); - QFileInfoList entries = directory.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); - - for (const auto& entry : entries) { - if (entry.fileName().endsWith("-UPDATE") || entry.fileName().endsWith("-patch")) { - continue; - } - - // Check if this directory contains a PS4 game (has sce_sys/param.sfo) - if (QFile::exists(entry.filePath() + "/sce_sys/param.sfo")) { - filePaths.append(entry.absoluteFilePath()); - } else { - // If not a game directory, recursively scan it with increased depth - ScanDirectoryRecursively(entry.absoluteFilePath(), filePaths, current_depth + 1); - } - } -} - -GameInfoClass::GameInfoClass() = default; -GameInfoClass::~GameInfoClass() = default; - -void GameInfoClass::GetGameInfo(QWidget* parent) { - QStringList filePaths; - for (const auto& installLoc : Config::getGameInstallDirs()) { - QString installDir; - Common::FS::PathToQString(installDir, installLoc); - ScanDirectoryRecursively(installDir, filePaths, 0); - } - - m_games = QtConcurrent::mapped(filePaths, [&](const QString& path) { - return readGameInfo(Common::FS::PathFromQString(path)); - }).results(); - - // used to retrieve values after performing a search - m_games_backup = m_games; - - // Progress bar, please be patient :) - QProgressDialog dialog(tr("Loading game list, please wait :3"), tr("Cancel"), 0, 0, parent); - dialog.setWindowTitle(tr("Loading...")); - - QFutureWatcher futureWatcher; - GameListUtils game_util; - bool finished = false; - futureWatcher.setFuture(QtConcurrent::map(m_games, game_util.GetFolderSize)); - connect(&futureWatcher, &QFutureWatcher::finished, [&]() { - dialog.reset(); - std::sort(m_games.begin(), m_games.end(), CompareStrings); - }); - connect(&dialog, &QProgressDialog::canceled, &futureWatcher, &QFutureWatcher::cancel); - dialog.setRange(0, m_games.size()); - connect(&futureWatcher, &QFutureWatcher::progressValueChanged, &dialog, - &QProgressDialog::setValue); - - dialog.exec(); -} diff --git a/src/qt_gui/game_info.h b/src/qt_gui/game_info.h deleted file mode 100644 index df8f4937c..000000000 --- a/src/qt_gui/game_info.h +++ /dev/null @@ -1,100 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include - -#include "common/config.h" -#include "core/file_format/psf.h" -#include "game_list_utils.h" - -class GameInfoClass : public QObject { - Q_OBJECT -public: - GameInfoClass(); - ~GameInfoClass(); - void GetGameInfo(QWidget* parent = nullptr); - QVector m_games; - QVector m_games_backup; - - static void SceUpdateChecker(const std::string sceItem, std::filesystem::path& gameItem, - std::filesystem::path& update_folder, - std::filesystem::path& patch_folder, - std::filesystem::path& game_folder) { - if (std::filesystem::exists(update_folder / "sce_sys" / sceItem)) { - gameItem = update_folder / "sce_sys" / sceItem; - } else if (std::filesystem::exists(patch_folder / "sce_sys" / sceItem)) { - gameItem = patch_folder / "sce_sys" / sceItem; - } else { - gameItem = game_folder / "sce_sys" / sceItem; - } - } - - static bool CompareStrings(GameInfo& a, GameInfo& b) { - std::string name_a = a.name, name_b = b.name; - std::transform(name_a.begin(), name_a.end(), name_a.begin(), ::tolower); - std::transform(name_b.begin(), name_b.end(), name_b.begin(), ::tolower); - return name_a < name_b; - } - - static GameInfo readGameInfo(const std::filesystem::path& filePath) { - GameInfo game; - game.path = filePath; - std::filesystem::path param_sfo_path; - std::filesystem::path game_update_path = filePath; - game_update_path += "-UPDATE"; - std::filesystem::path game_patch_path = filePath; - game_patch_path += "-patch"; - SceUpdateChecker("param.sfo", param_sfo_path, game_update_path, game_patch_path, game.path); - - PSF psf; - if (psf.Open(param_sfo_path)) { - SceUpdateChecker("icon0.png", game.icon_path, game_update_path, game_patch_path, - game.path); - QString iconpath; - Common::FS::PathToQString(iconpath, game.icon_path); - game.icon = QImage(iconpath); - SceUpdateChecker("pic1.png", game.pic_path, game_update_path, game_patch_path, - game.path); - SceUpdateChecker("snd0.at9", game.snd0_path, game_update_path, game_patch_path, - game.path); - - if (const auto title = psf.GetString("TITLE"); title.has_value()) { - game.name = *title; - } - if (const auto title_id = psf.GetString("TITLE_ID"); title_id.has_value()) { - game.serial = *title_id; - } - if (const auto content_id = psf.GetString("CONTENT_ID"); - content_id.has_value() && !content_id->empty()) { - game.region = GameListUtils::GetRegion(content_id->at(0)).toStdString(); - } - if (const auto fw_int_opt = psf.GetInteger("SYSTEM_VER"); fw_int_opt.has_value()) { - auto fw_int = *fw_int_opt; - if (fw_int == 0) { - game.fw = "0.00"; - } else { - QString fw = QString::number(fw_int, 16); - QString fw_ = fw.length() > 7 - ? QString::number(fw_int, 16).left(3).insert(2, '.') - : fw.left(3).insert(1, '.'); - game.fw = fw_.toStdString(); - } - } - if (auto app_ver = psf.GetString("APP_VER"); app_ver.has_value()) { - game.version = *app_ver; - } - if (const auto play_time = psf.GetString("PLAY_TIME"); play_time.has_value()) { - game.play_time = *play_time; - } - if (const auto save_dir = psf.GetString("INSTALL_DIR_SAVEDATA"); save_dir.has_value()) { - game.save_dir = *save_dir; - } else { - game.save_dir = game.serial; - } - } - return game; - } -}; diff --git a/src/qt_gui/game_install_dialog.cpp b/src/qt_gui/game_install_dialog.cpp deleted file mode 100644 index e53c58315..000000000 --- a/src/qt_gui/game_install_dialog.cpp +++ /dev/null @@ -1,134 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "game_install_dialog.h" - -GameInstallDialog::GameInstallDialog() : m_gamesDirectory(nullptr) { - auto layout = new QVBoxLayout(this); - - layout->addWidget(SetupGamesDirectory()); - layout->addWidget(SetupAddonsDirectory()); - layout->addStretch(); - layout->addWidget(SetupDialogActions()); - - setWindowTitle(tr("shadPS4 - Choose directory")); - setWindowIcon(QIcon(":images/shadps4.ico")); -} - -GameInstallDialog::~GameInstallDialog() {} - -void GameInstallDialog::BrowseGamesDirectory() { - auto path = QFileDialog::getExistingDirectory(this, tr("Directory to install games")); - - if (!path.isEmpty()) { - m_gamesDirectory->setText(QDir::toNativeSeparators(path)); - } -} - -void GameInstallDialog::BrowseAddonsDirectory() { - auto path = QFileDialog::getExistingDirectory(this, tr("Directory to install DLC")); - - if (!path.isEmpty()) { - m_addonsDirectory->setText(QDir::toNativeSeparators(path)); - } -} - -QWidget* GameInstallDialog::SetupGamesDirectory() { - auto group = new QGroupBox(tr("Directory to install games")); - auto layout = new QHBoxLayout(group); - - // Input. - m_gamesDirectory = new QLineEdit(); - QString install_dir; - std::filesystem::path install_path = - Config::getGameInstallDirs().empty() ? "" : Config::getGameInstallDirs().front(); - Common::FS::PathToQString(install_dir, install_path); - m_gamesDirectory->setText(install_dir); - m_gamesDirectory->setMinimumWidth(400); - - layout->addWidget(m_gamesDirectory); - - // Browse button. - auto browse = new QPushButton(tr("Browse")); - - connect(browse, &QPushButton::clicked, this, &GameInstallDialog::BrowseGamesDirectory); - - layout->addWidget(browse); - - return group; -} - -QWidget* GameInstallDialog::SetupAddonsDirectory() { - auto group = new QGroupBox(tr("Directory to install DLC")); - auto layout = new QHBoxLayout(group); - - // Input. - m_addonsDirectory = new QLineEdit(); - QString install_dir; - Common::FS::PathToQString(install_dir, Config::getAddonInstallDir()); - m_addonsDirectory->setText(install_dir); - m_addonsDirectory->setMinimumWidth(400); - - layout->addWidget(m_addonsDirectory); - - // Browse button. - auto browse = new QPushButton(tr("Browse")); - - connect(browse, &QPushButton::clicked, this, &GameInstallDialog::BrowseAddonsDirectory); - - layout->addWidget(browse); - - return group; -} - -QWidget* GameInstallDialog::SetupDialogActions() { - auto actions = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); - - connect(actions, &QDialogButtonBox::accepted, this, &GameInstallDialog::Save); - connect(actions, &QDialogButtonBox::rejected, this, &GameInstallDialog::reject); - - return actions; -} - -void GameInstallDialog::Save() { - // Check games directory. - auto gamesDirectory = m_gamesDirectory->text(); - auto addonsDirectory = m_addonsDirectory->text(); - - if (gamesDirectory.isEmpty() || !QDir(gamesDirectory).exists() || - !QDir::isAbsolutePath(gamesDirectory)) { - QMessageBox::critical(this, tr("Error"), - "The value for location to install games is not valid."); - return; - } - - if (addonsDirectory.isEmpty() || !QDir::isAbsolutePath(addonsDirectory)) { - QMessageBox::critical(this, tr("Error"), - "The value for location to install DLC is not valid."); - return; - } - QDir addonsDir(addonsDirectory); - if (!addonsDir.exists()) { - if (!addonsDir.mkpath(".")) { - QMessageBox::critical(this, tr("Error"), - "The DLC install location could not be created."); - return; - } - } - Config::addGameInstallDir(Common::FS::PathFromQString(gamesDirectory)); - Config::setAddonInstallDir(Common::FS::PathFromQString(addonsDirectory)); - const auto config_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir); - Config::save(config_dir / "config.toml"); - accept(); -} diff --git a/src/qt_gui/game_install_dialog.h b/src/qt_gui/game_install_dialog.h deleted file mode 100644 index 938f0e1f3..000000000 --- a/src/qt_gui/game_install_dialog.h +++ /dev/null @@ -1,32 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include - -#include "common/config.h" -#include "common/path_util.h" - -class QLineEdit; - -class GameInstallDialog final : public QDialog { - Q_OBJECT -public: - GameInstallDialog(); - ~GameInstallDialog(); - -private slots: - void BrowseGamesDirectory(); - void BrowseAddonsDirectory(); - -private: - QWidget* SetupGamesDirectory(); - QWidget* SetupAddonsDirectory(); - QWidget* SetupDialogActions(); - void Save(); - -private: - QLineEdit* m_gamesDirectory; - QLineEdit* m_addonsDirectory; -}; \ No newline at end of file diff --git a/src/qt_gui/game_list_frame.cpp b/src/qt_gui/game_list_frame.cpp deleted file mode 100644 index bdbb3e81f..000000000 --- a/src/qt_gui/game_list_frame.cpp +++ /dev/null @@ -1,514 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include "common/config.h" -#include "common/logging/log.h" -#include "common/path_util.h" -#include "common/string_util.h" -#include "game_list_frame.h" -#include "game_list_utils.h" - -GameListFrame::GameListFrame(std::shared_ptr gui_settings, - std::shared_ptr game_info_get, - std::shared_ptr compat_info_get, - QWidget* parent) - : QTableWidget(parent), m_gui_settings(std::move(gui_settings)), m_game_info(game_info_get), - m_compat_info(compat_info_get) { - icon_size = m_gui_settings->GetValue(gui::gl_icon_size).toInt(); - last_favorite = ""; - this->setShowGrid(false); - this->setEditTriggers(QAbstractItemView::NoEditTriggers); - this->setSelectionBehavior(QAbstractItemView::SelectRows); - this->setSelectionMode(QAbstractItemView::SingleSelection); - this->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); - this->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); - this->verticalScrollBar()->installEventFilter(this); - this->verticalScrollBar()->setSingleStep(20); - this->horizontalScrollBar()->setSingleStep(20); - this->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); - this->verticalHeader()->setVisible(false); - this->horizontalHeader()->setContextMenuPolicy(Qt::CustomContextMenu); - this->horizontalHeader()->setHighlightSections(false); - this->horizontalHeader()->setSortIndicatorShown(true); - this->setContextMenuPolicy(Qt::CustomContextMenu); - this->setColumnCount(11); - this->setColumnWidth(1, 300); // Name - this->setColumnWidth(2, 140); // Compatibility - this->setColumnWidth(3, 120); // Serial - this->setColumnWidth(4, 90); // Region - this->setColumnWidth(5, 90); // Firmware - this->setColumnWidth(6, 90); // Size - this->setColumnWidth(7, 90); // Version - this->setColumnWidth(8, 120); // Play Time - this->setColumnWidth(10, 90); // Favorite - QStringList headers; - headers << tr("Icon") << tr("Name") << tr("Compatibility") << tr("Serial") << tr("Region") - << tr("Firmware") << tr("Size") << tr("Version") << tr("Play Time") << tr("Path") - << tr("Favorite"); - this->setHorizontalHeaderLabels(headers); - this->horizontalHeader()->setSortIndicatorShown(true); - this->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); - this->horizontalHeader()->setSectionResizeMode(3, QHeaderView::Fixed); - this->horizontalHeader()->setSectionResizeMode(4, QHeaderView::Fixed); - this->horizontalHeader()->setSectionResizeMode(9, QHeaderView::Stretch); - this->horizontalHeader()->setSectionResizeMode(10, QHeaderView::Fixed); - PopulateGameList(); - - connect(this, &QTableWidget::currentCellChanged, this, &GameListFrame::onCurrentCellChanged); - connect(this->verticalScrollBar(), &QScrollBar::valueChanged, this, - &GameListFrame::RefreshListBackgroundImage); - connect(this->horizontalScrollBar(), &QScrollBar::valueChanged, this, - &GameListFrame::RefreshListBackgroundImage); - - this->horizontalHeader()->setSortIndicatorShown(true); - this->horizontalHeader()->setSectionsClickable(true); - QObject::connect( - this->horizontalHeader(), &QHeaderView::sectionClicked, this, [this](int columnIndex) { - if (ListSortedAsc) { - SortNameDescending(columnIndex); - this->horizontalHeader()->setSortIndicator(columnIndex, Qt::DescendingOrder); - ListSortedAsc = false; - sortColumn = columnIndex; - } else { - SortNameAscending(columnIndex); - this->horizontalHeader()->setSortIndicator(columnIndex, Qt::AscendingOrder); - ListSortedAsc = true; - sortColumn = columnIndex; - } - this->clearContents(); - PopulateGameList(false); - }); - - connect(this, &QTableWidget::customContextMenuRequested, this, [=, this](const QPoint& pos) { - int changedFavorite = m_gui_context_menus.RequestGameMenu( - pos, m_game_info->m_games, m_compat_info, m_gui_settings, this, true); - PopulateGameList(false); - }); - - connect(this, &QTableWidget::cellClicked, this, [=, this](int row, int column) { - if (column == 2 && m_game_info->m_games[row].compatibility.issue_number != "") { - auto url_issues = - "https://github.com/shadps4-compatibility/shadps4-game-compatibility/issues/"; - QDesktopServices::openUrl( - QUrl(url_issues + m_game_info->m_games[row].compatibility.issue_number)); - } else if (column == 10) { - last_favorite = m_game_info->m_games[row].serial; - QString serialStr = QString::fromStdString(last_favorite); - QList list = - gui_settings::Var2List(m_gui_settings->GetValue(gui::favorites_list)); - bool isFavorite = list.contains(serialStr); - if (isFavorite) { - list.removeOne(serialStr); - } else { - list.append(serialStr); - } - m_gui_settings->SetValue(gui::favorites_list, gui_settings::List2Var(list)); - PopulateGameList(false); - } - }); -} - -void GameListFrame::onCurrentCellChanged(int currentRow, int currentColumn, int previousRow, - int previousColumn) { - QTableWidgetItem* item = this->item(currentRow, currentColumn); - if (!item) { - return; - } - m_current_item = item; // Store current item - SetListBackgroundImage(item); - PlayBackgroundMusic(item); -} - -void GameListFrame::PlayBackgroundMusic(QTableWidgetItem* item) { - if (!item || !m_gui_settings->GetValue(gui::gl_playBackgroundMusic).toBool()) { - BackgroundMusicPlayer::getInstance().stopMusic(); - return; - } - QString snd0path; - Common::FS::PathToQString(snd0path, m_game_info->m_games[item->row()].snd0_path); - BackgroundMusicPlayer::getInstance().playMusic(snd0path); -} - -void GameListFrame::PopulateGameList(bool isInitialPopulation) { - this->m_current_item = nullptr; - // Do not show status column if it is not enabled - this->setColumnHidden(2, !Config::getCompatibilityEnabled()); - this->setColumnHidden(6, !Config::GetLoadGameSizeEnabled()); - - this->setRowCount(m_game_info->m_games.size()); - ResizeIcons(icon_size); - - ApplyLastSorting(isInitialPopulation); - - for (int i = 0; i < m_game_info->m_games.size(); i++) { - SetTableItem(i, 1, QString::fromStdString(m_game_info->m_games[i].name)); - if (std::filesystem::exists(Common::FS::GetUserPath(Common::FS::PathType::CustomConfigs) / - (m_game_info->m_games[i].serial + ".toml"))) { - QTableWidgetItem* name_item = item(i, 1); - name_item->setIcon(QIcon(":images/game_settings.png")); - } - - SetTableItem(i, 3, QString::fromStdString(m_game_info->m_games[i].serial)); - SetRegionFlag(i, 4, QString::fromStdString(m_game_info->m_games[i].region)); - SetTableItem(i, 5, QString::fromStdString(m_game_info->m_games[i].fw)); - SetTableItem(i, 6, QString::fromStdString(m_game_info->m_games[i].size)); - SetTableItem(i, 7, QString::fromStdString(m_game_info->m_games[i].version)); - SetFavoriteIcon(i, 10); - - if (m_game_info->m_games[i].serial == last_favorite && !isInitialPopulation) { - this->setCurrentCell(i, 10); - } - - m_game_info->m_games[i].compatibility = - m_compat_info->GetCompatibilityInfo(m_game_info->m_games[i].serial); - SetCompatibilityItem(i, 2, m_game_info->m_games[i].compatibility); - - QString playTime = GetPlayTime(m_game_info->m_games[i].serial); - if (playTime.isEmpty()) { - m_game_info->m_games[i].play_time = "0:00:00"; - SetTableItem(i, 8, tr("Never Played")); - } else { - QStringList timeParts = playTime.split(':'); - int hours = timeParts[0].toInt(); - int minutes = timeParts[1].toInt(); - int seconds = timeParts[2].toInt(); - - QString formattedPlayTime; - if (hours > 0) { - formattedPlayTime += QString("%1").arg(hours) + tr("h"); - } - if (minutes > 0) { - formattedPlayTime += QString("%1").arg(minutes) + tr("m"); - } - - formattedPlayTime = formattedPlayTime.trimmed(); - m_game_info->m_games[i].play_time = playTime.toStdString(); - if (formattedPlayTime.isEmpty()) { - SetTableItem(i, 8, QString("%1").arg(seconds) + tr("s")); - } else { - SetTableItem(i, 8, formattedPlayTime); - } - } - - QString path; - Common::FS::PathToQString(path, m_game_info->m_games[i].path); - SetTableItem(i, 9, path); - } -} - -void GameListFrame::SetListBackgroundImage(QTableWidgetItem* item) { - if (!item) { - // handle case where no item was clicked - return; - } - - // If background images are hidden, clear the background image - if (!m_gui_settings->GetValue(gui::gl_showBackgroundImage).toBool()) { - backgroundImage = QImage(); - m_last_opacity = -1; // Reset opacity tracking when disabled - m_current_game_path.clear(); // Reset current game path - RefreshListBackgroundImage(); - return; - } - - const auto& game = m_game_info->m_games[item->row()]; - const int opacity = m_gui_settings->GetValue(gui::gl_backgroundImageOpacity).toInt(); - - // Recompute if opacity changed or we switched to a different game - if (opacity != m_last_opacity || game.pic_path != m_current_game_path) { - auto image_path = game.pic_path.u8string(); - QImage original_image(QString::fromStdString({image_path.begin(), image_path.end()})); - if (!original_image.isNull()) { - backgroundImage = m_game_list_utils.ChangeImageOpacity( - original_image, original_image.rect(), opacity / 100.0f); - m_last_opacity = opacity; - m_current_game_path = game.pic_path; - } - } - - RefreshListBackgroundImage(); -} - -void GameListFrame::RefreshListBackgroundImage() { - QPalette palette; - if (!backgroundImage.isNull() && - m_gui_settings->GetValue(gui::gl_showBackgroundImage).toBool()) { - QSize widgetSize = size(); - QPixmap scaledPixmap = - QPixmap::fromImage(backgroundImage) - .scaled(widgetSize, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation); - int x = (widgetSize.width() - scaledPixmap.width()) / 2; - int y = (widgetSize.height() - scaledPixmap.height()) / 2; - QPixmap finalPixmap(widgetSize); - finalPixmap.fill(Qt::transparent); - QPainter painter(&finalPixmap); - painter.drawPixmap(x, y, scaledPixmap); - palette.setBrush(QPalette::Base, QBrush(finalPixmap)); - } - QColor transparentColor = QColor(135, 206, 235, 40); - palette.setColor(QPalette::Highlight, transparentColor); - this->setPalette(palette); -} - -void GameListFrame::resizeEvent(QResizeEvent* event) { - QTableWidget::resizeEvent(event); - RefreshListBackgroundImage(); -} - -bool GameListFrame::CompareWithFavorite(GameInfo a, GameInfo b, int columnIndex, bool ascending) { - std::string serial_a = a.serial; - std::string serial_b = b.serial; - QString serialStr_a = QString::fromStdString(a.serial); - QString serialStr_b = QString::fromStdString(b.serial); - QList list = gui_settings::Var2List(m_gui_settings->GetValue(gui::favorites_list)); - bool isFavorite_a = list.contains(serialStr_a); - bool isFavorite_b = list.contains(serialStr_b); - if (isFavorite_a != isFavorite_b) { - return isFavorite_a; - } else if (ascending) { - return CompareStringsAscending(a, b, columnIndex); - } else { - return CompareStringsDescending(a, b, columnIndex); - } -} - -void GameListFrame::SortNameAscending(int columnIndex) { - std::sort(m_game_info->m_games.begin(), m_game_info->m_games.end(), - [this, columnIndex](const GameInfo& a, const GameInfo& b) { - return this->CompareWithFavorite(a, b, columnIndex, true); - }); -} - -void GameListFrame::SortNameDescending(int columnIndex) { - std::sort(m_game_info->m_games.begin(), m_game_info->m_games.end(), - [this, columnIndex](const GameInfo& a, const GameInfo& b) { - return this->CompareWithFavorite(a, b, columnIndex, false); - }); -} - -void GameListFrame::ApplyLastSorting(bool isInitialPopulation) { - if (isInitialPopulation) { - SortNameAscending(1); // Column 1 = Name - ResizeIcons(icon_size); - } else if (ListSortedAsc) { - SortNameAscending(sortColumn); - ResizeIcons(icon_size); - } else { - SortNameDescending(sortColumn); - ResizeIcons(icon_size); - } -} - -void GameListFrame::ResizeIcons(int iconSize) { - for (int index = 0; auto& game : m_game_info->m_games) { - QImage scaledPixmap = game.icon.scaled(QSize(iconSize, iconSize), Qt::KeepAspectRatio, - Qt::SmoothTransformation); - QTableWidgetItem* iconItem = new QTableWidgetItem(); - this->verticalHeader()->resizeSection(index, scaledPixmap.height()); - this->horizontalHeader()->resizeSection(0, scaledPixmap.width()); - iconItem->setData(Qt::DecorationRole, scaledPixmap); - this->setItem(index, 0, iconItem); - index++; - } - this->horizontalHeader()->setSectionResizeMode(8, QHeaderView::ResizeToContents); -} - -void GameListFrame::SetCompatibilityItem(int row, int column, CompatibilityEntry entry) { - QTableWidgetItem* item = new QTableWidgetItem(); - QWidget* widget = new QWidget(this); - QGridLayout* layout = new QGridLayout(widget); - - widget->setStyleSheet("QToolTip {background-color: black; color: white;}"); - - QColor color; - QString status_explanation; - - switch (entry.status) { - case CompatibilityStatus::Unknown: - color = QStringLiteral("#000000"); - status_explanation = tr("Compatibility is untested"); - break; - case CompatibilityStatus::Nothing: - color = QStringLiteral("#212121"); - status_explanation = tr("Game does not initialize properly / crashes the emulator"); - break; - case CompatibilityStatus::Boots: - color = QStringLiteral("#828282"); - status_explanation = tr("Game boots, but only displays a blank screen"); - break; - case CompatibilityStatus::Menus: - color = QStringLiteral("#FF0000"); - status_explanation = tr("Game displays an image but does not go past the menu"); - break; - case CompatibilityStatus::Ingame: - color = QStringLiteral("#F2D624"); - status_explanation = tr("Game has game-breaking glitches or unplayable performance"); - break; - case CompatibilityStatus::Playable: - color = QStringLiteral("#47D35C"); - status_explanation = - tr("Game can be completed with playable performance and no major glitches"); - break; - } - - QString tooltip_string; - - if (entry.status == CompatibilityStatus::Unknown) { - tooltip_string = status_explanation; - } else { - tooltip_string = - "

" + tr("Click to see details on github") + "" + "
" + - tr("Last updated") + - QString(": %1 (%2)").arg(entry.last_tested.toString("yyyy-MM-dd"), entry.version) + - "
" + status_explanation + "

"; - } - - QPixmap circle_pixmap(16, 16); - circle_pixmap.fill(Qt::transparent); - QPainter painter(&circle_pixmap); - painter.setRenderHint(QPainter::Antialiasing); - painter.setPen(color); - painter.setBrush(color); - painter.drawEllipse({circle_pixmap.width() / 2.0, circle_pixmap.height() / 2.0}, 6.0, 6.0); - - QLabel* dotLabel = new QLabel("", widget); - dotLabel->setPixmap(circle_pixmap); - - QLabel* label = new QLabel(m_compat_info->GetCompatStatusString(entry.status), widget); - this->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeToContents); - - label->setStyleSheet("color: white; font-size: 16px; font-weight: bold;"); - - // Create shadow effect - QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect(); - shadowEffect->setBlurRadius(5); // Set the blur radius of the shadow - shadowEffect->setColor(QColor(0, 0, 0, 160)); // Set the color and opacity of the shadow - shadowEffect->setOffset(2, 2); // Set the offset of the shadow - - label->setGraphicsEffect(shadowEffect); // Apply shadow effect to the QLabel - - layout->addWidget(dotLabel, 0, 0, -1, 1); - layout->addWidget(label, 0, 1, 1, 1); - layout->setAlignment(Qt::AlignLeft); - widget->setLayout(layout); - widget->setToolTip(tooltip_string); - this->setItem(row, column, item); - this->setCellWidget(row, column, widget); - - return; -} - -void GameListFrame::SetTableItem(int row, int column, QString itemStr) { - QTableWidgetItem* item = new QTableWidgetItem(); - QWidget* widget = new QWidget(this); - QVBoxLayout* layout = new QVBoxLayout(widget); - QLabel* label = new QLabel(itemStr, widget); - - label->setStyleSheet("color: white; font-size: 16px; font-weight: bold;"); - - // Create shadow effect - QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect(); - shadowEffect->setBlurRadius(5); // Set the blur radius of the shadow - shadowEffect->setColor(QColor(0, 0, 0, 160)); // Set the color and opacity of the shadow - shadowEffect->setOffset(2, 2); // Set the offset of the shadow - - label->setGraphicsEffect(shadowEffect); // Apply shadow effect to the QLabel - - layout->addWidget(label); - if (column != 8 && column != 1) - layout->setAlignment(Qt::AlignCenter); - widget->setLayout(layout); - this->setItem(row, column, item); - this->setCellWidget(row, column, widget); -} - -void GameListFrame::SetRegionFlag(int row, int column, QString itemStr) { - QTableWidgetItem* item = new QTableWidgetItem(); - QImage scaledPixmap; - if (itemStr == "Japan") { - scaledPixmap = QImage(":images/flag_jp.png"); - } else if (itemStr == "Europe") { - scaledPixmap = QImage(":images/flag_eu.png"); - } else if (itemStr == "USA") { - scaledPixmap = QImage(":images/flag_us.png"); - } else if (itemStr == "Asia") { - scaledPixmap = QImage(":images/flag_china.png"); - } else if (itemStr == "World") { - scaledPixmap = QImage(":images/flag_world.png"); - } else { - scaledPixmap = QImage(":images/flag_unk.png"); - } - QWidget* widget = new QWidget(this); - QVBoxLayout* layout = new QVBoxLayout(widget); - QLabel* label = new QLabel(widget); - label->setPixmap(QPixmap::fromImage(scaledPixmap)); - layout->setAlignment(Qt::AlignCenter); - layout->addWidget(label); - widget->setLayout(layout); - this->setItem(row, column, item); - this->setCellWidget(row, column, widget); -} - -void GameListFrame::SetFavoriteIcon(int row, int column) { - - QString serialStr = QString::fromStdString(m_game_info->m_games[row].serial); - QList list = gui_settings::Var2List(m_gui_settings->GetValue(gui::favorites_list)); - bool isFavorite = list.contains(serialStr); - - QTableWidgetItem* item = new QTableWidgetItem(); - QImage scaledPixmap = QImage(":images/favorite_icon.png"); - - scaledPixmap = scaledPixmap.scaledToHeight(this->columnWidth(column) / 2.5); - scaledPixmap = scaledPixmap.scaledToWidth(this->columnWidth(column) / 2.5); - QWidget* widget = new QWidget(this); - QVBoxLayout* layout = new QVBoxLayout(widget); - QLabel* label = new QLabel(widget); - label->setPixmap(QPixmap::fromImage(scaledPixmap)); - label->setObjectName("favoriteIcon"); - label->setVisible(isFavorite); - - layout->setAlignment(Qt::AlignCenter); - layout->addWidget(label); - widget->setLayout(layout); - this->setItem(row, column, item); - this->setCellWidget(row, column, widget); - - if (column > 0) { - this->horizontalHeader()->setSectionResizeMode(column - 1, QHeaderView::Stretch); - } -} - -QString GameListFrame::GetPlayTime(const std::string& serial) { - QString playTime; - const auto user_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir); - QString filePath = QString::fromStdString((user_dir / "play_time.txt").string()); - - QFile file(filePath); - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - return playTime; - } - - while (!file.atEnd()) { - QByteArray line = file.readLine(); - QString lineStr = QString::fromUtf8(line).trimmed(); - - QStringList parts = lineStr.split(' '); - if (parts.size() >= 2) { - QString fileSerial = parts[0]; - QString time = parts[1]; - - if (fileSerial == QString::fromStdString(serial)) { - playTime = time; - break; - } - } - } - - file.close(); - return playTime; -} - -QTableWidgetItem* GameListFrame::GetCurrentItem() { - return m_current_item; -} diff --git a/src/qt_gui/game_list_frame.h b/src/qt_gui/game_list_frame.h deleted file mode 100644 index d1e065864..000000000 --- a/src/qt_gui/game_list_frame.h +++ /dev/null @@ -1,139 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include // std::transform -#include // std::tolower - -#include -#include -#include -#include -#include - -#include "background_music_player.h" -#include "compatibility_info.h" -#include "game_info.h" -#include "game_list_utils.h" -#include "gui_context_menus.h" -#include "gui_settings.h" - -class GameListFrame : public QTableWidget { - Q_OBJECT -public: - explicit GameListFrame(std::shared_ptr gui_settings, - std::shared_ptr game_info_get, - std::shared_ptr compat_info_get, - QWidget* parent = nullptr); -Q_SIGNALS: - void GameListFrameClosed(); - -public Q_SLOTS: - void SetListBackgroundImage(QTableWidgetItem* item); - void RefreshListBackgroundImage(); - void resizeEvent(QResizeEvent* event); - void SortNameAscending(int columnIndex); - void SortNameDescending(int columnIndex); - void PlayBackgroundMusic(QTableWidgetItem* item); - void onCurrentCellChanged(int currentRow, int currentColumn, int previousRow, - int previousColumn); - -private: - void SetTableItem(int row, int column, QString itemStr); - void SetRegionFlag(int row, int column, QString itemStr); - void SetFavoriteIcon(int row, int column); - void SetCompatibilityItem(int row, int column, CompatibilityEntry entry); - QString GetPlayTime(const std::string& serial); - QList m_columnActs; - GameInfoClass* game_inf_get = nullptr; - bool ListSortedAsc = true; - int sortColumn = 1; - QTableWidgetItem* m_current_item = nullptr; - int m_last_opacity = -1; // Track last opacity to avoid unnecessary recomputation - std::filesystem::path m_current_game_path; // Track current game path to detect changes - std::shared_ptr m_gui_settings; - -public: - void PopulateGameList(bool isInitialPopulation = true); - void ResizeIcons(int iconSize); - void ApplyLastSorting(bool isInitialPopulation); - QTableWidgetItem* GetCurrentItem(); - QImage backgroundImage; - GameListUtils m_game_list_utils; - GuiContextMenus m_gui_context_menus; - std::shared_ptr m_game_info; - std::shared_ptr m_compat_info; - - int icon_size; - std::string last_favorite; - - static float parseAsFloat(const std::string& str, const int& offset) { - return std::stof(str.substr(0, str.size() - offset)); - } - - static float parseSizeMB(const std::string& size) { - float num = parseAsFloat(size, 3); - return (size[size.size() - 2] == 'G') ? num * 1024 : num; - } - - static bool CompareStringsAscending(GameInfo a, GameInfo b, int columnIndex) { - switch (columnIndex) { - case 1: { - std::string name_a = a.name, name_b = b.name; - std::transform(name_a.begin(), name_a.end(), name_a.begin(), ::tolower); - std::transform(name_b.begin(), name_b.end(), name_b.begin(), ::tolower); - return name_a < name_b; - } - case 2: - return a.compatibility.status < b.compatibility.status; - case 3: - return a.serial.substr(4) < b.serial.substr(4); - case 4: - return a.region < b.region; - case 5: - return parseAsFloat(a.fw, 0) < parseAsFloat(b.fw, 0); - case 6: - return parseSizeMB(b.size) < parseSizeMB(a.size); - case 7: - return a.version < b.version; - case 8: - return a.play_time < b.play_time; - case 9: - return a.path < b.path; - default: - return false; - } - } - - static bool CompareStringsDescending(GameInfo a, GameInfo b, int columnIndex) { - switch (columnIndex) { - case 1: { - std::string name_a = a.name, name_b = b.name; - std::transform(name_a.begin(), name_a.end(), name_a.begin(), ::tolower); - std::transform(name_b.begin(), name_b.end(), name_b.begin(), ::tolower); - return name_a > name_b; - } - case 2: - return a.compatibility.status > b.compatibility.status; - case 3: - return a.serial.substr(4) > b.serial.substr(4); - case 4: - return a.region > b.region; - case 5: - return parseAsFloat(a.fw, 0) > parseAsFloat(b.fw, 0); - case 6: - return parseSizeMB(b.size) > parseSizeMB(a.size); - case 7: - return a.version > b.version; - case 8: - return a.play_time > b.play_time; - case 9: - return a.path > b.path; - default: - return false; - } - } - - bool CompareWithFavorite(GameInfo a, GameInfo b, int columnIndex, bool ascending); -}; diff --git a/src/qt_gui/game_list_utils.h b/src/qt_gui/game_list_utils.h deleted file mode 100644 index e19cf364e..000000000 --- a/src/qt_gui/game_list_utils.h +++ /dev/null @@ -1,235 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include -#include -#include -#include "common/path_util.h" -#include "compatibility_info.h" - -struct GameInfo { - std::filesystem::path path; // root path of game directory - // (normally directory that contains eboot.bin) - std::filesystem::path icon_path; // path of icon0.png - std::filesystem::path pic_path; // path of pic1.png - std::filesystem::path snd0_path; // path of snd0.at9 - QImage icon; - std::string size; - // variables extracted from param.sfo - std::string name = "Unknown"; - std::string serial = "Unknown"; - std::string version = "Unknown"; - std::string region = "Unknown"; - std::string fw = "Unknown"; - std::string save_dir = "Unknown"; - - std::string play_time = "Unknown"; - CompatibilityEntry compatibility = CompatibilityEntry{CompatibilityStatus::Unknown}; -}; - -class GameListUtils : public QObject { - Q_OBJECT -public: - static QString FormatSize(qint64 size) { - static const QStringList suffixes = {tr("B"), tr("KB"), tr("MB"), tr("GB"), tr("TB")}; - int suffixIndex = 0; - - double gameSize = static_cast(size); - while (gameSize >= 1024 && suffixIndex < suffixes.size() - 1) { - gameSize /= 1024; - ++suffixIndex; - } - - // Format the size with a specified precision - QString sizeString; - if (gameSize < 10.0) { - sizeString = QString::number(gameSize, 'f', 2); - } else if (gameSize < 100.0) { - sizeString = QString::number(gameSize, 'f', 1); - } else { - sizeString = QString::number(gameSize, 'f', 0); - } - - return sizeString + " " + suffixes[suffixIndex]; - } - - static void GetFolderSize(GameInfo& game) { - QString dirPath; - Common::FS::PathToQString(dirPath, game.path); - QDir dir(dirPath); - QDirIterator it(dir.absolutePath(), QDirIterator::Subdirectories); - qint64 total = 0; - - if (!Config::GetLoadGameSizeEnabled()) { - game.size = FormatSize(0).toStdString(); - return; - } - - // Cache path - QDir cacheDir = - QDir(Common::FS::GetUserPath(Common::FS::PathType::MetaDataDir) / game.serial); - if (!cacheDir.exists()) { - cacheDir.mkpath("."); - } - QFile size_cache_file(cacheDir.absoluteFilePath("size_cache.txt")); - QFileInfo cacheInfo(size_cache_file); - QFileInfo dirInfo(dirPath); - - // Check if cache file exists and is valid - if (size_cache_file.exists() && cacheInfo.lastModified() >= dirInfo.lastModified()) { - if (size_cache_file.open(QIODevice::ReadOnly | QIODevice::Text)) { - QTextStream in(&size_cache_file); - QString cachedSize = in.readLine(); - size_cache_file.close(); - - if (!cachedSize.isEmpty()) { - game.size = cachedSize.toStdString(); - return; - } - } - } - - // Cache is invalid or does not exist; calculate size - while (it.hasNext()) { - it.next(); - total += it.fileInfo().size(); - } - - game.size = FormatSize(total).toStdString(); - - // Save new cache - if (size_cache_file.open(QIODevice::WriteOnly | QIODevice::Text)) { - QTextStream out(&size_cache_file); - out << QString::fromStdString(game.size) << "\n"; - size_cache_file.close(); - } - } - - static QString GetRegion(char region) { - switch (region) { - case 'U': - return "USA"; - case 'E': - return "Europe"; - case 'J': - return "Japan"; - case 'H': - return "Asia"; - case 'I': - return "World"; - default: - return "Unknown"; - } - } - - static QString GetAppType(int type) { - switch (type) { - case 0: - return "Not Specified"; - case 1: - return "FULL APP"; - case 2: - return "UPGRADABLE"; - case 3: - return "DEMO"; - case 4: - return "FREEMIUM"; - default: - return "Unknown"; - } - } - - QImage BlurImage(const QImage& image, const QRect& rect, int radius) { - int tab[] = {14, 10, 8, 6, 5, 5, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2}; - int alpha = (radius < 1) ? 16 : (radius > 17) ? 1 : tab[radius - 1]; - - QImage result = image.convertToFormat(QImage::Format_ARGB32); - int r1 = rect.top(); - int r2 = rect.bottom(); - int c1 = rect.left(); - int c2 = rect.right(); - - int bpl = result.bytesPerLine(); - int rgba[4]; - unsigned char* p; - - int i1 = 0; - int i2 = 3; - - for (int col = c1; col <= c2; col++) { - p = result.scanLine(r1) + col * 4; - for (int i = i1; i <= i2; i++) - rgba[i] = p[i] << 4; - - p += bpl; - for (int j = r1; j < r2; j++, p += bpl) - for (int i = i1; i <= i2; i++) - p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4; - } - - for (int row = r1; row <= r2; row++) { - p = result.scanLine(row) + c1 * 4; - for (int i = i1; i <= i2; i++) - rgba[i] = p[i] << 4; - - p += 4; - for (int j = c1; j < c2; j++, p += 4) - for (int i = i1; i <= i2; i++) - p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4; - } - - for (int col = c1; col <= c2; col++) { - p = result.scanLine(r2) + col * 4; - for (int i = i1; i <= i2; i++) - rgba[i] = p[i] << 4; - - p -= bpl; - for (int j = r1; j < r2; j++, p -= bpl) - for (int i = i1; i <= i2; i++) - p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4; - } - - for (int row = r1; row <= r2; row++) { - p = result.scanLine(row) + c2 * 4; - for (int i = i1; i <= i2; i++) - rgba[i] = p[i] << 4; - - p -= 4; - for (int j = c1; j < c2; j++, p -= 4) - for (int i = i1; i <= i2; i++) - p[i] = (rgba[i] += ((p[i] << 4) - rgba[i]) * alpha / 16) >> 4; - } - - return result; - } - - // Opacity is a float between 0 and 1 - static QImage ChangeImageOpacity(const QImage& image, const QRect& rect, float opacity) { - // Convert to ARGB32 format to ensure alpha channel support - QImage result = image.convertToFormat(QImage::Format_ARGB32); - - // Ensure opacity is between 0 and 1 - opacity = std::clamp(opacity, 0.0f, 1.0f); - - // Convert opacity to integer alpha value (0-255) - int alpha = static_cast(opacity * 255); - - // Process only the specified rectangle area - for (int y = rect.top(); y <= rect.bottom(); ++y) { - QRgb* line = reinterpret_cast(result.scanLine(y)); - for (int x = rect.left(); x <= rect.right(); ++x) { - // Get current pixel - QRgb pixel = line[x]; - // Keep RGB values, but modify alpha while preserving relative transparency - int newAlpha = (qAlpha(pixel) * alpha) / 255; - line[x] = qRgba(qRed(pixel), qGreen(pixel), qBlue(pixel), newAlpha); - } - } - - return result; - } -}; diff --git a/src/qt_gui/gui_context_menus.h b/src/qt_gui/gui_context_menus.h deleted file mode 100644 index 17053790b..000000000 --- a/src/qt_gui/gui_context_menus.h +++ /dev/null @@ -1,755 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include -#include -#include - -#include -#include "cheats_patches.h" -#include "common/config.h" -#include "common/path_util.h" -#include "common/scm_rev.h" -#include "compatibility_info.h" -#include "game_info.h" -#include "gui_settings.h" -#include "settings_dialog.h" -#include "trophy_viewer.h" - -#ifdef Q_OS_WIN -#include -#include -#include -#include -#include -#include -#endif - -class GuiContextMenus : public QObject { - Q_OBJECT -public: - int RequestGameMenu(const QPoint& pos, QVector& m_games, - std::shared_ptr m_compat_info, - std::shared_ptr settings, QTableWidget* widget, bool isList) { - QPoint global_pos = widget->viewport()->mapToGlobal(pos); - std::shared_ptr m_gui_settings = std::move(settings); - int itemID = 0; - int changedFavorite = 0; - if (isList) { - itemID = widget->currentRow(); - } else { - itemID = widget->currentRow() * widget->columnCount() + widget->currentColumn(); - } - - // Do not show the menu if no item is selected - if (itemID < 0 || itemID >= m_games.size()) { - return changedFavorite; - } - - // Setup menu. - QMenu menu(widget); - - // "Open Folder..." submenu - QMenu* openFolderMenu = new QMenu(tr("Open Folder..."), widget); - QAction* openGameFolder = new QAction(tr("Open Game Folder"), widget); - QAction* openUpdateFolder = new QAction(tr("Open Update Folder"), widget); - QAction* openSaveDataFolder = new QAction(tr("Open Save Data Folder"), widget); - QAction* openLogFolder = new QAction(tr("Open Log Folder"), widget); - - openFolderMenu->addAction(openGameFolder); - openFolderMenu->addAction(openUpdateFolder); - openFolderMenu->addAction(openSaveDataFolder); - openFolderMenu->addAction(openLogFolder); - - menu.addMenu(openFolderMenu); - - QMenu* gameConfigMenu = new QMenu(tr("Game-specific Settings..."), widget); - QAction gameConfigConfigure(tr("Configure Game-specific Settings"), widget); - QAction gameConfigCreate(tr("Create Game-specific Settings from Global Settings"), widget); - QAction gameConfigDelete(tr("Delete Game-specific Settings"), widget); - - if (std::filesystem::exists(Common::FS::GetUserPath(Common::FS::PathType::CustomConfigs) / - (m_games[itemID].serial + ".toml"))) { - gameConfigMenu->addAction(&gameConfigConfigure); - } else { - gameConfigMenu->addAction(&gameConfigCreate); - } - - if (std::filesystem::exists(Common::FS::GetUserPath(Common::FS::PathType::CustomConfigs) / - (m_games[itemID].serial + ".toml"))) - gameConfigMenu->addAction(&gameConfigDelete); - - menu.addMenu(gameConfigMenu); - - QString serialStr = QString::fromStdString(m_games[itemID].serial); - QList list = gui_settings::Var2List(m_gui_settings->GetValue(gui::favorites_list)); - bool isFavorite = list.contains(serialStr); - QAction* toggleFavorite; - - if (isFavorite) { - toggleFavorite = new QAction(tr("Remove from Favorites"), widget); - } else { - toggleFavorite = new QAction(tr("Add to Favorites"), widget); - } - - QAction createShortcut(tr("Create Shortcut"), widget); - QAction openCheats(tr("Cheats / Patches"), widget); - QAction openSfoViewer(tr("SFO Viewer"), widget); - QAction openTrophyViewer(tr("Trophy Viewer"), widget); - - menu.addAction(toggleFavorite); - menu.addAction(&createShortcut); - menu.addAction(&openCheats); - menu.addAction(&openSfoViewer); - menu.addAction(&openTrophyViewer); - - // "Copy" submenu. - QMenu* copyMenu = new QMenu(tr("Copy info..."), widget); - QAction* copyName = new QAction(tr("Copy Name"), widget); - QAction* copySerial = new QAction(tr("Copy Serial"), widget); - QAction* copyVersion = new QAction(tr("Copy Version"), widget); - QAction* copySize = new QAction(tr("Copy Size"), widget); - QAction* copyNameAll = new QAction(tr("Copy All"), widget); - - copyMenu->addAction(copyName); - copyMenu->addAction(copySerial); - copyMenu->addAction(copyVersion); - if (Config::GetLoadGameSizeEnabled()) { - copyMenu->addAction(copySize); - } - copyMenu->addAction(copyNameAll); - - menu.addMenu(copyMenu); - - // "Delete..." submenu. - QMenu* deleteMenu = new QMenu(tr("Delete..."), widget); - QAction* deleteGame = new QAction(tr("Delete Game"), widget); - QAction* deleteUpdate = new QAction(tr("Delete Update"), widget); - QAction* deleteSaveData = new QAction(tr("Delete Save Data"), widget); - QAction* deleteDLC = new QAction(tr("Delete DLC"), widget); - QAction* deleteTrophy = new QAction(tr("Delete Trophy"), widget); - - deleteMenu->addAction(deleteGame); - deleteMenu->addAction(deleteUpdate); - deleteMenu->addAction(deleteSaveData); - deleteMenu->addAction(deleteDLC); - deleteMenu->addAction(deleteTrophy); - - menu.addMenu(deleteMenu); - - // Compatibility submenu. - QMenu* compatibilityMenu = new QMenu(tr("Compatibility..."), widget); - QAction* updateCompatibility = new QAction(tr("Update Database"), widget); - QAction* viewCompatibilityReport = new QAction(tr("View Report"), widget); - QAction* submitCompatibilityReport = new QAction(tr("Submit a Report"), widget); - - compatibilityMenu->addAction(updateCompatibility); - compatibilityMenu->addAction(viewCompatibilityReport); - if (Common::g_is_release) { - compatibilityMenu->addAction(submitCompatibilityReport); - } - - menu.addMenu(compatibilityMenu); - - compatibilityMenu->setEnabled(Config::getCompatibilityEnabled()); - viewCompatibilityReport->setEnabled(m_games[itemID].compatibility.status != - CompatibilityStatus::Unknown); - - // Show menu. - auto selected = menu.exec(global_pos); - if (!selected) { - return changedFavorite; - } - - if (selected == openGameFolder) { - QString folderPath; - Common::FS::PathToQString(folderPath, m_games[itemID].path); - QDesktopServices::openUrl(QUrl::fromLocalFile(folderPath)); - } - - if (selected == openUpdateFolder) { - QString open_update_path; - Common::FS::PathToQString(open_update_path, m_games[itemID].path); - open_update_path += "-UPDATE"; - if (std::filesystem::exists(Common::FS::PathFromQString(open_update_path))) { - QDesktopServices::openUrl(QUrl::fromLocalFile(open_update_path)); - } else { - Common::FS::PathToQString(open_update_path, m_games[itemID].path); - open_update_path += "-patch"; - if (std::filesystem::exists(Common::FS::PathFromQString(open_update_path))) { - QDesktopServices::openUrl(QUrl::fromLocalFile(open_update_path)); - } else { - QMessageBox::critical(nullptr, tr("Error"), - QString(tr("This game has no update folder to open!"))); - } - } - } - - if (selected == openSaveDataFolder) { - QString saveDataPath; - Common::FS::PathToQString(saveDataPath, - Config::GetSaveDataPath() / "1" / m_games[itemID].save_dir); - QDir(saveDataPath).mkpath(saveDataPath); - QDesktopServices::openUrl(QUrl::fromLocalFile(saveDataPath)); - } - - if (selected == openLogFolder) { - QString logPath; - Common::FS::PathToQString(logPath, - Common::FS::GetUserPath(Common::FS::PathType::LogDir)); - if (!Config::getSeparateLogFilesEnabled()) { - QDesktopServices::openUrl(QUrl::fromLocalFile(logPath)); - } else { - QString fileName = QString::fromStdString(m_games[itemID].serial) + ".log"; - QString filePath = logPath + "/" + fileName; - QStringList arguments; - if (QFile::exists(filePath)) { -#ifdef Q_OS_WIN - arguments << "/select," << filePath.replace("/", "\\"); - QProcess::startDetached("explorer", arguments); - -#elif defined(Q_OS_MAC) - arguments << "-R" << filePath; - QProcess::startDetached("open", arguments); - -#elif defined(Q_OS_LINUX) - QStringList arguments; - arguments << "--select" << filePath; - if (!QProcess::startDetached("nautilus", arguments)) { - // Failed to open Nautilus to select file - arguments.clear(); - arguments << logPath; - if (!QProcess::startDetached("xdg-open", arguments)) { - // Failed to open directory on Linux - } - } -#else - QDesktopServices::openUrl(QUrl::fromLocalFile(logPath)); -#endif - } else { - QMessageBox msgBox; - msgBox.setIcon(QMessageBox::Information); - msgBox.setText(tr("No log file found for this game!")); - - QPushButton* okButton = msgBox.addButton(QMessageBox::Ok); - QPushButton* openFolderButton = - msgBox.addButton(tr("Open Log Folder"), QMessageBox::ActionRole); - - msgBox.exec(); - - if (msgBox.clickedButton() == openFolderButton) { - QDesktopServices::openUrl(QUrl::fromLocalFile(logPath)); - } - } - } - } - - if (selected == &openSfoViewer) { - PSF psf; - QString gameName = QString::fromStdString(m_games[itemID].name); - std::filesystem::path game_folder_path = m_games[itemID].path; - std::filesystem::path game_update_path = game_folder_path; - game_update_path += "-UPDATE"; - if (std::filesystem::exists(game_update_path)) { - game_folder_path = game_update_path; - } else { - game_update_path = game_folder_path; - game_update_path += "-patch"; - if (std::filesystem::exists(game_update_path)) { - game_folder_path = game_update_path; - } - } - if (psf.Open(game_folder_path / "sce_sys" / "param.sfo")) { - int rows = psf.GetEntries().size(); - QTableWidget* tableWidget = new QTableWidget(rows, 2); - tableWidget->setAttribute(Qt::WA_DeleteOnClose); - connect(widget->parent(), &QWidget::destroyed, tableWidget, - [tableWidget]() { tableWidget->deleteLater(); }); - - tableWidget->verticalHeader()->setVisible(false); // Hide vertical header - int row = 0; - - for (const auto& entry : psf.GetEntries()) { - QTableWidgetItem* keyItem = - new QTableWidgetItem(QString::fromStdString(entry.key)); - QTableWidgetItem* valueItem; - switch (entry.param_fmt) { - case PSFEntryFmt::Binary: { - const auto bin = psf.GetBinary(entry.key); - if (!bin.has_value()) { - valueItem = new QTableWidgetItem(QString("Unknown")); - } else { - std::string text; - text.reserve(bin->size() * 2); - for (const auto& c : *bin) { - static constexpr char hex[] = "0123456789ABCDEF"; - text.push_back(hex[c >> 4 & 0xF]); - text.push_back(hex[c & 0xF]); - } - valueItem = new QTableWidgetItem(QString::fromStdString(text)); - } - } break; - case PSFEntryFmt::Text: { - auto text = psf.GetString(entry.key); - if (!text.has_value()) { - valueItem = new QTableWidgetItem(QString("Unknown")); - } else { - valueItem = - new QTableWidgetItem(QString::fromStdString(std::string{*text})); - } - } break; - case PSFEntryFmt::Integer: { - auto integer = psf.GetInteger(entry.key); - if (!integer.has_value()) { - valueItem = new QTableWidgetItem(QString("Unknown")); - } else { - valueItem = - new QTableWidgetItem(QString("0x") + QString::number(*integer, 16)); - } - } break; - } - - tableWidget->setItem(row, 0, keyItem); - tableWidget->setItem(row, 1, valueItem); - keyItem->setFlags(keyItem->flags() & ~Qt::ItemIsEditable); - valueItem->setFlags(valueItem->flags() & ~Qt::ItemIsEditable); - row++; - } - tableWidget->resizeColumnsToContents(); - tableWidget->resizeRowsToContents(); - - int width = tableWidget->horizontalHeader()->sectionSize(0) + - tableWidget->horizontalHeader()->sectionSize(1) + 2; - int height = (rows + 1) * (tableWidget->rowHeight(0)); - tableWidget->setFixedSize(width, height); - tableWidget->sortItems(0, Qt::AscendingOrder); - tableWidget->horizontalHeader()->setVisible(false); - - tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed); - tableWidget->setWindowTitle(tr("SFO Viewer for ") + gameName); - tableWidget->show(); - } - } - - if (selected == toggleFavorite) { - if (isFavorite) { - list.removeOne(serialStr); - } else { - list.append(serialStr); - } - m_gui_settings->SetValue(gui::favorites_list, gui_settings::List2Var(list)); - changedFavorite = 1; - } - - if (selected == &openCheats) { - QString gameName = QString::fromStdString(m_games[itemID].name); - QString gameSerial = QString::fromStdString(m_games[itemID].serial); - QString gameVersion = QString::fromStdString(m_games[itemID].version); - QString gameSize = QString::fromStdString(m_games[itemID].size); - QString iconPath; - Common::FS::PathToQString(iconPath, m_games[itemID].icon_path); - QPixmap gameImage(iconPath); - CheatsPatches* cheatsPatches = - new CheatsPatches(gameName, gameSerial, gameVersion, gameSize, gameImage); - cheatsPatches->show(); - connect(widget->parent(), &QWidget::destroyed, cheatsPatches, - [cheatsPatches]() { cheatsPatches->deleteLater(); }); - } - - if (selected == &openTrophyViewer) { - QString trophyPath, gameTrpPath; - Common::FS::PathToQString(trophyPath, m_games[itemID].serial); - Common::FS::PathToQString(gameTrpPath, m_games[itemID].path); - auto game_update_path = Common::FS::PathFromQString(gameTrpPath); - game_update_path += "-UPDATE"; - if (std::filesystem::exists(game_update_path)) { - Common::FS::PathToQString(gameTrpPath, game_update_path); - } else { - game_update_path = Common::FS::PathFromQString(gameTrpPath); - game_update_path += "-patch"; - if (std::filesystem::exists(game_update_path)) { - Common::FS::PathToQString(gameTrpPath, game_update_path); - } - } - - // Array with all games and their trophy information - QVector allTrophyGames; - for (const auto& game : m_games) { - TrophyGameInfo gameInfo; - gameInfo.name = QString::fromStdString(game.name); - Common::FS::PathToQString(gameInfo.trophyPath, game.serial); - Common::FS::PathToQString(gameInfo.gameTrpPath, game.path); - - auto update_path = Common::FS::PathFromQString(gameInfo.gameTrpPath); - update_path += "-UPDATE"; - if (std::filesystem::exists(update_path)) { - Common::FS::PathToQString(gameInfo.gameTrpPath, update_path); - } else { - update_path = Common::FS::PathFromQString(gameInfo.gameTrpPath); - update_path += "-patch"; - if (std::filesystem::exists(update_path)) { - Common::FS::PathToQString(gameInfo.gameTrpPath, update_path); - } - } - - allTrophyGames.append(gameInfo); - } - - QString gameName = QString::fromStdString(m_games[itemID].name); - TrophyViewer* trophyViewer = - new TrophyViewer(m_gui_settings, trophyPath, gameTrpPath, gameName, allTrophyGames); - trophyViewer->show(); - connect(widget->parent(), &QWidget::destroyed, trophyViewer, - [trophyViewer]() { trophyViewer->deleteLater(); }); - } - - if (selected == &gameConfigConfigure || selected == &gameConfigCreate) { - auto settingsWindow = new SettingsDialog(m_gui_settings, m_compat_info, widget, false, - true, serialStr.toStdString()); - settingsWindow->exec(); - } - - if (selected == &gameConfigDelete) { - if (QMessageBox::Yes == QMessageBox::question(widget, tr("Confirm deletion"), - tr("Delete game-specific settings?"), - QMessageBox::Yes | QMessageBox::No)) { - std::filesystem::remove( - Common::FS::GetUserPath(Common::FS::PathType::CustomConfigs) / - (m_games[itemID].serial + ".toml")); - } - } - - if (selected == &createShortcut) { - QString targetPath; - Common::FS::PathToQString(targetPath, m_games[itemID].path); - QString ebootPath = targetPath + "/eboot.bin"; - - // Get the full path to the icon - QString iconPath; - Common::FS::PathToQString(iconPath, m_games[itemID].icon_path); - QFileInfo iconFileInfo(iconPath); - QString icoPath = iconFileInfo.absolutePath() + "/" + iconFileInfo.baseName() + ".ico"; - - // Path to shortcut/link - QString linkPath; - - // Path to the shadps4.exe executable - QString exePath; -#ifdef Q_OS_WIN - linkPath = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + "/" + - QString::fromStdString(m_games[itemID].name) - .remove(QRegularExpression("[\\\\/:*?\"<>|]")) + - ".lnk"; - - exePath = QCoreApplication::applicationFilePath().replace("\\", "/"); - -#else - linkPath = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + "/" + - QString::fromStdString(m_games[itemID].name) - .remove(QRegularExpression("[\\\\/:*?\"<>|]")) + - ".desktop"; -#endif - - // Convert the icon to .ico if necessary - if (iconFileInfo.suffix().toLower() == "png") { - // Convert icon from PNG to ICO - if (convertPngToIco(iconPath, icoPath)) { - -#ifdef Q_OS_WIN - if (createShortcutWin(linkPath, ebootPath, icoPath, exePath)) { -#else - if (createShortcutLinux(linkPath, m_games[itemID].name, ebootPath, iconPath)) { -#endif - QMessageBox::information( - nullptr, tr("Shortcut creation"), - QString(tr("Shortcut created successfully!") + "\n%1").arg(linkPath)); - } else { - QMessageBox::critical( - nullptr, tr("Error"), - QString(tr("Error creating shortcut!") + "\n%1").arg(linkPath)); - } - } else { - QMessageBox::critical(nullptr, tr("Error"), tr("Failed to convert icon.")); - } - } else { - // If the icon is already in ICO format, we just create the shortcut -#ifdef Q_OS_WIN - if (createShortcutWin(linkPath, ebootPath, iconPath, exePath)) { -#else - if (createShortcutLinux(linkPath, m_games[itemID].name, ebootPath, iconPath)) { -#endif - QMessageBox::information( - nullptr, tr("Shortcut creation"), - QString(tr("Shortcut created successfully!") + "\n%1").arg(linkPath)); - } else { - QMessageBox::critical( - nullptr, tr("Error"), - QString(tr("Error creating shortcut!") + "\n%1").arg(linkPath)); - } - } - } - - // Handle the "Copy" actions - if (selected == copyName) { - QClipboard* clipboard = QGuiApplication::clipboard(); - clipboard->setText(QString::fromStdString(m_games[itemID].name)); - } - - if (selected == copySerial) { - QClipboard* clipboard = QGuiApplication::clipboard(); - clipboard->setText(QString::fromStdString(m_games[itemID].serial)); - } - - if (selected == copyVersion) { - QClipboard* clipboard = QGuiApplication::clipboard(); - clipboard->setText(QString::fromStdString(m_games[itemID].version)); - } - - if (selected == copySize) { - QClipboard* clipboard = QGuiApplication::clipboard(); - clipboard->setText(QString::fromStdString(m_games[itemID].size)); - } - - if (selected == copyNameAll) { - QString GameSizeEnabled; - if (Config::GetLoadGameSizeEnabled()) { - GameSizeEnabled = " | Size:" + QString::fromStdString(m_games[itemID].size); - } - - QClipboard* clipboard = QGuiApplication::clipboard(); - QString combinedText = QString("Name:%1 | Serial:%2 | Version:%3%4") - .arg(QString::fromStdString(m_games[itemID].name)) - .arg(QString::fromStdString(m_games[itemID].serial)) - .arg(QString::fromStdString(m_games[itemID].version)) - .arg(GameSizeEnabled); - - clipboard->setText(combinedText); - } - - if (selected == deleteGame || selected == deleteUpdate || selected == deleteDLC || - selected == deleteSaveData || selected == deleteTrophy) { - bool error = false; - QString folder_path, game_update_path, dlc_path, save_data_path, trophy_data_path; - Common::FS::PathToQString(folder_path, m_games[itemID].path); - game_update_path = folder_path + "-UPDATE"; - if (!std::filesystem::exists(Common::FS::PathFromQString(game_update_path))) { - game_update_path = folder_path + "-patch"; - } - Common::FS::PathToQString( - dlc_path, Config::getAddonInstallDir() / - Common::FS::PathFromQString(folder_path).parent_path().filename()); - Common::FS::PathToQString(save_data_path, - Config::GetSaveDataPath() / "1" / m_games[itemID].save_dir); - - Common::FS::PathToQString(trophy_data_path, - Common::FS::GetUserPath(Common::FS::PathType::MetaDataDir) / - m_games[itemID].serial / "TrophyFiles"); - - QString message_type; - - if (selected == deleteGame) { - BackgroundMusicPlayer::getInstance().stopMusic(); - message_type = tr("Game"); - } else if (selected == deleteUpdate) { - if (!std::filesystem::exists(Common::FS::PathFromQString(game_update_path))) { - QMessageBox::critical(nullptr, tr("Error"), - QString(tr("This game has no update to delete!"))); - error = true; - } else { - folder_path = game_update_path; - message_type = tr("Update"); - } - } else if (selected == deleteDLC) { - if (!std::filesystem::exists(Common::FS::PathFromQString(dlc_path))) { - QMessageBox::critical(nullptr, tr("Error"), - QString(tr("This game has no DLC to delete!"))); - error = true; - } else { - folder_path = dlc_path; - message_type = tr("DLC"); - } - } else if (selected == deleteSaveData) { - if (!std::filesystem::exists(Common::FS::PathFromQString(save_data_path))) { - QMessageBox::critical(nullptr, tr("Error"), - QString(tr("This game has no save data to delete!"))); - error = true; - } else { - folder_path = save_data_path; - message_type = tr("Save Data"); - } - } else if (selected == deleteTrophy) { - if (!std::filesystem::exists(Common::FS::PathFromQString(trophy_data_path))) { - QMessageBox::critical( - nullptr, tr("Error"), - QString(tr("This game has no saved trophies to delete!"))); - error = true; - } else { - folder_path = trophy_data_path; - message_type = tr("Trophy"); - } - } - if (!error) { - QString gameName = QString::fromStdString(m_games[itemID].name); - QDir dir(folder_path); - QMessageBox::StandardButton reply = QMessageBox::question( - nullptr, QString(tr("Delete %1")).arg(message_type), - QString(tr("Are you sure you want to delete %1's %2 directory?")) - .arg(gameName, message_type), - QMessageBox::Yes | QMessageBox::No); - if (reply == QMessageBox::Yes) { - dir.removeRecursively(); - if (selected == deleteGame) { - widget->removeRow(itemID); - m_games.removeAt(itemID); - } - } - } - } - - if (selected == updateCompatibility) { - m_compat_info->UpdateCompatibilityDatabase(widget, true); - } - - if (selected == viewCompatibilityReport) { - if (m_games[itemID].compatibility.issue_number != "") { - auto url_issues = - "https://github.com/shadps4-compatibility/shadps4-game-compatibility/issues/"; - QDesktopServices::openUrl( - QUrl(url_issues + m_games[itemID].compatibility.issue_number)); - } - } - - if (selected == submitCompatibilityReport) { - if (m_games[itemID].compatibility.issue_number == "") { - QUrl url = QUrl("https://github.com/shadps4-compatibility/" - "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); - } else { - auto url_issues = - "https://github.com/shadps4-compatibility/shadps4-game-compatibility/issues/"; - QDesktopServices::openUrl( - QUrl(url_issues + m_games[itemID].compatibility.issue_number)); - } - } - return changedFavorite; - } - - int GetRowIndex(QTreeWidget* treeWidget, QTreeWidgetItem* item) { - int row = 0; - for (int i = 0; i < treeWidget->topLevelItemCount(); i++) { // check top level/parent items - QTreeWidgetItem* currentItem = treeWidget->topLevelItem(i); - if (currentItem == item) { - return row; - } - row++; - - if (currentItem->childCount() > 0) { // check child items - for (int j = 0; j < currentItem->childCount(); j++) { - QTreeWidgetItem* childItem = currentItem->child(j); - if (childItem == item) { - return row; - } - row++; - } - } - } - return -1; - } - -private: - bool convertPngToIco(const QString& pngFilePath, const QString& icoFilePath) { - // Load the PNG image - QImage image(pngFilePath); - if (image.isNull()) { - return false; - } - - // Scale the image to the default icon size (256x256 pixels) - QImage scaledImage = - image.scaled(QSize(256, 256), Qt::KeepAspectRatio, Qt::SmoothTransformation); - - // Convert the image to QPixmap - QPixmap pixmap = QPixmap::fromImage(scaledImage); - - // Save the pixmap as an ICO file - if (pixmap.save(icoFilePath, "ICO")) { - return true; - } else { - return false; - } - } - -#ifdef Q_OS_WIN - bool createShortcutWin(const QString& linkPath, const QString& targetPath, - const QString& iconPath, const QString& exePath) { - CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); - - // Create the ShellLink object - Microsoft::WRL::ComPtr pShellLink; - HRESULT hres = CoCreateInstance(CLSID_ShellLink, nullptr, CLSCTX_INPROC_SERVER, - IID_PPV_ARGS(&pShellLink)); - if (SUCCEEDED(hres)) { - // Defines the path to the program executable - pShellLink->SetPath((LPCWSTR)exePath.utf16()); - - // Sets the home directory ("Start in") - pShellLink->SetWorkingDirectory((LPCWSTR)QFileInfo(exePath).absolutePath().utf16()); - - // Set arguments, eboot.bin file location - QString arguments = QString("-g \"%1\"").arg(targetPath); - pShellLink->SetArguments((LPCWSTR)arguments.utf16()); - - // Set the icon for the shortcut - pShellLink->SetIconLocation((LPCWSTR)iconPath.utf16(), 0); - - // Save the shortcut - Microsoft::WRL::ComPtr pPersistFile; - hres = pShellLink.As(&pPersistFile); - if (SUCCEEDED(hres)) { - hres = pPersistFile->Save((LPCWSTR)linkPath.utf16(), TRUE); - } - } - - CoUninitialize(); - - return SUCCEEDED(hres); - } -#else - bool createShortcutLinux(const QString& linkPath, const std::string& name, - const QString& targetPath, const QString& iconPath) { - QFile shortcutFile(linkPath); - if (!shortcutFile.open(QIODevice::WriteOnly | QIODevice::Text)) { - QMessageBox::critical(nullptr, "Error", - QString("Error creating shortcut!\n %1").arg(linkPath)); - return false; - } - - QTextStream out(&shortcutFile); - out << "[Desktop Entry]\n"; - out << "Version=1.0\n"; - out << "Name=" << QString::fromStdString(name) << "\n"; - out << "Exec=" << QCoreApplication::applicationFilePath() << " \"" << targetPath << "\"\n"; - out << "Icon=" << iconPath << "\n"; - out << "Terminal=false\n"; - out << "Type=Application\n"; - shortcutFile.close(); - - return true; - } -#endif -}; diff --git a/src/qt_gui/gui_settings.cpp b/src/qt_gui/gui_settings.cpp deleted file mode 100644 index 4de6b7f19..000000000 --- a/src/qt_gui/gui_settings.cpp +++ /dev/null @@ -1,9 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "gui_settings.h" - -gui_settings::gui_settings(QObject* parent) : settings(parent) { - m_settings = std::make_unique(ComputeSettingsDir() + "qt_ui.ini", - QSettings::Format::IniFormat, parent); -} diff --git a/src/qt_gui/gui_settings.h b/src/qt_gui/gui_settings.h deleted file mode 100644 index 4d2a1b7f7..000000000 --- a/src/qt_gui/gui_settings.h +++ /dev/null @@ -1,58 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include "settings.h" - -namespace gui { -// categories -const QString general_settings = "general_settings"; -const QString main_window = "main_window"; -const QString game_list = "game_list"; -const QString game_grid = "game_grid"; -const QString favorites = "favorites"; - -// general -const gui_value gen_checkForUpdates = gui_value(general_settings, "checkForUpdates", false); -const gui_value gen_showChangeLog = gui_value(general_settings, "showChangeLog", false); -const gui_value gen_updateChannel = gui_value(general_settings, "updateChannel", "Release"); -const gui_value gen_recentFiles = - gui_value(main_window, "recentFiles", QVariant::fromValue(QList())); -const gui_value gen_guiLanguage = gui_value(general_settings, "guiLanguage", "en_US"); -const gui_value gen_elfDirs = - gui_value(main_window, "elfDirs", QVariant::fromValue(QList())); -const gui_value gen_theme = gui_value(general_settings, "theme", 0); - -// main window settings -const gui_value mw_geometry = gui_value(main_window, "geometry", QByteArray()); -const gui_value mw_showLabelsUnderIcons = gui_value(main_window, "showLabelsUnderIcons", true); - -// game list settings -const gui_value gl_mode = gui_value(game_list, "tableMode", 0); -const gui_value gl_icon_size = gui_value(game_list, "icon_size", 36); -const gui_value gl_slider_pos = gui_value(game_list, "slider_pos", 0); -const gui_value gl_showBackgroundImage = gui_value(game_list, "showBackgroundImage", true); -const gui_value gl_backgroundImageOpacity = gui_value(game_list, "backgroundImageOpacity", 50); -const gui_value gl_playBackgroundMusic = gui_value(game_list, "playBackgroundMusic", true); -const gui_value gl_backgroundMusicVolume = gui_value(game_list, "backgroundMusicVolume", 50); -const gui_value gl_VolumeSlider = gui_value(game_list, "volumeSlider", 100); - -// game grid settings -const gui_value gg_icon_size = gui_value(game_grid, "icon_size", 69); -const gui_value gg_slider_pos = gui_value(game_grid, "slider_pos", 0); - -// favorites list -const gui_value favorites_list = - gui_value(favorites, "favoritesList", QVariant::fromValue(QList())); - -} // namespace gui - -class gui_settings : public settings { - Q_OBJECT - -public: - explicit gui_settings(QObject* parent = nullptr); - ~gui_settings() override = default; -}; diff --git a/src/qt_gui/hotkeys.cpp b/src/qt_gui/hotkeys.cpp deleted file mode 100644 index 5fbd1e6d5..000000000 --- a/src/qt_gui/hotkeys.cpp +++ /dev/null @@ -1,930 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include -#include - -#include "common/config.h" -#include "common/logging/log.h" -#include "common/path_util.h" -#include "hotkeys.h" -#include "input/controller.h" -#include "input/input_handler.h" -#include "sdl_event_wrapper.h" -#include "ui_hotkeys.h" - -Hotkeys::Hotkeys(bool isGameRunning, QWidget* parent) - : QDialog(parent), GameRunning(isGameRunning), ui(new Ui::Hotkeys) { - - ui->setupUi(this); - - if (!GameRunning) { - SDL_InitSubSystem(SDL_INIT_GAMEPAD); - SDL_InitSubSystem(SDL_INIT_EVENTS); - } else { - SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "1"); - } - - LoadHotkeys(); - CheckGamePad(); - installEventFilter(this); - - PadButtonsList = {ui->fpsButtonPad, ui->quitButtonPad, ui->fullscreenButtonPad, - ui->pauseButtonPad, ui->reloadButtonPad}; - - KBButtonsList = {ui->fpsButtonKB, ui->quitButtonKB, ui->fullscreenButtonKB, - ui->pauseButtonKB, ui->reloadButtonKB, ui->renderdocButton, - ui->mouseJoystickButton, ui->mouseGyroButton}; - - connect(ui->buttonBox, &QDialogButtonBox::clicked, this, [this](QAbstractButton* button) { - if (button == ui->buttonBox->button(QDialogButtonBox::Save)) { - SaveHotkeys(true); - } else if (button == ui->buttonBox->button(QDialogButtonBox::Apply)) { - SaveHotkeys(false); - } else if (button == ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)) { - SetDefault(); - } else if (button == ui->buttonBox->button(QDialogButtonBox::Cancel)) { - QWidget::close(); - } - }); - - connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QWidget::close); - - ui->buttonBox->button(QDialogButtonBox::Save)->setText(tr("Save")); - ui->buttonBox->button(QDialogButtonBox::Apply)->setText(tr("Apply")); - ui->buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("Cancel")); - ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setText(tr("Restore Defaults")); - - for (auto& button : PadButtonsList) { - connect(button, &QPushButton::clicked, this, - [this, &button]() { StartTimer(button, true); }); - } - - for (auto& button : KBButtonsList) { - connect(button, &QPushButton::clicked, this, - [this, &button]() { StartTimer(button, false); }); - } - - SdlEventWrapper::Wrapper::wrapperActive = true; - QObject::connect(SdlEventWrapper::Wrapper::GetInstance(), &SdlEventWrapper::Wrapper::SDLEvent, - this, &Hotkeys::processSDLEvents); - - if (!GameRunning) { - Polling = QtConcurrent::run(&Hotkeys::pollSDLEvents, this); - } -} - -void Hotkeys::DisableMappingButtons() { - for (auto& i : PadButtonsList) { - i->setEnabled(false); - } - - for (auto& i : KBButtonsList) { - i->setEnabled(false); - } - - ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(false); - ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false); -} - -void Hotkeys::EnableMappingButtons() { - for (auto& i : PadButtonsList) { - i->setEnabled(true); - } - - for (auto& i : KBButtonsList) { - i->setEnabled(true); - } - - ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(true); - ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true); -} - -void Hotkeys::SetDefault() { - - PadButtonsList = {ui->fpsButtonPad, ui->quitButtonPad, ui->fullscreenButtonPad, - ui->pauseButtonPad, ui->reloadButtonPad}; - - KBButtonsList = {ui->fpsButtonKB, ui->quitButtonKB, ui->fullscreenButtonKB, - ui->pauseButtonKB, ui->reloadButtonKB, ui->renderdocButton, - ui->mouseJoystickButton, ui->mouseGyroButton}; - - ui->fpsButtonPad->setText("unmapped"); - ui->quitButtonPad->setText("unmapped"); - ui->fullscreenButtonPad->setText("unmapped"); - ui->pauseButtonPad->setText("unmapped"); - ui->reloadButtonPad->setText("unmapped"); - - ui->fpsButtonKB->setText("f10"); - ui->quitButtonKB->setText("lctrl, lshift, end"); - ui->fullscreenButtonKB->setText("f11"); - ui->pauseButtonKB->setText("f9"); - ui->reloadButtonKB->setText("f8"); - - ui->renderdocButton->setText("f12"); - ui->mouseJoystickButton->setText("f7"); - ui->mouseGyroButton->setText("f6"); -} - -void Hotkeys::SaveHotkeys(bool CloseOnSave) { - std::vector lines, inputs; - - auto add_mapping = [&](const QString& buttonText, const std::string& output_name) { - if (buttonText.toStdString() != "unmapped") { - lines.push_back(output_name + " = " + buttonText.toStdString()); - inputs.push_back(buttonText.toStdString()); - } - }; - - lines.push_back("# Anything put here will be loaded for all games,"); - lines.push_back("# alongside the game's config or default.ini depending on your preference."); - lines.push_back(""); - - add_mapping(ui->fullscreenButtonPad->text(), "hotkey_fullscreen"); - add_mapping(ui->fullscreenButtonKB->text(), "hotkey_fullscreen"); - lines.push_back(""); - - add_mapping(ui->pauseButtonPad->text(), "hotkey_pause"); - add_mapping(ui->pauseButtonKB->text(), "hotkey_pause"); - lines.push_back(""); - - add_mapping(ui->fpsButtonPad->text(), "hotkey_show_fps"); - add_mapping(ui->fpsButtonKB->text(), "hotkey_show_fps"); - lines.push_back(""); - - add_mapping(ui->quitButtonPad->text(), "hotkey_quit"); - add_mapping(ui->quitButtonKB->text(), "hotkey_quit"); - lines.push_back(""); - - add_mapping(ui->reloadButtonPad->text(), "hotkey_reload_inputs"); - add_mapping(ui->reloadButtonKB->text(), "hotkey_reload_inputs"); - lines.push_back(""); - - add_mapping(ui->renderdocButton->text(), "hotkey_renderdoc_capture"); - add_mapping(ui->mouseJoystickButton->text(), "hotkey_toggle_mouse_to_joystick"); - add_mapping(ui->mouseGyroButton->text(), "hotkey_toggle_mouse_to_gyro"); - - auto hotkey_file = Config::GetFoolproofInputConfigFile("global"); - std::fstream file(hotkey_file); - int lineCount = 0; - std::string line; - while (std::getline(file, line)) { - lineCount++; - - std::size_t comment_pos = line.find('#'); - if (comment_pos != std::string::npos) { - if (!line.contains("Anything put here will be loaded for all games") && - !line.contains("alongside the game's config or default.ini depending on your")) - lines.push_back(line); - continue; - } - - std::size_t equal_pos = line.find('='); - if (equal_pos == std::string::npos) { - lines.push_back(line); - continue; - } - - if (!line.contains("hotkey")) { - lines.push_back(line); - } - } - file.close(); - - // Prevent duplicate inputs that break the input engine - bool duplicateFound = false; - QSet duplicateMappings; - - for (auto it = inputs.begin(); it != inputs.end(); ++it) { - if (std::find(it + 1, inputs.end(), *it) != inputs.end()) { - duplicateFound = true; - duplicateMappings.insert(QString::fromStdString(*it)); - } - } - - if (duplicateFound) { - QStringList duplicatesList; - for (const QString& mapping : duplicateMappings) { - for (auto& button : PadButtonsList) { - if (button->text() == mapping) - duplicatesList.append(button->objectName() + " - " + mapping); - } - - for (auto& button : KBButtonsList) { - if (button->text() == mapping) - duplicatesList.append(button->objectName() + " - " + mapping); - } - } - QMessageBox::information( - this, tr("Unable to Save"), - // clang-format off - QString(tr("Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:\n\n%1").arg(duplicatesList.join("\n")))); - // clang-format on - return; - } - - std::vector save; - bool CurrentLineEmpty = false, LastLineEmpty = false; - for (auto const& line : lines) { - LastLineEmpty = CurrentLineEmpty ? true : false; - CurrentLineEmpty = line.empty() ? true : false; - if (!CurrentLineEmpty || !LastLineEmpty) - save.push_back(line); - } - - std::ofstream output_file(hotkey_file); - for (auto const& line : save) { - output_file << line << '\n'; - } - output_file.close(); - - // this also parses global hotkeys - if (GameRunning) - Input::ParseInputConfig("default"); - - if (CloseOnSave) - QWidget::close(); -} - -void Hotkeys::LoadHotkeys() { - auto hotkey_file = Config::GetFoolproofInputConfigFile("global"); - std::ifstream file(hotkey_file); - int lineCount = 0; - std::string line = ""; - - while (std::getline(file, line)) { - lineCount++; - - std::size_t equal_pos = line.find('='); - if (equal_pos == std::string::npos) - continue; - - std::string output_string = line.substr(0, equal_pos); - std::string input_string = line.substr(equal_pos + 2); - - bool controllerInputDetected = false; - for (const std::string& input : ControllerInputs) { - // Needed to avoid detecting backspace while detecting back - if (input_string.contains(input) && !input_string.contains("backspace")) { - controllerInputDetected = true; - break; - } - } - - if (output_string.contains("hotkey_fullscreen")) { - controllerInputDetected - ? ui->fullscreenButtonPad->setText(QString::fromStdString(input_string)) - : ui->fullscreenButtonKB->setText(QString::fromStdString(input_string)); - } else if (output_string.contains("hotkey_show_fps")) { - controllerInputDetected - ? ui->fpsButtonPad->setText(QString::fromStdString(input_string)) - : ui->fpsButtonKB->setText(QString::fromStdString(input_string)); - } else if (output_string.contains("hotkey_pause")) { - controllerInputDetected - ? ui->pauseButtonPad->setText(QString::fromStdString(input_string)) - : ui->pauseButtonKB->setText(QString::fromStdString(input_string)); - } else if (output_string.contains("hotkey_quit")) { - controllerInputDetected - ? ui->quitButtonPad->setText(QString::fromStdString(input_string)) - : ui->quitButtonKB->setText(QString::fromStdString(input_string)); - } else if (output_string.contains("hotkey_reload_inputs")) { - controllerInputDetected - ? ui->reloadButtonPad->setText(QString::fromStdString(input_string)) - : ui->reloadButtonKB->setText(QString::fromStdString(input_string)); - } else if (output_string.contains("hotkey_renderdoc_capture")) { - ui->renderdocButton->setText(QString::fromStdString(input_string)); - } else if (output_string.contains("hotkey_toggle_mouse_to_joystick")) { - ui->mouseJoystickButton->setText(QString::fromStdString(input_string)); - } else if (output_string.contains("hotkey_toggle_mouse_to_gyro")) { - ui->mouseGyroButton->setText(QString::fromStdString(input_string)); - } - } - - file.close(); -} - -void Hotkeys::CheckGamePad() { - if (h_gamepad) { - SDL_CloseGamepad(h_gamepad); - h_gamepad = nullptr; - } - - h_gamepads = SDL_GetGamepads(&gamepad_count); - - if (!h_gamepads) { - LOG_ERROR(Input, "Cannot get gamepad list: {}", SDL_GetError()); - return; - } - - int defaultIndex = GamepadSelect::GetIndexfromGUID(h_gamepads, gamepad_count, - Config::getDefaultControllerID()); - int activeIndex = GamepadSelect::GetIndexfromGUID(h_gamepads, gamepad_count, - GamepadSelect::GetSelectedGamepad()); - - if (!GameRunning) { - if (activeIndex != -1) { - h_gamepad = SDL_OpenGamepad(h_gamepads[activeIndex]); - } else if (defaultIndex != -1) { - h_gamepad = SDL_OpenGamepad(h_gamepads[defaultIndex]); - } else { - LOG_INFO(Input, "Got {} gamepads. Opening the first one.", gamepad_count); - h_gamepad = SDL_OpenGamepad(h_gamepads[0]); - } - - if (!h_gamepad) { - LOG_ERROR(Input, "Failed to open gamepad: {}", SDL_GetError()); - } - } -} - -void Hotkeys::StartTimer(QPushButton*& button, bool isButton) { - MappingTimer = 3; - MappingCompleted = false; - mapping = button->text(); - DisableMappingButtons(); - - isButton ? EnablePadMapping = true : EnableKBMapping = true; - button->setText(tr("Waiting for inputs") + " [" + QString::number(MappingTimer) + "]"); - - timer = new QTimer(this); - MappingButton = button; - timer->start(1000); - connect(timer, &QTimer::timeout, this, [this]() { CheckMapping(MappingButton); }); -} - -void Hotkeys::CheckMapping(QPushButton*& button) { - MappingTimer -= 1; - button->setText(tr("Waiting for inputs") + " [" + QString::number(MappingTimer) + "]"); - - if (pressedButtons.size() > 0) { - QStringList keyStrings; - - for (QString& buttonAction : pressedButtons) { - keyStrings << buttonAction; - } - - QString combo = keyStrings.join(", "); - SetMapping(combo); - MappingButton->setText(combo); - pressedButtons.clear(); - } - - if (MappingCompleted || MappingTimer <= 0) { - button->setText(mapping); - EnablePadMapping = false; - EnableKBMapping = false; - L2Pressed = false; - R2Pressed = false; - EnableMappingButtons(); - timer->stop(); - } -} - -void Hotkeys::SetMapping(QString input) { - mapping = input; - MappingCompleted = true; -} - -// use QT events instead of SDL for KB since SDL doesn't allow background KB events -bool Hotkeys::eventFilter(QObject* obj, QEvent* event) { - if (event->type() == QEvent::KeyPress) { - QKeyEvent* keyEvent = static_cast(event); - if (keyEvent->key() == Qt::Key_Escape) { - if (EnableKBMapping || EnablePadMapping) { - SetMapping("unmapped"); - CheckMapping(MappingButton); - } - return true; - } else { - if (EnableKBMapping) { - - if (pressedButtons.size() >= 3) { - return true; - } - - switch (keyEvent->key()) { - // modifiers - case Qt::Key_Shift: - if (keyEvent->nativeScanCode() == LSHIFT_KEY) { - pressedButtons.insert(1, "lshift"); - } else { - pressedButtons.insert(2, "rshift"); - } - break; - case Qt::Key_Alt: - if (keyEvent->nativeScanCode() == LALT_KEY) { - pressedButtons.insert(3, "lalt"); - } else { - pressedButtons.insert(4, "ralt"); - } - break; - case Qt::Key_Control: - if (keyEvent->nativeScanCode() == LCTRL_KEY) { - pressedButtons.insert(5, "lctrl"); - } else { - pressedButtons.insert(6, "rctrl"); - } - break; - case Qt::Key_Meta: -#ifdef _WIN32 - pressedButtons.insert(7, "lwin"); -#else - pressedButtons.insert(7, "lmeta"); -#endif - break; - - // f keys - - case Qt::Key_F1: - pressedButtons.insert(8, "f1"); - break; - case Qt::Key_F2: - pressedButtons.insert(9, "f2"); - break; - case Qt::Key_F3: - pressedButtons.insert(10, "f3"); - break; - case Qt::Key_F4: - pressedButtons.insert(11, "f4"); - break; - case Qt::Key_F5: - pressedButtons.insert(12, "f5"); - break; - case Qt::Key_F6: - pressedButtons.insert(13, "f6"); - break; - case Qt::Key_F7: - pressedButtons.insert(14, "f7"); - break; - case Qt::Key_F8: - pressedButtons.insert(15, "f8"); - break; - case Qt::Key_F9: - pressedButtons.insert(16, "f9"); - break; - case Qt::Key_F10: - pressedButtons.insert(17, "f10"); - break; - case Qt::Key_F11: - pressedButtons.insert(18, "f11"); - break; - case Qt::Key_F12: - pressedButtons.insert(19, "f12"); - break; - - // alphanumeric - case Qt::Key_A: - pressedButtons.insert(20, "a"); - break; - case Qt::Key_B: - pressedButtons.insert(21, "b"); - break; - case Qt::Key_C: - pressedButtons.insert(22, "c"); - break; - case Qt::Key_D: - pressedButtons.insert(23, "d"); - break; - case Qt::Key_E: - pressedButtons.insert(24, "e"); - break; - case Qt::Key_F: - pressedButtons.insert(25, "f"); - break; - case Qt::Key_G: - pressedButtons.insert(26, "g"); - break; - case Qt::Key_H: - pressedButtons.insert(27, "h"); - break; - case Qt::Key_I: - pressedButtons.insert(28, "i"); - break; - case Qt::Key_J: - pressedButtons.insert(29, "j"); - break; - case Qt::Key_K: - pressedButtons.insert(30, "k"); - break; - case Qt::Key_L: - pressedButtons.insert(31, "l"); - break; - case Qt::Key_M: - pressedButtons.insert(32, "m"); - break; - case Qt::Key_N: - pressedButtons.insert(33, "n"); - break; - case Qt::Key_O: - pressedButtons.insert(34, "o"); - break; - case Qt::Key_P: - pressedButtons.insert(35, "p"); - break; - case Qt::Key_Q: - pressedButtons.insert(36, "q"); - break; - case Qt::Key_R: - pressedButtons.insert(37, "r"); - break; - case Qt::Key_S: - pressedButtons.insert(38, "s"); - break; - case Qt::Key_T: - pressedButtons.insert(39, "t"); - break; - case Qt::Key_U: - pressedButtons.insert(40, "u"); - break; - case Qt::Key_V: - pressedButtons.insert(41, "v"); - break; - case Qt::Key_W: - pressedButtons.insert(42, "w"); - break; - case Qt::Key_X: - pressedButtons.insert(43, "x"); - break; - case Qt::Key_Y: - pressedButtons.insert(44, "y"); - break; - case Qt::Key_Z: - pressedButtons.insert(45, "z"); - break; - case Qt::Key_0: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(46, "kp0") - : pressedButtons.insert(56, "0"); - break; - case Qt::Key_1: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(47, "kp1") - : pressedButtons.insert(57, "1"); - break; - case Qt::Key_2: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(48, "kp2") - : pressedButtons.insert(58, "2"); - break; - case Qt::Key_3: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(49, "kp3") - : pressedButtons.insert(59, "3"); - break; - case Qt::Key_4: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(50, "kp4") - : pressedButtons.insert(60, "4"); - break; - case Qt::Key_5: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(51, "kp5") - : pressedButtons.insert(61, "5"); - break; - case Qt::Key_6: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(52, "kp6") - : pressedButtons.insert(62, "6"); - break; - case Qt::Key_7: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(53, "kp7") - : pressedButtons.insert(63, "7"); - break; - case Qt::Key_8: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(54, "kp8") - : pressedButtons.insert(64, "8"); - break; - case Qt::Key_9: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(55, "kp9") - : pressedButtons.insert(65, "9"); - break; - - // symbols - case Qt::Key_Asterisk: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(66, "kpasterisk") - : pressedButtons.insert(74, "asterisk"); - break; - case Qt::Key_Minus: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(67, "kpminus") - : pressedButtons.insert(75, "minus"); - break; - case Qt::Key_Equal: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(68, "kpequals") - : pressedButtons.insert(76, "equals"); - break; - case Qt::Key_Plus: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(69, "kpplus") - : pressedButtons.insert(77, "plus"); - break; - case Qt::Key_Slash: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(70, "kpslash") - : pressedButtons.insert(78, "slash"); - break; - case Qt::Key_Comma: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(71, "kpcomma") - : pressedButtons.insert(79, "comma"); - break; - case Qt::Key_Period: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(72, "kpperiod") - : pressedButtons.insert(80, "period"); - break; - case Qt::Key_Enter: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedButtons.insert(73, "kpenter") - : pressedButtons.insert(81, "enter"); - break; - case Qt::Key_QuoteLeft: - pressedButtons.insert(82, "grave"); - break; - case Qt::Key_AsciiTilde: - pressedButtons.insert(83, "tilde"); - break; - case Qt::Key_Exclam: - pressedButtons.insert(84, "exclamation"); - break; - case Qt::Key_At: - pressedButtons.insert(85, "at"); - break; - case Qt::Key_NumberSign: - pressedButtons.insert(86, "hash"); - break; - case Qt::Key_Dollar: - pressedButtons.insert(87, "dollar"); - break; - case Qt::Key_Percent: - pressedButtons.insert(88, "percent"); - break; - case Qt::Key_AsciiCircum: - pressedButtons.insert(89, "caret"); - break; - case Qt::Key_Ampersand: - pressedButtons.insert(90, "ampersand"); - break; - case Qt::Key_ParenLeft: - pressedButtons.insert(91, "lparen"); - break; - case Qt::Key_ParenRight: - pressedButtons.insert(92, "rparen"); - break; - case Qt::Key_BracketLeft: - pressedButtons.insert(93, "lbracket"); - break; - case Qt::Key_BracketRight: - pressedButtons.insert(94, "rbracket"); - break; - case Qt::Key_BraceLeft: - pressedButtons.insert(95, "lbrace"); - break; - case Qt::Key_BraceRight: - pressedButtons.insert(96, "rbrace"); - break; - case Qt::Key_Underscore: - pressedButtons.insert(97, "underscore"); - break; - case Qt::Key_Backslash: - pressedButtons.insert(98, "backslash"); - break; - case Qt::Key_Bar: - pressedButtons.insert(99, "pipe"); - break; - case Qt::Key_Semicolon: - pressedButtons.insert(100, "semicolon"); - break; - case Qt::Key_Colon: - pressedButtons.insert(101, "colon"); - break; - case Qt::Key_Apostrophe: - pressedButtons.insert(102, "apostrophe"); - break; - case Qt::Key_QuoteDbl: - pressedButtons.insert(103, "quote"); - break; - case Qt::Key_Less: - pressedButtons.insert(104, "less"); - break; - case Qt::Key_Greater: - pressedButtons.insert(105, "greater"); - break; - case Qt::Key_Question: - pressedButtons.insert(106, "question"); - break; - - // special keys - case Qt::Key_Print: - pressedButtons.insert(107, "printscreen"); - break; - case Qt::Key_ScrollLock: - pressedButtons.insert(108, "scrolllock"); - break; - case Qt::Key_Pause: - pressedButtons.insert(109, "pausebreak"); - break; - case Qt::Key_Backspace: - pressedButtons.insert(110, "backspace"); - break; - case Qt::Key_Insert: - pressedButtons.insert(111, "insert"); - break; - case Qt::Key_Delete: - pressedButtons.insert(112, "delete"); - break; - case Qt::Key_Home: - pressedButtons.insert(113, "home"); - break; - case Qt::Key_End: - pressedButtons.insert(114, "end"); - break; - case Qt::Key_PageUp: - pressedButtons.insert(115, "pgup"); - break; - case Qt::Key_PageDown: - pressedButtons.insert(116, "pgdown"); - break; - case Qt::Key_Tab: - pressedButtons.insert(117, "tab"); - break; - case Qt::Key_CapsLock: - pressedButtons.insert(118, "capslock"); - break; - case Qt::Key_Return: - pressedButtons.insert(119, "enter"); - break; - case Qt::Key_Space: - pressedButtons.insert(120, "space"); - break; - case Qt::Key_Up: - pressedButtons.insert(121, "up"); - break; - case Qt::Key_Down: - pressedButtons.insert(122, "down"); - break; - case Qt::Key_Left: - pressedButtons.insert(123, "left"); - break; - case Qt::Key_Right: - pressedButtons.insert(124, "right"); - break; - default: - break; - } - return true; - } - } - } - - if (event->type() == QEvent::KeyPress && EnableKBMapping) { - CheckMapping(MappingButton); - return true; - } - - return QDialog::eventFilter(obj, event); -} - -void Hotkeys::processSDLEvents(int Type, int Input, int Value) { - if (EnablePadMapping) { - - if (pressedButtons.size() >= 3) { - return; - } - - if (Type == SDL_EVENT_GAMEPAD_BUTTON_DOWN) { - switch (Input) { - case SDL_GAMEPAD_BUTTON_SOUTH: - pressedButtons.insert(5, "cross"); - break; - case SDL_GAMEPAD_BUTTON_EAST: - pressedButtons.insert(6, "circle"); - break; - case SDL_GAMEPAD_BUTTON_NORTH: - pressedButtons.insert(7, "triangle"); - break; - case SDL_GAMEPAD_BUTTON_WEST: - pressedButtons.insert(8, "square"); - break; - case SDL_GAMEPAD_BUTTON_LEFT_SHOULDER: - pressedButtons.insert(3, "l1"); - break; - case SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER: - pressedButtons.insert(4, "r1"); - break; - case SDL_GAMEPAD_BUTTON_LEFT_STICK: - pressedButtons.insert(9, "l3"); - break; - case SDL_GAMEPAD_BUTTON_RIGHT_STICK: - pressedButtons.insert(10, "r3"); - break; - case SDL_GAMEPAD_BUTTON_DPAD_UP: - pressedButtons.insert(13, "pad_up"); - break; - case SDL_GAMEPAD_BUTTON_DPAD_DOWN: - pressedButtons.insert(14, "pad_down"); - break; - case SDL_GAMEPAD_BUTTON_DPAD_LEFT: - pressedButtons.insert(15, "pad_left"); - break; - case SDL_GAMEPAD_BUTTON_DPAD_RIGHT: - pressedButtons.insert(16, "pad_right"); - break; - case SDL_GAMEPAD_BUTTON_BACK: - pressedButtons.insert(11, "back"); - break; - case SDL_GAMEPAD_BUTTON_START: - pressedButtons.insert(12, "options"); - break; - default: - break; - } - } - - if (Type == SDL_EVENT_GAMEPAD_AXIS_MOTION) { - // SDL trigger axis values range from 0 to 32000, set mapping on half movement - // Set zone for trigger release signal arbitrarily at 5000 - switch (Input) { - case SDL_GAMEPAD_AXIS_LEFT_TRIGGER: - if (Value > 16000) { - pressedButtons.insert(1, "l2"); - L2Pressed = true; - } else if (Value < 5000) { - if (L2Pressed && !R2Pressed) - CheckMapping(MappingButton); - } - break; - case SDL_GAMEPAD_AXIS_RIGHT_TRIGGER: - if (Value > 16000) { - pressedButtons.insert(2, "r2"); - R2Pressed = true; - } else if (Value < 5000) { - if (R2Pressed && !L2Pressed) - CheckMapping(MappingButton); - } - break; - default: - break; - } - } - - if (Type == SDL_EVENT_GAMEPAD_BUTTON_UP) - CheckMapping(MappingButton); - } - - if (Type == SDL_EVENT_GAMEPAD_ADDED || SDL_EVENT_GAMEPAD_REMOVED) { - CheckGamePad(); - } -} - -void Hotkeys::pollSDLEvents() { - SDL_Event event; - while (SdlEventWrapper::Wrapper::wrapperActive) { - - if (!SDL_WaitEvent(&event)) { - return; - } - - if (event.type == SDL_EVENT_QUIT) { - return; - } - - SdlEventWrapper::Wrapper::GetInstance()->Wrapper::ProcessEvent(&event); - } -} - -void Hotkeys::Cleanup() { - SdlEventWrapper::Wrapper::wrapperActive = false; - if (h_gamepad) { - SDL_CloseGamepad(h_gamepad); - h_gamepad = nullptr; - } - - if (h_gamepads) - SDL_free(h_gamepads); - - if (!GameRunning) { - SDL_Event quitLoop{}; - quitLoop.type = SDL_EVENT_QUIT; - SDL_PushEvent(&quitLoop); - Polling.waitForFinished(); - - SDL_QuitSubSystem(SDL_INIT_GAMEPAD); - SDL_QuitSubSystem(SDL_INIT_EVENTS); - SDL_Quit(); - } else { - if (!Config::getBackgroundControllerInput()) { - SDL_SetHint(SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, "0"); - } - } -} - -Hotkeys::~Hotkeys() {} diff --git a/src/qt_gui/hotkeys.h b/src/qt_gui/hotkeys.h deleted file mode 100644 index 23f8f0261..000000000 --- a/src/qt_gui/hotkeys.h +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include - -#ifdef _WIN32 -#define LCTRL_KEY 29 -#define LALT_KEY 56 -#define LSHIFT_KEY 42 -#else -#define LCTRL_KEY 37 -#define LALT_KEY 64 -#define LSHIFT_KEY 50 -#endif - -namespace Ui { -class Hotkeys; -} - -class Hotkeys : public QDialog { - Q_OBJECT - -public: - explicit Hotkeys(bool GameRunning, QWidget* parent = nullptr); - ~Hotkeys(); - -private Q_SLOTS: - void processSDLEvents(int Type, int Input, int Value); - void StartTimer(QPushButton*& button, bool isPad); - void SaveHotkeys(bool CloseOnSave); - void SetDefault(); - -private: - bool eventFilter(QObject* obj, QEvent* event) override; - void CheckMapping(QPushButton*& button); - void DisableMappingButtons(); - void EnableMappingButtons(); - void LoadHotkeys(); - void pollSDLEvents(); - void CheckGamePad(); - void SetMapping(QString input); - void Cleanup(); - - bool GameRunning; - bool EnablePadMapping = false; - bool EnableKBMapping = false; - bool MappingCompleted = false; - bool L2Pressed = false; - bool R2Pressed = false; - int MappingTimer; - int gamepad_count; - QString mapping; - QTimer* timer; - QPushButton* MappingButton; - SDL_Gamepad* h_gamepad = nullptr; - SDL_JoystickID* h_gamepads; - - // use QMap instead of QSet to maintain order of inserted strings - QMap pressedButtons; - QList PadButtonsList; - QList KBButtonsList; - QFuture Polling; - - Ui::Hotkeys* ui; - - const std::vector ControllerInputs = { - "cross", "circle", "square", "triangle", "l1", - "r1", "l2", "r2", "l3", - - "r3", "options", "pad_up", - - "pad_down", - - "pad_left", "pad_right", "axis_left_x", "axis_left_y", "axis_right_x", - "axis_right_y", "back"}; - -protected: - void closeEvent(QCloseEvent* event) override { - Cleanup(); - } - - void accept() override { - // Blank override to prevent quitting when save button pressed - } -}; diff --git a/src/qt_gui/hotkeys.ui b/src/qt_gui/hotkeys.ui deleted file mode 100644 index 7b4d01be4..000000000 --- a/src/qt_gui/hotkeys.ui +++ /dev/null @@ -1,549 +0,0 @@ - - - - Hotkeys - - - Qt::WindowModality::WindowModal - - - - 0 - 0 - 987 - 549 - - - - Customize Hotkeys - - - - - 3 - 2 - 981 - 541 - - - - true - - - - - 0 - 0 - 979 - 539 - - - - - - 3 - 7 - 971 - 532 - - - - - - - - 0 - 0 - - - - - 19 - true - - - - Controller Hotkeys - - - Qt::AlignmentFlag::AlignCenter - - - - - - - - - - 0 - 0 - - - - Show FPS Counter - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - Quit Emulation - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - Reload Button Mappings - - - - - - unmapped - - - - - - - - - - - - - - - 0 - 0 - - - - Toggle Fullscreen - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - Toggle Pause - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - - 0 - 0 - - - - - 19 - true - - - - Keyboard Hotkeys - - - Qt::AlignmentFlag::AlignCenter - - - - - - - - - - 0 - 0 - - - - Show FPS Counter - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - Quit Emulation - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - Reload Button Mappings - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - 0 - 0 - - - - Toggle Fullscreen - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - Toggle Pause - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - Renderdoc Capture (for debugging only) - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - 0 - 0 - - - - Toggle Mouse to Joystick Emulation - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - Toggle Mouse to Gyro Emulation - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - - 0 - 0 - - - - - 12 - true - - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Qt::AlignmentFlag::AlignCenter - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - Qt::Orientation::Horizontal - - - QDialogButtonBox::StandardButton::Apply|QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::RestoreDefaults|QDialogButtonBox::StandardButton::Save - - - - - - - - - - - - buttonBox - accepted() - Hotkeys - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - Hotkeys - reject() - - - 316 - 260 - - - 286 - 274 - - - - - diff --git a/src/qt_gui/kbm_config_dialog.cpp b/src/qt_gui/kbm_config_dialog.cpp deleted file mode 100644 index 89c551128..000000000 --- a/src/qt_gui/kbm_config_dialog.cpp +++ /dev/null @@ -1,239 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "kbm_config_dialog.h" -#include "kbm_help_dialog.h" - -#include -#include -#include -#include "common/config.h" -#include "common/path_util.h" -#include "game_info.h" -#include "sdl_window.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QString previous_game = "default"; -bool isHelpOpen = false; -HelpDialog* helpDialog; - -EditorDialog::EditorDialog(QWidget* parent) : QDialog(parent) { - - setWindowTitle(tr("Edit Keyboard + Mouse and Controller input bindings")); - resize(600, 400); - - // Create the editor widget - editor = new QPlainTextEdit(this); - editorFont.setPointSize(10); // Set default text size - editor->setFont(editorFont); // Apply font to the editor - - // Create the game selection combo box - gameComboBox = new QComboBox(this); - gameComboBox->addItem("default"); // Add default option - // Load all installed games - loadInstalledGames(); - - QCheckBox* unifiedInputCheckBox = new QCheckBox(tr("Use Per-Game configs"), this); - unifiedInputCheckBox->setChecked(!Config::GetUseUnifiedInputConfig()); - - // Connect checkbox signal - connect(unifiedInputCheckBox, &QCheckBox::toggled, this, [](bool checked) { - Config::SetUseUnifiedInputConfig(!checked); - Config::save(Common::FS::GetUserPath(Common::FS::PathType::UserDir) / "config.toml"); - }); - // Create Save, Cancel, and Help buttons - QPushButton* saveButton = new QPushButton("Save", this); - QPushButton* cancelButton = new QPushButton("Cancel", this); - QPushButton* helpButton = new QPushButton("Help", this); - QPushButton* defaultButton = new QPushButton("Default", this); - - // Layout for the game selection and buttons - QHBoxLayout* topLayout = new QHBoxLayout(); - topLayout->addWidget(unifiedInputCheckBox); - topLayout->addWidget(gameComboBox); - topLayout->addStretch(); - topLayout->addWidget(saveButton); - topLayout->addWidget(cancelButton); - topLayout->addWidget(defaultButton); - topLayout->addWidget(helpButton); - - // Main layout with editor and buttons - QVBoxLayout* layout = new QVBoxLayout(this); - layout->addLayout(topLayout); - layout->addWidget(editor); - - // Load the default config file content into the editor - loadFile(gameComboBox->currentText()); - - // Connect button and combo box signals - connect(saveButton, &QPushButton::clicked, this, &EditorDialog::onSaveClicked); - connect(cancelButton, &QPushButton::clicked, this, &EditorDialog::onCancelClicked); - connect(helpButton, &QPushButton::clicked, this, &EditorDialog::onHelpClicked); - connect(defaultButton, &QPushButton::clicked, this, &EditorDialog::onResetToDefaultClicked); - connect(gameComboBox, &QComboBox::currentTextChanged, this, - &EditorDialog::onGameSelectionChanged); -} - -void EditorDialog::loadFile(QString game) { - - const auto config_file = Config::GetFoolproofInputConfigFile(game.toStdString()); - QFile file(config_file); - - if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { - QTextStream in(&file); - editor->setPlainText(in.readAll()); - originalConfig = editor->toPlainText(); - file.close(); - } else { - QMessageBox::warning(this, tr("Error"), tr("Could not open the file for reading")); - } -} - -void EditorDialog::saveFile(QString game) { - - const auto config_file = Config::GetFoolproofInputConfigFile(game.toStdString()); - QFile file(config_file); - - if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { - QTextStream out(&file); - out << editor->toPlainText(); - file.close(); - } else { - QMessageBox::warning(this, tr("Error"), tr("Could not open the file for writing")); - } -} - -// Override the close event to show the save confirmation dialog only if changes were made -void EditorDialog::closeEvent(QCloseEvent* event) { - if (isHelpOpen) { - helpDialog->close(); - isHelpOpen = false; - // at this point I might have to add this flag and the help dialog to the class itself - } - if (hasUnsavedChanges()) { - QMessageBox::StandardButton reply; - reply = QMessageBox::question(this, tr("Save Changes"), tr("Do you want to save changes?"), - QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel); - - if (reply == QMessageBox::Yes) { - saveFile(gameComboBox->currentText()); - event->accept(); // Close the dialog - } else if (reply == QMessageBox::No) { - event->accept(); // Close the dialog without saving - } else { - event->ignore(); // Cancel the close event - } - } else { - event->accept(); // No changes, close the dialog without prompting - } -} -void EditorDialog::keyPressEvent(QKeyEvent* event) { - if (event->key() == Qt::Key_Escape) { - if (isHelpOpen) { - helpDialog->close(); - isHelpOpen = false; - } - close(); // Trigger the close action, same as pressing the close button - } else { - QDialog::keyPressEvent(event); // Call the base class implementation for other keys - } -} - -void EditorDialog::onSaveClicked() { - if (isHelpOpen) { - helpDialog->close(); - isHelpOpen = false; - } - saveFile(gameComboBox->currentText()); - reject(); // Close the dialog -} - -void EditorDialog::onCancelClicked() { - if (isHelpOpen) { - helpDialog->close(); - isHelpOpen = false; - } - reject(); // Close the dialog -} - -void EditorDialog::onHelpClicked() { - if (!isHelpOpen) { - helpDialog = new HelpDialog(&isHelpOpen, this); - helpDialog->setWindowTitle(tr("Help")); - helpDialog->setAttribute(Qt::WA_DeleteOnClose); // Clean up on close - // Get the position and size of the Config window - QRect configGeometry = this->geometry(); - int helpX = configGeometry.x() + configGeometry.width() + 10; // 10 pixels offset - int helpY = configGeometry.y(); - // Move the Help dialog to the right side of the Config window - helpDialog->move(helpX, helpY); - helpDialog->show(); - isHelpOpen = true; - } else { - helpDialog->close(); - isHelpOpen = false; - } -} - -void EditorDialog::onResetToDefaultClicked() { - bool default_default = gameComboBox->currentText() == "default"; - QString prompt = - default_default - ? tr("Do you want to reset your custom default config to the original default config?") - : tr("Do you want to reset this config to your custom default config?"); - QMessageBox::StandardButton reply = QMessageBox::question(this, tr("Reset to Default"), prompt, - QMessageBox::Yes | QMessageBox::No); - - if (reply == QMessageBox::Yes) { - if (default_default) { - const auto default_file = Config::GetFoolproofInputConfigFile("default"); - std::filesystem::remove(default_file); - } - const auto config_file = Config::GetFoolproofInputConfigFile("default"); - QFile file(config_file); - - if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { - QTextStream in(&file); - editor->setPlainText(in.readAll()); - file.close(); - } else { - QMessageBox::warning(this, tr("Error"), tr("Could not open the file for reading")); - } - // saveFile(gameComboBox->currentText()); - } -} - -bool EditorDialog::hasUnsavedChanges() { - // Compare the current content with the original content to check if there are unsaved changes - return editor->toPlainText() != originalConfig; -} -void EditorDialog::loadInstalledGames() { - previous_game = "default"; - QStringList filePaths; - for (const auto& installLoc : Config::getGameInstallDirs()) { - QString installDir; - Common::FS::PathToQString(installDir, installLoc); - QDir parentFolder(installDir); - QFileInfoList fileList = parentFolder.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); - for (const auto& fileInfo : fileList) { - if (fileInfo.isDir() && (!fileInfo.filePath().endsWith("-UPDATE") || - !fileInfo.filePath().endsWith("-patch"))) { - gameComboBox->addItem(fileInfo.fileName()); // Add game name to combo box - } - } - } -} -void EditorDialog::onGameSelectionChanged(const QString& game) { - saveFile(previous_game); - loadFile(gameComboBox->currentText()); // Reload file based on the selected game - previous_game = gameComboBox->currentText(); -} diff --git a/src/qt_gui/kbm_config_dialog.h b/src/qt_gui/kbm_config_dialog.h deleted file mode 100644 index cc334b082..000000000 --- a/src/qt_gui/kbm_config_dialog.h +++ /dev/null @@ -1,38 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include -#include "string" - -class EditorDialog : public QDialog { -Q_OBJECT // Necessary for using Qt's meta-object system (signals/slots) - public : explicit EditorDialog(QWidget* parent = nullptr); // Constructor - -protected: - void closeEvent(QCloseEvent* event) override; // Override close event - void keyPressEvent(QKeyEvent* event) override; - -private: - QPlainTextEdit* editor; // Editor widget for the config file - QFont editorFont; // To handle the text size - QString originalConfig; // Starting config string - std::string gameId; - - QComboBox* gameComboBox; // Combo box for selecting game configurations - - void loadFile(QString game); // Function to load the config file - void saveFile(QString game); // Function to save the config file - void loadInstalledGames(); // Helper to populate gameComboBox - bool hasUnsavedChanges(); // Checks for unsaved changes - -private slots: - void onSaveClicked(); // Save button slot - void onCancelClicked(); // Slot for handling cancel button - void onHelpClicked(); // Slot for handling help button - void onResetToDefaultClicked(); - void onGameSelectionChanged(const QString& game); // Slot for game selection changes -}; diff --git a/src/qt_gui/kbm_gui.cpp b/src/qt_gui/kbm_gui.cpp deleted file mode 100644 index a7e5fc343..000000000 --- a/src/qt_gui/kbm_gui.cpp +++ /dev/null @@ -1,1061 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include -#include -#include -#include - -#include "common/path_util.h" -#include "input/input_handler.h" -#include "kbm_config_dialog.h" -#include "kbm_gui.h" -#include "kbm_help_dialog.h" -#include "ui_kbm_gui.h" - -HelpDialog* HelpWindow; -KBMSettings::KBMSettings(std::shared_ptr game_info_get, bool isGameRunning, - std::string GameRunningSerial, QWidget* parent) - : QDialog(parent), m_game_info(game_info_get), GameRunning(isGameRunning), - RunningGameSerial(GameRunningSerial), ui(new Ui::KBMSettings) { - - ui->setupUi(this); - ui->PerGameCheckBox->setChecked(!Config::GetUseUnifiedInputConfig()); - ui->TextEditorButton->setFocus(); - this->setFocusPolicy(Qt::StrongFocus); - - ui->MouseJoystickBox->addItem("none"); - ui->MouseJoystickBox->addItem("right"); - ui->MouseJoystickBox->addItem("left"); - - ui->ProfileComboBox->addItem(tr("Common Config")); - for (int i = 0; i < m_game_info->m_games.size(); i++) { - ui->ProfileComboBox->addItem(QString::fromStdString(m_game_info->m_games[i].serial)); - } - - ButtonsList = {ui->CrossButton, - ui->CircleButton, - ui->TriangleButton, - ui->SquareButton, - ui->L1Button, - ui->R1Button, - ui->L2Button, - ui->R2Button, - ui->L3Button, - ui->R3Button, - ui->OptionsButton, - ui->TouchpadLeftButton, - ui->TouchpadCenterButton, - ui->TouchpadRightButton, - ui->DpadUpButton, - ui->DpadDownButton, - ui->DpadLeftButton, - ui->DpadRightButton, - ui->LStickUpButton, - ui->LStickDownButton, - ui->LStickLeftButton, - ui->LStickRightButton, - ui->RStickUpButton, - ui->RStickDownButton, - ui->RStickLeftButton, - ui->RStickRightButton, - ui->LHalfButton, - ui->RHalfButton}; - - ButtonConnects(); - SetUIValuestoMappings("default"); - installEventFilter(this); - - ui->ProfileComboBox->setCurrentText(tr("Common Config")); - ui->TitleLabel->setText(tr("Common Config")); - config_id = "default"; - - connect(ui->buttonBox, &QDialogButtonBox::clicked, this, [this](QAbstractButton* button) { - if (button == ui->buttonBox->button(QDialogButtonBox::Save)) { - if (HelpWindowOpen) { - HelpWindow->close(); - HelpWindowOpen = false; - } - SaveKBMConfig(true); - } else if (button == ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)) { - SetDefault(); - } else if (button == ui->buttonBox->button(QDialogButtonBox::Apply)) { - SaveKBMConfig(false); - } - }); - - ui->buttonBox->button(QDialogButtonBox::Save)->setText(tr("Save")); - ui->buttonBox->button(QDialogButtonBox::Apply)->setText(tr("Apply")); - ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setText(tr("Restore Defaults")); - ui->buttonBox->button(QDialogButtonBox::Cancel)->setText(tr("Cancel")); - - connect(ui->HelpButton, &QPushButton::clicked, this, &KBMSettings::onHelpClicked); - connect(ui->TextEditorButton, &QPushButton::clicked, this, [this]() { - auto kbmWindow = new EditorDialog(this); - kbmWindow->exec(); - SetUIValuestoMappings(config_id); - }); - - connect(ui->buttonBox, &QDialogButtonBox::rejected, this, [this] { - QWidget::close(); - if (HelpWindowOpen) { - HelpWindow->close(); - HelpWindowOpen = false; - } - }); - - connect(ui->ProfileComboBox, &QComboBox::currentTextChanged, this, [this] { - GetGameTitle(); - SetUIValuestoMappings(config_id); - }); - - connect(ui->CopyCommonButton, &QPushButton::clicked, this, [this] { - if (ui->ProfileComboBox->currentText() == tr("Common Config")) { - QMessageBox::information(this, tr("Common Config Selected"), - // clang-format off -tr("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.")); - // clang-format on - } else { - QMessageBox::StandardButton reply = - QMessageBox::question(this, tr("Copy values from Common Config"), - // clang-format off -tr("Do you want to overwrite existing mappings with the mappings from the Common Config?"), - // clang-format on - QMessageBox::Yes | QMessageBox::No); - if (reply == QMessageBox::Yes) { - SetUIValuestoMappings("default"); - } - } - }); - - connect(ui->DeadzoneOffsetSlider, &QSlider::valueChanged, this, [this](int value) { - QString DOSValue = QString::number(value / 100.0, 'f', 2); - ui->DeadzoneOffsetLabel->setText(DOSValue); - }); - - connect(ui->SpeedMultiplierSlider, &QSlider::valueChanged, this, [this](int value) { - QString SMSValue = QString::number(value / 10.0, 'f', 1); - ui->SpeedMultiplierLabel->setText(SMSValue); - }); - - connect(ui->SpeedOffsetSlider, &QSlider::valueChanged, this, [this](int value) { - QString SOSValue = QString::number(value / 1000.0, 'f', 3); - ui->SpeedOffsetLabel->setText(SOSValue); - }); - - connect(this, &KBMSettings::PushKBMEvent, this, [this]() { CheckMapping(MappingButton); }); -} - -void KBMSettings::ButtonConnects() { - for (auto& button : ButtonsList) { - connect(button, &QPushButton::clicked, this, [this, &button]() { StartTimer(button); }); - } -} - -void KBMSettings::DisableMappingButtons() { - for (const auto& i : ButtonsList) { - i->setEnabled(false); - } - - ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(false); - ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false); - ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setEnabled(false); -} - -void KBMSettings::EnableMappingButtons() { - for (const auto& i : ButtonsList) { - i->setEnabled(true); - } - - ui->buttonBox->button(QDialogButtonBox::Save)->setEnabled(true); - ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true); - ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setEnabled(true); -} - -void KBMSettings::SaveKBMConfig(bool close_on_save) { - std::string output_string = "", input_string = ""; - std::vector lines, inputs; - - // Comment lines for config file - lines.push_back("#Feeling lost? Check out the Help section!"); - lines.push_back(""); - lines.push_back("#Keyboard bindings"); - lines.push_back(""); - - // Lambda to reduce repetitive code for mapping buttons to config lines - auto add_mapping = [&](const QString& buttonText, const std::string& output_name) { - input_string = buttonText.toStdString(); - output_string = output_name; - lines.push_back(output_string + " = " + input_string); - if (input_string != "unmapped") { - inputs.push_back(input_string); - } - }; - - add_mapping(ui->CrossButton->text(), "cross"); - add_mapping(ui->CircleButton->text(), "circle"); - add_mapping(ui->TriangleButton->text(), "triangle"); - add_mapping(ui->SquareButton->text(), "square"); - - lines.push_back(""); - - add_mapping(ui->DpadUpButton->text(), "pad_up"); - add_mapping(ui->DpadDownButton->text(), "pad_down"); - add_mapping(ui->DpadLeftButton->text(), "pad_left"); - add_mapping(ui->DpadRightButton->text(), "pad_right"); - - lines.push_back(""); - - add_mapping(ui->L1Button->text(), "l1"); - add_mapping(ui->R1Button->text(), "r1"); - add_mapping(ui->L2Button->text(), "l2"); - add_mapping(ui->R2Button->text(), "r2"); - add_mapping(ui->L3Button->text(), "l3"); - add_mapping(ui->R3Button->text(), "r3"); - - lines.push_back(""); - - add_mapping(ui->TouchpadLeftButton->text(), "touchpad_left"); - add_mapping(ui->TouchpadCenterButton->text(), "touchpad_center"); - add_mapping(ui->TouchpadRightButton->text(), "touchpad_right"); - add_mapping(ui->OptionsButton->text(), "options"); - - lines.push_back(""); - - add_mapping(ui->LStickUpButton->text(), "axis_left_y_minus"); - add_mapping(ui->LStickDownButton->text(), "axis_left_y_plus"); - add_mapping(ui->LStickLeftButton->text(), "axis_left_x_minus"); - add_mapping(ui->LStickRightButton->text(), "axis_left_x_plus"); - - lines.push_back(""); - - add_mapping(ui->RStickUpButton->text(), "axis_right_y_minus"); - add_mapping(ui->RStickDownButton->text(), "axis_right_y_plus"); - add_mapping(ui->RStickLeftButton->text(), "axis_right_x_minus"); - add_mapping(ui->RStickRightButton->text(), "axis_right_x_plus"); - - lines.push_back(""); - - lines.push_back("mouse_to_joystick = " + ui->MouseJoystickBox->currentText().toStdString()); - add_mapping(ui->LHalfButton->text(), "leftjoystick_halfmode"); - add_mapping(ui->RHalfButton->text(), "rightjoystick_halfmode"); - - std::string DOString = std::format("{:.2f}", (ui->DeadzoneOffsetSlider->value() / 100.f)); - std::string SMString = std::format("{:.1f}", (ui->SpeedMultiplierSlider->value() / 10.f)); - std::string SOString = std::format("{:.3f}", (ui->SpeedOffsetSlider->value() / 1000.f)); - input_string = DOString + ", " + SMString + ", " + SOString; - output_string = "mouse_movement_params"; - lines.push_back(output_string + " = " + input_string); - - lines.push_back(""); - const auto config_file = Config::GetFoolproofInputConfigFile(config_id); - std::fstream file(config_file); - int lineCount = 0; - std::string line; - while (std::getline(file, line)) { - lineCount++; - - if (line.empty()) { - lines.push_back(line); - continue; - } - - std::size_t comment_pos = line.find('#'); - if (comment_pos != std::string::npos) { - if (!line.contains("Keyboard bindings") && !line.contains("Feeling lost") && - !line.contains("Alternatives for users")) - lines.push_back(line); - continue; - } - - std::size_t equal_pos = line.find('='); - if (equal_pos == std::string::npos) { - lines.push_back(line); - continue; - } - - output_string = line.substr(0, equal_pos - 1); - input_string = line.substr(equal_pos + 2); - - bool controllerInputdetected = false; - for (std::string input : ControllerInputs) { - // Needed to avoid detecting backspace while detecting back - if (input_string.contains(input) && !input_string.contains("backspace")) { - controllerInputdetected = true; - break; - } - } - - if (controllerInputdetected || output_string == "analog_deadzone" || - output_string == "override_controller_color" || output_string.contains("hotkey")) { - lines.push_back(line); - } - } - file.close(); - - // Prevent duplicate inputs for KBM as this breaks the engine - bool duplicateFound = false; - QSet duplicateMappings; - - for (auto it = inputs.begin(); it != inputs.end(); ++it) { - if (std::find(it + 1, inputs.end(), *it) != inputs.end()) { - duplicateFound = true; - duplicateMappings.insert(QString::fromStdString(*it)); - } - } - - if (duplicateFound) { - QStringList duplicatesList; - for (const QString mapping : duplicateMappings) { - for (const auto& button : ButtonsList) { - if (button->text() == mapping) - duplicatesList.append(button->objectName() + " - " + mapping); - } - } - QMessageBox::information( - this, tr("Unable to Save"), - // clang-format off -QString(tr("Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:\n\n%1").arg(duplicatesList.join("\n")))); - // clang-format on - return; - } - - std::vector save; - bool CurrentLineEmpty = false, LastLineEmpty = false; - for (auto const& line : lines) { - LastLineEmpty = CurrentLineEmpty ? true : false; - CurrentLineEmpty = line.empty() ? true : false; - if (!CurrentLineEmpty || !LastLineEmpty) - save.push_back(line); - } - - std::ofstream output_file(config_file); - for (auto const& line : save) { - output_file << line << '\n'; - } - output_file.close(); - - Config::SetUseUnifiedInputConfig(!ui->PerGameCheckBox->isChecked()); - Config::save(Common::FS::GetUserPath(Common::FS::PathType::UserDir) / "config.toml"); - - if (GameRunning) { - Config::GetUseUnifiedInputConfig() ? Input::ParseInputConfig("default") - : Input::ParseInputConfig(RunningGameSerial); - } - - if (close_on_save) - QWidget::close(); -} - -void KBMSettings::SetDefault() { - ui->CrossButton->setText("kp2"); - ui->CircleButton->setText("kp6"); - ui->TriangleButton->setText("kp8"); - ui->SquareButton->setText("kp4"); - - ui->L1Button->setText("q"); - ui->L2Button->setText("e"); - ui->L3Button->setText("x"); - ui->R1Button->setText("u"); - ui->R2Button->setText("o"); - ui->R3Button->setText("m"); - - ui->TouchpadLeftButton->setText("space"); - ui->TouchpadCenterButton->setText("unmapped"); - ui->TouchpadRightButton->setText("unmapped"); - ui->OptionsButton->setText("enter"); - - ui->DpadUpButton->setText("up"); - ui->DpadDownButton->setText("down"); - ui->DpadLeftButton->setText("left"); - ui->DpadRightButton->setText("right"); - - ui->LStickUpButton->setText("w"); - ui->LStickDownButton->setText("s"); - ui->LStickLeftButton->setText("a"); - ui->LStickRightButton->setText("d"); - - ui->RStickUpButton->setText("i"); - ui->RStickDownButton->setText("k"); - ui->RStickLeftButton->setText("j"); - ui->RStickRightButton->setText("l"); - - ui->LHalfButton->setText("unmapped"); - ui->RHalfButton->setText("unmapped"); - - ui->MouseJoystickBox->setCurrentText("none"); - ui->DeadzoneOffsetSlider->setValue(50); - ui->SpeedMultiplierSlider->setValue(10); - ui->SpeedOffsetSlider->setValue(125); -} - -void KBMSettings::SetUIValuestoMappings(std::string config_id) { - const auto config_file = Config::GetFoolproofInputConfigFile(config_id); - std::ifstream file(config_file); - - int lineCount = 0; - std::string line = ""; - while (std::getline(file, line)) { - lineCount++; - - std::size_t comment_pos = line.find('#'); - if (comment_pos != std::string::npos) - line = line.substr(0, comment_pos); - - std::size_t equal_pos = line.find('='); - if (equal_pos == std::string::npos) - continue; - - std::string output_string = line.substr(0, equal_pos - 1); - std::string input_string = line.substr(equal_pos + 2); - - bool controllerInputdetected = false; - for (std::string input : ControllerInputs) { - // Needed to avoid detecting backspace while detecting back - if (input_string.contains(input) && !input_string.contains("backspace")) { - controllerInputdetected = true; - break; - } - } - - if (!controllerInputdetected) { - if (output_string == "cross") { - ui->CrossButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "circle") { - ui->CircleButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "square") { - ui->SquareButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "triangle") { - ui->TriangleButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "l1") { - ui->L1Button->setText(QString::fromStdString(input_string)); - } else if (output_string == "l2") { - ui->L2Button->setText(QString::fromStdString(input_string)); - } else if (output_string == "r1") { - ui->R1Button->setText(QString::fromStdString(input_string)); - } else if (output_string == "r2") { - ui->R2Button->setText(QString::fromStdString(input_string)); - } else if (output_string == "l3") { - ui->L3Button->setText(QString::fromStdString(input_string)); - } else if (output_string == "r3") { - ui->R3Button->setText(QString::fromStdString(input_string)); - } else if (output_string == "pad_up") { - ui->DpadUpButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "pad_down") { - ui->DpadDownButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "pad_left") { - ui->DpadLeftButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "pad_right") { - ui->DpadRightButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "options") { - ui->OptionsButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "touchpad_left") { - ui->TouchpadLeftButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "touchpad_center") { - ui->TouchpadCenterButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "touchpad_right") { - ui->TouchpadRightButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "axis_left_x_minus") { - ui->LStickLeftButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "axis_left_x_plus") { - ui->LStickRightButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "axis_left_y_minus") { - ui->LStickUpButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "axis_left_y_plus") { - ui->LStickDownButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "axis_right_x_minus") { - ui->RStickLeftButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "axis_right_x_plus") { - ui->RStickRightButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "axis_right_y_minus") { - ui->RStickUpButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "axis_right_y_plus") { - ui->RStickDownButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "mouse_to_joystick") { - ui->MouseJoystickBox->setCurrentText(QString::fromStdString(input_string)); - } else if (output_string == "leftjoystick_halfmode") { - ui->LHalfButton->setText(QString::fromStdString(input_string)); - } else if (output_string == "rightjoystick_halfmode") { - ui->RHalfButton->setText(QString::fromStdString(input_string)); - } else if (output_string.contains("mouse_movement_params")) { - std::size_t comma_pos = line.find(','); - if (comma_pos != std::string::npos) { - std::string DOstring = line.substr(equal_pos + 1, comma_pos); - float DOffsetValue = std::stof(DOstring) * 100.0; - int DOffsetInt = static_cast(DOffsetValue); - ui->DeadzoneOffsetSlider->setValue(DOffsetInt); - QString LabelValue = QString::number(DOffsetInt / 100.0, 'f', 2); - ui->DeadzoneOffsetLabel->setText(LabelValue); - - std::string SMSOstring = line.substr(comma_pos + 1); - std::size_t comma_pos2 = SMSOstring.find(','); - if (comma_pos2 != std::string::npos) { - std::string SMstring = SMSOstring.substr(0, comma_pos2); - float SpeedMultValue = std::clamp(std::stof(SMstring) * 10.0f, 1.0f, 50.0f); - int SpeedMultInt = static_cast(SpeedMultValue); - ui->SpeedMultiplierSlider->setValue(SpeedMultInt); - LabelValue = QString::number(SpeedMultInt / 10.0, 'f', 1); - ui->SpeedMultiplierLabel->setText(LabelValue); - - std::string SOstring = SMSOstring.substr(comma_pos2 + 1); - float SOffsetValue = std::stof(SOstring) * 1000.0; - int SOffsetInt = static_cast(SOffsetValue); - ui->SpeedOffsetSlider->setValue(SOffsetInt); - LabelValue = QString::number(SOffsetInt / 1000.0, 'f', 3); - ui->SpeedOffsetLabel->setText(LabelValue); - } - } - } - } - } - file.close(); -} - -void KBMSettings::GetGameTitle() { - if (ui->ProfileComboBox->currentText() == tr("Common Config")) { - ui->TitleLabel->setText(tr("Common Config")); - } else { - for (int i = 0; i < m_game_info->m_games.size(); i++) { - if (m_game_info->m_games[i].serial == - ui->ProfileComboBox->currentText().toStdString()) { - ui->TitleLabel->setText(QString::fromStdString(m_game_info->m_games[i].name)); - } - } - } - config_id = (ui->ProfileComboBox->currentText() == tr("Common Config")) - ? "default" - : ui->ProfileComboBox->currentText().toStdString(); -} - -void KBMSettings::onHelpClicked() { - if (!HelpWindowOpen) { - HelpWindow = new HelpDialog(&HelpWindowOpen, this); - HelpWindow->setWindowTitle(tr("Help")); - HelpWindow->setAttribute(Qt::WA_DeleteOnClose); // Clean up on close - HelpWindow->show(); - HelpWindowOpen = true; - } else { - HelpWindow->close(); - HelpWindowOpen = false; - } -} - -void KBMSettings::StartTimer(QPushButton*& button) { - MappingTimer = 3; - EnableMapping = true; - MappingCompleted = false; - mapping = button->text(); - - DisableMappingButtons(); - button->setText(tr("Press a key") + " [" + QString::number(MappingTimer) + "]"); - timer = new QTimer(this); - MappingButton = button; - connect(timer, &QTimer::timeout, this, [this]() { CheckMapping(MappingButton); }); - timer->start(1000); -} - -void KBMSettings::CheckMapping(QPushButton*& button) { - MappingTimer -= 1; - button->setText(tr("Press a key") + " [" + QString::number(MappingTimer) + "]"); - - if (pressedKeys.size() > 0) { - QStringList keyStrings; - - for (const QString& buttonAction : pressedKeys) { - keyStrings << buttonAction; - } - - QString combo = keyStrings.join(","); - SetMapping(combo); - MappingCompleted = true; - EnableMapping = false; - - MappingButton->setText(combo); - pressedKeys.clear(); - timer->stop(); - } - if (MappingCompleted) { - EnableMapping = false; - EnableMappingButtons(); - timer->stop(); - - button->setText(mapping); - } - - if (MappingTimer <= 0) { - button->setText(mapping); - EnableMapping = false; - EnableMappingButtons(); - timer->stop(); - } -} - -void KBMSettings::SetMapping(QString input) { - mapping = input; - MappingCompleted = true; -} - -// Helper lambda to get the modified button text based on the current keyboard modifiers -auto GetModifiedButton = [](Qt::KeyboardModifiers modifier, const std::string& m_button, - const std::string& n_button) -> QString { - if (QApplication::keyboardModifiers() & modifier) { - return QString::fromStdString(m_button); - } else { - return QString::fromStdString(n_button); - } -}; - -bool KBMSettings::eventFilter(QObject* obj, QEvent* event) { - if (event->type() == QEvent::Close) { - if (HelpWindowOpen) { - HelpWindow->close(); - HelpWindowOpen = false; - } - } - - if (EnableMapping) { - if (event->type() == QEvent::KeyPress) { - QKeyEvent* keyEvent = static_cast(event); - - if (keyEvent->isAutoRepeat()) - return true; - - if (pressedKeys.size() >= 3) { - return true; - } - - switch (keyEvent->key()) { - // modifiers - case Qt::Key_Shift: - keyEvent->nativeScanCode() == LSHIFT_KEY ? pressedKeys.insert(1, "lshift") - : pressedKeys.insert(2, "rshift"); - break; - case Qt::Key_Alt: - keyEvent->nativeScanCode() == LALT_KEY ? pressedKeys.insert(3, "lalt") - : pressedKeys.insert(4, "ralt"); - break; - case Qt::Key_Control: - keyEvent->nativeScanCode() == LCTRL_KEY ? pressedKeys.insert(5, "lctrl") - : pressedKeys.insert(6, "rctrl"); - break; - case Qt::Key_Meta: -#ifdef _WIN32 - pressedKeys.insert(7, "lwin"); -#else - pressedKeys.insert(7, "lmeta"); -#endif - break; - - // alphanumeric - case Qt::Key_A: - pressedKeys.insert(20, "a"); - break; - case Qt::Key_B: - pressedKeys.insert(21, "b"); - break; - case Qt::Key_C: - pressedKeys.insert(22, "c"); - break; - case Qt::Key_D: - pressedKeys.insert(23, "d"); - break; - case Qt::Key_E: - pressedKeys.insert(24, "e"); - break; - case Qt::Key_F: - pressedKeys.insert(25, "f"); - break; - case Qt::Key_G: - pressedKeys.insert(26, "g"); - break; - case Qt::Key_H: - pressedKeys.insert(27, "h"); - break; - case Qt::Key_I: - pressedKeys.insert(28, "i"); - break; - case Qt::Key_J: - pressedKeys.insert(29, "j"); - break; - case Qt::Key_K: - pressedKeys.insert(30, "k"); - break; - case Qt::Key_L: - pressedKeys.insert(31, "l"); - break; - case Qt::Key_M: - pressedKeys.insert(32, "m"); - break; - case Qt::Key_N: - pressedKeys.insert(33, "n"); - break; - case Qt::Key_O: - pressedKeys.insert(34, "o"); - break; - case Qt::Key_P: - pressedKeys.insert(35, "p"); - break; - case Qt::Key_Q: - pressedKeys.insert(36, "q"); - break; - case Qt::Key_R: - pressedKeys.insert(37, "r"); - break; - case Qt::Key_S: - pressedKeys.insert(38, "s"); - break; - case Qt::Key_T: - pressedKeys.insert(39, "t"); - break; - case Qt::Key_U: - pressedKeys.insert(40, "u"); - break; - case Qt::Key_V: - pressedKeys.insert(41, "v"); - break; - case Qt::Key_W: - pressedKeys.insert(42, "w"); - break; - case Qt::Key_X: - pressedKeys.insert(43, "x"); - break; - case Qt::Key_Y: - pressedKeys.insert(44, "y"); - break; - case Qt::Key_Z: - pressedKeys.insert(45, "z"); - break; - case Qt::Key_0: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(46, "kp0") - : pressedKeys.insert(56, "0"); - break; - case Qt::Key_1: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(47, "kp1") - : pressedKeys.insert(57, "1"); - break; - case Qt::Key_2: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(48, "kp2") - : pressedKeys.insert(58, "2"); - break; - case Qt::Key_3: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(49, "kp3") - : pressedKeys.insert(59, "3"); - break; - case Qt::Key_4: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(50, "kp4") - : pressedKeys.insert(60, "4"); - break; - case Qt::Key_5: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(51, "kp5") - : pressedKeys.insert(61, "5"); - break; - case Qt::Key_6: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(52, "kp6") - : pressedKeys.insert(62, "6"); - break; - case Qt::Key_7: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(53, "kp7") - : pressedKeys.insert(63, "7"); - break; - case Qt::Key_8: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(54, "kp8") - : pressedKeys.insert(64, "8"); - break; - case Qt::Key_9: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(55, "kp9") - : pressedKeys.insert(65, "9"); - break; - - // symbols - case Qt::Key_Asterisk: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(66, "kpasterisk") - : pressedKeys.insert(74, "asterisk"); - break; - case Qt::Key_Minus: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(67, "kpminus") - : pressedKeys.insert(75, "minus"); - break; - case Qt::Key_Equal: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(68, "kpequals") - : pressedKeys.insert(76, "equals"); - break; - case Qt::Key_Plus: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(69, "kpplus") - : pressedKeys.insert(77, "plus"); - break; - case Qt::Key_Slash: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(70, "kpslash") - : pressedKeys.insert(78, "slash"); - break; - case Qt::Key_Comma: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(71, "kpcomma") - : pressedKeys.insert(79, "comma"); - break; - case Qt::Key_Period: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(72, "kpperiod") - : pressedKeys.insert(80, "period"); - break; - case Qt::Key_Enter: - QApplication::keyboardModifiers() & Qt::KeypadModifier - ? pressedKeys.insert(73, "kpenter") - : pressedKeys.insert(81, "enter"); - break; - case Qt::Key_QuoteLeft: - pressedKeys.insert(82, "grave"); - break; - case Qt::Key_AsciiTilde: - pressedKeys.insert(83, "tilde"); - break; - case Qt::Key_Exclam: - pressedKeys.insert(84, "exclamation"); - break; - case Qt::Key_At: - pressedKeys.insert(85, "at"); - break; - case Qt::Key_NumberSign: - pressedKeys.insert(86, "hash"); - break; - case Qt::Key_Dollar: - pressedKeys.insert(87, "dollar"); - break; - case Qt::Key_Percent: - pressedKeys.insert(88, "percent"); - break; - case Qt::Key_AsciiCircum: - pressedKeys.insert(89, "caret"); - break; - case Qt::Key_Ampersand: - pressedKeys.insert(90, "ampersand"); - break; - case Qt::Key_ParenLeft: - pressedKeys.insert(91, "lparen"); - break; - case Qt::Key_ParenRight: - pressedKeys.insert(92, "rparen"); - break; - case Qt::Key_BracketLeft: - pressedKeys.insert(93, "lbracket"); - break; - case Qt::Key_BracketRight: - pressedKeys.insert(94, "rbracket"); - break; - case Qt::Key_BraceLeft: - pressedKeys.insert(95, "lbrace"); - break; - case Qt::Key_BraceRight: - pressedKeys.insert(96, "rbrace"); - break; - case Qt::Key_Underscore: - pressedKeys.insert(97, "underscore"); - break; - case Qt::Key_Backslash: - pressedKeys.insert(98, "backslash"); - break; - case Qt::Key_Bar: - pressedKeys.insert(99, "pipe"); - break; - case Qt::Key_Semicolon: - pressedKeys.insert(100, "semicolon"); - break; - case Qt::Key_Colon: - pressedKeys.insert(101, "colon"); - break; - case Qt::Key_Apostrophe: - pressedKeys.insert(102, "apostrophe"); - break; - case Qt::Key_QuoteDbl: - pressedKeys.insert(103, "quote"); - break; - case Qt::Key_Less: - pressedKeys.insert(104, "less"); - break; - case Qt::Key_Greater: - pressedKeys.insert(105, "greater"); - break; - case Qt::Key_Question: - pressedKeys.insert(106, "question"); - break; - - // special keys - case Qt::Key_Print: - pressedKeys.insert(107, "printscreen"); - break; - case Qt::Key_ScrollLock: - pressedKeys.insert(108, "scrolllock"); - break; - case Qt::Key_Pause: - pressedKeys.insert(109, "pausebreak"); - break; - case Qt::Key_Backspace: - pressedKeys.insert(110, "backspace"); - break; - case Qt::Key_Insert: - pressedKeys.insert(111, "insert"); - break; - case Qt::Key_Delete: - pressedKeys.insert(112, "delete"); - break; - case Qt::Key_Home: - pressedKeys.insert(113, "home"); - break; - case Qt::Key_End: - pressedKeys.insert(114, "end"); - break; - case Qt::Key_PageUp: - pressedKeys.insert(115, "pgup"); - break; - case Qt::Key_PageDown: - pressedKeys.insert(116, "pgdown"); - break; - case Qt::Key_Tab: - pressedKeys.insert(117, "tab"); - break; - case Qt::Key_CapsLock: - pressedKeys.insert(118, "capslock"); - break; - case Qt::Key_Return: - pressedKeys.insert(119, "enter"); - break; - case Qt::Key_Space: - pressedKeys.insert(120, "space"); - break; - case Qt::Key_Up: - pressedKeys.insert(121, "up"); - break; - case Qt::Key_Down: - pressedKeys.insert(122, "down"); - break; - case Qt::Key_Left: - pressedKeys.insert(123, "left"); - break; - case Qt::Key_Right: - pressedKeys.insert(124, "right"); - break; - - // cancel mapping - case Qt::Key_Escape: - SetMapping("unmapped"); - break; - default: - break; - } - return true; - } - - if (event->type() == QEvent::MouseButtonPress) { - QMouseEvent* mouseEvent = static_cast(event); - if (pressedKeys.size() < 3) { - switch (mouseEvent->button()) { - case Qt::LeftButton: - pressedKeys.insert(125, "leftbutton"); - break; - case Qt::RightButton: - pressedKeys.insert(127, "rightbutton"); - break; - case Qt::MiddleButton: - pressedKeys.insert(126, "middlebutton"); - break; - case Qt::XButton1: - pressedKeys.insert(128, "sidebuttonback"); - break; - case Qt::XButton2: - pressedKeys.insert(129, "sidebuttonforward"); - break; - - // default case - default: - break; - // bottom text - } - return true; - } - } - - const QList AxisList = { - ui->LStickUpButton, ui->LStickDownButton, ui->LStickLeftButton, ui->LStickRightButton, - ui->RStickUpButton, ui->LStickDownButton, ui->LStickLeftButton, ui->RStickRightButton}; - - if (event->type() == QEvent::Wheel) { - QWheelEvent* wheelEvent = static_cast(event); - if (pressedKeys.size() < 3) { - if (wheelEvent->angleDelta().y() > 5) { - if (std::find(AxisList.begin(), AxisList.end(), MappingButton) == - AxisList.end()) { - pressedKeys.insert(130, "mousewheelup"); - if (QApplication::keyboardModifiers() == Qt::NoModifier) - emit PushKBMEvent(); - } else { - QMessageBox::information( - this, tr("Cannot set mapping"), - tr("Mousewheel cannot be mapped to stick outputs")); - } - } else if (wheelEvent->angleDelta().y() < -5) { - if (std::find(AxisList.begin(), AxisList.end(), MappingButton) == - AxisList.end()) { - pressedKeys.insert(131, "mousewheeldown"); - if (QApplication::keyboardModifiers() == Qt::NoModifier) - emit PushKBMEvent(); - } else { - QMessageBox::information( - this, tr("Cannot set mapping"), - tr("Mousewheel cannot be mapped to stick outputs")); - } - } - if (wheelEvent->angleDelta().x() > 5) { - if (std::find(AxisList.begin(), AxisList.end(), MappingButton) == - AxisList.end()) { - // QT changes scrolling to horizontal for all widgets with the alt modifier - QApplication::keyboardModifiers() & Qt::AltModifier - ? pressedKeys.insert(130, "mousewheelup") - : pressedKeys.insert(133, "mousewheelright"); - if (QApplication::keyboardModifiers() == Qt::NoModifier) - emit PushKBMEvent(); - } else { - QMessageBox::information( - this, tr("Cannot set mapping"), - tr("Mousewheel cannot be mapped to stick outputs")); - } - } else if (wheelEvent->angleDelta().x() < -5) { - if (std::find(AxisList.begin(), AxisList.end(), MappingButton) == - AxisList.end()) { - QApplication::keyboardModifiers() & Qt::AltModifier - ? pressedKeys.insert(131, "mousewheeldown") - : pressedKeys.insert(132, "mousewheelleft"); - if (QApplication::keyboardModifiers() == Qt::NoModifier) - emit PushKBMEvent(); - } else { - QMessageBox::information( - this, tr("Cannot set mapping"), - tr("Mousewheel cannot be mapped to stick outputs")); - } - } - } - } - - if (event->type() == QEvent::KeyRelease || event->type() == QEvent::MouseButtonRelease) - emit PushKBMEvent(); - } - return QDialog::eventFilter(obj, event); -} - -KBMSettings::~KBMSettings() {} diff --git a/src/qt_gui/kbm_gui.h b/src/qt_gui/kbm_gui.h deleted file mode 100644 index e16b83d56..000000000 --- a/src/qt_gui/kbm_gui.h +++ /dev/null @@ -1,75 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include "game_info.h" - -// macros > declaring constants -// also, we were only using one counterpart -#ifdef _WIN32 -#define LCTRL_KEY 29 -#define LALT_KEY 56 -#define LSHIFT_KEY 42 -#else -#define LCTRL_KEY 37 -#define LALT_KEY 64 -#define LSHIFT_KEY 50 -#endif - -namespace Ui { -class KBMSettings; -} - -class KBMSettings : public QDialog { - Q_OBJECT -public: - explicit KBMSettings(std::shared_ptr game_info_get, bool GameRunning, - std::string GameRunningSerial, QWidget* parent = nullptr); - ~KBMSettings(); - -signals: - void PushKBMEvent(); - -private Q_SLOTS: - void SaveKBMConfig(bool CloseOnSave); - void SetDefault(); - void CheckMapping(QPushButton*& button); - void StartTimer(QPushButton*& button); - void onHelpClicked(); - -private: - std::unique_ptr ui; - std::shared_ptr m_game_info; - - bool eventFilter(QObject* obj, QEvent* event) override; - void ButtonConnects(); - void SetUIValuestoMappings(std::string config_id); - void GetGameTitle(); - void DisableMappingButtons(); - void EnableMappingButtons(); - void SetMapping(QString input); - void Cleanup(); - - std::string RunningGameSerial; - QMap pressedKeys; - bool GameRunning; - bool EnableMapping = false; - bool MappingCompleted = false; - bool HelpWindowOpen = false; - QString mapping; - int MappingTimer; - QTimer* timer; - QPushButton* MappingButton; - QList ButtonsList; - std::string config_id; - const std::vector ControllerInputs = { - "cross", "circle", "square", "triangle", "l1", - "r1", "l2", "r2", "l3", - - "r3", "options", "pad_up", - - "pad_down", - - "pad_left", "pad_right", "axis_left_x", "axis_left_y", "axis_right_x", - "axis_right_y", "back"}; -}; diff --git a/src/qt_gui/kbm_gui.ui b/src/qt_gui/kbm_gui.ui deleted file mode 100644 index 67aa34ce7..000000000 --- a/src/qt_gui/kbm_gui.ui +++ /dev/null @@ -1,2118 +0,0 @@ - - - - KBMSettings - - - Qt::WindowModality::WindowModal - - - - 0 - 0 - 1235 - 842 - - - - - 0 - 0 - - - - Qt::FocusPolicy::StrongFocus - - - Configure Controls - - - true - - - - - - Qt::FocusPolicy::NoFocus - - - true - - - - - 0 - 0 - 1215 - 792 - - - - - - 0 - 0 - 1211 - 800 - - - - - - - 5 - - - - - true - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - D-Pad - - - - 6 - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 160 - 0 - - - - - 0 - 16777215 - - - - Up - - - Qt::AlignmentFlag::AlignCenter - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - - 160 - 0 - - - - Left - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 160 - 0 - - - - Right - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 160 - 0 - - - - - 124 - 16777215 - - - - Down - - - Qt::AlignmentFlag::AlignCenter - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - - Qt::Orientation::Vertical - - - QSizePolicy::Policy::Maximum - - - - 20 - 40 - - - - - - - - - 0 - 0 - - - - - 344 - 16777215 - - - - Left Analog Halfmode - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - true - - - - hold to move left stick at half-speed - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - Left Stick - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 16777215 - 2121 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 160 - 0 - - - - - 124 - 16777215 - - - - Up - - - Qt::AlignmentFlag::AlignCenter - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - - 160 - 0 - - - - Left - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 160 - 0 - - - - - 179 - 16777215 - - - - Right - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 160 - 0 - - - - - 124 - 21212 - - - - Down - - - Qt::AlignmentFlag::AlignCenter - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - - - - 0 - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 12 - true - - - - Config Selection - - - Qt::AlignmentFlag::AlignCenter - - - - - - - - - 9 - false - - - - Qt::FocusPolicy::NoFocus - - - - - - -1 - - - Common Config - - - - - - - - 10 - true - - - - Common Config - - - Qt::AlignmentFlag::AlignCenter - - - true - - - - - - - - - - - - 0 - 0 - - - - - 9 - false - - - - Qt::FocusPolicy::NoFocus - - - Use per-game configs - - - - - - - - 9 - false - - - - Qt::FocusPolicy::NoFocus - - - Copy from Common Config - - - - - - - - - - - - 0 - - - - - - - - 0 - 0 - - - - - 160 - 0 - - - - L1 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - - 160 - 0 - - - - L2 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - true - - - - - - - - - - - 0 - 0 - - - - - 0 - 24 - - - - Qt::FocusPolicy::NoFocus - - - Text Editor - - - - - - - - 0 - 0 - - - - - 0 - 24 - - - - Qt::FocusPolicy::NoFocus - - - Help - - - - - - - - - - - 0 - 0 - - - - - 160 - 0 - - - - Options - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - 0 - 0 - - - - - 160 - 0 - - - - R1 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - - 160 - 0 - - - - R2 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - 0 - 200 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 424 - 250 - - - - :/images/KBM.png - - - true - - - Qt::AlignmentFlag::AlignBottom|Qt::AlignmentFlag::AlignHCenter - - - - - - - - - - 0 - - - QLayout::SizeConstraint::SetDefaultConstraint - - - - - - - - 0 - 0 - - - - - 160 - 0 - - - - L3 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - Touchpad Left - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - Mouse to Joystick - - - Qt::AlignmentFlag::AlignCenter - - - - - - Qt::FocusPolicy::NoFocus - - - - - - - - true - - - - *press F7 ingame to activate - - - true - - - - - - - - - - Touchpad Center - - - Qt::AlignmentFlag::AlignCenter - - - - - - unmapped - - - - - - - - - - - - - - - 0 - 0 - - - - - 160 - 0 - - - - R3 - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 0 - 0 - - - - - 160 - 0 - - - - Touchpad Right - - - Qt::AlignmentFlag::AlignCenter - - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - - - - - 0 - 0 - - - - - false - - - - Mouse Movement Parameters - - - - - - - - - false - - - - Deadzone Offset (def 0.50): - - - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - 100 - - - 50 - - - Qt::Orientation::Horizontal - - - - - - - - 0 - 0 - - - - - 30 - 16777215 - - - - 0.50 - - - - - - - - - - - - false - - - - Speed Multiplier (def 1.0): - - - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - 1 - - - 50 - - - 5 - - - 10 - - - Qt::Orientation::Horizontal - - - - - - - - 0 - 0 - - - - - 30 - 16777215 - - - - 1.0 - - - - - - - - - - - - false - - - - Speed Offset (def 0.125): - - - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - 1000 - - - 100 - - - 125 - - - Qt::Orientation::Horizontal - - - - - - - - 30 - 16777215 - - - - 0.125 - - - - - - - - - - 0 - 0 - - - - - true - false - - - - note: click Help Button/Special Keybindings for more information - - - - - - - - - - - - - - - - 5 - - - - - - 0 - 0 - - - - Face Buttons - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - - 160 - 0 - - - - - 0 - 16777215 - - - - Triangle - - - Qt::AlignmentFlag::AlignCenter - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - - 160 - 0 - - - - Square - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 160 - 0 - - - - Circle - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 160 - 0 - - - - - 124 - 16777215 - - - - Cross - - - Qt::AlignmentFlag::AlignCenter - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - - Qt::Orientation::Vertical - - - QSizePolicy::Policy::Maximum - - - - 20 - 40 - - - - - - - - - 0 - 0 - - - - - 344 - 16777215 - - - - Right Analog Halfmode - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - true - - - - hold to move right stick at half-speed - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - Right Stick - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - - 160 - 0 - - - - - 124 - 1231321 - - - - Up - - - Qt::AlignmentFlag::AlignCenter - - - - - - - 0 - 0 - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - - 160 - 0 - - - - Left - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - 160 - 0 - - - - Right - - - Qt::AlignmentFlag::AlignCenter - - - - 5 - - - 5 - - - 5 - - - 5 - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 160 - 0 - - - - - 124 - 2121 - - - - Down - - - Qt::AlignmentFlag::AlignCenter - - - - - - Qt::FocusPolicy::NoFocus - - - unmapped - - - - - - - - - - - - - - - - - - - - - - - QDialogButtonBox::StandardButton::Apply|QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::RestoreDefaults|QDialogButtonBox::StandardButton::Save - - - false - - - - - - - - - - diff --git a/src/qt_gui/kbm_help_dialog.cpp b/src/qt_gui/kbm_help_dialog.cpp deleted file mode 100644 index 1c28f6895..000000000 --- a/src/qt_gui/kbm_help_dialog.cpp +++ /dev/null @@ -1,306 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "kbm_help_dialog.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -ExpandableSection::ExpandableSection(const QString& title, const QString& content, - QWidget* parent = nullptr) - : QWidget(parent) { - QVBoxLayout* layout = new QVBoxLayout(this); - - // Button to toggle visibility of content - toggleButton = new QPushButton(title); - layout->addWidget(toggleButton); - - // QTextBrowser for content (initially hidden) - contentBrowser = new QTextBrowser(); - contentBrowser->setPlainText(content); - contentBrowser->setVisible(false); - - // Remove scrollbars from QTextBrowser - contentBrowser->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - contentBrowser->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - - // Set size policy to allow vertical stretching only - contentBrowser->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum); - - // Calculate and set initial height based on content - updateContentHeight(); - - layout->addWidget(contentBrowser); - - // Connect button click to toggle visibility - connect(toggleButton, &QPushButton::clicked, [this]() { - contentBrowser->setVisible(!contentBrowser->isVisible()); - if (contentBrowser->isVisible()) { - updateContentHeight(); // Update height when expanding - } - emit expandedChanged(); // Notify for layout adjustments - }); - - // Connect to update height if content changes - connect(contentBrowser->document(), &QTextDocument::contentsChanged, this, - &ExpandableSection::updateContentHeight); - - // Minimal layout settings for spacing - layout->setSpacing(2); - layout->setContentsMargins(0, 0, 0, 0); -} - -void HelpDialog::closeEvent(QCloseEvent* event) { - *help_open_ptr = false; - close(); -} -void HelpDialog::reject() { - *help_open_ptr = false; - close(); -} - -HelpDialog::HelpDialog(bool* open_flag, QWidget* parent) : QDialog(parent) { - help_open_ptr = open_flag; - // Main layout for the help dialog - QVBoxLayout* mainLayout = new QVBoxLayout(this); - - // Container widget for the scroll area - QWidget* containerWidget = new QWidget; - QVBoxLayout* containerLayout = new QVBoxLayout(containerWidget); - - // Add expandable sections to container layout - auto* quickstartSection = new ExpandableSection(tr("Quickstart"), quickstart()); - auto* syntaxSection = new ExpandableSection(tr("Syntax"), syntax()); - auto* bindingsSection = new ExpandableSection(tr("Keybindings"), bindings()); - auto* specialSection = new ExpandableSection(tr("Special Bindings"), special()); - auto* faqSection = new ExpandableSection(tr("FAQ"), faq()); - - containerLayout->addWidget(quickstartSection); - containerLayout->addWidget(syntaxSection); - containerLayout->addWidget(bindingsSection); - containerLayout->addWidget(specialSection); - containerLayout->addWidget(faqSection); - containerLayout->addStretch(1); - - // Scroll area wrapping the container - QScrollArea* scrollArea = new QScrollArea; - scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); - scrollArea->setWidgetResizable(true); - scrollArea->setWidget(containerWidget); - - // Add the scroll area to the main dialog layout - mainLayout->addWidget(scrollArea); - setLayout(mainLayout); - - // Minimum size for the dialog - setMinimumSize(500, 400); - - // Re-adjust dialog layout when any section expands/collapses - connect(quickstartSection, &ExpandableSection::expandedChanged, this, &HelpDialog::adjustSize); - connect(faqSection, &ExpandableSection::expandedChanged, this, &HelpDialog::adjustSize); - connect(syntaxSection, &ExpandableSection::expandedChanged, this, &HelpDialog::adjustSize); - connect(specialSection, &ExpandableSection::expandedChanged, this, &HelpDialog::adjustSize); - connect(bindingsSection, &ExpandableSection::expandedChanged, this, &HelpDialog::adjustSize); -} - -// Helper functions that store the text contents for each tab inb the HelpDialog menu -QString HelpDialog::quickstart() { - return R"( -In this section, you will find information about the project and its features, as well as help setting up your ideal setup. -To view the config file's syntax, check out the Syntax tab, for keybind names, visit Normal Keybinds and Special Bindings, and if you are here to view emulator-wide keybinds, you can find it in the FAQ section. -)"; -} - -QString HelpDialog::syntax() { - return R"( -Below is the file format for mouse, keyboard, and controller inputs: - -Rules: -- You can bind up to 3 inputs to one button. -- Adding '#' at the beginning of a line creates a comment. -- Extra whitespace doesn't affect input. - =; is just as valid as = ; -- ';' at the end of a line is also optional. - -Syntax (aka how a line can look like): - #Comment line - = , , ; - = , ; - = ; - -Examples: - #Interact - cross = e; - #Heavy attack (in BB) - r2 = leftbutton, lshift; - #Move forward - axis_left_y_minus = w;)"; -} - -QString HelpDialog::bindings() { - return R"( -The following names should be interpreted without the '' around them. For inputs that have left and right versions, only the left one is shown, but the right version also works. - (Example: 'lshift', 'rshift') - -Keyboard: - Alphabet: - 'a', 'b', ..., 'z' - Numbers: - '0', '1', ..., '9' - F keys: - 'f1', 'f2', ..., 'f12' - Keypad: - 'kp0', 'kp1', ..., 'kp9', - 'kpperiod', 'kpcomma', 'kpslash', 'kpasterisk', 'kpminus', 'kpplus', 'kpequals', 'kpenter' - Symbols: - (See below) - Special keys: - 'escape' (text editor only), 'printscreen', 'scrolllock', 'pausebreak', - 'backspace', 'insert', 'delete', 'home', 'end', 'pgup', 'pgdown', 'tab', - 'capslock', 'enter', 'space' - Arrow keys: - 'up', 'down', 'left', 'right' - Modifier keys: - 'lctrl', 'lshift', 'lalt', 'lwin' = 'lmeta' (same input, different names, so if you are not on Windows and don't like calling this the Windows key, there is an alternative) - -Mouse: - 'leftbutton', 'rightbutton', 'middlebutton', 'sidebuttonforward', - 'sidebuttonback' - The following wheel inputs cannot be bound to axis input, only button: - 'mousewheelup', 'mousewheeldown', 'mousewheelleft', - 'mousewheelright' - -Controller: - The touchpad currently can't be rebound to anything else, but you can bind buttons to it. - If you have a controller that has different names for buttons, it will still work. Just look up the equivalent names for that controller. - The same left-right rule still applies here. - Buttons: - 'triangle', 'circle', 'cross', 'square', 'l1', 'l3', - 'options', touchpad', 'up', 'down', 'left', 'right' - Input-only: - 'lpaddle_low', 'lpaddle_high', 'back' = 'share' (Xbox and PS4 names) - Output-only: - 'touchpad_left', 'touchpad_center', 'touchpad_right' - Axes if you bind them to a button input: - 'axis_left_x_plus', 'axis_left_x_minus', 'axis_left_y_plus', 'axis_left_y_minus', - 'axis_right_x_plus', ..., 'axis_right_y_minus', - 'l2' - Axes if you bind them to another axis input: - 'axis_left_x', 'axis_left_y', 'axis_right_x', 'axis_right_y', - 'l2' - -Symbols (expanded): - ` 'grave' - ~ 'tilde' - ! 'exclamation' - @ 'at' - # 'hash' - $ 'dollar' - % 'percent' - ^ 'caret' - & 'ampersand' - * 'asterisk' - ( 'lparen' - - 'minus' - _ 'underscore' - = 'equals' - + 'plus' - [ 'lbracket' - { 'lbrace' - \ 'backslash' - | 'pipe' - ; 'semicolon' - : 'colon' - ' 'apostrophe' - " 'quote' - , 'comma' - < 'less' - . 'period' - > 'greater' - / 'slash' - ? 'question')"; -} - -QString HelpDialog::special() { - return R"( -There are some extra bindings you can put in the config file that don't correspond to a controller input but something else. -You can find these here, with comments, examples, and suggestions for most of them. - -Emulator hotkeys: - These are regarded as normal bindings, but they are put in a special config named global.ini by default, which is a config that is always loaded alongside the main config (If you want to, you can use this to set some common bindings that'll be in effect for every game, then put only the game specific bindings in their respective files). This doesn't mean you can't add them to the normal configs, you can absolutely make game specific emulator hokeys as well. - 'hotkey_pause', 'hotkey_fullscreen', 'hotkey_show_fps', - 'hotkey_quit', 'hotkey_reload_inputs', 'hotkey_toggle_mouse_to_joystick', - 'hotkey_toggle_mouse_to_gyro', 'hotkey_renderdoc_capture' - -'leftjoystick_halfmode' and 'rightjoystick_halfmode' = ; - These are a pair of input modifiers that change the way keyboard button-bound axes work. By default, those push the joystick to the max in their respective direction, but if their respective 'joystick_halfmode' modifier value is true, they only push it... halfway. With this, you can change from run to walk in games like Bloodborne. - -'mouse_to_joystick' = 'none', 'left' or 'right'; - This binds the mouse movement to either joystick. If it receives a value that is not 'left' or 'right', it defaults to 'none'. - -'mouse_movement_params' = float, float, float; - (If you don't know what a float is, it is a data type that stores decimal numbers.) - Default values: 0.5, 1, 0.125 - Let's break each parameter down: - 1st: 'mouse_deadzone_offset' should have a value between 0 and 1 (it gets clamped to that range anyway), with 0 being no offset and 1 being pushing the joystick to the max in the direction the mouse moved. - This controls the minimum distance the joystick gets moved when moving the mouse. If set to 0, it will emulate raw mouse input, which doesn't work very well due to deadzones preventing input if the movement is not large enough. - 2nd: 'mouse_speed' is just a standard multiplier to the mouse input speed. - If you input a negative number, the axis directions get reversed. Keep in mind that the offset can still push it back to positive if it's big enough. - 3rd: 'mouse_speed_offset' should be in the 0 to 1 range, with 0 being no offset and 1 being offsetting to the max possible value. - Let's set 'mouse_deadzone_offset' to 0.5, and 'mouse_speed_offset' to 0: This means that if we move the mouse very slowly, it still inputs a half-strength joystick input, and if we increase the speed, it would stay that way until we move faster than half the max speed. If we instead set this to 0.25, we now only need to move the mouse faster than the 0.5-0.25=0.25=quarter of the max speed, to get an increase in joystick speed. If we set it to 0.5, then even moving the mouse at 1 pixel per frame will result in a faster-than-minimum speed. - -'key_toggle' = , ; - This assigns a key to another key, and if pressed, toggles that key's virtual value. If it's on, then it doesn't matter if the key is pressed or not, the input handler will treat it as if it's pressed. - Let's say we want to be able to toggle 'l1' with 't'. You can then bind 'l1' to a key you won't use, like 'kpenter'. Then bind 't' to toggle that. You will end up with this: - l1 = kpenter; - key_toggle = t, kpenter; - -'analog_deadzone' = , , ; - This sets the deadzone range for various inputs. The first value is the minimum deadzone while the second is the maximum. Values go from 1 to 127 (no deadzone to max deadzone). - If you only want a minimum or maximum deadzone, set the other value to 1 or 127 respectively. - Valid devices: 'leftjoystick', 'rightjoystick', 'l2', 'r2' - -'mouse_gyro_roll_mode': - Controls whether moving the mouse sideways causes a panning or a rolling motion while mouse-to-gyro emulation is active.)"; -} - -QString HelpDialog::faq() { - return R"( -Q: What are the emulator-wide keybinds? -A: By default, they're the following: --F12: Triggers Renderdoc capture --F11: Toggles fullscreen --F10: Toggles FPS counter --Ctrl+F10: Open the debug menu --F9: Pauses the emulator if the debug menu is open --F8: Reparses the config file while in-game --F7: Toggles mouse capture and mouse input --F6: Toggles mouse-to-gyro emulation -More info on these can be found in the Special keybinds tab. - -Q: How do I switch between mouse and controller joystick input? Why is it even required? -A: Pressing F7 toggles between mouse and controller joystick input. It is required because the program polls the mouse input, which means it checks mouse movement every frame. If it didn't move, the code would manually set the emulator's virtual controller to 0 (to the center), even if other input devices would update it. - -Q: What in the world is a 'grave' key? -A: (`). It represents one of the many symbols you can bind to a key. You can find the various symbols and their names in the Bindings tab. - -Q: What happens if I accidentally make a typo in the config? -A: The code recognises the line as wrong and skips it, so the rest of the file will get parsed, but that line in question will be treated like a comment line. You can find these lines in the log if you search for 'input_handler'. - -Q: I want to bind to , but your code doesn't support ! -A: Some keys are intentionally omitted, but if you read the bindings through, and you're sure it is not there and isn't one of the intentionally disabled ones, open an issue on https://github.com/shadps4-emu/shadPS4. - -Q: What does default.ini do? -A: If you're using per-game configs, it's the base from which all new games generate their config file. If you use the unified config, then default.ini is used for every game directly instead. - -Q: What does the use Per-game Config checkbox do? -A: It controls whether the config is loaded from CUSAXXXXX.ini for a game or from default.ini. This way, if you only want to manage one set of bindings, you can do so, but if you want to use a different setup for every game, that's possible as well.)"; -} \ No newline at end of file diff --git a/src/qt_gui/kbm_help_dialog.h b/src/qt_gui/kbm_help_dialog.h deleted file mode 100644 index 7f561397d..000000000 --- a/src/qt_gui/kbm_help_dialog.h +++ /dev/null @@ -1,50 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include -#include -#include -#include -#include - -class ExpandableSection : public QWidget { - Q_OBJECT -public: - explicit ExpandableSection(const QString& title, const QString& content, QWidget* parent); - -signals: - void expandedChanged(); // Signal to indicate layout size change - -private: - QPushButton* toggleButton; - QTextBrowser* contentBrowser; // Changed from QLabel to QTextBrowser - QPropertyAnimation* animation; - int contentHeight; - void updateContentHeight() { - int contentHeight = contentBrowser->document()->size().height(); - contentBrowser->setMinimumHeight(contentHeight + 5); - contentBrowser->setMaximumHeight(contentHeight + 50); - } -}; - -class HelpDialog : public QDialog { - Q_OBJECT -public: - explicit HelpDialog(bool* open_flag = nullptr, QWidget* parent = nullptr); - -protected: - void closeEvent(QCloseEvent* event) override; - void reject() override; - -private: - bool* help_open_ptr; - - QString quickstart(); - QString faq(); - QString syntax(); - QString bindings(); - QString special(); -}; \ No newline at end of file diff --git a/src/qt_gui/log_presets_dialog.cpp b/src/qt_gui/log_presets_dialog.cpp deleted file mode 100644 index 87ca11ff4..000000000 --- a/src/qt_gui/log_presets_dialog.cpp +++ /dev/null @@ -1,414 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "log_presets_dialog.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace { -constexpr const char* kPresetsGroup = "logger_presets"; -constexpr const char* kPresetsKey = "entries"; - -inline QString MakeEntry(const QString& comment, const QString& filter) { - return comment + "\t" + filter; -} - -inline void SplitEntry(const QString& entry, QString& comment, QString& filter) { - const int idx = entry.indexOf('\t'); - if (idx < 0) { - comment = entry; - filter = QString(); - } else { - comment = entry.left(idx); - filter = entry.mid(idx + 1); - } -} -} // namespace - -LogPresetsDialog::LogPresetsDialog(std::shared_ptr gui_settings, QWidget* parent) - : QDialog(parent), m_gui_settings(std::move(gui_settings)) { - setWindowTitle(tr("Log Filter Presets")); - resize(640, 360); - - auto* root = new QVBoxLayout(this); - - m_table = new QTableWidget(this); - m_table->setColumnCount(3); - m_table->horizontalHeader()->setSectionsClickable(true); - m_table->horizontalHeader()->setHighlightSections(false); - QStringList headers; - headers << QString() << tr("Comment") << tr("Filter"); - m_table->setHorizontalHeaderLabels(headers); - m_table->horizontalHeader()->setStretchLastSection(true); - m_table->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeMode::ResizeToContents); - m_table->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeMode::Interactive); - m_table->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeMode::Stretch); - m_table->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows); - m_table->setSelectionMode(QAbstractItemView::SelectionMode::ExtendedSelection); - m_table->setEditTriggers(QAbstractItemView::EditTrigger::DoubleClicked | - QAbstractItemView::EditTrigger::SelectedClicked | - QAbstractItemView::EditTrigger::EditKeyPressed); - - connect(m_table, &QTableWidget::cellDoubleClicked, this, - [this](int /*row*/, int /*col*/) { LoadSelected(); }); - - connect(m_table, &QTableWidget::itemChanged, this, [this](QTableWidgetItem* item) { - if (m_updating_checks) - return; - if (item && item->column() == 0) { - m_updating_checks = true; - const int row = item->row(); - auto* sm = m_table->selectionModel(); - const auto idx = m_table->model()->index(row, 0); - const bool check = (item->checkState() == Qt::Checked); - sm->select(idx, (check ? QItemSelectionModel::Select : QItemSelectionModel::Deselect) | - QItemSelectionModel::Rows); - m_updating_checks = false; - UpdateHeaderCheckState(); - UpdateLoadButtonEnabled(); - } - }); - - connect(m_table->selectionModel(), &QItemSelectionModel::selectionChanged, this, - [this](const QItemSelection& selected, const QItemSelection& deselected) { - if (m_updating_checks) - return; - m_updating_checks = true; - QSet selRows; - for (const auto& idx : selected.indexes()) - selRows.insert(idx.row()); - QSet deselRows; - for (const auto& idx : deselected.indexes()) - deselRows.insert(idx.row()); - for (int r : selRows) { - auto* it = m_table->item(r, 0); - if (!it) { - it = new QTableWidgetItem(); - it->setFlags((QTableWidgetItem().flags() | Qt::ItemIsUserCheckable) & - ~Qt::ItemIsEditable); - m_table->setItem(r, 0, it); - } - it->setCheckState(Qt::Checked); - } - for (int r : deselRows) { - auto* it = m_table->item(r, 0); - if (it) - it->setCheckState(Qt::Unchecked); - } - m_updating_checks = false; - UpdateHeaderCheckState(); - UpdateLoadButtonEnabled(); - }); - - connect(m_table->horizontalHeader(), &QHeaderView::sectionClicked, this, [this](int section) { - if (section != 0) - return; - const auto next = (m_header_checkbox && m_header_checkbox->checkState() == Qt::Checked) - ? Qt::Unchecked - : Qt::Checked; - if (m_header_checkbox) - m_header_checkbox->setCheckState(next); - SetAllCheckStates(next); - UpdateHeaderCheckState(); - UpdateLoadButtonEnabled(); - }); - - m_header_checkbox = new QCheckBox(m_table->horizontalHeader()); - m_header_checkbox->setTristate(true); - m_header_checkbox->setText(QString()); - m_header_checkbox->setFocusPolicy(Qt::NoFocus); - PositionHeaderCheckbox(); - QObject::connect(m_table->horizontalHeader(), &QHeaderView::geometriesChanged, this, - [this]() { PositionHeaderCheckbox(); }); - QObject::connect(m_table->horizontalHeader(), &QHeaderView::sectionResized, this, - [this](int, int, int) { PositionHeaderCheckbox(); }); - QObject::connect(m_header_checkbox, &QCheckBox::clicked, this, [this](bool checked) { - SetAllCheckStates(checked ? Qt::Checked : Qt::Unchecked); - UpdateHeaderCheckState(); - UpdateLoadButtonEnabled(); - }); - - root->addWidget(m_table); - - auto* buttons_layout = new QHBoxLayout(); - m_add_btn = new QPushButton("+", this); - m_remove_btn = new QPushButton("-", this); - m_load_btn = new QPushButton(tr("Load"), this); - m_close_btn = new QPushButton(tr("Close"), this); - - m_add_btn->setToolTip(tr("Add a new preset after the selected row")); - m_remove_btn->setToolTip(tr("Remove selected presets")); - m_load_btn->setToolTip(tr("Load the selected preset")); - - buttons_layout->addWidget(m_add_btn); - buttons_layout->addWidget(m_remove_btn); - buttons_layout->addStretch(); - buttons_layout->addWidget(m_load_btn); - buttons_layout->addWidget(m_close_btn); - root->addLayout(buttons_layout); - - m_add_btn->setAutoDefault(false); - m_remove_btn->setAutoDefault(false); - m_load_btn->setAutoDefault(false); - m_close_btn->setAutoDefault(false); - m_add_btn->setDefault(false); - m_remove_btn->setDefault(false); - m_load_btn->setDefault(false); - m_close_btn->setDefault(false); - - connect(m_add_btn, &QPushButton::clicked, this, [this]() { AddAfterSelection(); }); - connect(m_remove_btn, &QPushButton::clicked, this, [this]() { RemoveSelected(); }); - connect(m_load_btn, &QPushButton::clicked, this, [this]() { LoadSelected(); }); - connect(m_close_btn, &QPushButton::clicked, this, [this]() { reject(); }); - - LoadFromSettings(); - m_updating_checks = true; - m_table->clearSelection(); - m_table->setCurrentItem(nullptr); - m_updating_checks = false; - m_table->setFocus(Qt::OtherFocusReason); - UpdateLoadButtonEnabled(); -} - -void LogPresetsDialog::accept() { - SaveToSettings(); - QDialog::accept(); -} - -void LogPresetsDialog::reject() { - SaveToSettings(); - QDialog::reject(); -} - -void LogPresetsDialog::LoadFromSettings() { - if (!m_gui_settings) - return; - const auto var = m_gui_settings->GetValue(kPresetsGroup, kPresetsKey, QVariant()); - QList list; - if (var.isValid()) { - list = m_gui_settings->Var2List(var); - } - PopulateFromList(list); -} - -void LogPresetsDialog::SaveToSettings() { - if (!m_gui_settings) - return; - const auto list = SerializeTable(); - m_gui_settings->SetValue(kPresetsGroup, kPresetsKey, m_gui_settings->List2Var(list)); -} - -QList LogPresetsDialog::SerializeTable() const { - QList list; - const int rows = m_table->rowCount(); - for (int r = 0; r < rows; ++r) { - const auto* comment = m_table->item(r, 1); - const auto* filter = m_table->item(r, 2); - const QString c = comment ? comment->text() : QString(); - const QString f = filter ? filter->text() : QString(); - if (!c.isEmpty() || !f.isEmpty()) { - list.push_back(MakeEntry(c, f)); - } - } - return list; -} - -void LogPresetsDialog::PopulateFromList(const QList& list) { - m_table->setRowCount(0); - for (const auto& entry : list) { - QString c, f; - SplitEntry(entry, c, f); - const int row = m_table->rowCount(); - m_table->insertRow(row); - auto* chk = new QTableWidgetItem(); - chk->setFlags((chk->flags() | Qt::ItemIsUserCheckable) & ~Qt::ItemIsEditable); - chk->setCheckState(Qt::Unchecked); - m_table->setItem(row, 0, chk); - - m_table->setItem(row, 1, new QTableWidgetItem(c)); - m_table->setItem(row, 2, new QTableWidgetItem(f)); - } - m_updating_checks = true; - m_table->clearSelection(); - m_table->setCurrentItem(nullptr); - m_updating_checks = false; - UpdateHeaderCheckState(); - UpdateLoadButtonEnabled(); -} - -void LogPresetsDialog::AddAfterSelection() { - int insert_row = m_table->rowCount(); - const auto selected = m_table->selectionModel()->selectedRows(); - if (!selected.isEmpty()) { - // place after the last selected row - insert_row = selected.last().row() + 1; - } - m_table->insertRow(insert_row); - auto* chk = new QTableWidgetItem(); - chk->setFlags((chk->flags() | Qt::ItemIsUserCheckable) & ~Qt::ItemIsEditable); - chk->setCheckState(Qt::Unchecked); - m_table->setItem(insert_row, 0, chk); - m_table->setItem(insert_row, 1, new QTableWidgetItem("")); - m_table->setItem(insert_row, 2, new QTableWidgetItem("")); - UpdateHeaderCheckState(); - m_table->setCurrentCell(insert_row, 1); - m_table->editItem(m_table->item(insert_row, 1)); - UpdateLoadButtonEnabled(); -} - -void LogPresetsDialog::RemoveSelected() { - // Prefer checked rows; fall back to selected rows if none checked - QList to_remove = GetCheckedRows(); - if (to_remove.isEmpty()) { - const auto selected = m_table->selectionModel()->selectedRows(); - for (const auto& idx : selected) - to_remove.push_back(idx.row()); - } - if (to_remove.isEmpty()) - return; - std::sort(to_remove.begin(), to_remove.end(), [](int a, int b) { return a > b; }); - for (int row : to_remove) - m_table->removeRow(row); - UpdateHeaderCheckState(); - UpdateLoadButtonEnabled(); -} - -void LogPresetsDialog::LoadSelected() { - QList rows = GetCheckedRows(); - if (rows.isEmpty()) { - const auto selected = m_table->selectionModel()->selectedRows(); - if (selected.isEmpty()) - return; - rows.push_back(selected.first().row()); - } - const int row = rows.first(); - const auto* item = m_table->item(row, 2); - if (item) { - emit PresetChosen(item->text()); - accept(); - } -} - -void LogPresetsDialog::UpdateHeaderCheckState() { - const int rows = m_table->rowCount(); - if (rows == 0) { - if (m_header_checkbox) - m_header_checkbox->setCheckState(Qt::Unchecked); - return; - } - int checked = 0; - for (int r = 0; r < rows; ++r) { - auto* it = m_table->item(r, 0); - if (it && it->checkState() == Qt::Checked) - ++checked; - } - const auto state = (checked == 0) ? Qt::Unchecked - : (checked == rows) ? Qt::Checked - : Qt::PartiallyChecked; - if (m_header_checkbox) - m_header_checkbox->setCheckState(state); -} - -void LogPresetsDialog::SetAllCheckStates(Qt::CheckState state) { - const QSignalBlocker blocker(m_table); - m_updating_checks = true; - const int rows = m_table->rowCount(); - auto* sm = m_table->selectionModel(); - for (int r = 0; r < rows; ++r) { - auto* it = m_table->item(r, 0); - if (!it) { - it = new QTableWidgetItem(); - it->setFlags((QTableWidgetItem().flags() | Qt::ItemIsUserCheckable) & - ~Qt::ItemIsEditable); - m_table->setItem(r, 0, it); - } - it->setCheckState(state); - const auto idx = m_table->model()->index(r, 0); - sm->select(idx, ((state == Qt::Checked) ? QItemSelectionModel::Select - : QItemSelectionModel::Deselect) | - QItemSelectionModel::Rows); - } - m_updating_checks = false; -} - -QList LogPresetsDialog::GetCheckedRows() const { - QList rows; - const int count = m_table->rowCount(); - for (int r = 0; r < count; ++r) { - const auto* it = m_table->item(r, 0); - if (it && it->checkState() == Qt::Checked) - rows.push_back(r); - } - return rows; -} - -void LogPresetsDialog::UpdateLoadButtonEnabled() { - if (!m_table || !m_table->selectionModel()) - return; - const int count = m_table->selectionModel()->selectedRows().size(); - - if (m_load_btn) { - const bool showLoad = (count == 1); - m_load_btn->setVisible(showLoad); - m_load_btn->setEnabled(showLoad); - } - - if (m_remove_btn) { - const bool showRemove = (count >= 1); - m_remove_btn->setVisible(showRemove); - m_remove_btn->setEnabled(showRemove); - } -} - -void LogPresetsDialog::PositionHeaderCheckbox() { - if (!m_header_checkbox) - return; - auto* hdr = m_table->horizontalHeader(); - const int section = 0; - const int x = hdr->sectionViewportPosition(section); - const int w = hdr->sectionSize(section); - const int h = hdr->height(); - const QSize sz = m_header_checkbox->sizeHint(); - - // Try to align horizontally with cell checkbox indicator for this column - int left_in_section = 0; - if (m_table->model()->rowCount() > 0) { - QStyleOptionViewItem opt; - opt.initFrom(m_table); - opt.features = QStyleOptionViewItem::HasCheckIndicator; - // Use a representative cell rect width (section width) and a typical row height - const int cell_h = m_table->rowHeight(0) > 0 ? m_table->rowHeight(0) : sz.height(); - opt.rect = QRect(0, 0, w, cell_h); - const QRect ind = - m_table->style()->subElementRect(QStyle::SE_ItemViewItemCheckIndicator, &opt, m_table); - left_in_section = ind.left(); - // Guard against styles that return empty rects - if (ind.isEmpty()) { - left_in_section = - m_table->style()->pixelMetric(QStyle::PM_FocusFrameHMargin, nullptr, m_table); - } - } else { - left_in_section = - m_table->style()->pixelMetric(QStyle::PM_FocusFrameHMargin, nullptr, m_table); - } - - int cx = x + left_in_section; - // Center vertically in header - const int cy = (h - sz.height()) / 2; - // Ensure checkbox fully visible within the section bounds - if (cx + sz.width() > x + w) - cx = x + std::max(0, w - sz.width()); - m_header_checkbox->setGeometry(QRect(QPoint(cx, cy), sz)); - m_header_checkbox->show(); -} diff --git a/src/qt_gui/log_presets_dialog.h b/src/qt_gui/log_presets_dialog.h deleted file mode 100644 index 163136703..000000000 --- a/src/qt_gui/log_presets_dialog.h +++ /dev/null @@ -1,54 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -class QTableWidget; -class QPushButton; -class QTableWidgetItem; -class QCheckBox; - -#include "gui_settings.h" - -class LogPresetsDialog : public QDialog { - Q_OBJECT - -public: - explicit LogPresetsDialog(std::shared_ptr gui_settings, - QWidget* parent = nullptr); - ~LogPresetsDialog() override = default; - -signals: - void PresetChosen(const QString& filter); - -protected: - void accept() override; - void reject() override; - -private: - void LoadFromSettings(); - void SaveToSettings(); - void AddAfterSelection(); - void RemoveSelected(); - void LoadSelected(); - void UpdateHeaderCheckState(); - void SetAllCheckStates(Qt::CheckState state); - QList GetCheckedRows() const; - void UpdateLoadButtonEnabled(); - void PositionHeaderCheckbox(); - - QList SerializeTable() const; - void PopulateFromList(const QList& list); - -private: - std::shared_ptr m_gui_settings; - QTableWidget* m_table = nullptr; - QCheckBox* m_header_checkbox = nullptr; - QPushButton* m_add_btn = nullptr; - QPushButton* m_remove_btn = nullptr; - QPushButton* m_load_btn = nullptr; - QPushButton* m_close_btn = nullptr; - bool m_updating_checks = false; -}; diff --git a/src/qt_gui/main.cpp b/src/qt_gui/main.cpp deleted file mode 100644 index 5412dfb69..000000000 --- a/src/qt_gui/main.cpp +++ /dev/null @@ -1,264 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "iostream" -#include "system_error" -#include "unordered_map" - -#include "common/config.h" -#include "common/logging/backend.h" -#include "common/memory_patcher.h" -#include "core/debugger.h" -#include "core/file_sys/fs.h" -#include "emulator.h" -#include "game_install_dialog.h" -#include "main_window.h" - -#ifdef _WIN32 -#include -#endif - -// Custom message handler to ignore Qt logs -void customMessageHandler(QtMsgType, const QMessageLogContext&, const QString&) {} - -int main(int argc, char* argv[]) { -#ifdef _WIN32 - SetConsoleOutputCP(CP_UTF8); -#endif - - QApplication a(argc, argv); - - QApplication::setDesktopFileName("net.shadps4.shadPS4"); - - // Load configurations and initialize Qt application - const auto user_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir); - Config::load(user_dir / "config.toml"); - - bool has_command_line_argument = argc > 1; - bool show_gui = false, has_game_argument = false; - std::string game_path; - std::vector game_args{}; - std::optional game_folder; - - bool waitForDebugger = false; - std::optional waitPid; - - // Map of argument strings to lambda functions - std::unordered_map> arg_map = { - {"-h", - [&](int&) { - std::cout - << "Usage: shadps4 [options]\n" - "Options:\n" - " No arguments: Opens the GUI.\n" - " -g, --game Specify or " - " to launch\n" - " -- ... Parameters passed to the game ELF. " - "Needs to be at the end of the line, and everything after \"--\" is a " - "game argument.\n" - " -p, --patch Apply specified patch file\n" - " -i, --ignore-game-patch Disable automatic loading of game patch\n" - " -s, --show-gui Show the GUI\n" - " -f, --fullscreen Specify window initial fullscreen " - "state. Does not overwrite the config file.\n" - " --add-game-folder Adds a new game folder to the config.\n" - " --log-append Append log output to file instead of " - "overwriting it.\n" - " --override-root Override the game root folder. Default is the " - "parent of game path\n" - " --wait-for-debugger Wait for debugger to attach\n" - " --wait-for-pid Wait for process with specified PID to stop\n" - " --config-clean Run the emulator with the default config " - "values, ignores the config file(s) entirely.\n" - " --config-global Run the emulator with the base config file " - "only, ignores game specific configs.\n" - " -h, --help Display this help message\n"; - exit(0); - }}, - {"--help", [&](int& i) { arg_map["-h"](i); }}, // Redirect --help to -h - - {"-s", [&](int&) { show_gui = true; }}, - {"--show-gui", [&](int& i) { arg_map["-s"](i); }}, - - {"-g", - [&](int& i) { - if (i + 1 < argc) { - game_path = argv[++i]; - has_game_argument = true; - } else { - std::cerr << "Error: Missing argument for -g/--game\n"; - exit(1); - } - }}, - {"--game", [&](int& i) { arg_map["-g"](i); }}, - - {"-p", - [&](int& i) { - if (i + 1 < argc) { - MemoryPatcher::patchFile = argv[++i]; - } else { - std::cerr << "Error: Missing argument for -p\n"; - exit(1); - } - }}, - {"--patch", [&](int& i) { arg_map["-p"](i); }}, - {"-i", [&](int&) { Core::FileSys::MntPoints::ignore_game_patches = true; }}, - {"--ignore-game-patch", [&](int& i) { arg_map["-i"](i); }}, - {"-f", - [&](int& i) { - if (++i >= argc) { - std::cerr - << "Error: Invalid argument for -f/--fullscreen. Use 'true' or 'false'.\n"; - exit(1); - } - std::string f_param(argv[i]); - bool is_fullscreen; - if (f_param == "true") { - is_fullscreen = true; - } else if (f_param == "false") { - is_fullscreen = false; - } else { - std::cerr - << "Error: Invalid argument for -f/--fullscreen. Use 'true' or 'false'.\n"; - exit(1); - } - // Set fullscreen mode without saving it to config file - Config::setIsFullscreen(is_fullscreen); - }}, - {"--fullscreen", [&](int& i) { arg_map["-f"](i); }}, - {"--add-game-folder", - [&](int& i) { - if (++i >= argc) { - std::cerr << "Error: Missing argument for --add-game-folder\n"; - exit(1); - } - std::string config_dir(argv[i]); - std::filesystem::path config_path = std::filesystem::path(config_dir); - std::error_code discard; - if (!std::filesystem::is_directory(config_path, discard)) { - std::cerr << "Error: Directory does not exist: " << config_path << "\n"; - exit(1); - } - - Config::addGameInstallDir(config_path); - Config::save(Common::FS::GetUserPath(Common::FS::PathType::UserDir) / "config.toml"); - std::cout << "Game folder successfully saved.\n"; - exit(0); - }}, - {"--log-append", [&](int& i) { Common::Log::SetAppend(); }}, - {"--config-clean", [&](int& i) { Config::setConfigMode(Config::ConfigMode::Clean); }}, - {"--config-global", [&](int& i) { Config::setConfigMode(Config::ConfigMode::Global); }}, - {"--override-root", - [&](int& i) { - if (++i >= argc) { - std::cerr << "Error: Missing argument for --override-root\n"; - exit(1); - } - std::string folder_str{argv[i]}; - std::filesystem::path folder{folder_str}; - if (!std::filesystem::exists(folder) || !std::filesystem::is_directory(folder)) { - std::cerr << "Error: Folder does not exist: " << folder_str << "\n"; - exit(1); - } - game_folder = folder; - }}, - {"--wait-for-debugger", [&](int& i) { waitForDebugger = true; }}, - {"--wait-for-pid", [&](int& i) { - if (++i >= argc) { - std::cerr << "Error: Missing argument for --wait-for-pid\n"; - exit(1); - } - waitPid = std::stoi(argv[i]); - }}}; - - // Parse command-line arguments using the map - for (int i = 1; i < argc; ++i) { - std::string cur_arg = argv[i]; - auto it = arg_map.find(cur_arg); - if (it != arg_map.end()) { - it->second(i); // Call the associated lambda function - } else if (i == argc - 1 && !has_game_argument) { - // Assume the last argument is the game file if not specified via -g/--game - game_path = argv[i]; - has_game_argument = true; - } else if (std::string(argv[i]) == "--") { - if (i + 1 == argc) { - std::cerr << "Warning: -- is set, but no game arguments are added!\n"; - break; - } - for (int j = i + 1; j < argc; j++) { - game_args.push_back(argv[j]); - } - break; - } else if (i + 1 < argc && std::string(argv[i + 1]) == "--") { - if (!has_game_argument) { - game_path = argv[i]; - has_game_argument = true; - } - } else { - std::cerr << "Unknown argument: " << cur_arg << ", see --help for info.\n"; - return 1; - } - } - - // If no game directories are set and no command line argument, prompt for it - if (Config::getGameInstallDirsEnabled().empty() && !has_command_line_argument) { - GameInstallDialog dlg; - dlg.exec(); - } - - // Ignore Qt logs - qInstallMessageHandler(customMessageHandler); - - // Initialize the main window - MainWindow* m_main_window = new MainWindow(nullptr); - if ((has_command_line_argument && show_gui) || !has_command_line_argument) { - m_main_window->Init(); - } - - if (has_command_line_argument && !has_game_argument) { - std::cerr << "Error: Please provide a game path or ID.\n"; - exit(1); - } - - if (waitPid.has_value()) { - Core::Debugger::WaitForPid(waitPid.value()); - } - - Core::Emulator* emulator = Common::Singleton::Instance(); - emulator->executableName = argv[0]; - emulator->waitForDebuggerBeforeRun = waitForDebugger; - - // Process game path or ID if provided - if (has_game_argument) { - std::filesystem::path game_file_path(game_path); - - // Check if the provided path is a valid file - if (!std::filesystem::exists(game_file_path)) { - // If not a file, treat it as a game ID and search in install directories recursively - bool game_found = false; - const int max_depth = 5; - for (const auto& install_dir : Config::getGameInstallDirs()) { - if (auto found_path = Common::FS::FindGameByID(install_dir, game_path, max_depth)) { - game_file_path = *found_path; - game_found = true; - break; - } - } - if (!game_found) { - std::cerr << "Error: Game ID or file path not found: " << game_path << std::endl; - return 1; - } - } - - // Run the emulator with the resolved game path - emulator->Run(game_file_path.string(), game_args, game_folder); - if (!show_gui) { - return 0; // Exit after running the emulator without showing the GUI - } - } - - // Show the main window and run the Qt application - m_main_window->show(); - return a.exec(); -} diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp deleted file mode 100644 index 8d48b6b7d..000000000 --- a/src/qt_gui/main_window.cpp +++ /dev/null @@ -1,1237 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "SDL3/SDL_events.h" - -#include -#include -#include -#include -#include - -#include "about_dialog.h" -#include "cheats_patches.h" -#ifdef ENABLE_UPDATER -#include "check_update.h" -#endif -#include "common/io_file.h" -#include "common/path_util.h" -#include "common/scm_rev.h" -#include "common/string_util.h" -#include "control_settings.h" -#include "game_install_dialog.h" -#include "hotkeys.h" -#include "input/input_handler.h" -#include "kbm_gui.h" -#include "main_window.h" -#include "settings_dialog.h" - -#ifdef ENABLE_DISCORD_RPC -#include "common/discord_rpc_handler.h" -#endif - -MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow) { - ui->setupUi(this); - installEventFilter(this); - setAttribute(Qt::WA_DeleteOnClose); - m_gui_settings = std::make_shared(); - ui->toggleLabelsAct->setChecked( - m_gui_settings->GetValue(gui::mw_showLabelsUnderIcons).toBool()); -} - -MainWindow::~MainWindow() { - SaveWindowState(); -} - -bool MainWindow::Init() { - auto start = std::chrono::steady_clock::now(); - // setup ui - LoadTranslation(); - AddUiWidgets(); - CreateActions(); - CreateRecentGameActions(); - ConfigureGuiFromSettings(); - CreateDockWindows(); - CreateConnects(); - SetLastUsedTheme(); - SetLastIconSizeBullet(); - // show ui - setMinimumSize(720, 405); - std::string window_title = ""; - std::string remote_url(Common::g_scm_remote_url); - std::string remote_host = Common::GetRemoteNameFromLink(); - if (Common::g_is_release) { - if (remote_host == "shadps4-emu" || remote_url.length() == 0) { - window_title = fmt::format("shadPS4 v{}", Common::g_version); - } else { - window_title = fmt::format("shadPS4 {}/v{}", remote_host, Common::g_version); - } - } else { - if (remote_host == "shadps4-emu" || remote_url.length() == 0) { - 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::g_version, remote_host, - Common::g_scm_branch, Common::g_scm_desc); - } - } - setWindowTitle(QString::fromStdString(window_title)); - this->show(); - // load game list - LoadGameLists(); -#ifdef ENABLE_UPDATER - // Check for update - CheckUpdateMain(true); -#endif - - auto end = std::chrono::steady_clock::now(); - auto duration = std::chrono::duration_cast(end - start); - statusBar.reset(new QStatusBar); - this->setStatusBar(statusBar.data()); - // Update status bar - int numGames = m_game_info->m_games.size(); - QString statusMessage = tr("Games: ") + QString::number(numGames) + " (" + - QString::number(duration.count()) + "ms)"; - statusBar->showMessage(statusMessage); - -#ifdef ENABLE_DISCORD_RPC - if (Config::getEnableDiscordRPC()) { - auto* rpc = Common::Singleton::Instance(); - rpc->init(); - rpc->setStatusIdling(); - } -#endif - - return true; -} - -void MainWindow::CreateActions() { - // create action group for icon size - m_icon_size_act_group = new QActionGroup(this); - m_icon_size_act_group->addAction(ui->setIconSizeTinyAct); - m_icon_size_act_group->addAction(ui->setIconSizeSmallAct); - m_icon_size_act_group->addAction(ui->setIconSizeMediumAct); - m_icon_size_act_group->addAction(ui->setIconSizeLargeAct); - - // create action group for list mode - m_list_mode_act_group = new QActionGroup(this); - m_list_mode_act_group->addAction(ui->setlistModeListAct); - m_list_mode_act_group->addAction(ui->setlistModeGridAct); - m_list_mode_act_group->addAction(ui->setlistElfAct); - - // create action group for themes - m_theme_act_group = new QActionGroup(this); - m_theme_act_group->addAction(ui->setThemeDark); - m_theme_act_group->addAction(ui->setThemeLight); - m_theme_act_group->addAction(ui->setThemeGreen); - m_theme_act_group->addAction(ui->setThemeBlue); - m_theme_act_group->addAction(ui->setThemeViolet); - m_theme_act_group->addAction(ui->setThemeGruvbox); - m_theme_act_group->addAction(ui->setThemeTokyoNight); - m_theme_act_group->addAction(ui->setThemeOled); -} - -void MainWindow::PauseGame() { - SDL_Event event; - SDL_memset(&event, 0, sizeof(event)); - event.type = SDL_EVENT_TOGGLE_PAUSE; - is_paused = !is_paused; - UpdateToolbarButtons(); - SDL_PushEvent(&event); -} - -void MainWindow::toggleLabelsUnderIcons() { - bool showLabels = ui->toggleLabelsAct->isChecked(); - m_gui_settings->SetValue(gui::mw_showLabelsUnderIcons, showLabels); - UpdateToolbarLabels(); - if (isGameRunning) { - UpdateToolbarButtons(); - } -} - -void MainWindow::toggleFullscreen() { - SDL_Event event; - SDL_memset(&event, 0, sizeof(event)); - event.type = SDL_EVENT_TOGGLE_FULLSCREEN; - SDL_PushEvent(&event); -} - -QWidget* MainWindow::createButtonWithLabel(QPushButton* button, const QString& labelText, - bool showLabel) { - QWidget* container = new QWidget(this); - QVBoxLayout* layout = new QVBoxLayout(container); - layout->setAlignment(Qt::AlignCenter | Qt::AlignBottom); - layout->setContentsMargins(0, 0, 0, 0); - layout->addWidget(button); - - QLabel* label = nullptr; - if (showLabel && ui->toggleLabelsAct->isChecked()) { - label = new QLabel(labelText, this); - label->setAlignment(Qt::AlignCenter | Qt::AlignBottom); - layout->addWidget(label); - button->setToolTip(""); - } else { - button->setToolTip(labelText); - } - - container->setLayout(layout); - container->setProperty("buttonLabel", QVariant::fromValue(label)); - return container; -} - -QWidget* createSpacer(QWidget* parent) { - QWidget* spacer = new QWidget(parent); - spacer->setFixedWidth(15); - spacer->setFixedHeight(15); - return spacer; -} - -void MainWindow::AddUiWidgets() { - // add toolbar widgets - QApplication::setStyle("Fusion"); - - bool showLabels = ui->toggleLabelsAct->isChecked(); - ui->toolBar->clear(); - - ui->toolBar->addWidget(createSpacer(this)); - ui->toolBar->addWidget(createButtonWithLabel(ui->playButton, tr("Play"), showLabels)); - ui->toolBar->addWidget(createButtonWithLabel(ui->pauseButton, tr("Pause"), showLabels)); - ui->toolBar->addWidget(createButtonWithLabel(ui->stopButton, tr("Stop"), showLabels)); - ui->toolBar->addWidget(createButtonWithLabel(ui->restartButton, tr("Restart"), showLabels)); - ui->toolBar->addWidget(createSpacer(this)); - ui->toolBar->addWidget(createButtonWithLabel(ui->settingsButton, tr("Settings"), showLabels)); - ui->toolBar->addWidget( - createButtonWithLabel(ui->fullscreenButton, tr("Full Screen"), showLabels)); - ui->toolBar->addWidget(createSpacer(this)); - ui->toolBar->addWidget( - createButtonWithLabel(ui->controllerButton, tr("Controllers"), showLabels)); - ui->toolBar->addWidget(createButtonWithLabel(ui->keyboardButton, tr("Keyboard"), showLabels)); - ui->toolBar->addWidget(createSpacer(this)); - QFrame* line = new QFrame(this); - line->setFrameShape(QFrame::VLine); - line->setFrameShadow(QFrame::Sunken); - line->setMinimumWidth(2); - ui->toolBar->addWidget(line); - ui->toolBar->addWidget(createSpacer(this)); - if (showLabels) { - QLabel* pauseButtonLabel = ui->pauseButton->parentWidget()->findChild(); - if (pauseButtonLabel) { - pauseButtonLabel->setVisible(false); - } - } - ui->toolBar->addWidget( - createButtonWithLabel(ui->refreshButton, tr("Refresh List"), showLabels)); - ui->toolBar->addWidget(createSpacer(this)); - - QBoxLayout* toolbarLayout = new QBoxLayout(QBoxLayout::TopToBottom); - toolbarLayout->setSpacing(2); - toolbarLayout->setContentsMargins(2, 2, 2, 2); - ui->sizeSliderContainer->setFixedWidth(150); - - QWidget* searchSliderContainer = new QWidget(this); - QBoxLayout* searchSliderLayout = new QBoxLayout(QBoxLayout::TopToBottom); - searchSliderLayout->setContentsMargins(0, 0, 6, 6); - searchSliderLayout->setSpacing(2); - ui->mw_searchbar->setFixedWidth(150); - - searchSliderLayout->addWidget(ui->sizeSliderContainer); - searchSliderLayout->addWidget(ui->mw_searchbar); - - searchSliderContainer->setLayout(searchSliderLayout); - - ui->toolBar->addWidget(searchSliderContainer); - - if (!showLabels) { - toolbarLayout->addWidget(searchSliderContainer); - } - - ui->playButton->setVisible(true); - ui->pauseButton->setVisible(false); -} - -void MainWindow::UpdateToolbarButtons() { - // add toolbar widgets when game is running - bool showLabels = ui->toggleLabelsAct->isChecked(); - - ui->playButton->setVisible(false); - ui->pauseButton->setVisible(true); - - if (showLabels) { - QLabel* playButtonLabel = ui->playButton->parentWidget()->findChild(); - if (playButtonLabel) - playButtonLabel->setVisible(false); - } - - if (is_paused) { - ui->pauseButton->setIcon(ui->playButton->icon()); - ui->pauseButton->setToolTip(tr("Resume")); - } else { - if (isIconBlack) { - ui->pauseButton->setIcon(QIcon(":images/pause_icon.png")); - } else { - ui->pauseButton->setIcon(RecolorIcon(QIcon(":images/pause_icon.png"), isWhite)); - } - ui->pauseButton->setToolTip(tr("Pause")); - } - - if (showLabels) { - QLabel* pauseButtonLabel = ui->pauseButton->parentWidget()->findChild(); - if (pauseButtonLabel) { - pauseButtonLabel->setText(is_paused ? tr("Resume") : tr("Pause")); - pauseButtonLabel->setVisible(true); - } - } -} - -void MainWindow::UpdateToolbarLabels() { - AddUiWidgets(); -} - -void MainWindow::CreateDockWindows() { - // place holder widget is needed for good health they say :) - QWidget* phCentralWidget = new QWidget(this); - setCentralWidget(phCentralWidget); - - m_dock_widget.reset(new QDockWidget(tr("Game List"), this)); - m_game_list_frame.reset(new GameListFrame(m_gui_settings, m_game_info, m_compat_info, this)); - m_game_list_frame->setObjectName("gamelist"); - m_game_grid_frame.reset(new GameGridFrame(m_gui_settings, m_game_info, m_compat_info, this)); - m_game_grid_frame->setObjectName("gamegridlist"); - m_elf_viewer.reset(new ElfViewer(m_gui_settings, this)); - m_elf_viewer->setObjectName("elflist"); - - int table_mode = m_gui_settings->GetValue(gui::gl_mode).toInt(); - int slider_pos = 0; - if (table_mode == 0) { // List - m_game_grid_frame->hide(); - m_elf_viewer->hide(); - m_game_list_frame->show(); - m_dock_widget->setWidget(m_game_list_frame.data()); - slider_pos = m_gui_settings->GetValue(gui::gl_slider_pos).toInt(); - ui->sizeSlider->setSliderPosition(slider_pos); // set slider pos at start; - isTableList = true; - } else if (table_mode == 1) { // Grid - m_game_list_frame->hide(); - m_elf_viewer->hide(); - m_game_grid_frame->show(); - m_dock_widget->setWidget(m_game_grid_frame.data()); - slider_pos = m_gui_settings->GetValue(gui::gg_slider_pos).toInt(); - ui->sizeSlider->setSliderPosition(slider_pos); // set slider pos at start; - isTableList = false; - } else { - m_game_list_frame->hide(); - m_game_grid_frame->hide(); - m_elf_viewer->show(); - m_dock_widget->setWidget(m_elf_viewer.data()); - isTableList = false; - } - - m_dock_widget->setAllowedAreas(Qt::AllDockWidgetAreas); - m_dock_widget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - m_dock_widget->resize(this->width(), this->height()); - addDockWidget(Qt::LeftDockWidgetArea, m_dock_widget.data()); - this->setDockNestingEnabled(true); - - // handle resize like this for now, we deal with it when we add more docks - connect(this, &MainWindow::WindowResized, this, [&]() { - this->resizeDocks({m_dock_widget.data()}, {this->width()}, Qt::Orientation::Horizontal); - }); -} - -void MainWindow::LoadGameLists() { - // Load compatibility database - if (Config::getCompatibilityEnabled()) - m_compat_info->LoadCompatibilityFile(); - - // Update compatibility database - if (Config::getCheckCompatibilityOnStartup()) - m_compat_info->UpdateCompatibilityDatabase(this); - - // Get game info from game folders. - m_game_info->GetGameInfo(this); - if (isTableList) { - m_game_list_frame->PopulateGameList(); - } else { - m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); - } -} - -#ifdef ENABLE_UPDATER -void MainWindow::CheckUpdateMain(bool checkSave) { - if (checkSave) { - if (!m_gui_settings->GetValue(gui::gen_checkForUpdates).toBool()) { - return; - } - } - auto checkUpdate = new CheckUpdate(m_gui_settings, false); - checkUpdate->exec(); -} -#endif - -void MainWindow::CreateConnects() { - connect(this, &MainWindow::WindowResized, this, &MainWindow::HandleResize); - connect(ui->mw_searchbar, &QLineEdit::textChanged, this, &MainWindow::SearchGameTable); - connect(ui->exitAct, &QAction::triggered, this, &QWidget::close); - connect(ui->refreshGameListAct, &QAction::triggered, this, &MainWindow::RefreshGameTable); - connect(ui->refreshButton, &QPushButton::clicked, this, &MainWindow::RefreshGameTable); - connect(ui->showGameListAct, &QAction::triggered, this, &MainWindow::ShowGameList); - connect(ui->toggleLabelsAct, &QAction::toggled, this, &MainWindow::toggleLabelsUnderIcons); - connect(ui->fullscreenButton, &QPushButton::clicked, this, &MainWindow::toggleFullscreen); - - connect(ui->sizeSlider, &QSlider::valueChanged, this, [this](int value) { - if (isTableList) { - m_game_list_frame->icon_size = - 48 + value; // 48 is the minimum icon size to use due to text disappearing. - m_game_list_frame->ResizeIcons(48 + value); - m_gui_settings->SetValue(gui::gl_icon_size, 48 + value); - m_gui_settings->SetValue(gui::gl_slider_pos, value); - } else { - m_game_grid_frame->icon_size = 69 + value; - m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); - m_gui_settings->SetValue(gui::gg_icon_size, 69 + value); - m_gui_settings->SetValue(gui::gg_slider_pos, value); - } - }); - - connect(ui->shadFolderAct, &QAction::triggered, this, [this]() { - QString userPath; - Common::FS::PathToQString(userPath, Common::FS::GetUserPath(Common::FS::PathType::UserDir)); - QDesktopServices::openUrl(QUrl::fromLocalFile(userPath)); - }); - - connect(ui->playButton, &QPushButton::clicked, this, &MainWindow::StartGame); - connect(ui->pauseButton, &QPushButton::clicked, this, &MainWindow::PauseGame); - connect(m_game_grid_frame.get(), &QTableWidget::cellDoubleClicked, this, - &MainWindow::StartGame); - connect(m_game_list_frame.get(), &QTableWidget::cellDoubleClicked, this, - &MainWindow::StartGame); - - connect(ui->configureAct, &QAction::triggered, this, [this]() { - auto settingsDialog = - new SettingsDialog(m_gui_settings, m_compat_info, this, isGameRunning); - - connect(settingsDialog, &SettingsDialog::LanguageChanged, this, - &MainWindow::OnLanguageChanged); - - connect(settingsDialog, &SettingsDialog::CompatibilityChanged, this, - &MainWindow::RefreshGameTable); - - connect(settingsDialog, &SettingsDialog::accepted, this, &MainWindow::RefreshGameTable); - connect(settingsDialog, &SettingsDialog::rejected, this, &MainWindow::RefreshGameTable); - connect(settingsDialog, &SettingsDialog::close, this, &MainWindow::RefreshGameTable); - - connect(settingsDialog, &SettingsDialog::BackgroundOpacityChanged, this, - [this](int opacity) { - m_gui_settings->SetValue(gui::gl_backgroundImageOpacity, - std::clamp(opacity, 0, 100)); - if (m_game_list_frame) { - QTableWidgetItem* current = m_game_list_frame->GetCurrentItem(); - if (current) { - m_game_list_frame->SetListBackgroundImage(current); - } - } - if (m_game_grid_frame) { - if (m_game_grid_frame->IsValidCellSelected()) { - m_game_grid_frame->SetGridBackgroundImage(m_game_grid_frame->crtRow, - m_game_grid_frame->crtColumn); - } - } - }); - - settingsDialog->exec(); - }); - - connect(ui->settingsButton, &QPushButton::clicked, this, [this]() { - auto settingsDialog = - new SettingsDialog(m_gui_settings, m_compat_info, this, isGameRunning); - - connect(settingsDialog, &SettingsDialog::LanguageChanged, this, - &MainWindow::OnLanguageChanged); - - connect(settingsDialog, &SettingsDialog::CompatibilityChanged, this, - &MainWindow::RefreshGameTable); - - connect(settingsDialog, &SettingsDialog::accepted, this, &MainWindow::RefreshGameTable); - connect(settingsDialog, &SettingsDialog::rejected, this, &MainWindow::RefreshGameTable); - connect(settingsDialog, &SettingsDialog::close, this, &MainWindow::RefreshGameTable); - - connect(settingsDialog, &SettingsDialog::BackgroundOpacityChanged, this, - [this](int opacity) { - m_gui_settings->SetValue(gui::gl_backgroundImageOpacity, - std::clamp(opacity, 0, 100)); - if (m_game_list_frame) { - QTableWidgetItem* current = m_game_list_frame->GetCurrentItem(); - if (current) { - m_game_list_frame->SetListBackgroundImage(current); - } - } - if (m_game_grid_frame) { - if (m_game_grid_frame->IsValidCellSelected()) { - m_game_grid_frame->SetGridBackgroundImage(m_game_grid_frame->crtRow, - m_game_grid_frame->crtColumn); - } - } - }); - - settingsDialog->exec(); - }); - - connect(ui->controllerButton, &QPushButton::clicked, this, [this]() { - ControlSettings* remapWindow = - new ControlSettings(m_game_info, isGameRunning, runningGameSerial, this); - remapWindow->exec(); - }); - - connect(ui->keyboardButton, &QPushButton::clicked, this, [this]() { - auto kbmWindow = new KBMSettings(m_game_info, isGameRunning, runningGameSerial, this); - kbmWindow->exec(); - }); - -#ifdef ENABLE_UPDATER - connect(ui->updaterAct, &QAction::triggered, this, [this]() { - auto checkUpdate = new CheckUpdate(m_gui_settings, true); - checkUpdate->exec(); - }); -#endif - - connect(ui->aboutAct, &QAction::triggered, this, [this]() { - auto aboutDialog = new AboutDialog(m_gui_settings, this); - aboutDialog->exec(); - }); - - connect(ui->configureHotkeys, &QAction::triggered, this, [this]() { - auto hotkeyDialog = new Hotkeys(isGameRunning, this); - hotkeyDialog->exec(); - }); - - connect(ui->setIconSizeTinyAct, &QAction::triggered, this, [this]() { - if (isTableList) { - m_game_list_frame->icon_size = - 36; // 36 is the minimum icon size to use due to text disappearing. - ui->sizeSlider->setValue(0); // icone_size - 36 - m_gui_settings->SetValue(gui::gl_icon_size, 36); - m_gui_settings->SetValue(gui::gl_slider_pos, 0); - } else { - m_game_grid_frame->icon_size = 69; - ui->sizeSlider->setValue(0); // icone_size - 36 - m_gui_settings->SetValue(gui::gg_icon_size, 69); - m_gui_settings->SetValue(gui::gg_slider_pos, 9); - m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); - } - }); - - connect(ui->setIconSizeSmallAct, &QAction::triggered, this, [this]() { - if (isTableList) { - m_game_list_frame->icon_size = 64; - ui->sizeSlider->setValue(28); - m_gui_settings->SetValue(gui::gl_icon_size, 64); - m_gui_settings->SetValue(gui::gl_slider_pos, 28); - } else { - m_game_grid_frame->icon_size = 97; - ui->sizeSlider->setValue(28); - m_gui_settings->SetValue(gui::gg_icon_size, 97); - m_gui_settings->SetValue(gui::gg_slider_pos, 28); - m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); - } - }); - - connect(ui->setIconSizeMediumAct, &QAction::triggered, this, [this]() { - if (isTableList) { - m_game_list_frame->icon_size = 128; - ui->sizeSlider->setValue(92); - m_gui_settings->SetValue(gui::gl_icon_size, 128); - m_gui_settings->SetValue(gui::gl_slider_pos, 92); - } else { - m_game_grid_frame->icon_size = 161; - ui->sizeSlider->setValue(92); - m_gui_settings->SetValue(gui::gg_icon_size, 161); - m_gui_settings->SetValue(gui::gg_slider_pos, 92); - m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); - } - }); - - connect(ui->setIconSizeLargeAct, &QAction::triggered, this, [this]() { - if (isTableList) { - m_game_list_frame->icon_size = 256; - ui->sizeSlider->setValue(220); - m_gui_settings->SetValue(gui::gl_icon_size, 256); - m_gui_settings->SetValue(gui::gl_slider_pos, 220); - } else { - m_game_grid_frame->icon_size = 256; - ui->sizeSlider->setValue(220); - m_gui_settings->SetValue(gui::gg_icon_size, 256); - m_gui_settings->SetValue(gui::gg_slider_pos, 220); - m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); - } - }); - // List - connect(ui->setlistModeListAct, &QAction::triggered, m_dock_widget.data(), [this]() { - BackgroundMusicPlayer::getInstance().stopMusic(); - m_dock_widget->setWidget(m_game_list_frame.data()); - m_game_grid_frame->hide(); - m_elf_viewer->hide(); - m_game_list_frame->show(); - m_game_list_frame->clearContents(); - m_game_list_frame->PopulateGameList(); - isTableList = true; - m_gui_settings->SetValue(gui::gl_mode, 0); - int slider_pos = m_gui_settings->GetValue(gui::gl_slider_pos).toInt(); - 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]() { - BackgroundMusicPlayer::getInstance().stopMusic(); - m_dock_widget->setWidget(m_game_grid_frame.data()); - m_game_grid_frame->show(); - m_game_list_frame->hide(); - m_elf_viewer->hide(); - if (m_game_grid_frame->item(0, 0) == nullptr) { - m_game_grid_frame->clearContents(); - m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); - } - isTableList = false; - m_gui_settings->SetValue(gui::gl_mode, 1); - int slider_pos_grid = m_gui_settings->GetValue(gui::gg_slider_pos).toInt(); - 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]() { - BackgroundMusicPlayer::getInstance().stopMusic(); - m_dock_widget->setWidget(m_elf_viewer.data()); - m_game_grid_frame->hide(); - m_game_list_frame->hide(); - m_elf_viewer->show(); - isTableList = false; - ui->sizeSlider->setDisabled(true); - m_gui_settings->SetValue(gui::gl_mode, 2); - SetLastIconSizeBullet(); - }); - - // Cheats/Patches Download. - connect(ui->downloadCheatsPatchesAct, &QAction::triggered, this, [this]() { - QDialog* panelDialog = new QDialog(this); - QVBoxLayout* layout = new QVBoxLayout(panelDialog); - QPushButton* downloadAllCheatsButton = - new QPushButton(tr("Download Cheats For All Installed Games"), panelDialog); - QPushButton* downloadAllPatchesButton = - new QPushButton(tr("Download Patches For All Games"), panelDialog); - - layout->addWidget(downloadAllCheatsButton); - layout->addWidget(downloadAllPatchesButton); - - panelDialog->setLayout(layout); - - connect(downloadAllCheatsButton, &QPushButton::clicked, this, [this, panelDialog]() { - QEventLoop eventLoop; - int pendingDownloads = 0; - - auto onDownloadFinished = [&]() { - if (--pendingDownloads <= 0) { - eventLoop.quit(); - } - }; - - for (const GameInfo& game : m_game_info->m_games) { - QString empty = ""; - QString gameSerial = QString::fromStdString(game.serial); - QString gameVersion = QString::fromStdString(game.version); - - CheatsPatches* cheatsPatches = - new CheatsPatches(empty, empty, empty, empty, empty, nullptr); - connect(cheatsPatches, &CheatsPatches::downloadFinished, onDownloadFinished); - - pendingDownloads += 3; - - cheatsPatches->downloadCheats("wolf2022", gameSerial, gameVersion, false); - cheatsPatches->downloadCheats("GoldHEN", gameSerial, gameVersion, false); - cheatsPatches->downloadCheats("shadPS4", gameSerial, gameVersion, false); - } - eventLoop.exec(); - - QMessageBox::information( - nullptr, tr("Download Complete"), - tr("You have downloaded cheats for all the games you have installed.")); - - panelDialog->accept(); - }); - connect(downloadAllPatchesButton, &QPushButton::clicked, [panelDialog]() { - QEventLoop eventLoop; - int pendingDownloads = 0; - - auto onDownloadFinished = [&]() { - if (--pendingDownloads <= 0) { - eventLoop.quit(); - } - }; - - QString empty = ""; - CheatsPatches* cheatsPatches = - new CheatsPatches(empty, empty, empty, empty, empty, nullptr); - connect(cheatsPatches, &CheatsPatches::downloadFinished, onDownloadFinished); - - pendingDownloads += 2; - - cheatsPatches->downloadPatches("GoldHEN", false); - cheatsPatches->downloadPatches("shadPS4", false); - - eventLoop.exec(); - QMessageBox::information( - nullptr, tr("Download Complete"), - QString(tr("Patches Downloaded Successfully!") + "\n" + - tr("All Patches available for all games have been downloaded."))); - cheatsPatches->createFilesJson("GoldHEN"); - cheatsPatches->createFilesJson("shadPS4"); - panelDialog->accept(); - }); - panelDialog->exec(); - }); - - // Dump game list. - connect(ui->dumpGameListAct, &QAction::triggered, this, [&] { - QString filePath = qApp->applicationDirPath().append("/GameList.txt"); - QFile file(filePath); - QTextStream out(&file); - if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { - qDebug() << "Failed to open file for writing:" << file.errorString(); - return; - } - out << QString("%1 %2 %3 %4 %5\n") - .arg(" NAME", -50) - .arg(" ID", -10) - .arg("FW", -4) - .arg(" APP VERSION", -11) - .arg(" Path"); - for (const GameInfo& game : m_game_info->m_games) { - QString game_path; - Common::FS::PathToQString(game_path, game.path); - out << QString("%1 %2 %3 %4 %5\n") - .arg(QString::fromStdString(game.name), -50) - .arg(QString::fromStdString(game.serial), -10) - .arg(QString::fromStdString(game.fw), -4) - .arg(QString::fromStdString(game.version), -11) - .arg(game_path); - } - }); - - // Package install. - connect(ui->bootGameAct, &QAction::triggered, this, &MainWindow::BootGame); - connect(ui->gameInstallPathAct, &QAction::triggered, this, &MainWindow::InstallDirectory); - - // elf viewer - connect(ui->addElfFolderAct, &QAction::triggered, m_elf_viewer.data(), - &ElfViewer::OpenElfFolder); - - // Trophy Viewer - connect(ui->trophyViewerAct, &QAction::triggered, this, [this]() { - if (m_game_info->m_games.empty()) { - QMessageBox::information( - this, tr("Trophy Viewer"), - tr("No games found. Please add your games to your library first.")); - return; - } - - const auto& firstGame = m_game_info->m_games[0]; - QString trophyPath, gameTrpPath; - Common::FS::PathToQString(trophyPath, firstGame.serial); - Common::FS::PathToQString(gameTrpPath, firstGame.path); - - auto game_update_path = Common::FS::PathFromQString(gameTrpPath); - game_update_path += "-UPDATE"; - if (std::filesystem::exists(game_update_path)) { - Common::FS::PathToQString(gameTrpPath, game_update_path); - } else { - game_update_path = Common::FS::PathFromQString(gameTrpPath); - game_update_path += "-patch"; - if (std::filesystem::exists(game_update_path)) { - Common::FS::PathToQString(gameTrpPath, game_update_path); - } - } - - QVector allTrophyGames; - for (const auto& game : m_game_info->m_games) { - TrophyGameInfo gameInfo; - gameInfo.name = QString::fromStdString(game.name); - Common::FS::PathToQString(gameInfo.trophyPath, game.serial); - Common::FS::PathToQString(gameInfo.gameTrpPath, game.path); - - auto update_path = Common::FS::PathFromQString(gameInfo.gameTrpPath); - update_path += "-UPDATE"; - if (std::filesystem::exists(update_path)) { - Common::FS::PathToQString(gameInfo.gameTrpPath, update_path); - } else { - update_path = Common::FS::PathFromQString(gameInfo.gameTrpPath); - update_path += "-patch"; - if (std::filesystem::exists(update_path)) { - Common::FS::PathToQString(gameInfo.gameTrpPath, update_path); - } - } - - allTrophyGames.append(gameInfo); - } - - QString gameName = QString::fromStdString(firstGame.name); - TrophyViewer* trophyViewer = - new TrophyViewer(m_gui_settings, trophyPath, gameTrpPath, gameName, allTrophyGames); - trophyViewer->show(); - }); - - // Themes - connect(ui->setThemeDark, &QAction::triggered, &m_window_themes, [this]() { - m_window_themes.SetWindowTheme(Theme::Dark, ui->mw_searchbar); - m_gui_settings->SetValue(gui::gen_theme, static_cast(Theme::Dark)); - if (isIconBlack) { - SetUiIcons(false); - isIconBlack = false; - } - }); - connect(ui->setThemeLight, &QAction::triggered, &m_window_themes, [this]() { - m_window_themes.SetWindowTheme(Theme::Light, ui->mw_searchbar); - m_gui_settings->SetValue(gui::gen_theme, static_cast(Theme::Light)); - if (!isIconBlack) { - SetUiIcons(true); - isIconBlack = true; - } - }); - connect(ui->setThemeGreen, &QAction::triggered, &m_window_themes, [this]() { - m_window_themes.SetWindowTheme(Theme::Green, ui->mw_searchbar); - m_gui_settings->SetValue(gui::gen_theme, static_cast(Theme::Green)); - if (isIconBlack) { - SetUiIcons(false); - isIconBlack = false; - } - }); - connect(ui->setThemeBlue, &QAction::triggered, &m_window_themes, [this]() { - m_window_themes.SetWindowTheme(Theme::Blue, ui->mw_searchbar); - m_gui_settings->SetValue(gui::gen_theme, static_cast(Theme::Blue)); - if (isIconBlack) { - SetUiIcons(false); - isIconBlack = false; - } - }); - connect(ui->setThemeViolet, &QAction::triggered, &m_window_themes, [this]() { - m_window_themes.SetWindowTheme(Theme::Violet, ui->mw_searchbar); - m_gui_settings->SetValue(gui::gen_theme, static_cast(Theme::Violet)); - if (isIconBlack) { - SetUiIcons(false); - isIconBlack = false; - } - }); - connect(ui->setThemeGruvbox, &QAction::triggered, &m_window_themes, [this]() { - m_window_themes.SetWindowTheme(Theme::Gruvbox, ui->mw_searchbar); - m_gui_settings->SetValue(gui::gen_theme, static_cast(Theme::Gruvbox)); - if (isIconBlack) { - SetUiIcons(false); - isIconBlack = false; - } - }); - connect(ui->setThemeTokyoNight, &QAction::triggered, &m_window_themes, [this]() { - m_window_themes.SetWindowTheme(Theme::TokyoNight, ui->mw_searchbar); - m_gui_settings->SetValue(gui::gen_theme, static_cast(Theme::TokyoNight)); - if (isIconBlack) { - SetUiIcons(false); - isIconBlack = false; - } - }); - connect(ui->setThemeOled, &QAction::triggered, &m_window_themes, [this]() { - m_window_themes.SetWindowTheme(Theme::Oled, ui->mw_searchbar); - m_gui_settings->SetValue(gui::gen_theme, static_cast(Theme::Oled)); - if (isIconBlack) { - SetUiIcons(false); - isIconBlack = false; - } - }); -} - -void MainWindow::StartGame() { - BackgroundMusicPlayer::getInstance().stopMusic(); - QString gamePath = ""; - int table_mode = m_gui_settings->GetValue(gui::gl_mode).toInt(); - if (table_mode == 0) { - if (m_game_list_frame->currentItem()) { - int itemID = m_game_list_frame->currentItem()->row(); - Common::FS::PathToQString(gamePath, m_game_info->m_games[itemID].path / "eboot.bin"); - runningGameSerial = m_game_info->m_games[itemID].serial; - } - } else if (table_mode == 1) { - if (m_game_grid_frame->cellClicked) { - int itemID = (m_game_grid_frame->crtRow * m_game_grid_frame->columnCnt) + - m_game_grid_frame->crtColumn; - Common::FS::PathToQString(gamePath, m_game_info->m_games[itemID].path / "eboot.bin"); - runningGameSerial = m_game_info->m_games[itemID].serial; - } - } else { - if (m_elf_viewer->currentItem()) { - int itemID = m_elf_viewer->currentItem()->row(); - gamePath = m_elf_viewer->m_elf_list[itemID]; - } - } - if (gamePath != "") { - AddRecentFiles(gamePath); - const auto path = Common::FS::PathFromQString(gamePath); - if (!std::filesystem::exists(path)) { - QMessageBox::critical(nullptr, tr("Run Game"), QString(tr("Eboot.bin file not found"))); - return; - } - StartEmulator(path); - - UpdateToolbarButtons(); - } -} - -bool isTable; -void MainWindow::SearchGameTable(const QString& text) { - if (isTableList) { - if (isTable != true) { - m_game_info->m_games = m_game_info->m_games_backup; - m_game_list_frame->PopulateGameList(); - isTable = true; - } - for (int row = 0; row < m_game_list_frame->rowCount(); row++) { - QString game_name = QString::fromStdString(m_game_info->m_games[row].name); - bool match = (game_name.contains(text, Qt::CaseInsensitive)); // Check only in column 1 - m_game_list_frame->setRowHidden(row, !match); - } - } else { - isTable = false; - m_game_info->m_games = m_game_info->m_games_backup; - m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); - - QVector filteredGames; - for (const auto& gameInfo : m_game_info->m_games) { - QString game_name = QString::fromStdString(gameInfo.name); - if (game_name.contains(text, Qt::CaseInsensitive)) { - filteredGames.push_back(gameInfo); - } - } - std::sort(filteredGames.begin(), filteredGames.end(), m_game_info->CompareStrings); - m_game_info->m_games = filteredGames; - m_game_grid_frame->PopulateGameGrid(filteredGames, true); - } -} - -void MainWindow::ShowGameList() { - if (ui->showGameListAct->isChecked()) { - RefreshGameTable(); - } else { - m_game_grid_frame->clearContents(); - m_game_list_frame->clearContents(); - } -}; - -void MainWindow::RefreshGameTable() { - // m_game_info->m_games.clear(); - m_game_info->GetGameInfo(this); - m_game_list_frame->clearContents(); - m_game_list_frame->PopulateGameList(); - m_game_grid_frame->clearContents(); - m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); - statusBar->clearMessage(); - int numGames = m_game_info->m_games.size(); - QString statusMessage = tr("Games: ") + QString::number(numGames); - statusBar->showMessage(statusMessage); -} - -void MainWindow::ConfigureGuiFromSettings() { - if (!restoreGeometry(m_gui_settings->GetValue(gui::mw_geometry).toByteArray())) { - // By default, set the window to 70% of the screen - resize(QGuiApplication::primaryScreen()->availableSize() * 0.7); - } - ui->showGameListAct->setChecked(true); - int table_mode = m_gui_settings->GetValue(gui::gl_mode).toInt(); - if (table_mode == 0) { - ui->setlistModeListAct->setChecked(true); - } else if (table_mode == 1) { - ui->setlistModeGridAct->setChecked(true); - } else if (table_mode == 2) { - ui->setlistElfAct->setChecked(true); - } - BackgroundMusicPlayer::getInstance().setVolume( - m_gui_settings->GetValue(gui::gl_backgroundMusicVolume).toInt()); -} - -void MainWindow::SaveWindowState() { - m_gui_settings->SetValue(gui::mw_geometry, saveGeometry(), false); -} - -void MainWindow::BootGame() { - QFileDialog dialog; - dialog.setFileMode(QFileDialog::ExistingFile); - dialog.setNameFilter(tr("ELF files (*.bin *.elf *.oelf)")); - if (dialog.exec()) { - QStringList fileNames = dialog.selectedFiles(); - int nFiles = fileNames.size(); - - if (nFiles > 1) { - QMessageBox::critical(nullptr, tr("Game Boot"), - QString(tr("Only one file can be selected!"))); - } else { - std::filesystem::path path = Common::FS::PathFromQString(fileNames[0]); - if (!std::filesystem::exists(path)) { - QMessageBox::critical(nullptr, tr("Run Game"), - QString(tr("Eboot.bin file not found"))); - return; - } - StartEmulator(path); - } - } -} - -void MainWindow::InstallDirectory() { - GameInstallDialog dlg; - dlg.exec(); - RefreshGameTable(); -} - -void MainWindow::SetLastUsedTheme() { - Theme lastTheme = static_cast(m_gui_settings->GetValue(gui::gen_theme).toInt()); - m_window_themes.SetWindowTheme(lastTheme, ui->mw_searchbar); - - switch (lastTheme) { - case Theme::Light: - ui->setThemeLight->setChecked(true); - isIconBlack = true; - break; - case Theme::Dark: - ui->setThemeDark->setChecked(true); - isIconBlack = false; - SetUiIcons(false); - break; - case Theme::Green: - ui->setThemeGreen->setChecked(true); - isIconBlack = false; - SetUiIcons(false); - break; - case Theme::Blue: - ui->setThemeBlue->setChecked(true); - isIconBlack = false; - SetUiIcons(false); - break; - case Theme::Violet: - ui->setThemeViolet->setChecked(true); - isIconBlack = false; - SetUiIcons(false); - break; - case Theme::Gruvbox: - ui->setThemeGruvbox->setChecked(true); - isIconBlack = false; - SetUiIcons(false); - break; - case Theme::TokyoNight: - ui->setThemeTokyoNight->setChecked(true); - isIconBlack = false; - SetUiIcons(false); - break; - case Theme::Oled: - ui->setThemeOled->setChecked(true); - isIconBlack = false; - SetUiIcons(false); - break; - } -} - -void MainWindow::SetLastIconSizeBullet() { - // set QAction bullet point if applicable - int lastSize = m_gui_settings->GetValue(gui::gl_icon_size).toInt(); - int lastSizeGrid = m_gui_settings->GetValue(gui::gg_icon_size).toInt(); - 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; - } - } -} - -QIcon MainWindow::RecolorIcon(const QIcon& icon, bool isWhite) { - QPixmap pixmap(icon.pixmap(icon.actualSize(QSize(120, 120)))); - QColor clr(isWhite ? Qt::white : Qt::black); - QBitmap mask = pixmap.createMaskFromColor(clr, Qt::MaskOutColor); - pixmap.fill(QColor(isWhite ? Qt::black : Qt::white)); - pixmap.setMask(mask); - return QIcon(pixmap); -} - -void MainWindow::SetUiIcons(bool isWhite) { - ui->bootGameAct->setIcon(RecolorIcon(ui->bootGameAct->icon(), isWhite)); - ui->shadFolderAct->setIcon(RecolorIcon(ui->shadFolderAct->icon(), isWhite)); - ui->exitAct->setIcon(RecolorIcon(ui->exitAct->icon(), isWhite)); -#ifdef ENABLE_UPDATER - ui->updaterAct->setIcon(RecolorIcon(ui->updaterAct->icon(), isWhite)); -#endif - ui->downloadCheatsPatchesAct->setIcon( - RecolorIcon(ui->downloadCheatsPatchesAct->icon(), isWhite)); - ui->dumpGameListAct->setIcon(RecolorIcon(ui->dumpGameListAct->icon(), isWhite)); - ui->aboutAct->setIcon(RecolorIcon(ui->aboutAct->icon(), isWhite)); - ui->setlistModeListAct->setIcon(RecolorIcon(ui->setlistModeListAct->icon(), isWhite)); - ui->setlistModeGridAct->setIcon(RecolorIcon(ui->setlistModeGridAct->icon(), isWhite)); - ui->gameInstallPathAct->setIcon(RecolorIcon(ui->gameInstallPathAct->icon(), isWhite)); - ui->menuThemes->setIcon(RecolorIcon(ui->menuThemes->icon(), isWhite)); - ui->menuGame_List_Icons->setIcon(RecolorIcon(ui->menuGame_List_Icons->icon(), isWhite)); - ui->menuUtils->setIcon(RecolorIcon(ui->menuUtils->icon(), isWhite)); - ui->playButton->setIcon(RecolorIcon(ui->playButton->icon(), isWhite)); - ui->pauseButton->setIcon(RecolorIcon(ui->pauseButton->icon(), isWhite)); - ui->stopButton->setIcon(RecolorIcon(ui->stopButton->icon(), isWhite)); - ui->refreshButton->setIcon(RecolorIcon(ui->refreshButton->icon(), isWhite)); - ui->restartButton->setIcon(RecolorIcon(ui->restartButton->icon(), isWhite)); - ui->settingsButton->setIcon(RecolorIcon(ui->settingsButton->icon(), isWhite)); - ui->fullscreenButton->setIcon(RecolorIcon(ui->fullscreenButton->icon(), isWhite)); - ui->controllerButton->setIcon(RecolorIcon(ui->controllerButton->icon(), isWhite)); - ui->keyboardButton->setIcon(RecolorIcon(ui->keyboardButton->icon(), isWhite)); - ui->refreshGameListAct->setIcon(RecolorIcon(ui->refreshGameListAct->icon(), isWhite)); - ui->menuGame_List_Mode->setIcon(RecolorIcon(ui->menuGame_List_Mode->icon(), isWhite)); - ui->trophyViewerAct->setIcon(RecolorIcon(ui->trophyViewerAct->icon(), isWhite)); - ui->configureAct->setIcon(RecolorIcon(ui->configureAct->icon(), isWhite)); - ui->addElfFolderAct->setIcon(RecolorIcon(ui->addElfFolderAct->icon(), isWhite)); -} - -void MainWindow::resizeEvent(QResizeEvent* event) { - emit WindowResized(event); - QMainWindow::resizeEvent(event); -} - -void MainWindow::HandleResize(QResizeEvent* event) { - if (isTableList) { - m_game_list_frame->RefreshListBackgroundImage(); - } else { - m_game_grid_frame->windowWidth = this->width(); - m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false); - m_game_grid_frame->RefreshGridBackgroundImage(); - } -} - -void MainWindow::AddRecentFiles(QString filePath) { - QList list = gui_settings::Var2List(m_gui_settings->GetValue(gui::gen_recentFiles)); - if (!list.empty()) { - if (filePath == list.at(0)) { - return; - } - auto it = std::find(list.begin(), list.end(), filePath); - if (it != list.end()) { - list.erase(it); - } - } - list.insert(list.begin(), filePath); - if (list.size() > 6) { - list.pop_back(); - } - m_gui_settings->SetValue(gui::gen_recentFiles, gui_settings::List2Var(list)); - CreateRecentGameActions(); // Refresh the QActions. -} - -void MainWindow::CreateRecentGameActions() { - m_recent_files_group = new QActionGroup(this); - ui->menuRecent->clear(); - QList list = gui_settings::Var2List(m_gui_settings->GetValue(gui::gen_recentFiles)); - - for (int i = 0; i < list.size(); i++) { - QAction* recentFileAct = new QAction(this); - recentFileAct->setText(list.at(i)); - ui->menuRecent->addAction(recentFileAct); - m_recent_files_group->addAction(recentFileAct); - } - - connect(m_recent_files_group, &QActionGroup::triggered, this, [this](QAction* action) { - auto gamePath = Common::FS::PathFromQString(action->text()); - AddRecentFiles(action->text()); // Update the list. - if (!std::filesystem::exists(gamePath)) { - QMessageBox::critical(nullptr, tr("Run Game"), QString(tr("Eboot.bin file not found"))); - return; - } - StartEmulator(gamePath); - }); -} - -void MainWindow::LoadTranslation() { - auto language = m_gui_settings->GetValue(gui::gen_guiLanguage).toString(); - - const QString base_dir = QStringLiteral(":/translations"); - QString base_path = QStringLiteral("%1/%2.qm").arg(base_dir).arg(language); - - if (QFile::exists(base_path)) { - if (translator != nullptr) { - qApp->removeTranslator(translator); - } - - translator = new QTranslator(qApp); - if (!translator->load(base_path)) { - QMessageBox::warning( - nullptr, QStringLiteral("Translation Error"), - QStringLiteral("Failed to find load translation file for '%1':\n%2") - .arg(language) - .arg(base_path)); - delete translator; - } else { - qApp->installTranslator(translator); - ui->retranslateUi(this); - } - } -} - -void MainWindow::OnLanguageChanged(const QString& locale) { - m_gui_settings->SetValue(gui::gen_guiLanguage, locale); - - LoadTranslation(); -} - -bool MainWindow::eventFilter(QObject* obj, QEvent* event) { - if (event->type() == QEvent::KeyPress) { - QKeyEvent* keyEvent = static_cast(event); - if (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return) { - auto tblMode = m_gui_settings->GetValue(gui::gl_mode).toInt(); - if (tblMode != 2 && (tblMode != 1 || m_game_grid_frame->IsValidCellSelected())) { - StartGame(); - return true; - } - } - } - return QMainWindow::eventFilter(obj, event); -} - -void MainWindow::StartEmulator(std::filesystem::path path) { - if (isGameRunning) { - QMessageBox::critical(nullptr, tr("Run Game"), QString(tr("Game is already running!"))); - return; - } - isGameRunning = true; -#ifdef __APPLE__ - // SDL on macOS requires main thread. - Core::Emulator* emulator = Common::Singleton::Instance(); - emulator->Run(path); -#else - std::thread emulator_thread([=] { - Core::Emulator* emulator = Common::Singleton::Instance(); - emulator->Run(path); - }); - emulator_thread.detach(); -#endif -} diff --git a/src/qt_gui/main_window.h b/src/qt_gui/main_window.h deleted file mode 100644 index 5b880c15e..000000000 --- a/src/qt_gui/main_window.h +++ /dev/null @@ -1,124 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include -#include - -#include "background_music_player.h" -#include "common/config.h" -#include "common/path_util.h" -#include "compatibility_info.h" -#include "core/file_format/psf.h" -#include "core/file_sys/fs.h" -#include "elf_viewer.h" -#include "emulator.h" -#include "game_grid_frame.h" -#include "game_info.h" -#include "game_list_frame.h" -#include "game_list_utils.h" -#include "gui_settings.h" -#include "main_window_themes.h" -#include "main_window_ui.h" - -class GameListFrame; - -class MainWindow : public QMainWindow { - Q_OBJECT -signals: - void WindowResized(QResizeEvent* event); - -public: - explicit MainWindow(QWidget* parent = nullptr); - ~MainWindow(); - bool Init(); - void InstallDirectory(); - void StartGame(); - void PauseGame(); - bool showLabels; - -private Q_SLOTS: - void ConfigureGuiFromSettings(); - void SaveWindowState(); - void SearchGameTable(const QString& text); - void ShowGameList(); - void RefreshGameTable(); - void HandleResize(QResizeEvent* event); - void OnLanguageChanged(const QString& locale); - void toggleLabelsUnderIcons(); - -private: - Ui_MainWindow* ui; - void AddUiWidgets(); - void UpdateToolbarLabels(); - void UpdateToolbarButtons(); - QWidget* createButtonWithLabel(QPushButton* button, const QString& labelText, bool showLabel); - void CreateActions(); - void toggleFullscreen(); - void CreateRecentGameActions(); - void CreateDockWindows(); - void LoadGameLists(); - -#ifdef ENABLE_UPDATER - void CheckUpdateMain(bool checkSave); -#endif - void CreateConnects(); - void SetLastUsedTheme(); - void SetLastIconSizeBullet(); - void SetUiIcons(bool isWhite); - void BootGame(); - void AddRecentFiles(QString filePath); - void LoadTranslation(); - void PlayBackgroundMusic(); - QIcon RecolorIcon(const QIcon& icon, bool isWhite); - void StartEmulator(std::filesystem::path); - - bool isIconBlack = false; - bool isTableList = true; - bool isGameRunning = false; - bool isWhite = false; - bool is_paused = false; - std::string runningGameSerial = ""; - - QActionGroup* m_icon_size_act_group = nullptr; - QActionGroup* m_list_mode_act_group = nullptr; - QActionGroup* m_theme_act_group = nullptr; - QActionGroup* m_recent_files_group = nullptr; - // Dockable widget frames - WindowThemes m_window_themes; - GameListUtils m_game_list_utils; - QScopedPointer m_dock_widget; - // Game Lists - QScopedPointer m_game_list_frame; - QScopedPointer m_game_grid_frame; - QScopedPointer m_elf_viewer; - // Status Bar. - QScopedPointer statusBar; - - PSF psf; - - std::shared_ptr m_game_info = std::make_shared(); - std::shared_ptr m_compat_info = - std::make_shared(); - - QTranslator* translator; - std::shared_ptr m_gui_settings; - -protected: - bool eventFilter(QObject* obj, QEvent* event) override; - - void dragEnterEvent(QDragEnterEvent* event1) override { - if (event1->mimeData()->hasUrls()) { - event1->acceptProposedAction(); - } - } - - void resizeEvent(QResizeEvent* event) override; - - std::filesystem::path last_install_dir = ""; - bool delete_file_on_install = false; - bool use_for_all_queued = false; -}; diff --git a/src/qt_gui/main_window_themes.cpp b/src/qt_gui/main_window_themes.cpp deleted file mode 100644 index 624673cba..000000000 --- a/src/qt_gui/main_window_themes.cpp +++ /dev/null @@ -1,197 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "main_window_themes.h" - -void WindowThemes::SetWindowTheme(Theme theme, QLineEdit* mw_searchbar) { - QPalette themePalette; - - qApp->setStyleSheet(""); - switch (theme) { - case Theme::Dark: - mw_searchbar->setStyleSheet( - "QLineEdit {" - "background-color: #1e1e1e; color: #ffffff; border: 1px solid #ffffff; " - "border-radius: 4px; padding: 5px; }" - "QLineEdit:focus {" - "border: 1px solid #2A82DA; }"); - themePalette.setColor(QPalette::Window, QColor(50, 50, 50)); - themePalette.setColor(QPalette::WindowText, Qt::white); - themePalette.setColor(QPalette::Base, QColor(20, 20, 20)); - themePalette.setColor(QPalette::AlternateBase, QColor(53, 53, 53)); - themePalette.setColor(QPalette::ToolTipBase, QColor(20, 20, 20)); - themePalette.setColor(QPalette::ToolTipText, Qt::white); - themePalette.setColor(QPalette::Text, Qt::white); - themePalette.setColor(QPalette::Button, QColor(53, 53, 53)); - themePalette.setColor(QPalette::ButtonText, Qt::white); - themePalette.setColor(QPalette::BrightText, Qt::red); - themePalette.setColor(QPalette::Link, QColor(42, 130, 218)); - themePalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); - themePalette.setColor(QPalette::HighlightedText, Qt::black); - qApp->setPalette(themePalette); - break; - case Theme::Light: - mw_searchbar->setStyleSheet( - "QLineEdit {" - "background-color: #ffffff; color: #000000; border: 1px solid #000000; " - "border-radius: 4px; padding: 5px; }" - "QLineEdit:focus {" - "border: 1px solid #2A82DA; }"); - themePalette.setColor(QPalette::Window, QColor(240, 240, 240)); // Light gray - themePalette.setColor(QPalette::WindowText, Qt::black); // Black - themePalette.setColor(QPalette::Base, QColor(230, 230, 230, 80)); // Grayish - themePalette.setColor(QPalette::ToolTipBase, QColor(230, 230, 230, 80)); // Grayish - themePalette.setColor(QPalette::ToolTipText, Qt::black); // Black - themePalette.setColor(QPalette::Text, Qt::black); // Black - themePalette.setColor(QPalette::Button, QColor(240, 240, 240)); // Light gray - themePalette.setColor(QPalette::ButtonText, Qt::black); // Black - themePalette.setColor(QPalette::BrightText, Qt::red); // Red - themePalette.setColor(QPalette::Link, QColor(42, 130, 218)); // Blue - themePalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); // Blue - themePalette.setColor(QPalette::HighlightedText, Qt::white); // White - qApp->setPalette(themePalette); - break; - case Theme::Green: - mw_searchbar->setStyleSheet( - "QLineEdit {" - "background-color: #192819; color: #ffffff; border: 1px solid #ffffff; " - "border-radius: 4px; padding: 5px; }" - "QLineEdit:focus {" - "border: 1px solid #2A82DA; }"); - themePalette.setColor(QPalette::Window, QColor(53, 69, 53)); // Dark green background - themePalette.setColor(QPalette::WindowText, Qt::white); // White text - themePalette.setColor(QPalette::Base, QColor(25, 40, 25)); // Darker green base - themePalette.setColor(QPalette::AlternateBase, - QColor(53, 69, 53)); // Dark green alternate base - themePalette.setColor(QPalette::ToolTipBase, - QColor(25, 40, 25)); // White tooltip background - themePalette.setColor(QPalette::ToolTipText, Qt::white); // White tooltip text - themePalette.setColor(QPalette::Text, Qt::white); // White text - themePalette.setColor(QPalette::Button, QColor(53, 69, 53)); // Dark green button - themePalette.setColor(QPalette::ButtonText, Qt::white); // White button text - themePalette.setColor(QPalette::BrightText, Qt::red); // Bright red text for alerts - themePalette.setColor(QPalette::Link, QColor(42, 130, 218)); // Light blue links - themePalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); // Light blue highlight - themePalette.setColor(QPalette::HighlightedText, Qt::black); // Black highlighted text - qApp->setPalette(themePalette); - break; - case Theme::Blue: - mw_searchbar->setStyleSheet( - "QLineEdit {" - "background-color: #14283c; color: #ffffff; border: 1px solid #ffffff; " - "border-radius: 4px; padding: 5px; }" - "QLineEdit:focus {" - "border: 1px solid #2A82DA; }"); - themePalette.setColor(QPalette::Window, QColor(40, 60, 90)); // Dark blue background - themePalette.setColor(QPalette::WindowText, Qt::white); // White text - themePalette.setColor(QPalette::Base, QColor(20, 40, 60)); // Darker blue base - themePalette.setColor(QPalette::AlternateBase, - QColor(40, 60, 90)); // Dark blue alternate base - themePalette.setColor(QPalette::ToolTipBase, - QColor(20, 40, 60)); // White tooltip background - themePalette.setColor(QPalette::ToolTipText, Qt::white); // White tooltip text - themePalette.setColor(QPalette::Text, Qt::white); // White text - themePalette.setColor(QPalette::Button, QColor(40, 60, 90)); // Dark blue button - themePalette.setColor(QPalette::ButtonText, Qt::white); // White button text - themePalette.setColor(QPalette::BrightText, Qt::red); // Bright red text for alerts - themePalette.setColor(QPalette::Link, QColor(42, 130, 218)); // Light blue links - themePalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); // Light blue highlight - themePalette.setColor(QPalette::HighlightedText, Qt::black); // Black highlighted text - - qApp->setPalette(themePalette); - break; - case Theme::Violet: - mw_searchbar->setStyleSheet( - "QLineEdit {" - "background-color: #501e5a; color: #ffffff; border: 1px solid #ffffff; " - "border-radius: 4px; padding: 5px; }" - "QLineEdit:focus {" - "border: 1px solid #2A82DA; }"); - themePalette.setColor(QPalette::Window, QColor(100, 50, 120)); // Violet background - themePalette.setColor(QPalette::WindowText, Qt::white); // White text - themePalette.setColor(QPalette::Base, QColor(80, 30, 90)); // Darker violet base - themePalette.setColor(QPalette::AlternateBase, - QColor(100, 50, 120)); // Violet alternate base - themePalette.setColor(QPalette::ToolTipBase, - QColor(80, 30, 90)); // White tooltip background - themePalette.setColor(QPalette::ToolTipText, Qt::white); // White tooltip text - themePalette.setColor(QPalette::Text, Qt::white); // White text - themePalette.setColor(QPalette::Button, QColor(100, 50, 120)); // Violet button - themePalette.setColor(QPalette::ButtonText, Qt::white); // White button text - themePalette.setColor(QPalette::BrightText, Qt::red); // Bright red text for alerts - themePalette.setColor(QPalette::Link, QColor(42, 130, 218)); // Light blue links - themePalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); // Light blue highlight - themePalette.setColor(QPalette::HighlightedText, Qt::black); // Black highlighted text - - qApp->setPalette(themePalette); - break; - case Theme::Gruvbox: - mw_searchbar->setStyleSheet( - "QLineEdit {" - "background-color: #1d2021; color: #f9f5d7; border: 1px solid #f9f5d7; " - "border-radius: 4px; padding: 5px; }" - "QLineEdit:focus {" - "border: 1px solid #83A598; }"); - themePalette.setColor(QPalette::Window, QColor(29, 32, 33)); - themePalette.setColor(QPalette::WindowText, QColor(249, 245, 215)); - themePalette.setColor(QPalette::Base, QColor(29, 32, 33)); - themePalette.setColor(QPalette::AlternateBase, QColor(50, 48, 47)); - themePalette.setColor(QPalette::ToolTipBase, QColor(29, 32, 33)); - themePalette.setColor(QPalette::ToolTipText, QColor(249, 245, 215)); - themePalette.setColor(QPalette::Text, QColor(249, 245, 215)); - themePalette.setColor(QPalette::Button, QColor(40, 40, 40)); - themePalette.setColor(QPalette::ButtonText, QColor(249, 245, 215)); - themePalette.setColor(QPalette::BrightText, QColor(251, 73, 52)); - themePalette.setColor(QPalette::Link, QColor(131, 165, 152)); - themePalette.setColor(QPalette::Highlight, QColor(131, 165, 152)); - themePalette.setColor(QPalette::HighlightedText, Qt::black); - qApp->setPalette(themePalette); - break; - case Theme::TokyoNight: - mw_searchbar->setStyleSheet( - "QLineEdit {" - "background-color: #1a1b26; color: #9d7cd8; border: 1px solid #9d7cd8; " - "border-radius: 4px; padding: 5px; }" - "QLineEdit:focus {" - "border: 1px solid #7aa2f7; }"); - themePalette.setColor(QPalette::Window, QColor(31, 35, 53)); - themePalette.setColor(QPalette::WindowText, QColor(192, 202, 245)); - themePalette.setColor(QPalette::Base, QColor(25, 28, 39)); - themePalette.setColor(QPalette::AlternateBase, QColor(36, 40, 59)); - themePalette.setColor(QPalette::ToolTipBase, QColor(25, 28, 39)); - themePalette.setColor(QPalette::ToolTipText, QColor(192, 202, 245)); - themePalette.setColor(QPalette::Text, QColor(192, 202, 245)); - themePalette.setColor(QPalette::Button, QColor(30, 30, 41)); - themePalette.setColor(QPalette::ButtonText, QColor(192, 202, 245)); - themePalette.setColor(QPalette::BrightText, QColor(197, 59, 83)); - themePalette.setColor(QPalette::Link, QColor(79, 214, 190)); - themePalette.setColor(QPalette::Highlight, QColor(79, 214, 190)); - themePalette.setColor(QPalette::HighlightedText, Qt::black); - qApp->setPalette(themePalette); - break; - case Theme::Oled: - mw_searchbar->setStyleSheet("QLineEdit:focus {" - "border: 1px solid #2A82DA; }"); - themePalette.setColor(QPalette::Window, Qt::black); - themePalette.setColor(QPalette::WindowText, Qt::white); - themePalette.setColor(QPalette::Base, Qt::black); - themePalette.setColor(QPalette::AlternateBase, Qt::black); - themePalette.setColor(QPalette::ToolTipBase, Qt::black); - themePalette.setColor(QPalette::ToolTipText, Qt::white); - themePalette.setColor(QPalette::Text, Qt::white); - themePalette.setColor(QPalette::Button, QColor(5, 5, 5)); - themePalette.setColor(QPalette::ButtonText, Qt::white); - themePalette.setColor(QPalette::BrightText, Qt::red); - themePalette.setColor(QPalette::Link, QColor(42, 130, 218)); - themePalette.setColor(QPalette::Highlight, QColor(42, 130, 218)); - themePalette.setColor(QPalette::HighlightedText, Qt::black); - qApp->setPalette(themePalette); - qApp->setStyleSheet("QLineEdit {" - "background-color: #000000; color: #ffffff; border: 1px solid #a0a0a0; " - "border-radius: 4px; padding: 5px; }" - - "QCheckBox::indicator:unchecked {" - "border: 1px solid #808080; border-radius: 4px; }"); - break; - } -} \ No newline at end of file diff --git a/src/qt_gui/main_window_themes.h b/src/qt_gui/main_window_themes.h deleted file mode 100644 index babde0f27..000000000 --- a/src/qt_gui/main_window_themes.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 -#include -#include - -enum class Theme : int { Dark, Light, Green, Blue, Violet, Gruvbox, TokyoNight, Oled }; - -class WindowThemes : public QObject { - Q_OBJECT -public Q_SLOTS: - void SetWindowTheme(Theme theme, QLineEdit* mw_searchbar); -}; diff --git a/src/qt_gui/main_window_ui.h b/src/qt_gui/main_window_ui.h deleted file mode 100644 index 5339a021d..000000000 --- a/src/qt_gui/main_window_ui.h +++ /dev/null @@ -1,427 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include - -class Ui_MainWindow { -public: - QAction* bootGameAct; - QAction* addElfFolderAct; - QAction* shadFolderAct; - QAction* exitAct; - QAction* showGameListAct; - QAction* refreshGameListAct; - QAction* setIconSizeTinyAct; - QAction* setIconSizeSmallAct; - QAction* setIconSizeMediumAct; - QAction* setIconSizeLargeAct; - QAction* toggleLabelsAct; - QAction* setlistModeListAct; - QAction* setlistModeGridAct; - QAction* setlistElfAct; - QAction* gameInstallPathAct; - QAction* downloadCheatsPatchesAct; - QAction* dumpGameListAct; - QAction* trophyViewerAct; -#ifdef ENABLE_UPDATER - QAction* updaterAct; -#endif - QAction* aboutAct; - QAction* configureAct; - QAction* configureHotkeys; - QAction* setThemeDark; - QAction* setThemeLight; - QAction* setThemeGreen; - QAction* setThemeBlue; - QAction* setThemeViolet; - QAction* setThemeGruvbox; - QAction* setThemeTokyoNight; - QAction* setThemeOled; - QWidget* centralWidget; - QLineEdit* mw_searchbar; - QPushButton* playButton; - QPushButton* pauseButton; - QPushButton* stopButton; - QPushButton* refreshButton; - QPushButton* settingsButton; - QPushButton* controllerButton; - QPushButton* keyboardButton; - QPushButton* fullscreenButton; - QPushButton* restartButton; - - QWidget* sizeSliderContainer; - QHBoxLayout* sizeSliderContainer_layout; - QSlider* sizeSlider; - QMenuBar* menuBar; - QMenu* menuFile; - QMenu* menuRecent; - QMenu* menuView; - QMenu* menuGame_List_Icons; - QMenu* menuGame_List_Mode; - QMenu* menuSettings; - QMenu* menuUtils; - QMenu* menuThemes; - QMenu* menuHelp; - QToolBar* toolBar; - - void setupUi(QMainWindow* MainWindow) { - if (MainWindow->objectName().isEmpty()) - MainWindow->setObjectName("MainWindow"); - // MainWindow->resize(1280, 720); - QIcon icon; - icon.addFile(QString::fromUtf8(":images/shadps4.ico"), QSize(), QIcon::Normal, QIcon::Off); - MainWindow->setWindowIcon(icon); - QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - sizePolicy.setHorizontalStretch(0); - sizePolicy.setVerticalStretch(0); - sizePolicy.setHeightForWidth(MainWindow->sizePolicy().hasHeightForWidth()); - MainWindow->setSizePolicy(sizePolicy); - MainWindow->setMinimumSize(QSize(4, 0)); - MainWindow->setAutoFillBackground(false); - MainWindow->setAnimated(true); - MainWindow->setDockNestingEnabled(true); - MainWindow->setDockOptions(QMainWindow::AllowNestedDocks | QMainWindow::AllowTabbedDocks | - QMainWindow::AnimatedDocks | QMainWindow::GroupedDragging); - bootGameAct = new QAction(MainWindow); - bootGameAct->setObjectName("bootGameAct"); - bootGameAct->setIcon(QIcon(":images/play_icon.png")); - addElfFolderAct = new QAction(MainWindow); - addElfFolderAct->setObjectName("addElfFolderAct"); - addElfFolderAct->setIcon(QIcon(":images/folder_icon.png")); - shadFolderAct = new QAction(MainWindow); - shadFolderAct->setObjectName("shadFolderAct"); - shadFolderAct->setIcon(QIcon(":images/folder_icon.png")); - exitAct = new QAction(MainWindow); - exitAct->setObjectName("exitAct"); - exitAct->setIcon(QIcon(":images/exit_icon.png")); - showGameListAct = new QAction(MainWindow); - showGameListAct->setObjectName("showGameListAct"); - showGameListAct->setCheckable(true); - refreshGameListAct = new QAction(MainWindow); - refreshGameListAct->setObjectName("refreshGameListAct"); - refreshGameListAct->setIcon(QIcon(":images/refreshlist_icon.png")); - - toggleLabelsAct = new QAction(MainWindow); - toggleLabelsAct->setObjectName("toggleLabelsAct"); - toggleLabelsAct->setCheckable(true); - - setIconSizeTinyAct = new QAction(MainWindow); - setIconSizeTinyAct->setObjectName("setIconSizeTinyAct"); - setIconSizeTinyAct->setCheckable(true); - setIconSizeSmallAct = new QAction(MainWindow); - setIconSizeSmallAct->setObjectName("setIconSizeSmallAct"); - setIconSizeSmallAct->setCheckable(true); - setIconSizeMediumAct = new QAction(MainWindow); - setIconSizeMediumAct->setObjectName("setIconSizeMediumAct"); - setIconSizeMediumAct->setCheckable(true); - setIconSizeLargeAct = new QAction(MainWindow); - setIconSizeLargeAct->setObjectName("setIconSizeLargeAct"); - setIconSizeLargeAct->setCheckable(true); - setlistModeListAct = new QAction(MainWindow); - setlistModeListAct->setObjectName("setlistModeListAct"); - setlistModeListAct->setIcon(QIcon(":images/list_icon.png")); - setlistModeListAct->setCheckable(true); - setlistModeGridAct = new QAction(MainWindow); - setlistModeGridAct->setObjectName("setlistModeGridAct"); - setlistModeGridAct->setIcon(QIcon(":images/grid_icon.png")); - setlistModeGridAct->setCheckable(true); - setlistElfAct = new QAction(MainWindow); - setlistElfAct->setObjectName("setlistElfAct"); - setlistElfAct->setCheckable(true); - gameInstallPathAct = new QAction(MainWindow); - gameInstallPathAct->setObjectName("gameInstallPathAct"); - gameInstallPathAct->setIcon(QIcon(":images/folder_icon.png")); - downloadCheatsPatchesAct = new QAction(MainWindow); - downloadCheatsPatchesAct->setObjectName("downloadCheatsPatchesAct"); - downloadCheatsPatchesAct->setIcon(QIcon(":images/update_icon.png")); - dumpGameListAct = new QAction(MainWindow); - dumpGameListAct->setObjectName("dumpGameList"); - dumpGameListAct->setIcon(QIcon(":images/dump_icon.png")); - trophyViewerAct = new QAction(MainWindow); - trophyViewerAct->setObjectName("trophyViewer"); - trophyViewerAct->setIcon(QIcon(":images/trophy_icon.png")); - -#ifdef ENABLE_UPDATER - updaterAct = new QAction(MainWindow); - updaterAct->setObjectName("updaterAct"); - updaterAct->setIcon(QIcon(":images/update_icon.png")); -#endif - aboutAct = new QAction(MainWindow); - aboutAct->setObjectName("aboutAct"); - aboutAct->setIcon(QIcon(":images/about_icon.png")); - configureAct = new QAction(MainWindow); - configureAct->setObjectName("configureAct"); - configureAct->setIcon(QIcon(":images/settings_icon.png")); - configureHotkeys = new QAction(MainWindow); - configureHotkeys->setObjectName("configureHotkeys"); - configureHotkeys->setIcon(QIcon(":images/hotkey.png")); - setThemeDark = new QAction(MainWindow); - setThemeDark->setObjectName("setThemeDark"); - setThemeDark->setCheckable(true); - setThemeDark->setChecked(true); - setThemeLight = new QAction(MainWindow); - setThemeLight->setObjectName("setThemeLight"); - setThemeLight->setCheckable(true); - setThemeGreen = new QAction(MainWindow); - setThemeGreen->setObjectName("setThemeGreen"); - setThemeGreen->setCheckable(true); - setThemeBlue = new QAction(MainWindow); - setThemeBlue->setObjectName("setThemeBlue"); - setThemeBlue->setCheckable(true); - setThemeViolet = new QAction(MainWindow); - setThemeViolet->setObjectName("setThemeViolet"); - setThemeViolet->setCheckable(true); - setThemeGruvbox = new QAction(MainWindow); - setThemeGruvbox->setObjectName("setThemeGruvbox"); - setThemeGruvbox->setCheckable(true); - setThemeTokyoNight = new QAction(MainWindow); - setThemeTokyoNight->setObjectName("setThemeTokyoNight"); - setThemeTokyoNight->setCheckable(true); - setThemeOled = new QAction(MainWindow); - setThemeOled->setObjectName("setThemeOled"); - setThemeOled->setCheckable(true); - centralWidget = new QWidget(MainWindow); - centralWidget->setObjectName("centralWidget"); - sizePolicy.setHeightForWidth(centralWidget->sizePolicy().hasHeightForWidth()); - centralWidget->setSizePolicy(sizePolicy); - mw_searchbar = new QLineEdit(centralWidget); - mw_searchbar->setObjectName("mw_searchbar"); - mw_searchbar->setGeometry(QRect(250, 10, 130, 31)); - mw_searchbar->setMaximumWidth(250); - QFont font; - font.setPointSize(10); - font.setBold(false); - mw_searchbar->setFont(font); - mw_searchbar->setFocusPolicy(Qt::ClickFocus); - mw_searchbar->setFrame(false); - mw_searchbar->setClearButtonEnabled(false); - - playButton = new QPushButton(centralWidget); - playButton->setFlat(true); - playButton->setIcon(QIcon(":images/play_icon.png")); - playButton->setIconSize(QSize(40, 40)); - pauseButton = new QPushButton(centralWidget); - pauseButton->setFlat(true); - pauseButton->setIcon(QIcon(":images/pause_icon.png")); - pauseButton->setIconSize(QSize(40, 40)); - stopButton = new QPushButton(centralWidget); - stopButton->setFlat(true); - stopButton->setIcon(QIcon(":images/stop_icon.png")); - stopButton->setIconSize(QSize(40, 40)); - refreshButton = new QPushButton(centralWidget); - refreshButton->setFlat(true); - refreshButton->setIcon(QIcon(":images/refreshlist_icon.png")); - refreshButton->setIconSize(QSize(40, 40)); - fullscreenButton = new QPushButton(centralWidget); - fullscreenButton->setFlat(true); - fullscreenButton->setIcon(QIcon(":images/fullscreen_icon.png")); - fullscreenButton->setIconSize(QSize(38, 38)); - settingsButton = new QPushButton(centralWidget); - settingsButton->setFlat(true); - settingsButton->setIcon(QIcon(":images/settings_icon.png")); - settingsButton->setIconSize(QSize(40, 40)); - controllerButton = new QPushButton(centralWidget); - controllerButton->setFlat(true); - controllerButton->setIcon(QIcon(":images/controller_icon.png")); - controllerButton->setIconSize(QSize(55, 48)); - keyboardButton = new QPushButton(centralWidget); - keyboardButton->setFlat(true); - keyboardButton->setIcon(QIcon(":images/keyboard_icon.png")); - keyboardButton->setIconSize(QSize(50, 50)); - restartButton = new QPushButton(centralWidget); - restartButton->setFlat(true); - restartButton->setIcon(QIcon(":images/restart_game_icon.png")); - restartButton->setIconSize(QSize(40, 40)); - - sizeSliderContainer = new QWidget(centralWidget); - sizeSliderContainer->setObjectName("sizeSliderContainer"); - sizeSliderContainer->setGeometry(QRect(280, 10, 181, 31)); - QSizePolicy sizePolicy1(QSizePolicy::Fixed, QSizePolicy::Expanding); - sizePolicy1.setHorizontalStretch(0); - sizePolicy1.setVerticalStretch(0); - sizePolicy1.setHeightForWidth(sizeSliderContainer->sizePolicy().hasHeightForWidth()); - sizeSliderContainer->setSizePolicy(sizePolicy1); - sizeSliderContainer_layout = new QHBoxLayout(sizeSliderContainer); - sizeSliderContainer_layout->setSpacing(0); - sizeSliderContainer_layout->setContentsMargins(11, 11, 11, 11); - sizeSliderContainer_layout->setObjectName("sizeSliderContainer_layout"); - sizeSliderContainer_layout->setContentsMargins(14, 0, 14, 0); - sizeSlider = new QSlider(sizeSliderContainer); - sizeSlider->setObjectName("sizeSlider"); - QSizePolicy sizePolicy2(QSizePolicy::Expanding, QSizePolicy::Preferred); - sizePolicy2.setHorizontalStretch(0); - sizePolicy2.setVerticalStretch(0); - sizePolicy2.setHeightForWidth(sizeSlider->sizePolicy().hasHeightForWidth()); - sizeSlider->setSizePolicy(sizePolicy2); - sizeSlider->setFocusPolicy(Qt::ClickFocus); - sizeSlider->setAutoFillBackground(false); - sizeSlider->setOrientation(Qt::Horizontal); - sizeSlider->setTickPosition(QSlider::NoTicks); - sizeSlider->setMinimum(0); - sizeSlider->setMaximum(220); - - sizeSliderContainer_layout->addWidget(sizeSlider); - - MainWindow->setCentralWidget(centralWidget); - menuBar = new QMenuBar(MainWindow); - menuBar->setObjectName("menuBar"); - menuBar->setGeometry(QRect(0, 0, 1058, 22)); - menuBar->setContextMenuPolicy(Qt::PreventContextMenu); - menuFile = new QMenu(menuBar); - menuFile->setObjectName("menuFile"); - menuRecent = new QMenu(menuFile); - menuRecent->setObjectName("menuRecent"); - menuView = new QMenu(menuBar); - menuView->setObjectName("menuView"); - menuGame_List_Icons = new QMenu(menuView); - menuGame_List_Icons->setObjectName("menuGame_List_Icons"); - menuGame_List_Icons->setIcon(QIcon(":images/iconsize_icon.png")); - menuGame_List_Mode = new QMenu(menuView); - menuGame_List_Mode->setObjectName("menuGame_List_Mode"); - menuGame_List_Mode->setIcon(QIcon(":images/list_mode_icon.png")); - menuSettings = new QMenu(menuBar); - menuSettings->setObjectName("menuSettings"); - menuUtils = new QMenu(menuSettings); - menuUtils->setObjectName("menuUtils"); - menuUtils->setIcon(QIcon(":images/utils_icon.png")); - menuThemes = new QMenu(menuView); - menuThemes->setObjectName("menuThemes"); - menuThemes->setIcon(QIcon(":images/themes_icon.png")); - menuHelp = new QMenu(menuBar); - menuHelp->setObjectName("menuHelp"); - MainWindow->setMenuBar(menuBar); - toolBar = new QToolBar(MainWindow); - toolBar->setObjectName("toolBar"); - MainWindow->addToolBar(Qt::TopToolBarArea, toolBar); - - menuBar->addAction(menuFile->menuAction()); - menuBar->addAction(menuView->menuAction()); - menuBar->addAction(menuSettings->menuAction()); - menuBar->addAction(menuHelp->menuAction()); - menuFile->addAction(bootGameAct); - menuFile->addSeparator(); - menuFile->addAction(addElfFolderAct); - menuFile->addAction(shadFolderAct); - menuFile->addSeparator(); - menuFile->addAction(menuRecent->menuAction()); - menuFile->addSeparator(); - menuFile->addAction(exitAct); - menuView->addAction(showGameListAct); - menuView->addSeparator(); - menuView->addAction(refreshGameListAct); - menuView->addAction(menuGame_List_Mode->menuAction()); - menuView->addAction(menuGame_List_Icons->menuAction()); - menuView->addAction(toggleLabelsAct); - menuView->addAction(menuThemes->menuAction()); - menuThemes->addAction(setThemeDark); - menuThemes->addAction(setThemeLight); - menuThemes->addAction(setThemeGreen); - menuThemes->addAction(setThemeBlue); - menuThemes->addAction(setThemeViolet); - menuThemes->addAction(setThemeGruvbox); - menuThemes->addAction(setThemeTokyoNight); - menuThemes->addAction(setThemeOled); - menuGame_List_Icons->addAction(setIconSizeTinyAct); - menuGame_List_Icons->addAction(setIconSizeSmallAct); - menuGame_List_Icons->addAction(setIconSizeMediumAct); - menuGame_List_Icons->addAction(setIconSizeLargeAct); - menuGame_List_Mode->addAction(setlistModeListAct); - menuGame_List_Mode->addAction(setlistModeGridAct); - menuGame_List_Mode->addAction(setlistElfAct); - menuSettings->addAction(configureAct); - menuSettings->addAction(gameInstallPathAct); - menuSettings->addAction(configureHotkeys); - menuSettings->addAction(menuUtils->menuAction()); - menuUtils->addAction(downloadCheatsPatchesAct); - menuUtils->addAction(dumpGameListAct); - menuUtils->addAction(trophyViewerAct); -#ifdef ENABLE_UPDATER - menuHelp->addAction(updaterAct); -#endif - menuHelp->addAction(aboutAct); - - retranslateUi(MainWindow); - - QMetaObject::connectSlotsByName(MainWindow); - } // setupUi - - void retranslateUi(QMainWindow* MainWindow) { - MainWindow->setWindowTitle(QCoreApplication::translate("MainWindow", "shadPS4", nullptr)); - addElfFolderAct->setText( - QCoreApplication::translate("MainWindow", "Open/Add Elf Folder", nullptr)); - bootGameAct->setText(QCoreApplication::translate("MainWindow", "Boot Game", nullptr)); -#ifdef ENABLE_UPDATER - updaterAct->setText( - QCoreApplication::translate("MainWindow", "Check for Updates", nullptr)); -#endif - aboutAct->setText(QCoreApplication::translate("MainWindow", "About shadPS4", nullptr)); - configureAct->setText(QCoreApplication::translate("MainWindow", "Configure...", nullptr)); - configureHotkeys->setText( - QCoreApplication::translate("MainWindow", "Customize Hotkeys", nullptr)); -#if QT_CONFIG(tooltip) -#endif // QT_CONFIG(tooltip) - menuRecent->setTitle(QCoreApplication::translate("MainWindow", "Recent Games", nullptr)); - shadFolderAct->setText( - QCoreApplication::translate("MainWindow", "Open shadPS4 Folder", nullptr)); - exitAct->setText(QCoreApplication::translate("MainWindow", "Exit", nullptr)); -#if QT_CONFIG(tooltip) - exitAct->setToolTip(QCoreApplication::translate("MainWindow", "Exit shadPS4", nullptr)); -#endif // QT_CONFIG(tooltip) -#if QT_CONFIG(statustip) - exitAct->setStatusTip( - QCoreApplication::translate("MainWindow", "Exit the application.", nullptr)); -#endif // QT_CONFIG(statustip) - showGameListAct->setText( - QCoreApplication::translate("MainWindow", "Show Game List", nullptr)); - refreshGameListAct->setText( - QCoreApplication::translate("MainWindow", "Game List Refresh", nullptr)); - setIconSizeTinyAct->setText(QCoreApplication::translate("MainWindow", "Tiny", nullptr)); - setIconSizeSmallAct->setText(QCoreApplication::translate("MainWindow", "Small", nullptr)); - setIconSizeMediumAct->setText(QCoreApplication::translate("MainWindow", "Medium", nullptr)); - setIconSizeLargeAct->setText(QCoreApplication::translate("MainWindow", "Large", nullptr)); - setlistModeListAct->setText( - QCoreApplication::translate("MainWindow", "List View", nullptr)); - setlistModeGridAct->setText( - QCoreApplication::translate("MainWindow", "Grid View", nullptr)); - setlistElfAct->setText(QCoreApplication::translate("MainWindow", "Elf Viewer", nullptr)); - gameInstallPathAct->setText( - QCoreApplication::translate("MainWindow", "Game Install Directory", nullptr)); - downloadCheatsPatchesAct->setText( - QCoreApplication::translate("MainWindow", "Download Cheats/Patches", nullptr)); - dumpGameListAct->setText( - QCoreApplication::translate("MainWindow", "Dump Game List", nullptr)); - trophyViewerAct->setText( - QCoreApplication::translate("MainWindow", "Trophy Viewer", nullptr)); - mw_searchbar->setPlaceholderText( - QCoreApplication::translate("MainWindow", "Search...", nullptr)); - menuFile->setTitle(QCoreApplication::translate("MainWindow", "File", nullptr)); - menuView->setTitle(QCoreApplication::translate("MainWindow", "View", nullptr)); - menuGame_List_Icons->setTitle( - QCoreApplication::translate("MainWindow", "Game List Icons", nullptr)); - menuGame_List_Mode->setTitle( - QCoreApplication::translate("MainWindow", "Game List Mode", nullptr)); - menuSettings->setTitle(QCoreApplication::translate("MainWindow", "Settings", nullptr)); - menuUtils->setTitle(QCoreApplication::translate("MainWindow", "Utils", nullptr)); - menuThemes->setTitle(QCoreApplication::translate("MainWindow", "Themes", nullptr)); - menuHelp->setTitle(QCoreApplication::translate("MainWindow", "Help", nullptr)); - setThemeDark->setText(QCoreApplication::translate("MainWindow", "Dark", nullptr)); - setThemeLight->setText(QCoreApplication::translate("MainWindow", "Light", nullptr)); - setThemeGreen->setText(QCoreApplication::translate("MainWindow", "Green", nullptr)); - setThemeBlue->setText(QCoreApplication::translate("MainWindow", "Blue", nullptr)); - setThemeViolet->setText(QCoreApplication::translate("MainWindow", "Violet", nullptr)); - setThemeGruvbox->setText("Gruvbox"); - setThemeTokyoNight->setText("Tokyo Night"); - setThemeOled->setText("OLED"); - toolBar->setWindowTitle(QCoreApplication::translate("MainWindow", "toolBar", nullptr)); - toggleLabelsAct->setText( - QCoreApplication::translate("MainWindow", "Show Labels Under Icons")); - } // retranslateUi -}; - -namespace Ui { -class MainWindow : public Ui_MainWindow {}; -} // namespace Ui diff --git a/src/qt_gui/sdl_event_wrapper.cpp b/src/qt_gui/sdl_event_wrapper.cpp deleted file mode 100644 index e160dec4e..000000000 --- a/src/qt_gui/sdl_event_wrapper.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "sdl_event_wrapper.h" - -using namespace SdlEventWrapper; - -Wrapper* Wrapper::WrapperInstance = nullptr; -bool Wrapper::wrapperActive = false; - -Wrapper::Wrapper(QObject* parent) : QObject(parent) {} - -Wrapper* Wrapper::GetInstance() { - if (WrapperInstance == nullptr) { - WrapperInstance = new Wrapper(); - } - return WrapperInstance; -} - -bool Wrapper::ProcessEvent(SDL_Event* event) { - switch (event->type) { - case SDL_EVENT_WINDOW_RESTORED: - return false; - case SDL_EVENT_WINDOW_EXPOSED: - return false; - case SDL_EVENT_GAMEPAD_ADDED: - emit SDLEvent(SDL_EVENT_GAMEPAD_ADDED, 0, 0); - return false; - case SDL_EVENT_GAMEPAD_REMOVED: - emit SDLEvent(SDL_EVENT_GAMEPAD_REMOVED, 0, 0); - return false; - case SDL_EVENT_QUIT: - emit SDLEvent(SDL_EVENT_QUIT, 0, 0); - return true; - case SDL_EVENT_GAMEPAD_BUTTON_DOWN: - emit SDLEvent(SDL_EVENT_GAMEPAD_BUTTON_DOWN, event->gbutton.button, 0); - return true; - case SDL_EVENT_GAMEPAD_BUTTON_UP: - emit SDLEvent(SDL_EVENT_GAMEPAD_BUTTON_UP, event->gbutton.button, 0); - return true; - case SDL_EVENT_GAMEPAD_AXIS_MOTION: - emit SDLEvent(SDL_EVENT_GAMEPAD_AXIS_MOTION, event->gaxis.axis, event->gaxis.value); - return true; - case SDL_EVENT_AUDIO_DEVICE_ADDED: - if (event->adevice.recording == 0) - emit audioDeviceChanged(true); - return true; - case SDL_EVENT_AUDIO_DEVICE_REMOVED: - if (event->adevice.recording == 0) - emit audioDeviceChanged(false); - return true; - // block all other SDL events while wrapper is active - default: - return true; - } -} -Wrapper::~Wrapper() {} diff --git a/src/qt_gui/sdl_event_wrapper.h b/src/qt_gui/sdl_event_wrapper.h deleted file mode 100644 index 4cb918c79..000000000 --- a/src/qt_gui/sdl_event_wrapper.h +++ /dev/null @@ -1,26 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once -#include -#include - -namespace SdlEventWrapper { - -class Wrapper : public QObject { - Q_OBJECT - -public: - explicit Wrapper(QObject* parent = nullptr); - ~Wrapper(); - bool ProcessEvent(SDL_Event* event); - static Wrapper* GetInstance(); - static bool wrapperActive; - static Wrapper* WrapperInstance; - -signals: - void SDLEvent(int Type, int Input, int Value); - void audioDeviceChanged(bool isAdd); -}; - -} // namespace SdlEventWrapper diff --git a/src/qt_gui/settings.cpp b/src/qt_gui/settings.cpp deleted file mode 100644 index 4a9c1d375..000000000 --- a/src/qt_gui/settings.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include "settings.h" - -settings::settings(QObject* parent) : QObject(parent), m_settings_dir(ComputeSettingsDir()) {} - -settings::~settings() { - sync(); -} - -void settings::sync() { - if (m_settings) { - m_settings->sync(); - } -} - -QString settings::GetSettingsDir() const { - return m_settings_dir.absolutePath(); -} - -QString settings::ComputeSettingsDir() { - const auto config_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir); - return QString::fromStdString(config_dir.string() + "/"); -} - -void settings::RemoveValue(const QString& key, const QString& name, bool sync) const { - if (m_settings) { - m_settings->beginGroup(key); - m_settings->remove(name); - m_settings->endGroup(); - - if (sync) { - m_settings->sync(); - } - } -} - -void settings::RemoveValue(const gui_value& entry, bool sync) const { - RemoveValue(entry.key, entry.name, sync); -} - -QVariant settings::GetValue(const QString& key, const QString& name, const QVariant& def) const { - return m_settings ? m_settings->value(key + "/" + name, def) : def; -} - -QVariant settings::GetValue(const gui_value& entry) const { - return GetValue(entry.key, entry.name, entry.def); -} - -void settings::SetValue(const gui_value& entry, const QVariant& value, bool sync) const { - SetValue(entry.key, entry.name, value, sync); -} - -void settings::SetValue(const QString& key, const QVariant& value, bool sync) const { - if (m_settings) { - m_settings->setValue(key, value); - - if (sync) { - m_settings->sync(); - } - } -} - -void settings::SetValue(const QString& key, const QString& name, const QVariant& value, - bool sync) const { - if (m_settings) { - m_settings->beginGroup(key); - m_settings->setValue(name, value); - m_settings->endGroup(); - - if (sync) { - m_settings->sync(); - } - } -} -QVariant settings::List2Var(const QList& list) { - QByteArray ba; - QDataStream stream(&ba, QIODevice::WriteOnly); - stream << list; - return QVariant(ba); -} - -QList settings::Var2List(const QVariant& var) { - QList list; - QByteArray ba = var.toByteArray(); - QDataStream stream(&ba, QIODevice::ReadOnly); - stream >> list; - return list; -} \ No newline at end of file diff --git a/src/qt_gui/settings.h b/src/qt_gui/settings.h deleted file mode 100644 index 837804d00..000000000 --- a/src/qt_gui/settings.h +++ /dev/null @@ -1,57 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include -#include - -struct gui_value { - QString key; - QString name; - QVariant def; - - gui_value() {} - - gui_value(const QString& k, const QString& n, const QVariant& d) : key(k), name(n), def(d) {} - - bool operator==(const gui_value& rhs) const noexcept { - return key == rhs.key && name == rhs.name && def == rhs.def; - } -}; - -class settings : public QObject { - Q_OBJECT - -public: - explicit settings(QObject* parent = nullptr); - ~settings(); - - void sync(); - - QString GetSettingsDir() const; - - QVariant GetValue(const QString& key, const QString& name, const QVariant& def) const; - QVariant GetValue(const gui_value& entry) const; - static QVariant List2Var(const QList& list); - static QList Var2List(const QVariant& var); - -public Q_SLOTS: - /** Remove entry */ - void RemoveValue(const QString& key, const QString& name, bool sync = true) const; - void RemoveValue(const gui_value& entry, bool sync = true) const; - - /** Write value to entry */ - void SetValue(const gui_value& entry, const QVariant& value, bool sync = true) const; - void SetValue(const QString& key, const QVariant& value, bool sync = true) const; - void SetValue(const QString& key, const QString& name, const QVariant& value, - bool sync = true) const; - -protected: - static QString ComputeSettingsDir(); - - std::unique_ptr m_settings; - QDir m_settings_dir; -}; diff --git a/src/qt_gui/settings_dialog.cpp b/src/qt_gui/settings_dialog.cpp deleted file mode 100644 index 40ed5017a..000000000 --- a/src/qt_gui/settings_dialog.cpp +++ /dev/null @@ -1,1265 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "common/config.h" -#include "common/logging/log.h" -#include "common/scm_rev.h" -#include "core/libraries/audio/audioout.h" -#include "qt_gui/compatibility_info.h" -#ifdef ENABLE_DISCORD_RPC -#include "common/discord_rpc_handler.h" -#include "common/singleton.h" -#endif -#ifdef ENABLE_UPDATER -#include "check_update.h" -#endif -#include -#include -#include "background_music_player.h" -#include "common/logging/backend.h" -#include "common/logging/filter.h" -#include "log_presets_dialog.h" -#include "sdl_event_wrapper.h" -#include "settings_dialog.h" -#include "ui_settings_dialog.h" -#include "video_core/renderer_vulkan/vk_instance.h" -#include "video_core/renderer_vulkan/vk_presenter.h" - -extern std::unique_ptr presenter; - -QStringList languageNames = {"Arabic", - "Czech", - "Danish", - "Dutch", - "English (United Kingdom)", - "English (United States)", - "Finnish", - "French (Canada)", - "French (France)", - "German", - "Greek", - "Hungarian", - "Indonesian", - "Italian", - "Japanese", - "Korean", - "Norwegian (Bokmaal)", - "Polish", - "Portuguese (Brazil)", - "Portuguese (Portugal)", - "Romanian", - "Russian", - "Simplified Chinese", - "Spanish (Latin America)", - "Spanish (Spain)", - "Swedish", - "Thai", - "Traditional Chinese", - "Turkish", - "Ukrainian", - "Vietnamese"}; - -const QVector languageIndexes = {21, 23, 14, 6, 18, 1, 12, 22, 2, 4, 25, 24, 29, 5, 0, 9, - 15, 16, 17, 7, 26, 8, 11, 20, 3, 13, 27, 10, 19, 30, 28}; -QMap channelMap; -QMap logTypeMap; -QMap screenModeMap; -QMap presentModeMap; -QMap chooseHomeTabMap; -QMap micMap; - -int backgroundImageOpacitySlider_backup; -int bgm_volume_backup; - -static std::vector m_physical_devices; - -SettingsDialog::SettingsDialog(std::shared_ptr gui_settings, - std::shared_ptr m_compat_info, - QWidget* parent, bool is_running, bool is_specific, - std::string gsc_serial) - : QDialog(parent), ui(new Ui::SettingsDialog), m_gui_settings(std::move(gui_settings)), - is_game_running(is_running), is_game_specific(is_specific), gs_serial(gsc_serial) { - - ui->setupUi(this); - ui->tabWidgetSettings->setUsesScrollButtons(false); - - initialHeight = this->height(); - - // Add a small clear "x" button inside the Log Filter input - ui->logFilterLineEdit->setClearButtonEnabled(true); - - if (is_game_specific) { - // Paths tab - ui->tabWidgetSettings->setTabVisible(5, false); - ui->chooseHomeTabComboBox->removeItem(5); - - // Frontend tab - ui->tabWidgetSettings->setTabVisible(1, false); - ui->chooseHomeTabComboBox->removeItem(1); - - } else { - // Experimental tab - ui->tabWidgetSettings->setTabVisible(8, false); - ui->chooseHomeTabComboBox->removeItem(8); - } - - std::filesystem::path config_file = - is_game_specific - ? Common::FS::GetUserPath(Common::FS::PathType::CustomConfigs) / (gs_serial + ".toml") - : Common::FS::GetUserPath(Common::FS::PathType::UserDir) / "config.toml"; - - ui->buttonBox->button(QDialogButtonBox::StandardButton::Close)->setFocus(); - - channelMap = {{tr("Release"), "Release"}, {tr("Nightly"), "Nightly"}}; - logTypeMap = {{tr("async"), "async"}, {tr("sync"), "sync"}}; - screenModeMap = {{tr("Fullscreen (Borderless)"), "Fullscreen (Borderless)"}, - {tr("Windowed"), "Windowed"}, - {tr("Fullscreen"), "Fullscreen"}}; - presentModeMap = {{tr("Mailbox (Vsync)"), "Mailbox"}, - {tr("Fifo (Vsync)"), "Fifo"}, - {tr("Immediate (No Vsync)"), "Immediate"}}; - chooseHomeTabMap = {{tr("General"), "General"}, - {tr("Frontend"), "Frontend"}, - {tr("Graphics"), "Graphics"}, - {tr("User"), "User"}, - {tr("Input"), "Input"}, - {tr("Paths"), "Paths"}, - {tr("Log"), "Log"}, - {tr("Debug"), "Debug"}, - {tr("Experimental"), "Experimental"}}; - micMap = {{tr("None"), "None"}, {tr("Default Device"), "Default Device"}}; - - if (m_physical_devices.empty()) { - // Populate cache of physical devices. - Vulkan::Instance instance(false, false); - auto physical_devices = instance.GetPhysicalDevices(); - for (const vk::PhysicalDevice physical_device : physical_devices) { - auto prop = physical_device.getProperties(); - QString name = QString::fromUtf8(prop.deviceName, -1); - if (prop.apiVersion < Vulkan::TargetVulkanApiVersion) { - name += tr(" * Unsupported Vulkan Version"); - } - m_physical_devices.push_back(name); - } - } - - // Add list of available GPUs - ui->graphicsAdapterBox->addItem(tr("Auto Select")); // -1, auto selection - for (const auto& device : m_physical_devices) { - ui->graphicsAdapterBox->addItem(device); - } - - ui->consoleLanguageComboBox->addItems(languageNames); - - QCompleter* completer = new QCompleter(languageNames, this); - completer->setCaseSensitivity(Qt::CaseInsensitive); - ui->consoleLanguageComboBox->setCompleter(completer); - - ui->hideCursorComboBox->addItem(tr("Never")); - ui->hideCursorComboBox->addItem(tr("Idle")); - ui->hideCursorComboBox->addItem(tr("Always")); - - ui->micComboBox->addItem(micMap.key("None"), "None"); - ui->micComboBox->addItem(micMap.key("Default Device"), "Default Device"); - SDL_InitSubSystem(SDL_INIT_AUDIO); - int count = 0; - SDL_AudioDeviceID* devices = SDL_GetAudioRecordingDevices(&count); - if (devices) { - for (int i = 0; i < count; ++i) { - SDL_AudioDeviceID devId = devices[i]; - const char* name = SDL_GetAudioDeviceName(devId); - if (name) { - QString qname = QString::fromUtf8(name); - ui->micComboBox->addItem(qname, QString::number(devId)); - } - } - SDL_free(devices); - } else { - qDebug() << "Erro SDL_GetAudioRecordingDevices:" << SDL_GetError(); - } - - InitializeEmulatorLanguages(); - onAudioDeviceChange(true); - LoadValuesFromConfig(); - - defaultTextEdit = tr("Point your mouse at an option to display its description."); - ui->descriptionText->setText(defaultTextEdit); - - connect(ui->buttonBox, &QDialogButtonBox::rejected, this, &QWidget::close); - - connect(ui->buttonBox, &QDialogButtonBox::clicked, this, - [this, config_file](QAbstractButton* button) { - if (button == ui->buttonBox->button(QDialogButtonBox::Save)) { - is_game_saving = true; - UpdateSettings(is_game_specific); - Config::save(config_file, is_game_specific); - QWidget::close(); - } else if (button == ui->buttonBox->button(QDialogButtonBox::Apply)) { - UpdateSettings(is_game_specific); - Config::save(config_file, is_game_specific); - } else if (button == ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)) { - setDefaultValues(); - Config::setDefaultValues(is_game_specific); - Config::save(config_file, is_game_specific); - LoadValuesFromConfig(); - } else if (button == ui->buttonBox->button(QDialogButtonBox::Close)) { - ui->backgroundImageOpacitySlider->setValue(backgroundImageOpacitySlider_backup); - emit BackgroundOpacityChanged(backgroundImageOpacitySlider_backup); - ui->BGMVolumeSlider->setValue(bgm_volume_backup); - BackgroundMusicPlayer::getInstance().setVolume(bgm_volume_backup); - SyncRealTimeWidgetstoConfig(); - } - if (Common::Log::IsActive()) { - Common::Log::Filter filter; - filter.ParseFilterString(Config::getLogFilter()); - Common::Log::SetGlobalFilter(filter); - } - }); - - ui->buttonBox->button(QDialogButtonBox::Save)->setText(tr("Save")); - ui->buttonBox->button(QDialogButtonBox::Apply)->setText(tr("Apply")); - ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)->setText(tr("Restore Defaults")); - ui->buttonBox->button(QDialogButtonBox::Close)->setText(tr("Close")); - - connect(ui->tabWidgetSettings, &QTabWidget::currentChanged, this, - [this]() { ui->buttonBox->button(QDialogButtonBox::Close)->setFocus(); }); - - // GENERAL TAB - { - connect(ui->horizontalVolumeSlider, &QSlider::valueChanged, this, [this](int value) { - VolumeSliderChange(value); - Config::setVolumeSlider(value, is_game_specific); - Libraries::AudioOut::AdjustVol(); - }); - -#ifdef ENABLE_UPDATER -#if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0)) - connect(ui->updateCheckBox, &QCheckBox::stateChanged, this, [this](int state) { - m_gui_settings->SetValue(gui::gen_checkForUpdates, state == Qt::Checked); - }); - - connect(ui->changelogCheckBox, &QCheckBox::stateChanged, this, [this](int state) { - m_gui_settings->SetValue(gui::gen_showChangeLog, state == Qt::Checked); - }); -#else - connect(ui->updateCheckBox, &QCheckBox::checkStateChanged, this, - [this](Qt::CheckState state) { - m_gui_settings->SetValue(gui::gen_checkForUpdates, state == Qt::Checked); - }); - - connect(ui->changelogCheckBox, &QCheckBox::checkStateChanged, this, - [this](Qt::CheckState state) { - m_gui_settings->SetValue(gui::gen_showChangeLog, state == Qt::Checked); - }); -#endif - - connect(ui->updateComboBox, &QComboBox::currentTextChanged, this, - [this](const QString& channel) { - if (channelMap.contains(channel)) { - m_gui_settings->SetValue(gui::gen_updateChannel, channelMap.value(channel)); - } - }); - - connect(ui->checkUpdateButton, &QPushButton::clicked, this, [this]() { - auto checkUpdate = new CheckUpdate(m_gui_settings, true); - checkUpdate->exec(); - }); -#else - ui->updaterGroupBox->setVisible(false); -#endif - connect(ui->updateCompatibilityButton, &QPushButton::clicked, this, - [this, parent, m_compat_info]() { - m_compat_info->UpdateCompatibilityDatabase(this, true); - emit CompatibilityChanged(); - }); - -#if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0)) - connect(ui->enableCompatibilityCheckBox, &QCheckBox::stateChanged, this, - [this, m_compat_info](int state) { -#else - connect(ui->enableCompatibilityCheckBox, &QCheckBox::checkStateChanged, this, - [this, m_compat_info](Qt::CheckState state) { -#endif - Config::setCompatibilityEnabled(state); - if (state) { - m_compat_info->LoadCompatibilityFile(); - } - emit CompatibilityChanged(); - }); - } - - // GUI TAB - { - connect(ui->backgroundImageOpacitySlider, &QSlider::valueChanged, this, - [this](int value) { emit BackgroundOpacityChanged(value); }); - - connect(ui->BGMVolumeSlider, &QSlider::valueChanged, this, - [](int value) { BackgroundMusicPlayer::getInstance().setVolume(value); }); - -#if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0)) - connect(ui->showBackgroundImageCheckBox, &QCheckBox::stateChanged, this, [this](int state) { -#else - connect(ui->showBackgroundImageCheckBox, &QCheckBox::checkStateChanged, this, - [this](Qt::CheckState state) { -#endif - m_gui_settings->SetValue(gui::gl_showBackgroundImage, state == Qt::Checked); - }); - } - - // USER TAB - { - connect(ui->OpenCustomTrophyLocationButton, &QPushButton::clicked, this, []() { - QString userPath; - Common::FS::PathToQString(userPath, - Common::FS::GetUserPath(Common::FS::PathType::CustomTrophy)); - QDesktopServices::openUrl(QUrl::fromLocalFile(userPath)); - }); - } - - // INPUT TAB - { - connect(ui->hideCursorComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, - [this](s16 index) { OnCursorStateChanged(index); }); - } - - // PATH TAB - { - connect(ui->addFolderButton, &QPushButton::clicked, this, [this]() { - QString file_path_string = - QFileDialog::getExistingDirectory(this, tr("Directory to install games")); - auto file_path = Common::FS::PathFromQString(file_path_string); - if (!file_path.empty() && Config::addGameInstallDir(file_path, true)) { - QListWidgetItem* item = new QListWidgetItem(file_path_string); - item->setFlags(item->flags() | Qt::ItemIsUserCheckable); - item->setCheckState(Qt::Checked); - ui->gameFoldersListWidget->addItem(item); - } - }); - - connect(ui->gameFoldersListWidget, &QListWidget::itemSelectionChanged, this, [this]() { - ui->removeFolderButton->setEnabled( - !ui->gameFoldersListWidget->selectedItems().isEmpty()); - }); - - connect(ui->removeFolderButton, &QPushButton::clicked, this, [this]() { - QListWidgetItem* selected_item = ui->gameFoldersListWidget->currentItem(); - QString item_path_string = selected_item ? selected_item->text() : QString(); - if (!item_path_string.isEmpty()) { - auto file_path = Common::FS::PathFromQString(item_path_string); - Config::removeGameInstallDir(file_path); - delete selected_item; - } - }); - - connect(ui->browseButton, &QPushButton::clicked, this, [this]() { - const auto save_data_path = Config::GetSaveDataPath(); - QString initial_path; - Common::FS::PathToQString(initial_path, save_data_path); - - QString save_data_path_string = - QFileDialog::getExistingDirectory(this, tr("Directory to save data"), initial_path); - - auto file_path = Common::FS::PathFromQString(save_data_path_string); - if (!file_path.empty()) { - Config::setSaveDataPath(file_path); - ui->currentSaveDataPath->setText(save_data_path_string); - } - }); - - connect(ui->folderButton, &QPushButton::clicked, this, [this]() { - const auto dlc_folder_path = Config::getAddonInstallDir(); - QString initial_path; - Common::FS::PathToQString(initial_path, dlc_folder_path); - - QString dlc_folder_path_string = - QFileDialog::getExistingDirectory(this, tr("Select the DLC folder"), initial_path); - - auto file_path = Common::FS::PathFromQString(dlc_folder_path_string); - if (!file_path.empty()) { - Config::setAddonInstallDir(file_path); - ui->currentDLCFolder->setText(dlc_folder_path_string); - } - }); - - connect(ui->PortableUserButton, &QPushButton::clicked, this, []() { - QString userDir; - Common::FS::PathToQString(userDir, std::filesystem::current_path() / "user"); - if (std::filesystem::exists(std::filesystem::current_path() / "user")) { - QMessageBox::information(NULL, tr("Cannot create portable user folder"), - tr("%1 already exists").arg(userDir)); - } else { - std::filesystem::copy(Common::FS::GetUserPath(Common::FS::PathType::UserDir), - std::filesystem::current_path() / "user", - std::filesystem::copy_options::recursive); - QMessageBox::information(NULL, tr("Portable user folder created"), - tr("%1 successfully created.").arg(userDir)); - } - }); - } - - // DEBUG TAB - { - connect(ui->OpenLogLocationButton, &QPushButton::clicked, this, []() { - QString userPath; - Common::FS::PathToQString(userPath, - Common::FS::GetUserPath(Common::FS::PathType::LogDir)); - QDesktopServices::openUrl(QUrl::fromLocalFile(userPath)); - }); - - // Log presets popup button - connect(ui->logPresetsButton, &QPushButton::clicked, this, [this]() { - auto dlg = new LogPresetsDialog(m_gui_settings, this); - connect(dlg, &LogPresetsDialog::PresetChosen, this, - [this](const QString& filter) { ui->logFilterLineEdit->setText(filter); }); - dlg->exec(); - }); - } - - // GRAPHICS TAB - connect(ui->RCASSlider, &QSlider::valueChanged, this, [this](int value) { - QString RCASValue = QString::number(value / 1000.0, 'f', 3); - ui->RCASValue->setText(RCASValue); - }); - - if (presenter) { - connect(ui->RCASSlider, &QSlider::valueChanged, this, [this](int value) { - presenter->GetFsrSettingsRef().rcas_attenuation = static_cast(value / 1000.0f); - }); - -#if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0)) - connect(ui->FSRCheckBox, &QCheckBox::stateChanged, this, - [this](int state) { presenter->GetFsrSettingsRef().enable = state; }); - - connect(ui->RCASCheckBox, &QCheckBox::stateChanged, this, - [this](int state) { presenter->GetFsrSettingsRef().use_rcas = state; }); -#else - connect(ui->FSRCheckBox, &QCheckBox::checkStateChanged, this, - [this](Qt::CheckState state) { presenter->GetFsrSettingsRef().enable = state; }); - - connect(ui->RCASCheckBox, &QCheckBox::checkStateChanged, this, - [this](Qt::CheckState state) { presenter->GetFsrSettingsRef().use_rcas = state; }); -#endif - } - - // Descriptions - { - // General - ui->consoleLanguageGroupBox->installEventFilter(this); - ui->emulatorLanguageGroupBox->installEventFilter(this); - ui->showSplashCheckBox->installEventFilter(this); - ui->discordRPCCheckbox->installEventFilter(this); - ui->volumeSliderElement->installEventFilter(this); -#ifdef ENABLE_UPDATER - ui->updaterGroupBox->installEventFilter(this); -#endif - - // GUI - ui->GUIBackgroundImageGroupBox->installEventFilter(this); - ui->GUIMusicGroupBox->installEventFilter(this); - ui->enableCompatibilityCheckBox->installEventFilter(this); - ui->checkCompatibilityOnStartupCheckBox->installEventFilter(this); - ui->updateCompatibilityButton->installEventFilter(this); - - // User - ui->userName->installEventFilter(this); - ui->disableTrophycheckBox->installEventFilter(this); - ui->OpenCustomTrophyLocationButton->installEventFilter(this); - ui->label_Trophy->installEventFilter(this); - ui->trophyKeyLineEdit->installEventFilter(this); - - // Input - ui->hideCursorGroupBox->installEventFilter(this); - ui->idleTimeoutGroupBox->installEventFilter(this); - ui->backgroundControllerCheckBox->installEventFilter(this); - ui->motionControlsCheckBox->installEventFilter(this); - ui->micComboBox->installEventFilter(this); - - // Graphics - ui->graphicsAdapterGroupBox->installEventFilter(this); - ui->windowSizeGroupBox->installEventFilter(this); - ui->presentModeGroupBox->installEventFilter(this); - ui->heightDivider->installEventFilter(this); - ui->nullGpuCheckBox->installEventFilter(this); - ui->enableHDRCheckBox->installEventFilter(this); - ui->chooseHomeTabGroupBox->installEventFilter(this); - ui->gameSizeCheckBox->installEventFilter(this); - - // Paths - ui->gameFoldersGroupBox->installEventFilter(this); - ui->gameFoldersListWidget->installEventFilter(this); - ui->addFolderButton->installEventFilter(this); - ui->removeFolderButton->installEventFilter(this); - ui->saveDataGroupBox->installEventFilter(this); - ui->currentSaveDataPath->installEventFilter(this); - ui->currentDLCFolder->installEventFilter(this); - ui->browseButton->installEventFilter(this); - ui->folderButton->installEventFilter(this); - ui->PortableUserFolderGroupBox->installEventFilter(this); - - // Log - ui->logTypeGroupBox->installEventFilter(this); - ui->logFilter->installEventFilter(this); - ui->enableLoggingCheckBox->installEventFilter(this); - ui->separateLogFilesCheckbox->installEventFilter(this); - ui->OpenLogLocationButton->installEventFilter(this); - - // Debug - ui->debugDump->installEventFilter(this); - ui->vkValidationCheckBox->installEventFilter(this); - ui->vkSyncValidationCheckBox->installEventFilter(this); - ui->rdocCheckBox->installEventFilter(this); - ui->crashDiagnosticsCheckBox->installEventFilter(this); - ui->guestMarkersCheckBox->installEventFilter(this); - ui->hostMarkersCheckBox->installEventFilter(this); - ui->collectShaderCheckBox->installEventFilter(this); - ui->copyGPUBuffersCheckBox->installEventFilter(this); - ui->readbacksCheckBox->installEventFilter(this); - ui->readbackLinearImagesCheckBox->installEventFilter(this); - ui->dumpShadersCheckBox->installEventFilter(this); - ui->dmaCheckBox->installEventFilter(this); - ui->devkitCheckBox->installEventFilter(this); - ui->neoCheckBox->installEventFilter(this); - ui->networkConnectedCheckBox->installEventFilter(this); - ui->psnSignInCheckBox->installEventFilter(this); - } - - SdlEventWrapper::Wrapper::wrapperActive = true; - if (!is_game_running) { - SDL_InitSubSystem(SDL_INIT_EVENTS); - Polling = QtConcurrent::run(&SettingsDialog::pollSDLevents, this); - } else { - SdlEventWrapper::Wrapper* DeviceEventWrapper = SdlEventWrapper::Wrapper::GetInstance(); - QObject::connect(DeviceEventWrapper, &SdlEventWrapper::Wrapper::audioDeviceChanged, this, - &SettingsDialog::onAudioDeviceChange); - } -} - -void SettingsDialog::closeEvent(QCloseEvent* event) { - if (!is_game_saving) { - ui->backgroundImageOpacitySlider->setValue(backgroundImageOpacitySlider_backup); - emit BackgroundOpacityChanged(backgroundImageOpacitySlider_backup); - ui->BGMVolumeSlider->setValue(bgm_volume_backup); - BackgroundMusicPlayer::getInstance().setVolume(bgm_volume_backup); - SyncRealTimeWidgetstoConfig(); - } - - SdlEventWrapper::Wrapper::wrapperActive = false; - if (!is_game_running) { - SDL_Event quitLoop{}; - quitLoop.type = SDL_EVENT_QUIT; - SDL_PushEvent(&quitLoop); - Polling.waitForFinished(); - - SDL_QuitSubSystem(SDL_INIT_EVENTS); - SDL_QuitSubSystem(SDL_INIT_AUDIO); - SDL_Quit(); - } - QDialog::closeEvent(event); -} - -void SettingsDialog::LoadValuesFromConfig() { - std::filesystem::path config_file; - config_file = - is_game_specific - ? Common::FS::GetUserPath(Common::FS::PathType::CustomConfigs) / (gs_serial + ".toml") - : Common::FS::GetUserPath(Common::FS::PathType::UserDir) / "config.toml"; - - std::error_code error; - bool is_newly_created = false; - if (!std::filesystem::exists(config_file, error)) { - Config::save(config_file, is_game_specific); - is_newly_created = true; - } - - try { - std::ifstream ifs; - ifs.exceptions(std::ifstream::failbit | std::ifstream::badbit); - const toml::value data = toml::parse(config_file); - } catch (std::exception& ex) { - fmt::print("Got exception trying to load config file. Exception: {}\n", ex.what()); - return; - } - - const toml::value data = toml::parse(config_file); - const QVector languageIndexes = {21, 23, 14, 6, 18, 1, 12, 22, 2, 4, 25, 24, 29, 5, 0, 9, - 15, 16, 17, 7, 26, 8, 11, 20, 3, 13, 27, 10, 19, 30, 28}; - - // Entries with no game-specific settings - if (!is_game_specific) { - const auto save_data_path = Config::GetSaveDataPath(); - QString save_data_path_string; - Common::FS::PathToQString(save_data_path_string, save_data_path); - ui->currentSaveDataPath->setText(save_data_path_string); - - const auto dlc_folder_path = Config::getAddonInstallDir(); - QString dlc_folder_path_string; - Common::FS::PathToQString(dlc_folder_path_string, dlc_folder_path); - ui->currentDLCFolder->setText(dlc_folder_path_string); - - ui->emulatorLanguageComboBox->setCurrentIndex( - languages[m_gui_settings->GetValue(gui::gen_guiLanguage).toString().toStdString()]); - - ui->playBGMCheckBox->setChecked( - m_gui_settings->GetValue(gui::gl_playBackgroundMusic).toBool()); - - ui->RCASSlider->setValue(toml::find_or(data, "GPU", "rcasAttenuation", 250)); - ui->RCASValue->setText(QString::number(ui->RCASSlider->value() / 1000.0, 'f', 3)); - - ui->BGMVolumeSlider->setValue( - m_gui_settings->GetValue(gui::gl_backgroundMusicVolume).toInt()); - ui->discordRPCCheckbox->setChecked( - toml::find_or(data, "General", "enableDiscordRPC", true)); - - ui->gameSizeCheckBox->setChecked( - toml::find_or(data, "GUI", "loadGameSizeEnabled", true)); - ui->trophyKeyLineEdit->setText( - QString::fromStdString(toml::find_or(data, "Keys", "TrophyKey", ""))); - ui->trophyKeyLineEdit->setEchoMode(QLineEdit::Password); - ui->enableCompatibilityCheckBox->setChecked( - toml::find_or(data, "General", "compatibilityEnabled", false)); - ui->checkCompatibilityOnStartupCheckBox->setChecked( - toml::find_or(data, "General", "checkCompatibilityOnStartup", false)); - - ui->removeFolderButton->setEnabled(!ui->gameFoldersListWidget->selectedItems().isEmpty()); - ui->backgroundImageOpacitySlider->setValue( - m_gui_settings->GetValue(gui::gl_backgroundImageOpacity).toInt()); - ui->showBackgroundImageCheckBox->setChecked( - m_gui_settings->GetValue(gui::gl_showBackgroundImage).toBool()); - - backgroundImageOpacitySlider_backup = - m_gui_settings->GetValue(gui::gl_backgroundImageOpacity).toInt(); - bgm_volume_backup = m_gui_settings->GetValue(gui::gl_backgroundMusicVolume).toInt(); - -#ifdef ENABLE_UPDATER - ui->updateCheckBox->setChecked(m_gui_settings->GetValue(gui::gen_checkForUpdates).toBool()); - ui->changelogCheckBox->setChecked( - m_gui_settings->GetValue(gui::gen_showChangeLog).toBool()); - - QString updateChannel = m_gui_settings->GetValue(gui::gen_updateChannel).toString(); - ui->updateComboBox->setCurrentText( - channelMap.key(updateChannel != "Release" && updateChannel != "Nightly" - ? (Common::g_is_release ? "Release" : "Nightly") - : updateChannel)); -#endif - - SyncRealTimeWidgetstoConfig(); - } - - // Entries with game-specific settings, *load these from toml file, not from Config::get* - ui->consoleLanguageComboBox->setCurrentIndex( - std::distance(languageIndexes.begin(), - std::find(languageIndexes.begin(), languageIndexes.end(), - toml::find_or(data, "Settings", "consoleLanguage", 6))) % - languageIndexes.size()); - - std::string micDevice = - toml::find_or(data, "Input", "micDevice", "Default Device"); - QString micValue = QString::fromStdString(micDevice); - int micIndex = ui->micComboBox->findData(micValue); - if (micIndex != -1) { - ui->micComboBox->setCurrentIndex(micIndex); - } else { - ui->micComboBox->setCurrentIndex(0); - } - - ui->readbacksCheckBox->setChecked(toml::find_or(data, "GPU", "readbacks", false)); - ui->readbackLinearImagesCheckBox->setChecked( - toml::find_or(data, "GPU", "readbackLinearImages", false)); - ui->dmaCheckBox->setChecked(toml::find_or(data, "GPU", "directMemoryAccess", false)); - ui->neoCheckBox->setChecked(toml::find_or(data, "General", "isPS4Pro", false)); - ui->devkitCheckBox->setChecked(toml::find_or(data, "General", "isDevKit", false)); - ui->networkConnectedCheckBox->setChecked( - toml::find_or(data, "General", "isConnectedToNetwork", false)); - ui->psnSignInCheckBox->setChecked(toml::find_or(data, "General", "isPSNSignedIn", false)); - - // First options is auto selection -1, so gpuId on the GUI will always have to subtract 1 - // when setting and add 1 when getting to select the correct gpu in Qt - ui->graphicsAdapterBox->setCurrentIndex(toml::find_or(data, "Vulkan", "gpuId", -1) + 1); - ui->widthSpinBox->setValue(toml::find_or(data, "GPU", "screenWidth", 1280)); - ui->heightSpinBox->setValue(toml::find_or(data, "GPU", "screenHeight", 720)); - ui->vblankSpinBox->setValue(toml::find_or(data, "GPU", "vblankFrequency", 60)); - ui->dumpShadersCheckBox->setChecked(toml::find_or(data, "GPU", "dumpShaders", false)); - ui->nullGpuCheckBox->setChecked(toml::find_or(data, "GPU", "nullGpu", false)); - ui->enableHDRCheckBox->setChecked(toml::find_or(data, "GPU", "allowHDR", false)); - ui->FSRCheckBox->setChecked(toml::find_or(data, "GPU", "fsrEnabled", true)); - ui->RCASCheckBox->setChecked(toml::find_or(data, "GPU", "rcasEnabled", true)); - ui->RCASSlider->setValue(toml::find_or(data, "GPU", "rcasAttenuation", 250)); - ui->RCASValue->setText(QString::number(ui->RCASSlider->value() / 1000.0, 'f', 3)); - ui->disableTrophycheckBox->setChecked( - toml::find_or(data, "General", "isTrophyPopupDisabled", false)); - ui->popUpDurationSpinBox->setValue( - toml::find_or(data, "General", "trophyNotificationDuration", 6.0)); - ui->showSplashCheckBox->setChecked(toml::find_or(data, "General", "showSplash", false)); - ui->hideCursorComboBox->setCurrentIndex(toml::find_or(data, "Input", "cursorState", 1)); - OnCursorStateChanged(toml::find_or(data, "Input", "cursorState", 1)); - ui->idleTimeoutSpinBox->setValue(toml::find_or(data, "Input", "cursorHideTimeout", 5)); - ui->motionControlsCheckBox->setChecked( - toml::find_or(data, "Input", "isMotionControlsEnabled", true)); - ui->backgroundControllerCheckBox->setChecked( - toml::find_or(data, "Input", "backgroundControllerInput", false)); - - std::string sideTrophy = toml::find_or(data, "General", "sideTrophy", "right"); - QString side = QString::fromStdString(sideTrophy); - ui->radioButton_Left->setChecked(side == "left"); - ui->radioButton_Right->setChecked(side == "right"); - ui->radioButton_Top->setChecked(side == "top"); - ui->radioButton_Bottom->setChecked(side == "bottom"); - - ui->horizontalVolumeSlider->setValue(toml::find_or(data, "General", "volumeSlider", 100)); - ui->volumeText->setText(QString::number(ui->horizontalVolumeSlider->sliderPosition()) + "%"); - - std::string fullScreenMode = - toml::find_or(data, "GPU", "FullscreenMode", "Windowed"); - QString translatedText_FullscreenMode = - screenModeMap.key(QString::fromStdString(fullScreenMode)); - ui->displayModeComboBox->setCurrentText(translatedText_FullscreenMode); - - std::string presentMode = toml::find_or(data, "GPU", "presentMode", "Mailbox"); - QString translatedText_PresentMode = presentModeMap.key(QString::fromStdString(presentMode)); - ui->presentModeComboBox->setCurrentText(translatedText_PresentMode); - - std::string logType = toml::find_or(data, "General", "logType", "sync"); - QString translatedText_logType = logTypeMap.key(QString::fromStdString(logType)); - if (!translatedText_logType.isEmpty()) { - ui->logTypeComboBox->setCurrentText(translatedText_logType); - } - ui->logFilterLineEdit->setText( - QString::fromStdString(toml::find_or(data, "General", "logFilter", ""))); - ui->userNameLineEdit->setText( - QString::fromStdString(toml::find_or(data, "General", "userName", "shadPS4"))); - - ui->debugDump->setChecked(toml::find_or(data, "Debug", "DebugDump", false)); - ui->separateLogFilesCheckbox->setChecked( - toml::find_or(data, "Debug", "isSeparateLogFilesEnabled", false)); - ui->vkValidationCheckBox->setChecked(toml::find_or(data, "Vulkan", "validation", false)); - ui->vkSyncValidationCheckBox->setChecked( - toml::find_or(data, "Vulkan", "validation_sync", false)); - ui->rdocCheckBox->setChecked(toml::find_or(data, "Vulkan", "rdocEnable", false)); - ui->crashDiagnosticsCheckBox->setChecked( - toml::find_or(data, "Vulkan", "crashDiagnostic", false)); - ui->guestMarkersCheckBox->setChecked( - toml::find_or(data, "Vulkan", "guestMarkers", false)); - ui->hostMarkersCheckBox->setChecked(toml::find_or(data, "Vulkan", "hostMarkers", false)); - ui->copyGPUBuffersCheckBox->setChecked( - toml::find_or(data, "GPU", "copyGPUBuffers", false)); - ui->collectShaderCheckBox->setChecked( - toml::find_or(data, "Debug", "CollectShader", false)); - ui->enableLoggingCheckBox->setChecked(toml::find_or(data, "Debug", "logEnabled", true)); - - ui->GenAudioComboBox->setCurrentText(QString::fromStdString( - toml::find_or(data, "General", "mainOutputDevice", ""))); - ui->DsAudioComboBox->setCurrentText(QString::fromStdString( - toml::find_or(data, "General", "padSpkOutputDevice", ""))); - - std::string chooseHomeTab = - toml::find_or(data, "General", "chooseHomeTab", "General"); - QString translatedText = chooseHomeTabMap.key(QString::fromStdString(chooseHomeTab)); - if (translatedText.isEmpty()) { - translatedText = tr("General"); - } - ui->chooseHomeTabComboBox->setCurrentText(translatedText); - - QStringList tabNames = {tr("General"), tr("GUI"), tr("Graphics"), - tr("User"), tr("Input"), tr("Paths"), - tr("Log"), tr("Debug"), tr("Experimental")}; - int indexTab = tabNames.indexOf(translatedText); - if (indexTab == -1 || !ui->tabWidgetSettings->isTabVisible(indexTab) || is_newly_created) - indexTab = 0; - ui->tabWidgetSettings->setCurrentIndex(indexTab); -} - -void SettingsDialog::InitializeEmulatorLanguages() { - QDirIterator it(QStringLiteral(":/translations"), QDirIterator::NoIteratorFlags); - - QVector> languagesList; - - while (it.hasNext()) { - QString locale = it.next(); - locale.truncate(locale.lastIndexOf(QLatin1Char{'.'})); - locale.remove(0, locale.lastIndexOf(QLatin1Char{'/'}) + 1); - const QString lang = QLocale::languageToString(QLocale(locale).language()); - const QString country = QLocale::territoryToString(QLocale(locale).territory()); - - QString displayName = QStringLiteral("%1 (%2)").arg(lang, country); - languagesList.append(qMakePair(locale, displayName)); - } - - std::sort(languagesList.begin(), languagesList.end(), - [](const QPair& a, const QPair& b) { - return a.second < b.second; - }); - - int idx = 0; - for (const auto& pair : languagesList) { - const QString& locale = pair.first; - const QString& displayName = pair.second; - - ui->emulatorLanguageComboBox->addItem(displayName, locale); - languages[locale.toStdString()] = idx; - idx++; - } - - connect(ui->emulatorLanguageComboBox, &QComboBox::currentIndexChanged, this, - &SettingsDialog::OnLanguageChanged); -} - -void SettingsDialog::OnLanguageChanged(int index) { - if (index == -1) - return; - - ui->retranslateUi(this); - - emit LanguageChanged(ui->emulatorLanguageComboBox->itemData(index).toString()); -} - -void SettingsDialog::OnCursorStateChanged(s16 index) { - if (index == -1) - return; - if (index == Config::HideCursorState::Idle) { - ui->idleTimeoutGroupBox->show(); - } else { - if (!ui->idleTimeoutGroupBox->isHidden()) { - ui->idleTimeoutGroupBox->hide(); - } - } -} - -void SettingsDialog::VolumeSliderChange(int value) { - ui->volumeText->setText(QString::number(ui->horizontalVolumeSlider->sliderPosition()) + "%"); -} - -int SettingsDialog::exec() { - return QDialog::exec(); -} - -SettingsDialog::~SettingsDialog() {} - -void SettingsDialog::updateNoteTextEdit(const QString& elementName) { - QString text; - - // clang-format off - // General - if (elementName == "consoleLanguageGroupBox") { - text = tr("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."); - } else if (elementName == "emulatorLanguageGroupBox") { - text = tr("Emulator Language:\\nSets the language of the emulator's user interface."); - } else if (elementName == "showSplashCheckBox") { - text = tr("Show Splash Screen:\\nShows the game's splash screen (a special image) while the game is starting."); - } else if (elementName == "discordRPCCheckbox") { - text = tr("Enable Discord Rich Presence:\\nDisplays the emulator icon and relevant information on your Discord profile."); - } else if (elementName == "userName") { - text = tr("Username:\\nSets the PS4's account username, which may be displayed by some games."); - } else if (elementName == "label_Trophy" || elementName == "trophyKeyLineEdit") { - text = tr("Trophy Key:\\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\\nMust contain only hex characters."); - } else if (elementName == "logTypeGroupBox") { - text = tr("Log Type:\\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation."); - } else if (elementName == "logFilter") { - text = tr("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."); - #ifdef ENABLE_UPDATER - } else if (elementName == "updaterGroupBox") { - text = tr("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."); -#endif - } else if (elementName == "GUIBackgroundImageGroupBox") { - text = tr("Background Image:\\nControl the opacity of the game background image."); - } else if (elementName == "GUIMusicGroupBox") { - text = tr("Play Title Music:\\nIf a game supports it, enable playing special music when selecting the game in the GUI."); - } else if (elementName == "enableHDRCheckBox") { - text = tr("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."); - } else if (elementName == "disableTrophycheckBox") { - text = tr("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)."); - } else if (elementName == "enableCompatibilityCheckBox") { - text = tr("Display Compatibility Data:\\nDisplays game compatibility information in table view. Enable \"Update Compatibility On Startup\" to get up-to-date information."); - } else if (elementName == "checkCompatibilityOnStartupCheckBox") { - text = tr("Update Compatibility On Startup:\\nAutomatically update the compatibility database when shadPS4 starts."); - } else if (elementName == "updateCompatibilityButton") { - text = tr("Update Compatibility Database:\\nImmediately update the compatibility database."); - } - - //User - if (elementName == "OpenCustomTrophyLocationButton") { - text = tr("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."); - } - - // Input - if (elementName == "hideCursorGroupBox") { - text = tr("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."); - } else if (elementName == "idleTimeoutGroupBox") { - text = tr("Hide Idle Cursor Timeout:\\nThe duration (seconds) after which the cursor that has been idle hides itself."); - } else if (elementName == "backgroundControllerCheckBox") { - text = tr("Enable Controller Background Input:\\nAllow shadPS4 to detect controller inputs when the game window is not in focus."); - } - - // Graphics - if (elementName == "graphicsAdapterGroupBox") { - text = tr("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."); - } else if (elementName == "presentModeGroupBox") { - text = tr("Present Mode:\\nConfigures how video output will be presented to your screen.\\n\\n" - "Mailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\\n" - "Fifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\\n" - "Immediate: Frames immediately present to your screen when ready. May result in tearing."); - } else if (elementName == "windowSizeGroupBox") { - text = tr("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."); - } else if (elementName == "heightDivider") { - text = tr("Vblank Frequency:\\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change!"); - } else if (elementName == "dumpShadersCheckBox") { - text = tr("Enable Shaders Dumping:\\nFor the sake of technical debugging, saves the games shaders to a folder as they render."); - } else if (elementName == "nullGpuCheckBox") { - text = tr("Enable Null GPU:\\nFor the sake of technical debugging, disables game rendering as if there were no graphics card."); - } - - // Path - if (elementName == "gameFoldersGroupBox" || elementName == "gameFoldersListWidget") { - text = tr("Game Folders:\\nThe list of folders to check for installed games."); - } else if (elementName == "addFolderButton") { - text = tr("Add:\\nAdd a folder to the list."); - } else if (elementName == "removeFolderButton") { - text = tr("Remove:\\nRemove a folder from the list."); - } else if (elementName == "PortableUserFolderGroupBox") { - text = tr("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."); - } - - // DLC Folder - if (elementName == "dlcFolderGroupBox" || elementName == "currentDLCFolder") { - text = tr("DLC Path:\\nThe folder where game DLC loaded from."); - } else if (elementName == "folderButton") { - text = tr("Browse:\\nBrowse for a folder to set as the DLC path."); - } - - // Save Data - if (elementName == "saveDataGroupBox" || elementName == "currentSaveDataPath") { - text = tr("Save Data Path:\\nThe folder where game save data will be saved."); - } else if (elementName == "browseButton") { - text = tr("Browse:\\nBrowse for a folder to set as the save data path."); - } - - // Debug - if (elementName == "debugDump") { - text = tr("Enable Debug Dumping:\\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory."); - } else if (elementName == "vkValidationCheckBox") { - text = tr("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.\\nYou need the Vulkan SDK for this to work."); - } else if (elementName == "vkSyncValidationCheckBox") { - text = tr("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.\\nYou need the Vulkan SDK for this to work."); - } else if (elementName == "rdocCheckBox") { - text = tr("Enable RenderDoc Debugging:\\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame."); - } else if (elementName == "crashDiagnosticsCheckBox") { - text = tr("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.\\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work."); - } else if (elementName == "guestMarkersCheckBox") { - text = tr("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."); - } else if (elementName == "hostMarkersCheckBox") { - text = tr("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."); - } else if (elementName == "copyGPUBuffersCheckBox") { - text = tr("Copy GPU Buffers:\\nGets around race conditions involving GPU submits.\\nMay or may not help with PM4 type 0 crashes."); - } else if (elementName == "collectShaderCheckBox") { - text = tr("Collect Shaders:\\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10)."); - } else if (elementName == "readbacksCheckBox") { - text = tr("Enable Readbacks:\\nEnable GPU memory readbacks and writebacks.\\nThis is required for proper behavior in some games.\\nMight cause stability and/or performance issues."); - } else if (elementName == "readbackLinearImagesCheckBox") { - text = tr("Enable Readback Linear Images:\\nEnables async downloading of GPU modified linear images.\\nMight fix issues in some games."); - } else if (elementName == "separateLogFilesCheckbox") { - text = tr("Separate Log Files:\\nWrites a separate logfile for each game."); - } else if (elementName == "enableLoggingCheckBox") { - text = tr("Enable Logging:\\nEnables logging.\\nDo not change this if you do not know what you're doing!\\nWhen asking for help, make sure this setting is ENABLED."); - } else if (elementName == "OpenLogLocationButton") { - text = tr("Open Log Location:\\nOpen the folder where the log file is saved."); - } else if (elementName == "micComboBox") { - text = tr("Microphone:\\nNone: Does not use the microphone.\\nDefault Device: Will use the default device defined in the system.\\nOr manually choose the microphone to be used from the list."); - } else if (elementName == "volumeSliderElement") { - text = tr("Volume:\\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%."); - } else if (elementName == "chooseHomeTabGroupBox") { - text = tr("Default tab when opening settings:\\nChoose which tab will open, the default is General."); - } else if (elementName == "gameSizeCheckBox") { - text = tr("Show Game Size In List:\\nThere is the size of the game in the list."); - } else if (elementName == "motionControlsCheckBox") { - text = tr("Enable Motion Controls:\\nWhen enabled it will use the controller's motion control if supported."); - } else if (elementName == "dmaCheckBox") { - text = tr("Enable Direct Memory Access:\\nEnables arbitrary memory access from the GPU to CPU memory."); - } else if (elementName == "neoCheckBox") { - text = tr("Enable PS4 Neo Mode:\\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games."); - } else if (elementName == "devkitCheckBox") { - text = tr("Enable Devkit Console Mode:\\nAdds support for Devkit console memory size."); - } else if (elementName == "networkConnectedCheckBox") { - text = tr("Set Network Connected to True:\\nForces games to detect an active network connection. Actual online capabilities are not yet supported."); - } else if (elementName == "psnSignInCheckBox") { - text = tr("Set PSN Signed-in to True:\\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported."); - } - // clang-format on - ui->descriptionText->setText(text.replace("\\n", "\n")); -} - -bool SettingsDialog::eventFilter(QObject* obj, QEvent* event) { - if (event->type() == QEvent::Enter || event->type() == QEvent::Leave) { - if (qobject_cast(obj)) { - bool hovered = (event->type() == QEvent::Enter); - QString elementName = obj->objectName(); - if (hovered) { - updateNoteTextEdit(elementName); - } else { - ui->descriptionText->setText(defaultTextEdit); - } - return true; - } - } - return QDialog::eventFilter(obj, event); -} - -void SettingsDialog::UpdateSettings(bool is_specific) { - // Entries with game-specific settings, needs the game-specific arg - Config::setReadbacks(ui->readbacksCheckBox->isChecked(), is_specific); - Config::setReadbackLinearImages(ui->readbackLinearImagesCheckBox->isChecked(), is_specific); - Config::setDirectMemoryAccess(ui->dmaCheckBox->isChecked(), is_specific); - Config::setDevKitConsole(ui->devkitCheckBox->isChecked(), is_specific); - Config::setNeoMode(ui->neoCheckBox->isChecked(), is_specific); - Config::setConnectedToNetwork(ui->networkConnectedCheckBox->isChecked(), is_specific); - Config::setPSNSignedIn(ui->psnSignInCheckBox->isChecked(), is_specific); - - Config::setIsFullscreen( - screenModeMap.value(ui->displayModeComboBox->currentText()) != "Windowed", is_specific); - Config::setFullscreenMode( - screenModeMap.value(ui->displayModeComboBox->currentText()).toStdString(), is_specific); - Config::setPresentMode( - presentModeMap.value(ui->presentModeComboBox->currentText()).toStdString(), is_specific); - Config::setIsMotionControlsEnabled(ui->motionControlsCheckBox->isChecked(), is_specific); - Config::setBackgroundControllerInput(ui->backgroundControllerCheckBox->isChecked(), - is_specific); - Config::setisTrophyPopupDisabled(ui->disableTrophycheckBox->isChecked(), is_specific); - Config::setTrophyNotificationDuration(ui->popUpDurationSpinBox->value(), is_specific); - - if (ui->radioButton_Top->isChecked()) { - Config::setSideTrophy("top", is_specific); - } else if (ui->radioButton_Left->isChecked()) { - Config::setSideTrophy("left", is_specific); - } else if (ui->radioButton_Right->isChecked()) { - Config::setSideTrophy("right", is_specific); - } else if (ui->radioButton_Bottom->isChecked()) { - Config::setSideTrophy("bottom", is_specific); - } - - Config::setLoggingEnabled(ui->enableLoggingCheckBox->isChecked(), is_specific); - Config::setAllowHDR(ui->enableHDRCheckBox->isChecked(), is_specific); - Config::setLogType(logTypeMap.value(ui->logTypeComboBox->currentText()).toStdString(), - is_specific); - Config::setMicDevice(ui->micComboBox->currentData().toString().toStdString(), is_specific); - Config::setLogFilter(ui->logFilterLineEdit->text().toStdString(), is_specific); - Config::setUserName(ui->userNameLineEdit->text().toStdString(), is_specific); - Config::setCursorState(ui->hideCursorComboBox->currentIndex(), is_specific); - Config::setCursorHideTimeout(ui->hideCursorComboBox->currentIndex(), is_specific); - Config::setGpuId(ui->graphicsAdapterBox->currentIndex() - 1, is_specific); - Config::setVolumeSlider(ui->horizontalVolumeSlider->value(), is_specific); - Config::setLanguage(languageIndexes[ui->consoleLanguageComboBox->currentIndex()], is_specific); - Config::setWindowWidth(ui->widthSpinBox->value(), is_specific); - Config::setWindowHeight(ui->heightSpinBox->value(), is_specific); - Config::setVblankFreq(ui->vblankSpinBox->value(), is_specific); - Config::setDumpShaders(ui->dumpShadersCheckBox->isChecked(), is_specific); - Config::setNullGpu(ui->nullGpuCheckBox->isChecked(), is_specific); - Config::setFsrEnabled(ui->FSRCheckBox->isChecked(), is_specific); - Config::setRcasEnabled(ui->RCASCheckBox->isChecked(), is_specific); - Config::setRcasAttenuation(ui->RCASSlider->value(), is_specific); - Config::setShowSplash(ui->showSplashCheckBox->isChecked(), is_specific); - Config::setDebugDump(ui->debugDump->isChecked(), is_specific); - Config::setSeparateLogFilesEnabled(ui->separateLogFilesCheckbox->isChecked(), is_specific); - Config::setVkValidation(ui->vkValidationCheckBox->isChecked(), is_specific); - Config::setVkSyncValidation(ui->vkSyncValidationCheckBox->isChecked(), is_specific); - Config::setRdocEnabled(ui->rdocCheckBox->isChecked(), is_specific); - Config::setVkHostMarkersEnabled(ui->hostMarkersCheckBox->isChecked(), is_specific); - Config::setVkGuestMarkersEnabled(ui->guestMarkersCheckBox->isChecked(), is_specific); - Config::setVkCrashDiagnosticEnabled(ui->crashDiagnosticsCheckBox->isChecked(), is_specific); - Config::setCollectShaderForDebug(ui->collectShaderCheckBox->isChecked(), is_specific); - Config::setCopyGPUCmdBuffers(ui->copyGPUBuffersCheckBox->isChecked(), is_specific); - Config::setChooseHomeTab( - chooseHomeTabMap.value(ui->chooseHomeTabComboBox->currentText()).toStdString(), - is_specific); - - // Entries with no game-specific settings - if (!is_specific) { - std::vector dirs_with_states; - for (int i = 0; i < ui->gameFoldersListWidget->count(); i++) { - QListWidgetItem* item = ui->gameFoldersListWidget->item(i); - QString path_string = item->text(); - auto path = Common::FS::PathFromQString(path_string); - bool enabled = (item->checkState() == Qt::Checked); - - dirs_with_states.push_back({path, enabled}); - } - Config::setAllGameInstallDirs(dirs_with_states); - - BackgroundMusicPlayer::getInstance().setVolume(ui->BGMVolumeSlider->value()); - -#ifdef ENABLE_DISCORD_RPC - auto* rpc = Common::Singleton::Instance(); - if (Config::getEnableDiscordRPC()) { - rpc->init(); - rpc->setStatusIdling(); - } else { - rpc->shutdown(); - } -#endif - - Config::setLoadGameSizeEnabled(ui->gameSizeCheckBox->isChecked()); - Config::setTrophyKey(ui->trophyKeyLineEdit->text().toStdString()); - Config::setEnableDiscordRPC(ui->discordRPCCheckbox->isChecked()); - Config::setCompatibilityEnabled(ui->enableCompatibilityCheckBox->isChecked()); - Config::setCheckCompatibilityOnStartup( - ui->checkCompatibilityOnStartupCheckBox->isChecked()); - m_gui_settings->SetValue(gui::gl_playBackgroundMusic, ui->playBGMCheckBox->isChecked()); - m_gui_settings->SetValue(gui::gl_backgroundMusicVolume, ui->BGMVolumeSlider->value()); - m_gui_settings->SetValue(gui::gen_checkForUpdates, ui->updateCheckBox->isChecked()); - m_gui_settings->SetValue(gui::gen_showChangeLog, ui->changelogCheckBox->isChecked()); - m_gui_settings->SetValue(gui::gen_updateChannel, - channelMap.value(ui->updateComboBox->currentText())); - m_gui_settings->SetValue(gui::gl_showBackgroundImage, - ui->showBackgroundImageCheckBox->isChecked()); - m_gui_settings->SetValue(gui::gl_backgroundImageOpacity, - std::clamp(ui->backgroundImageOpacitySlider->value(), 0, 100)); - emit BackgroundOpacityChanged(ui->backgroundImageOpacitySlider->value()); - } -} - -void SettingsDialog::SyncRealTimeWidgetstoConfig() { - std::filesystem::path userdir = Common::FS::GetUserPath(Common::FS::PathType::UserDir); - const toml::value data = toml::parse(userdir / "config.toml"); - - if (!is_game_specific) { - ui->gameFoldersListWidget->clear(); - if (data.contains("GUI")) { - const toml::value& gui = data.at("GUI"); - const auto install_dir_array = - toml::find_or>(gui, "installDirs", {}); - - std::vector install_dirs_enabled; - try { - install_dirs_enabled = Config::getGameInstallDirsEnabled(); - } catch (...) { - // If it does not exist, assume that all are enabled. - install_dirs_enabled.resize(install_dir_array.size(), true); - } - - if (install_dirs_enabled.size() < install_dir_array.size()) { - install_dirs_enabled.resize(install_dir_array.size(), true); - } - - std::vector settings_install_dirs_config; - - for (size_t i = 0; i < install_dir_array.size(); i++) { - std::filesystem::path dir = install_dir_array[i]; - bool enabled = install_dirs_enabled[i]; - - settings_install_dirs_config.push_back({dir, enabled}); - - QString path_string; - Common::FS::PathToQString(path_string, dir); - - QListWidgetItem* item = new QListWidgetItem(path_string); - item->setFlags(item->flags() | Qt::ItemIsUserCheckable); - item->setCheckState(enabled ? Qt::Checked : Qt::Unchecked); - ui->gameFoldersListWidget->addItem(item); - } - - Config::setAllGameInstallDirs(settings_install_dirs_config); - } - } - - toml::value gs_data; - is_game_specific - ? gs_data = toml::parse(Common::FS::GetUserPath(Common::FS::PathType::CustomConfigs) / - (gs_serial + ".toml")) - : gs_data = data; - - int sliderValue = toml::find_or(gs_data, "General", "volumeSlider", 100); - ui->horizontalVolumeSlider->setValue(sliderValue); - - // Since config::set can be called for volume slider (connected to the widget) outside the save - // function, need to null it out if GS GUI is closed without saving - is_game_specific ? Config::resetGameSpecificValue("volumeSlider") - : Config::setVolumeSlider(sliderValue); - - if (presenter) { - presenter->GetFsrSettingsRef().enable = - toml::find_or(gs_data, "GPU", "fsrEnabled", true); - presenter->GetFsrSettingsRef().use_rcas = - toml::find_or(gs_data, "GPU", "rcasEnabled", true); - presenter->GetFsrSettingsRef().rcas_attenuation = - static_cast(toml::find_or(gs_data, "GPU", "rcasAttenuation", 250) / 1000.f); - } -} - -void SettingsDialog::setDefaultValues() { - if (!is_game_specific) { - m_gui_settings->SetValue(gui::gl_showBackgroundImage, true); - m_gui_settings->SetValue(gui::gl_backgroundImageOpacity, 50); - m_gui_settings->SetValue(gui::gl_playBackgroundMusic, false); - m_gui_settings->SetValue(gui::gl_backgroundMusicVolume, 50); - m_gui_settings->SetValue(gui::gen_checkForUpdates, false); - m_gui_settings->SetValue(gui::gen_showChangeLog, false); - if (Common::g_is_release) { - m_gui_settings->SetValue(gui::gen_updateChannel, "Release"); - } else { - m_gui_settings->SetValue(gui::gen_updateChannel, "Nightly"); - } - m_gui_settings->SetValue(gui::gen_guiLanguage, "en_US"); - } -} - -void SettingsDialog::pollSDLevents() { - SDL_Event event; - while (SdlEventWrapper::Wrapper::wrapperActive) { - - if (!SDL_WaitEvent(&event)) { - return; - } - - if (event.type == SDL_EVENT_QUIT) { - return; - } - - if (event.type == SDL_EVENT_AUDIO_DEVICE_ADDED) { - onAudioDeviceChange(true); - } - - if (event.type == SDL_EVENT_AUDIO_DEVICE_REMOVED) { - onAudioDeviceChange(false); - } - } -} - -void SettingsDialog::onAudioDeviceChange(bool isAdd) { - ui->GenAudioComboBox->clear(); - ui->DsAudioComboBox->clear(); - - // prevent device list from refreshing too fast when game not running - if (!is_game_running && isAdd == false) - QThread::msleep(100); - - int deviceCount; - QStringList deviceList; - SDL_AudioDeviceID* devices = SDL_GetAudioPlaybackDevices(&deviceCount); - - if (!devices) { - LOG_ERROR(Lib_AudioOut, "Unable to retrieve audio device list {}", SDL_GetError()); - return; - } - - for (int i = 0; i < deviceCount; ++i) { - const char* name = SDL_GetAudioDeviceName(devices[i]); - std::string name_string = std::string(name); - deviceList.append(QString::fromStdString(name_string)); - } - - ui->GenAudioComboBox->addItem(tr("Default Device"), "Default Device"); - ui->GenAudioComboBox->addItems(deviceList); - ui->GenAudioComboBox->setCurrentText(QString::fromStdString(Config::getMainOutputDevice())); - - ui->DsAudioComboBox->addItem(tr("Default Device"), "Default Device"); - ui->DsAudioComboBox->addItems(deviceList); - ui->DsAudioComboBox->setCurrentText(QString::fromStdString(Config::getPadSpkOutputDevice())); - - SDL_free(devices); -} diff --git a/src/qt_gui/settings_dialog.h b/src/qt_gui/settings_dialog.h deleted file mode 100644 index 25ea1507e..000000000 --- a/src/qt_gui/settings_dialog.h +++ /dev/null @@ -1,69 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include -#include -#include - -#include "common/config.h" -#include "common/path_util.h" -#include "gui_settings.h" -#include "qt_gui/compatibility_info.h" - -namespace Ui { -class SettingsDialog; -} - -class SettingsDialog : public QDialog { - Q_OBJECT -public: - explicit SettingsDialog(std::shared_ptr gui_settings, - std::shared_ptr m_compat_info, - QWidget* parent = nullptr, bool is_game_running = false, - bool is_game_specific = false, std::string gsc_serial = ""); - ~SettingsDialog(); - - bool eventFilter(QObject* obj, QEvent* event) override; - void updateNoteTextEdit(const QString& groupName); - - int exec() override; - -signals: - void LanguageChanged(const QString& locale); - void CompatibilityChanged(); - void BackgroundOpacityChanged(int opacity); - -private: - void LoadValuesFromConfig(); - void UpdateSettings(bool game_specific = false); - void SyncRealTimeWidgetstoConfig(); - void InitializeEmulatorLanguages(); - void OnLanguageChanged(int index); - void OnCursorStateChanged(s16 index); - void closeEvent(QCloseEvent* event) override; - void setDefaultValues(); - void VolumeSliderChange(int value); - void onAudioDeviceChange(bool isAdd); - void pollSDLevents(); - - std::unique_ptr ui; - - std::map languages; - - QString defaultTextEdit; - - int initialHeight; - - std::string gs_serial; - - bool is_game_running = false; - bool is_game_specific = false; - bool is_game_saving = false; - - std::shared_ptr m_gui_settings; - QFuture Polling; -}; diff --git a/src/qt_gui/settings_dialog.ui b/src/qt_gui/settings_dialog.ui deleted file mode 100644 index bff53a737..000000000 --- a/src/qt_gui/settings_dialog.ui +++ /dev/null @@ -1,2609 +0,0 @@ - - - - SettingsDialog - - - Qt::WindowModality::WindowModal - - - - 0 - 0 - 970 - 765 - - - - - 0 - 0 - - - - - 11 - false - - - - Settings - - - - :/images/shadps4.ico:/images/shadps4.ico - - - false - - - false - - - - - - true - - - - 0 - 0 - - - - - 0 - 0 - - - - 1 - - - true - - - - true - - - General - - - - - 0 - 0 - 946 - 536 - - - - - - - 0 - - - 6 - - - - - 0 - - - 0 - - - 0 - - - - - - 0 - 0 - - - - Miscellaneous - - - false - - - false - - - - 6 - - - 9 - - - 9 - - - 9 - - - 9 - - - - - - 0 - 0 - - - - Default tab when opening settings - - - - - - - 0 - 0 - - - - - General - - - - - Frontend - - - - - Graphics - - - - - User - - - - - Input - - - - - Paths - - - - - Log - - - - - Debug - - - - - Experimental - - - - - - - - - - - Show Splash Screen When Launching Game - - - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - 6 - - - 0 - - - - - - 0 - 0 - - - - - 0 - 0 - - - - System - - - - 70 - - - - - Console Language - - - - - - - - - - - - Volume - - - - - - - 0 - 0 - - - - - - - true - - - - - 0 - 0 - 408 - 68 - - - - - - - - 0 - 0 - - - - - 60 - 16777215 - - - - 100% - - - Qt::AlignmentFlag::AlignCenter - - - true - - - - - - - Qt::FocusPolicy::StrongFocus - - - 500 - - - 100 - - - 100 - - - Qt::Orientation::Horizontal - - - - - - - - - - - - - - - - - - - Audio Device (general) - - - - - - - - - - - - Audio Device (DS4 speaker) - - - - - - - - - - - - - - - - true - - - Frontend - - - - - 0 - 0 - 932 - 507 - - - - - 0 - 0 - - - - - - - 0 - - - 0 - - - - - 0 - - - - - - 0 - 0 - - - - - 0 - 0 - - - - General Frontend Settings - - - - 9 - - - 9 - - - - - Enable Discord Rich Presence - - - - - - - Show Game Size In List - - - - - - - Emulator Language - - - - - - - - - - - - - 0 - 0 - - - - Background Image - - - - - - - 0 - 0 - - - - Show Background Image - - - - - - - 9 - - - - - - 0 - 0 - - - - Opacity - - - - - - - - 0 - 0 - - - - 0 - - - 100 - - - 50 - - - Qt::Orientation::Horizontal - - - - - - - - - - - - - 0 - 0 - - - - - 0 - 100 - - - - - 16777215 - 16777215 - - - - - 11 - false - true - - - - false - - - Title Music - - - false - - - - - 9 - 30 - 416 - 26 - - - - - 0 - 0 - - - - Play title music - - - - - - 0 - 50 - 431 - 47 - - - - - 9 - - - 9 - - - 9 - - - 9 - - - 9 - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Volume - - - - - - - - 0 - 0 - - - - Set the volume of the background music. - - - 100 - - - 10 - - - 20 - - - 50 - - - Qt::Orientation::Horizontal - - - false - - - false - - - QSlider::TickPosition::NoTicks - - - 10 - - - - - - - - - - - Trophy Key - - - - - - 0 - - - - - Trophy Key - - - - - - - - 0 - 0 - - - - - 10 - false - - - - - - - - - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - - - 6 - - - 0 - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 0 - 0 - - - - Game Compatibility - - - - 10 - - - 9 - - - 9 - - - - - Display Compatibility Data - - - - - - - Update Compatibility Database On Startup - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Update Compatibility Database - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Update - - - - 6 - - - 9 - - - 9 - - - 80 - - - - - - 0 - 0 - - - - - 11 - false - - - - Check for Updates at Startup - - - - - - - Always Show Changelog - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Update Channel - - - - 7 - - - 11 - - - 11 - - - 11 - - - 11 - - - - - - 0 - 0 - - - - - Release - - - - - Nightly - - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Check for Updates - - - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - true - - - Graphics - - - - - 0 - 0 - 946 - 536 - - - - - - - - - - - Graphics Device - - - - - - - - - Enable NULL GPU - - - - - - - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - - Video - - - - 6 - - - 12 - - - - - Display Mode - - - - - - - 0 - 0 - - - - - Windowed - - - - - Fullscreen - - - - - Fullscreen (Borderless) - - - - - - - - - - - Present Mode - - - - - - - 0 - 0 - - - - - Mailbox (Vsync) - - - - - Fifo (Vsync) - - - - - Immediate (No Vsync) - - - - - - - - - - - - - Window Size - - - - - - W: - - - - - - - true - - - QAbstractSpinBox::CorrectionMode::CorrectToNearestValue - - - false - - - 0 - - - 9999 - - - 1280 - - - - - - - H: - - - - - - - true - - - true - - - QAbstractSpinBox::CorrectionMode::CorrectToNearestValue - - - false - - - 0 - - - 9999 - - - 720 - - - - - - - - - - Vblank Frequency - - - - - - true - - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter - - - - - - true - - - QAbstractSpinBox::CorrectionMode::CorrectToNearestValue - - - false - - - Hz - - - 60 - - - 9999 - - - 60 - - - - - - - - - - - - Enable HDR - - - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - - - 12 - - - 12 - - - - - FSR Settings - - - - - - Enable FSR - - - - - - - Enable RCAS (sharpening) - - - - - - - - - - 9 - false - - - - RCAS Attenuation: - - - - - - - - 9 - false - - - - 0.250 - - - Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter - - - - - - - - - 3000 - - - 250 - - - Qt::Orientation::Horizontal - - - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - - - true - - - User - - - - - 0 - 0 - 946 - 536 - - - - - - - 0 - - - 0 - - - - - - - Username - - - - - - - - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 40 - - - - - - - - - - 6 - - - 0 - - - 50 - - - - - - - Trophy - - - - - - Disable Trophy Notification - - - - - - - 0 - - - - - - 0 - 0 - - - - Trophy Notification Position - - - - - - - Left - - - - - - - Right - - - - - - - Top - - - - - - - Bottom - - - - - - - - - 0 - - - - - - 0 - 0 - - - - Notification Duration - - - - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - Open the custom trophy images/sounds folder - - - - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - - - Qt::Orientation::Vertical - - - QSizePolicy::Policy::MinimumExpanding - - - - 0 - 0 - - - - - - - - - - true - - - Input - - - - - 0 - 0 - 946 - 536 - - - - - - - - - 6 - - - 0 - - - - - Cursor - - - - 11 - - - 11 - - - - - true - - - - 0 - 0 - - - - Hide Cursor - - - - 7 - - - 11 - - - - - - - - - - - true - - - - 0 - 0 - - - - - 0 - 0 - - - - Hide Cursor Idle Timeout - - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - - - false - - - - 6 - - - 70 - - - 5 - - - 5 - - - 5 - - - - - true - - - - 0 - 0 - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Qt::LayoutDirection::LeftToRight - - - false - - - Qt::AlignmentFlag::AlignCenter - - - QAbstractSpinBox::ButtonSymbols::UpDownArrows - - - - - - 3600 - - - 5 - - - 10 - - - - - - - s - - - - - - - - - - - - - - - - - - 0 - 0 - - - - Controller - - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - - - false - - - - 0 - - - 11 - - - 11 - - - - - - 0 - 0 - - - - Enable Motion Controls - - - - - - - Enable Background Controller Input - - - - - - - - - - - - - - 0 - - - - - - - - 0 - 0 - - - - Microphone - - - - - - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 40 - - - - - - - - - - true - - - Paths - - - - - 0 - 0 - 946 - 536 - - - - - - - Game Folders - - - - - - - - Add... - - - - - - - Remove - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - - - - DLC Folder - - - - - - - - true - - - - - - - Browse - - - - - - - - - - - - Save Data Path - - - - - - - - true - - - - - - - Browse - - - - - - - - - - - - Portable User Folder - - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - 0 - 0 - - - - Create Portable User Folder from Common User Folder - - - - - - - Qt::Orientation::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - - - true - - - Log - - - - - 0 - 0 - 946 - 536 - - - - - 0 - 0 - - - - - - - 0 - - - 0 - - - - - - - Logger - - - - - - 0 - - - - - 0 - - - - - Enable Logging - - - - - - - Separate Log Files - - - - - - - - - - 16777215 - 16777215 - - - - Log Type - - - - - - - async - - - - - sync - - - - - - - - - - - - - 6 - - - 0 - - - - - - - Log Filter - - - - - - - - - Load Presets... - - - - - - - - - - - - - - Open Log Location - - - - - - - - - - - - - - - - true - - - Debug - - - - - 0 - 0 - 946 - 234 - - - - - 0 - 0 - - - - - - - - - - - true - - - - 0 - 0 - - - - - 11 - false - PreferDefault - - - - General - - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - - - - - - Enable Shaders Dumping - - - - - - - Enable Debug Dumping - - - - - - - Enable Vulkan Validation Layers - - - - - - - Enable Vulkan Synchronization Validation - - - - - - - Enable RenderDoc Debugging - - - - - - - - - - - 0 - 0 - - - - Qt::LayoutDirection::LeftToRight - - - false - - - Advanced - - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop - - - - 6 - - - 9 - - - - - Collect Shaders - - - - - - - Enable Crash Diagnostics - - - - - - - Copy GPU Buffers - - - - - - - Host Debug Markers - - - - - - - Guest Debug Markers - - - - - - - - - - - - Qt::Orientation::Vertical - - - - 20 - 5 - - - - - - - - - - - - true - - - Experimental - - - - - 0 - 0 - 946 - 287 - - - - - 0 - 0 - - - - - - - - - - - - 0 - 0 - - - - Experimental Features - - - - 6 - - - 9 - - - 9 - - - 9 - - - 9 - - - - - Enable Readbacks - - - - - - - Enable Readback Linear Images - - - - - - - Enable Direct Memory Access - - - - - - - Enable Devkit Console Mode - - - - - - - Enable PS4 Neo Mode - - - - - - - Set "PSN signed-in" to True - - - - - - - Set "Network Connected" to True - - - - - - - - - - - 0 - 0 - - - - - 0 - 0 - - - - - 11 - true - - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - false - - - Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter - - - true - - - 20 - - - -1 - - - - - - - - - - - - - - - - QDialogButtonBox::StandardButton::Apply|QDialogButtonBox::StandardButton::Close|QDialogButtonBox::StandardButton::RestoreDefaults|QDialogButtonBox::StandardButton::Save - - - - - - - - 0 - 0 - - - - - 16777215 - 170 - - - - true - - - - - - - - - - diff --git a/src/qt_gui/translations/ar_SA.ts b/src/qt_gui/translations/ar_SA.ts deleted file mode 100644 index c27545e50..000000000 --- a/src/qt_gui/translations/ar_SA.ts +++ /dev/null @@ -1,2461 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - حول محاكي الظل PS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - محاكي الظل هو محاكي تجريبي مفتوح المصدر مخصص لـ PS4 - - - This software should not be used to play games you have not legally obtained. - لا يجب استخدام هذا المحاكي لتشغيل ألعاب لم يتم الحصول عليها بطريقة قانونية. - - - - CheatsPatches - - 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 - - - No Image Available - الصورة غير موجودة - - - Serial: - الرَّقَم التسلسلي: - - - Version: - الإصدار: - - - Size: - الحجم: - - - Select Cheat File: - حدد ملَفّ الشفرات: - - - Repository: - المستودع: - - - Download Cheats - تحميل الشفرات - - - Delete File - حذف الملف - - - 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 - - - Select Patch File: - اختر مِلَف التصحيح: - - - Download Patches - تحميل ملفات التصحيح - - - Save - حفظ - - - Cheats - الشفرات - - - Patches - التصحيحات - - - Error - خطأ - - - No patch selected. - لم يتم تحديد أي مِلَف تصحيح. - - - Unable to open files.json for reading. - تعذّر فتح مِلَف 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 - - - Success - نجاح - - - Options saved successfully. - تم حفظ الإعدادات. - - - Invalid Source - المصدر غير صالح - - - The selected source is invalid. - المصدر المحدد غير صالح. - - - File Exists - الملف موجود مسبقًا - - - 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 - اكتمل التنزيل - - - 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. - فشل في تحليل بيانات JSON من HTML. - - - Failed to retrieve HTML page. - فشل في جلب صفحة HTML. - - - The game is in version: %1 - إصدار اللعبة الحالي: %1 - - - The downloaded patch only works on version: %1 - التصحيح الذي تم تنزيله يعمل فقط مع الإصدار:%1 - - - You may need to update your game. - قد تحتاج إلى تحديث لعبتك. - - - Incompatibility Notice - إشعار بعدم التوافق - - - Failed to open file: - :فشل في فتح الملف - - - XML ERROR: - :خطأ في XML - - - Failed to open files.json for writing - فشل في فتح files.json للكتابة - - - Author: - :المؤلف - - - Directory does not exist: - :المجلد غير موجود - - - Failed to open files.json for reading. - فشل في فتح files.json للقراءة. - - - Name: - :الاسم - - - Can't apply cheats before the game is started - لا 'يمكن تطبيق الشفرات قبل بَدْء اللعبة - - - Close - إغلاق - - - - CheckUpdate - - Auto Updater - التحديثات التلقائية - - - Error - خطأ - - - Network error: - خطأ في الشبكة: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - تسمح التحديثات التلقائية بـ 60 عملية تحقق من التحديث في الساعة.\nلقد وصلت إلى الحد المسموح به. الرجاء المحاولة لاحقًا. - - - Failed to parse update information. - فشل في تحليل معلومات التحديث. - - - No pre-releases found. - لم يتم العثور على أي إصدارات مسبقة. - - - Invalid release data. - بيانات الإصدار غير صالحة. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>تنويه:</b><br><br> ابتداءً من الإصدار <b>0.12.0</b>، لن تتلقى نسخة Qt من المحاكي تحديثات مباشرة.<br><br> مع ذلك، تظل واجهة Qt متاحة من خلال المُشغّل الرسمي الجديد:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – مبنية على شفرة المصدر الأصلية لـ shadPS4.<br><br>نوصي بالتحول إلى هذا المُشغّل لمواصلة تلقي التحديثات. - - - Your version is already up to date! - نسختك محدثة بالفعل! - - - Update Available - تحديث متاح - - - Update Channel - قناة التحديث - - - Current Version - الإصدار الحالي - - - Latest Version - آخر إصدار - - - Do you want to update? - هل تريد التحديث؟ - - - Show Changelog - عرض سجل التغييرات - - - Check for Updates at Startup - تحقق من التحديثات عند بدء التشغيل - - - Update - تحديث - - - No - لا - - - Hide Changelog - إخفاء سجل التغييرات - - - Changes - تغييرات - - - Network error occurred while trying to access the URL - حدث خطأ في الشبكة عند محاولة الوصول إلى الموقع - - - Download Complete - اكتمل التنزيل - - - The update has been downloaded, press OK to install. - تم تنزيل التحديث، اضغط على OK للتثبيت. - - - Failed to save the update file at - فشل في حفظ ملف التحديث في - - - Starting Update... - بدء التحديث... - - - Failed to create the update script file - فشل في إنشاء ملف سكريبت التحديث - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - جاري جلب بيانات التوافق، يرجى الانتظار - - - Cancel - إلغاء - - - Loading... - جاري التحميل... - - - Error - خطأ - - - Unable to update compatibility data! Try again later. - تعذر تحديث بيانات التوافق! حاول مرة أخرى لاحقاً. - - - Unable to open compatibility_data.json for writing. - تعذر فتح compatibility_data.json للكتابة. - - - Unknown - غير معروف - - - Nothing - لا شيء - - - Boots - إقلاع - - - Menus - القائمة - - - Ingame - داخل اللعبة - - - Playable - قابل للعب - - - - ControlSettings - - Configure Controls - إعدادات التحكم - - - D-Pad - الأسهم+عصا التحكم - - - Up - فوق - - - Left - يسار - - - Right - يمين - - - Down - تحت - - - Left Stick Deadzone (def:2 max:127) - النقطة العمياء للعصا اليسرى (الافتراضي: 2، الحد الأقصى: 127) - - - Left Deadzone - النقطة العمياء لليسار - - - Left Stick - عصا التحكم اليسرى - - - Config Selection - تحديد الإعدادات - - - Common Config - إعدادات عامة - - - Use per-game configs - استخدام إعدادات كل لُعْبَة - - - Face Buttons - الأزرار - - - Right Stick Deadzone (def:2, max:127) - النقطة العمياء للعصا اليمنى (الافتراضي: 2، الحد الأقصى: 127) - - - Right Deadzone - النقطة العمياء اليمنى - - - Right Stick - عصا التحكم اليمنى - - - Color Adjustment - تعديل الألوان - - - Override Lightbar Color - تجاوز لون شريط الإضاءة - - - Override Color - تجاوز اللون - - - Unable to Save - غير قادر على الحفظ - - - Cannot bind axis values more than once - لا يمكن ربط قيم المحور أكثر من مرة - - - Save - حفظ - - - Apply - تطبيق - - - Restore Defaults - استعادة الإعدادات الافتراضية - - - Cancel - إلغاء - - - unmapped - بدون تعيين - - - Options - الخيارات - - - Touchpad Left - لوحة اللمس - يسار - - - Touchpad Center - لوحة اللمس - الوَسَط - - - Touchpad Right - لوحة اللمس - الأيمن - - - Triangle - مثلث - - - Square - مربع - - - Circle - دائرة - - - Cross - اكس - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - لا يمكن استخدام نفس الزر لأكثر من وظيفة تم تكرار التعيين في الأزرار التالية: - -%1 - - - Press a button - اضغط زر - - - Move analog stick - حرّك عصا التحكّم - - - L1 and L2 - L1 + L2 - - - Active Gamepad - يد التحكم النشطة - - - Gamepad ID - معرّف يد التحكم - - - Default Gamepad - يد التحكم الافتراضية - - - No default selected - لم يتم اختيار افتراضي - - - n/a - غير متاح - - - Set Active Gamepad as Default - تعيين يد التحكم النشطة كافتراضية - - - Remove Default Gamepad - إزالة يد التحكم الافتراضية - - - R1 and R2 - R1 + R2 - - - ID: - المعرّف: - - - Default Controller Selected - تم اختيار يد التحكم الافتراضية - - - Active controller set as default - تم تعيين يد التحكم النشطة كافتراضية - - - Default Controller Removed - تم إزالة يد التحكم الافتراضية - - - Default controller setting removed - تمت إزالة إعداد اليد الافتراضية - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - تحرير أزرار الإدخال للوحة المفاتيح و الفأرة ووحدة التحكم - - - Use Per-Game configs - استخدام إعدادات كل لُعْبَة - - - Error - خطأ - - - Could not open the file for reading - تعذر فتح المِلَفّ للقراءة - - - Could not open the file for writing - تعذر فتح المِلَفّ للكتابة - - - Save Changes - حفظ التغييرات - - - Do you want to save changes? - هل تريد حفظ التغييرات؟ - - - Help - المساعدة - - - 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? - هل تريد إعادة تعيين هذا الإعداد إلى الإعداد الافتراضي المخصص لك؟ - - - Reset to Default - إعادة تعيين إلى الافتراضي - - - - ElfViewer - - Open Folder - افتح مجلد - - - - GameInfoClass - - Loading game list, please wait :3 - جارٍ تحميل قائمة الألعاب، يرجى الانتظار :3 - - - Cancel - إلغاء - - - Loading... - ...جارٍ التحميل - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - اختر المجلد - - - Directory to install games - مجلد تثبيت الألعاب - - - Browse - استعراض - - - Error - خطأ - - - Directory to install DLC - مكان تثبيت حزمات DLC - - - - GameListFrame - - Icon - أيقونة - - - Name - اسم - - - Serial - سيريال - - - Compatibility - التوافق - - - Region - منطقة - - - Firmware - البرمجيات الثابتة - - - Size - حجم - - - Version - إصدار - - - Path - مسار - - - Play Time - وقت اللعب - - - Never Played - لم تلعب أبداً - - - h - ا - - - m - ة - - - s - ثانية/ثواني - - - Compatibility is untested - لم يتم اختبار التوافق - - - Game does not initialize properly / crashes the emulator - اللعبة لا تبدأ بشكل صحيح / تتسبب في انهيار المحاكي - - - Game boots, but only displays a blank screen - اللعبة تبدأ بالإقلاع، لكنها تعرض شاشة فارغة فقط - - - Game displays an image but does not go past the menu - اللعبة تعرض صورة ولكن لا تتجاوز القائمة - - - Game has game-breaking glitches or unplayable performance - اللعبة بها أخطاء جسيمة أو أداء يجعلها غير قابلة للعب - - - Game can be completed with playable performance and no major glitches - يمكن إنهاء اللعبة بأداء جيد وبدون أعطال رئيسية - - - Click to see details on github - اضغط لعرض التفاصيل على GitHub - - - Last updated - آخر تحديث - - - Favorite - المفضلة - - - - GameListUtils - - B - بايت - - - KB - كيلو بايت - - - MB - ميغابايت - - - GB - جيجابايت - - - TB - تيرابايت - - - - GuiContextMenus - - Create Shortcut - إنشاء اختصار - - - Cheats / Patches - الشفرات / التصحيحات - - - SFO Viewer - عارض معلومات اللعبة (SFO) - - - Trophy Viewer - عارض الكؤوس - - - Open Folder... - فتح المجلد... - - - Open Game Folder - فتح مجلد اللعبة - - - Open Save Data Folder - فتح مجلد بيانات الحفظ - - - Open Log Folder - فتح مجلد السجل - - - Copy info... - ...نسخ المعلومات - - - Copy Name - نسخ الاسم - - - Copy Serial - نسخ الرقم التسلسلي - - - Copy Version - نسخ الإصدار - - - Copy Size - حجم النسخة - - - Copy All - نسخ الكل - - - Delete... - حذف... - - - Delete Game - حذف اللعبة - - - Delete Update - حذف التحديث - - - Delete DLC - حذف DLC - - - Delete Trophy - حذف الكؤوس - - - Compatibility... - التوافق... - - - Shortcut creation - إنشاء اختصار - - - Shortcut created successfully! - تم إنشاء الاختصار بنجاح! - - - Error - خطأ - - - Error creating shortcut! - خطأ في إنشاء الاختصار - - - Game - اللعبة - - - This game has no update to delete! - لا يوجد تحديث لهذه اللعبة لحذفه! - - - Update - تحديث - - - This game has no DLC to delete! - لا توجد محتويات إضافية (DLC) لهذه اللعبة لحذفها! - - - DLC - DLC - - - Delete %1 - حذف %1 - - - Are you sure you want to delete %1's %2 directory? - هل أنت متأكد من أنك تريد حذف دليل %1's %2؟ - - - Open Update Folder - فتح مجلد التحديث - - - Delete Save Data - حذف بيانات الحفظ - - - This game has no update folder to open! - لا يوجد مجلد تحديث لهذه اللعبة لفتحه! - - - No log file found for this game! - لم يتم العثور على ملف سجل لهذه اللعبة! - - - Failed to convert icon. - فشل تحويل الأيقونة. - - - This game has no save data to delete! - لا توجد بيانات حفظ لهذه اللعبة لحذفها! - - - This game has no saved trophies to delete! - لا توجد كؤوس محفوظة لهذه اللعبة لحذفها! - - - Save Data - بيانات الحفظ - - - Trophy - الكؤوس - - - SFO Viewer for - عارض SFO لـ - - - Remove from Favorites - إزالة من المفضلة - - - Add to Favorites - إضافة إلى المفضلة - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - البدء السريع - - - FAQ - الأسئلة الأكثر شيوعاً - - - Syntax - البنية - - - Special Bindings - الارتباطات الخاصة - - - Keybindings - تعيين الأزرار - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - KBMSettings - - Configure Controls - إعدادات جهاز التحكم - - - D-Pad - الأسهم+عصا التحكم - - - Up - أعلى - - - unmapped - غير معين - - - Left - يسار - - - Right - يمين - - - Down - أسفل - - - Left Analog Halfmode - تقليل سرعة عصا التحكم اليسرى للنصف - - - hold to move left stick at half-speed - الاستمرار للتحرك إلى اليسار بنصف السرعة - - - Left Stick - عصا التحكم اليسرى - - - Config Selection - تحديد الإعدادات - - - Common Config - إعدادات عامة - - - Use per-game configs - استخدام إعدادات خاصة لكل لعبه - - - Text Editor - محرّر النصوص - - - Help - المساعدة - - - Mouse to Joystick - تحويل الماوس إلى عصا التحكم - - - *press F7 ingame to activate - * اضغط F7 داخل اللعبة للتفعيل - - - Options - الخيارات - - - Mouse Movement Parameters - إعدادات حركة الماوس - - - note: click Help Button/Special Keybindings for more information - ملاحظة: لمزيد من المعلومات عن التعيينات الخاصة، اضغط على زر المساعدة - - - Face Buttons - الأزرار الأمامية - - - Triangle - مثلث - - - Square - مربع - - - Circle - دائرة - - - Cross - اكس - - - Right Analog Halfmode - وضع النصف للعصا اليمنى (نصف الحساسية أو نصف الحركة) - - - hold to move right stick at half-speed - اضغط مع الاستمرار لتحريك العصا اليمنى بسرعة منخفضة - - - Right Stick - عصا التحكم اليمنى - - - Speed Offset (def 0.125): - تعويض السرعة (الافتراضي 0.125): - - - Copy from Common Config - نسخ من الإعدادات العامة - - - Deadzone Offset (def 0.50): - تعويض منطقة الخمول (الافتراضي 0.50): - - - Speed Multiplier (def 1.0): - معدل مضاعفة السرعة (التلقائي 1.0): - - - 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. - يقوم هذا الزر بنسخ التعيينات من الإعدادات العامة إلى الملف الشخصي المحدد حاليًا، ولا يمكن استخدامه إذا كانت الإعدادات العامة هي الملف المحدد. - - - Copy values from Common Config - نسخ القيم من الإعدادات العامة - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - هل تريد استبدال التعيينات الحالية بالتعيينات من الإعدادات العامة؟ - - - Unable to Save - تعذّر الحفظ - - - Press a key - اضغط زرًا - - - Cannot set mapping - تعذّر تعيين الزر - - - Mousewheel cannot be mapped to stick outputs - لا يمكن تعيين عجلة الفأرة لمخرجات العصا - - - Save - حفظ - - - Apply - تطبيق - - - Restore Defaults - استعادة الإعدادات الافتراضية - - - Cancel - إلغاء - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - لا يمكن استخدام نفس الزر لأكثر من وظيفة. تم تكرار التعيين في الأزرار التالية: - -%1 - - - Touchpad Left - لوحة اللمس - يسار - - - Touchpad Center - لوحة اللمس - الوَسَط - - - Touchpad Right - لوحة اللمس - الأيمن - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - فتح / إضافة مجلد Elf - - - Boot Game - تشغيل اللعبة - - - Check for Updates - تحقق من التحديثات - - - About shadPS4 - shadPS4 حول - - - Configure... - ...تكوين - - - Recent Games - الألعاب الأخيرة - - - Open shadPS4 Folder - فتح مجلد shadPS4 - - - Exit - خروج - - - Exit shadPS4 - الخروج من shadPS4 - - - Exit the application. - إغلاق التطبيق - - - Show Game List - عرض قائمة الألعاب - - - Game List Refresh - تحديث قائمة الألعاب - - - Tiny - صغير جدًا - - - Small - صغير - - - Medium - متوسط - - - Large - كبير - - - List View - عرض القائمة - - - Grid View - عرض الشبكة - - - Elf Viewer - عارض Elf - - - Game Install Directory - دليل تثبيت اللعبة - - - Download Cheats/Patches - تنزيل الغش/التصحيحات - - - Dump Game List - تفريغ قائمة الألعاب - - - Trophy Viewer - عارض الجوائز - - - No games found. Please add your games to your library first. - لم يتم العثور على ألعاب. يرجى إضافة ألعابك إلى المكتبة أولاً. - - - Search... - ...بحث - - - File - ملف - - - View - عرض - - - Game List Icons - أيقونات قائمة الألعاب - - - Game List Mode - وضع قائمة الألعاب - - - Settings - الإعدادات - - - Utils - الأدوات - - - Themes - السمات - - - Help - مساعدة - - - Dark - داكن - - - Light - فاتح - - - Green - أخضر - - - Blue - أزرق - - - Violet - بنفسجي - - - toolBar - شريط الأدوات - - - Game List - قائمة الألعاب - - - Download Cheats For All Installed Games - تحميل الشفرات لجميع الألعاب المثبتة - - - Download Patches For All Games - تنزيل التصحيحات لجميع الألعاب - - - Download Complete - اكتمل التنزيل - - - You have downloaded cheats for all the games you have installed. - تم تحميل الشفرات لجميع الألعاب المثبتة. - - - Patches Downloaded Successfully! - !تم تنزيل التصحيحات بنجاح - - - All Patches available for all games have been downloaded. - .تم تنزيل جميع التصحيحات المتاحة لجميع الألعاب - - - Games: - :الألعاب - - - ELF files (*.bin *.elf *.oelf) - ELF (*.bin *.elf *.oelf) ملفات - - - Game Boot - تشغيل اللعبة - - - Only one file can be selected! - !يمكن تحديد ملف واحد فقط - - - Run Game - تشغيل اللعبة - - - Eboot.bin file not found - لم يتم العثور على ملف Eboot.bin - - - Game is already running! - اللعبة قيد التشغيل بالفعل! - - - shadPS4 - shadPS4 - - - Play - تشغيل - - - Pause - إيقاف مؤقت - - - Stop - إيقاف - - - Restart - إعادة تشغيل - - - Full Screen - الشاشة الكاملة - - - Controllers - وحدات التحكم - - - Keyboard - لوحة المفاتيح - - - Refresh List - تحديث القائمة - - - Resume - استئناف - - - Show Labels Under Icons - إظهار التسميات تحت الأيقونات - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - الإعدادات - - - General - عام - - - System - النظام - - - Console Language - لغة النظام - - - Emulator Language - لغة المحاكي - - - Default tab when opening settings - التبويب الافتراضي عند فتح الإعدادات - - - Show Game Size In List - إظهار حجم اللعبة في القائمة - - - Enable Discord Rich Presence - تفعيل حالة الثراء في ديسكورد - - - Username - اسم المستخدم - - - Trophy Key - مفتاح الكأس - - - Trophy - الكؤوس - - - Open the custom trophy images/sounds folder - فتح مجلد الصور/الأصوات المخصصة للكؤوس - - - Logger - سجل الأحداث - - - Log Type - نوع السجل - - - Log Filter - مرشح السجل - - - Open Log Location - فتح موقع السجل - - - Input - إعدادات المدخلات - - - Cursor - مؤشر الماوس - - - Hide Cursor - إخفاء مؤشر الماوس - - - Hide Cursor Idle Timeout - إخفاء المؤشر بعد فترة الخمول - - - Microphone - الميكروفون - - - None - لا شيء - - - Default Device - الجهاز الافتراضي - - - s - س - - - Controller - التحكم - - - Graphics - الرسوميات - - - GUI - واجهة - - - User - مستخدم - - - Graphics Device - جهاز الرسوميات - - - Advanced - الإعدادات المتقدمة - - - Enable Shaders Dumping - تمكين تصدير الشيدرات - - - Enable NULL GPU - تمكين GPU فارغ - - - Enable HDR - تشغيل HDR - - - Paths - المسارات - - - Game Folders - مجلدات اللعبة - - - Add... - إضافة... - - - Remove - إزالة - - - Debug - التصحيح - - - Enable Debug Dumping - تمكين تصدير بيانات التصحيح - - - Enable Vulkan Validation Layers - تمكين طبقات التحقق لـ Vulkan - - - Enable Vulkan Synchronization Validation - تمكين التحقق من تزامن فولكن - - - Enable RenderDoc Debugging - تمكين التصحيح باستخدام RenderDoc - - - Enable Crash Diagnostics - تشغيل تشخيص الأعطال - - - Collect Shaders - جمع الشيدرات - - - Copy GPU Buffers - نسخ مخازن الرسوميات - - - Host Debug Markers - علامات التصحيح على المضيف - - - Guest Debug Markers - علامات التصحيح على الضيف - - - Enable Readbacks - تمكين إعادة القراءة - - - Enable Readback Linear Images - تمكين استرجاع الصور الخطية - - - Update - تحديث - - - Check for Updates at Startup - التحقق من التحديثات عند بدء التشغيل - - - Always Show Changelog - عرض سجل التغييرات دائمًا - - - Update Channel - قناة التحديث - - - Check for Updates - التحقق من التحديثات - - - Title Music - موسيقى الشاشة الرئيسية - - - Disable Trophy Notification - تعطيل إشعار التروفي - - - Background Image - صورة الخلفية - - - Show Background Image - إظهار صورة الخلفية - - - Opacity - الشفافية - - - Play title music - تشغيل موسيقى العنوان - - - Update Compatibility Database On Startup - تحديث بيانات التوافق تلقائيًا عند التشغيل - - - Game Compatibility - توافق الألعاب - - - Display Compatibility Data - عرض بيانات التوافق - - - Update Compatibility Database - تحديث قاعدة بيانات التوافق - - - Volume - الصوت - - - Save - حفظ - - - Apply - تطبيق - - - Restore Defaults - استعادة الإعدادات الافتراضية - - - Close - إغلاق - - - 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يوصى بضبطها على لغة يدعمها الجهاز، والتي قد تختلف حسب المنطقة. - - - Emulator Language:\nSets the language of the emulator's user interface. - لغة المحاكي:\nتحدد اللغة المستخدمة في واجهة المحاكي. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - عرض شاشة البداية:\nيعرض شاشة البداية الخاصة باللعبة (صورة مميزة) أثناء بدء التشغيل. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - تفعيل حالة الثراء في ديسكورد:\nيعرض أيقونة المحاكي ومعلومات ذات صلة على ملفك الشخصي في ديسكورد. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - اسم المستخدم:\nيحدد اسم حساب'PS4، وقد يظهر في بعض الألعاب. - - - 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ييحدد ما إذا كان سيتم مزامنة مخرجات نافذة السجل لتحسين الأداء. قد يؤدي ذلك إلى تأثيرات سلبية على المحاكاة. - - - 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 - عند اختيار مستوى معين، يتم تجاهل كل ما قبله، وتسجيل كل ما بعده. - - - 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. - تحديث: Release: نُسخ شهرية مستقرة وخضعت للاختبار، لكنها قد تكون قديمة. -Nightly: نُسخ تحتوي على أحدث الميزات، لكنها أقل استقرارًا وقد تحتوي على أخطاء. - - - 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في حال كانت اللعبة تدعم ذلك، يتم تشغيل موسيقى خاصة عند تحديدها في الواجهة. - - - 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دائمًا: لا يظهر إطلاقًا. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - مدة إخفاء المؤشر عند الخمول:\nالوقت (بالثواني) الذي ينتظره المؤشر قبل أن يختفي تلقائيًا عند عدم استخدامه. - - - 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. - تحديث التوافق عند بدء التشغيل:\nيتم تحديث قاعدة بيانات التوافق تلقائيًا عند بدء تشغيل shadPS4. - - - Update Compatibility Database:\nImmediately update the compatibility database. - تحديث قاعدة بيانات التوافق:\nتحديث فوري لقاعدة بيانات التوافق. - - - Never - أبداً - - - Idle - خامل - - - Always - دائماً - - - 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 التي سيستخدمها المحاكي من القائمة المنسدلة،\nأو اختر ""تحديد تلقائي"" ليتم اختيارها تلقائيًا. - - - 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يختلف هذا عن دقة اللعبة داخل اللعبة. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - تمكين تفريغ الشيدرات:\nلأغراض تصحيح الأخطاء التقنية، يقوم بحفظ شيدرات اللعبة في مجلد أثناء عرضها. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - تمكين 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. - تشغيل HDR:\n يقوم بتشغيل HDR في الألعاب المدعومة.\nيجب أن تدعم شاشتك أطياف ألوان BT2020 PQ و صيغة تنسيق المبادلة RGB10A2. - - - Game Folders:\nThe list of folders to check for installed games. - مجلدات اللعبة:\nالمجلدات التي يتم فحصها تلقائيًا للعثور على الألعاب المثبّتة - - - Add:\nAdd a folder to the list. - إضافة:\nأضف مجلداً إلى القائمة. - - - Remove:\nRemove a folder from the list. - إزالة:\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 في مجلد. - - - 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 لالتقاط وتحليل الإطار الذي يتم عرضه حاليًا. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - تجميع برامج التظليل:\n يجب أن تقوم بتشغيل هذا لتعديل برامج التظليل باستخدام قائمة تصحيح الأخطاء (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - تمكين إعادة القراءة:\nفعّل استرجاع وكتابة بيانات الذاكرة الرسومية (GPU).\nمطلوب لتشغيل بعض الألعاب بشكل صحيح.\nقد يسبب مشكلة في الأداء أو الاستقرار. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - تمكين استرجاع الصور الخطية:\nيتيح تحميل الصور الخطية المعدّلة من GPU بشكل غير متزامن.\nقد يساعد في حل المشاكل الرسومية في بعض الألعاب. - - - 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. - علامات تصحيح الأخطاء للمضيف:\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. - علامات تصحيح الضيف:\nيُدخل أي علامات تصحيح أضافتها اللعبة بنفسها إلى ذاكرة أوامر الرسوميات.\nإذا تم التفعيل الأفضل تمكين "تشخيص الأعطال".\nمفيد لبرامج مثل دوك. - - - 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. - تصفح:\nاختر مجلدًا لتحديده كمكان لحفظ بيانات التخزين. - - - Release - إصدار - - - Nightly - إصدار ليلي - - - Set the volume of the background music. - ضبط صوت الموسيقى في الخلفية. - - - Enable Motion Controls - تفعيل التحكم بالحركة - - - Save Data Path - مسار بيانات الحفظ - - - Browse - تصفح - - - async - غير متزامن - - - sync - متزامن - - - Auto Select - تلقائي - - - Directory to install games - مجلد تثبيت الألعاب - - - Directory to save data - مسار الحفظ لبيانات الألعاب - - - Video - الفيديو - - - Display Mode - طريقة العرض - - - Windowed - نافذة - - - Fullscreen - شاشة كاملة - - - Fullscreen (Borderless) - شاشة كاملة (دون حدود) - - - Window Size - حجم النافذة - - - W: - العرض: - - - H: - الارتفاع: - - - Separate Log Files - ملفات السجل المنفصل - - - Separate Log Files:\nWrites a separate logfile for each game. - ملفات السجل المنفصلة:\nيتم كتابة سجل منفصل لكل لعبه. - - - Trophy Notification Position - موقع إشعار الكأس - - - Left - يسار - - - Right - يمين - - - Top - في الأعلى - - - Bottom - الأسفل - - - Notification Duration - مدة الإشعار - - - Portable 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. - مجلد المستخدم القابل للنقل:\nتخزين إعدادات وبيانات المحاكي التي ستُطبق فقط على هذا الإصدار في المجلد الحالي. بعد إنشاء مجلد المستخدم القابل للنقل، يجب إعادة تشغيل التطبيق للبدء في استخدامه. - - - Cannot create portable user folder - لا يمكن إنشاء مجلد المستخدم المتنقل - - - %1 already exists - %1 موجود مسبقاً - - - Portable user folder 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. - افتح مجلد الصور/الأصوات الخاصة بالجوائز المخصصة:\nيمكنك إضافة صور مخصصة للجوائز وصوت مرفق.\nأضف الملفات إلى مجلد custom_trophy بالأسماء التالية:\ntrophy.wav أو trophy.mp3، bronze.png، gold.png، platinum.png، silver.png\nملاحظة: الصوت سيعمل فقط في الإصدارات التي تستخدم QT. - - - * Unsupported Vulkan Version - نسخ Vulkan غير مدعومة - - - Experimental Features - الميزات التجريبية - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - ⚠️ تحذير: هذه الميزات تجريبية ويُفضّل عدم تفعيلها إلا إذا طُلب منك، أو إذا كانت مطلوبة لتشغيل لُعْبَة معينة. -إذا كان لديك أي استفسار، يُرجى السؤال في مجتمع Discord الخاص بـمحاكي الظل PS4. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - عارض الكؤوس - - - Select Game: - اختر الُعْبَه: - - - Progress - مقدار التقدُّم - - - Show Earned Trophies - عرض الكؤوس المكتسبة - - - Show Not Earned Trophies - عرض الكؤوس غير المكتسبة - - - Show Hidden Trophies - عرض الكؤوس المخفية - - - diff --git a/src/qt_gui/translations/ca_ES.ts b/src/qt_gui/translations/ca_ES.ts deleted file mode 100644 index 7f7631bd5..000000000 --- a/src/qt_gui/translations/ca_ES.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Sobre shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 és un emulador experimental de codi obert de la PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Aquest programari no s'hauria de fer servir per jugar jocs que no has obtingut legalment. - - - - CheatsPatches - - Cheats / Patches for - Trucs / Correccions per - - - 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 - Els trucs i les correccions són experimentals.\nFes-les servir amb precaució.\n\nDescarrega trucs individualment seleccionant el repositori i clicant al botó de baixada.\nA la pestanya de correccions, et pots descarregar totes les correccions de cop, escull quines vols fer servir i desa la selecció.\n\nCom que no desenvolupem ni els trucs ni les correccions,\nhas d'informar de qualsevol problema als seus autors corresponents.\n\nHas creat un nou truc? Visita:\n - - - No Image Available - No hi ha imatge disponible - - - Serial: - Número de sèrie: - - - Version: - Versió: - - - Size: - Mida: - - - Select Cheat File: - Selecciona el fitxer de trucs: - - - Repository: - Repositori: - - - Download Cheats - Descarrega els trucs - - - Delete File - Elimina el fitxer - - - No files selected. - No hi ha cap fitxer seleccionat. - - - You can delete the cheats you don't want after downloading them. - Pots suprimir trucs que no vols abans de descarregar-los. - - - Do you want to delete the selected file?\n%1 - Estàs segur que vols esborrar el fitxer seleccionat?\n%1 - - - Select Patch File: - Selecciona un fitxer de correcció: - - - Download Patches - Descarrega les correccions - - - Save - Desa - - - Cheats - Trucs - - - Patches - Correccions - - - Error - Error - - - No patch selected. - No s'ha seleccionat cap correcció. - - - Unable to open files.json for reading. - Error en obrir fitxers .json per modificar-los. - - - No patch file found for the current serial. - No s'ha trobat fitxer de correccions pel número de sèrie actual. - - - Unable to open the file for reading. - No es pot obrir el fitxer per llegir-lo. - - - Unable to open the file for writing. - No es pot obrir el fitxer per modificar-lo. - - - Failed to parse XML: - Error en analitzar XML: - - - Success - Realitzat amb èxit - - - Options saved successfully. - Opcions desades correctament. - - - Invalid Source - Font no vàlida - - - The selected source is invalid. - La font seleccionada no és vàlida. - - - File Exists - El fitxer ja existeix - - - File already exists. Do you want to replace it? - Aquest fitxer ja existeix. Estàs segur que el vols reemplaçar? - - - Failed to save file: - Error en desar el fitxer: - - - Failed to download file: - Error en descarregar el fitxer: - - - Cheats Not Found - No s'han trobat els trucs - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - No s'han trobat trucs per aquest joc en aquesta versió del repositori seleccionat, prova-ho amb un altre repositori o amb una versió diferent del joc. - - - Cheats Downloaded Successfully - S'han descarregat els trucs correctament - - - 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. - Has descarregat correctament els trucs per aquesta versió del joc des d'aquest repositori. Pots provar de descarregar des d'un altre repositori; si està disponible, també pots seleccionar el fitxer des d'una llista. - - - Failed to save: - Error en desar: - - - Failed to download: - Error en la descàrrega: - - - Download Complete - Descàrrega completa - - - 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. - Has descarregat les correccions correctament! Totes les correccions disponibles per tots els jocs s'han descarregat, no cal descarregar-les individualment com passa amb els trucs. Si una correcció no apareix, pot ser que no existeixi per aquesta versió o per aquest número de sèrie del joc. - - - Failed to parse JSON data from HTML. - Error en analitzar les dades JSON del HTML. - - - Failed to retrieve HTML page. - Error en recuperar la pàgina HTML. - - - The game is in version: %1 - La versió del joc és: %1 - - - The downloaded patch only works on version: %1 - La correcció descarregada només funció amb la versió: %1 - - - You may need to update your game. - Cal actualitzar el joc. - - - Incompatibility Notice - Avís d'incompatibilitat - - - Failed to open file: - Error en obrir el fitxer: - - - XML ERROR: - Error XML: - - - Failed to open files.json for writing - Error en obrir fitxers .json per modificar-los - - - Author: - Autor: - - - Directory does not exist: - Aquesta carpeta no existeix: - - - Failed to open files.json for reading. - Error en obrir fitxers .json per llegir-los. - - - Name: - Nom: - - - Can't apply cheats before the game is started - No es poden aplicar trucs abans que s'iniciï el joc - - - Close - Tanca - - - - CheckUpdate - - Auto Updater - Actualització automàtica - - - Error - Error - - - Network error: - Error de xarxa: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - L'actualització automàtica permet fer 60 comprovacions cada hora.\nTu has arribat a aquest límit. Torna a intentar-ho més tard. - - - Failed to parse update information. - Error en analitzar la informació de l'actualització. - - - No pre-releases found. - No s'han trobat llançaments previs. - - - Invalid release data. - Dades de la versió no vàlides. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Avís:</b><br><br> A partir de la versió <b>0.12.0</b>, la versió Qt de l’emulador ja no rebrà actualitzacions directes.<br><br> Tanmateix, la interfície Qt continua disponible mitjançant el nou llançador oficial:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – basat en el codi font original de shadPS4.<br><br>Recomanem passar a aquest llançador per continuar rebent actualitzacions. - - - Your version is already up to date! - La teva versió ja és la més actualitzada! - - - Update Available - Hi ha una actualització disponible - - - Update Channel - Actualitza el canal - - - Current Version - Versió actual - - - Latest Version - Última versió - - - Do you want to update? - Estàs segur que vols actualitzar? - - - Show Changelog - Mostra el registre de canvis - - - Check for Updates at Startup - Comprova les actualitzacions a l'inici - - - Update - Actualitza - - - No - No - - - Hide Changelog - Oculta el registre de canvis - - - Changes - Canvis - - - Network error occurred while trying to access the URL - S'ha produït un error de xarxa en intentar connectar a l'adreça web - - - Download Complete - Descàrrega completa - - - The update has been downloaded, press OK to install. - S'ha baixat l'actualització, clica OK per instal·lar-la. - - - Failed to save the update file at - Error en desar el fitxer d'actualització a - - - Starting Update... - Iniciant l'actualització... - - - Failed to create the update script file - Error en crear el fitxer de script d'actualització - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Obtenint dades de compatibilitat, espera si us plau - - - Cancel - Cancel·la - - - Loading... - Carregant... - - - Error - Error - - - Unable to update compatibility data! Try again later. - No s'ha pogut actualitzar les dades de compatibilitat! Prova-ho més tard. - - - Unable to open compatibility_data.json for writing. - No es pot obrir el fitxer compatibility_data.json per modificar-lo. - - - Unknown - Desconegut - - - Nothing - Res - - - Boots - Executa - - - Menus - Menús - - - Ingame - En joc - - - Playable - Jugable - - - - ControlSettings - - Configure Controls - Configura els controladors - - - D-Pad - Botons de direcció - - - Up - Amunt - - - Left - Esquerra - - - Right - Dreta - - - Down - Avall - - - Left Stick Deadzone (def:2 max:127) - Zona morta de la palanca esquerra (per defecte:2 màxim:127) - - - Left Deadzone - Zona morta de la palanca esquerra - - - Left Stick - Palanca esquerra - - - Config Selection - Configura la selecció - - - Common Config - Configuració estàndard - - - Use per-game configs - Fes servir configuracions per cada joc - - - Face Buttons - Botons d'acció - - - Right Stick Deadzone (def:2, max:127) - Zona morta de la palanca dreta (per defecte:2 màxim:127) - - - Right Deadzone - Zona morta de la palanca dreta - - - Right Stick - Palanca dreta - - - Color Adjustment - Ajust del color - - - Override Lightbar Color - Canvia el color de la barra de llum - - - Override Color - Reemplaça el color - - - Unable to Save - No s'ha pogut desar - - - Cannot bind axis values more than once - No es pot vincular els valors de l'eix més d'una vegada - - - Save - Desa - - - Apply - Aplica - - - Restore Defaults - Restaura als valors predeterminats - - - Cancel - Cancel·la - - - unmapped - sense assignar - - - Options - Opcions - - - Touchpad Left - Touchpad esquerra - - - Touchpad Center - Touchpad centre - - - Touchpad Right - Touchpad dreta - - - Triangle - Triangle - - - Square - Quadrat - - - Circle - Cercle - - - Cross - Creu - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - No es pot assignar una entrada més d'una vegada. S'han assignat de manera duplicada pels següents botons: - -%1 - - - Press a button - Clica un botó - - - Move analog stick - Mou la palanca - - - L1 and L2 - L1 i L2 - - - Active Gamepad - Controlador actiu - - - Gamepad ID - ID del controlador - - - Default Gamepad - Controlador per defecte - - - No default selected - No hi ha cap seleccionat per defecte - - - n/a - n/a - - - Set Active Gamepad as Default - Estableix el controlador actual per defecte - - - Remove Default Gamepad - Elimina el controlador per defecte - - - R1 and R2 - R1 i R2 - - - ID: - ID: - - - Default Controller Selected - Seleccionat el controlador per defecte - - - Active controller set as default - El controlador actiu per defecte - - - Default Controller Removed - Eliminat el controlador per defecte - - - Default controller setting removed - S'ha eliminat el controlador per defecte - - - RED - VERMELL - - - GREEN - VERD - - - BLUE - BLAU - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Edita les assignacions del teclat, ratolí i controlador - - - Use Per-Game configs - Fes servir configuracions per cada joc - - - Error - Error - - - Could not open the file for reading - No es pot obrir el fitxer per llegir-lo - - - Could not open the file for writing - No es pot obrir el fitxer per modificar-lo - - - Save Changes - Desa els canvis - - - Do you want to save changes? - Voleu desar els canvis? - - - Help - Ajuda - - - Do you want to reset your custom default config to the original default config? - Vols reiniciar la configuració personalitzada a la configuració original per defecte? - - - Do you want to reset this config to your custom default config? - Vols reiniciar aquesta configuració a la configuració personalitzada per defecte? - - - Reset to Default - Reinicia ala valors predeterminats - - - - ElfViewer - - Open Folder - Obre la carpeta - - - - GameInfoClass - - Loading game list, please wait :3 - Carregant la llista de jocs, espera si us plau :3 - - - Cancel - Cancel·la - - - Loading... - Carregant... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Selecciona carpeta - - - Directory to install games - Carpeta per instal·lar jocs - - - Browse - Cercart - - - Error - Error - - - Directory to install DLC - Carpeta per instal·lar DLC - - - - GameListFrame - - Icon - Icona - - - Name - Nom - - - Serial - Número de sèrie - - - Compatibility - Compatibilitat - - - Region - Regió - - - Firmware - Firmware - - - Size - Mida - - - Version - Versió - - - Path - Camí - - - Play Time - Temps de joc - - - Never Played - Mai jugat - - - h - h - - - m - m - - - s - s - - - Compatibility is untested - No s'ha provat la compatibilitat - - - Game does not initialize properly / crashes the emulator - El joc no s'inicialitza correctament / l'emulador fa fallida - - - Game boots, but only displays a blank screen - El joc s'inicia, però es queda en blanc - - - Game displays an image but does not go past the menu - El joc mostra imatges, però no es pot anar més enllà dels menús - - - Game has game-breaking glitches or unplayable performance - El joc té errors greus o un rendiment que no el fa jugable - - - Game can be completed with playable performance and no major glitches - El joc pot ser completat amb un rendiment jugable i amb pocs errors greus - - - Click to see details on github - Clica per veure els detalls a github - - - Last updated - Darrera actualització - - - Favorite - Preferit - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Crear una drecera - - - Cheats / Patches - Trucs / Correccions - - - SFO Viewer - Visualitzador SFO - - - Trophy Viewer - Visualitzador de trofeus - - - Open Folder... - Obre la carpeta... - - - Open Game Folder - Obre la carpeta de jocs - - - Open Save Data Folder - Obre la carpeta de dades desades - - - Open Log Folder - Obre la carpeta de registres - - - Copy info... - Copia la informació... - - - Copy Name - Copia el nom - - - Copy Serial - Copia el número de sèrie - - - Copy Version - Copia la versió - - - Copy Size - Copia la mida - - - Copy All - Copia tot - - - Delete... - Esborra... - - - Delete Game - Esborra el joc - - - Delete Update - Suprimeix l'actualització - - - Delete DLC - Esborra el DLC - - - Delete Trophy - Suprimeix el trofeu - - - Compatibility... - Compatibilitat... - - - Shortcut creation - Crea una drecera - - - Shortcut created successfully! - S'ha creat la drecera correctament! - - - Error - Error - - - Error creating shortcut! - Error en crear la drecera! - - - Game - Joc - - - This game has no update to delete! - Aquest joc no té una actualització per esborrar! - - - Update - Actualitza - - - This game has no DLC to delete! - Aquest joc no té un DLC per esborrar! - - - DLC - DLC - - - Delete %1 - Esborra %1 - - - Are you sure you want to delete %1's %2 directory? - Estàs segur que vols eliminar la carpeta %1 de %2? - - - Open Update Folder - Obre la carpeta d'actualitzacions - - - Delete Save Data - Elimina les dades desades - - - This game has no update folder to open! - Aquest joc no té carpeta d'actualització per obrir! - - - No log file found for this game! - No s'ha trobat fitxer de registre per aquest joc! - - - Failed to convert icon. - Error en convertir la icona. - - - This game has no save data to delete! - Aquest joc no té dades desades per esborrar! - - - This game has no saved trophies to delete! - Aquest joc no té trofeus desats per esborrar! - - - Save Data - Desa les dades - - - Trophy - Trofeu - - - SFO Viewer for - Visualitzador SFO per - - - Remove from Favorites - Esborra dels preferits - - - Add to Favorites - Afegeix a preferits - - - Game-specific Settings... - Configuració específica del joc... - - - Configure Game-specific Settings - Configuració específica del joc - - - Create Game-specific Settings from Global Settings - Crea una configuració específica del joc des de la configuració global - - - Delete Game-specific Settings - Esborra la configuració específica del joc - - - Update Database - Actualitza la base de dades - - - View Report - Visualitza l'informe - - - Submit a Report - Envia un informe - - - Confirm deletion - Confirma la supressió - - - Delete game-specific settings? - Vols esborrar la configuració específica del joc? - - - - HelpDialog - - Quickstart - Inici ràpid - - - FAQ - Preguntes freqüents - - - Syntax - Sintaxi - - - Special Bindings - Assignació de tecles especials - - - Keybindings - Dreceres de teclat - - - - Hotkeys - - Customize Hotkeys - Personalitza les dreceres de teclat - - - Controller Hotkeys - Dreceres del controlador - - - Show FPS Counter - Mostra el comptador de fotogrames per segon - - - unmapped - sense assignar - - - Quit Emulation - Tanca l'emulació - - - Reload Button Mappings - Recarrega les assignacions de botons - - - Toggle Fullscreen - Commuta pantalla completa - - - Toggle Pause - Commuta la pausa - - - Keyboard Hotkeys - Dreceres de teclat - - - Renderdoc Capture (for debugging only) - Captura Renderdoc (per motius de depuració) - - - Toggle Mouse to Joystick Emulation - Alterna el ratolí com a emulador del joystick - - - Toggle Mouse to Gyro Emulation - Alterna el ratolí com a emulador de giroscopi - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Ajuda: Fins a 3 entrades simultànies poden ser assignades per cada drecera de teclat - - - Save - Desa - - - Apply - Aplicar - - - Cancel - Cancel·lar - - - Restore Defaults - Restaura els valors per defecte - - - Unable to Save - No s'ha pogut desar - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - No es pot assignar una entrada més d'una vegada. S'han assignat de manera duplicada pels següents botons: - -%1 - - - Waiting for inputs - Esperant per alguna entrada - - - - KBMSettings - - Configure Controls - Configura els controladors - - - D-Pad - Botons de direcció - - - Up - Amunt - - - unmapped - sense assignar - - - Left - Esquerra - - - Right - Dreta - - - Down - Avall - - - Left Analog Halfmode - Mode reduït de la palanca esquerra - - - hold to move left stick at half-speed - manté per moure la palanca esquerra a mitja velocitat - - - Left Stick - Palanca esquerra - - - Config Selection - Configura la selecció - - - Common Config - Configuració estàndard - - - Use per-game configs - Fes servir configuracions per cada joc - - - Text Editor - Editor de text - - - Help - Ajuda - - - Mouse to Joystick - Ratolí a palanca - - - *press F7 ingame to activate - Pressiona F7 durant el joc per activar - - - Options - Opcions - - - Mouse Movement Parameters - Paràmetres de moviment del ratolí - - - note: click Help Button/Special Keybindings for more information - nota: clica al botó Ajuda/Assignació de tecles especials per més informació - - - Face Buttons - Botons d'acció - - - Triangle - Triangle - - - Square - Quadrat - - - Circle - Cercle - - - Cross - Creu - - - Right Analog Halfmode - Mode reduït de la palanca dreta - - - hold to move right stick at half-speed - manté per moure la palanca dreta a mitja velocitat - - - Right Stick - Palanca dreta - - - Speed Offset (def 0.125): - Compensació de velocitat (0,125 per defecte): - - - Copy from Common Config - Copia de la configuració estàndard - - - Deadzone Offset (def 0.50): - Desplaçament de zona morta (0,50 per defecte): - - - Speed Multiplier (def 1.0): - Multiplicador de velocitat (1,0 per defecte): - - - Common Config Selected - Configuració estàndard seleccionada - - - 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. - Aquest botó copia les assignacions de la configuració comuna al perfil seleccionat, i no es pot utilitzar si has seleccionat el perfil de la configuració comuna. - - - Copy values from Common Config - Copia els valors de la configuració estàndard - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Vols sobreescriure l'assignació actual amb l'assignació de la configuració comuna? - - - Unable to Save - No s'ha pogut desar - - - Press a key - Premeu una tecla - - - Cannot set mapping - No s'ha pogut fer l'assignació - - - Mousewheel cannot be mapped to stick outputs - La roda del ratolí no es pot assignar a les palanques - - - Save - Desa - - - Apply - Aplica - - - Restore Defaults - Restaura els valors per defecte - - - Cancel - Cancel·la - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - No es pot assignar una entrada més d'una vegada. S'han assignat de manera duplicada pels següents botons: - -%1 - - - Touchpad Left - Touchpad esquerra - - - Touchpad Center - Touchpad centre - - - Touchpad Right - Touchpad dreta - - - - LogPresetsDialog - - Log Filter Presets - Filtre de registre predeterminat - - - Comment - Comentari - - - Filter - Filtre - - - Load - Carregar - - - Close - Tanca - - - Add a new preset after the selected row - Afegeix una nova configuració preseleccionada després de la fila seleccionada - - - Remove selected presets - Elimina les configuracions predeterminades seleccionades - - - Load the selected preset - Carrega la configuració predeterminada seleccionada - - - - MainWindow - - Open/Add Elf Folder - Obre/Afegeix la carpeta Elf - - - Boot Game - Executa el joc - - - Check for Updates - Comprova si hi ha actualitzacions - - - About shadPS4 - Sobre shadPS4 - - - Configure... - Configura... - - - Recent Games - Jocs recents - - - Open shadPS4 Folder - Obre la carpeta de shadPS4 - - - Exit - Sortida - - - Exit shadPS4 - Surt de shadPS4 - - - Exit the application. - Surt de l'aplicació. - - - Show Game List - Mostra la llista de jocs - - - Game List Refresh - Actualitza la llista de jocs - - - Tiny - Molt petita - - - Small - Petita - - - Medium - Mitjà - - - Large - Gran - - - List View - Visualització en llista - - - Grid View - Visualització en graella - - - Elf Viewer - Visualitzador Elf - - - Game Install Directory - Carpeta d'instal·lació de jocs - - - Download Cheats/Patches - Descarrega Trucs/Correccions - - - Dump Game List - Aboca la llista de jocs - - - Trophy Viewer - Visualitzador de trofeus - - - No games found. Please add your games to your library first. - No s'han trobat jocs. Primer afegeix els teus jocs a la llibreria, si us plau. - - - Search... - Cerca... - - - File - Fitxer - - - View - Visualitza - - - Game List Icons - Icones de la llista de jocs - - - Game List Mode - Mode de la llista de jocs - - - Settings - Configuració - - - Utils - Útils - - - Themes - Temes - - - Help - Ajuda - - - Dark - Fosc - - - Light - Clar - - - Green - Verd - - - Blue - Blau - - - Violet - Violeta - - - toolBar - Barra d'eines - - - Game List - Llista de jocs - - - Download Cheats For All Installed Games - Descarrega els trucs per tots els jocs instal·lats - - - Download Patches For All Games - Descarrega les correccions per tots els jocs - - - Download Complete - Descàrrega completa - - - You have downloaded cheats for all the games you have installed. - Has descarregat trucs per tots els jocs que tens instal·lats. - - - Patches Downloaded Successfully! - S'han descarregat les correccions correctament! - - - All Patches available for all games have been downloaded. - S'han descarregat totes les correccions disponibles de tots els jocs. - - - Games: - Jocs: - - - ELF files (*.bin *.elf *.oelf) - Fitxers ELF (*.bin *.elf *.oelf) - - - Game Boot - Executa el joc - - - Only one file can be selected! - Només es pot seleccionar un fitxer! - - - Run Game - Executa el joc - - - Eboot.bin file not found - No s'ha trobat el fitxer Eboot.bin - - - Game is already running! - El joc ja està en funcionament! - - - shadPS4 - shadPS4 - - - Play - Reprodueix - - - Pause - Pausa - - - Stop - Atura - - - Restart - Reinicia - - - Full Screen - Pantalla completa - - - Controllers - Controladors - - - Keyboard - Teclat - - - Refresh List - Actualitza la llista - - - Resume - Reprendre - - - Show Labels Under Icons - Mostra les etiquetes sota les icones - - - Customize Hotkeys - Personalitza les dreceres de teclat - - - - SettingsDialog - - Settings - Configuració - - - General - General - - - System - Sistema - - - Console Language - Idioma de la consola - - - Emulator Language - Idioma de l'emulador - - - Default tab when opening settings - Pestanya predeterminada en obrir la configuració - - - Show Game Size In List - Mostra la mida del joc a la llista - - - Enable Discord Rich Presence - Activa la Discord Rich Presence - - - Username - Nom d’usuari - - - Trophy Key - Clau dels trofeus - - - Trophy - Trofeu - - - Open the custom trophy images/sounds folder - Obre la carpeta de trofeus/sons personalitzats - - - Logger - Registre - - - Log Type - Registre de tipus - - - Log Filter - Filtre del registre - - - Open Log Location - Obre la ubicació del registre - - - Input - Entrada - - - Cursor - Cursor - - - Hide Cursor - Amaga el ratolí - - - Hide Cursor Idle Timeout - Temps d'espera per ocultar el ratolí - - - Microphone - Micròfon - - - None - Cap - - - Default Device - Dispositiu per defecte - - - s - s - - - Controller - Controlador - - - Graphics - Gràfics - - - GUI - Interfície gràfica - - - User - Usuari - - - Graphics Device - Dispositiu de gràfics - - - Advanced - Avançat - - - Enable Shaders Dumping - Habilita l'abocat de shaders - - - Enable NULL GPU - Activa NULL GPU - - - Enable HDR - Activa el HDR - - - Paths - Camins - - - Game Folders - Carpetes dels jocs - - - Add... - Afegir... - - - Remove - Suprimeix - - - Debug - Depuració - - - Enable Debug Dumping - Activa l'abocat de depuració - - - Enable Vulkan Validation Layers - Activa les capes de validació de Vulkan - - - Enable Vulkan Synchronization Validation - Activa la validació de sincronització de Vulkan - - - Enable RenderDoc Debugging - Habilita la depuració de RenderDoc - - - Enable Crash Diagnostics - Habilita el diagnòstic d'errors - - - Collect Shaders - Recopila Shaders - - - Copy GPU Buffers - Copia la memòria intermèdia de la GPU - - - Host Debug Markers - Marcardors de depuració - - - Guest Debug Markers - Marcadors de depuració - - - Enable Readbacks - Activar Readbacks - - - Enable Readback Linear Images - Activa imatges lineals de Readback - - - Update - Actualitza - - - Check for Updates at Startup - Comprova les actualitzacions a l'inici - - - Always Show Changelog - Mostra sempre el registre de canvis - - - Update Channel - Actualitza el canal - - - Check for Updates - Comprova si hi ha actualitzacions - - - Title Music - Música de títol - - - Disable Trophy Notification - Desactiva les notificacions de trofeus - - - Background Image - Imatge de fons - - - Show Background Image - Mostra imatge de fons - - - Opacity - Opacitat - - - Play title music - Reprodueix la música del títol - - - Update Compatibility Database On Startup - Actualitza la base de dades de compatibilitat a l'inici - - - Game Compatibility - Compatibilitat dels jocs - - - Display Compatibility Data - Mostra les dades de compatibilitat - - - Update Compatibility Database - S'ha actualitzat la base de dades de compatibilitat - - - Volume - Volum - - - Save - Desa - - - Apply - Aplica - - - Restore Defaults - Restaura els valors per defecte - - - Close - Tanca - - - Point your mouse at an option to display its description. - Mou el ratolí sobre una opció per mostrar una descripció. - - - 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. - Idioma de la consola:\nEstableix l'idioma que la consola PS4 fa servir.\nEs recomana seleccionar un idioma que el joc suporti, que pot variar en funció de la regió. - - - Emulator Language:\nSets the language of the emulator's user interface. - Idioma de l'emulador:\nSelecciona l'idioma de l'interfície d'usuari de l'emulador. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Mostra la pantalla d'inici:\nMostra la pantalla d'inici del joc (una imatge especial) mentre el joc s'està iniciant. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Activa Discord Rich Presence:\nMostra la icona de l'emulador i informació rellevant en el teu perfil de Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Nom d'usuari:\nProveeix el nom d'usuari del compte de PS4, que es farà servir i es veurà en alguns jocs. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Clau de trofeus:\nClau que es fa servir per desxifrar trofeus. Cal obtenir-la de la teva consola desbloquejada.\nAcostuma a tenir caràcters hexadecimals. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Tipus de registre:\nEstableix si sincronitza la sortida de la finestra de registre per millorar el rendiment. Pot tenir reaccions adverses en el rendiment. - - - 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. - Filtre del registre:\nFiltra el registre per mostrar només la informació especificada.\nExemples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nNivells: Trace, Debug, Info, Warning, Error, Critical - en aquest ordre, un nivell específic silencia tots els nivells precedents de la llista i mostra només els nivells posteriors. - - - 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. - Actualització:\nEstables: Versions oficials llançades cada mes que poden estar desactualitzades, però que són més resistents i estan més provades.\nDiàries: Versions de desenvolupament que tenen totes les últimes funcions i correccions, però poden contenir errors i son menys estables. - - - Background Image:\nControl the opacity of the game background image. - Imatge de fons:\nControla la opacitat de la imatge de fons del joc. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Reprodueix música del títol:\nSi el joc la conté, reprodueix la música del títol si es selecciona el joc a l'interfície gràfica. - - - 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). - Desactiva les notificacions de trofeus:\nDesactiva les notificacions de trofeus en el joc. El progrés en els trofeus es pot seguir en el visualitzador de trofeus (clicant botó dret del ratolí a la finestra principal). - - - 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. - Oculta el ratolí:\nSelecciona quan s'ocultarà el ratolí.\nMai: El ratolí serà sempre visible.\nInactiu: Estableix un temps perquè s'oculti el ratolí si està inactiu.\nSempre: El ratolí estarà sempre ocult. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Temps d'espera per ocultar el ratolí:\nLa duració (en segons) després de la qual el ratolí s'amaga si es troba inactiu. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Mostra les dades de compatibilitat:\nMostra informació sobre la compatibilitat a la vista de graella. Pots activar l'actualització de compatibilitat a l'inici per obtenir més informació actualitzada. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Actualitza la compatibilitat a l'inici:\nActualitza automàticament la base de dades de compatibilitat quan s'inicia shadPS4. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Base de dades de compatibilitat:\nActualitza immediatament la base de dades de compatibilitat. - - - Never - Mai - - - Idle - Inactiu - - - Always - Sempre - - - 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. - Dispositiu de gràfics:\nEn sistemes amb múltiples targetes gràfiques, selecciona la targeta gràfica que farà servir l'emulador de la llista,\n o clica a "Selecció automàtica" per determinar-la automàticament. - - - 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. - Amplada/Alçada:\nEstableix les mides de la finestra de l'emulador quan s'inicia, durant el joc es pot canviar la mida.\nAixò és diferent que la resolució del joc. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Activa els abocats de shaders:\nPer la millora de la depuració tècnica, desa els shaders del joc en una carpeta mentre es renderitzen. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Habilita GPU Nul·la:\nPer la millora de la depuració tècnica, desactiva el renderitzat del joc si no hi ha una targeta gràfica. - - - 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. - Activa HDR:\nActiva HDR els jocs que ho suporten.\nEl teu monitor ha de donar suport a l'espai de color BT2020 PQ i al format de cadena d'intercanvi RGB10A2. - - - Game Folders:\nThe list of folders to check for installed games. - Carpetes de joc:\nLa llista de carpetes on comprovar si hi ha jocs instal·lats. - - - Add:\nAdd a folder to the list. - Afegeix:\nAfegeix una carpeta a la llista. - - - Remove:\nRemove a folder from the list. - Elimina:\nElimina la carpeta de la llista. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Activa l'abocat de depuració:\nDesa els símbols d'importació i exportació i la informació de l'encapçalament del fitxer de programa de PS4 que s'està executant ara mateix. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Activa la depuració RenderDoc:\nSi aquesta opció està activada, l'emulador tindrà compatibilitat amb RenderDoc per permetre capturar i analitzar els fotogrames renderitzats. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Recopilar shaders:\nHas de tenir activada aquesta opció per editar els shaders amb el menú de depurador (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Actica Readbacks:\nActiva readbacks i writebacks a la memòria de la targeta gràfica.\nAixò és necessari pel funcionament correcte en alguns jocs.\nPot causar inestabilitat i/o errors de rendiment. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Activa imatges lineals de Readback:\nActiva la descàrrega asíncrona d'imatges lineals modificades de la targeta gràfica:\nPot corregir errors en alguns jocs. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Copia la memòria intermèdia de la GPU:\nEvita les condicions de carrera que impliquen més enviaments a la targeta gràfica.\nPot ajudar o no amb fer fallida del tipus 0 de PM4. - - - 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. - Marcadors de depuració de convidat:\nInsereix informació des de l'emulador com marcadors específics de les targetes gràfiques AMB sobre les comandes Vulkan, així com proporcionar noms de depuració.\nSi aquesta opció està activada, caldria activar el diagnòstic d'errors.\nÉs útil per aplicacions com 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. - Marcadors de depuració de convidat:\nInsereix qualsevol marcador que el joc ha afegit a la memòria intermèdia de les comandes.\nSi està activada aquesta opció, caldria activar el diagnòstic d'errors.\nÉs útil per aplicacions com RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Carpeta de dades desades:\nLa carpeta on es desaran les dades el joc. - - - Browse:\nBrowse for a folder to set as the save data path. - Navegador:\nCerca una carpeta que serà assignada com la carpeta de dades desades. - - - Release - Publicació - - - Nightly - Publicació diària - - - Set the volume of the background music. - Selecciona el volum de la música de fons. - - - Enable Motion Controls - Habilita els controls de moviment - - - Save Data Path - Desa la ruta a les dades - - - Browse - Navega - - - async - asíncron - - - sync - sincronitzar - - - Auto Select - Selecciona automàticament - - - Directory to install games - Carpeta per instal·lar jocs - - - Directory to save data - Carpeta de les dades desades - - - Video - Vídeo - - - Display Mode - Mode de visualització - - - Windowed - En finestra - - - Fullscreen - Pantalla completa - - - Fullscreen (Borderless) - Pantalla completa (Sense vores) - - - Window Size - Mida de la finestra - - - W: - W: - - - H: - H: - - - Separate Log Files - Fitxers de registre independents - - - Separate Log Files:\nWrites a separate logfile for each game. - Fitxers de registre independents:\nFes servir un fitxer de registre separat per cada joc. - - - Trophy Notification Position - Posició de les notificacions de trofeus - - - Left - Esquerra - - - Right - Dreta - - - Top - Amunt - - - Bottom - Sota - - - Notification Duration - Duració de les notificacions - - - Portable User Folder - Carpeta de l'usuari portàtil - - - Create Portable User Folder from Common User Folder - Crea la carpeta d'usuari portàtil a partir de la carpeta d'usuari estàndard - - - 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. - Carpeta d'usuari portàtil:\nDesa la configuració i les dades de shadPS4 en la carpeta actual. Reinicia shadPS4 després de crear la carpeta d'usuari portàtil per començar a fer-la servir. - - - Cannot create portable user folder - No s'ha pogut crear la carpeta d'usuari portàtil - - - %1 already exists - %1 ja existeix - - - Portable user folder created - S'ha creat la carpeta d'usuari portàtil - - - %1 successfully created. - %1 s'ha creat correctament. - - - 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. - Obre la carpeta de trofeus/sons personalitzats.\nPots afegir imatges i sons personalitzats als trofeus.\nAfeigeix els fitxers com custom_trophy amb els següents noms:\ntrophy.wav o trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNota: El so només funcionarà en les versions QT. - - - * Unsupported Vulkan Version - Versió de Vulkan no suportada - - - Experimental Features - Funcions experimentals - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - AVÍS: Aquestes funcions son experimentals i no haurien de ser activades a no ser que t'ho demanin, o que el joc ho necessiti. Pregunta en el Discord de shadPS4 si tens dubtes. - - - Enable Background Controller Input - Activa l'entrada del controlador en segon pla - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Activa l'entrada del controlador en segon pla:\nPermet a shadPS4 per detectar l'entrada del controlador quan la finestra del joc ja no té el focus. - - - 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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - Diagnòstiques de fallides:\nCrea un fitxer .yaml amb informació sobre l'estat de Vulkan en el moment de fer fallida.\nÉs útil per depurar errors del tipus 'Dispositiu perdut'. Si aquesta opció està activada, caldria activar els marcadors de depuració de convidat.\nCal activar la validació de capes de Vulkan i el SDK de Vulkan perquè funcioni. - - - Enable Logging - Habilita el registre - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Habilita el registre:\nHabilita el registre.\nNo canviïs aquesta opció si no saps que estàs fent!\nSi demanes ajuda, assegura't que aquesta opció està ACTIVADA. - - - Present Mode - Mode presentació - - - Mailbox (Vsync) - Bústia de correu (Sincronització vertical) - - - Fifo (Vsync) - Fifo (Sincronització vertical) - - - Immediate (No Vsync) - Immediat (Sense sincronització vertical) - - - DLC Folder - Carpeta DLC - - - Select the DLC folder - Selecciona la carpeta DLC - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Mode Presentació:\nConfigura com es presenta la sortida de vídeo a la teva pantalla.\n\nBústia de correu: Sincronitza els fotogrames amb la taxa de refresc de la teva pantalla. Els nous fotogrames reemplacen qualsevol fotograma pendent. Redueix la latència però pot provocar salts de fotogrames si es queden enrere.\nFifo: Els fotogrames es sincronitzen amb la taxa de refresc de la teva pantalla. Els nous fotogrames es posaran en cua darrere els fotogrames pendents. Assegura mostrar tots els fotogrames però augmenta la latència.\nImmediat: Els fotogrames es presenten immediatament a la teva pantalla quan estan disponibles. Pot provocar errors gràfics. - - - DLC Path:\nThe folder where game DLC loaded from. - Ruta DLC:\nLa carpeta des d'on es carrega el contingut DLC. - - - Browse:\nBrowse for a folder to set as the DLC path. - Navegador:\nCerca una carpeta per establir com a ruta DLC. - - - FSR Settings - Configuració FSR - - - Enable FSR - Activa el FSR - - - Enable RCAS (sharpening) - Activa RCAS (esmolat) - - - RCAS Attenuation: - Afeblir RCAS: - - - Load Presets... - Carrega els valors predeterminats... - - - Log - Registre - - - Open Log Location:\nOpen the folder where the log file is saved. - Obre la ubicació del registre:\nObre la carpeta en la qual es desa el fitxer de registre. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Micròfon:\nCap: No fa servir el micròfon.\nDispositiu per defecte: Farà servir el dispositiu definit pel sistema operatiu.\nO selecciona manualment el micròfon de la llista. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volum:\nAjusta el volum per jocs globalment, el rang va del 0-500% amb 100% com a valor per defecte. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Pestanya per defecte en obrir la configuració:\nSelecciona quina pestanya es veurà primer, per defecte és la pestanya General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Mostra la mida del joc a la Llista:\nHi ha la mida del joc a la llista. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Activa els controls de moviment:\nQuan està activat, farà servir els controls de moviment del controlador si en té. - - - Vblank Frequency - Freqüència de Vblank - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change! - Freqüència Vblank:\nLa taxa de fotogrames a la qual l'emulador es refresca (60 Hz és el valor base, quan el joc s'executa a 30 o 60 fps). Canviar aquest valor pot tenir efectes adversos, com augmentar la velocitat del joc, o trencar la funcionalitat del joc de forma no esperada! - - - Enable Direct Memory Access - Activa l'accés directe a memòria - - - Enable Devkit Console Mode - Activa el mode consola de desenvolupador - - - Set "PSN signed-in" to True - Estableix l'inici de sessió de PSN a cert - - - Set "Network Connected" to True - Estableix la connexió a xarxa com a certa - - - Miscellaneous - Miscel·lània - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Mostra pantalla inicial en inicar el joc - - - General Frontend Settings - Configuració general del frontend - - - Enable PS4 Neo Mode - Activa el mode PS4 Neo - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Activa l'accés directe a memòria:\nActiva l'accés arbitrari de memòria des de la targeta gràfica a la memòria del procesador. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Activa el mode Neo de PS4:\nAfegeix suport a l'emulació de PS4 Pro i la mida de memòria. Actualment causa inestabilitat en un gran nombre de jocs que s'han provat. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Activa el mode de consola de desenvolupament:\nAfegeix suport per la mida de memòria de la consola de desenvolupament. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Estableix la connexió a xarxa com a certa:\nForça els jocs a detectar una connexió a xarxa activa. Les funcions de connexió a xarxa no estan implementades actualment. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Estableix l'inici de sessió a PSN com a cert:\nForça els jocs a detectar un inici de sessió a PSN actiu. Les funcions de PSN no estan implementades actualment. - - - 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.\nYou need the Vulkan SDK for this to work. - Activa les capes de validació de Vulkan:\nActiva un sistema que valida l'estat del renderitzador de Vulkan i registra informació sobre el seu ús intern.\nAixò redueix el rendiment i pot canviar el comportament de l'emulador.\nCal tenir el SDK de Vulkan perquè funcioni. - - - 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.\nYou need the Vulkan SDK for this to work. - Activa la validació de sincronització de Vulkan:\nActiva un sistema que valida la sincronització de Vulkan en les tasques de renderització.\nAixò pot reduir el rendiment i pot canviar el comportament de l'emulació.\nCal tenir el SDK de Vulkan perquè funcioni. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Visualitzador de trofeus - - - Select Game: - Selecciona un joc: - - - Progress - Progrés - - - Show Earned Trophies - Mostra els trofeus aconseguits - - - Show Not Earned Trophies - Mostra els trofeus no aconseguits - - - Show Hidden Trophies - Mostra els trofeus ocults - - - diff --git a/src/qt_gui/translations/da_DK.ts b/src/qt_gui/translations/da_DK.ts deleted file mode 100644 index 4f53fc12c..000000000 --- a/src/qt_gui/translations/da_DK.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - 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 er eksperimentelle.\nBrug med forsigtighed.\n\nDownload cheats individuelt ved at vælge lageret og klikke på download-knappen.\nUnder fanen Patches kan du downloade alle patches på én gang, vælge hvilke du vil bruge og gemme valget.\n\nDa vi ikke udvikler cheats/patches,\nvenligst rapporter problemer til cheat-udvikleren.\n\nHar du lavet en ny cheat? Besøg:\n - - - No Image Available - Ingen billede tilgængelig - - - Serial: - Serienummer: - - - Version: - Version: - - - Size: - Størrelse: - - - Select Cheat File: - Vælg snyd-fil: - - - Repository: - Repository: - - - Download Cheats - Hent snyd - - - Delete File - Slet fil - - - No files selected. - Ingen filer valgt. - - - You can delete the cheats you don't want after downloading them. - Du kan slette de snyd, du ikke ønsker, efter at have hentet dem. - - - Do you want to delete the selected file?\n%1 - Ønsker du at slette den valgte fil?\n%1 - - - Select Patch File: - Vælg patch-fil: - - - Download Patches - Hent patches - - - Save - Gem - - - Cheats - Snyd - - - Patches - Patches - - - Error - Fejl - - - No patch selected. - Ingen patch valgt. - - - Unable to open files.json for reading. - Kan ikke åbne files.json til læsning. - - - No patch file found for the current serial. - Ingen patch-fil fundet for det nuværende serienummer. - - - Unable to open the file for reading. - Kan ikke åbne filen til læsning. - - - Unable to open the file for writing. - Kan ikke åbne filen til skrivning. - - - Failed to parse XML: - Kunne ikke analysere XML: - - - Success - Succes - - - Options saved successfully. - Indstillinger gemt med succes. - - - Invalid Source - Ugyldig kilde - - - The selected source is invalid. - Den valgte kilde er ugyldig. - - - File Exists - Fil findes - - - File already exists. Do you want to replace it? - Filen findes allerede. Vil du erstatte den? - - - Failed to save file: - Kunne ikke gemme fil: - - - Failed to download file: - Kunne ikke hente fil: - - - Cheats Not Found - Snyd ikke fundet - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Ingen snyd fundet til dette spil i denne version af det valgte repository, prøv et andet repository eller en anden version af spillet. - - - Cheats Downloaded Successfully - Snyd hentet med succes - - - 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. - Du har succesfuldt hentet snyd for denne version af spillet fra det valgte repository. Du kan prøve at hente fra et andet repository, hvis det er tilgængeligt, vil det også være muligt at bruge det ved at vælge filen fra listen. - - - Failed to save: - Kunne ikke gemme: - - - Failed to download: - Kunne ikke hente: - - - Download Complete - Download fuldført - - - 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. - Patcher hentet med succes! Alle patches til alle spil er blevet hentet, der er ikke behov for at hente dem individuelt for hvert spil, som det sker med snyd. Hvis opdateringen ikke vises, kan det være, at den ikke findes for den specifikke serie og version af spillet. - - - Failed to parse JSON data from HTML. - Kunne ikke analysere JSON-data fra HTML. - - - Failed to retrieve HTML page. - Kunne ikke hente HTML-side. - - - The game is in version: %1 - Spillet er i version: %1 - - - The downloaded patch only works on version: %1 - Den downloadede patch fungerer kun på version: %1 - - - You may need to update your game. - Du skal muligvis opdatere dit spil. - - - Incompatibility Notice - Uforenelighedsmeddelelse - - - Failed to open file: - Kunne ikke åbne fil: - - - XML ERROR: - XML FEJL: - - - Failed to open files.json for writing - Kunne ikke åbne files.json til skrivning - - - Author: - Forfatter: - - - Directory does not exist: - Mappe findes ikke: - - - Failed to open files.json for reading. - Kunne ikke åbne files.json til læsning. - - - Name: - Navn: - - - Can't apply cheats before the game is started - Kan ikke anvende snyd før spillet er startet. - - - Close - Luk - - - - CheckUpdate - - Auto Updater - Automatisk opdatering - - - Error - Fejl - - - Network error: - Netsværksfejl: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Autoopdateren tillader op til 60 opdateringstjek i timen.\nDu har nået denne grænse. Prøv igen senere. - - - Failed to parse update information. - Kunne ikke analysere opdateringsoplysninger. - - - No pre-releases found. - Ingen forhåndsudgivelser fundet. - - - Invalid release data. - Ugyldige udgivelsesdata. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Bemærk:</b><br><br> Fra og med version <b>0.12.0</b> vil Qt‑versionen af emulatoren ikke længere modtage direkte opdateringer.<br><br> Qt‑grænsefladen forbliver dog tilgængelig via den nye officielle launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – baseret på den oprindelige shadPS4‑kildekode.<br><br>Vi anbefaler at skifte til denne launcher for at fortsætte med at modtage opdateringer. - - - Your version is already up to date! - Din version er allerede opdateret! - - - Update Available - Opdatering tilgængelig - - - Update Channel - Opdateringskanal - - - Current Version - Nuværende version - - - Latest Version - Nyeste version - - - Do you want to update? - Vil du opdatere? - - - Show Changelog - Vis ændringslog - - - Check for Updates at Startup - Tjek for opdateringer ved start - - - Update - Opdater - - - No - Nej - - - Hide Changelog - Skjul ændringslog - - - Changes - Ændringer - - - Network error occurred while trying to access the URL - Netsværksfejl opstod, mens der blev forsøgt at få adgang til URL'en - - - Download Complete - Download fuldført - - - The update has been downloaded, press OK to install. - Opdateringen er blevet downloadet, tryk på OK for at installere. - - - Failed to save the update file at - Kunne ikke gemme opdateringsfilen på - - - Starting Update... - Starter opdatering... - - - Failed to create the update script file - Kunne ikke oprette opdateringsscriptfilen - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Henter kompatibilitetsdata, vent venligst - - - Cancel - Annuller - - - Loading... - Indlæser... - - - Error - Fejl - - - Unable to update compatibility data! Try again later. - Kan ikke opdatere kompatibilitetsdata! Prøv igen senere. - - - Unable to open compatibility_data.json for writing. - Kan ikke åbne compatibility_data.json til skrivning. - - - Unknown - Ukendt - - - Nothing - Intet - - - Boots - Støvler - - - Menus - Menuer - - - Ingame - I spillet - - - Playable - Spilbar - - - - 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 - - - Face Buttons - Face Buttons - - - 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 - - - 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 - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - 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 - Ikon - - - Name - Navn - - - Serial - Seriel - - - Compatibility - Compatibility - - - Region - Region - - - Firmware - Firmware - - - Size - Størrelse - - - Version - Version - - - Path - Sti - - - Play Time - Spilletid - - - 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 - Klik for at se detaljer på GitHub - - - Last updated - Sidst opdateret - - - Favorite - Favorite - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Create Shortcut - - - Cheats / Patches - Trick / Patches - - - SFO Viewer - SFO Viewer - - - Trophy Viewer - Trophy Viewer - - - Open Folder... - Åbn Mappe... - - - Open Game Folder - Åbn Spilmappe - - - Open Save Data Folder - Åbn Gem Data Mappe - - - Open Log Folder - Åbn Log Mappe - - - 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... - - - 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 - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Open/Add Elf Folder - - - Boot Game - Boot Game - - - Check for Updates - Tjek for opdateringer - - - 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 Tricks / 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 - Hjælp - - - Dark - Dark - - - Light - Light - - - Green - Green - - - Blue - Blue - - - Violet - Violet - - - toolBar - toolBar - - - Game List - Spiloversigt - - - Download Cheats For All Installed Games - Hent snyd til alle installerede spil - - - Download Patches For All Games - Hent patches til alle spil - - - Download Complete - Download fuldført - - - You have downloaded cheats for all the games you have installed. - Du har hentet snyd til alle de spil, du har installeret. - - - Patches Downloaded Successfully! - Patcher hentet med succes! - - - All Patches available for all games have been downloaded. - Alle patches til alle spil er blevet hentet. - - - Games: - Spil: - - - ELF files (*.bin *.elf *.oelf) - ELF-filer (*.bin *.elf *.oelf) - - - Game Boot - Spil-boot - - - Only one file can be selected! - Kun én fil kan vælges! - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - System - - - Console Language - Console Language - - - Emulator Language - Emulator Language - - - Default tab when opening settings - Standardfaneblad ved åbning af indstillinger - - - Show Game Size In List - Vis vis spilstørrelse i listen - - - Enable Discord Rich Presence - Aktiver 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 - Åbn logplacering - - - Input - Indtastning - - - Cursor - Markør - - - Hide Cursor - Skjul markør - - - Hide Cursor Idle Timeout - Timeout for skjul markør ved inaktivitet - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Controller - - - Graphics - Graphics - - - GUI - Interface - - - User - Bruger - - - Graphics Device - Graphics Device - - - Advanced - Advanced - - - Enable Shaders Dumping - Enable Shaders Dumping - - - Enable NULL GPU - Enable NULL GPU - - - Enable HDR - Enable HDR - - - Paths - Stier - - - Game Folders - Spilmapper - - - Add... - Tilføj... - - - Remove - Fjern - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Opdatering - - - Check for Updates at Startup - Tjek for opdateringer ved start - - - Always Show Changelog - Vis altid changelog - - - Update Channel - Opdateringskanal - - - Check for Updates - Tjek for opdateringer - - - 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 - Afspil titelsang - - - 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 - Lydstyrke - - - Save - Gem - - - Apply - Anvend - - - Restore Defaults - Gendan standardindstillinger - - - Close - Luk - - - Point your mouse at an option to display its description. - Peg musen over et valg for at vise dets beskrivelse. - - - 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. - Konsolsprog:\nIndstiller sproget, som PS4-spillet bruger.\nDet anbefales at indstille dette til et sprog, som spillet understøtter, hvilket kan variere efter region. - - - Emulator Language:\nSets the language of the emulator's user interface. - Emulatorsprog:\nIndstiller sproget i emulatorens brugergrænseflade. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Vis startskærm:\nViser en startskærm (speciel grafik) under opstarten. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Aktiver Discord Rich Presence:\nViser emulatorikonet og relevante oplysninger på din Discord-profil. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Brugernavn:\nIndstiller PS4-kontoens navn, som kan blive vist i nogle spil. - - - 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. - Logtype:\nIndstiller, om logvinduets output vil blive synkroniseret for at øge ydeevnen. Dette kan påvirke emulatorens ydeevne negativt. - - - 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. - Logfilter:\nFiltrerer loggen for kun at udskrive bestemte oplysninger.\nEksempler: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Niveaus: Trace, Debug, Info, Warning, Error, Critical - i rækkefølge, et valgt niveau skjuler alle forudgående niveauer og viser alle efterfølgende niveauer. - - - 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. - Opdatering:\nRelease: Officielle builds, der frigives månedligt, som kan være meget ældre, men mere stabile og testet.\nNightly: Udviklerbuilds med de nyeste funktioner og rettelser, men som kan indeholde fejl og være mindre stabile. - - - 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. - Titelsmusikafspilning:\nHvis spillet understøtter det, aktiver speciel musik, når spillet vælges i brugergrænsefladen. - - - 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. - Skjul Cursor:\nVælg hvornår cursoren skal forsvinde:\nAldrig: Du vil altid se musen.\nInaktiv: Indstil en tid for, hvornår den skal forsvinde efter at være inaktiv.\nAltid: du vil aldrig se musen. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Indstil en tid for, at musen skal forsvinde efter at være inaktiv. - - - 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 - Aldrig - - - Idle - Inaktiv - - - Always - Altid - - - 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. - Grafikadapter:\nPå systemer med flere GPU'er skal du vælge den GPU, emulatoren vil bruge fra en rullemenu,\neller vælge "Auto Select" for at vælge den automatisk. - - - 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. - Skærmopløsning:\nIndstiller emulatorvinduets størrelse under afspilning, som kan ændres under afspilning.\nDette er forskelligt fra selve spillets opløsning. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Aktiver dumping af Shaders:\nTil teknisk fejlfinding gemmer det spillets shaders i en mappe under afspilning. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Aktiver virtuel GPU:\nTil teknisk fejlfinding deaktiverer det spilvisning, som om der ikke var et grafikkort. - - - 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. - Spilmappen:\nListen over mapper til at tjekke for installerede spil. - - - Add:\nAdd a folder to the list. - Tilføj:\nTilføj en mappe til listen. - - - Remove:\nRemove a folder from the list. - Fjern:\nFjern en mappe fra listen. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Aktiver debugging-dump:\nGemmer import/export-symboler og headeroplysninger for det aktuelle PS4-program til en mappe. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Aktiver RenderDoc-fejlfinding:\nHvis aktiveret, giver det emulatoren mulighed for kompatibilitet med Renderdoc til at fange og analysere det aktuelle gengivne billede. - - - 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - 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/de_DE.ts b/src/qt_gui/translations/de_DE.ts deleted file mode 100644 index 630db6788..000000000 --- a/src/qt_gui/translations/de_DE.ts +++ /dev/null @@ -1,2462 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Über shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 ist ein experimenteller Open-Source-Emulator für die Playstation 4. - - - This software should not be used to play games you have not legally obtained. - Diese Software soll nicht dazu benutzt werden illegal kopierte Spiele zu spielen. - - - - CheatsPatches - - Cheats / Patches for - Cheats / Patches für - - - 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 sind experimentell.\nVerwende sie mit Vorsicht.\n\nLade Cheats einzeln herunter, indem du das Repository auswählst und auf die Download-Schaltfläche klickst.\nAuf der Registerkarte Patches kannst du alle Patches auf einmal herunterladen, auswählen, welche du verwenden möchtest, und die Auswahl speichern.\n\nDa wir die Cheats/Patches nicht entwickeln,\nbitte melde Probleme an den Cheat-Autor.\n\nHast du einen neuen Cheat erstellt? Besuche:\n - - - No Image Available - Kein Bild verfügbar - - - Serial: - Seriennummer: - - - Version: - Version: - - - Size: - Größe: - - - Select Cheat File: - Cheat-Datei auswählen: - - - Repository: - Quellen: - - - Download Cheats - Cheats herunterladen - - - Delete File - Datei löschen - - - No files selected. - Keine Dateien ausgewählt. - - - You can delete the cheats you don't want after downloading them. - Du kannst die Cheats, die du nicht möchtest, nach dem Herunterladen löschen. - - - Do you want to delete the selected file?\n%1 - Willst du die ausgewählte Datei löschen?\n%1 - - - Select Patch File: - Patch-Datei auswählen: - - - Download Patches - Patches herunterladen - - - Save - Speichern - - - Cheats - Cheats - - - Patches - Patches - - - Error - Fehler - - - No patch selected. - Kein Patch ausgewählt. - - - Unable to open files.json for reading. - Kann files.json nicht zum Lesen öffnen. - - - No patch file found for the current serial. - Keine Patch-Datei für die aktuelle Seriennummer gefunden. - - - Unable to open the file for reading. - Kann die Datei nicht zum Lesen öffnen. - - - Unable to open the file for writing. - Kann die Datei nicht zum Schreiben öffnen. - - - Failed to parse XML: - Fehler beim Parsen von XML: - - - Success - Erfolg - - - Options saved successfully. - Optionen erfolgreich gespeichert. - - - Invalid Source - Ungültige Quelle - - - The selected source is invalid. - Die ausgewählte Quelle ist ungültig. - - - File Exists - Datei existiert - - - File already exists. Do you want to replace it? - Datei existiert bereits. Möchtest du sie ersetzen? - - - Failed to save file: - Fehler beim Speichern der Datei: - - - Failed to download file: - Fehler beim Herunterladen der Datei: - - - Cheats Not Found - Cheats nicht gefunden - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Keine Cheats für dieses Spiel in dieser Version des gewählten Repositories gefunden. Versuche es mit einem anderen Repository oder einer anderen Version des Spiels. - - - Cheats Downloaded Successfully - Cheats erfolgreich heruntergeladen - - - 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. - Du hast erfolgreich Cheats für diese Version des Spiels aus dem gewählten Repository heruntergeladen. Du kannst auch versuchen, Cheats von einem anderen Repository herunterzuladen. Wenn verfügbar, kannst du sie auswählen, indem du die Datei aus der Liste auswählst. - - - Failed to save: - Speichern fehlgeschlagen: - - - Failed to download: - Herunterladen fehlgeschlagen: - - - Download Complete - Download abgeschlossen - - - 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 erfolgreich heruntergeladen! Alle Patches für alle Spiele wurden heruntergeladen, es ist nicht notwendig, sie einzeln für jedes Spiel herunterzuladen, wie es bei Cheats der Fall ist. Wenn der Patch nicht angezeigt wird, könnte es sein, dass er für die spezifische Seriennummer und Version des Spiels nicht existiert. - - - Failed to parse JSON data from HTML. - Fehler beim Parsen der JSON-Daten aus HTML. - - - Failed to retrieve HTML page. - Fehler beim Abrufen der HTML-Seite. - - - The game is in version: %1 - Das Spiel ist in der Version: %1 - - - The downloaded patch only works on version: %1 - Der heruntergeladene Patch funktioniert nur in der Version: %1 - - - You may need to update your game. - Sie müssen möglicherweise Ihr Spiel aktualisieren. - - - Incompatibility Notice - Inkompatibilitätsbenachrichtigung - - - Failed to open file: - Öffnung der Datei fehlgeschlagen: - - - XML ERROR: - XML-Fehler: - - - Failed to open files.json for writing - Kann files.json nicht zum Schreiben öffnen - - - Author: - Autor: - - - Directory does not exist: - Verzeichnis existiert nicht: - - - Failed to open files.json for reading. - Kann files.json nicht zum Lesen öffnen. - - - Name: - Name: - - - Can't apply cheats before the game is started - Kann keine Cheats anwenden, bevor das Spiel gestartet ist. - - - Close - Schließen - - - - CheckUpdate - - Auto Updater - Automatischer Aktualisierer - - - Error - Fehler - - - Network error: - Netzwerkfehler: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Der Auto-Updater erlaubt bis zu 60 Update-Überprüfungen pro Stunde.\nDu hast dieses Limit erreicht. Bitte versuche es später erneut. - - - Failed to parse update information. - Fehler beim Parsen der Aktualisierungsinformationen. - - - No pre-releases found. - Keine Vorabveröffentlichungen gefunden. - - - Invalid release data. - Ungültige Versionsdaten. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Hinweis:</b><br><br> Ab Version <b>0.12.0</b> erhält die Qt‑Version des Emulators keine direkten Updates mehr.<br><br> Die Qt‑Oberfläche bleibt jedoch über den neuen offiziellen Launcher verfügbar:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – basierend auf dem ursprünglichen shadPS4‑Quellcode.<br><br>Wir empfehlen, auf diesen Launcher zu wechseln, um weiterhin Updates zu erhalten. - - - Your version is already up to date! - Ihre Version ist bereits aktuell! - - - Update Available - Aktualisierung verfügbar - - - Update Channel - Update-Kanal - - - Current Version - Aktuelle Version - - - Latest Version - Neueste Version - - - Do you want to update? - Möchten Sie aktualisieren? - - - Show Changelog - Änderungsprotokoll anzeigen - - - Check for Updates at Startup - Beim Start nach Updates suchen - - - Update - Aktualisieren - - - No - Nein - - - Hide Changelog - Änderungsprotokoll ausblenden - - - Changes - Änderungen - - - Network error occurred while trying to access the URL - Beim Zugriff auf die URL ist ein Netzwerkfehler aufgetreten - - - Download Complete - Download abgeschlossen - - - The update has been downloaded, press OK to install. - Die Aktualisierung wurde heruntergeladen, drücken Sie OK, um zu installieren. - - - Failed to save the update file at - Fehler beim Speichern der Aktualisierungsdatei in - - - Starting Update... - Aktualisierung wird gestartet... - - - Failed to create the update script file - Fehler beim Erstellen der Aktualisierungs-Skriptdatei - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Lade Kompatibilitätsdaten, bitte warten - - - Cancel - Abbrechen - - - Loading... - Lädt... - - - Error - Fehler - - - Unable to update compatibility data! Try again later. - Kompatibilitätsdaten konnten nicht aktualisiert werden! Versuchen Sie es später erneut. - - - Unable to open compatibility_data.json for writing. - Kann compatibility_data.json nicht zum Schreiben öffnen. - - - Unknown - Unbekannt - - - Nothing - Nichts - - - Boots - Startet - - - Menus - Menüs - - - Ingame - ImSpiel - - - Playable - Spielbar - - - - ControlSettings - - Configure Controls - Steuerung einrichten - - - D-Pad - Steuerkreuz - - - Up - Oben - - - Left - Links - - - Right - Rechts - - - Down - Runter - - - Left Stick Deadzone (def:2 max:127) - Linker Stick tote Zone (def:2 max:127) - - - Left Deadzone - Linke Deadzone - - - Left Stick - Linker Analogstick - - - Config Selection - Konfigurationsauswahl - - - Common Config - Standard Konfiguration - - - Use per-game configs - Benutze Per-Game Einstellungen - - - Face Buttons - Aktionstasten - - - Right Stick Deadzone (def:2, max:127) - Rechter Stick tote Zone (def:2, max:127) - - - Right Deadzone - Rechte tote Zone - - - Right Stick - Rechter Analogstick - - - Color Adjustment - Farbanpassung - - - Override Lightbar Color - Farbe der Leuchtleiste überschreiben - - - Override Color - Farbe überschreiben - - - Unable to Save - Speichern nicht möglich - - - Cannot bind axis values more than once - Achsenwerte können nicht mehr als einmal gebunden werden - - - Save - Speichern - - - Apply - Übernehmen - - - Restore Defaults - Werkseinstellungen wiederherstellen - - - Cancel - Abbrechen - - - unmapped - Nicht zugeordnet - - - Options - Optionen - - - Touchpad Left - Touchpad Links - - - Touchpad Center - Touchpad Mitte - - - Touchpad Right - Touchpad Rechts - - - Triangle - Dreieck - - - Square - Quadrat - - - Circle - Kreis - - - Cross - Kreuz - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - %1 -Einzigartige Inputs können nicht öfters als einmal gebunden werden. Input-Duplikate werden auf folgende Knöpfe gebunden - - - Press a button - Drücke einen Knopf - - - Move analog stick - Bewege den Analogstick - - - L1 and L2 - L1 und L2 - - - Active Gamepad - Aktives Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Standard-Gamepad - - - No default selected - Kein Standard festgelegt - - - n/a - n.v. - - - Set Active Gamepad as Default - Aktives Gamepad als Standard festlegen - - - Remove Default Gamepad - Standard-Gamepad entfernen - - - R1 and R2 - R1 und R2 - - - ID: - ID: - - - Default Controller Selected - Standard-Controller ausgewählt - - - Active controller set as default - Aktiver Controller als Standard festgelegt - - - Default Controller Removed - Standard-Controller entfernt - - - Default controller setting removed - Standardeinstellungen für Controller entfernt - - - RED - ROT - - - GREEN - GRÜN - - - BLUE - BLAU - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Tastatur + Maus und Controller Eingabezuordnungen bearbeiten - - - Use Per-Game configs - Benutze Per-Game Einstellungen - - - Error - Fehler - - - Could not open the file for reading - Datei konnte nicht zum Lesen geöffnet werden - - - Could not open the file for writing - Datei konnte nicht zum Schreiben geöffnet werden - - - Save Changes - Änderungen Speichern - - - Do you want to save changes? - Sollen die Änderungen gespeichert werden? - - - Help - Hilfe - - - Do you want to reset your custom default config to the original default config? - Möchten Sie Ihre eigene Standardkonfiguration auf die ursprüngliche Standardkonfiguration zurücksetzen? - - - Do you want to reset this config to your custom default config? - Möchten Sie diese Konfiguration auf Ihre eigene Standardkonfiguration zurücksetzen? - - - Reset to Default - Auf Standard zurücksetzen - - - - ElfViewer - - Open Folder - Ordner öffnen - - - - GameInfoClass - - Loading game list, please wait :3 - Lade Spielliste, bitte warten :3 - - - Cancel - Abbrechen - - - Loading... - Lade... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Wähle Ordner - - - Directory to install games - Installationsverzeichnis für Spiele - - - Browse - Durchsuchen - - - Error - Fehler - - - Directory to install DLC - Verzeichnis zum Installieren von DLC - - - - GameListFrame - - Icon - Symbol - - - Name - Name - - - Serial - Seriennummer - - - Compatibility - Kompatibilität - - - Region - Region - - - Firmware - Firmware - - - Size - Größe - - - Version - Version - - - Path - Pfad - - - Play Time - Spielzeit - - - Never Played - Niemals gespielt - - - h - h - - - m - m - - - s - s - - - Compatibility is untested - Kompatibilität wurde noch nicht getested - - - Game does not initialize properly / crashes the emulator - Das Spiel wird nicht richtig initialisiert / stürzt den Emulator ab - - - Game boots, but only displays a blank screen - Spiel startet, aber zeigt nur einen blanken Bildschirm - - - Game displays an image but does not go past the menu - Spiel zeigt ein Bild aber geht nicht über das Menü hinaus - - - Game has game-breaking glitches or unplayable performance - Spiel hat spiel-brechende Störungen oder unspielbare Leistung - - - Game can be completed with playable performance and no major glitches - Spiel kann mit spielbarer Leistung und keinen großen Störungen abgeschlossen werden - - - Click to see details on github - Klicken Sie hier, um Details auf GitHub zu sehen - - - Last updated - Zuletzt aktualisiert - - - Favorite - Favoriten - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Verknüpfung erstellen - - - Cheats / Patches - Cheats / Patches - - - SFO Viewer - SFO anzeigen - - - Trophy Viewer - Trophäen anzeigen - - - Open Folder... - Ordner öffnen... - - - Open Game Folder - Spielordner öffnen - - - Open Save Data Folder - Speicherordner öffnen - - - Open Log Folder - Protokollordner öffnen - - - Copy info... - Infos kopieren... - - - Copy Name - Namen kopieren - - - Copy Serial - Seriennummer kopieren - - - Copy Version - Version kopieren - - - Copy Size - Größe kopieren - - - Copy All - Alles kopieren - - - Delete... - Löschen... - - - Delete Game - Lösche Spiel - - - Delete Update - Lösche Aktualisierung - - - Delete DLC - Lösche DLC - - - Delete Trophy - Trophäe löschen - - - Compatibility... - Kompatibilität... - - - Shortcut creation - Verknüpfungserstellung - - - Shortcut created successfully! - Verknüpfung erfolgreich erstellt! - - - Error - Fehler - - - Error creating shortcut! - Fehler beim Erstellen der Verknüpfung! - - - Game - Spiel - - - This game has no update to delete! - Dieses Spiel hat keine Aktualisierung zum löschen! - - - Update - Aktualisieren - - - This game has no DLC to delete! - Dieses Spiel hat kein DLC zum aktualisieren! - - - DLC - DLC - - - Delete %1 - Lösche %1 - - - Are you sure you want to delete %1's %2 directory? - Sind Sie sicher dass Sie %1 %2 Ordner löschen wollen? - - - Open Update Folder - Öffne Update-Ordner - - - Delete Save Data - Lösche Speicherdaten - - - This game has no update folder to open! - Dieses Spiel hat keinen Update-Ordner zum öffnen! - - - No log file found for this game! - Keine Protokolldatei für dieses Spiel gefunden! - - - Failed to convert icon. - Fehler beim Konvertieren des Symbols. - - - This game has no save data to delete! - Dieses Spiel hat keine Speicherdaten zum Löschen! - - - This game has no saved trophies to delete! - Dieses Spiel hat keine gespeicherten Trophäen zum Löschen! - - - Save Data - Gespeicherte Daten - - - Trophy - Trophäe - - - SFO Viewer for - SFO-Betrachter für - - - Remove from Favorites - Von Favoriten Entfernen - - - Add to Favorites - Zu Favoriten hinzufügen - - - Game-specific Settings... - Individuelle Konfiguration - - - Configure Game-specific Settings - Individuelle Konfiguration bearbeiten - - - Create Game-specific Settings from Global Settings - Erstelle individuelle Konfiguration aus den allgemeinen Einstellungen - - - Delete Game-specific Settings - Lösche Individuelle Konfiguration - - - Update Database - Datenbank aktualisieren - - - View Report - Bericht ansehen - - - Submit a Report - Einen Bericht erstellen - - - Confirm deletion - Löschen bestätigen - - - Delete game-specific settings? - Individuelle Konfiguration löschen? - - - - HelpDialog - - Quickstart - Schnellstart - - - FAQ - Häufig gestellte Fragen - - - Syntax - Syntax - - - Special Bindings - Spezielle Zuordnungen - - - Keybindings - Tastenbelegung - - - - Hotkeys - - Customize Hotkeys - Hotkeys anpassen - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - FPS anzeigen - - - unmapped - Nicht zugeordnet - - - Quit Emulation - Emulator beenden - - - Reload Button Mappings - Tastenbelegung neu laden - - - Toggle Fullscreen - Vollbild umschalten - - - Toggle Pause - Anhalten/fortsetzen - - - Keyboard Hotkeys - Tastatur Hotkeys - - - Renderdoc Capture (for debugging only) - RenderDoc-Aufnahme (nur für Debugging erforderlich) - - - Toggle Mouse to Joystick Emulation - Schalte Maus zu Joystick-Emulation um - - - Toggle Mouse to Gyro Emulation - Schalte Maus zu Gyro-Emulation um - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tipp: Es können bis zu drei gleichzeitige Eingaben für ein Hotkey zugewiesen werden - - - Save - Speichern - - - Apply - Übernehmen - - - Cancel - Abbrechen - - - Restore Defaults - Standardeinstellungen wiederherstellen - - - Unable to Save - Speichern nicht möglich - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Diese Eingabe kann nicht mehr als einmal verwendet werden. Doppelte Eingaben wurden für folgende Tasten gefunden: - -%1 - - - Waiting for inputs - Warte auf Eingabe - - - - KBMSettings - - Configure Controls - Steuerung konfigurieren - - - D-Pad - Steuerkreuz - - - Up - Oben - - - unmapped - nicht zugeordnet - - - Left - Links - - - Right - Rechts - - - Down - Runter - - - Left Analog Halfmode - Linker Analog-Halbmodus - - - hold to move left stick at half-speed - Halten um den linken Analogstick mit Halbgeschwindigkeit zu bewegen - - - Left Stick - Linker Analogstick - - - Config Selection - Konfigurationsauswahl - - - Common Config - Allgemeine Konfiguration - - - Use per-game configs - Benutze Per-Game Einstellungen - - - Text Editor - Textbearbeiter - - - Help - Hilfe - - - Mouse to Joystick - Maus zu Joystick - - - *press F7 ingame to activate - *Zum Aktivieren F7 ingame drücken - - - Options - Options - - - Mouse Movement Parameters - Mausbewegungsparameter - - - note: click Help Button/Special Keybindings for more information - Hinweis: Klicken Sie auf Hilfe-Button/Special Tastaturbelegungen für weitere Informationen - - - Face Buttons - Aktionstasten - - - Triangle - Dreieck - - - Square - Quadrat - - - Circle - Kreis - - - Cross - Kreuz - - - Right Analog Halfmode - Rechter Analog-Halbmodus - - - hold to move right stick at half-speed - Halten um den rechten Analogstick mit Halbgeschwindigkeit zu bewegen - - - Right Stick - Rechter Analogstick - - - Speed Offset (def 0.125): - Geschwindigkeitsversatz (Def 0.125): - - - Copy from Common Config - Von allgemeiner Konfiguration kopieren - - - Deadzone Offset (def 0.50): - Tote Zone Versatz (Def 0.50): - - - Speed Multiplier (def 1.0): - Geschwindigkeit Multiplikator (def 1.0): - - - Common Config Selected - Allgemeine Konfiguration ausgewählt - - - 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. - Diese Schaltfläche kopiert Zuordnungen aus der allgemeinen Konfiguration in das aktuell ausgewählte Profil, und kann nicht verwendet werden, wenn das aktuell ausgewählte Profil die allgemeine Konfiguration ist. - - - Copy values from Common Config - Werte von allgemeiner Konfiguration kopieren - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Möchten Sie die vorhandenen Zuordnungen mit den Zuordnungen der allgemeinen Konfigurationen überschreiben? - - - Unable to Save - Speichern nicht möglich - - - Press a key - Drücken Sie eine Taste - - - Cannot set mapping - Kann Zuordnung nicht festlegen - - - Mousewheel cannot be mapped to stick outputs - Mausrad kann nicht zu Analogstick Ausgabe zugeordnet werden - - - Save - Speichern - - - Apply - Übernehmen - - - Restore Defaults - Werkseinstellungen wiederherstellen - - - Cancel - Abbrechen - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Diese Eingabe kann nicht mehr als einmal verwendet werden. Doppelte Eingaben wurden für folgende Tasten gefunden: - -%1 - - - Touchpad Left - Touchpad Links - - - Touchpad Center - Touchpad Mitte - - - Touchpad Right - Touchpad Rechts - - - - LogPresetsDialog - - Log Filter Presets - Protokoll-Filter Vorlagen - - - Comment - Kommentar - - - Filter - Filter - - - Load - Laden - - - Close - Schließen - - - Add a new preset after the selected row - Eine neue Vorlage nach der ausgewählten Zeile hinzufügen - - - Remove selected presets - Ausgewählte Vorlage entfernen - - - Load the selected preset - Ausgewählte Vorlage laden - - - - MainWindow - - Open/Add Elf Folder - Elf-Ordner öffnen/hinzufügen - - - Boot Game - Spiel starten - - - Check for Updates - Nach Updates suchen - - - About shadPS4 - Über shadPS4 - - - Configure... - Konfigurieren... - - - Recent Games - Zuletzt gespielt - - - Open shadPS4 Folder - Öffne shadPS4 Ordner - - - Exit - Beenden - - - Exit shadPS4 - shadPS4 beenden - - - Exit the application. - Die Anwendung beenden. - - - Show Game List - Spielliste anzeigen - - - Game List Refresh - Spielliste aktualisieren - - - Tiny - Winzig - - - Small - Klein - - - Medium - Mittel - - - Large - Groß - - - List View - Listenansicht - - - Grid View - Gitteransicht - - - Elf Viewer - Elf-Ansicht - - - Game Install Directory - Installationsverzeichnis für Spiele - - - Download Cheats/Patches - Cheats/Patches herunterladen - - - Dump Game List - Spielliste ausgeben - - - Trophy Viewer - Trophäenansicht - - - No games found. Please add your games to your library first. - Keine Spiele gefunden. Bitte fügen Sie zuerst Ihre Spiele zu Ihrer Bibliothek hinzu. - - - Search... - Suchen... - - - File - Datei - - - View - Ansicht - - - Game List Icons - Spiellisten-Symbole - - - Game List Mode - Spiellisten-Modus - - - Settings - Einstellungen - - - Utils - Werkzeuge - - - Themes - Stile - - - Help - Hilfe - - - Dark - Dunkel - - - Light - Hell - - - Green - Grün - - - Blue - Blau - - - Violet - Violett - - - toolBar - Werkzeugleiste - - - Game List - Spieleliste - - - Download Cheats For All Installed Games - Cheats für alle installierten Spiele herunterladen - - - Download Patches For All Games - Patches für alle Spiele herunterladen - - - Download Complete - Download abgeschlossen - - - You have downloaded cheats for all the games you have installed. - Sie haben Cheats für alle installierten Spiele heruntergeladen. - - - Patches Downloaded Successfully! - Patches erfolgreich heruntergeladen! - - - All Patches available for all games have been downloaded. - Alle Patches für alle Spiele wurden heruntergeladen. - - - Games: - Spiele: - - - ELF files (*.bin *.elf *.oelf) - ELF-Dateien (*.bin *.elf *.oelf) - - - Game Boot - Spiel-Start - - - Only one file can be selected! - Es kann nur eine Datei ausgewählt werden! - - - Run Game - Spiel ausführen - - - Eboot.bin file not found - Eboot.bin Datei nicht gefunden - - - Game is already running! - Spiel läuft bereits! - - - shadPS4 - shadPS4 - - - Play - Spielen - - - Pause - Pause - - - Stop - Stopp - - - Restart - Neustarten - - - Full Screen - Vollbild - - - Controllers - Controller - - - Keyboard - Tastatur - - - Refresh List - Liste aktualisieren - - - Resume - Fortsetzen - - - Show Labels Under Icons - Etiketten unter Symbolen anzeigen - - - Customize Hotkeys - Hotkeys anpassen - - - - SettingsDialog - - Settings - Einstellungen - - - General - Allgemein - - - System - System - - - Console Language - Konsolensprache - - - Emulator Language - Emulatorsprache - - - Default tab when opening settings - Standardregisterkarte beim Öffnen der Einstellungen - - - Show Game Size In List - Zeige Spielgröße in der Liste - - - Enable Discord Rich Presence - Discord Rich Presence aktivieren - - - Username - Benutzername - - - Trophy Key - Trophäen-Schlüssel - - - Trophy - Trophäe - - - Open the custom trophy images/sounds folder - Öffne den benutzerdefinierten Ordner für Trophäenbilder/Sounds - - - Logger - Protokollführer - - - Log Type - Protokoll-Typ - - - Log Filter - Protokoll-Filter - - - Open Log Location - Protokoll-Ordner öffnen - - - Input - Eingabe - - - Cursor - Mauszeiger - - - Hide Cursor - Mauszeiger ausblenden - - - Hide Cursor Idle Timeout - Zeit wann der Mauszeiger ausgeblendet werden soll - - - Microphone - Mikrofon - - - None - Keine - - - Default Device - Standardgerät - - - s - s - - - Controller - Controller - - - Graphics - Grafik - - - GUI - Benutzeroberfläche - - - User - Benutzer - - - Graphics Device - Grafikkarte - - - Advanced - Erweitert - - - Enable Shaders Dumping - Shader-Dumping aktivieren - - - Enable NULL GPU - NULL GPU aktivieren - - - Enable HDR - HDR aktivieren - - - Paths - Pfade - - - Game Folders - Spieleordner - - - Add... - Hinzufügen... - - - Remove - Entfernen - - - Debug - Debug - - - Enable Debug Dumping - Debug-Dumping aktivieren - - - Enable Vulkan Validation Layers - Vulkan Validations-Ebenen aktivieren - - - Enable Vulkan Synchronization Validation - Vulkan Synchronisations-Validierung aktivieren - - - Enable RenderDoc Debugging - RenderDoc-Debugging aktivieren - - - Enable Crash Diagnostics - Absturz-Diagnostik aktivieren - - - Collect Shaders - Sammle Shader - - - Copy GPU Buffers - Kopiere GPU Puffer - - - Host Debug Markers - Host-Debug-Markierer - - - Guest Debug Markers - Guest-Debug-Markierer - - - Enable Readbacks - Aktiviere Readbacks - - - Enable Readback Linear Images - Aktiviere Readback Linear Images - - - Update - Aktualisieren - - - Check for Updates at Startup - Beim Start nach Updates suchen - - - Always Show Changelog - Changelog immer anzeigen - - - Update Channel - Update-Kanal - - - Check for Updates - Nach Updates suchen - - - Title Music - Titelmusik - - - Disable Trophy Notification - Trophäen-Benachrichtigung deaktivieren - - - Background Image - Hintergrundbild - - - Show Background Image - Hintergrundbild anzeigen - - - Opacity - Deckkraft - - - Play title music - Titelmusik abspielen - - - Update Compatibility Database On Startup - Aktualisiere Kompatibilitätsdatenbank beim Start - - - Game Compatibility - Spielkompatibilität - - - Display Compatibility Data - Kompatibilitätsdaten anzeigen - - - Update Compatibility Database - Aktualisiere Kompatibilitätsdatenbank - - - Volume - Lautstärke - - - Save - Speichern - - - Apply - Übernehmen - - - Restore Defaults - Standardeinstellungen wiederherstellen - - - Close - Schließen - - - Point your mouse at an option to display its description. - Bewege die Maus über eine Option, um deren Beschreibung anzuzeigen. - - - 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. - Konsolensprache:\nLegt die Sprache fest, die das PS4-Spiel verwendet.\nEs wird empfohlen, diese auf eine vom Spiel unterstützte Sprache einzustellen, die je nach Region unterschiedlich sein kann. - - - Emulator Language:\nSets the language of the emulator's user interface. - Emulatorsprache:\nLegt die Sprache der Emulator-Benutzeroberfläche fest. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Startbildschirm anzeigen:\nZeigt beim Starten eines Spiels dessen Startbild an. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Discord Rich Presence aktivieren:\nZeigt das Emulator-Icon und relevante Informationen in deinem Discord-Profil an. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Benutzername:\nLegt den Namen des PS4-Kontos fest, der in einigen Spielen angezeigt werden kann. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Trophäenschlüssel:\nSchlüssel zum Entschlüsseln von Trophäen. Muss von Ihrer gejailbreakten Konsole abgerufen werden.\nDarf nur Hex-Zeichen enthalten. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Protokolltyp:\nLegt fest, ob die Ausgabe des Protokollfensters synchronisiert wird, um die Leistung zu verbessern. Dies kann sich negativ auf die Emulation auswirken. - - - 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. - Protokollfilter:\nFiltert das Protokoll so, dass nur bestimmte Informationen ausgegeben werden.\nBeispiele: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\n Ebenen: Trace, Debug, Info, Warning, Error, Critical - in dieser Reihenfolge, eine ausgewählte Ebene blendet alle vorherigen Ebenen aus und zeigt alle nachfolgenden an. - - - 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: Offizielle Builds, die monatlich veröffentlicht werden, können viel älter sein, aber stabiler und getestet.\nNightly: Entwickler-Builds, die die neuesten Funktionen und Fehlerbehebungen enthalten, aber Fehler enthalten und weniger stabil sein können. - - - Background Image:\nControl the opacity of the game background image. - Hintergrundbild:\nSteuere die Deckkraft des Spiel-Hintergrundbilds. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Wiedergabe der Titelmusik:\nWenn das Spiel dies unterstützt, wird beim Auswählen des Spiels in der Benutzeroberfläche spezielle Musik abgespielt. - - - 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). - Trophäen-Popups deaktivieren:\nDeaktivieren Sie Trophäenbenachrichtigungen im Spiel. Der Trophäenfortschritt kann weiterhin mit dem Trophäen-Viewer verfolgt werden (klicken Sie mit der rechten Maustaste auf das Spiel im Hauptfenster).. - - - 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. - Mauszeiger ausblenden:\nWähle wann der Mauszeiger verschwinden soll:\nNie: Der Mauszeiger ist immer sichtbar.\nBei Inaktivität: Der Mauszeiger verschwindet nach einer festgelegten Zeit bei nicht Nutzung.\nImmer: Der Mauszeiger ist nicht sichtbar. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Zeit wann der Mauszeiger ausgeblendet werden soll:\nStelle eine Zeit (in Sekunden) ein, nach der die Maus bei nicht Benutzung verschwinden soll. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Kompatibilitätsdaten anzeigen:\nZeigt Spielkompatibilitätsinformationen in Tabellenansicht an. Aktivieren Sie „Aktualisiere Kompatibilitätsdatenbank beim Start“, um aktuelle Informationen zu erhalten. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Kompatibilität beim Start aktualisieren:\nAktualisiert die Kompatibilitätsdatenbank automatisch, wenn shadPS4 startet. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Aktualisiere Kompatibilitätsdatenbank:\nAktualisiere sofort die Kompatibilitätsdatenbank. - - - Never - Nie - - - Idle - Bei Inaktivität - - - Always - Immer - - - 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. - Grafikkarte:\nAuf Systemen mit mehreren Grafikkarten kann hier eine Grafikkarte ausgewählt werden, die der Emulator verwenden soll,\noder wählen Sie "Auto Auswahl", um sie automatisch auszuwählen. - - - 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. - Fenstergröße:\nLegt die Größe des Emulator-Fensters zum Starten fest und kann während des Spielens angepasst werden.\nDiese Einstellung ist unabhängig von der In-Game-Auflösung. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Shader-Dumping aktivieren:\nZum technischen Debuggen speichert es die Shaders des Spiels in einem Ordner während der Wiedergabe. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - NULL GPU aktivieren:\nFür technisches Debugging wird sämtliches Rendering deaktiviert als wäre keine Grafikkarte vorhanden. - - - 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:\nAktiviert HDR in Spielen, die es unterstützen.\nIhr Monitor muss Unterstützung für den BT2020 PQ Farbraum und das RGB10A2 Swapchain Format haben. - - - Game Folders:\nThe list of folders to check for installed games. - Spieleordner:\nDie Liste der Ordner, in denen nach installierten Spielen gesucht wird. - - - Add:\nAdd a folder to the list. - Hinzufügen:\nFügen Sie einen Ordner zur Liste hinzu. - - - Remove:\nRemove a folder from the list. - Entfernen:\nEntfernen Sie einen Ordner aus der Liste. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Debug-Dump aktivieren:\nSpeichert Import-/Exportsymbole und Headerinformationen des aktuellen PS4-Programms in einem Verzeichnis. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - RenderDoc-Debugging aktivieren:\nWenn aktiviert, bietet der Emulator Kompatibilität mit Renderdoc zur Erfassung und Analyse des aktuell gerenderten Frames. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Shader sammeln:\nSie müssen diese Option aktivieren, um Shader mit dem Debug-Menü (Strg + F10) bearbeiten zu können. - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Aktiviere Readbacks:\nAktiviert GPU-Speicher-Readbacks und -Writebacks.\nDies ist für manche Spiele erforderlich, damit sie richtig funktionieren.\nKann Stabilitäts- und/oder Leistungsprobleme verursachen. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Aktiviere Readback Linear Images:\nAktiviert das asynchrone Herunterladen von GPU-modifizierten linearen Bildern.\nKann Probleme in einigen Spielen beheben. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - GPU-Puffer kopieren:\nUmgeht Race-Bedingungen mit GPU-Übermittlungen.\nKann bei PM4-Abstürzen vom Typ 0 hilfreich sein oder auch nicht. - - - 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-Marker:\nFügt emulatorseitige Informationen wie Marker für bestimmte AMDGPU-Befehle rund um Vulkan-Befehle ein und gibt Ressourcen-Debug-Namen an.\nWenn Sie dies aktiviert haben, sollten Sie die Absturzdiagnose aktivieren.\nNützlich für Programme wie 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. - Gast-Debug-Markierer:\nFügt alle Debug-Markierer, die das Spiel selbst hinzugefügt hat, in den Befehlspuffer ein.\nWenn Sie dies aktiviert haben, sollten Sie die Absturzdiagnose aktivieren.\nNützlich für Programme wie RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Speicherdaten-Pfad:\nDer Ordner, in den Speicherdaten gespeichert werden. - - - Browse:\nBrowse for a folder to set as the save data path. - Durchsuchen:\nDurchsuchen eines Ordners, um den Speicherdatenpfad festzulegen. - - - Release - Veröffentlichung - - - Nightly - Nightly - - - Set the volume of the background music. - Legen Sie die Lautstärke der Hintergrundmusik fest. - - - Enable Motion Controls - Aktiviere Bewegungssteuerung - - - Save Data Path - Speicherdaten-Pfad - - - Browse - Durchsuchen - - - async - asynchron - - - sync - syncron - - - Auto Select - Auto Auswahl - - - Directory to install games - Installationsverzeichnis für Spiele - - - Directory to save data - Verzeichnis für Speicherdaten - - - Video - Video - - - Display Mode - Anzeigemodus - - - Windowed - Fenster - - - Fullscreen - Vollbild - - - Fullscreen (Borderless) - Vollbild (randlos) - - - Window Size - Fenstergröße - - - W: - B: - - - H: - H: - - - Separate Log Files - Separate Protokolldateien - - - Separate Log Files:\nWrites a separate logfile for each game. - Separate Protokolldateien:\nSchreibt für jedes Spiel eine separate Logdatei. - - - Trophy Notification Position - Trophäen-Benachrichtigungsposition - - - Left - Links - - - Right - Rechts - - - Top - Oben - - - Bottom - Unten - - - Notification Duration - Benachrichtigungsdauer - - - Portable User Folder - Portable Benutzerordner - - - Create Portable User Folder from Common User Folder - Erstellen eines portablen Benutzerordners aus dem allgemeinen Benutzer Ordner - - - 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. - Portablen Benutzerordner:\nspeichert ShadPS4 Einstellungen und Daten, die nur auf den ShadPS4 Build im aktuellen Ordner angewendet werden. Starten Sie die App nach dem Erstellen des tragbaren Benutzerordners neu, um sie zu verwenden. - - - Cannot create portable user folder - Kann keinen portablen Benutzerordner erstellen - - - %1 already exists - %1 existiert bereits - - - Portable user folder created - Portablen Benutzerordner erstellt - - - %1 successfully created. - %1 erfolgreich erstellt. - - - 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. - Öffnen Sie den Ordner für benutzerdefinierte Trophäenbilder/-sounds:\n -Sie können benutzerdefinierte Bilder zu den Trophäen hinzufügen und einen Ton hinzufügen.\n -Fügen Sie die Dateien dem Ordner custom_trophy mit folgenden Namen hinzu:\n -trophy.wav ODER trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\n -Hinweis: Der Sound funktioniert nur in Qt-Versionen. - - - * Unsupported Vulkan Version - * Nicht unterstützte Vulkan Version - - - Experimental Features - Experimentelle Funktionen - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNUNG: Diese Funktionen sind experimentell und sollten nur aktiviert werden, wenn ein Spiel es voraussetzt oder man dazu aufgefordert wird. Bitte frag im shadPS4 Discord Server nach, falls Fragen sind. - - - Enable Background Controller Input - Erkenne die Controller-Eingabe im Hintergrund - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Erkenne die Controller-Eingabe im Hintergrund:\nErlaubt shadPS4, die Controller-Eingaben zu erkennen, wenn das Fenster nicht mehr im Fokus steht. - - - 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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - Aktiviere Absturzdiagnose:\nErstellt eine .yaml-Datei mit Informationen über den Vulkan-Status zum Zeitpunkt des Absturzes.\nNützlich zum Debuggen von 'Device lost'-Fehlern. Wenn dieser Punkt aktiviert wird, dann sollten auch Host UND Guest Debug Marker aktiviert werden.\nVulkan Validation Layers müssen aktiviert werden und Vulkan SDK wird benötigt. - - - Enable Logging - Protokollierung aktivieren - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Protokollierung aktivieren:\nAktiviert die Protokollierung.\nWenn Sie sich nicht sicher sind, dann ändern Sie diese Einstellung nicht!\nDiese Einstellung sollte AKTIVIERT sein, wenn Sie nach Hilfe fragen. - - - Present Mode - Präsentationsmodus - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - FIFO (Vsync) - - - Immediate (No Vsync) - Sofort (kein Vsync) - - - DLC Folder - DLC-Pfad - - - Select the DLC folder - Wähle einen DLC-Ordner aus - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Präsentationsmodus:\nKonfiguriert, wie die Videoausgabe auf dem Bildschirm dargestellt werden soll.\n\nMailbox (Vsync): Die Frames werden mit der Aktualisierungsrate des Bildschirms synchronisiert. Neue Frames ersetzen alle ausstehenden Frames. Reduziert die Latenz, kann jedoch Frames überspringen, wenn es zu Verzögerungen kommt.\nFIFO (Vsync): Die Frames werden mit der Aktualisierungsrate des Bildschirms synchronisiert. Neue Frames werden hinter ausstehenden Frames in die Warteschlange gestellt. Stellt sicher, dass alle Frames angezeigt werden, kann jedoch die Latenz erhöhen.\nSofort (kein Vsync): Die Frames werden sofort auf dem Bildschirm angezeigt, sobald sie bereit sind. Kann zu Bildfehlern (Tearing) führen. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC-Pfad:\nDer Ordner, aus denen DLCs geladen werden können. - - - Browse:\nBrowse for a folder to set as the DLC path. - Durchsuchen:\nLege einen Ordner für DLCs fest. - - - FSR Settings - FSR Einstellungen - - - Enable FSR - FSR aktivieren - - - Enable RCAS (sharpening) - RCAS aktivieren (Schärfe) - - - RCAS Attenuation: - RCAS Dämpfung: - - - Load Presets... - Vorlagen laden... - - - Log - Protokoll - - - Open Log Location:\nOpen the folder where the log file is saved. - Protokollspeicherort öffnen:\nÖffne den Ordner, in dem die Protokolldatei gespeichert wird. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Mikrofon:\nKeine: Es wird kein Mikrofon verwendet.\nStandardgerät: Verwendet das vom System festgelegte Mikrofon.\nOder wähle manuell ein Mikrofon aus der Liste aus. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Lautstärke:\nSetze für alle Spiele die Lautstärke fest. Der Einstellbereich geht von 0% - 500% und der Standardwert ist 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Standard-Tab beim Öffnen der Einstellungen:\nWählen welcher Tab geöffnet werden soll, die Standardauswahl ist Allgemein. - - - Show Game Size In List:\nThere is the size of the game in the list. - Zeige Spielgröße in der Liste:\nÄndert die Größe der Spiele in der Liste. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Aktiviere Bewegungssteuerung:\nWenn aktiviert, dann wird die Bewegungssteuerung des Controllers verwendet, falls unterstützt wird. - - - Vblank Frequency - VBlank Frequenz - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequenz:\nDie Bildrate, die der Emulator verwendet (60 Hz ist die Grundlage, ganz gleich, ob das Spiel mit 30 oder 60 FPS läuft). Dies zu ändern kann sich negativ auswirken, wie z.B. erhöhte Spielgeschwindigkeit oder fehlerhafte Spielfunktionen, die diese Änderung nicht erwarten. - - - Enable Direct Memory Access - Aktiviere Direct Memory Access - - - Enable Devkit Console Mode - Devkit Konsolen-Modus aktivieren - - - Set "PSN signed-in" to True - Setze den PSN-Status als angemeldet - - - Set "Network Connected" to True - Setze die Netzwerkverbindung als verbunden - - - Miscellaneous - Sonstiges - - - Frontend - Benutzeroberfläche - - - Experimental - Experimentel - - - Show Splash Screen When Launching Game - Zeige beim Starten eines Spiels ein Startbild - - - General Frontend Settings - Allgemeine Einstellungen - - - Enable PS4 Neo Mode - PS4 Neo-Modus aktivieren - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Aktiviere Direct Memory Access:\nAktiviert die Möglichkeit der Grafikkarte, eigenständig auf den Prozessor-Speicher zuzugreifen. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - PS4 Neo-Modus aktivieren:\nAktiviert die PS4-Pro-Emulation und erhöht den Speicher. Sorgt aktuell für Instabilität bei einer Vielzahl von getesteten Spielen. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Devkit-Konsolen-Modus aktivieren:\nAktiviert den Devkit-Modus mit mehr Speicher. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Setze die Netzwerkverbindung als verbunden:\nErzwingt Spiele die Erkennung einer aktiven Netzwerkverbindung. Online-Funktionen werden noch nicht unterstützt. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Setze den PSN-Status als angemeldet:\nErzwingt Spiele die Erkennung einer Anmeldung beim PlayStation-Network (PSN). PSN-Funktionen werden noch nicht unterstützt. - - - 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.\nYou need the Vulkan SDK for this to work. - Aktiviere Vulkan Validation Layers:\nAktiviert ein System, welches den Status des Vulkan-Renderers überprüft und Daten über den internen Zustand sammelt.\nDiese Funktion reduziert die Leistung und beeinflusst das Verhalten des Emulators.\nVulkan SDK wird benötigt. - - - 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.\nYou need the Vulkan SDK for this to work. - Aktiviere Vulkan Synchronization Validation:\nAktiviert ein System, welches das Timing der Vulkan-Renderer Aufgaben überprüft.\nDiese Funktion reduziert die Leistung und beeinflusst das Verhalten des Emulators.\nVulkan SDK wird benötigt. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Trophäenansicht - - - Select Game: - Spiel auswählen: - - - Progress - Fortschritt - - - Show Earned Trophies - Verdiente Trophäen anzeigen - - - Show Not Earned Trophies - Nicht verdiente Trophäen anzeigen - - - Show Hidden Trophies - Verborgene Trophäen anzeigen - - - diff --git a/src/qt_gui/translations/el_GR.ts b/src/qt_gui/translations/el_GR.ts deleted file mode 100644 index 69534a206..000000000 --- a/src/qt_gui/translations/el_GR.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - About shadPS4 - - - 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 - Οι cheats/patches είναι πειραματικά.\nΧρησιμοποιήστε τα με προσοχή.\n\nΚατεβάστε τους cheats μεμονωμένα επιλέγοντας το αποθετήριο και κάνοντας κλικ στο κουμπί λήψης.\nΣτην καρτέλα Patches, μπορείτε να κατεβάσετε όλα τα patches ταυτόχρονα, να επιλέξετε ποια θέλετε να χρησιμοποιήσετε και να αποθηκεύσετε την επιλογή.\n\nΔεδομένου ότι δεν αναπτύσσουμε τους cheats/patches,\nπαρακαλώ αναφέρετε προβλήματα στον δημιουργό του cheat.\n\nΔημιουργήσατε ένα νέο cheat; Επισκεφθείτε:\n - - - No Image Available - Δεν διατίθεται εικόνα - - - Serial: - Σειριακός αριθμός: - - - Version: - Έκδοση: - - - Size: - Μέγεθος: - - - Select Cheat File: - Επιλέξτε αρχείο Cheat: - - - Repository: - Αποθετήριο: - - - Download Cheats - Λήψη Cheats - - - Delete File - Διαγραφή αρχείου - - - No files selected. - Δεν έχουν επιλεγεί αρχεία. - - - You can delete the cheats you don't want after downloading them. - Μπορείτε να διαγράψετε τα cheats που δεν θέλετε μετά τη λήψη τους. - - - Do you want to delete the selected file?\n%1 - Θέλετε να διαγράψετε το επιλεγμένο αρχείο;\n%1 - - - Select Patch File: - Επιλέξτε αρχείο Patch: - - - Download Patches - Λήψη Patches - - - Save - Αποθήκευση - - - Cheats - Cheats - - - Patches - Patches - - - Error - Σφάλμα - - - No patch selected. - Δεν έχει επιλεγεί κανένα patch. - - - Unable to open files.json for reading. - Αδυναμία ανοίγματος του files.json για ανάγνωση. - - - No patch file found for the current serial. - Δεν βρέθηκε αρχείο patch για τον τρέχοντα σειριακό αριθμό. - - - Unable to open the file for reading. - Αδυναμία ανοίγματος του αρχείου για ανάγνωση. - - - Unable to open the file for writing. - Αδυναμία ανοίγματος του αρχείου για εγγραφή. - - - Failed to parse XML: - Αποτυχία ανάλυσης XML: - - - Success - Επιτυχία - - - Options saved successfully. - Οι ρυθμίσεις αποθηκεύτηκαν επιτυχώς. - - - Invalid Source - Μη έγκυρη Πηγή - - - The selected source is invalid. - Η επιλεγμένη πηγή είναι μη έγκυρη. - - - File Exists - Η αρχείο υπάρχει - - - File already exists. Do you want to replace it? - Η αρχείο υπάρχει ήδη. Θέλετε να την αντικαταστήσετε; - - - Failed to save file: - Αποτυχία αποθήκευσης αρχείου: - - - Failed to download file: - Αποτυχία λήψης αρχείου: - - - Cheats Not Found - Δεν βρέθηκαν Cheats - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Δεν βρέθηκαν cheats για αυτό το παιχνίδι στην τρέχουσα έκδοση του επιλεγμένου αποθετηρίου. Δοκιμάστε να κατεβάσετε από άλλο αποθετήριο ή άλλη έκδοση του παιχνιδιού. - - - Cheats Downloaded Successfully - Cheats κατεβάστηκαν επιτυχώς - - - 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. - Κατεβάσατε επιτυχώς cheats για αυτή την έκδοση του παιχνιδιού από το επιλεγμένο αποθετήριο. Μπορείτε να δοκιμάσετε να κατεβάσετε από άλλο αποθετήριο. Αν είναι διαθέσιμο, μπορείτε να το επιλέξετε επιλέγοντας το αρχείο από τη λίστα. - - - Failed to save: - Αποτυχία αποθήκευσης: - - - Failed to download: - Αποτυχία λήψης: - - - 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 κατεβάστηκαν επιτυχώς! Όλα τα Patches για όλα τα παιχνίδια έχουν κατέβει, δεν είναι απαραίτητο να τα κατεβάσετε ένα-ένα για κάθε παιχνίδι, όπως με τα Cheats. Εάν η ενημέρωση δεν εμφανίζεται, μπορεί να μην υπάρχει για τον συγκεκριμένο σειριακό αριθμό και έκδοση του παιχνιδιού. - - - Failed to parse JSON data from HTML. - Αποτυχία ανάλυσης δεδομένων JSON από HTML. - - - Failed to retrieve HTML page. - Αποτυχία ανάκτησης σελίδας HTML. - - - The game is in version: %1 - Το παιχνίδι είναι στην έκδοση: %1 - - - The downloaded patch only works on version: %1 - Η ληφθείσα ενημέρωση λειτουργεί μόνο στην έκδοση: %1 - - - You may need to update your game. - Μπορεί να χρειαστεί να ενημερώσετε το παιχνίδι σας. - - - Incompatibility Notice - Ειδοποίηση ασυμβατότητας - - - Failed to open file: - Αποτυχία ανοίγματος αρχείου: - - - XML ERROR: - ΣΦΑΛΜΑ XML: - - - Failed to open files.json for writing - Αποτυχία ανοίγματος του files.json για εγγραφή - - - Author: - Συγγραφέας: - - - Directory does not exist: - Ο φάκελος δεν υπάρχει: - - - Failed to open files.json for reading. - Αποτυχία ανοίγματος του files.json για ανάγνωση. - - - Name: - Όνομα: - - - Can't apply cheats before the game is started - Δεν μπορείτε να εφαρμόσετε cheats πριν ξεκινήσει το παιχνίδι. - - - Close - Κλείσιμο - - - - CheckUpdate - - Auto Updater - Αυτόματος Ενημερωτής - - - Error - Σφάλμα - - - Network error: - Σφάλμα δικτύου: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Ο Αυτόματος Ενημερωτής επιτρέπει έως και 60 ελέγχους ενημερώσεων ανά ώρα.\nΈχετε φτάσει αυτό το όριο. Παρακαλώ δοκιμάστε ξανά αργότερα. - - - Failed to parse update information. - Αποτυχία ανάλυσης πληροφοριών ενημέρωσης. - - - No pre-releases found. - Δεν βρέθηκαν προ-κυκλοφορίες. - - - Invalid release data. - Μη έγκυρα δεδομένα έκδοσης. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Σημείωση:</b><br><br> Από την έκδοση <b>0.12.0</b>, η έκδοση Qt του emulator δεν θα λαμβάνει πλέον άμεσες ενημερώσεις.<br><br> Η διεπαφή Qt παραμένει διαθέσιμη μέσω του νέου επίσημου εκτοξευτή (launcher):<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – βασισμένο στον αρχικό πηγαίο κώδικα του shadPS4.<br><br>Συνιστούμε να μεταβείτε σε αυτόν τον launcher για να συνεχίσετε να λαμβάνετε ενημερώσεις. - - - Your version is already up to date! - Η έκδοσή σας είναι ήδη ενημερωμένη! - - - Update Available - Διαθέσιμη Ενημέρωση - - - Update Channel - Κανάλι Ενημέρωσης - - - Current Version - Τρέχουσα Έκδοση - - - Latest Version - Τελευταία Έκδοση - - - Do you want to update? - Θέλετε να ενημερώσετε; - - - Show Changelog - Εμφάνιση Ιστορικού Αλλαγών - - - Check for Updates at Startup - Έλεγχος για ενημερώσεις κατά την εκκίνηση - - - Update - Ενημέρωση - - - No - Όχι - - - Hide Changelog - Απόκρυψη Ιστορικού Αλλαγών - - - Changes - Αλλαγές - - - Network error occurred while trying to access the URL - Σφάλμα δικτύου κατά την προσπάθεια πρόσβασης στη διεύθυνση URL - - - Download Complete - Λήψη ολοκληρώθηκε - - - The update has been downloaded, press OK to install. - Η ενημέρωση έχει ληφθεί, πατήστε OK για να εγκαταστήσετε. - - - Failed to save the update file at - Αποτυχία αποθήκευσης του αρχείου ενημέρωσης στο - - - Starting Update... - Εκκίνηση Ενημέρωσης... - - - Failed to create the update script file - Αποτυχία δημιουργίας του αρχείου σεναρίου ενημέρωσης - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Φόρτωση δεδομένων συμβατότητας, παρακαλώ περιμένετε - - - Cancel - Ακύρωση - - - Loading... - Φόρτωση... - - - Error - Σφάλμα - - - Unable to update compatibility data! Try again later. - Δεν ήταν δυνατή η ενημέρωση των δεδομένων συμβατότητας! Προσπαθήστε αργότερα. - - - Unable to open compatibility_data.json for writing. - Αδύνατο να ανοίξετε το compatibility_data.json για εγγραφή. - - - Unknown - Άγνωστο - - - Nothing - Τίποτα - - - Boots - Μπότες - - - Menus - Μενού - - - Ingame - Εντός παιχνιδιού - - - 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 - - - Face Buttons - Face Buttons - - - 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 - - - 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 - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - 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 - Εικονίδιο - - - Name - Όνομα - - - Serial - Σειριακός αριθμός - - - Compatibility - Compatibility - - - Region - Περιοχή - - - Firmware - Λογισμικό - - - Size - Μέγεθος - - - Version - Έκδοση - - - Path - Διαδρομή - - - 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 - Κάντε κλικ για να δείτε λεπτομέρειες στο GitHub - - - Last updated - Τελευταία ενημέρωση - - - Favorite - Favorite - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Create Shortcut - - - Cheats / Patches - Kodikí / Enimeróseis - - - SFO Viewer - SFO Viewer - - - 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 - - - Delete Trophy - Delete Trophy - - - Compatibility... - Compatibility... - - - 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 - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Open/Add Elf Folder - - - Boot Game - Boot Game - - - 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 - Κατεβάστε Κωδικούς / Ενημερώσεις - - - 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 - Βοήθεια - - - Dark - Dark - - - Light - Light - - - Green - Green - - - Blue - Blue - - - Violet - Violet - - - toolBar - toolBar - - - Game List - Λίστα παιχνιδιών - - - Download Cheats For All Installed Games - Λήψη Cheats για όλα τα εγκατεστημένα παιχνίδια - - - Download Patches For All Games - Λήψη Patches για όλα τα παιχνίδια - - - Download Complete - Η λήψη ολοκληρώθηκε - - - You have downloaded cheats for all the games you have installed. - Έχετε κατεβάσει cheats για όλα τα εγκατεστημένα παιχνίδια. - - - Patches Downloaded Successfully! - Τα Patches κατέβηκαν επιτυχώς! - - - All Patches available for all games have been downloaded. - Όλα τα διαθέσιμα Patches για όλα τα παιχνίδια έχουν κατέβει. - - - Games: - Παιχνίδια: - - - ELF files (*.bin *.elf *.oelf) - Αρχεία ELF (*.bin *.elf *.oelf) - - - Game Boot - Εκκίνηση παιχνιδιού - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - System - - - Console Language - Console Language - - - Emulator Language - Emulator Language - - - Default tab when opening settings - Προεπιλεγμένη καρτέλα κατά την ανοίγμα των ρυθμίσεων - - - Show Game Size In List - Εμφάνιση Μεγέθους Παιχνιδιού στη Λίστα - - - Enable Discord Rich Presence - Ενεργοποίηση 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 - Άνοιγμα τοποθεσίας αρχείου καταγραφής - - - Input - Είσοδος - - - Cursor - Δείκτης - - - Hide Cursor - Απόκρυψη δείκτη - - - Hide Cursor Idle Timeout - Χρόνος αδράνειας απόκρυψης δείκτη - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Controller - - - Graphics - Graphics - - - GUI - Διεπαφή - - - User - Χρήστης - - - Graphics Device - Graphics Device - - - Advanced - Advanced - - - Enable Shaders Dumping - Enable Shaders Dumping - - - Enable NULL GPU - Enable NULL GPU - - - Enable HDR - Enable HDR - - - Paths - Διαδρομές - - - Game Folders - Φάκελοι παιχνιδιών - - - Add... - Προσθήκη... - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Ενημέρωση - - - Check for Updates at Startup - Έλεγχος για ενημερώσεις κατά την εκκίνηση - - - Always Show Changelog - Πάντα εμφάνιση ιστορικού αλλαγών - - - Update Channel - Κανάλι Ενημέρωσης - - - Check for Updates - Έλεγχος για ενημερώσεις - - - 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 - Αναπαραγωγή μουσικής τίτλου - - - 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 - ένταση - - - Save - Αποθήκευση - - - Apply - Εφαρμογή - - - Restore Defaults - Επαναφορά Προεπιλογών - - - Close - Κλείσιμο - - - 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Συνιστάται να επιλέξετε μία από τις γλώσσες που υποστηρίζονται από το παιχνίδι, η οποία ενδέχεται να διαφέρει ανάλογα με την περιοχή. - - - Emulator Language:\nSets the language of the emulator's user interface. - Γλώσσα Εξομοιωτή:\nΡυθμίζει τη γλώσσα του γραφικού περιβάλλοντος του εξομοιωτή. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Εμφάνιση Splash Screen:\nΕμφανίζει ειδική γραφική οθόνη κατά την εκκίνηση. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Ενεργοποίηση Discord Rich Presence:\nΕμφανίζει το εικονίδιο του emulator και σχετικές πληροφορίες στο προφίλ σας στο Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Όνομα Χρήστη:\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. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Τύπος Καταγραφής:\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 - με τη σειρά αυτή, κάθε επίπεδο που επιλέγεται αποκλείει τα προηγούμενα και εμφανίζει τα επόμενα επίπεδα. - - - 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: Εκδόσεις προγραμματιστών με νέες δυνατότητες και διορθώσεις, αλλά μπορεί να περιέχουν σφάλματα και να είναι λιγότερο σταθερές. - - - 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. - Αναπαραγωγή Μουσικής Τίτλων:\nΕάν το παιχνίδι το υποστηρίζει, ενεργοποιεί ειδική μουσική κατά την επιλογή του παιχνιδιού από τη διεπαφή χρήστη. - - - 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. - Απόκρυψη Κέρσορα:\nΕπιλέξτε πότε θα εξαφανιστεί ο κέρσορας:\nΠοτέ: θα βλέπετε πάντα το ποντίκι.\nΑδρανές: ορίστε έναν χρόνο για να εξαφανιστεί μετά από αδράνεια.\nΠάντα: δεν θα δείτε ποτέ το ποντίκι. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Ορίστε έναν χρόνο για να εξαφανιστεί το ποντίκι μετά από αδράνεια. - - - 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 - Ποτέ - - - Idle - Αδρανής - - - Always - Πάντα - - - 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ή επιλέξτε "Auto Select" για αυτόματη επιλογή. - - - 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Αυτό είναι διαφορετικό από την ανάλυση του ίδιου του παιχνιδιού. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Ενεργοποίηση Καταγραφής Σκιάσεων (Shaders):\nΓια τεχνικό εντοπισμό σφαλμάτων, αποθηκεύει τις σκιάσεις του παιχνιδιού σε φάκελο κατά τη διάρκεια της αναπαραγωγής. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Ενεργοποίηση Εικονικής 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. - - - Game Folders:\nThe list of folders to check for installed games. - Φάκελοι Παιχνιδιών:\nΗ λίστα των φακέλων για έλεγχο των εγκατεστημένων παιχνιδιών. - - - Add:\nAdd a folder to the list. - Προσθήκη:\nΠροσθέστε έναν φάκελο στη λίστα. - - - Remove:\nRemove a folder from the list. - Αφαίρεση:\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 σε έναν φάκελο. - - - 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 για τη λήψη και ανάλυση του τρέχοντος καρέ. - - - 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - 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/en_US.ts b/src/qt_gui/translations/en_US.ts deleted file mode 100644 index b0f2c4a7a..000000000 --- a/src/qt_gui/translations/en_US.ts +++ /dev/null @@ -1,2453 +0,0 @@ - - - - - - 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. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - - - 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 - - - - D-Pad - - - - Up - - - - Left - Left - - - Right - Right - - - Down - - - - Left Stick Deadzone (def:2 max:127) - - - - Left Deadzone - - - - Left Stick - - - - Config Selection - - - - Common Config - - - - Use per-game configs - - - - Face Buttons - - - - Right Stick Deadzone (def:2, max:127) - - - - Right Deadzone - - - - Right Stick - - - - Color Adjustment - - - - Override Lightbar Color - - - - Override Color - - - - Unable to Save - - - - Cannot bind axis values more than once - - - - Save - Save - - - Apply - Apply - - - Restore Defaults - Restore Defaults - - - Cancel - Cancel - - - unmapped - - - - Options - - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - - - - Square - - - - Circle - - - - Cross - - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - - Press a button - - - - Move analog stick - - - - L1 and L2 - - - - Active Gamepad - - - - Gamepad ID - - - - Default Gamepad - - - - No default selected - - - - n/a - - - - Set Active Gamepad as Default - - - - Remove Default Gamepad - - - - R1 and R2 - - - - ID: - - - - Default Controller Selected - - - - Active controller set as default - - - - Default Controller Removed - - - - Default controller setting removed - - - - RED - - - - GREEN - - - - BLUE - - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - - - - Use Per-Game configs - - - - Error - Error - - - Could not open the file for reading - - - - Could not open the file for writing - - - - 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 this config to your custom default config? - - - - 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 - - - - - 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 - - - Favorite - - - - - 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... - - - 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 - - - - Delete Save Data - - - - This game has no update folder to open! - - - - No log file found for this game! - - - - Failed to convert icon. - - - - This game has no save data to delete! - - - - This game has no saved trophies to delete! - - - - Save Data - - - - Trophy - Trophy - - - SFO Viewer for - - - - Remove from Favorites - - - - Add to Favorites - - - - Game-specific Settings... - - - - Configure Game-specific Settings - - - - Create Game-specific Settings from Global Settings - - - - Delete Game-specific Settings - - - - Update Database - - - - View Report - - - - Submit a Report - - - - Confirm deletion - - - - Delete game-specific settings? - - - - - HelpDialog - - Quickstart - - - - FAQ - - - - Syntax - - - - Special Bindings - - - - Keybindings - - - - - Hotkeys - - Customize Hotkeys - - - - Controller Hotkeys - - - - Show FPS Counter - - - - unmapped - - - - Quit Emulation - - - - Reload Button Mappings - - - - Toggle Fullscreen - - - - Toggle Pause - - - - Keyboard Hotkeys - - - - Renderdoc Capture (for debugging only) - - - - Toggle Mouse to Joystick Emulation - - - - Toggle Mouse to Gyro Emulation - - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - - Waiting for inputs - - - - - KBMSettings - - Configure Controls - - - - D-Pad - - - - Up - - - - unmapped - - - - Left - Left - - - Right - Right - - - Down - - - - Left Analog Halfmode - - - - hold to move left stick at half-speed - - - - Left Stick - - - - Config Selection - - - - Common Config - - - - Use per-game configs - - - - Text Editor - - - - Help - Help - - - Mouse to Joystick - - - - *press F7 ingame to activate - - - - Options - - - - Mouse Movement Parameters - - - - note: click Help Button/Special Keybindings for more information - - - - Face Buttons - - - - Triangle - - - - Square - - - - Circle - - - - Cross - - - - Right Analog Halfmode - - - - hold to move right stick at half-speed - - - - Right Stick - - - - Speed Offset (def 0.125): - - - - Copy from Common Config - - - - Deadzone Offset (def 0.50): - - - - Speed Multiplier (def 1.0): - - - - 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. - - - - Copy values from Common Config - - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - - - - Unable to Save - - - - Press a key - - - - Cannot set mapping - - - - Mousewheel cannot be mapped to stick outputs - - - - Save - Save - - - Apply - Apply - - - Restore Defaults - Restore Defaults - - - Cancel - Cancel - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - - - - Comment - - - - Filter - - - - Load - - - - Close - Close - - - Add a new preset after the selected row - - - - Remove selected presets - - - - Load the selected preset - - - - - 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 - - - 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 - - - - Eboot.bin file not found - - - - Game is already running! - - - - shadPS4 - shadPS4 - - - Play - - - - Pause - - - - Stop - - - - Restart - - - - Full Screen - - - - Controllers - - - - Keyboard - - - - Refresh List - - - - Resume - - - - Show Labels Under Icons - - - - Customize Hotkeys - - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - System - - - Console Language - Console Language - - - Emulator Language - Emulator Language - - - Default tab when opening settings - Default tab when opening settings - - - Show Game Size In List - Show Game Size In List - - - 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 - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Controller - - - Graphics - Graphics - - - GUI - GUI - - - User - User - - - Graphics Device - Graphics Device - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - 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 - - - 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. - - - 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 - - - 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. - - - 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 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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 - - - - Nightly - - - - Set the volume of the background music. - - - - Enable Motion Controls - - - - Save Data Path - - - - Browse - Browse - - - async - - - - sync - - - - Auto Select - - - - Directory to install games - Directory to install games - - - Directory to save data - - - - Video - - - - Display Mode - - - - Windowed - - - - Fullscreen - - - - Fullscreen (Borderless) - - - - Window Size - - - - W: - - - - H: - - - - Separate Log Files - - - - 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 - - - - 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. - - - - Cannot create portable user folder - - - - %1 already exists - - - - Portable user folder 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. - - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - - Enable Background Controller Input - - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - - 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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - - Enable Logging - - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - - Present Mode - - - - Mailbox (Vsync) - - - - Fifo (Vsync) - - - - Immediate (No Vsync) - - - - DLC Folder - - - - Select the DLC folder - - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - - DLC Path:\nThe folder where game DLC loaded from. - - - - Browse:\nBrowse for a folder to set as the DLC path. - - - - FSR Settings - - - - Enable FSR - - - - Enable RCAS (sharpening) - - - - RCAS Attenuation: - - - - Load Presets... - - - - Log - - - - Open Log Location:\nOpen the folder where the log file is saved. - - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - - Show Game Size In List:\nThere is the size of the game in the list. - - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - - Vblank Frequency - - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - - - - Enable Devkit Console Mode - - - - Set "PSN signed-in" to True - - - - Set "Network Connected" to True - - - - Miscellaneous - - - - Frontend - - - - Experimental - - - - Show Splash Screen When Launching Game - - - - General Frontend Settings - - - - Enable PS4 Neo Mode - - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - - 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.\nYou need the Vulkan SDK for this to work. - - - - 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.\nYou need the Vulkan SDK for this to work. - - - - Audio Device (general) - - - - Audio Device (DS4 speaker) - - - - - TrophyViewer - - Trophy Viewer - Trophy Viewer - - - Select Game: - - - - Progress - - - - Show Earned Trophies - - - - Show Not Earned Trophies - - - - Show Hidden Trophies - - - - diff --git a/src/qt_gui/translations/es_ES.ts b/src/qt_gui/translations/es_ES.ts deleted file mode 100644 index 035e5feb1..000000000 --- a/src/qt_gui/translations/es_ES.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Acerca de shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 es un emulador experimental de código abierto para la PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Este software no debe utilizarse para jugar juegos que hayas obtenido ilegalmente. - - - - CheatsPatches - - Cheats / Patches for - Trucos / Parches para - - - 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 - Los trucos/parches son experimentales.\nÚselos con precaución.\n\nPuede descargar cada truco seleccionando el repositorio y haciendo clic en el botón de descarga.\nEn la pestaña Parches podrá descargar todos los parches a la vez, elegir cuáles desea usar y guardar la selección.\n\nComo no desarrollamos los trucos/parches,\ndebe informar de cualquier problema a sus autores correspondientes.\n\n¿Creaste un truco nuevo? Visita:\n - - - No Image Available - No hay imagen disponible - - - Serial: - Número de serie: - - - Version: - Versión: - - - Size: - Tamaño: - - - Select Cheat File: - Seleccionar archivo de trucos: - - - Repository: - Repositorio: - - - Download Cheats - Descargar trucos - - - Delete File - Eliminar archivo - - - No files selected. - No se han seleccionado archivos. - - - You can delete the cheats you don't want after downloading them. - Puedes eliminar los trucos que no quieras una vez descargados. - - - Do you want to delete the selected file?\n%1 - ¿Deseas eliminar el archivo seleccionado?\n%1 - - - Select Patch File: - Seleccionar archivo de parche: - - - Download Patches - Descargar parches - - - Save - Guardar - - - Cheats - Trucos - - - Patches - Parches - - - Error - Error - - - No patch selected. - No se ha seleccionado ningún parche. - - - Unable to open files.json for reading. - No se puede abrir files.json para lectura. - - - No patch file found for the current serial. - No se encontró ningún archivo de parche para el número de serie actual. - - - Unable to open the file for reading. - No se puede abrir el archivo para lectura. - - - Unable to open the file for writing. - No se puede abrir el archivo para escritura. - - - Failed to parse XML: - Error al analizar XML: - - - Success - Éxito - - - Options saved successfully. - Opciones guardadas exitosamente. - - - Invalid Source - Fuente inválida - - - The selected source is invalid. - La fuente seleccionada es inválida. - - - File Exists - El archivo ya existe - - - File already exists. Do you want to replace it? - El archivo ya existe. ¿Deseas reemplazarlo? - - - Failed to save file: - Error al guardar el archivo: - - - Failed to download file: - Error al descargar el archivo: - - - Cheats Not Found - Trucos no encontrados - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - No se encontraron trucos para este juego en esta versión del repositorio seleccionado,intenta con otro repositorio o con una versión diferente del juego. - - - Cheats Downloaded Successfully - Trucos descargados exitosamente - - - 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. - Has descargado exitosamente los trucos para esta versión del juego desde el repositorio seleccionado. Puedes intentar descargar desde otro repositorio; si está disponible, también será posible usarlo seleccionando el archivo de la lista. - - - Failed to save: - Error al guardar: - - - Failed to download: - Error al descargar: - - - Download Complete - Descarga completa - - - 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. - ¡Parches descargados correctamente! Todos los parches disponibles para todos los juegos han sido descargados, no es necesario descargarlos individualmente para cada juego como ocurre con los trucos. Si el parche no aparece, puede ser que no exista para el número de serie y versión específicos del juego. - - - Failed to parse JSON data from HTML. - Error al analizar los datos JSON del HTML. - - - Failed to retrieve HTML page. - Error al recuperar la página HTML. - - - The game is in version: %1 - El juego está en la versión: %1 - - - The downloaded patch only works on version: %1 - El parche descargado solo funciona en la versión: %1 - - - You may need to update your game. - Puede que necesites actualizar tu juego. - - - Incompatibility Notice - Aviso de incompatibilidad - - - Failed to open file: - Error al abrir el archivo: - - - XML ERROR: - ERROR XML: - - - Failed to open files.json for writing - Error al abrir files.json para escritura - - - Author: - Autor: - - - Directory does not exist: - El directorio no existe: - - - Failed to open files.json for reading. - Error al abrir files.json para lectura. - - - Name: - Nombre: - - - Can't apply cheats before the game is started - No se pueden aplicar trucos antes de que se inicie el juego. - - - Close - Cerrar - - - - CheckUpdate - - Auto Updater - Actualizador Automático - - - Error - Error - - - Network error: - Error de red: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - El actualizador automático permite hasta 60 comprobaciones de actualización por hora.\nHas alcanzado este límite. Por favor, inténtalo de nuevo más tarde. - - - Failed to parse update information. - Error al analizar la información de actualización. - - - No pre-releases found. - No se encontraron prelanzamientos. - - - Invalid release data. - Datos de versión no válidos. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Aviso:</b><br><br> A partir de la versión <b>0.12.0</b>, la versión Qt del emulador ya no recibirá actualizaciones directas.<br><br> Sin embargo, la interfaz Qt sigue disponible mediante el nuevo lanzador oficial:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – basado en el código fuente original de shadPS4.<br><br>Recomendamos cambiar a este lanzador para seguir recibiendo actualizaciones. - - - Your version is already up to date! - ¡Su versión ya está actualizada! - - - Update Available - Actualización disponible - - - Update Channel - Canal de Actualización - - - Current Version - Versión actual - - - Latest Version - Última versión - - - Do you want to update? - ¿Quieres actualizar? - - - Show Changelog - Mostrar registro de cambios - - - Check for Updates at Startup - Buscar actualizaciones al iniciar - - - Update - Actualizar - - - No - No - - - Hide Changelog - Ocultar registro de cambios - - - Changes - Cambios - - - Network error occurred while trying to access the URL - Se produjo un error de red al intentar acceder a la URL - - - Download Complete - Descarga completa - - - The update has been downloaded, press OK to install. - La actualización se ha descargado, presione Aceptar para instalar. - - - Failed to save the update file at - No se pudo guardar el archivo de actualización en - - - Starting Update... - Iniciando actualización... - - - Failed to create the update script file - No se pudo crear el archivo del script de actualización - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Obteniendo datos de compatibilidad, por favor espera - - - Cancel - Cancelar - - - Loading... - Cargando... - - - Error - Error - - - Unable to update compatibility data! Try again later. - ¡No se pudo actualizar los datos de compatibilidad! Intenta de nuevo más tarde. - - - Unable to open compatibility_data.json for writing. - No se pudo abrir compatibility_data.json para escribir. - - - Unknown - Desconocido - - - Nothing - Nada - - - Boots - Inicia - - - Menus - Menús - - - Ingame - En el juego - - - Playable - Jugable - - - - ControlSettings - - Configure Controls - Configurar Controles - - - D-Pad - Botones de dirección - - - Up - Arriba - - - Left - Izquierda - - - Right - Derecha - - - Down - Abajo - - - Left Stick Deadzone (def:2 max:127) - Zona muerta del stick izquierdo (defecto: 2, máx.: 127) - - - Left Deadzone - Zona muerta del stick izquierdo - - - Left Stick - Stick izquierdo - - - Config Selection - Selección de Configuraciones - - - Common Config - Configuración Estándar - - - Use per-game configs - Usar configuraciones por juego - - - Face Buttons - Botones de acción - - - Right Stick Deadzone (def:2, max:127) - Zona muerta del stick derecho (defecto: 2, máx.: 127) - - - Right Deadzone - Zona muerta del stick derecho - - - Right Stick - Stick derecho - - - Color Adjustment - Calibración de color - - - Override Lightbar Color - Reemplazar el Color de la Barra de Luz - - - Override Color - Reemplazar Color - - - Unable to Save - No se Pudo Guardar - - - Cannot bind axis values more than once - No se pueden vincular valores del eje más de una vez - - - Save - Guardar - - - Apply - Aplicar - - - Restore Defaults - Restaurar Valores Por Defecto - - - Cancel - Cancelar - - - unmapped - sin vincular - - - Options - Opciones - - - Touchpad Left - Izquierda del Touchpad - - - Touchpad Center - Centro del Touchpad - - - Touchpad Right - Derecha del Touchpad - - - Triangle - Triángulo - - - Square - Cuadrado - - - Circle - Círculo - - - Cross - Equis - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - No se puede asignar un control único más de una vez. Controles duplicados asignados a los siguientes botones: - -%1 - - - Press a button - Presiona un botón - - - Move analog stick - Mueve el stick analógico - - - L1 and L2 - L1 y L2 - - - Active Gamepad - Mando Activo - - - Gamepad ID - ID del Mando - - - Default Gamepad - Mando por Defecto - - - No default selected - Por defecto no seleccionado - - - n/a - n/a - - - Set Active Gamepad as Default - Establecer Mando Activo como Predeterminado - - - Remove Default Gamepad - Eliminar Mando por Defecto - - - R1 and R2 - R1 y R2 - - - ID: - ID: - - - Default Controller Selected - Mando por Defecto Seleccionado - - - Active controller set as default - Mando activo establecido por defecto - - - Default Controller Removed - Mando por Defecto Eliminado - - - Default controller setting removed - Configuración del mando por defecto eliminada - - - RED - ROJO - - - GREEN - VERDE - - - BLUE - AZUL - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Editar Asignaciones de Teclado + Ratón y Mando - - - Use Per-Game configs - Usar Configuraciones por Juego - - - Error - Error - - - Could not open the file for reading - No se pudo abrir el archivo para la lectura - - - Could not open the file for writing - No se pudo abrir el archivo para escritura - - - Save Changes - Guardar Cambios - - - Do you want to save changes? - ¿Quieres guardar los cambios? - - - Help - Ayuda - - - Do you want to reset your custom default config to the original default config? - ¿Desea restablecer su configuración predeterminada personalizada a la configuración por defecto original? - - - Do you want to reset this config to your custom default config? - ¿Quieres restablecer esta configuración a tu configuración por defecto personalizada? - - - Reset to Default - Resetear A Valores Originales - - - - ElfViewer - - Open Folder - Abrir carpeta - - - - GameInfoClass - - Loading game list, please wait :3 - Cargando lista de juegos, por favor espera :3 - - - Cancel - Cancelar - - - Loading... - Cargando... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Elegir carpeta - - - Directory to install games - Carpeta para instalar juegos - - - Browse - Buscar - - - Error - Error - - - Directory to install DLC - Carpeta para instalar DLC - - - - GameListFrame - - Icon - Icono - - - Name - Nombre - - - Serial - Numero de serie - - - Compatibility - Compatibilidad - - - Region - Región - - - Firmware - Firmware - - - Size - Tamaño - - - Version - Versión - - - Path - Ruta - - - Play Time - Tiempo de Juego - - - Never Played - Nunca Jugado - - - h - h - - - m - m - - - s - s - - - Compatibility is untested - Compatibilidad no comprobada - - - Game does not initialize properly / crashes the emulator - El juego no se inicia correctamente o cuelga el emulador - - - Game boots, but only displays a blank screen - El juego arranca, pero se queda en blanco - - - Game displays an image but does not go past the menu - El juego muestra imágenes, pero no va más allá de los menús - - - Game has game-breaking glitches or unplayable performance - El juego tiene fallos graves o un rendimiento que lo hace injugable - - - Game can be completed with playable performance and no major glitches - El juego puede completarse con un rendimiento jugable y sin errores de importancia - - - Click to see details on github - Haz clic para ver detalles en GitHub - - - Last updated - Última actualización - - - Favorite - Favorito - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Crear acceso directo - - - Cheats / Patches - Trucos / Parches - - - SFO Viewer - Vista SFO - - - Trophy Viewer - Expositor de Trofeos - - - Open Folder... - Abrir Carpeta... - - - Open Game Folder - Abrir Carpeta del Juego - - - Open Save Data Folder - Abrir Carpeta de Datos Guardados - - - Open Log Folder - Abrir Carpeta de Registros - - - Copy info... - Copiar información... - - - Copy Name - Copiar nombre - - - Copy Serial - Copiar número de serie - - - Copy Version - Copiar versión - - - Copy Size - Copiar Tamaño - - - Copy All - Copiar todo - - - Delete... - Eliminar... - - - Delete Game - Eliminar juego - - - Delete Update - Eliminar Actualización - - - Delete DLC - Eliminar DLC - - - Delete Trophy - Eliminar Trofeo - - - Compatibility... - Compatibilidad... - - - Shortcut creation - Acceso directo creado - - - Shortcut created successfully! - ¡Acceso directo creado con éxito! - - - Error - Error - - - Error creating shortcut! - ¡Error al crear el acceso directo! - - - Game - Juego - - - This game has no update to delete! - ¡Este juego no tiene actualizaciones! - - - Update - Actualización - - - This game has no DLC to delete! - ¡Este juego no tiene DLCs! - - - DLC - DLC - - - Delete %1 - Eliminar %1 - - - Are you sure you want to delete %1's %2 directory? - ¿Seguro que quieres eliminar el directorio %2 de %1? - - - Open Update Folder - Abrir carpeta de actualizaciones - - - Delete Save Data - Eliminar datos guardados - - - This game has no update folder to open! - ¡Este juego no tiene carpeta de actualizaciones! - - - No log file found for this game! - ¡No se encontró un archivo de registro para este juego! - - - Failed to convert icon. - Error al convertir el icono. - - - This game has no save data to delete! - ¡Este juego no tiene datos guardados! - - - This game has no saved trophies to delete! - ¡Este juego no tiene trofeos guardados para eliminar! - - - Save Data - Datos guardados - - - Trophy - Trofeo - - - SFO Viewer for - Visualizador de SFO para - - - Remove from Favorites - Eliminar de Favoritos - - - Add to Favorites - Añadir a favoritos - - - Game-specific Settings... - Configuración específica del juego... - - - Configure Game-specific Settings - Cambia la configuración específica del juego - - - Create Game-specific Settings from Global Settings - Crear configuración para el juego a partir de la global - - - Delete Game-specific Settings - Eliminar configuración específica del juego - - - Update Database - Actualizar base de datos - - - View Report - Ver informe - - - Submit a Report - Enviar un informe - - - Confirm deletion - Confirmar eliminación - - - Delete game-specific settings? - ¿Eliminar la configuración específica del juego? - - - - HelpDialog - - Quickstart - Inicio Rápido - - - FAQ - Preguntas Frecuentes (FAQ) - - - Syntax - Sintaxis - - - Special Bindings - Asignación de Teclas Especiales - - - Keybindings - Asignación de Teclas - - - - Hotkeys - - Customize Hotkeys - Personalizar atajos - - - Controller Hotkeys - Atajos de mando - - - Show FPS Counter - Mostrar contador de FPS - - - unmapped - sin asignar - - - Quit Emulation - Salir de la emulación - - - Reload Button Mappings - Recargar asignaciones de botones - - - Toggle Fullscreen - Alternar pantalla completa - - - Toggle Pause - Alternar pausa - - - Keyboard Hotkeys - Atajos de teclado - - - Renderdoc Capture (for debugging only) - Captura de Renderdoc (solo para depuración) - - - Toggle Mouse to Joystick Emulation - Alternar emulación de ratón a joystick - - - Toggle Mouse to Gyro Emulation - Alternar emulación de ratón a giroscopio - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Consejo: se pueden asignar hasta tres botones para cada atajo - - - Save - Guardar - - - Apply - Aplicar - - - Cancel - Cancelar - - - Restore Defaults - Restaurar valores predeterminados - - - Unable to Save - No se ha podido guardar - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - No se puede asignar un control único más de una vez. Hay botones duplicados asignados a los siguientes botones: - -%1 - - - Waiting for inputs - Esperando pulsación de entrada - - - - KBMSettings - - Configure Controls - Configurar Controles - - - D-Pad - Cruceta - - - Up - Arriba - - - unmapped - sin vincular - - - Left - Izquierda - - - Right - Derecha - - - Down - Abajo - - - Left Analog Halfmode - Modo Reducido del Stick Izquierdo - - - hold to move left stick at half-speed - manten para mover el stick izquierdo a la mitad de la velocidad - - - Left Stick - Stick Izquierdo - - - Config Selection - Selección de Configuraciones - - - Common Config - Configuración Estándar - - - Use per-game configs - Usar configuraciones por juego - - - Text Editor - Editor de Texto - - - Help - Ayuda - - - Mouse to Joystick - Ratón a Joystick - - - *press F7 ingame to activate - * presiona F7 en el juego para activar - - - Options - Opciones - - - Mouse Movement Parameters - Parámetros Movimiento del Ratón - - - note: click Help Button/Special Keybindings for more information - nota: haga clic en Botón de ayuda/Asignación de Teclas Especiales para más información - - - Face Buttons - Botones de Acción - - - Triangle - Triángulo - - - Square - Cuadrado - - - Circle - Círculo - - - Cross - Equis - - - Right Analog Halfmode - Modo Reducido del Stick Derecho - - - hold to move right stick at half-speed - manten para mover el stick derecho a la mitad de la velocidad - - - Right Stick - Stick Derecho - - - Speed Offset (def 0.125): - Compensación de Velocidad (def 0.125): - - - Copy from Common Config - Copiar desde la Configuración Estándar - - - Deadzone Offset (def 0.50): - Zona Muerta (def 0.50): - - - Speed Multiplier (def 1.0): - Multiplicador de Velocidad (def 1.0): - - - Common Config Selected - Configuración Estándar Seleccionada - - - 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. - Este botón copia mapeos de la Configuración Estándar al perfil seleccionado actualmente, y no se puede utilizar cuando el perfil seleccionado es la Configuración Estándar. - - - Copy values from Common Config - Copiar valores de la Configuración Estándar - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - ¿Quiere sobrescribir los mapeos existentes con los mapeos de la Configuración Estándar? - - - Unable to Save - No se Pudo Guardar - - - Press a key - Pulsa una tecla - - - Cannot set mapping - No se pudo asignar el mapeo - - - Mousewheel cannot be mapped to stick outputs - La rueda del ratón no puede ser mapeada al stick - - - Save - Guardar - - - Apply - Aplicar - - - Restore Defaults - Restaurar Valores Por Defecto - - - Cancel - Cancelar - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - No se puede asignar un control único más de una vez. Controles duplicados asignados a los siguientes botones: - -%1 - - - Touchpad Left - Izquierda del Touchpad - - - Touchpad Center - Centro del Touchpad - - - Touchpad Right - Derecha del Touchpad - - - - LogPresetsDialog - - Log Filter Presets - Preajustes de filtros de registro - - - Comment - Comentario - - - Filter - Filtro - - - Load - Cargar - - - Close - Cerrar - - - Add a new preset after the selected row - Añade un preajuste nuevo después de la fila seleccionada - - - Remove selected presets - Eliminar preajustes seleccionados - - - Load the selected preset - Carga el preajuste seleccionado - - - - MainWindow - - Open/Add Elf Folder - Abrir/Agregar carpeta Elf - - - Boot Game - Iniciar juego - - - Check for Updates - Buscar actualizaciones - - - About shadPS4 - Acerca de shadPS4 - - - Configure... - Configurar... - - - Recent Games - Juegos recientes - - - Open shadPS4 Folder - Abrir carpeta de shadPS4 - - - Exit - Salir - - - Exit shadPS4 - Salir de shadPS4 - - - Exit the application. - Salir de la aplicación. - - - Show Game List - Mostrar lista de juegos - - - Game List Refresh - Actualizar lista de juegos - - - Tiny - Muy pequeño - - - Small - Pequeño - - - Medium - Mediano - - - Large - Grande - - - List View - Vista de Lista - - - Grid View - Vista de Cuadrícula - - - Elf Viewer - Vista Elf - - - Game Install Directory - Carpeta de Instalación de Juegos - - - Download Cheats/Patches - Descargar Trucos / Parches - - - Dump Game List - Volcar Lista de Juegos - - - Trophy Viewer - Expositor de Trofeos - - - No games found. Please add your games to your library first. - No se encontraron juegos. Por favor, añade tus juegos a tu biblioteca primero. - - - Search... - Buscar... - - - File - Archivo - - - View - Vista - - - Game List Icons - Iconos de Juegos - - - Game List Mode - Tipo de Lista - - - Settings - Configuración - - - Utils - Utilidades - - - Themes - Temas - - - Help - Ayuda - - - Dark - Oscuro - - - Light - Claro - - - Green - Verde - - - Blue - Azul - - - Violet - Violeta - - - toolBar - Barra de herramientas - - - Game List - Lista de Juegos - - - Download Cheats For All Installed Games - Descargar trucos para todos los juegos instalados - - - Download Patches For All Games - Descargar parches para todos los juegos - - - Download Complete - Descarga completa - - - You have downloaded cheats for all the games you have installed. - Has descargado trucos para todos los juegos que tienes instalados. - - - Patches Downloaded Successfully! - ¡Parches descargados exitosamente! - - - All Patches available for all games have been downloaded. - Todos los parches disponibles han sido descargados para todos los juegos. - - - Games: - Juegos: - - - ELF files (*.bin *.elf *.oelf) - Archivos ELF (*.bin *.elf *.oelf) - - - Game Boot - Inicio del juego - - - Only one file can be selected! - ¡Solo se puede seleccionar un archivo! - - - Run Game - Ejecutar juego - - - Eboot.bin file not found - Archivo Eboot.bin no encontrado - - - Game is already running! - ¡El juego ya se está ejecutando! - - - shadPS4 - shadPS4 - - - Play - Jugar - - - Pause - Pausar - - - Stop - Detener - - - Restart - Reiniciar - - - Full Screen - Pantalla completa - - - Controllers - Controles - - - Keyboard - Teclado - - - Refresh List - Actualizar lista - - - Resume - Reanudar - - - Show Labels Under Icons - Mostrar etiquetas debajo de los iconos - - - Customize Hotkeys - Personalizar Atajos - - - - SettingsDialog - - Settings - Configuración - - - General - General - - - System - Sistema - - - Console Language - Idioma de la Consola - - - Emulator Language - Idioma del emulador - - - Default tab when opening settings - Pestaña predeterminada al abrir la configuración - - - Show Game Size In List - Mostrar Tamaño del Juego en la Lista - - - Enable Discord Rich Presence - Habilitar Discord Rich Presence - - - Username - Nombre de Usuario - - - Trophy Key - Clave de Trofeos - - - Trophy - Trofeo - - - Open the custom trophy images/sounds folder - Abrir la carpeta de trofeos/sonidos personalizados - - - Logger - Registro - - - Log Type - Tipo de Registro - - - Log Filter - Filtro de Registro - - - Open Log Location - Abrir Ubicación del registro - - - Input - Entrada - - - Cursor - Cursor - - - Hide Cursor - Ocultar Cursor - - - Hide Cursor Idle Timeout - Tiempo de Espera para Ocultar Cursor Inactivo - - - Microphone - Micrófono - - - None - Ninguno - - - Default Device - Dispositivo por Defecto - - - s - s - - - Controller - Controlador - - - Graphics - Gráficos - - - GUI - Interfaz - - - User - Usuario - - - Graphics Device - Dispositivo Gráfico - - - Advanced - Avanzado - - - Enable Shaders Dumping - Habilitar volcado de Shaders - - - Enable NULL GPU - Habilitar GPU NULL - - - Enable HDR - Habilitar HDR - - - Paths - Rutas - - - Game Folders - Carpetas de Juegos - - - Add... - Añadir... - - - Remove - Eliminar - - - Debug - Depuración - - - Enable Debug Dumping - Habilitar Volcado de Depuración - - - Enable Vulkan Validation Layers - Habilitar Capas de Validación de Vulkan - - - Enable Vulkan Synchronization Validation - Habilitar Validación de Sincronización de Vulkan - - - Enable RenderDoc Debugging - Habilitar Depuración de RenderDoc - - - Enable Crash Diagnostics - Habilitar Diagnóstico de Fallos - - - Collect Shaders - Recopilar Shaders - - - Copy GPU Buffers - Copiar búferes de GPU - - - Host Debug Markers - Marcadores de Depuración del Host - - - Guest Debug Markers - Marcadores de Depuración del Invitado - - - Enable Readbacks - Habilitar Retrolectura - - - Enable Readback Linear Images - Habilitar Retrolectura de Imágenes Lineales - - - Update - Actualización - - - Check for Updates at Startup - Buscar Actualizaciones al Iniciar - - - Always Show Changelog - Mostrar Siempre el Registro de Cambios - - - Update Channel - Canal de Actualización - - - Check for Updates - Buscar Actualizaciones - - - Title Music - Música de título - - - Disable Trophy Notification - Desactivar Notificaciones de Trofeos - - - Background Image - Imagen de Fondo - - - Show Background Image - Mostrar Imagen de Fondo - - - Opacity - Opacidad - - - Play title music - Reproducir la música de apertura - - - Update Compatibility Database On Startup - Actualizar base de datos de compatibilidad al iniciar - - - Game Compatibility - Compatibilidad - - - Display Compatibility Data - Mostrar datos de compatibilidad - - - Update Compatibility Database - Actualizar base de datos de compatibilidad - - - Volume - Volumen - - - Save - Guardar - - - Apply - Aplicar - - - Restore Defaults - Restaurar Valores Predeterminados - - - Close - Cerrar - - - Point your mouse at an option to display its description. - Coloque el ratón sobre una opción para mostrar su descripción. - - - 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. - Idioma de la Consola:\nEstablece el idioma que utiliza el juego de PS4.\nSe recomienda configurarlo a un idioma que el juego soporte, lo cual varía por región. - - - Emulator Language:\nSets the language of the emulator's user interface. - Idioma del Emulador:\nConfigura el idioma de la interfaz de usuario del emulador. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Mostrar Pantalla de Inicio:\nMuestra la pantalla de inicio del juego (una imagen especial) mientras el juego se está iniciando. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Habilitar Discord Rich Presence:\nMuestra el ícono del emulador y la información relevante en tu perfil de Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Nombre de Usuario:\nEstablece el nombre de usuario de la cuenta de PS4, que puede ser mostrado por algunos juegos. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Clave de Trofeos:\nClave utilizada para descifrar trofeos. Debe obtenerse de tu consola desbloqueada.\nSolo debe contener caracteres hexadecimales. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Tipo de Registro:\nEstablece si sincronizar la salida de la ventana de registro para mejorar el rendimiento. Puede tener efectos adversos en la emulació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. - Filtro de Registro:\nFiltra el registro para imprimir solo información específica.\nEjemplos: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Niveles: Trace, Debug, Info, Warning, Error, Critical - en este orden, un nivel específico silencia todos los niveles anteriores en la lista y registra cada nivel posterior. - - - 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. - Actualización:\nRelease: Versiones oficiales lanzadas cada mes que pueden estar muy desactualizadas, pero son más confiables y están probadas.\nNightly: Versiones de desarrollo que tienen todas las últimas funciones y correcciones, pero pueden contener errores y son menos estables. - - - Background Image:\nControl the opacity of the game background image. - Imagen de fondo:\nControle la opacidad de la imagen de fondo del juego. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Reproducir Música del Título:\nSi un juego lo admite, habilita la reproducción de música especial al seleccionar el juego en la interfaz gráfica. - - - 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). - Desactivar Notificaciones de trofeos:\nDesactiva las notificaciones de trofeos en el juego. El progreso de trofeos todavía puede ser rastreado usando el Expositor de Trofeos (haz clic derecho en el juego en la ventana principal). - - - 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. - Ocultar Cursor:\nElija cuándo desaparecerá el cursor:\nNunca: Siempre verá el ratón.\nInactivo: Establezca un tiempo para que desaparezca después de estar inactivo.\nSiempre: nunca verá el ratón. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Establezca un tiempo para que el ratón desaparezca después de estar inactivo. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Mostrar Datos de Compatibilidad:\nMuestra información de compatibilidad de juegos en vista de tabla. Habilite "Actualizar Compatibilidad al Iniciar" para obtener información actualizada. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Actualizar Compatibilidad al Iniciar:\nActualiza automáticamente la base de datos de compatibilidad cuando shadPS4 se inicia. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Actualizar Base de Datos de Compatibilidad:\nActualizar inmediatamente la base de datos de compatibilidad. - - - Never - Nunca - - - Idle - Inactivo - - - Always - Siempre - - - 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. - Dispositivo Gráfico:\nEn sistemas con múltiples GPU, selecciona la GPU que el emulador utilizará de la lista desplegable,\o selecciona "Auto Select" para determinarla automáticamente. - - - 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. - Anchura/Altura:\nEstablece el tamaño de la ventana del emulador al iniciar, que se puede redimensionar durante el juego.\nEsto es diferente de la resolución en el juego. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Habilitar la Volcadura de Shaders:\nPor el bien de la depuración técnica, guarda las sombras del juego en una carpeta mientras se renderizan. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Habilitar GPU Nula:\nPor el bien de la depuración técnica, desactiva el renderizado del juego como si no hubiera tarjeta gráfica. - - - 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. - Habilitar HDR:\nHabilita HDR en juegos que lo soporten.\nTu monitor debe tener soporte para el espacio de color PQ BT2020 y el formato RGB10A2 de cadena de intercambio. - - - Game Folders:\nThe list of folders to check for installed games. - Carpetas de Juegos:\nLa lista de carpetas para verificar los juegos instalados. - - - Add:\nAdd a folder to the list. - Añadir:\nAgregar una carpeta a la lista. - - - Remove:\nRemove a folder from the list. - Eliminar:\nEliminar una carpeta de la lista. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Habilitar la Volcadura de Depuración:\nGuarda los símbolos de importación y exportación y la información del encabezado del archivo del programa de PS4 que se está ejecutando actualmente en un directorio. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Habilitar Depuración de RenderDoc:\nSi se habilita, el emulador proporcionará compatibilidad con Renderdoc para permitir la captura y análisis del fotograma actualmente renderizado. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Recopilar Shaders:\nNecesitas esto habilitado para editar shaders con el menú de depuración (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Habilitar Retrolectura:\nHabilita la lectura y escritura de memoria desde y hacia la GPU.\nNecesario para el correcto funcionamiento de algunos juegos.\nPuede afectar el rendimiento o causar inestabilidad. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Habilitar Retrolectura de Imágenes Lineales:\nPermite la descarga asíncrona de imágenes lineales modificadas por la GPU.\nPuede corregir errores gráficos en ciertos juegos. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Copiar Búferes de GPU:\nSortea condiciones de carrera que implican envíos de GPU.\nPuede o no ayudar con cuelgues del tipo 0 de PM4. - - - 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. - Marcadores de Depuración del Host:\n Inserta información del emulador como marcadores para comandos AMDGPU específicos, además de proporcionar nombres de depuración.\nCon esto activado, deberías habilitar el diagnóstico de fallos.\nUtil para programas como 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. - Marcadores de Depuración del Invitado:\n Inserta cualquier marcador que el propio juego ha añadido al búfer de comandos.\nCon esto activado, deberías habilitar el diagnóstico de fallos.\nUtil para programas como RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Ruta de Guardado de Datos:\nLa carpeta donde se guardarán los datos del juego. - - - Browse:\nBrowse for a folder to set as the save data path. - Buscar:\nBusque una carpeta para establecer como ruta de datos guardados. - - - Release - Principal - - - Nightly - Nightly - - - Set the volume of the background music. - Establece el volumen de la música de fondo. - - - Enable Motion Controls - Habilitar Controles de Movimiento - - - Save Data Path - Ruta de datos guardados - - - Browse - Buscar - - - async - asíncrono - - - sync - síncrono - - - Auto Select - Selección Automática - - - Directory to install games - Carpeta para instalar juegos - - - Directory to save data - Directorio para guardar datos - - - Video - Vídeo - - - Display Mode - Modo de Imagen - - - Windowed - Ventana - - - Fullscreen - Pantalla Completa - - - Fullscreen (Borderless) - Pantalla Completa (sin bordes) - - - Window Size - Tamaño de Ventana - - - W: - Ancho: - - - H: - Alto: - - - Separate Log Files - Archivos de Registro Independientes - - - Separate Log Files:\nWrites a separate logfile for each game. - Archivos de Registro Independientes:\nEscribe un archivo de registro separado para cada juego. - - - Trophy Notification Position - Posición de Notificación de Trofeos - - - Left - Izquierda - - - Right - Derecha - - - Top - Arriba - - - Bottom - Abajo - - - Notification Duration - Duración de Notificaciones - - - Portable User Folder - Carpeta Portable de Usuario - - - Create Portable User Folder from Common User Folder - Crear Carpeta Portable de Usuario a partir de la Carpeta de Usuario Estándar - - - 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. - Carpeta portable de usuario:\nAlmacena la configuración de shadPS4 y los datos que se aplicarán sólo a la compilación shadPS4 ubicada en la carpeta actual. Reinicia la aplicación después de crear la carpeta portable de usuario para empezar a usarla. - - - Cannot create portable user folder - No se pudo crear la carpeta portable de usuario - - - %1 already exists - %1 ya existe - - - Portable user folder created - Carpeta Portable de Usuario Creada - - - %1 successfully created. - %1 creado correctamente. - - - 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. - Abre la carpeta de trofeos/sonidos personalizados:\nPuedes añadir imágenes y un audio personalizados a los trofeos.\nAñade los archivos a custom_trophy con los siguientes nombres:\ntrophy.wav o trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNota: El sonido sólo funcionará en versiones QT. - - - * Unsupported Vulkan Version - * Versión de Vulkan no soportada - - - Experimental Features - Características experimentales - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - ADVERTENCIA: Estas funciones son experimentales y no deben activarse a menos que se te haya indicado o que un juego lo requiera específicamente. Si tienes dudas, por favor consulta en el servidor de Discord de shadPS4. - - - Enable Background Controller Input - Habilitar entradas de mando en segundo plano - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Habilitar entradas de mando en segundo plano:\nPermite que shadPS4 pueda detectar las pulsaciones del mando cuando la ventana de juego no esté en primer plano. - - - 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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - Diagnóstico de fallos:\nCrea un archivo .yaml con información sobre el estado de Vulkan en el momento del cuelgue.\nÚtil para depurar errores de tipo 'Dispositivo perdido'. Si activas esta opción, deberías habilitar los marcadores de depuración de host Y TAMBIÉN de invitado.\nNecesitas activar las capas de validación de Vulkan y el SDK de Vulkan para que funcione. - - - Enable Logging - Habilitar registros - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Habilitar registros:\nActiva los registros.\n¡Si no sabes lo que haces, no cambies esta opción!\nSi vas a pedir ayuda, asegúrate de ACTIVAR esta opción. - - - Present Mode - Modo de presentación - - - Mailbox (Vsync) - «Mailbox» (con sincronía vertical) - - - Fifo (Vsync) - FIFO (con sincronía vertical) - - - Immediate (No Vsync) - Inmediata (sin sincronía vertical) - - - DLC Folder - Carpeta de DLC - - - Select the DLC folder - Seleccionar carpeta de DLC - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Modo de presentación:\nConfigura la presentación de la salida de vídeo en tu pantalla.\n\n«Mailbox»: los fotogramas se sincronizarán con la frecuencia de actualización de tu pantalla. Los fotogramas nuevos sustituirán a cualquier fotograma que esté pendiente de mostrar. Reducirá la latencia, pero podría omitir fotogramas si el renderizado se retrasa.\nFIFO: los fotogramas se sincronizarán con la frecuencia de actualización de tu pantalla. Los fotogramas nuevos se mostrarán después de los fotogramas que queden pendientes. Garantizará que se muestren todos los fotogramas, pero podría aumentar la latencia.\nInmediata: los fotogramas se mostrarán en pantalla en cuanto estén listos. Podría provocar fragmentación en la imagen. - - - DLC Path:\nThe folder where game DLC loaded from. - Ruta de DLC:\nLa carpeta donde se cargarán los DLC de los juegos. - - - Browse:\nBrowse for a folder to set as the DLC path. - Buscar:\nBusque una carpeta para establecer como ruta de DLC. - - - FSR Settings - Configuración de FSR - - - Enable FSR - Habilitar FSR - - - Enable RCAS (sharpening) - Habilitar RCAS (realzado) - - - RCAS Attenuation: - Atenuación del RCAS: - - - Load Presets... - Cargar preajustes... - - - Log - Registro - - - Open Log Location:\nOpen the folder where the log file is saved. - Abrir ubicación del registro:\nAbre la carpeta donde se guarda el archivo de registro. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Micrófono:\nNinguno: no utiliza el micrófono.\nDispositivo por defecto: utilizará el dispositivo que esté definido por defecto en el sistema.\nTambién puedes elegir a mano el micrófono que quieras usar. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volumen:\nAjusta el volumen de todos los juegos de forma global, en un rango de 0 a 500 %, siendo 100 % el valor predeterminado. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Pestaña predeterminada al abrir la configuración:\nSelecciona qué pestaña se mostrará al abrir, la pestaña predeterminada es General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Mostrar tamaño del juego en la lista:\nMuestra el tamaño del juego en la lista. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Habilitar controles de movimiento:\nAl activar esta opción, se utilizarán los controles de movimiento del mando (si el juego es compatible). - - - Vblank Frequency - Frecuencia de Vblanks - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change! - Frecuencia de Vblanks:\nIndica la velocidad de fotogramas con la que se actualizará la imagen del emulador (60 Hz es la línea de base, aunque el juego se muestre a 30 o 60 FPS). ¡Cambiar esta opción puede provocar efectos adversos, como aumentar la velocidad del juego o romper funciones críticas del juego que no esperan cambios en este valor! - - - Enable Direct Memory Access - Habilitar acceso directo a memoria (DMA) - - - Enable Devkit Console Mode - Habilitar modo kit de desarrollo - - - Set "PSN signed-in" to True - Cambia la opción «Inicio de sesión en PSN» a verdadero - - - Set "Network Connected" to True - Cambia la opción «Conexión a red» a verdadero - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Expositor de Trofeos - - - Select Game: - Selecciona un Juego: - - - Progress - Progreso - - - Show Earned Trophies - Mostrar Trofeos Obtenidos - - - Show Not Earned Trophies - Mostrar Trofeos No Obtenidos - - - Show Hidden Trophies - Mostrar Trofeos Ocultos - - - diff --git a/src/qt_gui/translations/fa_IR.ts b/src/qt_gui/translations/fa_IR.ts deleted file mode 100644 index 4dd571357..000000000 --- a/src/qt_gui/translations/fa_IR.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - درباره ShadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - یک شبیه ساز متن باز برای پلی استیشن 4 است. - - - This software should not be used to play games you have not legally obtained. - این برنامه نباید برای بازی هایی که شما به صورت غیرقانونی به دست آوردید استفاده شود. - - - - CheatsPatches - - 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 - - - No Image Available - تصویری موجود نمی باشد - - - Serial: - سریال: - - - Version: - نسخه: - - - Size: - حجم: - - - Select Cheat File: - فایل چیت را انتخاب کنید: - - - Repository: - :منبع - - - Download Cheats - دانلود چیت ها - - - Delete File - حذف فایل - - - 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 - - - Select Patch File: - فایل پچ را انتخاب کنید - - - Download Patches - دانلود کردن پچ ها - - - Save - ذخیره - - - Cheats - چیت ها - - - Patches - پچ ها - - - Error - ارور - - - No patch selected. - هیچ پچ انتخاب نشده - - - Unable to open files.json for reading. - .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 تجزیه فایل: - - - Success - عملیات موفق بود - - - Options saved successfully. - تغییرات با موفقیت ذخیره شد✅ - - - Invalid Source - منبع نامعتبر❌ - - - The selected source is invalid. - منبع انتخاب شده نامعتبر است - - - File Exists - فایل وجود دارد - - - 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 - دانلود کامل شد - - - 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. - پچ ها با موفقیت بارگیری شدند! تمام وصله های موجود برای همه بازی ها دانلود شده اند، نیازی به دانلود جداگانه آنها برای هر بازی نیست، همانطور که در Cheats اتفاق می افتد. اگر پچ ظاهر نشد، ممکن است برای سریال و نسخه خاصی از بازی وجود نداشته باشد. - - - Failed to parse JSON data from HTML. - HTML از JSON خطا در تجزیه اطلاعات. - - - Failed to retrieve HTML page. - HTML خطا دربازیابی صفحه - - - The game is in version: %1 - بازی در نسخه: %1 است - - - The downloaded patch only works on version: %1 - وصله دانلود شده فقط در نسخه: %1 کار می کند - - - You may need to update your game. - شاید لازم باشد بازی خود را به روز کنید. - - - Incompatibility Notice - اطلاعیه عدم سازگاری - - - Failed to open file: - خطا در اجرای فایل: - - - XML ERROR: - XML خطای : - - - Failed to open files.json for writing - .json خطا در نوشتن فایل - - - Author: - تولید کننده: - - - Directory does not exist: - پوشه وجود ندارد: - - - Failed to open files.json for reading. - .json خطا در خواندن فایل - - - Name: - نام: - - - Can't apply cheats before the game is started - قبل از شروع بازی نمی توانید تقلب ها را اعمال کنید. - - - Close - بستن - - - - CheckUpdate - - Auto Updater - به‌روزرسانی خودکار - - - Error - خطا - - - Network error: - خطای شبکه: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - به‌روزرسانی خودکار حداکثر ۶۰ بررسی به‌روزرسانی در ساعت را مجاز می‌داند.\nشما به این محدودیت رسیده‌اید. لطفاً بعداً دوباره امتحان کنید. - - - Failed to parse update information. - خطا در تجزیه اطلاعات بهروزرسانی. - - - No pre-releases found. - هیچ پیش انتشاری یافت نشد. - - - Invalid release data. - داده های نسخه نامعتبر است. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>توجه:</b><br><br> از نسخه <b>0.12.0</b> به بعد، نسخه Qt امولاتور دیگر به‌روزرسانی مستقیم دریافت نخواهد کرد.<br><br> با این حال، رابط Qt همچنان از طریق لانچر رسمی جدید در دسترس است:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – مبتنی بر کد منبع اصلی shadPS4.<br><br> توصیه می‌کنیم برای ادامه دریافت به‌روزرسانی‌ها به این لانچر مهاجرت کنید. - - - Your version is already up to date! - نسخه شما اکنون به روز شده است! - - - Update Available - به روز رسانی موجود است - - - Update Channel - کانال به‌روزرسانی - - - Current Version - نسخه فعلی - - - Latest Version - جدیدترین نسخه - - - Do you want to update? - آیا می خواهید به روز رسانی کنید؟ - - - Show Changelog - نمایش تغییرات - - - Check for Updates at Startup - بررسی به‌روزرسانی هنگام شروع - - - Update - به روز رسانی - - - No - خیر - - - Hide Changelog - مخفی کردن تغییرات - - - Changes - تغییرات - - - Network error occurred while trying to access the URL - در حین تلاش برای دسترسی به URL خطای شبکه رخ داد - - - Download Complete - دانلود کامل شد - - - The update has been downloaded, press OK to install. - به روز رسانی دانلود شده است، برای نصب OK را فشار دهید. - - - Failed to save the update file at - فایل به روز رسانی ذخیره نشد - - - Starting Update... - شروع به روز رسانی... - - - Failed to create the update script file - فایل اسکریپت به روز رسانی ایجاد نشد - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - در حال بارگذاری داده‌های سازگاری، لطفاً صبر کنید - - - Cancel - لغو - - - Loading... - در حال بارگذاری... - - - Error - خطا - - - Unable to update compatibility data! Try again later. - ناتوان از بروزرسانی داده‌های سازگاری! لطفاً بعداً دوباره تلاش کنید. - - - Unable to open compatibility_data.json for writing. - امکان باز کردن compatibility_data.json برای نوشتن وجود ندارد. - - - Unknown - ناشناخته - - - Nothing - هیچ چیز - - - Boots - چکمه‌ها - - - Menus - منوها - - - Ingame - داخل بازی - - - Playable - قابل بازی - - - - ControlSettings - - Configure Controls - پیکربندی دسته ها - - - D-Pad - D-Pad - - - Up - بالا - - - Left - چپ - - - Right - راست - - - Down - پایین - - - Left Stick Deadzone (def:2 max:127) - منطقه‌ی حساس به حرکت چپ (def:2 max:127) - - - Left Deadzone - منطقه مرده چپ - - - Left Stick - جواستیک چپ - - - Config Selection - انتخاب پیکربندی - - - Common Config - Common Config - - - Use per-game configs - از پیکربندی‌های مخصوص هر بازی استفاده کنید - - - Face Buttons - Face Buttons - - - 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 - - - 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 - Save - - - Apply - Apply - - - Restore Defaults - Restore Defaults - - - Cancel - Cancel - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - 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 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 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 - فولدر را بازکن - - - - GameInfoClass - - Loading game list, please wait :3 - درحال بارگیری لیست بازی ها,لطفا کمی صبرکنید :3 - - - Cancel - لغو - - - Loading... - ...درحال بارگیری - - - - GameInstallDialog - - shadPS4 - Choose directory - ShadPS4 - انتخاب محل نصب بازی - - - Directory to install games - محل نصب بازی ها - - - Browse - انتخاب دستی - - - Error - ارور - - - Directory to install DLC - Directory to install DLC - - - - GameListFrame - - Icon - آیکون - - - Name - نام - - - Serial - سریال - - - Compatibility - سازگاری - - - Region - منطقه - - - Firmware - فریم‌ور - - - Size - اندازه - - - Version - نسخه - - - Path - مسیر - - - Play Time - زمان بازی - - - Never Played - هرگز بازی نشده - - - h - h - - - m - m - - - s - s - - - Compatibility is untested - سازگاری تست نشده است - - - Game does not initialize properly / crashes the emulator - بازی به درستی راه‌اندازی نمی‌شود / شبیه‌ساز کرش می‌کند - - - Game boots, but only displays a blank screen - بازی اجرا می‌شود، اما فقط یک صفحه خالی نمایش داده می‌شود - - - Game displays an image but does not go past the menu - بازی تصویری نمایش می‌دهد، اما از منو فراتر نمی‌رود - - - Game has game-breaking glitches or unplayable performance - بازی دارای اشکالات بحرانی یا عملکرد غیرقابل بازی است - - - Game can be completed with playable performance and no major glitches - بازی با عملکرد قابل قبول و بدون اشکالات عمده قابل بازی است. - - - Click to see details on github - برای مشاهده جزئیات در GitHub کلیک کنید - - - Last updated - آخرین به‌روزرسانی - - - Favorite - Favorite - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - ایجاد میانبر - - - Cheats / Patches - چیت/پچ ها - - - SFO Viewer - SFO مشاهده - - - Trophy Viewer - مشاهده جوایز - - - Open Folder... - باز کردن پوشه... - - - Open Game Folder - باز کردن پوشه بازی - - - Open Save Data Folder - پوشه ذخیره داده را باز کنید - - - Open Log Folder - باز کردن پوشه لاگ - - - Copy info... - ...کپی کردن اطلاعات - - - Copy Name - کپی کردن نام - - - Copy Serial - کپی کردن سریال - - - Copy Version - Copy Version - - - Copy Size - Copy Size - - - Copy All - کپی کردن تمامی مقادیر - - - Delete... - حذف... - - - Delete Game - حذف بازی - - - Delete Update - حذف به‌روزرسانی - - - Delete DLC - حذف محتوای اضافی (DLC) - - - Delete Trophy - Delete Trophy - - - Compatibility... - Compatibility... - - - Shortcut creation - ایجاد میانبر - - - Shortcut created successfully! - میانبر با موفقیت ساخته شد! - - - Error - ارور - - - Error creating shortcut! - مشکلی در هنگام ساخت میانبر بوجود آمد! - - - Game - بازی - - - This game has no update to delete! - این بازی به‌روزرسانی‌ای برای حذف ندارد! - - - Update - به‌روزرسانی - - - This game has no DLC to delete! - این بازی محتوای اضافی (DLC) برای حذف ندارد! - - - DLC - DLC - - - 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? - - - Open Update Folder - Open Update Folder - - - Delete Save Data - پاک کردن داده های ذخیره شده - - - 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 مشاهده - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - ضربدر - - - 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 - کپی از پیکربندی مشترک - - - Deadzone Offset (def 0.50): - Deadzone Offset (def 0.50): - - - Speed Multiplier (def 1.0): - ضریب سرعت (def 1.0): - - - 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. - این دکمه نگاشت‌ها را از پیکربندی مشترک به پروفایل انتخاب‌شده‌ی فعلی کپی می‌کند و وقتی پروفایل انتخاب‌شده‌ی فعلی پیکربندی مشترک باشد، نمی‌توان از آن استفاده کرد. - - - Copy values from Common Config - کپی کردن مقادیر از پیکربندی مشترک - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - آیا می‌خواهید نگاشت‌های موجود را با نگاشت‌های پیکربندی مشترک جایگزین کنید؟ - - - Unable to Save - Unable to Save - - - 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 - ذخیره‌سازی - - - Apply - Apply - - - Restore Defaults - Restore Defaults - - - Cancel - Cancel - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - ELF بازکردن/ساختن پوشه - - - Boot Game - اجرای بازی - - - Check for Updates - به روز رسانی را بررسی کنید - - - About shadPS4 - ShadPS4 درباره - - - Configure... - ...تنظیمات - - - Recent Games - بازی های اخیر - - - Open shadPS4 Folder - پوشه shadPS4 را باز کنید - - - Exit - خروج - - - Exit shadPS4 - ShadPS4 بستن - - - Exit the application. - بستن برنامه - - - Show Game List - نشان دادن بازی ها - - - Game List Refresh - رفرش لیست بازی ها - - - Tiny - کوچک ترین - - - Small - کوچک - - - Medium - متوسط - - - Large - بزرگ - - - List View - نمایش لیست - - - Grid View - شبکه ای (چهارخونه) - - - Elf Viewer - مشاهده گر Elf - - - Game Install Directory - محل نصب بازی - - - Download Cheats/Patches - دانلود چیت/پچ - - - 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... - جست و جو... - - - File - فایل - - - View - شخصی سازی - - - Game List Icons - آیکون ها - - - Game List Mode - حالت نمایش لیست بازی ها - - - Settings - تنظیمات - - - Utils - ابزارها - - - Themes - تم ها - - - Help - کمک - - - Dark - تیره - - - Light - روشن - - - Green - سبز - - - Blue - آبی - - - Violet - بنفش - - - toolBar - نوار ابزار - - - Game List - لیست بازی - - - Download Cheats For All Installed Games - دانلود چیت برای همه بازی ها - - - Download Patches For All Games - دانلود پچ برای همه بازی ها - - - Download Complete - دانلود کامل شد✅ - - - You have downloaded cheats for all the games you have installed. - چیت برای همه بازی های شما دانلودشد✅ - - - Patches Downloaded Successfully! - پچ ها با موفقیت دانلود شد✅ - - - All Patches available for all games have been downloaded. - ✅تمام پچ های موجود برای همه بازی های شما دانلود شد - - - Games: - بازی ها: - - - ELF files (*.bin *.elf *.oelf) - ELF فایل های (*.bin *.elf *.oelf) - - - Game Boot - اجرای بازی - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - تنظیمات - - - General - عمومی - - - System - سیستم - - - Console Language - زبان کنسول - - - Emulator Language - زبان شبیه ساز - - - Default tab when opening settings - زبان پیش‌فرض هنگام باز کردن تنظیمات - - - Show Game Size In List - نمایش اندازه بازی در لیست - - - Enable Discord Rich Presence - Discord Rich Presence را فعال کنید - - - 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 نوع - - - Log Filter - Log فیلتر - - - Open Log Location - باز کردن مکان گزارش - - - Input - ورودی - - - Cursor - نشانگر - - - Hide Cursor - پنهان کردن نشانگر - - - Hide Cursor Idle Timeout - مخفی کردن زمان توقف مکان نما - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - دسته بازی - - - Graphics - گرافیک - - - GUI - رابط کاربری - - - User - کاربر - - - Graphics Device - کارت گرافیک مورداستفاده - - - Advanced - ...بیشتر - - - Enable Shaders Dumping - فعال‌سازی ذخیره‌سازی شیدرها - - - Enable NULL GPU - NULL GPU فعال کردن - - - Enable HDR - Enable HDR - - - Paths - مسیرها - - - Game Folders - پوشه های بازی - - - Add... - افزودن... - - - Remove - حذف - - - 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 - جمع آوری شیدرها - - - Copy GPU Buffers - Copy GPU Buffers - - - Host Debug Markers - Host Debug Markers - - - Guest Debug Markers - Guest Debug Markers - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - به‌روزرسانی - - - Check for Updates at Startup - بررسی به‌روزرسانی‌ها در زمان راه‌اندازی - - - Always Show Changelog - نمایش دائم تاریخچه تغییرات - - - Update Channel - کانال به‌روزرسانی - - - Check for Updates - بررسی به‌روزرسانی‌ها - - - 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 - پخش موسیقی عنوان - - - Update Compatibility Database On Startup - به‌روزرسانی پایگاه داده سازگاری هنگام راه‌اندازی - - - Game Compatibility - سازگاری بازی با سیستم - - - Display Compatibility Data - نمایش داده‌های سازگاری - - - Update Compatibility Database - به‌روزرسانی پایگاه داده سازگاری - - - Volume - صدا - - - Save - ذخیره - - - Apply - اعمال - - - Restore Defaults - بازیابی پیش فرض ها - - - Close - بستن - - - 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توصیه می‌شود این را روی زبانی که بازی پشتیبانی می‌کند تنظیم کنید، که بسته به منطقه متفاوت خواهد بود. - - - Emulator Language:\nSets the language of the emulator's user interface. - زبان شبیه‌ساز:\nزبان رابط کاربری شبیه‌ساز را انتخاب می‌کند. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - نمایش صفحه شروع:\nصفحه شروع بازی (تصویری ویژه) را هنگام بارگذاری بازی نمایش می‌دهد. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - فعال کردن Discord Rich Presence:\nآیکون شبیه ساز و اطلاعات مربوطه را در نمایه Discord شما نمایش می دهد. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - نام کاربری:\nنام کاربری حساب PS4 را تنظیم می‌کند که ممکن است توسط برخی بازی‌ها نمایش داده شود. - - - 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. - نوع لاگ:\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مثال‌ها: "هسته:ردیابی" "Lib.Pad:اشکال‌زدایی Common.Filesystem:خطا" "*:بحرانی"\nسطوح: ردیابی، اشکال‌زدایی، اطلاعات، هشدار، خطا، بحرانی - به این ترتیب، یک سطح خاص تمام سطوح قبل از خود را در لیست بی‌صدا می‌کند و هر سطح بعد از خود را ثبت می‌کند. - - - 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. - به‌روزرسانی:\nانتشار: نسخه‌های رسمی که هر ماه منتشر می‌شوند و ممکن است بسیار قدیمی باشند، اما پایدارتر و تست‌ شده‌تر هستند.\nشبانه: نسخه‌های توسعه‌ای که شامل جدیدترین ویژگی‌ها و اصلاحات هستند، اما ممکن است دارای اشکال باشند و کمتر پایدار باشند. - - - 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. - پخش موسیقی عنوان:\nIدر صورتی که بازی از آن پشتیبانی کند، پخش موسیقی ویژه هنگام انتخاب بازی در رابط کاربری را فعال می‌کند. - - - 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همیشه: شما هرگز ماوس را نخواهید دید. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - زمانی را برای ناپدید شدن ماوس بعد از غیرفعالی تعیین کنید. - - - 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. - به‌روزرسانی سازگاری هنگام راه‌اندازی:\nبه‌طور خودکار پایگاه داده سازگاری را هنگام راه‌اندازی ShadPS4 به‌روزرسانی می‌کند. - - - Update Compatibility Database:\nImmediately update the compatibility database. - به‌روزرسانی پایگاه داده سازگاری:\nپایگاه داده سازگاری را بلافاصله به‌روزرسانی می‌کند. - - - Never - هرگز - - - Idle - بیکار - - - Always - همیشه - - - 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در سیستم‌های با چندین پردازنده گرافیکی، از فهرست کشویی، پردازنده گرافیکی که شبیه‌ساز از آن استفاده می‌کند را انتخاب کنید، یا گزینه "انتخاب خودکار" را انتخاب کنید تا به طور خودکار تعیین شود. - - - 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این با وضوح داخل بازی متفاوت است. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - فعال‌سازی ذخیره‌سازی شیدرها:\nبه‌منظور اشکال‌زدایی فنی، شیدرهای بازی را هنگام رندر شدن در یک پوشه ذخیره می‌کند. - - - 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. - فعال کردن HDR و :\n این گزینه HDR را در بازی‌هایی که از آن پشتیبانی می‌کنند فعال می‌کند.\n مانیتور شما باید از فضای رنگی BT2020 PQ و فرمت swapchain RGB10A2 پشتیبانی کند. - - - Game Folders:\nThe list of folders to check for installed games. - پوشه های بازی:\nلیست پوشه هایی که باید بازی های نصب شده را بررسی کنید. - - - Add:\nAdd a folder to the list. - اضافه کردن:\nیک پوشه به لیست اضافه کنید. - - - Remove:\nRemove a folder from the list. - حذف:\n یک پوشه را از لیست حذف کنید. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - فعال‌سازی ذخیره‌سازی دیباگ:\nنمادهای import و export و اطلاعات هدر فایل برنامه در حال اجرای PS4 را در یک پوشه ذخیره می‌کند. - - - 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). - جمع‌آوری سایه‌زن‌ها:\n برای ویرایش سایه‌زن‌ها با منوی اشکال‌زدایی (Ctrl + F10) باید این گزینه فعال باشد. - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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 - اخرین نسخه شبانه - - - 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 - انتخاب دستی - - - async - async - - - sync - همزمان - - - Auto Select - Auto Select - - - 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 - راست - - - 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 از قبل وجود دارد - - - 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. - پوشه تصاویر/صداهای تروفی سفارشی را باز کنید:\n شما می‌توانید تصاویر و صدای سفارشی به تروفی‌ها اضافه کنید.\n فایل‌ها را با نام‌های زیر به custom_trophy اضافه کنید:\ntrophy.wav یا trophy.mp3، bronze.png، gold.png، platinum.png، silver.png \nتوجه: صدا فقط در نسخه‌های QT کار می‌کند. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - 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 - نمایش جوایز مخفی - - - diff --git a/src/qt_gui/translations/fi_FI.ts b/src/qt_gui/translations/fi_FI.ts deleted file mode 100644 index fa0ed44c8..000000000 --- a/src/qt_gui/translations/fi_FI.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Tietoa shadPS4:sta - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 on kokeellinen avoimen lähdekoodin PlayStation 4 emulaattori. - - - This software should not be used to play games you have not legally obtained. - Tätä ohjelmistoa ei saa käyttää pelien pelaamiseen, joita et ole hankkinut laillisesti. - - - - CheatsPatches - - Cheats / Patches for - Huijaukset / Paikkaukset pelille - - - 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 - Huijaukset/Paikkaukset ovat kokeellisia.\nKäytä varoen.\n\nLataa huijaukset yksitellen valitsemalla repositorion ja napsauttamalla latauspainiketta.\nPaikkaukset-välilehdessä voit ladata kaikki paikkaukset kerralla, valita, mitä haluat käyttää ja tallentaa valinnan.\n\nKoska me emme kehitä Huijauksia/Paikkauksia,\nole hyvä ja ilmoita ongelmista huijauksen tekijälle.\n\nLoitko uuden huijauksen? Käy osoitteessa:\n - - - No Image Available - Kuvaa ei saatavilla - - - Serial: - Sarjanumero: - - - Version: - Versio: - - - Size: - Koko: - - - Select Cheat File: - Valitse Huijaustiedosto: - - - Repository: - Repositorio: - - - Download Cheats - Lataa Huijaukset - - - Delete File - Poista Tiedosto - - - No files selected. - Tiedostoja ei ole valittuna. - - - You can delete the cheats you don't want after downloading them. - Voit poistaa ei-toivomasi huijaukset lataamisen jälkeen. - - - Do you want to delete the selected file?\n%1 - Haluatko poistaa valitun tiedoston?\n%1 - - - Select Patch File: - Valitse Paikkaustiedosto: - - - Download Patches - Lataa Paikkaukset - - - Save - Tallenna - - - Cheats - Huijaukset - - - Patches - Paikkaukset - - - Error - Virhe - - - No patch selected. - Paikkausta ei ole valittuna. - - - Unable to open files.json for reading. - Tiedostoa files.json ei voitu avata lukemista varten. - - - No patch file found for the current serial. - Nykyiselle sarjanumerolle ei löytynyt paikkaustiedostoa. - - - Unable to open the file for reading. - Tiedostoa ei voitu avata lukemista varten. - - - Unable to open the file for writing. - Tiedostoa ei voitu avata kirjoittamista varten. - - - Failed to parse XML: - XML:n jäsentäminen epäonnistui: - - - Success - Onnistuminen - - - Options saved successfully. - Vaihtoehdot tallennettu onnistuneesti. - - - Invalid Source - Virheellinen Lähde - - - The selected source is invalid. - Valittu lähde on virheellinen. - - - File Exists - Olemassaoleva Tiedosto - - - File already exists. Do you want to replace it? - Tiedosto on jo olemassa. Haluatko korvata sen? - - - Failed to save file: - Tiedoston tallentaminen epäonnistui: - - - Failed to download file: - Tiedoston lataaminen epäonnistui: - - - Cheats Not Found - Huijauksia Ei Löytynyt - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Huijauksia ei löytynyt tälle pelin versiolle valitusta repositoriosta. Kokeile toista repositoriota tai eri versiota pelistä. - - - Cheats Downloaded Successfully - Huijaukset Ladattu Onnistuneesti - - - 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. - Olet ladannut huijaukset onnistuneesti valitusta repositoriosta tälle pelin versiolle. Voit yrittää ladata toisesta repositoriosta. Jos se on saatavilla, voit myös käyttää sitä valitsemalla tiedoston listasta. - - - Failed to save: - Tallentaminen epäonnistui: - - - Failed to download: - Lataus epäonnistui: - - - Download Complete - Lataus valmis - - - 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. - Paikkaukset ladattu onnistuneesti! Kaikki saatavilla olevat paikkaukset kaikille peleille on ladattu, eikä niitä tarvitse ladata yksittäin jokaiselle pelille, kuten huijausten kohdalla. Jos paikkausta ei näy, saattaa olla, että sitä ei ole saatavilla kyseiselle sarjanumerolle ja peliversiolle. - - - Failed to parse JSON data from HTML. - JSON-tietojen jäsentäminen HTML:stä epäonnistui. - - - Failed to retrieve HTML page. - HTML-sivun hakeminen epäonnistui. - - - The game is in version: %1 - Peli on versiossa: %1 - - - The downloaded patch only works on version: %1 - Ladattu paikkaus toimii vain versiossa: %1 - - - You may need to update your game. - Sinun on ehkä päivitettävä pelisi. - - - Incompatibility Notice - Yhteensopivuusilmoitus - - - Failed to open file: - Tiedoston avaaminen epäonnistui: - - - XML ERROR: - XML VIRHE: - - - Failed to open files.json for writing - Tiedostoa files.json ei voitu avata kirjoittamista varten - - - Author: - Tekijä: - - - Directory does not exist: - Hakemistoa ei ole olemassa: - - - Failed to open files.json for reading. - Tiedostoa files.json ei voitu avata lukemista varten. - - - Name: - Nimi: - - - Can't apply cheats before the game is started - Huijauksia ei voi käyttää ennen kuin peli on käynnissä. - - - Close - Sulje - - - - CheckUpdate - - Auto Updater - Automaattinen Päivitys - - - Error - Virhe - - - Network error: - Verkkovirhe: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Automaattinen päivitys sallii enintään 60 päivitystarkistusta tunnissa.\nOlet saavuttanut tämän rajan. Yritä myöhemmin uudelleen. - - - Failed to parse update information. - Päivitystietojen jäsentäminen epäonnistui. - - - No pre-releases found. - Ennakkojulkaisuja ei löytynyt. - - - Invalid release data. - Virheelliset julkaisutiedot. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Huomio:</b><br><br> Versiosta <b>0.12.0</b> lähtien emulaattorin Qt‑versio ei saa suoria päivityksiä enää.<br><br> Qt‑käyttöliittymä on kuitenkin edelleen käytettävissä uuden virallisen käynnistäjän kautta:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – perustuen alkuperäiseen shadPS4‑lähdekoodiin.<br><br>Suosittelemme siirtymistä tähän käynnistäjään, jotta voit jatkaa päivitysten saamista. - - - Your version is already up to date! - Versiosi on jo ajan tasalla! - - - Update Available - Päivitys Saatavilla - - - Update Channel - Päivityskanava - - - Current Version - Nykyinen Versio - - - Latest Version - Uusin Versio - - - Do you want to update? - Haluatko päivittää? - - - Show Changelog - Näytä Muutoshistoria - - - Check for Updates at Startup - Tarkista Päivitykset Käynnistettäessä - - - Update - Päivitä - - - No - Ei - - - Hide Changelog - Piilota Muutoshistoria - - - Changes - Muutokset - - - Network error occurred while trying to access the URL - URL-osoitteeseen yhdistettäessä tapahtui verkkovirhe - - - Download Complete - Lataus Valmis - - - The update has been downloaded, press OK to install. - Päivitys on ladattu, paina OK asentaaksesi. - - - Failed to save the update file at - Päivitystiedoston tallentaminen epäonnistui sijaintiin - - - Starting Update... - Aloitetaan päivitystä... - - - Failed to create the update script file - Päivitysskripttitiedoston luominen epäonnistui - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Haetaan yhteensopivuustietoja, odota - - - Cancel - Peruuta - - - Loading... - Ladataan... - - - Error - Virhe - - - Unable to update compatibility data! Try again later. - Yhteensopivuustietoja ei voitu päivittää! Yritä myöhemmin uudelleen. - - - Unable to open compatibility_data.json for writing. - Ei voitu avata compatibility_data.json-tiedostoa kirjoittamista varten. - - - Unknown - Tuntematon - - - Nothing - Ei mitään - - - Boots - Sahat - - - Menus - Valikot - - - Ingame - Pelin aikana - - - Playable - Pelattava - - - - ControlSettings - - Configure Controls - Määritä Kontrollit - - - D-Pad - D-Pad - - - Up - Ylös - - - Left - Vasen - - - Right - Oikea - - - Down - Alas - - - Left Stick Deadzone (def:2 max:127) - Vasemman Analogin Deadzone (oletus:2 max:127) - - - Left Deadzone - Vasen Deadzone - - - Left Stick - Vasen Analogi - - - Config Selection - Asetusten Valinta - - - Common Config - Yleinen Asetus - - - Use per-game configs - Käytä pelikohtaisia asetuksia - - - Face Buttons - Etunäppäimet - - - Right Stick Deadzone (def:2, max:127) - Oikean Analogin Deadzone (oletus:2 max:127) - - - Right Deadzone - Oikea Deadzone - - - Right Stick - Oikea Analogi - - - Color Adjustment - Värinhallinta - - - Override Lightbar Color - Pakota Ohjaimen Valopalkin Väri - - - Override Color - Pakotettava Väri - - - Unable to Save - Tallentaminen Epäonnistui - - - Cannot bind axis values more than once - Akseliarvoja ei voi määrittää kertaa useammin - - - Save - Tallenna - - - Apply - Ota Käyttöön - - - Restore Defaults - Palauta Oletukset - - - Cancel - Peruuta - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Muokkaa Näppäimistön + Hiiren ja Ohjaimen näppäinasetuksia - - - Use Per-Game configs - Käytä Pelikohtaisia Asetuksia - - - Error - Virhe - - - Could not open the file for reading - Tiedostoa ei voitu avata luettavaksi - - - Could not open the file for writing - Tiedostoa ei voitu avata kirjoitettavaksi - - - Save Changes - Tallenna Muutokset - - - Do you want to save changes? - Haluatko tallentaa muutokset? - - - Help - Tietoa - - - Do you want to reset your custom default config to the original default config? - Haluatko nollata oletusasetuksiin tekemäsi muutokset? - - - Do you want to reset this config to your custom default config? - Haluato palauttaa nämä asetukset takaisin määrittämiisi oletuksiin? - - - Reset to Default - Reset to Default - - - - ElfViewer - - Open Folder - Avaa Hakemisto - - - - GameInfoClass - - Loading game list, please wait :3 - Ole hyvä ja odota, ladataan pelilistaa :3 - - - Cancel - Peruuta - - - Loading... - Ladataan... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Valitse hakemisto - - - Directory to install games - Pelien asennushakemisto - - - Browse - Selaa - - - Error - Virhe - - - Directory to install DLC - Directory to install DLC - - - - GameListFrame - - Icon - Ikoni - - - Name - Nimi - - - Serial - Sarjanumero - - - Compatibility - Compatibility - - - Region - Alue - - - Firmware - Ohjelmisto - - - Size - Koko - - - Version - Versio - - - Path - Polku - - - Play Time - Peliaika - - - Never Played - Pelaamaton - - - h - h - - - m - m - - - s - s - - - Compatibility is untested - Yhteensopivuutta ei ole testattu - - - Game does not initialize properly / crashes the emulator - Peli ei alustaudu kunnolla / kaataa emulaattorin - - - Game boots, but only displays a blank screen - Peli käynnistyy, mutta näyttää vain tyhjän ruudun - - - Game displays an image but does not go past the menu - Peli näyttää kuvan mutta ei mene valikosta eteenpäin - - - Game has game-breaking glitches or unplayable performance - Pelissä on pelikokemusta rikkovia häiriöitä tai kelvoton suorituskyky - - - Game can be completed with playable performance and no major glitches - Pelillä on hyväksyttävä suorituskyky, eikä mitään suuria häiriöitä - - - Click to see details on github - Napsauta nähdäksesi lisätiedot GitHubissa - - - Last updated - Viimeksi päivitetty - - - Favorite - Favorite - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Luo Pikakuvake - - - Cheats / Patches - Huijaukset / Korjaukset - - - SFO Viewer - SFO Selain - - - Trophy Viewer - Trophy Selain - - - Open Folder... - Avaa Hakemisto... - - - Open Game Folder - Avaa Pelihakemisto - - - Open Save Data Folder - Avaa Tallennustiedostohakemisto - - - Open Log Folder - Avaa Lokihakemisto - - - Copy info... - Kopioi tietoja... - - - Copy Name - Kopioi Nimi - - - Copy Serial - Kopioi Sarjanumero - - - Copy Version - Copy Version - - - Copy Size - Copy Size - - - Copy All - Kopioi kaikki - - - Delete... - Poista... - - - Delete Game - Poista Peli - - - Delete Update - Poista Päivitys - - - Delete DLC - Poista Lisäsisältö - - - Delete Trophy - Delete Trophy - - - Compatibility... - Yhteensopivuus... - - - Shortcut creation - Pikakuvakkeen luonti - - - Shortcut created successfully! - Pikakuvake luotu onnistuneesti! - - - Error - Virhe - - - Error creating shortcut! - Virhe pikakuvakkeen luonnissa! - - - Game - Peli - - - This game has no update to delete! - Tällä pelillä ei ole poistettavaa päivitystä! - - - Update - Päivitä - - - This game has no DLC to delete! - Tällä pelillä ei ole poistettavaa lisäsisältöä! - - - DLC - Lisäsisältö - - - Delete %1 - Poista %1 - - - Are you sure you want to delete %1's %2 directory? - Haluatko varmasti poistaa %1n %2hakemiston? - - - 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 - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Hiiri Joystickinä - - - *press F7 ingame to activate - *paina F7 pelissä aktivoidaksesi - - - Options - Options - - - Mouse Movement Parameters - Hiiren Liikkeen Parametrit - - - note: click Help Button/Special Keybindings for more information - huomio: klikkaa apunappia/näppäintä saadaksesi lisää tietoa - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Avaa/Lisää Elf Hakemisto - - - Boot Game - Käynnistä Peli - - - Check for Updates - Tarkista Päivitykset - - - About shadPS4 - Tietoa shadPS4:sta - - - Configure... - Asetukset... - - - Recent Games - Viimeisimmät Pelit - - - Open shadPS4 Folder - Open shadPS4 Folder - - - Exit - Sulje - - - Exit shadPS4 - Sulje shadPS4 - - - Exit the application. - Sulje sovellus. - - - Show Game List - Avaa pelilista - - - Game List Refresh - Päivitä pelilista - - - Tiny - Hyvin pieni - - - Small - Pieni - - - Medium - Keskikokoinen - - - Large - Suuri - - - List View - Listanäkymä - - - Grid View - Ruudukkonäkymä - - - Elf Viewer - Elf Selain - - - Game Install Directory - Peliasennushakemisto - - - Download Cheats/Patches - Lataa Huijaukset / Korjaukset - - - Dump Game List - Kirjoita Pelilista Tiedostoon - - - 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... - Hae... - - - File - Tiedosto - - - View - Näkymä - - - Game List Icons - Pelilistan Ikonit - - - Game List Mode - Pelilistamuoto - - - Settings - Asetukset - - - Utils - Työkalut - - - Themes - Teemat - - - Help - Apua - - - Dark - Tumma - - - Light - Vaalea - - - Green - Vihreä - - - Blue - Sininen - - - Violet - Violetti - - - toolBar - Työkalupalkki - - - Game List - Pelilista - - - Download Cheats For All Installed Games - Lataa Huijaukset Kaikille Asennetuille Peleille - - - Download Patches For All Games - Lataa Paikkaukset Kaikille Peleille - - - Download Complete - Lataus Valmis - - - You have downloaded cheats for all the games you have installed. - Olet ladannut huijaukset kaikkiin asennettuihin peleihin. - - - Patches Downloaded Successfully! - Paikkaukset Ladattu Onnistuneesti! - - - All Patches available for all games have been downloaded. - Kaikki saatavilla olevat Paikkaukset kaikille peleille on ladattu. - - - Games: - Pelit: - - - ELF files (*.bin *.elf *.oelf) - ELF-tiedostot (*.bin *.elf *.oelf) - - - Game Boot - Pelin Käynnistys - - - Only one file can be selected! - Vain yksi tiedosto voi olla valittuna! - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Asetukset - - - General - Yleinen - - - System - Järjestelmä - - - Console Language - Konsolin Kieli - - - Emulator Language - Emulaattorin Kieli - - - Default tab when opening settings - Oletusvälilehti avattaessa asetuksia - - - Show Game Size In List - Näytä pelin koko luettelossa - - - Enable Discord Rich Presence - Ota käyttöön Discord Rich Presence - - - Username - Käyttäjänimi - - - Trophy Key - Trophy Avain - - - Trophy - Trophy - - - Open the custom trophy images/sounds folder - Open the custom trophy images/sounds folder - - - Logger - Lokinkerääjä - - - Log Type - Lokin Tyyppi - - - Log Filter - Lokisuodatin - - - Open Log Location - Avaa lokin sijainti - - - Input - Syöttö - - - Cursor - Kursori - - - Hide Cursor - Piilota Kursori - - - Hide Cursor Idle Timeout - Inaktiivisuuden Aikaraja Kursorin Piilottamiseen - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Ohjain - - - Graphics - Grafiikka - - - GUI - Rajapinta - - - User - Käyttäjä - - - Graphics Device - Näytönohjain - - - Advanced - Lisäasetukset - - - Enable Shaders Dumping - Ota Käyttöön Varjostinvedokset - - - Enable NULL GPU - Ota Käyttöön NULL GPU - - - Enable HDR - Enable HDR - - - Paths - Polut - - - Game Folders - Pelihakemistot - - - Add... - Lisää... - - - Remove - Poista - - - Debug - Virheenkorjaus - - - Enable Debug Dumping - Ota Käyttöön Virheenkorjausvedokset - - - Enable Vulkan Validation Layers - Ota Käyttöön Vulkan-validointikerrokset - - - Enable Vulkan Synchronization Validation - Ota Käyttöön Vulkan-synkronointivalidointi - - - Enable RenderDoc Debugging - Ota Käyttöön RenderDoc Virheenkorjaus - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Päivitys - - - Check for Updates at Startup - Tarkista Päivitykset Käynnistäessä - - - Always Show Changelog - Näytä aina muutoshistoria - - - Update Channel - Päivityskanava - - - Check for Updates - Tarkista Päivitykset - - - 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 - Soita Otsikkomusiikkia - - - Update Compatibility Database On Startup - Päivitä Yhteensopivuustietokanta Käynnistäessä - - - Game Compatibility - Peliyhteensopivuus - - - Display Compatibility Data - Näytä Yhteensopivuustiedot - - - Update Compatibility Database - Päivitä Yhteensopivuustietokanta - - - Volume - Äänenvoimakkuus - - - Save - Tallenna - - - Apply - Ota käyttöön - - - Restore Defaults - Palauta Oletukset - - - Close - Sulje - - - Point your mouse at an option to display its description. - Siirrä hiiri vaihtoehdon päälle näyttääksesi sen kuvauksen. - - - 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. - Konsolin Kieli:\nAseta PS4-pelin käyttämä kieli.\nOn suositeltavaa asettaa tämä kieleksi, jota peli tukee, mikä vaihtelee alueittain. - - - Emulator Language:\nSets the language of the emulator's user interface. - Emulaattorin Kieli:\nAsettaa emulaattorin käyttöliittymän kielen. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Näytä Aloitusnäyttö:\nNäyttää pelin aloitusnäytön (erityinen kuva) pelin käynnistyessä. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Ota käyttöön Discord Rich Presence:\nNäyttää emulaattorin kuvakkeen ja asiaankuuluvat tiedot Discord-profiilissasi. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Käyttäjänimi:\nAsettaa PS4-tilin käyttäjänimen, joka voi näkyä joissain peleissä. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Trophy Avain:\nThrophyjen dekryptoinnissa käytetty avain. Pitää hankkia jailbreakatusta konsolista.\nSaa sisältää vain hex-merkkejä. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Lokityyppi:\nAsettaa, synkronoidaanko loki-ikkunan ulostulo suorituskyvyn vuoksi. Tämä voi vaikuttaa haitallisesti emulointiin. - - - 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. - Lokisuodatin:\nSuodattaa lokia tulostamaan vain määrättyä tietoa.\nEsimerkkejä: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nTasot: Trace, Debug, Info, Warning, Error, Critical - tässä järjestyksessä. Valittu taso vaientaa kaikki edeltävät tasot luettelossa ja kirjaa kaikki tasot sen jälkeen. - - - 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. - Päivitys:\nRelease: Viralliset versiot, jotka julkaistaan kuukausittain ja saattavat olla hyvin vanhoja, mutta ovat luotettavampia ja testatumpia.\nNightly: Kehitysversiot, joissa on kaikki uusimmat ominaisuudet ja korjaukset, mutta ne saattavat sisältää virheitä ja ovat vähemmän vakaita. - - - 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. - Soita Otsikkomusiikkia:\nJos peli tukee sitä, ota käyttöön erityisen musiikin soittaminen pelin valinnan yhteydessä käyttöliittymässä. - - - 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). - Poista Trophy Pop-upit Käytöstä:\nPoista trophy ilmoitukset pelin aikana. Trophyjen edistystä voi silti seurata Trophy Selainta käyttämällä (klikkaa peliä hiiren oikealla emulaattorin pääikkunassa). - - - 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. - Piilota kursori:\nValitse, milloin kursori häviää:\nEi koskaan: Näet hiiren aina.\nInaktiivinen: Aseta aika, jolloin se häviää oltuaan aktiivinen.\nAina: et koskaan näe hiirtä. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Aseta aika, milloin hiiri häviää oltuaan aktiivinen. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Näytä Yhteensopivuustiedot:\nNäyttää pelien yhteensopivuustiedot listanäkymässä. Ota käyttöön "Päivitä Yhteensopivuustietokanta Käynnistäessä" saadaksesi ajantasaista tietoa. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Päivitä Yhteensopivuustiedot Käynnistäessä:\nPäivitä yhteensopivuustiedot automaattisesti shadPS4:n käynnistyessä. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Päivitä Yhteensopivuustietokanta:\nPäivitää yhteensopivuustietokannan heti. - - - Never - Ei koskaan - - - Idle - Inaktiivinen - - - Always - Aina - - - 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äytönohjain:\nUseamman näytönohjaimen järjestelmissä, valitse pudotusvalikosta, mitä näytönohjainta emulaattori käyttää,\n tai valitse "Auto Select" automaattiseen määritykseen. - - - 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. - Leveys/Korkeus:\nAsettaa käynnistetyn emulaattori-ikkunan koon, jota voidaan muuttaa pelin aikana.\nTämä on eri, kuin pelin sisäinen resoluutio. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Ota Käyttöön Varjostinvedokset:\nTeknistä vianetsintää varten. Pelin varjostimia tallennetaan hakemistoon niiden renderöityessä. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Ota Null GPU käyttöön:\nTeknistä vianetsintää varten. Pelin renderöinti estetään, ikään kuin näytönohjainta ei olisi. - - - 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. - Pelihakemistot:\nLista hakemistoista, joista pelejä haetaan. - - - Add:\nAdd a folder to the list. - Lisää:\nLisää hakemisto listalle. - - - Remove:\nRemove a folder from the list. - Poista:\nPoista hakemisto listalta. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Ota Käyttöön Virheenkorjausvedokset:\nTallentaa käynnissä olevan PS4-ohjelman tuonti- ja vientisymbolit ja tiedosto-otsikkotiedot hakemistoon. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Ota Käyttöön RenderDoc Virheenkorjaus:\nJos käytössä, emulaattori tarjoaa Renderdoc-yhteensopivuuden, mikä mahdollistaa renderöidyn kehyksen tallennuksen ja analysoinnin. - - - 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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 - Selaa - - - async - async - - - sync - sync - - - Auto Select - Auto Select - - - Directory to install games - Pelien asennushakemisto - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Trophy Selain - - - 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/fr_FR.ts b/src/qt_gui/translations/fr_FR.ts deleted file mode 100644 index d0eb971c4..000000000 --- a/src/qt_gui/translations/fr_FR.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - À propos de shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 est un émulateur open-source expérimental de la PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Ce logiciel ne doit pas être utilisé pour jouer à des jeux que vous n'avez pas obtenus légalement. - - - - CheatsPatches - - Cheats / Patches for - Cheats / Patchs pour - - - 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 - Les Cheats/Patchs sont expérimentaux.\nUtilisez-les avec précaution.\n\nTéléchargez les Cheats individuellement en sélectionnant le dépôt et en cliquant sur le bouton de téléchargement.\nDans l'onglet Patchs, vous pouvez télécharger tous les patchs en une seule fois, choisir lesquels vous souhaitez utiliser et enregistrer votre sélection.\n\nComme nous ne développons pas les Cheats/Patches,\nmerci de signaler les problèmes à l'auteur du Cheat.\n\nVous avez créé un nouveau cheat ? Visitez:\n - - - No Image Available - Aucune image disponible - - - Serial: - Numéro de série: - - - Version: - Version: - - - Size: - Taille: - - - Select Cheat File: - Sélectionner le fichier de Cheat: - - - Repository: - Dépôt: - - - Download Cheats - Télécharger les Cheats - - - Delete File - Supprimer le fichier - - - No files selected. - Aucun fichier sélectionné. - - - You can delete the cheats you don't want after downloading them. - Vous pouvez supprimer les Cheats que vous ne souhaitez pas après les avoir téléchargés. - - - Do you want to delete the selected file?\n%1 - Voulez-vous supprimer le fichier sélectionné ?\n%1 - - - Select Patch File: - Sélectionner le fichier de patch: - - - Download Patches - Télécharger les patchs - - - Save - Enregistrer - - - Cheats - Cheats - - - Patches - Patchs - - - Error - Erreur - - - No patch selected. - Aucun patch sélectionné. - - - Unable to open files.json for reading. - Impossible d'ouvrir files.json pour la lecture. - - - No patch file found for the current serial. - Aucun fichier de patch trouvé pour la série actuelle. - - - Unable to open the file for reading. - Impossible d'ouvrir le fichier pour la lecture. - - - Unable to open the file for writing. - Impossible d'ouvrir le fichier pour l'écriture. - - - Failed to parse XML: - Échec de l'analyse XML: - - - Success - Succès - - - Options saved successfully. - Options enregistrées avec succès. - - - Invalid Source - Source invalide - - - The selected source is invalid. - La source sélectionnée est invalide. - - - File Exists - Le fichier existe - - - File already exists. Do you want to replace it? - Le fichier existe déjà. Voulez-vous le remplacer ? - - - Failed to save file: - Échec de l'enregistrement du fichier: - - - Failed to download file: - Échec du téléchargement du fichier: - - - Cheats Not Found - Cheats non trouvés - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Aucun Cheat trouvé pour ce jeu dans cette version du dépôt sélectionné, essayez un autre dépôt ou une version différente du jeu. - - - Cheats Downloaded Successfully - Cheats téléchargés avec succès - - - 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. - Vous avez téléchargé les cheats avec succès pour cette version du jeu depuis le dépôt sélectionné. Vous pouvez essayer de télécharger depuis un autre dépôt, si disponible, il sera également possible de l'utiliser en sélectionnant le fichier dans la liste. - - - Failed to save: - Échec de l'enregistrement: - - - Failed to download: - Échec du téléchargement: - - - Download Complete - Téléchargement terminé - - - 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. - Patchs téléchargés avec succès ! Tous les patches disponibles pour tous les jeux ont été téléchargés, il n'est pas nécessaire de les télécharger individuellement pour chaque jeu comme c'est le cas pour les Cheats. Si le correctif n'apparaît pas, il se peut qu'il n'existe pas pour la série et la version spécifiques du jeu. - - - Failed to parse JSON data from HTML. - Échec de l'analyse des données JSON à partir du HTML. - - - Failed to retrieve HTML page. - Échec de la récupération de la page HTML. - - - The game is in version: %1 - Le jeu est en version: %1 - - - The downloaded patch only works on version: %1 - Le patch téléchargé ne fonctionne que sur la version: %1 - - - You may need to update your game. - Vous devriez peut-être mettre à jour votre jeu. - - - Incompatibility Notice - Avis d'incompatibilité - - - Failed to open file: - Échec de l'ouverture du fichier: - - - XML ERROR: - Erreur XML: - - - Failed to open files.json for writing - Échec de l'ouverture de files.json pour l'écriture - - - Author: - Auteur: - - - Directory does not exist: - Le répertoire n'existe pas: - - - Failed to open files.json for reading. - Échec de l'ouverture de files.json pour la lecture. - - - Name: - Nom: - - - Can't apply cheats before the game is started - Impossible d'appliquer les cheats avant que le jeu ne soit lancé - - - Close - Fermer - - - - CheckUpdate - - Auto Updater - Mise à jour automatique - - - Error - Erreur - - - Network error: - Erreur réseau: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Le programme de mise à jour automatique permet jusqu'à 60 vérifications de mise à jour par heure.\nVous avez atteint cette limite. Veuillez réessayer plus tard. - - - Failed to parse update information. - Échec de l'analyse des informations de mise à jour. - - - No pre-releases found. - Aucune pré-version trouvée. - - - Invalid release data. - Données de version invalides. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Remarque :</b><br><br> À partir de la version <b>0.12.0</b>, la version Qt de l’émulateur ne recevra plus de mises à jour directes.<br><br> Toutefois, l’interface Qt reste disponible via le nouveau lanceur officiel :<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – basé sur le code source original de shadPS4.<br><br>Nous vous recommandons de passer à ce lanceur pour continuer à recevoir des mises à jour. - - - Your version is already up to date! - Votre version est déjà à jour ! - - - Update Available - Mise à jour disponible - - - Update Channel - Canal de Mise à Jour - - - Current Version - Version actuelle - - - Latest Version - Dernière version - - - Do you want to update? - Voulez-vous mettre à jour ? - - - Show Changelog - Afficher le journal des modifications - - - Check for Updates at Startup - Vérif. maj au démarrage - - - Update - Mettre à jour - - - No - Non - - - Hide Changelog - Cacher le journal des modifications - - - Changes - Modifications - - - Network error occurred while trying to access the URL - Une erreur réseau s'est produite en essayant d'accéder à l'URL - - - Download Complete - Téléchargement terminé - - - The update has been downloaded, press OK to install. - La mise à jour a été téléchargée, appuyez sur OK pour l'installer. - - - Failed to save the update file at - Échec de la sauvegarde du fichier de mise à jour à - - - Starting Update... - Démarrage de la mise à jour... - - - Failed to create the update script file - Échec de la création du fichier de script de mise à jour - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Récupération des données de compatibilité, veuillez patienter - - - Cancel - Annuler - - - Loading... - Chargement... - - - Error - Erreur - - - Unable to update compatibility data! Try again later. - Impossible de mettre à jour les données de compatibilité ! Essayez plus tard. - - - Unable to open compatibility_data.json for writing. - Impossible d'ouvrir compatibility_data.json en écriture. - - - Unknown - Inconnu - - - Nothing - Rien - - - Boots - Démarre - - - Menus - Menu - - - Ingame - En jeu - - - Playable - Jouable - - - - ControlSettings - - Configure Controls - Configurer les Commandes - - - D-Pad - Croix directionnelle - - - Up - Haut - - - Left - Gauche - - - Right - Droite - - - Down - Bas - - - Left Stick Deadzone (def:2 max:127) - Stick Gauche Deadzone (def:2 max:127) - - - Left Deadzone - Deadzone Gauche - - - Left Stick - Joystick gauche - - - Config Selection - Sélection de la Configuration - - - Common Config - Configuration Commune - - - Use per-game configs - Utiliser les configurations par jeu - - - Face Buttons - Touches d'action - - - Right Stick Deadzone (def:2, max:127) - Joystick Gauche Deadzone (def:2 max:127) - - - Right Deadzone - Deadzone Droit - - - Right Stick - Joystick Droit - - - Color Adjustment - Ajustement des couleurs - - - Override Lightbar Color - Remplacer la couleur de la barre de lumière - - - Override Color - Remplacer la couleur - - - Unable to Save - Impossible de sauvegarder - - - Cannot bind axis values more than once - Impossible de lier les valeurs de l'axe plusieurs fois - - - Save - Enregistrer - - - Apply - Appliquer - - - Restore Defaults - Réinitialiser par défaut - - - Cancel - Annuler - - - unmapped - non mappé - - - Options - Options - - - Touchpad Left - Pavé Tactile Gauche - - - Touchpad Center - Centre du Pavé Tactile - - - Touchpad Right - Pavé Tactile Droit - - - Triangle - Triangle - - - Square - Carré - - - Circle - Rond - - - Cross - Croix - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Impossible de lier une entrée unique plus d'une fois. Inputs en double associés aux boutons suivants : - -%1 - - - Press a button - Appuyez sur un bouton - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Manette Active - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Modifier les raccourcis d'entrée clavier + souris et contrôleur - - - Use Per-Game configs - Utiliser les configurations pour chaque jeu - - - Error - Erreur - - - Could not open the file for reading - Impossible d'ouvrir le fichier pour la lecture - - - Could not open the file for writing - Impossible d'ouvrir le fichier pour l'écriture - - - Save Changes - Enregistrer les Modifications - - - Do you want to save changes? - Voulez-vous sauvegarder les modifications? - - - Help - Aide - - - Do you want to reset your custom default config to the original default config? - Voulez-vous réinitialiser votre configuration par défaut personnalisée à la configuration par défaut d'origine ? - - - Do you want to reset this config to your custom default config? - Voulez-vous réinitialiser cette configuration à votre configuration personnalisée par défaut ? - - - Reset to Default - Rétablir par défaut - - - - ElfViewer - - Open Folder - Ouvrir un dossier - - - - GameInfoClass - - Loading game list, please wait :3 - Chargement de la liste de jeu, veuillez patienter... - - - Cancel - Annuler - - - Loading... - Chargement... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Choisir un répertoire - - - Directory to install games - Répertoire d'installation des jeux - - - Browse - Parcourir - - - Error - Erreur - - - Directory to install DLC - Répertoire d'installation des DLC - - - - GameListFrame - - Icon - Icône - - - Name - Nom - - - Serial - Numéro de série - - - Compatibility - Compatibilité - - - Region - Région - - - Firmware - Firmware - - - Size - Taille - - - Version - Version - - - Path - Répertoire - - - Play Time - Temps de jeu - - - Never Played - Jamais joué - - - h - h - - - m - m - - - s - s - - - Compatibility is untested - La compatibilité n'a pas été testé - - - Game does not initialize properly / crashes the emulator - Le jeu ne se lance pas correctement / crash l'émulateur - - - Game boots, but only displays a blank screen - Le jeu démarre, mais n'affiche qu'un écran noir - - - Game displays an image but does not go past the menu - Le jeu affiche une image mais ne dépasse pas le menu - - - Game has game-breaking glitches or unplayable performance - Le jeu a des problèmes majeurs ou des performances qui le rendent injouable - - - Game can be completed with playable performance and no major glitches - Le jeu peut être terminé avec des performances acceptables et sans problèmes majeurs - - - Click to see details on github - Cliquez pour voir les détails sur GitHub - - - Last updated - Dernière mise à jour - - - Favorite - Favoris - - - - GameListUtils - - B - B - - - KB - Ko - - - MB - Mo - - - GB - Go - - - TB - To - - - - GuiContextMenus - - Create Shortcut - Créer un raccourci - - - Cheats / Patches - Cheats/Patchs - - - SFO Viewer - Visionneuse SFO - - - Trophy Viewer - Visionneuse de trophées - - - Open Folder... - Ouvrir le Dossier... - - - Open Game Folder - Ouvrir le Dossier du Jeu - - - Open Save Data Folder - Ouvrir le Dossier des Données de Sauvegarde - - - Open Log Folder - Ouvrir le Dossier des Logs - - - Copy info... - Copier infos... - - - Copy Name - Copier le nom - - - Copy Serial - Copier le N° de série - - - Copy Version - Copier la Version - - - Copy Size - Copier la Taille - - - Copy All - Copier tout - - - Delete... - Supprimer... - - - Delete Game - Supprimer jeu - - - Delete Update - Supprimer MÀJ - - - Delete DLC - Supprimer DLC - - - Delete Trophy - Supprimer Trophée - - - Compatibility... - Compatibilité... - - - Shortcut creation - Création du raccourci - - - Shortcut created successfully! - Raccourci créé avec succès ! - - - Error - Erreur - - - Error creating shortcut! - Erreur lors de la création du raccourci ! - - - Game - Jeu - - - This game has no update to delete! - Ce jeu n'a pas de mise à jour à supprimer! - - - Update - Mise à jour - - - This game has no DLC to delete! - Ce jeu n'a pas de DLC à supprimer! - - - DLC - DLC - - - Delete %1 - Supprime %1 - - - Are you sure you want to delete %1's %2 directory? - Êtes vous sûr de vouloir supprimer le répertoire %1 %2 ? - - - Open Update Folder - Ouvrir le Dossier de Mise à Jour - - - Delete Save Data - Supprimer les Données de Sauvegarde - - - This game has no update folder to open! - Ce jeu n'a pas de dossier de mise à jour à ouvrir! - - - No log file found for this game! - Aucun fichier journal trouvé pour ce jeu! - - - Failed to convert icon. - Échec de la conversion de l'icône. - - - This game has no save data to delete! - Ce jeu n'a pas de mise à jour à supprimer! - - - This game has no saved trophies to delete! - Ce jeu n'a aucun trophée sauvegardé à supprimer! - - - Save Data - Enregistrer les Données - - - Trophy - Trophée - - - SFO Viewer for - Visionneuse SFO pour - - - Remove from Favorites - Supprimer des favoris - - - Add to Favorites - Ajouter aux favoris - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Démarrage rapide - - - FAQ - FAQ - - - Syntax - Syntaxe - - - Special Bindings - Special bindings - - - Keybindings - Raccourcis - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - KBMSettings - - Configure Controls - Configurer les Commandes - - - D-Pad - Croix directionnelle - - - Up - Haut - - - unmapped - non mappé - - - Left - Gauche - - - Right - Droite - - - Down - Bas - - - Left Analog Halfmode - Demi-mode analogique gauche - - - hold to move left stick at half-speed - maintenez pour déplacer le joystick gauche à mi-vitesse - - - Left Stick - Joystick gauche - - - Config Selection - Sélection de la Configuration - - - Common Config - Configuration Commune - - - Use per-game configs - Utiliser les configurations par jeu - - - Text Editor - Éditeur de Texte - - - Help - Aide - - - Mouse to Joystick - Souris vers Joystick - - - *press F7 ingame to activate - *Appuyez sur F7 en jeu pour activer - - - Options - Options - - - Mouse Movement Parameters - Paramètres du mouvement de la souris - - - note: click Help Button/Special Keybindings for more information - remarque: cliquez sur le bouton Aide / Raccourcis spéciaux pour plus d'informations - - - Face Buttons - Touches d'action - - - Triangle - Triangle - - - Square - Carré - - - Circle - Rond - - - Cross - Croix - - - Right Analog Halfmode - Demi-mode analogique droit - - - hold to move right stick at half-speed - maintenez pour déplacer le joystick droit à mi-vitesse - - - Right Stick - Joystick Droit - - - Speed Offset (def 0.125): - Décalage de vitesse (def 0,125) : - - - Copy from Common Config - Copier à partir de la configuration commune - - - Deadzone Offset (def 0.50): - Deadzone Offset (def 0,50): - - - Speed Multiplier (def 1.0): - Multiplicateur de vitesse (def 1,0) : - - - Common Config Selected - Configuration courante sélectionnée - - - 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. - Ce bouton copie les mappings de la configuration commune vers le profil actuellement sélectionné, et ne peut pas être utilisé lorsque le profil actuellement sélectionné est la configuration commune. - - - Copy values from Common Config - Copier à partir de la configuration commune - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Voulez-vous remplacer les mappings existants par les mappings de la configuration commune ? - - - Unable to Save - Impossible de sauvegarder - - - Press a key - Appuyez sur un bouton - - - Cannot set mapping - Impossible de définir le mapping - - - Mousewheel cannot be mapped to stick outputs - La molette de la souris ne peut pas être affectée aux sorties de la manette - - - Save - Enregistrer - - - Apply - Appliquer - - - Restore Defaults - Réinitialiser par défaut - - - Cancel - Annuler - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Pavé Tactile Gauche - - - Touchpad Center - Centre du Pavé Tactile - - - Touchpad Right - Pavé Tactile Droit - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Ouvrir/Ajouter un dossier ELF - - - Boot Game - Démarrer un jeu - - - Check for Updates - Vérifier les mises à jour - - - About shadPS4 - À propos de shadPS4 - - - Configure... - Configurer... - - - Recent Games - Jeux récents - - - Open shadPS4 Folder - Ouvrir le dossier de shadPS4 - - - Exit - Fermer - - - Exit shadPS4 - Fermer shadPS4 - - - Exit the application. - Fermer l'application. - - - Show Game List - Afficher la liste de jeux - - - Game List Refresh - Rafraîchir la liste de jeux - - - Tiny - Très Petit - - - Small - Petit - - - Medium - Moyen - - - Large - Grand - - - List View - Mode liste - - - Grid View - Mode grille - - - Elf Viewer - Visionneuse ELF - - - Game Install Directory - Répertoire des jeux - - - Download Cheats/Patches - Télécharger Cheats/Patchs - - - Dump Game List - Dumper la liste des jeux - - - Trophy Viewer - Visionneuse de trophées - - - No games found. Please add your games to your library first. - Aucun jeu trouvé. Veuillez d'abord ajouter vos jeux à votre bibliothèque. - - - Search... - Chercher... - - - File - Fichier - - - View - Affichage - - - Game List Icons - Icônes des jeux - - - Game List Mode - Mode d'affichage - - - Settings - Paramètres - - - Utils - Utilitaires - - - Themes - Thèmes - - - Help - Aide - - - Dark - Sombre - - - Light - Clair - - - Green - Vert - - - Blue - Bleu - - - Violet - Violet - - - toolBar - Barre d'outils - - - Game List - Liste de jeux - - - Download Cheats For All Installed Games - Télécharger les Cheats pour tous les jeux installés - - - Download Patches For All Games - Télécharger les patchs pour tous les jeux - - - Download Complete - Téléchargement terminé - - - You have downloaded cheats for all the games you have installed. - Vous avez téléchargé des Cheats pour tous les jeux installés. - - - Patches Downloaded Successfully! - Patchs téléchargés avec succès ! - - - All Patches available for all games have been downloaded. - Tous les patchs disponibles ont été téléchargés. - - - Games: - Jeux: - - - ELF files (*.bin *.elf *.oelf) - Fichiers ELF (*.bin *.elf *.oelf) - - - Game Boot - Démarrer un jeu - - - Only one file can be selected! - Un seul fichier peut être sélectionné ! - - - Run Game - Lancer le jeu - - - Eboot.bin file not found - Fichier Eboot.bin introuvable - - - Game is already running! - Le jeu est déjà en cours ! - - - shadPS4 - shadPS4 - - - Play - Jouer - - - Pause - Pause - - - Stop - Stop - - - Restart - Redémarrer - - - Full Screen - Plein écran - - - Controllers - Contrôleurs - - - Keyboard - Clavier - - - Refresh List - Rafraîchir la liste - - - Resume - Reprendre - - - Show Labels Under Icons - Afficher les libellés sous les icônes - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Paramètres - - - General - Général - - - System - Système - - - Console Language - Langage de la console - - - Emulator Language - Langage de l'émulateur - - - Default tab when opening settings - Onglet par défaut lors de l'ouverture des paramètres - - - Show Game Size In List - Afficher la taille des jeux dans la liste - - - Enable Discord Rich Presence - Activer la présence Discord - - - Username - Nom d'utilisateur - - - Trophy Key - Clé de trophée - - - Trophy - Trophée - - - Open the custom trophy images/sounds folder - Ouvrir le dossier des images/sons de trophée personnalisé - - - Logger - Journalisation - - - Log Type - Type de journal - - - Log Filter - Filtre du journal - - - Open Log Location - Ouvrir l'emplacement du journal - - - Input - Entrée - - - Cursor - Curseur - - - Hide Cursor - Masquer le curseur - - - Hide Cursor Idle Timeout - Délai d'inactivité pour masquer le curseur - - - Microphone - Microphone - - - None - Aucun - - - Default Device - Default Device - - - s - s - - - Controller - Manette - - - Graphics - Graphismes - - - GUI - Interface - - - User - Utilisateur - - - Graphics Device - Carte graphique - - - Advanced - Avancé - - - Enable Shaders Dumping - Dumper les shaders - - - Enable NULL GPU - NULL GPU - - - Enable HDR - Activer HDR - - - Paths - Chemins - - - Game Folders - Dossiers de jeu - - - Add... - Ajouter... - - - Remove - Supprimer - - - Debug - Débogage - - - Enable Debug Dumping - Activer le débogage - - - Enable Vulkan Validation Layers - Activer la couche de validation Vulkan - - - Enable Vulkan Synchronization Validation - Activer la synchronisation de la validation Vulkan - - - Enable RenderDoc Debugging - Activer le débogage RenderDoc - - - Enable Crash Diagnostics - Activer le diagnostic de crash - - - Collect Shaders - Collecter les shaders - - - Copy GPU Buffers - Copier la mémoire tampon GPU - - - Host Debug Markers - Marqueur de débogage hôte - - - Guest Debug Markers - Marqueur de débogage invité - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Mise à jour - - - Check for Updates at Startup - Vérif. maj au démarrage - - - Always Show Changelog - Afficher toujours le changelog - - - Update Channel - Canal de Mise à Jour - - - Check for Updates - Vérifier les mises à jour - - - Title Music - Musique du titre - - - Disable Trophy Notification - Désactiver la notification de trophée - - - Background Image - Image d'arrière-plan - - - Show Background Image - Afficher l'image d'arrière-plan - - - Opacity - Transparence - - - Play title music - Lire la musique du titre - - - Update Compatibility Database On Startup - Mettre à jour la base de données de compatibilité au lancement - - - Game Compatibility - Compatibilité du jeu - - - Display Compatibility Data - Afficher les données de compatibilité - - - Update Compatibility Database - Mettre à jour la base de données de compatibilité - - - Volume - Volume - - - Save - Enregistrer - - - Apply - Appliquer - - - Restore Defaults - Restaurer les paramètres par défaut - - - Close - Fermer - - - Point your mouse at an option to display its description. - Pointez votre souris sur une option pour afficher sa 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. - Langue de la console:\nDéfinit la langue utilisée par le jeu PS4.\nIl est recommandé de le définir sur une langue que le jeu prend en charge, ce qui variera selon la région. - - - Emulator Language:\nSets the language of the emulator's user interface. - Langue de l'émulateur:\nDéfinit la langue de l'interface utilisateur de l'émulateur. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Afficher l'écran de démarrage:\nAffiche l'écran de démarrage du jeu (une image spéciale) lors du démarrage du jeu. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Activer Discord Rich Presence:\nAffiche l'icône de l'émulateur et les informations pertinentes sur votre profil Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Nom d'utilisateur:\nDéfinit le nom d'utilisateur du compte PS4, qui peut être affiché par certains jeux. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Clé de trophées:\nClé utilisée pour décrypter les trophées. Doit être obtenu à partir de votre console jailbreakée.\nDoit contenir des caractères hexadécimaux uniquement. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Type de journal:\nDétermine si la sortie de la fenêtre de journalisation est synchronisée pour des raisons de performance. Cela peut avoir un impact négatif sur l'émulation. - - - 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. - Filtre de journal:\n n'imprime que des informations spécifiques.\nExemples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Niveaux: Trace, Debug, Info, Avertissement, Erreur, Critique - dans cet ordre, un niveau particulier désactive tous les niveaux précédents de la liste et enregistre tous les niveaux suivants. - - - 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. - Mise à jour:\nRelease: versions officielles publiées chaque mois qui peuvent être très anciennes, mais plus fiables et testées.\nNightly: versions de développement avec toutes les dernières fonctionnalités et correctifs, mais pouvant avoir des bogues et être moins stables. - - - Background Image:\nControl the opacity of the game background image. - Image de fond :\nContrôle l'opacité de l'image de fond du jeu. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Jouer de la musique de titre:\nSi le jeu le prend en charge, cela active la musique spéciale lorsque vous sélectionnez le jeu dans l'interface utilisateur. - - - 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). - Désactiver les notifications de trophées:\nDésactive les notifications de trophées en jeu. La progression des trophées peut toujours être suivie à l'aide de la Visionneuse de trophées (clique droit sur le jeu sur la fenêtre principale). - - - 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. - Masquer le curseur:\nChoisissez quand le curseur disparaîtra:\nJamais: Vous verrez toujours la souris.\nInactif: Définissez un temps pour qu'il disparaisse après inactivité.\nToujours: vous ne verrez jamais la souris. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Définissez un temps pour que la souris disparaisse après être inactif. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Afficher les données de compatibilité:\nAffiche les informations de compatibilité des jeux dans une colonne dédiée. Activez "Mettre à jour la compatibilité au démarrage" pour avoir des informations à jour. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Mettre à jour la compatibilité au démarrage:\nMettre à jour automatiquement la base de données de compatibilité au démarrage de shadPS4. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Mettre à jour la compatibilité au démarrage:\nMet à jour immédiatement la base de données de compatibilité. - - - Never - Jamais - - - Idle - Inactif - - - Always - Toujours - - - 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. - Adaptateur graphique:\nSélectionnez le GPU que l'émulateur utilisera dans les systèmes multi-GPU à partir de la liste déroulante,\nou choisissez "Auto Select" pour le déterminer automatiquement. - - - 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. - Largeur/Hauteur:\nDéfinit la taille de la fenêtre de l'émulateur au démarrage, qui peut être redimensionnée pendant le jeu.\nCela diffère de la résolution interne du jeu. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Activer l'exportation de shaders:\nPour le débogage technique, les shaders du jeu sont enregistrés dans un dossier lors du rendu. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Activer le GPU nul:\nPour le débogage technique, désactive le rendu du jeu comme s'il n'y avait pas de carte graphique. - - - 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. - Activer HDR:\nActive le HDR dans les jeux qui le supportent.\nVotre moniteur doit avoir la prise en charge de l'espace couleur PQ BT2020 et du format swapchain RGB10A2. - - - Game Folders:\nThe list of folders to check for installed games. - Dossiers de jeux:\nLa liste des dossiers à vérifier pour les jeux installés. - - - Add:\nAdd a folder to the list. - Ajouter:\nAjouter un dossier à la liste. - - - Remove:\nRemove a folder from the list. - Supprimer:\nSupprimer un dossier de la liste. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Activer l'exportation de débogage:\nEnregistre les symboles d'importation et d'exportation et les informations d'en-tête du fichier du programme PS4 actuel dans un répertoire. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Activer le débogage RenderDoc:\nS'il est activé, l'émulateur fournit une compatibilité avec Renderdoc, permettant d'enregistrer et d'analyser la trame rendue actuelle. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Collecter les Shaders:\nVous devez activer cette option pour modifier les shaders avec le menu de débogage (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Copier la mémoire tampon GPU:\nContourne les conditions de course impliquant des soumissions GPU.\nPeut aider ou non en cas de crash PM4 type 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. - Marqueur de débogage hôte:\nInsère des informations côté émulateur telles que des marqueurs pour des commandes spécifiques AMDGPU autour des commandes Vulkan, ainsi que donner les noms de débogages des ressources.\nSi cette option est activée, vous devriez activer "Diagnostic de crash".\nUtile pour des programmes comme 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. - Marqueur de débogage invité:\nInsère tous les marqueurs de débogage que le jeu a ajouté a la commande mémoire tampon.\nSi cette option est activée, vous devriez activer "Diagnostic de crash".\nUtile pour des programmes comme RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Chemin de sauvegarde :\nLe dossier où les sauvegardes du jeu sont enregistré. - - - Browse:\nBrowse for a folder to set as the save data path. - Parcourir:\nNaviguez pour trouver un dossier pour définir le chemin des données de sauvegarde. - - - Release - Sortie - - - Nightly - Nocturne - - - Set the volume of the background music. - Volume de la musique de fond. - - - Enable Motion Controls - Activer les Mouvements - - - Save Data Path - Enregistrer le chemin vers les données - - - Browse - Parcourir - - - async - asynchrone - - - sync - synchrone - - - Auto Select - Sélection automatique - - - Directory to install games - Répertoire d'installation des jeux - - - Directory to save data - Répertoire d'enregistrement des données - - - Video - Vidéo - - - Display Mode - Mode d'affichage - - - Windowed - Fenêtré - - - Fullscreen - Plein écran - - - Fullscreen (Borderless) - Plein écran (sans bordure) - - - Window Size - Taille de fenêtre - - - W: - W: - - - H: - H: - - - Separate Log Files - Séparer les fichiers de log - - - Separate Log Files:\nWrites a separate logfile for each game. - Fichiers journaux séparés :\nÉcrit un fichier journal séparé pour chaque jeu. - - - Trophy Notification Position - Position de notification du trophée - - - Left - Gauche - - - Right - Droite - - - Top - Haut - - - Bottom - Bas - - - Notification Duration - Durée de la notification - - - Portable User Folder - Dossier d'utilisateur portable - - - Create Portable User Folder from Common User Folder - Créer un dossier utilisateur portable à partir du dossier utilisateur commun - - - 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. - Dossier utilisateur portable :\nStocke les paramètres et données shadPS4 qui seront appliqués uniquement à la version shadPS4 située dans le dossier actuel. Redémarrez l'application après avoir créé le dossier utilisateur portable pour commencer à l'utiliser. - - - Cannot create portable user folder - Impossible de créer le dossier utilisateur portable - - - %1 already exists - %1 existe déjà - - - Portable user folder created - Dossier utilisateur portable créé - - - %1 successfully created. - %1 a été créé avec succès. - - - 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. - Ouvrez le dossier des images/sons des trophées personnalisés:\nVous pouvez ajouter des images personnalisées aux trophées et aux sons.\nAjoutez les fichiers à custom_trophy avec les noms suivants:\ntrophy.wav OU trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote : Le son ne fonctionnera que dans les versions QT. - - - * Unsupported Vulkan Version - * Version de Vulkan non prise en charge - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Visionneuse de trophées - - - Select Game: - Sélectionnez un jeu: - - - Progress - Progression - - - Show Earned Trophies - Afficher les trophées gagnés - - - Show Not Earned Trophies - Afficher les trophées non gagnés - - - Show Hidden Trophies - Afficher les trophées cachés - - - diff --git a/src/qt_gui/translations/hu_HU.ts b/src/qt_gui/translations/hu_HU.ts deleted file mode 100644 index 8deaa227a..000000000 --- a/src/qt_gui/translations/hu_HU.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - A shadPS4-ről - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - A shadPS4 egy kezdetleges, open-source PlayStation 4 emulátor. - - - This software should not be used to play games you have not legally obtained. - Ne használja ezt a szoftvert olyan játékokkal, amelyeket nem legális módon szerzett be. - - - - 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 - A csalások/javítások kísérleti jellegűek.\nHasználja őket óvatosan.\n\nTöltse le a csalásokat egyesével a tároló kiválasztásával és a letöltés gombra kattintással.\nA Javítások fül alatt egyszerre letöltheti az összes javítást, majd választhat, melyeket szeretné használni, és elmentheti a választását.\n\nMivel nem mi fejlesztjük a csalásokat/patch-eket,\nkérjük, jelentse a problémákat a csalás szerzőjének.\n\nKészített egy új csalást? Látogasson el ide:\n - - - No Image Available - Nincs elérhető kép - - - Serial: - Sorozatszám: - - - Version: - Verzió: - - - Size: - Méret: - - - Select Cheat File: - Válaszd ki a csalás fájlt: - - - Repository: - Tároló: - - - Download Cheats - Csalások letöltése - - - Delete File - Fájl törlése - - - No files selected. - Nincsenek kiválasztott fájlok. - - - You can delete the cheats you don't want after downloading them. - Törölheted a nem kívánt csalásokat a letöltés után. - - - Do you want to delete the selected file?\n%1 - Szeretnéd törölni a kiválasztott fájlt?\n%1 - - - Select Patch File: - Válaszd ki a javítás fájlt: - - - Download Patches - Javítások letöltése - - - Save - Mentés - - - Cheats - Csalások - - - Patches - Javítások - - - Error - Hiba - - - No patch selected. - Nincs kiválasztva javítás. - - - Unable to open files.json for reading. - Nem sikerült megnyitni a files.json fájlt olvasásra. - - - No patch file found for the current serial. - Nincs található javítási fájl a jelenlegi sorozatszámhoz. - - - Unable to open the file for reading. - Nem sikerült megnyitni a fájlt olvasásra. - - - Unable to open the file for writing. - Nem sikerült megnyitni a fájlt írásra. - - - Failed to parse XML: - XML elemzési hiba: - - - Success - Siker - - - Options saved successfully. - A beállítások sikeresen elmentve. - - - Invalid Source - Érvénytelen forrás - - - The selected source is invalid. - A kiválasztott forrás érvénytelen. - - - File Exists - A fájl létezik - - - File already exists. Do you want to replace it? - A fájl már létezik. Szeretnéd helyettesíteni? - - - Failed to save file: - Nem sikerült elmenteni a fájlt: - - - Failed to download file: - Nem sikerült letölteni a fájlt: - - - Cheats Not Found - Csalások nem találhatóak - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Nincs található csalás ezen a játékverzión ebben a kiválasztott tárolóban, próbálj meg egy másik tárolót vagy a játék egy másik verzióját. - - - Cheats Downloaded Successfully - Csalások sikeresen letöltve - - - 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. - Sikeresen letöltötted a csalásokat ennek a játéknak a verziójához a kiválasztott tárolóból. Próbálhatsz letölteni egy másik tárolóból is, ha az elérhető, akkor a fájl kiválasztásával az is használható lesz. - - - Failed to save: - Nem sikerült menteni: - - - Failed to download: - Nem sikerült letölteni: - - - Download Complete - Letöltés befejezve - - - 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. - Frissítések sikeresen letöltve! Minden elérhető frissítés letöltésre került, nem szükséges egyesével letölteni őket minden játékhoz, mint a csalások esetében. Ha a javítások nem jelennek meg, lehet, hogy nem léteznek a játék adott sorozatszámához és verziójához. - - - Failed to parse JSON data from HTML. - Nem sikerült az JSON adatok elemzése HTML-ből. - - - Failed to retrieve HTML page. - Nem sikerült HTML oldal lekérése. - - - The game is in version: %1 - A játék verziója: %1 - - - The downloaded patch only works on version: %1 - A letöltött javításhoz a(z) %1 verzió működik - - - You may need to update your game. - Lehet, hogy frissítened kell a játékodat. - - - Incompatibility Notice - Inkompatibilitási értesítés - - - Failed to open file: - Nem sikerült megnyitni a fájlt: - - - XML ERROR: - XML HIBA: - - - Failed to open files.json for writing - Nem sikerült megnyitni a files.json fájlt írásra - - - Author: - Szerző: - - - Directory does not exist: - A mappa nem létezik: - - - Failed to open files.json for reading. - Nem sikerült megnyitni a files.json fájlt olvasásra. - - - Name: - Név: - - - Can't apply cheats before the game is started - Nem lehet csalásokat alkalmazni, mielőtt a játék elindul. - - - Close - Bezárás - - - - CheckUpdate - - Auto Updater - Automatikus frissítő - - - Error - Hiba - - - Network error: - Hálózati hiba: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Az automatikus frissítő óránként legfeljebb 60 frissítésellenőrzést engedélyez.\nElérte ezt a korlátot. Kérjük, próbálja újra később. - - - Failed to parse update information. - A frissítési információk elemzése sikertelen. - - - No pre-releases found. - Nem található előzetes kiadás. - - - Invalid release data. - Érvénytelen kiadási adatok. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Értesítés:</b><br><br> A 0.12.0‑ás verziótól kezdve az emulátor Qt‑verziója már nem kap közvetlen frissítéseket.<br><br> Ugyanakkor a Qt felület továbbra is elérhető az új hivatalos indítóprogrammal:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – az eredeti shadPS4 forráskód alapján.<br><br>Ajánljuk, hogy erre az indítóra válts át, hogy folytathasd a frissítések fogadását. - - - Your version is already up to date! - A verziód már naprakész! - - - Update Available - Frissítés elérhető - - - Update Channel - Frissítési Csatorna - - - Current Version - Jelenlegi verzió - - - Latest Version - Új verzió - - - Do you want to update? - Szeretnéd frissíteni? - - - Show Changelog - Változások megjelenítése - - - Check for Updates at Startup - Frissítések keresése indításkor - - - Update - Frissítés - - - No - Mégse - - - Hide Changelog - Változások elrejtése - - - Changes - Változások - - - Network error occurred while trying to access the URL - Hálózati hiba történt az URL elérésekor - - - Download Complete - Letöltés kész - - - The update has been downloaded, press OK to install. - A frissítés letöltődött, nyomja meg az OK gombot az telepítéshez. - - - Failed to save the update file at - A frissítési fájl mentése nem sikerült a következő helyre - - - Starting Update... - Frissítés indítása... - - - Failed to create the update script file - A frissítési szkript fájl létrehozása nem sikerült - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Kompatibilitási adatok betöltése, kérem várjon - - - Cancel - Megszakítás - - - Loading... - Betöltés... - - - Error - Hiba - - - Unable to update compatibility data! Try again later. - Nem sikerült frissíteni a kompatibilitási adatokat! Kérem próbálja újra később. - - - Unable to open compatibility_data.json for writing. - Nem sikerült megnyitni a compatibility_data.json fájlt írásra. - - - Unknown - Ismeretlen - - - Nothing - Semmi - - - Boots - Csizmák - - - Menus - Menük - - - Ingame - Játékban - - - Playable - Játszható - - - - 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 - - - Face Buttons - Face Buttons - - - 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 - - - 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 - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - 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 - Mappa megnyitása - - - - GameInfoClass - - Loading game list, please wait :3 - Játék könyvtár betöltése, kérjük várjon :3 - - - Cancel - Megszakítás - - - Loading... - Betöltés.. - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Mappa kiválasztása - - - Directory to install games - Mappa a játékok telepítésére - - - Browse - Böngészés - - - Error - Hiba - - - Directory to install DLC - Directory to install DLC - - - - GameListFrame - - Icon - Ikon - - - Name - Név - - - Serial - Sorozatszám - - - Compatibility - Compatibility - - - Region - Régió - - - Firmware - Firmware - - - Size - Méret - - - Version - Verzió - - - Path - Útvonal - - - Play Time - Játékidő - - - 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 - Kattintson a részletek megtekintéséhez a GitHubon - - - Last updated - Utoljára frissítve - - - Favorite - Favorite - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Parancsikon Létrehozása - - - Cheats / Patches - Csalások / Javítások - - - SFO Viewer - SFO Nézegető - - - Trophy Viewer - Trófeák Megtekintése - - - Open Folder... - Mappa megnyitása... - - - Open Game Folder - Játék Mappa Megnyitása - - - Open Save Data Folder - Mentési adatok mappa megnyitása - - - Open Log Folder - Napló mappa megnyitása - - - Copy info... - Információ Másolása... - - - Copy Name - Név Másolása - - - Copy Serial - Széria Másolása - - - Copy Version - Copy Version - - - Copy Size - Copy Size - - - Copy All - Összes Másolása - - - Delete... - Törlés... - - - Delete Game - Játék törlése - - - Delete Update - Frissítések törlése - - - Delete DLC - DLC-k törlése - - - Delete Trophy - Delete Trophy - - - Compatibility... - Compatibility... - - - Shortcut creation - Parancsikon létrehozása - - - Shortcut created successfully! - Parancsikon sikeresen létrehozva! - - - Error - Hiba - - - Error creating shortcut! - Hiba a parancsikon létrehozásával! - - - Game - Játék - - - This game has no update to delete! - Ehhez a játékhoz nem tartozik törlendő frissítés! - - - Update - Frissítés - - - This game has no DLC to delete! - Ehhez a játékhoz nem tartozik törlendő DLC! - - - DLC - DLC - - - Delete %1 - Delete %1 - - - Are you sure you want to delete %1's %2 directory? - Biztosan törölni akarja a %1's %2 mappát? - - - 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 - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - ELF Mappa Megnyitása/Hozzáadása - - - Boot Game - Játék Indítása - - - Check for Updates - Frissítések keresése - - - About shadPS4 - A shadPS4-ről - - - Configure... - Konfigurálás... - - - Recent Games - Legutóbbi Játékok - - - Open shadPS4 Folder - Open shadPS4 Folder - - - Exit - Kilépés - - - Exit shadPS4 - Kilépés a shadPS4-ből - - - Exit the application. - Lépjen ki a programból. - - - Show Game List - Játék Könyvtár Megjelenítése - - - Game List Refresh - Játék Könyvtár Újratöltése - - - Tiny - Apró - - - Small - Kicsi - - - Medium - Közepes - - - Large - Nagy - - - List View - Lista Nézet - - - Grid View - Rács Nézet - - - Elf Viewer - Elf Nézegető - - - Game Install Directory - Játék Telepítési Mappa - - - Download Cheats/Patches - Csalások / Javítások letöltése - - - Dump Game List - Játéklista Dumpolása - - - 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... - Keresés... - - - File - Fájl - - - View - Nézet - - - Game List Icons - Játékkönyvtár Ikonok - - - Game List Mode - Játékkönyvtár Nézet - - - Settings - Beállítások - - - Utils - Segédeszközök - - - Themes - Témák - - - Help - Segítség - - - Dark - Sötét - - - Light - Világos - - - Green - Zöld - - - Blue - Kék - - - Violet - Ibolya - - - toolBar - Eszköztár - - - Game List - Játéklista - - - Download Cheats For All Installed Games - Csalások letöltése minden telepített játékhoz - - - Download Patches For All Games - Javítások letöltése minden játékhoz - - - Download Complete - Letöltés befejezve - - - You have downloaded cheats for all the games you have installed. - Minden elérhető csalás letöltődött az összes telepített játékhoz. - - - Patches Downloaded Successfully! - Javítások sikeresen letöltve! - - - All Patches available for all games have been downloaded. - Az összes játékhoz elérhető javítás letöltésre került. - - - Games: - Játékok: - - - ELF files (*.bin *.elf *.oelf) - ELF fájlok (*.bin *.elf *.oelf) - - - Game Boot - Játék indító - - - Only one file can be selected! - Csak egy fájl választható ki! - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Beállítások - - - General - Általános - - - System - Rendszer - - - Console Language - A Konzol Nyelvezete - - - Emulator Language - Az Emulátor Nyelvezete - - - Default tab when opening settings - Alapértelmezett fül a beállítások megnyitásakor - - - Show Game Size In List - Játékméret megjelenítése a listában - - - Enable Discord Rich Presence - A Discord Rich Presence engedélyezése - - - Username - Felhasználónév - - - Trophy Key - Trophy Key - - - Trophy - Trophy - - - Open the custom trophy images/sounds folder - Open the custom trophy images/sounds folder - - - Logger - Naplózó - - - Log Type - Naplózási Típus - - - Log Filter - Naplózási Filter - - - Open Log Location - Napló helyének megnyitása - - - Input - Bemenet - - - Cursor - Kurzor - - - Hide Cursor - Kurzor elrejtése - - - Hide Cursor Idle Timeout - Kurzor inaktivitási időtúllépés - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Kontroller - - - Graphics - Grafika - - - GUI - Felület - - - User - Felhasználó - - - Graphics Device - Grafikai Eszköz - - - Advanced - Haladó - - - Enable Shaders Dumping - Shader Dumpolás Engedélyezése - - - Enable NULL GPU - NULL GPU Engedélyezése - - - Enable HDR - Enable HDR - - - Paths - Útvonalak - - - Game Folders - Játékmappák - - - Add... - Hozzáadás... - - - Remove - Eltávolítás - - - Debug - Debugolás - - - Enable Debug Dumping - Debug Dumpolás Engedélyezése - - - Enable Vulkan Validation Layers - Vulkan Validációs Rétegek Engedélyezése - - - Enable Vulkan Synchronization Validation - Vulkan Szinkronizálás Validáció - - - Enable RenderDoc Debugging - RenderDoc Debugolás Engedélyezése - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Frissítés - - - Check for Updates at Startup - Frissítések keresése indításkor - - - Always Show Changelog - Mindig mutasd a változásnaplót - - - Update Channel - Frissítési Csatorna - - - Check for Updates - Frissítések keresése - - - 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 - Címzene lejátszása - - - 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 - Hangerő - - - Save - Mentés - - - Apply - Alkalmaz - - - Restore Defaults - Alapértelmezett értékek visszaállítása - - - Close - Bezárás - - - Point your mouse at an option to display its description. - Helyezze az egérmutatót egy lehetőség fölé, hogy megjelenítse annak leírását. - - - 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. - Konzol nyelve:\nBeállítja a PS4 játék nyelvét.\nAjánlott a játék által támogatott nyelvre állítani, amely régiónként változhat. - - - Emulator Language:\nSets the language of the emulator's user interface. - Emulátor nyelve:\nBeállítja az emulátor felhasználói felületének nyelvét. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Indítóképernyő megjelenítése:\nMegjeleníti a játék indítóképernyőjét (különleges képet) a játék elindításakor. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - A Discord Rich Presence engedélyezése:\nMegjeleníti az emulator ikonját és a kapcsolódó információkat a Discord profilján. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Felhasználónév:\nBeállítja a PS4 fiók felhasználónevét, amelyet egyes játékok megjeleníthetnek. - - - 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. - Napló típusa:\nBeállítja, hogy szinkronizálja-e a naplóablak kimenetét a teljesítmény érdekében. Ennek kedvezőtlen hatásai lehetnek az emulációra. - - - 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. - Napló szűrő:\nCsak bizonyos információk megjelenítésére szűri a naplót.\nPéldák: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Szintek: Trace, Debug, Info, Warning, Error, Critical - ebben a sorrendben, egy konkrét szint elnémítja az előtte lévő összes szintet, és naplózza az utána következő szinteket. - - - 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. - Frissítés:\nRelease: Hivatalos verziók, amelyeket havonta adnak ki, és amelyek nagyon elavultak lehetnek, de megbízhatóbbak és teszteltek.\nNightly: Fejlesztési verziók, amelyek az összes legújabb funkciót és javítást tartalmazzák, de hibákat tartalmazhatnak és kevésbé stabilak. - - - 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. - Játék címzene lejátszása:\nHa a játék támogatja, engedélyezze egy speciális zene lejátszását, amikor a játékot kiválasztja a GUI-ban. - - - 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. - Kurzor elrejtése:\nVálassza ki, mikor tűnjön el az egérmutató:\nSoha: Az egér mindig látható.\nInaktív: Állítson be egy időt, amennyi idő mozdulatlanság után eltűnik.\nMindig: az egér mindig el lesz rejtve. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Állítson be egy időt, ami után egér inaktív állapotban eltűnik. - - - 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 - Soha - - - Idle - Inaktív - - - Always - Mindig - - - 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. - Grafikus eszköz:\nTöbb GPU-s rendszereken válassza ki, melyik GPU-t használja az emulátor a legördülő listából,\nvagy válassza az "Auto Select" lehetőséget, hogy automatikusan kiválassza azt. - - - 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. - Szélesség/Magasság:\nBeállítja az emulátor ablakának méretét induláskor, amely a játék során átméretezhető.\nEz különbözik a játékbeli felbontástól. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Shader dumping engedélyezése:\nMűszaki hibaelhárítás céljából a játékok shaderjeit elmenti egy mappába, ahogy renderelődnek. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Null GPU engedélyezése:\nMűszaki hibaelhárítás céljából letiltja a játék renderelését, mintha nem lenne grafikus kártya. - - - 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. - Játék mappák:\nA mappák listája, ahol telepített játékok vannak. - - - Add:\nAdd a folder to the list. - Hozzáadás:\nHozzon létre egy mappát a listában. - - - Remove:\nRemove a folder from the list. - Eltávolítás:\nTávolítson el egy mappát a listából. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Debug dumpolás engedélyezése:\nElmenti a futó PS4 program import- és exportszimbólumait, valamint a fájl fejlécinformációit egy könyvtárba. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - RenderDoc hibakeresés engedélyezése:\nHa engedélyezve van, az emulátor kompatibilitást biztosít a Renderdoc számára, hogy lehetővé tegye a jelenleg renderelt keret rögzítését és elemzését. - - - 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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 - Böngészés - - - async - async - - - sync - sync - - - Auto Select - Auto Select - - - Directory to install games - Mappa a játékok telepítésére - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Trófeák Megtekintése - - - 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/id_ID.ts b/src/qt_gui/translations/id_ID.ts deleted file mode 100644 index 5b0742a2f..000000000 --- a/src/qt_gui/translations/id_ID.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Tentang shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 adalah emulator sumber terbuka eksperimental untuk PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Perangkat lunak ini tidak boleh digunakan untuk memainkan permainan yang tidak Anda peroleh secara legal. - - - - CheatsPatches - - Cheats / Patches for - Kecurangan / Tambalan untuk - - - 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 bersifat eksperimental.\nGunakan dengan hati-hati.\n\nUnduh cheats satu per satu dengan memilih repositori dan mengklik tombol unduh.\nDi tab Patches, Anda dapat mengunduh semua patch sekaligus, memilih yang ingin digunakan, dan menyimpan pilihan Anda.\n\nKarena kami tidak mengembangkan Cheats/Patches,\nharap laporkan masalah kepada pembuat cheat.\n\nMembuat cheat baru? Kunjungi:\n - - - No Image Available - Tidak Ada Gambar Tersedia - - - Serial: - Seri: - - - Version: - Versi: - - - Size: - Ukuran: - - - Select Cheat File: - Pilih File Cheat: - - - Repository: - Repositori: - - - Download Cheats - Unduh Cheat - - - Delete File - Hapus File - - - No files selected. - Tidak ada file yang dipilih. - - - You can delete the cheats you don't want after downloading them. - Anda dapat menghapus cheat yang tidak Anda inginkan setelah mengunduhnya. - - - Do you want to delete the selected file?\n%1 - Apakah Anda ingin menghapus berkas yang dipilih?\n%1 - - - Select Patch File: - Pilih File Patch: - - - Download Patches - Unduh Patch - - - Save - Simpan - - - Cheats - Cheat - - - Patches - Patch - - - Error - Kesalahan - - - No patch selected. - Tidak ada patch yang dipilih. - - - Unable to open files.json for reading. - Tidak dapat membuka files.json untuk dibaca. - - - No patch file found for the current serial. - Tidak ada file patch ditemukan untuk serial saat ini. - - - Unable to open the file for reading. - Tidak dapat membuka file untuk dibaca. - - - Unable to open the file for writing. - Tidak dapat membuka file untuk menulis. - - - Failed to parse XML: - Gagal menganalisis XML: - - - Success - Sukses - - - Options saved successfully. - Opsi berhasil disimpan. - - - Invalid Source - Sumber Tidak Valid - - - The selected source is invalid. - Sumber yang dipilih tidak valid. - - - File Exists - File Ada - - - File already exists. Do you want to replace it? - File sudah ada. Apakah Anda ingin menggantinya? - - - Failed to save file: - Gagal menyimpan file: - - - Failed to download file: - Gagal mengunduh file: - - - Cheats Not Found - Cheat Tidak Ditemukan - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Cheat tidak ditemukan untuk game ini dalam versi repositori yang dipilih,cobalah repositori lain atau versi game yang berbeda. - - - Cheats Downloaded Successfully - Cheat Berhasil Diunduh - - - 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. - Anda telah berhasil mengunduh cheat untuk versi game ini dari repositori yang dipilih. Anda bisa mencoba mengunduh dari repositori lain, jika tersedia akan juga memungkinkan untuk menggunakannya dengan memilih file dari daftar. - - - Failed to save: - Gagal menyimpan: - - - Failed to download: - Gagal mengunduh: - - - Download Complete - Unduhan Selesai - - - 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. - Patch Berhasil Diunduh! Semua Patch yang tersedia untuk semua game telah diunduh, tidak perlu mengunduhnya satu per satu seperti yang terjadi pada Cheat. Jika patch tidak muncul, mungkin patch tersebut tidak ada untuk nomor seri dan versi game yang spesifik. - - - Failed to parse JSON data from HTML. - Gagal menganalisis data JSON dari HTML. - - - Failed to retrieve HTML page. - Gagal mengambil halaman HTML. - - - The game is in version: %1 - Permainan berada di versi: %1 - - - The downloaded patch only works on version: %1 - Patch yang diunduh hanya berfungsi pada versi: %1 - - - You may need to update your game. - Anda mungkin perlu memperbarui permainan Anda. - - - Incompatibility Notice - Pemberitahuan Ketidakcocokan - - - Failed to open file: - Gagal membuka file: - - - XML ERROR: - KESALAHAN XML: - - - Failed to open files.json for writing - Gagal membuka files.json untuk menulis - - - Author: - Penulis: - - - Directory does not exist: - Direktori tidak ada: - - - Failed to open files.json for reading. - Gagal membuka files.json untuk dibaca. - - - Name: - Nama: - - - Can't apply cheats before the game is started - Tidak bisa menerapkan cheat sebelum permainan dimulai. - - - Close - Tutup - - - - CheckUpdate - - Auto Updater - Pembaruan Otomatis - - - Error - Kesalahan - - - Network error: - Kesalahan jaringan: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Pembaruan Otomatis memungkinkan hingga 60 pemeriksaan pembaruan per jam.\nAnda telah mencapai batas ini. Silakan coba lagi nanti. - - - Failed to parse update information. - Gagal memparse informasi pembaruan. - - - No pre-releases found. - Tidak ada pra-rilis yang ditemukan. - - - Invalid release data. - Data rilis tidak valid. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Peringatan:</b><br><br> Mulai versi <b>0.12.0</b>, versi Qt dari emulator tidak akan lagi menerima pembaruan langsung.<br><br> Namun, antarmuka Qt tetap tersedia melalui peluncur resmi baru:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – berdasarkan kode sumber asli shadPS4.<br><br>Kami menyarankan untuk beralih ke peluncur ini agar terus menerima pembaruan. - - - Your version is already up to date! - Versi Anda sudah terbaru! - - - Update Available - Pembaruan Tersedia - - - Update Channel - Saluran Pembaruan - - - Current Version - Versi Saat Ini - - - Latest Version - Versi Terbaru - - - Do you want to update? - Apakah Anda ingin memperbarui? - - - Show Changelog - Tampilkan Catatan Perubahan - - - Check for Updates at Startup - Periksa pembaruan saat mulai - - - Update - Perbarui - - - No - Tidak - - - Hide Changelog - Sembunyikan Catatan Perubahan - - - Changes - Perubahan - - - Network error occurred while trying to access the URL - Kesalahan jaringan terjadi saat mencoba mengakses URL - - - Download Complete - Unduhan Selesai - - - The update has been downloaded, press OK to install. - Pembaruan telah diunduh, tekan OK untuk menginstal. - - - Failed to save the update file at - Gagal menyimpan file pembaruan di - - - Starting Update... - Memulai Pembaruan... - - - Failed to create the update script file - Gagal membuat file skrip pembaruan - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Memuat data kompatibilitas, harap tunggu - - - Cancel - Batal - - - Loading... - Memuat... - - - Error - Kesalahan - - - Unable to update compatibility data! Try again later. - Tidak dapat memperbarui data kompatibilitas! Coba lagi nanti. - - - Unable to open compatibility_data.json for writing. - Tidak dapat membuka compatibility_data.json untuk menulis. - - - Unknown - Tidak Dikenal - - - Nothing - Tidak ada - - - Boots - Sepatu Bot - - - Menus - Menu - - - Ingame - Dalam Permainan - - - Playable - Dapat dimainkan - - - - ControlSettings - - Configure Controls - Konfigurasi Kontrol - - - D-Pad - Tombol arah - - - Up - Atas - - - Left - Kiri - - - Right - Kanan - - - Down - Bawah - - - Left Stick Deadzone (def:2 max:127) - Zona Mati Stik Kiri (standar: 2, maksimum: 127) - - - Left Deadzone - Left Deadzone - - - Left Stick - Stik Kiri - - - Config Selection - Pemilihan Konfigurasi - - - Common Config - Konfigurasi Umum - - - Use per-game configs - Gunakan konfigurasi per-game - - - Face Buttons - Tombol Wajah - - - Right Stick Deadzone (def:2, max:127) - Zona mati stik kanan (def:2, maks:127) - - - Right Deadzone - Zona Mati Kanan - - - Right Stick - Stik Kanan - - - Color Adjustment - Penyesuaian Warna - - - Override Lightbar Color - Ganti Warna Lightbar - - - Override Color - Ganti Warna - - - Unable to Save - Tidak dapat Menyimpan - - - Cannot bind axis values more than once - Tidak dapat mengikat nilai sumbu lebih dari satu kali - - - Save - Simpan - - - Apply - Terapkan - - - Restore Defaults - Kembalikan Pengaturan Default - - - Cancel - Batal - - - unmapped - tidak terpetakan - - - Options - Opsi - - - Touchpad Left - Touchpad Kiri - - - Touchpad Center - Pusat Touchpad - - - Touchpad Right - Touchpad Kanan - - - Triangle - Segitiga - - - Square - Kotak - - - Circle - Bulat - - - Cross - X - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Tidak dapat mengikat input unik lebih dari satu kali. input duplikat dipetakan ke tombol berikut: - -%1 - - - Press a button - Tekan sebuah tombol - - - Move analog stick - Pindahkan stik analog - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Edit pengikatan input Keyboard + Mouse dan Pengontrol - - - Use Per-Game configs - Gunakan konfigurasi per-game - - - Error - Galat - - - Could not open the file for reading - Tidak dapat membuka file untuk dibaca - - - Could not open the file for writing - Tidak dapat membuka file untuk ditulis - - - Save Changes - Simpan perubahan - - - Do you want to save changes? - Apakah anda ingin menyimpan perubahan? - - - Help - Bantuan - - - Do you want to reset your custom default config to the original default config? - Apakah Anda ingin mengatur ulang konfigurasi default khusus Anda ke konfigurasi default asli? - - - Do you want to reset this config to your custom default config? - Apakah Anda ingin mengatur ulang konfigurasi ini ke konfigurasi default khusus Anda? - - - Reset to Default - Kembalikan ke Setelan Awal - - - - 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 - Ikon - - - Name - Nama - - - Serial - Serial - - - Compatibility - Compatibility - - - Region - Wilayah - - - Firmware - Firmware - - - Size - Ukuran - - - Version - Versi - - - Path - Jalur - - - Play Time - Waktu Bermain - - - 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 - Klik untuk melihat detail di GitHub - - - Last updated - Terakhir diperbarui - - - Favorite - Favorite - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Create Shortcut - - - Cheats / Patches - Cheat / Patch - - - SFO Viewer - SFO Viewer - - - Trophy Viewer - Trophy Viewer - - - Open Folder... - Buka Folder... - - - Open Game Folder - Buka Folder Game - - - Open Save Data Folder - Buka Folder Data Simpanan - - - Open Log Folder - Buka Folder Log - - - 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... - - - Shortcut creation - Shortcut creation - - - Shortcut created successfully! - Shortcut created successfully! - - - Error - Error - - - Error creating shortcut! - Error creating shortcut! - - - Game - Permainan - - - This game has no update to delete! - Game ini tidak memiliki pembaruan untuk dihapus! - - - Update - Pembaruan - - - This game has no DLC to delete! - Game ini tidak memiliki DLC untuk dihapus! - - - DLC - DLC - - - Delete %1 - Hapus %1 - - - Are you sure you want to delete %1's %2 directory? - Apakah Anda yakin ingin menghapus direktori %1's %2? - - - Open Update Folder - Buka Folder Pembaruan - - - Delete Save Data - Delete Save Data - - - This game has no update folder to open! - Game ini tidak memiliki folder pembaruan untuk dibuka! - - - No log file found for this game! - Tidak ada berkas log yang ditemukan untuk permainan ini! - - - Failed to convert icon. - Gagal mengonversi ikon. - - - This game has no save data to delete! - Game ini tidak memiliki data simpanan yang dapat dihapus! - - - This game has no saved trophies to delete! - Permainan ini tidak memiliki trofi tersimpan untuk dihapus! - - - Save Data - Simpan Data - - - Trophy - Piala - - - SFO Viewer for - Penampil SFO untuk - - - Remove from Favorites - Hapus dari Favorit - - - Add to Favorites - Tambahkan ke Favorit - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Pengenalan Cepat - - - FAQ - PERTANYAAN YANG SERING DITANYAKAN - - - Syntax - Sintaks - - - Special Bindings - Ikatan Khusus - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Open/Add Elf Folder - - - Boot Game - Boot Game - - - Check for Updates - Periksa pembaruan - - - 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 - Unduh Cheat / Patch - - - 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 - Bantuan - - - Dark - Dark - - - Light - Light - - - Green - Green - - - Blue - Blue - - - Violet - Violet - - - toolBar - toolBar - - - Game List - Daftar game - - - Download Cheats For All Installed Games - Unduh Cheat Untuk Semua Game Yang Terpasang - - - Download Patches For All Games - Unduh Patch Untuk Semua Game - - - Download Complete - Unduhan Selesai - - - You have downloaded cheats for all the games you have installed. - Anda telah mengunduh cheat untuk semua game yang terpasang. - - - Patches Downloaded Successfully! - Patch Berhasil Diunduh! - - - All Patches available for all games have been downloaded. - Semua Patch yang tersedia untuk semua game telah diunduh. - - - Games: - Game: - - - ELF files (*.bin *.elf *.oelf) - File ELF (*.bin *.elf *.oelf) - - - Game Boot - Boot Game - - - Only one file can be selected! - Hanya satu file yang bisa dipilih! - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - System - - - Console Language - Console Language - - - Emulator Language - Emulator Language - - - Default tab when opening settings - Tab default saat membuka pengaturan - - - Show Game Size In List - Tampilkan Ukuran Game di Daftar - - - Enable Discord Rich Presence - Aktifkan 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 - Buka Lokasi Log - - - Input - Masukan - - - Cursor - Kursor - - - Hide Cursor - Sembunyikan kursor - - - Hide Cursor Idle Timeout - Batas waktu sembunyikan kursor tidak aktif - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Pengontrol - - - Graphics - Graphics - - - GUI - Antarmuka - - - User - Pengguna - - - Graphics Device - Graphics Device - - - Advanced - Advanced - - - Enable Shaders Dumping - Enable Shaders Dumping - - - Enable NULL GPU - Enable NULL GPU - - - Enable HDR - Enable HDR - - - Paths - Jalur - - - Game Folders - Folder Permainan - - - Add... - Tambah... - - - Remove - Hapus - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Pembaruan - - - Check for Updates at Startup - Periksa pembaruan saat mulai - - - Always Show Changelog - Selalu Tampilkan Riwayat Perubahan - - - Update Channel - Saluran Pembaruan - - - Check for Updates - Periksa pembaruan - - - 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 - Putar musik judul - - - 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 - Simpan - - - Apply - Terapkan - - - Restore Defaults - Kembalikan Pengaturan Default - - - Close - Tutup - - - Point your mouse at an option to display its description. - Arahkan mouse Anda pada opsi untuk menampilkan deskripsinya. - - - 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. - Bahasa Konsol:\nMenetapkan bahasa yang digunakan oleh permainan PS4.\nDisarankan untuk mengatur ini ke bahasa yang didukung oleh permainan, yang dapat bervariasi berdasarkan wilayah. - - - Emulator Language:\nSets the language of the emulator's user interface. - Bahasa Emulator:\nMenetapkan bahasa antarmuka pengguna emulator. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Tampilkan Layar Pembuka:\nMenampilkan layar pembuka permainan (gambar khusus) saat permainan dimulai. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Aktifkan Discord Rich Presence:\nMenampilkan ikon emulator dan informasi relevan di profil Discord Anda. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Nama Pengguna:\nMenetapkan nama pengguna akun PS4, yang mungkin ditampilkan oleh beberapa permainan. - - - 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. - Jenis Log:\nMenetapkan apakah untuk menyinkronkan output jendela log untuk kinerja. Dapat memiliki efek buruk pada emulasi. - - - 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. - Filter Log:\nMenyaring log untuk hanya mencetak informasi tertentu.\nContoh: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Tingkatan: Trace, Debug, Info, Warning, Error, Critical - dalam urutan ini, tingkat tertentu membungkam semua tingkat sebelumnya dalam daftar dan mencatat setiap tingkat setelahnya. - - - 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. - Pembaruan:\nRelease: Versi resmi yang dirilis setiap bulan yang mungkin sangat ketinggalan zaman, tetapi lebih dapat diandalkan dan teruji.\nNightly: Versi pengembangan yang memiliki semua fitur dan perbaikan terbaru, tetapi mungkin mengandung bug dan kurang stabil. - - - 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. - Putar Musik Judul Permainan:\nJika permainan mendukungnya, aktifkan pemutaran musik khusus saat memilih permainan di 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. - Sembunyikan Kursor:\nPilih kapan kursor akan menghilang:\nTidak Pernah: Anda akan selalu melihat mouse.\nTidak Aktif: Tetapkan waktu untuk menghilang setelah tidak aktif.\nSelalu: Anda tidak akan pernah melihat mouse. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Tetapkan waktu untuk mouse menghilang setelah tidak aktif. - - - 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 - Tidak Pernah - - - Idle - Diam - - - Always - Selalu - - - 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. - Perangkat Grafis:\nPada sistem GPU ganda, pilih GPU yang akan digunakan emulator dari daftar dropdown,\natau pilih "Auto Select" untuk menentukan secara otomatis. - - - 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. - Lebar/Tinggi:\nMenetapkan ukuran jendela emulator saat diluncurkan, yang dapat diubah ukurannya selama permainan.\nIni berbeda dari resolusi dalam permainan. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Aktifkan Pembuangan Shader:\nUntuk tujuan debugging teknis, menyimpan shader permainan ke folder saat mereka dirender. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Aktifkan GPU Null:\nUntuk tujuan debugging teknis, menonaktifkan rendering permainan seolah-olah tidak ada kartu grafis. - - - 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. - Folder Permainan:\nDaftar folder untuk memeriksa permainan yang diinstal. - - - Add:\nAdd a folder to the list. - Tambah:\nTambahkan folder ke daftar. - - - Remove:\nRemove a folder from the list. - Hapus:\nHapus folder dari daftar. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Aktifkan Pembuangan Debug:\nMenyimpan simbol impor dan ekspor serta informasi header file dari program PS4 yang sedang berjalan ke direktori. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Aktifkan Debugging RenderDoc:\nJika diaktifkan, emulator akan menyediakan kompatibilitas dengan Renderdoc untuk memungkinkan pengambilan dan analisis bingkai yang sedang dirender. - - - 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - 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/it_IT.ts b/src/qt_gui/translations/it_IT.ts deleted file mode 100644 index 1bd460d7a..000000000 --- a/src/qt_gui/translations/it_IT.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Riguardo shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 è un emulatore sperimentale open-source per PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Questo programma non dovrebbe essere utilizzato per riprodurre giochi che non vengono ottenuti legalmente. - - - - CheatsPatches - - Cheats / Patches for - Cheats / Patch per - - - 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 - I trucchi e le patch sono sperimentali.\nUtilizzali con cautela.\n\nScarica i trucchi singolarmente selezionando l'archivio e cliccando sul pulsante di download.\nNella scheda Patch, puoi scaricare tutte le patch in una volta sola, scegliere quali vuoi utilizzare e salvare la tua selezione.\n\nPoiché non sviluppiamo i trucchi e le patch,\nper favore segnala i problemi all'autore dei trucchi.\n\nHai creato un nuovo trucco? Visita:\n - - - No Image Available - Nessuna immagine disponibile - - - Serial: - Seriale: - - - Version: - Versione: - - - Size: - Dimensione: - - - Select Cheat File: - Seleziona File Trucchi: - - - Repository: - Archivio: - - - Download Cheats - Scarica trucchi - - - Delete File - Cancella File - - - No files selected. - Nessun file selezionato. - - - You can delete the cheats you don't want after downloading them. - Puoi cancellare i trucchi che non vuoi utilizzare dopo averli scaricati. - - - Do you want to delete the selected file?\n%1 - Vuoi cancellare il file selezionato?\n%1 - - - Select Patch File: - Seleziona File Patch: - - - Download Patches - Scarica Patch - - - Save - Salva - - - Cheats - Trucchi - - - Patches - Patch - - - Error - Errore - - - No patch selected. - Nessuna patch selezionata. - - - Unable to open files.json for reading. - Impossibile aprire il file .json per la lettura. - - - No patch file found for the current serial. - Nessun file patch trovato per il seriale selezionato. - - - Unable to open the file for reading. - Impossibile aprire il file per la lettura. - - - Unable to open the file for writing. - Impossibile aprire il file per la scrittura. - - - Failed to parse XML: - Analisi XML fallita: - - - Success - Successo - - - Options saved successfully. - Opzioni salvate con successo. - - - Invalid Source - Fonte non valida - - - The selected source is invalid. - La fonte selezionata non è valida. - - - File Exists - Il file esiste già - - - File already exists. Do you want to replace it? - Il file è già presente. Vuoi sostituirlo? - - - Failed to save file: - Salvataggio file fallito: - - - Failed to download file: - Scaricamento file fallito: - - - Cheats Not Found - Trucchi non trovati - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Non sono stati trovati trucchi per questa versione del gioco nell'archivio selezionato, prova un altro archivio o una versione diversa del gioco. - - - Cheats Downloaded Successfully - Trucchi scaricati con successo! - - - 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. - Hai scaricato con successo i trucchi per questa versione del gioco dall'archivio selezionato. Puoi provare a scaricare da un altro archivio, se disponibile, puoi anche utilizzarlo selezionando il file dall'elenco. - - - Failed to save: - Salvataggio fallito: - - - Failed to download: - Impossibile scaricare: - - - Download Complete - Scaricamento completo - - - 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. - Patch scaricata con successo! Vengono scaricate tutte le patch disponibili per tutti i giochi, non è necessario scaricarle singolarmente per ogni gioco come nel caso dei trucchi. Se la patch non appare, potrebbe essere che non esista per il numero di serie e la versione specifica del gioco. - - - Failed to parse JSON data from HTML. - Impossibile analizzare i dati JSON dall'HTML. - - - Failed to retrieve HTML page. - Impossibile recuperare la pagina HTML. - - - The game is in version: %1 - Il gioco è nella versione: %1 - - - The downloaded patch only works on version: %1 - La patch scaricata funziona solo sulla versione: %1 - - - You may need to update your game. - Potresti aver bisogno di aggiornare il tuo gioco. - - - Incompatibility Notice - Avviso di incompatibilità - - - Failed to open file: - Impossibile aprire file: - - - XML ERROR: - ERRORE XML: - - - Failed to open files.json for writing - Impossibile aprire i file .json per la scrittura - - - Author: - Autore: - - - Directory does not exist: - La cartella non esiste: - - - Failed to open files.json for reading. - Impossibile aprire i file .json per la lettura. - - - Name: - Nome: - - - Can't apply cheats before the game is started - Non è possibile applicare i trucchi prima dell'inizio del gioco. - - - Close - Chiudi - - - - CheckUpdate - - Auto Updater - Aggiornamento automatico - - - Error - Errore - - - Network error: - Errore di rete: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - L'Aggiornamento Automatico consente fino a 60 controlli di aggiornamento all'ora.\nHai raggiunto questo limite. Riprova più tardi. - - - Failed to parse update information. - Impossibile analizzare le informazioni di aggiornamento. - - - No pre-releases found. - Nessuna anteprima trovata. - - - Invalid release data. - Dati della release non validi. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Avviso:</b><br><br> A partire dalla versione <b>0.12.0</b>, la versione Qt dell’emulatore non riceverà più aggiornamenti diretti.<br><br> Tuttavia, l’interfaccia Qt rimane disponibile tramite il nuovo launcher ufficiale:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – basato sul codice sorgente originale di shadPS4.<br><br>Consigliamo di passare a questo launcher per continuare a ricevere aggiornamenti. - - - Your version is already up to date! - La tua versione è già aggiornata! - - - Update Available - Aggiornamento disponibile - - - Update Channel - Canale di Aggiornamento - - - Current Version - Versione attuale - - - Latest Version - Ultima versione - - - Do you want to update? - Vuoi aggiornare? - - - Show Changelog - Mostra il Changelog - - - Check for Updates at Startup - Controlla aggiornamenti all’avvio - - - Update - Aggiorna - - - No - No - - - Hide Changelog - Nascondi il Changelog - - - Changes - Modifiche - - - Network error occurred while trying to access the URL - Si è verificato un errore di rete durante il tentativo di accesso all'URL - - - Download Complete - Download Completato - - - The update has been downloaded, press OK to install. - L'aggiornamento è stato scaricato, premi OK per installare. - - - Failed to save the update file at - Impossibile salvare il file di aggiornamento in - - - Starting Update... - Inizio Aggiornamento... - - - Failed to create the update script file - Impossibile creare il file di script di aggiornamento - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Recuperando dati di compatibilità, per favore attendere - - - Cancel - Annulla - - - Loading... - Caricamento... - - - Error - Errore - - - Unable to update compatibility data! Try again later. - Impossibile aggiornare i dati di compatibilità! Riprova più tardi. - - - Unable to open compatibility_data.json for writing. - Impossibile aprire compatibility_data.json per la scrittura. - - - Unknown - Sconosciuto - - - Nothing - Niente - - - Boots - Si Avvia - - - Menus - Menu - - - Ingame - In gioco - - - Playable - Giocabile - - - - ControlSettings - - Configure Controls - Configura Comandi - - - D-Pad - Croce direzionale - - - Up - Su - - - Left - Sinistra - - - Right - Destra - - - Down - Giù - - - Left Stick Deadzone (def:2 max:127) - Zona Morta Levetta Sinistra (def:2 max:127) - - - Left Deadzone - Zona Morta Sinistra - - - Left Stick - Levetta Sinistra - - - Config Selection - Selezione Configurazione - - - Common Config - Configurazione Comune - - - Use per-game configs - Usa configurazioni per gioco - - - Face Buttons - Pulsanti Frontali - - - Right Stick Deadzone (def:2, max:127) - Zona Morta Levetta Destra (def:2 max:127) - - - Right Deadzone - Zona Morta Destra - - - Right Stick - Levetta Destra - - - Color Adjustment - Regolazione Colore - - - Override Lightbar Color - Sostituisci Colore Lightbar - - - Override Color - Sostituisci Colore - - - Unable to Save - Impossibile Salvare - - - Cannot bind axis values more than once - Impossibile associare i valori degli assi più di una volta - - - Save - Salva - - - Apply - Applica - - - Restore Defaults - Ripristina Impostazioni Predefinite - - - Cancel - Annulla - - - unmapped - non mappato - - - Options - Opzioni - - - Touchpad Left - Touchpad Sinistra - - - Touchpad Center - Touchpad Centrale - - - Touchpad Right - Touchpad Destra - - - Triangle - Triangolo - - - Square - Quadrato - - - Circle - Cerchio - - - Cross - Croce - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Non è possibile associare più di una volta qualsiasi input univoco. Sono presenti input duplicati mappati ai seguenti pulsanti: - -%1 - - - Press a button - Premi un pulsante - - - Move analog stick - Muovi levetta analogica - - - L1 and L2 - L1 e L2 - - - Active Gamepad - Gamepad Attivo - - - Gamepad ID - ID Gamepad - - - Default Gamepad - Gamepad Predefinito - - - No default selected - Nessun predefinito selezionato - - - n/a - n/a - - - Set Active Gamepad as Default - Imposta Gamepad Attivo come Predefinito - - - Remove Default Gamepad - Rimuovi Gamepad Predefinito - - - R1 and R2 - R1 e R2 - - - ID: - ID: - - - Default Controller Selected - Controller Predefinito Selezionato - - - Active controller set as default - Controller attivo impostato come predefinito - - - Default Controller Removed - Controller Predefinito Rimosso - - - Default controller setting removed - Impostazione predefinita del controller rimossa - - - RED - ROSSO - - - GREEN - VERDE - - - BLUE - BLU - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Modifica le associazioni di input di tastiera + mouse e controller - - - Use Per-Game configs - Usa Configurazioni Per Gioco - - - Error - Errore - - - Could not open the file for reading - Impossibile aprire il file per la lettura - - - Could not open the file for writing - Impossibile aprire il file per la scrittura - - - Save Changes - Salva Modifiche - - - Do you want to save changes? - Vuoi salvare le modifiche? - - - Help - Aiuto - - - Do you want to reset your custom default config to the original default config? - Vuoi reimpostare la configurazione predefinita personalizzata alla configurazione predefinita originale? - - - Do you want to reset this config to your custom default config? - Vuoi reimpostare questa configurazione alla configurazione predefinita personalizzata? - - - Reset to Default - Ripristina a Predefinito - - - - ElfViewer - - Open Folder - Apri Cartella - - - - GameInfoClass - - Loading game list, please wait :3 - Caricamento lista giochi, attendere :3 - - - Cancel - Annulla - - - Loading... - Caricamento... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Scegli cartella - - - Directory to install games - Cartella di installazione dei giochi - - - Browse - Sfoglia - - - Error - Errore - - - Directory to install DLC - Cartella di installazione DLC - - - - GameListFrame - - Icon - Icona - - - Name - Nome - - - Serial - Seriale - - - Compatibility - Compatibilità - - - Region - Regione - - - Firmware - Firmware - - - Size - Dimensione - - - Version - Versione - - - Path - Percorso - - - Play Time - Tempo di Gioco - - - Never Played - Mai Giocato - - - h - o - - - m - m - - - s - s - - - Compatibility is untested - Nessuna informazione sulla compatibilità - - - Game does not initialize properly / crashes the emulator - Il gioco non si avvia in modo corretto / forza chiusura dell'emulatore - - - Game boots, but only displays a blank screen - Il gioco si avvia, ma mostra solo una schermata nera - - - Game displays an image but does not go past the menu - Il gioco mostra immagini ma non va oltre il menu - - - Game has game-breaking glitches or unplayable performance - Il gioco ha problemi gravi di emulazione oppure framerate troppo basso - - - Game can be completed with playable performance and no major glitches - Il gioco può essere completato con buone prestazioni e senza problemi gravi - - - Click to see details on github - Fai clic per vedere i dettagli su GitHub - - - Last updated - Ultimo aggiornamento - - - Favorite - Preferiti - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Crea scorciatoia - - - Cheats / Patches - Trucchi / Patch - - - SFO Viewer - Visualizzatore SFO - - - Trophy Viewer - Visualizzatore Trofei - - - Open Folder... - Apri Cartella... - - - Open Game Folder - Apri Cartella del Gioco - - - Open Save Data Folder - Apri Cartella dei Dati di Salvataggio - - - Open Log Folder - Apri Cartella dei Log - - - Copy info... - Copia informazioni... - - - Copy Name - Copia Nome - - - Copy Serial - Copia Seriale - - - Copy Version - Copia Versione - - - Copy Size - Copia Dimensione - - - Copy All - Copia Tutto - - - Delete... - Elimina... - - - Delete Game - Elimina Gioco - - - Delete Update - Elimina Aggiornamento - - - Delete DLC - Elimina DLC - - - Delete Trophy - Elimina Trofei - - - Compatibility... - Compatibilità... - - - Shortcut creation - Creazione scorciatoia - - - Shortcut created successfully! - Scorciatoia creata con successo! - - - Error - Errore - - - Error creating shortcut! - Errore nella creazione della scorciatoia! - - - Game - Gioco - - - This game has no update to delete! - Questo gioco non ha alcun aggiornamento da eliminare! - - - Update - Aggiornamento - - - This game has no DLC to delete! - Questo gioco non ha alcun DLC da eliminare! - - - DLC - DLC - - - Delete %1 - Elimina %1 - - - Are you sure you want to delete %1's %2 directory? - Sei sicuro di eliminale la cartella %2 di %1? - - - Open Update Folder - Apri Cartella Aggiornamento - - - Delete Save Data - Elimina Dati Salvataggio - - - This game has no update folder to open! - Questo gioco non ha nessuna cartella di aggiornamento da aprire! - - - No log file found for this game! - Nessun file di log trovato per questo gioco! - - - Failed to convert icon. - Impossibile convertire l'icona. - - - This game has no save data to delete! - Questo gioco non ha alcun salvataggio dati da eliminare! - - - This game has no saved trophies to delete! - Questo gioco non ha nessun trofeo salvato da eliminare! - - - Save Data - Dati Salvataggio - - - Trophy - Trofei - - - SFO Viewer for - Visualizzatore SFO per - - - Remove from Favorites - Rimuovi dai Preferiti - - - Add to Favorites - Aggiungi ai preferiti - - - Game-specific Settings... - Impostazioni specifiche del gioco... - - - Configure Game-specific Settings - Configura Impostazioni Specifiche del Gioco - - - Create Game-specific Settings from Global Settings - Crea impostazioni specifiche per il gioco dalle Impostazioni Globali - - - Delete Game-specific Settings - Cancella Impostazioni Specifiche del Gioco - - - Update Database - Aggiorna Database - - - View Report - Visualizza Rapporto - - - Submit a Report - Invia Rapporto - - - Confirm deletion - Conferma eliminazione - - - Delete game-specific settings? - Cancella Impostazioni Specifiche del Gioco? - - - - HelpDialog - - Quickstart - Avvio rapido - - - FAQ - FAQ - - - Syntax - Sintassi - - - Special Bindings - Associazioni Speciali - - - Keybindings - Associazioni dei pulsanti - - - - Hotkeys - - Customize Hotkeys - Personalizza Scorciatoie - - - Controller Hotkeys - Scorciatoie Controller - - - Show FPS Counter - Mostra Contatore FPS - - - unmapped - non mappato - - - Quit Emulation - Abbandona L'Emulazione - - - Reload Button Mappings - Ricarica Mappatura Pulsanti - - - Toggle Fullscreen - Attiva/Disattiva Schermo Intero - - - Toggle Pause - Attiva/Disattiva Pausa - - - Keyboard Hotkeys - Scorciatoie Da Tastiera - - - Renderdoc Capture (for debugging only) - Cattura Renderdoc (solo per debug) - - - Toggle Mouse to Joystick Emulation - Attiva/disattiva l'emulazione dal Mouse al Joystick - - - Toggle Mouse to Gyro Emulation - Attiva/disattiva l'emulazione dal Mouse al Giroscopio - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Suggerimento: Per ogni scorciatoia possono essere assegnati fino a tre comandi contemporaneamente - - - Save - Salva - - - Apply - Applica - - - Cancel - Annulla - - - Restore Defaults - Ripristina Impostazioni Predefinite - - - Unable to Save - Impossibile Salvare - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Non è possibile associare più di una volta qualsiasi input univoco. Sono presenti input duplicati mappati ai seguenti pulsanti: - -%1 - - - Waiting for inputs - In attesa di input - - - - KBMSettings - - Configure Controls - Configura Comandi - - - D-Pad - Croce direzionale - - - Up - Su - - - unmapped - non mappato - - - Left - Sinistra - - - Right - Destra - - - Down - Giù - - - Left Analog Halfmode - Mezza Modalità Analogico Sinistra - - - hold to move left stick at half-speed - tieni premuto per muovere la levetta analogica sinistra a metà velocità - - - Left Stick - Levetta Sinistra - - - Config Selection - Selezione Configurazione - - - Common Config - Configurazione Comune - - - Use per-game configs - Usa configurazioni per gioco - - - Text Editor - Editor Testuale - - - Help - Aiuto - - - Mouse to Joystick - Mouse a Joystick - - - *press F7 ingame to activate - *premere F7 in gioco per attivare - - - Options - Opzioni - - - Mouse Movement Parameters - Parametri Movimento Del Mouse - - - note: click Help Button/Special Keybindings for more information - nota: cliccare sul Pulsante Aiuto/Associazioni Speciali dei Tasti per maggiori informazioni - - - Face Buttons - Pulsanti Frontali - - - Triangle - Triangolo - - - Square - Quadrato - - - Circle - Cerchio - - - Cross - Croce - - - Right Analog Halfmode - Mezza Modalità Analogico Destra - - - hold to move right stick at half-speed - tieni premuto per muovere la levetta analogica destra a metà velocità - - - Right Stick - Levetta Destra - - - Speed Offset (def 0.125): - Scostamento Velocità (def 0,125): - - - Copy from Common Config - Copia da Configurazione Comune - - - Deadzone Offset (def 0.50): - Scostamento Zona Morta (def 0,50): - - - Speed Multiplier (def 1.0): - Moltiplicatore Di Velocità (def 1,0): - - - Common Config Selected - Configurazione Comune Selezionata - - - 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. - Questo pulsante copia le mappature dalla Configurazione Comune al profilo attualmente selezionato, e non può essere usato quando il profilo attualmente selezionato è Configurazione Comune. - - - Copy values from Common Config - Copia valori da Configurazione Comune - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Vuoi sovrascrivere le mappature esistenti con le mappature dalla Configurazione Comune? - - - Unable to Save - Impossibile Salvare - - - Press a key - Premi un tasto - - - Cannot set mapping - Impossibile impostare la mappatura - - - Mousewheel cannot be mapped to stick outputs - La rotella del mouse non può essere associata ai comandi della levetta analogica - - - Save - Salva - - - Apply - Applica - - - Restore Defaults - Ripristina Impostazioni Predefinite - - - Cancel - Annulla - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Non è possibile associare più di una volta qualsiasi input univoco. Sono presenti input duplicati mappati ai seguenti pulsanti: - -%1 - - - Touchpad Left - Touchpad Sinistra - - - Touchpad Center - Touchpad Centrale - - - Touchpad Right - Touchpad Destra - - - - LogPresetsDialog - - Log Filter Presets - Preimpostazioni Filtro del Log - - - Comment - Commento - - - Filter - Filtro - - - Load - Carica - - - Close - Chiudi - - - Add a new preset after the selected row - Aggiunge una nuova preimpostazione dopo la riga selezionata - - - Remove selected presets - Rimuovi la preimpostazione selezionata - - - Load the selected preset - Carica la preimpostazione selezionata - - - - MainWindow - - Open/Add Elf Folder - Apri/Aggiungi cartella Elf - - - Boot Game - Avvia Gioco - - - Check for Updates - Controlla aggiornamenti - - - About shadPS4 - Riguardo a shadPS4 - - - Configure... - Configura... - - - Recent Games - Giochi Recenti - - - Open shadPS4 Folder - Apri Cartella shadps4 - - - Exit - Uscita - - - Exit shadPS4 - Esci da shadPS4 - - - Exit the application. - Esci dall'applicazione. - - - Show Game List - Mostra Lista Giochi - - - Game List Refresh - Aggiorna Lista Giochi - - - Tiny - Minuscolo - - - Small - Piccolo - - - Medium - Medio - - - Large - Grande - - - List View - Visualizzazione Lista - - - Grid View - Visualizzazione Griglia - - - Elf Viewer - Visualizzatore Elf - - - Game Install Directory - Cartella Installazione Giochi - - - Download Cheats/Patches - Scarica Trucchi/Patch - - - Dump Game List - Scarica Lista Giochi - - - Trophy Viewer - Visualizzatore Trofei - - - No games found. Please add your games to your library first. - Nessun gioco trovato. Aggiungi prima i tuoi giochi alla tua libreria. - - - Search... - Cerca... - - - File - File - - - View - Visualizza - - - Game List Icons - Icone Lista Giochi - - - Game List Mode - Modalità Lista Giochi - - - Settings - Impostazioni - - - Utils - Utilità - - - Themes - Temi - - - Help - Aiuto - - - Dark - Scuro - - - Light - Chiaro - - - Green - Verde - - - Blue - Blu - - - Violet - Viola - - - toolBar - Barra strumenti - - - Game List - Elenco giochi - - - Download Cheats For All Installed Games - Scarica Trucchi per tutti i giochi installati - - - Download Patches For All Games - Scarica Patch per tutti i giochi - - - Download Complete - Download completato - - - You have downloaded cheats for all the games you have installed. - Hai scaricato trucchi per tutti i giochi installati. - - - Patches Downloaded Successfully! - Patch scaricate con successo! - - - All Patches available for all games have been downloaded. - Tutte le patch disponibili per tutti i giochi sono state scaricate. - - - Games: - Giochi: - - - ELF files (*.bin *.elf *.oelf) - File ELF (*.bin *.elf *.oelf) - - - Game Boot - Avvia Gioco - - - Only one file can be selected! - Si può selezionare solo un file! - - - Run Game - Esegui Gioco - - - Eboot.bin file not found - File Eboot.bin non trovato - - - Game is already running! - Il gioco è già in esecuzione! - - - shadPS4 - shadPS4 - - - Play - Riproduci - - - Pause - Pausa - - - Stop - Arresta - - - Restart - Riavvia - - - Full Screen - Schermo Intero - - - Controllers - Controller - - - Keyboard - Tastiera - - - Refresh List - Aggiorna Lista - - - Resume - Riprendi - - - Show Labels Under Icons - Mostra Etichette Sotto Icone - - - Customize Hotkeys - Personalizza Scorciatoie - - - - SettingsDialog - - Settings - Impostazioni - - - General - Generale - - - System - Sistema - - - Console Language - Lingua della console - - - Emulator Language - Lingua dell'emulatore - - - Default tab when opening settings - Scheda predefinita all'apertura delle impostazioni - - - Show Game Size In List - Mostra la dimensione del gioco nell'elenco - - - Enable Discord Rich Presence - Abilita Discord Rich Presence - - - Username - Nome Utente - - - Trophy Key - Chiave Trofei - - - Trophy - Trofei - - - Open the custom trophy images/sounds folder - Apri la cartella personalizzata delle immagini/suoni dei trofei - - - Logger - Registro - - - Log Type - Tipo di Log - - - Log Filter - Filtro Log - - - Open Log Location - Apri posizione del registro - - - Input - Input - - - Cursor - Cursore - - - Hide Cursor - Nascondi Cursore - - - Hide Cursor Idle Timeout - Timeout inattività per nascondere il cursore - - - Microphone - Microfono - - - None - Nessuno - - - Default Device - Periferica Predefinita - - - s - s - - - Controller - Controller - - - Graphics - Grafica - - - GUI - Interfaccia - - - User - Utente - - - Graphics Device - Scheda Grafica - - - Advanced - Avanzate - - - Enable Shaders Dumping - Abilita Dump Shader - - - Enable NULL GPU - Abilita NULL GPU - - - Enable HDR - Abilita HDR - - - Paths - Percorsi - - - Game Folders - Cartelle di gioco - - - Add... - Aggiungi... - - - Remove - Rimuovi - - - Debug - Debug - - - Enable Debug Dumping - Abilita Debug Dumping - - - Enable Vulkan Validation Layers - Abilita Vulkan Validation Layers - - - Enable Vulkan Synchronization Validation - Abilita Vulkan Synchronization Validation - - - Enable RenderDoc Debugging - Abilita RenderDoc Debugging - - - Enable Crash Diagnostics - Abilita Diagnostica Crash - - - Collect Shaders - Raccogli Shaders - - - Copy GPU Buffers - Copia Buffer GPU - - - Host Debug Markers - Marcatori di Debug dell'Host - - - Guest Debug Markers - Marcatori di Debug del Guest - - - Enable Readbacks - Abilita Readback - - - Enable Readback Linear Images - Abilita Immagini Lineari Di Readback - - - Update - Aggiornamento - - - Check for Updates at Startup - Verifica aggiornamenti all’avvio - - - Always Show Changelog - Mostra sempre il changelog - - - Update Channel - Canale di Aggiornamento - - - Check for Updates - Controlla aggiornamenti - - - Title Music - Musica del Titolo - - - Disable Trophy Notification - Disabilita Notifiche Trofei - - - Background Image - Immagine di Sfondo - - - Show Background Image - Mostra l'Immagine dello Sfondo - - - Opacity - Opacità - - - Play title music - Riproduci musica del titolo - - - Update Compatibility Database On Startup - Aggiorna Database Compatibilità all'Avvio - - - Game Compatibility - Compatibilità Gioco - - - Display Compatibility Data - Mostra Dati Compatibilità - - - Update Compatibility Database - Aggiorna Database Compatibilità - - - Volume - Volume - - - Save - Salva - - - Apply - Applica - - - Restore Defaults - Ripristina Impostazioni Predefinite - - - Close - Chiudi - - - Point your mouse at an option to display its description. - Sposta il mouse su un'opzione per visualizzarne la descrizione. - - - 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. - Lingua della Console:\nImposta la lingua utilizzata dal gioco PS4.\nÈ consigliabile impostare questa su una lingua supportata dal gioco, che può variare a seconda della regione. - - - Emulator Language:\nSets the language of the emulator's user interface. - Lingua dell'Emulatore:\nImposta la lingua dell'interfaccia utente dell'emulatore. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Mostra Schermata di Avvio:\nMostra la schermata di avvio del gioco (un'immagine speciale) mentre il gioco si sta avviando. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Abilita Discord Rich Presence:\nMostra l'icona dell'emulatore e informazioni pertinenti sul tuo profilo Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Nome Utente:\nImposta il nome utente dell'account PS4, che potrebbe essere visualizzato da alcuni giochi. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Chiave Trofei:\nChiave utilizzata per la decrittazione dei trofei. Deve essere estratta dalla vostra console con jailbreak.\nDeve contenere solo caratteri esadecimali. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Tipo di Log:\nImposta se sincronizzare l'output della finestra di log per le prestazioni. Potrebbe avere effetti avversi sull'emulazione. - - - 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. - Filtro Log:\nFiltra il log per stampare solo informazioni specifiche.\nEsempi: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Livelli: Trace, Debug, Info, Warning, Error, Critical - in questo ordine, un livello specifico silenzia tutti i livelli precedenti nell'elenco e registra ogni livello successivo. - - - 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. - Aggiornamento:\nRilascio: Versioni ufficiali rilasciate ogni mese che possono essere molto obsolete, ma sono più affidabili e testati.\nNotturno: Le versioni di sviluppo che hanno tutte le ultime funzionalità e correzioni, ma possono contenere bug e sono meno stabili. - - - Background Image:\nControl the opacity of the game background image. - Immagine di sfondo:\nControlla l'opacità dell'immagine di sfondo del gioco. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Riproduci Musica del Titolo:\nSe un gioco lo supporta, attiva la riproduzione di musica speciale quando selezioni il gioco nell'interfaccia grafica. - - - 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). - Disabilita Notifica Trofei:\nDisabilita notifiche in gioco dei trofei. Il progresso dei Trofei può ancora essere controllato con il Visualizzatore Trofei (clicca tasto destro sul gioco nella finestra principale). - - - 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. - Nascondi cursore:\nScegli quando il cursore scomparirà:\nMai: Vedrai sempre il mouse.\nInattivo: Imposta un tempo per farlo scomparire dopo essere stato inattivo.\nSempre: non vedrai mai il mouse. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Imposta un tempo affinché il mouse scompaia dopo essere stato inattivo. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Mostra Dati Compatibilità:\nMostra informazioni sulla compatibilità del gioco nella visualizzazione lista. Abilita "Aggiorna Compatiblità all'Avvio" per ottenere informazioni aggiornate. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Aggiorna Compatibilità all'Avvio:\nAggiorna automaticamente il database della compatibilità quando si avvia shadps4. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Aggiorna Database Compatibilità:\nAggiorna immediatamente il database di compatibilità. - - - Never - Mai - - - Idle - Inattivo - - - Always - Sempre - - - 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. - Dispositivo Grafico:\nIn sistemi con più GPU, seleziona la GPU che l'emulatore utilizzerà dall'elenco a discesa,\no seleziona "Selezione Automatica" per determinarlo automaticamente. - - - 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. - Larghezza/Altezza:\nImposta la dimensione della finestra dell'emulatore all'avvio, che può essere ridimensionata durante il gioco.\nQuesto è diverso dalla risoluzione in gioco. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Abilita Pompaggio Shader:\nPer scopi di debug tecnico, salva gli shader dei giochi in una cartella mentre vengono resi. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Abilita GPU Null:\nPer scopi di debug tecnico, disabilita il rendering del gioco come se non ci fosse alcuna scheda grafica. - - - 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. - Abilita HDR:\nAbilita HDR nei giochi che lo supportano.\nIl tuo monitor deve avere il supporto per lo spazio colore BT2020 PQ e il formato swapchain RGB10A2. - - - Game Folders:\nThe list of folders to check for installed games. - Cartelle di Gioco:\nL'elenco delle cartelle da controllare per i giochi installati. - - - Add:\nAdd a folder to the list. - Aggiungi:\nAggiungi una cartella all'elenco. - - - Remove:\nRemove a folder from the list. - Rimuovi:\nRimuovi una cartella dall'elenco. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Abilita Pompaggio di Debug:\nSalva i simboli di importazione ed esportazione e le informazioni sull'intestazione del file del programma PS4 attualmente in esecuzione in una directory. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Abilita Debugging RenderDoc:\nSe abilitato, l'emulatore fornirà compatibilità con Renderdoc per consentire la cattura e l'analisi del frame attualmente reso. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Raccogli Shader:\nBisogna attivare questa opzione per poter modificare gli shader nel menu di debug (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Abilita Readbacks:\nAbilita letture di memoria GPU e writebacks.\nQuesto è necessario per un comportamento corretto in alcuni giochi.\nPotrebbe causare problemi di stabilità e/o prestazioni. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Abilita le immagini lineari di Readback:\nConsente il download asincronico delle immagini lineari modificate dalla GPU.\nPotrebbe risolvere problemi grafici in alcuni giochi. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Copia Buffer GPU:\nCerca di aggirare le race conditions che riguardano gli invii alla GPU.\nPotrebbe aiutare ad evitare crash che riguardano i PM4 di tipo 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. - Marcatori di Debug dell'Host:\nInserisce nel log informazioni ottenute dall'emulatore come ad esempio marcatori per comandi specifici AMDGPU quando si hanno comandi Vulkan e associa nomi di debug per le risorse.\nSe hai questa opzione abilitata dovresti abilitare anche Diagnostica Crash.\nUtile per programmi come 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. - Marcatori di Debug del Guest:\nInserisce nel log marcatori di debug che il gioco stesso ha aggiunto al buffer dei comandi.\nSe hai abilitato questa opzione dovresti abilitare anche Diagnostica Crash.\nUtile per programmi come RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Percorso Dati Salvataggio:\n La cartella dove verranno archiviati i salvataggi di gioco. - - - Browse:\nBrowse for a folder to set as the save data path. - Esplora:\nEsplora una cartella da impostare come percorso dati di salvataggio. - - - Release - Rilascio - - - Nightly - Nightly - - - Set the volume of the background music. - Imposta il volume della musica di sottofondo. - - - Enable Motion Controls - Abilita Controlli Di Movimento - - - Save Data Path - Percorso Dati Salvataggio - - - Browse - Sfoglia - - - async - Non sincronizzato - - - sync - Sincronizzato - - - Auto Select - Selezione Automatica - - - Directory to install games - Cartella di installazione dei giochi - - - Directory to save data - Cartella per salvare i dati - - - Video - Video - - - Display Mode - Modalità di visualizzazione - - - Windowed - In finestra - - - Fullscreen - Schermo Intero - - - Fullscreen (Borderless) - Schermo Intero (Senza Bordi) - - - Window Size - Dimensione Finestra - - - W: - L: - - - H: - A: - - - Separate Log Files - File Di Registro Separati - - - Separate Log Files:\nWrites a separate logfile for each game. - File di registro separati:\nScrive un file di registro separato per ogni gioco. - - - Trophy Notification Position - Posizione Notifica Trofei - - - Left - Sinistra - - - Right - Destra - - - Top - In alto - - - Bottom - In basso - - - Notification Duration - Durata Notifica - - - Portable User Folder - Cartella Utente Portatile - - - Create Portable User Folder from Common User Folder - Crea una Cartella Utente Portatile dalla Cartella Comune Utente - - - 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. - Cartella utente portatile:\nMemorizza le impostazioni e i dati shadPS4 che saranno applicati solo alla build shadPS4 situata nella cartella attuale. Riavviare l'applicazione dopo aver creato la cartella utente portatile per iniziare a usarla. - - - Cannot create portable user folder - Impossibile creare la cartella utente portatile - - - %1 already exists - %1: esiste già - - - Portable user folder created - Cartella utente portatile creata - - - %1 successfully created. - %1 creato con successo. - - - 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. - Apri la cartella personalizzata delle immagini/suoni trofei:\nÈ possibile aggiungere immagini personalizzate ai trofei e un audio.\nAggiungi i file a custom_trophy con i seguenti nomi:\ntrophy.wav OPPURE trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNota: Il suono funzionerà solo nelle versioni QT. - - - * Unsupported Vulkan Version - * Versione Vulkan non supportata - - - Experimental Features - Funzionalità Sperimentali - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - ATTENZIONE: Queste funzionalità sono sperimentali e non dovrebbero essere abilitate a meno che non sia stato indicato o che un gioco lo richieda. Si prega di chiedere informazioni nel server Discord shadPS4 se si è in dubbio. - - - Enable Background Controller Input - Abilita Input del Controller in Secondo Piano - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Abilita Input del Controller in Secondo Piano:\nPermette a shadPS4 di ricevere comandi dal controller quando la finestra di gioco non è in primo piano. - - - 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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - Diagnostica Crash:\nCrea un file .yaml che contiene informazioni riguardo lo stato del renderer Vulkan nel momento in cui si verifica un crash.\nUtile per poter effettuare il debug degli errori di tipo 'Device Lost'. Se hai questa opzione attiva dovresti abilitare anche Marcatori di Debug Host e Guest. \nVulkan Validation Layers deve essere abilitato e bisogna aver installato l'SDK Vulkan per poter utilizzare questa funzione. - - - Enable Logging - Abilita Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Abilita Logginge:\nAbilita il log.\nNon cambiarlo se non sai cosa stai facendo!\nQuando chiedi supporto, assicurati che questa impostazione sia abilitata. - - - Present Mode - Modalità Presentazione - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediato (Vsync Disabilitato) - - - DLC Folder - Cartella DLC - - - Select the DLC folder - Seleziona la cartella DLC - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Modalità presentazione:\nConfigura come sarà presentato l'output video a schermo.\n\nMailbox: i frame si sincronizzano con la frequenza di aggiornamento dello schermo. I nuovi frame sostituiranno tutti i frame in sospeso. Riduce la latenza, ma può saltare frame se l'esecuzione del rendering è lenta.\nFifo: i frame si sincronizzano con la frequenza di aggiornamento del tuo schermo. I nuovi frame saranno accodati dietro i frame in sospeso. Assicura che tutti i fotogrammi siano presentati, ma potrebbe aumentare la latenza.\nImmediato: i fotogrammi sono immediatamente presentati sullo schermo quando sono pronti. Può causare tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - Percorso DLC:\nLa cartella da cui sono caricati i dati DLC. - - - Browse:\nBrowse for a folder to set as the DLC path. - Esplora:\nEsplora una cartella da impostare come percorso dati DLC. - - - FSR Settings - Impostazioni FSR - - - Enable FSR - Abilita FSR - - - Enable RCAS (sharpening) - Abilita RCAS (nitidezza) - - - RCAS Attenuation: - Attenuazione RCAS: - - - Load Presets... - Carica preimpostazione... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Apri la posizione del Log:\nApri la cartella in cui viene salvato il file di registro. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microfono:\nNessuno: Non utilizza il microfono.\nDispositivo predefinito: Utilizzerà il dispositivo predefinito del sistema.\nO scegli manualmente il microfono da usare dall'elenco. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nRegola il volume dei giochi a livello globale, il valore va dallo 0-500% con valore predefinito al 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Scheda predefinita quando si aprono le impostazioni:\nScegli quale scheda verrà aperta, il valore predefinito è Generale. - - - Show Game Size In List:\nThere is the size of the game in the list. - Mostra la dimensione del gioco Nell'elenco:\nMostra la dimensione del gioco nell'elenco. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Abilita Motion Control:\nQuando abilitato utilizzerà il Motion Control del controller se supportato dal gioco. - - - Vblank Frequency - Frequenza Vblank - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change! - Frequenza Vblank:\nIl frame rate col quale l'emulatore si aggiorna (60 Hz è l'impostazione predefinita, sia che il gioco giri a 30 o 60 fps). Cambiare questa impostazione potrebbe avere effetti avversi, come aumento della velocità del gioco o malfunzionamento di funzionalità critiche dei giochi che non prevedono questa modifica! - - - Enable Direct Memory Access - Abilita Accesso Diretto Alla Memoria - - - Enable Devkit Console Mode - Abilita Modalità Console Devkit - - - Set "PSN signed-in" to True - Imposta "accesso PSN" come Abilitato - - - Set "Network Connected" to True - Imposta "Connessione di Rete" come Abilitato - - - Miscellaneous - Varie - - - Frontend - Interfaccia - - - Experimental - Sperimentale - - - Show Splash Screen When Launching Game - Mostra Schermata Iniziale quando si Avvia un Gioco - - - General Frontend Settings - Impostazioni Generali Interfaccia - - - Enable PS4 Neo Mode - Abilita Modalità PS4 Pro - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Abilita Accesso Diretto alla Memoria:\nConsente l'accesso arbitrario alla memoria dalla GPU a quella della CPU. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Abilita la modalità Ps4 Pro:\nAggiunge il supporto per l'emulazione di PS4 Pro e della memoria della stessa modalità. Attualmente causa instabilità in un gran numero di giochi testati. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Abilita Modalità Console Devkit:\nAggiunge il supporto per la dimensione della memoria console Devkit. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Imposta Connessione alla Rete come Abilitata:\nForza i giochi a rilevare una connessione di rete attiva. Le funzionalità online non sono ancora supportate. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Imposta Connessione al PSN come Abilitata:\nForza i giochi a rilevare una connessione al PSN attiva. Le funzionalità PSN non sono ancora supportate. - - - 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.\nYou need the Vulkan SDK for this to work. - Abilita Livelli di Validazione Vulkan:\nAbilita un sistema che convalida lo stato del renderer Vulkan e registra le informazioni sul suo stato interno.\nQuesto ridurrà le prestazioni e probabilmente cambierà il comportamento dell'emulazione.\nHa bisogno dell'SDK Vulkan per funzionare. - - - 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.\nYou need the Vulkan SDK for this to work. - Abilita Validazione della Sincronizzazione Vulkan:\nAbilita un sistema che convalida il timing delle attività di rendering Vulkan. Ciò ridurrà le prestazioni e probabilmente cambierà il comportamento dell' emulazione. Ha bisogno dell'SDK Vulkan per funzionare. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Visualizzatore Trofei - - - Select Game: - Seleziona Gioco: - - - Progress - Progresso - - - Show Earned Trophies - Mostra Trofei Guadagnati - - - Show Not Earned Trophies - Mostra Trofei Non Guadagnati - - - Show Hidden Trophies - Mostra Trofei Nascosti - - - diff --git a/src/qt_gui/translations/ja_JP.ts b/src/qt_gui/translations/ja_JP.ts deleted file mode 100644 index 162170198..000000000 --- a/src/qt_gui/translations/ja_JP.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - shadPS4について - - - 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. - 非正規、非合法のゲームをプレイするためにこのソフトウェアを使用しないでください。 - - - - CheatsPatches - - 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「Patches」タブでは、すべてのパッチを一度にダウンロードし、使用したいものを選択して選択を保存できます。\n\nチート/パッチは開発を行っていないため、\n問題があればチートの作者に報告してください。\n\n新しいチートを作成しましたか?\n を訪問してください。 - - - No Image Available - 画像は利用できません - - - Serial: - シリアル: - - - Version: - バージョン: - - - Size: - サイズ: - - - Select Cheat File: - チートファイルを選択: - - - Repository: - リポジトリ: - - - Download Cheats - チートをダウンロード - - - Delete File - ファイルを削除 - - - 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 - - - Select Patch File: - パッチファイルを選択: - - - Download Patches - パッチをダウンロード - - - Save - 保存 - - - Cheats - チート - - - Patches - パッチ - - - Error - エラー - - - No patch selected. - パッチが選択されていません。 - - - Unable to open files.json for reading. - 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の解析に失敗しました: - - - Success - 成功 - - - Options saved successfully. - オプションが正常に保存されました。 - - - Invalid Source - 無効なソース - - - The selected source is invalid. - 選択されたソースは無効です。 - - - File Exists - ファイルが存在します - - - 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 - ダウンロード完了 - - - 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データの解析に失敗しました。 - - - Failed to retrieve HTML page. - HTMLページの取得に失敗しました。 - - - The game is in version: %1 - ゲームのバージョン: %1 - - - The downloaded patch only works on version: %1 - ダウンロードしたパッチはバージョン: %1 のみ機能します - - - You may need to update your game. - ゲームを更新する必要があるかもしれません。 - - - Incompatibility Notice - 互換性のない通知 - - - Failed to open file: - ファイルを開くのに失敗しました: - - - XML ERROR: - XMLエラー: - - - Failed to open files.json for writing - files.jsonを読み取りのために開く事が出来ませんでした。 - - - Author: - 著者: - - - Directory does not exist: - ディレクトリが存在しません: - - - Failed to open files.json for reading. - files.jsonを読み取りのために開く事が出来ませんでした。 - - - Name: - 名前: - - - Can't apply cheats before the game is started - ゲームが開始される前にチートを適用することはできません。 - - - Close - 閉じる - - - - CheckUpdate - - Auto Updater - 自動アップデーター - - - Error - エラー - - - Network error: - ネットワークエラー: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - 自動アップデーターは1時間に最大60回の更新チェックを許可します。\nこの制限に達しました。後でもう一度お試しください。 - - - Failed to parse update information. - アップデート情報の解析に失敗しました。 - - - No pre-releases found. - プレリリースは見つかりませんでした。 - - - Invalid release data. - リリースデータが無効です。 - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>通知:</b><br><br> バージョン <b>0.12.0</b> 以降、エミュレータの Qt バージョンは直接のアップデートを受け取らなくなります。<br><br> ただし、Qt インターフェースは新しい公式ランチャーを通じて引き続き利用可能です:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – オリジナルの shadPS4 ソースコードを基にしています。<br><br> このランチャーに切り替えて、更新の受信を継続することをお勧めします。 - - - Your version is already up to date! - あなたのバージョンはすでに最新です! - - - Update Available - アップデートがあります - - - Update Channel - アップデートチャネル - - - Current Version - 現在のバージョン - - - Latest Version - 最新バージョン - - - Do you want to update? - アップデートしますか? - - - Show Changelog - 変更ログを表示 - - - Check for Updates at Startup - 起動時に更新確認 - - - Update - アップデート - - - No - いいえ - - - Hide Changelog - 変更ログを隠す - - - Changes - 変更点 - - - Network error occurred while trying to access the URL - URLにアクセス中にネットワークエラーが発生しました - - - Download Complete - ダウンロード完了 - - - The update has been downloaded, press OK to install. - アップデートがダウンロードされました。インストールするにはOKを押してください。 - - - Failed to save the update file at - 更新ファイルの保存に失敗しました - - - Starting Update... - アップデートを開始しています... - - - Failed to create the update script file - アップデートスクリプトファイルの作成に失敗しました - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - 互換性データを取得しています。少々お待ちください。 - - - Cancel - キャンセル - - - Loading... - 読み込み中... - - - Error - エラー - - - Unable to update compatibility data! Try again later. - 互換性データを更新できませんでした!後で再試行してください。 - - - Unable to open compatibility_data.json for writing. - compatibility_data.jsonを開いて書き込むことができませんでした。 - - - Unknown - 不明 - - - Nothing - 何もない - - - Boots - ブーツ - - - Menus - メニュー - - - Ingame - ゲーム内 - - - Playable - プレイ可能 - - - - ControlSettings - - Configure Controls - コントロール設定 - - - D-Pad - 十字キー - - - Up - - - - Left - - - - Right - - - - Down - - - - Left Stick Deadzone (def:2 max:127) - 左スティックデッドゾーン(既定:2 最大:127) - - - Left Deadzone - 左デッドゾーン - - - Left Stick - 左スティック - - - Config Selection - Config Selection - - - Common Config - Common Config - - - Use per-game configs - ゲームごとの設定を使用する - - - Face Buttons - Face Buttons - - - Right Stick Deadzone (def:2, max:127) - 右スティックデッドゾーン(既定:2, 最大:127) - - - Right Deadzone - 右デッドゾーン - - - Right Stick - 右スティック - - - Color Adjustment - 色調整 - - - Override Lightbar Color - ライトバーの色の上書き - - - Override Color - 色を変更 - - - Unable to Save - 保存できませんでした - - - Cannot bind axis values more than once - Cannot bind axis values more than once - - - Save - 保存 - - - Apply - 適用 - - - Restore Defaults - デフォルトに戻す - - - Cancel - キャンセル - - - unmapped - マッピングなし - - - Options - OPTIONS - - - Touchpad Left - 左タッチパッド - - - Touchpad Center - タッチパッド中央 - - - Touchpad Right - 右タッチパッド - - - Triangle - - - - Square - - - - Circle - - - - Cross - - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - ボタンを押してください - - - Move analog stick - アナログスティックを動かす - - - L1 and L2 - L1とL2 - - - Active Gamepad - アクティブなゲームパッド - - - Gamepad ID - ゲームパッド ID - - - Default Gamepad - デフォルトのゲームパッド - - - No default selected - No default selected - - - n/a - なし - - - Set Active Gamepad as Default - アクティブなゲームパッドをデフォルトに設定 - - - Remove Default Gamepad - デフォルトのゲームパッドを削除 - - - R1 and R2 - R1 と R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - - - - GREEN - - - - BLUE - - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Edit Keyboard + Mouse and Controller input bindings - - - Use Per-Game configs - ゲームごとの設定を使用する - - - 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 - 変更を保存 - - - Do you want to save changes? - 変更を保存しますか? - - - 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 - デフォルトに戻す - - - - ElfViewer - - Open Folder - フォルダを開く - - - - GameInfoClass - - Loading game list, please wait :3 - ゲームリストを読み込み中です。しばらくお待ちください :3 - - - Cancel - キャンセル - - - Loading... - 読み込み中... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - ディレクトリを選択 - - - Directory to install games - ゲームをインストールするディレクトリ - - - Browse - 参照 - - - Error - エラー - - - Directory to install DLC - DLCをインストールするディレクトリ - - - - GameListFrame - - Icon - アイコン - - - Name - 名前 - - - Serial - シリアル - - - Compatibility - 互換性 - - - Region - 地域 - - - Firmware - ファームウェア - - - Size - サイズ - - - Version - バージョン - - - Path - パス - - - Play Time - プレイ時間 - - - Never Played - 未プレイ - - - h - 時間 - - - m - - - - s - - - - Compatibility is untested - 互換性は未検証です - - - Game does not initialize properly / crashes the emulator - ゲームが正常に初期化されない/エミュレーターがクラッシュする - - - Game boots, but only displays a blank screen - ゲームは起動しますが、空のスクリーンが表示されます - - - Game displays an image but does not go past the menu - 正常にゲーム画面が表示されますが、メニューから先に進むことができません - - - Game has game-breaking glitches or unplayable performance - ゲームを壊すような不具合や、プレイが不可能なほどのパフォーマンスの問題があります - - - Game can be completed with playable performance and no major glitches - パフォーマンスに問題はなく、大きな不具合なしでゲームをプレイすることができます - - - Click to see details on github - 詳細を見るにはGitHubをクリックしてください - - - Last updated - 最終更新 - - - Favorite - お気に入り - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - ショートカットを作成 - - - Cheats / Patches - チート / パッチ - - - SFO Viewer - SFOビューワー - - - Trophy Viewer - トロフィービューワー - - - Open Folder... - フォルダを開く... - - - Open Game Folder - ゲームフォルダを開く - - - Open Save Data Folder - セーブデータフォルダを開く - - - Open Log Folder - ログフォルダを開く - - - Copy info... - 情報をコピー... - - - Copy Name - 名前をコピー - - - Copy Serial - シリアルをコピー - - - Copy Version - バージョンをコピー - - - Copy Size - サイズをコピー - - - Copy All - すべてコピー - - - Delete... - 削除... - - - Delete Game - ゲームを削除 - - - Delete Update - アップデートを削除 - - - Delete DLC - DLCを削除 - - - Delete Trophy - トロフィーを削除 - - - Compatibility... - 互換性... - - - Shortcut creation - ショートカットの作成 - - - Shortcut created successfully! - ショートカットが正常に作成されました! - - - Error - エラー - - - Error creating shortcut! - ショートカットの作成に失敗しました! - - - Game - ゲーム - - - This game has no update to delete! - このゲームにはアップデートがないため削除することができません! - - - Update - アップデート - - - This game has no DLC to delete! - このゲームにはDLCがないため削除することができません! - - - DLC - DLC - - - Delete %1 - %1 を削除 - - - Are you sure you want to delete %1's %2 directory? - %1 の %2 ディレクトリを本当に削除しますか? - - - Open Update Folder - アップデートフォルダを開く - - - Delete Save Data - セーブデータを削除 - - - This game has no update folder to open! - このゲームにはアップデートフォルダがありません! - - - No log file found for this game! - このゲームのログファイルが見つかりませんでした! - - - Failed to convert icon. - アイコンの変換に失敗しました。 - - - This game has no save data to delete! - このゲームには削除するセーブデータがありません! - - - This game has no saved trophies to delete! - このゲームには削除できるトロフィーが保存されていません! - - - Save Data - Save Data - - - Trophy - トロフィー - - - SFO Viewer for - SFO Viewer for - - - Remove from Favorites - お気に入りから削除 - - - Add to Favorites - お気に入りへ追加 - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - データベースを更新 - - - View Report - レポートを見る - - - Submit a Report - レポートを送信 - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - ゲーム固有の設定を削除しますか? - - - - HelpDialog - - Quickstart - クイックスタート - - - FAQ - FAQ - - - Syntax - シンタックス - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - ホットキーのカスタマイズ - - - Controller Hotkeys - コントローラーホットキー - - - Show FPS Counter - FPSカウンターを表示 - - - unmapped - unmapped - - - Quit Emulation - エミュレーションを終了 - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - 全画面表示の切り替え - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdocキャプチャ(デバッグ用) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - 保存 - - - Apply - 適用 - - - Cancel - キャンセル - - - Restore Defaults - デフォルトに戻す - - - Unable to Save - 保存できませんでした - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - 入力待機中 - - - - KBMSettings - - Configure Controls - Configure Controls - - - D-Pad - 十字キー - - - Up - - - - unmapped - マッピングなし - - - Left - - - - Right - - - - 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 - 左スティック - - - Config Selection - Config Selection - - - Common Config - Common Config - - - Use per-game configs - ゲームごとの設定を使用する - - - Text Editor - テキストエディター - - - Help - ヘルプ - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *ゲーム中にF7を押して有効化 - - - 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 - - - - Square - - - - Circle - - - - 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 - 右スティック - - - 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 - 保存できませんでした - - - Press a key - キーを押してください - - - Cannot set mapping - Cannot set mapping - - - Mousewheel cannot be mapped to stick outputs - Mousewheel cannot be mapped to stick outputs - - - Save - 保存 - - - Apply - 適用 - - - Restore Defaults - デフォルトに戻す - - - Cancel - キャンセル - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - タッチパッド左 - - - Touchpad Center - タッチパッド中央 - - - Touchpad Right - タッチパッド右 - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - コメント - - - Filter - フィルター - - - Load - ロード - - - Close - 閉じる - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Elfフォルダを開く/追加する - - - Boot Game - ゲームを起動 - - - Check for Updates - 更新を確認する - - - About shadPS4 - shadPS4について - - - Configure... - 設定... - - - Recent Games - 最近プレイしたゲーム - - - Open shadPS4 Folder - shadPS4フォルダを開く - - - Exit - 終了 - - - Exit shadPS4 - shadPS4を終了 - - - Exit the application. - アプリケーションを終了します。 - - - Show Game List - ゲームリストを表示 - - - Game List Refresh - ゲームリストの更新 - - - Tiny - 最小 - - - Small - - - - Medium - - - - Large - - - - List View - リストビュー - - - Grid View - グリッドビュー - - - Elf Viewer - Elfビューアー - - - Game Install Directory - ゲームインストールディレクトリ - - - Download Cheats/Patches - チート / パッチをダウンロード - - - Dump Game List - ゲームリストをダンプ - - - Trophy Viewer - トロフィービューアー - - - No games found. Please add your games to your library first. - ゲームが見つかりませんでした。まずライブラリにゲームを追加してください。 - - - Search... - 検索... - - - File - ファイル - - - View - 表示 - - - Game List Icons - ゲームリストアイコン - - - Game List Mode - ゲームリストモード - - - Settings - 設定 - - - Utils - ユーティリティ - - - Themes - テーマ - - - Help - ヘルプ - - - Dark - ダーク - - - Light - ライト - - - Green - グリーン - - - Blue - ブルー - - - Violet - バイオレット - - - toolBar - ツールバー - - - Game List - ゲームリスト - - - Download Cheats For All Installed Games - すべてのインストール済みゲームのチートをダウンロード - - - Download Patches For All Games - すべてのゲームのパッチをダウンロード - - - Download Complete - ダウンロード完了 - - - You have downloaded cheats for all the games you have installed. - インストールされているすべてのゲームのチートをダウンロードしました。 - - - Patches Downloaded Successfully! - パッチが正常にダウンロードされました! - - - All Patches available for all games have been downloaded. - すべてのゲームに利用可能なパッチがダウンロードされました。 - - - Games: - ゲーム: - - - ELF files (*.bin *.elf *.oelf) - ELFファイル (*.bin *.elf *.oelf) - - - Game Boot - ゲームブート - - - Only one file can be selected! - 1つのファイルしか選択できません! - - - Run Game - ゲームを実行 - - - Eboot.bin file not found - Eboot.bin ファイルが見つかりません - - - Game is already running! - ゲームは既に実行されています! - - - shadPS4 - shadPS4 - - - Play - プレイ - - - Pause - 一時停止 - - - Stop - 停止 - - - Restart - 再起動 - - - Full Screen - 全画面表示 - - - Controllers - コントローラー - - - Keyboard - キーボード - - - Refresh List - リストの更新 - - - Resume - 再開 - - - Show Labels Under Icons - アイコンの下にラベルを表示 - - - Customize Hotkeys - ホットキーのカスタマイズ - - - - SettingsDialog - - Settings - 設定 - - - General - 一般 - - - System - システム - - - Console Language - コンソールの言語 - - - Emulator Language - エミュレーターの言語 - - - Default tab when opening settings - 設定を開くときのデフォルトタブ - - - Show Game Size In List - ゲームサイズをリストに表示 - - - Enable Discord Rich Presence - Discord Rich Presenceを有効にする - - - Username - ユーザー名 - - - Trophy Key - トロフィーキー - - - Trophy - トロフィー - - - Open the custom trophy images/sounds folder - Open the custom trophy images/sounds folder - - - Logger - ロガー - - - Log Type - ログタイプ - - - Log Filter - ログフィルター - - - Open Log Location - ログの場所を開く - - - Input - 入力 - - - Cursor - カーソル - - - Hide Cursor - カーソルを隠す - - - Hide Cursor Idle Timeout - カーソルを隠すまでの非アクティブ期間 - - - Microphone - マイク - - - None - なし - - - Default Device - デフォルトデバイス - - - s - s - - - Controller - コントローラー - - - Graphics - グラフィックス - - - GUI - インターフェース - - - User - ユーザー - - - Graphics Device - グラフィックスデバイス - - - Advanced - 高度な設定 - - - Enable Shaders Dumping - シェーダーのダンプを有効にする - - - Enable NULL GPU - NULL GPUを有効にする - - - Enable HDR - HDRを有効化 - - - Paths - パス - - - Game Folders - ゲームフォルダ - - - Add... - 追加... - - - Remove - 削除 - - - Debug - デバッグ - - - Enable Debug Dumping - デバッグダンプを有効にする - - - Enable Vulkan Validation Layers - Vulkan検証レイヤーを有効にする - - - Enable Vulkan Synchronization Validation - Vulkan同期検証を有効にする - - - Enable RenderDoc Debugging - RenderDocデバッグを有効にする - - - Enable Crash Diagnostics - クラッシュ診断の有効化 - - - Collect Shaders - Collect Shaders - - - Copy GPU Buffers - GPU バッファーをコピー - - - Host Debug Markers - Host Debug Markers - - - Guest Debug Markers - Guest Debug Markers - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - 更新 - - - Check for Updates at Startup - 起動時に更新確認 - - - Always Show Changelog - 常に変更履歴を表示 - - - Update Channel - アップデートチャネル - - - Check for Updates - 更新を確認 - - - Title Music - タイトル音楽 - - - Disable Trophy Notification - Disable Trophy Notification - - - Background Image - 背景画像 - - - Show Background Image - 背景画像を表示 - - - Opacity - 透明度 - - - Play title music - タイトル音楽を再生する - - - Update Compatibility Database On Startup - 起動時に互換性データベースを更新する - - - Game Compatibility - ゲームの互換性 - - - Display Compatibility Data - 互換性に関するデータを表示 - - - Update Compatibility Database - 互換性データベースを更新 - - - Volume - 音量 - - - Save - 保存 - - - Apply - 適用 - - - Restore Defaults - デフォルトに戻す - - - Close - 閉じる - - - 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. - コンソールの言語:\nPS4ゲームが使用する言語を設定します。\nゲームでサポートされている言語に設定することをお勧めしますが、地域によって異なる場合があります。 - - - Emulator Language:\nSets the language of the emulator's user interface. - エミュレーターの言語:\nエミュレーターのユーザーインターフェースの言語を設定します。 - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - スプラッシュスクリーンを表示:\nゲーム起動中にゲームのスプラッシュスクリーン(特別な画像)を表示します。 - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Discord Rich Presenceを有効にする:\nエミュレーターのアイコンと関連情報をDiscordプロフィールに表示します。 - - - Username:\nSets the PS4's account username, which may be displayed by some games. - ユーザー名:\nPS4のアカウントユーザー名を設定します。これは、一部のゲームで表示される場合があります。 - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - トロフィーキー:\nトロフィーの復号に使用されるキーです。脱獄済みのコンソールから取得することができます。\n16進数のみを受け入れます。 - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - ログタイプ:\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" \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: 最新の機能と修正がすべて含まれていますが、バグが含まれている可能性があり、安定性は低いです。 - - - 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でゲームを選択したときに特別な音楽を再生する機能を有効にします。 - - - 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常に: カーソルは常に隠れた状態になります。 - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - カーソルが非アクティブになってから隠すまでの時間を設定します。 - - - 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. - 起動時に互換性データベースを更新する:\nshadPS4の起動時に自動で互換性データベースを更新します。 - - - Update Compatibility Database:\nImmediately update the compatibility database. - 互換性データベースを更新する:\n今すぐ互換性データベースを更新します。 - - - Never - 無効 - - - Idle - 非アクティブ時 - - - Always - 常に - - - 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「自動選択」を選択して自動的に決定します。 - - - 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これはゲーム内の解像度とは異なります。 - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - シェーダーダンプを有効にする:\n技術的なデバッグの目的で、レンダリング中にゲームのシェーダーをフォルダーに保存します。 - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Null 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. - HDRを有効にする:\n対応ゲームでHDRを有効にします。\nお使いのモニターはBT2020 PQカラースペースとRGB10A2スワップチェーン形式に対応している必要があります。 - - - Game Folders:\nThe list of folders to check for installed games. - ゲームフォルダ:\nインストールされたゲームを確認するためのフォルダのリスト。 - - - Add:\nAdd a folder to the list. - 追加:\nリストにフォルダを追加します。 - - - Remove:\nRemove a folder from the list. - 削除:\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プログラムのインポートおよびエクスポートシンボルとファイルヘッダー情報をディレクトリに保存します。 - - - 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との互換性を提供し、現在レンダリング中のフレームのキャプチャと分析を可能にします。 - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - シェーダーを収集する:\nデバッグメニュー(Ctrl + F10)でシェーダーを編集するには、これを有効にする必要があります。 - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - セーブデータパス:\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. - - - Release - Release - - - Nightly - Nightly - - - Set the volume of the background music. - バックグラウンドミュージックの音量を設定します。 - - - Enable Motion Controls - モーションコントロールを有効にする - - - Save Data Path - セーブデータパス - - - Browse - 参照 - - - async - 非同期 - - - sync - 同期 - - - Auto Select - 自動選択 - - - Directory to install games - ゲームをインストールするディレクトリ - - - Directory to save data - Directory to save data - - - Video - Video - - - Display Mode - 表示モード - - - Windowed - ウィンドウ表示 - - - Fullscreen - 全画面表示 - - - Fullscreen (Borderless) - 全画面表示(ボーダレス) - - - Window Size - ウィンドウサイズ - - - W: - W: - - - H: - H: - - - Separate Log Files - ログファイルを分離する - - - Separate Log Files:\nWrites a separate logfile for each game. - ログファイルを分離:\nゲームごとに別のログファイルに書き込みます。 - - - Trophy Notification Position - トロフィー通知の位置 - - - Left - - - - Right - - - - Top - - - - Bottom - - - - Notification Duration - 通知表示時間 - - - 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 - ポータブルユーザーフォルダを作成できません。 - - - %1 already exists - %1 は既に存在します - - - Portable user folder 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. - - - * Unsupported Vulkan Version - * サポートされていないVulkanバージョン - - - Experimental Features - 試験的な機能 - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - 警告: これらの機能は実験的なものであり、指示された場合やゲームが必要な場合を除き、有効にすべきではありません。 質問がある場合は、shadPS4 Discordサーバーに問い合わせてください。 - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - ログの有効化 - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - 表示モード - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (Vsyncなし) - - - DLC Folder - DLC フォルダー - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - 表示モード:\nビデオ出力が画面にどのように表示されるかを設定します。\n\nメールボックス:フレームは画面のリフレッシュレートと同期します。新規フレームは待機中のフレームを置き換えます。遅延は減少しますが、処理が遅れた場合にフレームがスキップされる可能性があります。\nFIFO: フレームは画面のリフレッシュレートに同期します。新規フレームは待機中のフレームの後ろにキューイングされます。全フレームの表示を保証しますが、遅延が増加する可能性があります。\n即時: フレームは準備完了次第、直ちに画面に表示されます。ティアリングが発生する可能性があります。 - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR設定 - - - Enable FSR - FSRを有効化 - - - Enable RCAS (sharpening) - RCASを有効化 (シャープニング) - - - RCAS Attenuation: - RCAS減衰率: - - - Load Presets... - Load Presets... - - - Log - ログ - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - ボリューム:\nグローバルレベルでゲームのボリュームを調整します。範囲は0〜500%で、デフォルトは100%です。 - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - モーションコントロールを有効にする:\n有効にすると、コントローラーのモーションコントロールがサポートされている場合に使用されます。 - - - Vblank Frequency - Vblank周波数 - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - ダイレクトメモリアクセスを有効にする - - - Enable Devkit Console Mode - 開発者コンソールモードを有効にする - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - トロフィービューアー - - - Select Game: - ゲームを選択: - - - Progress - 進捗度 - - - Show Earned Trophies - 獲得したトロフィーを表示 - - - Show Not Earned Trophies - 未獲得のトロフィーを表示 - - - Show Hidden Trophies - 隠しトロフィーを表示 - - - diff --git a/src/qt_gui/translations/ko_KR.ts b/src/qt_gui/translations/ko_KR.ts deleted file mode 100644 index 115321a5f..000000000 --- a/src/qt_gui/translations/ko_KR.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - shadPS4에 관하여 - - - 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. - 이 소프트웨어는 합법적으로 얻지 않은 게임을 플레이하는 데 사용되어서는 안 됩니다. - - - - 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 - - - No Image Available - 사용 가능한 이미지 없음 - - - Serial: - 시리얼: - - - Version: - 버전: - - - Size: - 사이즈: - - - Select Cheat File: - 치트 파일 선택: - - - Repository: - 저장소: - - - Download Cheats - 치트 다운로드 - - - Delete File - 파일 삭제 - - - 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 - - - Select Patch File: - 패치 파일 선택: - - - Download Patches - 패치 다운로드 - - - Save - 저장 - - - Cheats - 치트 - - - Patches - 패치 - - - Error - 오류 - - - No patch selected. - 패치 선택되지 않음. - - - Unable to open files.json for reading. - 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 구문 분석에 실패했습니다: - - - Success - 성공 - - - Options saved successfully. - 옵션이 성공적으로 저장되었습니다. - - - Invalid Source - 잘못된 출처 - - - The selected source is invalid. - 선택한 출처가 올바르지 않습니다. - - - File Exists - 파일이 이미 존재합니다 - - - 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 - 다운로드 완료 - - - 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 데이터를 구문 분석하는 데 실패했습니다. - - - Failed to retrieve HTML page. - HTML 페이지를 가져오지 못했습니다. - - - The game is in version: %1 - 게임 버전: %1 - - - The downloaded patch only works on version: %1 - 다운로드한 패치는 버전 %1 에서만 작동합니다. - - - You may need to update your game. - 게임을 업데이트해야 할 수도 있습니다. - - - Incompatibility Notice - 호환성 경고 - - - Failed to open file: - 파일을 열지 못했습니다: - - - XML ERROR: - XML 오류: - - - Failed to open files.json for writing - files.json 파일을 쓰기 위해 열지 못했습니다 - - - Author: - 제작자: - - - Directory does not exist: - 디렉터리가 존재하지 않습니다: - - - Failed to open files.json for reading. - files.json 파일을 읽기 위해 열지 못했습니다. - - - Name: - 이름: - - - Can't apply cheats before the game is started - 게임이 시작되기 전에 치트를 적용할 수 없습니다 - - - Close - 닫기 - - - - CheckUpdate - - Auto Updater - 자동 업데이트 - - - Error - 오류 - - - Network error: - 네트워크 오류: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - 자동 업데이트는 시간당 최대 60회의 업데이트 확인을 허용합니다.\n이 제한에 도달했습니다. 나중에 다시 시도해 주세요. - - - Failed to parse update information. - 업데이트 정보 구문 분석에 실패했습니다. - - - No pre-releases found. - 사전 릴리스가 없습니다. - - - Invalid release data. - 잘못된 릴리스 데이터입니다. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>알림:</b><br><br> 버전 <b>0.12.0</b>부터 에뮬레이터의 Qt 버전은 더 이상 직접 업데이트를 받지 않습니다.<br><br> 그러나 Qt 인터페이스는 새로운 공식 런처를 통해 계속 사용할 수 있습니다:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – 원래의 shadPS4 소스 코드를 기반으로 제작되었습니다.<br><br>이 런처로 전환하여 업데이트를 계속 받으시기 바랍니다. - - - Your version is already up to date! - 버전이 이미 최신입니다! - - - Update Available - 업데이트 가능 - - - Update Channel - 업데이트 채널 - - - Current Version - 현재 버전 - - - Latest Version - 최신 버전 - - - Do you want to update? - 업데이트하시겠습니까? - - - Show Changelog - 변경 사항 보기 - - - Check for Updates at Startup - 시작할 때 업데이트 확인 - - - Update - 업데이트 - - - No - 아니요 - - - Hide Changelog - 변경 사항 숨기기 - - - Changes - 변경 사항 - - - Network error occurred while trying to access the URL - URL에 접근하는 동안 네트워크 오류가 발생했습니다 - - - Download Complete - 다운로드 완료 - - - The update has been downloaded, press OK to install. - 업데이트가 다운로드 되었습니다. 설치하려면 확인을 눌러주세요. - - - Failed to save the update file at - 업데이트 파일을 다음 위치에 저장하지 못했습니다 - - - Starting Update... - 업데이트를 시작합니다... - - - Failed to create the update script file - 업데이트 스크립트 파일을 생성하지 못했습니다 - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - 호환성 데이터를 가져오는 중, 잠시만 기다려 주세요 - - - Cancel - 취소 - - - Loading... - 로딩 중... - - - Error - 오류 - - - Unable to update compatibility data! Try again later. - 호환성 데이터를 업데이트할 수 없습니다! 나중에 다시 시도해 주세요. - - - Unable to open compatibility_data.json for writing. - compatibility_data.json을 열어 쓸 수 없습니다. - - - Unknown - 알 수 없음 - - - Nothing - 없음 - - - Boots - 부츠 - - - Menus - 메뉴 - - - Ingame - 게임 내 - - - Playable - 플레이 가능 - - - - ControlSettings - - Configure Controls - 컨트롤 설정 - - - D-Pad - D-패드 - - - Up - - - - Left - 왼쪽 - - - Right - 오른쪽 - - - Down - 아래 - - - Left Stick Deadzone (def:2 max:127) - 왼쪽 스틱 데드존 (기본값:2 최대값:127) - - - Left Deadzone - 왼쪽 데드존 - - - Left Stick - 왼쪽 스틱 - - - Config Selection - 설정 선택 - - - Common Config - 공통 설정 - - - Use per-game configs - 게임 별 설정 사용 - - - Face Buttons - 페이스 버튼 - - - Right Stick Deadzone (def:2, max:127) - 오른쪽 스틱 데드존 (기본:2, 최대:127) - - - Right Deadzone - 오른쪽 데드존 - - - Right Stick - 오른쪽 스틱 - - - Color Adjustment - 색상 조정 - - - Override Lightbar Color - 라이트 바 색상 오버라이드 - - - Override Color - 색상 오버라이드 - - - Unable to Save - 저장할 수 없음 - - - Cannot bind axis values more than once - 축 값을 두 번 이상 바인딩할 수 없음 - - - Save - 저장 - - - Apply - 적용 - - - Restore Defaults - 기본값으로 복원 - - - Cancel - 취소 - - - unmapped - 맵핑되지 않음 - - - Options - 옵션 - - - Touchpad Left - 터치패드 왼쪽 - - - Touchpad Center - 터치패드 중앙 - - - Touchpad Right - 터치패드 오른쪽 - - - Triangle - 세모 - - - Square - 네모 - - - Circle - 동그라미 - - - Cross - 엑스 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - 하나 이상의 입력을 할당할 수 없습니다. 다음 버튼에 여러 개의 입력이 설정되어 있습니다: - -%1 - - - Press a button - 버튼을 누르세요 - - - Move analog stick - 아날로그 스틱을 움직이세요 - - - L1 and L2 - L1 and L2 - - - Active Gamepad - 게임패드 활성화 - - - Gamepad ID - 게임패드 ID - - - Default Gamepad - 기본 게임패드 - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - 활성화된 게임패드를 기본값으로 설정 - - - Remove Default Gamepad - 기본 게임패드 제거 - - - R1 and R2 - R1과 R2 - - - ID: - ID: - - - Default Controller Selected - 기본 컨트롤러 선택됨 - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - 기본 컨트롤러 제거됨 - - - Default controller setting removed - 기본 컨트롤러 설정 제거됨 - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Edit Keyboard + Mouse and Controller input bindings - - - Use Per-Game configs - 게임별 설정 사용 - - - 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 - 변경 사항 저장 - - - Do you want to save changes? - 변경 사항을 저장하시겠습니까? - - - Help - 도움말 - - - 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 - 기본값으로 재설정 - - - - ElfViewer - - Open Folder - 폴더 열기 - - - - GameInfoClass - - Loading game list, please wait :3 - 게임 목록을 불러오고 있습니다. 잠시만 기다려주세요 :3 - - - Cancel - 취소 - - - Loading... - 불러오는 중... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - 폴더 선택 - - - Directory to install games - 게임을 설치할 폴더 - - - Browse - 찾아보기 - - - Error - 오류 - - - Directory to install DLC - DLC를 설치할 폴더 - - - - GameListFrame - - Icon - 아이콘 - - - Name - 이름 - - - Serial - 시리얼 - - - Compatibility - 호환성 - - - Region - 지역 - - - Firmware - 펌웨어 - - - Size - 크기 - - - Version - 버전 - - - Path - 경로 - - - Play Time - 플레이 시간 - - - Never Played - 플레이한 적 없음 - - - h - 시간 - - - m - - - - s - - - - Compatibility is untested - 호환성이 확인되지 않음 - - - Game does not initialize properly / crashes the emulator - 게임이 제대로 시작되지 않거나 크래시가 발생함 - - - 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 - GitHub에서 세부 정보를 보려면 클릭하세요 - - - Last updated - 마지막 업데이트 - - - Favorite - 즐겨찾기 - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - 바로 가기 만들기 - - - Cheats / Patches - 치트 / 패치 - - - SFO Viewer - SFO Viewer - - - 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 Update - 업데이트 삭제 - - - Delete DLC - DLC 삭제 - - - Delete Trophy - Delete Trophy - - - Compatibility... - 호환성... - - - Shortcut creation - Shortcut creation - - - Shortcut created successfully! - Shortcut created successfully! - - - Error - 오류 - - - Error creating shortcut! - Error creating shortcut! - - - Game - 게임 - - - This game has no update to delete! - This game has no update to delete! - - - Update - 업데이트 - - - This game has no DLC to delete! - 삭제할 DLC가 없습니다! - - - DLC - DLC - - - 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? - - - Open Update Folder - 업데이트 폴더 열기 - - - Delete Save Data - 세이브 데이터 삭제 - - - This game has no update folder to open! - 이 게임은 업데이트 폴더가 없습니다! - - - No log file found for this game! - 이 게임의 로그 파일이 없습니다! - - - Failed to convert icon. - 아이콘 변환에 실패했습니다. - - - 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 - 세이브 데이터 - - - Trophy - Trophy - - - SFO Viewer for - SFO Viewer for - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - 빠른 시작 - - - FAQ - 자주 묻는 질문 - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - 키 설정 - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - KBMSettings - - Configure Controls - 조작 설정 - - - D-Pad - 십자키 - - - Up - - - - unmapped - 설정되지 않음 - - - Left - 왼쪽 - - - Right - 오른쪽 - - - 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 - 왼쪽 스틱 - - - Config Selection - Config Selection - - - Common Config - Common Config - - - Use per-game configs - Use per-game configs - - - Text Editor - 텍스트 편집기 - - - Help - 도움말 - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - 세모 - - - Square - 네모 - - - Circle - 동그라미 - - - 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 - 오른쪽 스틱 - - - Speed Offset (def 0.125): - 속도 오프셋 (기본값 0.125): - - - Copy from Common Config - Copy from Common Config - - - Deadzone Offset (def 0.50): - 데드존 오프셋 (기본값 0.50): - - - 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 - 저장할 수 없음 - - - Press a key - 키를 눌러주세요 - - - Cannot set mapping - Cannot set mapping - - - Mousewheel cannot be mapped to stick outputs - Mousewheel cannot be mapped to stick outputs - - - Save - 저장 - - - Apply - 적용 - - - Restore Defaults - 기본값 복원 - - - Cancel - 취소 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - 하나 이상의 입력을 할당할 수 없습니다. 다음 버튼에 여러 개의 입력이 설정되어 있습니다: - -%1 - - - Touchpad Left - 터치패드 왼쪽 - - - Touchpad Center - 터치패드 중앙 - - - Touchpad Right - 터치패드 오른쪽 - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Open/Add Elf Folder - - - Boot Game - 게임 실행 - - - Check for Updates - 업데이트 확인 - - - About shadPS4 - shadPS4 정보 - - - Configure... - 구성... - - - Recent Games - 최근 게임 - - - Open shadPS4 Folder - shadPS4 폴더 열기 - - - Exit - 나가기 - - - Exit shadPS4 - shadPS4를 종료하기 - - - Exit the application. - 프로그램을 종료합니다. - - - Show Game List - 게임 목록 보이기 - - - Game List Refresh - 게임 목록 새로고침 - - - Tiny - 아주 작게 - - - Small - 작게 - - - Medium - 보통 - - - Large - 크게 - - - List View - 목록 보기 - - - Grid View - 격자 보기 - - - Elf Viewer - Elf Viewer - - - Game Install Directory - Game Install Directory - - - 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... - 검색... - - - File - 파일 - - - View - 보기 - - - Game List Icons - 게임 목록 아이콘 - - - Game List Mode - 게임 목록 스타일 - - - Settings - 설정 - - - Utils - 도구 - - - Themes - 테마 - - - Help - 도움말 - - - Dark - 다크 - - - Light - 라이트 - - - Green - 그린 - - - Blue - 블루 - - - Violet - 바이올렛 - - - toolBar - toolBar - - - Game List - 게임 목록 - - - Download Cheats For All Installed Games - 설치된 모든 게임의 치트 다운로드 - - - Download Patches For All Games - 모든 게임의 패치 다운로드 - - - Download Complete - 다운로드 완료 - - - You have downloaded cheats for all the games you have installed. - 설치된 모든 게임의 치트가 다운로드되어 있습니다. - - - 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 - 시작 - - - Pause - 일시정지 - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - 시스템 - - - Console Language - 콘솔 언어 - - - Emulator Language - 에뮬레이터 언어 - - - Default tab when opening settings - 설정 열기 시 기본 탭 - - - Show Game Size In List - 게임 크기를 목록에 표시 - - - Enable Discord Rich Presence - 디스코드 활동 상태 표시 - - - Username - 사용자 이름 - - - Trophy Key - Trophy Key - - - Trophy - Trophy - - - Open the custom trophy images/sounds folder - Open the custom trophy images/sounds folder - - - Logger - 로그 기록 - - - Log Type - 로그 유형 - - - Log Filter - Log Filter - - - Open Log Location - 로그 위치 열기 - - - Input - Input - - - Cursor - Cursor - - - Hide Cursor - Hide Cursor - - - Hide Cursor Idle Timeout - Hide Cursor Idle Timeout - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Controller - - - Graphics - Graphics - - - GUI - 인터페이스 - - - User - 사용자 - - - Graphics Device - Graphics Device - - - Advanced - 고급 설정 - - - Enable Shaders Dumping - 셰이더 덤핑 활성화 - - - Enable NULL GPU - NULL GPU 활성화 - - - Enable HDR - HDR 활성화 - - - Paths - 경로 - - - Game Folders - 게임 폴더 - - - Add... - 추가... - - - Remove - 제거 - - - Debug - 디버그 - - - Enable Debug Dumping - 디버그 덤핑 활성화 - - - Enable Vulkan Validation Layers - Vulkan 유효성 검사 계층 활성화 - - - Enable Vulkan Synchronization Validation - Vulkan 동기화 유효성 검사 활성화 - - - Enable RenderDoc Debugging - Enable RenderDoc Debugging - - - Enable Crash Diagnostics - 충돌 분석 활성화 - - - Collect Shaders - 셰이더 수집 - - - Copy GPU Buffers - GPU 버퍼 복사 - - - Host Debug Markers - Host Debug Markers - - - Guest Debug Markers - Guest Debug Markers - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - 업데이트 - - - Check for Updates at Startup - 시작할 때 업데이트 확인 - - - Always Show Changelog - 항상 변경 사항 표시 - - - Update Channel - 채널 업데이트 - - - Check for Updates - 업데이트 확인 - - - Title Music - Title Music - - - Disable Trophy Notification - Disable Trophy Notification - - - Background Image - 배경 이미지 - - - Show Background Image - 배경 이미지 표시 - - - Opacity - 불투명도 - - - Play title music - Play title music - - - Update Compatibility Database On Startup - 프로그램 실행 시 호환성 데이터베이스 업데이트 - - - Game Compatibility - 게임 호환성 - - - Display Compatibility Data - 호환성 데이터 표시 - - - Update Compatibility Database - 호환성 데이터베이스 업데이트 - - - Volume - 음량 - - - Save - 저장 - - - Apply - 적용 - - - Restore Defaults - 기본값 복원 - - - 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. - 콘솔 언어:\nPS4 게임에서 사용할 언어를 설정합니다.\n해당 게임이 지원하는 지역의 언어로 설정할 것을 권장합니다. - - - Emulator Language:\nSets the language of the emulator's user interface. - 에뮬레이터 언어:\n에뮬레이터 인터페이스의 언어를 설정합니다. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - 스플래시 화면 보이기:\n게임이 시작되는 동안 게임의 스플래시 화면(고유 이미지)을 보여줍니다. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Discord Rich Presence 활성화:\nDiscord 프로필에 에뮬레이터 아이콘과 관련 정보를 표시합니다. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - 사용자 이름:\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. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - 로그 유형:\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. - 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. - 배경 이미지:\n게임 배경 이미지의 불투명도를 조절합니다. - - - 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. - - - 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. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Update Compatibility Database:\nImmediately update the compatibility database. - - - Never - Never - - - Idle - Idle - - - Always - Always - - - 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. - - - 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 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - 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/lt_LT.ts b/src/qt_gui/translations/lt_LT.ts deleted file mode 100644 index 1d838f63d..000000000 --- a/src/qt_gui/translations/lt_LT.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Apie 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. - Ši programa neturėtų būti naudojama žaidimams kurių neturite legaliai įsigiję. - - - - 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 yra eksperimentiniai.\nNaudokite atsargiai.\n\nAtsisiųskite cheats atskirai pasirinkdami saugyklą ir paspausdami atsisiuntimo mygtuką.\nPatches skirtuke galite atsisiųsti visus patch’us vienu metu, pasirinkti, kuriuos norite naudoti, ir išsaugoti pasirinkimą.\n\nKadangi mes nekurime Cheats/Patches,\npraneškite problemas cheat autoriui.\n\nSukūrėte naują cheat? Apsilankykite:\n - - - No Image Available - Nuotrauka neprieinama - - - Serial: - Seriinis numeris: - - - Version: - Versija: - - - Size: - Dydis: - - - Select Cheat File: - Pasirinkite sukčiavimo failą: - - - Repository: - Saugykla: - - - Download Cheats - Atsisiųsti sukčiavimus - - - Delete File - Pašalinti failą - - - No files selected. - Failai nepasirinkti. - - - You can delete the cheats you don't want after downloading them. - Galite pašalinti sukčiavimus, kurių nenorite, juos atsisiuntę. - - - Do you want to delete the selected file?\n%1 - Ar norite ištrinti pasirinktą failą?\n%1 - - - Select Patch File: - Pasirinkite pataisos failą: - - - Download Patches - Atsisiųsti pataisas - - - Save - Įrašyti - - - Cheats - Sukčiavimai - - - Patches - Pataisos - - - Error - Klaida - - - No patch selected. - Nieko nepataisyta. - - - Unable to open files.json for reading. - Neįmanoma atidaryti files.json skaitymui. - - - No patch file found for the current serial. - Nepavyko rasti pataisos failo dabartiniam serijiniam numeriui. - - - Unable to open the file for reading. - Neįmanoma atidaryti failo skaitymui. - - - Unable to open the file for writing. - Neįmanoma atidaryti failo rašymui. - - - Failed to parse XML: - Nepavyko išanalizuoti XML: - - - Success - Sėkmė - - - Options saved successfully. - Nustatymai sėkmingai išsaugoti. - - - Invalid Source - Netinkamas šaltinis - - - The selected source is invalid. - Pasirinktas šaltinis yra netinkamas. - - - File Exists - Failas egzistuoja - - - File already exists. Do you want to replace it? - Failas jau egzistuoja. Ar norite jį pakeisti? - - - Failed to save file: - Nepavyko išsaugoti failo: - - - Failed to download file: - Nepavyko atsisiųsti failo: - - - Cheats Not Found - Sukčiavimai nerasti - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Nerasta sukčiavimų šiam žaidimui šioje pasirinktos saugyklos versijoje,bandykite kitą saugyklą arba skirtingą žaidimo versiją. - - - Cheats Downloaded Successfully - Sukčiavimai sėkmingai atsisiųsti - - - 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. - Sėkmingai atsisiuntėte sukčiavimus šios žaidimo versijos iš pasirinktos saugyklos. Galite pabandyti atsisiųsti iš kitos saugyklos, jei ji yra prieinama, taip pat bus galima ją naudoti pasirinkus failą iš sąrašo. - - - Failed to save: - Nepavyko išsaugoti: - - - Failed to download: - Nepavyko atsisiųsti: - - - Download Complete - Atsisiuntimas baigtas - - - 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. - Pataisos sėkmingai atsisiųstos! Visos pataisos visiems žaidimams buvo atsisiųstos, nebėra reikalo jas atsisiųsti atskirai kiekvienam žaidimui, kaip tai vyksta su sukčiavimais. Jei pleistras nepasirodo, gali būti, kad jo nėra tam tikram žaidimo serijos numeriui ir versijai. - - - Failed to parse JSON data from HTML. - Nepavyko išanalizuoti JSON duomenų iš HTML. - - - Failed to retrieve HTML page. - Nepavyko gauti HTML puslapio. - - - The game is in version: %1 - Žaidimas yra versijoje: %1 - - - The downloaded patch only works on version: %1 - Parsisiųstas pataisas veikia tik versijoje: %1 - - - You may need to update your game. - Gali tekti atnaujinti savo žaidimą. - - - Incompatibility Notice - Suderinamumo pranešimas - - - Failed to open file: - Nepavyko atidaryti failo: - - - XML ERROR: - XML KLAIDA: - - - Failed to open files.json for writing - Nepavyko atidaryti files.json rašymui - - - Author: - Autorius: - - - Directory does not exist: - Katalogas neegzistuoja: - - - Failed to open files.json for reading. - Nepavyko atidaryti files.json skaitymui. - - - Name: - Pavadinimas: - - - Can't apply cheats before the game is started - Negalima taikyti sukčiavimų prieš pradedant žaidimą. - - - Close - Uždaryti - - - - CheckUpdate - - Auto Updater - Automatinis atnaujinimas - - - Error - Klaida - - - Network error: - Tinklo klaida: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Automatinis atnaujinimas leidžia iki 60 atnaujinimų patikrinimų per valandą.\nJūs pasiekėte šią ribą. Bandykite dar kartą vėliau. - - - Failed to parse update information. - Nepavyko išanalizuoti atnaujinimo informacijos. - - - No pre-releases found. - Išankstinių leidimų nerasta. - - - Invalid release data. - Neteisingi leidimo duomenys. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Pranešimas:</b><br><br> Nuo versijos <b>0.12.0</b> emuliatoriaus Qt versija nebekvies tiesioginių atnaujinimų.<br><br> Tačiau Qt sąsaja vis tiek prieinama per oficialų naują paleidimo programą:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – paremta pradiniu shadPS4 šaltinio kodu.<br><br>Rekomenduojame pereiti prie šio paleidimo programos, kad ir toliau gautumėte atnaujinimus. - - - Your version is already up to date! - Jūsų versija jau atnaujinta! - - - Update Available - Prieinama atnaujinimas - - - Update Channel - Atnaujinimo Kanalas - - - Current Version - Esama versija - - - Latest Version - Paskutinė versija - - - Do you want to update? - Ar norite atnaujinti? - - - Show Changelog - Rodyti pakeitimų sąrašą - - - Check for Updates at Startup - Tikrinti naujinimus paleidus - - - Update - Atnaujinti - - - No - Ne - - - Hide Changelog - Slėpti pakeitimų sąrašą - - - Changes - Pokyčiai - - - Network error occurred while trying to access the URL - Tinklo klaida bandant pasiekti URL - - - Download Complete - Atsisiuntimas baigtas - - - The update has been downloaded, press OK to install. - Atnaujinimas buvo atsisiųstas, paspauskite OK, kad įdiegtumėte. - - - Failed to save the update file at - Nepavyko išsaugoti atnaujinimo failo - - - Starting Update... - Pradedama atnaujinimas... - - - Failed to create the update script file - Nepavyko sukurti atnaujinimo scenarijaus failo - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Naudojamos suderinamumo duomenis, prašome palaukti - - - Cancel - Atšaukti - - - Loading... - Kraunama... - - - Error - Klaida - - - Unable to update compatibility data! Try again later. - Negalima atnaujinti suderinamumo duomenų! Bandykite vėliau. - - - Unable to open compatibility_data.json for writing. - Negalima atidaryti compatibility_data.json failo rašymui. - - - Unknown - Nežinoma - - - Nothing - Nėra - - - Boots - Batai - - - Menus - Meniu - - - Ingame - Žaidime - - - Playable - Žaidžiamas - - - - 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 - - - Face Buttons - Face Buttons - - - Right Stick Deadzone (def:2, max:127) - Right Stick Deadzone (def:2, max:127) - - - Right Deadzone - Right Deadzone - - - Right Stick - Right Stick - - - Color Adjustment - Spalvų Reguliavimas - - - Override Lightbar Color - Override Lightbar Color - - - Override Color - Override Color - - - Unable to Save - Nepavyko Išsaugoti - - - Cannot bind axis values more than once - Cannot bind axis values more than once - - - Save - Save - - - Apply - Apply - - - Restore Defaults - Restore Defaults - - - Cancel - Atšaukti - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - 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 - Išsaugoti Pakeitimus - - - Do you want to save changes? - Ar norite išsaugoti pakeitimus? - - - Help - Pagalba - - - 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 - Ikona - - - Name - Vardas - - - Serial - Serijinis numeris - - - Compatibility - Compatibility - - - Region - Regionas - - - Firmware - Firmvare - - - Size - Dydis - - - Version - Versija - - - Path - Kelias - - - Play Time - Žaidimo laikas - - - 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 - Spustelėkite, kad pamatytumėte detales GitHub - - - Last updated - Paskutinį kartą atnaujinta - - - Favorite - Favorite - - - - 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... - Atidaryti Katalogą... - - - Open Game Folder - Atidaryti Žaidimo Katalogą - - - Open Save Data Folder - Atidaryti Išsaugotų Duomenų Katalogą - - - Open Log Folder - Atidaryti Žurnalų Katalogą - - - 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... - - - Shortcut creation - Shortcut creation - - - Shortcut created successfully! - Shortcut created successfully! - - - Error - Klaida - - - Error creating shortcut! - Error creating shortcut! - - - Game - Žaidimas - - - 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 - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Open/Add Elf Folder - - - Boot Game - Boot Game - - - Check for Updates - Patikrinti atnaujinimus - - - 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 - Atsisiųsti Apgaules / Pleistrus - - - 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 - Pagalba - - - Dark - Dark - - - Light - Light - - - Green - Green - - - Blue - Blue - - - Violet - Violet - - - toolBar - toolBar - - - Game List - Žaidimų sąrašas - - - Download Cheats For All Installed Games - Atsisiųsti sukčiavimus visiems įdiegtiems žaidimams - - - Download Patches For All Games - Atsisiųsti pataisas visiems žaidimams - - - Download Complete - Atsisiuntimas baigtas - - - You have downloaded cheats for all the games you have installed. - Jūs atsisiuntėte sukčiavimus visiems jūsų įdiegtiesiems žaidimams. - - - Patches Downloaded Successfully! - Pataisos sėkmingai atsisiųstos! - - - All Patches available for all games have been downloaded. - Visos pataisos visiems žaidimams buvo atsisiųstos. - - - Games: - Žaidimai: - - - ELF files (*.bin *.elf *.oelf) - ELF failai (*.bin *.elf *.oelf) - - - Game Boot - Žaidimo paleidimas - - - Only one file can be selected! - Galite pasirinkti tik vieną failą! - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - System - - - Console Language - Console Language - - - Emulator Language - Emulator Language - - - Default tab when opening settings - Numatytoji kortelė atidarius nustatymus - - - Show Game Size In List - Rodyti žaidimo dydį sąraše - - - Enable Discord Rich Presence - Įjungti 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 - Atidaryti žurnalo vietą - - - Input - Įvestis - - - Cursor - Žymeklis - - - Hide Cursor - Slėpti žymeklį - - - Hide Cursor Idle Timeout - Žymeklio paslėpimo neveikimo laikas - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Valdiklis - - - Graphics - Graphics - - - GUI - Interfeisa - - - User - Naudotojas - - - Graphics Device - Graphics Device - - - Advanced - Advanced - - - Enable Shaders Dumping - Enable Shaders Dumping - - - Enable NULL GPU - Enable NULL GPU - - - Enable HDR - Enable HDR - - - Paths - Keliai - - - Game Folders - Žaidimų aplankai - - - Add... - Pridėti... - - - Remove - Pašalinti - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Atnaujinimas - - - Check for Updates at Startup - Tikrinti naujinimus paleidus - - - Always Show Changelog - Visada rodyti pakeitimų žurnalą - - - Update Channel - Atnaujinimo Kanalas - - - Check for Updates - Patikrinkite atnaujinimus - - - 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 - Groti antraštės muziką - - - 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 - Garsumas - - - Save - Įrašyti - - - Apply - Taikyti - - - Restore Defaults - Atkurti numatytuosius nustatymus - - - Close - Uždaryti - - - Point your mouse at an option to display its description. - Žymeklį nukreipkite ant pasirinkimo, kad pamatytumėte jo aprašymą. - - - 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. - Konsole kalba:\nNustato kalbą, kurią naudoja PS4 žaidimai.\nRekomenduojama nustatyti kalbą, kurią palaiko žaidimas, priklausomai nuo regiono. - - - Emulator Language:\nSets the language of the emulator's user interface. - Emuliatoriaus kalba:\nNustato emuliatoriaus vartotojo sąsajos kalbą. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Rodyti paleidimo ekraną:\nPaleidimo metu rodo žaidimo paleidimo ekraną (ypatingą vaizdą). - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Įjungti Discord Rich Presence:\nRodo emuliatoriaus ikoną ir susijusią informaciją jūsų Discord profilyje. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Vartotojo vardas:\nNustato PS4 paskyros vartotojo vardą, kuris gali būti rodomas kai kuriuose žaidimuose. - - - 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. - Žurnalo tipas:\nNustato, ar sinchronizuoti žurnalo lango išvestį našumui. Tai gali turėti neigiamą poveikį emuliacijai. - - - 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. - Žurnalo filtras:\nFiltruojamas žurnalas, kad būtų spausdinama tik konkreti informacija.\nPavyzdžiai: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Lygiai: Trace, Debug, Info, Warning, Error, Critical - šia tvarka, konkretus lygis nutildo visus ankstesnius lygius sąraše ir registruoja visus vėlesnius. - - - 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. - Atnaujinti:\nRelease: Oficialios versijos, išleidžiamos kiekvieną mėnesį, kurios gali būti labai pasenusios, tačiau yra patikimos ir išbandytos.\nNightly: Vystymo versijos, kuriose yra visos naujausios funkcijos ir taisymai, tačiau gali turėti klaidų ir būti mažiau stabilios. - - - 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. - Groti antraščių muziką:\nJei žaidimas tai palaiko, įjungia specialios muzikos grojimą, kai pasirinkite žaidimą 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. - Slėpti žymeklį:\nPasirinkite, kada žymeklis dings:\nNiekuomet: Visada matysite pelę.\nNeaktyvus: Nustatykite laiką, po kurio ji dings, kai bus neaktyvi.\nVisada: niekada nematysite pelės. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Slėpti tuščiosios eigos žymeklio skirtąjį laiką:\nTrukmė (sekundėmis), po kurios neaktyvus žymeklis pasislepia. - - - 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 - Niekada - - - Idle - Neaktyvus - - - Always - Visada - - - 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. - Grafikos įrenginys:\nDaugiagrafikėse sistemose pasirinkite GPU, kurį emuliatorius naudos iš išskleidžiamojo sąrašo,\n arba pasirinkite "Auto Select", kad jis būtų nustatytas automatiškai. - - - 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. - Plotis/Aukštis:\nNustato emuliatoriaus lango dydį paleidimo metu, kurį galima keisti žaidimo metu.\nTai skiriasi nuo žaidimo rezoliucijos. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Įjungti šešėlių išmetimą:\nTechninio derinimo tikslais saugo žaidimo šešėlius į aplanką juos renderuojant. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Įjungti tuščią GPU:\nTechninio derinimo tikslais išjungia žaidimo renderiavimą, tarsi nebūtų grafikos plokštės. - - - 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. - Žaidimų aplankai:\nAplankų sąrašas, kurį reikia patikrinti, ar yra įdiegtų žaidimų. - - - Add:\nAdd a folder to the list. - Pridėti:\nPridėti aplanką į sąrašą. - - - Remove:\nRemove a folder from the list. - Pašalinti:\nPašalinti aplanką iš sąrašo. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Įjungti derinimo išmetimą:\nIšsaugo importo ir eksporto simbolius bei failo antraštės informaciją apie šiuo metu vykdomą PS4 programą į katalogą. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Įjungti RenderDoc derinimą:\nJei įjungta, emuliatorius suteiks suderinamumą su Renderdoc, kad būtų galima užfiksuoti ir analizuoti šiuo metu renderuojamą kadrą. - - - 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - 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/nb_NO.ts b/src/qt_gui/translations/nb_NO.ts deleted file mode 100644 index 63baa4128..000000000 --- a/src/qt_gui/translations/nb_NO.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Om shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 er en eksperimentell åpen kildekode-emulator for PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Denne programvaren skal ikke brukes til å spille spill du ikke har fått lovlig. - - - - CheatsPatches - - Cheats / Patches for - Juks og programrettelser 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 - Juks og programrettelser er eksperimentelle.\nBruk med forsiktighet.\n\nLast ned juks individuelt ved å velge pakkebrønn og trykke på nedlastingsknappen.\nPå fanen programrettelser kan du laste ned alle programrettelser samtidig, velg hvilke du ønsker å bruke, og lagre valget ditt.\n\nSiden vi ikke utvikler juks eller programrettelser,\nmeld fra om feil til jukse eller programrettelse utvikleren.\n\nHar du utviklet en ny juks? Besøk:\n - - - No Image Available - Ingen bilde tilgjengelig - - - Serial: - Serienummer: - - - Version: - Versjon: - - - Size: - Størrelse: - - - Select Cheat File: - Velg juksefil: - - - Repository: - Pakkebrønn: - - - Download Cheats - Last ned juks - - - Delete File - Slett fil - - - No files selected. - Ingen filer valgt. - - - You can delete the cheats you don't want after downloading them. - Du kan slette juks du ikke ønsker etter å ha lastet dem ned. - - - Do you want to delete the selected file?\n%1 - Ønsker du å slette den valgte fila?\n%1 - - - Select Patch File: - Velg programrettelse-fila: - - - Download Patches - Last ned programrettelser - - - Save - Lagre - - - Cheats - Juks - - - Patches - Programrettelser - - - Error - Feil - - - No patch selected. - Ingen programrettelse valgt. - - - Unable to open files.json for reading. - Klarte ikke åpne files.json for lesing. - - - No patch file found for the current serial. - Ingen programrettelse-fil funnet for det aktuelle serienummeret. - - - Unable to open the file for reading. - Klarte ikke åpne fila for lesing. - - - Unable to open the file for writing. - Klarte ikke åpne fila for skriving. - - - Failed to parse XML: - Feil ved tolkning av XML: - - - Success - Vellykket - - - Options saved successfully. - Alternativer ble lagret. - - - Invalid Source - Ugyldig kilde - - - The selected source is invalid. - Den valgte kilden er ugyldig. - - - File Exists - Fila eksisterer - - - File already exists. Do you want to replace it? - Fila eksisterer allerede. Ønsker du å erstatte den? - - - Failed to save file: - Klarte ikke lagre fila: - - - Failed to download file: - Klarte ikke laste ned fila: - - - Cheats Not Found - Fant ikke juks - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Ingen juks funnet for dette spillet i denne versjonen av den valgte pakkebrønnen,prøv en annen pakkebrønn eller en annen versjon av spillet. - - - Cheats Downloaded Successfully - Juks ble lastet ned - - - 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. - Du har lastet ned juks for denne versjonen av spillet fra den valgte pakkebrønnen. Du kan prøve å laste ned fra en annen pakkebrønn, hvis det er tilgjengelig, vil det også være mulig å bruke det ved å velge fila fra lista. - - - Failed to save: - Klarte ikke lagre: - - - Failed to download: - Klarte ikke laste ned: - - - Download Complete - Nedlasting fullført - - - 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. - Programrettelser ble lastet ned! Alle programrettelsene tilgjengelige for alle spill har blitt lastet ned, det er ikke nødvendig å laste dem ned individuelt for hvert spill som skjer med juks. Hvis programrettelsen ikke vises, kan det hende at den ikke finnes for den spesifikke serienummeret og versjonen av spillet. - - - Failed to parse JSON data from HTML. - Klarte ikke analysere JSON-data fra HTML. - - - Failed to retrieve HTML page. - Klarte ikke hente HTML-siden. - - - The game is in version: %1 - Spillet er i versjon: %1 - - - The downloaded patch only works on version: %1 - Den nedlastede programrettelsen fungerer bare på versjon: %1 - - - You may need to update your game. - Du må kanskje oppdatere spillet ditt. - - - Incompatibility Notice - Inkompatibilitets-varsel - - - Failed to open file: - Klarte ikke åpne fila: - - - XML ERROR: - XML FEIL: - - - Failed to open files.json for writing - Kunne ikke åpne files.json for skriving - - - Author: - Forfatter: - - - Directory does not exist: - Mappa eksisterer ikke: - - - Failed to open files.json for reading. - Klarte ikke åpne files.json for lesing. - - - Name: - Navn: - - - Can't apply cheats before the game is started - Kan ikke bruke juks før spillet er startet. - - - Close - Lukk - - - - CheckUpdate - - Auto Updater - Automatisk oppdatering - - - Error - Feil - - - Network error: - Nettverksfeil: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Den automatiske oppdateringen tillater opptil 60 oppdateringssjekker per time.\nDu har nådd denne grensen. Prøv igjen senere. - - - Failed to parse update information. - Klarte ikke analysere oppdateringsinformasjon. - - - No pre-releases found. - Fant ingen forhåndsutgivelser. - - - Invalid release data. - Ugyldige utgivelsesdata. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Merk:</b><br><br> Fra og med versjon <b>0.12.0</b> vil Qt‑versjonen av emulatoren ikke lenger motta direkte oppdateringer.<br><br> Qt‑grensesnittet er imidlertid fortsatt tilgjengelig via den nye offisielle lansereren:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – basert på original koden til shadPS4.<br><br>Vi anbefaler å bytte til denne lansereren for å fortsette å motta oppdateringer. - - - Your version is already up to date! - Din versjon er allerede oppdatert! - - - Update Available - Oppdatering tilgjengelig - - - Update Channel - Oppdateringskanal - - - Current Version - Gjeldende versjon - - - Latest Version - Nyeste versjon - - - Do you want to update? - Vil du oppdatere? - - - Show Changelog - Vis endringslogg - - - Check for Updates at Startup - Se etter oppdateringer ved oppstart - - - Update - Oppdater - - - No - Nei - - - Hide Changelog - Skjul endringslogg - - - Changes - Endringer - - - Network error occurred while trying to access the URL - Nettverksfeil oppstod mens vi prøvde å få tilgang til URL - - - Download Complete - Nedlasting fullført - - - The update has been downloaded, press OK to install. - Oppdateringen er lastet ned, trykk OK for å installere. - - - Failed to save the update file at - Klarte ikke lagre oppdateringsfila på - - - Starting Update... - Starter oppdatering … - - - Failed to create the update script file - Klarte ikke opprette oppdateringsskriptfila - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Henter kompatibilitetsdata, vent litt. - - - Cancel - Avbryt - - - Loading... - Laster … - - - Error - Feil - - - Unable to update compatibility data! Try again later. - Klarte ikke oppdatere kompatibilitetsdata! Prøv igjen senere. - - - Unable to open compatibility_data.json for writing. - Klarte ikke åpne compatibility_data.json for skriving. - - - Unknown - Ukjent - - - Nothing - Ingenting - - - Boots - Starter opp - - - Menus - Menyene - - - Ingame - I spill - - - Playable - Spillbar - - - - ControlSettings - - Configure Controls - Kontrolleroppsett - - - D-Pad - Navigasjonsknapper - - - Up - Opp - - - Left - Venstre - - - Right - Høyre - - - Down - Ned - - - Left Stick Deadzone (def:2 max:127) - Venstre analog dødsone (def:2, maks:127) - - - Left Deadzone - Venstre dødsone - - - Left Stick - Venstre analog - - - Config Selection - Valg av oppsett - - - Common Config - Felles oppsett - - - Use per-game configs - Bruk oppsett per spill - - - Face Buttons - Handlingsknapper - - - Right Stick Deadzone (def:2, max:127) - Høyre analog dødsone (def:2, maks:127) - - - Right Deadzone - Høyre dødsone - - - Right Stick - Høyre analog - - - Color Adjustment - Fargejustering - - - Override Lightbar Color - Overstyr farge på lyslisten - - - Override Color - Overstyr farge - - - Unable to Save - Klarte ikke lagre - - - Cannot bind axis values more than once - Kan ikke tildele akseverdier mer enn en gang - - - Save - Lagre - - - Apply - Bruk - - - Restore Defaults - Gjenopprett standardinnstillinger - - - Cancel - Avbryt - - - unmapped - Ikke tildelt - - - Options - Options - - - Touchpad Left - Venstre berøringsplate - - - Touchpad Center - Midt berøringsplate - - - Touchpad Right - Høyre berøringsplate - - - Triangle - Triangel - - - Square - Firkant - - - Circle - Sirkel - - - Cross - Kryss - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Kan ikke tildele samme inndata mer enn én gang. Dupliserte inndata tildeles følgende taster: - -%1 - - - Press a button - Trykk på en knapp - - - Move analog stick - Flytt på analog stikke - - - L1 and L2 - L1 og L2 - - - Active Gamepad - Kontroller i bruk - - - Gamepad ID - Kontroller-ID - - - Default Gamepad - Standardkontroller - - - No default selected - Ingen standard valgt - - - n/a - Ikke tilgjengelig - - - Set Active Gamepad as Default - Bruk gjeldende kontroller som standard - - - Remove Default Gamepad - Fjern standardkontroller - - - R1 and R2 - R1 og R2 - - - ID: - ID: - - - Default Controller Selected - Standardkontroller valgt - - - Active controller set as default - Gjeldende kontroller satt som standard - - - Default Controller Removed - Fjernet standardkontroller - - - Default controller setting removed - Fjernet instillinger for standardkontroller - - - RED - RØD - - - GREEN - GRØNN - - - BLUE - BLÅ - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Rediger oppsett for tastatur, mus og kontroller - - - Use Per-Game configs - Bruk oppsett per spill - - - Error - Feil - - - Could not open the file for reading - Klarte ikke åpne fila for lesing - - - Could not open the file for writing - Klarte ikke åpne fila for skriving - - - Save Changes - Lagre endringer - - - Do you want to save changes? - Vil du lagre endringene? - - - Help - Hjelp - - - Do you want to reset your custom default config to the original default config? - Vil du tilbakestille alle dine tilpassede innstillinger til standarden? - - - Do you want to reset this config to your custom default config? - Vil du tilbakestille dette oppsettet til standard oppsett? - - - Reset to Default - Tilbakestill - - - - ElfViewer - - Open Folder - Åpne mappe - - - - GameInfoClass - - Loading game list, please wait :3 - Laster spilliste, vent litt :3 - - - Cancel - Avbryt - - - Loading... - Laster … - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Velg mappe - - - Directory to install games - Mappe for installering av spill - - - Browse - Bla gjennom - - - Error - Feil - - - Directory to install DLC - Mappe for installering av DLC - - - - GameListFrame - - Icon - Ikon - - - Name - Navn - - - Serial - Serienummer - - - Compatibility - Kompatibilitet - - - Region - Region - - - Firmware - Fastvare - - - Size - Størrelse - - - Version - Versjon - - - Path - Adresse - - - Play Time - Spilletid - - - Never Played - Aldri spilt - - - h - h - - - m - m - - - s - s - - - Compatibility is untested - kompatibilitet er utestet - - - Game does not initialize properly / crashes the emulator - Spillet initialiseres ikke riktig eller krasjer emulatoren - - - Game boots, but only displays a blank screen - Spillet starter, men viser bare en tom skjerm - - - Game displays an image but does not go past the menu - Spillet viser et bilde, men går ikke forbi menyen - - - Game has game-breaking glitches or unplayable performance - Spillet har spillbrytende feil eller uspillbar ytelse - - - Game can be completed with playable performance and no major glitches - Spillet kan fullføres med spillbar ytelse og uten store feil - - - Click to see details on github - Trykk for å se detaljer på GitHub - - - Last updated - Sist oppdatert - - - Favorite - Favoritter - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Lag snarvei - - - Cheats / Patches - Juks og programrettelser - - - SFO Viewer - SFO-viser - - - Trophy Viewer - Troféviser - - - Open Folder... - Åpne mappe … - - - Open Game Folder - Åpne spillmappa - - - Open Save Data Folder - Åpne lagrede datamappa - - - Open Log Folder - Åpne loggmappa - - - Copy info... - Kopier info … - - - Copy Name - Kopier navn - - - Copy Serial - Kopier serienummer - - - Copy Version - Kopier versjon - - - Copy Size - Kopier størrelse - - - Copy All - Kopier alt - - - Delete... - Slett … - - - Delete Game - Slett spill - - - Delete Update - Slett oppdatering - - - Delete DLC - Slett DLC - - - Delete Trophy - Slett trofé - - - Compatibility... - Kompatibilitet … - - - Shortcut creation - Snarvei opprettelse - - - Shortcut created successfully! - Snarvei opprettet! - - - Error - Feil - - - Error creating shortcut! - Feil ved opprettelse av snarvei! - - - Game - Spill - - - This game has no update to delete! - Dette spillet har ingen oppdatering å slette! - - - Update - Oppdater - - - This game has no DLC to delete! - Dette spillet har ingen DLC å slette! - - - DLC - DLC - - - Delete %1 - Slett %1 - - - Are you sure you want to delete %1's %2 directory? - Er du sikker på at du vil slette %1's %2 mappa? - - - Open Update Folder - Åpne oppdateringsmappa - - - Delete Save Data - Slett lagret data - - - This game has no update folder to open! - Dette spillet har ingen oppdateringsmappe å åpne! - - - No log file found for this game! - Fant ingen loggfil for dette spillet! - - - Failed to convert icon. - Klarte ikke konvertere ikon. - - - This game has no save data to delete! - Dette spillet har ingen lagret data å slette! - - - This game has no saved trophies to delete! - Dette spillet har ingen lagrede trofeer å slette! - - - Save Data - Lagret data - - - Trophy - Trofé - - - SFO Viewer for - SFO-viser for - - - Remove from Favorites - Fjern fra favoritter - - - Add to Favorites - Legg til i favoritter - - - Game-specific Settings... - Innstillinger for enkeltspill … - - - Configure Game-specific Settings - Sett opp innstillinger for enkeltspill - - - Create Game-specific Settings from Global Settings - Lag innstillinger for enkeltspill fra globale innstillinger - - - Delete Game-specific Settings - Slett innstillinger for enkeltspill - - - Update Database - Oppdater database - - - View Report - Vis rapport - - - Submit a Report - Send inn en rapport - - - Confirm deletion - Bekreft sletting - - - Delete game-specific settings? - Slett innstillinger for enkeltspill? - - - - HelpDialog - - Quickstart - Hurtigstart - - - FAQ - Ofte stilte spørsmål - - - Syntax - Syntaks - - - Special Bindings - Spesielle hurtigtaster - - - Keybindings - Hurtigtast - - - - Hotkeys - - Customize Hotkeys - Tilpass hurtigtaster - - - Controller Hotkeys - Kontroller hurtigtaster - - - Show FPS Counter - Vis FPS-teller - - - unmapped - Ikke tildelt - - - Quit Emulation - Avslutt emulering - - - Reload Button Mappings - Last knappeoppsett på nytt - - - Toggle Fullscreen - Slå av/på fullskjerm - - - Toggle Pause - Sett av/på pause - - - Keyboard Hotkeys - Tastatur hurtigtaster - - - Renderdoc Capture (for debugging only) - RenderDoc opptak (kun for feilsøking) - - - Toggle Mouse to Joystick Emulation - Slå av/på mus til styrespak emulering - - - Toggle Mouse to Gyro Emulation - Slå av/på mus til gyro emulering - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tips: Opptil tre inndata kan tildeles hver funksjon. - - - Save - Lagre - - - Apply - Bruk - - - Cancel - Avbryt - - - Restore Defaults - Gjenopprett standardinnstillinger - - - Unable to Save - Klarte ikke lagre - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Kan ikke tildele samme inndata mer enn én gang. Dupliserte inndata tildeles følgende taster: - -%1 - - - Waiting for inputs - Venter på inndata - - - - KBMSettings - - Configure Controls - Tastaturoppsett - - - D-Pad - Navigasjonsknapper - - - Up - Opp - - - unmapped - Ikke tildelt - - - Left - Venstre - - - Right - Høyre - - - Down - Ned - - - Left Analog Halfmode - Venstre analog halvmodus - - - hold to move left stick at half-speed - Hold for å bevege venstre analog med halv hastighet - - - Left Stick - Venstre analog - - - Config Selection - Valg av oppsett - - - Common Config - Felles oppsett - - - Use per-game configs - Bruk oppsett per spill - - - Text Editor - Skriveprogram - - - Help - Hjelp - - - Mouse to Joystick - Mus til styrespak - - - *press F7 ingame to activate - Trykk F7 i spillet for å bruke - - - Options - Options - - - Mouse Movement Parameters - Oppsett av musebevegelse - - - note: click Help Button/Special Keybindings for more information - Merk: Trykk på «Hjelp»-knappen for mer informasjon - - - Face Buttons - Handlingsknapper - - - Triangle - Triangel - - - Square - Firkant - - - Circle - Sirkel - - - Cross - Kryss - - - Right Analog Halfmode - Høyre analog halvmodus - - - hold to move right stick at half-speed - Hold for å bevege høyre analog med halv hastighet - - - Right Stick - Høyre analog - - - Speed Offset (def 0.125): - Hastighetsforskyvning (def 0,125): - - - Copy from Common Config - Kopier fra felles oppsettet - - - Deadzone Offset (def 0.50): - Dødsoneforskyvning (def 0,50): - - - Speed Multiplier (def 1.0): - Hastighetsmultiplikator (def 1,0): - - - Common Config Selected - Felles oppsett valgt - - - 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. - Denne knappen kopierer oppsettet fra felles oppsettet til den valgte profilen, og kan ikke brukes når den gjeldende brukte profilen er felles oppsettet. - - - Copy values from Common Config - Kopier verdier fra felles oppsettet - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Vil du overskrive eksisterende valg av oppsett med felles oppsettet? - - - Unable to Save - Klarte ikke lagre - - - Press a key - Trykk på en tast - - - Cannot set mapping - Klarte ikke tildele - - - Mousewheel cannot be mapped to stick outputs - Musehjulet kan ikke tildeles analogstikkene - - - Save - Lagre - - - Apply - Bruk - - - Restore Defaults - Gjenopprett standardinnstillinger - - - Cancel - Avbryt - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Kan ikke tildele samme inndata mer enn én gang. Dupliserte inndata tildeles følgende taster: - -%1 - - - Touchpad Left - Venstre berøringsplate - - - Touchpad Center - Midt berøringsplate - - - Touchpad Right - Høyre berøringsplate - - - - LogPresetsDialog - - Log Filter Presets - Forhåndsinnstillinger for loggfilter - - - Comment - Kommentar - - - Filter - Filter - - - Load - Last - - - Close - Lukk - - - Add a new preset after the selected row - Legg til ny forhåndsinnstilling etter den valgte raden - - - Remove selected presets - Fjern valgte forhåndsinnstillinger - - - Load the selected preset - Last inn den valgte forhåndsinnstillingen - - - - MainWindow - - Open/Add Elf Folder - Åpne eller legg til Elf-mappe - - - Boot Game - Start spill - - - Check for Updates - Se etter oppdateringer - - - About shadPS4 - Om shadPS4 - - - Configure... - Sett opp … - - - Recent Games - Nylige spill - - - Open shadPS4 Folder - Åpne shadPS4 mappa - - - Exit - Avslutt - - - Exit shadPS4 - Avslutt shadPS4 - - - Exit the application. - Avslutt programmet. - - - Show Game List - Vis spilliste - - - Game List Refresh - Oppdater spillista - - - Tiny - Bitteliten - - - Small - Liten - - - Medium - Middels - - - Large - Stor - - - List View - Listevisning - - - Grid View - Rutenettvisning - - - Elf Viewer - Elf-visning - - - Game Install Directory - Spillinstallasjons-mappe - - - Download Cheats/Patches - Last ned juks og programrettelser - - - Dump Game List - Dump spilliste - - - Trophy Viewer - Troféviser - - - No games found. Please add your games to your library first. - Fant ingen spill. Legg til spillene dine i biblioteket først. - - - Search... - Søk … - - - File - Fil - - - View - Oversikt - - - Game List Icons - Spilliste ikoner - - - Game List Mode - Spilliste modus - - - Settings - Innstillinger - - - Utils - Verktøy - - - Themes - Tema - - - Help - Hjelp - - - Dark - Mørk - - - Light - Lys - - - Green - Grønn - - - Blue - Blå - - - Violet - Lilla - - - toolBar - Verktøylinje - - - Game List - Spilliste - - - Download Cheats For All Installed Games - Last ned juks for alle installerte spill - - - Download Patches For All Games - Last ned programrettelser for alle spill - - - Download Complete - Nedlasting fullført - - - You have downloaded cheats for all the games you have installed. - Du har lastet ned juks for alle spillene du har installert. - - - Patches Downloaded Successfully! - Programrettelser ble lastet ned! - - - All Patches available for all games have been downloaded. - Programrettelser tilgjengelige for alle spill har blitt lastet ned. - - - Games: - Spill: - - - ELF files (*.bin *.elf *.oelf) - ELF-filer (*.bin *.elf *.oelf) - - - Game Boot - Spilloppstart - - - Only one file can be selected! - Kun én fil kan velges! - - - Run Game - Kjør spill - - - Eboot.bin file not found - Klarte ikke finne Eboot.bin-fila - - - Game is already running! - Spillet kjører allerede! - - - shadPS4 - shadPS4 - - - Play - Spill - - - Pause - Pause - - - Stop - Stopp - - - Restart - Start på nytt - - - Full Screen - Fullskjerm - - - Controllers - Kontroller - - - Keyboard - Tastatur - - - Refresh List - Oppdater lista - - - Resume - Gjenoppta - - - Show Labels Under Icons - Vis merkelapp under ikoner - - - Customize Hotkeys - Tilpass hurtigtaster - - - - SettingsDialog - - Settings - Innstillinger - - - General - Generelt - - - System - System - - - Console Language - Konsollspråk - - - Emulator Language - Emulatorspråk - - - Default tab when opening settings - Standardfanen når innstillingene åpnes - - - Show Game Size In List - Vis spillstørrelse i lista - - - Enable Discord Rich Presence - Bruk Discord Rich Presence - - - Username - Brukernavn - - - Trophy Key - Trofénøkkel - - - Trophy - Trofé - - - Open the custom trophy images/sounds folder - Åpne mappa med tilpassede bilder og lyder for trofé - - - Logger - Loggføring - - - Log Type - Loggføringstype - - - Log Filter - Loggfilter - - - Open Log Location - Åpne loggplassering - - - Input - Inndata - - - Cursor - Musepeker - - - Hide Cursor - Skjul musepeker - - - Hide Cursor Idle Timeout - Skjul musepeker ved inaktivitet - - - Microphone - Mikrofon - - - None - Ingen - - - Default Device - Standard enhet - - - s - s - - - Controller - Kontroller - - - Graphics - Grafikk - - - GUI - Grensesnitt - - - User - Bruker - - - Graphics Device - Grafikkenhet - - - Advanced - Avansert - - - Enable Shaders Dumping - Bruk skyggeleggerdumping - - - Enable NULL GPU - Bruk NULL GPU - - - Enable HDR - Bruk HDR - - - Paths - Mapper - - - Game Folders - Spillmapper - - - Add... - Legg til … - - - Remove - Fjern - - - Debug - Feilsøking - - - Enable Debug Dumping - Bruk feilsøkingsdumping - - - Enable Vulkan Validation Layers - Bruk Vulkan Validation Layers - - - Enable Vulkan Synchronization Validation - Bruk Vulkan Synchronization Validation - - - Enable RenderDoc Debugging - Bruk RenderDoc feilsøking - - - Enable Crash Diagnostics - Bruk krasjdiagnostikk - - - Collect Shaders - Lagre skyggeleggere - - - Copy GPU Buffers - Kopier GPU-buffere - - - Host Debug Markers - Vertsfeilsøkingsmarkører - - - Guest Debug Markers - Gjestefeilsøkingsmarkører - - - Enable Readbacks - Bruk tilbakelesninger - - - Enable Readback Linear Images - Bruk tilbakelesninger av lineære bilder - - - Update - Oppdatering - - - Check for Updates at Startup - Se etter oppdateringer ved oppstart - - - Always Show Changelog - Vis alltid endringsloggen - - - Update Channel - Oppdateringskanal - - - Check for Updates - Se etter oppdateringer - - - Title Music - Tittelmusikk - - - Disable Trophy Notification - Slå av trofévarsler - - - Background Image - Bakgrunnsbilde - - - Show Background Image - Vis bakgrunnsbilde - - - Opacity - Synlighet - - - Play title music - Spill av tittelmusikk - - - Update Compatibility Database On Startup - Oppdater database ved oppstart - - - Game Compatibility - Spill kompatibilitet - - - Display Compatibility Data - Vis kompatibilitets-data - - - Update Compatibility Database - Oppdater kompatibilitets-database - - - Volume - Volum - - - Save - Lagre - - - Apply - Bruk - - - Restore Defaults - Gjenopprett standardinnstillinger - - - Close - Lukk - - - Point your mouse at an option to display its description. - Pek musen over et alternativ for å vise beskrivelsen. - - - 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. - Konsollspråk:\nAngir språket som PS4-spillet bruker.\nDet anbefales å sette dette til et språk som spillet støtter, noe som kan variere avhengig av region. - - - Emulator Language:\nSets the language of the emulator's user interface. - Emulatorspråket:\nAngir språket for emulatorens brukergrensesnitt. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Vis velkomstbilde:\nViser spillets velkomstbilde (et spesialbilde) når spillet starter. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Bruk Discord Rich Presence:\nViser emulatorikonet og relevant informasjon på Discord-profilen din. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Brukernavn:\nAngir brukernavnet for PS4-kontoen, som kan vises av enkelte spill. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Trofénøkkel:\nNøkkel brukes til å dekryptere trofeer. Må hentes fra din konsoll (jailbroken).\nMå bare inneholde sekskantede tegn. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Loggføringstype:\nAngir om loggvinduets utdata skal synkroniseres for ytelse. Kan ha negative effekter for emulatoren. - - - 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. - Loggfilter:\nFiltrerer loggen for å kun skrive ut spesifikk informasjon.\nEksempler: «Core:Trace» «Lib.Pad:Debug Common.Filesystem:Error» «*:Critical» \nNivåer: Trace, Debug, Info, Warning, Error, Critical - i denne rekkefølgen, et spesifikt nivå demper alle tidligere nivåer i lista og loggfører alle nivåer etter det. - - - 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. - Oppdatering:\nOffisiell: Offisielle versjoner utgitt hver måned som kan være veldig utdaterte, men er mer pålitelige og testet.\nNattlig: Utviklingsversjoner som har alle de nyeste funksjonene og feilrettingene, men som kan inneholde feil og er mindre stabile. - - - Background Image:\nControl the opacity of the game background image. - Bakgrunnsbilde:\nEndrer synligheten til spillets bakgrunnsbilde. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Spill av tittelmusikk:\nHvis et spill støtter det, så brukes det spesiell musikk når du velger spillet i menyen. - - - 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). - Slå av trofévarsler:\nFjerner trofévarsler i spillet. Troféfremgang kan fortsatt vises ved hjelp av troféviseren (høyreklikk på spillet i hovedvinduet). - - - 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. - Skjul musepeker:\nVelg når musepekeren skal forsvinne:\nAldri: Du vil alltid se musepekeren.\nInaktiv: Sett en tid for at den skal forsvinne etter å ha vært inaktiv.\nAlltid: du vil aldri se musepekeren. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Sett en tid for når musepekeren forsvinner etter å ha vært inaktiv. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Vis kompatibilitets-data:\nViser informasjon om spillkompatibilitet i tabellvisning. Bruk «Oppdater database ved oppstart» for oppdatert informasjon. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Oppdater database ved oppstart:\nOppdaterer kompatibilitets-databasen automatisk når shadPS4 starter. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Oppdater kompatibilitets-database:\nOppdater kompatibilitets-databasen nå. - - - Never - Aldri - - - Idle - Inaktiv - - - Always - Alltid - - - 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. - Grafikkenhet:\nSystemer med flere GPU-er, kan emulatoren velge hvilken enhet som skal brukes fra rullegardinlista,\neller bruk «Velg automatisk». - - - 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. - Bredde / Høyde:\nAngir størrelsen på emulatorvinduet ved oppstart, som kan endres under spillingen.\nDette er annerledes fra oppløsningen i spillet. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Bruk skyggeleggerdumping:\nFor teknisk feilsøking lagrer skyggeleggerne fra spillet i en mappe mens de gjengis. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Bruk Null GPU:\nFor teknisk feilsøking deaktiverer spillets-gjengivelse som om det ikke var noen grafikkort. - - - 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. - Bruk HDR:\nTillater bruk av HDR i spill som støtter det.\nSkjermen din må ha støtte for BT2020 PQ fargerom og RGB10A2 swapchain-format. - - - Game Folders:\nThe list of folders to check for installed games. - Spillmapper:\nListe over mapper som brukes for å se etter installerte spill. - - - Add:\nAdd a folder to the list. - Legg til:\nLegg til en mappe til lista. - - - Remove:\nRemove a folder from the list. - Fjern:\nFjern en mappe fra lista. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Bruk feilsøkingsdumping:\nLagrer import- og eksport-symbolene og filoverskrifts-informasjonen til det nåværende kjørende PS4-programmet i en mappe. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Bruk RenderDoc feilsøking:\nHvis brukt, vil emulatoren gi kompatibilitet med RenderDoc for å tillate opptak og analyse av det nåværende gjengitte bildet. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Lagre skyggeleggere:\nDu trenger dette for å redigere skyggeleggerne med feilsøkingsmenyen (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Bruk tilbakelesninger:\nTa i bruk tilbakelesninger og tilbakeskrivninger.\nDette kreves av noen spill for å fungere ordentlig.\nKan forårsake stabilitets- og/eller ytelsesproblemer. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Bruk tilbakelesninger av lineære bilder:\nTar i bruk asynkron nedlasting av lineære bilder modifisert av GPU-en.\nKan rette feil i noen spill. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Kopier GPU-buffere:\nKommer rundt løpsforhold som involverer GPU-innsendinger.\nKan muligens hjelpe med PM4 type 0 krasj. - - - 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. - Vertsfeilsøkingsmarkører:\nSetter inn emulator-side informasjon som markører for spesifikke AMDGPU-kommandoer rundt Vulkan-kommandoer, i tillegg til å gi ressurser feilrettingsnavn.\nHvis dette brukes, burde du også bruke krasjdiagnostikk.\nNyttig for programmer som 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. - Gjestefeilsøkingsmarkører:\nSetter inn eventuelle feilsøkingsmarkører spillet selv har lagt til kommandobufferen.\nHvis dette brukes, burde du også bruke krasjdiagnostikk.\nNyttig for programmer som RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Lagrede datamappe:\nListe over data shadPS4 lagrer. - - - Browse:\nBrowse for a folder to set as the save data path. - Endre mappe:\nEndrer hvilken mappe shadPS4 skal lagre data til. - - - Release - Offisiell - - - Nightly - Nattlig - - - Set the volume of the background music. - Sett volumet til bakgrunnsmusikken. - - - Enable Motion Controls - Bruk bevegelsesstyring - - - Save Data Path - Lagrede datamappe - - - Browse - Endre mappe - - - async - asynkron - - - sync - synkron - - - Auto Select - Velg automatisk - - - Directory to install games - Mappe for installering av spill - - - Directory to save data - Mappe for lagring av data - - - Video - Video - - - Display Mode - Skjermmodus - - - Windowed - I vindu - - - Fullscreen - Fullskjerm - - - Fullscreen (Borderless) - Fullskjerm i vindu - - - Window Size - Vindustørrelse - - - W: - B: - - - H: - H: - - - Separate Log Files - Separate loggfiler - - - Separate Log Files:\nWrites a separate logfile for each game. - Separate loggfiler:\nOppretter en separat loggfil for hvert spill. - - - Trophy Notification Position - Trofévarsel plassering - - - Left - Venstre - - - Right - Høyre - - - Top - Øverst - - - Bottom - Nederst - - - Notification Duration - Varslingsvarighet - - - Portable User Folder - Separat brukermappe - - - Create Portable User Folder from Common User Folder - Lag ny separat brukermappe fra fellesbrukermappa - - - 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. - Separat brukermappe:\n Lagrer shadPS4-innstillinger og data som kun brukes til shadPS4 programmet i gjeldende mappe. Start programmet på nytt etter opprettelsen av mappa for å ta den i bruk. - - - Cannot create portable user folder - Klarte ikke opprette separat brukermappe - - - %1 already exists - %1 finnes allerede - - - Portable user folder created - Separat brukermappe opprettet - - - %1 successfully created. - %1 opprettet. - - - 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. - Åpne mappa med tilpassede bilder og lyder for trofé:\nDu kan legge til tilpassede bilder til trofeer og en lyd.\nLegg filene til custom_trophy med følgende navn:\ntrophy.wav ELLER trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nMerk: Lyden avspilles kun i Qt-versjonen. - - - * Unsupported Vulkan Version - *Ustøttet Vulkan-versjon - - - Experimental Features - Eksperimentelle funksjoner - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - Advarsel: Disse funksjonene er eksperimentelle og bør ikke tas i bruk med mindre du har fått beskjed om, eller et spill krever det. Spør i shadPS4-Discord-serveren dersom du har spørsmål. - - - Enable Background Controller Input - Bruk kontroller inndata ved mangel på fokus - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Bruk kontroller inndata ved mangel på fokus:\n Tillater shadPS4 å oppdage kontroller inndata når spillvinduet ikke er i fokus. Nyttig for flerskjerm-oppsett. - - - 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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - Krasjdiagnostikk:\nOppretter en .yaml-fil med informasjon om Vulkan-tilstanden ved krasj.\nNyttig for feilsøking 'Device lost' feil. Hvis dette brukes, burde du aktivere vert OG gjestefeilsøkingsmarkører.\nDu trenger Vulkan Validation Layers og Vulkan SDK for at dette skal fungere. - - - Enable Logging - Bruk loggføring - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Bruk loggføring:\nTar i bruk loggføring.\nIkke endre dette hvis du ikke vet hva du gjør!\nNår du spør om hjelp vær sikker på at denne innstillingen er «påslått». - - - Present Mode - Presentasjonsmodus - - - Mailbox (Vsync) - «Mailbox» (Vsync) - - - Fifo (Vsync) - «FIFO» (Vsync) - - - Immediate (No Vsync) - Umiddelbart (Ingen Vsync) - - - DLC Folder - DLC-mappe - - - Select the DLC folder - Velg DLC-mappa - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Presentasjonsmodus:\nSetter opp hvordan video-utdata skal presenteres til skjermen.\n\n«Mailbox»: Bildene synkroniseres med skjermens oppdateringsfrekvens. Nye bilder erstatter gamle bilder i køen. Reduserer ventetid men kan hoppe over bilder hvis de er forsinket.\n«FIFO»: Bildene synkroniseres med skjermens oppdateringsfrekvens. Nye bilder settes i kø bak gamle bilder. Dette sikrer at alle bildene vises men kan øke ventetid.\nUmiddelbart: Bildene vises til skjermen med en gang når de er klare. Kan forutsake bilderiving. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC-mappe:\nMappa hvor spill-DLC-ene lastes fra. - - - Browse:\nBrowse for a folder to set as the DLC path. - Bla gjennom:\nLet etter en mappe for å angi den som DLC-adressen. - - - FSR Settings - FSR-innstillinger - - - Enable FSR - Bruk FSR - - - Enable RCAS (sharpening) - Bruk RCAS (tydeliggjøring) - - - RCAS Attenuation: - RCAS demping: - - - Load Presets... - Last inn forhåndsinnstillinger … - - - Log - Logg - - - Open Log Location:\nOpen the folder where the log file is saved. - Åpne loggplassering:\nÅpne mappa der loggfilen er lagret. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Mikrofon:\nIngen: Tar ikke mikrofonen i bruk.\nStandard enhet: Tar i bruk standardenheten som angitt av systemet.\nEller velg mikrofonen manuelt fra lista. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volum:\nJuster volum for spill på et globalt nivå, skalaen går fra 0-500%, standarden er 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Standardfanen når innstillingene åpnes:\nVelg hvilken fane som skal åpnes, standarden er «Generelt». - - - Show Game Size In List:\nThere is the size of the game in the list. - Vis spillstørrelse i lista:\nViser størrelsen på spillene i spillista. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Bruk bevegelsesstyring:\nNår i bruk, vil den bruke kontrollerens bevegelsesstyring hvis det støttes. - - - Vblank Frequency - Vblank-frekvens - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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-frekvens:\nBildehastigheten som emulatoren oppdaterer ved, (60 hz er standard, enten om spillet kjøres med 30 eller 60 fps). Endring av dette kan ha negative effekter, som å øke hastigheten av spillet, eller ødelegge kritisk spillfunksjonalitet som ikke forventer at dette endres! - - - Enable Direct Memory Access - Bruk direkte minnetilgang - - - Enable Devkit Console Mode - Bruk utvikler-konsollmodus - - - Set "PSN signed-in" to True - Bruk emulering av PSN-tilgang - - - Set "Network Connected" to True - Bruk emulering av nettverkstilgang - - - Miscellaneous - Diverse - - - Frontend - Grensesnitt - - - Experimental - Eksperimentell - - - Show Splash Screen When Launching Game - Vis velkomstbilde ved oppstart av spill - - - General Frontend Settings - Grensesnitt-innstillinger - - - Enable PS4 Neo Mode - Bruk PS4 Neo-modus - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Bruk direkte minnetilgang:\nTar i bruk vilkårlig minnetilgang fra GPU-en til CPU-minne. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Bruk PS4 Neo-modus:\nTar i bruk emulering av PS4 Pro-modus og økt minnestørrelse. Forårsaker for tiden ustabilitet i et stort antall testede spill. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Bruk utvikler-konsollmodus:\nTar i bruk økt minnekapasitet som i en utvikler-konsoll. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Bruk emulering av nettverkstilgang:\nTvinger spill å oppdage nettverkstilgang. Faktisk funksjonalitet støttes ikke. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Bruk emulering av PSN-tilgang:\nTvinger spill å oppdage PSN-tilgang. Faktisk funksjonalitet støttes ikke. - - - 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.\nYou need the Vulkan SDK for this to work. - Bruk Vulkan Validation Layers:\nTar i bruk et system som bekrefter tilstanden til Vulkan-gjengiveren og loggfører informasjon om dens indre tilstand.\n Dette vil redusere ytelsen og sannsynligvis endre emulatorens atferd.\nDu trenger Vulkan SDK for at dette skal fungere. - - - 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.\nYou need the Vulkan SDK for this to work. - Bruk Vulkan Synchronization Validation:\nTar i bruk et system som bekrefter frekvens tiden av Vulkan-gjengivelseoppgaver.\nDette vil redusere ytelsen og sannsynligvis endre emulatorens atferd.\nDu trenger Vulkan SDK for at dette skal fungere. - - - Audio Device (general) - Lydenhet (generelt) - - - Audio Device (DS4 speaker) - Lydenhet (DS4-høyttaler) - - - - TrophyViewer - - Trophy Viewer - Troféviser - - - Select Game: - Velg spill: - - - Progress - Fremdrift - - - Show Earned Trophies - Vis opptjente trofeer - - - Show Not Earned Trophies - Vis ikke opptjente trofeer - - - Show Hidden Trophies - Vis skjulte trofeer - - - diff --git a/src/qt_gui/translations/nl_NL.ts b/src/qt_gui/translations/nl_NL.ts deleted file mode 100644 index bf2df36db..000000000 --- a/src/qt_gui/translations/nl_NL.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Over 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 zijn experimenteel.\nGebruik met voorzichtigheid.\n\nDownload cheats afzonderlijk door het repository te selecteren en op de downloadknop te klikken.\nOp het tabblad Patches kun je alle patches tegelijk downloaden, kiezen welke je wilt gebruiken en je selectie opslaan.\n\nAangezien wij de Cheats/Patches niet ontwikkelen,\nmeld problemen bij de auteur van de cheat.\n\nHeb je een nieuwe cheat gemaakt? Bezoek:\n - - - No Image Available - Geen afbeelding beschikbaar - - - Serial: - Serie: - - - Version: - Versie: - - - Size: - Grootte: - - - Select Cheat File: - Selecteer cheatbestand: - - - Repository: - Repository: - - - Download Cheats - Download cheats - - - Delete File - Bestand verwijderen - - - No files selected. - Geen bestanden geselecteerd. - - - You can delete the cheats you don't want after downloading them. - Je kunt de cheats die je niet wilt verwijderen nadat je ze hebt gedownload. - - - Do you want to delete the selected file?\n%1 - Wil je het geselecteerde bestand verwijderen?\n%1 - - - Select Patch File: - Selecteer patchbestand: - - - Download Patches - Download patches - - - Save - Opslaan - - - Cheats - Cheats - - - Patches - Patches - - - Error - Fout - - - No patch selected. - Geen patch geselecteerd. - - - Unable to open files.json for reading. - Kan files.json niet openen voor lezen. - - - No patch file found for the current serial. - Geen patchbestand gevonden voor het huidige serienummer. - - - Unable to open the file for reading. - Kan het bestand niet openen voor lezen. - - - Unable to open the file for writing. - Kan het bestand niet openen voor schrijven. - - - Failed to parse XML: - XML parsing mislukt: - - - Success - Succes - - - Options saved successfully. - Opties succesvol opgeslagen. - - - Invalid Source - Ongeldige bron - - - The selected source is invalid. - De geselecteerde bron is ongeldig. - - - File Exists - Bestand bestaat - - - File already exists. Do you want to replace it? - Bestand bestaat al. Wil je het vervangen? - - - Failed to save file: - Kan bestand niet opslaan: - - - Failed to download file: - Kan bestand niet downloaden: - - - Cheats Not Found - Cheats niet gevonden - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Geen cheats gevonden voor deze game in deze versie van de geselecteerde repository.Probeer een andere repository of een andere versie van het spel. - - - Cheats Downloaded Successfully - Cheats succesvol gedownload - - - 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. - Je hebt cheats succesvol gedownload voor deze versie van het spel uit de geselecteerde repository. Je kunt proberen te downloaden van een andere repository. Als deze beschikbaar is, kan het ook worden gebruikt door het bestand uit de lijst te selecteren. - - - Failed to save: - Opslaan mislukt: - - - Failed to download: - Downloaden mislukt: - - - Download Complete - Download voltooid - - - 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 succesvol gedownload! Alle beschikbare patches voor alle spellen zijn gedownload. Het is niet nodig om ze afzonderlijk te downloaden voor elk spel dat cheats heeft. Als de patch niet verschijnt, kan het zijn dat deze niet bestaat voor het specifieke serienummer en de versie van het spel. - - - Failed to parse JSON data from HTML. - Kan JSON-gegevens uit HTML niet parseren. - - - Failed to retrieve HTML page. - Kan HTML-pagina niet ophalen. - - - The game is in version: %1 - Het spel is in versie: %1 - - - The downloaded patch only works on version: %1 - De gedownloade patch werkt alleen op versie: %1 - - - You may need to update your game. - Misschien moet je je spel bijwerken. - - - Incompatibility Notice - Incompatibiliteitsmelding - - - Failed to open file: - Kan bestand niet openen: - - - XML ERROR: - XML FOUT: - - - Failed to open files.json for writing - Kan files.json niet openen voor schrijven - - - Author: - Auteur: - - - Directory does not exist: - Map bestaat niet: - - - Failed to open files.json for reading. - Kan files.json niet openen voor lezen. - - - Name: - Naam: - - - Can't apply cheats before the game is started - Je kunt geen cheats toepassen voordat het spel is gestart. - - - Close - Sluiten - - - - CheckUpdate - - Auto Updater - Automatische updater - - - Error - Fout - - - Network error: - Netwerkfout: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - De automatische updater staat tot 60 updatecontroles per uur toe.\nJe hebt deze limiet bereikt. Probeer het later opnieuw. - - - Failed to parse update information. - Kon update-informatie niet parseren. - - - No pre-releases found. - Geen pre-releases gevonden. - - - Invalid release data. - Ongeldige releasegegevens. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Opmerking:</b><br><br> Vanaf versie <b>0.12.0</b> ontvangt de Qt‑versie van de emulator geen directe updates meer.<br><br> De Qt‑interface blijft echter beschikbaar via de nieuwe officiële launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – gebaseerd op de oorspronkelijke shadPS4-broncode.<br><br> We raden aan over te stappen op deze launcher om updates te blijven ontvangen. - - - Your version is already up to date! - Uw versie is al up-to-date! - - - Update Available - Update beschikbaar - - - Update Channel - Updatekanaal - - - Current Version - Huidige versie - - - Latest Version - Laatste versie - - - Do you want to update? - Wilt u updaten? - - - Show Changelog - Toon changelog - - - Check for Updates at Startup - Bij opstart op updates controleren - - - Update - Bijwerken - - - No - Nee - - - Hide Changelog - Verberg changelog - - - Changes - Wijzigingen - - - Network error occurred while trying to access the URL - Netwerkfout opgetreden tijdens toegang tot de URL - - - Download Complete - Download compleet - - - The update has been downloaded, press OK to install. - De update is gedownload, druk op OK om te installeren. - - - Failed to save the update file at - Kon het updatebestand niet opslaan op - - - Starting Update... - Starten van update... - - - Failed to create the update script file - Kon het update-scriptbestand niet maken - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Compatibiliteitsgegevens ophalen, even geduld - - - Cancel - Annuleren - - - Loading... - Laden... - - - Error - Fout - - - Unable to update compatibility data! Try again later. - Kan compatibiliteitsgegevens niet bijwerken! Probeer het later opnieuw. - - - Unable to open compatibility_data.json for writing. - Kan compatibility_data.json niet openen voor schrijven. - - - Unknown - Onbekend - - - Nothing - Niets - - - Boots - Laarsjes - - - Menus - Menu's - - - Ingame - In het spel - - - Playable - Speelbaar - - - - 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 - - - Face Buttons - Face Buttons - - - 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 - - - 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 - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - 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 - Pictogram - - - Name - Naam - - - Serial - Serienummer - - - Compatibility - Compatibility - - - Region - Regio - - - Firmware - Firmware - - - Size - Grootte - - - Version - Versie - - - Path - Pad - - - Play Time - Speeltijd - - - 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 - Klik om details op GitHub te bekijken - - - Last updated - Laatst bijgewerkt - - - Favorite - Favorite - - - - 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... - Map openen... - - - Open Game Folder - Open Spelmap - - - Open Save Data Folder - Open Map voor Opslagdata - - - Open Log Folder - Open Logmap - - - 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... - - - 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 - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Open/Add Elf Folder - - - Boot Game - Boot Game - - - Check for Updates - Controleren op 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 - Lijst met spellen - - - Download Cheats For All Installed Games - Download cheats voor alle geïnstalleerde spellen - - - Download Patches For All Games - Download patches voor alle spellen - - - Download Complete - Download voltooid - - - You have downloaded cheats for all the games you have installed. - Je hebt cheats gedownload voor alle spellen die je hebt geïnstalleerd. - - - Patches Downloaded Successfully! - Patches succesvol gedownload! - - - All Patches available for all games have been downloaded. - Alle patches voor alle spellen zijn gedownload. - - - Games: - Spellen: - - - ELF files (*.bin *.elf *.oelf) - ELF-bestanden (*.bin *.elf *.oelf) - - - Game Boot - Spelopstart - - - Only one file can be selected! - Je kunt slechts één bestand selecteren! - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - System - - - Console Language - Console Language - - - Emulator Language - Emulator Language - - - Default tab when opening settings - Standaardtabblad bij het openen van instellingen - - - Show Game Size In List - Toon grootte van het spel in de lijst - - - Enable Discord Rich Presence - Discord Rich Presence inschakelen - - - 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 - Loglocatie openen - - - Input - Invoer - - - Cursor - Cursor - - - Hide Cursor - Cursor verbergen - - - Hide Cursor Idle Timeout - Inactiviteit timeout voor het verbergen van de cursor - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Controller - - - Graphics - Graphics - - - GUI - Interface - - - User - Gebruiker - - - Graphics Device - Graphics Device - - - Advanced - Advanced - - - Enable Shaders Dumping - Enable Shaders Dumping - - - Enable NULL GPU - Enable NULL GPU - - - Enable HDR - Enable HDR - - - Paths - Pad - - - Game Folders - Spelmappen - - - Add... - Toevoegen... - - - Remove - Verwijderen - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Bijwerken - - - Check for Updates at Startup - Bij opstart op updates controleren - - - Always Show Changelog - Altijd changelog tonen - - - Update Channel - Updatekanaal - - - Check for Updates - Controleren op updates - - - 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 - Titelmuziek afspelen - - - 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 - Opslaan - - - Apply - Toepassen - - - Restore Defaults - Standaardinstellingen herstellen - - - Close - Sluiten - - - Point your mouse at an option to display its description. - Wijzig de muisaanwijzer naar een optie om de beschrijving weer te geven. - - - 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 Taal:\nStelt de taal in die het PS4-spel gebruikt.\nHet wordt aanbevolen om dit in te stellen op een taal die het spel ondersteunt, wat kan variëren per regio. - - - Emulator Language:\nSets the language of the emulator's user interface. - Emulator Taal:\nStelt de taal van de gebruikersinterface van de emulator in. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Opstartscherm weergeven:\nToont het opstartscherm van het spel (een speciale afbeelding) tijdens het starten van het spel. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Discord Rich Presence inschakelen:\nToont het emulatoricoon en relevante informatie op je Discord-profiel. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Gebruikersnaam:\nStelt de gebruikersnaam van het PS4-account in, die door sommige games kan worden weergegeven. - - - 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. - Logtype:\nStelt in of de uitvoer van het logvenster moet worden gesynchroniseerd voor prestaties. Kan nadelige effecten hebben op emulatie. - - - 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. - Logfilter:\nFiltert het logboek om alleen specifieke informatie af te drukken.\nVoorbeelden: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Niveaus: Trace, Debug, Info, Waarschuwing, Fout, Kritiek - in deze volgorde, een specifiek niveau dempt alle voorgaande niveaus in de lijst en logt alle niveaus daarna. - - - 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. - Updateren:\nRelease: Officiële versies die elke maand worden uitgebracht, die zeer verouderd kunnen zijn, maar betrouwbaar en getest zijn.\nNightly: Ontwikkelingsversies die alle nieuwste functies en bugfixes bevatten, maar mogelijk bugs bevatten en minder stabiel zijn. - - - 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. - Speel titelsong:\nAls een game dit ondersteunt, wordt speciale muziek afgespeeld wanneer je het spel in de GUI selecteert. - - - 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. - Verberg cursor:\nKies wanneer de cursor verdwijnt:\nNooit: Je ziet altijd de muis.\nInactief: Stel een tijd in waarna deze verdwijnt na inactiviteit.\nAltijd: je ziet de muis nooit. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Stel een tijd in voor wanneer de muis verdwijnt na inactiviteit. - - - 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 - Nooit - - - Idle - Inactief - - - Always - Altijd - - - 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. - Grafische adapter:\nIn systemen met meerdere GPU's, kies de GPU die de emulator uit de vervolgkeuzelijst moet gebruiken,\nof kies "Auto Select" om dit automatisch in te stellen. - - - 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. - Breedte/Hoogte:\nStelt de grootte van het emulatorvenster bij het opstarten in, wat tijdens het spelen kan worden gewijzigd.\nDit is anders dan de resolutie in de game. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Shaderdump inschakelen:\nVoor technische foutopsporing slaat het de shaders van de game op in een map terwijl ze worden gerenderd. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Null GPU inschakelen:\nVoor technische foutopsporing schakelt de game-rendering uit alsof er geen grafische kaart is. - - - 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. - Spelmap:\nDe lijst met mappen om te controleren op geïnstalleerde spellen. - - - Add:\nAdd a folder to the list. - Toevoegen:\nVoeg een map toe aan de lijst. - - - Remove:\nRemove a folder from the list. - Verwijderen:\nVerwijder een map uit de lijst. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Foutopsporing dump inschakelen:\nSlaat de import- en export-symbolen en de bestandsheaderinformatie van de momenteel draaiende PS4-toepassing op in een map. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - RenderDoc foutopsporing inschakelen:\nAls ingeschakeld, biedt de emulator compatibiliteit met Renderdoc om de momenteel gerenderde frame vast te leggen en te analyseren. - - - 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - 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/pl_PL.ts b/src/qt_gui/translations/pl_PL.ts deleted file mode 100644 index d8bc2e63b..000000000 --- a/src/qt_gui/translations/pl_PL.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - O programie - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 to eksperymentalny otwartoźródłowy emulator konsoli PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - To oprogramowanie nie służy do grania w gry pochodzące z nielegalnego źródła. - - - - CheatsPatches - - Cheats / Patches for - Kody / Poprawki dla - - - 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 - Cheaty/Patche są eksperymentalne.\nUżywaj ich ostrożnie.\n\nPobierz cheaty pojedynczo, wybierając repozytorium i klikając przycisk pobierania.\nNa zakładce Patches możesz pobrać wszystkie patche jednocześnie, wybrać, które chcesz używać, i zapisać wybór.\n\nPonieważ nie rozwijamy Cheats/Patches,\nproszę zgłosić problemy do autora cheatu.\n\nStworzyłeś nowy cheat? Odwiedź:\n - - - No Image Available - Brak dostępnego obrazu - - - Serial: - Numer seryjny: - - - Version: - Wersja: - - - Size: - Rozmiar: - - - Select Cheat File: - Wybierz plik kodu: - - - Repository: - Repozytorium: - - - Download Cheats - Pobierz kody - - - Delete File - Usuń plik - - - No files selected. - Nie wybrano pliku. - - - You can delete the cheats you don't want after downloading them. - Możesz usunąć kody, których nie chcesz po ich pobraniu. - - - Do you want to delete the selected file?\n%1 - Czy chcesz usunąć wybrany plik?\n%1 - - - Select Patch File: - Wybierz plik poprawki: - - - Download Patches - Pobierz poprawki - - - Save - Zapisz - - - Cheats - Kody - - - Patches - Poprawki - - - Error - Błąd - - - No patch selected. - Nie wybrano poprawki. - - - Unable to open files.json for reading. - Nie można otworzyć pliku files.json do odczytu. - - - No patch file found for the current serial. - Nie znaleziono pliku poprawki dla bieżącego numeru seryjnego. - - - Unable to open the file for reading. - Nie można otworzyć pliku do odczytu. - - - Unable to open the file for writing. - Nie można otworzyć pliku do zapisu. - - - Failed to parse XML: - Nie udało się przeanalizować XML: - - - Success - Sukces - - - Options saved successfully. - Opcje zostały pomyślnie zapisane. - - - Invalid Source - Nieprawidłowe źródło - - - The selected source is invalid. - Wybrane źródło jest nieprawidłowe. - - - File Exists - Plik istnieje - - - File already exists. Do you want to replace it? - Plik już istnieje. Czy chcesz go zastąpić? - - - Failed to save file: - Nie udało się zapisać pliku: - - - Failed to download file: - Nie udało się pobrać pliku: - - - Cheats Not Found - Nie znaleziono kodów - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Nie znaleziono kodów do tej gry w tej wersji wybranego repozytorium. Spróbuj innego repozytorium lub innej wersji gry. - - - Cheats Downloaded Successfully - Kody pobrane pomyślnie - - - 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. - Pomyślnie pobrano kody dla tej wersji gry z wybranego repozytorium. Możesz spróbować pobrać z innego repozytorium. Jeśli jest dostępne, możesz również użyć go, wybierając plik z listy. - - - Failed to save: - Nie udało się zapisać: - - - Failed to download: - Nie udało się pobrać: - - - Download Complete - Pobieranie zakończone - - - 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. - Poprawki zostały pomyślnie pobrane! Wszystkie dostępne poprawki dla wszystkich gier zostały pobrane. Nie ma potrzeby pobierania ich osobno dla każdej gry, która ma kody. Jeśli poprawka się nie pojawia, możliwe, że nie istnieje dla konkretnego numeru seryjnego i wersji gry. - - - Failed to parse JSON data from HTML. - Nie udało się przeanalizować danych JSON z HTML. - - - Failed to retrieve HTML page. - Nie udało się pobrać strony HTML. - - - The game is in version: %1 - Gra jest w wersji: %1 - - - The downloaded patch only works on version: %1 - Pobrana łatka działa tylko w wersji: %1 - - - You may need to update your game. - Może być konieczne uaktualnienie gry. - - - Incompatibility Notice - Powiadomienie o niezgodności - - - Failed to open file: - Nie udało się otworzyć pliku: - - - XML ERROR: - BŁĄD XML: - - - Failed to open files.json for writing - Nie udało się otworzyć pliku files.json do zapisu - - - Author: - Autor: - - - Directory does not exist: - Katalog nie istnieje: - - - Failed to open files.json for reading. - Nie można otworzyć pliku files.json do odczytu. - - - Name: - Nazwa: - - - Can't apply cheats before the game is started - Nie można zastosować kodów przed uruchomieniem gry. - - - Close - Zamknij - - - - CheckUpdate - - Auto Updater - Asystent aktualizacji - - - Error - Błąd - - - Network error: - Błąd sieci: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Automatyczna aktualizacja umożliwia maksymalnie 60 sprawdzeń aktualizacji na godzinę.\nOsiągnąłeś ten limit. Spróbuj ponownie później. - - - Failed to parse update information. - Nie udało się sparsować informacji o aktualizacji. - - - No pre-releases found. - Nie znaleziono wersji przedpremierowych. - - - Invalid release data. - Nieprawidłowe dane wydania. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Uwaga:</b><br><br> Począwszy od wersji <b>0.12.0</b> wersja Qt emulatora nie będzie już otrzymywać bezpośrednich aktualizacji.<br><br> Interfejs Qt pozostaje jednak dostępny poprzez nowy oficjalny launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – oparty na oryginalnym kodzie źródłowym shadPS4.<br><br> Zalecamy przejście na ten launcher, aby nadal otrzymywać aktualizacje. - - - Your version is already up to date! - Twoja wersja jest już aktualna! - - - Update Available - Dostępna aktualizacja - - - Update Channel - Kanał aktualizacji - - - Current Version - Aktualna wersja - - - Latest Version - Najnowsza wersja - - - Do you want to update? - Czy chcesz zaktualizować? - - - Show Changelog - Pokaż zmiany - - - Check for Updates at Startup - Sprawdź aktualizacje przy starcie - - - Update - Aktualizuj - - - No - Nie - - - Hide Changelog - Ukryj zmiany - - - Changes - Zmiany - - - Network error occurred while trying to access the URL - Błąd sieci wystąpił podczas próby uzyskania dostępu do URL - - - Download Complete - Pobieranie zakończone - - - The update has been downloaded, press OK to install. - Aktualizacja została pobrana, naciśnij OK, aby zainstalować. - - - Failed to save the update file at - Nie udało się zapisać pliku aktualizacji w - - - Starting Update... - Rozpoczynanie aktualizacji... - - - Failed to create the update script file - Nie udało się utworzyć pliku skryptu aktualizacji - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Pobieranie danych o kompatybilności, proszę czekać - - - Cancel - Anuluj - - - Loading... - Ładowanie... - - - Error - Błąd - - - Unable to update compatibility data! Try again later. - Nie można zaktualizować danych o kompatybilności! Spróbuj ponownie później. - - - Unable to open compatibility_data.json for writing. - Nie można otworzyć pliku compatibility_data.json do zapisu. - - - Unknown - Nieznany - - - Nothing - Nic - - - Boots - Uruchamia się - - - Menus - Menu - - - Ingame - W grze - - - Playable - Grywalne - - - - ControlSettings - - Configure Controls - Skonfiguruj sterowanie - - - D-Pad - Krzyżak - - - Up - Góra - - - Left - Lewo - - - Right - Prawo - - - Down - Dół - - - Left Stick Deadzone (def:2 max:127) - Martwa strefa lewego drążka (def:2 max:127) - - - Left Deadzone - Martwa strefa lewego drążka - - - Left Stick - Lewy drążek - - - Config Selection - Wybór konfiguracji - - - Common Config - Wspólna konfiguracja - - - Use per-game configs - Użyj osobnej konfiguracji dla każdej gry - - - Face Buttons - Przyciski akcji - - - Right Stick Deadzone (def:2, max:127) - Martwa strefa prawego drążka (def:2 max:127) - - - Right Deadzone - Martwa strefa prawego drążka - - - Right Stick - Prawy drążek - - - Color Adjustment - Dostosowanie koloru - - - Override Lightbar Color - Zastąp kolor paska świetlnego - - - Override Color - Zastąp kolor - - - Unable to Save - Zapisywanie nie powiodło się - - - Cannot bind axis values more than once - Nie można powiązać wartości osi więcej niż raz - - - Save - Zapisz - - - Apply - Zastosuj - - - Restore Defaults - Przywróć ustawienia domyślne - - - Cancel - Anuluj - - - unmapped - nieprzypisane - - - Options - Options - - - Touchpad Left - Lewy Touchpad - - - Touchpad Center - Środkowy Touchpad - - - Touchpad Right - Prawy Touchpad - - - Triangle - Trójkąt - - - Square - Kwadrat - - - Circle - Kółko - - - Cross - Krzyżyk - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Nie można zbindować unikalnych akcji więcej niż raz. Zduplikowane akcje są przepisane do następujących przycisków: - -%1 - - - Press a button - Naciśnij przycisk - - - Move analog stick - Rusz gałką analogową - - - L1 and L2 - L1 i L2 - - - Active Gamepad - Aktywny kontroler - - - Gamepad ID - Identyfikator kontrolera - - - Default Gamepad - Domyślny kontroler - - - No default selected - Brak domyślnego kontrolera - - - n/a - n/d - - - Set Active Gamepad as Default - Ustaw jako domyślny - - - Remove Default Gamepad - Usuń domyślny kontroler - - - R1 and R2 - R1 i R2 - - - ID: - ID: - - - Default Controller Selected - Wybrano domyślny kontroler - - - Active controller set as default - Aktywny kontroler ustawiono jako domyślny - - - Default Controller Removed - Usunięto domyślny kontroler - - - Default controller setting removed - Usunięto ustawienia domyślnego kontrolera - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Edytuj przypisanie klawiszy klawiatury + myszy oraz kontrolera - - - Use Per-Game configs - Użyj osobnej konfiguracji dla każdej gry - - - Error - Błąd - - - Could not open the file for reading - Nie można otworzyć pliku do odczytu - - - Could not open the file for writing - Nie można otworzyć pliku do zapisu - - - Save Changes - Zapisać zmiany - - - Do you want to save changes? - Czy chcesz zapisać zmiany? - - - Help - Pomóc - - - Do you want to reset your custom default config to the original default config? - Czy chcesz zresetować Twoją domyślną konfigurację do oryginalnej domyślnej konfiguracji? - - - Do you want to reset this config to your custom default config? - Czy chcesz zresetować tę konfigurację do Twojej domyślnej konfiguracji? - - - Reset to Default - Zresetować do domyślnych - - - - ElfViewer - - Open Folder - Otwórz folder - - - - GameInfoClass - - Loading game list, please wait :3 - Ładowanie listy gier, proszę poczekaj :3 - - - Cancel - Anuluj - - - Loading... - Ładowanie... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Wybierz katalog - - - Directory to install games - Katalog do instalacji gier - - - Browse - Przeglądaj - - - Error - Błąd - - - Directory to install DLC - Katalog do instalacji dodatkowej zawartości (DLC) - - - - GameListFrame - - Icon - Ikona - - - Name - Nazwa - - - Serial - Numer seryjny - - - Compatibility - Kompatybilność - - - Region - Region - - - Firmware - Oprogramowanie - - - Size - Rozmiar - - - Version - Wersja - - - Path - Ścieżka - - - Play Time - Czas gry - - - Never Played - Nigdy nie grane - - - h - godz. - - - m - min - - - s - s - - - Compatibility is untested - Kompatybilność nie została przetestowana - - - Game does not initialize properly / crashes the emulator - Gra nie inicjuje się poprawnie / zawiesza się emulator - - - Game boots, but only displays a blank screen - Gra uruchamia się, ale wyświetla tylko pusty ekran - - - Game displays an image but does not go past the menu - Gra wyświetla obraz, ale nie przechodzi do menu - - - Game has game-breaking glitches or unplayable performance - Gra ma usterki przerywające rozgrywkę lub niegrywalną wydajność - - - Game can be completed with playable performance and no major glitches - Grę można ukończyć z grywalną wydajnością i bez większych usterek - - - Click to see details on github - Kliknij, aby zobaczyć szczegóły na GitHub - - - Last updated - Ostatnia aktualizacja - - - Favorite - Ulubione - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Utwórz skrót - - - Cheats / Patches - Kody / poprawki - - - SFO Viewer - Menedżer plików SFO - - - Trophy Viewer - Menedżer trofeów - - - Open Folder... - Otwórz Folder... - - - Open Game Folder - Otwórz Katalog Gry - - - Open Save Data Folder - Otwórz folder zapisanych danych - - - Open Log Folder - Otwórz Folder Dziennika - - - Copy info... - Kopiuj informacje... - - - Copy Name - Kopiuj nazwę - - - Copy Serial - Kopiuj numer seryjny - - - Copy Version - Kopiuj wersję - - - Copy Size - Kopiuj rozmiar - - - Copy All - Kopiuj wszystko - - - Delete... - Usuń... - - - Delete Game - Usuń grę - - - Delete Update - Usuń aktualizację - - - Delete DLC - Usuń dodatkową zawartość (DLC) - - - Delete Trophy - Usuń trofeum - - - Compatibility... - Kompatybilność... - - - Shortcut creation - Tworzenie skrótu - - - Shortcut created successfully! - Utworzenie skrótu zakończone pomyślnie! - - - Error - Błąd - - - Error creating shortcut! - Utworzenie skrótu zakończone niepowodzeniem! - - - Game - Gra - - - This game has no update to delete! - Ta gra nie ma aktualizacji do usunięcia! - - - Update - Aktualizacja - - - This game has no DLC to delete! - Ta gra nie ma dodatkowej zawartości (DLC) do usunięcia! - - - DLC - Dodatkowa zawartość (DLC) - - - Delete %1 - Usuń %1 - - - Are you sure you want to delete %1's %2 directory? - Czy na pewno chcesz usunąć katalog %1 z %2? - - - Open Update Folder - Otwórz folder aktualizacji - - - Delete Save Data - Usuń zapisane dane - - - This game has no update folder to open! - Ta gra nie ma folderu aktualizacji do otwarcia! - - - No log file found for this game! - Nie znaleziono pliku dziennika dla tej gry! - - - Failed to convert icon. - Nie udało się przekonwertować ikony. - - - This game has no save data to delete! - Ta gra nie ma zapisów do usunięcia! - - - This game has no saved trophies to delete! - Ta gra nie ma zapisanych trofeuów do usunięcia! - - - Save Data - Zapisane dane - - - Trophy - Trofeum - - - SFO Viewer for - Menedżer plików SFO dla - - - Remove from Favorites - Usuń z Ulubionych - - - Add to Favorites - Dodaj do Ulubionych - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Szybki start - - - FAQ - Najczęściej zadawane pytania - - - Syntax - Składnia - - - Special Bindings - Specjalne wiązania - - - Keybindings - Przypisanie klawiszy - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - KBMSettings - - Configure Controls - Skonfiguruj sterowanie - - - D-Pad - Krzyżak - - - Up - Strzałka w górę - - - unmapped - nieprzypisane - - - Left - Strzałka w lewo - - - Right - Strzałka w prawo - - - Down - Strzałka w dół - - - Left Analog Halfmode - Połowiczny tryb lewego drążka - - - hold to move left stick at half-speed - przytrzymaj, aby przesuwać lewy drążek dwa razy wolniej - - - Left Stick - Lewy drążek - - - Config Selection - Wybór konfiguracji - - - Common Config - Wspólna konfiguracja - - - Use per-game configs - Użyj osobnej konfiguracji dla każdej gry - - - Text Editor - Edytor tekstu - - - Help - Pomoc - - - Mouse to Joystick - Mysz na Joystick - - - *press F7 ingame to activate - *naciśnij F7 w grze aby aktywować - - - Options - Opcje - - - Mouse Movement Parameters - Parametry ruchu myszy - - - note: click Help Button/Special Keybindings for more information - uwaga: kliknij przycisk Pomoc/Specjalne skróty klawiszowe, aby uzyskać więcej informacji - - - Face Buttons - Przednie przyciski - - - Triangle - Trójkąt - - - Square - Kwadrat - - - Circle - Kółko - - - Cross - Krzyżyk - - - Right Analog Halfmode - Połowiczny tryb prawego drążka - - - hold to move right stick at half-speed - przytrzymaj, aby przesuwać prawy drążek dwa razy wolniej - - - Right Stick - Prawy drążek - - - Speed Offset (def 0.125): - Offset prędkości (def 0,125): - - - Copy from Common Config - Kopiuj ze wspólnej konfiguracji - - - Deadzone Offset (def 0.50): - Offset martwych stref (def 0,50): - - - Speed Multiplier (def 1.0): - Mnożnik prędkości (def1.0): - - - Common Config Selected - Wybrano wspólną konfigurację - - - 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. - Przycisk ten kopiuje mapowanie ze wspólnej konfiguracji do aktualnie wybranego profilu. Nie może być użyty, gdy aktualnie wybranym profilem jest wspólna konfiguracja. - - - Copy values from Common Config - Kopiuj ze wspólnej konfiguracji - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Czy chcesz nadpisać istniejące mapowania mapowaniem ze wspólnej konfiguracji? - - - Unable to Save - Zapisywanie nie powiodło się - - - Press a key - Naciśnij klawisz - - - Cannot set mapping - Nie można ustawić mapowania - - - Mousewheel cannot be mapped to stick outputs - Kółko myszy nie może być przypisane do sterowania drążkiem - - - Save - Zapisz - - - Apply - Zastosuj - - - Restore Defaults - Przywróć ustawienia domyślne - - - Cancel - Anuluj - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Nie można zbindować unikalnych akcji więcej niż raz. Zduplikowane akcje są przepisane do następujących przycisków: - -%1 - - - Touchpad Left - Lewy Touchpad - - - Touchpad Center - Środkowy Touchpad - - - Touchpad Right - Prawy Touchpad - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Otwórz/Dodaj folder Elf - - - Boot Game - Uruchom grę - - - Check for Updates - Sprawdź aktualizacje - - - About shadPS4 - O programie - - - Configure... - Konfiguruj... - - - Recent Games - Ostatnie gry - - - Open shadPS4 Folder - Otwórz folder shadPS4 - - - Exit - Wyjdź - - - Exit shadPS4 - Wyjdź z shadPS4 - - - Exit the application. - Wyjdź z aplikacji. - - - Show Game List - Pokaż listę gier - - - Game List Refresh - Odśwież listę gier - - - Tiny - Malutkie - - - Small - Małe - - - Medium - Średnie - - - Large - Wielkie - - - List View - Widok listy - - - Grid View - Widok siatki - - - Elf Viewer - Menedżer plików ELF - - - Game Install Directory - Katalog zainstalowanych gier - - - Download Cheats/Patches - Pobierz kody / poprawki - - - Dump Game List - Zgraj listę gier - - - Trophy Viewer - Menedżer trofeów - - - No games found. Please add your games to your library first. - Nie znaleziono gier. Najpierw dodaj swoje gry do swojej biblioteki. - - - Search... - Szukaj... - - - File - Plik - - - View - Widok - - - Game List Icons - Ikony w widoku listy - - - Game List Mode - Tryb listy gier - - - Settings - Ustawienia - - - Utils - Narzędzia - - - Themes - Motywy - - - Help - Pomoc - - - Dark - Ciemny - - - Light - Jasny - - - Green - Zielony - - - Blue - Niebieski - - - Violet - Fioletowy - - - toolBar - Pasek narzędzi - - - Game List - Lista gier - - - Download Cheats For All Installed Games - Pobierz kody do wszystkich zainstalowanych gier - - - Download Patches For All Games - Pobierz poprawki do wszystkich gier - - - Download Complete - Pobieranie zakończone - - - You have downloaded cheats for all the games you have installed. - Pobrałeś kody do wszystkich zainstalowanych gier. - - - Patches Downloaded Successfully! - Poprawki pobrane pomyślnie! - - - All Patches available for all games have been downloaded. - Wszystkie poprawki dostępne dla wszystkich gier zostały pobrane. - - - Games: - Gry: - - - ELF files (*.bin *.elf *.oelf) - Pliki ELF (*.bin *.elf *.oelf) - - - Game Boot - Uruchomienie gry - - - Only one file can be selected! - Można wybrać tylko jeden plik! - - - Run Game - Uruchom grę - - - Eboot.bin file not found - Nie znaleziono pliku EBOOT.BIN - - - Game is already running! - Gra jest już uruchomiona! - - - shadPS4 - shadPS4 - - - Play - Graj - - - Pause - Pauza - - - Stop - Stop - - - Restart - Restart - - - Full Screen - Pełny ekran - - - Controllers - Kontrolery - - - Keyboard - Klawiatura - - - Refresh List - Odśwież Listę - - - Resume - Wznów - - - Show Labels Under Icons - Pokaż etykiety pod ikonami - - - Customize Hotkeys - Dostosuj skróty klawiszowe - - - - SettingsDialog - - Settings - Ustawienia - - - General - Ogólne - - - System - System - - - Console Language - Język konsoli - - - Emulator Language - Język emulatora - - - Default tab when opening settings - Domyślna zakładka podczas otwierania ustawień - - - Show Game Size In List - Pokaż rozmiar gry na liście - - - Enable Discord Rich Presence - Włącz Discord Rich Presence - - - Username - Nazwa użytkownika - - - Trophy Key - Klucz trofeów - - - Trophy - Trofea - - - Open the custom trophy images/sounds folder - Otwórz niestandardowy folder obrazów/dźwięków trofeów - - - Logger - Dziennik zdarzeń - - - Log Type - Typ dziennika - - - Log Filter - Filtrowanie dziennika - - - Open Log Location - Otwórz lokalizację dziennika - - - Input - Sterowanie - - - Cursor - Kursor - - - Hide Cursor - Ukryj kursor - - - Hide Cursor Idle Timeout - Czas oczekiwania na ukrycie kursora przy bezczynności - - - Microphone - Mikrofon - - - None - Brak - - - Default Device - Urządzenie domyślne - - - s - s - - - Controller - Kontroler - - - Graphics - Grafika - - - GUI - Interfejs - - - User - Użytkownik - - - Graphics Device - Karta graficzna - - - Advanced - Zaawansowane - - - Enable Shaders Dumping - Włącz zgrywanie shaderów - - - Enable NULL GPU - Wyłącz kartę graficzną - - - Enable HDR - Włącz HDR - - - Paths - Ścieżki - - - Game Folders - Foldery gier - - - Add... - Dodaj... - - - Remove - Usuń - - - Debug - Debugowanie - - - Enable Debug Dumping - Włącz zgrywanie debugowania - - - Enable Vulkan Validation Layers - Włącz warstwy walidacji Vulkan - - - Enable Vulkan Synchronization Validation - Włącz walidację synchronizacji Vulkan - - - Enable RenderDoc Debugging - Włącz debugowanie RenderDoc - - - Enable Crash Diagnostics - Włącz diagnostykę awarii - - - Collect Shaders - Zbieraj shadery - - - Copy GPU Buffers - Kopiuj bufory GPU - - - Host Debug Markers - Znaczniki diagnostyczne gospodarza - - - Guest Debug Markers - Znaczniki diagnostyczne gościa - - - Enable Readbacks - Włącz odczyt zwrotny - - - Enable Readback Linear Images - Włącz odczyt zwrotny obrazów liniowych - - - Update - Aktualizacja - - - Check for Updates at Startup - Sprawdź aktualizacje przy starcie - - - Always Show Changelog - Zawsze pokazuj dziennik zmian - - - Update Channel - Kanał Aktualizacji - - - Check for Updates - Sprawdź aktualizacje - - - Title Music - Muzyka tytułowa - - - Disable Trophy Notification - Wyłącz powiadomienia o trofeach - - - Background Image - Obraz tła - - - Show Background Image - Pokaż obraz tła - - - Opacity - Przezroczystość - - - Play title music - Odtwórz muzykę tytułową - - - Update Compatibility Database On Startup - Aktualizuj bazę danych zgodności podczas uruchamiania - - - Game Compatibility - Kompatybilność gier - - - Display Compatibility Data - Wyświetl dane zgodności - - - Update Compatibility Database - Aktualizuj bazę danych zgodności - - - Volume - Głośność - - - Save - Zapisz - - - Apply - Zastosuj - - - Restore Defaults - Przywróć ustawienia domyślne - - - Close - Zamknij - - - Point your mouse at an option to display its description. - Najedź kursorem na opcję, aby wyświetlić jej opis. - - - 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. - Język konsoli:\nUstala język, który używa gra PS4.\nZaleca się ustawienie tego na język, który obsługuje gra, co może się różnić w zależności od regionu. - - - Emulator Language:\nSets the language of the emulator's user interface. - Język emulatora:\nUstala język interfejsu użytkownika emulatora. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Wyświetl ekran powitalny:\nPodczas uruchamiania gry wyświetla ekran powitalny (specjalny obraz). - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Włącz Discord Rich Presence:\nWyświetla ikonę emulatora i odpowiednie informacje na twoim profilu Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Nazwa użytkownika:\nUstala nazwę użytkownika konta PS4, która może być wyświetlana w niektórych grach. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Klucz trofeów:\nKlucz używany do odszyfrowywania trofeów. Musi być uzyskany z konsoli po jailbreaku. Musi zawierać tylko znaki w kodzie szesnastkowym. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Typ logu:\nUstala, czy synchronizować wyjście okna dziennika dla wydajności. Może to mieć negatywny wpływ na emulację. - - - 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. - Filtr logu:\nFiltruje dziennik, aby drukować tylko określone informacje.\nPrzykłady: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Poziomy: Trace, Debug, Info, Warning, Error, Critical - w tej kolejności, konkretny poziom wycisza wszystkie wcześniejsze poziomy w liście i rejestruje wszystkie poziomy później. - - - 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. - Aktualizator:\nRelease: Oficjalne wersje wydawane co miesiąc, które mogą być bardzo przestarzałe, ale są niezawodne i przetestowane.\nNightly: Wersje rozwojowe, które zawierają wszystkie najnowsze funkcje i poprawki błędów, ale mogą mieć błędy i być mniej stabilne. - - - Background Image:\nControl the opacity of the game background image. - Obraz tła:\nKontroluj przezroczystość obrazu tła gry. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Odtwórz muzykę tytułową:\nJeśli gra to obsługuje, aktywuje odtwarzanie specjalnej muzyki podczas wybierania gry w 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). - Wyłącz wyskakujące okienka trofeów:\nWyłącz powiadomienia o trofeach w grze. Postępy w zdobywaniu trofeów można nadal śledzić za pomocą przeglądarki trofeów (kliknij prawym przyciskiem myszy grę w oknie głównym). - - - 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. - Ukryj kursor:\nWybierz, kiedy kursor zniknie:\nNigdy: Zawsze będziesz widział myszkę.\nNieaktywny: Ustaw czas, po którym zniknie po bezczynności.\nZawsze: nigdy nie zobaczysz myszki. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Ustaw czas, po którym mysz zniknie po bezczynności. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Wyświetl dane zgodności:\nWyświetla informacje o kompatybilności gry w widoku tabeli. Włącz opcję „Aktualizuj zgodność przy uruchomieniu”, aby uzyskać aktualne informacje. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Aktualizuj zgodność przy uruchomieniu:\nAutomatycznie aktualizuj bazę danych kompatybilności podczas uruchamiania shadPS4. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Zaktualizuj bazę danych zgodności:\nNatychmiast zaktualizuj bazę danych zgodności. - - - Never - Nigdy - - - Idle - Bezczynny - - - Always - Zawsze - - - 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. - Urządzenie graficzne:\nW systemach z wieloma GPU, wybierz GPU, który emulator ma używać z rozwijanego menu,\n lub wybierz "Auto Select", aby ustawić go automatycznie. - - - 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. - Szerokość/Wysokość:\nUstala rozmiar okna emulatora podczas uruchamiania, który może być zmieniany w trakcie gry.\nTo różni się od rozdzielczości w grze. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Włącz zrzucanie shaderów:\nDla technicznego debugowania zapisuje shadery z gry w folderze podczas renderowania. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Włącz Null GPU:\nDla technicznego debugowania dezaktywuje renderowanie gry tak, jakby nie było karty graficznej. - - - 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. - Włącz HDR:\nWłącza HDR w grach, które go wspierają.\nTwój monitor musi mieć wsparcie dla przestrzeni kolorów BT2020 PQ oraz formatu RGB10A2 swapchain. - - - Game Folders:\nThe list of folders to check for installed games. - Foldery gier:\nLista folderów do sprawdzenia zainstalowanych gier. - - - Add:\nAdd a folder to the list. - Dodaj:\nDodaj folder do listy. - - - Remove:\nRemove a folder from the list. - Usuń:\nUsuń folder z listy. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Włącz zrzut debugowania:\nZapisuje symbole importu i eksportu oraz informacje nagłówkowe pliku dla aktualnie działającej aplikacji PS4 w katalogu. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Włącz debugowanie RenderDoc:\nJeśli włączone, emulator zapewnia kompatybilność z Renderdoc, aby umożliwić nagrywanie i analizowanie aktualnie renderowanej klatki. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Zbieranie shaderów:\nPotrzebujesz tej opcji aby edytować shadery za pomocą menu debugowania (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Odczyt zwrotny:\nWłącz odczyt i zapis zwrotny do GPU.\nNiektóre gry wymagają tej opcji, żeby funkcjonować poprawnie.\nMoże powodować problemy ze stabilnością i/lub wydajnością. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Odczyt zwrotny obrazów liniowych:\nWłącza asynchroniczne pobieranie obrazów liniowych zmodyfikowanych przez GPU.\nMoże naprawić błędy w niektórych grach. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Kopiowanie buforów karty graficznej:\nOmija problemy wyścigów związane z przesyłaniem danych do karty graficznej.\nMoże, ale nie musi, pomóc w przypadku awarii typu 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. - Wskaźniki debugowania gospodarza:\nWstawia informacje emulatora, takie jak znaczniki dla konkretnych poleceń AMDGPU wokół poleceń Vulkan, a także nadaje nazwy debugowania zasobów.\nJeśli ta opcja jest włączona, powinieneś włączyć diagnostykę awarii.\nPrzydatne dla programów takich jak 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. - Znaczniki debugowania gościa:\nWstawia wszystkie znaczniki debugowania, które gra dodała do buforu poleceń.\nJeśli ta opcja jest włączona, powinieneś włączyć diagnostykę awarii.\nPrzydatne dla programów takich jak RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Ścieżka zapisu danych:\nFolder, w którym zapisywane będą dane gry. - - - Browse:\nBrowse for a folder to set as the save data path. - Przeglądaj:\nPrzeglądaj folder, aby ustawić ścieżkę zapisywania danych. - - - Release - Wersja stablina - - - Nightly - Wersja rozwojowa - - - Set the volume of the background music. - Wybierz poziom głośności muzyki w tle. - - - Enable Motion Controls - Włącz sterowanie ruchem - - - Save Data Path - Ścieżka zapisanych danych - - - Browse - Przeglądaj - - - async - asynchroniczny - - - sync - synchroniczny - - - Auto Select - Wybór automatyczny - - - Directory to install games - Katalog do instalacji gier - - - Directory to save data - Katalog do zapisywania danych - - - Video - Wyświetlanie - - - Display Mode - Tryb wyświetlania - - - Windowed - Tryb okna - - - Fullscreen - Tryb pełnoekranowy - - - Fullscreen (Borderless) - Tryb pełnoekranowy (bez obramowania) - - - Window Size - Rozmiar okna - - - W: - Szerokość: - - - H: - Wysokość: - - - Separate Log Files - Oddzielne pliki dziennika - - - Separate Log Files:\nWrites a separate logfile for each game. - Oddzielne pliki dziennika:\nZapisuje oddzielny plik dziennika dla każdej gry. - - - Trophy Notification Position - Pozycja powiadomień trofeów - - - Left - Z lewej - - - Right - Z prawej - - - Top - Z góry - - - Bottom - Z dołu - - - Notification Duration - Czas trwania powiadomienia - - - Portable User Folder - Przenośny folder użytkownika - - - Create Portable User Folder from Common User Folder - Utwórz przenośny folder użytkownika ze folderu użytkownika udostępnianego - - - 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. - Przenośny folder użytkownika:\nPrzechowuje ustawienia shadPS4 i dane, które zostaną zastosowane tylko do kompilacji shadPS4 znajdującej się w bieżącym folderze. Uruchom ponownie aplikację po utworzeniu przenośnego folderu użytkownika, aby zacząć z niego korzystać. - - - Cannot create portable user folder - Nie można utworzyć przenośnego folderu użytkownika - - - %1 already exists - %1 już istnieje - - - Portable user folder created - Utworzono przenośny folder użytkownika - - - %1 successfully created. - %1 prawidłowo utworzony. - - - 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. - Otwórz niestandardowy folder obrazów/dźwięków:\nMożesz dodać własne obrazy dla trofeów i ich dźwięki.\nDodaj pliki do custom_trophy o następujących nazwach:\ntrophy.wav LUB trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nUwaga: Dźwięki działają tylko w wersji QT. - - - * Unsupported Vulkan Version - * Nieobsługiwana wersja Vulkan - - - Experimental Features - Funkcje eksperymentalne - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - UWAGA: Te funkcje są eksperymentalne. Nie włączaj ich, jeśli członek zespołu nie dał Ci takiej instrukcji, lub jeśli gra tego nie wymaga. Jeśli masz pytania, dołącz do naszego serwera na Discordzie. - - - Enable Background Controller Input - Używaj kontrolera w tle - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Używaj kontrolera w tle:\nPozwól na rejestrację wejścia z kontrolera, kiedy okno nie jest aktywne. - - - 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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - Diagnostyka awarii:\nTworzy plik .yaml z informacjami o stanie Vulkan w momencie awarii.\nPrzydatne do debugowania błędów 'DEVICE LOST'. Jeśli ta opcja jest włączona, powinieneś włączyć "Znaczniki błędów gospodarza" oraz "Znaczniki błędów gościa".\nOpcja "Włącz warstwy walidacji Vulkan" i Vulkan SDK jest wymagana do działania. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Menedżer trofeów - - - Select Game: - Wybierz grę: - - - Progress - Postęp - - - Show Earned Trophies - Pokaż zdobyte trofea - - - Show Not Earned Trophies - Pokaż niezdobyte trofea - - - Show Hidden Trophies - Pokaż ukryte trofea - - - diff --git a/src/qt_gui/translations/pt_BR.ts b/src/qt_gui/translations/pt_BR.ts deleted file mode 100644 index 7f7b1f89c..000000000 --- a/src/qt_gui/translations/pt_BR.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Sobre o shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - O shadPS4 é um emulador experimental de código-fonte aberto para o PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Este programa não deve ser usado para executar jogos que tenham sido obtidos ilegalmente. - - - - CheatsPatches - - Cheats / Patches for - Trapaças / Modificações para - - - 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 - As Trapaças/Modificações são experimentais.\nUse com cautela.\n\nBaixe as trapaças individualmente selecionando o repositório e clicando no botão de baixar.\nNa aba Modificações, você pode baixar todas as modificações de uma vez, escolha qual deseja usar e salve a opção.\n\nComo não desenvolvemos as Trapaças/Modificações,\npor favor, reporte os problemas relacionados ao autor da trapaça.\n\nCriou uma nova trapaça? Visite:\n - - - No Image Available - Nenhuma Imagem Disponível - - - Serial: - Serial: - - - Version: - Versão: - - - Size: - Tamanho: - - - Select Cheat File: - Selecione o Arquivo de Trapaça: - - - Repository: - Repositório: - - - Download Cheats - Baixar Trapaças - - - Delete File - Excluir Arquivo - - - No files selected. - Nenhum arquivo selecionado. - - - You can delete the cheats you don't want after downloading them. - Você pode excluir as trapaças que não deseja após baixá-las. - - - Do you want to delete the selected file?\n%1 - Deseja excluir o arquivo selecionado?\n%1 - - - Select Patch File: - Selecione o Arquivo de Patch: - - - Download Patches - Baixar Modificações - - - Save - Salvar - - - Cheats - Trapaças - - - Patches - Modificações - - - Error - Erro - - - No patch selected. - Nenhum patch selecionado. - - - Unable to open files.json for reading. - Não foi possível abrir files.json para leitura. - - - No patch file found for the current serial. - Nenhum arquivo de patch encontrado para o serial atual. - - - Unable to open the file for reading. - Não foi possível abrir o arquivo para leitura. - - - Unable to open the file for writing. - Não foi possível abrir o arquivo para gravação. - - - Failed to parse XML: - Falha ao analisar o XML: - - - Success - Sucesso - - - Options saved successfully. - Opções salvas com sucesso. - - - Invalid Source - Fonte Inválida - - - The selected source is invalid. - A fonte selecionada é inválida. - - - File Exists - Arquivo já Existe - - - File already exists. Do you want to replace it? - O arquivo já existe. Deseja substituí-lo? - - - Failed to save file: - Falha ao salvar o arquivo: - - - Failed to download file: - Falha ao baixar o arquivo: - - - Cheats Not Found - Trapaças Não Encontradas - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Nenhuma trapaça encontrada para este jogo nesta versão do repositório selecionado, tente outro repositório ou uma versão diferente do jogo. - - - Cheats Downloaded Successfully - Trapaças Baixadas com Sucesso - - - 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. - Você baixou as trapaças para esta versão do jogo do repositório selecionado com sucesso. É possível tentar baixar de outro repositório, se estiver disponível, também será possível utilizá-lo selecionando o arquivo da lista. - - - Failed to save: - Falha ao salvar: - - - Failed to download: - Falha ao baixar: - - - Download Complete - Download Concluído - - - 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. - Modificações Baixados com Sucesso! Todos as modificações disponíveis para todos os jogos foram baixados, não é necessário baixá-los individualmente para cada jogo como acontece em trapaças. Se a modificação não aparecer, pode ser que ela não exista para o serial e versão específicas do jogo. - - - Failed to parse JSON data from HTML. - Falha ao analisar os dados JSON do HTML. - - - Failed to retrieve HTML page. - Falha ao recuperar a página HTML. - - - The game is in version: %1 - O jogo está na versão: %1 - - - The downloaded patch only works on version: %1 - O patch baixado só funciona na versão: %1 - - - You may need to update your game. - Talvez você precise atualizar seu jogo. - - - Incompatibility Notice - Aviso de Incompatibilidade - - - Failed to open file: - Falha ao abrir o arquivo: - - - XML ERROR: - ERRO DE XML: - - - Failed to open files.json for writing - Falha ao abrir files.json para gravação - - - Author: - Autor: - - - Directory does not exist: - O Diretório não existe: - - - Failed to open files.json for reading. - Falha ao abrir files.json para leitura. - - - Name: - Nome: - - - Can't apply cheats before the game is started - Não é possível aplicar trapaças antes de começar o jogo. - - - Close - Fechar - - - - CheckUpdate - - Auto Updater - Atualização Automática - - - Error - Erro - - - Network error: - Erro de rede: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - O Atualizador Automático permite até 60 verificações de atualização por hora.\nVocê atingiu esse limite. Por favor, tente novamente mais tarde. - - - Failed to parse update information. - Falha ao analisar as informações de atualização. - - - No pre-releases found. - Nenhum Pre-Release encontrado. - - - Invalid release data. - Dados do release inválidos. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Aviso:</b><br><br> A partir da versão <b>0.12.0</b>, a versão Qt do emulador não receberá mais atualizações diretas.<br><br>No entanto, a interface Qt continua disponível por meio do novo launcher oficial:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – baseado no código original do shadPS4.<br><br>Recomendamos migrar para esse launcher para continuar recebendo atualizações. - - - Your version is already up to date! - Sua versão já está atualizada! - - - Update Available - Atualização Disponível - - - Update Channel - Canal de Atualização - - - Current Version - Versão Atual - - - Latest Version - Última Versão - - - Do you want to update? - Você quer atualizar? - - - Show Changelog - Mostrar Mudanças - - - Check for Updates at Startup - Verificar por Atualizações ao Iniciar - - - Update - Atualizar - - - No - Não - - - Hide Changelog - Ocultar Mudanças - - - Changes - Alterações - - - Network error occurred while trying to access the URL - Ocorreu um erro de rede ao tentar acessar o URL - - - Download Complete - Download Concluído - - - The update has been downloaded, press OK to install. - A atualização foi baixada, pressione OK para instalar. - - - Failed to save the update file at - Falha ao salvar o arquivo de atualização em - - - Starting Update... - Iniciando Atualização... - - - Failed to create the update script file - Falha ao criar o arquivo de script de atualização - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Obtendo dados de compatibilidade, por favor aguarde - - - Cancel - Cancelar - - - Loading... - Carregando... - - - Error - Erro - - - Unable to update compatibility data! Try again later. - Não foi possível atualizar os dados de compatibilidade! Tente novamente mais tarde. - - - Unable to open compatibility_data.json for writing. - Não foi possível abrir o compatibility_data.json para gravação. - - - Unknown - Desconhecido - - - Nothing - Nada - - - Boots - Inicia - - - Menus - Menus - - - Ingame - Em jogo - - - Playable - Jogável - - - - ControlSettings - - Configure Controls - Configurar Controles - - - D-Pad - Direcional - - - Up - Cima - - - Left - Esquerda - - - Right - Direita - - - Down - Baixo - - - Left Stick Deadzone (def:2 max:127) - Zona Morta do Analógico Esquerdo (Pad: 2, Máx: 127) - - - Left Deadzone - Zona Morta Esquerda - - - Left Stick - Analógico Esquerdo - - - Config Selection - Seleção de Configuração - - - Common Config - Configuração Comum - - - Use per-game configs - Usar configurações por jogo - - - Face Buttons - Botões de Ação - - - Right Stick Deadzone (def:2, max:127) - Zona Morta do Analógico Direito (Pad: 2, Máx: 127) - - - Right Deadzone - Zona Morta Direita - - - Right Stick - Analógico Direito - - - Color Adjustment - Ajuste de Cores - - - Override Lightbar Color - Substituir Cor da Barra de Luz - - - Override Color - Substituir a Cor - - - Unable to Save - Não foi possível salvar - - - Cannot bind axis values more than once - Não é possível vincular os valores do eixo mais de uma vez - - - Save - Salvar - - - Apply - Aplicar - - - Restore Defaults - Restaurar Padrões - - - Cancel - Cancelar - - - unmapped - não mapeado - - - Options - Opções - - - Touchpad Left - Touchpad Esquerdo - - - Touchpad Center - Centro do Touchpad - - - Touchpad Right - Touchpad Direito - - - Triangle - Triângulo - - - Square - Quadrado - - - Circle - Círculo - - - Cross - Cruz - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Não é possível atribuir a mesma entrada mais de uma vez. Entradas duplicadas foram atribuídas aos seguintes botões: - -%1 - - - Press a button - Pressione um botão - - - Move analog stick - Mover analógico - - - L1 and L2 - L1 e L2 - - - Active Gamepad - Controle Ativo - - - Gamepad ID - ID do controle - - - Default Gamepad - Controle Padrão - - - No default selected - Nenhum selecionado como padrão - - - n/a - n/a - - - Set Active Gamepad as Default - Defina o Controle Ativo como Padrão - - - Remove Default Gamepad - Remover controle padrão - - - R1 and R2 - R1 e R2 - - - ID: - ID: - - - Default Controller Selected - Controle Padrão Selecionado - - - Active controller set as default - O Controle ativo foi definido como padrão - - - Default Controller Removed - Controle Padrão Removido - - - Default controller setting removed - Configuração do controle padrão removida - - - RED - VERMELHO - - - GREEN - VERDE - - - BLUE - AZUL - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Editar atalhos de entrada do Teclado + Mouse e do Controle - - - Use Per-Game configs - Usar configurações por jogo - - - Error - Erro - - - Could not open the file for reading - Não foi possível abrir o arquivo para leitura - - - Could not open the file for writing - Não foi possível abrir o arquivo para gravação - - - Save Changes - Salvar Alterações - - - Do you want to save changes? - Gostaria de salvar as alterações? - - - Help - Ajuda - - - Do you want to reset your custom default config to the original default config? - Você gostaria de redefinir sua configuração padrão personalizada de volta para a configuração padrão original? - - - Do you want to reset this config to your custom default config? - Você gostaria de redefinir esta configuração para a sua configuração padrão personalizada? - - - Reset to Default - Redefinir ao Padrão - - - - ElfViewer - - Open Folder - Abrir Pasta - - - - GameInfoClass - - Loading game list, please wait :3 - Carregando a lista de jogos, por favor aguarde :3 - - - Cancel - Cancelar - - - Loading... - Carregando... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Escolha de diretório - - - Directory to install games - Diretório onde os jogos serão instalados - - - Browse - Procurar - - - Error - Erro - - - Directory to install DLC - Diretório para instalar DLC - - - - GameListFrame - - Icon - Ícone - - - Name - Nome - - - Serial - Serial - - - Compatibility - Compatibilidade - - - Region - Região - - - Firmware - Firmware - - - Size - Tamanho - - - Version - Versão - - - Path - Diretório - - - Play Time - Tempo de Jogo - - - Never Played - Nunca Jogado - - - h - h - - - m - m - - - s - s - - - Compatibility is untested - Compatibilidade não testada - - - Game does not initialize properly / crashes the emulator - O jogo não inicializa corretamente ou trava o emulador - - - Game boots, but only displays a blank screen - O jogo inicializa, mas exibe apenas uma tela vazia - - - Game displays an image but does not go past the menu - O jogo exibe imagem mas não passa do menu - - - Game has game-breaking glitches or unplayable performance - O jogo tem defeitos que interrompem o jogo ou desempenho injogável - - - Game can be completed with playable performance and no major glitches - O jogo pode ser concluído com desempenho jogável e sem grandes defeitos - - - Click to see details on github - Clique para ver detalhes no github - - - Last updated - Última atualização - - - Favorite - Favorito - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Criar Atalho - - - Cheats / Patches - Trapaças / Modificações - - - SFO Viewer - Visualizador de SFO - - - Trophy Viewer - Visualizador de Troféus - - - Open Folder... - Abrir Pasta... - - - Open Game Folder - Abrir Pasta do Jogo - - - Open Save Data Folder - Abrir Pasta de Dados Salvos - - - Open Log Folder - Abrir Pasta de Log - - - Copy info... - Copiar informação... - - - Copy Name - Copiar Nome - - - Copy Serial - Copiar Serial - - - Copy Version - Copiar Versão - - - Copy Size - Copiar Tamanho - - - Copy All - Copiar Tudo - - - Delete... - Excluir... - - - Delete Game - Excluir Jogo - - - Delete Update - Excluir Atualização - - - Delete DLC - Excluir DLC - - - Delete Trophy - Excluir Troféu - - - Compatibility... - Compatibilidade... - - - Shortcut creation - Criação de atalho - - - Shortcut created successfully! - Atalho criado com sucesso! - - - Error - Erro - - - Error creating shortcut! - Erro ao criar atalho! - - - Game - Jogo - - - This game has no update to delete! - Este jogo não tem atualização para excluir! - - - Update - Atualização - - - This game has no DLC to delete! - Este jogo não tem DLC para excluir! - - - DLC - DLC - - - Delete %1 - Excluir %1 - - - Are you sure you want to delete %1's %2 directory? - Tem certeza de que deseja excluir o diretório do %2 %1? - - - Open Update Folder - Abrir Pasta da Atualização - - - Delete Save Data - Excluir Dados Salvos - - - This game has no update folder to open! - Este jogo não possui pasta de atualização para abrir! - - - No log file found for this game! - Nenhum arquivo de registro foi encontrado para este jogo! - - - Failed to convert icon. - Falha ao converter o ícone. - - - This game has no save data to delete! - Este jogo não tem dados salvos para excluir! - - - This game has no saved trophies to delete! - Este jogo não tem troféus salvos para excluir! - - - Save Data - Dados Salvos - - - Trophy - Troféus - - - SFO Viewer for - Visualizador de SFO para - - - Remove from Favorites - Remover dos Favoritos - - - Add to Favorites - Adicionar aos Favoritos - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Introdução - - - FAQ - Perguntas frequentes - - - Syntax - Sintaxe - - - Special Bindings - Atalhos Especiais - - - Keybindings - Teclas de atalho - - - - Hotkeys - - Customize Hotkeys - Personalizar Atalhos - - - Controller Hotkeys - Atalhos do Controle - - - Show FPS Counter - Exibir Contador de FPS - - - unmapped - não mapeado - - - Quit Emulation - Sair da emulação - - - Reload Button Mappings - Recarregar mapeamento de botões - - - Toggle Fullscreen - Ativar/desativar Tela cheia - - - Toggle Pause - Ativar/desativar Pausa - - - Keyboard Hotkeys - Atalhos do teclado - - - Renderdoc Capture (for debugging only) - Captura de Renderdoc (apenas para depuração) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Salvar - - - Apply - Aplicar - - - Cancel - Cancelar - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - KBMSettings - - Configure Controls - Configurar Controles - - - D-Pad - Direcional - - - Up - Cima - - - unmapped - não mapeado - - - Left - Esquerda - - - Right - Direita - - - Down - Baixo - - - Left Analog Halfmode - Meio Analógico Esquerdo - - - hold to move left stick at half-speed - Segure para mover o analógico esquerdo pela metade da velocidade - - - Left Stick - Analógico Esquerdo - - - Config Selection - Seleção de Configuração - - - Common Config - Configuração Comum - - - Use per-game configs - Usar configurações por jogo - - - Text Editor - Editor de Texto - - - Help - Ajuda - - - Mouse to Joystick - Mouse para Analógico - - - *press F7 ingame to activate - *Pressione F7 no jogo para ativar - - - Options - Opções - - - Mouse Movement Parameters - Parâmetros de Movimento do Mouse - - - note: click Help Button/Special Keybindings for more information - Nota: clique no botão de Ajuda e Atalhos Especiais para obter mais informações - - - Face Buttons - Botões de Ação - - - Triangle - Triângulo - - - Square - Quadrado - - - Circle - Círculo - - - Cross - Cruz - - - Right Analog Halfmode - Meio Analógico Direito - - - hold to move right stick at half-speed - Segure para mover o analógico direito pela metade da velocidade - - - Right Stick - Analógico Direito - - - Speed Offset (def 0.125): - Deslocamento de Velocidade (Pad 0,125): - - - Copy from Common Config - Copiar da Configuração Comum - - - Deadzone Offset (def 0.50): - Deslocamento da Zona Morta (Pad 0,50): - - - Speed Multiplier (def 1.0): - Multiplicador de Velocidade (Pad 1,0): - - - Common Config Selected - Configuração Comum Selecionada - - - 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. - Este botão copia os mapeamentos da Configuração Comum para o perfil atualmente selecionado, e não pode ser usado quando o perfil atualmente selecionado é a Configuração Comum. - - - Copy values from Common Config - Copiar valores da Configuração Comum - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Você deseja substituir os mapeamentos existentes com os mapeamentos da Configuração Comum? - - - Unable to Save - Não foi possível salvar - - - Press a key - Aperte uma tecla - - - Cannot set mapping - Não é possível definir o mapeamento - - - Mousewheel cannot be mapped to stick outputs - A rolagem do mouse não pode ser mapeada para saídas do analógico - - - Save - Salvar - - - Apply - Aplicar - - - Restore Defaults - Restaurar Padrões - - - Cancel - Cancelar - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Não é possível atribuir a mesma entrada mais de uma vez. Entradas duplicadas foram atribuídas aos seguintes botões: - -%1 - - - Touchpad Left - Touchpad Esquerdo - - - Touchpad Center - Centro do Touchpad - - - Touchpad Right - Touchpad Direito - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Abrir/Adicionar pasta Elf - - - Boot Game - Iniciar Jogo - - - Check for Updates - Verificar Atualizações - - - About shadPS4 - Sobre o shadPS4 - - - Configure... - Configurar... - - - Recent Games - Jogos Recentes - - - Open shadPS4 Folder - Abrir Pasta do shadPS4 - - - Exit - Sair - - - Exit shadPS4 - Sair do shadPS4 - - - Exit the application. - Sair do aplicativo. - - - Show Game List - Mostrar Lista de Jogos - - - Game List Refresh - Atualizar Lista de Jogos - - - Tiny - Muito pequeno - - - Small - Pequeno - - - Medium - Médio - - - Large - Grande - - - List View - Visualização em Lista - - - Grid View - Visualização em Grade - - - Elf Viewer - Visualizador de Elf - - - Game Install Directory - Diretório de Instalação de Jogos - - - Download Cheats/Patches - Baixar Trapaças/Modificações - - - Dump Game List - Exportar Lista de Jogos - - - Trophy Viewer - Visualizador de Troféus - - - No games found. Please add your games to your library first. - Nenhum jogo encontrado. Adicione seus jogos à sua biblioteca primeiro. - - - Search... - Pesquisar... - - - File - Arquivo - - - View - Ver - - - Game List Icons - Ícones da Lista de Jogos - - - Game List Mode - Modo da Lista de Jogos - - - Settings - Configurações - - - Utils - Utilitários - - - Themes - Temas - - - Help - Ajuda - - - Dark - Escuro - - - Light - Claro - - - Green - Verde - - - Blue - Azul - - - Violet - Violeta - - - toolBar - Barra de Ferramentas - - - Game List - Lista de Jogos - - - Download Cheats For All Installed Games - Baixar Trapaças para Todos os Jogos Instalados - - - Download Patches For All Games - Baixar Modificações para Todos os Jogos - - - Download Complete - Download Concluído - - - You have downloaded cheats for all the games you have installed. - Você baixou trapaças para todos os jogos que instalou. - - - Patches Downloaded Successfully! - Modificações Baixadas com Sucesso! - - - All Patches available for all games have been downloaded. - Todos as modificações disponíveis para todos os jogos foram baixadas. - - - Games: - Jogos: - - - ELF files (*.bin *.elf *.oelf) - Arquivos ELF (*.bin *.elf *.oelf) - - - Game Boot - Inicialização do Jogo - - - Only one file can be selected! - Apenas um arquivo pode ser selecionado! - - - Run Game - Executar Jogo - - - Eboot.bin file not found - Arquivo Eboot.bin não encontrado - - - Game is already running! - O jogo já está executando! - - - shadPS4 - shadPS4 - - - Play - Jogar - - - Pause - Pausar - - - Stop - Parar - - - Restart - Reiniciar - - - Full Screen - Tela Cheia - - - Controllers - Controles - - - Keyboard - Teclado - - - Refresh List - Atualizar Lista - - - Resume - Continuar - - - Show Labels Under Icons - Mostrar Rótulos Sob Ícones - - - Customize Hotkeys - Personalizar Atalhos - - - - SettingsDialog - - Settings - Configurações - - - General - Geral - - - System - Sistema - - - Console Language - Idioma do Console - - - Emulator Language - Idioma do Emulador - - - Default tab when opening settings - Aba padrão ao abrir as configurações - - - Show Game Size In List - Mostrar Tamanho do Jogo na Lista - - - Enable Discord Rich Presence - Ativar Discord Rich Presence - - - Username - Nome de usuário - - - Trophy Key - Chave de Troféu - - - Trophy - Troféu - - - Open the custom trophy images/sounds folder - Abrir a pasta de imagens e sons de troféus personalizados - - - Logger - Log/Registro - - - Log Type - Tipo de Registro - - - Log Filter - Filtro do Registro - - - Open Log Location - Abrir Local do Registro - - - Input - Entradas - - - Cursor - Cursor - - - Hide Cursor - Ocultar Cursor - - - Hide Cursor Idle Timeout - Tempo de Inatividade para Ocultar Cursor - - - Microphone - Microfone - - - None - Nenhum - - - Default Device - Dispositivo Padrão - - - s - s - - - Controller - Controle - - - Graphics - Gráficos - - - GUI - Interface - - - User - Usuário - - - Graphics Device - Placa de Vídeo - - - Advanced - Avançado - - - Enable Shaders Dumping - Ativar Exportação de Shaders - - - Enable NULL GPU - Ativar GPU NULA - - - Enable HDR - Ativar HDR - - - Paths - Pastas - - - Game Folders - Pastas de Jogos - - - Add... - Adicionar... - - - Remove - Remover - - - Debug - Depuração - - - Enable Debug Dumping - Ativar Exportação de Depuração - - - Enable Vulkan Validation Layers - Ativar Camadas de Validação do Vulkan - - - Enable Vulkan Synchronization Validation - Ativar Validação de Sincronização do Vulkan - - - Enable RenderDoc Debugging - Ativar Depuração por RenderDoc - - - Enable Crash Diagnostics - Ativar Diagnóstico de Falhas - - - Collect Shaders - Coletar Shaders - - - Copy GPU Buffers - Copiar Buffers de GPU - - - Host Debug Markers - Marcadores de Depuração do Host - - - Guest Debug Markers - Marcadores de Depuração do Convidado - - - Enable Readbacks - Ativar Readbacks - - - Enable Readback Linear Images - Ativar Readback Linear Images - - - Update - Atualização - - - Check for Updates at Startup - Verificar por Atualizações ao Iniciar - - - Always Show Changelog - Sempre Mostrar o Histórico de Mudanças - - - Update Channel - Canal de Atualização - - - Check for Updates - Verificar Atualizações - - - Title Music - Música no Menu - - - Disable Trophy Notification - Desativar Notificações de Troféu - - - Background Image - Imagem de Fundo - - - Show Background Image - Exibir Imagem de Fundo - - - Opacity - Transparência - - - Play title music - Reproduzir Música do Título - - - Update Compatibility Database On Startup - Atualizar Banco de Dados de Compatibilidade ao Inicializar - - - Game Compatibility - Compatibilidade dos Jogos - - - Display Compatibility Data - Exibir Dados de Compatibilidade - - - Update Compatibility Database - Atualizar Lista de Compatibilidade - - - Volume - Volume - - - Save - Salvar - - - Apply - Aplicar - - - Restore Defaults - Restaurar Padrões - - - Close - Fechar - - - Point your mouse at an option to display its description. - Passe o mouse sobre uma opção para exibir sua descrição. - - - 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. - Idioma do Console:\nDefine o idioma usado pelo jogo do PS4.\nRecomenda-se configurá-lo para um idioma que o jogo suporte, o que pode variar conforme a região. - - - Emulator Language:\nSets the language of the emulator's user interface. - Idioma do Emulador:\nDefine o idioma da interface do emulador. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Mostrar Splash Inicial:\nExibe a tela inicial do jogo (imagem especial) ao iniciar o jogo. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Ativar Discord Rich Presence:\nExibe o ícone do emulador e informações relevantes no seu perfil do Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Nome de usuário:\nDefine o nome de usuário da conta do PS4, que pode ser exibido por alguns jogos. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Chave de Troféu:\nChave usada para descriptografar troféus. Deve ser obtida a partir do seu console desbloqueado.\nDeve conter apenas caracteres hexadecimais. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Tipo de Registro:\nDetermina se a saída da janela de registro deve ser sincronizada por motivos de desempenho. Pode impactar negativamente na emulação. - - - 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. - Filtro do Registro:\nFiltra o registro para exibir apenas informações específicas.\nExemplos: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nNíveis: Trace, Debug, Info, Warning, Error, Critical - nesta ordem, um nível específico silencia todos os níveis anteriores na lista e registra todos os níveis após este. - - - 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. - Atualizações:\nRelease: Versões oficiais lançadas todos os meses que podem estar muito desatualizadas, mas são mais confiáveis e testadas.\nNightly: Versões de desenvolvimento que têm todos os novos recursos e correções, mas podem conter bugs e são menos estáveis. - - - Background Image:\nControl the opacity of the game background image. - Imagem de Fundo:\nControla a transparência da imagem de fundo do jogo. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Reproduzir Música do Título:\nSe o jogo suportar, ativa a reprodução de uma música especial ao selecionar o jogo na interface de usuário. - - - 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). - Desabilitar Pop-ups dos Troféus:\nDesabilite notificações de troféus em jogo. O progresso do troféu ainda pode ser rastreado usando o Visualizador de Troféus (clique com o botão direito do mouse no jogo na janela principal). - - - 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. - Ocultar Cursor:\nEscolha quando o cursor desaparecerá:\nNunca: Você sempre verá o mouse.\nParado: Defina um tempo para ele desaparecer após ficar inativo.\nSempre: Você nunca verá o mouse. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Tempo de Inatividade para Ocultar Cursor:\nDefina um tempo em segundos para o mouse desaparecer após ficar inativo. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Exibir Dados de Compatibilidade:\nExibe informações de compatibilidade dos jogos na visualização de tabela.\nAtive "Atualizar Compatibilidade ao Inicializar" para obter informações atualizadas. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Atualizar Compatibilidade ao Inicializar:\nAtualiza automaticamente o banco de dados de compatibilidade quando o shadPS4 é iniciado. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Atualizar Lista de Compatibilidade:\nAtualiza imediatamente o banco de dados de compatibilidade. - - - Never - Nunca - - - Idle - Parado - - - Always - Sempre - - - 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. - Placa de Vídeo:\nEm sistemas com múltiplas GPUs, escolha qual GPU o emulador utilizará da lista suspensa,\nou escolha "Seleção Automática" para escolher automaticamente o mesmo. - - - 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. - Largura/Altura:\nDefine o tamanho da janela do emulador na inicialização, que pode ser redimensionado enquanto joga.\nIsso difere da resolução do jogo. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Ativar Exportação de Shaders:\nArmazena os shaders do jogo em uma pasta durante a renderização para fins de depuração técnica. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Ativar GPU NULA:\nDesativa a renderização do jogo para fins de depuração técnica, como se não houvesse placa de vídeo. - - - 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. - Ativar HDR:\nAtiva o HDR em jogos que o suportem.\nSeu monitor deve possuir suporte para o espaço de cores BT2020 PQ e ao formato de swapchain RGB10A2. - - - Game Folders:\nThe list of folders to check for installed games. - Pastas de Jogos:\nLista de pastas para verificar por jogos instalados. - - - Add:\nAdd a folder to the list. - Adicionar:\nAdiciona uma pasta à lista. - - - Remove:\nRemove a folder from the list. - Remover:\nRemove uma pasta da lista. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Ativar Exportação de Depuração:\nArmazena os símbolos de importação, exportação e informações do cabeçalho do arquivo do programa PS4 atual em um diretório. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Ativar Depuração por RenderDoc:\nSe habilitado, o emulador fornecerá compatibilidade com RenderDoc para permitir a captura e análise do quadro atualmente renderizado. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Coletar Shaders:\nVocê precisa dessa opção ativada para editar shaders com o menu de depuração (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Ativar Readbacks:\nAtive a leitura e gravação da memória da GPU.\nIsso é necessário para o funcionamento adequado de alguns jogos.\nPode causar instabilidade e/ou impactar o desempenho. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Ativar Readback Linear Images:\nAtiva o download assíncrono de imagens lineares(Linear Images) modificadas pela GPU.\nPode corrigir problemas em alguns jogos. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Copiar Buffers de GPU:\nContorna condições de corrida envolvendo envios de GPU.\nPode ou não ajudar com travamentos do PM4 tipo 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. - Marcadores de Depuração do Host:\nInsere informações vindo do emulador como marcadores para comandos AMDGPU específicos em torno de comandos Vulkan, além de fornecer nomes de depuração aos recursos.\nSe isso estiver habilitado, ative os Diagnósticos de Falhas.\nÚtil para programas como o 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. - Marcadores de Depuração do Convidado:\nInsere quaisquer marcadores de depuração que o próprio jogo adicionou ao buffer de comando.\nSe isso estiver habilitado, ative os Diagnósticos de Falhas.\nÚtil para programas como o RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Caminho dos Dados Salvos:\nA pasta que onde os dados de salvamento de jogo serão salvos. - - - Browse:\nBrowse for a folder to set as the save data path. - Procurar:\nProcure uma pasta para definir como o caminho para salvar dados. - - - Release - Release - - - Nightly - Nightly - - - Set the volume of the background music. - Defina o volume da música de fundo. - - - Enable Motion Controls - Ativar Controles de Movimento - - - Save Data Path - Caminho dos Dados Salvos - - - Browse - Procurar - - - async - assíncrono - - - sync - síncrono - - - Auto Select - Seleção Automática - - - Directory to install games - Diretório para instalar jogos - - - Directory to save data - Diretório para salvar dados - - - Video - Vídeo - - - Display Mode - Modo de Exibição - - - Windowed - Em Janela - - - Fullscreen - Tela Cheia - - - Fullscreen (Borderless) - Tela Cheia (Sem Bordas) - - - Window Size - Tamanho da Janela - - - W: - L: - - - H: - A: - - - Separate Log Files - Separar Arquivos de Registro - - - Separate Log Files:\nWrites a separate logfile for each game. - Separar Arquivos de Registro:\nGrava um arquivo de registro para cada jogo. - - - Trophy Notification Position - Posição da Notificação do Troféu - - - Left - Esquerda - - - Right - Direita - - - Top - Acima - - - Bottom - Abaixo - - - Notification Duration - Duração da Notificação - - - Portable User Folder - Pasta Portátil do Usuário - - - Create Portable User Folder from Common User Folder - Criar Pasta Portátil do Usuário a partir da Pasta Comum do Usuário - - - 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. - Pasta Portátil do Usuário:\nArmazena as configurações e dados do shadPS4 que serão aplicados apenas à compilação do shadPS4 localizada na pasta atual. Reinicie o aplicativo após criar a pasta portátil do usuário para começar a usá-la. - - - Cannot create portable user folder - Não é possível criar a pasta portátil do usuário - - - %1 already exists - %1 já existe - - - Portable user folder created - Pasta portátil do usuário criada - - - %1 successfully created. - %1 criado com sucesso. - - - 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. - Abrir a pasta de imagens e sons de troféus personalizados:\nVocê pode adicionar imagens personalizadas aos troféus e um áudio.\nAdicione os arquivos na pasta custom_trophy com os seguintes nomes:\ntrophy.wav OU trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nObservação: O som funcionará apenas em versões Qt. - - - * Unsupported Vulkan Version - * Versão do Vulkan não suportada - - - Experimental Features - Recursos Experimentais - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - AVISO: Esses recursos são experimentais e só devem ser ativados se você foi instruído a fazê-lo ou um jogo requer isso. Por favor, pergunte no servidor do Discord shadPS4 se você tiver alguma dúvida. - - - Enable Background Controller Input - Ativar Controle em Segundo plano - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Ativar Controle em Segundo plano:\nPermitir que o shadPS4 detecte entradas do controle quando a janela do jogo não está em foco. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microfone:\nNenhum: Não usa o microfone.\nDispositivo padrão: usará o dispositivo padrão definido no sistema.\nOu escolha manualmente o microfone que será usado na lista. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAjuste o volume para os jogos no nível global, o intervalo vai de 0-500% sendo o padrão 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Visualizador de Troféus - - - Select Game: - Selecionar Jogo: - - - Progress - Progresso - - - Show Earned Trophies - Mostrar Troféus Conquistados - - - Show Not Earned Trophies - Mostrar Troféus Não Conquistados - - - Show Hidden Trophies - Mostrar Troféus Ocultos - - - diff --git a/src/qt_gui/translations/pt_PT.ts b/src/qt_gui/translations/pt_PT.ts deleted file mode 100644 index 532e677de..000000000 --- a/src/qt_gui/translations/pt_PT.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Sobre o shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 é um emulador de código aberto experimental para o PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Este programa não deve ser usado para jogar títulos não obtidos legalmente. - - - - CheatsPatches - - Cheats / Patches for - Cheats / Patches para - - - 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 são experimentais.\nUse com caução.\n\nTransfira os cheats individualmente selecionando o repositório e clicando no botão de transferência.\nNa aba Patches, poderá transferir todos os Patches de uma vez, escolher o qual deseja usar e guardar as suas definições.\n\nComo nós não desenvolvemos os Cheats/Patches,\npor favor, reporte os problemas relacionados com o cheat ao autor deste.\n\nCriou um novo cheat? Visite:\n - - - No Image Available - Nenhuma Imagem Disponível - - - Serial: - Número de série: - - - Version: - Versão: - - - Size: - Tamanho: - - - Select Cheat File: - Selecionar Ficheiro de Cheat: - - - Repository: - Repositório: - - - Download Cheats - Transferir Cheats - - - Delete File - Eliminar Ficheiro - - - No files selected. - Nenhum ficheiro selecionado. - - - You can delete the cheats you don't want after downloading them. - Poderá eliminar os cheats que não deseja após os transferir. - - - Do you want to delete the selected file?\n%1 - Pretende eliminar o ficheiro selecionado?\n%1 - - - Select Patch File: - Selecionar Ficheiro de Patch: - - - Download Patches - Transferir Patches - - - Save - Guardar - - - Cheats - Cheats - - - Patches - Patches - - - Error - Erro - - - No patch selected. - Nenhum patch selecionado. - - - Unable to open files.json for reading. - Não foi possível abrir files.json para leitura. - - - No patch file found for the current serial. - Nenhum ficheiro de patch encontrado para o número de série atual. - - - Unable to open the file for reading. - Não foi possível abrir o ficheiro para leitura. - - - Unable to open the file for writing. - Não foi possível abrir o ficheiro para escrita. - - - Failed to parse XML: - Erro ao interpretar XML: - - - Success - Sucesso - - - Options saved successfully. - Opções guardadas com sucesso. - - - Invalid Source - Fonte Inválida - - - The selected source is invalid. - A fonte selecionada é inválida. - - - File Exists - O Ficheiro já Existe - - - File already exists. Do you want to replace it? - O ficheiro já existe. Deseja substituí-lo? - - - Failed to save file: - Erro ao guardar o ficheiro: - - - Failed to download file: - Erro ao transferir o ficheiro: - - - Cheats Not Found - Cheats Não Encontrados - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Não foi encontrado nenhum Cheat para esta versão do jogo no repositório selecionado, tente outro repositório ou uma versão diferente do jogo. - - - Cheats Downloaded Successfully - Cheats Transferidos com Sucesso - - - 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. - Transferiu os cheats para esta versão do jogo através do repositório selecionado com sucesso. Poderá tentar transferir de outro repositório, e se disponível, será possível utilizá-lo selecionando o ficheiro a partir da lista. - - - Failed to save: - Erro ao guardar: - - - Failed to download: - Erro ao transferir: - - - Download Complete - Transferência Concluída - - - 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 Transferidos com Sucesso! Foram transferidos todos os patches disponíveis para todos os jogos, não sendo necessário transferir individualmente para cada jogo como acontece com os Cheats. Se o patch não aparecer, pode ser que não esteja disponível para o número de série e versão específicos do jogo. - - - Failed to parse JSON data from HTML. - Falha ao interpretar dados JSON através do HTML. - - - Failed to retrieve HTML page. - Falha ao recuperar a página HTML. - - - The game is in version: %1 - O jogo está na versão: %1 - - - The downloaded patch only works on version: %1 - O patch transferido só funciona na versão: %1 - - - You may need to update your game. - Talvez seja necessário atualizar o seu jogo. - - - Incompatibility Notice - Aviso de Incompatibilidade - - - Failed to open file: - Erro ao abrir o ficheiro: - - - XML ERROR: - ERRO XML: - - - Failed to open files.json for writing - Não foi possível abrir files.json para escrita - - - Author: - Autor: - - - Directory does not exist: - A pasta não existe: - - - Failed to open files.json for reading. - Não foi possível abrir files.json para leitura. - - - Name: - Nome: - - - Can't apply cheats before the game is started - Não é possível aplicar cheats antes de iniciar o jogo - - - Close - Fechar - - - - CheckUpdate - - Auto Updater - Atualizador Automático - - - Error - Erro - - - Network error: - Erro de rede: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - O Atualizador Automático permite até 60 verificações de atualização por hora.\nJá atingiu este limite. Por favor, tente novamente mais tarde. - - - Failed to parse update information. - Falha ao interpretar as informações de atualização. - - - No pre-releases found. - Nenhuma versão de pré-lançamento encontrada. - - - Invalid release data. - Dados de lançamento inválidos. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Aviso:</b><br><br> A partir da versão <b>0.12.0</b>, a versão Qt do emulador não irá mais receber atualizações diretas.<br><br> No entanto, a interface Qt continua disponível através do novo launcher oficial:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – baseado no código original do shadPS4.<br><br>Recomendamos migrar para este launcher para continuar a receber atualizações. - - - Your version is already up to date! - A sua versão já é a mais recente! - - - Update Available - Atualização Disponível - - - Update Channel - Canal de Atualização - - - Current Version - Versão Atual - - - Latest Version - Última Versão - - - Do you want to update? - Deseja atualizar? - - - Show Changelog - Mostrar Lista de Alterações - - - Check for Updates at Startup - Procurar Atualizações ao Iniciar - - - Update - Atualizar - - - No - Não - - - Hide Changelog - Ocultar Lista de Alterações - - - Changes - Alterações - - - Network error occurred while trying to access the URL - Ocorreu um erro de rede ao tentar aceder ao URL - - - Download Complete - Transferência Concluída - - - The update has been downloaded, press OK to install. - A atualização foi transferida, pressione OK para instalar. - - - Failed to save the update file at - Erro ao guardar o ficheiro de atualização em - - - Starting Update... - A Iniciar Atualização... - - - Failed to create the update script file - Erro ao criar o ficheiro de script de atualização - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - A obter dados de compatibilidade, por favor aguarde - - - Cancel - Cancelar - - - Loading... - A Carregar... - - - Error - Erro - - - Unable to update compatibility data! Try again later. - Não foi possível atualizar os dados de compatibilidade! Tente novamente mais tarde. - - - Unable to open compatibility_data.json for writing. - Não foi possível abrir compatibility_data.json para escrita. - - - Unknown - Desconhecido - - - Nothing - Nada - - - Boots - Arranca - - - Menus - Menus - - - Ingame - Em Jogo - - - Playable - Jogável - - - - ControlSettings - - Configure Controls - Configurar Comandos - - - D-Pad - Botões de Direção - - - Up - Cima - - - Left - Esquerda - - - Right - Direita - - - Down - Baixo - - - Left Stick Deadzone (def:2 max:127) - Zona Morta do Manípulo Esquerdo (def: 2, max: 127) - - - Left Deadzone - Zona Morta Esquerda - - - Left Stick - Manípulo Esquerdo - - - Config Selection - Seleção de Configuração - - - Common Config - Configuração Comum - - - Use per-game configs - Utilizar configurações por jogo - - - Face Buttons - Botões Frontais - - - Right Stick Deadzone (def:2, max:127) - Zona Morta do Manípulo Direito (def: 2, max: 127) - - - Right Deadzone - Zona Morta Direita - - - Right Stick - Manípulo Direito - - - Color Adjustment - Ajuste de Cores - - - Override Lightbar Color - Substituir cor da Lightbar - - - Override Color - Substituir Cor - - - Unable to Save - Não foi possível guardar - - - Cannot bind axis values more than once - Não foi possível atribuir os valores do eixo X ou Y mais de uma vez - - - Save - Guardar - - - Apply - Aplicar - - - Restore Defaults - Restaurar Predefinições - - - Cancel - Cancelar - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Editar configurações de entrada do Teclado + Rato e do Comando - - - Use Per-Game configs - Utilizar configurações por jogo - - - Error - Erro - - - Could not open the file for reading - Não foi possível abrir o ficheiro para leitura - - - Could not open the file for writing - Não foi possível abrir o ficheiro para escrita - - - Save Changes - Guardar as alterações - - - Do you want to save changes? - Pretende guardar as alterações? - - - Help - Ajuda - - - Do you want to reset your custom default config to the original default config? - Restaurar a configuração customizada padrão para a configuração original padrão? - - - Do you want to reset this config to your custom default config? - Deseja redefinir esta configuração para a configuração padrão personalizada? - - - Reset to Default - Repor para o Padrão - - - - ElfViewer - - Open Folder - Abrir Pasta - - - - GameInfoClass - - Loading game list, please wait :3 - A carregar a lista de jogos, por favor aguarde :3 - - - Cancel - Cancelar - - - Loading... - A Carregar... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Escolher diretório - - - Directory to install games - Diretório onde instalar os jogos - - - Browse - Procurar - - - Error - Erro - - - Directory to install DLC - Diretório onde instalar os DLC - - - - GameListFrame - - Icon - Ícone - - - Name - Nome - - - Serial - Número de Série - - - Compatibility - Compatibilidade - - - Region - Região - - - Firmware - Firmware - - - Size - Tamanho - - - Version - Versão - - - Path - Caminho - - - Play Time - Tempo de Jogo - - - Never Played - Nunca Jogado - - - h - h - - - m - m - - - s - s - - - Compatibility is untested - A compatibilidade não foi testada - - - Game does not initialize properly / crashes the emulator - O jogo não arranca corretamente / bloqueia o emulador - - - Game boots, but only displays a blank screen - O jogo arranca, mas não exibe nada - - - Game displays an image but does not go past the menu - O jogo exibe imagem, mas não passa do menu - - - Game has game-breaking glitches or unplayable performance - O jogo tem falhas ou desempenho que o tornam injogável - - - Game can be completed with playable performance and no major glitches - O jogo pode ser concluído com desempenho jogável e sem grandes problemas - - - Click to see details on github - Clique para ver os detalhes no github - - - Last updated - Última atualização - - - Favorite - Favorite - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Criar Atalho - - - Cheats / Patches - Cheats / Patches - - - SFO Viewer - Visualizador SFO - - - Trophy Viewer - Visualizador de Troféus - - - Open Folder... - Abrir Pasta... - - - Open Game Folder - Abrir Pasta do Jogo - - - Open Save Data Folder - Abrir Pasta de Dados Guardados - - - Open Log Folder - Abrir Pasta de Registo - - - Copy info... - Copiar informação... - - - Copy Name - Copiar Nome - - - Copy Serial - Copiar Número de Série - - - Copy Version - Copiar Versão - - - Copy Size - Copiar Tamanho - - - Copy All - Copiar Tudo - - - Delete... - Eliminar... - - - Delete Game - Eliminar Jogo - - - Delete Update - Eliminar Atualização - - - Delete DLC - Eliminar DLC - - - Delete Trophy - Eliminar Troféu - - - Compatibility... - Compatibilidade... - - - Shortcut creation - Criação de atalho - - - Shortcut created successfully! - Atalho criado com sucesso! - - - Error - Erro - - - Error creating shortcut! - Erro ao criar atalho! - - - Game - Jogo - - - This game has no update to delete! - Este jogo não tem nenhuma atualização para eliminar! - - - Update - Atualizar - - - This game has no DLC to delete! - Este jogo não tem nenhum DLC para eliminar! - - - DLC - DLC - - - Delete %1 - Eliminar %1 - - - Are you sure you want to delete %1's %2 directory? - Tem certeza de que deseja eliminar o diretório %2 de %1? - - - Open Update Folder - Abrir Pasta da Atualização - - - Delete Save Data - Eliminar Dados Guardados - - - This game has no update folder to open! - Este jogo não tem nenhuma pasta de atualização para abrir! - - - No log file found for this game! - Não foi encontrado nenhum ficheiro de registo para este jogo! - - - Failed to convert icon. - Falha ao converter ícone. - - - This game has no save data to delete! - Este jogo não tem dados guardados para eliminar! - - - This game has no saved trophies to delete! - Este jogo não tem troféus guardados para eliminar! - - - Save Data - Dados Guardados - - - Trophy - Troféus - - - SFO Viewer for - Visualizador SFO para - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Início Rápido - - - FAQ - Perguntas Frequentes - - - Syntax - Sintaxe - - - Special Bindings - Atalhos Especiais - - - Keybindings - Combinações de Teclas - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - KBMSettings - - Configure Controls - Configurar Comandos - - - D-Pad - Botões de Direção - - - Up - Cima - - - unmapped - não mapeado - - - Left - Esquerda - - - Right - Direita - - - Down - Baixo - - - Left Analog Halfmode - Meio Modo do Manípulo Esquerdo - - - hold to move left stick at half-speed - mantenha pressionado para mover o manípulo esquerdo à metade da velocidade - - - Left Stick - Manípulo Esquerdo - - - Config Selection - Seleção de Configuração - - - Common Config - Configuração Comum - - - Use per-game configs - Utilizar configurações por jogo - - - Text Editor - Editor de Texto - - - Help - Ajuda - - - Mouse to Joystick - Rato para Manípulo - - - *press F7 ingame to activate - *pressione F7 em jogo para ativar - - - Options - Opções - - - Mouse Movement Parameters - Parâmetros de Movimento do Rato - - - note: click Help Button/Special Keybindings for more information - nota: clique no Botão de Ajuda/Special Keybindings para obter mais informações - - - Face Buttons - Botões Frontais - - - Triangle - Triângulo - - - Square - Quadrado - - - Circle - Círculo - - - Cross - Cruz - - - Right Analog Halfmode - Meio Modo do Manípulo Direito - - - hold to move right stick at half-speed - mantenha pressionado para mover o manípulo direito à metade da velocidade - - - Right Stick - Manípulo Direito - - - Speed Offset (def 0.125): - Deslocamento de Velocidade (def 0,125): - - - Copy from Common Config - Copiar da Configuração Comum - - - Deadzone Offset (def 0.50): - Deslocamento da Zona Morta (def 0,50): - - - Speed Multiplier (def 1.0): - Multiplicador de Velocidade (def 1,0): - - - Common Config Selected - Configuração Comum Selecionada - - - 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. - Este botão copia mapeamentos da Configuração Comum para o perfil atualmente selecionado, e não pode ser usado quando o perfil atualmente selecionado é a Configuração Comum. - - - Copy values from Common Config - Copiar valores da Configuração Comum - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Substituir mapeamentos existentes com os mapeamentos da Configuração Comum? - - - Unable to Save - Não foi possível guardar - - - Press a key - Pressione uma tecla - - - Cannot set mapping - Não é possível definir o mapeamento - - - Mousewheel cannot be mapped to stick outputs - Roda do rato não pode ser mapeada para saídas dos manípulos - - - Save - Guardar - - - Apply - Aplicar - - - Restore Defaults - Restaurar Predefinições - - - Cancel - Cancelar - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Abrir/Adicionar pasta Elf - - - Boot Game - Iniciar Jogo - - - Check for Updates - Procurar Atualizações - - - About shadPS4 - Sobre o shadPS4 - - - Configure... - Configurar... - - - Recent Games - Jogos Recentes - - - Open shadPS4 Folder - Abrir Pasta do shadPS4 - - - Exit - Sair - - - Exit shadPS4 - Sair do shadPS4 - - - Exit the application. - Sair da aplicação. - - - Show Game List - Mostrar Lista de Jogos - - - Game List Refresh - Atualizar Lista de Jogos - - - Tiny - Muito Pequeno - - - Small - Pequeno - - - Medium - Médio - - - Large - Grande - - - List View - Visualizar em Lista - - - Grid View - Visualizar em Grelha - - - Elf Viewer - Visualizador Elf - - - Game Install Directory - Diretório de Instalação dos Jogos - - - Download Cheats/Patches - Transferir Cheats/Patches - - - Dump Game List - Exportar Lista de Jogos - - - Trophy Viewer - Visualizador de Troféus - - - No games found. Please add your games to your library first. - Nenhum jogo encontrado. Por favor, adicione os seus jogos à sua biblioteca primeiro. - - - Search... - Procurar... - - - File - Ficheiro - - - View - Ver - - - Game List Icons - Ícones da Lista de Jogos - - - Game List Mode - Modo da Lista de Jogos - - - Settings - Definições - - - Utils - Utilidades - - - Themes - Temas - - - Help - Ajuda - - - Dark - Escuro - - - Light - Claro - - - Green - Verde - - - Blue - Azul - - - Violet - Violeta - - - toolBar - Barra de Ferramentas - - - Game List - Lista de Jogos - - - Download Cheats For All Installed Games - Transferir Cheats para Todos os Jogos Instalados - - - Download Patches For All Games - Transferir Patches para Todos os Jogos - - - Download Complete - Transferência Concluída - - - You have downloaded cheats for all the games you have installed. - Transferiu cheats para todos os jogos instalados. - - - Patches Downloaded Successfully! - Patches Transferidos com Sucesso! - - - All Patches available for all games have been downloaded. - Foram transferidos todos os Patches disponíveis para os jogos. - - - Games: - Jogos: - - - ELF files (*.bin *.elf *.oelf) - Ficheiros ELF (*.bin *.elf *.oelf) - - - Game Boot - Arranque do Jogo - - - Only one file can be selected! - Apenas um ficheiro pode ser selecionado! - - - Run Game - Executar Jogo - - - Eboot.bin file not found - Ficheiro eboot.bin não encontrado - - - Game is already running! - O jogo já está a ser executado! - - - shadPS4 - shadPS4 - - - Play - Reproduzir - - - Pause - Pausa - - - Stop - Parar - - - Restart - Reiniciar - - - Full Screen - Ecrã Inteiro - - - Controllers - Comandos - - - Keyboard - Teclado - - - Refresh List - Atualizar Lista - - - Resume - Continuar - - - Show Labels Under Icons - Mostrar Etiquetas Debaixo dos Ícones - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Definições - - - General - Geral - - - System - Sistema - - - Console Language - Idioma da Consola - - - Emulator Language - Idioma do Emulador - - - Default tab when opening settings - Aba padrão ao abrir as definições - - - Show Game Size In List - Mostrar Tamanho do Jogo na Lista - - - Enable Discord Rich Presence - Ativar Discord Rich Presence - - - Username - Nome de Utilizador - - - Trophy Key - Chave de Troféus - - - Trophy - Troféus - - - Open the custom trophy images/sounds folder - Abrir a pasta de imagens/sons de troféus personalizados - - - Logger - Registos - - - Log Type - Tipo de Registo - - - Log Filter - Filtro do Registo - - - Open Log Location - Abrir Localização do Registo - - - Input - Entrada - - - Cursor - Cursor - - - Hide Cursor - Ocultar Cursor - - - Hide Cursor Idle Timeout - Tempo de Espera para Ocultar Cursor - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Comando - - - Graphics - Gráficos - - - GUI - GUI - - - User - Utilizador - - - Graphics Device - Placa Gráfica - - - Advanced - Avançado - - - Enable Shaders Dumping - Ativar Dumping de Shaders - - - Enable NULL GPU - Ativar GPU NULL - - - Enable HDR - Ativar HDR - - - Paths - Caminhos - - - Game Folders - Pastas de Jogos - - - Add... - Adicionar... - - - Remove - Remover - - - Debug - Depuração - - - Enable Debug Dumping - Ativar Dumping da Depuração - - - Enable Vulkan Validation Layers - Ativar Camadas de Validação do Vulkan - - - Enable Vulkan Synchronization Validation - Ativar Validação da Sincronização do Vulkan - - - Enable RenderDoc Debugging - Ativar Depuração por RenderDoc - - - Enable Crash Diagnostics - Ativar Diagnóstico de Falhas - - - Collect Shaders - Recolher Shaders - - - Copy GPU Buffers - Copiar Buffers da GPU - - - Host Debug Markers - Marcadores de Depuração do Host - - - Guest Debug Markers - Marcadores de Depuração do Cliente - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Atualização - - - Check for Updates at Startup - Procurar Atualizações ao Iniciar - - - Always Show Changelog - Mostrar Sempre o Histórico de Mudanças - - - Update Channel - Canal de Atualização - - - Check for Updates - Procurar Atualizações - - - Title Music - Música de Título - - - Disable Trophy Notification - Desativar Notificações de Troféus - - - Background Image - Imagem de Fundo - - - Show Background Image - Mostrar Imagem de Fundo - - - Opacity - Opacidade - - - Play title music - Reproduzir Música de Título - - - Update Compatibility Database On Startup - Atualizar Base de Dados de Compatibilidade no Arranque - - - Game Compatibility - Compatibilidade dos Jogos - - - Display Compatibility Data - Exibir Dados de Compatibilidade - - - Update Compatibility Database - Atualizar Base de Dados de Compatibilidade - - - Volume - Volume - - - Save - Guardar - - - Apply - Aplicar - - - Restore Defaults - Restaurar Predefinições - - - Close - Fechar - - - Point your mouse at an option to display its description. - Passe o ponteiro do rato sobre uma opção para exibir a sua descrição. - - - 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. - Idioma da consola:\nDefine o idioma usado pelo jogo PS4.\nRecomenda-se configurar isto para um idioma que o jogo suporte, o que pode variar conforme a região. - - - Emulator Language:\nSets the language of the emulator's user interface. - Idioma do Emulador:\nDefine o idioma da interface gráfica do emulador. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Mostrar Splash Inicial:\nExibe o ecrã inicial do jogo (uma imagem especial) enquanto o jogo inicia. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Ativar Discord Rich Presence:\nExibe o ícone do emulador e informações relevantes no seu perfil do Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Nome de utilizador:\nDefine o nome de utilizador da conta PS4, que poderá ser exibido por alguns jogos. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Chave de Troféu:\nChave usada para decifrar os troféus. Deverá ser obtida a partir da sua consola desbloqueada.\nDeve conter apenas caracteres hexadecimais. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Tipo de Registo:\nDetermina se a saída da janela de registo deve ser sincronizada por motivos de desempenho. Pode impactar negativamente a emulação. - - - 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. - Filtro de Registo:\nFiltra o registo de modo a exibir apenas informações específicas.\nExemplos: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nNíveis: Trace, Debug, Info, Warning, Error, Critical - nesta ordem, um nível específico silencia todos os níveis anteriores na lista e regista todos os níveis após ele. - - - 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. - Atualização:\nLançamento: Versões oficiais lançadas todos os meses que podem estar desatualizadas, mas são mais estáveis e testadas.\nNightly: Versões de desenvolvimento que têm todos os últimos recursos e correções, mas podem conter bugs e são menos estáveis. - - - Background Image:\nControl the opacity of the game background image. - Imagem de Fundo:\nControla a transparência da imagem de fundo do jogo. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Reproduzir Música de Título:\nSe o jogo suportar, ativa a reprodução de uma música especial ao selecionar o jogo na interface de utilizador. - - - 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). - Desativar Pop-ups dos Troféus:\nDesativa notificações de troféus em jogo. O progresso do troféu ainda poderá ser rastreado ao usar o Visualizador de Troféus (clique com o botão direito do rato no jogo na janela principal). - - - 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. - Ocultar Cursor:\nEscolha quando o cursor desaparecerá:\nNunca: Verá sempre o rato.\nParado: Defina um tempo para desaparecer após ficar inativo.\nSempre: Nunca verá o rato. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Tempo de Espera para Ocultar o Cursor:\nDefine o tempo em segundos para o rato desaparecer após ficar inativo. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Exibir Dados de Compatibilidade:\nExibe informações de compatibilidade dos jogos em visualização de tabela.\nAtivar "Atualizar Base de Dados de Compatibilidade no Arranque" para obter informações atualizadas. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Atualizar Base de Dados de Compatibilidade no Arranque:\nAtualiza automaticamente a base de dados de compatibilidade quando o shadPS4 é iniciado. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Atualizar Base de Dados de Compatibilidade:\nAtualiza imediatamente a base de dados de compatibilidade. - - - Never - Nunca - - - Idle - Inativo - - - Always - Sempre - - - 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. - Placa Gráfica:\nEm sistemas com múltiplas GPUs, escolha qual GPU da lista o emulador utilizará,\nou escolha "Seleção Automática" para escolher automaticamente a mesma. - - - 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. - Largura/Altura:\nDefine o tamanho da janela do emulador no arranque, que poderá ser redimensionada enquanto joga.\nIsto difere da resolução do jogo. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Ativar Dumping de Shaders:\nArmazena as shaders do jogo numa pasta durante a renderização para fins de depuração técnica. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Ativar GPU NULL:\nDesativa a renderização do jogo para fins de depuração técnica, como se não existisse uma placa gráfica. - - - 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. - Ativar HDR:\nAtiva o HDR em jogos que o suportem.\nO seu monitor deverá ter suporte para o espaço de cores BT2020 PQ e para o formato de swapchain RGB10A2. - - - Game Folders:\nThe list of folders to check for installed games. - Pastas de Jogos:\nLista de pastas onde procurar jogos instalados. - - - Add:\nAdd a folder to the list. - Adicionar:\nAdicionar uma pasta à lista. - - - Remove:\nRemove a folder from the list. - Remover:\nRemover uma pasta da lista. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Ativar Dumping da Depuração:\nArmazena os símbolos de importação, exportação e informações do cabeçalho de ficheiros do atual programa PS4 num diretório. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Ativar Depuração por RenderDoc:\nSe ativado, o emulador fornecerá compatibilidade com o RenderDoc para permitir a captura e análise do quadro atualmente renderizado. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Recolher Shaders:\nIrá precisar desta opção ativada para editar shaders com o menu de depuração (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Copiar Buffers da GPU:\nContorna condições de corrida envolvendo envios de GPU.\nPode ou não ajudar com bloqueios do PM4 tipo 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. - Marcadores de Depuração do Host:\nInsere informações vindas do lado do emulador como marcadores para comandos AMDGPU específicos em torno de comandos Vulkan, além de fornecer nomes de depuração aos recursos.\nSe isto estiver ativado, ative os Diagnósticos de Falha.\nÚtil para programas como o 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. - Marcadores de Depuração do Cliente:\nInsere quaisquer marcadores de depuração que o próprio jogo adicionou ao buffer de comando.\nSe isto estiver ativado, ative os Diagnósticos de Falha.\nÚtil para programas como o RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Caminho dos Dados Guardados:\nA pasta onde os dados de utilizador dos jogos serão guardados. - - - Browse:\nBrowse for a folder to set as the save data path. - Procurar:\nProcure uma pasta para definir como o caminho para guardar os dados. - - - Release - Lançamento - - - Nightly - Nightly - - - Set the volume of the background music. - Definir o volume da música de fundo. - - - Enable Motion Controls - Ativar Comandos de Movimento - - - Save Data Path - Caminho dos Dados Guardados - - - Browse - Procurar - - - async - assíncrono - - - sync - síncrono - - - Auto Select - Seleção Automática - - - Directory to install games - Diretório onde instalar os jogos - - - Directory to save data - Diretório onde guardar os dados - - - Video - Vídeo - - - Display Mode - Modo de Exibição - - - Windowed - Em Janela - - - Fullscreen - Ecrã inteiro - - - Fullscreen (Borderless) - Ecrã Inteiro (Sem Bordas) - - - Window Size - Tamanho da Janela - - - W: - L: - - - H: - A: - - - Separate Log Files - Separar Ficheiros de Registo - - - Separate Log Files:\nWrites a separate logfile for each game. - Separar Ficheiros de Registo:\nEscreve um ficheiro de registo para cada jogo. - - - Trophy Notification Position - Posição da Notificação do Troféu - - - Left - Esquerda - - - Right - Direita - - - Top - Acima - - - Bottom - Abaixo - - - Notification Duration - Duração da Notificação - - - Portable User Folder - Pasta de Utilizador Portátil - - - Create Portable User Folder from Common User Folder - Criar Pasta de Utilizador Portátil a partir da Pasta de Utilizador Comum - - - 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. - Pasta de utilizador portátil:\nArmazena as definições e dados do shadPS4 que serão aplicados apenas na compilação do shadPS4 localizada na pasta atual. Reinicie a aplicação após criar a pasta de utilizador portátil para começar a usá-la. - - - Cannot create portable user folder - Não foi possível criar pasta de utilizador portátil - - - %1 already exists - %1 já existe - - - Portable user folder created - Pasta de utilizador portátil criada - - - %1 successfully created. - %1 criado com sucesso. - - - 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. - Abra a pasta de imagens/sons de troféus personalizados:\nPoderá adicionar imagens personalizadas aos troféus e um áudio.\nAdicione os ficheiros na pasta custom_trophy com os seguintes nomes:\ntrophy.mp3 ou trophy.wav, bronze.png, gold.png, platinum.png, silver.png\nObservação: O som funcionará apenas nas versões Qt. - - - * Unsupported Vulkan Version - * Versão do Vulkan não suportada - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Visualizador de Troféus - - - Select Game: - Escolha o Jogo: - - - Progress - Progresso - - - Show Earned Trophies - Mostrar Troféus Conquistados - - - Show Not Earned Trophies - Mostrar Troféus Não Conquistados - - - Show Hidden Trophies - Mostrar Troféus Ocultos - - - diff --git a/src/qt_gui/translations/ro_RO.ts b/src/qt_gui/translations/ro_RO.ts deleted file mode 100644 index 6c5930aaa..000000000 --- a/src/qt_gui/translations/ro_RO.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Despre 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 sunt experimentale.\nUtilizați cu prudență.\n\nDescărcați cheats individual prin selectarea depozitului și făcând clic pe butonul de descărcare.\nÎn fila Patches, puteți descărca toate patch-urile deodată, alege pe cele pe care doriți să le utilizați și salvați selecția.\n\nDeoarece nu dezvoltăm Cheats/Patches,\nte rugăm să raportezi problemele autorului cheat-ului.\n\nAi creat un nou cheat? Vizitează:\n - - - No Image Available - Nu este disponibilă imaginea - - - Serial: - Serial: - - - Version: - Versiune: - - - Size: - Dimensiune: - - - Select Cheat File: - Selectează fișierul Cheat: - - - Repository: - Repository: - - - Download Cheats - Descarcă Cheats - - - Delete File - Șterge Fișierul - - - No files selected. - Nu sunt fișiere selectate. - - - You can delete the cheats you don't want after downloading them. - Poti șterge cheats-urile pe care nu le dorești după ce le-ai descărcat. - - - Do you want to delete the selected file?\n%1 - Vrei să ștergi fișierul selectat?\n%1 - - - Select Patch File: - Selectează fișierul Patch: - - - Download Patches - Descarcă Patches - - - Save - Salvează - - - Cheats - Cheats - - - Patches - Patches - - - Error - Eroare - - - No patch selected. - Nu este selectat niciun patch. - - - Unable to open files.json for reading. - Imposibil de deschis files.json pentru citire. - - - No patch file found for the current serial. - Nu s-a găsit niciun fișier patch pentru serialul curent. - - - Unable to open the file for reading. - Imposibil de deschis fișierul pentru citire. - - - Unable to open the file for writing. - Imposibil de deschis fișierul pentru scriere. - - - Failed to parse XML: - Nu s-a reușit pararea XML: - - - Success - Succes - - - Options saved successfully. - Opțiunile au fost salvate cu succes. - - - Invalid Source - Sursă invalidă - - - The selected source is invalid. - Sursa selectată este invalidă. - - - File Exists - Fișier existent - - - File already exists. Do you want to replace it? - Fișierul există deja. Vrei să-l înlocuiești? - - - Failed to save file: - Nu s-a reușit salvarea fișierului: - - - Failed to download file: - Nu s-a reușit descărcarea fișierului: - - - Cheats Not Found - Cheats Nu au fost găsite - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Nu au fost găsite cheats pentru acest joc în această versiune a repository-ului selectat, încearcă un alt repository sau o versiune diferită a jocului. - - - Cheats Downloaded Successfully - Cheats descărcate cu succes - - - 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. - Ai descărcat cu succes cheats-urile pentru această versiune a jocului din repository-ul selectat. Poți încerca descărcarea din alt repository; dacă este disponibil, va fi posibil să-l folosești selectând fișierul din listă. - - - Failed to save: - Nu s-a reușit salvarea: - - - Failed to download: - Nu s-a reușit descărcarea: - - - Download Complete - Descărcare completă - - - 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 descărcate cu succes! Toate Patches disponibile pentru toate jocurile au fost descărcate; nu este nevoie să le descarci individual pentru fiecare joc, așa cum se întâmplă cu Cheats. Dacă patch-ul nu apare, este posibil să nu existe pentru seria și versiunea specifică a jocului. - - - Failed to parse JSON data from HTML. - Nu s-a reușit pararea datelor JSON din HTML. - - - Failed to retrieve HTML page. - Nu s-a reușit obținerea paginii HTML. - - - The game is in version: %1 - Jocul este în versiunea: %1 - - - The downloaded patch only works on version: %1 - Patch-ul descărcat funcționează doar pe versiunea: %1 - - - You may need to update your game. - Este posibil să trebuiască să actualizezi jocul tău. - - - Incompatibility Notice - Avertizare de incompatibilitate - - - Failed to open file: - Nu s-a reușit deschiderea fișierului: - - - XML ERROR: - EROARE XML: - - - Failed to open files.json for writing - Nu s-a reușit deschiderea files.json pentru scriere - - - Author: - Autor: - - - Directory does not exist: - Directorul nu există: - - - Failed to open files.json for reading. - Nu s-a reușit deschiderea files.json pentru citire. - - - Name: - Nume: - - - Can't apply cheats before the game is started - Nu poți aplica cheats înainte ca jocul să înceapă. - - - Close - Închide - - - - CheckUpdate - - Auto Updater - Actualizator automat - - - Error - Eroare - - - Network error: - Eroare de rețea: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Actualizatorul automat permite până la 60 de verificări de actualizare pe oră.\nAți atins această limită. Vă rugăm să încercați din nou mai târziu. - - - Failed to parse update information. - Nu s-au putut analiza informațiile de actualizare. - - - No pre-releases found. - Nu au fost găsite pre-lansări. - - - Invalid release data. - Datele versiunii sunt invalide. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Notificare:</b><br><br> Începând cu versiunea <b>0.12.0</b>, versiunea Qt a emulatorului nu va mai primi actualizări directe.<br><br> Cu toate acestea, interfața Qt rămâne disponibilă prin noul launcher oficial:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – bazat pe codul sursă original shadPS4.<br><br>Vă recomandăm să treceți la acest launcher pentru a continua să primiți actualizări. - - - Your version is already up to date! - Versiunea ta este deja actualizată! - - - Update Available - Actualizare disponibilă - - - Update Channel - Canal de Actualizare - - - Current Version - Versiunea curentă - - - Latest Version - Ultima versiune - - - Do you want to update? - Doriți să actualizați? - - - Show Changelog - Afișați jurnalul de modificări - - - Check for Updates at Startup - Verifică actualizări la pornire - - - Update - Actualizare - - - No - Nu - - - Hide Changelog - Ascunde jurnalul de modificări - - - Changes - Modificări - - - Network error occurred while trying to access the URL - A apărut o eroare de rețea în timpul încercării de a accesa URL-ul - - - Download Complete - Descărcare completă - - - The update has been downloaded, press OK to install. - Actualizarea a fost descărcată, apăsați OK pentru a instala. - - - Failed to save the update file at - Nu s-a putut salva fișierul de actualizare la - - - Starting Update... - Încep actualizarea... - - - Failed to create the update script file - Nu s-a putut crea fișierul script de actualizare - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Se colectează datele de compatibilitate, vă rugăm să așteptați - - - Cancel - Anulează - - - Loading... - Se încarcă... - - - Error - Eroare - - - Unable to update compatibility data! Try again later. - Nu se poate actualiza datele de compatibilitate! Încercați din nou mai târziu. - - - Unable to open compatibility_data.json for writing. - Nu se poate deschide compatibility_data.json pentru scriere. - - - Unknown - Necunoscut - - - Nothing - Nimic - - - Boots - Botine - - - Menus - Meniuri - - - Ingame - În joc - - - Playable - Jucabil - - - - 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 - - - Face Buttons - Face Buttons - - - 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 - - - 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 - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - 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 - Director pentru a instala DLC - - - - GameListFrame - - Icon - Icon - - - Name - Nume - - - Serial - Serie - - - Compatibility - Compatibility - - - Region - Regiune - - - Firmware - Firmware - - - Size - Dimensiune - - - Version - Versiune - - - Path - Drum - - - Play Time - Timp de Joacă - - - 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 - Faceți clic pentru a vedea detalii pe GitHub - - - Last updated - Ultima actualizare - - - Favorite - Favorite - - - - 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... - Deschide Folder... - - - Open Game Folder - Deschide Folder Joc - - - Open Save Data Folder - Deschide Folder Date Salvate - - - Open Log Folder - Deschide Folder Jurnal - - - 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... - - - 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 - Șterge Salvare Date - - - This game has no update folder to open! - Acest joc nu are folderul de actualizări pentru a fi deschis! - - - 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 - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Open/Add Elf Folder - - - Boot Game - Boot Game - - - Check for Updates - Verifică actualizările - - - 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 - Descarcă Coduri / Patch-uri - - - 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 - Ajutor - - - Dark - Dark - - - Light - Light - - - Green - Green - - - Blue - Blue - - - Violet - Violet - - - toolBar - toolBar - - - Game List - Lista jocurilor - - - Download Cheats For All Installed Games - Descarcă Cheats pentru toate jocurile instalate - - - Download Patches For All Games - Descarcă Patches pentru toate jocurile - - - Download Complete - Descărcare completă - - - You have downloaded cheats for all the games you have installed. - Ai descărcat cheats pentru toate jocurile instalate. - - - Patches Downloaded Successfully! - Patches descărcate cu succes! - - - All Patches available for all games have been downloaded. - Toate Patches disponibile pentru toate jocurile au fost descărcate. - - - Games: - Jocuri: - - - ELF files (*.bin *.elf *.oelf) - Fișiere ELF (*.bin *.elf *.oelf) - - - Game Boot - Boot Joc - - - Only one file can be selected! - Numai un fișier poate fi selectat! - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - System - - - Console Language - Console Language - - - Emulator Language - Emulator Language - - - Default tab when opening settings - Tab-ul implicit la deschiderea setărilor - - - Show Game Size In List - Afișează dimensiunea jocului în listă - - - Enable Discord Rich Presence - Activați 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 - Deschide locația jurnalului - - - Input - Introducere - - - Cursor - Cursor - - - Hide Cursor - Ascunde cursorul - - - Hide Cursor Idle Timeout - Timeout pentru ascunderea cursorului inactiv - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Controler - - - Graphics - Graphics - - - GUI - Interfață - - - User - Utilizator - - - Graphics Device - Graphics Device - - - Advanced - Advanced - - - Enable Shaders Dumping - Enable Shaders Dumping - - - Enable NULL GPU - Enable NULL GPU - - - Enable HDR - Enable HDR - - - Paths - Trasee - - - Game Folders - Dosare de joc - - - Add... - Adaugă... - - - Remove - Eliminare - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Actualizare - - - Check for Updates at Startup - Verifică actualizări la pornire - - - Always Show Changelog - Arată întotdeauna jurnalul modificărilor - - - Update Channel - Canal de Actualizare - - - Check for Updates - Verifică actualizări - - - 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 - Redă muzica titlului - - - 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 - Volum - - - Save - Salvează - - - Apply - Aplică - - - Restore Defaults - Restabilește Impozitivele - - - Close - Închide - - - Point your mouse at an option to display its description. - Indicați mouse-ul asupra unei opțiuni pentru a afișa descrierea acesteia. - - - 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. - Limba consolei:\nSetează limba pe care o folosește jocul PS4.\nSe recomandă să setezi această opțiune pe o limbă pe care jocul o suportă, ceea ce poate varia în funcție de regiune. - - - Emulator Language:\nSets the language of the emulator's user interface. - Limba emulatorului:\nSetează limba interfeței utilizatorului a emulatorului. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Afișează ecranul de încărcare:\nAfișează ecranul de încărcare al jocului (o imagine specială) în timp ce jocul pornește. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Activați Discord Rich Presence:\nAfișează pictograma emulatorului și informații relevante pe profilul dumneavoastră Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Nume utilizator:\nSetează numele de utilizator al contului PS4, care poate fi afișat de unele jocuri. - - - 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. - Tip jurnal:\nSetează dacă să sincronizezi ieșirea ferestrei de jurnal pentru performanță. Aceasta poate avea efecte adverse asupra emulării. - - - 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. - Filtrul jurnalului:\nFiltrează jurnalul pentru a imprima doar informații specifice.\nExemple: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Niveluri: Trace, Debug, Info, Warning, Error, Critical - în această ordine, un nivel specific reduce toate nivelurile anterioare din listă și înregistrează toate nivelurile ulterioare. - - - 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. - Actualizare:\nRelease: Versiuni oficiale lansate în fiecare lună, care pot fi foarte învechite, dar sunt mai fiabile și testate.\nNightly: Versiuni de dezvoltare care conțin toate cele mai recente funcții și corecții, dar pot conține erori și sunt mai puțin stabile. - - - 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. - Redă muzica titlului:\nDacă un joc o suportă, activează redarea muzicii speciale când selectezi jocul î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). - - - 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. - Ascunde cursorul:\nAlegeți când va dispărea cursorul:\nNiciodată: Vei vedea întotdeauna mouse-ul.\nInactiv: Setează un timp pentru a dispărea după inactivitate.\nÎntotdeauna: nu vei vedea niciodată mouse-ul. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Setați un timp pentru ca mouse-ul să dispară după ce a fost inactiv. - - - 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 - Niciodată - - - Idle - Inactiv - - - Always - Întotdeauna - - - 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. - Dispozitiv grafic:\nPe sistemele cu mai multe GPU-uri, alege GPU-ul pe care emulatorul îl va folosi din lista derulantă,\nsau selectează "Auto Select" pentru a-l determina automat. - - - 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. - Lățime/Înălțime:\nSetează dimensiunea ferestrei emulatorului la lansare, care poate fi redimensionată în timpul jocului.\nAceasta este diferită de rezoluția din joc. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Activează salvarea shaderelor:\nÎn scopuri de depanare tehnică, salvează shader-urile jocului într-un folder pe măsură ce sunt randate. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Activează GPU Null:\nÎn scopuri de depanare tehnică, dezactivează redarea jocului ca și cum nu ar exista o placă grafică. - - - 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. - Folderele jocurilor:\nLista folderelor pentru a verifica jocurile instalate. - - - Add:\nAdd a folder to the list. - Adăugați:\nAdăugați un folder la listă. - - - Remove:\nRemove a folder from the list. - Eliminați:\nÎndepărtați un folder din listă. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Activează salvarea pentru depanare:\nSalvează simbolurile de import și export și informațiile din antetul fișierului pentru aplicația PS4 care rulează în prezent într-un director. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Activează depanarea RenderDoc:\nDacă este activat, emulatorul va oferi compatibilitate cu Renderdoc pentru a permite capturarea și analiza cadrului redat în prezent. - - - 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - 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/ru_RU.ts b/src/qt_gui/translations/ru_RU.ts deleted file mode 100644 index 75d9bab01..000000000 --- a/src/qt_gui/translations/ru_RU.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - О shadPS4 - - - 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. - Это программное обеспечение не должно использоваться для запуска игр, которые вы получили нелегально. - - - - CheatsPatches - - 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 - - - No Image Available - Изображение недоступно - - - Serial: - Серийный номер: - - - Version: - Версия: - - - Size: - Размер: - - - Select Cheat File: - Выберите файл чита: - - - Repository: - Репозиторий: - - - Download Cheats - Скачать читы - - - Delete File - Удалить файл - - - 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 - - - Select Patch File: - Выберите файл патча: - - - Download Patches - Скачать патчи - - - Save - Сохранить - - - Cheats - Читы - - - Patches - Патчи - - - Error - Ошибка - - - No patch selected. - Патч не выбран. - - - Unable to open files.json for reading. - Не удалось открыть файл 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: - - - Success - Успех - - - Options saved successfully. - Опции успешно сохранены. - - - Invalid Source - Неверный источник - - - The selected source is invalid. - Выбранный источник недействителен. - - - File Exists - Файл существует - - - 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 - Скачивание завершено - - - 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. - Не удалось разобрать данные JSON из HTML. - - - Failed to retrieve HTML page. - Не удалось получить HTML-страницу. - - - The game is in version: %1 - Игра в версии: %1 - - - The downloaded patch only works on version: %1 - Скачанный патч работает только на версии: %1 - - - You may need to update your game. - Вам может понадобиться обновить игру. - - - Incompatibility Notice - Уведомление о несовместимости - - - Failed to open file: - Не удалось открыть файл: - - - XML ERROR: - ОШИБКА XML: - - - Failed to open files.json for writing - Не удалось открыть файл files.json для записи - - - Author: - Автор: - - - Directory does not exist: - Каталог не существует: - - - Failed to open files.json for reading. - Не удалось открыть файл files.json для чтения. - - - Name: - Имя: - - - Can't apply cheats before the game is started - Невозможно применить читы до начала игры - - - Close - Закрыть - - - - CheckUpdate - - Auto Updater - Автообновление - - - Error - Ошибка - - - Network error: - Сетевая ошибка: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Автообновление позволяет выполнять до 60 проверок обновлений в час.\nВы достигли этого лимита. Пожалуйста, попробуйте позже. - - - Failed to parse update information. - Не удалось разобрать информацию об обновлении. - - - No pre-releases found. - Предварительных версий не найдено. - - - Invalid release data. - Недопустимые данные релиза. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Внимание:</b><br><br> Начиная с версии <b>0.12.0</b> версия Qt эмулятора больше не будет получать прямые обновления.<br><br> Тем не менее, интерфейс Qt остаётся доступным через новый официальный лаунчер:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – основан на исходном коде shadPS4.<br><br>Рекомендуем перейти на этот лаунчер, чтобы продолжать получать обновления. - - - Your version is already up to date! - Ваша версия уже обновлена! - - - Update Available - Доступно обновление - - - Update Channel - Канал обновления - - - Current Version - Текущая версия - - - Latest Version - Последняя версия - - - Do you want to update? - Вы хотите обновиться? - - - Show Changelog - Показать журнал изменений - - - Check for Updates at Startup - Проверка при запуске - - - Update - Обновить - - - No - Нет - - - Hide Changelog - Скрыть журнал изменений - - - Changes - Журнал изменений - - - Network error occurred while trying to access the URL - Произошла сетевая ошибка при попытке доступа к URL - - - Download Complete - Скачивание завершено - - - The update has been downloaded, press OK to install. - Обновление загружено, нажмите OK для установки. - - - Failed to save the update file at - Не удалось сохранить файл обновления в - - - Starting Update... - Начинаем обновление... - - - Failed to create the update script file - Не удалось создать файл скрипта обновления - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Загрузка данных о совместимости, пожалуйста, подождите - - - Cancel - Отмена - - - Loading... - Загрузка... - - - Error - Ошибка - - - Unable to update compatibility data! Try again later. - Не удалось обновить данные совместимости! Повторите попытку позже. - - - Unable to open compatibility_data.json for writing. - Не удалось открыть файл compatibility_data.json для записи. - - - Unknown - Неизвестно - - - Nothing - Ничего - - - Boots - Запускается - - - Menus - В меню - - - Ingame - В игре - - - Playable - Играбельно - - - - ControlSettings - - Configure Controls - Настроить управление - - - D-Pad - Крестовина - - - Up - Вверх - - - Left - Влево - - - Right - Вправо - - - Down - Вниз - - - Left Stick Deadzone (def:2 max:127) - Мёртвая зона левого стика (по умолч:2 макс:127) - - - Left Deadzone - Левая мёртвая зона - - - Left Stick - Левый стик - - - Config Selection - Выбор конфига - - - Common Config - Общий конфиг - - - Use per-game configs - Использовать настройки для каждой игры - - - Face Buttons - Кнопки действий - - - Right Stick Deadzone (def:2, max:127) - Мёртвая зона правого стика (по умолч:2 макс:127) - - - Right Deadzone - Правая мёртвая зона - - - Right Stick - Правый стик - - - Color Adjustment - Настройка цвета - - - Override Lightbar Color - Заменить цвет световой панели - - - Override Color - Заменить цвет - - - Unable to Save - Не удаётся сохранить - - - Cannot bind axis values more than once - Невозможно привязать значения оси более одного раза - - - Save - Сохранить - - - Apply - Применить - - - Restore Defaults - По умолчанию - - - Cancel - Отмена - - - unmapped - не назначено - - - Options - Options - - - Touchpad Left - Тачпад слева - - - Touchpad Center - Тачпад центр - - - Touchpad Right - Тачпад справа - - - Triangle - Треугольник - - - Square - Квадрат - - - Circle - Круг - - - Cross - Крест - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Невозможно привязать уникальный ввод более одного раза. Дублированные вводы назначены на следующие кнопки: - -%1 - - - Press a button - Нажмите кнопку - - - Move analog stick - Двиньте аналоговый стик - - - L1 and L2 - L1 и L2 - - - Active Gamepad - Текущий геймпад - - - Gamepad ID - ID геймпада - - - Default Gamepad - Геймпад по умолчанию - - - No default selected - Не выбран по умолчанию - - - n/a - n/a - - - Set Active Gamepad as Default - Выбрать текущий геймпад по умолчанию - - - Remove Default Gamepad - Удалить геймпад по умолчанию - - - R1 and R2 - R1 и R2 - - - ID: - ID: - - - Default Controller Selected - Выбран контроллер по умолчанию - - - Active controller set as default - Текущий контроллер выбран по умолчанию - - - Default Controller Removed - Контроллер по умолчанию удалён - - - Default controller setting removed - Настройки геймпада по умолчанию удалены - - - RED - КРАСНЫЙ - - - GREEN - ЗЕЛЁНЫЙ - - - BLUE - СИНИЙ - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Редактировать бинды клавиатуры + мыши и контроллера - - - Use Per-Game configs - Использовать настройки для каждой игры - - - Error - Ошибка - - - Could not open the file for reading - Не удалось открыть файл для чтения - - - Could not open the file for writing - Не удалось открыть файл для записи - - - Save Changes - Сохранить изменения - - - Do you want to save changes? - Хотите сохранить изменения? - - - Help - Помощь - - - 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? - Хотите ли вы сбросить этот конфиг к вашему пользовательскому конфигу по умолчанию? - - - Reset to Default - Сбросить по умолчанию - - - - ElfViewer - - Open Folder - Открыть папку - - - - GameInfoClass - - Loading game list, please wait :3 - Загрузка списка игр, пожалуйста подождите :3 - - - Cancel - Отмена - - - Loading... - Загрузка... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Выберите папку - - - Directory to install games - Каталог для установки игр - - - Browse - Обзор - - - Error - Ошибка - - - Directory to install DLC - Каталог для установки DLC - - - - GameListFrame - - Icon - Иконка - - - Name - Название - - - Serial - Серийный номер - - - Compatibility - Совместимость - - - Region - Регион - - - Firmware - Прошивка - - - Size - Размер - - - Version - Версия - - - Path - Путь - - - Play Time - Время в игре - - - Never Played - Нет - - - h - ч - - - m - м - - - s - с - - - Compatibility is untested - Совместимость не проверена - - - Game does not initialize properly / crashes the emulator - Игра не инициализируется правильно / эмулятор вылетает - - - Game boots, but only displays a blank screen - Игра запускается, но показывает только пустой экран - - - Game displays an image but does not go past the menu - Игра показывает картинку, но не проходит дальше меню - - - Game has game-breaking glitches or unplayable performance - Игра имеет ломающие игру глюки или плохую производительность - - - Game can be completed with playable performance and no major glitches - Игра может быть пройдена с хорошей производительностью и без серьезных сбоев - - - Click to see details on github - Нажмите, чтобы увидеть детали на GitHub - - - Last updated - Последнее обновление - - - Favorite - Избранное - - - - GameListUtils - - B - Б - - - KB - КБ - - - MB - МБ - - - GB - ГБ - - - TB - ТБ - - - - GuiContextMenus - - Create Shortcut - Создать ярлык - - - Cheats / Patches - Читы и патчи - - - SFO Viewer - Просмотр SFO - - - Trophy Viewer - Просмотр трофеев - - - Open Folder... - Открыть папку... - - - Open Game Folder - Открыть папку с игрой - - - Open Save Data Folder - Открыть папку сохранений - - - Open Log Folder - Открыть папку логов - - - Copy info... - Копировать информацию... - - - Copy Name - Копировать имя - - - Copy Serial - Копировать серийный номер - - - Copy Version - Скопировать версию - - - Copy Size - Скопировать размер - - - Copy All - Копировать всё - - - Delete... - Удалить... - - - Delete Game - Удалить игру - - - Delete Update - Удалить обновление - - - Delete DLC - Удалить DLC - - - Delete Trophy - Удалить трофей - - - Compatibility... - Совместимость... - - - Shortcut creation - Создание ярлыка - - - Shortcut created successfully! - Ярлык создан успешно! - - - Error - Ошибка - - - Error creating shortcut! - Ошибка создания ярлыка! - - - Game - Игры - - - This game has no update to delete! - У этой игры нет обновлений для удаления! - - - Update - Обновления - - - This game has no DLC to delete! - У этой игры нет DLC для удаления! - - - DLC - DLC - - - Delete %1 - Удалить %1 - - - Are you sure you want to delete %1's %2 directory? - Вы уверены, что хотите удалить папку %2 %1? - - - Open Update Folder - Открыть папку обновлений - - - Delete Save Data - Удалить сохранения - - - This game has no update folder to open! - У этой игры нет папки обновлений, которую можно открыть! - - - No log file found for this game! - Не найден файл логов для этой игры! - - - Failed to convert icon. - Не удалось преобразовать иконку. - - - This game has no save data to delete! - У этой игры нет сохранений, которые можно удалить! - - - This game has no saved trophies to delete! - У этой игры нет сохраненных трофеев для удаления! - - - Save Data - Сохранения - - - Trophy - Трофей - - - SFO Viewer for - Просмотр SFO для - - - Remove from Favorites - Удалить из избранного - - - Add to Favorites - Добавить в избранное - - - Game-specific Settings... - Индивидуальная конфигурация... - - - Configure Game-specific Settings - Настроить индивидуальную конфигурацию - - - Create Game-specific Settings from Global Settings - Создать индивидуальную конфигурацию из глобальных настроек - - - Delete Game-specific Settings - Удалить индивидуальную конфигурацию - - - Update Database - Обновить базу данных - - - View Report - Посмотреть отчет - - - Submit a Report - Отправить отчёт - - - Confirm deletion - Подтвердить удаление - - - Delete game-specific settings? - Удалить индивидуальную конфигурацию? - - - - HelpDialog - - Quickstart - Быстрый старт - - - FAQ - ЧАВО - - - Syntax - Синтаксис - - - Special Bindings - Специальные бинды - - - Keybindings - Бинды клавиш - - - - Hotkeys - - Customize Hotkeys - Настроить горячие клавиши - - - Controller Hotkeys - Горячие клавиши контроллера - - - Show FPS Counter - Показать счетчик FPS - - - unmapped - не назначено - - - Quit Emulation - Завершить эмуляцию - - - Reload Button Mappings - Перезагрузить назначения кнопок - - - Toggle Fullscreen - Переключить полноэкранный режим - - - Toggle Pause - Переключить паузу - - - Keyboard Hotkeys - Горячие клавиши клавиатуры - - - Renderdoc Capture (for debugging only) - Захват Renderdoc (только для отладки) - - - Toggle Mouse to Joystick Emulation - Переключить мышь в эмуляцию джойстика - - - Toggle Mouse to Gyro Emulation - Переключить мышь в эмуляцию гироскопа - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Подсказка: для каждой горячей клавиши может быть назначено до трёх одновремённых вводов - - - Save - Сохранить - - - Apply - Применить - - - Cancel - Отмена - - - Restore Defaults - По умолчанию - - - Unable to Save - Не удаётся сохранить - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Невозможно привязать уникальный ввод более одного раза. Дублированные вводы назначены на следующие кнопки: - -%1 - - - Waiting for inputs - Ожидание ввода - - - - KBMSettings - - Configure Controls - Настроить управление - - - D-Pad - Крестовина - - - Up - Вверх - - - unmapped - не назначено - - - Left - Влево - - - Right - Вправо - - - Down - Вниз - - - Left Analog Halfmode - Левый стик вполовину - - - hold to move left stick at half-speed - удерживайте для перемещения левого стика вполовину меньше - - - Left Stick - Левый стик - - - Config Selection - Выбор конфига - - - Common Config - Общий конфиг - - - Use per-game configs - Использовать настройки для каждой игры - - - Text Editor - Текстовый редактор - - - Help - Помощь - - - Mouse to Joystick - Мышь в джойстик - - - *press F7 ingame to activate - *нажмите F7 в игре для активации - - - Options - Options - - - Mouse Movement Parameters - Параметры движения мыши - - - note: click Help Button/Special Keybindings for more information - примечание: нажмите кнопку Помощь/Специальные бинды для получения дополнительной информации - - - Face Buttons - Кнопки действий - - - Triangle - Треугольник - - - Square - Квадрат - - - Circle - Круг - - - Cross - Крест - - - Right Analog Halfmode - Правый стик вполовину - - - hold to move right stick at half-speed - удерживайте для перемещения правого стика вполовину меньше - - - Right Stick - Правый стик - - - Speed Offset (def 0.125): - Смещение скорости (по умолч 0.125): - - - Copy from Common Config - Копировать из общего конфига - - - Deadzone Offset (def 0.50): - Смещение мёртвой зоны (по умолч 0.50) - - - Speed Multiplier (def 1.0): - Множитель скорости (по умолч 1.0) - - - 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. - Эта кнопка копирует настройки из общего конфига в текущий выбранный профиль, и не может быть использован, когда выбранный профиль - это общий конфиг. - - - Copy values from Common Config - Копировать значения из общего конфига - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Вы хотите перезаписать существующие настройки настройками из общего конфига? - - - Unable to Save - Не удаётся сохранить - - - Press a key - Нажмите кнопку - - - Cannot set mapping - Не удаётся задать настройки - - - Mousewheel cannot be mapped to stick outputs - Колесо не может быть назначено для вывода стиков - - - Save - Сохранить - - - Apply - Применить - - - Restore Defaults - По умолчанию - - - Cancel - Отмена - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Невозможно привязать уникальный ввод более одного раза. Дублированные вводы назначены на следующие кнопки: - -%1 - - - Touchpad Left - Тачпад слева - - - Touchpad Center - Тачпад центр - - - Touchpad Right - Тачпад справа - - - - LogPresetsDialog - - Log Filter Presets - Пресеты фильтров логов - - - Comment - Комментарий - - - Filter - Фильтр - - - Load - Загрузить - - - Close - Закрыть - - - Add a new preset after the selected row - Добавить новый пресет после выбранной строки - - - Remove selected presets - Удалить выбранный пресет - - - Load the selected preset - Загрузить выбранный пресет - - - - MainWindow - - Open/Add Elf Folder - Открыть/Добавить папку Elf - - - Boot Game - Запустить игру - - - Check for Updates - Проверить обновления - - - About shadPS4 - О shadPS4 - - - Configure... - Настроить... - - - Recent Games - Недавние игры - - - Open shadPS4 Folder - Открыть папку shadPS4 - - - Exit - Выход - - - Exit shadPS4 - Выйти из shadPS4 - - - Exit the application. - Выйти из приложения. - - - Show Game List - Показать список игр - - - Game List Refresh - Обновить список игр - - - Tiny - Крошечный - - - Small - Маленький - - - Medium - Средний - - - Large - Большой - - - List View - Список - - - Grid View - Сетка - - - Elf Viewer - Исполняемый файл - - - Game Install Directory - Каталог установки игры - - - Download Cheats/Patches - Скачать читы или патчи - - - Dump Game List - Дамп списка игр - - - Trophy Viewer - Просмотр трофеев - - - No games found. Please add your games to your library first. - Не найдено ни одной игры. Пожалуйста, сначала добавьте игры в библиотеку. - - - Search... - Поиск... - - - File - Файл - - - View - Вид - - - Game List Icons - Размер иконок списка игр - - - Game List Mode - Вид списка игр - - - Settings - Настройки - - - Utils - Утилиты - - - Themes - Темы - - - Help - Помощь - - - Dark - Темная - - - Light - Светлая - - - Green - Зеленая - - - Blue - Синяя - - - Violet - Фиолетовая - - - toolBar - Панель инструментов - - - Game List - Список игр - - - Download Cheats For All Installed Games - Скачать читы для всех установленных игр - - - Download Patches For All Games - Скачать патчи для всех игр - - - Download Complete - Скачивание завершено - - - You have downloaded cheats for all the games you have installed. - Вы скачали читы для всех установленных игр. - - - Patches Downloaded Successfully! - Патчи успешно скачаны! - - - All Patches available for all games have been downloaded. - Все доступные патчи для всех игр были скачаны. - - - Games: - Игры: - - - ELF files (*.bin *.elf *.oelf) - Файлы ELF (*.bin *.elf *.oelf) - - - Game Boot - Запуск игры - - - Only one file can be selected! - Можно выбрать только один файл! - - - Run Game - Запустить игру - - - Eboot.bin file not found - Файл eboot.bin не найден - - - Game is already running! - Игра уже запущена! - - - shadPS4 - shadPS4 - - - Play - Играть - - - Pause - Пауза - - - Stop - Остановить - - - Restart - Перезапустить - - - Full Screen - Полный экран - - - Controllers - Контроллеры - - - Keyboard - Клавиатура - - - Refresh List - Обновить список - - - Resume - Продолжить - - - Show Labels Under Icons - Показывать метки под значками - - - Customize Hotkeys - Настроить горячие клавиши - - - - SettingsDialog - - Settings - Настройки - - - General - Общее - - - System - Система - - - Console Language - Язык консоли - - - Emulator Language - Язык эмулятора - - - Default tab when opening settings - Вкладка по умолчанию при открытии настроек - - - Show Game Size In List - Показать размер игры в списке - - - Enable Discord Rich Presence - Включить Discord Rich Presence - - - Username - Имя пользователя - - - Trophy Key - Ключ трофеев - - - Trophy - Трофеи - - - Open the custom trophy images/sounds folder - Открыть папку с пользовательскими изображениями/звуками трофеев - - - Logger - Логирование - - - Log Type - Тип логов - - - Log Filter - Фильтр логов - - - Open Log Location - Открыть местоположение логов - - - Input - Ввод - - - Cursor - Курсор мыши - - - Hide Cursor - Скрывать курсор - - - Hide Cursor Idle Timeout - Время скрытия курсора при бездействии - - - Microphone - Микрофон - - - None - Нет - - - Default Device - Устройство по умолчанию - - - s - сек - - - Controller - Контроллер - - - Graphics - Графика - - - GUI - Интерфейс - - - User - Пользователь - - - Graphics Device - Графическое устройство - - - Advanced - Продвинутые - - - Enable Shaders Dumping - Включить дамп шейдеров - - - Enable NULL GPU - Включить NULL GPU - - - Enable HDR - Включить HDR - - - Paths - Пути - - - Game Folders - Игровые папки - - - Add... - Добавить... - - - Remove - Удалить - - - Debug - Отладка - - - Enable Debug Dumping - Включить отладочные дампы - - - Enable Vulkan Validation Layers - Включить слои валидации Vulkan - - - Enable Vulkan Synchronization Validation - Включить валидацию синхронизации Vulkan - - - Enable RenderDoc Debugging - Включить отладку RenderDoc - - - Enable Crash Diagnostics - Включить диагностику сбоев - - - Collect Shaders - Собирать шейдеры - - - Copy GPU Buffers - Копировать буферы GPU - - - Host Debug Markers - Маркеры отладки хоста - - - Guest Debug Markers - Маркеры отладки гостя - - - Enable Readbacks - Включить считывание - - - Enable Readback Linear Images - Включить считывание линейных изображений - - - Update - Обновление - - - Check for Updates at Startup - Проверка при запуске - - - Always Show Changelog - Всегда показывать журнал изменений - - - Update Channel - Канал обновления - - - Check for Updates - Проверить обновления - - - Title Music - Заглавная музыка - - - Disable Trophy Notification - Отключить уведомления о трофее - - - Background Image - Фоновое изображение - - - Show Background Image - Показывать фоновое изображение - - - Opacity - Прозрачность - - - Play title music - Играть заглавную музыку - - - Update Compatibility Database On Startup - Обновлять базу совместимости при запуске - - - Game Compatibility - Совместимость игр - - - Display Compatibility Data - Показывать данные совместимости - - - Update Compatibility Database - Обновить базу совместимости - - - Volume - Громкость - - - Save - Сохранить - - - Apply - Применить - - - Restore Defaults - По умолчанию - - - Close - Закрыть - - - 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Рекомендуется устанавливать язык, который поддерживается игрой, так как он может отличаться в зависимости от региона. - - - Emulator Language:\nSets the language of the emulator's user interface. - Язык эмулятора:\nУстанавливает язык пользовательского интерфейса эмулятора. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Показывать заставку:\nОтображает заставку игры (специальное изображение) во время запуска. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Включить Discord Rich Presence:\nОтображает значок эмулятора и соответствующую информацию в вашем профиле Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Имя пользователя:\nУстанавливает имя пользователя аккаунта PS4. Это может отображаться в некоторых играх. - - - 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Установите, синхронизировать ли вывод окна логов ради производительности. Это может негативно сказаться на эмуляции. - - - 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"\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: Версии разработки, которые содержат все последние функции и исправления, но могут содержать ошибки и менее стабильны. - - - 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Включает воспроизведение специальной музыки при выборе игры в списке, если она это поддерживает. - - - 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Всегда: Курсор всегда будет скрыт. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Время скрытия курсора при бездействии:\nВремя (в секундах), через которое курсор исчезнет при бездействии. - - - 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. - Обновлять базу совместимости при запуске:\nАвтоматически обновлять базу данных совместимости при запуске shadPS4. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Обновить базу совместимости:\nНемедленно обновить базу данных совместимости. - - - Never - Никогда - - - Idle - При бездействии - - - Always - Всегда - - - 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 выберите тот, который будет использовать эмулятор.\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Это отличается от разрешения в игре. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Включить дамп шейдеров:\nДля технической отладки сохраняет шейдеры игр в папку во время рендеринга. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Включить NULL 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. - Включить HDR:\nВключает HDR в играх, которые его поддерживают.\nВаш монитор должен иметь поддержку цветового пространства BT2020 PQ и формата swapchain RGB10A2. - - - Game Folders:\nThe list of folders to check for installed games. - Игровые папки:\nСписок папок для проверки установленных игр. - - - Add:\nAdd a folder to the list. - Добавить:\nДобавить папку в список. - - - Remove:\nRemove a folder from the list. - Удалить:\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 в папку. - - - 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, позволяя захватывать и анализировать текущие кадры во время рендеринга. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Собирать шейдеры:\nВам необходимо включить эту функцию для редактирования шейдеров с помощью меню отладки (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Включить считывание:\nВключить считывание и запись в память GPU.\nЭто требуется для правильного поведения в некоторых играх. \nМожет вызвать проблемы со стабильностью/производительностью. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Включить считывание линейных изображений:\nВключает асинхронную загрузку изображений, модифицированных GPU.\nМожет исправить проблемы в некоторых играх. - - - 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. - Маркеры отладки хоста:\nДобавляет информацию на стороне эмулятора, например маркеры для определенных команд AMDGPU, вокруг команд Vulkan, а также присваивает ресурсам отладочные имена.\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. - Маркеры отладки гостя:\nДобавляет любые отладочные маркеры, добавленные самой игрой, в буфер команд.\nЕсли эта функция включена, вам следует включить Диагностику сбоев.\nПолезно для таких программ, как RenderDoc. - - - 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. - Обзор:\nНайдите папку, которую можно указать в качестве пути для сохранений. - - - Release - Релиз - - - Nightly - Nightly - - - Set the volume of the background music. - Установите громкость фоновой музыки. - - - Enable Motion Controls - Включить управление движением - - - Save Data Path - Путь сохранений - - - Browse - Обзор - - - async - асинхронный - - - sync - синхронный - - - Auto Select - Автовыбор - - - Directory to install games - Каталог для установки игр - - - Directory to save data - Каталог для сохранений - - - Video - Видео - - - Display Mode - Режим отображения - - - Windowed - Оконный - - - Fullscreen - Полный экран - - - Fullscreen (Borderless) - Полный экран (без рамок) - - - Window Size - Размер окна - - - W: - Ш: - - - H: - В: - - - Separate Log Files - Отдельные файлы логов - - - Separate Log Files:\nWrites a separate logfile for each game. - Отдельные файлы логов:\nПишет отдельный файл логов для каждой игры. - - - Trophy Notification Position - Местоположение уведомления о трофее - - - Left - Слева - - - Right - Справа - - - Top - Сверху - - - Bottom - Снизу - - - Notification Duration - Продолжительность уведомления - - - Portable 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. - Портативная папка пользователя:\nХранит настройки и данные shadPS4, которые будут применяться только к билду shadPS4, расположенному в этой папке. Перезагрузите приложение после создания портативной папки пользователя чтобы начать использовать её. - - - Cannot create portable user folder - Невозможно создать папку для портативной папки пользователя - - - %1 already exists - %1 уже существует - - - Portable user folder 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. - Открыть папку с пользовательскими изображениями/звуками трофеев:\nВы можете добавить пользовательские изображения к трофеям и аудио.\nДобавьте файлы в custom_trophy со следующими именами:\ntrophy.wav ИЛИ trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nПримечание: звук будет работать только в QT-версии. - - - * Unsupported Vulkan Version - * Неподдерживаемая версия Vulkan - - - Experimental Features - Экспериментальные функции - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - ВНИМАНИЕ: Эти функции являются экспериментальными и не должны включаться, если вы не знаете об обратном, или если этого не требует игра. Если у вас есть вопросы, задавайте их на Discord сервере shadPS4. - - - Enable Background Controller Input - Включить фоновый ввод контроллера - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Включить фоновый ввод контроллера:\nРазрешить shadPS4 определять ввод контроллера, когда окно игры не в фокусе. - - - 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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - Диагностика сбоев:\nСоздает .yaml-файл с информацией о состоянии Vulkan в момент падения.\nПолезно для отладки ошибок 'Device lost'. Если эта функция включена, вам следует включить Маркеры отладки хоста и Гостя.\nДля работы вам необходимо включить Слои валидации Vulkan и установить Vulkan SDK. - - - Enable Logging - Включить ведение логов - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Включить ведение логов:\nВключает ведение логов.\nНе меняйте это, если вы не знаете, что делаете!\nПри запросе помощи, убедитесь, что эта настройка ВКЛЮЧЕНА. - - - Present Mode - Режим представления - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (без Vsync) - - - DLC Folder - Папка DLC - - - Select the DLC folder - Выберите папку DLC - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Режим представления:\nНастраивает, как вывод видео будет предоставлен на экране.\n\nMailbox: Кадры синхронизируются с частотой обновления экрана. Новые кадры будут заменять ожидающие кадры. Уменьшает задержку, но может пропустить кадры, если отстаёт.\nFifo: Кадры синхронизируются с частотой обновления экрана. Новые кадры будут в очереди за ожидаемыми кадрами. Обеспечивает отображение всех кадров, но может увеличить задержку.\nImmediate: Кадры отображаются на экране сразу после готовности. Может приводить к разрывам. - - - DLC Path:\nThe folder where game DLC loaded from. - Путь к DLC:\nПапка, из которой загружаются DLC для игры. - - - Browse:\nBrowse for a folder to set as the DLC path. - Обзор:\nНайдите папку, которую можно указать в качестве пути для DLC. - - - FSR Settings - Настройки FSR - - - Enable FSR - Включить FSR - - - Enable RCAS (sharpening) - Включить RCAS (резкость) - - - RCAS Attenuation: - Затухание RCAS: - - - Load Presets... - Загрузить пресеты... - - - Log - Лог - - - Open Log Location:\nOpen the folder where the log file is saved. - Открыть локацию лога:\nОткрыть папку, в которой сохраняется файл логов. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Микрофон:\nНет: Не использует микрофон.\nУстройство по умолчанию: Будет использовать устройство по умолчанию в системе.\nИли вручную выберите микрофон из списка. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Громкость:\nРегулируйте громкость игр на глобальном уровне, диапазон может быть 0-500% со значением по умолчанию 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Вкладка по умолчанию при открытии настроек:\nВыберите, какая вкладка будет открыта, по умолчанию выбрано "Общее". - - - Show Game Size In List:\nThere is the size of the game in the list. - Показать размер игры в списке:\nПоказывает размер игры в списке. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Включить управление движением:\nКогда включено, будет использоваться управление движением, если оно поддерживается. - - - Vblank Frequency - Частота Vblank - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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Частота кадров, с которой обновляется эмулятор (60 Гц является базовым значением, независимо от того, работает игра в 30 или 60 fps). Изменение этого параметра может иметь негативные последствия, такие как увеличение скорости игры или нарушение критических функций игры, которые этого не ожидают! - - - Enable Direct Memory Access - Включить прямой доступ к памяти - - - Enable Devkit Console Mode - Включить режим консоли Devkit - - - Set "PSN signed-in" to True - Установить "Авторизован в PSN" на True - - - Set "Network Connected" to True - Установить "Сеть подключена" на True - - - Miscellaneous - Прочее - - - Frontend - Интерфейс - - - Experimental - Экспериментальное - - - Show Splash Screen When Launching Game - Показывать заставку при запуске игры - - - General Frontend Settings - Общие настройки интерфейса - - - Enable PS4 Neo Mode - Включить режим PS4 Neo - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Включить прямой доступ к памяти:\nВключает произвольный доступ к памяти из графического процессора в память центрального процессора. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Включить режим PS4 Neo:\nДобавляет поддержку эмуляции PS4 Pro и размера памяти. В настоящее время вызывает нестабильность во многих протестированных играх. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Включить режим консоли Devkit:\nДобавляет поддержку размера памяти консоли Devkit. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Установить "Подключение к сети" на True:\nЗаставляет игры определять активное сетевое подключение. Фактические онлайн-возможности пока не поддерживаются. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Установить "Авторизован в PSN" на True:\nЗаставляет игры определять активный вход в PSN. Фактические возможности PSN не поддерживаются. - - - 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.\nYou need the Vulkan SDK for this to work. - Включить слои валидации Vulkan:\nВключает систему, которая проверяет состояние рендера Vulkan и логирует информацию о его внутреннем состоянии.\nЭто снизит производительность и, вероятно, изменит поведение эмуляции.\nДля этого вам нужен Vulkan SDK. - - - 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.\nYou need the Vulkan SDK for this to work. - Включить валидацию синхронизации Vulkan:\nВключает систему, которая проверяет тайминг задач рендеринга Vulkan.\nЭто снизит производительность и, вероятно, изменит поведение эмуляции.\nДля этого вам нужен Vulkan SDK. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Просмотр трофеев - - - Select Game: - Выберите игру: - - - Progress - Прогресс - - - Show Earned Trophies - Показать заработанные трофеи - - - Show Not Earned Trophies - Показать не заработанные трофеи - - - Show Hidden Trophies - Показать скрытые трофеи - - - diff --git a/src/qt_gui/translations/sl_SI.ts b/src/qt_gui/translations/sl_SI.ts deleted file mode 100644 index 0b7a92cb0..000000000 --- a/src/qt_gui/translations/sl_SI.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - 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. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Obvestilo:</b><br><br> Od različice <b>0.12.0</b> Qt različica emulatorja ne bo več prejemala neposrednih posodobitev.<br><br> Vmesnik Qt je še vedno na voljo preko novega uradnega zaganjalnika:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – temelji na izvorni kodi shadPS4.<br><br> Priporočamo preklop na ta zaganjalnik, da boste lahko še naprej prejemali posodobitve. - - - 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 - - - Face Buttons - Face Buttons - - - 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 - - - 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 - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - 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 - - - Favorite - Favorite - - - - 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... - - - 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 - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - 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 - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - System - - - Console Language - Console Language - - - Emulator Language - Emulator Language - - - Default tab when opening settings - Default tab when opening settings - - - Show Game Size In List - Show Game Size In List - - - 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 - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Controller - - - Graphics - Graphics - - - GUI - GUI - - - User - User - - - Graphics Device - Graphics Device - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - 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 - - - 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. - - - 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 - - - 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. - - - 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 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - 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/sq_AL.ts b/src/qt_gui/translations/sq_AL.ts deleted file mode 100644 index 0a70b6e1b..000000000 --- a/src/qt_gui/translations/sq_AL.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Rreth shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 është një emulator eksperimental me burim të hapur për PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Ky program nuk duhet përdorur për të luajtur lojëra që nuk ke marrë ligjërisht. - - - - CheatsPatches - - Cheats / Patches for - Mashtrime / Arna për - - - 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 - Mashtrimet/Arnat janë eksperimentale.\nPërdori me kujdes.\n\nShkarko mashtrimet individualisht duke zgjedhur depon dhe duke klikuar butonin e shkarkimit.\nNë skedën Arna, mund t'i shkarkosh të gjitha arnat menjëherë, të zgjidhësh cilat dëshiron të përdorësh dhe të ruash zgjedhjen tënde.\n\nMeqenëse ne nuk zhvillojmë Mashtrimet/Arnat,\ntë lutem raporto problemet te autori i mashtrimit.\n\nKe krijuar një mashtrim të ri? Vizito:\n - - - No Image Available - Nuk ofrohet asnjë imazh - - - Serial: - Seriku: - - - Version: - Versioni: - - - Size: - Madhësia: - - - Select Cheat File: - Përzgjidh Skedarin e Mashtrimit: - - - Repository: - Depo: - - - Download Cheats - Shkarko Mashtrimet - - - Delete File - Fshi Skedarin - - - No files selected. - Nuk u zgjodh asnjë skedar. - - - You can delete the cheats you don't want after downloading them. - Mund t'i fshish mashtrimet që nuk dëshiron pasi t'i kesh shkarkuar. - - - Do you want to delete the selected file?\n%1 - Dëshiron të fshish skedarin e përzgjedhur?\n%1 - - - Select Patch File: - Përzgjidh skedarin e arnës: - - - Download Patches - Shkarko Arnat - - - Save - Ruaj - - - Cheats - Mashtrime - - - Patches - Arna - - - Error - Gabim - - - No patch selected. - Asnjë arnë e përzgjedhur. - - - Unable to open files.json for reading. - files.json nuk mund të hapet për lexim. - - - No patch file found for the current serial. - Nuk u gjet asnjë skedar patch për serikun aktual. - - - Unable to open the file for reading. - Skedari nuk mund të hapet për lexim. - - - Unable to open the file for writing. - Skedari nuk mund të hapet për shkrim. - - - Failed to parse XML: - Analiza e XML-së dështoi: - - - Success - Sukses - - - Options saved successfully. - Rregullimet u ruajtën me sukses. - - - Invalid Source - Burim i pavlefshëm - - - The selected source is invalid. - Burimi i përzgjedhur është i pavlefshëm. - - - File Exists - Skedari ekziston - - - File already exists. Do you want to replace it? - Skedari ekziston tashmë. Dëshiron ta zëvendësosh? - - - Failed to save file: - Ruajtja e skedarit dështoi: - - - Failed to download file: - Shkarkimi i skedarit dështoi: - - - Cheats Not Found - Mashtrimet nuk u gjetën - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Nuk u gjetën mashtrime për këtë lojë në këtë version të depove të përzgjedhura, provo një depo tjetër ose një version tjetër të lojës. - - - Cheats Downloaded Successfully - Mashtrimet u shkarkuan me sukses - - - 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. - Ke shkarkuar me sukses mashtrimet për këtë version të lojës nga depoja e përzgjedhur. Mund të provosh të shkarkosh nga një depo tjetër, nëse ofrohet do të jetë e mundur gjithashtu ta përdorësh duke përzgjedhur skedarin nga lista. - - - Failed to save: - Ruajtja dështoi: - - - Failed to download: - Shkarkimi dështoi: - - - Download Complete - Shkarkimi përfundoi - - - 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. - Arnat u shkarkuan me sukses! Të gjitha arnat e ofruara për të gjitha lojërat janë shkarkuar, nuk ka nevojë t'i shkarkosh ato individualisht për secilën lojë siç ndodh me Mashtrimet. Nëse arna nuk shfaqet, mund të mos ekzistojë për numrin e serikut dhe versionin specifik të lojës. - - - Failed to parse JSON data from HTML. - Analiza e të dhënave JSON nga HTML dështoi. - - - Failed to retrieve HTML page. - Gjetja e faqes HTML dështoi. - - - The game is in version: %1 - Loja është në versionin: %1 - - - The downloaded patch only works on version: %1 - Arna e shkarkuar funksionon vetëm në versionin: %1 - - - You may need to update your game. - Mund të duhet të përditësosh lojën tënde. - - - Incompatibility Notice - Njoftim për mospërputhje - - - Failed to open file: - Hapja e skedarit dështoi: - - - XML ERROR: - GABIM XML: - - - Failed to open files.json for writing - Hapja e files.json për shkrim dështoi - - - Author: - Autori: - - - Directory does not exist: - Dosja nuk ekziston: - - - Failed to open files.json for reading. - Hapja e files.json për lexim dështoi. - - - Name: - Emri: - - - Can't apply cheats before the game is started - Nuk mund të zbatohen mashtrime para fillimit të lojës. - - - Close - Mbyll - - - - CheckUpdate - - Auto Updater - Përditësues automatik - - - Error - Gabim - - - Network error: - Gabim rrjeti: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Përditësuesi Automatik lejon deri në 60 kontrolle për përditësime në orë.\nKe arritur këtë kufi. Të lutem provo përsëri më vonë. - - - Failed to parse update information. - Analizimi i informacionit të përditësimit deshtoi. - - - No pre-releases found. - Nuk u gjetën botime paraprake. - - - Invalid release data. - Të dhënat e lëshimit janë të pavlefshme. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Njoftim:</b><br><br> Duke filluar nga versioni <b>0.12.0</b>, versioni Qt i emulatorit nuk do të marrë më përditësime direkte.<br><br> Megjithatë, ndërfaqja Qt vazhdon të jetë e disponueshme përmes launcher‑it të ri zyrtar:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – bazuar në kodin burimor origjinal të shadPS4.<br><br> Ju rekomandojmë të kaloni te ky launcher për të vazhduar të merrni përditësime. - - - Your version is already up to date! - Versioni jotë është i përditësuar tashmë! - - - Update Available - Ofrohet një përditësim - - - Update Channel - Kanali i përditësimit - - - Current Version - Versioni i tanishëm - - - Latest Version - Versioni më i fundit - - - Do you want to update? - Do të përditësosh? - - - Show Changelog - Trego ndryshimet - - - Check for Updates at Startup - Kontrollo për përditësime në nisje - - - Update - Përditëso - - - No - Jo - - - Hide Changelog - Fshih Ndryshimet - - - Changes - Ndryshimet - - - Network error occurred while trying to access the URL - Ka ndodhur një gabim rrjeti gjatë përpjekjes për të qasur në URL-në - - - Download Complete - Shkarkimi përfundoi - - - The update has been downloaded, press OK to install. - Përditësimi është shkarkuar, shtyp OK për ta instaluar. - - - Failed to save the update file at - Dështoi ruajtja e skedarit të përditësimit në - - - Starting Update... - Po fillon përditësimi... - - - Failed to create the update script file - Krijimi i skedarit skript të përditësimit dështoi - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Duke marrë të dhënat e përputhshmërisë, të lutem prit - - - Cancel - Anulo - - - Loading... - Po ngarkohet... - - - Error - Gabim - - - Unable to update compatibility data! Try again later. - Nuk mund të përditësohen të dhënat e përputhshmërisë! Provo përsëri më vonë. - - - Unable to open compatibility_data.json for writing. - Nuk mund të hapet compatibility_data.json për të shkruar. - - - Unknown - E panjohur - - - Nothing - Asgjë - - - Boots - Niset - - - Menus - Meny - - - Ingame - Në lojë - - - Playable - E luajtshme - - - - ControlSettings - - Configure Controls - Konfiguro kontrollet - - - D-Pad - Shigjetat - - - Up - Lartë - - - Left - Majtas - - - Right - Djathtas - - - Down - Poshtë - - - Left Stick Deadzone (def:2 max:127) - Zona e vdekur e levës së majtë (def:2 max:127) - - - Left Deadzone - Zona e vdekur e majtë - - - Left Stick - Leva e majtë - - - Config Selection - Zgjedhja e konfigurimit - - - Common Config - Konfigurim i përbashkët - - - Use per-game configs - Përdor konfigurime të veçanta për secilën lojë - - - Face Buttons - Butonat kryesore - - - Right Stick Deadzone (def:2, max:127) - Zona e vdekur e levës së djathtë (def:2, max:127) - - - Right Deadzone - Zona e vdekur e djathtë - - - Right Stick - Leva e djathtë - - - Color Adjustment - Rregullimi i Ngjyrave - - - Override Lightbar Color - Zëvendëso Ngjyrën e Shiritit të ndriçimit - - - Override Color - Zëvendëso Ngjyrën - - - Unable to Save - Ruajtja Dështoi - - - Cannot bind axis values more than once - Nuk mund të caktohen vlerat e boshtit më shumë se një herë - - - Save - Ruaj - - - Apply - Zbato - - - Restore Defaults - Rikthe Paracaktimet - - - Cancel - Anulo - - - unmapped - pacaktuar - - - Options - Options - - - Touchpad Left - Paneli me Prekje Majtas - - - Touchpad Center - Paneli me Prekje në Qendër - - - Touchpad Right - Paneli me Prekje Djathtas - - - Triangle - Trekëndësh - - - Square - Katror - - - Circle - Rreth - - - Cross - Kryq - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Nuk mund të caktohet e njëjta hyrje unike më shumë se një herë. Hyrjet e dyfishta janë caktuar në butonët e mëposhtëm: - -%1 - - - Press a button - Shtyp një buton - - - Move analog stick - Lëviz levën - - - L1 and L2 - L1 dhe L2 - - - Active Gamepad - Doreza Aktive - - - Gamepad ID - ID-ja e Dorezës - - - Default Gamepad - Doreza e Paracaktuar - - - No default selected - Asnjë paracaktim i përzgjedhur - - - n/a - n/a - - - Set Active Gamepad as Default - Përcakto Dorezën Aktive si të Paracaktuar - - - Remove Default Gamepad - Hiq Dorezën e Paracaktuar - - - R1 and R2 - R1 dhe R2 - - - ID: - ID: - - - Default Controller Selected - Doreza e Paracaktuar u Përzgjodh - - - Active controller set as default - Doreza aktive është vendosur si paracaktim - - - Default Controller Removed - Doreza e Paracaktuar u Hoq - - - Default controller setting removed - Cilësimi i dorezës të paracaktuar u hoq - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Redakto caktimet e hyrjeve për Tastierën + Miun dhe Dorezën - - - Use Per-Game configs - Përdor konfigurime për secilën lojë - - - Error - Gabim - - - Could not open the file for reading - Skedari nuk mund të hapet për lexim - - - Could not open the file for writing - Skedari nuk mund të hapet për shkrim - - - Save Changes - Ruaj Ndryshimet - - - Do you want to save changes? - Do të ruash ndryshimet? - - - Help - Ndihmë - - - Do you want to reset your custom default config to the original default config? - A do ta rivendosësh konfigurimin tënd të paracaktuar të personalizuar te konfigurimi i paracaktuar origjinal? - - - Do you want to reset this config to your custom default config? - A do ta rivendosësh këtë konfigurim në konfigurimin tënd të paracaktuar të personalizuar? - - - Reset to Default - Rivendos në të Paracaktuarit - - - - ElfViewer - - Open Folder - Hap Dosjen - - - - GameInfoClass - - Loading game list, please wait :3 - Po ngarkohet lista e lojërave, të lutem prit :3 - - - Cancel - Anulo - - - Loading... - Duke ngarkuar... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Përzgjidh dosjen - - - Directory to install games - Dosja ku do instalohen lojërat - - - Browse - Shfleto - - - Error - Gabim - - - Directory to install DLC - Dosja ku do instalohen DLC-t - - - - GameListFrame - - Icon - Ikona - - - Name - Emri - - - Serial - Seriku - - - Compatibility - Përputhshmëria - - - Region - Rajoni - - - Firmware - Firmueri - - - Size - Madhësia - - - Version - Versioni - - - Path - Shtegu - - - Play Time - Koha e luajtjes - - - Never Played - Nuk është luajtur kurrë - - - h - o - - - m - m - - - s - s - - - Compatibility is untested - Përputhshmëria nuk është e testuar - - - Game does not initialize properly / crashes the emulator - Loja nuk niset siç duhet / rrëzon emulatorin - - - Game boots, but only displays a blank screen - Loja niset, por shfaq vetëm një ekran të zbrazët - - - Game displays an image but does not go past the menu - Loja shfaq një imazh, por nuk kalon përtej menysë - - - Game has game-breaking glitches or unplayable performance - Loja ka probleme kritike ose performancë të papërshtatshme për lojë - - - Game can be completed with playable performance and no major glitches - Loja mund të përfundohet me performancë të luajtshme dhe pa probleme të mëdha - - - Click to see details on github - Kliko për të parë detajet në GitHub - - - Last updated - Përditësuar për herë të fundit - - - Favorite - Të Preferuarat - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Krijo Shkurtore - - - Cheats / Patches - Mashtrime / Arna - - - SFO Viewer - Shikuesi i SFO - - - Trophy Viewer - Shikuesi i Trofeve - - - Open Folder... - Hap Dosjen... - - - Open Game Folder - Hap Dosjen e Lojës - - - Open Save Data Folder - Hap Dosjen e të Dhënave të Ruajtura - - - Open Log Folder - Hap Dosjen e Ditarit - - - Copy info... - Kopjo informacionin... - - - Copy Name - Kopjo Emrin - - - Copy Serial - Kopjo Serikun - - - Copy Version - Kopjo Versionin - - - Copy Size - Kopjo Madhësinë - - - Copy All - Kopjo të Gjitha - - - Delete... - Fshi... - - - Delete Game - Fshi Lojën - - - Delete Update - Fshi Përditësimin - - - Delete DLC - Fshi DLC-në - - - Delete Trophy - Fshi Trofeun - - - Compatibility... - Përputhshmëria... - - - Shortcut creation - Krijimi i shkurtores - - - Shortcut created successfully! - Shkurtorja u krijua me sukses! - - - Error - Gabim - - - Error creating shortcut! - Gabim në krijimin e shkurtores! - - - Game - Loja - - - This game has no update to delete! - Kjo lojë nuk ka përditësim për të fshirë! - - - Update - Përditësim - - - This game has no DLC to delete! - Kjo lojë nuk ka DLC për të fshirë! - - - DLC - DLC - - - Delete %1 - Fshi %1 - - - Are you sure you want to delete %1's %2 directory? - Je i sigurt që do të fsish dosjen %2 të %1? - - - Open Update Folder - Hap Dosjen e Përditësimit - - - Delete Save Data - Fshi të Dhënat e Ruajtjes - - - This game has no update folder to open! - Kjo lojë nuk ka dosje përditësimi për të hapur! - - - No log file found for this game! - Nuk u gjet asnjë skedar ditari për këtë lojë! - - - Failed to convert icon. - Konvertimi i ikonës dështoi. - - - This game has no save data to delete! - Kjo lojë nuk ka të dhëna ruajtje për të fshirë! - - - This game has no saved trophies to delete! - Kjo lojë nuk ka trofe të ruajtur për të fshirë! - - - Save Data - Të dhënat e ruajtjes - - - Trophy - Trofeu - - - SFO Viewer for - Shikuesi SFO për - - - Remove from Favorites - Hiq nga të Preferuarat - - - Add to Favorites - Shto në të Preferuarat - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Nisje e shpejtë - - - FAQ - Pyetje të Shpeshta - - - Syntax - Sintaksa - - - Special Bindings - Caktimet e Veçantë - - - Keybindings - Caktimet e Tasteve - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - KBMSettings - - Configure Controls - Konfiguro Kontrollet - - - D-Pad - Shigjetat - - - Up - Lartë - - - unmapped - pacaktuar - - - Left - Majtas - - - Right - Djathtas - - - Down - Poshtë - - - Left Analog Halfmode - Mënyra e gjysmuar për levën e majtë - - - hold to move left stick at half-speed - mbaj shtypur për të lëvizur levën e majtë me gjysmën e shpejtësisë - - - Left Stick - Leva e Majtë - - - Config Selection - Zgjedhja e Konfigurimit - - - Common Config - Konfigurim i Përbashkët - - - Use per-game configs - Përdor konfigurime për secilën lojë - - - Text Editor - Redaktuesi i Tekstit - - - Help - Ndihmë - - - Mouse to Joystick - Miu në Levë - - - *press F7 ingame to activate - *shtyp F7 gjatë lojës për ta aktivizuar - - - Options - Rregullime - - - Mouse Movement Parameters - Parametrat e Lëvizjes së Miut - - - note: click Help Button/Special Keybindings for more information - shënim: kliko Butonin e Ndihmës/Caktimet e Tasteve të Veçantë për më shumë informacion - - - Face Buttons - Butonat Kryesore - - - Triangle - Trekëndësh - - - Square - Katror - - - Circle - Rreth - - - Cross - Kryq - - - Right Analog Halfmode - Mënyra e gjysmuar për levën e djathtë - - - hold to move right stick at half-speed - mbaj shtypur për të lëvizur levën e djathtë me gjysmën e shpejtësisë - - - Right Stick - Leva e Djathtë - - - Speed Offset (def 0.125): - Ofset i Shpejtësisë (paracaktuar 0.125): - - - Copy from Common Config - Kopjo nga Konfigurimi i Përbashkët - - - Deadzone Offset (def 0.50): - Ofseti i Zonës së Vdekur (paracaktuar 0.50): - - - Speed Multiplier (def 1.0): - Shumëzuesi i Shpejtësisë (paracaktuar 1.0): - - - Common Config Selected - Konfigurimi i Përbashkët i Zgjedhur - - - 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. - Ky buton kopjon caktimet nga Konfigurimi i Përbashkët në profilin e zgjedhur aktualisht, dhe nuk mund të përdoret kur profili i zgjedhur aktualisht është Konfigurimi i Përbashkët. - - - Copy values from Common Config - Kopjo vlerat nga Konfigurimi i Përbashkët - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - A dëshiron të mbishkruash caktimet ekzistuese me ato nga Konfigurimi i Përbashkët? - - - Unable to Save - Ruajtja Dështoi - - - Press a key - Shtyp një tast - - - Cannot set mapping - Caktimi nuk u vendos dot - - - Mousewheel cannot be mapped to stick outputs - Rrota e miut nuk mund të caktohet për daljet e levës - - - Save - Ruaj - - - Apply - Zbato - - - Restore Defaults - Rikthe Paracaktimet - - - Cancel - Anulo - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Nuk mund të caktohet e njëjta hyrje unike më shumë se një herë. Hyrjet e dyfishta janë caktuar në butonët e mëposhtëm: - -%1 - - - Touchpad Left - Paneli me Prekje Majtas - - - Touchpad Center - Paneli me Prekje në Qendër - - - Touchpad Right - Paneli me Prekje Djathtas - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Hap/Shto Dosje ELF - - - Boot Game - Nis Lojën - - - Check for Updates - Kontrollo për përditësime - - - About shadPS4 - Rreth shadPS4 - - - Configure... - Konfiguro... - - - Recent Games - Lojërat e fundit - - - Open shadPS4 Folder - Hap Dosjen e shadPS4 - - - Exit - Dil - - - Exit shadPS4 - Dil nga shadPS4 - - - Exit the application. - Dil nga aplikacioni. - - - Show Game List - Shfaq Listën e Lojërave - - - Game List Refresh - Rifresko Listën e Lojërave - - - Tiny - Të vockla - - - Small - Të vogla - - - Medium - Të mesme - - - Large - Të mëdha - - - List View - Pamja me List - - - Grid View - Pamja me Rrjetë - - - Elf Viewer - Shikuesi i ELF - - - Game Install Directory - Dosja e Instalimit të Lojës - - - Download Cheats/Patches - Shkarko Mashtrime/Arna - - - Dump Game List - Zbraz Listën e Lojërave - - - Trophy Viewer - Shikuesi i Trofeve - - - No games found. Please add your games to your library first. - Nuk u gjetën lojëra. Shto lojërat në librarinë tënde fillimisht. - - - Search... - Kërko... - - - File - Skedari - - - View - Pamja - - - Game List Icons - Ikonat e Listës së Lojërave - - - Game List Mode - Mënyra e Listës së Lojërave - - - Settings - Cilësimet - - - Utils - Shërbimet - - - Themes - Motivet - - - Help - Ndihmë - - - Dark - E errët - - - Light - E çelët - - - Green - E gjelbër - - - Blue - E kaltër - - - Violet - Vjollcë - - - toolBar - Shiriti i veglave - - - Game List - Lista e lojërave - - - Download Cheats For All Installed Games - Shkarko mashtrime për të gjitha lojërat e instaluara - - - Download Patches For All Games - Shkarko arna për të gjitha lojërat e instaluara - - - Download Complete - Shkarkimi përfundoi - - - You have downloaded cheats for all the games you have installed. - Ke shkarkuar mashtrimet për të gjitha lojërat që ke instaluar. - - - Patches Downloaded Successfully! - Arnat u shkarkuan me sukses! - - - All Patches available for all games have been downloaded. - Të gjitha arnat e ofruara për të gjitha lojërat janë shkarkuar. - - - Games: - Lojërat: - - - ELF files (*.bin *.elf *.oelf) - Skedarë ELF (*.bin *.elf *.oelf) - - - Game Boot - Nis Lojën - - - Only one file can be selected! - Mund të përzgjidhet vetëm një skedar! - - - Run Game - Ekzekuto lojën - - - Eboot.bin file not found - Skedari Eboot.bin nuk u gjet - - - Game is already running! - Loja tashmë është duke u ekzekutuar! - - - shadPS4 - shadPS4 - - - Play - Luaj - - - Pause - Pezullo - - - Stop - Ndalo - - - Restart - Rinis - - - Full Screen - Ekran i Plotë - - - Controllers - Dorezat - - - Keyboard - Tastiera - - - Refresh List - Rifresko Listën - - - Resume - Rifillo - - - Show Labels Under Icons - Shfaq Etiketat Poshtë Ikonave - - - Customize Hotkeys - Personalizo Shkurtoret - - - - SettingsDialog - - Settings - Cilësimet - - - General - Të përgjithshme - - - System - Sistemi - - - Console Language - Gjuha e Konsolës - - - Emulator Language - Gjuha e Emulatorit - - - Default tab when opening settings - Skeda e paracaktuar kur hapen cilësimet - - - Show Game Size In List - Shfaq madhësinë e lojës në listë - - - Enable Discord Rich Presence - Aktivizo Discord Rich Presence - - - Username - Përdoruesi - - - Trophy Key - Çelësi i Trofeve - - - Trophy - Trofeu - - - Open the custom trophy images/sounds folder - Hap dosjen e imazheve/tingujve të trofeve të personalizuar - - - Logger - Regjistruesi i ditarit - - - Log Type - Lloji i Ditarit - - - Log Filter - Filtri i Ditarit - - - Open Log Location - Hap vendndodhjen e Ditarit - - - Input - Hyrja - - - Cursor - Kursori - - - Hide Cursor - Fshih kursorin - - - Hide Cursor Idle Timeout - Koha për fshehjen e kursorit joaktiv - - - Microphone - Mikrofoni - - - None - Asnjë - - - Default Device - Pajisja e Paracaktuar - - - s - s - - - Controller - Dorezë - - - Graphics - Grafika - - - GUI - Ndërfaqja - - - User - Përdoruesi - - - Graphics Device - Pajisja e Grafikës - - - Advanced - Të përparuara - - - Enable Shaders Dumping - Aktivizo Zbrazjen e Shader-ave - - - Enable NULL GPU - Aktivizo GPU-në NULL - - - Enable HDR - Aktivizo HDR - - - Paths - Shtigjet - - - Game Folders - Dosjet e lojës - - - Add... - Shto... - - - Remove - Hiq - - - Debug - Korrigjim - - - Enable Debug Dumping - Aktivizo Zbrazjen për Korrigjim - - - Enable Vulkan Validation Layers - Aktivizo Shtresat e Vlefshmërisë Vulkan - - - Enable Vulkan Synchronization Validation - Aktivizo Vërtetimin e Sinkronizimit Vulkan - - - Enable RenderDoc Debugging - Aktivizo Korrigjimin RenderDoc - - - Enable Crash Diagnostics - Aktivizo Diagnozën e Rënies - - - Collect Shaders - Mblidh Shader-at - - - Copy GPU Buffers - Kopjo buffer-ët e GPU-së - - - Host Debug Markers - Shënjuesit e korrigjimit të host-it - - - Guest Debug Markers - Shënjuesit e korrigjimit të guest-it - - - Enable Readbacks - Aktivo Rikthimet e Leximit (Readbacks) - - - Enable Readback Linear Images - Aktivo Rikthimin e Leximit për Imazhet Lineare - - - Update - Përditëso - - - Check for Updates at Startup - Kontrollo për përditësime në nisje - - - Always Show Changelog - Shfaq gjithmonë ditarin e ndryshimeve - - - Update Channel - Kanali i përditësimit - - - Check for Updates - Kontrollo për përditësime - - - Title Music - Muzika e titullit - - - Disable Trophy Notification - Çaktivizo Njoftimin e Trofeut - - - Background Image - Imazhi i sfondit - - - Show Background Image - Shfaq imazhin e sfondit - - - Opacity - Tejdukshmëria - - - Play title music - Luaj muzikën e titullit - - - Update Compatibility Database On Startup - Përditëso bazën e të dhënave të përputhshmërisë gjatë nisjes - - - Game Compatibility - Përputhshmëria e lojës - - - Display Compatibility Data - Shfaq të dhënat e përputhshmërisë - - - Update Compatibility Database - Përditëso bazën e të dhënave të përputhshmërisë - - - Volume - Vëllimi i zërit - - - Save - Ruaj - - - Apply - Zbato - - - Restore Defaults - Rikthe Paracaktimet - - - Close - Mbyll - - - Point your mouse at an option to display its description. - Vendos miun mbi një rregullim për të shfaqur përshkrimin e tij. - - - 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. - Gjuha e konsolës:\nPërcakton gjuhën që përdor loja PS4.\nKëshillohet të caktosh një gjuhë që loja mbështet, e cila do të ndryshojë sipas rajonit. - - - Emulator Language:\nSets the language of the emulator's user interface. - Gjuha e emulatorit:\nPërcakton gjuhën e ndërfaqes së përdoruesit të emulatorit. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Shfaq ekranin e ngarkesës:\nShfaq ekranin e ngarkesës së lojës (një pamje e veçantë) gjatë fillimit të lojës. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Aktivizo Discord Rich Presence:\nShfaq ikonën e emulatorit dhe informacionin përkatës në profilin tënd në Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Përdoruesi:\nPërcakton emrin e përdoruesit të llogarisë PS4, i cili mund të shfaqet nga disa lojëra. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Çelësi i Trofeve:\nÇelësi përdoret për të deshifruar trofetë. Duhet të merret nga konsola jote me jailbreak.\nDuhet të përmbajë vetëm karaktere hex. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Lloji i ditarit:\nPërcakton nëse të sinkronizohet dalja e dritares së ditarit për performancë. Mund të ketë efekte të këqija në emulim. - - - 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. - Filtri i ditarit:\nFiltron ditarin për të shfaqur vetëm informacione specifike.\nShembuj: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nNivelet: Trace, Debug, Info, Warning, Error, Critical - në këtë rend, një nivel specifik hesht të gjitha nivelet përpara në listë dhe regjistron çdo nivel pas atij. - - - 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. - Përditësimi:\nRelease: Versionet zyrtare të botuara çdo muaj që mund të jenë shumë të vjetra, por janë më të besueshme dhe të provuara.\nNightly: Versionet e zhvillimit që kanë të gjitha veçoritë dhe rregullimet më të fundit, por mund të përmbajnë gabime dhe janë më pak të qëndrueshme. - - - Background Image:\nControl the opacity of the game background image. - Imazhi i Sfondit:\nKontrollo tejdukshmërinë e imazhit të sfondit të lojës. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Luaj muzikën e titullit:\nNëse një lojë e mbështet, aktivizohet luajtja e muzikës të veçantë kur të zgjidhësh lojën në ndërfaqe. - - - 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). - Çaktivizo njoftimet për Trofetë:\nÇaktivizo njoftimet për trofetë gjatë lojës. Përparimi i trofeve mund të ndiqet duke përdorur Shikuesin e Trofeve (kliko me të djathtën mbi lojën në dritaren kryesore). - - - 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. - Fsheh kursorin:\nZgjidh kur do të fshihet kursori:\nKurrë: Do ta shohësh gjithmonë miun.\nJoaktiv: Vendos një kohë për ta fshehur pas mosveprimit.\nGjithmonë: nuk do ta shohësh kurrë miun. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Koha për fshehjen e kursorit joaktiv:\nKohëzgjatja (në sekonda) pas së cilës kursori që nuk ka qënë në veprim fshihet. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Shfaq të dhënat e përputhshmërisë:\nShfaq informacionin e përputhshmërisë së lojës në formë tabele. Aktivizo "Përditëso përputhshmërinë gjatë nisjes" për të marrë informacion të përditësuar. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Përditëso përputhshmërinë gjatë nisjes:\nPërditëson automatikisht bazën e të dhënave të përputhshmërisë kur shadPS4 niset. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Përditëso bazën e të dhënave të përputhshmërisë:\nPërditëso menjëherë bazën e të dhënave të përputhshmërisë. - - - Never - Kurrë - - - Idle - Joaktiv - - - Always - Gjithmonë - - - 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. - Pajisja grafike:\nNë sistemet me GPU të shumëfishta, zgjidh GPU-në që do të përdorë emulatori nga lista rënëse,\nose zgjidh "Auto Select" për ta përcaktuar automatikisht. - - - 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. - Gjerësia/Lartësia:\nPërcakton madhësinë e dritares së emulatorit në nisje, e cila mund të rregullohet gjatë lojës.\nKjo është ndryshe nga rezolucioni në lojë. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Aktivizo zbrazjen e shader-ave:\nPër qëllime të korrigjimit teknik, ruan shader-at e lojës në një dosje ndërsa ato pasqyrohen. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Aktivizo GPU-në Null:\nPër qëllime të korrigjimit teknik, çaktivizon pasqyrimin e lojës sikur nuk ka një kartë grafike. - - - 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. - Aktivizo HDR:\nAktivizon HDR në lojërat që e mbështesin.\nMonitori jotë duhet të mbështesë hapësirën e ngjyrave BT2020 PQ dhe formatin e zinxhirit të ndërrimit (swapchain) RGB10A2. - - - Game Folders:\nThe list of folders to check for installed games. - Dosjet e lojërave:\nLista e dosjeve për të kontrolluar lojërat e instaluara. - - - Add:\nAdd a folder to the list. - Shto:\nShto një dosje në listë. - - - Remove:\nRemove a folder from the list. - Hiq:\nHiq një dosje nga lista. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Aktivizo zbrazjen për korrigjim:\nRuan simbolet e importit dhe eksportit dhe informacionin e kreut të skedarit për aplikacionin PS4 që po ekzekutohet në një dosje. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Aktivizo korrigjimin RenderDoc:\nNëse aktivizohet, emulatori do të ofrojë pajtueshmëri me Renderdoc për të lejuar kapjen dhe analizën e pamjes të pasqyruar në moment. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Mblidh Shader-at:\nDuhet ta aktivizosh këtë për të redaktuar shader-at me menynë e korrigjimit (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Aktivo Rikthimet e Leximit (Readbacks):\nAktivizo rikthimet dhe rishkrimet e kujtesës së GPU-së.\nKjo është e domosdoshme për funksionimin e duhur në disa lojëra.\nMund të shkaktojë probleme qëndrueshmërie dhe/ose performance. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Aktivo Rikthimin e Leximit për Imazhet Lineare:\nAktivizon shkarkimin asinkron të imazheve lineare të modifikuara nga GPU-ja.\nMund të rregullojë probleme në disa lojëra. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Kopjo buffer-ët e GPU-së:\nShmang kushtet e garës (race conditions) që lidhen me dërgimet e GPU-së.\nMund të ndihmojë, ose jo, në rast rëniesh të llojit 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. - Shënjuesit e korrigjimit të host-it:\nShton informacion nga ana e emulatorit, si shënjues për komandat specifike AMDGPU rreth komandave Vulkan, si dhe jep burimeve emra korrigjimi.\nNëse e ke aktivizuar këtë, duhet të aktivizosh diagnozën e rënieve.\nE dobishme për programe si 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. - Shënjuesit e korrigjimit të guest-it:\nShton çdo shënjues për korrigjim që loja vetë ka shtuar në buffer-in e komandave.\nNëse e ke aktivizuar këtë, duhet të aktivizosh diagnozën e rënieve.\nE dobishme për programe si RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Shtegu i Ruajtjes së të Dhënave:\nDosja ku do të ruhen të dhënat e ruajtjes së lojës. - - - Browse:\nBrowse for a folder to set as the save data path. - Shfleto:\nShfleto për të vendosur një dosje si shteg të ruajtjes së të dhënave. - - - Release - Release - - - Nightly - Nightly - - - Set the volume of the background music. - Vendos vëllimin e zërit të muzikës së sfondit. - - - Enable Motion Controls - Aktivizo kontrollet me lëvizje - - - Save Data Path - Shtegu i të dhënave të ruajtjes - - - Browse - Shfleto - - - async - async - - - sync - sync - - - Auto Select - Auto Select - - - Directory to install games - Dosja ku do instalohen lojërat - - - Directory to save data - Dosja për të ruajtur të dhënat - - - Video - Video - - - Display Mode - Mënyra e Shfaqjes - - - Windowed - Dritare - - - Fullscreen - Ekran të plotë - - - Fullscreen (Borderless) - Ekran të plotë (Pa kufij) - - - Window Size - Masa e Dritares - - - W: - Gjer: - - - H: - Lart: - - - Separate Log Files - Skedarë të Ditarit të Ndarë - - - Separate Log Files:\nWrites a separate logfile for each game. - Skedarë të Ditarit të Ndarë:\nShkruan një skedar të ditarit të veçuar për secilën lojë. - - - Trophy Notification Position - Pozicioni i Njoftimit të Trofeve - - - Left - Majtas - - - Right - Djathtas - - - Top - Sipër - - - Bottom - Poshtë - - - Notification Duration - Kohëzgjatja e Njoftimit - - - Portable User Folder - Dosja Portative e Përdoruesit - - - Create Portable User Folder from Common User Folder - Krijo Dosje Portative të Përdoruesit nga Dosja e Përbashkët e Përdoruesit - - - 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. - Dosja portative e përdoruesit:\nRuan cilësimet dhe të dhënat të shadPS4 që do të zbatohen vetëm për konstruktin e shadPS4 të vendosur në dosjen aktuale. Rinis aplikacionin pasi të krijosh dosjen portative te përdoruesit për ta përdorur. - - - Cannot create portable user folder - Dosja portative e përdoruesit nuk u krijua dot - - - %1 already exists - %1 tashmë ekziston - - - Portable user folder created - Dosja portative e përdoruesit u krijua - - - %1 successfully created. - %1 u krijua me sukses. - - - 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. - Hap dosjen e imazheve/tingujve të trofeve të personalizuar:\nMund të shtosh imazhe të personalizuara për trofetë dhe një audio.\nShto skedarët në dosjen custom_trophy me emrat që vijojnë:\ntrophy.wav ose trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nShënim: Tingulli do të punojë vetëm në versionet QT. - - - * Unsupported Vulkan Version - * Version i pambështetur i Vulkan - - - Experimental Features - Veçori Eksperimentale - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - PARALAJMËRIM: Këto veçori janë eksperimentale dhe nuk duhet të aktivizohen, përveç nëse të është kërkuar të bësh kështu ose nëse një lojë e kërkon. Nëse ke ndonjë pyetje, pyet në serverin Discord të shadPS4. - - - Enable Background Controller Input - Aktivo Hyrjen e Dorezës në Sfond - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Aktivo Hyrjen e Dorezës në Sfond:\nLejo shadPS4 të zbulojë hyrjet e kontrolluesit edhe kur dritarja e lojës nuk është e përqendruar. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Shikuesi i Trofeve - - - Select Game: - Zgjidh Lojën: - - - Progress - Ecuria - - - Show Earned Trophies - Shfaq Trofetë që janë fituar - - - Show Not Earned Trophies - Shfaq Trofetë që nuk janë fituar - - - Show Hidden Trophies - Shfaq Trofetë e Fshehur - - - diff --git a/src/qt_gui/translations/sr_CS.ts b/src/qt_gui/translations/sr_CS.ts deleted file mode 100644 index 816472901..000000000 --- a/src/qt_gui/translations/sr_CS.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - O shadPS4u - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 je eksperimentalni emulator otvorenog koda za PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Ovaj program ne treba koristiti sa igricama koje nisu legalno nabavljene. - - - - CheatsPatches - - Cheats / Patches for - Šifre / Modifikacije za - - - 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 - Šifre / Modifikacije su eksperimentalne.\nPažljivo koristiti.\nPreuzmite šifre individualno tako što izaberete izvor i kliknete dugme za preuzimanje.\nU sekciji za Modifikacije, mogu se instalirati sve modifikacije odjednom, izaberite koje želite da koristite, i sačuvajte Vaše izmene.\n\nPošto mi ne pravimo Šifre i Modifikacije,\nmolimo Vas da prijavite probleme autorima.\n\nU slučaju da ste napravili šifru, Posetite:\n - - - No Image Available - Nema Dostupne Slike - - - Serial: - Serijski broj: - - - Version: - Verzija: - - - Size: - Veličina: - - - Select Cheat File: - Izaberi Fajl Za Šifre: - - - Repository: - Izvor: - - - Download Cheats - Preuzmi Šifre - - - Delete File - Obriši Fajl - - - No files selected. - Nema izabranog fajla. - - - You can delete the cheats you don't want after downloading them. - Možete obrisati šifre koje ne želite nakog sto ste ih preuzeli. - - - Do you want to delete the selected file?\n%1 - Da li želite da obrišete izabrani fajl?\n%1 - - - Select Patch File: - Izaberite Fajl Sa Modifikacijama: - - - Download Patches - Preuzmite Modifikacije: - - - Save - Sačuvaj - - - Cheats - Šifre - - - Patches - Modifikacije - - - Error - Greška - - - No patch selected. - Nema izabrane modifikacije. - - - Unable to open files.json for reading. - Unable to open files.json for reading. - - - No patch file found for the current serial. - Fajl sa modifikacijama nije pronadjen za trenutnu igru. - - - 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 - Uspešno - - - Options saved successfully. - Opcije su uspešno sačuvane. - - - Invalid Source - Nevažeći Izvor - - - The selected source is invalid. - Izabrani izvor je nevažeći. - - - File Exists - Fajl Već Postoji - - - File already exists. Do you want to replace it? - Fajl već postoji. Da li želite da ga zamenite? - - - Failed to save file: - Fajl nije uspešno sačuvan: - - - Failed to download file: - Fajl nije uspešno preuzet: - - - Cheats Not Found - Šifre Nisu Pronađene - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Šifre za ovu igricu na ovoj verziji iz izabranog izvora nisu pronađene, pokušajte drugi izvor ili drugu verziju igrice. - - - Cheats Downloaded Successfully - Šifre Su Uspešno Preuzete - - - 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. - Uspešno ste preuzeli šifre za ovu verziju igrice sa izabranog izvora. Možete da pokušate da preuzmete sa drugog izvora, ako je dostupno moći ćete da ga koristite tako što izaberete fajl iz liste. - - - Failed to save: - Nije uspešno sačuvano: - - - Failed to download: - Nije uspešno preuzeto: - - - Download Complete - Preuzimanje Se Završilo - - - 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. - Modifikacije Uspešno Preuzete! Sve Modifikacije su dostupne za sve igrice koje ih podržavaju, nema potrebe da se preuzimaju pojedinačno kao sa Šiframa. Ako se modifikacije ne pokazuje, možda ne postoji za tu verziju igrice ili specifično za taj serijski broj. - - - 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 - Verzija igrice je: %1 - - - The downloaded patch only works on version: %1 - Preuzete modifikacije rade samo na verziji: %1 - - - You may need to update your game. - Možda morate da ažurirate Vašu igricu. - - - Incompatibility Notice - Incompatibility Notice - - - Failed to open file: - Fajl nije uspešno otvoren: - - - XML ERROR: - GREŠKA VEZANA ZA XML - - - Failed to open files.json for writing - Failed to open files.json for writing - - - Author: - Autor: - - - Directory does not exist: - Directory does not exist: - - - Failed to open files.json for reading. - Failed to open files.json for reading. - - - Name: - Ime: - - - Can't apply cheats before the game is started - Šifre se ne mogu aplicirati pre nego što je igrica upaljena - - - Close - Zatvori - - - - CheckUpdate - - Auto Updater - Automatsko Ažuriranje - - - Error - Greška - - - Network error: - Greška sa mrežom: - - - 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. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Обавештење:</b><br><br> Почевши од верзије <b>0.12.0</b>, Qt верзија емулатора више неће добијати директна ажурирања.<br><br> Међутим, Qt интерфејс остаје доступан преко новог званичног ланчера:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – заснован на оригиналном izvor­nom kodu shadPS4.<br><br> Препоручујемо прелазак на овај ланчер ради наставka примања ажурирања. - - - Your version is already up to date! - Vaša verzija je već najnovija! - - - Update Available - Nova Verzija Dostupna - - - Update Channel - Izvor Ažuriranja - - - Current Version - Trenutna Verzija - - - Latest Version - Najnovija Verzija - - - Do you want to update? - Da li želite da ažurirate? - - - Show Changelog - Prikaži Promene - - - Check for Updates at Startup - Proveri da li postoje novije verzije programa kada se upali - - - Update - Ažuriraj - - - 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 - - - Face Buttons - Face Buttons - - - 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 - - - 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 - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - 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 - - - Favorite - Favorite - - - - 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... - - - 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 - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - 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 - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - System - - - Console Language - Console Language - - - Emulator Language - Emulator Language - - - Default tab when opening settings - Default tab when opening settings - - - Show Game Size In List - Show Game Size In List - - - 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 - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Controller - - - Graphics - Graphics - - - GUI - GUI - - - User - User - - - Graphics Device - Graphics Device - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - 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 - - - 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. - - - 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 - - - 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. - - - 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 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - 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/sv_SE.ts b/src/qt_gui/translations/sv_SE.ts deleted file mode 100644 index 69d9399c3..000000000 --- a/src/qt_gui/translations/sv_SE.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Om shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 är en experimentell emulator för PlayStation 4 baserad på öppen källkod. - - - This software should not be used to play games you have not legally obtained. - Denna programvara bör inte användas för att spela spel som du inte legalt äger. - - - - CheatsPatches - - Cheats / Patches for - Fusk / Patchar för - - - 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 - Fusk/Patchar är experimentella.\nAnvänd med försiktighet.\n\nHämta fusk individuellt genom att välja förrådet och klicka på hämtningsknappen.\nUnder Patchar-fliken kan du hämta alla patchar på en gång, välj vilken du vill använda och spara ditt val.\n\nEftersom vi inte utvecklar fusk eller patchar,\nrapportera gärna problem till fuskets upphovsperson.\n\nSkapat ett nytt fusk? Besök:\n - - - No Image Available - Ingen bild tillgänglig - - - Serial: - Serienummer: - - - Version: - Version: - - - Size: - Storlek: - - - Select Cheat File: - Välj fuskfil: - - - Repository: - Förråd: - - - Download Cheats - Hämta fusk - - - Delete File - Ta bort fil - - - No files selected. - Inga filer valda. - - - You can delete the cheats you don't want after downloading them. - Du kan ta bort fusk som du inte vill ha efter de hämtats ner. - - - Do you want to delete the selected file?\n%1 - Vill du ta bort markerade filen?\n%1 - - - Select Patch File: - Välj patchfil: - - - Download Patches - Hämta patchar - - - Save - Spara - - - Cheats - Fusk - - - Patches - Patchar - - - Error - Fel - - - No patch selected. - Ingen patch vald. - - - Unable to open files.json for reading. - Kunde inte öppna files.json för läsning. - - - No patch file found for the current serial. - Ingen patchfil hittades för aktuella serienumret. - - - Unable to open the file for reading. - Kunde inte öppna filen för läsning. - - - Unable to open the file for writing. - Kunde inte öppna filen för skrivning. - - - Failed to parse XML: - Misslyckades med att tolka XML: - - - Success - Lyckades - - - Options saved successfully. - Inställningarna sparades. - - - Invalid Source - Ogiltig källa - - - The selected source is invalid. - Vald källa är ogiltig. - - - File Exists - Filen finns - - - File already exists. Do you want to replace it? - Filen finns redan. Vill du ersätta den? - - - Failed to save file: - Misslyckades med att spara fil: - - - Failed to download file: - Misslyckades med att hämta filen: - - - Cheats Not Found - Fusk hittades inte - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Inga fusk hittades för detta spel i denna version av det valda förrådet. Prova ett annat förråd eller en annan version av spelet. - - - Cheats Downloaded Successfully - Fusk hämtades ner - - - 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. - Du har hämtat ner fusken för denna version av spelet från valt förråd. Du kan försöka att hämta från andra förråd, om de är tillgängliga så kan det vara möjligt att använda det genom att välja det genom att välja filen från listan. - - - Failed to save: - Misslyckades med att spara: - - - Failed to download: - Misslyckades med att hämta: - - - Download Complete - Hämtning färdig - - - 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. - Patchhämtningen är färdig! Alla patchar tillgängliga för alla spel har hämtats och de behövs inte hämtas individuellt för varje spel som med fusk. Om patchen inte dyker upp kan det bero på att den inte finns för det specifika serienumret och versionen av spelet. - - - Failed to parse JSON data from HTML. - Misslyckades med att tolka JSON-data från HTML. - - - Failed to retrieve HTML page. - Misslyckades med att hämta HTML-sida. - - - The game is in version: %1 - Spelet är i version: %1 - - - The downloaded patch only works on version: %1 - Hämtad patch fungerar endast på version: %1 - - - You may need to update your game. - Du kan behöva uppdatera ditt spel. - - - Incompatibility Notice - Meddelande om inkompatibilitet - - - Failed to open file: - Misslyckades med att öppna filen: - - - XML ERROR: - XML-FEL: - - - Failed to open files.json for writing - Misslyckades med att öppna files.json för skrivning - - - Author: - Upphovsperson: - - - Directory does not exist: - Katalogen finns inte: - - - Failed to open files.json for reading. - Misslyckades med att öppna files.json för läsning. - - - Name: - Namn: - - - Can't apply cheats before the game is started - Kan inte tillämpa fusk innan spelet är startat - - - Close - Stäng - - - - CheckUpdate - - Auto Updater - Automatisk uppdatering - - - Error - Fel - - - Network error: - Nätverksfel: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Den automatiska uppdateraren tillåter upp till 60 uppdateringskontroller per timme.\nDu har uppnått denna gräns. Försök igen senare. - - - Failed to parse update information. - Misslyckades med att tolka uppdateringsinformationen. - - - No pre-releases found. - Inga förutgåva hittades. - - - Invalid release data. - Ogiltig release-data. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Meddelande:</b><br><br> Från och med version <b>0.12.0</b> kommer inte Qt‑versionen av emulatorn längre att ta emot direkta uppdateringar.<br><br> Qt‑gränssnittet fortsätter dock att vara tillgängligt via den nya officiella launcher:n:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – baserat på originalkoden för shadPS4.<br><br> Vi rekommenderar att byta till denna launcher för att fortsätta ta emot uppdateringar. - - - Your version is already up to date! - Din version är redan den senaste! - - - Update Available - Uppdatering tillgänglig - - - Update Channel - Uppdateringskanal - - - Current Version - Aktuell version - - - Latest Version - Senaste version - - - Do you want to update? - Vill du uppdatera? - - - Show Changelog - Visa ändringslogg - - - Check for Updates at Startup - Leta efter uppdateringar vid uppstart - - - Update - Uppdatera - - - No - Nej - - - Hide Changelog - Dölj ändringslogg - - - Changes - Ändringar - - - Network error occurred while trying to access the URL - Nätverksfel inträffade vid försök att komma åt URL:en - - - Download Complete - Hämtning färdig - - - The update has been downloaded, press OK to install. - Uppdateringen har hämtats. Tryck på Ok för att installera. - - - Failed to save the update file at - Misslyckades med att spara uppdateringsfilen i - - - Starting Update... - Startar uppdatering... - - - Failed to create the update script file - Misslyckades med att skapa uppdateringsskriptfil - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Hämtar kompatibilitetsdata, vänta - - - Cancel - Avbryt - - - Loading... - Läser in... - - - Error - Fel - - - Unable to update compatibility data! Try again later. - Kunde inte uppdatera kompatibilitetsdata! Försök igen senare. - - - Unable to open compatibility_data.json for writing. - Kunde inte öppna compatibility_data.json för skrivning. - - - Unknown - Okänt - - - Nothing - Ingenting - - - Boots - Startar upp - - - Menus - Menyer - - - Ingame - Problem - - - Playable - Spelbart - - - - ControlSettings - - Configure Controls - Konfigurera kontroller - - - D-Pad - Riktningsknappar - - - Up - Upp - - - Left - Vänster - - - Right - Höger - - - Down - Ner - - - Left Stick Deadzone (def:2 max:127) - Dödläge för vänster spak (standard:2 max:127) - - - Left Deadzone - Vänster dödläge - - - Left Stick - Vänster spak - - - Config Selection - Konfigurationsval - - - Common Config - Allmän konfiguration - - - Use per-game configs - Använd konfigurationer per spel - - - Face Buttons - Handlingsknappar - - - Right Stick Deadzone (def:2, max:127) - Dödläge för höger spak (standard:2, max:127) - - - Right Deadzone - Höger dödläge - - - Right Stick - Höger spak - - - Color Adjustment - Färgjustering - - - Override Lightbar Color - Åsidosätt ljusrampens färg - - - Override Color - Åsidosätt färg - - - Unable to Save - Kunde inte spara - - - Cannot bind axis values more than once - Kan inte binda axelvärden fler än en gång - - - Save - Spara - - - Apply - Tillämpa - - - Restore Defaults - Återställ till standard - - - Cancel - Avbryt - - - unmapped - omappad - - - Options - Options - - - Touchpad Left - Pekplatta vänster - - - Touchpad Center - Pekplatta i mitten - - - Touchpad Right - Pekplatta höger - - - Triangle - Triangel - - - Square - Fyrkant - - - Circle - Cirkel - - - Cross - Kors - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Det går inte att binda samma unika inmatning mer än en gång. Dubbletta inmatningar är mappade till följande knappar: - -%1 - - - Press a button - Tryck på en knapp - - - Move analog stick - Rör analog spak - - - L1 and L2 - L1 och L2 - - - Active Gamepad - Aktiv gamepad - - - Gamepad ID - Gamepad-id - - - Default Gamepad - Gamepad (standard) - - - No default selected - Ingen standard vald - - - n/a - inte tillgänglig - - - Set Active Gamepad as Default - Ställ in aktiv gamepad som standard - - - Remove Default Gamepad - Ta bort gamepad som standard - - - R1 and R2 - R1 och R2 - - - ID: - ID: - - - Default Controller Selected - Standardkontroller vald - - - Active controller set as default - Aktiv kontroller inställd som standard - - - Default Controller Removed - Standardkontroller borttagen - - - Default controller setting removed - Inställning för standardkontroller borttagen - - - RED - RÖD - - - GREEN - GRÖN - - - BLUE - BLÅ - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Redigera inmatningsbindningar för tangentbord + mus och kontroller - - - Use Per-Game configs - Använd konfigurationer per-spel - - - Error - Fel - - - Could not open the file for reading - Kunde inte öppna filen för läsning - - - Could not open the file for writing - Kunde inte öppna filen för skrivning - - - Save Changes - Spara ändringar - - - Do you want to save changes? - Vill du spara ändringarna? - - - Help - Hjälp - - - Do you want to reset your custom default config to the original default config? - Vill du återställa din anpassade standardkonfiguration till ursprungliga standardkonfigurationen? - - - Do you want to reset this config to your custom default config? - Vill du återställa denna konfiguration till din anpassade standardkonfiguration? - - - Reset to Default - Återställ till standard - - - - ElfViewer - - Open Folder - Öppna mapp - - - - GameInfoClass - - Loading game list, please wait :3 - Läser in spellistan, vänta :3 - - - Cancel - Avbryt - - - Loading... - Läser in... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Välj katalog - - - Directory to install games - Katalog att installera spel till - - - Browse - Bläddra - - - Error - Fel - - - Directory to install DLC - Katalog för att installera DLC - - - - GameListFrame - - Icon - Ikon - - - Name - Namn - - - Serial - Serienummer - - - Compatibility - Kompatibilitet - - - Region - Region - - - Firmware - Firmware - - - Size - Storlek - - - Version - Version - - - Path - Sökväg - - - Play Time - Speltid - - - Never Played - Aldrig spelat - - - h - h - - - m - m - - - s - s - - - Compatibility is untested - Kompatibilitet är otestat - - - Game does not initialize properly / crashes the emulator - Spelet initierar inte korrekt / kraschar emulatorn - - - Game boots, but only displays a blank screen - Spelet startar men visar endast en blank skärm - - - Game displays an image but does not go past the menu - Spelet visar en bild men kommer inte förbi menyn - - - Game has game-breaking glitches or unplayable performance - Spelet har allvarliga problem eller ospelbar prestanda - - - Game can be completed with playable performance and no major glitches - Spelet kan spelas klart med spelbar prestanda och utan större problem - - - Click to see details on github - Klicka för att se detaljer på Github - - - Last updated - Senast uppdaterad - - - Favorite - Favorit - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Skapa genväg - - - Cheats / Patches - Fusk / Patchar - - - SFO Viewer - SFO-visare - - - Trophy Viewer - Trofé-visare - - - Open Folder... - Öppna mapp... - - - Open Game Folder - Öppna spelmapp - - - Open Save Data Folder - Öppna mapp för sparat data - - - Open Log Folder - Öppna loggmapp - - - Copy info... - Kopiera till... - - - Copy Name - Kopiera namn - - - Copy Serial - Kopiera serienummer - - - Copy Version - Kopiera version - - - Copy Size - Kopiera storlek - - - Copy All - Kopiera alla - - - Delete... - Ta bort... - - - Delete Game - Ta bort spel - - - Delete Update - Ta bort uppdatering - - - Delete DLC - Ta bort DLC - - - Delete Trophy - Ta bort trofé - - - Compatibility... - Kompatibilitet... - - - Shortcut creation - Skapa genväg - - - Shortcut created successfully! - Genvägen skapades! - - - Error - Fel - - - Error creating shortcut! - Fel vid skapandet av genväg! - - - Game - Spel - - - This game has no update to delete! - Detta spel har ingen uppdatering att ta bort! - - - Update - Uppdatera - - - This game has no DLC to delete! - Detta spel har inga DLC att ta bort! - - - DLC - DLC - - - Delete %1 - Ta bort %1 - - - Are you sure you want to delete %1's %2 directory? - Är du säker på att du vill ta bort %1s %2-katalog? - - - Open Update Folder - Öppna uppdateringsmapp - - - Delete Save Data - Ta bort sparat data - - - This game has no update folder to open! - Detta spel har ingen uppdateringsmapp att öppna! - - - No log file found for this game! - Ingen loggfil hittades för detta spel! - - - Failed to convert icon. - Misslyckades med att konvertera ikon. - - - This game has no save data to delete! - Detta spel har inget sparat data att ta bort! - - - This game has no saved trophies to delete! - Detta spel har inga sparade troféer att ta bort! - - - Save Data - Sparat data - - - Trophy - Trofé - - - SFO Viewer for - SFO-visare för - - - Remove from Favorites - Ta bort från favoriter - - - Add to Favorites - Lägg till i favoriter - - - Game-specific Settings... - Spelspecifika inställningar... - - - Configure Game-specific Settings - Konfigurera spelspecifika inställningar - - - Create Game-specific Settings from Global Settings - Skapa spelspecifika inställningar från globala inställningar - - - Delete Game-specific Settings - Ta bort spelspecifika inställningar - - - Update Database - Uppdatera databasen - - - View Report - Visa rapport - - - Submit a Report - Skicka in en rapport - - - Confirm deletion - Bekräfta borttagning - - - Delete game-specific settings? - Ta bort spelspecifika inställningar? - - - - HelpDialog - - Quickstart - Snabbstart - - - FAQ - Frågor och svar - - - Syntax - Syntax - - - Special Bindings - Speciella bindningar - - - Keybindings - Tangentbindningar - - - - Hotkeys - - Customize Hotkeys - Anpassa snabbtangenter - - - Controller Hotkeys - Snabbtangenter för kontroller - - - Show FPS Counter - Visa bildfrekvensräknare - - - unmapped - omappad - - - Quit Emulation - Avsluta emulering - - - Reload Button Mappings - Uppdatera knappmappningar - - - Toggle Fullscreen - Växla helskärm - - - Toggle Pause - Växla paus - - - Keyboard Hotkeys - Tangentbordsgenvägar - - - Renderdoc Capture (for debugging only) - Renderdoc-fångst (endast för felsökning) - - - Toggle Mouse to Joystick Emulation - Växla mus- till styrspaksemulering - - - Toggle Mouse to Gyro Emulation - Växla mus- till gyroemulering - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tips: Upp till tre samtidiga inmatningar kan tilldelas för varje snabbtangent - - - Save - Spara - - - Apply - Tillämpa - - - Cancel - Avbryt - - - Restore Defaults - Återställ till standard - - - Unable to Save - Kunde inte spara - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Det går inte att binda samma unika inmatning mer än en gång. Dubbletter av inmatningar mappas till följande knappar: - -%1 - - - Waiting for inputs - Väntar på inmatningar - - - - KBMSettings - - Configure Controls - Konfigurera kontroller - - - D-Pad - Riktningsknappar - - - Up - Upp - - - unmapped - inte mappad - - - Left - Vänster - - - Right - Höger - - - Down - Ner - - - Left Analog Halfmode - Halvläge för vänster analog - - - hold to move left stick at half-speed - håll ner för att flytta vänster spak i halvfart - - - Left Stick - Vänster spak - - - Config Selection - Konfigurationsval - - - Common Config - Gemensam konfiguration - - - Use per-game configs - Använd konfiguration per-spel - - - Text Editor - Textredigerare - - - Help - Hjälp - - - Mouse to Joystick - Mus till styrspak - - - *press F7 ingame to activate - *tryck F7 i spelet för att aktivera - - - Options - Alternativ - - - Mouse Movement Parameters - Parametrar för musrörelse - - - note: click Help Button/Special Keybindings for more information - observera: klicka på Hjälp-knapp/Speciella tangentbindningar för mer information - - - Face Buttons - Handlingsknappar - - - Triangle - Triangel - - - Square - Fyrkant - - - Circle - Cirkel - - - Cross - Kryss - - - Right Analog Halfmode - Halvläge för höger analog - - - hold to move right stick at half-speed - håll ner för att flytta höger spak i halvfart - - - Right Stick - Höger spak - - - Speed Offset (def 0.125): - Offset för hastighet (standard 0.125): - - - Copy from Common Config - Kopiera från gemensam konfiguration - - - Deadzone Offset (def 0.50): - Offset för dödläge (standard 0.50): - - - Speed Multiplier (def 1.0): - Hastighetsmultiplikator (standard 1.0): - - - Common Config Selected - Gemensam konfiguration valdes - - - 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. - Den här knappen kopierar mappningar från gemensam konfiguration till den aktuella valda profilen och kan inte användas när den aktuella valda profilen är gemensam konfiguration. - - - Copy values from Common Config - Kopiera värden från gemensam konfiguration - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Vill du skriva över befintliga mappningar med mappningarna från gemensam konfiguration? - - - Unable to Save - Kunde inte spara - - - Press a key - Tryck på en tangent - - - Cannot set mapping - Kan inte ställa in mappning - - - Mousewheel cannot be mapped to stick outputs - Mushjulet kan inte mappas till spakutmatningar - - - Save - Spara - - - Apply - Tillämpa - - - Restore Defaults - Återställ till standard - - - Cancel - Avbryt - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Det går inte att binda samma unika inmatning mer än en gång. Dubbla inmatningar har mappats till följande knappar: - -%1 - - - Touchpad Left - Pekplatta vänster - - - Touchpad Center - Pekplatta mitten - - - Touchpad Right - Pekplatta höger - - - - LogPresetsDialog - - Log Filter Presets - Förval för loggfilter - - - Comment - Kommentar - - - Filter - Filter - - - Load - Läs in - - - Close - Stäng - - - Add a new preset after the selected row - Lägg till ett nytt förval efter markerad rad - - - Remove selected presets - Ta bort markerade förval - - - Load the selected preset - Läs in markerade förvalet - - - - MainWindow - - Open/Add Elf Folder - Öppna/Lägg till Elf-mapp - - - Boot Game - Starta spel - - - Check for Updates - Leta efter uppdateringar - - - About shadPS4 - Om shadPS4 - - - Configure... - Konfigurera... - - - Recent Games - Senaste spel - - - Open shadPS4 Folder - Öppna shadPS4-mapp - - - Exit - Avsluta - - - Exit shadPS4 - Avsluta shadPS4 - - - Exit the application. - Avsluta programmet. - - - Show Game List - Visa spellista - - - Game List Refresh - Uppdatera spellista - - - Tiny - Mycket små - - - Small - Små - - - Medium - Medelstora - - - Large - Stora - - - List View - Listvy - - - Grid View - Rutnätsvy - - - Elf Viewer - Elf-visare - - - Game Install Directory - Installationskatalog för spel - - - Download Cheats/Patches - Hämta fusk/patchar - - - Dump Game List - Dumpa spellista - - - Trophy Viewer - Trofévisare - - - No games found. Please add your games to your library first. - Inga spel hittades. Lägg till dina spel till biblioteket först. - - - Search... - Sök... - - - File - Arkiv - - - View - Visa - - - Game List Icons - Ikoner för spellista - - - Game List Mode - Läge för spellista - - - Settings - Inställningar - - - Utils - Verktyg - - - Themes - Teman - - - Help - Hjälp - - - Dark - Mörkt - - - Light - Ljust - - - Green - Grönt - - - Blue - Blått - - - Violet - Lila - - - toolBar - Verktygsrad - - - Game List - Spellista - - - Download Cheats For All Installed Games - Hämta fusk för alla installerade spel - - - Download Patches For All Games - Hämta patchar för alla spel - - - Download Complete - Hämtning färdig - - - You have downloaded cheats for all the games you have installed. - Du har hämtat fusk till alla spelen som du har installerade. - - - Patches Downloaded Successfully! - Patchar hämtades ner! - - - All Patches available for all games have been downloaded. - Alla patchar tillgängliga för alla spel har hämtats ner. - - - Games: - Spel: - - - ELF files (*.bin *.elf *.oelf) - ELF-filer (*.bin *.elf *.oelf) - - - Game Boot - Starta spel - - - Only one file can be selected! - Endast en fil kan väljas! - - - Run Game - Kör spel - - - Eboot.bin file not found - Filen eboot.bin hittades inte - - - Game is already running! - Spelet är redan igång! - - - shadPS4 - shadPS4 - - - Play - Spela - - - Pause - Paus - - - Stop - Stoppa - - - Restart - Starta om - - - Full Screen - Helskärm - - - Controllers - Kontroller - - - Keyboard - Tangentbord - - - Refresh List - Uppdatera lista - - - Resume - Återuppta - - - Show Labels Under Icons - Visa etiketter under ikoner - - - Customize Hotkeys - Anpassa snabbtangenter - - - - SettingsDialog - - Settings - Inställningar - - - General - Allmänt - - - System - System - - - Console Language - Konsollspråk - - - Emulator Language - Emulatorspråk - - - Default tab when opening settings - Standardflik när inställningar öppnas - - - Show Game Size In List - Visa spelstorlek i listan - - - Enable Discord Rich Presence - Aktivera Discord Rich Presence - - - Username - Användarnamn - - - Trophy Key - Trofényckel - - - Trophy - Troféer - - - Open the custom trophy images/sounds folder - Öppna mappen för anpassade trofébilder/ljud - - - Logger - Loggning - - - Log Type - Loggtyp - - - Log Filter - Loggfilter - - - Open Log Location - Öppna loggplats - - - Input - Inmatning - - - Cursor - Muspekare - - - Hide Cursor - Dölj muspekare - - - Hide Cursor Idle Timeout - Dölj muspekare vid overksam - - - Microphone - Mikrofon - - - None - Ingen - - - Default Device - Standardenhet - - - s - s - - - Controller - Handkontroller - - - Graphics - Grafik - - - GUI - Gränssnitt - - - User - Användare - - - Graphics Device - Grafikenhet - - - Advanced - Avancerat - - - Enable Shaders Dumping - Aktivera Shaders Dumping - - - Enable NULL GPU - Aktivera NULL GPU - - - Enable HDR - Aktivera HDR - - - Paths - Sökvägar - - - Game Folders - Spelmappar - - - Add... - Lägg till... - - - Remove - Ta bort - - - Debug - Felsök - - - Enable Debug Dumping - Aktivera felsökningsdumpning - - - Enable Vulkan Validation Layers - Aktivera Vulkan Validation Layers - - - Enable Vulkan Synchronization Validation - Aktivera Vulkan Synchronization Validation - - - Enable RenderDoc Debugging - Aktivera RenderDoc-felsökning - - - Enable Crash Diagnostics - Aktivera kraschdiagnostik - - - Collect Shaders - Samla shaders - - - Copy GPU Buffers - Kopiera GPU-buffertar - - - Host Debug Markers - Felsökningsmarkörer för värd - - - Guest Debug Markers - Felsökningsmarkörer för gäst - - - Enable Readbacks - Aktivera återläsning - - - Enable Readback Linear Images - Aktivera återläsning av linjära bilder - - - Update - Uppdatera - - - Check for Updates at Startup - Leta efter uppdateringar vid uppstart - - - Always Show Changelog - Visa alltid ändringsloggen - - - Update Channel - Uppdateringskanal - - - Check for Updates - Leta efter uppdateringar - - - Title Music - Titelmusik - - - Disable Trophy Notification - Inaktivera troféaviseringar - - - Background Image - Bakgrundsbild - - - Show Background Image - Visa bakgrundsbild - - - Opacity - Opacitet - - - Play title music - Spela titelmusik - - - Update Compatibility Database On Startup - Uppdatera databas vid uppstart - - - Game Compatibility - Spelkompatibilitet - - - Display Compatibility Data - Visa kompatibilitetsdata - - - Update Compatibility Database - Uppdatera kompatibilitetsdatabasen - - - Volume - Volym - - - Save - Spara - - - Apply - Verkställ - - - Restore Defaults - Återställ till standard - - - Close - Stäng - - - Point your mouse at an option to display its description. - Flytta muspekaren till ett alternativ för att visa dess beskrivning. - - - 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. - Konsollspråk:\nStäller in språket som PS4-spelet använder.\nDet rekommenderas att ställa in detta till ett språk som spelet har stöd för, vilket kan skilja sig mellan regioner. - - - Emulator Language:\nSets the language of the emulator's user interface. - Emulatorspråk:\nStäller in språket för emulatorns användargränssnitt. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Visa startskärm:\nVisar spelets startskärm (en speciell bild) när spelet startas. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Aktivera Discord Rich Presence:\nVisar emulatorikonen och relevant information på din Discord-profil. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Användarnamn:\nStäller in PS4ans användarkonto, som kan visas av vissa spel. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Trofényckel:\nNyckel som används för att avkryptera troféer. Måste hämtas från din konsoll (jailbroken).\nMåste innehålla endast hex-tecken. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Loggtyp:\nStäller in huruvida synkronisering av utdata för loggfönstret för prestanda. Kan ha inverkan på emulationen. - - - 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. - Loggfilter:\nFiltrera loggen till att endast skriva ut specifik information.\nExempel: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nNivåer: Trace, Debug, Info, Warning, Error, Critical - i den ordningen, en specifik nivå som tystar alla nivåer före den i listan och loggar allting efter den. - - - 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. - Uppdatering:\nRelease: Officiella versioner som släpps varje månad som kan vara mycket utdaterade, men är mer pålitliga och testade.\nNightly: Utvecklingsversioner som har de senaste funktionerna och fixarna, men kan innehålla fel och är mindre stabila. - - - Background Image:\nControl the opacity of the game background image. - Bakgrundsbild:\nKontrollerar opaciteten för spelets bakgrundsbild. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Spela upp titelmusik:\nOm ett spel har stöd för det kan speciell musik spelas upp från spelet i gränssnittet. - - - 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). - Inaktivera popup för troféer:\nInaktivera troféeaviseringar i spel. Troféförlopp kan fortfarande följas med Troféevisaren (högerklicka på spelet i huvudfönstret) - - - 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. - Dölj pekare:\nVälj när muspekaren ska försvinna:\nAldrig: Du kommer alltid se muspekaren.\nOverksam: Ställ in en tid för när den ska försvinna efter den inte använts.\nAlltid: du kommer aldrig se muspekaren. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Dölj pekare vid overksam:\nLängden (sekunder) efter vilken som muspekaren som har varit overksam döljer sig själv. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Visa kompatibilitetsdata:\nVisar information om spelkompatibilitet i tabellvyn. Aktivera "Uppdatera kompatibilitet vid uppstart" för att få uppdaterad information. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Uppdatera kompatibilitet vid uppstart:\nUppdatera automatiskt kompatibilitetsdatabasen när shadPS4 startar. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Uppdatera kompatibilitetsdatabasen:\nUppdaterar kompatibilitetsdatabasen direkt. - - - Never - Aldrig - - - Idle - Overksam - - - Always - Alltid - - - 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. - Grafikenhet:\nFör system med flera GPUer kan du välja den GPU som emulatorn ska använda från rullgardinsmenyn,\neller välja "Auto Select" för att automatiskt bestämma det. - - - 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. - Bredd/Höjd:\nStäller in storleken för emulatorfönstret vid uppstart, som kan storleksändras under spelning.\nDetta är inte det samma som spelupplösningen. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Aktivera Shaders Dumping:\nFör teknisk felsökning, sparar spelets shaders till en mapp när de renderas. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Aktivera Null GPU:\nFör teknisk felsökning, inaktiverar spelrenderingen som om det inte fanns något grafikkort. - - - 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. - Aktivera HDR:\nAktiverar HDR i spel som har stöd för det.\nDin skärm måste ha stöd för färgrymden BT2020 PQ samt swapchain-formatet RGB10A2. - - - Game Folders:\nThe list of folders to check for installed games. - Spelmappar:\nListan över mappar att leta i efter installerade spel. - - - Add:\nAdd a folder to the list. - Lägg till:\Lägg till en mapp till listan. - - - Remove:\nRemove a folder from the list. - Ta bort:\nTa bort en mapp från listan. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Aktivera felsökningsdumpning:\nSparar import och export av symboler och fil-header-information för aktuellt körande PS4-program till en katalog. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Aktivera RenderDoc-felsökning:\nOm aktiverad kommer emulatorn att tillhandahålla kompatibilitet med Renderdoc för att tillåta fångst och analys för aktuell renderad bildruta. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Samla shaders:\nDu behöver aktivera detta för att redigera shaders med felsökningsmenyn (Ctrl + F10) - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Aktivera återläsning:\nAktivera återläsning och återskrivning av GPU-minnet.\nDetta krävs för att vissa spel ska fungera korrekt.\nKan orsaka stabilitets- och/eller prestandaproblem. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Aktivera återläsning av linjära bilder:\nAktiverar asynkron nedladdning av GPU-modifierade linjära bilder.\nKan lösa problem i vissa spel. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - Kopiera GPU-buffertar:\nGör att man kan komma runt race conditions som involverar GPU submits.\nKan eller kan inte hjälpa med PM4 type 0-kraschar. - - - 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. - Felsökningsmarkörer för värd:\nInfogar informationsliknande markörer i emulatorn för specifika AMDGPU-kommandon runt Vulkan-kommandon, så väl som ger resurser felsökningsnamn.\nOm du har detta aktiverat bör du aktivera Kraschdiagnostik.\nAnvändbart för program som 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. - Felsökningsmarkörer för gäst:\nInfogar felsökningsmarkörer som själva spelet har lagt till i kommandobufferten.\nOm du har aktiverat detta bör du aktivera Kraschdiagnostik.\nAnvändbart för program som RenderDoc. - - - Save Data Path:\nThe folder where game save data will be saved. - Sökväg för sparat data:\nSökvägen där spelets sparade data kommer att sparas. - - - Browse:\nBrowse for a folder to set as the save data path. - Bläddra:\nBläddra efter en mapp att ställa in som sökväg för sparat data. - - - Release - Release - - - Nightly - Nightly - - - Set the volume of the background music. - Ställ in volymen för bakgrundsmusiken. - - - Enable Motion Controls - Aktivera rörelsekontroller - - - Save Data Path - Sökväg för sparat data - - - Browse - Bläddra - - - async - asynk - - - sync - synk - - - Auto Select - Välj automatiskt - - - Directory to install games - Katalog att installera spel till - - - Directory to save data - Katalog för sparat data - - - Video - Video - - - Display Mode - Visningsläge - - - Windowed - Fönster - - - Fullscreen - Helskärm - - - Fullscreen (Borderless) - Helskärm (kantlöst) - - - Window Size - Fönsterstorlek - - - W: - B: - - - H: - H: - - - Separate Log Files - Separata loggfiler - - - Separate Log Files:\nWrites a separate logfile for each game. - Separata loggfiler:\nSkriver en separat loggfil för varje spel. - - - Trophy Notification Position - Aviseringsposition för trofé - - - Left - Vänster - - - Right - Höger - - - Top - Överst - - - Bottom - Nederst - - - Notification Duration - Varaktighet för avisering - - - Portable User Folder - Portabel användarmapp - - - Create Portable User Folder from Common User Folder - Skapa portabel användarmapp från gemensam användarmapp - - - 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. - Portabel användarmapp:\nLagrar shadPS4-inställningar och data som endast tillämpas på den shadPS4-version som finns i den aktuella mappen. Starta om appen efter att du har skapat den portabla användarmappen för att börja använda den. - - - Cannot create portable user folder - Kan inte skapa portabel användarmapp - - - %1 already exists - %1 finns redan - - - Portable user folder created - Portabel användarmapp skapad - - - %1 successfully created. - %1 skapades. - - - 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. - Öppna mappen för anpassade trofébilder/ljud:\nDu kan lägga till egna bilder till troféerna och ett ljud.\nLägg till filerna i custom_trophy med följande namn:\ntrophy.wav ELLER trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nObservera: Ljudet fungerar endast i QT-versioner. - - - * Unsupported Vulkan Version - * Versionen av Vulkan stöds inte - - - Experimental Features - Experimentella funktioner - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - VARNING: Dessa funktioner är experimentella och bör inte aktiveras om du inte har blivit tillsagd att göra det eller om ett spel kräver det. Fråga i shadPS4s Discord-server om du har några frågor. - - - Enable Background Controller Input - Aktivera bakgrundsinmatning från handkontroll - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Aktivera bakgrundsinmatning från handkontroll:\nTillåt shadPS4 att upptäcka inmatningar från handkontrollen när spelfönstret inte är aktivt. - - - 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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - Kraschdiagnostik:\nSkapar en .yaml-fil med information om Vulkan-status vid kraschen.\nAnvändbart för felsökning av felmeddelanden om att enheten har förlorats. Om du har aktiverat detta bör du aktivera felsökningsmarkörer för både värd och gäst.\nDu måste ha Vulkan Validation Layers aktiverat och Vulkan SDK för att detta ska fungera. - - - Enable Logging - Aktivera loggning - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Aktivera loggning:\nAktiverar loggning.\nÄndra inte detta om du inte vet vad du gör!\nNär du ber om hjälp, se till att denna inställning är AKTIVERAD. - - - Present Mode - Nuvarande läge - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Omedelbar (Ingen Vsync) - - - DLC Folder - Mapp för nedladdningsbart innehåll (DLC) - - - Select the DLC folder - Välj DLC-mappen - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Nuvarande läge:\nKonfigurerar hur videoutgången ska visas på skärmen.\n\nMailbox: Bildrutorna synkroniseras med skärmens uppdateringsfrekvens. Nya bildrutor ersätter alla väntande bildrutor. Minskar fördröjningen men kan hoppa över bildrutor om det uppstår fördröjning.\nFifo: Bildrutorna synkroniseras med skärmens uppdateringsfrekvens. Nya bildrutor placeras i kö bakom väntande bildrutor. Säkerställer att alla bildrutor visas men kan öka fördröjningen.\nOmedelbar: Bildrutorna visas omedelbart på skärmen när de är klara. Kan resultera i tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC-sökväg:\nMappen där spelens DLC läses in från. - - - Browse:\nBrowse for a folder to set as the DLC path. - Bläddra:\nBläddra efter en mapp att ställa in som DLC-sökvägen. - - - FSR Settings - FSR-inställningar - - - Enable FSR - Aktivera FSR - - - Enable RCAS (sharpening) - Aktivera RCAS (uppskärpning) - - - RCAS Attenuation: - RCAS-dämpning: - - - Load Presets... - Läs in förval... - - - Log - Logg - - - Open Log Location:\nOpen the folder where the log file is saved. - Öppna loggplatsen:\nÖppna mappen där loggfilen är sparad. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Mikrofon:\nIngen: Använder inte mikrofonen.\nStandardenhet: Använder den standardenhet som är definierad i systemet.\nEller välj manuellt vilken mikrofon som ska användas från listan. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volym:\nJustera volymen för spel på global nivå, intervallet går från 0 till 500% med standardvärdet 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Standardflik vid öppning av inställningar:\nVälj vilken flik som ska öppnas, standard är Allmänt. - - - Show Game Size In List:\nThere is the size of the game in the list. - Visa spelstorlek i listan:\nSpelets storlek visas i listan. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Aktivera rörelsekontroller:\nNär denna funktion är aktiverad används kontrollens rörelsekontroll om den stöds. - - - Vblank Frequency - Vblank-frekvens - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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-frekvens:\nDen bildfrekvens som emulatorn uppdateras med (60 Hz är baslinjen, oavsett om spelet körs med 30 eller 60 bilder/s). Att ändra detta kan ha negativa effekter, såsom att öka spelhastigheten eller förstöra kritiska spelfunktioner som inte förväntar sig denna förändring! - - - Enable Direct Memory Access - Aktivera Direct Memory Access - - - Enable Devkit Console Mode - Aktivera Devkit-konsolläge - - - Set "PSN signed-in" to True - Ställ in "PSN signed-in" till True - - - Set "Network Connected" to True - Ställ in "Network Connected" till True - - - Miscellaneous - Diverse - - - Frontend - Frontend - - - Experimental - Experimentell - - - Show Splash Screen When Launching Game - Visa startskärm när spel startas - - - General Frontend Settings - Allmänna frontend-inställningar - - - Enable PS4 Neo Mode - Aktivera PS4 Neo-läge - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Aktivera direkt minnesåtkomst:\nAktiverar godtycklig minnesåtkomst från GPU till CPU-minne. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Aktivera PS4 Neo-läge:\nLägger till stöd för PS4 Pro-emulering och minnesstorlek. Orsakar för närvarande instabilitet i ett stort antal testade spel. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Aktivera Devkit-konsolläge:\nLägger till stöd för Devkit-konsollens minnesstorlek. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Ställ in Nätverk anslutet till Sant:\nTvingar spel att upptäcka en aktiv nätverksanslutning. Faktiska onlinefunktioner stöds ännu inte. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Ställ in PSN-inloggning till Sant:\nTvingar spel att upptäcka en aktiv PSN-inloggning. Faktiska PSN-funktioner stöds inte. - - - 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.\nYou need the Vulkan SDK for this to work. - Aktivera Vulkan-valideringslager:\nAktiverar ett system som validerar tillståndet för Vulkan-renderaren och loggar information om dess interna status.\nDetta minskar prestandan och kan förändra emuleringens beteende.\nDu behöver Vulkan SDK för att detta ska fungera. - - - 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.\nYou need the Vulkan SDK for this to work. - Aktivera Vulkan-synkroniseringsvalidering:\nAktiverar ett system som validerar tidpunkten för Vulkan-renderinguppgifter.\nDetta minskar prestandan och kan förändra emuleringens beteende.\nDu behöver Vulkan SDK för att detta ska fungera. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Trofé-visare - - - Select Game: - Välj spel: - - - Progress - Förlopp - - - Show Earned Trophies - Visa förtjänade troféer - - - Show Not Earned Trophies - Visa icke-förtjänade troféer - - - Show Hidden Trophies - Visa dolda troféer - - - diff --git a/src/qt_gui/translations/tr_TR.ts b/src/qt_gui/translations/tr_TR.ts deleted file mode 100644 index ca436c0c4..000000000 --- a/src/qt_gui/translations/tr_TR.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - shadPS4 Hakkında - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4, PlayStation 4 için deneysel bir açık kaynak kodlu emülatördür. - - - This software should not be used to play games you have not legally obtained. - Bu yazılım, yasal olarak edinmediğiniz oyunları oynamak için kullanılmamalıdır. - - - - CheatsPatches - - Cheats / Patches for - Hileler / Yamalar: - - - 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 - Hileler/Yamalar deneysel özelliklerdir.\nDikkatli kullanın.\n\nHileleri depo seçerek ve indirme düğmesine tıklayarak ayrı ayrı indirin.\nYamalar sekmesinde tüm yamaları tek seferde indirebilir, hangi yamaları kullanmak istediğinizi seçebilir ve seçiminizi kaydedebilirsiniz.\n\nHileleri ve yamaları biz geliştirmediğimiz için\nsorunlarınızı hile geliştiricisine bildirin.\n\nYeni bir hile oluşturduysanız şu adresi ziyaret edin:\n - - - No Image Available - Kaynak Mevcut Değil - - - Serial: - Seri Numarası: - - - Version: - Sürüm: - - - Size: - Boyut: - - - Select Cheat File: - Hile Dosyasını Seçin: - - - Repository: - Depo: - - - Download Cheats - Hileleri İndir - - - Delete File - Dosyayı Sil - - - No files selected. - Hiçbir dosya seçilmedi. - - - You can delete the cheats you don't want after downloading them. - İndirdikten sonra istemediğiniz hileleri silebilirsiniz. - - - Do you want to delete the selected file?\n%1 - Seçili dosyayı silmek istiyor musunuz?\n%1 - - - Select Patch File: - Yama Dosyasını Seçin: - - - Download Patches - Yamaları İndir - - - Save - Kaydet - - - Cheats - Hileler - - - Patches - Yamalar - - - Error - Hata - - - No patch selected. - Hiç yama seçilmedi. - - - Unable to open files.json for reading. - files.json dosyası okumak için açılamadı. - - - No patch file found for the current serial. - Mevcut seri numarası için hiç yama dosyası bulunamadı. - - - Unable to open the file for reading. - Dosya okumak için açılamadı. - - - Unable to open the file for writing. - Dosya yazmak için açılamadı. - - - Failed to parse XML: - XML ayrıştırılamadı: - - - Success - Başarılı - - - Options saved successfully. - Ayarlar başarıyla kaydedildi. - - - Invalid Source - Geçersiz Kaynak - - - The selected source is invalid. - Seçilen kaynak geçersiz. - - - File Exists - Dosya Mevcut - - - File already exists. Do you want to replace it? - Dosya zaten mevcut. Var olan dosyayı değiştirmek istiyor musunuz? - - - Failed to save file: - Dosya kaydedilemedi: - - - Failed to download file: - Dosya indirilemedi: - - - Cheats Not Found - Hileler Bulunamadı - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Bu oyun için seçilen depoda hile bulunamadı.Başka bir depo veya oyun sürümü deneyin. - - - Cheats Downloaded Successfully - Hileler Başarıyla İndirildi - - - 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. - Bu oyun sürümü için hileleri başarıyla indirdiniz. Başka bir depodan indirmeyi deneyebilirsiniz. Eğer mevcutsa, listeden dosyayı seçerek de kullanılabilir. - - - Failed to save: - Kaydedilemedi: - - - Failed to download: - İndirilemedi: - - - Download Complete - İndirme Tamamlandı - - - 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. - Yamalar başarıyla indirildi! Tüm oyunlar için mevcut tüm yamalar indirildi, her oyun için ayrı ayrı indirme yapmanız gerekmez, hilelerle olduğu gibi. Yamanın görünmemesi durumunda, belirli seri numarası ve oyun sürümü için mevcut olmayabilir. - - - Failed to parse JSON data from HTML. - HTML'den JSON verileri ayrıştırılamadı. - - - Failed to retrieve HTML page. - HTML sayfası alınamadı. - - - The game is in version: %1 - Oyun sürümü: %1 - - - The downloaded patch only works on version: %1 - İndirilen yama sadece şu sürümde çalışıyor: %1 - - - You may need to update your game. - Oyunuzu güncellemeniz gerekebilir. - - - Incompatibility Notice - Uyumsuzluk Bildirimi - - - Failed to open file: - Dosya açılamadı: - - - XML ERROR: - XML HATASI: - - - Failed to open files.json for writing - files.json dosyası yazmak için açılamadı - - - Author: - Yazar: - - - Directory does not exist: - Dizin mevcut değil: - - - Failed to open files.json for reading. - files.json dosyası okumak için açılamadı. - - - Name: - İsim: - - - Can't apply cheats before the game is started - Hileleri oyuna başlamadan önce uygulayamazsınız. - - - Close - Kapat - - - - CheckUpdate - - Auto Updater - Otomatik Güncelleyici - - - Error - Hata - - - Network error: - Ağ hatası: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Otomatik Güncelleyici, saat başına en fazla 60 güncelleme kontrolüne izin verir.\nBu sınıra ulaştınız. Lütfen daha sonra tekrar deneyin. - - - Failed to parse update information. - Güncelleme bilgilerini ayrıştırma başarısız oldu. - - - No pre-releases found. - Ön sürüm bulunamadı. - - - Invalid release data. - Geçersiz sürüm verisi. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Dikkat:</b><br><br> 0.12.0 sürümünden itibaren emulatorün Qt sürümü doğrudan güncelleme almayacak.<br><br> Ancak Qt arayüzü, yeni resmi başlatıcı (launcher) aracılığıyla kullanılabilir durumda kalacak:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – shadPS4’ün orijinal kaynak koduna dayanarak.<br><br> Güncellemeleri almaya devam etmek için bu launcher’a geçiş yapmanızı öneririz. - - - Your version is already up to date! - Sürümünüz zaten güncel! - - - Update Available - Güncelleme Mevcut - - - Update Channel - Güncelleme Kanalı - - - Current Version - Mevcut Sürüm - - - Latest Version - Son Sürüm - - - Do you want to update? - Güncellemek istiyor musunuz? - - - Show Changelog - Değişiklik Günlüğünü Göster - - - Check for Updates at Startup - Başlangıçta güncellemeleri kontrol et - - - Update - Güncelle - - - No - Hayır - - - Hide Changelog - Değişiklik Günlüğünü Gizle - - - Changes - Değişiklikler - - - Network error occurred while trying to access the URL - URL'ye erişmeye çalışırken bir ağ hatası oluştu - - - Download Complete - İndirme Tamamlandı - - - The update has been downloaded, press OK to install. - Güncelleme indirildi, yüklemek için Tamam'a basın. - - - Failed to save the update file at - Güncelleme dosyası kaydedilemedi - - - Starting Update... - Güncelleme Başlatılıyor... - - - Failed to create the update script file - Güncelleme komut dosyası oluşturulamadı - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Uyumluluk verileri alınıyor, lütfen bekleyin - - - Cancel - İptal - - - Loading... - Yükleniyor... - - - Error - Hata - - - Unable to update compatibility data! Try again later. - Uyumluluk verileri güncellenemedi! Lütfen daha sonra tekrar deneyin. - - - Unable to open compatibility_data.json for writing. - compatibility_data.json dosyasını yazmak için açamadık. - - - Unknown - Bilinmeyen - - - Nothing - Hiçbir şey - - - Boots - Botlar - - - Menus - Menüler - - - Ingame - Oyunda - - - Playable - Oynanabilir - - - - ControlSettings - - Configure Controls - Kontrolleri Yapılandır - - - D-Pad - Yön Düğmeleri - - - Up - Yukarı - - - Left - Sol - - - Right - Sağ - - - Down - Aşağı - - - Left Stick Deadzone (def:2 max:127) - Sol Analog Ölü Bölgesi (varsayılan: 2, en çok: 127) - - - Left Deadzone - Sol Ölü Bölge - - - Left Stick - Sol Analog - - - Config Selection - Yapılandırma Seçimi - - - Common Config - Ortak Yapılandırma - - - Use per-game configs - Oyuna özel yapılandırma kullan - - - Face Buttons - Eylem Düğmeleri - - - Right Stick Deadzone (def:2, max:127) - Sağ Analog Ölü Bölgesi (varsayılan: 2, en çok: 127) - - - Right Deadzone - Sağ Ölü Bölge - - - Right Stick - Sağ Analog - - - Color Adjustment - Renk Ayarları - - - Override Lightbar Color - Işıklı Çubuk Rengini Geçersiz Kıl - - - Override Color - Rengi Geçersiz Kıl - - - Unable to Save - Kaydedilemedi - - - Cannot bind axis values more than once - Eksen değerleri birden fazla kez bağlanamaz - - - Save - Kaydet - - - Apply - Uygula - - - Restore Defaults - Varsayılanlara Sıfırla - - - Cancel - İptal - - - unmapped - atanmamış - - - Options - Seçenekler - - - Touchpad Left - Dokunmatik Yüzey Sol - - - Touchpad Center - Dokunmatik Yüzey Orta - - - Touchpad Right - Dokunmatik Yüzey Sağ - - - Triangle - Üçgen - - - Square - Kare - - - Circle - Yuvarlak - - - Cross - Çarpı - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Aynı tuş birden fazla kez atanamaz. Aşağıdaki tuşlara birden fazla giriş atanmış: - -%1 - - - Press a button - Bir Düğmeye Bas - - - Move analog stick - Analog çubuğu taşı - - - L1 and L2 - L1 ve L2 - - - Active Gamepad - Aktif Kontrolcü - - - Gamepad ID - Kontrolcü ID - - - Default Gamepad - Varsayılan Kontrolcü - - - No default selected - Varsayılan seçilmedi - - - n/a - n/a - - - Set Active Gamepad as Default - Aktif Kontrolcüyü Varsayılan Olarak Ayarla - - - Remove Default Gamepad - Varsayılan Kontrolcüyü Kaldır - - - R1 and R2 - R1 ve R2 - - - ID: - ID: - - - Default Controller Selected - Varsayılan Kontrolcü Seçildi - - - Active controller set as default - Aktif kontrolcü varsayılan olarak ayarlandı - - - Default Controller Removed - Varsayılan Kontrolcü Kaldırıldı - - - Default controller setting removed - Varsayılan kontrolcü ayarı kaldırıldı - - - RED - KIRMIZI - - - GREEN - YEŞİL - - - BLUE - MAVİ - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Klavye + Fare ve Kontrolcü tuş atamalarını düzenle - - - Use Per-Game configs - Oyuna özel yapılandırma kullan - - - Error - Hata - - - Could not open the file for reading - Dosya okumak için açılamadı - - - Could not open the file for writing - Dosya yazmak için açılamadı - - - Save Changes - Değişiklikleri Kaydet - - - Do you want to save changes? - Değişiklikleri kaydetmek istiyor musunuz? - - - Help - Yardım - - - Do you want to reset your custom default config to the original default config? - Özel varsayılan yapılandırmanızı, orijinal varsayılan yapılandırmaya sıfırlamak istiyor musunuz? - - - Do you want to reset this config to your custom default config? - Bu yapılandırmayı özel varsayılan yapılandırmanıza sıfırlamak istiyor musunuz? - - - Reset to Default - Varsayılanlara Sıfırla - - - - ElfViewer - - Open Folder - Klasörü Aç - - - - GameInfoClass - - Loading game list, please wait :3 - Oyun listesi yükleniyor, lütfen bekleyin :3 - - - Cancel - İptal - - - Loading... - Yükleniyor... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Klasörü Seç - - - Directory to install games - Oyunların yükleneceği dizin - - - Browse - Gözat - - - Error - Hata - - - Directory to install DLC - DLC'lerin yükleneceği dizin - - - - GameListFrame - - Icon - Simge - - - Name - Ad - - - Serial - Seri Numarası - - - Compatibility - Uyumluluk - - - Region - Bölge - - - Firmware - Yazılım - - - Size - Boyut - - - Version - Sürüm - - - Path - Yol - - - Play Time - Oynama Süresi - - - Never Played - Hiç Oynanmadı - - - h - sa - - - m - dk - - - s - sn - - - Compatibility is untested - Uyumluluk test edilmemiş - - - Game does not initialize properly / crashes the emulator - Oyun düzgün bir şekilde başlatılamıyor / emülatörü çökertiyor - - - Game boots, but only displays a blank screen - Oyun başlatılabiliyor ancak yalnızca boş bir ekran gösteriyor - - - Game displays an image but does not go past the menu - Oyun bir resim gösteriyor ancak menüleri geçemiyor - - - Game has game-breaking glitches or unplayable performance - Oyunu bozan hatalar ya da oynanamayan performans - - - Game can be completed with playable performance and no major glitches - Oyun, oynanabilir performansla tamamlanabilir ve büyük aksaklık yok - - - Click to see details on github - Detayları görmek için GitHub’a tıklayın - - - Last updated - Son güncelleme - - - Favorite - Sık Kullanılan - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Kısayol Oluştur - - - Cheats / Patches - Hileler / Yamalar - - - SFO Viewer - SFO Görüntüleyici - - - Trophy Viewer - Kupa Görüntüleyici - - - Open Folder... - Klasörü Aç... - - - Open Game Folder - Oyun Klasörünü Aç - - - Open Save Data Folder - Kaydetme Verileri Klasörünü Aç - - - Open Log Folder - Günlük Klasörünü Aç - - - Copy info... - Bilgiyi Kopyala... - - - Copy Name - Adı Kopyala - - - Copy Serial - Seri Numarasını Kopyala - - - Copy Version - Sürümü Kopyala - - - Copy Size - Boyutu Kopyala - - - Copy All - Tümünü Kopyala - - - Delete... - Sil... - - - Delete Game - Oyunu Sil - - - Delete Update - Güncellemeyi Sil - - - Delete DLC - DLC'yi Sil - - - Delete Trophy - Kupayı Sil - - - Compatibility... - Uyumluluk... - - - Shortcut creation - Kısayol oluşturma - - - Shortcut created successfully! - Kısayol başarıyla oluşturuldu! - - - Error - Hata - - - Error creating shortcut! - Kısayol oluşturulurken hata oluştu! - - - Game - Oyun - - - This game has no update to delete! - Bu oyunun silinecek güncellemesi yok! - - - Update - Güncelleme - - - This game has no DLC to delete! - Bu oyunun silinecek DLC'si yok! - - - DLC - DLC - - - Delete %1 - Sil: %1 - - - Are you sure you want to delete %1's %2 directory? - %1%2 adlı oyunun dizinini silmek istediğinize emin misiniz? - - - Open Update Folder - Güncelleme Klasörünü Aç - - - Delete Save Data - Kayıt Verilerini Sil - - - This game has no update folder to open! - Bu oyunun açılacak güncelleme klasörü yok! - - - No log file found for this game! - Bu oyun için günlük dosyası bulunamadı! - - - Failed to convert icon. - Simge dönüştürülemedi. - - - This game has no save data to delete! - Bu oyunun silinecek kayıt verisi yok! - - - This game has no saved trophies to delete! - Bu oyunun silinecek kupası yok! - - - Save Data - Kayıt Verisi - - - Trophy - Kupa - - - SFO Viewer for - SFO Görüntüleyici: - - - Remove from Favorites - Favorilerden kaldır - - - Add to Favorites - Favorilere Ekle - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Hızlı Başlangıç - - - FAQ - SSS - - - Syntax - Sözdizimi - - - Special Bindings - Özel Atamalar - - - Keybindings - Tuş Atamaları - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Kontrolcü Kısayolları - - - Show FPS Counter - FPS Sayacını Göster - - - unmapped - atanmamış - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Tam Ekranı Aç/Kapat - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Fareyi Joystick Olarak Kullanmayı Aç/Kapat - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Kaydedilemedi - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - KBMSettings - - Configure Controls - Kontrolleri Yapılandır - - - D-Pad - Yön Düğmeleri - - - Up - Yukarı - - - unmapped - atanmamış - - - Left - Sol - - - Right - Sağ - - - Down - Aşağı - - - Left Analog Halfmode - Sol Analog Yarı Modu - - - hold to move left stick at half-speed - sol analogu yarı hızda hareket ettirmek için basılı tutun - - - Left Stick - Sol Analog - - - Config Selection - Yapılandırma Seçimi - - - Common Config - Ortak Yapılandırma - - - Use per-game configs - Oyuna özel yapılandırma kullan - - - Text Editor - Metin Düzenleyici - - - Help - Yardım - - - Mouse to Joystick - Mouse'dan Kontrolcü - - - *press F7 ingame to activate - *Etkinleştirmek için oyundayken F7'ye basın - - - Options - Seçenekler - - - Mouse Movement Parameters - Mouse Hızı Değişkenleri - - - note: click Help Button/Special Keybindings for more information - Not: Daha fazla bilgi için Yardım ya da Özel Atamalar'a tıklayın - - - Face Buttons - Eylem Düğmeleri - - - Triangle - Üçgen - - - Square - Kare - - - Circle - Daire - - - Cross - Çarpı - - - Right Analog Halfmode - Sağ Analog Yarı Modu - - - hold to move right stick at half-speed - sağ analogu yarı hızda hareket ettirmek için basılı tutun - - - Right Stick - Sağ Analog - - - Speed Offset (def 0.125): - Hız Sapması (varsayılan 0.125): - - - Copy from Common Config - Ortak Yapılandırmadan Kopyala - - - Deadzone Offset (def 0.50): - Ölü Bölge Sapması (varsayılan 0.50): - - - Speed Multiplier (def 1.0): - Hız Çarpanı (varsayılan 1.0): - - - Common Config Selected - Ortak Yapılandırma Seçildi - - - 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. - Bu tuş, Ortak Yapılandırma'daki atamaları seçili profile kopyalar ve seçili profil Ortak Yapılandırma ise kullanılamaz. - - - Copy values from Common Config - Ortak Yapılandırmadan Değerleri Kopyala - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Mevcut atamaların üzerine ortak yapılandırmadaki atamaları yazmak istiyor musunuz? - - - Unable to Save - Kaydedilemedi - - - Press a key - Bir tuşa basın - - - Cannot set mapping - Atama ayarlanamıyor - - - Mousewheel cannot be mapped to stick outputs - Mouse tekerleği analog çıkışlarına atanamaz - - - Save - Kaydet - - - Apply - Uygula - - - Restore Defaults - Varsayılanlara Sıfırla - - - Cancel - İptal - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Aynı tuş birden fazla kez atanamaz. Aşağıdaki tuşlara birden fazla giriş atanmış: - -%1 - - - Touchpad Left - Dokunmatik Yüzey Sol - - - Touchpad Center - Dokunmatik Yüzey Orta - - - Touchpad Right - Dokunmatik Yüzey Sağ - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Elf Klasörü Aç/Ekle - - - Boot Game - Oyunu Başlat - - - Check for Updates - Güncellemeleri kontrol et - - - About shadPS4 - shadPS4 Hakkında - - - Configure... - Yapılandır... - - - Recent Games - Son Oyunlar - - - Open shadPS4 Folder - shadPS4 Klasörünü Aç - - - Exit - Çıkış - - - Exit shadPS4 - shadPS4 Çıkış - - - Exit the application. - Uygulamadan çık. - - - Show Game List - Oyun Listesini Göster - - - Game List Refresh - Oyun Listesini Yenile - - - Tiny - Minik - - - Small - Küçük - - - Medium - Orta - - - Large - Büyük - - - List View - Liste Görünümü - - - Grid View - Izgara Görünümü - - - Elf Viewer - Elf Görüntüleyici - - - Game Install Directory - Oyun Kurulum Dizini - - - Download Cheats/Patches - Hileleri/Yamaları İndir - - - Dump Game List - Oyun Listesini Kaydet - - - Trophy Viewer - Kupa Görüntüleyici - - - No games found. Please add your games to your library first. - Oyun bulunamadı. Oyunlarınızı lütfen önce kütüphanenize ekleyin. - - - Search... - Ara... - - - File - Dosya - - - View - Görünüm - - - Game List Icons - Oyun Listesi Simgeleri - - - Game List Mode - Oyun Listesi Görünümü - - - Settings - Ayarlar - - - Utils - Yardımcı Araçlar - - - Themes - Temalar - - - Help - Yardım - - - Dark - Koyu - - - Light - Açık - - - Green - Yeşil - - - Blue - Mavi - - - Violet - Mor - - - toolBar - Araç Çubuğu - - - Game List - Oyun Listesi - - - Download Cheats For All Installed Games - Tüm Yüklenmiş Oyunlar İçin Hileleri İndir - - - Download Patches For All Games - Tüm Oyunlar İçin Yamaları İndir - - - Download Complete - İndirme Tamamlandı - - - You have downloaded cheats for all the games you have installed. - Yüklediğiniz tüm oyunlar için hileleri indirdiniz. - - - Patches Downloaded Successfully! - Yamalar Başarıyla İndirildi! - - - All Patches available for all games have been downloaded. - Tüm oyunlar için mevcut tüm yamalar indirildi. - - - Games: - Oyunlar: - - - ELF files (*.bin *.elf *.oelf) - ELF Dosyaları (*.bin *.elf *.oelf) - - - Game Boot - Oyun Başlat - - - Only one file can be selected! - Sadece bir dosya seçilebilir! - - - Run Game - Oyunu Çalıştır - - - Eboot.bin file not found - Eboot.bin dosyası bulunamadı - - - Game is already running! - Oyun zaten çalışıyor! - - - shadPS4 - shadPS4 - - - Play - Başlat - - - Pause - Duraklat - - - Stop - Durdur - - - Restart - Yeniden Başlat - - - Full Screen - Tam Ekran - - - Controllers - Kontrolcüler - - - Keyboard - Klavye - - - Refresh List - Listeyi Yenile - - - Resume - Devam Et - - - Show Labels Under Icons - Simgelerin Altında Etiketleri Göster - - - Customize Hotkeys - Kısayol Tuşlarını Özelleştir - - - - SettingsDialog - - Settings - Ayarlar - - - General - Genel - - - System - Sistem - - - Console Language - Konsol Dili - - - Emulator Language - Emülatör Dili - - - Default tab when opening settings - Ayarlar açıldığında varsayılan sekme - - - Show Game Size In List - Oyun Boyutunu Listede Göster - - - Enable Discord Rich Presence - Discord Rich Presence'i etkinleştir - - - Username - Kullanıcı Adı - - - Trophy Key - Kupa Anahtarı - - - Trophy - Kupa - - - Open the custom trophy images/sounds folder - Özel kupa görüntüleri/sesleri klasörünü aç - - - Logger - Kayıt Tutucu - - - Log Type - Kayıt Türü - - - Log Filter - Kayıt Filtresi - - - Open Log Location - Günlük Konumunu Aç - - - Input - Girdi - - - Cursor - İmleç - - - Hide Cursor - İmleci Gizle - - - Hide Cursor Idle Timeout - İmleç İçin Hareketsizlik Zaman Aşımı - - - Microphone - Mikrofon - - - None - Hiçbiri - - - Default Device - Varsayılan Cihaz - - - s - sn - - - Controller - Kontrolcü - - - Graphics - Grafikler - - - GUI - Arayüz - - - User - Kullanıcı - - - Graphics Device - Grafik Cihazı - - - Advanced - Gelişmiş - - - Enable Shaders Dumping - Shader Kaydını Etkinleştir - - - Enable NULL GPU - NULL GPU'yu Etkinleştir - - - Enable HDR - HDR - - - Paths - Yollar - - - Game Folders - Oyun Klasörleri - - - Add... - Ekle... - - - Remove - Kaldır - - - Debug - Hata Ayıklama - - - Enable Debug Dumping - Hata Ayıklama Dökümü Etkinleştir - - - Enable Vulkan Validation Layers - Vulkan Doğrulama Katmanlarını Etkinleştir - - - Enable Vulkan Synchronization Validation - Vulkan Senkronizasyon Doğrulamasını Etkinleştir - - - Enable RenderDoc Debugging - RenderDoc Hata Ayıklamayı Etkinleştir - - - Enable Crash Diagnostics - Çökme Tanılamalarını Etkinleştir - - - Collect Shaders - Gölgelendiricileri Topla - - - Copy GPU Buffers - GPU Arabelleklerini Kopyala - - - Host Debug Markers - Ana Bilgisayar Hata Ayıklama İşaretleyicileri - - - Guest Debug Markers - Konuk Hata Ayıklama İşaretleyicileri - - - Enable Readbacks - Geri okuma özelliğini etkinleştir - - - Enable Readback Linear Images - Lineer Görüntü Geri Okumayı Etkinleştir - - - Update - Güncelle - - - Check for Updates at Startup - Başlangıçta güncellemeleri kontrol et - - - Always Show Changelog - Her zaman değişiklik günlüğünü göster - - - Update Channel - Güncelleme Kanalı - - - Check for Updates - Güncellemeleri Kontrol Et - - - Title Music - Oyun Müziği - - - Disable Trophy Notification - Kupa Bildirimini Devre Dışı Bırak - - - Background Image - Arka Plan Resmi - - - Show Background Image - Arka Plan Resmini Göster - - - Opacity - Görünürlük - - - Play title music - Oyun müziğini çal - - - Update Compatibility Database On Startup - Başlangıçta Uyumluluk Veritabanını Güncelle - - - Game Compatibility - Oyun Uyumluluğu - - - Display Compatibility Data - Uyumluluk Verilerini Göster - - - Update Compatibility Database - Uyumluluk Veritabanını Güncelle - - - Volume - Ses Seviyesi - - - Save - Kaydet - - - Apply - Uygula - - - Restore Defaults - Varsayılanları Geri Yükle - - - Close - Kapat - - - Point your mouse at an option to display its description. - Açıklamasını görüntülemek için mouse'unuzu bir seçeneğin üzerine getirin. - - - 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. - Konsol Dili:\nPS4 oyununun kullandığı dili ayarlar.\nBu seçeneği, oyunun desteklediği bir dilde ayarlamanız önerilir; bu durum bölgeye göre değişebilir. - - - Emulator Language:\nSets the language of the emulator's user interface. - Emülatör Dili:\nEmülatörün kullanıcı arayüzünün dilini ayarlar. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Açılış Ekranını Göster:\nOyun açılırken (özel bir görüntü) açılış ekranını gösterir. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Discord Rich Presence'i etkinleştir:\nEmülatör simgesini ve Discord profilinizdeki ilgili bilgileri gösterir. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Kullanıcı Adı:\nBazı oyunlar tarafından gösterilebilen PS4 hesabının kullanıcı adını ayarlar. - - - Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters. - Kupa Anahtarı:\nKupaların şifresini çözmek için kullanılan anahtardır. Jailbreak yapılmış konsolunuzdan alınmalıdır.\nYalnızca onaltılık karakterler içermelidir. - - - Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation. - Günlük Türü:\nPerformans için günlük penceresi çıkışını senkronize etme durumunu ayarlar. Bu, emülasyonda olumsuz etkilere yol açabilir. - - - 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. - Günlük Filtre:\nSadece belirli bilgileri yazdırmak için günlüğü filtreler.\nÖrnekler: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Düzeyler: Trace, Debug, Info, Warning, Error, Critical - bu sırada, belirli bir seviye listede önceki tüm seviyeleri susturur ve sonraki tüm seviyeleri kaydeder. - - - 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. - Güncelleme:\nRelease: Her ay yayınlanan resmi sürümler; çok eski olabilirler, ancak daha güvenilirdir ve test edilmiştir.\nNightly: Tüm en son özellikler ve düzeltmeler ile birlikte geliştirme sürümleri; hatalar içerebilir ve daha az kararlıdırlar. - - - Background Image:\nControl the opacity of the game background image. - Arka Plan Resmi:\nOyunun arka plan resmi görünürlüğünü ayarlayın. - - - Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI. - Oyun Müziklerini Çal:\nEğer oyun destekliyorsa, arayüzde oyunu seçtiğinizde özel müzik çalmasını etkinleştirir. - - - 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). - Kupa Açılır Pencerelerini Devre Dışı Bırak:\nOyun için kupa bildirimlerini devre dışı bırakın. Kupa ilerlemesi hala Kupa Görüntüleyicisi kullanılarak takip edilebilir (ana menüde oyuna sağ tıklayı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. - İmleci gizle:\nİmlecin ne zaman kaybolacağını seçin:\nAsla: Fareyi her zaman göreceksiniz.\nPasif: Hareketsiz kaldıktan sonra kaybolması için bir süre belirleyin.\nHer zaman: fareyi asla göremeyeceksiniz. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - İmleç İçin Hareketsizlik Zaman Aşımı:\nBoşta kalan imlecin kendini kaç saniye sonra gizleyeceğidir. - - - Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information. - Uyumluluk Verilerini Göster:\nOyun uyumluluk bilgilerini tablo görünümünde görüntüler. Güncel bilgileri almak için "Başlangıçta Uyumluluk Veritabanını Güncelle"yi etkinleştirin. - - - Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts. - Başlangıçta Uyumluluk Veritabanını Güncelle:\nshadPS4 başlatıldığında uyumluluk veritabanını otomatik olarak güncelleyin. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Uyumluluk Veritabanını Güncelle:\nUyumluluk veri tabanını hemen güncelleyin. - - - Never - Asla - - - Idle - Boşta - - - Always - Her zaman - - - 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. - Grafik Aygıtı:\nBirden fazla GPU'ya sahip sistemlerde, emülatörün kullanacağı GPU'yu açılır listeden seçin,\nor "Auto Select" seçeneğini seçerek otomatik olarak belirlenmesini sağlayın. - - - 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. - Genişlik/Yükseklik:\nEmülatör penceresinin açılışta boyutunu ayarlar; bu, oyun sırasında yeniden boyutlandırılabilir.\nBu, oyundaki çözünürlükten farklıdır. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Shader'ları Dışa Aktarmayı Etkinleştir:\nTeknik hata ayıklama amacıyla, shader'ları render edildikçe bir klasöre kaydeder. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Null GPU'yu Etkinleştir:\nTeknik hata ayıklama amacıyla, oyunun render edilmesini grafik kartı yokmuş gibi devre dışı bırakır. - - - 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'yi Etkinleştir:\nDestekleyen oyunlarda HDR'yi etkinleştirir.\nMonitörünüz, BT2020 PQ renk alanını ve RGB10A2 takas zinciri biçimini desteklemelidir. - - - Game Folders:\nThe list of folders to check for installed games. - Oyun klasörleri:\nYüklenmiş oyunları kontrol etmek için klasörlerin listesi. - - - Add:\nAdd a folder to the list. - Ekle:\nListeye bir klasör ekle. - - - Remove:\nRemove a folder from the list. - Kaldır:\nListeden bir klasörü kaldır. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Hata Ayıklama için Dışa Aktarmayı Etkinleştir:\nŞu anda çalışan PS4 uygulaması için içe aktarılan ve dışa aktarılan sembolleri ve dosya başlık bilgilerini bir dizine kaydedin. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - RenderDoc Hata Ayıklamayı Etkinleştir:\nEğer etkinleştirilirse, emülatör mevcut render edilmiş çerçeveyi yakalamak ve analiz etmek için Renderdoc ile uyumluluk sunar. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Gölgelendiricileri Topla:\nHata ayıklama menüsüyle (Ctrl + F10) gölgelendiricileri düzenlemek için bunun etkinleştirilmesi gerekir. - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Geri Okuma özelliğini etkinleştir:\nGPU belleğinden veri geri okuma ve yazmayı etkinleştirir.\nBazı oyunların doğru çalışması için gereklidir.\nKararlılık ve/veya performans sorunlarına neden olabilir. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Doğrusal görüntülerde geri okumayı etkinleştir:\nGPU tarafından değiştirilmiş doğrusal görüntülerin eşzamanlı olmayan indirilmesini etkinleştirir.\nBazı oyunlardaki sorunları düzeltebilir. - - - Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes. - GPU Arabelleklerini Kopyala:\nGPU gönderimlerini içeren yarış koşullarının etrafından dolaşır.\nPM4 tip 0 çökmelerine yardımcı olabilir veya olmayabilir. - - - 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. - Ana Bilgisayar Hata Ayıklama Göstergeleri:\nVulkan komutlarının etrafına belirli AMDGPU komutları için göstergeler gibi emülatör tarafı bilgileri ekler ve kaynaklara hata ayıklama adları verir.\nBunu etkinleştirdiyseniz, Çökme Tanılamaları'nı etkinleştirmelisiniz.\nRenderDoc gibi programlar için faydalıdır. - - - 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. - Konuk Hata Ayıklama İşaretleyicileri\nOyunun kendisinin komut arabelleğine eklediği tüm hata ayıklama işaretlerini ekler.\nBunu etkinleştirdiyseniz, Çökme Tanılamalarını etkinleştirmeniz gerekir.\nRenderDoc gibi programlar için kullanışlıdır. - - - Save Data Path:\nThe folder where game save data will be saved. - Kayıt Verileri Yolu:\nOyun kayıt verilerinin kaydedileceği klasördür. - - - Browse:\nBrowse for a folder to set as the save data path. - Gözat:\nVerileri kaydetme yolu olarak ayarlamak için bir klasöre göz atın. - - - Release - Kararlı - - - Nightly - Günlük - - - Set the volume of the background music. - Arka plan müziğinin ses seviyesini ayarlayın. - - - Enable Motion Controls - Hareket Kontrollerini Etkinleştir - - - Save Data Path - Kayıt Verileri Yolu - - - Browse - Gözat - - - async - asenkronize - - - sync - senkronize - - - Auto Select - Otomatik Seç - - - Directory to install games - Oyunların yükleneceği dizin - - - Directory to save data - Kayıt verilerinin tutulacağı dizin - - - Video - Görüntü - - - Display Mode - Görüntü Modu - - - Windowed - Pencereli - - - Fullscreen - Tam Ekran - - - Fullscreen (Borderless) - Tam Ekran (Kenarlıksız) - - - Window Size - Pencere Boyutu - - - W: - G: - - - H: - Y: - - - Separate Log Files - Ayrı Günlük Dosyaları - - - Separate Log Files:\nWrites a separate logfile for each game. - Ayrı Günlük Dosyaları:\nHer oyun için ayrı bir günlük dosyası yazar. - - - Trophy Notification Position - Kupa Bildirim Konumu - - - Left - Sol - - - Right - Sağ - - - Top - Üst - - - Bottom - Alt - - - Notification Duration - Bildirim Süresi - - - Portable User Folder - Taşınabilir Kullanıcı Klasörü - - - Create Portable User Folder from Common User Folder - Ortak Kullanıcı Klasöründen Taşınabilir Kullanıcı Klasörü Oluştur - - - 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. - Taşınabilir kullanıcı klasörü:\nYalnızca geçerli klasörde bulunan shadPS4 derlemesine uygulanacak shadPS4 ayarlarını ve verilerini depolar. Kullanmaya başlamak için taşınabilir kullanıcı klasörünü oluşturduktan sonra uygulamayı yeniden başlatın. - - - Cannot create portable user folder - Taşınabilir kullanıcı klasörü oluşturulamıyor - - - %1 already exists - %1 zaten mevcut - - - Portable user folder created - Taşınabilir kullanıcı klasörü oluşturuldu - - - %1 successfully created. - %1 başarıyla oluşturuldu. - - - 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. - Özel kupa görüntüleri/sesleri klasörünü aç:\nKupalara özel görüntüler ve sesler ekleyebilirsiniz.\nDosyaları aşağıdaki adlarla custom_trophy'ye ekleyin:\ntrophy.wav ya da trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNot: Ses yalnızca QT sürümlerinde çalışacaktır. - - - * Unsupported Vulkan Version - * Desteklenmeyen Vulkan Sürümü - - - Experimental Features - Deneysel Özellikler - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - UYARI: Bu özellikler deneyseldir ve size söylenmediği ya da bir oyun ihtiyaç duymadığı sürece açılmamalıdır. Lütfen sorularınız varsa shadPS4 Discord sunucusuna sorunuz. - - - Enable Background Controller Input - Arka Plan Kontrolcü Girişini Etkinleştir - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nOyun penceresi odaklanmadığında da shadPS4'ün kontrolcü girişlerini algılamasına izin ver. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Kupa Görüntüleyici - - - Select Game: - Oyun Seç: - - - Progress - İlerleme - - - Show Earned Trophies - Kazanılmış Kupaları Göster - - - Show Not Earned Trophies - Kazanılmamış Kupaları Göster - - - Show Hidden Trophies - Gizli Kupaları Göster - - - diff --git a/src/qt_gui/translations/uk_UA.ts b/src/qt_gui/translations/uk_UA.ts deleted file mode 100644 index cd307aa41..000000000 --- a/src/qt_gui/translations/uk_UA.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Про shadPS4 - - - 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. - Це програмне забезпечення не повинно використовуватися для запуску ігор, котрі ви отримали не легально. - - - - CheatsPatches - - 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 - - - No Image Available - Зображення відсутнє - - - Serial: - Серійний номер: - - - Version: - Версія: - - - Size: - Розмір: - - - Select Cheat File: - Виберіть файл читу: - - - Repository: - Репозиторій: - - - Download Cheats - Завантажити чити - - - Delete File - Видалити файл - - - 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 - - - Select Patch File: - Виберіть файл патчу: - - - Download Patches - Завантажити патчі - - - Save - Зберегти - - - Cheats - Чити - - - Patches - Патчі - - - Error - Помилка - - - No patch selected. - Патч не вибрано. - - - Unable to open files.json for reading. - Не вдалось відкрити 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: - - - Success - Успіх - - - Options saved successfully. - Параметри успішно збережено. - - - Invalid Source - Неправильне джерело - - - The selected source is invalid. - Вибране джерело є недійсним. - - - File Exists - Файл існує - - - 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 - Заватнаження завершено - - - 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. - Не вдалося розібрати JSON-дані з HTML. - - - Failed to retrieve HTML page. - Не вдалося отримати HTML-сторінку. - - - The game is in version: %1 - Версія гри: %1 - - - The downloaded patch only works on version: %1 - Завантажений патч працює лише на версії: %1 - - - You may need to update your game. - Можливо, вам потрібно оновити гру. - - - Incompatibility Notice - Повідомлення про несумісність - - - Failed to open file: - Не вдалося відкрити файл: - - - XML ERROR: - ПОМИЛКА XML: - - - Failed to open files.json for writing - Не вдалося відкрити files.json для запису - - - Author: - Автор: - - - Directory does not exist: - Каталогу не існує: - - - Failed to open files.json for reading. - Не вдалося відкрити files.json для читання. - - - Name: - Назва: - - - Can't apply cheats before the game is started - Неможливо застосовувати чити до початку гри. - - - Close - Закрити - - - - CheckUpdate - - Auto Updater - Автооновлення - - - Error - Помилка - - - Network error: - Мережева помилка: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Автооновлення дозволяє до 60 перевірок оновлень на годину.\nВи досягли цього ліміту. Будь ласка, спробуйте пізніше. - - - Failed to parse update information. - Не вдалося розібрати інформацію про оновлення. - - - No pre-releases found. - Попередніх версій не знайдено. - - - Invalid release data. - Некоректні дані про випуск. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Увага:</b><br><br> Починаючи з версії <b>0.12.0</b> QT‑версія емулятора більше не отримуватиме прямих оновлень.<br><br> Однак інтерфейс Qt залишається доступним через новий офіційний лаунчер:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – заснований на оригінальному вихідному коді shadPS4.<br><br> Рекомендуємо перейти на цей лаунчер, щоб продовжувати отримувати оновлення. - - - Your version is already up to date! - У вас актуальна версія! - - - Update Available - Доступне оновлення - - - Update Channel - Канал оновлення - - - Current Version - Поточна версія - - - Latest Version - Остання версія - - - Do you want to update? - Ви хочете оновитися? - - - Show Changelog - Показати журнал змін - - - Check for Updates at Startup - Перевірка оновлень під час запуску - - - Update - Оновитись - - - No - Ні - - - Hide Changelog - Приховати журнал змін - - - Changes - Журнал змін - - - Network error occurred while trying to access the URL - Сталася мережева помилка під час спроби доступу до URL - - - Download Complete - Завантаження завершено - - - The update has been downloaded, press OK to install. - Оновлення завантажено, натисніть OK для встановлення. - - - Failed to save the update file at - Не вдалося зберегти файл оновлення в - - - Starting Update... - Початок оновлення... - - - Failed to create the update script file - Не вдалося створити файл скрипта оновлення - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Отримання даних про сумісність. Будь ласка, зачекайте - - - Cancel - Відмінити - - - Loading... - Завантаження... - - - Error - Помилка - - - Unable to update compatibility data! Try again later. - Не вдалося оновити дані про сумісність! Спробуйте ще раз пізніше. - - - Unable to open compatibility_data.json for writing. - Не вдалося відкрити файл compatibility_data.json для запису. - - - Unknown - Невідомо - - - Nothing - Не працює - - - Boots - Запускається - - - Menus - У меню - - - Ingame - У грі - - - Playable - Іграбельно - - - - ControlSettings - - Configure Controls - Налаштування елементів керування - - - D-Pad - Хрестовина - - - Up - Вгору - - - Left - Ліворуч - - - Right - Праворуч - - - Down - Вниз - - - Left Stick Deadzone (def:2 max:127) - Мертва зона лівого стику (за замов.: 2, максимум: 127) - - - Left Deadzone - Ліва мертва зона - - - Left Stick - Лівий стік - - - Config Selection - Вибір конфігурації - - - Common Config - Загальна конфігурація - - - Use per-game configs - Використовувати ігрові конфігурації - - - Face Buttons - Лицьові кнопки - - - Right Stick Deadzone (def:2, max:127) - Мертва зона правого стику (за замов.: 2, максимум: 127) - - - Right Deadzone - Права мертва зона - - - Right Stick - Правий стик - - - Color Adjustment - Налаштування Кольору - - - Override Lightbar Color - Змінити колір підсвітки - - - Override Color - Змінити колір - - - Unable to Save - Не вдалося зберегти - - - Cannot bind axis values more than once - Неможливо пере назначити кнопку більше одного разу - - - Save - Зберегти - - - Apply - Застосувати - - - Restore Defaults - За замовчуванням - - - Cancel - Відмінити - - - unmapped - Не назначено - - - Options - Опції - - - Touchpad Left - Ліва сторона сенсору - - - Touchpad Center - Середина сенсору - - - Touchpad Right - Права сторона сенсору - - - Triangle - Трикутник - - - Square - Квадрат - - - Circle - Коло - - - Cross - Хрест - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Неможливо призначити одну й ту саму кнопку більше одного разу. Повторне призначення виявлено для таких кнопок: - -%1 - - - Press a button - Натисніть кнопку - - - Move analog stick - Перемістити аналоговий стік - - - L1 and L2 - L1 і L2 - - - Active Gamepad - Активний контролер - - - Gamepad ID - ID контролера - - - Default Gamepad - Стандартний контролер - - - No default selected - Стандартне не вибрано - - - n/a - n/a - - - Set Active Gamepad as Default - Встановити активний контролер за замовчуванням - - - Remove Default Gamepad - Видалити стандартний контролер - - - R1 and R2 - R1 і R2 - - - ID: - ID: - - - Default Controller Selected - Вибрано стандартний контролер - - - Active controller set as default - Активний контролер встановлено за замовчуванням - - - Default Controller Removed - Видалено стандартний контролер - - - Default controller setting removed - Стандартні налаштування контролера видалено - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Налаштування клавіатури, миші та перевизначення кнопок контролеру - - - Use Per-Game configs - Використовувати ігрові конфігурації - - - Error - Помилка - - - Could not open the file for reading - Не вдалося відкрити файл для читання - - - Could not open the file for writing - Не вдалось відкрити файл для запису - - - Save Changes - Зберегти зміни - - - Do you want to save changes? - Бажаєте зберегти зміни? - - - Help - Допомога - - - 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? - Ви бажаєте скинути ці налаштування до вашої конфігурації за замовчуванням? - - - Reset to Default - Відновити налаштування за замовчанням - - - - ElfViewer - - Open Folder - Відкрити папку - - - - GameInfoClass - - Loading game list, please wait :3 - Завантажуємо список ігор, будь ласка, зачекайте :3 - - - Cancel - Відмінити - - - Loading... - Завантаження... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - Виберіть папку - - - Directory to install games - Папка для встановлення ігор - - - Browse - Обрати - - - Error - Помилка - - - Directory to install DLC - Папка для встановлення DLC - - - - GameListFrame - - Icon - Значок - - - Name - Назва - - - Serial - Серійний номер - - - Compatibility - Сумісність - - - Region - Регіон - - - Firmware - Прошивка - - - Size - Розмір - - - Version - Версія - - - Path - Шлях - - - Play Time - Час у грі - - - Never Played - Ніколи не запускалась - - - h - год - - - m - хв - - - s - сек - - - Compatibility is untested - Сумісність не перевірена - - - Game does not initialize properly / crashes the emulator - Гра не ініціалізується належним чином або спричиняє збій емулятора. - - - Game boots, but only displays a blank screen - Гра запускається, але відображає лише чорний екран. - - - Game displays an image but does not go past the menu - Гра відображає зображення, але не проходить далі меню. - - - Game has game-breaking glitches or unplayable performance - У грі є критичні баги або погана продуктивність - - - Game can be completed with playable performance and no major glitches - Гру можна пройти з хорошою продуктивністю та без серйозних глюків. - - - Click to see details on github - Натисніть, щоб переглянути деталі на GitHub - - - Last updated - Останнє оновлення - - - Favorite - Обране - - - - GameListUtils - - B - Б - - - KB - КБ - - - MB - - - - GB - ГБ - - - TB - ТБ - - - - GuiContextMenus - - Create Shortcut - Створити Ярлик - - - Cheats / Patches - Чити та Патчі - - - SFO Viewer - Перегляд SFO - - - Trophy Viewer - Перегляд трофеїв - - - Open Folder... - Відкрити Папку... - - - Open Game Folder - Відкрити папку гри - - - Open Save Data Folder - Відкрити папку збережень гри - - - Open Log Folder - Відкрити папку логів - - - Copy info... - Копіювати інформацію... - - - Copy Name - Копіювати назву гри - - - Copy Serial - Копіювати серійний номер - - - Copy Version - Копіювати версію - - - Copy Size - Копіювати розмір - - - Copy All - Копіювати все - - - Delete... - Видалити... - - - Delete Game - Видалити гру - - - Delete Update - Видалити оновлення - - - Delete DLC - Видалити DLC - - - Delete Trophy - Видалити трофей - - - Compatibility... - Сумісність... - - - Shortcut creation - Створення ярлика - - - Shortcut created successfully! - Ярлик створений успішно! - - - Error - Помилка - - - Error creating shortcut! - Помилка при створенні ярлика! - - - Game - гри - - - This game has no update to delete! - Ця гра не має оновлень для видалення! - - - Update - Оновлення - - - This game has no DLC to delete! - Ця гра не має DLC для видалення! - - - DLC - DLC - - - Delete %1 - Видалення %1 - - - Are you sure you want to delete %1's %2 directory? - Ви впевнені, що хочете видалити %1 з папки %2? - - - Open Update Folder - Відкрити папку оновлень - - - Delete Save Data - Видалити збереження - - - This game has no update folder to open! - Ця гра не має папки оновленнь, щоб відкрити її! - - - No log file found for this game! - Файл звіту для цієї гри не знайдено! - - - Failed to convert icon. - Не вдалося конвертувати значок. - - - This game has no save data to delete! - Ця гра не містить збережень, які можна видалити! - - - This game has no saved trophies to delete! - Ця гра немає збережених трофеїв для видалення! - - - Save Data - Збереження - - - Trophy - Трофеї - - - SFO Viewer for - Перегляд SFO - - - Remove from Favorites - Видалити з обраного - - - Add to Favorites - Додати до обраного - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Швидкий старт - - - FAQ - ЧаПи - - - Syntax - Синтаксис - - - Special Bindings - Спеціальні прив'язки - - - Keybindings - Призначення клавіш - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - KBMSettings - - Configure Controls - Налаштування елементів керування - - - D-Pad - Хрестовина - - - Up - Вгору - - - unmapped - не назначено - - - Left - Ліворуч - - - Right - Праворуч - - - Down - Вниз - - - Left Analog Halfmode - Напіврежим лівого аналогового стику - - - hold to move left stick at half-speed - утримуйте щоб рухати лівий стик в половину швидкості - - - Left Stick - Лівий стик - - - Config Selection - Вибір конфігурації - - - Common Config - Загальна конфігурація - - - Use per-game configs - Використовувати ігрові конфігурації - - - Text Editor - Текстовий редактор - - - Help - Довідка - - - Mouse to Joystick - Миша в джойстик - - - *press F7 ingame to activate - *натисніть F7 у грі для увімкнення - - - Options - Опції - - - Mouse Movement Parameters - Параметри руху миші - - - note: click Help Button/Special Keybindings for more information - замітка: натисніть кнопку Довідки/Спеціального Призначення клавіш для отримання додаткової інформації - - - Face Buttons - Лицьові кнопки - - - Triangle - Трикутник - - - Square - Квадрат - - - Circle - Коло - - - Cross - Хрест - - - Right Analog Halfmode - Напіврежим правого аналогового стику - - - hold to move right stick at half-speed - утримуйте щоб рухати правий стик в половину швидкості - - - Right Stick - Правий стик - - - Speed Offset (def 0.125): - Зміщення швидкості (замовч 0,125): - - - Copy from Common Config - Копіювати з Загальної конфігурації - - - Deadzone Offset (def 0.50): - Зміщення мертвої зони (замовч 0,50): - - - Speed Multiplier (def 1.0): - Модифікатор швидкості (замовч 1,0): - - - 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. - Ця кнопка копіює перепризначення кнопок із Загальної конфігурації до поточного вибраного профілю, і не може бути використана, якщо поточний вибраний профіль є загальною конфігурацією. - - - Copy values from Common Config - Копіювати значення з Загальної конфігурації - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - Ви бажаєте перезаписати наявні перепризначення кнопок з загальної конфігурації? - - - Unable to Save - Не вдалося зберегти - - - Press a key - Натисніть клавішу - - - Cannot set mapping - Не вдалося встановити прив'язку - - - Mousewheel cannot be mapped to stick outputs - Коліщатко миші не можна прив'язати зі значенням стиків - - - Save - Зберегти - - - Apply - Застосувати - - - Restore Defaults - За замовчуванням - - - Cancel - Відмінити - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Унікальний вхід не може бути призначений двічі. Дублікати на кнопках: - -%1 - - - Touchpad Left - Ліва сторона сенсору - - - Touchpad Center - Середина сенсору - - - Touchpad Right - Права сторона сенсору - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Відкрити/Додати папку Elf - - - Boot Game - Запустити гру - - - Check for Updates - Перевірити наявність оновлень - - - About shadPS4 - Про shadPS4 - - - Configure... - Налаштувати... - - - Recent Games - Нещодавні ігри - - - Open shadPS4 Folder - Відкрити папку shadPS4 - - - Exit - Вихід - - - Exit shadPS4 - Вийти з shadPS4 - - - Exit the application. - Вийти з додатку. - - - Show Game List - Показати список ігор - - - Game List Refresh - Оновити список ігор - - - Tiny - Крихітний - - - Small - Маленький - - - Medium - Середній - - - Large - Великий - - - List View - Список - - - Grid View - Сітка - - - Elf Viewer - Виконуваний файл - - - Game Install Directory - Каталоги встановлення ігор та оновлень - - - Download Cheats/Patches - Завантажити Чити/Патчі - - - Dump Game List - Дамп списку ігор - - - Trophy Viewer - Переглядач трофеїв - - - No games found. Please add your games to your library first. - Не знайдено жодної гри. Будь ласка, спочатку додайте свої ігри до бібліотеки. - - - Search... - Пошук... - - - File - Файл - - - View - Вид - - - Game List Icons - Розмір значків списку ігор - - - Game List Mode - Вид списку ігор - - - Settings - Налаштування - - - Utils - Утиліти - - - Themes - Теми - - - Help - Допомога - - - Dark - Темна - - - Light - Світла - - - Green - Зелена - - - Blue - Синя - - - Violet - Фіолетова - - - toolBar - Панель інструментів - - - Game List - Список ігор - - - Download Cheats For All Installed Games - Завантажити чити для усіх встановлених ігор - - - Download Patches For All Games - Завантажити патчі для всіх ігор - - - Download Complete - Завантаження завершено - - - You have downloaded cheats for all the games you have installed. - Ви завантажили чити для усіх встановлених ігор. - - - Patches Downloaded Successfully! - Патчі успішно завантажено! - - - All Patches available for all games have been downloaded. - Завантажено всі доступні патчі для всіх ігор. - - - Games: - Ігри: - - - ELF files (*.bin *.elf *.oelf) - Файли ELF (*.bin *.elf *.oelf) - - - Game Boot - Запуск гри - - - Only one file can be selected! - Можна вибрати лише один файл! - - - Run Game - Запустити гру - - - Eboot.bin file not found - Файл Boot.bin не знайдено - - - Game is already running! - Гра вже запущена! - - - shadPS4 - shadPS4 - - - Play - Грати - - - Pause - Пауза - - - Stop - Стоп - - - Restart - Перезапуск - - - Full Screen - На повний екран - - - Controllers - Контролери - - - Keyboard - Клавіатура - - - Refresh List - Оновити список - - - Resume - Продовжити - - - Show Labels Under Icons - Показати найменування під іконками - - - Customize Hotkeys - Персоналізувати гарячі клавіші - - - - SettingsDialog - - Settings - Налаштування - - - General - Загальні - - - System - Система - - - Console Language - Мова консолі - - - Emulator Language - Мова емулятора - - - Default tab when opening settings - Вкладка за замовчуванням при відкритті налаштувань - - - Show Game Size In List - Показати розмір гри у списку - - - Enable Discord Rich Presence - Увімкнути Discord Rich Presence - - - Username - Ім'я користувача - - - Trophy Key - Ключ трофеїв - - - Trophy - Трофеї - - - Open the custom trophy images/sounds folder - Відкрити папку користувацьких зображень трофеїв/звуків - - - Logger - Логування - - - Log Type - Тип логів - - - Log Filter - Фільтр логів - - - Open Log Location - Відкрити місце розташування журналу - - - Input - Введення - - - Cursor - Курсор миші - - - Hide Cursor - Приховати курсор - - - Hide Cursor Idle Timeout - Тайм-аут приховування курсора при бездіяльності - - - Microphone - Мікрофон - - - None - Ні - - - Default Device - Стандартний Пристрій - - - s - сек - - - Controller - Контролер - - - Graphics - Графіка - - - GUI - Інтерфейс - - - User - Користувач - - - Graphics Device - Графічний пристрій - - - Advanced - Розширені - - - Enable Shaders Dumping - Увімкнути дамп шейдерів - - - Enable NULL GPU - Увімкнути NULL GPU - - - Enable HDR - Увімкнути HDR - - - Paths - Шляхи - - - Game Folders - Ігрові папки - - - Add... - Додати... - - - Remove - Вилучити - - - Debug - Налагодження - - - Enable Debug Dumping - Увімкнути налагоджувальні дампи - - - Enable Vulkan Validation Layers - Увімкнути шари валідації Vulkan - - - Enable Vulkan Synchronization Validation - Увімкнути валідацію синхронізації Vulkan - - - Enable RenderDoc Debugging - Увімкнути налагодження RenderDoc - - - Enable Crash Diagnostics - Увімкнути діагностику збоїв - - - Collect Shaders - Збирати шейдери - - - Copy GPU Buffers - Копіювати буфери GPU - - - Host Debug Markers - Хостові маркери налагодження - - - Guest Debug Markers - Гостьові маркери налагодження - - - Enable Readbacks - Увімкнути відгуки - - - Enable Readback Linear Images - Увімкнути відгуки лінійних зображень - - - Update - Оновлення - - - Check for Updates at Startup - Перевіряти оновлення під час запуску - - - Always Show Changelog - Завжди показувати журнал змін - - - Update Channel - Канал оновлення - - - Check for Updates - Перевірити оновлення - - - Title Music - Титульна музика - - - Disable Trophy Notification - Вимкнути сповіщення про отримання трофею - - - Background Image - Фонове зображення - - - Show Background Image - Показувати фонове зображення - - - Opacity - Непрозорість - - - Play title music - Програвати титульну музику - - - Update Compatibility Database On Startup - Оновлення даних ігрової сумісності під час запуску - - - Game Compatibility - Сумісність з іграми - - - Display Compatibility Data - Відображати данні ігрової сумістністі - - - Update Compatibility Database - Оновити данні ігрової сумістності - - - Volume - Гучність - - - Save - Зберегти - - - Apply - Застосувати - - - Restore Defaults - За замовчуванням - - - Close - Закрити - - - 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Рекомендується встановити мову котра підтримується грою, оскільки вона може відрізнятися в залежності від регіону. - - - Emulator Language:\nSets the language of the emulator's user interface. - Мова емулятора:\nВстановіть мову користувацького інтерфейсу емулятора. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Показувати заставку:\nВідображає заставку гри (спеціальне зображення) під час запуску гри. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Увімкнути Discord Rich Presence:\nВідображає значок емулятора та відповідну інформацію у вашому профілі Discord. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Ім'я користувача:\nВстановіть ім'я користувача акаунта PS4. Воно може відображатися в деяких іграх. - - - 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Встановіть, чи синхронізувати виведення вікна логів заради продуктивності. Це може негативно вплинути на емуляцію. - - - 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 - у цьому порядку, конкретний рівень глушить усі попередні рівні у списку і показує всі наступні рівні. - - - 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. - Оновлення:\nРелізний: Офіційні версії, які випускаються щомісяця і можуть бути дуже старими, але вони більш надійні та перевірені.\nТестовий: Версії для розробників, які мають усі найновіші функції та виправлення, але можуть містити помилки та є менш стабільними. - - - 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Вмикає відтворення спеціальної музики під час вибору гри в списку, якщо вона це підтримує. - - - 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Завжди: Курсор миші завжди буде прихований. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Встановіть час, через який курсор зникне в разі бездіяльності. - - - 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. - Оновлення даних ігрової сумісності під час запуску:\nАвтоматично оновлює базу даних ігрової сумісності під час запуску shadPS4. - - - Update Compatibility Database:\nImmediately update the compatibility database. - Оновити данні ігрової сумістності:\nНегайно оновить базу даних ігрової сумісності. - - - Never - Ніколи - - - Idle - При бездіяльності - - - Always - Завжди - - - 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або виберіть "Автовибір", щоб визначити його автоматично. - - - 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Це відрізняється від роздільної здатності в грі. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Увімкнути дамп шейдерів:\nДля технічного налагодження зберігає шейдери ігор у папку під час рендерингу. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Увімкнути NULL 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. - Увімкнути HDR:\nУвімкнути HDR в іграх, які його підтримують.\nВаш монітор повинен мати колірний простір BT2020 PQ та формат swapchain RGB10A2. - - - Game Folders:\nThe list of folders to check for installed games. - Ігрові папки:\nСписок папок, що скануватимуться для виявлення ігор. - - - Add:\nAdd a folder to the list. - Додати:\nДодати папку в список. - - - Remove:\nRemove a folder from the list. - Вилучити:\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 у папку. - - - 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, даючи змогу захоплювати й аналізувати поточні кадри під час рендерингу. - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - Збирати шейдери:\nВам потрібно увімкнути цю опцію, щоб редагувати шейдери за допомогою меню налагодження (Ctrl + F10). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Увімкнути відгуки:\nувімкнути відгуки та запис пам'яті GPU\nЦе потрібно для коректної поведінки у деяких іграх.\nМоже спричинити проблеми зі стабільністю та/або продуктивністю. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Увімкнути відгуки лінійних зображень:\nУвімкнути асинхронне завантаження зображень, модифікованих GPU.\nМоже виправити проблеми у деяких іграх. - - - 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. - Хостові маркери налагодження:\nДодає інформацію емулятора, наприклад маркери для конкретних команд AMDGPU у Vulkan, також присвоює ресурсам налагоджувані назви.\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. - Гостьові маркери налагодження:\nВставляє налагоджувані маркери, які сама гра додала до командного буфера.\nЯкщо ця опція увімкнена, рекомендується також активувати діагностику збоїв.\nКорисно для програм на кшталт RenderDoc. - - - 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. - Вибрати:\nВиберіть папку для ігрових збережень. - - - Release - Релізний - - - Nightly - Тестовий - - - Set the volume of the background music. - Налаштування гучності фонової музики. - - - Enable Motion Controls - Увімкнути керування рухом - - - Save Data Path - Шлях до файлів збережень - - - Browse - Обрати - - - async - Асинхронний - - - sync - Синхронний - - - Auto Select - Автовибір - - - Directory to install games - Папка для встановлення ігор - - - Directory to save data - Папка для збереження даних - - - Video - Відео - - - Display Mode - Режим відображення - - - Windowed - У вікні - - - Fullscreen - Повноекранний - - - Fullscreen (Borderless) - Повний екран (без рамок) - - - Window Size - Розмір вікна - - - W: - Висота: - - - H: - Ширина: - - - Separate Log Files - Окремі файли журналу - - - Separate Log Files:\nWrites a separate logfile for each game. - Окремі файли журналу:\nЗаписує окремий файл журналу для кожної гри. - - - Trophy Notification Position - Розміщення сповіщень про трофеї - - - Left - Ліворуч - - - Right - Праворуч - - - Top - Вгорі - - - Bottom - Внизу - - - Notification Duration - Тривалість сповіщення - - - Portable 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. - Портативна папка користувача:\nЗберігає налаштування та дані shadPS4, які будуть застосовані лише до збірки shadPS4, розташованої у поточній теці. Перезапустіть програму після створення портативної теки користувача, щоб почати користуватися нею. - - - Cannot create portable user folder - Не вдалося створити портативну папку користувача - - - %1 already exists - %1 вже існує - - - Portable user folder 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. - Відкрити папку користувацьких зображень трофеїв/звуків:\nВи можете додати користувацькі зображення до трофеїв та звук.\nДодайте файли до теки custom_trophy з такими назвами:\ntrophy.wav АБО trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nПримітка: Звук буде працювати лише у версіях ShadPS4 з графічним інтерфейсом. - - - * Unsupported Vulkan Version - * Непідтримувана версія Vulkan - - - Experimental Features - Експериментальні функції - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - ПОПЕРЕДЖЕННЯ: Ці функції є експериментальними і не повинні бути ввімкнені, якщо вам не було сказано про це, або якщо цього вимагає гра. Будь ласка, запитуйте на Discord сервері shadPS4, якщо у вас виникнуть запитання. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Трофеї - - - Select Game: - Виберіть гру: - - - Progress - Прогрес - - - Show Earned Trophies - Показати отримані трофеї - - - Show Not Earned Trophies - Показати не отримані трофеї - - - Show Hidden Trophies - Показати приховані трофеї - - - diff --git a/src/qt_gui/translations/ur_PK.ts b/src/qt_gui/translations/ur_PK.ts deleted file mode 100644 index 5fabf78f7..000000000 --- a/src/qt_gui/translations/ur_PK.ts +++ /dev/null @@ -1,2461 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - shadPS4 کے بارے میں - - - 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. - اس سافٹ ویئر کو ایسی گیمز کھیلنے کے لیے استعمال نہ کریں جو آپ نے قانونی طور پر حاصل نہیں کی ہیں۔ - - - - 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 - - - No Image Available - کوئی تصویر دستیاب نہیں - - - Serial: - Serial: - - - Version: - Version: - - - Size: - Size: - - - Select Cheat File: - Select Cheat File: - - - Repository: - Repository: - - - Download Cheats - چیٹس ڈاؤن لوڈ کریں - - - Delete File - فائل حذف کریں - - - 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 - کیا آپ منتخب کردہ فائل کو حذف کرنا چاہتے ہیں؟\n%1 - - - Select Patch File: - پیچ فائل منتخب کریں: - - - Download Patches - پیچز ڈاؤن لوڈ کریں - - - Save - محفوظ کریں - - - Cheats - چیٹس - - - Patches - پیچز - - - Error - خرابی - - - 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 - کامیابی - - - Options saved successfully. - Options saved successfully. - - - Invalid Source - Invalid Source - - - The selected source is invalid. - The selected source is invalid. - - - File Exists - فائل موجود ہے - - - 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 - ڈاؤن لوڈ مکمل ہو گئی - - - 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. - آپ کو اپنی گیم اپ ڈیٹ کرنے کی ضرورت ہو سکتی ہے۔ - - - Incompatibility Notice - Incompatibility Notice - - - 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: - نام: - - - Can't apply cheats before the game is started - گیم شروع ہونے سے پہلے چیٹس لاگو نہیں کی جا سکتیں - - - Close - بند کریں - - - - CheckUpdate - - Auto Updater - آٹو اپڈیٹر - - - Error - خرابی - - - Network error: - نیٹ ورک میں خرابی - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - آٹو اپڈیٹر ہر گھنٹے میں زیادہ سے زیادہ 60 اپڈیٹ چیکس کی اجازت دیتا ہے۔\nآپ اس حد تک پہنچ چکے ہیں۔ براہ کرم کچھ دیر بعد کوشش کیجیے۔ - - - Failed to parse update information. - اپ ڈیٹ کی معلومات پڑھنے میں ناکامی ہوئی۔ - - - No pre-releases found. - کوئی پری ریلیز نہیں ملی۔ - - - Invalid release data. - ریلیز کا ڈیٹا درست نہیں ہے۔ - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>نوٹ:</b><br><br> ورژن <b>0.12.0</b> سے، ایمولیٹر کا Qt ورژن براہِ راست اپ ڈیٹس حاصل نہیں کرے گا۔<br><br> تاہم، Qt انٹرفیس نیا سرکاری لانچر کے ذریعے دستیاب رہے گا:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – جو اصل shadPS4 سورس کوڈ پر مبنی ہے۔<br><br> ہم تجویز کرتے ہیں کہ اپ ڈیٹس وصول کرنا جاری رکھنے کے لیے اس لانچر پر منتقل ہوجائیں۔ - - - Your version is already up to date! - آپ کا ورژن پہلے سے ہی تازہ ترین ہے! - - - Update Available - نئی اپ ڈیٹ دستیاب ہے - - - Update Channel - اپ ڈیٹس کا چینل - - - Current Version - موجودہ ورژن - - - Latest Version - تازہ ترین ورژن - - - Do you want to update? - کیا آپ اپ ڈیٹ کرنا چاہتے ہیں؟ - - - Show Changelog - Show Changelog - - - Check for Updates at Startup - Check for Updates at Startup - - - Update - اپ ڈیٹ - - - No - نہیں - - - Hide Changelog - تبدیلیوں کی فہرست چھپائیں - - - Changes - تبدیلیاں - - - Network error occurred while trying to access the URL - URL تک رسائی کی کوشش کے دوران نیٹ ورک کی خرابی پیش آ گئی - - - Download Complete - ڈاؤن لوڈ مکمل ہو گئی - - - The update has been downloaded, press OK to install. - اپ ڈیٹ ڈاؤن لوڈ ہو گئی ہے، انسٹال کرنے کے لیے OK دبائیں۔ - - - Failed to save the update file at - Failed to save the update file at - - - 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 - کینسل کریں - - - 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 - کچھ نہیں - - - Boots - Boots - - - Menus - مینوز - - - Ingame - گیم کے اندر - - - 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 - - - Face Buttons - Face Buttons - - - 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 - - - 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 - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - 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 - - - Favorite - Favorite - - - - 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 Game - گیم حذف کریں - - - Delete Update - اپ ڈیٹ حذف کریں - - - Delete DLC - Delete DLC - - - Delete Trophy - Delete Trophy - - - Compatibility... - Compatibility... - - - Shortcut creation - Shortcut creation - - - Shortcut created successfully! - Shortcut created successfully! - - - Error - Error - - - Error creating shortcut! - Error creating shortcut! - - - Game - گیم - - - This game has no update to delete! - اس گیم کے پاس حذف کرنے کے لیے کوئی اپ ڈیٹ موجود نہیں ہے۔ - - - Update - اپ ڈیٹ - - - This game has no DLC to delete! - اس گیم کا کوئی DLC حذف کرنے کے لیے موجود نہیں ہے۔ - - - 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 - اپ ڈیٹ فولڈر کھولیں - - - Delete Save Data - سیو ڈیٹا حذف کریں - - - This game has no update folder to open! - اس گیم کا کوئی اپ ڈیٹ فولڈر کھولنے کے لیے موجود نہیں ہے! - - - No log file found for this game! - اس گیم کے لیے کوئی لاگ فائل نہیں ملی! - - - 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 - سیو ڈیٹا - - - Trophy - ٹرافی - - - SFO Viewer for - SFO Viewer for - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - FAQ - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - 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 - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Settings - - - General - General - - - System - System - - - Console Language - Console Language - - - Emulator Language - Emulator Language - - - Default tab when opening settings - Default tab when opening settings - - - Show Game Size In List - Show Game Size In List - - - 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 - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Controller - - - Graphics - Graphics - - - GUI - GUI - - - User - User - - - Graphics Device - Graphics Device - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - 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 - - - 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. - کسی آپشن کی تفصیل ظاہر کرنے کے لیے ماؤس اس پر لے جائیں۔ - - - 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. - - - 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 - - - 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. - - - 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 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - 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/vi_VN.ts b/src/qt_gui/translations/vi_VN.ts deleted file mode 100644 index 30fefc371..000000000 --- a/src/qt_gui/translations/vi_VN.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - Về shadPS4 - - - shadPS4 is an experimental open-source emulator for the PlayStation 4. - shadPS4 là một trình giả lập thử nghiệm mã nguồn mở cho PlayStation 4. - - - This software should not be used to play games you have not legally obtained. - Không sử dụng phần mềm này để chơi những trò chơi mà bạn không sở hữu một cách hợp pháp. - - - - CheatsPatches - - Cheats / Patches for - Cheats / Patches cho - - - 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 là các tính năng thử nghiệm.\nHãy sử dụng cẩn thận.\n\nTải xuống các cheat riêng lẻ bằng cách chọn kho lưu trữ và nhấp vào nút tải xuống.\nTại tab Patches, bạn có thể tải xuống tất cả các patch cùng một lúc, chọn cái nào bạn muốn sử dụng và lưu lựa chọn của mình.\n\nVì chúng tôi không phát triển Cheats/Patches,\nxin vui lòng báo cáo các vấn đề cho tác giả cheat.\n\nBạn đã tạo ra một cheat mới? Truy cập:\n - - - No Image Available - Không có hình ảnh - - - Serial: - Số seri: - - - Version: - Phiên bản: - - - Size: - Kích thước: - - - Select Cheat File: - Chọn tệp Cheat: - - - Repository: - Kho lưu trữ: - - - Download Cheats - Tải xuống Cheat - - - Delete File - Xóa tệp - - - No files selected. - Không có tệp nào được chọn. - - - You can delete the cheats you don't want after downloading them. - Bạn có thể xóa các cheat không muốn sau khi tải xuống. - - - Do you want to delete the selected file?\n%1 - Bạn có muốn xóa tệp đã chọn?\n%1 - - - Select Patch File: - Chọn tệp Bản vá: - - - Download Patches - Tải xuống Bản vá - - - Save - Lưu - - - Cheats - Cheat - - - Patches - Bản vá - - - Error - Lỗi - - - No patch selected. - Không có bản vá nào được chọn. - - - Unable to open files.json for reading. - Không thể mở files.json để đọc. - - - No patch file found for the current serial. - Không tìm thấy tệp bản vá cho số seri hiện tại. - - - Unable to open the file for reading. - Không thể mở tệp để đọc. - - - Unable to open the file for writing. - Không thể mở tệp để ghi. - - - Failed to parse XML: - Không thể phân tích XML: - - - Success - Thành công - - - Options saved successfully. - Các tùy chọn đã được lưu thành công. - - - Invalid Source - Nguồn không hợp lệ - - - The selected source is invalid. - Nguồn đã chọn không hợp lệ. - - - File Exists - Tệp đã tồn tại - - - File already exists. Do you want to replace it? - Tệp đã tồn tại. Bạn có muốn thay thế nó không? - - - Failed to save file: - Không thể lưu tệp: - - - Failed to download file: - Không thể tải xuống tệp: - - - Cheats Not Found - Không tìm thấy Cheat - - - No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game. - Không tìm thấy Cheat cho trò chơi này trong phiên bản kho lưu trữ đã chọn,hãy thử kho lưu trữ khác hoặc phiên bản khác của trò chơi. - - - Cheats Downloaded Successfully - Cheat đã tải xuống thành công - - - 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. - Bạn đã tải xuống các cheat thành công. Cho phiên bản trò chơi này từ kho lưu trữ đã chọn. Bạn có thể thử tải xuống từ kho lưu trữ khác, nếu có, bạn cũng có thể sử dụng bằng cách chọn tệp từ danh sách. - - - Failed to save: - Không thể lưu: - - - Failed to download: - Không thể tải xuống: - - - Download Complete - Tải xuống hoàn tất - - - 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. - Bản vá đã tải xuống thành công! Tất cả các bản vá có sẵn cho tất cả các trò chơi đã được tải xuống, không cần tải xuống riêng lẻ cho mỗi trò chơi như trong Cheat. Nếu bản vá không xuất hiện, có thể là nó không tồn tại cho số seri và phiên bản cụ thể của trò chơi. - - - Failed to parse JSON data from HTML. - Không thể phân tích dữ liệu JSON từ HTML. - - - Failed to retrieve HTML page. - Không thể lấy trang HTML. - - - The game is in version: %1 - Trò chơi đang ở phiên bản: %1 - - - The downloaded patch only works on version: %1 - Patch đã tải về chỉ hoạt động trên phiên bản: %1 - - - You may need to update your game. - Bạn có thể cần cập nhật trò chơi của mình. - - - Incompatibility Notice - Thông báo không tương thích - - - Failed to open file: - Không thể mở tệp: - - - XML ERROR: - LỖI XML: - - - Failed to open files.json for writing - Không thể mở files.json để ghi - - - Author: - Tác giả: - - - Directory does not exist: - Thư mục không tồn tại: - - - Failed to open files.json for reading. - Không thể mở files.json để đọc. - - - Name: - Tên: - - - Can't apply cheats before the game is started - Không thể áp dụng cheat trước khi trò chơi bắt đầu. - - - Close - Đóng - - - - CheckUpdate - - Auto Updater - Trình cập nhật tự động - - - Error - Lỗi - - - Network error: - Lỗi mạng: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - Trình cập nhật tự động cho phép tối đa 60 lần kiểm tra cập nhật mỗi giờ.\nBạn đã đạt đến giới hạn này. Vui lòng thử lại sau. - - - Failed to parse update information. - Không thể phân tích thông tin cập nhật. - - - No pre-releases found. - Không tìm thấy bản phát hành trước. - - - Invalid release data. - Dữ liệu bản phát hành không hợp lệ. - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>Thông báo:</b><br><br> Bắt đầu từ phiên bản <b>0.12.0</b>, phiên bản Qt của trình giả lập sẽ không còn nhận cập nhật trực tiếp nữa.<br><br> Tuy nhiên, giao diện Qt vẫn có sẵn qua trình khởi chạy chính thức mới:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – dựa trên mã nguồn gốc của shadPS4.<br><br> Chúng tôi khuyến nghị bạn chuyển sang trình khởi chạy này để tiếp tục nhận cập nhật. - - - Your version is already up to date! - Phiên bản của bạn đã được cập nhật! - - - Update Available - Có bản cập nhật - - - Update Channel - Kênh Cập Nhật - - - Current Version - Phiên bản hiện tại - - - Latest Version - Phiên bản mới nhất - - - Do you want to update? - Bạn có muốn cập nhật không? - - - Show Changelog - Hiện nhật ký thay đổi - - - Check for Updates at Startup - Kiểm tra cập nhật khi khởi động - - - Update - Cập nhật - - - No - Không - - - Hide Changelog - Ẩn nhật ký thay đổi - - - Changes - Thay đổi - - - Network error occurred while trying to access the URL - Xảy ra lỗi mạng khi cố gắng truy cập URL - - - Download Complete - Tải xuống hoàn tất - - - The update has been downloaded, press OK to install. - Bản cập nhật đã được tải xuống, nhấn OK để cài đặt. - - - Failed to save the update file at - Không thể lưu tệp cập nhật tại - - - Starting Update... - Đang bắt đầu cập nhật... - - - Failed to create the update script file - Không thể tạo tệp kịch bản cập nhật - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - Đang tải dữ liệu tương thích, vui lòng chờ - - - Cancel - Hủy bỏ - - - Loading... - Đang tải... - - - Error - Lỗi - - - Unable to update compatibility data! Try again later. - Không thể cập nhật dữ liệu tương thích! Vui lòng thử lại sau. - - - Unable to open compatibility_data.json for writing. - Không thể mở compatibility_data.json để ghi. - - - Unknown - Không xác định - - - Nothing - Không chạy được - - - Boots - Chạy được - - - Menus - Vào được menu - - - Ingame - Vào được trò chơi - - - Playable - Chơi được - - - - ControlSettings - - Configure Controls - Cấu hình điều khiển - - - D-Pad - D-Pad - - - Up - Lên - - - Left - Trái - - - Right - Phải - - - Down - Xuống - - - Left Stick Deadzone (def:2 max:127) - Deadzone cần bên trái (def:2 max:127) - - - Left Deadzone - Deadzone bên trái - - - Left Stick - Cần bên trái - - - Config Selection - Chọn cấu hình - - - Common Config - Cài Đặt Chung - - - Use per-game configs - Cấu hình riêng cho từng game - - - Face Buttons - Nút bấm mặt trước - - - 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 - - - Override Lightbar Color - Override Lightbar Color - - - Override Color - Override Color - - - Unable to Save - Không thể lưu - - - Cannot bind axis values more than once - Cannot bind axis values more than once - - - Save - Lưu - - - Apply - Áp dụng - - - Restore Defaults - Khôi Phục Mặc Định - - - Cancel - Hủy - - - unmapped - chưa cài đặt nút điều khiển - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - Tùy chỉnh phím được gán cho Bàn phím + Chuột và Tay cầm - - - Use Per-Game configs - Use Per-Game configs - - - Error - Lỗi - - - 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 - Lưu Thay Đổi - - - Do you want to save changes? - Bạn có muốn lưu thay đổi? - - - Help - Trợ giúp - - - 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 - Chọn thư mục - - - Directory to install games - Thư mục để cài các trò chơi - - - Browse - Duyệt - - - Error - Lỗi - - - Directory to install DLC - Thư mục để cài DLC - - - - GameListFrame - - Icon - Biểu tượng - - - Name - Tên - - - Serial - Số seri - - - Compatibility - Khả năng tương thích - - - Region - Khu vực - - - Firmware - Phần mềm - - - Size - Kích thước - - - Version - Phiên bản - - - Path - Đường dẫn - - - Play Time - Thời gian chơi - - - Never Played - Chưa chơi - - - h - giờ - - - m - phút - - - s - giây - - - Compatibility is untested - Chưa kiểm tra khả năng tương thích - - - Game does not initialize properly / crashes the emulator - Trò chơi không được khởi chạy đúng cách / khiến giả lập bị văng - - - Game boots, but only displays a blank screen - Trò chơi có thể khởi chạy, nhưng chẳng hiện gì cả - - - Game displays an image but does not go past the menu - Trò chơi hiển thị được hình ảnh, nhưng không thể tiếp tục từ menu - - - Game has game-breaking glitches or unplayable performance - Trò chơi có lỗi ảnh hưởng đến trải nghiệm, hoặc hiệu năng khi chơi không ổn định - - - Game can be completed with playable performance and no major glitches - Trò chơi có thể được hoàn thành từ đầu đến cuối, hiệu năng ổn định và không có lỗi ảnh hưởng đến trải nghiệm - - - Click to see details on github - Nhấp để xem chi tiết trên GitHub - - - Last updated - Cập nhật lần cuối - - - Favorite - Favorite - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - Tạo phím tắt - - - Cheats / Patches - Mẹo / Bản vá - - - SFO Viewer - Trình xem SFO - - - Trophy Viewer - Trình xem chiến tích - - - Open Folder... - Mở Thư Mục... - - - Open Game Folder - Mở Thư Mục Trò Chơi - - - Open Save Data Folder - Mở Thư Mục Dữ Liệu Lưu - - - Open Log Folder - Mở Thư Mục Nhật Ký - - - Copy info... - Sao chép thông tin... - - - Copy Name - Sao chép tên - - - Copy Serial - Copy Serial - - - Copy Version - Copy Version - - - Copy Size - Kích thước bản sao - - - Copy All - Sao chép tất cả - - - Delete... - Xoá... - - - Delete Game - Xóa trò chơi - - - Delete Update - Xóa bản cập nhật - - - Delete DLC - Xoá DLC - - - Delete Trophy - Xóa cúp - - - Compatibility... - Khả năng tương thích... - - - Shortcut creation - Tạo phím tắt - - - Shortcut created successfully! - Phím tắt đã được tạo thành công! - - - Error - Lỗi - - - Error creating shortcut! - Lỗi khi tạo phím tắt! - - - Game - Trò chơi - - - This game has no update to delete! - Trò chơi này không có bản cập nhật nào để xóa! - - - Update - Cập nhật - - - This game has no DLC to delete! - Trò chơi này không có DLC nào để xóa! - - - DLC - DLC - - - Delete %1 - Xóa %1 - - - Are you sure you want to delete %1's %2 directory? - Bạn có muốn xoá thư mục %1's %2 không? - - - Open Update Folder - Mở thư mục Cập nhật - - - Delete Save Data - Xóa Lưu Dữ Liệu - - - This game has no update folder to open! - Trò chơi này không có thư mục Cập nhật nào để mở! - - - 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 - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - Quickstart - - - FAQ - Các câu hỏi thường gặp - - - Syntax - Syntax - - - Special Bindings - Special Bindings - - - Keybindings - Keybindings - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - 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 - - - Text Editor - Text Editor - - - Help - Help - - - Mouse to Joystick - Mouse to Joystick - - - *press F7 ingame to activate - *press F7 ingame to activate - - - 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 - - - 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 - Lưu - - - Apply - Áp dụng - - - Restore Defaults - Khôi Phục Mặc Định - - - Cancel - Hủy - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - Open/Add Elf Folder - - - Boot Game - Khởi Chạy Trò Chơi - - - Check for Updates - Kiểm tra bản cập nhật - - - About shadPS4 - Thông Tin Về shadPS4 - - - Configure... - Configure... - - - Recent Games - Recent Games - - - Open shadPS4 Folder - Mở Thư Mục Của shadPS4 - - - Exit - Thoát - - - Exit shadPS4 - Thoát shadPS4 - - - Exit the application. - Thoát ứng dụng. - - - Show Game List - Hiển Thị Danh Sách Trò Chơi - - - 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 - Tải Mẹo / Bản vá - - - 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 - Giúp đỡ - - - Dark - Dark - - - Light - Light - - - Green - Green - - - Blue - Blue - - - Violet - Violet - - - toolBar - toolBar - - - Game List - Danh sách trò chơi - - - Download Cheats For All Installed Games - Tải xuống cheat cho tất cả các trò chơi đã cài đặt - - - Download Patches For All Games - Tải xuống bản vá cho tất cả các trò chơi - - - Download Complete - Tải xuống hoàn tất - - - You have downloaded cheats for all the games you have installed. - Bạn đã tải xuống cheat cho tất cả các trò chơi mà bạn đã cài đặt. - - - Patches Downloaded Successfully! - Bản vá đã tải xuống thành công! - - - All Patches available for all games have been downloaded. - Tất cả các bản vá có sẵn cho tất cả các trò chơi đã được tải xuống. - - - Games: - Trò chơi: - - - ELF files (*.bin *.elf *.oelf) - Tệp ELF (*.bin *.elf *.oelf) - - - Game Boot - Khởi động trò chơi - - - Only one file can be selected! - Chỉ có thể chọn một tệp duy nhất! - - - 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 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - Cài đặt - - - General - Chung - - - System - Hệ thống - - - Console Language - Ngôn ngữ của console - - - Emulator Language - Ngôn ngữ trình giả lập - - - Default tab when opening settings - Tab mặc định khi mở cài đặt - - - Show Game Size In List - Hiển thị Kích thước Game trong Danh sách - - - Enable Discord Rich Presence - Bật Discord Rich Presence - - - Username - Tên người dùng - - - 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 - Mở vị trí nhật ký - - - Input - Đầu vào - - - Cursor - Con trỏ - - - Hide Cursor - Ẩn con trỏ - - - Hide Cursor Idle Timeout - Thời gian chờ ẩn con trỏ - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - s - - - Controller - Điều khiển - - - Graphics - Đồ họa - - - GUI - Giao diện - - - User - Người dùng - - - Graphics Device - Thiết bị đồ họa - - - Advanced - Nâng cao - - - Enable Shaders Dumping - Enable Shaders Dumping - - - Enable NULL GPU - Enable NULL GPU - - - Enable HDR - Enable HDR - - - Paths - Đường dẫn - - - Game Folders - Thư mục trò chơi - - - Add... - Thêm... - - - Remove - Xóa - - - Debug - Gỡ lỗi - - - 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 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - Cập nhật - - - Check for Updates at Startup - Kiểm tra cập nhật khi khởi động - - - Always Show Changelog - Luôn hiển thị nhật ký thay đổi - - - Update Channel - Kênh Cập Nhật - - - Check for Updates - Kiểm tra cập nhật - - - Title Music - Title Music - - - Disable Trophy Notification - Disable Trophy Notification - - - Background Image - Hình nền - - - Show Background Image - Hiển thị hình nền - - - Opacity - Độ mờ đục - - - Play title music - Phát nhạc tiêu đề - - - Update Compatibility Database On Startup - Cập nhật cơ sở dữ liệu tương thích khi khởi động - - - Game Compatibility - Khả năng tương thích của trò chơi - - - Display Compatibility Data - Hiển thị dữ liệu tương thích - - - Update Compatibility Database - Cập nhật cơ sở dữ liệu tương thích - - - Volume - Âm lượng - - - Save - Lưu - - - Apply - Áp dụng - - - Restore Defaults - Khôi phục cài đặt mặc định - - - Close - Đóng - - - Point your mouse at an option to display its description. - Di chuyển chuột đến tùy chọn để hiển thị mô tả của nó. - - - 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. - Ngôn ngữ console:\nChọn ngôn ngữ mà trò chơi PS4 sẽ sử dụng.\nKhuyên bạn nên đặt tùy chọn này thành một ngôn ngữ mà trò chơi hỗ trợ, có thể thay đổi tùy theo vùng. - - - Emulator Language:\nSets the language of the emulator's user interface. - Ngôn ngữ của trình giả lập:\nChọn ngôn ngữ của giao diện người dùng của trình giả lập. - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - Hiển thị màn hình khởi động:\nHiển thị màn hình khởi động của trò chơi (một hình ảnh đặc biệt) trong khi trò chơi khởi động. - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - Bật Discord Rich Presence:\nHiển thị biểu tượng trình giả lập và thông tin liên quan trên hồ sơ Discord của bạn. - - - Username:\nSets the PS4's account username, which may be displayed by some games. - Tên người dùng:\nChọn tên người dùng của tài khoản PS4, có thể được một số trò chơi hiển thị. - - - 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. - Loại nhật ký:\nChọn xem có đồng bộ hóa đầu ra cửa sổ nhật ký cho hiệu suất hay không. Điều này có thể có tác động tiêu cực đến việc giả lập. - - - 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. - Bộ lọc nhật ký:\nLọc nhật ký để in chỉ thông tin cụ thể.\nVí dụ: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical" Các mức: Trace, Debug, Info, Warning, Error, Critical - theo thứ tự này, một mức cụ thể làm tắt tất cả các mức trước trong danh sách và ghi lại tất cả các mức sau đó. - - - 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. - Cập nhật:\nRelease: Các phiên bản chính thức được phát hành hàng tháng; có thể khá cũ nhưng đáng tin cậy hơn và đã được thử nghiệm.\nNightly: Các phiên bản phát triển có tất cả các tính năng và sửa lỗi mới nhất; có thể có lỗi và ít ổn định hơn. - - - 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. - Phát nhạc tiêu đề trò chơi:\nNếu một trò chơi hỗ trợ điều này, hãy kích hoạt phát nhạc đặc biệt khi bạn chọn trò chơi trong 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. - Ẩn con trỏ:\nChọn khi nào con trỏ sẽ biến mất:\nKhông bao giờ: Bạn sẽ luôn thấy chuột.\nKhông hoạt động: Đặt một khoảng thời gian để nó biến mất sau khi không hoạt động.\nLuôn luôn: bạn sẽ không bao giờ thấy chuột. - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - Đặt thời gian để chuột biến mất sau khi không hoạt động. - - - 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 - Không bao giờ - - - Idle - Nhàn rỗi - - - Always - Luôn luôn - - - 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. - Thiết bị đồ họa:\nTrên các hệ thống có GPU đa năng, hãy chọn GPU mà trình giả lập sẽ sử dụng từ danh sách thả xuống,\hoặc chọn "Auto Select" để tự động xác định. - - - 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. - Chiều rộng/Cao:\nChọn kích thước cửa sổ của trình giả lập khi khởi động, có thể điều chỉnh trong quá trình chơi.\nĐiều này khác với độ phân giải trong trò chơi. - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - Bật xuất shader:\nĐể mục đích gỡ lỗi kỹ thuật, lưu shader của trò chơi vào một thư mục khi chúng được kết xuất. - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - Bật GPU Null:\nĐể mục đích gỡ lỗi kỹ thuật, vô hiệu hóa việc kết xuất trò chơi như thể không có card đồ họa. - - - 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. - Thư mục trò chơi:\nDanh sách các thư mục để kiểm tra các trò chơi đã cài đặt. - - - Add:\nAdd a folder to the list. - Thêm:\nThêm một thư mục vào danh sách. - - - Remove:\nRemove a folder from the list. - Xóa:\nXóa một thư mục khỏi danh sách. - - - Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory. - Bật xuất gỡ lỗi:\nLưu biểu tượng nhập và xuất và thông tin tiêu đề tệp cho ứng dụng PS4 hiện đang chạy vào một thư mục. - - - Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame. - Bật gỡ lỗi RenderDoc:\nNếu được kích hoạt, trình giả lập sẽ cung cấp tính tương thích với Renderdoc để cho phép bắt và phân tích khung hình hiện tại đang được kết xuất. - - - 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). - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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. - Đặt âm lượng nhạc nền - - - Enable Motion Controls - Bật điều khiển bằng cử chỉ - - - Save Data Path - Đường dẫn để lưu dữ liệu - - - Browse - Duyệt - - - async - async - - - sync - sync - - - Auto Select - Chọn tự động - - - Directory to install games - Thư mục để cài các trò chơi - - - Directory to save data - Thư mục để lưu dữ liệu - - - 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. - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - Trình xem chiến tích - - - 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_CN.ts b/src/qt_gui/translations/zh_CN.ts deleted file mode 100644 index 9753c28ec..000000000 --- a/src/qt_gui/translations/zh_CN.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - 关于 shadPS4 - - - 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. - 本软件不得用于运行未经合法授权而获得的游戏。 - - - - CheatsPatches - - 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 - - - No Image Available - 没有可用的图片 - - - Serial: - 序列号: - - - Version: - 版本: - - - Size: - 大小: - - - Select Cheat File: - 选择作弊码文件: - - - Repository: - 存储库: - - - Download Cheats - 下载作弊码 - - - Delete File - 删除文件 - - - 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 - - - Select Patch File: - 选择补丁文件: - - - Download Patches - 下载补丁 - - - Save - 保存 - - - Cheats - 作弊码 - - - Patches - 补丁 - - - Error - 错误 - - - No patch selected. - 没有选择补丁。 - - - Unable to open files.json for reading. - 无法打开 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 失败: - - - Success - 成功 - - - Options saved successfully. - 选项已成功保存。 - - - Invalid Source - 无效的来源 - - - The selected source is invalid. - 选择的来源无效。 - - - File Exists - 文件已存在 - - - 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 - 下载完成 - - - 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 数据。 - - - Failed to retrieve HTML page. - 无法获取 HTML 页面。 - - - The game is in version: %1 - 游戏版本:%1 - - - The downloaded patch only works on version: %1 - 下载的补丁仅适用于版本:%1 - - - You may need to update your game. - 您可能需要更新您的游戏。 - - - Incompatibility Notice - 不兼容通知 - - - Failed to open file: - 无法打开文件: - - - XML ERROR: - XML 错误: - - - Failed to open files.json for writing - 无法打开 files.json 进行写入 - - - Author: - 作者: - - - Directory does not exist: - 目录不存在: - - - Failed to open files.json for reading. - 无法打开 files.json 进行读取。 - - - Name: - 名称: - - - Can't apply cheats before the game is started - 在游戏启动之前无法应用作弊码。 - - - Close - 关闭 - - - - CheckUpdate - - Auto Updater - 自动更新程序 - - - Error - 错误 - - - Network error: - 网络错误: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - 自动更新程序每小时最多允许 60 次更新检查。\n您已达到此限制。请稍后再试。 - - - Failed to parse update information. - 无法解析更新信息。 - - - No pre-releases found. - 未找到预发布版本。 - - - Invalid release data. - 无效的发布数据。 - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>注意:</b><br><br> 从版本 <b>0.12.0</b> 起,模拟器的 Qt 版本将不再接收直接更新。<br><br> 但是,Qt 接口仍可通过新的官方启动器使用:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – 基于原始 shadPS4 源代码。<br><br> 我们建议切换到此启动器,以继续接收更新。 - - - Your version is already up to date! - 您的版本已经是最新的! - - - Update Available - 可用更新 - - - Update Channel - 更新频道 - - - Current Version - 当前版本 - - - Latest Version - 最新版本 - - - Do you want to update? - 您想要更新吗? - - - Show Changelog - 显示更新日志 - - - Check for Updates at Startup - 启动时检查更新 - - - Update - 更新 - - - No - - - - Hide Changelog - 隐藏更新日志 - - - Changes - 更新日志 - - - Network error occurred while trying to access the URL - 尝试访问网址时发生网络错误 - - - Download Complete - 下载完成 - - - The update has been downloaded, press OK to install. - 更新已下载,请按 OK 安装。 - - - Failed to save the update file at - 无法保存更新文件到 - - - Starting Update... - 正在开始更新... - - - Failed to create the update script file - 无法创建更新脚本文件 - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - 正在获取兼容性数据,请稍等 - - - Cancel - 取消 - - - Loading... - 加载中... - - - Error - 错误 - - - Unable to update compatibility data! Try again later. - 无法更新兼容性数据!稍后再试。 - - - Unable to open compatibility_data.json for writing. - 无法打开 compatibility_data.json 进行写入。 - - - Unknown - 未知 - - - Nothing - 无法启动 - - - Boots - 可启动 - - - Menus - 可进入菜单 - - - Ingame - 可进入游戏内 - - - Playable - 可通关 - - - - ControlSettings - - Configure Controls - 配置按键 - - - D-Pad - 十字键 - - - Up - - - - Left - - - - Right - - - - Down - - - - Left Stick Deadzone (def:2 max:127) - 左摇杆死区(默认:2 最大:127) - - - Left Deadzone - 左死区 - - - Left Stick - 左摇杆 - - - Config Selection - 配置选择 - - - Common Config - 通用配置 - - - Use per-game configs - 使用每个游戏的配置 - - - Face Buttons - 功能键(动作键) - - - Right Stick Deadzone (def:2, max:127) - 右摇杆死区(默认:2 最大:127) - - - Right Deadzone - 右死区 - - - Right Stick - 右摇杆 - - - Color Adjustment - 颜色调整 - - - Override Lightbar Color - 覆盖灯条颜色 - - - Override Color - 覆盖颜色 - - - Unable to Save - 无法保存 - - - Cannot bind axis values more than once - 摇杆 X/Y 轴的操作绑定不在同一直线 - - - Save - 保存 - - - Apply - 应用 - - - Restore Defaults - 恢复默认设置 - - - Cancel - 取消 - - - unmapped - 未映射 - - - Options - 选项 - - - Touchpad Left - 触摸板左侧 - - - Touchpad Center - 触控板中间 - - - Touchpad Right - 触摸板右侧 - - - Triangle - 三角 - - - Square - 方框 - - - Circle - - - - Cross - - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - 不能多次绑定任何同一输入。请重新映射以下按键的输入: - -%1 - - - Press a button - 请按一个按键 - - - Move analog stick - 移动模拟摇杆 - - - L1 and L2 - L1和L2 - - - Active Gamepad - 主手柄 - - - Gamepad ID - 手柄 ID - - - Default Gamepad - 默认手柄 - - - No default selected - 没有选择默认项 - - - n/a - 不可用 - - - Set Active Gamepad as Default - 设置主手柄为默认值 - - - Remove Default Gamepad - 移除默认手柄 - - - R1 and R2 - R1 和 R2 - - - ID: - ID:  - - - Default Controller Selected - 已选中默认控制器 - - - Active controller set as default - 主控制器设置为默认 - - - Default Controller Removed - 默认控制器已移除 - - - Default controller setting removed - 默认控制器设置已删除 - - - RED - - - - GREEN - 绿 - - - BLUE - - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - 编辑键盘鼠标和手柄按键绑定 - - - Use Per-Game configs - 每个游戏使用单独的配置 - - - Error - 错误 - - - Could not open the file for reading - 无法打开文件进行读取 - - - Could not open the file for writing - 无法打开文件进行读取 - - - Save Changes - 保存更改 - - - Do you want to save changes? - 您要保存更改吗? - - - Help - 帮助 - - - 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? - 您想要将此配置重置为自定义默认配置吗? - - - Reset to Default - 重置为默认 - - - - ElfViewer - - Open Folder - 打开文件夹 - - - - GameInfoClass - - Loading game list, please wait :3 - 加载游戏列表中, 请稍等 :3 - - - Cancel - 取消 - - - Loading... - 加载中... - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - 选择文件目录 - - - Directory to install games - 要安装游戏的目录 - - - Browse - 浏览 - - - Error - 错误 - - - Directory to install DLC - 安装 DLC 的目录 - - - - GameListFrame - - Icon - 图标 - - - Name - 名称 - - - Serial - 序列号 - - - Compatibility - 兼容性 - - - Region - 区域 - - - Firmware - 固件 - - - Size - 大小 - - - Version - 版本 - - - Path - 路径 - - - Play Time - 游戏时间 - - - Never Played - 未玩过 - - - h - 小时 - - - m - 分钟 - - - s - - - - Compatibility is untested - 兼容性未经测试 - - - Game does not initialize properly / crashes the emulator - 游戏无法正确初始化/模拟器崩溃 - - - Game boots, but only displays a blank screen - 游戏启动,但只显示白屏 - - - Game displays an image but does not go past the menu - 游戏显示图像但无法通过菜单页面 - - - Game has game-breaking glitches or unplayable performance - 游戏有严重的 Bug 或太卡无法游玩 - - - Game can be completed with playable performance and no major glitches - 游戏能在可玩的性能下通关且没有重大 Bug - - - Click to see details on github - 点击查看 GitHub 上的详细信息 - - - Last updated - 最后更新 - - - Favorite - 收藏 - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - 创建快捷方式 - - - Cheats / Patches - 作弊码/补丁 - - - SFO Viewer - SFO 查看器 - - - Trophy Viewer - 奖杯查看器 - - - Open Folder... - 打开文件夹... - - - Open Game Folder - 打开游戏文件夹 - - - Open Save Data Folder - 打开存档数据文件夹 - - - Open Log Folder - 打开日志文件夹 - - - Copy info... - 复制信息... - - - Copy Name - 复制名称 - - - Copy Serial - 复制序列号 - - - Copy Version - 复制版本 - - - Copy Size - 复制大小 - - - Copy All - 复制全部 - - - Delete... - 删除... - - - Delete Game - 删除游戏 - - - Delete Update - 删除更新 - - - Delete DLC - 删除 DLC - - - Delete Trophy - 删除奖杯 - - - Compatibility... - 兼容性... - - - Shortcut creation - 创建快捷方式 - - - Shortcut created successfully! - 创建快捷方式成功! - - - Error - 错误 - - - Error creating shortcut! - 创建快捷方式出错! - - - Game - 游戏 - - - This game has no update to delete! - 这个游戏没有更新可以删除! - - - Update - 更新 - - - This game has no DLC to delete! - 这个游戏没有 DLC 可以删除! - - - DLC - DLC - - - Delete %1 - 删除 %1 - - - Are you sure you want to delete %1's %2 directory? - 您确定要删除 %1 的%2目录? - - - Open Update Folder - 打开更新文件夹 - - - Delete Save Data - 删除存档数据 - - - This game has no update folder to open! - 这个游戏没有可打开的更新文件夹! - - - No log file found for this game! - 没有找到这个游戏的日志文件! - - - Failed to convert icon. - 转换图标失败。 - - - This game has no save data to delete! - 这个游戏没有更新可以删除! - - - This game has no saved trophies to delete! - 这个游戏没有保存的奖杯可删除! - - - Save Data - 存档数据 - - - Trophy - 奖杯 - - - SFO Viewer for - SFO 查看器 - - - - Remove from Favorites - 从收藏中移除 - - - Add to Favorites - 添加至收藏 - - - Game-specific Settings... - 游戏特定设置…… - - - Configure Game-specific Settings - 配置游戏特定设置 - - - Create Game-specific Settings from Global Settings - 从全局设置创建游戏特定设置 - - - Delete Game-specific Settings - 删除游戏特定设置 - - - Update Database - 更新数据库 - - - View Report - 查看报告 - - - Submit a Report - 提交报告 - - - Confirm deletion - 确认删除 - - - Delete game-specific settings? - 删除游戏特定设置? - - - - HelpDialog - - Quickstart - 快速入门 - - - FAQ - 常见问题 - - - Syntax - 语法 - - - Special Bindings - 特殊绑定 - - - Keybindings - 按键绑定 - - - - Hotkeys - - Customize Hotkeys - 自定义快捷键 - - - Controller Hotkeys - 控制器快捷键 - - - Show FPS Counter - 显示FPS计数器 - - - unmapped - 未映射 - - - Quit Emulation - 退出模拟器 - - - Reload Button Mappings - 重新加载按键映射 - - - Toggle Fullscreen - 全屏显示切换 - - - Toggle Pause - 切换暂停 - - - Keyboard Hotkeys - 键盘快捷键 - - - Renderdoc Capture (for debugging only) - Renderdoc 捕获(仅供调试) - - - Toggle Mouse to Joystick Emulation - 切换鼠标模拟摇杆功能 - - - Toggle Mouse to Gyro Emulation - 切换鼠标模拟陀螺仪功能 - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - 提示:每个热键最多可以同时分配三个输入 - - - Save - 保存 - - - Apply - 应用 - - - Cancel - 取消 - - - Restore Defaults - 恢复默认设置 - - - Unable to Save - 无法保存 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - 不能多次绑定任何同一输入。请重新映射以下按键的输入: - -%1 - - - Waiting for inputs - 正在等待输入 - - - - KBMSettings - - Configure Controls - 配置键鼠 - - - D-Pad - 十字键 - - - Up - - - - unmapped - 未映射 - - - Left - - - - Right - - - - Down - - - - Left Analog Halfmode - 左摇杆半速模式 - - - hold to move left stick at half-speed - 按住以半速移动左摇杆 - - - Left Stick - 左摇杆 - - - Config Selection - 配置选择 - - - Common Config - 通用配置 - - - Use per-game configs - 每个游戏使用单独的配置 - - - Text Editor - 文本编辑器 - - - Help - 帮助 - - - Mouse to Joystick - 鼠标控制摇杆 - - - *press F7 ingame to activate - * 按 F7 键激活 - - - Options - 选项设置 - - - Mouse Movement Parameters - 鼠标移动参数 - - - note: click Help Button/Special Keybindings for more information - 注意:点击帮助按钮 -> 获取更多关于映射特殊键位的信息 - - - Face Buttons - 功能键(动作键) - - - Triangle - 三角 - - - Square - 方框 - - - Circle - - - - Cross - - - - Right Analog Halfmode - 右摇杆半速模式 - - - hold to move right stick at half-speed - 按住以半速移动右摇杆 - - - Right Stick - 右摇杆 - - - Speed Offset (def 0.125): - 速度偏移量(默认 0.125): - - - Copy from Common Config - 从通用配置中复制 - - - Deadzone Offset (def 0.50): - 死区偏移量(默认 0.50): - - - Speed Multiplier (def 1.0): - 速度系数(默认 1.0): - - - 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. - 此按钮用于将通用配置中的映射复制到当前选定的配置文件,当前选定的配置文件为通用配置时无法使用。 - - - Copy values from Common Config - 从通用配置中复制配置 - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - 您想要用通用配置的映射覆盖现有映射吗? - - - Unable to Save - 无法保存 - - - Press a key - 按下按键 - - - Cannot set mapping - 无法设置映射 - - - Mousewheel cannot be mapped to stick outputs - 鼠标滚轮无法映射到摇杆 - - - Save - 保存 - - - Apply - 应用 - - - Restore Defaults - 恢复默认设置 - - - Cancel - 取消 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - 不能多次绑定任何同一输入。请重新映射以下按键的输入: - -%1 - - - Touchpad Left - 触摸板左侧 - - - Touchpad Center - 触摸板中心 - - - Touchpad Right - 触摸板右侧 - - - - LogPresetsDialog - - Log Filter Presets - 日志过滤器预设 - - - Comment - 备注 - - - Filter - 筛选 - - - Load - 加载 - - - Close - 关闭 - - - Add a new preset after the selected row - 在所选行后添加新预设 - - - Remove selected presets - 删除选中的预设 - - - Load the selected preset - 加载选中的预设 - - - - MainWindow - - Open/Add Elf Folder - 打开/添加 Elf 文件夹 - - - Boot Game - 启动游戏 - - - Check for Updates - 检查更新 - - - About shadPS4 - 关于 shadPS4 - - - Configure... - 设置... - - - Recent Games - 最近启动的游戏 - - - Open shadPS4 Folder - 打开 shadPS4 文件夹 - - - Exit - 退出 - - - Exit shadPS4 - 退出 shadPS4 - - - Exit the application. - 退出应用程序。 - - - Show Game List - 显示游戏列表 - - - Game List Refresh - 刷新游戏列表 - - - Tiny - 微小 - - - Small - - - - Medium - - - - Large - - - - List View - 列表视图 - - - Grid View - 表格视图 - - - Elf Viewer - Elf 查看器 - - - Game Install Directory - 游戏安装目录 - - - Download Cheats/Patches - 下载作弊码/补丁 - - - Dump Game List - 导出游戏列表 - - - Trophy Viewer - 奖杯查看器 - - - No games found. Please add your games to your library first. - 未找到游戏。请先将您的游戏添加到您的资料库。 - - - Search... - 搜索... - - - File - 文件 - - - View - 显示 - - - Game List Icons - 游戏列表图标 - - - Game List Mode - 游戏列表模式 - - - Settings - 设置 - - - Utils - 工具 - - - Themes - 主题 - - - Help - 帮助 - - - Dark - 深色 - - - Light - 浅色 - - - Green - 绿色 - - - Blue - 蓝色 - - - Violet - 紫色 - - - toolBar - 工具栏 - - - Game List - 游戏列表 - - - Download Cheats For All Installed Games - 下载所有已安装游戏的作弊码 - - - Download Patches For All Games - 下载所有游戏的补丁 - - - Download Complete - 下载完成 - - - You have downloaded cheats for all the games you have installed. - 您已下载了所有已安装游戏的作弊码。 - - - Patches Downloaded Successfully! - 补丁下载成功! - - - All Patches available for all games have been downloaded. - 所有游戏的可用补丁都已下载。 - - - Games: - 游戏: - - - ELF files (*.bin *.elf *.oelf) - ELF 文件 (*.bin *.elf *.oelf) - - - Game Boot - 启动游戏 - - - Only one file can be selected! - 只能选择一个文件! - - - Run Game - 运行游戏 - - - Eboot.bin file not found - 找不到 Eboot.bin 文件 - - - Game is already running! - 游戏已经在运行中! - - - shadPS4 - shadPS4 - - - Play - 开始游戏 - - - Pause - 暂停 - - - Stop - 关闭 - - - Restart - 重新启动 - - - Full Screen - 全屏 - - - Controllers - 控制器 - - - Keyboard - 键盘 - - - Refresh List - 刷新列表 - - - Resume - 继续游戏 - - - Show Labels Under Icons - 显示图标下的标签 - - - Customize Hotkeys - 自定义快捷键 - - - - SettingsDialog - - Settings - 设置 - - - General - 常规 - - - System - 系统 - - - Console Language - 主机语言 - - - Emulator Language - 模拟器语言 - - - Default tab when opening settings - 打开设置时的默认选项卡 - - - Show Game Size In List - 在列表中显示游戏大小 - - - Enable Discord Rich Presence - 启用 Discord Rich Presence - - - Username - 用户名 - - - Trophy Key - 奖杯密钥 - - - Trophy - 奖杯 - - - Open the custom trophy images/sounds folder - 打开自定义奖杯图像/声音文件夹 - - - Logger - 日志 - - - Log Type - 日志类型 - - - Log Filter - 日志过滤 - - - Open Log Location - 打开日志位置 - - - Input - 输入 - - - Cursor - 光标 - - - Hide Cursor - 隐藏光标 - - - Hide Cursor Idle Timeout - 光标隐藏闲置时长 - - - Microphone - 麦克风 - - - None - - - - Default Device - 默认设备 - - - s - - - - Controller - 手柄 - - - Graphics - 图像 - - - GUI - 界面 - - - User - 用户 - - - Graphics Device - 图形设备 - - - Advanced - 高级 - - - Enable Shaders Dumping - 启用着色器转储 - - - Enable NULL GPU - 启用 NULL GPU - - - Enable HDR - 启用 HDR - - - Paths - 路径 - - - Game Folders - 游戏文件夹 - - - Add... - 添加... - - - Remove - 删除 - - - Debug - 调试 - - - Enable Debug Dumping - 启用调试转储 - - - Enable Vulkan Validation Layers - 启用 Vulkan 验证层 - - - Enable Vulkan Synchronization Validation - 启用 Vulkan 同步验证 - - - Enable RenderDoc Debugging - 启用 RenderDoc 调试 - - - Enable Crash Diagnostics - 启用崩溃诊断 - - - Collect Shaders - 收集着色器 - - - Copy GPU Buffers - 复制 GPU 缓冲区 - - - Host Debug Markers - Host 调试标记 - - - Guest Debug Markers - Geust 调试标记 - - - Enable Readbacks - 启用Readbacks - - - Enable Readback Linear Images - 启用Readback线性图像 - - - Update - 更新 - - - Check for Updates at Startup - 启动时检查更新 - - - Always Show Changelog - 始终显示变更日志 - - - Update Channel - 更新频道 - - - Check for Updates - 检查更新 - - - Title Music - 标题音乐 - - - Disable Trophy Notification - 禁用奖杯通知 - - - Background Image - 背景图片 - - - Show Background Image - 显示背景图片 - - - Opacity - 可见度 - - - Play title music - 播放标题音乐 - - - Update Compatibility Database On Startup - 启动时更新兼容性数据库 - - - Game Compatibility - 游戏兼容性 - - - Display Compatibility Data - 显示兼容性数据 - - - Update Compatibility Database - 更新兼容性数据库 - - - Volume - 音量 - - - Save - 保存 - - - Apply - 应用 - - - Restore Defaults - 恢复默认 - - - Close - 关闭 - - - 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建议设置为支持的语言,这将因地区而异。 - - - Emulator Language:\nSets the language of the emulator's user interface. - 模拟器语言:\n设置模拟器用户界面的语言。 - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - 显示启动画面:\n在游戏启动时显示游戏的启动画面(特殊图像)。 - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - 启用 Discord Rich Presence:\n在您的 Discord 个人资料上显示模拟器图标和相关信息。 - - - Username:\nSets the PS4's account username, which may be displayed by some games. - 用户名:\n设置 PS4 帐户的用户名,某些游戏中可能会显示此名称。 - - - 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设置日志窗口输出的同步方式以提高性能。可能会对模拟产生不良影响。 - - - 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 - 按此顺序,特定级别将静默列表中所有先前的级别,并记录所有后续级别。 - - - 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:包含所有最新功能和修复的开发版本,但可能包含错误且稳定性较低。 - - - 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如果游戏支持,在图形界面选择游戏时播放特殊音乐。 - - - 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始终:始终隐藏光标。 - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - 光标隐藏闲置时长:\n光标自动隐藏之前的闲置时长。 - - - 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. - 启动时更新兼容性数据库:\n当 shadPS4 启动时自动更新兼容性数据库。 - - - Update Compatibility Database:\nImmediately update the compatibility database. - 更新兼容性数据库:\n立即更新兼容性数据库。 - - - Never - 从不 - - - Idle - 闲置 - - - Always - 始终 - - - 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或者选择“自动选择”由模拟器决定。 - - - 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这与游戏内的分辨率不同。 - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - 启用着色器转储:\n用于技术调试,在渲染期间将游戏着色器保存到文件夹中。 - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - 启用 NULL 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. - 启用 HDR:\n在支持 HDR 的游戏中启用 HDR。\n您的显示器必须支持 BT2020 PQ 色彩空间和 RGB10A2 交换链格式。 - - - Game Folders:\nThe list of folders to check for installed games. - 游戏文件夹:\n检查已安装游戏的文件夹列表。 - - - Add:\nAdd a folder to the list. - 添加:\n将文件夹添加到列表。 - - - Remove:\nRemove a folder from the list. - 移除:\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 程序的导入和导出符号及文件头信息保存到目录中。 - - - 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 的兼容性,允许在渲染过程中捕获和分析当前渲染的帧。 - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - 收集着色器:\n您需要启用此功能才能使用调试菜单(Ctrl + F10)编辑着色器。 - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - 启用Readbacks:\n启用 GPU 内存回读和回写功能。\n这是某些游戏中恰当运行所必需的。\n可能会导致稳定性以及性能问题。 - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - 启用Readback线性图像:\n启用异步下载GPU修改的线性图像。\n可能会修复一些游戏中的问题。 - - - 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 type 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 调试标记:\n在 Vulkan 命令周围插入模拟器端信息,如特定 AMD GPU 命令的标记,以及为资源提供调试名称。\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 调试标记:\n在命令缓冲区中插入游戏本身添加的任何调试标记。\n如果您已启用此功能,应同时启用崩溃诊断。\n对 RenderDoc 等程序很有用。 - - - 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. - 浏览:\n选择一个目录保存游戏存档数据。 - - - Release - 稳定版 - - - Nightly - 预览版 - - - Set the volume of the background music. - 设置背景音乐的音量。 - - - Enable Motion Controls - 启用体感控制 - - - Save Data Path - 保存数据路径 - - - Browse - 浏览 - - - async - 异步 - - - sync - 同步 - - - Auto Select - 自动选择 - - - Directory to install games - 要安装游戏的目录 - - - Directory to save data - 存档数据目录 - - - Video - 显示 - - - Display Mode - 显示模式 - - - Windowed - 窗口 - - - Fullscreen - 全屏 - - - Fullscreen (Borderless) - 无边框全屏 - - - Window Size - 窗口大小 - - - W: - 宽: - - - H: - 高: - - - Separate Log Files - 独立日志文件 - - - Separate Log Files:\nWrites a separate logfile for each game. - 独立日志文件:\n每个游戏使用单独的日志文件。 - - - Trophy Notification Position - 奖杯通知位置 - - - Left - 左边 - - - Right - 右边 - - - Top - 顶部 - - - Bottom - 底部 - - - Notification Duration - 通知显示持续时间 - - - Portable 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. - 本地用户文件夹:\n存储 shadPS4 设置和数据,这些设置和数据仅应用于当前运行的 shadPS4。创建本地用户文件夹后,重启应用即可开始使用。 - - - Cannot create portable user folder - 无法创建本地用户文件夹 - - - %1 already exists - %1 已存在 - - - Portable user folder 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. - 打开自定义奖杯图像/声音文件夹:\n您可以自定义奖杯图像和声音。\n将文件添加到 custom_trophy 文件夹中,文件名如下:\ntrophy.wav 或 trophy.mp3、bronze.png、gold.png、platinum.png、silver.png。\n注意:自定义声音只能在 QT 版本中生效。 - - - * Unsupported Vulkan Version - * 不支持的 Vulkan 版本 - - - Experimental Features - 实验性功能 - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - 警告:这些功能是实验性的,除非您被告知或者游戏需要的话,否则不应启用。 如果您有任何疑问,请在 shadPS4 Discord 服务器上提问。 - - - Enable Background Controller Input - 启用后台控制器输入 - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - 启用控制器后台输入:\n允许ShadPS4在游戏窗口未焦点时检测控制器输入。 - - - 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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - 崩溃诊断:\n创建一个包含崩溃时 Vulkan 状态的 .yaml 文件。\n对于调试“Device lost”错误很有用。如果您启用了此功能,您应该同时启用 Host 和 Guest 调试标记。\n此功能在 Intel 显卡上不可用。\n您需要启用 Vulkan 验证层和 Vulkan SDK 才能使用此功能。 - - - Enable Logging - 启用日志记录 - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - 启用日志记录:\n开启日志记录功能。\n若不了解相关操作,请勿修改此设置!\n寻求帮助时,请确保此项设置处于启用状态。 - - - Present Mode - 呈现模式 - - - Mailbox (Vsync) - 信箱(垂直同步) - - - Fifo (Vsync) - 先进先出(垂直同步) - - - Immediate (No Vsync) - 即时(关闭垂直同步) - - - DLC Folder - DLC 文件夹 - - - Select the DLC folder - 选择 DLC 文件夹 - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - 呈现模式:\n配置视频输出到屏幕的显示方式。\n\n信箱模式:帧画面与屏幕刷新率同步。新帧将替换所有待处理帧,可降低延迟但落后时可能跳帧。\n先进先出:帧画面与屏幕刷新率同步。新帧将排列在待处理帧之后,确保所有帧都被呈现但可能增加延迟。\n即时模式:帧画面准备就绪后立即显示于屏幕,可能导致画面撕裂。 - - - DLC Path:\nThe folder where game DLC loaded from. - DLC 路径:\n游戏DLC 加载的文件夹。 - - - Browse:\nBrowse for a folder to set as the DLC path. - 浏览:\n选择一个目录保存游戏存档数据。 - - - FSR Settings - FSR设置 - - - Enable FSR - 启用 FSR - - - Enable RCAS (sharpening) - 启用 RCAS(锐化) - - - RCAS Attenuation: - RCAS范围: - - - Load Presets... - 加载预设…… - - - Log - 日志 - - - Open Log Location:\nOpen the folder where the log file is saved. - 打开日志位置:\n打开保存日志文件的文件夹。 - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - 麦克风:\n无:不使用麦克风。\n默认设备:将使用系统中定义的默认设备。\n或者手动从列表中选择要使用的麦克风。 - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - 音量:\n调整全局游戏音量,从0-500%不等,默认100%。 - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - 打开设置时的默认标签页:\n选择设置界面打开时默认显示的标签页,默认选项为“常规”。 - - - Show Game Size In List:\nThere is the size of the game in the list. - 在列表中显示游戏大小:\n开启后,游戏列表将会显示每个游戏的安装容量。 - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - 启用体感控制:\n启用后,若控制器支持,将使用其体感功能。 - - - Vblank Frequency - 垂直同步频率 - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change! - 垂直同步频率:\n此为模拟器的帧率刷新频率(基准为60赫兹,无论游戏本身以30帧还是60帧运行)。修改此数值可能导致负面影响,例如游戏速度加快,或破坏游戏关键功能(因游戏本身未预设此数值可被修改)! - - - Enable Direct Memory Access - 启用直接内存访问 - - - Enable Devkit Console Mode - 启用 Devkit 开发机模式 - - - Set "PSN signed-in" to True - 将“PSN登录状态”设为“已登录” - - - Set "Network Connected" to True - 将“网络连接状态”设为“已连接” - - - Miscellaneous - 其他 - - - Frontend - 前端 - - - Experimental - 实验性功能 - - - Show Splash Screen When Launching Game - 启动游戏时显示启动画面 - - - General Frontend Settings - 常规前端设置 - - - Enable PS4 Neo Mode - 启用 PS4 Pro 模式 - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - 启用直接内存访问 (DMA):\n允许 GPU 直接访问 CPU 内存空间。(可实现高速数据传输,但可能带来稳定性风险)。 - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - 启用 PS4 Pro 模式:\n增加对 PS4 Pro 模拟及内存容量的支持。(注意:当前版本下,大量经测试的游戏会出现运行不稳定的情况!)。 - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - 启用Devkit开发机模式:\n增加对开发机内存容量的支持。 - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - 将“网络连接状态”设为“已连接”:\n强制让游戏检测到网络处于连接状态(注意:并不实际支持真实的在线联网功能)。 - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - 将“PSN登录状态”设为“已登录”:\n强制让游戏检测到PSN处于登录状态(注意:并不实际支持真实的PSN网络功能)。 - - - 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.\nYou need the Vulkan SDK for this to work. - 启用Vulkan验证层:\n此功能将启用一个用于验证Vulkan渲染器状态并记录其内部状态信息的系统。\n注意:这将严重降低性能,并极有可能改变模拟器行为!\n需要安装Vulkan SDK方可使用此功能。 - - - 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.\nYou need the Vulkan SDK for this to work. - 启用Vulkan同步验证功能:\n此功能将启用一个用于验证Vulkan渲染任务时序的系统。\n注意:这将显著降低性能,并可能改变模拟器行为!\n需要安装Vulkan SDK方可使用此功能。 - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - 奖杯查看器 - - - Select Game: - 选择游戏: - - - Progress - 进度 - - - Show Earned Trophies - 显示获得的奖杯 - - - Show Not Earned Trophies - 显示未获得的奖杯 - - - Show Hidden Trophies - 显示隐藏奖杯 - - - diff --git a/src/qt_gui/translations/zh_TW.ts b/src/qt_gui/translations/zh_TW.ts deleted file mode 100644 index 9abd231d3..000000000 --- a/src/qt_gui/translations/zh_TW.ts +++ /dev/null @@ -1,2459 +0,0 @@ - - - - - - AboutDialog - - About shadPS4 - 關於 shadPS4 - - - 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. - 不得用此軟體來遊玩你未曾合法獲取的遊戲。 - - - - CheatsPatches - - 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 - - - No Image Available - 沒有可用的圖片 - - - Serial: - 序號: - - - Version: - 版本: - - - Size: - 大小: - - - Select Cheat File: - 選取金手指檔案: - - - Repository: - 儲存庫: - - - Download Cheats - 下載金手指 - - - Delete File - 刪除檔案 - - - 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 - - - Select Patch File: - 選取修補檔案: - - - Download Patches - 下載修補檔 - - - Save - 儲存 - - - Cheats - 金手指 - - - Patches - 修補檔 - - - Error - 錯誤 - - - No patch selected. - 未選取修補檔。 - - - Unable to open files.json for reading. - 無法開啟 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 失敗: - - - Success - 成功 - - - Options saved successfully. - 已成功儲存選項。 - - - Invalid Source - 無效的來源 - - - The selected source is invalid. - 選取的來源無效。 - - - File Exists - 檔案已存在 - - - 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 - 下載完成 - - - 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 資料。 - - - Failed to retrieve HTML page. - 無法接收 HTML 頁面。 - - - The game is in version: %1 - 遊戲版本: %1 - - - The downloaded patch only works on version: %1 - 下載的修補檔僅適用於版本: %1 - - - You may need to update your game. - 你可能需要更新你的遊戲。 - - - Incompatibility Notice - 不相容通知 - - - Failed to open file: - 無法開啟檔案: - - - XML ERROR: - XML 錯誤: - - - Failed to open files.json for writing - 無法開啟 files.json 進行寫入 - - - Author: - 作者: - - - Directory does not exist: - 目錄不存在: - - - Failed to open files.json for reading. - 無法開啟 files.json 進行讀取。 - - - Name: - 名稱: - - - Can't apply cheats before the game is started - 在遊戲'開始之前無法套用金手指 - - - Close - 關閉 - - - - CheckUpdate - - Auto Updater - 自動更新程式 - - - Error - 錯誤 - - - Network error: - 網路錯誤: - - - The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later. - 自動更新程式每小時最多允許 60 次更新檢查。\n您已達到此限制。請稍後再試。 - - - Failed to parse update information. - 無法分析更新資訊。 - - - No pre-releases found. - 未找到預發佈版本。 - - - Invalid release data. - 無效的發佈資料。 - - - <b>Notice:</b><br><br> Starting from version <b>0.12.0</b>, the Qt version of the emulator will no longer receive direct updates.<br><br>However, the Qt interface remains available through the new official launcher:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> - based on the original shadPS4 source code.<br><br>We recommend switching to this launcher to continue receiving updates. - <b>注意:</b><br><br> 從版本 <b>0.12.0</b> 起,模擬器的 Qt 版本將不再接收直接更新。<br><br> 不過,Qt 介面仍可透過新的官方啟動程式使用:<br><br><a href='https://github.com/shadps4-emu/shadps4-qtlauncher/releases/'>Qt Launcher</a> – 基於原始 shadPS4 原始碼。<br><br> 我們建議切換到此啟動程式,以繼續接收更新。 - - - Your version is already up to date! - 您的版本已經是最新的! - - - Update Available - 可用更新 - - - Update Channel - 更新頻道 - - - Current Version - 目前版本 - - - Latest Version - 最新版本 - - - Do you want to update? - 你要更新嗎? - - - Show Changelog - 顯示變更日誌 - - - Check for Updates at Startup - 啟動時檢查更新 - - - Update - 更新 - - - No - - - - Hide Changelog - 隱藏變更日誌紀錄 - - - Changes - 變更 - - - Network error occurred while trying to access the URL - 嘗試存取 URL 時發生了網路錯誤 - - - Download Complete - 下載完成 - - - The update has been downloaded, press OK to install. - 已下載更新,按 OK 安裝。 - - - Failed to save the update file at - 無法將更新檔案儲存到 - - - Starting Update... - 正在開始更新... - - - Failed to create the update script file - 無法建立更新程式碼檔案 - - - - CompatibilityInfoClass - - Fetching compatibility data, please wait - 正在取得相容性資料,請稍候 - - - Cancel - 取消 - - - Loading... - 正在載入… - - - Error - 錯誤 - - - Unable to update compatibility data! Try again later. - 無法更新相容性資料!請稍後再試。 - - - Unable to open compatibility_data.json for writing. - 無法開啟 compatibility_data.json 進行寫入。 - - - Unknown - 未知 - - - Nothing - - - - Boots - 可啟動 - - - Menus - 可顯示標題畫面 - - - Ingame - 可進入遊戲 - - - Playable - 可如常遊玩 - - - - ControlSettings - - Configure Controls - 操控組態 - - - D-Pad - 十字方向鍵 - - - Up - - - - Left - - - - Right - - - - Down - - - - Left Stick Deadzone (def:2 max:127) - 左搖桿無效區域(預設:2 最大:127) - - - Left Deadzone - 左無效區域 - - - Left Stick - 左搖桿 - - - Config Selection - 選取組態 - - - Common Config - 通用組態 - - - Use per-game configs - 使用個別遊戲組態 - - - Face Buttons - 功能鍵(動作按鈕) - - - Right Stick Deadzone (def:2, max:127) - 右搖桿無效區域(預設:2 最大:127) - - - Right Deadzone - 右無效區域 - - - Right Stick - 右搖桿 - - - Color Adjustment - 色彩調整 - - - Override Lightbar Color - 覆寫燈條顏色 - - - Override Color - 覆寫顏色 - - - Unable to Save - 無法儲存 - - - Cannot bind axis values more than once - 不能同時連結多個方向軸設定值 - - - Save - 儲存 - - - Apply - 套用 - - - Restore Defaults - 還原成預設值 - - - Cancel - 取消 - - - unmapped - unmapped - - - Options - Options - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - Triangle - Triangle - - - Square - Square - - - Circle - Circle - - - Cross - Cross - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Press a button - Press a button - - - Move analog stick - Move analog stick - - - L1 and L2 - L1 and L2 - - - Active Gamepad - Active Gamepad - - - Gamepad ID - Gamepad ID - - - Default Gamepad - Default Gamepad - - - No default selected - No default selected - - - n/a - n/a - - - Set Active Gamepad as Default - Set Active Gamepad as Default - - - Remove Default Gamepad - Remove Default Gamepad - - - R1 and R2 - R1 and R2 - - - ID: - ID: - - - Default Controller Selected - Default Controller Selected - - - Active controller set as default - Active controller set as default - - - Default Controller Removed - Default Controller Removed - - - Default controller setting removed - Default controller setting removed - - - RED - RED - - - GREEN - GREEN - - - BLUE - BLUE - - - - EditorDialog - - Edit Keyboard + Mouse and Controller input bindings - 編輯鍵盤滑鼠和控制器按鈕連結 - - - Use Per-Game configs - 使用個別遊戲組態 - - - Error - 錯誤 - - - Could not open the file for reading - 無法開啟檔案進行讀取 - - - Could not open the file for writing - 無法開啟檔案進行寫入 - - - Save Changes - 儲存變更 - - - Do you want to save changes? - 你要儲存變更嗎? - - - Help - 幫助 - - - 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? - 你要將此組態還原成自訂預設組態嗎? - - - Reset to Default - 還原成預設值 - - - - ElfViewer - - Open Folder - 開啟資料夾 - - - - GameInfoClass - - Loading game list, please wait :3 - 正在載入遊戲列表,請稍候 :3 - - - Cancel - 取消 - - - Loading... - 正在載入… - - - - GameInstallDialog - - shadPS4 - Choose directory - shadPS4 - 選取檔案目錄 - - - Directory to install games - 要安裝遊戲的目錄 - - - Browse - 瀏覽 - - - Error - 錯誤 - - - Directory to install DLC - 要安裝DLC的目錄 - - - - GameListFrame - - Icon - 圖示 - - - Name - 名稱 - - - Serial - 序號 - - - Compatibility - 相容性 - - - Region - 區域 - - - Firmware - 韌體 - - - Size - 大小 - - - Version - 版本 - - - Path - 路徑 - - - Play Time - 遊玩時間 - - - Never Played - 從未玩過 - - - h - 小時 - - - m - 分鐘 - - - s - - - - Compatibility is untested - 未曾測試相容性 - - - Game does not initialize properly / crashes the emulator - 無法正確初始化遊戲/模擬器當機 - - - Game boots, but only displays a blank screen - 遊戲可啟動,但只會顯示空白畫面 - - - Game displays an image but does not go past the menu - 可以顯示遊戲畫面,但是在標題畫面無法繼續 - - - Game has game-breaking glitches or unplayable performance - 遊戲有嚴重的BUG或者效能過低而無法遊玩 - - - Game can be completed with playable performance and no major glitches - 遊戲能在可以合理遊玩的效能下破關也沒有重大BUG - - - Click to see details on github - 點擊查看 GitHub 上的詳細資訊 - - - Last updated - 最後更新 - - - Favorite - Favorite - - - - GameListUtils - - B - B - - - KB - KB - - - MB - MB - - - GB - GB - - - TB - TB - - - - GuiContextMenus - - Create Shortcut - 建立捷徑 - - - Cheats / Patches - 金手指/修補程式 - - - SFO Viewer - SFO 檢視器 - - - Trophy Viewer - 獎盃檢視器 - - - Open Folder... - 開啟資料夾… - - - Open Game Folder - 開啟遊戲資料夾 - - - Open Save Data Folder - 開啟遊戲存檔資料夾 - - - Open Log Folder - 開啟日誌紀錄資料夾 - - - Copy info... - 複製資訊... - - - Copy Name - 複製名稱 - - - Copy Serial - 複製序號 - - - Copy Version - 複製版本資訊 - - - Copy Size - 複製大小 - - - Copy All - 全部複製 - - - Delete... - 刪除… - - - Delete Game - 刪除遊戲 - - - Delete Update - 刪除更新 - - - Delete DLC - 刪除DLC - - - Delete Trophy - 刪除獎盃 - - - Compatibility... - 相容性… - - - Shortcut creation - 建立捷徑 - - - Shortcut created successfully! - 成功建立捷徑! - - - Error - 錯誤 - - - Error creating shortcut! - 建立捷徑出錯! - - - Game - 遊戲 - - - This game has no update to delete! - 此遊戲沒有可刪除的更新! - - - Update - 更新 - - - This game has no DLC to delete! - 此遊戲沒有可刪除的DLC! - - - DLC - DLC - - - Delete %1 - 刪除 %1 - - - Are you sure you want to delete %1's %2 directory? - 確定要刪除 %1' 的%2目錄? - - - Open Update Folder - 開啟更新資料夾 - - - Delete Save Data - 刪除遊戲存檔 - - - This game has no update folder to open! - 此遊戲沒有可開啟的更新資料夾! - - - No log file found for this game! - 找不到此遊戲的日誌紀錄檔! - - - Failed to convert icon. - 轉換圖示失敗。 - - - This game has no save data to delete! - 此遊戲沒有可刪除的遊戲存檔! - - - This game has no saved trophies to delete! - 此遊戲沒有可刪除的已儲存獎盃! - - - Save Data - 遊戲存檔 - - - Trophy - 獎盃 - - - SFO Viewer for - SFO 檢視器: - - - Remove from Favorites - Remove from Favorites - - - Add to Favorites - Add to Favorites - - - Game-specific Settings... - Game-specific Settings... - - - Configure Game-specific Settings - Configure Game-specific Settings - - - Create Game-specific Settings from Global Settings - Create Game-specific Settings from Global Settings - - - Delete Game-specific Settings - Delete Game-specific Settings - - - Update Database - Update Database - - - View Report - View Report - - - Submit a Report - Submit a Report - - - Confirm deletion - Confirm deletion - - - Delete game-specific settings? - Delete game-specific settings? - - - - HelpDialog - - Quickstart - 快速入門 - - - FAQ - 常見問答 - - - Syntax - 語法 - - - Special Bindings - 特殊連結 - - - Keybindings - 按鍵連結 - - - - Hotkeys - - Customize Hotkeys - Customize Hotkeys - - - Controller Hotkeys - Controller Hotkeys - - - Show FPS Counter - Show FPS Counter - - - unmapped - unmapped - - - Quit Emulation - Quit Emulation - - - Reload Button Mappings - Reload Button Mappings - - - Toggle Fullscreen - Toggle Fullscreen - - - Toggle Pause - Toggle Pause - - - Keyboard Hotkeys - Keyboard Hotkeys - - - Renderdoc Capture (for debugging only) - Renderdoc Capture (for debugging only) - - - Toggle Mouse to Joystick Emulation - Toggle Mouse to Joystick Emulation - - - Toggle Mouse to Gyro Emulation - Toggle Mouse to Gyro Emulation - - - Tip: Up to three simultaneous inputs can be assigned for each hotkey - Tip: Up to three simultaneous inputs can be assigned for each hotkey - - - Save - Save - - - Apply - Apply - - - Cancel - Cancel - - - Restore Defaults - Restore Defaults - - - Unable to Save - Unable to Save - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Waiting for inputs - Waiting for inputs - - - - KBMSettings - - Configure Controls - 操控組態 - - - D-Pad - 十字方向鍵 - - - Up - - - - unmapped - 鍵位未有對應 - - - Left - - - - Right - - - - Down - - - - Left Analog Halfmode - 左類比搖桿半速模式 - - - hold to move left stick at half-speed - 按住可半速移動左搖桿 - - - Left Stick - 左搖桿 - - - Config Selection - 選取組態 - - - Common Config - 通用組態 - - - Use per-game configs - 使用個別遊戲組態 - - - Text Editor - 文字編輯器 - - - Help - 幫助 - - - Mouse to Joystick - 滑鼠操控操縱桿 - - - *press F7 ingame to activate - *在遊戲中按F7啟動 - - - Options - Options - - - Mouse Movement Parameters - 滑鼠指標移動參數 - - - note: click Help Button/Special Keybindings for more information - 注意:點擊 幫助 按鈕/特殊按鍵連結以取得更多資訊 - - - Face Buttons - 功能鍵(動作按鈕) - - - Triangle - 三角 - - - Square - 正方 - - - Circle - 圓形 - - - Cross - 交叉 - - - Right Analog Halfmode - 右類比搖桿半速模式 - - - hold to move right stick at half-speed - 按住可半速移動右搖桿 - - - Right Stick - 右搖桿 - - - Speed Offset (def 0.125): - 速度偏移量(預設為 0.125): - - - Copy from Common Config - 從通用組態中複製設定值 - - - Deadzone Offset (def 0.50): - 無效區偏移量(預設為 0.50): - - - Speed Multiplier (def 1.0): - 速度倍數(預設為 1.0): - - - 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. - 此按鈕會將通用組態中的鍵位對應複製到目前選取的組態檔案,選取通用組態時無法使用此按鈕。 - - - Copy values from Common Config - 從通用組態中複製設定值 - - - Do you want to overwrite existing mappings with the mappings from the Common Config? - 你要將通用組態中的鍵位對應覆寫到現有的鍵位對應嗎? - - - Unable to Save - 無法儲存 - - - Press a key - 按下按鍵 - - - Cannot set mapping - 無法設定鍵位對應 - - - Mousewheel cannot be mapped to stick outputs - 滑鼠滾輪無法對應到搖桿輸出 - - - Save - 儲存 - - - Apply - 套用 - - - Restore Defaults - 還原成預設值 - - - Cancel - 取消 - - - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons: - -%1 - - - Touchpad Left - Touchpad Left - - - Touchpad Center - Touchpad Center - - - Touchpad Right - Touchpad Right - - - - LogPresetsDialog - - Log Filter Presets - Log Filter Presets - - - Comment - Comment - - - Filter - Filter - - - Load - Load - - - Close - Close - - - Add a new preset after the selected row - Add a new preset after the selected row - - - Remove selected presets - Remove selected presets - - - Load the selected preset - Load the selected preset - - - - MainWindow - - Open/Add Elf Folder - 開啟/新增 Elf 資料夾 - - - Boot Game - 啟動遊戲 - - - Check for Updates - 檢查更新 - - - About shadPS4 - 關於 shadPS4 - - - Configure... - 組態… - - - Recent Games - 最近遊玩的遊戲 - - - Open shadPS4 Folder - 開啟 shadPS4 資料夾 - - - Exit - 退出 - - - Exit shadPS4 - 退出 shadPS4 - - - Exit the application. - 退出應用程式。 - - - Show Game List - 顯示遊戲列表 - - - Game List Refresh - 重新整理遊戲列表 - - - Tiny - 微小 - - - Small - - - - Medium - - - - Large - - - - List View - 以列表顯示 - - - Grid View - 以網格顯視 - - - Elf Viewer - Elf 檢視器 - - - Game Install Directory - 遊戲安裝目錄 - - - Download Cheats/Patches - 下載金手指/修補檔 - - - Dump Game List - 偵印遊戲列表 - - - Trophy Viewer - 獎盃檢視器 - - - No games found. Please add your games to your library first. - 找不到遊戲,請先將你的遊戲加入遊戲庫中。 - - - Search... - 搜尋… - - - File - 檔案 - - - View - 檢視 - - - Game List Icons - 遊戲列表圖示 - - - Game List Mode - 遊戲列表模式 - - - Settings - 設定 - - - Utils - 工具 - - - Themes - 主題 - - - Help - 幫助 - - - Dark - 深色 - - - Light - 淺色 - - - Green - 綠色 - - - Blue - 藍色 - - - Violet - 紫羅蘭色 - - - toolBar - 工具列 - - - Game List - 遊戲列表 - - - Download Cheats For All Installed Games - 下載所有已安裝遊戲的金手指 - - - Download Patches For All Games - 下載所有遊戲的修補檔 - - - Download Complete - 下載完成 - - - You have downloaded cheats for all the games you have installed. - 你已下載所有已安裝遊戲的金手指。 - - - Patches Downloaded Successfully! - 修補檔下載成功! - - - All Patches available for all games have been downloaded. - 所有遊戲的修補檔已經下載完成。 - - - Games: - 遊戲: - - - ELF files (*.bin *.elf *.oelf) - ELF 檔案 (*.bin *.elf *.oelf) - - - Game Boot - 遊戲啟動 - - - Only one file can be selected! - 只能選取一個檔案! - - - Run Game - 執行遊戲 - - - Eboot.bin file not found - 找不到 Eboot.bin 檔案 - - - Game is already running! - 已在執行遊戲! - - - shadPS4 - shadPS4 - - - Play - 遊玩 - - - Pause - 暫停 - - - Stop - 停止 - - - Restart - 重新啟動 - - - Full Screen - 全螢幕 - - - Controllers - 控制器 - - - Keyboard - 鍵盤 - - - Refresh List - 重新整理列表 - - - Resume - 繼續 - - - Show Labels Under Icons - 在圖示下方顯示標籤 - - - Customize Hotkeys - Customize Hotkeys - - - - SettingsDialog - - Settings - 設定 - - - General - 一般 - - - System - 系統 - - - Console Language - 主機語言 - - - Emulator Language - 模擬器語言 - - - Default tab when opening settings - 開啟設定時的預設選項頁面 - - - Show Game Size In List - 在列表中顯示遊戲大小 - - - Enable Discord Rich Presence - 啟用 Discord Rich Presence - - - Username - 使用者名稱 - - - Trophy Key - 獎盃金鑰 - - - Trophy - 獎盃 - - - Open the custom trophy images/sounds folder - 開啟自訂獎盃圖像/音效資料夾 - - - Logger - 日誌紀錄器 - - - Log Type - 日誌記錄類型 - - - Log Filter - 日誌紀錄過濾器 - - - Open Log Location - 開啟日誌記錄位置 - - - Input - 輸入 - - - Cursor - 滑鼠遊標 - - - Hide Cursor - 隱藏滑鼠指標 - - - Hide Cursor Idle Timeout - 空閒滑鼠指標逾時隱藏 - - - Microphone - Microphone - - - None - None - - - Default Device - Default Device - - - s - - - - Controller - 控制器 - - - Graphics - 圖形 - - - GUI - 介面 - - - User - 使用者 - - - Graphics Device - 圖形裝置 - - - Advanced - 進階 - - - Enable Shaders Dumping - 啟用著色器傾印 - - - Enable NULL GPU - 啟用空值GPU - - - Enable HDR - 啟用 HDR - - - Paths - 路徑 - - - Game Folders - 遊戲資料夾 - - - Add... - 新增… - - - Remove - 刪除 - - - Debug - 偵錯 - - - Enable Debug Dumping - 啟用偵錯傾印 - - - Enable Vulkan Validation Layers - 啟用 Vulkan 驗證層 - - - Enable Vulkan Synchronization Validation - 啟用 Vulkan 同步驗證 - - - Enable RenderDoc Debugging - 啟用 RenderDoc 偵錯 - - - Enable Crash Diagnostics - 啟用當機診斷 - - - Collect Shaders - 收集著色器 - - - Copy GPU Buffers - 複製 GPU 緩衝區 - - - Host Debug Markers - Host 偵錯標記 - - - Guest Debug Markers - Guest 偵錯標記 - - - Enable Readbacks - Enable Readbacks - - - Enable Readback Linear Images - Enable Readback Linear Images - - - Update - 更新 - - - Check for Updates at Startup - 啟動時檢查更新 - - - Always Show Changelog - 始終顯示變更紀錄 - - - Update Channel - 更新頻道 - - - Check for Updates - 檢查更新 - - - Title Music - 標題音樂 - - - Disable Trophy Notification - 停用獎盃通知 - - - Background Image - 背景圖像 - - - Show Background Image - 顯示背景影像 - - - Opacity - 透明度 - - - Play title music - 播放標題音樂 - - - Update Compatibility Database On Startup - 啟動時更新相容性資料庫 - - - Game Compatibility - 遊戲相容性 - - - Display Compatibility Data - 顯示相容性資料 - - - Update Compatibility Database - 更新相容性資料庫 - - - Volume - 音量 - - - Save - 儲存 - - - Apply - 應用 - - - Restore Defaults - 還原成預設值 - - - Close - 關閉 - - - 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建議將其設定為遊戲'支援的語言,該語言因地區而異。 - - - Emulator Language:\nSets the language of the emulator's user interface. - 模擬器語言:\n設定模擬器'的使用者介面語言。 - - - Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting. - 顯示啟動畫面:\n遊戲'開始時顯示遊戲的啟動畫面(特殊圖像)。 - - - Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile. - 啟用 Discord Rich Presence:\n在你的 Discord 個人檔案上顯示模擬器圖示和相關資訊。 - - - Username:\nSets the PS4's account username, which may be displayed by some games. - 使用者名稱:\n設定 PS4 '的帳號使用者名稱,某些遊戲可能會顯示該使用者名稱。 - - - 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設定是否同步日誌記錄視窗的輸出以提高效能。可能會對模擬產生負面影響。 - - - 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{[="-=]}\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. - 更新:\n正式版:每月發布的正式版本可能會過時,但更可靠而且有經過測試。 \n預覽版:具有所有最新功能和修復的開發版本,但可能含有一些錯誤而且不太穩定。 - - - 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 中選取遊戲時播放特殊音樂。 - - - 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始終:你始終看不到滑鼠指標。 - - - Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself. - 空閒滑鼠指標隱藏逾時:\n閒置滑鼠指標隱藏自身之前的持續顯示時間(秒)。 - - - 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. - 啟動時更新相容性:\n在 shadPS4 啟動時自動更新相容性資料庫。 - - - Update Compatibility Database:\nImmediately update the compatibility database. - 更新相容性資料庫:\n立即更新相容性資料庫。 - - - Never - 從不 - - - Idle - 閒置 - - - Always - 始終 - - - 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或選取「自動選取」以自動選用適合的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這與遊戲內部解析度不同。 - - - Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render. - 啟用著色器傾印:\n作為技術偵錯用途,將遊戲的著色器在渲染時儲存到資料夾中。 - - - Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card. - 啟用空值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. - 啟用 HDR:\n在支援 HDR 的遊戲中啟用 HDR。 \n您的顯示器必須支援 BT2020 PQ 色彩空間和 RGB10A2 交換鏈格式。 - - - Game Folders:\nThe list of folders to check for installed games. - 遊戲資料夾:\n檢查已安裝遊戲的資料夾列表。 - - - Add:\nAdd a folder to the list. - 新增:\n將資料夾新增到列表中。 - - - Remove:\nRemove a folder from the list. - 移除:\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程式的輸入和輸出符號以及檔案頭資訊儲存到目錄中。 - - - 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的相容性,以便允許擷取和分析目前渲染的畫格。 - - - Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10). - 收集著色器:\n您需要啟用此功能才能使用偵錯功能表 (Ctrl + F10) 編輯著色器。 - - - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - Enable Readbacks:\nEnable GPU memory readbacks and writebacks.\nThis is required for proper behavior in some games.\nMight cause stability and/or performance issues. - - - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - Enable Readback Linear Images:\nEnables async downloading of GPU modified linear images.\nMight fix issues in some games. - - - 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 偵錯標記:\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 偵錯標記:\n插入遊戲本身已新增至指令緩衝區的任何偵錯標記。 \n如果啟用此功能,則應啟用當機診斷。 \n對於 RenderDoc 等程式很有用。 - - - 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. - 瀏覽:\n選取要設定為存放遊戲存檔路徑的資料夾。 - - - Release - 正式版 - - - Nightly - 預覽版 - - - Set the volume of the background music. - 設定背景音樂的音量。 - - - Enable Motion Controls - 啟用動態感應控制 - - - Save Data Path - 遊戲存檔路徑 - - - Browse - 瀏覽 - - - async - 異步 - - - sync - 同步 - - - Auto Select - 自動選取 - - - Directory to install games - 要安裝遊戲的目錄 - - - Directory to save data - 遊戲存檔的目錄 - - - Video - 影像 - - - Display Mode - 顯示模式 - - - Windowed - 視窗 - - - Fullscreen - 全螢幕 - - - Fullscreen (Borderless) - 全螢幕(無邊框) - - - Window Size - 視窗大小 - - - W: - 寬: - - - H: - 高: - - - Separate Log Files - 單獨的日誌紀錄檔 - - - Separate Log Files:\nWrites a separate logfile for each game. - 單獨的日誌紀錄檔:\n為個別遊戲寫入單獨的日誌記錄檔。 - - - Trophy Notification Position - 獎盃通知位置 - - - Left - 左側 - - - Right - 右側 - - - Top - 頂部 - - - Bottom - 底部 - - - Notification Duration - 通知顯示持續時間 - - - Portable 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. - 可移植的使用者資料夾:\n儲存僅套用於目前資料夾中的 shadPS4 版本的 shadPS4 設定和資料。建立可移植的使用者資料夾後重新啟動應用程式以便開始使用它。 - - - Cannot create portable user folder - 無法建立可移植的使用者資料夾 - - - %1 already exists - %1 已存在 - - - Portable user folder 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. - 開啟自訂獎盃影像/聲音資料夾:\n您可以將自訂影像新增至獎盃和音訊。 \n將檔案加入 custom_tropy,名稱如下:\ntropy.wav OR trophy.mp3、bronze.png、gold.png、platinum.png、silver.png\n注意:聲音僅在 QT 版本中有效。 - - - * Unsupported Vulkan Version - * Unsupported Vulkan Version - - - Experimental Features - Experimental Features - - - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - WARNING: These features are experimental and should not be enabled unless you were told to, or a game requires it. Please ask in the shadPS4 Discord server if you have any questions. - - - Enable Background Controller Input - Enable Background Controller Input - - - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - Enable Controller Background Input:\nAllow shadPS4 to detect controller inputs when the game window is not in focus. - - - 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.\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.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work. - - - Enable Logging - Enable Logging - - - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - Enable Logging:\nEnables logging.\nDo not change this if you do not know what you're doing!\nWhen asking for help, make sure this setting is ENABLED. - - - Present Mode - Present Mode - - - Mailbox (Vsync) - Mailbox (Vsync) - - - Fifo (Vsync) - Fifo (Vsync) - - - Immediate (No Vsync) - Immediate (No Vsync) - - - DLC Folder - DLC Folder - - - Select the DLC folder - Select the DLC folder - - - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - Present Mode:\nConfigures how video output will be presented to your screen.\n\nMailbox: Frames synchronize with your screen's refresh rate. New frames will replace any pending frames. Reduces latency but may skip frames if running behind.\nFifo: Frames synchronize with your screen's refresh rate. New frames will be queued behind pending frames. Ensures all frames are presented but may increase latency.\nImmediate: Frames immediately present to your screen when ready. May result in tearing. - - - DLC Path:\nThe folder where game DLC loaded from. - DLC Path:\nThe folder where game DLC loaded from. - - - Browse:\nBrowse for a folder to set as the DLC path. - Browse:\nBrowse for a folder to set as the DLC path. - - - FSR Settings - FSR Settings - - - Enable FSR - Enable FSR - - - Enable RCAS (sharpening) - Enable RCAS (sharpening) - - - RCAS Attenuation: - RCAS Attenuation: - - - Load Presets... - Load Presets... - - - Log - Log - - - Open Log Location:\nOpen the folder where the log file is saved. - Open Log Location:\nOpen the folder where the log file is saved. - - - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - Microphone:\nNone: Does not use the microphone.\nDefault Device: Will use the default device defined in the system.\nOr manually choose the microphone to be used from the list. - - - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - Volume:\nAdjust volume for games on a global level, range goes from 0-500% with the default being 100%. - - - Default tab when opening settings:\nChoose which tab will open, the default is General. - Default tab when opening settings:\nChoose which tab will open, the default is General. - - - Show Game Size In List:\nThere is the size of the game in the list. - Show Game Size In List:\nThere is the size of the game in the list. - - - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - Enable Motion Controls:\nWhen enabled it will use the controller's motion control if supported. - - - Vblank Frequency - Vblank Frequency - - - Vblank Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Frequency:\nThe frame rate at which the emulator refreshes at (60hz is the baseline, whether the game runs at 30 or 60fps). 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 Direct Memory Access - Enable Direct Memory Access - - - Enable Devkit Console Mode - Enable Devkit Console Mode - - - Set "PSN signed-in" to True - Set "PSN signed-in" to True - - - Set "Network Connected" to True - Set "Network Connected" to True - - - Miscellaneous - Miscellaneous - - - Frontend - Frontend - - - Experimental - Experimental - - - Show Splash Screen When Launching Game - Show Splash Screen When Launching Game - - - General Frontend Settings - General Frontend Settings - - - Enable PS4 Neo Mode - Enable PS4 Neo Mode - - - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - Enable Direct Memory Access:\nEnables arbitrary memory access from the GPU to CPU memory. - - - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - Enable PS4 Neo Mode:\nAdds support for PS4 Pro emulation and memory size. Currently causes instability in a large number of tested games. - - - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - Enable Devkit Console Mode:\nAdds support for Devkit console memory size. - - - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - Set Network Connected to True:\nForces games to detect an active network connection. Actual online capabilities are not yet supported. - - - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - Set PSN Signed-in to True:\nForces games to detect an active PSN sign-in. Actual PSN capabilities are not supported. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - 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.\nYou need the Vulkan SDK for this to work. - 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.\nYou need the Vulkan SDK for this to work. - - - Audio Device (general) - Audio Device (general) - - - Audio Device (DS4 speaker) - Audio Device (DS4 speaker) - - - - TrophyViewer - - Trophy Viewer - 獎盃檢視器 - - - Select Game: - 選取遊戲: - - - Progress - 進度 - - - Show Earned Trophies - 顯示已獲得的獎盃 - - - Show Not Earned Trophies - 顯示未獲得的獎盃 - - - Show Hidden Trophies - 顯示隱藏的獎盃 - - - diff --git a/src/qt_gui/trophy_viewer.cpp b/src/qt_gui/trophy_viewer.cpp deleted file mode 100644 index 81b54ed27..000000000 --- a/src/qt_gui/trophy_viewer.cpp +++ /dev/null @@ -1,520 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "common/path_util.h" -#include "main_window_themes.h" -#include "trophy_viewer.h" - -namespace fs = std::filesystem; - -CMRC_DECLARE(res); - -// true: European format; false: American format -bool useEuropeanDateFormat = true; - -void TrophyViewer::resizeEvent(QResizeEvent* event) { - if (!programmaticResize_) { - userResizedWindow_ = true; - } - QMainWindow::resizeEvent(event); -} - -void TrophyViewer::updateTrophyInfo() { - int total = 0; - int unlocked = 0; - - // Cycles through each tab (table) of the QTabWidget - for (int i = 0; i < tabWidget->count(); i++) { - QTableWidget* table = qobject_cast(tabWidget->widget(i)); - if (table) { - total += table->rowCount(); - for (int row = 0; row < table->rowCount(); ++row) { - QString cellText; - // The "Unlocked" column can be a widget or a simple item - QWidget* widget = table->cellWidget(row, 0); - if (widget) { - // Looks for the QLabel inside the widget (as defined in SetTableItem) - QLabel* label = widget->findChild(); - if (label) { - cellText = label->text(); - } - } else { - QTableWidgetItem* item = table->item(row, 0); - if (item) { - cellText = item->text(); - } - } - if (cellText == "unlocked") - unlocked++; - } - } - } - int progress = (total > 0) ? (unlocked * 100 / total) : 0; - trophyInfoLabel->setText( - QString(tr("Progress") + ": %1% (%2/%3)").arg(progress).arg(unlocked).arg(total)); -} - -void TrophyViewer::updateTableFilters() { - bool showEarned = showEarnedCheck->isChecked(); - bool showNotEarned = showNotEarnedCheck->isChecked(); - bool showHidden = showHiddenCheck->isChecked(); - - // Cycles through each tab of the QTabWidget - for (int i = 0; i < tabWidget->count(); ++i) { - QTableWidget* table = qobject_cast(tabWidget->widget(i)); - if (!table) - continue; - for (int row = 0; row < table->rowCount(); ++row) { - QString unlockedText; - // Gets the text of the "Unlocked" column (index 0) - QWidget* widget = table->cellWidget(row, 0); - if (widget) { - QLabel* label = widget->findChild(); - if (label) - unlockedText = label->text(); - } else { - QTableWidgetItem* item = table->item(row, 0); - if (item) - unlockedText = item->text(); - } - - QString hiddenText; - // Gets the text of the "Hidden" column (index 7) - QWidget* hiddenWidget = table->cellWidget(row, 7); - if (hiddenWidget) { - QLabel* label = hiddenWidget->findChild(); - if (label) - hiddenText = label->text(); - } else { - QTableWidgetItem* item = table->item(row, 7); - if (item) - hiddenText = item->text(); - } - - bool visible = true; - if (unlockedText == "unlocked" && !showEarned) - visible = false; - if (unlockedText == "locked" && !showNotEarned) - visible = false; - if (hiddenText.toLower() == "yes" && !showHidden) - visible = false; - - table->setRowHidden(row, !visible); - } - } -} - -TrophyViewer::TrophyViewer(std::shared_ptr gui_settings, QString trophyPath, - QString gameTrpPath, QString gameName, - const QVector& allTrophyGames) - : QMainWindow(), allTrophyGames_(allTrophyGames), currentGameName_(gameName), - m_gui_settings(std::move(gui_settings)) { - this->setWindowTitle(tr("Trophy Viewer") + " - " + currentGameName_); - this->setAttribute(Qt::WA_DeleteOnClose); - tabWidget = new QTabWidget(this); - - auto lan = m_gui_settings->GetValue(gui::gen_guiLanguage).toString(); - if (lan == "en_US" || lan == "zh_CN" || lan == "zh_TW" || lan == "ja_JP" || lan == "ko_KR" || - lan == "lt_LT" || lan == "nb_NO" || lan == "nl_NL") { - useEuropeanDateFormat = false; - } - - gameTrpPath_ = gameTrpPath; - headers << "Unlocked" - << "Trophy" - << "Name" - << "Description" - << "Time Unlocked" - << "Type" - << "ID" - << "Hidden" - << "PID"; - PopulateTrophyWidget(trophyPath); - - trophyInfoDock = new QDockWidget("", this); - QWidget* dockWidget = new QWidget(trophyInfoDock); - QVBoxLayout* dockLayout = new QVBoxLayout(dockWidget); - dockLayout->setAlignment(Qt::AlignTop); - - // ComboBox for game selection - if (!allTrophyGames_.isEmpty()) { - QLabel* gameSelectionLabel = new QLabel(tr("Select Game:"), dockWidget); - dockLayout->addWidget(gameSelectionLabel); - - gameSelectionComboBox = new QComboBox(dockWidget); - for (const auto& game : allTrophyGames_) { - gameSelectionComboBox->addItem(game.name); - } - - // Select current game in ComboBox - if (!currentGameName_.isEmpty()) { - int index = gameSelectionComboBox->findText(currentGameName_); - if (index >= 0) { - gameSelectionComboBox->setCurrentIndex(index); - } - } - - dockLayout->addWidget(gameSelectionComboBox); - - connect(gameSelectionComboBox, QOverload::of(&QComboBox::currentIndexChanged), this, - &TrophyViewer::onGameSelectionChanged); - - QFrame* line = new QFrame(dockWidget); - line->setFrameShape(QFrame::HLine); - line->setFrameShadow(QFrame::Sunken); - dockLayout->addWidget(line); - } - - trophyInfoLabel = new QLabel(tr("Progress") + ": 0% (0/0)", dockWidget); - trophyInfoLabel->setStyleSheet( - "font-weight: bold; font-size: 16px; color: white; background: #333; padding: 5px;"); - dockLayout->addWidget(trophyInfoLabel); - - // Creates QCheckBox to filter trophies - showEarnedCheck = new QCheckBox(tr("Show Earned Trophies"), dockWidget); - showNotEarnedCheck = new QCheckBox(tr("Show Not Earned Trophies"), dockWidget); - showHiddenCheck = new QCheckBox(tr("Show Hidden Trophies"), dockWidget); - - // Defines the initial states (all checked) - showEarnedCheck->setChecked(true); - showNotEarnedCheck->setChecked(true); - showHiddenCheck->setChecked(false); - - // Adds checkboxes to the layout - dockLayout->addWidget(showEarnedCheck); - dockLayout->addWidget(showNotEarnedCheck); - dockLayout->addWidget(showHiddenCheck); - - dockWidget->setLayout(dockLayout); - trophyInfoDock->setWidget(dockWidget); - - // Adds the dock to the left area - this->addDockWidget(Qt::LeftDockWidgetArea, trophyInfoDock); - - expandButton = new QPushButton(">>", this); - expandButton->setGeometry(80, 0, 27, 27); - expandButton->hide(); - - connect(expandButton, &QPushButton::clicked, this, [this] { - trophyInfoDock->setVisible(true); - expandButton->hide(); - }); - - // Connects checkbox signals to update trophy display -#if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0)) - connect(showEarnedCheck, &QCheckBox::stateChanged, this, &TrophyViewer::updateTableFilters); - connect(showNotEarnedCheck, &QCheckBox::stateChanged, this, &TrophyViewer::updateTableFilters); - connect(showHiddenCheck, &QCheckBox::stateChanged, this, &TrophyViewer::updateTableFilters); -#else - connect(showEarnedCheck, &QCheckBox::checkStateChanged, this, - &TrophyViewer::updateTableFilters); - connect(showNotEarnedCheck, &QCheckBox::checkStateChanged, this, - &TrophyViewer::updateTableFilters); - connect(showHiddenCheck, &QCheckBox::checkStateChanged, this, - &TrophyViewer::updateTableFilters); -#endif - - updateTrophyInfo(); - updateTableFilters(); - - connect(trophyInfoDock, &QDockWidget::topLevelChanged, this, [this] { - if (!trophyInfoDock->isVisible()) { - expandButton->show(); - } - }); - - connect(trophyInfoDock, &QDockWidget::visibilityChanged, this, [this] { - if (!trophyInfoDock->isVisible()) { - expandButton->show(); - } else { - expandButton->hide(); - } - }); -} - -void TrophyViewer::onGameSelectionChanged(int index) { - if (index < 0 || index >= allTrophyGames_.size()) { - return; - } - - while (tabWidget->count() > 0) { - QWidget* widget = tabWidget->widget(0); - tabWidget->removeTab(0); - delete widget; - } - - const TrophyGameInfo& selectedGame = allTrophyGames_[index]; - currentGameName_ = selectedGame.name; - gameTrpPath_ = selectedGame.gameTrpPath; - - this->setWindowTitle(tr("Trophy Viewer") + " - " + currentGameName_); - - PopulateTrophyWidget(selectedGame.trophyPath); - - updateTrophyInfo(); - updateTableFilters(); -} - -void TrophyViewer::onDockClosed() { - if (!trophyInfoDock->isVisible()) { - reopenButton->setVisible(true); - } -} - -void TrophyViewer::reopenLeftDock() { - trophyInfoDock->show(); - reopenButton->setVisible(false); -} - -void TrophyViewer::PopulateTrophyWidget(QString title) { - const auto trophyDir = Common::FS::GetUserPath(Common::FS::PathType::MetaDataDir) / - Common::FS::PathFromQString(title) / "TrophyFiles"; - QString trophyDirQt; - Common::FS::PathToQString(trophyDirQt, trophyDir); - - QDir dir(trophyDirQt); - if (!dir.exists()) { - std::filesystem::path path = Common::FS::PathFromQString(gameTrpPath_); - if (!trp.Extract(path, title.toStdString())) { - QMessageBox::critical(this, "Trophy Data Extraction Error", - "Unable to extract Trophy data, please ensure you have " - "inputted a trophy key in the settings menu."); - QWidget::close(); - return; - } - } - QFileInfoList dirList = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot); - if (dirList.isEmpty()) - return; - - // Clears previous tabs (if any) - while (tabWidget->count() > 0) { - QWidget* widget = tabWidget->widget(0); - tabWidget->removeTab(0); - delete widget; - } - - for (const QFileInfo& dirInfo : dirList) { - QString tabName = dirInfo.fileName(); - QString trpDir = trophyDirQt + "/" + tabName; - - QString iconsPath = trpDir + "/Icons"; - QDir iconsDir(iconsPath); - QFileInfoList iconDirList = iconsDir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot); - std::vector icons; - - for (const QFileInfo& iconInfo : iconDirList) { - QImage icon = - QImage(iconInfo.absoluteFilePath()) - .scaled(QSize(128, 128), Qt::KeepAspectRatio, Qt::SmoothTransformation); - icons.push_back(icon); - } - - QStringList trpId; - QStringList trpHidden; - QStringList trpUnlocked; - QStringList trpType; - QStringList trpPid; - QStringList trophyNames; - QStringList trophyDetails; - QStringList trpTimeUnlocked; - - QString xmlPath = trpDir + "/Xml/TROP.XML"; - QFile file(xmlPath); - if (!file.open(QFile::ReadOnly | QFile::Text)) { - return; - } - - QXmlStreamReader reader(&file); - - while (!reader.atEnd() && !reader.hasError()) { - reader.readNext(); - if (reader.isStartElement() && reader.name().toString() == "trophy") { - trpId.append(reader.attributes().value("id").toString()); - trpHidden.append(reader.attributes().value("hidden").toString()); - trpType.append(reader.attributes().value("ttype").toString()); - trpPid.append(reader.attributes().value("pid").toString()); - - if (reader.attributes().hasAttribute("unlockstate")) { - if (reader.attributes().value("unlockstate").toString() == "true") { - trpUnlocked.append("unlocked"); - } else { - trpUnlocked.append("locked"); - } - if (reader.attributes().hasAttribute("timestamp")) { - QString ts = reader.attributes().value("timestamp").toString(); - if (ts.length() > 10) - trpTimeUnlocked.append("unknown"); - else { - bool ok; - qint64 timestampInt = ts.toLongLong(&ok); - if (ok) { - QDateTime dt = QDateTime::fromSecsSinceEpoch(timestampInt); - QString format = useEuropeanDateFormat ? "dd/MM/yyyy HH:mm:ss" - : "MM/dd/yyyy HH:mm:ss"; - trpTimeUnlocked.append(dt.toString(format)); - } else { - trpTimeUnlocked.append("unknown"); - } - } - } else { - trpTimeUnlocked.append(""); - } - } else { - trpUnlocked.append("locked"); - trpTimeUnlocked.append(""); - } - } - - if (reader.name().toString() == "name" && !trpId.isEmpty()) { - trophyNames.append(reader.readElementText()); - } - - if (reader.name().toString() == "detail" && !trpId.isEmpty()) { - trophyDetails.append(reader.readElementText()); - } - } - QTableWidget* tableWidget = new QTableWidget(this); - tableWidget->setShowGrid(false); - tableWidget->setColumnCount(9); - tableWidget->setHorizontalHeaderLabels(headers); - tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); - tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); - tableWidget->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); - tableWidget->horizontalHeader()->setStretchLastSection(false); - tableWidget->verticalHeader()->setVisible(false); - tableWidget->setRowCount(static_cast(icons.size())); - tableWidget->setSortingEnabled(true); - tableWidget->setWordWrap(true); - - for (int row = 0; auto& icon : icons) { - QTableWidgetItem* item = new QTableWidgetItem(); - item->setData(Qt::DecorationRole, icon); - item->setFlags(item->flags() & ~Qt::ItemIsEditable); - tableWidget->setItem(row, 1, item); - - const std::string filename = GetTrpType(trpType[row].at(0)); - QTableWidgetItem* typeitem = new QTableWidgetItem(); - - const auto CustomTrophy_Dir = - Common::FS::GetUserPath(Common::FS::PathType::CustomTrophy); - std::string customPath; - - if (fs::exists(CustomTrophy_Dir / filename)) { - customPath = (CustomTrophy_Dir / filename).string(); - } - - std::vector imgdata; - - if (!customPath.empty()) { - std::ifstream file(customPath, std::ios::binary); - if (file) { - imgdata = std::vector(std::istreambuf_iterator(file), - std::istreambuf_iterator()); - } - } else { - auto resource = cmrc::res::get_filesystem(); - std::string resourceString = "src/images/" + filename; - auto file = resource.open(resourceString); - imgdata = std::vector(file.begin(), file.end()); - } - - QImage type_icon = QImage::fromData(imgdata).scaled( - QSize(100, 100), Qt::KeepAspectRatio, Qt::SmoothTransformation); - typeitem->setData(Qt::DecorationRole, type_icon); - typeitem->setFlags(typeitem->flags() & ~Qt::ItemIsEditable); - tableWidget->setItem(row, 5, typeitem); - - std::string detailString = trophyDetails[row].toStdString(); - std::size_t newline_pos = 0; - while ((newline_pos = detailString.find("\n", newline_pos)) != std::string::npos) { - detailString.replace(newline_pos, 1, " "); - ++newline_pos; - } - - if (!trophyNames.isEmpty() && !trophyDetails.isEmpty()) { - SetTableItem(tableWidget, row, 0, trpUnlocked[row]); - SetTableItem(tableWidget, row, 2, trophyNames[row]); - SetTableItem(tableWidget, row, 3, QString::fromStdString(detailString)); - SetTableItem(tableWidget, row, 4, trpTimeUnlocked[row]); - SetTableItem(tableWidget, row, 6, trpId[row]); - SetTableItem(tableWidget, row, 7, trpHidden[row]); - SetTableItem(tableWidget, row, 8, trpPid[row]); - } - - tableWidget->verticalHeader()->resizeSection(row, icon.height()); - row++; - } - - auto header = tableWidget->horizontalHeader(); - header->setSectionResizeMode(1, QHeaderView::ResizeToContents); - header->setSectionResizeMode(5, QHeaderView::ResizeToContents); - header->setSectionResizeMode(0, QHeaderView::ResizeToContents); - header->setSectionResizeMode(2, QHeaderView::ResizeToContents); - header->setSectionResizeMode(3, QHeaderView::Stretch); - header->setSectionResizeMode(4, QHeaderView::ResizeToContents); - header->setSectionResizeMode(6, QHeaderView::ResizeToContents); - header->setSectionResizeMode(7, QHeaderView::ResizeToContents); - header->setSectionResizeMode(8, QHeaderView::ResizeToContents); - - tableWidget->resizeColumnsToContents(); - tableWidget->resizeRowsToContents(); - - const int hardMinDesc = 300; - int currentDesc = tableWidget->columnWidth(3); - if (currentDesc < hardMinDesc) { - tableWidget->setColumnWidth(3, hardMinDesc); - } - - tabWidget->addTab(tableWidget, - tabName.insert(6, " ").replace(0, 1, tabName.at(0).toUpper())); - } - - this->setCentralWidget(tabWidget); - - if (!this->isMaximized() && !this->isFullScreen()) { - if (!userResizedWindow_ && !initialSizeApplied_) { - QScreen* screen = QGuiApplication::primaryScreen(); - QSize screenSize(1024, 768); - if (screen) { - screenSize = screen->availableGeometry().size(); - } - programmaticResize_ = true; - this->resize(screenSize.width() * 0.8, screenSize.height() * 0.8); - programmaticResize_ = false; - initialSizeApplied_ = true; - } - } -} - -void TrophyViewer::SetTableItem(QTableWidget* parent, int row, int column, QString str) { - QTableWidgetItem* item = new QTableWidgetItem(str); - - if (column != 1 && column != 2 && column != 3) - item->setTextAlignment(Qt::AlignCenter); - QFont f = parent->font(); - f.setPointSize(12); - f.setBold(true); - item->setFont(f); - - Theme theme = static_cast(m_gui_settings->GetValue(gui::gen_theme).toInt()); - - if (theme == Theme::Light) { - item->setForeground(QBrush(Qt::black)); - } else { - item->setForeground(QBrush(Qt::white)); - } - - parent->setItem(row, column, item); -} diff --git a/src/qt_gui/trophy_viewer.h b/src/qt_gui/trophy_viewer.h deleted file mode 100644 index 01d22479f..000000000 --- a/src/qt_gui/trophy_viewer.h +++ /dev/null @@ -1,89 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "common/types.h" -#include "core/file_format/trp.h" -#include "gui_settings.h" - -struct TrophyGameInfo { - QString name; - QString trophyPath; - QString gameTrpPath; -}; - -class TrophyViewer : public QMainWindow { - Q_OBJECT -public: - explicit TrophyViewer( - std::shared_ptr gui_settings, QString trophyPath, QString gameTrpPath, - QString gameName = "", - const QVector& allTrophyGames = QVector()); - - void updateTrophyInfo(); - void updateTableFilters(); - void onDockClosed(); - void reopenLeftDock(); - -private slots: - void onGameSelectionChanged(int index); - -private: - void PopulateTrophyWidget(QString title); - void SetTableItem(QTableWidget* parent, int row, int column, QString str); - bool userResizedWindow_ = false; - bool programmaticResize_ = false; - bool initialSizeApplied_ = false; - - QTabWidget* tabWidget = nullptr; - QStringList headers; - QString gameTrpPath_; - QString currentGameName_; - TRP trp; - QLabel* trophyInfoLabel; - QCheckBox* showEarnedCheck; - QCheckBox* showNotEarnedCheck; - QCheckBox* showHiddenCheck; - QComboBox* gameSelectionComboBox; - QPushButton* expandButton; - QDockWidget* trophyInfoDock; - QPushButton* reopenButton; - QVector allTrophyGames_; - - std::string GetTrpType(const QChar trp_) { - switch (trp_.toLatin1()) { - case 'B': - return "bronze.png"; - case 'S': - return "silver.png"; - case 'G': - return "gold.png"; - case 'P': - return "platinum.png"; - } - return "Unknown"; - } - std::shared_ptr m_gui_settings; - -protected: - void resizeEvent(QResizeEvent* event) override; -}; diff --git a/src/sdl_window.cpp b/src/sdl_window.cpp index bc97c6414..449defdd1 100644 --- a/src/sdl_window.cpp +++ b/src/sdl_window.cpp @@ -21,10 +21,6 @@ #include "sdl_window.h" #include "video_core/renderdoc.h" -#ifdef ENABLE_QT_GUI -#include "qt_gui/sdl_event_wrapper.h" -#endif - #ifdef __APPLE__ #include "SDL3/SDL_metal.h" #endif @@ -368,13 +364,6 @@ void WindowSDL::WaitEvent() { return; } -#ifdef ENABLE_QT_GUI - if (SdlEventWrapper::Wrapper::wrapperActive) { - if (SdlEventWrapper::Wrapper::GetInstance()->ProcessEvent(&event)) - return; - } -#endif - if (ImGui::Core::ProcessEvent(&event)) { return; } diff --git a/src/shadps4.qrc b/src/shadps4.qrc deleted file mode 100644 index d2cb14750..000000000 --- a/src/shadps4.qrc +++ /dev/null @@ -1,43 +0,0 @@ - - - images/shadps4.ico - images/shadps4.png - images/about_icon.png - images/dump_icon.png - images/play_icon.png - images/pause_icon.png - images/stop_icon.png - images/utils_icon.png - images/folder_icon.png - images/themes_icon.png - images/iconsize_icon.png - images/list_icon.png - images/grid_icon.png - images/exit_icon.png - images/settings_icon.png - images/controller_icon.png - images/restart_game_icon.png - images/update_icon.png - images/list_mode_icon.png - images/flag_jp.png - images/flag_eu.png - images/flag_unk.png - images/flag_us.png - images/flag_world.png - images/flag_china.png - images/github.png - images/discord.png - images/ko-fi.png - images/youtube.png - images/website.png - images/ps4_controller.png - images/keyboard_icon.png - images/KBM.png - images/fullscreen_icon.png - images/refreshlist_icon.png - images/favorite_icon.png - images/trophy_icon.png - images/hotkey.png - images/game_settings.png - -