Compare commits
111 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 08f3639c80 | |||
| e13c7ef3f8 | |||
| 89dd133a2f | |||
| 86e9c32800 | |||
| f1cf30bc2a | |||
| 5af5214451 | |||
| 312c1cc0f6 | |||
| 576c4e5f77 | |||
| 84cf3e8c84 | |||
| 45a2008aa6 | |||
| 8f6e0aa2cb | |||
| ca0bc65531 | |||
| a1930d1063 | |||
| 48843306e2 | |||
| 159482a7a9 | |||
| 0510f0bdbc | |||
| 569dbfe8c0 | |||
| 8412e64bb0 | |||
| 1c4dae066b | |||
| 9406438d51 | |||
| 612da00d1b | |||
| 4b34a5c9fa | |||
| 504df4856d | |||
| 6abaee94a6 | |||
| 4bf2e0a7aa | |||
| 82a476d458 | |||
| ac2287f261 | |||
| dd24ef244d | |||
| 5cc218084b | |||
| c0663ccd6b | |||
| 8a7fe32a2c | |||
| 4b0bcfb0f7 | |||
| 82eb5a03f4 | |||
| 0e6ea2d9d6 | |||
| 6a9ad5e1ea | |||
| 903106c9b2 | |||
| c70abc8e43 | |||
| 8ae7974092 | |||
| def4349e7a | |||
| fe6b6fbde5 | |||
| ea6c3c379c | |||
| aa93e0cbb1 | |||
| ead5978b34 | |||
| bfb112dad1 | |||
| 2d3ba3e5dd | |||
| 36b736482a | |||
| dbc98f758e | |||
| 84db3351ab | |||
| 3a54d322ab | |||
| f9773fa908 | |||
| 2dc6d773ee | |||
| 402d8e833d | |||
| d498db1106 | |||
| e93159b047 | |||
| d989166044 | |||
| c96defb80d | |||
| 06275885f1 | |||
| 206e7af162 | |||
| cdf4ce07bc | |||
| 2f591d33d3 | |||
| e4b0c03a22 | |||
| 9582dfffee | |||
| cf9f78636a | |||
| ae46778cc3 | |||
| c31761ab75 | |||
| b50f8c620b | |||
| fa718acfbe | |||
| ce0a299bdb | |||
| d3dbabcfc7 | |||
| effe8109a7 | |||
| 2924297790 | |||
| 5c6aaa7eb1 | |||
| 83c162d80d | |||
| 1a2d1821b5 | |||
| a9b87077f8 | |||
| 2e092d5f5d | |||
| a5996c7511 | |||
| 1c57172524 | |||
| d34b44ce39 | |||
| ecf7af0cde | |||
| 6b01c13975 | |||
| 15becaa5a3 | |||
| 3d4bb08cfc | |||
| b2ac18173f | |||
| 39f226a853 | |||
| 61ab1be0e7 | |||
| 3ba9769d7a | |||
| dd9cae4ebc | |||
| 8fa36a7737 | |||
| 07b09b3849 | |||
| 903faacaab | |||
| c713d44c88 | |||
| 2a3e815dcd | |||
| dc907616a9 | |||
| 0be29d2947 | |||
| 683c2834aa | |||
| c788dbb3ef | |||
| 7846f4de31 | |||
| a0769ad835 | |||
| 470214412b | |||
| 41e15e95b1 | |||
| 73ebf59af7 | |||
| 53bfd56b70 | |||
| 6ba25b6cc0 | |||
| 8d565d7793 | |||
| 311c71146d | |||
| 7751f86c1b | |||
| 4834fec159 | |||
| b5d54b8df7 | |||
| cd4bcb91cc | |||
| 199bc6a170 |
@@ -4,7 +4,7 @@
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# specify full path if dupes may exist
|
||||
EXCLUDE_FILES="CPM.cmake CPMUtil.cmake GetSCMRev.cmake sse2neon.h renderdoc_app.h tools/cpm tools/shellcheck.sh tools/update-cpm.sh externals/stb externals/glad externals/getopt externals/gamemode externals/FidelityFX-FSR externals/demangle externals/bc_decoder"
|
||||
EXCLUDE_FILES="CPM.cmake CPMUtil.cmake GetSCMRev.cmake renderdoc_app.h tools/cpm tools/shellcheck.sh tools/update-cpm.sh externals/stb externals/glad externals/getopt externals/gamemode externals/FidelityFX-FSR externals/demangle externals/bc_decoder"
|
||||
|
||||
# license header constants, please change when needed :))))
|
||||
YEAR=2025
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
# Check if running as administrator
|
||||
if (-not ([bool](net session 2>$null))) {
|
||||
Write-Host "This script must be run with administrator privileges!"
|
||||
Exit 1
|
||||
}
|
||||
|
||||
$VSVer = "17"
|
||||
$ExeFile = "vs_community.exe"
|
||||
$Uri = "https://aka.ms/vs/$VSVer/release/$ExeFile"
|
||||
$Destination = "./$ExeFile"
|
||||
|
||||
Write-Host "Downloading Visual Studio Build Tools from $Uri"
|
||||
$WebClient = New-Object System.Net.WebClient
|
||||
$WebClient.DownloadFile($Uri, $Destination)
|
||||
Write-Host "Finished downloading $ExeFile"
|
||||
|
||||
$Arguments = @(
|
||||
"--quiet", # Suppress installer UI
|
||||
"--wait", # Wait for installation to complete
|
||||
"--norestart", # Prevent automatic restart
|
||||
"--force", # Force installation even if components are already installed
|
||||
"--add Microsoft.VisualStudio.Workload.NativeDesktop", # Desktop development with C++
|
||||
"--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64", # Core C++ compiler/tools for x86/x64
|
||||
"--add Microsoft.VisualStudio.Component.Windows11SDK.26100",# Windows 11 SDK (26100)
|
||||
"--add Microsoft.VisualStudio.Component.Windows10SDK.19041",# Windows 10 SDK (19041)
|
||||
"--add Microsoft.VisualStudio.Component.VC.Llvm.Clang", # LLVM Clang compiler
|
||||
"--add Microsoft.VisualStudio.Component.VC.Llvm.ClangToolset", # LLVM Clang integration toolset
|
||||
"--add Microsoft.VisualStudio.Component.Windows11SDK.22621",# Windows 11 SDK (22621)
|
||||
"--add Microsoft.VisualStudio.Component.VC.CMake.Project", # CMake project support
|
||||
"--add Microsoft.VisualStudio.ComponentGroup.VC.Tools.142.x86.x64", # VC++ 14.2 toolset
|
||||
"--add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Llvm.Clang" # LLVM Clang for native desktop
|
||||
)
|
||||
|
||||
Write-Host "Installing Visual Studio Build Tools"
|
||||
$InstallProcess = Start-Process -FilePath $Destination -NoNewWindow -PassThru -ArgumentList $Arguments
|
||||
|
||||
# Spinner while installing
|
||||
$Spinner = "|/-\"
|
||||
$i = 0
|
||||
while (-not $InstallProcess.HasExited) {
|
||||
Write-Host -NoNewline ("`rInstalling... " + $Spinner[$i % $Spinner.Length])
|
||||
Start-Sleep -Milliseconds 250
|
||||
$i++
|
||||
}
|
||||
|
||||
# Clear spinner line
|
||||
Write-Host "`rSetup completed! "
|
||||
|
||||
$ExitCode = $InstallProcess.ExitCode
|
||||
if ($ExitCode -ne 0) {
|
||||
Write-Host "Error installing Visual Studio Build Tools (Error: $ExitCode)"
|
||||
Exit $ExitCode
|
||||
}
|
||||
|
||||
Write-Host "Finished installing Visual Studio Build Tools"
|
||||
@@ -1,152 +0,0 @@
|
||||
# TODO: This document needs to be formatted,
|
||||
# some stuff needs cleaned up etc
|
||||
name: eden-build
|
||||
|
||||
#on:
|
||||
# push:
|
||||
# branches: [ "master" ]
|
||||
|
||||
# TODO: combine build.yml into trigger_release.yml
|
||||
jobs:
|
||||
source:
|
||||
if: ${{ !github.head_ref }}
|
||||
runs-on: source
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Pack
|
||||
run: ./.ci/source.sh
|
||||
|
||||
- name: Upload
|
||||
uses: forgejo/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 2
|
||||
name: source.zip
|
||||
path: artifacts/
|
||||
|
||||
windows:
|
||||
runs-on: windows
|
||||
strategy:
|
||||
matrix:
|
||||
target: ["msvc"] # TODO: Add msys2
|
||||
defaults:
|
||||
run:
|
||||
shell: ${{ (matrix.target == 'msys2' && 'msys2') || 'bash' }} {0}
|
||||
env:
|
||||
CCACHE_DIR: ${{ runner.workspace }}/.cache/.ccache
|
||||
CCACHE_COMPILERCHECK: content
|
||||
CCACHE_SLOPPINESS: time_macros
|
||||
OS: windows
|
||||
TARGET: ${{ matrix.target }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
fetch-depth: 0
|
||||
fetch-tags: true
|
||||
|
||||
- name: Set up vcpkg cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
${{ github.workspace }}/build/vcpkg_installed
|
||||
${{ github.workspace }}/build/externals
|
||||
${{ github.workspace }}/.vcpkg
|
||||
key: ${{ runner.os }}-${{ matrix.target }}-vcpkg-${{ hashFiles('**/CMakeLists.txt', '**/vcpkg.json') }}-${{ github.run_id }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-${{ matrix.target }}-vcpkg-
|
||||
|
||||
- name: Set up MSVC
|
||||
uses: https://github.com/ilammy/msvc-dev-cmd@v1
|
||||
if: ${{ matrix.target == 'msvc' }}
|
||||
|
||||
- name: Cygwin with autoconf # NEEDED FOR LIBUSB
|
||||
shell: cmd
|
||||
run: ./.ci/windows/cygwin.bat
|
||||
|
||||
- name: Configure & Build
|
||||
shell: bash
|
||||
run: |
|
||||
./.ci/windows/qt-envvars.sh
|
||||
DEVEL=true WINDEPLOYQT="/c/Qt/6.9.0/msvc2022_64/bin/windeployqt6.exe" .ci/windows/build.sh -DCMAKE_PREFIX_PATH=C:/Qt/6.9.0/msvc2022_64/lib/cmake/Qt6
|
||||
|
||||
- name: Package artifacts
|
||||
shell: bash
|
||||
run: |
|
||||
./.ci/windows/qt-envvars.sh
|
||||
./.ci/windows/package.sh
|
||||
|
||||
- name: Upload Windows artifacts
|
||||
uses: forgejo/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 2
|
||||
name: ${{ matrix.target }}.zip
|
||||
path: artifacts/*
|
||||
|
||||
linux:
|
||||
runs-on: linux
|
||||
env:
|
||||
CCACHE_DIR: /home/runner/.cache/ccache
|
||||
CCACHE_COMPILERCHECK: content
|
||||
CCACHE_SLOPPINESS: time_macros
|
||||
OS: linux
|
||||
TARGET: fresh
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
fetch-depth: 0
|
||||
fetch-tags: true
|
||||
|
||||
- name: Build
|
||||
run: TARGET=appimage DEVEL=true ./.ci/linux/build.sh
|
||||
|
||||
- name: Package AppImage
|
||||
run: DEVEL=true ./.ci/linux/package.sh &> /dev/null
|
||||
|
||||
- name: Upload Linux artifacts
|
||||
uses: forgejo/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 3
|
||||
name: linux.zip
|
||||
path: ./*.AppImage
|
||||
|
||||
android:
|
||||
runs-on: android
|
||||
|
||||
env:
|
||||
OS: android
|
||||
TARGET: universal
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
fetch-depth: 0
|
||||
fetch-tags: true
|
||||
|
||||
- name: Set tag name
|
||||
run: |
|
||||
if [[ "$GITHUB_REF_TYPE" == "tag" ]]; then
|
||||
echo "GIT_TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV
|
||||
fi
|
||||
echo $GIT_TAG_NAME
|
||||
|
||||
- name: Build
|
||||
run: ANDROID_HOME=/home/runner/sdk ./.ci/android/build.sh
|
||||
env:
|
||||
ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }}
|
||||
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
|
||||
ANDROID_KEYSTORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASS }}
|
||||
|
||||
- name: Package Android artifacts
|
||||
run: ./.ci/android/package.sh
|
||||
|
||||
- name: Upload Android artifacts
|
||||
uses: forgejo/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 2
|
||||
name: android.zip
|
||||
path: artifacts/*
|
||||
@@ -1,203 +0,0 @@
|
||||
name: Build Application and Make Release
|
||||
|
||||
#on:
|
||||
# push:
|
||||
# tags: [ "*" ]
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
source:
|
||||
runs-on: source
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Pack
|
||||
run: ./.ci/source.sh
|
||||
- name: Upload
|
||||
uses: forgejo/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 2
|
||||
name: source.zip
|
||||
path: artifacts/
|
||||
|
||||
windows:
|
||||
runs-on: windows
|
||||
strategy:
|
||||
matrix:
|
||||
target: ["msvc"] # TODO: Add msys2
|
||||
defaults:
|
||||
run:
|
||||
shell: ${{ (matrix.target == 'msys2' && 'msys2') || 'bash' }} {0}
|
||||
env:
|
||||
CCACHE_DIR: ${{ runner.workspace }}/.cache/.ccache
|
||||
CCACHE_COMPILERCHECK: content
|
||||
CCACHE_SLOPPINESS: time_macros
|
||||
OS: windows
|
||||
TARGET: ${{ matrix.target }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
fetch-depth: 0
|
||||
fetch-tags: true
|
||||
|
||||
- name: Set up vcpkg cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
${{ github.workspace }}/build/vcpkg_installed
|
||||
${{ github.workspace }}/build/externals
|
||||
${{ github.workspace }}/.vcpkg
|
||||
key: ${{ runner.os }}-${{ matrix.target }}-vcpkg-${{ hashFiles('**/CMakeLists.txt', '**/vcpkg.json') }}-${{ github.run_id }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-${{ matrix.target }}-vcpkg-
|
||||
|
||||
- name: Set up MSVC
|
||||
uses: https://github.com/ilammy/msvc-dev-cmd@v1
|
||||
if: ${{ matrix.target == 'msvc' }}
|
||||
|
||||
- name: Cygwin with autoconf # NEEDED FOR LIBUSB
|
||||
shell: cmd
|
||||
run: ./.ci/windows/cygwin.bat
|
||||
|
||||
- name: Configure & Build
|
||||
shell: bash
|
||||
run: DEVEL=false ./.ci/windows/build.sh
|
||||
|
||||
- name: Package artifacts
|
||||
shell: bash
|
||||
run: |
|
||||
export PATH="${PATH}:/c/Qt/6.9.0/msvc2022_64/bin"
|
||||
./.ci/windows/package.sh
|
||||
|
||||
- name: Upload Windows artifacts
|
||||
uses: forgejo/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 2
|
||||
name: ${{ matrix.target }}.zip
|
||||
path: artifacts/*
|
||||
|
||||
linux:
|
||||
runs-on: linux
|
||||
env:
|
||||
CCACHE_DIR: /home/runner/.cache/ccache
|
||||
CCACHE_COMPILERCHECK: content
|
||||
CCACHE_SLOPPINESS: time_macros
|
||||
OS: linux
|
||||
TARGET: fresh
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
fetch-depth: 0
|
||||
fetch-tags: true
|
||||
|
||||
- name: Build
|
||||
run: TARGET=appimage RELEASE=1 DEVEL=false ./.ci/linux/build.sh v3 8
|
||||
|
||||
- name: Package AppImage
|
||||
run: ./.ci/linux/package.sh v3 &> /dev/null
|
||||
|
||||
- name: Upload Linux artifacts
|
||||
uses: forgejo/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 2
|
||||
name: linux.zip
|
||||
path: ./*.AppImage*
|
||||
|
||||
android:
|
||||
runs-on: android
|
||||
|
||||
env:
|
||||
CCACHE_DIR: /home/runner/.cache/ccache
|
||||
CCACHE_COMPILERCHECK: content
|
||||
CCACHE_SLOPPINESS: time_macros
|
||||
OS: android
|
||||
TARGET: universal
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
fetch-depth: 0
|
||||
fetch-tags: true
|
||||
|
||||
- name: Set tag name
|
||||
run: |
|
||||
if [[ "$GITHUB_REF_TYPE" == "tag" ]]; then
|
||||
echo "GIT_TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV
|
||||
fi
|
||||
echo $GIT_TAG_NAME
|
||||
|
||||
- name: Build
|
||||
run: DEVEL=false ANDROID_HOME=/home/runner/sdk ./.ci/android/build.sh
|
||||
env:
|
||||
ANDROID_KEYSTORE_B64: ${{ secrets.ANDROID_KEYSTORE_B64 }}
|
||||
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
|
||||
ANDROID_KEYSTORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASS }}
|
||||
|
||||
- name: Package Android artifacts
|
||||
run: ./.ci/android/package.sh
|
||||
|
||||
- name: Upload Android artifacts
|
||||
uses: forgejo/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 2
|
||||
name: android.zip
|
||||
path: artifacts/*
|
||||
|
||||
create_release:
|
||||
needs: [linux, windows, android]
|
||||
runs-on: linux
|
||||
outputs:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: 'recursive'
|
||||
path: 'eden-source'
|
||||
|
||||
- name: Download artifacts
|
||||
uses: forgejo/download-artifact@v4
|
||||
with:
|
||||
path: artifacts
|
||||
|
||||
- name: Grab and store version
|
||||
run: |
|
||||
cd eden-source
|
||||
tag_name=$(git describe --tags --abbrev=0)
|
||||
echo "VERSION=$tag_name" >> $GITHUB_ENV
|
||||
echo $tag_name
|
||||
|
||||
- name: Package artifacts properly
|
||||
shell: bash
|
||||
run: |
|
||||
set -ex
|
||||
mv ${{ github.workspace }}/eden-source eden-${{ env.VERSION }}
|
||||
cd artifacts
|
||||
ls *.zip
|
||||
|
||||
mkdir -p dist
|
||||
|
||||
cp linux.zip/Eden-*.AppImage dist/Eden-Linux-${{ env.VERSION }}-amd64.AppImage
|
||||
cp linux.zip/Eden-*.AppImage.zsync dist/Eden-Linux-${{ env.VERSION }}-amd64.AppImage.zsync
|
||||
cp msvc.zip/eden-windows-msvc*.zip dist/Eden-Windows-MSVC-${{ env.VERSION }}-amd64.zip
|
||||
cp android.zip/eden-android*.apk dist/Eden-Android-${{ env.VERSION }}.apk
|
||||
cp android.zip/eden-android*.aab dist/Eden-Android-${{ env.VERSION }}.aab
|
||||
cp source.zip/eden-unified-source*.tar.xz dist/Eden-Source-${{ env.VERSION }}.tar.xz
|
||||
cp source.zip/eden-unified-source*.tar.xz.sha256sum dist/Eden-Source-${{ env.VERSION }}.tar.xz.sha256sum
|
||||
|
||||
- name: Create release
|
||||
id: create_release
|
||||
uses: actions/forgejo-release@v2.6.0
|
||||
with:
|
||||
direction: upload
|
||||
tag: ${{ env.VERSION }}
|
||||
title: Eden ${{ env.VERSION }}
|
||||
release-dir: artifacts/dist/
|
||||
@@ -0,0 +1,52 @@
|
||||
From e1a946ffb79022d38351a0623f819a5419965c3e Mon Sep 17 00:00:00 2001
|
||||
From: crueter <crueter@eden-emu.dev>
|
||||
Date: Fri, 24 Oct 2025 23:41:09 -0700
|
||||
Subject: [PATCH] [build] Fix MinGW missing GetAddrInfoExCancel definition
|
||||
|
||||
MinGW does not define GetAddrInfoExCancel in its wstcpi whatever header,
|
||||
so to get around this we can just load it with GetProcAddress et al.
|
||||
|
||||
Signed-off-by: crueter <crueter@eden-emu.dev>
|
||||
---
|
||||
httplib.h | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/httplib.h b/httplib.h
|
||||
index e15ba44..90a76dc 100644
|
||||
--- a/httplib.h
|
||||
+++ b/httplib.h
|
||||
@@ -203,11 +203,13 @@
|
||||
#error Sorry, Visual Studio versions prior to 2015 are not supported
|
||||
#endif
|
||||
|
||||
-#pragma comment(lib, "ws2_32.lib")
|
||||
-
|
||||
using ssize_t = __int64;
|
||||
#endif // _MSC_VER
|
||||
|
||||
+#if defined(_MSC_VER) || defined(__MINGW32__)
|
||||
+#pragma comment(lib, "ws2_32.lib")
|
||||
+#endif
|
||||
+
|
||||
#ifndef S_ISREG
|
||||
#define S_ISREG(m) (((m) & S_IFREG) == S_IFREG)
|
||||
#endif // S_ISREG
|
||||
@@ -3557,7 +3559,15 @@ inline int getaddrinfo_with_timeout(const char *node, const char *service,
|
||||
auto wait_result =
|
||||
::WaitForSingleObject(event, static_cast<DWORD>(timeout_sec * 1000));
|
||||
if (wait_result == WAIT_TIMEOUT) {
|
||||
+#ifdef __MINGW32__
|
||||
+ typedef INT (WSAAPI *PFN_GETADDRINFOEXCANCEL)(HANDLE *CancelHandle);
|
||||
+ auto wsdll = LoadLibraryW((wchar_t*) "ws2_32.lib");
|
||||
+ PFN_GETADDRINFOEXCANCEL GetAddrInfoExCancel = (PFN_GETADDRINFOEXCANCEL) GetProcAddress(wsdll, "GetAddrInfoExCancel");
|
||||
+
|
||||
+ if (cancel_handle) { GetAddrInfoExCancel(&cancel_handle); }
|
||||
+#else
|
||||
if (cancel_handle) { ::GetAddrInfoExCancel(&cancel_handle); }
|
||||
+#endif
|
||||
::CloseHandle(event);
|
||||
return EAI_AGAIN;
|
||||
}
|
||||
--
|
||||
2.51.0
|
||||
|
||||
@@ -13,6 +13,8 @@ elseif (${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
|
||||
set(PLATFORM_OPENBSD ON)
|
||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "NetBSD")
|
||||
set(PLATFORM_NETBSD ON)
|
||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "DragonFly")
|
||||
set(PLATFORM_DRAGONFLYBSD ON)
|
||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Haiku")
|
||||
set(PLATFORM_HAIKU ON)
|
||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||
@@ -37,17 +39,23 @@ endif()
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules")
|
||||
|
||||
# https://gitlab.kitware.com/cmake/cmake/-/merge_requests/11112
|
||||
# This works totally fine on MinGW64, but not CLANG{,ARM}64
|
||||
if(MINGW AND CXX_CLANG)
|
||||
set(CMAKE_SYSTEM_VERSION 10.0.0)
|
||||
endif()
|
||||
|
||||
# NB: this does not account for SPARC
|
||||
# If you get Eden working on SPARC, please shoot crueter@crueter.xyz multiple emails
|
||||
# and you will be hailed for eternity
|
||||
if (PLATFORM_SUN)
|
||||
# Terrific Solaris pkg shenanigans
|
||||
list(APPEND CMAKE_PREFIX_PATH "/usr/lib/qt/6.6/lib/amd64/cmake")
|
||||
list(APPEND CMAKE_MODULE_PATH "/usr/lib/qt/6.6/lib/amd64/cmake")
|
||||
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_SYSROOT}/usr/lib/qt/6.6/lib/amd64/cmake")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SYSROOT}/usr/lib/qt/6.6/lib/amd64/cmake")
|
||||
|
||||
# Amazing - absolutely incredible
|
||||
list(APPEND CMAKE_PREFIX_PATH "/usr/lib/amd64/cmake")
|
||||
list(APPEND CMAKE_MODULE_PATH "/usr/lib/amd64/cmake")
|
||||
list(APPEND CMAKE_PREFIX_PATH "${CMAKE_SYSROOT}/usr/lib/amd64/cmake")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SYSROOT}/usr/lib/amd64/cmake")
|
||||
|
||||
# For some mighty reason, doing a normal release build sometimes may not trigger
|
||||
# the proper -O3 switch to materialize
|
||||
@@ -63,18 +71,18 @@ endif()
|
||||
|
||||
# Needed for FFmpeg w/ VAAPI and DRM
|
||||
if (PLATFORM_OPENBSD)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/usr/X11R6/include")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/X11R6/include")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/X11R6/lib")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R6/include")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R6/include")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/X11R6/lib")
|
||||
elseif (PLATFORM_NETBSD)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/usr/X11R7/include")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/X11R7/include")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/X11R7/lib")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R7/include")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R7/include")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/X11R7/lib")
|
||||
endif()
|
||||
|
||||
# NetBSD: Fun for the whole family!
|
||||
if (PLATFORM_NETBSD)
|
||||
set(ENV{PKG_CONFIG_PATH} "${PKG_CONFIG_PATH}:/usr/pkg/lib/ffmpeg7/pkgconfig")
|
||||
set(ENV{PKG_CONFIG_PATH} "${PKG_CONFIG_PATH}:${CMAKE_SYSROOT}/usr/pkg/lib/ffmpeg7/pkgconfig")
|
||||
endif()
|
||||
|
||||
# Detect current compilation architecture and create standard definitions
|
||||
@@ -92,12 +100,14 @@ function(detect_architecture symbol arch)
|
||||
if (ARCHITECTURE_${arch})
|
||||
set(ARCHITECTURE "${arch}" PARENT_SCOPE)
|
||||
set(ARCHITECTURE_${arch} 1 PARENT_SCOPE)
|
||||
add_definitions(-DARCHITECTURE_${arch}=1)
|
||||
add_definitions("-DARCHITECTURE_${arch}=1")
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
if (NOT ENABLE_GENERIC)
|
||||
# https://sourceforge.net/p/predef/wiki/Architectures/
|
||||
# TODO: THIS IS FUCKING FLAWED ONLY THE FIRST SYMBOL THAT APPEARS WILL BE CONSIDERED :(
|
||||
if (MSVC)
|
||||
detect_architecture("_M_AMD64" x86_64)
|
||||
detect_architecture("_M_IX86" x86)
|
||||
@@ -109,6 +119,48 @@ if (NOT ENABLE_GENERIC)
|
||||
detect_architecture("__arm__" arm)
|
||||
detect_architecture("__aarch64__" arm64)
|
||||
endif()
|
||||
detect_architecture("__ARM64__" arm64)
|
||||
detect_architecture("__aarch64__" arm64)
|
||||
detect_architecture("_M_ARM64" arm64)
|
||||
|
||||
detect_architecture("__arm__" arm)
|
||||
detect_architecture("__TARGET_ARCH_ARM" arm)
|
||||
detect_architecture("_M_ARM" arm)
|
||||
|
||||
detect_architecture("__x86_64" x86_64)
|
||||
detect_architecture("__x86_64__" x86_64)
|
||||
detect_architecture("__amd64" x86_64)
|
||||
detect_architecture("_M_X64" x86_64)
|
||||
|
||||
detect_architecture("__i386" x86)
|
||||
detect_architecture("__i386__" x86)
|
||||
detect_architecture("_M_IX86" x86)
|
||||
|
||||
detect_architecture("__ia64" ia64)
|
||||
detect_architecture("__ia64__" ia64)
|
||||
detect_architecture("_M_IA64" ia64)
|
||||
|
||||
detect_architecture("__mips" mips)
|
||||
detect_architecture("__mips__" mips)
|
||||
detect_architecture("_M_MRX000" mips)
|
||||
|
||||
detect_architecture("__powerpc64__" ppc64)
|
||||
detect_architecture("__ppc64__" ppc64)
|
||||
detect_architecture("__PPC64__" ppc64)
|
||||
detect_architecture("_ARCH_PPC64" ppc64)
|
||||
|
||||
detect_architecture("__ppc__" ppc)
|
||||
detect_architecture("__ppc" ppc)
|
||||
detect_architecture("__powerpc__" ppc)
|
||||
detect_architecture("_ARCH_COM" ppc)
|
||||
detect_architecture("_ARCH_PWR" ppc)
|
||||
detect_architecture("_ARCH_PPC" ppc)
|
||||
detect_architecture("_M_MPPC" ppc)
|
||||
detect_architecture("_M_PPC" ppc)
|
||||
|
||||
detect_architecture("__riscv" riscv)
|
||||
|
||||
detect_architecture("__EMSCRIPTEN__" wasm)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED ARCHITECTURE)
|
||||
@@ -139,9 +191,9 @@ if (CXX_CLANG_CL)
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:/EHsc> # thanks microsoft
|
||||
)
|
||||
|
||||
# REQUIRED CPU features IN Windows-amd64
|
||||
if (ARCHITECTURE_x86_64)
|
||||
add_compile_options(
|
||||
# Required CPU features for amd64
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-msse4.1>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-mcx16>
|
||||
)
|
||||
@@ -159,9 +211,8 @@ if (MSVC AND NOT CXX_CLANG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX-")
|
||||
endif()
|
||||
|
||||
if (PLATFORM_FREEBSD)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/local/lib")
|
||||
|
||||
if (PLATFORM_FREEBSD OR PLATFORM_DRAGONFLYBSD)
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/local/lib")
|
||||
endif()
|
||||
|
||||
# Set bundled sdl2/qt as dependent options.
|
||||
@@ -183,8 +234,7 @@ option(YUZU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF)
|
||||
option(YUZU_USE_QT_WEB_ENGINE "Use QtWebEngine for web applet implementation" OFF)
|
||||
set(YUZU_QT_MIRROR "" CACHE STRING "What mirror to use for downloading the bundled Qt libraries")
|
||||
|
||||
# FreeBSD doesn't have a cubeb port yet, vendoring it isn't required (it's optional anyways)
|
||||
cmake_dependent_option(ENABLE_CUBEB "Enables the cubeb audio backend" ON "NOT PLATFORM_FREEBSD" OFF)
|
||||
option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
|
||||
|
||||
set(EXT_DEFAULT OFF)
|
||||
if (MSVC OR ANDROID)
|
||||
@@ -212,11 +262,6 @@ cmake_dependent_option(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF
|
||||
|
||||
option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
|
||||
|
||||
option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF)
|
||||
if (YUZU_USE_PRECOMPILED_HEADERS)
|
||||
message(STATUS "Using Precompiled Headers.")
|
||||
set(CMAKE_PCH_INSTANTIATE_TEMPLATES ON)
|
||||
endif()
|
||||
option(YUZU_ENABLE_LTO "Enable link-time optimization" OFF)
|
||||
if(YUZU_ENABLE_LTO)
|
||||
include(CheckIPOSupported)
|
||||
@@ -227,6 +272,7 @@ if(YUZU_ENABLE_LTO)
|
||||
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
|
||||
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ${COMPILER_SUPPORTS_LTO})
|
||||
endif()
|
||||
|
||||
option(USE_CCACHE "Use ccache for compilation" OFF)
|
||||
set(CCACHE_PATH "ccache" CACHE STRING "Path to ccache binary")
|
||||
if(USE_CCACHE)
|
||||
@@ -235,11 +281,8 @@ if(USE_CCACHE)
|
||||
message(STATUS "Found ccache at: ${CCACHE_BINARY}")
|
||||
set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_BINARY})
|
||||
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_BINARY})
|
||||
if (YUZU_USE_PRECOMPILED_HEADERS)
|
||||
message(FATAL_ERROR "Precompiled headers are incompatible with ccache. Re-run CMake with -DYUZU_USE_PRECOMPILED_HEADERS=OFF.")
|
||||
endif()
|
||||
else()
|
||||
message(WARNING "USE_CCACHE enabled, but no executable found at: ${CCACHE_PATH}")
|
||||
message(FATAL_ERROR "USE_CCACHE enabled, but no executable found at: ${CCACHE_PATH}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -274,9 +317,11 @@ if (ANDROID OR WIN32 OR APPLE OR PLATFORM_SUN)
|
||||
# your own copy of it.
|
||||
set(DEFAULT_ENABLE_OPENSSL OFF)
|
||||
endif()
|
||||
|
||||
if (ENABLE_WEB_SERVICE)
|
||||
set(DEFAULT_ENABLE_OPENSSL ON)
|
||||
endif()
|
||||
|
||||
option(ENABLE_OPENSSL "Enable OpenSSL backend for ISslConnection" ${DEFAULT_ENABLE_OPENSSL})
|
||||
if (ENABLE_OPENSSL)
|
||||
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL OFF)
|
||||
@@ -352,10 +397,6 @@ if (NOT EXISTS ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.
|
||||
file(WRITE ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json "")
|
||||
endif()
|
||||
|
||||
if (UNIX)
|
||||
add_compile_definitions(YUZU_UNIX=1)
|
||||
endif()
|
||||
|
||||
if (YUZU_LEGACY)
|
||||
message(WARNING "Making legacy build. Performance may suffer.")
|
||||
add_compile_definitions(YUZU_LEGACY)
|
||||
@@ -385,6 +426,8 @@ endif()
|
||||
# Build/optimization presets
|
||||
if (PLATFORM_LINUX OR CXX_CLANG)
|
||||
if (ARCHITECTURE_x86_64)
|
||||
# See https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html
|
||||
# Generic supports Pentium Pro instruction set and above
|
||||
set(YUZU_BUILD_PRESET "custom" CACHE STRING "Build preset to use. One of: custom, generic, v3, zen2, zen4, native")
|
||||
if (${YUZU_BUILD_PRESET} STREQUAL "generic")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=x86-64 -mtune=generic")
|
||||
@@ -403,13 +446,17 @@ if (PLATFORM_LINUX OR CXX_CLANG)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native -mtune=native")
|
||||
endif()
|
||||
elseif(ARCHITECTURE_arm64)
|
||||
set(YUZU_BUILD_PRESET "custom" CACHE STRING "Build preset to use. One of: custom, generic, armv9")
|
||||
# See https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html
|
||||
set(YUZU_BUILD_PRESET "custom" CACHE STRING "Build preset to use. One of: custom, generic, armv9, native")
|
||||
if (${YUZU_BUILD_PRESET} STREQUAL "generic")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv8-a -mtune=generic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8-a -mtune=generic")
|
||||
elseif (${YUZU_BUILD_PRESET} STREQUAL "armv9")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=armv9-a -mtune=generic")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv9-a -mtune=generic")
|
||||
elseif (${YUZU_BUILD_PRESET} STREQUAL "native")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -mtune=native")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=native -mtune=native")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -539,7 +586,7 @@ else()
|
||||
find_package(zstd 1.5 REQUIRED MODULE)
|
||||
|
||||
# wow
|
||||
find_package(Boost 1.57.0 CONFIG REQUIRED OPTIONAL_COMPONENTS headers context system fiber)
|
||||
find_package(Boost 1.57.0 CONFIG REQUIRED OPTIONAL_COMPONENTS headers context system fiber filesystem)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR ANDROID)
|
||||
find_package(gamemode 1.7 MODULE)
|
||||
@@ -579,6 +626,35 @@ function(create_target_directory_groups target_name)
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
# Platform-specific library requirements
|
||||
# Put these BEFORE EXTERNALS or Boost WILL die
|
||||
# =============================================
|
||||
|
||||
if (APPLE)
|
||||
# Umbrella framework for everything GUI-related
|
||||
find_library(COCOA_LIBRARY Cocoa)
|
||||
set(PLATFORM_LIBRARIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY})
|
||||
find_library(ICONV_LIBRARY iconv REQUIRED)
|
||||
list(APPEND PLATFORM_LIBRARIES ${ICONV_LIBRARY})
|
||||
elseif (WIN32)
|
||||
# Target Windows 10
|
||||
add_compile_definitions(_WIN32_WINNT=0x0A00 WINVER=0x0A00)
|
||||
set(PLATFORM_LIBRARIES winmm ws2_32 iphlpapi)
|
||||
if (MINGW)
|
||||
# PSAPI is the Process Status API
|
||||
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version)
|
||||
endif()
|
||||
elseif (PLATFORM_HAIKU)
|
||||
# Haiku is so special :)
|
||||
# Some fucking genius decided to name an entire module "network" in 2019
|
||||
# this caused great disaster amongst the Haiku community who had came first with
|
||||
# their "libnetwork.so"; since CMake doesn't do magic, we have to use an ABSOLUTE PATH
|
||||
# to the library itself, otherwise it will think we are linking to... our network thing
|
||||
set(PLATFORM_LIBRARIES bsd /boot/system/lib/libnetwork.so)
|
||||
elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$")
|
||||
set(PLATFORM_LIBRARIES rt)
|
||||
endif()
|
||||
|
||||
add_subdirectory(externals)
|
||||
|
||||
# pass targets from externals
|
||||
@@ -729,34 +805,6 @@ endif()
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
# Platform-specific library requirements
|
||||
# ======================================
|
||||
|
||||
if (APPLE)
|
||||
# Umbrella framework for everything GUI-related
|
||||
find_library(COCOA_LIBRARY Cocoa)
|
||||
set(PLATFORM_LIBRARIES ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${COREVIDEO_LIBRARY})
|
||||
find_library(ICONV_LIBRARY iconv REQUIRED)
|
||||
list(APPEND PLATFORM_LIBRARIES ${ICONV_LIBRARY})
|
||||
elseif (WIN32)
|
||||
# Target Windows 10
|
||||
add_compile_definitions(_WIN32_WINNT=0x0A00 WINVER=0x0A00)
|
||||
set(PLATFORM_LIBRARIES winmm ws2_32 iphlpapi)
|
||||
if (MINGW)
|
||||
# PSAPI is the Process Status API
|
||||
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version)
|
||||
endif()
|
||||
elseif (PLATFORM_HAIKU)
|
||||
# Haiku is so special :)
|
||||
# Some fucking genius decided to name an entire module "network" in 2019
|
||||
# this caused great disaster amongst the Haiku community who had came first with
|
||||
# their "libnetwork.so"; since CMake doesn't do magic, we have to use an ABSOLUTE PATH
|
||||
# to the library itself, otherwise it will think we are linking to... our network thing
|
||||
set(PLATFORM_LIBRARIES bsd /boot/system/lib/libnetwork.so)
|
||||
elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$")
|
||||
set(PLATFORM_LIBRARIES rt)
|
||||
endif()
|
||||
|
||||
# Setup a custom clang-format target (if clang-format can be found) that will run
|
||||
# against all the src files. This should be used before making a pull request.
|
||||
# =======================================================================
|
||||
@@ -900,6 +948,14 @@ if(MSVC)
|
||||
)
|
||||
endif()
|
||||
|
||||
if (MINGW)
|
||||
# This saves a truly ridiculous amount of time during linking
|
||||
# In my tests, without this it takes 2 mins, with it takes 3-5 seconds
|
||||
# or on GitHub Actions, 10 minutes -> 3 seconds
|
||||
set(MINGW_FLAGS "-Wl,--strip-all -Wl,--gc-sections")
|
||||
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${MINGW_FLAGS}")
|
||||
endif()
|
||||
|
||||
add_subdirectory(src)
|
||||
|
||||
# Set yuzu project or yuzu-cmd project as default StartUp Project in Visual Studio depending on whether QT is enabled or not
|
||||
|
||||
@@ -594,6 +594,14 @@ function(AddCIPackage)
|
||||
add_ci_package(windows-arm64)
|
||||
endif()
|
||||
|
||||
if ((MINGW AND ARCHITECTURE_x86_64) AND NOT "mingw-amd64" IN_LIST DISABLED_PLATFORMS)
|
||||
add_ci_package(mingw-amd64)
|
||||
endif()
|
||||
|
||||
if ((MINGW AND ARCHITECTURE_arm64) AND NOT "mingw-arm64" IN_LIST DISABLED_PLATFORMS)
|
||||
add_ci_package(mingw-arm64)
|
||||
endif()
|
||||
|
||||
if (ANDROID AND NOT "android" IN_LIST DISABLED_PLATFORMS)
|
||||
add_ci_package(android)
|
||||
endif()
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2020 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
function(copy_yuzu_FFmpeg_deps target_dir)
|
||||
include(WindowsCopyFiles)
|
||||
set(DLL_DEST "$<TARGET_FILE_DIR:${target_dir}>/")
|
||||
file(READ "${FFmpeg_PATH}/requirements.txt" FFmpeg_REQUIRED_DLLS)
|
||||
string(STRIP "${FFmpeg_REQUIRED_DLLS}" FFmpeg_REQUIRED_DLLS)
|
||||
windows_copy_files(${target_dir} ${FFmpeg_LIBRARY_DIR} ${DLL_DEST} ${FFmpeg_REQUIRED_DLLS})
|
||||
endfunction(copy_yuzu_FFmpeg_deps)
|
||||
@@ -1,8 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2016 Citra Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
function(copy_yuzu_SDL_deps target_dir)
|
||||
include(WindowsCopyFiles)
|
||||
set(DLL_DEST "$<TARGET_FILE_DIR:${target_dir}>/")
|
||||
windows_copy_files(${target_dir} ${SDL2_DLL_DIR} ${DLL_DEST} SDL2.dll)
|
||||
endfunction(copy_yuzu_SDL_deps)
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2019 Citra Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
@@ -75,16 +78,16 @@ function(find_ffmpeg LIBNAME)
|
||||
)
|
||||
else()
|
||||
list(APPEND INCLUDE_PATHS
|
||||
/usr/local/include/ffmpeg
|
||||
/usr/local/include/lib${LIBNAME}
|
||||
/usr/include/ffmpeg
|
||||
/usr/include/lib${LIBNAME}
|
||||
/usr/include/ffmpeg/lib${LIBNAME}
|
||||
${CMAKE_SYSROOT}/usr/local/include/ffmpeg
|
||||
${CMAKE_SYSROOT}/usr/local/include/lib${LIBNAME}
|
||||
${CMAKE_SYSROOT}/usr/include/ffmpeg
|
||||
${CMAKE_SYSROOT}/usr/include/lib${LIBNAME}
|
||||
${CMAKE_SYSROOT}/usr/include/ffmpeg/lib${LIBNAME}
|
||||
)
|
||||
|
||||
list(APPEND LIB_PATHS
|
||||
/usr/local/lib
|
||||
/usr/lib
|
||||
${CMAKE_SYSROOT}/usr/local/lib
|
||||
${CMAKE_SYSROOT}/usr/lib
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# buildcache wrapper
|
||||
OPTION(USE_CCACHE "Use buildcache for compilation" OFF)
|
||||
IF(USE_CCACHE)
|
||||
FIND_PROGRAM(CCACHE buildcache)
|
||||
IF (CCACHE)
|
||||
MESSAGE(STATUS "Using buildcache found in PATH")
|
||||
SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
|
||||
SET_PROPERTY(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
|
||||
ELSE(CCACHE)
|
||||
MESSAGE(WARNING "USE_CCACHE enabled, but no buildcache executable found")
|
||||
ENDIF(CCACHE)
|
||||
ENDIF(USE_CCACHE)
|
||||
@@ -7,7 +7,9 @@
|
||||
"version": "3.6.0",
|
||||
"min_version": "1.1.1",
|
||||
"disabled_platforms": [
|
||||
"macos-universal"
|
||||
"macos-universal",
|
||||
"mingw-amd64",
|
||||
"mingw-arm64"
|
||||
]
|
||||
},
|
||||
"boost": {
|
||||
@@ -18,7 +20,7 @@
|
||||
"hash": "4fb7f6fde92762305aad8754d7643cd918dd1f3f67e104e9ab385b18c73178d72a17321354eb203b790b6702f2cf6d725a5d6e2dfbc63b1e35f9eb59fb42ece9",
|
||||
"git_version": "1.89.0",
|
||||
"version": "1.57",
|
||||
"find_args": "CONFIG",
|
||||
"find_args": "CONFIG OPTIONAL_COMPONENTS headers context system fiber filesystem",
|
||||
"patches": [
|
||||
"0001-clang-cl.patch",
|
||||
"0002-use-marmasm.patch",
|
||||
|
||||
@@ -0,0 +1,354 @@
|
||||
[
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "the-legend-of-zelda-breath-of-the-wild",
|
||||
"releases": [
|
||||
{"id": "01007EF00011E000"}
|
||||
],
|
||||
"title": "The Legend of Zelda: Breath of the Wild"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "super-mario-odyssey",
|
||||
"releases": [
|
||||
{"id": "0100000000010000"}
|
||||
],
|
||||
"title": "Super Mario Odyssey"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "animal-crossing-new-horizons",
|
||||
"releases": [
|
||||
{"id": "01006F8002326000"}
|
||||
],
|
||||
"title": "Animal Crossing: New Horizons"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "pokemon-legends-z-a",
|
||||
"releases": [
|
||||
{"id": "0100F43008C44000"}
|
||||
],
|
||||
"title": "Pokémon Legends: Z-A"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "the-legend-of-zelda-tears-of-the-kingdom",
|
||||
"releases": [
|
||||
{"id": "0100F2C0115B6000"}
|
||||
],
|
||||
"title": "The Legend of Zelda: Tears of the Kingdom"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "super-mario-galaxy",
|
||||
"releases": [
|
||||
{"id": "010099C022B96000"}
|
||||
],
|
||||
"title": "Super Mario Galaxy"
|
||||
},
|
||||
{
|
||||
"compatibility": 3,
|
||||
"directory": "star-wars-republic-commando",
|
||||
"releases": [
|
||||
{"id": "0100FA10115F8000"}
|
||||
],
|
||||
"title": "Star Wars: Republic Commando"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "doki-doki-literature-club-plus",
|
||||
"releases": [
|
||||
{"id": "010086901543E000"}
|
||||
],
|
||||
"title": "Doki Doki Literature Club Plus"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "pokemon-scarlet",
|
||||
"releases": [
|
||||
{"id": "0100A3D008C5C000"}
|
||||
],
|
||||
"title": "Pokémon Scarlet"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "pokemon-violet",
|
||||
"releases": [
|
||||
{"id": "01008F6008C5E000"}
|
||||
],
|
||||
"title": "Pokémon Violet"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "pokemon-legends-arceus",
|
||||
"releases": [
|
||||
{"id": "01001E300D162000"}
|
||||
],
|
||||
"title": "Pokémon Legends: Arceus"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "splatoon-2",
|
||||
"releases": [
|
||||
{"id": "01003BC0000A0000"}
|
||||
],
|
||||
"title": "Splatoon 2"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "super-smash-bros-ultimate",
|
||||
"releases": [
|
||||
{"id": "01006A800016E000"}
|
||||
],
|
||||
"title": "Super Smash Bros. Ultimate"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "mario-kart-8-deluxe",
|
||||
"releases": [
|
||||
{"id": "0100152000022000"}
|
||||
],
|
||||
"title": "Mario Kart 8 Deluxe"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "splatoon-3",
|
||||
"releases": [
|
||||
{"id": "0100C2500FC20000"}
|
||||
],
|
||||
"title": "Splatoon 3"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "new-super-mario-bros-u-deluxe",
|
||||
"releases": [
|
||||
{"id": "0100EA80032EA000"}
|
||||
],
|
||||
"title": "New Super Mario Bros. U Deluxe"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "hyrule-warriors-age-of-calamity",
|
||||
"releases": [
|
||||
{"id": "01002B00111A2000"}
|
||||
],
|
||||
"title": "Hyrule Warriors: Age of Calamity"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "luigis-mansion-3",
|
||||
"releases": [
|
||||
{"id": "0100DCA0064A6000"}
|
||||
],
|
||||
"title": "Luigi's Mansion 3"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "pokemon-brilliant-diamond",
|
||||
"releases": [
|
||||
{"id": "0100000011D90000"}
|
||||
],
|
||||
"title": "Pokémon Brilliant Diamond"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "pokemon-shining-pearl",
|
||||
"releases": [
|
||||
{"id": "010018E011D92000"}
|
||||
],
|
||||
"title": "Pokémon Shining Pearl"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "super-mario-3d-world-bowsers-fury",
|
||||
"releases": [
|
||||
{"id": "010028600EBDA000"}
|
||||
],
|
||||
"title": "Super Mario 3D World + Bowser's Fury"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "the-legend-of-zelda-links-awakening",
|
||||
"releases": [
|
||||
{"id": "01006BB00C6F0000"}
|
||||
],
|
||||
"title": "The Legend of Zelda: Link's Awakening"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "fire-emblem-three-houses",
|
||||
"releases": [
|
||||
{"id": "010055D009F78000"}
|
||||
],
|
||||
"title": "Fire Emblem: Three Houses"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "metroid-dread",
|
||||
"releases": [
|
||||
{"id": "010093801237C000"}
|
||||
],
|
||||
"title": "Metroid Dread"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "paper-mario-the-origami-king",
|
||||
"releases": [
|
||||
{"id": "0100A3900C3E2000"}
|
||||
],
|
||||
"title": "Paper Mario: The Origami King"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "xenoblade-chronicles-definitive-edition",
|
||||
"releases": [
|
||||
{"id": "0100FF500E34A000"}
|
||||
],
|
||||
"title": "Xenoblade Chronicles: Definitive Edition"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "xenoblade-chronicles-3",
|
||||
"releases": [
|
||||
{"id": "010074F013262000"}
|
||||
],
|
||||
"title": "Xenoblade Chronicles 3"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "pikmin-3-deluxe",
|
||||
"releases": [
|
||||
{"id": "0100F8600D4B0000"}
|
||||
],
|
||||
"title": "Pikmin 3 Deluxe"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "donkey-kong-country-tropical-freeze",
|
||||
"releases": [
|
||||
{"id": "0100C1F0054B6000"}
|
||||
],
|
||||
"title": "Donkey Kong Country: Tropical Freeze"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "kirby-and-the-forgotten-land",
|
||||
"releases": [
|
||||
{"id": "01004D300C5AE000"}
|
||||
],
|
||||
"title": "Kirby and the Forgotten Land"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "mario-party-superstars",
|
||||
"releases": [
|
||||
{"id": "01006B400D8B2000"}
|
||||
],
|
||||
"title": "Mario Party Superstars"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "clubhouse-games-51-worldwide-classics",
|
||||
"releases": [
|
||||
{"id": "0100F8600D4B0000"}
|
||||
],
|
||||
"title": "Clubhouse Games: 51 Worldwide Classics"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "ring-fit-adventure",
|
||||
"releases": [
|
||||
{"id": "01006B300BAF8000"}
|
||||
],
|
||||
"title": "Ring Fit Adventure"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "arms",
|
||||
"releases": [
|
||||
{"id": "01009B500007C000"}
|
||||
],
|
||||
"title": "ARMS"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "super-mario-maker-2",
|
||||
"releases": [
|
||||
{"id": "01009B90006DC000"}
|
||||
],
|
||||
"title": "Super Mario Maker 2"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "pokemon-lets-go-pikachu",
|
||||
"releases": [
|
||||
{"id": "010003F003A34000"}
|
||||
],
|
||||
"title": "Pokémon: Let's Go, Pikachu!"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "pokemon-lets-go-eevee",
|
||||
"releases": [
|
||||
{"id": "0100187003A36000"}
|
||||
],
|
||||
"title": "Pokémon: Let's Go, Eevee!"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "pokemon-sword",
|
||||
"releases": [
|
||||
{"id": "0100ABF008968000"}
|
||||
],
|
||||
"title": "Pokémon Sword"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "pokemon-shield",
|
||||
"releases": [
|
||||
{"id": "01008DB008C2C000"}
|
||||
],
|
||||
"title": "Pokémon Shield"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "new-pokemon-snap",
|
||||
"releases": [
|
||||
{"id": "0100F4300C182000"}
|
||||
],
|
||||
"title": "New Pokémon Snap"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "mario-golf-super-rush",
|
||||
"releases": [
|
||||
{"id": "0100C9C00E25C000"}
|
||||
],
|
||||
"title": "Mario Golf: Super Rush"
|
||||
},
|
||||
{
|
||||
"compatibility": 1,
|
||||
"directory": "mario-tennis-aces",
|
||||
"releases": [
|
||||
{"id": "0100BDE00862A000"}
|
||||
],
|
||||
"title": "Mario Tennis Aces"
|
||||
},
|
||||
{
|
||||
"compatibility": 2,
|
||||
"directory": "wario-ware-get-it-together",
|
||||
"releases": [
|
||||
{"id": "0100563010F22000"}
|
||||
],
|
||||
"title": "WarioWare: Get It Together!"
|
||||
},
|
||||
{
|
||||
"compatibility": 0,
|
||||
"directory": "big-brain-academy-brain-vs-brain",
|
||||
"releases": [
|
||||
{"id": "0100190010F24000"}
|
||||
],
|
||||
"title": "Big Brain Academy: Brain vs. Brain"
|
||||
}
|
||||
]
|
||||
@@ -1,8 +1,3 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
|
||||
<RCC>
|
||||
<qresource prefix="compatibility_list">
|
||||
<file>compatibility_list.json</file>
|
||||
|
||||
|
Before Width: | Height: | Size: 316 KiB After Width: | Height: | Size: 315 KiB |
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 4.9 MiB After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 37 KiB |
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="512"
|
||||
height="512"
|
||||
fill="none"
|
||||
viewBox="0 0 512 512"
|
||||
version="1.1"
|
||||
id="svg7"
|
||||
sodipodi:docname="dev.eden_emu.eden.svg"
|
||||
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs7" />
|
||||
<sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="1.25"
|
||||
inkscape:cx="186.8"
|
||||
inkscape:cy="210.4"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="849"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg7" />
|
||||
<path
|
||||
fill="#bf42f6"
|
||||
d="M346.71 255.306c.788.006 1.577.013 3.124.059 4.006.027 7.253.015 10.501.003 33.391.022 66.783.028 100.175.078 8.174.013 16.349.279 24.522.209 3.084-.026 4.596.75 4.356 4.156-.293 4.157-.31 8.343-.259 12.513.049 3.964-1.248 5.539-5.679 5.524-48.85-.158-97.701-.071-146.552-.056-22.107.007-44.214 0-66.321 0h-5.43v7.117h223.011c-1.553 8.254-2.894 15.76-4.475 23.215-.17.802-1.666 1.617-2.685 1.87-1.312.327-2.763.099-4.155.099H265.099v6.701h216.666c-1.609 5.425-2.887 10.074-4.367 14.658-2.758 8.54-2.807 8.524-11.564 8.524-64.929 0-129.859.014-194.788-.04-3.401-.003-6.19.251-4.758 4.652.349 1.075 1.875 2.026 3.071 2.491 1.075.418 2.439.092 3.676.092l191.542.001h7.17c-3.533 7.29-6.399 13.72-9.834 19.83-.651 1.157-3.562 1.448-5.432 1.454-27.981.088-55.963.061-83.944.061-31.692 0-63.384.005-95.075-.008-2.61-.002-5.219-.124-8.53-.021-3.11.173-5.518.177-7.926.181-.849-7.032-2.289-14.051-2.44-21.098-.547-25.616-.773-51.242-.844-76.864-.014-4.88 1.228-9.763 2.52-14.927 2.88-.296 5.132-.31 7.81-.259 22.492.021 44.557-.024 67.034-.066 4.149-.049 7.886-.099 11.624-.149"
|
||||
id="path1"
|
||||
style="fill:#fea265;fill-opacity:1" />
|
||||
<path
|
||||
fill="#ff44c4"
|
||||
d="M168.124 257.114v-9.301c-2.407 0-4.67-.001-6.933.001-44.522.025-89.044.01-133.566.146-3.858.012-5.358-1.03-4.744-5 .683-4.418 1.254-8.885 1.393-13.346.106-3.386 1.603-4.005 4.608-4.012 45.9-.11 91.801-.344 137.702-.452 3.865-.009 6.842-.344 6.032-5.831H25.546c1.39-6.599 2.354-12.681 4.138-18.513.413-1.35 3.628-2.615 5.555-2.618 47.458-.084 94.917-.01 142.375.109 3.275.008 5.855-.38 6.138-5.045H31.147c3.43-9.311 6.348-17.71 9.74-25.913.483-1.166 3.265-1.942 4.987-1.95 24.582-.124 49.165-.21 73.745.014 5.283.048 8.073-2.583 11.128-7.248h-86.45c4.35-7.835 8.002-14.753 12.077-21.412.67-1.096 3.197-1.473 4.868-1.478 30.611-.083 61.226-.291 91.832.113 7.185.094 12.719-2.619 18.321-6.774H61.385c2.592-3.805 4.355-6.546 6.268-9.178 8.88-12.216 8.896-12.209 24.069-12.21q60.991-.002 121.982-.001h5.885c-3.968-4.128-7.007-6.966-12.321-6.944-38.959.165-77.92.09-116.88.09H85.03l-.741-1.31c3.832-3.852 7.564-7.81 11.514-11.537 11.456-10.807 11.495-10.996 27.246-10.717 23.209.411 45.103 6.8 66.234 15.885 5.657 2.432 10.56 3.715 16.604.944 4.726-2.166 10.217-2.664 16.034-3.521-4.411 8.139.887 12.041 5.52 16.414 5.73 5.408 11.223 11.07 16.751 16.688 1.165 1.185 2.035 2.659 3.685 4.857-2.256.128-3.665.274-5.075.275-9.739.008-19.489.286-29.214-.085-28.045-1.07-51.592 9.244-71.602 28.209-7.152 6.778-13.525 14.379-20.212 21.643-.683.742-1.079 1.748-2.209 3.632 33.94-11.926 65.876-27.377 101.589-28.637l.859 1.395c-4.228 4.943-8.188 10.148-12.73 14.783-18.091 18.461-28.905 40.673-33.892 65.773-1.402 7.057-1.306 14.412-2.504 21.941-1.992.248-3.377.184-4.762.121m19.995-91.726c3.865.004 7.763-.315 11.585.09 5.562.589 8.92-2.178 12.525-7.52-9.134 2.152-17.144 4.039-25.139 5.988-.008.002.209.928 1.029 1.442"
|
||||
id="path2"
|
||||
style="fill:#ff7f2a;fill-opacity:1" />
|
||||
<path
|
||||
fill="#bf43f5"
|
||||
d="M167.719 257.136c1.79.041 3.175.105 4.979.185.569 3.091.719 6.166.87 9.24l1.623.577c2.3-3.392 4.599-6.785 7.467-10.458 2.456-.382 4.343-.483 6.573-.598 1.405-.133 2.466-.342 3.53-.356 12.08-.162 24.16-.295 36.693-.368 3.463.111 6.473.155 9.484.2-1.12 6.677-2.306 13.345-3.347 20.035-4.715 30.285-5.404 60.697-3.186 91.651-2.469.746-4.517 1.048-6.565 1.35-56.117-.025-112.236-.135-168.353.061-5.334.018-8.298-1.559-10.185-6.415-1.874-4.824-4.295-9.436-6.907-15.069h17.147c53.955 0 107.909.013 161.863-.044 2.026-.002 4.864 1.218 5.327-2.599.469-3.862-1.271-4.625-4.781-4.616-38.803.103-77.607.061-116.411.068-20.405.003-40.811-.065-61.215.125-3.545.033-5.36-1.044-6.324-4.419-1.642-5.75-3.577-11.416-5.879-18.659 65.363-.259 129.677-.027 194.424-.144l.372-6.533c-1.901-.099-3.398-.244-4.896-.245-58.283-.032-116.565-.056-174.848-.06-4.48 0-8.964.279-13.439.163-1.138-.029-3.078-.897-3.247-1.681-1.676-7.766-3.056-15.595-4.624-23.961 8.433 0 15.808-.031 23.182.02 1.998.014 3.995.4 5.992.401 55.964.023 111.928.02 167.892.017 6.075 0 6.307-.256 6.266-7.198H23.431c-.284-6.643-.72-12.739-.592-18.823.016-.786 2.94-2.144 4.53-2.165 15.149-.197 30.3-.177 45.45-.191 17.623-.016 35.248-.072 52.871.018 13.876.07 27.75.335 42.029.491"
|
||||
id="path3"
|
||||
style="fill:#fea265;fill-opacity:1" />
|
||||
<path
|
||||
fill="#985ded"
|
||||
d="M225.868 369.021c2.02-.729 4.068-1.031 6.551-1.351 2.672 17.851 4.169 35.853 7.334 53.556 4.047 22.64 9.785 44.94 18.63 66.298.29.699.498 1.433.742 2.142-25.39 10.452-124.622-22.609-146.929-49.453h122.669c.302-4.81-.85-6.915-5.85-6.891-39.883.193-79.768.055-119.652.182-4.441.014-8.036-.845-11.208-4.17-6.87-7.203-13.99-14.166-21.008-21.228l.69-1.319H229.63l-1.24-7.289h-5.726c-42.821 0-85.642.011-128.464-.013-6.18-.003-12.371-.428-18.537-.173-3.704.154-6.14-1.066-8.104-4.073-4.111-6.292-8.367-12.489-13.256-19.755h171.593c0-2.433 0-4.234-.027-6.463m35.103.062c2.442-.418 4.85-.422 7.641-.431.482 1.987.581 3.979.706 6.499H457.62c-3.126 4.951-5.544 8.946-8.123 12.835-7.64 11.521-7.665 11.508-21.226 11.509l-147.5.003h-5.407c-.602 6.688-.15 7.214 5.824 7.214q73.75.004 147.5.004h6.891c-4.048 4.533-7.454 7.812-10.233 11.556-9.047 12.19-20.575 16.124-35.967 15.542-33.039-1.25-66.159-.384-99.246-.384h-5.45c-.275 5.77.583 6.774 5.594 6.776 34.478.012 68.957.006 103.435.007h5.302l.443 1.274c-3.495 2.62-6.91 5.358-10.5 7.842-23.505 16.265-49.192 27.744-76.893 34.696-3.263.819-6.763 1.374-10.069 1.085-1.874-.164-4.144-1.915-5.266-3.597-9.503-14.258-15.474-30.133-21.055-46.227-7.418-21.394-11.59-43.465-14.702-66.203"
|
||||
id="path4"
|
||||
style="fill:#fe8463;fill-opacity:1" />
|
||||
<path
|
||||
fill="#ff43c4"
|
||||
d="M360.319 254.985c-3.232.395-6.479.407-10.189.359 2.612-14.328 2.295-28.523-1.162-42.703-4.74-19.439-15.808-34.254-32.502-45.039-.639-.413-1.27-.839-1.852-2.137h52.547l.213-1.506c-7.026-2.665-13.978-5.752-21.733-5.819-15.455-.136-30.914.047-46.369-.12-3.092-.034-6.173-1.044-9.202-2.411 18.374-7.385 37.172-6.583 56.061-3.6 19.128 3.021 35.771 12.957 54.614 20.622l-3.662-6.95c1.846-.148 3.252-.359 4.658-.36 21.485-.021 42.97.048 64.454-.082 3.262-.019 5.062.848 6.121 4.101 2.319 7.128 5.012 14.134 7.891 22.129h-127.22c.144 4.537 2.105 5.796 5.897 5.783q43.588-.154 87.175-.028c10.803.031 21.607.309 32.402.688 1.327.047 3.486 1.183 3.763 2.215 1.549 5.774 2.638 11.671 4.021 18.169H361.127c-.548 6.29-.254 6.61 5.207 6.619 38.949.061 77.898.158 116.847.146 2.863-.001 4.211.672 4.397 3.772.304 5.076.956 10.136 1.609 15.183.414 3.199-.637 4.443-4.005 4.328-6.635-.228-13.283-.105-19.926-.106q-49.152-.005-98.304.001c-6.266.001-6.266.007-6.633 6.746"
|
||||
id="path5"
|
||||
style="fill:#ff7f2a;fill-opacity:1" />
|
||||
<path
|
||||
fill="#ff42c3"
|
||||
d="M214.837 27.347c41.832-7.02 81.069-2.12 103 5.453-3.084 7.222-6.153 14.42-9.231 21.612-1.64 3.833-3.549 7.574-4.869 11.513-1.091 3.256-2.992 4.06-6.217 4.042-22.092-.119-44.185-.062-67.454-.062 3.94 4.046 6.873 7.296 12.308 7.245 16.689-.157 33.381-.056 50.072-.055h6.745c-3.661 6.1-6.056 11.84-9.975 16.217-6.139 6.856-13.44 12.659-19.972 19.184-2.516 2.514-3.687 2.416-6.101-.229-9.873-10.813-19.809-21.593-30.196-31.908-11.454-11.376-25.983-16.088-41.742-17.908-14.011-1.618-27.312.965-40.451 5.507a34.7 34.7 0 0 1-9.886 1.86c-7.248.275-14.513.085-21.995-.508 28.501-21.58 60.452-35.31 95.964-41.963m53.746 77.311 3.605-4.283h-11.056c1.525 2.155 2.339 3.846 3.653 4.931.643.531 2.216-.065 3.798-.648"
|
||||
id="path6"
|
||||
style="fill:#63915a;fill-opacity:1" />
|
||||
<path
|
||||
fill="#ff44c4"
|
||||
d="M377.152 144.943c-12.092-9.869-26.287-13.386-40.919-15.513-16.956-2.465-33.583-1.51-50.074 5.653.952-1.742 1.722-3.617 2.884-5.206 15.646-21.395 34.923-38.76 58.357-51.192 3.545-1.881 8.365-1.78 12.607-1.849 13.445-.22 26.898-.165 40.345-.002 2.017.024 4.514.652 5.947 1.938 7.01 6.292 13.741 12.894 20.545 19.414.386.37.542.98 1.172 2.175h-5.468c-30.918 0-61.837.116-92.753-.114-5.213-.039-8.095 2.606-11.98 6.969h6.295c35.092-.001 70.184.065 105.275-.091 4.005-.018 6.738 1.186 8.994 4.365 3.728 5.252 7.642 10.372 12.234 16.566h-90.207l-.153 1.134c6.582 2.444 12.387 6.339 20.175 6.183 23.179-.463 46.374-.087 69.561-.245 3.754-.026 6.054 1.177 7.725 4.48 2.979 5.887 6.211 11.646 9.711 18.154-2.304.15-3.753.325-5.203.326-22.415.017-44.831-.042-67.246.074-3.19.016-5.54-.802-7.705-3.211-3.093-3.441-6.561-6.545-10.119-10.008M267.626 255.455a972 972 0 0 1-7.18.028c2.056-26.604 4.319-53.217 12.215-78.952 1.17-3.813 2.458-5.484 6.241-2.773 3.757 2.69 8.105 4.741 11.346 7.934 22.076 21.743 42.878 44.52 56.347 73.308-3.623.356-7.36.406-11.542.092-1.222-4.579-3.365-6.359-8.021-6.284-17.697.286-35.402.122-53.104.126h-6.302zm2.176-30.951h44.834l.519-1.678c-1.826-.906-3.637-2.562-5.479-2.597-12.466-.234-24.937-.104-37.407-.144-2.831-.009-4.108.992-2.467 4.419m10.378-31.312c-3.285-.223-6.209-.007-5.651 4.577h16.788c-2.211-5.078-6.298-4.716-11.137-4.577m-41.043 62.082c-3.21.24-6.22.195-9.566-.301-.214-2.054-.093-3.657.08-5.95-11.47 0-22.329-.006-33.188.003-5.917.004-6.716.761-7.574 7.07-1.888.101-3.775.202-6.063.302 4.551-9.736 8.81-19.906 14.604-29.11 10.304-16.372 21.983-31.76 37.616-43.656 7.217-5.492 15.096-9.592 23.847-11.977 1.13-.308 2.333-.345 4.833-.691-10.43 27.968-18.906 55.583-24.589 84.31m-25.72-36.778c-4.442-.439-5.459 2.888-7.32 6.624 9.882 0 19.096-.135 28.302.061 4.188.089 5.338-1.767 4.777-6.598-8.393 0-16.684 0-25.759-.087m33.855-22.914c-1.112-.66-2.178-1.777-3.343-1.89-2.903-.28-5.86.032-8.779-.147-3.761-.229-5.839 1.749-7.932 5.507 6.203 0 11.685.126 17.15-.12.95-.043 1.829-1.662 2.904-3.35m96.491-154.518c17.922 7.326 34.473 16.35 49.706 28.527-30.671-2.027-59.888 3.402-88.579 15.8.855-4.673 2.395-7.566 6.408-8.806 5.86-1.811 11.674-3.77 17.472-6.488h-16.478c5.867-11.505 11.161-22.041 16.71-32.442.395-.74 2.807-.966 4.029-.597 3.534 1.07 6.939 2.564 10.732 4.006"
|
||||
id="path7"
|
||||
style="fill:#ff7f2a;fill-opacity:1" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="m 130,278.4 c 69.2,16 30.4,65.6 30.4,65.6 0,0 -14.8,-92.4 28.8,-46.4 43.6,46 -59.2,-19.2 -59.2,-19.2 z"
|
||||
id="path8" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="m 76.08469,213.54625 c 17.819091,7.91959 0.282842,24.32447 22.061731,7.91959 21.778889,-16.40487 53.174429,-48.3661 21.778889,-16.40487 -31.395541,31.96122 -43.84062,8.48528 -43.84062,8.48528 z"
|
||||
id="path9" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="m 310.4,292.8 c 36,20.8 16,50.4 40,18.8 24,-31.6 46.8,-57.2 14.8,-33.6 -32,23.6 -54.8,14.8 -54.8,14.8 z"
|
||||
id="path10" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="m 380.8,197.2 c 41.6,30.4 18.4,62.8 42,30.4 23.6,-32.4 10,-68.8 23.6,-32.4 13.6,36.4 58,64.4 13.6,36.4 -44.4,-28 -79.2,-34.4 -79.2,-34.4 z"
|
||||
id="path11" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="M 99.6,145.2 C 146,120.4 170.4,80.8 146,120.4 121.6,160 121.2,187.6 120.4,159.6 119.6,131.6 99.6,145.2 99.6,145.2 Z"
|
||||
id="path12" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="m 166.4,395.2 c 36.4,-34.4 26.8,-68.4 35.2,-32.8 8.4,35.6 -36,4.8 -36,4.8 z"
|
||||
id="path13" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="M 325.6,419.2 C 390,378.4 402,310 388.8,379.6 c -13.2,69.6 7.6,39.6 -15.6,67.6 -23.2,28 81.6,-113.2 50,-90.8 -31.6,22.4 -97.6,62.8 -97.6,62.8 z"
|
||||
id="path14" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="m 298.11622,232.77955 c 9.33381,30.82986 27.43574,16.68772 9.05097,29.41564 -18.38478,12.72793 -23.19311,44.12347 -17.53625,11.59656 5.65685,-32.52692 8.48528,-41.0122 8.48528,-41.0122 z"
|
||||
id="path15" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="M 54.305801,291.32799 C 110.5915,257.10403 141.42136,225.1428 108.89444,258.51824 76.367532,291.89368 96.166522,307.73287 78.913117,291.04515 61.659711,274.35743 54.022958,289.06525 54.022958,289.06525 l 53.174432,-31.1127 z"
|
||||
id="path16" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 2.7 MiB After Width: | Height: | Size: 29 KiB |
@@ -821,31 +821,6 @@ QTabBar QToolButton::left-arrow:disabled {
|
||||
image: url(:/qss_icons/rc/left_arrow_disabled.png);
|
||||
}
|
||||
|
||||
QDockWidget {
|
||||
background: #31363b;
|
||||
border: 1px solid #403F3F;
|
||||
titlebar-close-icon: url(:/qss_icons/rc/close.png);
|
||||
titlebar-normal-icon: url(:/qss_icons/rc/undock.png);
|
||||
}
|
||||
|
||||
QDockWidget::close-button,
|
||||
QDockWidget::float-button {
|
||||
border: 1px solid transparent;
|
||||
border-radius: 2px;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
QDockWidget::close-button:hover,
|
||||
QDockWidget::float-button:hover {
|
||||
background: rgba(255, 255, 255, 10);
|
||||
}
|
||||
|
||||
QDockWidget::close-button:pressed,
|
||||
QDockWidget::float-button:pressed {
|
||||
padding: 1px -1px -1px 1px;
|
||||
background: rgba(255, 255, 255, 10);
|
||||
}
|
||||
|
||||
QTreeView,
|
||||
QListView {
|
||||
border: 1px solid #54575B;
|
||||
|
||||
@@ -1685,54 +1685,6 @@ QTabBar QToolButton::right-arrow:disabled {
|
||||
image: url(":/qss_icons/rc/arrow_right_disabled.png");
|
||||
}
|
||||
|
||||
/* QDockWiget -------------------------------------------------------------
|
||||
|
||||
--------------------------------------------------------------------------- */
|
||||
QDockWidget {
|
||||
outline: 1px solid #32414B;
|
||||
background-color: #19232D;
|
||||
border: 1px solid #32414B;
|
||||
border-radius: 4px;
|
||||
titlebar-close-icon: url(":/qss_icons/rc/window_close.png");
|
||||
titlebar-normal-icon: url(":/qss_icons/rc/window_undock.png");
|
||||
}
|
||||
|
||||
QDockWidget::title {
|
||||
/* Better size for title bar */
|
||||
padding: 6px;
|
||||
spacing: 4px;
|
||||
border: none;
|
||||
background-color: #32414B;
|
||||
}
|
||||
|
||||
QDockWidget::close-button {
|
||||
background-color: #32414B;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
QDockWidget::close-button:hover {
|
||||
image: url(":/qss_icons/rc/window_close_focus.png");
|
||||
}
|
||||
|
||||
QDockWidget::close-button:pressed {
|
||||
image: url(":/qss_icons/rc/window_close_pressed.png");
|
||||
}
|
||||
|
||||
QDockWidget::float-button {
|
||||
background-color: #32414B;
|
||||
border-radius: 4px;
|
||||
border: none;
|
||||
}
|
||||
|
||||
QDockWidget::float-button:hover {
|
||||
image: url(":/qss_icons/rc/window_undock_focus.png");
|
||||
}
|
||||
|
||||
QDockWidget::float-button:pressed {
|
||||
image: url(":/qss_icons/rc/window_undock_pressed.png");
|
||||
}
|
||||
|
||||
/* QTreeView QListView QTableView -----------------------------------------
|
||||
|
||||
https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qtreeview
|
||||
|
||||
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 256 KiB |
@@ -1,5 +1,5 @@
|
||||
# ui stuff
|
||||
/src/android @AleksandrPopovich @nyxynx @Producdevity
|
||||
/src/android @AleksandrPopovich @kleidis @Producdevity
|
||||
/src/yuzu @crueter
|
||||
/src/eden @crueter
|
||||
/src/frontend_common @crueter
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
- `DISABLED_PLATFORMS`: List of platforms that lack artifacts for this package. Options:
|
||||
* `windows-amd64`
|
||||
* `windows-arm64`
|
||||
* `mingw-amd64`
|
||||
* `mingw-arm64`
|
||||
* `android`
|
||||
* `solaris-amd64`
|
||||
* `freebsd-amd64`
|
||||
|
||||
@@ -1,13 +1,28 @@
|
||||
# Caveats
|
||||
|
||||
<!-- TOC -->
|
||||
- [Caveats](#caveats)
|
||||
- [Arch Linux](#arch-linux)
|
||||
- [Gentoo Linux](#gentoo-linux)
|
||||
- [macOS](#macos)
|
||||
- [Solaris](#solaris)
|
||||
- [HaikuOS](#haikuos)
|
||||
- [OpenBSD](#openbsd)
|
||||
- [FreeBSD](#freebsd)
|
||||
- [NetBSD](#netbsd)
|
||||
- [MSYS2](#msys2)
|
||||
- [Windows 8.1 and below](#windows-81-and-below)
|
||||
<!-- /TOC -->
|
||||
|
||||
## Arch Linux
|
||||
|
||||
- httplib AUR package is broken. Set `httplib_FORCE_BUNDLED=ON` if you have it installed.
|
||||
- Eden is also available as an [AUR package](https://aur.archlinux.org/packages/eden-git). If you are unable to build, either use that or compare your process to the PKGBUILD.
|
||||
Eden is also available as an [AUR package](https://aur.archlinux.org/packages/eden-git). If you are unable to build, either use that or compare your process to the PKGBUILD.
|
||||
|
||||
## Gentoo Linux
|
||||
|
||||
Do not use the system sirit or xbyak packages.
|
||||
[`games-emulation/eden`](https://gitweb.gentoo.org/repo/proj/guru.git/tree/games-emulation/eden) is available in the GURU. This repository also contains some additional dependencies, such as mcl, sirit, oaknut, etc.
|
||||
|
||||
If you're having issues with building, always consult that ebuild.
|
||||
|
||||
## macOS
|
||||
|
||||
@@ -15,6 +30,13 @@ macOS is largely untested. Expect crashes, significant Vulkan issues, and other
|
||||
|
||||
## Solaris
|
||||
|
||||
Always consult [the OpenIndiana package list](https://pkg.openindiana.org/hipster/en/index.shtml) to cross-verify availability.
|
||||
|
||||
Run the usual update + install of essential toolings: `sudo pkg update && sudo pkg install git cmake`.
|
||||
|
||||
- **gcc**: `sudo pkg install developer/gcc-14`.
|
||||
- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`.
|
||||
|
||||
Qt Widgets appears to be broken. For now, add `-DENABLE_QT=OFF` to your configure command. In the meantime, a Qt Quick frontend is in the works--check back later!
|
||||
|
||||
This is needed for some dependencies that call cc directly (tz):
|
||||
@@ -53,11 +75,13 @@ For this reason this patch is NOT applied to default on all platforms (for obvio
|
||||
|
||||
`cubeb_devel` will also not work, either disable cubeb or uninstall it.
|
||||
|
||||
Still will not run flawlessly until `mesa-24` is available. Modify CMakeCache.txt with the `.so` of libGL and libGLESv2 by doing the incredibly difficult task of copy pasting them (`cp /boot/system/lib/libGL.so .`)
|
||||
|
||||
## OpenBSD
|
||||
|
||||
After configuration, you may need to modify `externals/ffmpeg/CMakeFiles/ffmpeg-build/build.make` to use `-j$(nproc)` instead of just `-j`.
|
||||
|
||||
`-lc++-experimental` doesn't exist in OpenBSD but the LLVM driver still tries to link against it, to solve just symlink `ln -s /usr/lib/libc++.a /usr/lib/libc++experimental.a`.
|
||||
`-lc++-experimental` doesn't exist in OpenBSD but the LLVM driver still tries to link against it, to solve just symlink `ln -s /usr/lib/libc++.a /usr/lib/libc++experimental.a`. Builds are currently not working due to lack of `std::jthread` and such, either compile libc++ manually or wait for ports to catch up.
|
||||
|
||||
If clang has errors, try using `g++-11`.
|
||||
|
||||
@@ -89,3 +113,87 @@ cmake -B build -DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build build -- -j`nproc`
|
||||
cmake --install build
|
||||
```
|
||||
|
||||
# DragonFlyBSD
|
||||
|
||||
If `libstdc++.so.6` is not found (`GLIBCXX_3.4.30`) then attempt:
|
||||
```sh
|
||||
rm /usr/local/lib/gcc11/libstdc++.so.6
|
||||
ln -s /usr/local/lib/gcc14/libstdc++.so /usr/local/lib/gcc11/libstdc++.so.6
|
||||
```
|
||||
This may have unforeseen consequences of which we don't need to worry about for now.
|
||||
|
||||
Default `g++` (and the libstdc++) is too outdated - so install `gcc14` and redirect CMake to the new compiler toolchain `-DCMAKE_CXX_COMPILER=gcc14 -DCMAKE_C_COMPILER=g++14`.
|
||||
|
||||
There is also `llvm18` and use `-DCMAKE_CXX_COMPILER=clang++18 -DCMAKE_C_COMPILER=clang18` (note the `18` suffix at the end). NOTE: It doesn't have an updated libcxx so `<span>` will be missing, either build it manually or use gcc.
|
||||
|
||||
If build hangs, use `hammer2 bulkfree`.
|
||||
|
||||
## MSYS2
|
||||
|
||||
`qt6-static` isn't supported yet.
|
||||
|
||||
Only the `MINGW64` environment is tested; however, all of the others should work (in theory) sans `MINGW32`.
|
||||
|
||||
Currently, only FFmpeg can be used as a system dependency; the others will result in linker errors.
|
||||
|
||||
When packaging an MSYS2 build, you will need to copy all dependent DLLs recursively alongside the `windeployqt6`; for example:
|
||||
|
||||
```sh
|
||||
# MSYS_TOOLCHAIN is typically just mingw64
|
||||
# since Windows is case-insensitive, you can set this to $MSYSTEM
|
||||
# or, if cross-compiling from Linux, set it to usr/x86_64-w64-mingw32
|
||||
export PATH="/${MSYS_TOOLCHAIN}/bin:$PATH"
|
||||
|
||||
# grab deps of a dll or exe and place them in the current dir
|
||||
deps() {
|
||||
# string parsing is fun
|
||||
objdump -p "$1" | awk '/DLL Name:/ {print $3}' | while read -r dll; do
|
||||
[ -z "$dll" ] && continue
|
||||
|
||||
# bin directory is used for DLLs, so we can do a quick "hack"
|
||||
# and use command to find the path of the DLL
|
||||
dllpath=$(command -v "$dll" 2>/dev/null || true)
|
||||
|
||||
[ -z "$dllpath" ] && continue
|
||||
|
||||
# explicitly exclude system32/syswow64 deps
|
||||
# these aren't needed to be bundled, as all systems already have them
|
||||
case "$dllpath" in
|
||||
*System32* | *SysWOW64*) continue ;;
|
||||
esac
|
||||
|
||||
# avoid copying deps multiple times
|
||||
if [ ! -f "$dll" ]; then
|
||||
echo "$dllpath"
|
||||
cp "$dllpath" "$dll"
|
||||
|
||||
# also grab the dependencies of the dependent DLL; e.g.
|
||||
# double-conversion is a dep of Qt6Core.dll but NOT eden.exe
|
||||
deps "$dllpath"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# NB: must be done in a directory containing eden.exe
|
||||
deps eden.exe
|
||||
|
||||
# deploy Qt plugins and such
|
||||
windeployqt6 --no-compiler-runtime --no-opengl-sw --no-system-dxc-compiler \
|
||||
--no-system-d3d-compiler eden.exe
|
||||
|
||||
# grab deps for Qt plugins
|
||||
find ./*/ -name "*.dll" | while read -r dll; do deps "$dll"; done
|
||||
```
|
||||
|
||||
## Windows 8.1 and below
|
||||
|
||||
DirectX 12 is not available - simply copy and paste a random DLL and name it `d3d12.dll`.
|
||||
|
||||
Install [Qt6 compatibility libraries](github.com/ANightly/qt6windows7) specifically Qt 6.9.5.
|
||||
|
||||
## RedoxOS
|
||||
|
||||
The package install may randomly hang at times, in which case it has to be restarted. ALWAYS do a `sudo pkg update` or the chances of it hanging will be close to 90%. If "multiple" installs fail at once, try installing 1 by 1 the packages.
|
||||
|
||||
When CMake invokes certain file syscalls - it may sometimes cause crashes or corruptions on the (kernel?) address space - so reboot the system if there is a "hang" in CMake.
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
# Coding guidelines
|
||||
|
||||
These are mostly "suggestions", if you feel like your code is readable, comprehensible to others; and most importantly doesn't result in unreadable spaghetti you're fine to go.
|
||||
|
||||
But for new developers you may find that following these guidelines will make everything x10 easier.
|
||||
|
||||
## Naming conventions
|
||||
|
||||
Simply put, types/classes are named as `PascalCase`, same for methods and functions like `AddElement`. Variables are named `like_this_snake_case` and constants are `IN_SCREAMING_CASE`.
|
||||
|
||||
Except for Qt MOC where `functionName` is preferred.
|
||||
|
||||
Template typenames prefer short names like `T`, `I`, `U`, if a longer name is required either `Iterator` or `perform_action` are fine as well.
|
||||
|
||||
Macros must always be in `SCREAMING_CASE`. Do not use short letter macros as systems like Solaris will conflict with them; a good rule of thumb is >5 characters per macro - i.e `THIS_MACRO_IS_GOOD`, `AND_ALSO_THIS_ONE`.
|
||||
|
||||
Try not using hungarian notation, if you're able.
|
||||
|
||||
## Formatting
|
||||
|
||||
Do not put if/while/etc braces after lines:
|
||||
```c++
|
||||
// no dont do this
|
||||
if (thing)
|
||||
{
|
||||
some(); // ...
|
||||
}
|
||||
|
||||
// do this
|
||||
if (thing) {
|
||||
some(); // ...
|
||||
}
|
||||
|
||||
// or this
|
||||
if (thing)
|
||||
some(); // ...
|
||||
|
||||
// this is also ok
|
||||
if (thing) some();
|
||||
```
|
||||
|
||||
Brace rules are lax, if you can get the point across, do it:
|
||||
|
||||
```c++
|
||||
// this is fine
|
||||
do {
|
||||
if (thing) {
|
||||
return 0;
|
||||
}
|
||||
} while (other);
|
||||
|
||||
// this is also ok --- albeit a bit more dense
|
||||
do if (thing) return 0; while (other);
|
||||
|
||||
// ok as well
|
||||
do {
|
||||
if (thing) return 0;
|
||||
} while (other);
|
||||
```
|
||||
|
||||
There is no 80-column limit but preferably be mindful of other developer's readability (like don't just put everything onto one line).
|
||||
|
||||
```c++
|
||||
// someone is going to be mad due to this
|
||||
SDL_AudioSpec obtained;
|
||||
device_name.empty() ? device = SDL_OpenAudioDevice(nullptr, capture, &spec, &obtained, false) : device = SDL_OpenAudioDevice(device_name.c_str(), capture, &spec, &obtained, false);
|
||||
|
||||
// maybe consider this
|
||||
SDL_AudioSpec obtained;
|
||||
if (device_name.empty()) {
|
||||
device = SDL_OpenAudioDevice(nullptr, capture, &spec, &obtained, false);
|
||||
} else {
|
||||
device = SDL_OpenAudioDevice(device_name.c_str(), capture, &spec, &obtained, false);
|
||||
}
|
||||
|
||||
// or this is fine as well
|
||||
SDL_AudioSpec obtained;
|
||||
device = SDL_OpenAudioDevice(device_name.empty() ? nullptr : device_name.c_str(), capture, &spec, &obtained, false);
|
||||
```
|
||||
@@ -1,5 +1,23 @@
|
||||
# Debug Guidelines
|
||||
|
||||
## Issue reports
|
||||
|
||||
When reporting issues or finding bugs, we often need backtraces, debug logs, or both in order to track down the issue.
|
||||
|
||||
### Graphics Debugging
|
||||
|
||||
If your bug is related to a graphical issue--e.g. mismatched colors, vertex explosions, flickering, etc.--then you are required to include graphical debugging logs in your issue reports.
|
||||
|
||||
Graphics Debugging is found in General -> Debug on desktop, and Advanced Settings -> Debug on Android. Android users are all set; however, desktop users may need to install the Vulkan Validation Layers:
|
||||
- Windows: Install the [Vulkan SDK](https://vulkan.lunarg.com/sdk/home)
|
||||
- Linux, BSD, etc: Install `vulkan-validation-layers`, `vulkan-layers`, or similar from your package manager. It should be located in e.g. `/usr/lib64/libVkLayer_khronos_validation.so`
|
||||
|
||||
Once Graphics Debugging is enabled, run the problematic game again and continue. Note that the game may run extremely slow on weak hardware.
|
||||
|
||||
### Debug Logs
|
||||
|
||||
Debug logs can be found in General -> Debug -> Open Log Location on desktop, and Share Debug Logs on Android. This MUST be included in all bug reports, except for certain UI bugs--but we still highly recommend them even for UI bugs.
|
||||
|
||||
## Debugging (host code)
|
||||
|
||||
Ignoring SIGSEGV when debugging in host:
|
||||
@@ -47,10 +65,10 @@ Renderdoc is a free, cross platform, multi-graphics API debugger. It is an inval
|
||||
|
||||
Before using renderdoc to diagnose issues, it is always good to make sure there are no validation errors. Any errors means the behavior of the application is undefined. That said, renderdoc can help debug validation errors if you do have them.
|
||||
|
||||
When debugging a black screen, there are many ways the application could have setup Vulkan wrong.
|
||||
When debugging a black screen, there are many ways the application could have setup Vulkan wrong.
|
||||
Here is a short checklist of items to look at to make sure are appropriate:
|
||||
* Draw call counts are correct (aka not zero, or if rendering many triangles, not 3)
|
||||
* Vertex buffers are bound
|
||||
* Vertex buffers are bound
|
||||
* vertex attributes are correct - Make sure the size & offset of each attribute matches what should it should be
|
||||
* Any bound push constants and descriptors have the right data - including:
|
||||
* Matrices have correct values - double check the model, view, & projection matrices are uploaded correctly
|
||||
@@ -63,6 +81,6 @@ Here is a short checklist of items to look at to make sure are appropriate:
|
||||
* Blend state is correct
|
||||
* Depth state is correct - typically enabled with Function set to Less than or Equal
|
||||
* Swapchain images are bound when rendering to the swapchain
|
||||
* Image being rendered to is the same as the one being presented when rendering to the swapchain
|
||||
* Image being rendered to is the same as the one being presented when rendering to the swapchain
|
||||
|
||||
Alternatively, a [RenderDoc Extension](https://github.com/baldurk/renderdoc-contrib/tree/main/baldurk/whereismydraw) ([Archive](https://web.archive.org/web/20250000000000*/https://github.com/baldurk/renderdoc-contrib/tree/main/baldurk/whereismydraw)) exists which automates doing a lot of these manual steps.
|
||||
|
||||
@@ -5,7 +5,6 @@ To build Eden, you MUST have a C++ compiler.
|
||||
- GCC 12 also requires Clang 14+
|
||||
* On Windows, this is either:
|
||||
- **[MSVC](https://visualstudio.microsoft.com/downloads/)** (you should select *Community* option),
|
||||
* *A convenience script to install the Visual Community Studio 2022 with necessary tools is provided in `.ci/windows/install-msvc.ps1`*
|
||||
- clang-cl - can be downloaded from the MSVC installer,
|
||||
- or **[MSYS2](https://www.msys2.org)**
|
||||
* On macOS, this is Apple Clang
|
||||
@@ -26,6 +25,9 @@ If you are on desktop and plan to use the Qt frontend, you *must* install Qt 6,
|
||||
* Linux and macOS users may choose to use the installer as well.
|
||||
* MSYS2 can also install Qt 6 via the package manager
|
||||
|
||||
If you are on Windows, a convenience script to install MSVC, MSYS2, Qt, all necessary packages for MSYS2, and set up a zsh environment with useful keybinds and aliases can be found [here](https://git.crueter.xyz/scripts/windev).
|
||||
- For help setting up Qt Creator, run `./install.sh -h qtcreator`
|
||||
|
||||
If you are on Windows and NOT building with MSYS2, you may go [back home](Build.md) and continue.
|
||||
|
||||
## Externals
|
||||
@@ -70,9 +72,6 @@ Certain other dependencies will be fetched by CPM regardless. System packages *c
|
||||
|
||||
On amd64:
|
||||
* [xbyak](https://github.com/herumi/xbyak) - 7.22 or earlier is recommended
|
||||
* [zycore](https://github.com/zyantific/zycore-c)
|
||||
* [zydis](https://github.com/zyantific/zydis) 4+
|
||||
* Note: zydis and zycore-c MUST match. Using one as a system dependency and the other as a bundled dependency WILL break things
|
||||
|
||||
On aarch64 OR if `DYNARMIC_TESTS` is on:
|
||||
* [oaknut](https://github.com/merryhime/oaknut) 2.0.1+
|
||||
@@ -84,13 +83,62 @@ On riscv64:
|
||||
|
||||
These are commands to install all necessary dependencies on various Linux and BSD distributions, as well as macOS. Always review what you're running before you hit Enter!
|
||||
|
||||
Notes for writers: Include build tools as well, assume user has NOTHING installed (i.e a fresh install) but that they have updated beforehand so no `upgrade && update` or equivalent should be mentioned - except for rolling release systems like Arch.
|
||||
|
||||
Click on the arrows to expand.
|
||||
|
||||
<details>
|
||||
<summary>Gentoo Linux</summary>
|
||||
|
||||
GURU must be enabled:
|
||||
|
||||
```
|
||||
sudo emerge -a app-eselect/eselect-repository
|
||||
sudo eselect repository enable guru
|
||||
sudo emaint sync -r guru
|
||||
```
|
||||
|
||||
Now, install all deps:
|
||||
|
||||
```sh
|
||||
sudo emerge -a \
|
||||
app-arch/lz4 app-arch/zstd app-arch/unzip \
|
||||
dev-libs/libfmt dev-libs/libusb dev-libs/mcl dev-libs/sirit \
|
||||
dev-libs/unordered_dense dev-libs/boost dev-libs/openssl dev-libs/discord-rpc \
|
||||
dev-util/spirv-tools dev-util/spirv-headers dev-util/vulkan-headers \
|
||||
dev-util/vulkan-utility-libraries dev-util/glslang \
|
||||
media-gfx/renderdoc media-libs/libva media-libs/opus media-video/ffmpeg \
|
||||
media-libs/VulkanMemoryAllocator media-libs/libsdl2 media-libs/cubeb \
|
||||
net-libs/enet net-libs/mbedtls \
|
||||
sys-libs/zlib \
|
||||
dev-cpp/nlohmann_json dev-cpp/simpleini dev-cpp/cpp-httplib dev-cpp/cpp-jwt \
|
||||
games-util/gamemode \
|
||||
net-wireless/wireless-tools \
|
||||
dev-qt/qtbase:6 dev-libs/quazip \
|
||||
virtual/pkgconfig
|
||||
```
|
||||
|
||||
- On `amd64`, also add `dev-libs/xbyak`
|
||||
- On `riscv64`, also add `dev-libs/biscuit` (currently unavailable)
|
||||
- On `aarch64`, also add `dev-libs/oaknut`
|
||||
- If tests are enabled, also add `dev-libs/oaknut` and `dev-cpp/catch`
|
||||
|
||||
Required USE flags:
|
||||
- `dev-qt/qtbase network concurrent dbus gui widgets`
|
||||
- `dev-libs/quazip qt6`
|
||||
- `net-libs/mbedtls cmac`
|
||||
- `media-libs/libsdl2 haptic joystick sound video`
|
||||
- `dev-cpp/cpp-httplib ssl`
|
||||
|
||||
[Caveats](./Caveats.md#gentoo-linux)
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Arch Linux</summary>
|
||||
|
||||
```sh
|
||||
sudo pacman -Syu --needed base-devel boost catch2 cmake enet ffmpeg fmt git glslang libzip lz4 mbedtls ninja nlohmann-json openssl opus qt6-base qt6-multimedia sdl2 zlib zstd zip unzip zydis zycore vulkan-headers vulkan-utility-libraries libusb spirv-tools spirv-headers
|
||||
sudo pacman -Syu --needed base-devel boost catch2 cmake enet ffmpeg fmt git glslang libzip lz4 mbedtls ninja nlohmann-json openssl opus qt6-base qt6-multimedia sdl2 zlib zstd zip unzip vulkan-headers vulkan-utility-libraries libusb spirv-tools spirv-headers
|
||||
```
|
||||
|
||||
* Building with QT Web Engine requires `qt6-webengine` as well.
|
||||
@@ -102,7 +150,7 @@ sudo pacman -Syu --needed base-devel boost catch2 cmake enet ffmpeg fmt git glsl
|
||||
<summary>Ubuntu, Debian, Mint Linux</summary>
|
||||
|
||||
```sh
|
||||
sudo apt-get install autoconf cmake g++ gcc git glslang-tools libglu1-mesa-dev libhidapi-dev libpulse-dev libtool libudev-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-xkb1 libxext-dev libxkbcommon-x11-0 mesa-common-dev nasm ninja-build qt6-base-private-dev libmbedtls-dev catch2 libfmt-dev liblz4-dev nlohmann-json3-dev libzstd-dev libssl-dev libavfilter-dev libavcodec-dev libswscale-dev pkg-config zlib1g-dev libva-dev libvdpau-dev qt6-tools-dev libzydis-dev zydis-tools libzycore-dev libvulkan-dev spirv-tools spirv-headers libusb-1.0-0-dev libxbyak-dev libboost-dev libboost-fiber-dev libboost-context-dev libsdl2-dev libopus-dev libasound2t64 vulkan-utility-libraries-dev
|
||||
sudo apt-get install autoconf cmake g++ gcc git glslang-tools libglu1-mesa-dev libhidapi-dev libpulse-dev libtool libudev-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-xkb1 libxext-dev libxkbcommon-x11-0 mesa-common-dev nasm ninja-build qt6-base-private-dev libmbedtls-dev catch2 libfmt-dev liblz4-dev nlohmann-json3-dev libzstd-dev libssl-dev libavfilter-dev libavcodec-dev libswscale-dev pkg-config zlib1g-dev libva-dev libvdpau-dev qt6-tools-dev libvulkan-dev spirv-tools spirv-headers libusb-1.0-0-dev libxbyak-dev libboost-dev libboost-fiber-dev libboost-context-dev libsdl2-dev libopus-dev libasound2t64 vulkan-utility-libraries-dev
|
||||
```
|
||||
|
||||
* Ubuntu 22.04, Linux Mint 20, or Debian 12 or later is required.
|
||||
@@ -134,6 +182,37 @@ sudo dnf install qt6-qtbase-private-devel
|
||||
* Fedora 36+ users with GCC 12 need Clang and should configure CMake with: `cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang -B build`
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Alpine Linux</summary>
|
||||
|
||||
First, enable the community repository; [see here](https://wiki.alpinelinux.org/wiki/Repositories#Enabling_the_community_repository).
|
||||
```sh
|
||||
# Enable the community repository
|
||||
setup-apkrepos -c
|
||||
# Install
|
||||
apk add g++ git cmake make mbedtls-dev mbedtls-static mesa-dev qt6-qtbase-dev qt6-qtbase-private-dev libquazip1-qt6 ffmpeg-dev libusb-dev libtool boost-dev sdl2-dev zstd-dev vulkan-utility-libraries spirv-tools-dev openssl-dev nlohmann-json lz4-dev opus-dev jq patch
|
||||
```
|
||||
|
||||
`mbedtls-static` has to be specified otherwise `libeverest.a` and `libp256m.a` will fail to be found.
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>Void Linux</summary>
|
||||
|
||||
```sh
|
||||
xbps-install -Su git make cmake clang pkg-config patch mbedtls-devel SPIRV-Tools-devel SPIRV-Headers lz4 liblz4-devel boost-devel ffmpeg6-devel catch2 Vulkan-Utility-Libraries Vulkan-Headers glslang openssl-devel SDL2-devel quazip-qt6-devel qt6-base-devel qt6-qt5compat-devel fmt-devel json-c++ libenet-devel libusb-devel
|
||||
```
|
||||
|
||||
Yes, `nlohmann-json` is just named `json-c++`. Why?
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>NixOS</summary>
|
||||
|
||||
A convenience script is provided on the root of this project [shell.nix](../shell.nix). Run the usual `nix-shell`.
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>macOS</summary>
|
||||
|
||||
@@ -156,7 +235,7 @@ brew install molten-vk vulkan-loader
|
||||
<details>
|
||||
<summary>FreeBSD</summary>
|
||||
|
||||
As root run: `pkg install devel/cmake devel/sdl20 devel/boost-libs devel/catch2 devel/libfmt devel/nlohmann-json devel/ninja devel/nasm devel/autoconf devel/pkgconf devel/qt6-base devel/simpleini net/enet multimedia/ffnvcodec-headers multimedia/ffmpeg audio/opus archivers/liblz4 lang/gcc12 graphics/glslang graphics/vulkan-utility-libraries graphics/spirv-tools www/cpp-httplib devel/jwt-cpp devel/unordered-dense devel/zydis`
|
||||
As root run: `pkg install devel/cmake devel/sdl20 devel/boost-libs devel/catch2 devel/libfmt devel/nlohmann-json devel/ninja devel/nasm devel/autoconf devel/pkgconf devel/qt6-base devel/simpleini net/enet multimedia/ffnvcodec-headers multimedia/ffmpeg audio/opus archivers/liblz4 lang/gcc12 graphics/glslang graphics/vulkan-utility-libraries graphics/spirv-tools www/cpp-httplib devel/jwt-cpp devel/unordered-dense mbedtls3 vulkan-headers quazip-qt6`
|
||||
|
||||
If using FreeBSD 12 or prior, use `devel/pkg-config` instead.
|
||||
|
||||
@@ -171,7 +250,6 @@ For NetBSD +10.1: `pkgin install git cmake boost fmtlib SDL2 catch2 libjwt spirv
|
||||
[Caveats](./Caveats.md#netbsd).
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>OpenBSD</summary>
|
||||
|
||||
@@ -183,53 +261,75 @@ pkg_add cmake nasm git boost unzip--iconv autoconf-2.72p0 bash ffmpeg glslang gm
|
||||
[Caveats](./Caveats.md#openbsd).
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>DragonFlyBSD</summary>
|
||||
|
||||
```sh
|
||||
pkg install gcc14 git cmake unzip nasm autoconf bash pkgconf ffmpeg glslang gmake jq nlohmann-json enet spirv-tools sdl2 vulkan-utility-libraries vulkan-headers catch2 libfmt openssl liblz4 boost-libs cpp-httplib qt6-base quazip-qt6 unordered-dense libva-vdpau-driver libva-utils libva-intel-driver
|
||||
```
|
||||
|
||||
[Caveats](./Caveats.md#dragonflybsd).
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>Solaris / OpenIndiana</summary>
|
||||
|
||||
Always consult [the OpenIndiana package list](https://pkg.openindiana.org/hipster/en/index.shtml) to cross-verify availability.
|
||||
|
||||
Run the usual update + install of essential toolings: `sudo pkg update && sudo pkg install git cmake`.
|
||||
|
||||
- **gcc**: `sudo pkg install developer/gcc-14`.
|
||||
- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`.
|
||||
|
||||
Then install the libraries: `sudo pkg install qt6 boost glslang libzip library/lz4 libusb-1 nlohmann-json openssl opus sdl2 zlib compress/zstd unzip pkg-config nasm autoconf mesa library/libdrm header-drm developer/fmt`.
|
||||
```sh
|
||||
sudo pkg install qt6 boost glslang libzip library/lz4 libusb-1 nlohmann-json openssl opus sdl2 zlib compress/zstd unzip pkg-config nasm autoconf mesa library/libdrm header-drm developer/fmt
|
||||
```
|
||||
|
||||
[Caveats](./Caveats.md#solaris).
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>MSYS2</summary>
|
||||
|
||||
* Open the `MSYS2 MinGW 64-bit` shell (`mingw64.exe`)
|
||||
* Download and install all dependencies using:
|
||||
* `pacman -Syu git make mingw-w64-x86_64-SDL2 mingw-w64-x86_64-cmake mingw-w64-x86_64-python-pip mingw-w64-x86_64-qt6 mingw-w64-x86_64-toolchain autoconf libtool automake-wrapper`
|
||||
* Add MinGW binaries to the PATH:
|
||||
* `echo 'PATH=/mingw64/bin:$PATH' >> ~/.bashrc`
|
||||
* Add VulkanSDK to the PATH:
|
||||
* `echo 'PATH=$(readlink -e /c/VulkanSDK/*/Bin/):$PATH' >> ~/.bashrc`
|
||||
</details>
|
||||
* Download and install all dependencies:
|
||||
```
|
||||
BASE="git make autoconf libtool automake-wrapper jq patch"
|
||||
|
||||
MINGW="qt6-base qt6-tools qt6-translations qt6-svg cmake toolchain clang python-pip openssl vulkan-memory-allocator vulkan-devel glslang boost fmt lz4 nlohmann-json zlib zstd enet opus mbedtls libusb unordered_dense"
|
||||
|
||||
packages="$BASE"
|
||||
for pkg in $MINGW; do
|
||||
packages="$packages mingw-w64-x86_64-$pkg"
|
||||
done
|
||||
|
||||
pacman -Syuu --needed --noconfirm $packages
|
||||
```
|
||||
* Notes:
|
||||
- Using `qt6-static` is possible but currently untested.
|
||||
- Other environments are entirely untested, but should theoretically work provided you install all the necessary packages.
|
||||
- GCC is proven to work better with the MinGW environment. If you choose to use Clang, you *may* be better off using the clang64 environment.
|
||||
- Add `qt-creator` to the `MINGW` variable to install Qt Creator. You can then create a Start Menu shortcut to the MinGW Qt Creator by running `powershell "\$s=(New-Object -COM WScript.Shell).CreateShortcut('C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Qt Creator.lnk');\$s.TargetPath='C:\\msys64\\mingw64\\bin\\qtcreator.exe';\$s.Save()"` in Git Bash or MSYS2.
|
||||
* Add MinGW binaries to the PATH if they aren't already:
|
||||
* `echo 'PATH=/mingw64/bin:$PATH' >> ~/.bashrc`
|
||||
* or `echo 'PATH=/mingw64/bin:$PATH' >> ~/.zshrc`
|
||||
|
||||
[Caveats](./Caveats.md#msys2).
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>HaikuOS</summary>
|
||||
|
||||
```sh
|
||||
pkgman install git cmake libfmt_devel nlohmann_json lz4_devel opus_devel boost1.89_devel vulkan_devel qt6_base_devel libsdl2_devel ffmpeg7_devel libx11_devel enet_devel catch2_devel quazip1_qt6_devel qt6_5compat_devel zydis_devel glslang
|
||||
pkgman install git cmake patch libfmt_devel nlohmann_json lz4_devel opus_devel boost1.89_devel vulkan_devel qt6_base_devel libsdl2_devel ffmpeg7_devel libx11_devel enet_devel catch2_devel quazip1_qt6_devel qt6_5compat_devel libusb1_devel libz_devel mbedtls3_devel glslang
|
||||
```
|
||||
|
||||
[Caveats](./Caveats.md#haikuos).
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>RedoxOS</summary>
|
||||
|
||||
TODO: Fix syscall crashes (heavy IO stalls and hangup due to net mutexes?)
|
||||
```sh
|
||||
sudo pkg update && sudo pkg install git cmake
|
||||
sudo pkg install ffmpeg6 sdl2 zlib llvm18
|
||||
sudo pkg update
|
||||
sudo pkg install git cmake ffmpeg6 sdl2 zlib llvm18
|
||||
```
|
||||
|
||||
[Caveats](./Caveats.md#redoxos).
|
||||
|
||||
</details>
|
||||
|
||||
## All Done
|
||||
|
||||
@@ -22,7 +22,6 @@ Notes:
|
||||
- `YUZU_USE_BUNDLED_FFMPEG` (ON for non-UNIX) Download (Windows, Android) or build (UNIX) bundled FFmpeg
|
||||
- `ENABLE_CUBEB` (ON) Enables the cubeb audio backend
|
||||
- `YUZU_TESTS` (ON) Compile tests - requires Catch2
|
||||
- `YUZU_USE_PRECOMPILED_HEADERS` (ON for non-UNIX) Use precompiled headers
|
||||
- `YUZU_DOWNLOAD_ANDROID_VVL` (ON) Download validation layer binary for Android
|
||||
- `YUZU_ENABLE_LTO` (OFF) Enable link-time optimization
|
||||
* Not recommended on Windows
|
||||
|
||||
@@ -5,8 +5,9 @@ This contains documentation created by developers. This contains build instructi
|
||||
- **[General Build Instructions](Build.md)**
|
||||
- **[Cross Compiling](CrossCompile.md)**
|
||||
- **[Development Guidelines](Development.md)**
|
||||
- **[Coding guidelines](Coding.md)**
|
||||
- **[Dependencies](Deps.md)**
|
||||
- **[Debug Guidelines](./Debug.md)**
|
||||
- **[CPM - CMake Package Manager](CPMUtil.md)**
|
||||
- **[Platform-Specific Caveats](Caveats.md)**
|
||||
- **[User Handbook](User.md)**
|
||||
- **[User Handbook](./user)**
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
# User Handbook
|
||||
|
||||
The "FAQ".
|
||||
|
||||
This handbook is primarily aimed at the end-user - baking useful knowledge for enhancing their emulation experience.
|
||||
|
||||
- **[The Basics](user/Basics.md)**
|
||||
- **[Audio](user/Audio.md)**
|
||||
- **[Graphics](user/Graphics.md)**
|
||||
- **[Platforms and Architectures](user/Architectures.md)**
|
||||
- **[Testing](user/Testing.md)**
|
||||
- **[Data, savefiles and storage](user/Storage.md)**
|
||||
@@ -47,6 +47,26 @@ Various graphical filters exist - each of them aimed at a specific target/image
|
||||
|
||||
While stock shaders offer a basic subset of options for most users, programs such as [ReShade](https://github.com/crosire/reshade) offer a more flexible experience. In addition to that users can also seek out modifications (mods) for enhancing visual experience (60 FPS mods, HDR, etc).
|
||||
|
||||
**Installing ReShade (Windows)**
|
||||
1. [Download ReShade](https://reshade.me/#download) with add-on support.
|
||||
- [ReShade Setup 6.6.2 (Windows 64-bit) with add-on support](https://reshade.me/downloads/ReShade_Setup_6.6.2_Addon.exe)
|
||||
- SHA512 checksum: `1f09a73afa160480c13ffdd73cc04b1dc82943dddea58ad3bb9375f26b48c2787d0a85197e46b6fce32a4fd3472465520a3355ed3436241e17fba7ebaff7ffec`.
|
||||
2. Open ReShade and hit browse, then the folder where `eden.exe` is at, hit open, then hit next.
|
||||
3. Select Vulkan as the rendering API, hit next.
|
||||
4. In "Select effects to install" screen: hit next don't change anything.
|
||||
5. In "Select add on" screen: click the box for `Shader Toggler by Otis` ([GitHub](https://github.com/FransBouma/ShaderToggler)) and hit next.
|
||||
|
||||
**Using the Shader Toggler**
|
||||
1. Launch a game, you must see a ReShade pop up afterwards.
|
||||
2. Progress to a point with a flickering shader.
|
||||
3. Hit the Home key on keyboard (or change binds if you don't have one).
|
||||
4. Navigate to the add on tab at the top of the ReShade menu.
|
||||
5. At the bottom where Shader Toggler is at open the drop down and max out the slider that says "# of fames collected" then select change shaders while staring at the flickering shader.
|
||||
6. When the Shader Toggler finishes collecting frames in the top left hit Numpad 2 till it turns off the flickering lines.
|
||||
7. Hit Numpad 3 to add it the group of shaders to turn off and hit done and save all toggle groups.
|
||||
8. Hit the edit button and select "active at startup" for the shader to be turned off on every game launch.
|
||||
9. Caps lock to manually turn on and off the shader (default key you can change it with the previous edit button)
|
||||
|
||||
## Driver specifics
|
||||
|
||||
### Mesa environment variable hacks
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# Orphaned Profiles
|
||||
|
||||
A bug present in earlier versions of Eden and Yuzu caused some profiles to be read from the incorrect location if your NAND directory was set to anything other than the default. This bug was fixed in Eden v0.0.4-rc1, but it can be destructive if you're not careful.
|
||||
|
||||
## What are they?
|
||||
|
||||
Orphaned profiles refer to emulated user profiles that may or may not contain valid save data, but are not referenced by the internal profile map. This means the save data is effectively inaccessible, and should be fixed in order to access your save data.
|
||||
|
||||
## How do I fix it?
|
||||
|
||||
There are lots of different cases of varying complexity.
|
||||
|
||||
Remember to ALWAYS back up your saves!
|
||||
|
||||
### Simple Copy
|
||||
|
||||
Sometimes, a simple copying is all you need. For example, if the orphaned profile folder contains game saves, BUT the good profile is completely empty, then you can simply remove the empty folder and rename the orphaned profile to the same name as the good one.
|
||||
|
||||
### Combination
|
||||
|
||||
In more extreme cases, game saves can be strewn all throughout different profiles. In this case, you must look at each profile individually.
|
||||
|
||||
Typically, one folder will clearly have more recent/numerous save data, in which case you can remove all the other profile folders and follow the same procedure as the simple copy.
|
||||
|
||||
If multiple profile folders contain valid data, the recommended approach is to copy the contents of one folder into the other. There are likely to be file conflicts, the resolution of which is up to you.
|
||||
|
||||
An alternate method for dealing with multiple valid profiles is to go into System -> Profiles, and create a new profile. From there, you can copy the contents of each previously-orphaned profile into a new profile.
|
||||
|
||||
### Edge Cases
|
||||
|
||||
There are way too many edge cases to cover here, but in general, make backups! You can never go wrong if you always have a backup of your saves.
|
||||
@@ -0,0 +1,13 @@
|
||||
# User Handbook
|
||||
|
||||
The "FAQ".
|
||||
|
||||
This handbook is primarily aimed at the end-user - baking useful knowledge for enhancing their emulation experience.
|
||||
|
||||
- **[The Basics](Basics.md)**
|
||||
- **[Audio](Audio.md)**
|
||||
- **[Graphics](Graphics.md)**
|
||||
- **[Platforms and Architectures](Architectures.md)**
|
||||
- **[Testing](Testing.md)**
|
||||
- **[Data, savefiles and storage](Storage.md)**
|
||||
- **[Orphaned Profiles](Orphaned.md)**
|
||||
@@ -27,6 +27,8 @@ When you report your results:
|
||||
2. "Tested on based master — issue already present. Good result for PR, not a regression."
|
||||
```
|
||||
|
||||
This approach helps maintain clarity and accountability in the testing process and ensures regressions are caught and addressed efficiently. If the behavior seems normal for a certain game/feature then it may not be always required to check against the based master.
|
||||
This approach helps maintain clarity and accountability in the testing process and ensures regressions are caught and addressed efficiently. If the behavior seems normal for a certain game/feature then it may not be always required to check against the based master.
|
||||
|
||||
If a master build for the PR' based master does not exist. It will be helpful to just test past and future builds nearby. That would help with gathering more information about the problem.
|
||||
|
||||
**Always include [debugging info](../Debug.md) as needed**.
|
||||
@@ -219,7 +219,7 @@ if (ENABLE_WEB_SERVICE OR ENABLE_UPDATE_CHECKER)
|
||||
endif()
|
||||
|
||||
# cpp-jwt
|
||||
if (ENABLE_WEB_SERVICE)
|
||||
if (ENABLE_WEB_SERVICE OR ENABLE_UPDATE_CHECKER)
|
||||
AddJsonPackage(cpp-jwt)
|
||||
endif()
|
||||
|
||||
@@ -399,9 +399,3 @@ if (ANDROID)
|
||||
|
||||
add_library(oboe::oboe ALIAS oboe)
|
||||
endif()
|
||||
|
||||
# sse2neon
|
||||
if (ARCHITECTURE_arm64 AND NOT TARGET sse2neon)
|
||||
add_library(sse2neon INTERFACE)
|
||||
target_include_directories(sse2neon INTERFACE sse2neon)
|
||||
endif()
|
||||
|
||||
@@ -23,14 +23,21 @@
|
||||
"package": "sirit",
|
||||
"name": "sirit",
|
||||
"repo": "eden-emulator/sirit",
|
||||
"version": "1.0.2"
|
||||
"version": "1.0.2",
|
||||
"disabled_platforms": [
|
||||
"mingw-amd64",
|
||||
"mingw-arm64"
|
||||
]
|
||||
},
|
||||
"httplib": {
|
||||
"repo": "yhirose/cpp-httplib",
|
||||
"tag": "v%VERSION%",
|
||||
"hash": "b364500f76e2ecb0fe21b032d831272e3f1dfeea71af74e325f8fc4ce9dcdb3c941b97a5b422bdeafb9facd058597b90f8bfc284fb9afe3c33fefa15dd5a010b",
|
||||
"git_version": "0.26.0",
|
||||
"find_args": "MODULE GLOBAL"
|
||||
"find_args": "MODULE GLOBAL",
|
||||
"patches": [
|
||||
"0001-mingw.patch"
|
||||
]
|
||||
},
|
||||
"cpp-jwt": {
|
||||
"version": "1.4",
|
||||
|
||||
@@ -107,9 +107,10 @@ endif()
|
||||
|
||||
if (YUZU_USE_BUNDLED_FFMPEG)
|
||||
# MSVC conflicts with ksuser otherwise
|
||||
# MinGW has the funny quirk of requiring avutil after avcodec
|
||||
# Android needs some deps to be compiled with PIC (TODO)
|
||||
# TODO(crueter) fix
|
||||
if (MSVC OR ANDROID)
|
||||
if (ANDROID)
|
||||
set(BUILD_SHARED_LIBS ON)
|
||||
else()
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
"disabled_platforms": [
|
||||
"freebsd-amd64",
|
||||
"solaris-amd64",
|
||||
"openbsd-amd64",
|
||||
"macos-universal"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
let
|
||||
nixpkgs = fetchTarball "https://github.com/NixOS/nixpkgs/tarball/nixos-24.05";
|
||||
pkgs = import nixpkgs { config = {}; overlays = []; };
|
||||
in
|
||||
pkgs.mkShellNoCC {
|
||||
packages = with pkgs; [
|
||||
# essential programs
|
||||
git cmake clang gnumake patch jq pkg-config
|
||||
# libraries
|
||||
openssl boost fmt nlohmann_json lz4 zlib zstd
|
||||
enet libopus vulkan-headers vulkan-utility-libraries
|
||||
spirv-tools spirv-headers vulkan-loader unzip mbedtls
|
||||
glslang python3 httplib cpp-jwt ffmpeg-headless
|
||||
libusb1 cubeb
|
||||
# eden
|
||||
qt6.qtbase qt6.qtmultimedia qt6.qtwayland qt6.qttools
|
||||
qt6.qtwebengine qt6.qt5compat
|
||||
# eden-cli
|
||||
SDL2
|
||||
# optional components
|
||||
discord-rpc gamemode
|
||||
];
|
||||
}
|
||||
@@ -62,9 +62,6 @@ if (MSVC AND NOT CXX_CLANG)
|
||||
/Zc:throwingNew
|
||||
/GT
|
||||
|
||||
# Modules
|
||||
/experimental:module- # Explicitly disable module support due to conflicts with precompiled headers.
|
||||
|
||||
# External headers diagnostics
|
||||
/external:anglebrackets # Treats all headers included by #include <header>, where the header file is enclosed in angle brackets (< >), as external headers
|
||||
/external:W0 # Sets the default warning level to 0 for external headers, effectively disabling warnings for them.
|
||||
@@ -181,8 +178,10 @@ else()
|
||||
|
||||
if (MINGW)
|
||||
add_compile_definitions(MINGW_HAS_SECURE_API)
|
||||
add_compile_options("-msse4.1")
|
||||
|
||||
# Only windows has this requirement, thanks windows
|
||||
if (WIN32)
|
||||
add_compile_options("-msse4.1")
|
||||
endif()
|
||||
if (MINGW_STATIC_BUILD)
|
||||
add_compile_definitions(QT_STATICPLUGIN)
|
||||
add_compile_options("-static")
|
||||
|
||||
@@ -549,6 +549,21 @@ object NativeLibrary {
|
||||
*/
|
||||
external fun clearFilesystemProvider()
|
||||
|
||||
/**
|
||||
* Gets the current virtual amiibo state reported by the core.
|
||||
*
|
||||
* @return Native enum value for the current amiibo state.
|
||||
*/
|
||||
external fun getVirtualAmiiboState(): Int
|
||||
|
||||
/**
|
||||
* Loads amiibo data into the currently running emulation session.
|
||||
*
|
||||
* @param data Raw amiibo file contents.
|
||||
* @return Native enum value representing the load result.
|
||||
*/
|
||||
external fun loadAmiibo(data: ByteArray): Int
|
||||
|
||||
/**
|
||||
* Checks if all necessary keys are present for decryption
|
||||
*/
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
@@ -20,18 +23,22 @@ class AddonAdapter(val addonViewModel: AddonViewModel) :
|
||||
inner class AddonViewHolder(val binding: ListItemAddonBinding) :
|
||||
AbstractViewHolder<Patch>(binding) {
|
||||
override fun bind(model: Patch) {
|
||||
binding.root.setOnClickListener {
|
||||
binding.addonCheckbox.isChecked = !binding.addonCheckbox.isChecked
|
||||
binding.addonCard.setOnClickListener {
|
||||
binding.addonSwitch.performClick()
|
||||
}
|
||||
binding.title.text = model.name
|
||||
binding.version.text = model.version
|
||||
binding.addonCheckbox.setOnCheckedChangeListener { _, checked ->
|
||||
binding.addonSwitch.isChecked = model.enabled
|
||||
|
||||
binding.addonSwitch.setOnCheckedChangeListener { _, checked ->
|
||||
model.enabled = checked
|
||||
}
|
||||
binding.addonCheckbox.isChecked = model.enabled
|
||||
binding.buttonDelete.setOnClickListener {
|
||||
|
||||
val deleteAction = {
|
||||
addonViewModel.setAddonToDelete(model)
|
||||
}
|
||||
binding.deleteCard.setOnClickListener { deleteAction() }
|
||||
binding.buttonDelete.setOnClickListener { deleteAction() }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ object Settings {
|
||||
SECTION_INPUT_PLAYER_SIX,
|
||||
SECTION_INPUT_PLAYER_SEVEN,
|
||||
SECTION_INPUT_PLAYER_EIGHT,
|
||||
SECTION_APP_SETTINGS(R.string.preferences_app_settings),
|
||||
SECTION_APP_SETTINGS(R.string.app_settings),
|
||||
SECTION_DEBUG(R.string.preferences_debug),
|
||||
SECTION_EDEN_VEIL(R.string.eden_veil),
|
||||
SECTION_APPLETS(R.string.applets_menu);
|
||||
|
||||
@@ -35,6 +35,8 @@ import android.widget.FrameLayout
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.appcompat.widget.PopupMenu
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.core.graphics.Insets
|
||||
@@ -54,12 +56,19 @@ import androidx.window.layout.WindowLayoutInfo
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.textview.MaterialTextView
|
||||
import kotlinx.coroutines.CancellationException
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.ensureActive
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.yuzu.yuzu_emu.HomeNavigationDirections
|
||||
import org.yuzu.yuzu_emu.NativeLibrary
|
||||
import org.yuzu.yuzu_emu.R
|
||||
import org.yuzu.yuzu_emu.activities.EmulationActivity
|
||||
import org.yuzu.yuzu_emu.databinding.DialogOverlayAdjustBinding
|
||||
import org.yuzu.yuzu_emu.databinding.FragmentEmulationBinding
|
||||
import org.yuzu.yuzu_emu.features.input.NativeInput
|
||||
import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting
|
||||
import org.yuzu.yuzu_emu.features.settings.model.IntSetting
|
||||
import org.yuzu.yuzu_emu.features.settings.model.Settings
|
||||
@@ -82,12 +91,11 @@ import org.yuzu.yuzu_emu.utils.ViewUtils
|
||||
import org.yuzu.yuzu_emu.utils.ViewUtils.setVisible
|
||||
import org.yuzu.yuzu_emu.utils.collect
|
||||
import org.yuzu.yuzu_emu.utils.CustomSettingsHandler
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.File
|
||||
import kotlin.coroutines.coroutineContext
|
||||
import kotlin.coroutines.resume
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
import java.io.File
|
||||
|
||||
class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||
private lateinit var emulationState: EmulationState
|
||||
@@ -121,6 +129,60 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||
|
||||
private var perfStatsRunnable: Runnable? = null
|
||||
private var socRunnable: Runnable? = null
|
||||
private var isAmiiboPickerOpen = false
|
||||
private var amiiboLoadJob: Job? = null
|
||||
|
||||
private val loadAmiiboLauncher =
|
||||
registerForActivityResult(ActivityResultContracts.OpenDocument()) { uri ->
|
||||
isAmiiboPickerOpen = false
|
||||
val binding = _binding ?: return@registerForActivityResult
|
||||
binding.inGameMenu.requestFocus()
|
||||
|
||||
if (!isAdded || uri == null) {
|
||||
return@registerForActivityResult
|
||||
}
|
||||
|
||||
if (!NativeLibrary.isRunning()) {
|
||||
showAmiiboDialog(R.string.amiibo_wrong_state)
|
||||
return@registerForActivityResult
|
||||
}
|
||||
|
||||
amiiboLoadJob?.cancel()
|
||||
val owner = viewLifecycleOwner
|
||||
amiiboLoadJob = owner.lifecycleScope.launch {
|
||||
val bytes = readAmiiboFile(uri)
|
||||
|
||||
if (!isAdded) {
|
||||
return@launch
|
||||
}
|
||||
|
||||
if (bytes == null || bytes.isEmpty()) {
|
||||
showAmiiboDialog(
|
||||
if (bytes == null) R.string.amiibo_unknown_error else R.string.amiibo_not_valid
|
||||
)
|
||||
return@launch
|
||||
}
|
||||
|
||||
val result = withContext(Dispatchers.IO) {
|
||||
if (NativeLibrary.isRunning()) {
|
||||
NativeLibrary.loadAmiibo(bytes)
|
||||
} else {
|
||||
AmiiboLoadResult.WrongDeviceState.value
|
||||
}
|
||||
}
|
||||
|
||||
if (!isAdded) {
|
||||
return@launch
|
||||
}
|
||||
handleAmiiboLoadResult(result)
|
||||
}.also { job ->
|
||||
job.invokeOnCompletion {
|
||||
if (amiiboLoadJob == job) {
|
||||
amiiboLoadJob = null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
super.onAttach(context)
|
||||
@@ -623,6 +685,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||
true
|
||||
}
|
||||
|
||||
R.id.menu_load_amiibo -> handleLoadAmiiboSelection()
|
||||
|
||||
R.id.menu_controls -> {
|
||||
val action = HomeNavigationDirections.actionGlobalSettingsActivity(
|
||||
null,
|
||||
@@ -893,6 +957,96 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||
}
|
||||
}
|
||||
|
||||
private fun handleLoadAmiiboSelection(): Boolean {
|
||||
val binding = _binding ?: return true
|
||||
|
||||
binding.inGameMenu.requestFocus()
|
||||
|
||||
if (!NativeLibrary.isRunning()) {
|
||||
showAmiiboDialog(R.string.amiibo_wrong_state)
|
||||
return true
|
||||
}
|
||||
|
||||
when (AmiiboState.fromValue(NativeLibrary.getVirtualAmiiboState())) {
|
||||
AmiiboState.TagNearby -> {
|
||||
amiiboLoadJob?.cancel()
|
||||
NativeInput.onRemoveNfcTag()
|
||||
showAmiiboDialog(R.string.amiibo_removed_message)
|
||||
}
|
||||
|
||||
AmiiboState.WaitingForAmiibo -> {
|
||||
if (isAmiiboPickerOpen) {
|
||||
return true
|
||||
}
|
||||
|
||||
isAmiiboPickerOpen = true
|
||||
binding.drawerLayout.close()
|
||||
loadAmiiboLauncher.launch(AMIIBO_MIME_TYPES)
|
||||
}
|
||||
|
||||
else -> showAmiiboDialog(R.string.amiibo_wrong_state)
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
private fun handleAmiiboLoadResult(result: Int) {
|
||||
when (AmiiboLoadResult.fromValue(result)) {
|
||||
AmiiboLoadResult.Success -> {
|
||||
if (!isAdded) {
|
||||
return
|
||||
}
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
getString(R.string.amiibo_load_success),
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
|
||||
AmiiboLoadResult.UnableToLoad -> showAmiiboDialog(R.string.amiibo_in_use)
|
||||
AmiiboLoadResult.NotAnAmiibo -> showAmiiboDialog(R.string.amiibo_not_valid)
|
||||
AmiiboLoadResult.WrongDeviceState -> showAmiiboDialog(R.string.amiibo_wrong_state)
|
||||
AmiiboLoadResult.Unknown -> showAmiiboDialog(R.string.amiibo_unknown_error)
|
||||
}
|
||||
}
|
||||
|
||||
private fun showAmiiboDialog(@StringRes messageRes: Int) {
|
||||
if (!isAdded) {
|
||||
return
|
||||
}
|
||||
|
||||
MaterialAlertDialogBuilder(requireContext())
|
||||
.setTitle(R.string.amiibo_title)
|
||||
.setMessage(messageRes)
|
||||
.setPositiveButton(R.string.ok, null)
|
||||
.show()
|
||||
}
|
||||
|
||||
private suspend fun readAmiiboFile(uri: Uri): ByteArray? =
|
||||
withContext(Dispatchers.IO) {
|
||||
val resolver = context?.contentResolver ?: return@withContext null
|
||||
try {
|
||||
resolver.openInputStream(uri)?.use { stream ->
|
||||
val buffer = ByteArrayOutputStream()
|
||||
val chunk = ByteArray(DEFAULT_BUFFER_SIZE)
|
||||
while (true) {
|
||||
coroutineContext.ensureActive()
|
||||
val read = stream.read(chunk)
|
||||
if (read == -1) {
|
||||
break
|
||||
}
|
||||
buffer.write(chunk, 0, read)
|
||||
}
|
||||
buffer.toByteArray()
|
||||
}
|
||||
} catch (ce: CancellationException) {
|
||||
throw ce
|
||||
} catch (e: Exception) {
|
||||
Log.error("[EmulationFragment] Failed to read amiibo: ${e.message}")
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
if (this::emulationState.isInitialized) {
|
||||
if (emulationState.isRunning && emulationActivity?.isInPictureInPictureMode != true) {
|
||||
@@ -905,7 +1059,10 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
amiiboLoadJob?.cancel()
|
||||
amiiboLoadJob = null
|
||||
_binding = null
|
||||
isAmiiboPickerOpen = false
|
||||
}
|
||||
|
||||
override fun onDetach() {
|
||||
@@ -1354,7 +1511,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||
|
||||
emulationState.newSurface(holder.surface)
|
||||
} else {
|
||||
emulationState.newSurface(holder.surface)
|
||||
// Surface changed due to rotation/config change
|
||||
// Only update surface reference, don't trigger state changes
|
||||
emulationState.updateSurfaceReference(holder.surface)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1685,6 +1844,14 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||
}
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
fun updateSurfaceReference(surface: Surface?) {
|
||||
this.surface = surface
|
||||
if (this.surface != null && state == State.RUNNING) {
|
||||
NativeLibrary.surfaceChanged(this.surface)
|
||||
}
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
fun clearSurface() {
|
||||
if (surface == null) {
|
||||
@@ -1739,7 +1906,34 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||
}
|
||||
}
|
||||
|
||||
private enum class AmiiboState(val value: Int) {
|
||||
Disabled(0),
|
||||
Initialized(1),
|
||||
WaitingForAmiibo(2),
|
||||
TagNearby(3);
|
||||
|
||||
companion object {
|
||||
fun fromValue(value: Int): AmiiboState =
|
||||
values().firstOrNull { it.value == value } ?: Disabled
|
||||
}
|
||||
}
|
||||
|
||||
private enum class AmiiboLoadResult(val value: Int) {
|
||||
Success(0),
|
||||
UnableToLoad(1),
|
||||
NotAnAmiibo(2),
|
||||
WrongDeviceState(3),
|
||||
Unknown(4);
|
||||
|
||||
companion object {
|
||||
fun fromValue(value: Int): AmiiboLoadResult =
|
||||
values().firstOrNull { it.value == value } ?: Unknown
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val AMIIBO_MIME_TYPES =
|
||||
arrayOf("application/octet-stream", "application/x-binary", "*/*")
|
||||
private val perfStatsUpdateHandler = Handler(Looper.myLooper()!!)
|
||||
private val socUpdateHandler = Handler(Looper.myLooper()!!)
|
||||
}
|
||||
|
||||
@@ -7,8 +7,10 @@
|
||||
|
||||
#include <codecvt>
|
||||
#include <locale>
|
||||
#include <span>
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
#include <vector>
|
||||
#include <dlfcn.h>
|
||||
|
||||
#ifdef ARCHITECTURE_arm64
|
||||
@@ -67,6 +69,7 @@
|
||||
#include "hid_core/frontend/emulated_controller.h"
|
||||
#include "hid_core/hid_core.h"
|
||||
#include "hid_core/hid_types.h"
|
||||
#include "input_common/drivers/virtual_amiibo.h"
|
||||
#include "jni/native.h"
|
||||
#include "video_core/renderer_base.h"
|
||||
#include "video_core/renderer_vulkan/renderer_vulkan.h"
|
||||
@@ -1005,6 +1008,44 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_areKeysPresent(JNIEnv* env, jobje
|
||||
return ContentManager::AreKeysPresent();
|
||||
}
|
||||
|
||||
jint Java_org_yuzu_yuzu_1emu_NativeLibrary_getVirtualAmiiboState(JNIEnv* env, jobject jobj) {
|
||||
if (!EmulationSession::GetInstance().IsRunning()) {
|
||||
return static_cast<jint>(InputCommon::VirtualAmiibo::State::Disabled);
|
||||
}
|
||||
|
||||
auto* virtual_amiibo =
|
||||
EmulationSession::GetInstance().GetInputSubsystem().GetVirtualAmiibo();
|
||||
if (virtual_amiibo == nullptr) {
|
||||
return static_cast<jint>(InputCommon::VirtualAmiibo::State::Disabled);
|
||||
}
|
||||
|
||||
return static_cast<jint>(virtual_amiibo->GetCurrentState());
|
||||
}
|
||||
|
||||
jint Java_org_yuzu_yuzu_1emu_NativeLibrary_loadAmiibo(JNIEnv* env, jobject jobj,
|
||||
jbyteArray jdata) {
|
||||
if (!EmulationSession::GetInstance().IsRunning() || jdata == nullptr) {
|
||||
return static_cast<jint>(InputCommon::VirtualAmiibo::Info::WrongDeviceState);
|
||||
}
|
||||
|
||||
auto* virtual_amiibo =
|
||||
EmulationSession::GetInstance().GetInputSubsystem().GetVirtualAmiibo();
|
||||
if (virtual_amiibo == nullptr) {
|
||||
return static_cast<jint>(InputCommon::VirtualAmiibo::Info::Unknown);
|
||||
}
|
||||
|
||||
const jsize length = env->GetArrayLength(jdata);
|
||||
std::vector<u8> bytes(static_cast<std::size_t>(length));
|
||||
if (length > 0) {
|
||||
env->GetByteArrayRegion(jdata, 0, length,
|
||||
reinterpret_cast<jbyte*>(bytes.data()));
|
||||
}
|
||||
|
||||
const auto info =
|
||||
virtual_amiibo->LoadAmiibo(std::span<u8>(bytes.data(), bytes.size()));
|
||||
return static_cast<jint>(info);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_org_yuzu_yuzu_1emu_NativeLibrary_initMultiplayer(
|
||||
JNIEnv* env, [[maybe_unused]] jobject obj) {
|
||||
|
||||
|
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 65 KiB |
@@ -4,7 +4,8 @@
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:padding="16dp">
|
||||
android:padding="16dp"
|
||||
android:background="?attr/colorSurface">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text_title"
|
||||
@@ -13,7 +14,8 @@
|
||||
android:text="@string/chat"
|
||||
android:textAppearance="?attr/textAppearanceHeadline6"
|
||||
android:gravity="center"
|
||||
android:layout_marginBottom="16dp" />
|
||||
android:layout_marginBottom="16dp"
|
||||
android:textColor="?attr/colorOnSurface" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/chat_recycler_view"
|
||||
@@ -39,7 +41,9 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="text"
|
||||
android:imeOptions="actionSend" />
|
||||
android:imeOptions="actionSend"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
android:textColorHint="?attr/colorOnSurfaceVariant" />
|
||||
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
@@ -50,6 +54,7 @@
|
||||
android:layout_gravity="bottom"
|
||||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:src="@drawable/ic_send"
|
||||
android:contentDescription="@string/send_message" />
|
||||
android:contentDescription="@string/send_message"
|
||||
app:tint="?attr/colorPrimary" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -3,13 +3,14 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:background="?attr/colorSurface">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/appbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@android:color/transparent"
|
||||
android:background="?attr/colorSurface"
|
||||
android:elevation="0dp">
|
||||
|
||||
<LinearLayout
|
||||
@@ -37,7 +38,8 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:text="@string/multiplayer_room_browser"
|
||||
android:textAppearance="@style/TextAppearance.Material3.TitleLarge" />
|
||||
android:textAppearance="@style/TextAppearance.Material3.TitleLarge"
|
||||
android:textColor="?attr/colorOnSurface" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="48dp"
|
||||
@@ -75,7 +77,8 @@
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
app:cardCornerRadius="24dp">
|
||||
app:cardCornerRadius="24dp"
|
||||
app:cardBackgroundColor="?attr/colorSurfaceVariant">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/search_container"
|
||||
@@ -91,6 +94,7 @@
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/ic_search"
|
||||
android:contentDescription="@string/home_search"
|
||||
app:tint="?attr/colorOnSurfaceVariant" />
|
||||
|
||||
<EditText
|
||||
@@ -101,7 +105,9 @@
|
||||
android:hint="@string/multiplayer_search_public_lobbies"
|
||||
android:imeOptions="flagNoFullscreen"
|
||||
android:inputType="text"
|
||||
android:maxLines="1" />
|
||||
android:maxLines="1"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
android:autofillHints="" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
@@ -113,6 +119,7 @@
|
||||
android:layout_marginEnd="48dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:src="@drawable/ic_clear"
|
||||
android:contentDescription="@string/clear"
|
||||
android:visibility="invisible"
|
||||
app:tint="?attr/colorOnSurfaceVariant"
|
||||
tools:visibility="visible" />
|
||||
@@ -154,19 +161,33 @@
|
||||
android:id="@+id/chip_hide_empty"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:checkable="true"
|
||||
android:checked="false"
|
||||
android:text="@string/multiplayer_hide_empty_rooms"
|
||||
app:chipCornerRadius="16dp" />
|
||||
app:chipCornerRadius="16dp"
|
||||
app:chipIconTint="?attr/colorOnSurface"
|
||||
app:chipIconSize="18dp"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp" />
|
||||
|
||||
<com.google.android.material.chip.Chip
|
||||
android:id="@+id/chip_hide_full"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:checkable="true"
|
||||
android:checked="false"
|
||||
android:text="@string/multiplayer_hide_full_rooms"
|
||||
app:chipCornerRadius="16dp" />
|
||||
app:chipCornerRadius="16dp"
|
||||
app:chipIconTint="?attr/colorOnSurface"
|
||||
app:chipIconSize="18dp"
|
||||
android:paddingStart="8dp"
|
||||
android:paddingEnd="8dp"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp" />
|
||||
|
||||
</LinearLayout>
|
||||
</HorizontalScrollView>
|
||||
@@ -198,6 +219,7 @@
|
||||
android:layout_height="72dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:src="@drawable/ic_refresh"
|
||||
android:contentDescription="@string/refresh"
|
||||
android:alpha="0.5"
|
||||
app:tint="?attr/colorOnSurface" />
|
||||
|
||||
@@ -205,14 +227,16 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/multiplayer_no_rooms_found"
|
||||
android:textAppearance="@style/TextAppearance.Material3.TitleMedium" />
|
||||
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
|
||||
android:textColor="?attr/colorOnSurface" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:text="@string/multiplayer_tap_refresh_to_check_again"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodyMedium" />
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
|
||||
android:textColor="?attr/colorOnSurface" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/empty_refresh_button"
|
||||
@@ -220,7 +244,8 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:text="@string/refresh"
|
||||
app:icon="@drawable/ic_refresh" />
|
||||
app:icon="@drawable/ic_refresh"
|
||||
style="@style/Widget.Material3.Button.ElevatedButton" />
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
||||
@@ -3,7 +3,8 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/theme_dialog_background">
|
||||
|
||||
<com.google.android.material.bottomsheet.BottomSheetDragHandleView
|
||||
android:id="@+id/drag_handle"
|
||||
@@ -33,6 +34,7 @@
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginBottom="24dp"
|
||||
android:src="@drawable/ic_network"
|
||||
android:contentDescription="@string/multiplayer"
|
||||
app:tint="?attr/colorPrimary" />
|
||||
|
||||
<LinearLayout
|
||||
@@ -47,13 +49,18 @@
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/btn_lobby_browser"
|
||||
style="@style/Widget.Material3.Button.ElevatedButton"
|
||||
style="@style/Widget.Material3.Button.TonalButton"
|
||||
android:layout_width="175dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:minHeight="56dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:text="@string/multiplayer_public_room"
|
||||
app:cornerRadius="16dp"
|
||||
app:icon="@drawable/ic_search" />
|
||||
app:icon="@drawable/ic_search"
|
||||
app:iconPadding="12dp" />
|
||||
|
||||
<Space
|
||||
android:layout_width="20dp"
|
||||
@@ -74,12 +81,16 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:minHeight="56dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp"
|
||||
android:text="@string/multiplayer_join_room"
|
||||
app:cornerRadius="16dp"
|
||||
app:icon="@drawable/ic_install" />
|
||||
app:icon="@drawable/ic_install"
|
||||
app:iconPadding="12dp" />
|
||||
|
||||
<Space
|
||||
android:layout_width="16dp"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
@@ -88,9 +99,13 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:minHeight="56dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp"
|
||||
android:text="@string/multiplayer_create_room"
|
||||
app:cornerRadius="16dp"
|
||||
app:icon="@drawable/ic_add" />
|
||||
app:icon="@drawable/ic_add"
|
||||
app:iconPadding="12dp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/theme_dialog_background">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/theme_dialog_background">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
@@ -149,6 +150,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@android:string/ok"
|
||||
android:layout_gravity="center" />
|
||||
android:layout_gravity="center"
|
||||
style="@style/Widget.Material3.Button.ElevatedButton" />
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
@@ -8,7 +8,7 @@
|
||||
android:layout_marginBottom="24dp"
|
||||
android:layout_marginHorizontal="12dp"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
app:cardBackgroundColor="?attr/colorSurfaceVariant"
|
||||
android:clickable="true"
|
||||
android:focusable="true">
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
android:textAlignment="viewStart"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
tools:text="Room Name" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
@@ -56,6 +57,7 @@
|
||||
android:layout_marginTop="5dp"
|
||||
android:textAlignment="viewStart"
|
||||
android:textSize="14sp"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
tools:text="Hosted by: Owner" />
|
||||
|
||||
<LinearLayout
|
||||
@@ -70,7 +72,8 @@
|
||||
android:layout_height="16dp"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:contentDescription="@string/multiplayer_game"
|
||||
android:src="@drawable/ic_controller" />
|
||||
android:src="@drawable/ic_controller"
|
||||
app:tint="?attr/colorOnSurfaceVariant" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/game_name"
|
||||
@@ -81,6 +84,7 @@
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textStyle="bold"
|
||||
android:textColor="?attr/colorOnSurface"
|
||||
tools:text="Game Name" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -98,7 +102,7 @@
|
||||
android:layout_height="16dp"
|
||||
android:src="@drawable/ic_user"
|
||||
android:contentDescription="@string/multiplayer_player_count"
|
||||
app:tint="?attr/colorAccent" />
|
||||
app:tint="?attr/colorPrimary" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/player_count"
|
||||
@@ -106,7 +110,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:textColor="?attr/colorAccent"
|
||||
android:textColor="?attr/colorPrimary"
|
||||
tools:text="2/4" />
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -2,68 +2,109 @@
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/addon_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:focusable="false"
|
||||
android:paddingHorizontal="20dp"
|
||||
android:paddingVertical="16dp">
|
||||
android:padding="8dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/text_container"
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/addon_card"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginEnd="16dp"
|
||||
app:layout_constraintEnd_toStartOf="@+id/addon_checkbox"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/title"
|
||||
style="@style/TextAppearance.Material3.HeadlineMedium"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAlignment="viewStart"
|
||||
android:textSize="17sp"
|
||||
app:lineHeight="28dp"
|
||||
tools:text="1440p Resolution" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/version"
|
||||
style="@style/TextAppearance.Material3.BodySmall"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/spacing_small"
|
||||
android:textAlignment="viewStart"
|
||||
tools:text="1.0.0" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<com.google.android.material.checkbox.MaterialCheckBox
|
||||
android:id="@+id/addon_checkbox"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="2dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:gravity="center"
|
||||
android:layout_marginEnd="8dp"
|
||||
app:layout_constraintTop_toTopOf="@+id/text_container"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/text_container"
|
||||
app:layout_constraintEnd_toStartOf="@+id/button_delete" />
|
||||
android:foreground="?attr/selectableItemBackground"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/delete_card"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent">
|
||||
|
||||
<Button
|
||||
android:id="@+id/button_delete"
|
||||
style="@style/Widget.Material3.Button.IconButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:contentDescription="@string/delete"
|
||||
android:tooltipText="@string/delete"
|
||||
app:icon="@drawable/ic_delete"
|
||||
app:iconTint="?attr/colorControlNormal"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingStart="16dp"
|
||||
android:paddingEnd="12dp"
|
||||
android:paddingTop="12dp"
|
||||
android:paddingBottom="12dp">
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/title"
|
||||
style="@style/TextAppearance.Material3.HeadlineSmall"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAlignment="viewStart"
|
||||
android:textSize="16sp"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
app:lineHeight="20dp"
|
||||
tools:text="1440p Resolution"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/addon_switch"
|
||||
android:layout_marginEnd="8dp" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/version"
|
||||
style="@style/TextAppearance.Material3.BodySmall"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:textAlignment="viewStart"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
tools:text="1.0.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/title"
|
||||
app:layout_constraintEnd_toStartOf="@+id/addon_switch" />
|
||||
|
||||
<com.google.android.material.materialswitch.MaterialSwitch
|
||||
android:id="@+id/addon_switch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:focusable="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:layout_marginEnd="4dp" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:id="@+id/delete_card"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
app:cardCornerRadius="10dp"
|
||||
app:cardElevation="2dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:foreground="?attr/selectableItemBackgroundBorderless"
|
||||
app:layout_constraintStart_toEndOf="@id/addon_card"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/addon_checkbox"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/addon_checkbox" />
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent">
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:foregroundGravity="center">
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/button_delete"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="center"
|
||||
android:background="@null"
|
||||
android:src="@drawable/ic_delete"
|
||||
app:tint="@color/eden_border_gradient_end"
|
||||
android:contentDescription="@string/delete" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -33,6 +33,11 @@
|
||||
android:icon="@drawable/ic_two_users"
|
||||
android:title="@string/multiplayer" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_load_amiibo"
|
||||
android:icon="@drawable/ic_nfc"
|
||||
android:title="@string/load_amiibo" />
|
||||
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_overlay_controls"
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<string name="notice_notification_channel_name">الإشعارات والأخطاء</string>
|
||||
<string name="notice_notification_channel_description">عرض الإشعارات عند حدوث خطأ ما.</string>
|
||||
<string name="notification_permission_not_granted">لم يتم منح إذن الإشعار!</string>
|
||||
<string name="app_notification_channel_description">إشعارات محاكي عدن سويتش</string>
|
||||
<string name="app_notification_running">عدن قيد التشغيل</string>
|
||||
<string name="app_notification_channel_description">إشعارات محاكي السويتش Eden</string>
|
||||
<string name="app_notification_running">Eden قيد التشغيل</string>
|
||||
<string name="seconds">ثواني</string>
|
||||
|
||||
<!-- Spinbox strings -->
|
||||
@@ -27,17 +27,17 @@
|
||||
|
||||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(مُحسَّن)</string>
|
||||
<string name="enhanced_fps_suffix">(Enhanced)</string>
|
||||
<string name="process_ram">Process RAM: %1$d MB</string>
|
||||
<string name="shaders_prefix">بناء</string>
|
||||
<string name="shaders_suffix">شادر(شادرات)</string>
|
||||
<string name="shaders_suffix">مظلل (مظللات)</string>
|
||||
<string name="charging">(يشحن)</string>
|
||||
|
||||
<string name="system_info_label">النظام:</string>
|
||||
<string name="show_stats_overlay">عرض إحصائيات الأداء</string>
|
||||
<string name="stats_overlay_customization">تخصيص</string>
|
||||
<string name="show_stats_overlay">عرض تراكب إحصائيات الأداء</string>
|
||||
<string name="stats_overlay_customization">التخصيص</string>
|
||||
<string name="stats_overlay_items">الرؤية</string>
|
||||
<string name="stats_overlay_options">العرض</string>
|
||||
<string name="stats_overlay_options">تراكب الأداء</string>
|
||||
<string name="enable_stats_overlay_">تمكين تراكب إحصائيات الأداء</string>
|
||||
<string name="stats_overlay_options_description">قم بتكوين المعلومات التي يتم عرضها في تراكب إحصائيات الأداء</string>
|
||||
<string name="show_fps">عرض معدل الإطارات</string>
|
||||
@@ -50,53 +50,53 @@
|
||||
<string name="show_system_ram_usage_description">عرض كمية ذاكرة الوصول العشوائي المستخدمة من قبل النظام</string>
|
||||
<string name="show_bat_temperature">عرض درجة حرارة البطارية</string>
|
||||
<string name="show_bat_temperature_description">عرض درجة حرارة البطارية الحالية</string>
|
||||
<string name="bat_temperature_unit">وحدات درجة حرارة البطارية</string>
|
||||
<string name="bat_temperature_unit">وحدات قياس درجة حرارة البطارية</string>
|
||||
<string name="show_power_info">عرض معلومات البطارية</string>
|
||||
<string name="show_power_info_description">عرض استهلاك الطاقة الحالي والسعة المتبقية في البطارية</string>
|
||||
<string name="show_shaders_building">عرض بناء الشادرات</string>
|
||||
<string name="show_shaders_building_description">عرض العدد الحالي للشادرات التي يتم بناؤها</string>
|
||||
<string name="overlay_position">موضع العرض</string>
|
||||
<string name="overlay_position_description">اختيار مكان عرض الإحصائيات على الشاشة</string>
|
||||
<string name="overlay_position_top_left">أعلى اليسار</string>
|
||||
<string name="overlay_position_top_right">أعلى اليمين</string>
|
||||
<string name="overlay_position_bottom_left">أسفل اليسار</string>
|
||||
<string name="overlay_position_bottom_right">أسفل اليمين</string>
|
||||
<string name="show_shaders_building">عرض بناء الظلال</string>
|
||||
<string name="show_shaders_building_description">عرض عدد الظلال التي يتم بناؤها</string>
|
||||
<string name="overlay_position">موضع التراكب</string>
|
||||
<string name="overlay_position_description">اختر مكان عرض التراكب على الشاشة</string>
|
||||
<string name="overlay_position_top_left">أعلى اليمين</string>
|
||||
<string name="overlay_position_top_right">أعلى اليسار</string>
|
||||
<string name="overlay_position_bottom_left">أسفل اليمين</string>
|
||||
<string name="overlay_position_bottom_right">أسفل اليسار</string>
|
||||
<string name="overlay_position_center_top">منتصف الأعلى</string>
|
||||
<string name="overlay_position_center_bottom">منتصف الأسفل</string>
|
||||
<string name="perf_overlay_background">خلفية العرض</string>
|
||||
<string name="perf_overlay_background_description">إضافة خلفية لعرض الإحصائيات لسهولة القراءة</string>
|
||||
<string name="perf_overlay_background">خلفية التراكب</string>
|
||||
<string name="perf_overlay_background_description">يضيف خلفية خلف التراكب لتسهيل القراءة</string>
|
||||
|
||||
<!-- Device Overlay settings -->
|
||||
<string name="show_soc_overlay">عرض تراكب معلومات الجهاز</string>
|
||||
<string name="enable_soc_overlay">تمكين تراكب الجهاز</string>
|
||||
<string name="soc_overlay_options">تراكب الجهاز</string>
|
||||
<string name="soc_overlay_options_description">تكوين المعلومات المعروضة في تراكب الجهاز</string>
|
||||
<string name="soc_overlay_options_description">تكوين المعلومات التي يتم عرضها في تراكب الجهاز</string>
|
||||
|
||||
<string name="show_device_model">عرض طراز الجهاز</string>
|
||||
<string name="show_device_model_description">عرض طراز الجهاز المضيف</string>
|
||||
<string name="show_gpu_model">عرض طراز GPU</string>
|
||||
<string name="show_gpu_model_description">عرض طراز GPU المضيف</string>
|
||||
<string name="show_soc_model">عرض طراز SoC</string>
|
||||
<string name="show_soc_model_description">عرض طراز SoC المضيف</string>
|
||||
<string name="show_fw_version">عرض إصدار الفريموير</string>
|
||||
<string name="show_fw_version_description">عرض إصدار الفريموير</string>
|
||||
<string name="show_gpu_model">عرض طراز وحدة معالجة الرسومات</string>
|
||||
<string name="show_gpu_model_description">عرض طراز وحدة معالجة الرسومات المضيفة</string>
|
||||
<string name="show_soc_model">عرض طراز الرقائق</string>
|
||||
<string name="show_soc_model_description">عرض طراز رقائق المضيف</string>
|
||||
<string name="show_fw_version">عرض إصدار الفيرموير</string>
|
||||
<string name="show_fw_version_description">عرض إصدار الفيرموير</string>
|
||||
|
||||
<!-- Eden\'s Veil -->
|
||||
<string name="eden_veil">حجاب عدن</string>
|
||||
<string name="eden_veil">حجاب Eden</string>
|
||||
<string name="eden_veil_description">إعدادات تجريبية لتحسين الأداء والقدرة. قد تسبب هذه الإعدادات شاشات سوداء أو مشاكل أخرى في اللعبة.</string>
|
||||
|
||||
<string name="veil_extensions">امتدادات GPU</string>
|
||||
<string name="veil_extensions">امتدادات وحدة معالجة الرسوميات</string>
|
||||
<string name="dyna_state">الحالة الديناميكية الموسعة</string>
|
||||
<string name="dyna_state_description">يتحكم في عدد المميزات التي يمكن استخدامها في الحالة الديناميكية الموسعة. الأرقام الأعلى تسمح بميزات أكثر ويمكن أن تعزز الأداء، ولكن قد تسبب مشكلات مع بعض السائقين والبائعين. قد تختلف القيمة الافتراضية بحسب نظامك وقدرات الأجهزة. يمكن تغيير هذه القيمة حتى يتم تحقيق الاستقرار وجودة الصورة الأفضل.</string>
|
||||
<string name="disabled">معطل</string>
|
||||
<string name="provoking_vertex">الرأس المثير</string>
|
||||
<string name="provoking_vertex_description">يحسن الإضاءة ومعالجة الرؤوس في بعض الألعاب. مدعوم فقط على وحدات معالجة الرسومات التي تدعم فولكان 1.0+.</string>
|
||||
<string name="descriptor_indexing">فهرسة الواصفات</string>
|
||||
<string name="descriptor_indexing_description">يحسن معالجة القوام والمخازن المؤقتة، بالإضافة إلى طبقة ترجمة ماكسويل. مدعوم من قبل بعض وحدات معالجة الرسومات التي تدعم فولكان 1.1 وجميع وحدات معالجة الرسومات التي تدعم فولكان 1.2+.</string>
|
||||
<string name="provoking_vertex_description">يحسن الإضاءة ومعالجة الرؤوس في بعض الألعاب. مدعوم فقط على وحدات معالجة الرسومات التي تدعم فولكان 1.0+</string>
|
||||
<string name="descriptor_indexing">فهرسة الوصف</string>
|
||||
<string name="descriptor_indexing_description">يحسن معالجة النسيج والمخزن المؤقت، بالإضافة إلى طبقة الترجمة Maxwell. مدعوم من بعض وحدات معالجة الرسومات Vulkan 1.1 وجميع وحدات معالجة الرسومات Vulkan 1.2+.</string>
|
||||
<string name="sample_shading">تظليل العينة</string>
|
||||
<string name="sample_shading_description">يسمح لمُظلل الأجزاء بالتنفيذ لكل عينة في جزء متعدد العينات بدلاً من مرة واحدة لكل جزء. يحسن جودة الرسومات على حساب بعض الأداء. تدعم فقط أجهزة Vulkan 1.1+ هذا الامتداد.</string>
|
||||
<string name="sample_shading_description">يسمح لمظلل الأجزاء بتنفيذ كل عينة في جزء متعدد العينات بدلاً من مرة واحدة لكل جزء. يحسن جودة الرسومات على حساب بعض الأداء. لا تدعم هذه الإضافة سوى أجهزة Vulkan 1.1+ فقط.</string>
|
||||
<string name="sample_shading_fraction">كسر التظليل العيني</string>
|
||||
<string name="sample_shading_fraction_description">شدة تمرير التظليل العيني. القيم الأعلى تحسن الجودة أكثر ولكنها تقلل الأداء بدرجة أكبر.</string>
|
||||
<string name="sample_shading_fraction_description">كثافة تمرير تظليل العينة. تؤدي القيم الأعلى إلى تحسين الجودة بشكل أكبر، ولكنها تقلل أيضًا من الأداء إلى حد كبير.</string>
|
||||
|
||||
<string name="veil_renderer">العارض</string>
|
||||
<string name="frame_interpolation">تحسين سرعة الإطارات</string>
|
||||
@@ -116,7 +116,7 @@
|
||||
<string name="use_fast_cpu_time">وقت وحدة المعالجة المركزية السريع</string>
|
||||
<string name="use_fast_cpu_time_description">يجبر وحدة المعالجة المركزية المحاكاة على العمل بسرعة أعلى، مما يقلل من بعض محددات معدل الإطارات. هذا الخيار غير مستقر وقد يسبب مشاكل، وقد يرى المستخدمون بأجهزة أضعف انخفاضًا في الأداء.</string>
|
||||
<string name="custom_cpu_ticks">تخصيص دورات المعالج</string>
|
||||
<string name="custom_cpu_ticks_description">تعيين قيمة مخصصة لدورات المعالج. القيم الأعلى قد تزيد الأداء، ولكن قد تتسبب أيضًا في تجمد اللعبة. يوصى بنطاق 77-21000.</string>
|
||||
<string name="custom_cpu_ticks_description">قم بتعيين قيمة مخصصة لدورات المعالج. القيم الأعلى يمكن أن تزيد من الأداء، ولكنها قد تتسبب أيضًا في تجميد اللعبة. يوصى باستخدام نطاق 77-21000.</string>
|
||||
<string name="cpu_ticks">دورات</string>
|
||||
<string name="skip_cpu_inner_invalidation">تخطي إبطال ذاكرة التخزين المؤقت الداخلية للوحدة المركزية</string>
|
||||
<string name="skip_cpu_inner_invalidation_description">يتخطى بعض عمليات إبطال ذاكرة التخزين المؤقت أثناء تحديثات الذاكرة، مما يقلل استخدام المعالج ويحسن أدائه. قد يسبب هذا أعطالاً أو تعطلًا في بعض الألعاب.</string>
|
||||
@@ -130,7 +130,7 @@
|
||||
<string name="dma_accuracy_description">يتحكم في دقة تحديد DMA. يمكن أن تصلح الدقة الآمنة المشاكل في بعض الألعاب، ولكنها قد تؤثر أيضًا على الأداء في بعض الحالات. إذا كنت غير متأكد، اترك هذا على الوضع الافتراضي.</string>
|
||||
|
||||
<!-- Shader Backend -->
|
||||
<string name="shader_backend">خلفية Shader</string>
|
||||
<string name="shader_backend">واجهة برمجة الظلال</string>
|
||||
<string name="shader_backend_description">Choose how shaders are compiled and translated for your GPU.</string>
|
||||
<string name="shader_backend_glsl">GLSL</string>
|
||||
<string name="shader_backend_glasm">GLASM</string>
|
||||
@@ -150,7 +150,7 @@
|
||||
|
||||
<!-- Multiplayer -->
|
||||
<string name="multiplayer">متعدد اللاعبين</string>
|
||||
<string name="multiplayer_description">استضف غرفة لعبتك الخاصة أو انضم إلى غرفة موجودة للعب مع الآخرين</string>
|
||||
<string name="multiplayer_description">استضف غرفة ألعاب خاصة بك أو انضم إلى غرفة موجودة بالفعل للعب مع الآخرين</string>
|
||||
<string name="multiplayer_create_room">إنشاء</string>
|
||||
<string name="multiplayer_join_room">الانضمام</string>
|
||||
<string name="multiplayer_public_room">تصفح الغرف العامة</string>
|
||||
@@ -163,7 +163,7 @@
|
||||
<string name="multiplayer_network_error">خطأ في الشبكة</string>
|
||||
<string name="multiplayer_lost_connection">فقدان الاتصال</string>
|
||||
<string name="multiplayer_name_collision">اسم المستخدم محجوز مسبقاً</string>
|
||||
<string name="multiplayer_mac_collision">تعارض في عنوان MAC</string>
|
||||
<string name="multiplayer_mac_collision">تعارض عناوين MAC</string>
|
||||
<string name="multiplayer_console_id_collision">تعارض معرف وحدة التحكم</string>
|
||||
<string name="multiplayer_wrong_version">إصدار خاطئ</string>
|
||||
<string name="multiplayer_wrong_password">كلمة مرور خاطئة</string>
|
||||
@@ -217,11 +217,11 @@
|
||||
<string name="multiplayer_search_public_lobbies">البحث في الغرف…</string>
|
||||
<string name="multiplayer_preferred_game_name">اللعبة المفضلة</string>
|
||||
<string name="multiplayer_lobby_type">نوع الغرفة</string>
|
||||
<string name="multiplayer_room_name_error">يجب أن يكون بين 3 و20 حرفًا</string>
|
||||
<string name="multiplayer_room_name_error">يجب أن يتكون من 3 إلى 20 حرفًا</string>
|
||||
<string name="multiplayer_required">مطلوب</string>
|
||||
<string name="multiplayer_token_required">مطلوب رمز ويب، انتقل إلى الإعدادات المتقدمة -> النظام -> الشبكة</string>
|
||||
<string name="multiplayer_ip_error">تنسيق IP غير صالح</string>
|
||||
<string name="multiplayer_username_error">يجب أن يكون بين 4-20 حرفًا ، وأن يحتوي على شخصيات أبجدية رقمية وفترات واندفاعات وتأكيدات ومساحات فقط</string>
|
||||
<string name="multiplayer_username_error">يجب أن يتكون من 4 إلى 20 حرفًا، وأن يحتوي على أحرف أبجدية رقمية ونقاط وشرطات وشرطات سفلية ومسافات فقط</string>
|
||||
<string name="multiplayer_nickname_invalid">اسم مستخدم غير صالح، تأكد من إعداده بشكل صحيح في النظام → الشبكة</string>
|
||||
<string name="multiplayer_token_error">يجب أن يتكون من 48 حرفًا، وأحرف صغيرة من a-z فقط</string>
|
||||
<string name="multiplayer_port_error">يجب أن يكون بين 1 و65535</string>
|
||||
@@ -233,23 +233,24 @@
|
||||
<string name="multiplayer_unlisted_visibility">غير مدرج</string>
|
||||
|
||||
<!-- Setup strings -->
|
||||
<string name="welcome">مرحبا</string>
|
||||
<string name="welcome_description">تعلم كيفية إعداد <b>عدن</b> والقفز إلى المحاكاة.</string>
|
||||
<string name="get_started">لنبدأ</string>
|
||||
<string name="welcome">مرحبًا!</string>
|
||||
<string name="welcome_description">تعلم كيفية إعداد <b>Eden</b> والبدء في المحاكاة.</string>
|
||||
<string name="get_started">ابدأ الآن</string>
|
||||
<string name="keys">المفاتيح</string>
|
||||
<string name="keys_description">اختر ملف <b>prod.keys</b> من الزر ادناه</string>
|
||||
<string name="select_keys">إختيار المفاتيح</string>
|
||||
<string name="firmware">الفريموير</string>
|
||||
<string name="select_firmware">حدد الفريموير</string>
|
||||
<string name="keys_description">اختر ملف <b>prod.keys</b> الخاص بك باستخدام الزر أدناه.</string>
|
||||
<string name="select_keys">اختر المفاتيح</string>
|
||||
<string name="firmware">الفيرموير</string>
|
||||
<string name="firmware_description">قم بتحديد ملف <b>firmware.zip</b> الخاص بك باستخدام الزر الموجود أدناه.</string>
|
||||
<string name="select_firmware">حدد الفيرموير</string>
|
||||
<string name="games">الألعاب</string>
|
||||
<string name="games_description">حدد مجلد <b>العابك</b> من الزر ادناه.</string>
|
||||
<string name="games_description">حدد مجلد <b>الألعاب</b> الخاص بك باستخدام الزر أدناه.</string>
|
||||
<string name="done">إنهاء</string>
|
||||
<string name="done_description">أنت جاهز تمامًا.\nاستمتع بألعابك!</string>
|
||||
<string name="text_continue">استمر</string>
|
||||
<string name="next">التالي</string>
|
||||
<string name="back">عودة</string>
|
||||
<string name="add_games">إضافة الألعاب</string>
|
||||
<string name="step_complete">مكتمل</string>
|
||||
<string name="step_complete">انتهى!</string>
|
||||
|
||||
<!-- Home strings -->
|
||||
|
||||
@@ -257,16 +258,19 @@
|
||||
<string name="view_list">قائمة</string>
|
||||
<string name="view_grid">شبكة</string>
|
||||
<string name="view_grid_compact">شبكة مدمجة</string>
|
||||
<string name="view_carousel">عرض دائري</string>
|
||||
<string name="view_carousel">دائري</string>
|
||||
<string name="game_image_desc"> لقطة شاشة لـ%1$s</string>
|
||||
<string name="folder">مجلد</string>
|
||||
<string name="dont_show_again">عدم العرض مجددًا</string>
|
||||
<string name="dont_show_again">لا تعرض مرة أخرى</string>
|
||||
<string name="add_directory_success">تمت إضافة مجلد اللعبة الجديد بنجاح</string>
|
||||
<string name="enable_update_checks">تحقق من وجود تحديثات عند بدء تشغيل التطبيق.</string>
|
||||
<string name="update_available">تحديث متاح</string>
|
||||
<string name="update_available_description">نسخة جديدة متاحة: %1$s\n\nهل ترغب في تنزيلها؟</string>
|
||||
<string name="home_search">البحث</string>
|
||||
<string name="home_settings">الإعدادات</string>
|
||||
<string name="empty_gamelist">لم يتم العثور على ملفات أو لم يتم تحديد مجلد الألعاب حتى الآن.</string>
|
||||
<string name="manage_game_folders">إدارة مجلدات اللعبة</string>
|
||||
<string name="select_games_folder_description">يسمح لـ عدن بملء قائمة الألعاب</string>
|
||||
<string name="select_games_folder_description">يسمح لـ Eden بملء قائمة الألعاب</string>
|
||||
<string name="add_games_warning">تخطي تحديد مجلد الألعاب؟</string>
|
||||
<string name="add_games_warning_description">لن يتم عرض الألعاب في قائمة الألعاب إذا لم يتم تحديد مجلد.</string>
|
||||
<string name="add_games_warning_help">https://yuzu-mirror.github.io/help/quickstart/#dumping-games</string>
|
||||
@@ -277,14 +281,14 @@
|
||||
<string name="install_prod_keys_warning">تخطي إضافة المفاتيح؟</string>
|
||||
<string name="install_prod_keys_warning_description">يلزم وجود مفاتيح صالحة لمحاكاة ألعاب البيع بالتجزئة. لن تعمل سوى التطبيقات المحلية إذا واصلت.</string>
|
||||
<string name="install_prod_keys_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
||||
<string name="install_firmware_warning">تخطي إضافة الفريموير؟</string>
|
||||
<string name="install_firmware_warning_description">العديد من الألعاب تتطلب الوصول إلى الفريموير لتشغيل بشكل صحيح.</string>
|
||||
<string name="install_firmware_warning">تخطي إضافة الفيرموير؟</string>
|
||||
<string name="install_firmware_warning_description">العديد من الألعاب تتطلب الوصول إلى الفيرموير لتشغيل بشكل صحيح.</string>
|
||||
<string name="install_firmware_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
||||
<string name="notifications">الإشعارات</string>
|
||||
<string name="notifications_description">امنح إذن الإشعار باستخدام الزر أدناه</string>
|
||||
<string name="notifications_description">امنح الإذن بالإشعار باستخدام الزر أدناه.</string>
|
||||
<string name="give_permission">منح الإذن</string>
|
||||
<string name="notification_warning">تخطي منح إذن الإشعارات؟</string>
|
||||
<string name="notification_warning_description">لن تتمكن إيدن من إعلامك بالمعلومات المهمة.</string>
|
||||
<string name="notification_warning_description">لن تتمكن Eden من إشعارك بالمعلومات المهمة.</string>
|
||||
<string name="permission_denied">تم رفض الإذن</string>
|
||||
<string name="permission_denied_description">لقد رفضت هذا الإذن عدة مرات ويتعين عليك الآن منحه يدويًا في إعدادات النظام</string>
|
||||
<string name="about">حول</string>
|
||||
@@ -295,18 +299,19 @@
|
||||
<string name="warning_cancel">إلغاء</string>
|
||||
<string name="install_amiibo_keys">تثبيت مفاتيح أميبو</string>
|
||||
<string name="install_amiibo_keys_description">مطلوب لاستخدام أميبو في اللعبة</string>
|
||||
<string name="gpu_driver_fetcher">جلب برامج تشغيل GPU</string>
|
||||
<string name="gpu_driver_manager">GPU مدير برنامج تشغيل</string>
|
||||
<string name="gpu_driver_fetcher">أداة جلب برامج تشغيل وحدة المعالجة الرسومية</string>
|
||||
<string name="gpu_driver_manager">مدير برامج تشغيل وحدة معالجة الرسومات</string>
|
||||
<string name="install_gpu_driver_description">تثبيت برامج تشغيل بديلة لأداء أو دقة أفضل</string>
|
||||
<string name="advanced_settings">إعدادات متقدمة</string>
|
||||
<string name="settings_description">تكوين إعدادات المحاكي</string>
|
||||
<string name="search_recently_played">تم تشغيلها مؤخرًا</string>
|
||||
<string name="search_recently_added">أضيفت مؤخراً</string>
|
||||
<string name="open_user_folder">فتح مجلد عدن</string>
|
||||
<string name="open_user_folder_description">إدارة الملفات الداخلية لـ عدن</string>
|
||||
<string name="open_user_folder">فتح مجلد Eden</string>
|
||||
<string name="open_user_folder_description">إدارة الملفات الداخلية لـ Eden</string>
|
||||
<string name="app_settings_description">تعديل سلوك ومظهر التطبيق</string>
|
||||
<string name="no_file_manager">لم يتم العثور على مدير الملفات</string>
|
||||
<string name="notification_no_directory_link">لا يمكن فتح مجلد عدن</string>
|
||||
<string name="notification_no_directory_link_description">الرجاء تحديد موقع مجلد المستخدم باستخدام اللوحة الجانبية لمدير الملفات يدويًا</string>
|
||||
<string name="notification_no_directory_link">لا يمكن فتح مجلد Eden</string>
|
||||
<string name="notification_no_directory_link_description">يرجى تحديد موقع مجلد المستخدم يدويًا باستخدام اللوحة الجانبية لمدير الملفات.</string>
|
||||
<string name="manage_save_data">إدارة حفظ البيانات</string>
|
||||
<string name="manage_save_data_description">حفظ البيانات التي تم العثور عليها. يرجى اختيار أحد الخيارات التالية</string>
|
||||
<string name="import_save_warning">استيراد حفظ البيانات</string>
|
||||
@@ -315,20 +320,20 @@
|
||||
<string name="save_files_exporting">جارٍ تصدير ملفات الحفظ...</string>
|
||||
<string name="save_file_imported_success">تم الاستيراد بنجاح</string>
|
||||
<string name="save_file_invalid_zip_structure">بنية مجلد الحفظ غير صالحة</string>
|
||||
<string name="save_file_invalid_zip_structure_description">يجب أن يكون اسم المجلد الفرعي الأول هو عنوان اللعبة.</string>
|
||||
<string name="install_firmware">تثبيت فيرموير</string>
|
||||
<string name="save_file_invalid_zip_structure_description">يجب أن يكون اسم المجلد الفرعي الأول هو معرف عنوان اللعبة.</string>
|
||||
<string name="install_firmware">تثبيت الفيرموير</string>
|
||||
<string name="install_firmware_description">يجب أن يكون فيرموير في أرشيف مضغوط وهو ضروري لتشغيل بعض الألعاب</string>
|
||||
<string name="firmware_installing">تثبيت فيرموير</string>
|
||||
<string name="firmware_installed_failure">فشل تثبيت فيرموير</string>
|
||||
<string name="firmware_installed_failure_description">تأكد من أن ملفات الفريموير nca موجودة في جذر ملف zip وحاول مرة أخرى.</string>
|
||||
<string name="firmware_uninstalled_failure">فشل إلغاء تثبيت الفريموير</string>
|
||||
<string name="firmware_installing">تثبيت الفيرموير</string>
|
||||
<string name="firmware_installed_failure">فشل تثبيت الفيرموير</string>
|
||||
<string name="firmware_installed_failure_description">تأكد من أن ملفات الفيرموير nca موجودة في جذر ملف مضغوط وحاول مرة أخرى.</string>
|
||||
<string name="firmware_uninstalled_failure">فشل إلغاء تثبيت الفيرموير</string>
|
||||
<string name="share_log">مشاركة سجلات التصحيح</string>
|
||||
<string name="share_log_description">مشاركة ملف سجل عدن لتصحيح المشكلات</string>
|
||||
<string name="share_log_description">مشاركة ملف سجل Eden لتصحيح الأخطاء</string>
|
||||
<string name="share_log_missing">لم يتم العثور على ملف السجل</string>
|
||||
<string name="install_game_content">تثبيت محتوى اللعبة</string>
|
||||
<string name="install_game_content_description">قم بتثبيت تحديثات اللعبة أو الإضافات</string>
|
||||
<string name="install_game_content_description">تثبيت تحديثات اللعبة أو المحتوى القابل للتنزيل</string>
|
||||
<string name="installing_game_content">جارٍ تثبيت المحتوى...</string>
|
||||
<string name="install_game_content_failure">خطأ في تثبيت الملف(ات) على NAND</string>
|
||||
<string name="install_game_content_failure">خطأ في تثبيت الملف(ات) على الذاكرة الداخلية</string>
|
||||
<string name="install_game_content_failure_description">يرجى التأكد من صحة المحتوى (المحتويات) وتثبيت ملف prod.keys.</string>
|
||||
<string name="install_game_content_failure_base">لا يُسمح بتثبيت الألعاب الأساسية لتجنب التعارضات المحتملة.</string>
|
||||
<string name="install_game_content_failed_count">%1$d حدث خطأ (أخطاء) في التثبيت </string>
|
||||
@@ -338,7 +343,7 @@
|
||||
<string name="install_game_content_help_link">https://yuzu-mirror.github.io/help/quickstart/#dumping-installed-updates</string>
|
||||
<string name="custom_driver_not_supported">برامج التشغيل المخصصة غير مدعومة</string>
|
||||
<string name="custom_driver_not_supported_description">تحميل برنامج التشغيل المخصص غير مدعوم حاليًا لهذا الجهاز. يُرجى إعادة تفعيل هذا الخيار لاحقًا للتحقق من إضافة الدعم.</string>
|
||||
<string name="manage_yuzu_data">إدارة بيانات عدن</string>
|
||||
<string name="manage_yuzu_data">إدارة بيانات Eden</string>
|
||||
<string name="manage_yuzu_data_description">استيراد/تصدير فيرموير والمفاتيح وبيانات المستخدم والمزيد</string>
|
||||
<string name="game_folders">مجلدات اللعبة</string>
|
||||
<string name="deep_scan">فحص عميق</string>
|
||||
@@ -363,20 +368,17 @@
|
||||
</plurals>
|
||||
<string name="no_save_data_found">لم يتم العثور على بيانات الحفظ</string>
|
||||
<string name="verify_installed_content">التحقق من المحتوى المثبت</string>
|
||||
<string name="verify_installed_content_description">فحص المحتوى المثبت بحثًا عن تلف</string>
|
||||
<string name="verify_installed_content_description">فحص جميع المحتويات المثبتة للتأكد من عدم تلفها</string>
|
||||
|
||||
<string name="keys_missing">مفاتيح التشفير مفقودة</string>
|
||||
<string name="keys_missing_description">لا يمكن فك تشفير الفريموير والألعاب</string>
|
||||
<string name="keys_missing_description">لا يمكن فك تشفير الفيرموير والألعاب</string>
|
||||
<string name="keys_missing_help">https://yuzu-mirror.github.io/help/quickstart/#dumping-decryption-keys</string>
|
||||
|
||||
<string name="uninstall_firmware">إزالة الفريموير</string>
|
||||
<string name="uninstall_firmware_description">سيؤدي إزالة الفريموير إلى حذفه من الجهاز وقد يؤثر على توافق الألعاب.</string>
|
||||
<string name="firmware_uninstalling">إلغاء تثبيت الفريموير</string>
|
||||
<string name="firmware_uninstalled_success">تم إزالة الفريموير بنجاح</string>
|
||||
<string name="uninstall_firmware">إزالة الفيرموير</string>
|
||||
<string name="uninstall_firmware_description">سيؤدي إزالة الفيرموير إلى حذفه من الجهاز وقد يؤثر على توافق الألعاب.</string>
|
||||
<string name="firmware_uninstalling">إلغاء تثبيت الفيرموير</string>
|
||||
<string name="firmware_uninstalled_success">تم إزالة الفيرموير بنجاح</string>
|
||||
|
||||
<string name="error_firmware_missing">الفريموير مطلوب لتشغيل بعض الألعاب واستخدام التطبيقات. يعمل عدن فقط مع الفريموير 19.0.1 أو الأقدم.</string>
|
||||
<string name="error_firmware_corrupted">الفريموير موجود ولكن لا يمكن قراءته. تحقق من مفاتيح التشفير وأعد نسخ الفريموير إذا لزم الأمر.</string>
|
||||
<string name="error_firmware_too_new">الفريموير جديد جداً أو لا يمكن قراءته. يعمل عدن فقط مع الفريموير 19.0.1 أو الأقدم.</string>
|
||||
|
||||
<string name="keys_failed">فشل تثبيت المفاتيح</string>
|
||||
<string name="keys_install_success">تم تثبيت المفاتيح بنجاح</string>
|
||||
@@ -385,18 +387,18 @@
|
||||
<string name="error_keys_failed_init">فشل تهيئة المفاتيح. تحقق من أن أدوات النسخ محدثة وأعد نسخ المفاتيح.</string>
|
||||
|
||||
<!-- Applet launcher strings -->
|
||||
<string name="qlaunch_applet">Qlaunch</string>
|
||||
<string name="qlaunch_applet">الشاشة الرئيسية</string>
|
||||
<string name="qlaunch_description">تشغيل التطبيقات من الشاشة الرئيسية للنظام</string>
|
||||
<string name="applets">قائمة التطبيقات المصغرة</string>
|
||||
<string name="applets_description">تطبيقات نظام التشغيل باستخدام الفريموير المثبتة</string>
|
||||
<string name="applets_error_firmware">الفريموير غير مثبت أو إصدار غير صالح</string>
|
||||
<string name="applets_description">تطبيقات نظام التشغيل باستخدام الفيرموير المثبتة</string>
|
||||
<string name="applets_error_firmware">الفيرموير غير مثبت أو إصدار غير صالح</string>
|
||||
<string name="applets_error_applet">التطبيق المصغر غير متوفر</string>
|
||||
<string name="applets_error_description"><![CDATA[يرجى التأكد من أن ملف <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> الخاص بك و <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-system-firmware\">الفريموير</a> مثبتة وحاول مرة أخرى.<br>بالإضافة إلى ذلك، تأكد من أن الفريموير الخاص بك هو من الإصدار 19.0.1 أو أقدم.]]></string>
|
||||
<string name="applets_error_description"><![CDATA[يرجى التأكد من أن ملف <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> الخاص بك و <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-system-firmware\">الفيرموير</a> مثبتة وحاول مرة أخرى.<br>بالإضافة إلى ذلك، تأكد من أن الفيرموير الخاص بك هو من الإصدار 19.0.1 أو أقدم.]]></string>
|
||||
<string name="album_applet">الألبوم</string>
|
||||
<string name="album_applet_description">شاهد الصور المخزنة في مجلد لقطات شاشة المستخدم باستخدام عارض صور النظام</string>
|
||||
<string name="album_applet_description">عرض الصور المخزنة في مجلد لقطات شاشة المستخدم باستخدام عارض صور النظام</string>
|
||||
<string name="mii_edit_applet">تعديل Mii</string>
|
||||
<string name="mii_edit_applet_description">عرض وتحرير Miis باستخدام محرر النظام</string>
|
||||
<string name="cabinet_applet">خزانة</string>
|
||||
<string name="cabinet_applet">الخزانة</string>
|
||||
<string name="cabinet_applet_description">تعديل وحذف البيانات المخزنة على أميبو</string>
|
||||
<string name="cabinet_launcher">مشغل الخزانة</string>
|
||||
<string name="cabinet_nickname_and_owner">إعدادات الاسم المستعار والمالك</string>
|
||||
@@ -407,26 +409,26 @@
|
||||
<!-- About screen strings -->
|
||||
<string name="gaia_is_not_real">Gaia غير حقيقي</string>
|
||||
<string name="copied_to_clipboard">نسخ إلى الحافظة</string>
|
||||
<string name="about_app_description">محاكي سويتش مفتوح المصدر</string>
|
||||
<string name="about_app_description">محاكي Switch مفتوح المصدر</string>
|
||||
<string name="contributors">المساهمين</string>
|
||||
<string name="contributors_description">المساهمون الذين جعلوا عدن لنظام اندرويد ممكن</string>
|
||||
<string name="contributors_description">المساهمون الذين جعلوا تطبيق Eden لنظام Android ممكناً</string>
|
||||
<string name="contributors_link">https://git.eden-emu.dev/eden-emu/eden/activity/contributors</string>
|
||||
<string name="licenses_description">المشاريع التي تجعل عدن لأجهزة أندرويد ممكنة</string>
|
||||
<string name="licenses_description">المشاريع التي تجعل Eden لأجهزة Android ممكنة</string>
|
||||
<string name="build">البناء</string>
|
||||
<string name="user_data">بيانات المستخدم</string>
|
||||
<string name="user_data_description">استيراد/تصدير جميع بيانات التطبيق.\nعند استيراد بيانات المستخدم، سيتم حذف جميع بيانات المستخدم الموجودة!\nقد يُسبب استيراد البيانات من Citron بعض المشاكل. يُنصح باستيراد جميع البيانات المطلوبة يدويًا.</string>
|
||||
<string name="exporting_user_data">جارٍ تصدير بيانات المستخدم...</string>
|
||||
<string name="importing_user_data">جارٍ استيراد بيانات المستخدم...</string>
|
||||
<string name="invalid_yuzu_backup">نسخة احتياطية عدن غير صالحة</string>
|
||||
<string name="invalid_yuzu_backup">نسخة احتياطية Eden غير صالحة</string>
|
||||
<string name="user_data_export_success">تم تصدير بيانات المستخدم بنجاح</string>
|
||||
<string name="user_data_import_success">تم استيراد بيانات المستخدم بنجاح</string>
|
||||
<string name="user_data_export_cancelled">تم إلغاء التصدير</string>
|
||||
<string name="user_data_import_failed_description">تأكد من أن مجلدات بيانات المستخدم موجودة في جذر مجلد zip وتحتوي على ملف تكوين في config/config.ini ثم حاول مرة أخرى.</string>
|
||||
<string name="user_data_import_failed_description">تأكد من أن مجلدات بيانات المستخدم موجودة في جذر مجلد مضغوط وتحتوي على ملف تكوين في config/config.ini ثم حاول مرة أخرى.</string>
|
||||
<!-- General settings strings -->
|
||||
<string name="frame_limit_enable">الحد من السرعة</string>
|
||||
<string name="frame_limit_enable_description">يحد من سرعة المحاكاة بنسبة محددة من السرعة العادية</string>
|
||||
<string name="frame_limit_slider">الحد من السرعة في المئة</string>
|
||||
<string name="frame_limit_slider_description">يحدد النسبة المئوية للحد من سرعة المحاكاة. 100% هي السرعة الطبيعية. ستؤدي القيم الأعلى أو الأدنى إلى زيادة أو تقليل حد السرعة.</string>
|
||||
<string name="frame_limit_enable_description">يحدد سرعة المحاكاة بنسبة مئوية محددة من السرعة العادية.</string>
|
||||
<string name="frame_limit_slider">نسبة الحد الأقصى للسرعة</string>
|
||||
<string name="frame_limit_slider_description">يحدد النسبة المئوية للحد من سرعة المحاكاة. 100٪ هي السرعة العادية. القيم الأعلى أو الأقل ستزيد أو تقلل من الحد الأقصى للسرعة.</string>
|
||||
<string name="cpu_backend">خلفية وحدة المعالجة المركزية</string>
|
||||
<string name="cpu_accuracy">دقة وحدة المعالجة المركزية</string>
|
||||
<string name="value_with_units">%1$s%2$s</string>
|
||||
@@ -434,7 +436,7 @@
|
||||
<!-- System settings strings -->
|
||||
<string name="device_name">اسم الجهاز</string>
|
||||
<string name="use_docked_mode">وضع الإرساء</string>
|
||||
<string name="use_docked_mode_description">زيادة الدقة، وانخفاض الأداء. يتم استخدام الوضع المحمول عند تعطيله، مما يؤدي إلى خفض الدقة وزيادة الأداء.</string>
|
||||
<string name="use_docked_mode_description">يزيد الدقة ويقلل الأداء. يتم استخدام الوضع المحمول عند تعطيله، مما يقلل الدقة ويزيد الأداء.</string>
|
||||
<string name="emulated_region">المنطقة التي تمت محاكاتها</string>
|
||||
<string name="emulated_language">لغة المحاكاة</string>
|
||||
<string name="select_rtc_date">حدد التاريخ و الساعة في الوقت الحقيقي</string>
|
||||
@@ -449,56 +451,56 @@
|
||||
<string name="web_token">رمز الويب</string>
|
||||
<string name="web_token_description">رمز الويب المستخدم لإنشاء غرف عامة. وهو سلسلة من 48 حرفًا تحتوي فقط على أحرف صغيرة من a-z.</string>
|
||||
<string name="web_username">اسم مستخدم الويب</string>
|
||||
<string name="web_username_description">اسم المستخدم الذي سيظهر في قاعات اللعب الجماعي. يجب أن يتكون من 4 إلى 20 حرفًا، ويحتوي فقط على حروف أبجدية رقمية، وشرطات، ونقاط، وشرطة سفلية، ومسافات.</string>
|
||||
<string name="web_username_description">اسم المستخدم الذي سيظهر في غرف الانتظار متعددة اللاعبين. يجب أن يتكون من 4 إلى 20 حرفًا، ويحتوي فقط على أحرف أبجدية رقمية وشرطات ونقاط وشرطات سفلية ومسافات.</string>
|
||||
<string name="network">الشبكة</string>
|
||||
|
||||
<!-- Graphics settings strings -->
|
||||
<string name="backend">الخلفية</string>
|
||||
<string name="display">العرض</string>
|
||||
<string name="display">الشاشة</string>
|
||||
<string name="processing">المعالجة اللاحقة</string>
|
||||
|
||||
<string name="frame_skipping">قيد التطوير: تخطي الإطارات</string>
|
||||
<string name="frame_skipping_description">تبديل تخطي الإطارات لتحسين الأداء عن طريق تقليل عدد الإطارات المعروضة. هذه الميزة قيد التطوير وسيتم تمكينها في الإصدارات المستقبلية.</string>
|
||||
<string name="renderer_accuracy">مستوى الدقة</string>
|
||||
<string name="renderer_resolution">(Handheld/Docked) الدقة</string>
|
||||
<string name="renderer_resolution">الدقة (محمول/الإرساء)</string>
|
||||
<string name="renderer_vsync">VSync وضع</string>
|
||||
<string name="renderer_screen_layout">اتجاه العرض</string>
|
||||
<string name="renderer_aspect_ratio">تناسب الابعاد</string>
|
||||
<string name="renderer_scaling_filter">تصفية تكييف النافذة</string>
|
||||
<string name="renderer_scaling_filter">مرشح ملائم للنافذة</string>
|
||||
<string name="fsr_sharpness">حدة FSR</string>
|
||||
<string name="fsr_sharpness_description">تحديد مدى حدة الصورة عند استخدام FSR</string>
|
||||
<string name="fsr_sharpness_description">يحدد مدى وضوح الصورة عند استخدام التباين الديناميكي لـ FSR</string>
|
||||
<string name="renderer_anti_aliasing">طريقة مكافحة التعرج</string>
|
||||
<string name="renderer_force_max_clock">إجبار السرعة القصوى (لأجهزة Adreno فقط)</string>
|
||||
<string name="renderer_force_max_clock_description">يجبر وحدة معالجة الرسومات على العمل في أقصى الساعات الممكنة (سيستمر تطبيق القيود الحرارية).</string>
|
||||
<string name="renderer_optimize_spirv_output">تحسين Spir-V</string>
|
||||
<string name="renderer_optimize_spirv_output_description">يحسن الشادر المترجم لزيادة كفاءة GPU.</string>
|
||||
<string name="renderer_force_max_clock_description">يجبر وحدة معالجة الرسومات على العمل بأقصى سرعة ممكنة (سيظل يتم تطبيق القيود الحرارية).</string>
|
||||
<string name="renderer_optimize_spirv_output">تحسين إخراج Spir-V</string>
|
||||
<string name="renderer_optimize_spirv_output_description">يعمل على تحسين أداء برامج التظليل المجمعة لتحسين كفاءة وحدة معالجة الرسومات، ولكنه قد يؤدي إلى زيادة وقت التحميل وإبطاء السرعة في البداية.</string>
|
||||
<string name="renderer_asynchronous_shaders">استخدم تظليل غير متزامن</string>
|
||||
<string name="renderer_asynchronous_shaders_description">تجميع الظلال بشكل غير متزامن. قد يقلل هذا من التقطع ولكنه قد يتسبب أيضًا في حدوث أخطاء.</string>
|
||||
<string name="use_fast_gpu_time">استخدام وقت GPU السريع</string>
|
||||
<string name="use_fast_gpu_time_description">يجبر معظم الألعاب على العمل بأعلى دقة أصلية. هذا الخيار غير مثبت وقد يسبب مشاكل.</string>
|
||||
<string name="fast_gpu_time">عامل زيادة سرعة GPU</string>
|
||||
<string name="renderer_asynchronous_shaders_description">يقوم بتجميع التظليل بشكل غير متزامن. قد يقلل ذلك من التقطعات ولكنه قد يؤدي أيضًا إلى حدوث أخطاء.</string>
|
||||
<string name="use_fast_gpu_time">استخدم وقت المعالج الرسومي السريع</string>
|
||||
<string name="use_fast_gpu_time_description">يجبر معظم الألعاب على التشغيل بأعلى دقة أصلية لها. هذا الخيار غير آمن وقد يتسبب في مشاكل.</string>
|
||||
<string name="fast_gpu_time">عامل زيادة تردد وحدة معالجة الرسوميات</string>
|
||||
<string name="fast_gpu_time_description">استخدم 128 لأقصى أداء و512 لأقصى دقة رسومية.</string>
|
||||
<string name="renderer_reactive_flushing">استخدم التنظيف التفاعلي</string>
|
||||
<string name="renderer_reactive_flushing_description">تحسين دقة العرض في بعض الألعاب على حساب الأداء</string>
|
||||
<string name="renderer_reactive_flushing_description">يحسن دقة العرض في بعض الألعاب على حساب الأداء.</string>
|
||||
<string name="use_disk_shader_cache">ذاكرة التخزين المؤقت للتظليل</string>
|
||||
<string name="use_disk_shader_cache_description">يقلل من التأتأة عن طريق تخزين وتحميل التظليلات التي تم إنشاؤها محليًا.</string>
|
||||
<string name="anisotropic_filtering">تصفية متباينة الخواص</string>
|
||||
<string name="anisotropic_filtering_description">تحسين جودة القوام عند الزوايا المائلة</string>
|
||||
<string name="anisotropic_filtering_description">يحسن جودة الأنسجة عند عرضها بزوايا مائلة</string>
|
||||
|
||||
<string name="warning_resolution">تغيير دقة العرض إلى 2x أو أعلى قد يسبب مشاكل، وقد يؤدي إلى تباطؤ كبير في جهازك.</string>
|
||||
<string name="warning_resolution">من المعروف أن تغيير الدقة إلى 2x أو أعلى يسبب مشاكل وقد يؤدي إلى إبطاء كبير في أداء جهازك.</string>
|
||||
|
||||
<!-- Debug settings strings -->
|
||||
<string name="cpu">وحدة المعالج المركزية</string>
|
||||
<string name="use_auto_stub">استخدم الملحق التلقائي</string>
|
||||
<string name="use_auto_stub_description">يقوم تلقائيًا بإضافة خدمات ووظائف ناقصة. قد يحسن التوافق ولكنه قد يتسبب في تعطل المشغل ومشاكل في الاستقرار.</string>
|
||||
<string name="use_auto_stub_description">استبدال الخدمات والوظائف المفقودة تلقائيًا. قد يؤدي ذلك إلى تحسين التوافق، ولكنه قد يتسبب في حدوث أعطال ومشكلات في الاستقرار.</string>
|
||||
|
||||
<string name="gpu">وحدة معالجة الرسومات</string>
|
||||
<string name="renderer_api">واجهة برمجة التطبيقات</string>
|
||||
<string name="renderer_debug">تصحيح الأخطاء الرسومية</string>
|
||||
<string name="renderer_debug_description">يضبط واجهة برمجة تطبيقات الرسومات على وضع تصحيح الأخطاء البطيء.</string>
|
||||
<string name="renderer_debug_description">يضبط واجهة برمجة التطبيقات الرسومية على وضع تصحيح الأخطاء البطيء.</string>
|
||||
<string name="fastmem">Fastmem</string>
|
||||
|
||||
<string name="log">التسجيل</string>
|
||||
<string name="log">تسجيل الدخول</string>
|
||||
<string name="flush_by_line">تفريغ سجلات التصحيح حسب السطر</string>
|
||||
<string name="flush_by_line_description">يفرغ سجلات التصحيح عند كتابة كل سطر، مما يجعل التصحيح أسهل في حالات التوقف أو التجميد.</string>
|
||||
|
||||
@@ -551,18 +553,18 @@
|
||||
<string name="qualified_axis">Axis %1$s%2$s</string>
|
||||
<string name="unused">غير مستخدم</string>
|
||||
<string name="input_mapping_filter">مرشح تعيين الإدخال</string>
|
||||
<string name="input_mapping_filter_description">اختر جهازًا لتصفية مدخلات الخرائط</string>
|
||||
<string name="input_mapping_filter_description">حدد جهازًا لتصفية مدخلات التعيين</string>
|
||||
<string name="auto_map">تعيين ذراع التحكم تلقائيًا</string>
|
||||
<string name="auto_map_description">حدد جهازًا لمحاولة رسم الخرائط التلقائية</string>
|
||||
<string name="auto_map_description">حدد جهازًا لمحاولة التعيين التلقائي</string>
|
||||
<string name="attempted_auto_map">تم محاولة التعيين التلقائي باستخدام %1$s</string>
|
||||
<string name="controller_type">نوع ذراع التحكم</string>
|
||||
<string name="pro_controller">Pro Controller</string>
|
||||
<string name="handheld">محمول</string>
|
||||
<string name="dual_joycons">Dual Joycons</string>
|
||||
<string name="left_joycon">Left Joycon</string>
|
||||
<string name="right_joycon">Right Joycon</string>
|
||||
<string name="dual_joycons">جوي كون ثنائي</string>
|
||||
<string name="left_joycon">جوي كون اليسرى</string>
|
||||
<string name="right_joycon">جوي كون اليمنى</string>
|
||||
<string name="gamecube_controller">GameCube ذراع تحكم</string>
|
||||
<string name="invert_axis">Invert axis</string>
|
||||
<string name="invert_axis">عكس المحور</string>
|
||||
<string name="invert_button">Invert button</string>
|
||||
<string name="toggle_button">Toggle button</string>
|
||||
<string name="turbo_button">Turbo button</string>
|
||||
@@ -573,10 +575,10 @@
|
||||
<string name="input_overlay">تراكب الإدخال</string>
|
||||
<string name="vibration">الاهتزاز</string>
|
||||
<string name="vibration_strength">قوة الاهتزاز</string>
|
||||
<string name="profile">الملف الشخصي</string>
|
||||
<string name="profile">ملف التعريف</string>
|
||||
<string name="create_new_profile">إنشاء ملف تعريف جديد</string>
|
||||
<string name="enter_profile_name">أدخل اسم الملف الشخصي</string>
|
||||
<string name="profile_name_already_exists">اسم الملف الشخصي موجود بالفعل</string>
|
||||
<string name="enter_profile_name">أدخل اسم ملف التعريف</string>
|
||||
<string name="profile_name_already_exists">اسم ملف التعريف موجود بالفعل</string>
|
||||
<string name="invalid_profile_name">اسم ملف التعريف غير صالح</string>
|
||||
<string name="use_global_input_configuration">استخدام تكوين الإدخال العام</string>
|
||||
<string name="player_num_profile">ملف تعريف%d اللاعب</string>
|
||||
@@ -584,8 +586,8 @@
|
||||
<string name="delete_input_profile_description">هل أنت متأكد من رغبتك في حذف ملف التعريف هذا؟ هذا غير قابل للاسترداد</string>
|
||||
<string name="stick_map_description">حرك العصا إلى اليسار ثم للأعلى أو اضغط على زر</string>
|
||||
<string name="button_map_description">اضغط على زر أو حرك الزناد/العصا</string>
|
||||
<string name="map_dpad_direction">Map to D-Pad %1$s</string>
|
||||
<string name="map_control">Map to %1$s</string>
|
||||
<string name="map_dpad_direction">تعيين الأسهم %1$s</string>
|
||||
<string name="map_control">تعيين %1$s</string>
|
||||
<string name="failed_to_load_profile">فشل تحميل ملف التعريف</string>
|
||||
<string name="failed_to_save_profile">فشل في حفظ ملف التعريف</string>
|
||||
<string name="reset_mapping">إعادة تعيين التعيينات</string>
|
||||
@@ -595,7 +597,7 @@
|
||||
<string name="slider_default">افتراضي</string>
|
||||
<string name="loading">جارٍ التحميل…</string>
|
||||
<string name="shutting_down">جارٍ إيقاف التشغيل...</string>
|
||||
<string name="reset_setting_confirmation">هل تريد إعادة تعيين هذا الإعداد مرة أخرى إلى قيمته الافتراضية؟</string>
|
||||
<string name="reset_setting_confirmation">هل تريد إعادة ضبط هذا الإعداد إلى قيمته الافتراضية؟</string>
|
||||
<string name="reset_to_default">إعادة التعيين إلى الوضع الافتراضي</string>
|
||||
<string name="reset_to_default_description">إعادة تعيين جميع الإعدادات المتقدمة</string>
|
||||
<string name="reset_all_settings">إعادة تعيين جميع الإعدادات؟</string>
|
||||
@@ -610,7 +612,7 @@
|
||||
<string name="export">تصدير</string>
|
||||
<string name="export_failed">فشل التصدير</string>
|
||||
<string name="import_failed">فشل الاستيراد</string>
|
||||
<string name="cancelling">إلغاء</string>
|
||||
<string name="cancelling">الإلغاء</string>
|
||||
<string name="install">تثبيت</string>
|
||||
<string name="fetch">جلب</string>
|
||||
<string name="delete">حذف</string>
|
||||
@@ -618,7 +620,7 @@
|
||||
<string name="import_success">تم الاستيراد بنجاح</string>
|
||||
<string name="export_success">تم التصدير بنجاح</string>
|
||||
<string name="start">بدء</string>
|
||||
<string name="global">عالمي</string>
|
||||
<string name="global">المتغيرات العامة</string>
|
||||
<string name="custom">مخصص</string>
|
||||
<string name="import_complete">اكتمل الاستيراد</string>
|
||||
<string name="use_global_setting">استخدام الإعداد العام</string>
|
||||
@@ -631,15 +633,15 @@
|
||||
<string name="select_gpu_driver_default">افتراضي</string>
|
||||
<string name="select_gpu_driver_error">تم تحديد برنامج تشغيل غير صالح</string>
|
||||
<string name="driver_already_installed">برنامج التشغيل مثبت بالفعل</string>
|
||||
<string name="system_gpu_driver">تعريف معالج الرسومات الخاص بالنظام</string>
|
||||
<string name="installing_driver">جارٍ تثبيت التعريف...</string>
|
||||
<string name="system_gpu_driver">برنامج تشغيل وحدة معالجة الرسومات للنظام</string>
|
||||
<string name="installing_driver">جارٍ تثبيت برنامج التشغيل…</string>
|
||||
|
||||
<!-- GPU driver fetcher -->
|
||||
<string name="show_releases">عرض الإصدارات</string>
|
||||
<string name="failed_to_fetch">فشل في الجلب</string>
|
||||
<string name="error_during_fetch">خطأ أثناء الجلب</string>
|
||||
<string name="show_downloads">عرض التحميلات</string>
|
||||
<string name="hide_downloads">إخفاء التحميلات</string>
|
||||
<string name="show_downloads">عرض التنزيلات</string>
|
||||
<string name="hide_downloads">إخفاء التنزيلات</string>
|
||||
<string name="failed_cache_dir">دليل الذاكرة المؤقتة غير متاح</string>
|
||||
<string name="empty_response_body">نص الاستجابة فارغ</string>
|
||||
<string name="successfully_installed">تم تثبيت %1$s بنجاح</string>
|
||||
@@ -650,12 +652,12 @@
|
||||
<string name="installing">جارٍ التثبيت...</string>
|
||||
<string name="latest">الأحدث</string>
|
||||
<string name="recommended_driver">برنامج التشغيل الموصى به:</string>
|
||||
<string name="gpu_model">طراز GPU:</string>
|
||||
<string name="unsupported_gpu">GPU غير مدعوم</string>
|
||||
<string name="unsupported_gpu_warning">GPU الخاص بك لا يدعم حقن برنامج التشغيل. لا يُنصح بمحاولة تعيين برامج تشغيل مخصصة.</string>
|
||||
<string name="gpu_model">طراز وحدة معالجة الرسومات:</string>
|
||||
<string name="unsupported_gpu">بطاقة رسومات غير مدعومة</string>
|
||||
<string name="unsupported_gpu_warning">لا تدعم وحدة معالجة الرسومات الخاصة بك إدخال برامج التشغيل. لا يُنصح بمحاولة تعيين برامج تشغيل مخصصة.</string>
|
||||
|
||||
<!-- Preferences Screen -->
|
||||
<string name="preferences_settings">إعدادات</string>
|
||||
<string name="preferences_settings">الإعدادات</string>
|
||||
<string name="preferences_system">النظام</string>
|
||||
<string name="preferences_system_description">وضع الإرساء ،المنطقة ،اللغة</string>
|
||||
<string name="preferences_graphics">الرسومات</string>
|
||||
@@ -673,7 +675,7 @@
|
||||
<string name="info_description">معرف البرنامج، المطور، الإصدار</string>
|
||||
<string name="per_game_settings">إعدادات خاصة للعبة</string>
|
||||
<string name="per_game_settings_description">تعديل الإعدادات الخاصة بهذه اللعبة</string>
|
||||
<string name="launch_options">تشغيل الإعدادات</string>
|
||||
<string name="launch_options">تشغيل التكوين</string>
|
||||
<string name="path">المسار</string>
|
||||
<string name="program_id">معرف العنوان</string>
|
||||
<string name="developer">المطور</string>
|
||||
@@ -681,7 +683,6 @@
|
||||
<string name="copy_details">نسخ التفاصيل</string>
|
||||
<string name="add_ons">الإضافات</string>
|
||||
<string name="add_ons_description">التعديلات والتحديثات والمحتوى القابل للتنزيل</string>
|
||||
<string name="playtime">زمن اللعب:</string>
|
||||
<string name="reset_playtime">مسح زمن اللعب</string>
|
||||
<string name="reset_playtime_description">إعادة ضبط زمن اللعب الحالي للعبة إلى 0 ثانية</string>
|
||||
<string name="reset_playtime_warning_description">سيؤدي هذا إلى مسح بيانات زمن اللعب الحالية للعبة. هل أنت متأكد؟</string>
|
||||
@@ -703,22 +704,22 @@
|
||||
<string name="delete_save_data">حذف حفظ البيانات</string>
|
||||
<string name="delete_save_data_description">يزيل كافة البيانات المحفوظة الخاصة بهذه اللعبة</string>
|
||||
<string name="delete_save_data_warning_description">يؤدي هذا إلى إزالة كافة البيانات المحفوظة لهذه اللعبة بشكل لا يمكن استرداده. هل أنت متأكد أنك تريد الاستمرار؟</string>
|
||||
<string name="save_data_deleted_successfully">تم حذف تخزين اللعبة بنجاح</string>
|
||||
<string name="save_data_deleted_successfully">تم حذف البيانات المحفوظة بنجاح</string>
|
||||
<string name="select_content_type">نوع المحتوى</string>
|
||||
<string name="updates_and_dlc">التحديثات والمحتوى القابل للتنزيل </string>
|
||||
<string name="updates_and_dlc">التحديثات والمحتوى القابل للتنزيل</string>
|
||||
<string name="mods_and_cheats">التعديلات والغش</string>
|
||||
<string name="addon_notice">إشعار إضافي مهم</string>
|
||||
<!-- \"cheats/" "romfs/" and \"exefs/ should not be translated -->
|
||||
<string name="addon_notice_description">لتثبيت التعديلات والغش، يجب عليك اختيار مجلد يحتوي على ملفات cheats/ أو romfs/ أو exefs/. لا يمكننا التأكد من توافق هذه الملفات مع لعبتك، لذا كن حذرًا!</string>
|
||||
<string name="addon_notice_description">لتثبيت التعديلات والغش، يجب عليك تحديد مجلد يحتوي على دليل cheats/ أو romfs/ أو exefs/. لا يمكننا التحقق من توافق هذه الملفات مع لعبتك، لذا كن حذراً!</string>
|
||||
<string name="invalid_directory">مجلد غير صالح</string>
|
||||
<!-- \"cheats/" "romfs/" and \"exefs/ should not be translated -->
|
||||
<string name="invalid_directory_description">يرجى التأكد من أن الدليل الذي حددته يحتوي على مجلد cheats/ أو romfs/ أو exefs/ ثم حاول مرة أخرى.</string>
|
||||
<string name="addon_installed_successfully">تم تثبيت الملحق بنجاح</string>
|
||||
<string name="addon_installed_successfully">تم تثبيت الإضافة بنجاح</string>
|
||||
<string name="verifying_content">جارٍ التحقق من المحتوى…</string>
|
||||
<string name="content_install_notice">إشعار تثبيت المحتوى</string>
|
||||
<string name="content_install_notice_description">المحتوى الذي اخترته لا يتوافق مع هذه اللعبة.\n هل ترغب في التثبيت على أي حال؟</string>
|
||||
<string name="confirm_uninstall">تأكيد إلغاء التثبيت</string>
|
||||
<string name="confirm_uninstall_description">هل أنت متأكد من أنك تريد إلغاء تثبيت هذا الملحق؟</string>
|
||||
<string name="confirm_uninstall_description">هل أنت متأكد من أنك تريد إلغاء تثبيت هذا الإضافة؟</string>
|
||||
<string name="verify_integrity">التحقق من السلامة</string>
|
||||
<string name="verifying">جارٍ التحقق...</string>
|
||||
<string name="verify_success">نجح التحقق من السلامة!</string>
|
||||
@@ -733,15 +734,15 @@
|
||||
<string name="share_config_failed">فشل مشاركة ملف الإعدادات</string>
|
||||
|
||||
<!-- ROM loading errors -->
|
||||
<string name="loader_error_encrypted">الخاص بك ROM تم تشفير</string>
|
||||
<string name="loader_error_encrypted_roms_description"><![CDATA[يرجى اتباع الأدلة لإعادة نسخ <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-physical-titles-game-cards\">ألعاب البطاقات</a> أو <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-digital-titles-eshop\">العناوين الرقمية</a>.]]></string>
|
||||
<string name="loader_error_encrypted">ROM الخاص بك مشفر</string>
|
||||
<string name="loader_error_encrypted_roms_description"><![CDATA[يرجى اتباع الإرشادات لإعادة نسخ <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-physical-titles-game-cards\">بطاقات الألعاب </a> أو <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-digital-titles-eshop\">الألعاب المثبتة</a>.]]></string>
|
||||
<string name="loader_error_encrypted_keys_description"><![CDATA[تأكد من تثبيت <a href=\"https://yuzu-emu.org/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a>]]></string>
|
||||
<string name="loader_error_video_core">حدث خطأ أثناء تهيئة مركز الفيديو</string>
|
||||
<string name="loader_error_video_core_description">قد يكون بسبب تعريف GPU غير متوافق</string>
|
||||
<string name="loader_error_file_not_found">غير موجود ROM ملف</string>
|
||||
<string name="loader_error_video_core">حدث خطأ أثناء تهيئة نواة الفيديو</string>
|
||||
<string name="loader_error_video_core_description">عادةً ما يكون هذا ناتجًا عن برنامج تشغيل وحدة معالجة الرسومات غير متوافق. قد يؤدي تثبيت برنامج تشغيل مخصص لوحدة معالجة الرسومات إلى حل هذه المشكلة.</string>
|
||||
<string name="loader_error_file_not_found">ملف ROM غير موجود</string>
|
||||
|
||||
<string name="loader_requires_firmware">اللعبة تتطلب فريموير</string>
|
||||
<string name="loader_requires_firmware_description"><![CDATA[اللعبة التي تحاول تشغيلها تتطلب فريموير للتمهيد أو لتجاوز القائمة الافتتاحية. يرجى <a href=\"https://yuzu-mirror.github.io/help/quickstart\">نسخ وتثبيت فريموير</a>، أو اضغط \"موافق\" للمتابعة على أي حال.]]></string>
|
||||
<string name="loader_requires_firmware">اللعبة تتطلب الفيرموير</string>
|
||||
<string name="loader_requires_firmware_description"><![CDATA[اللعبة التي تحاول تشغيلها تتطلب الفيرموير للتمهيد أو لتجاوز القائمة الافتتاحية. يرجى <a href=\"https://yuzu-mirror.github.io/help/quickstart\">نسخ وتثبيت الفيرموير</a>، أو اضغط \"موافق\" للمتابعة على أي حال.]]></string>
|
||||
|
||||
<!-- Intent Launch strings -->
|
||||
<string name="searching_for_game">جارٍ البحث عن اللعبة...</string>
|
||||
@@ -750,20 +751,20 @@
|
||||
<string name="custom_settings_failed_message">فشل تطبيق الإعدادات المخصصة لـ %1$s: %2$s</string>
|
||||
<string name="launch_with_default_settings">التشغيل بالإعدادات الافتراضية</string>
|
||||
<string name="launch_cancelled">تم إلغاء التشغيل</string>
|
||||
<string name="custom_settings_failure_reasons">تعذر تطبيق الإعدادات المطلوبة. قد يكون ذلك بسبب فقدان برامج تشغيل GPU أو مشكلات في التكوين.</string>
|
||||
<string name="custom_settings_failure_reasons">غير قادر على تطبيق الإعدادات المطلوبة. قد يكون ذلك بسبب نقص برامج تشغيل وحدة معالجة الرسوميات أو مشكلات في التكوين.</string>
|
||||
<string name="custom_settings_applied">تم تطبيق الإعدادات المخصصة</string>
|
||||
<string name="launching_game">جارٍ التشغيل %1$s...</string>
|
||||
<string name="failed_to_initialize_game">فشل تهيئة اللعبة</string>
|
||||
<string name="custom_intent_launch_message_with_settings">هل تريد تشغيل %1$s بالإعدادات المخصصة؟</string>
|
||||
<string name="custom_intent_launch_message">هل تريد تشغيل %1$s؟</string>
|
||||
<string name="failed_to_initialize_game">فشل في تهيئة اللعبة</string>
|
||||
<string name="custom_intent_launch_message_with_settings">هل ترغب في التشغيل %1$s بإعدادات مخصصة؟</string>
|
||||
<string name="custom_intent_launch_message">هل ترغب في التشغيل %1$s؟</string>
|
||||
<string name="custom_intent_launch_title">تشغيل اللعبة</string>
|
||||
<string name="launch">تشغيل</string>
|
||||
|
||||
<!-- Custom Config strings -->
|
||||
<string name="config_write_failed">فشل كتابة ملف التهيئة</string>
|
||||
<string name="config_apply_failed">فشل تطبيق التهيئة</string>
|
||||
<string name="config_already_exists_title">التهيئة موجودة بالفعل</string>
|
||||
<string name="config_already_exists_message">الإعدادات المخصصة موجودة بالفعل لـ \'%1$s\' .\n\nهل ترغب في استبدال التكوين الحالي؟\n\nلا يمكن التراجع عن هذا الإجراء.</string>
|
||||
<string name="config_write_failed">فشل كتابة ملف التكوين</string>
|
||||
<string name="config_apply_failed">فشل تطبيق التكوين</string>
|
||||
<string name="config_already_exists_title">التكوين موجود بالفعل</string>
|
||||
<string name="config_already_exists_message">توجد إعدادات مخصصة بالفعل لـ \'%1$s\' .\n\nهل ترغب في استبدال التكوين الحالي؟\n\nلا يمكن التراجع عن هذا الإجراء.</string>
|
||||
<string name="config_exists_prompt">جارٍ التحقق من التكوين الحالي...</string>
|
||||
<string name="overwrite_cancelled">تم إلغاء الاستبدال</string>
|
||||
<string name="overwrite">استبدال</string>
|
||||
@@ -771,7 +772,7 @@
|
||||
<!-- Driver strings -->
|
||||
<string name="driver_not_found">برنامج التشغيل المطلوب غير مثبت: %s</string>
|
||||
<string name="invalid_driver_file">ملف برنامج تشغيل غير صالح: %s</string>
|
||||
<string name="network_unavailable">لا يوجد اتصال بالشبكة. يرجى التحقق من اتصال الإنترنت والمحاولة مرة أخرى.</string>
|
||||
<string name="network_unavailable">لا يوجد اتصال بالشبكة. يرجى التحقق من اتصالك بالإنترنت والمحاولة مرة أخرى.</string>
|
||||
<string name="driver_missing_title">مطلوب برنامج تشغيل وحدة معالجة الرسومات</string>
|
||||
<string name="driver_missing_message">يتطلب إعداد اللعبة برنامج تشغيل وحدة معالجة الرسومات \"\'%s\'\" وهو غير مُثبّت على جهازك.\n\nهل ترغب بتنزيله وتثبيته الآن؟</string>
|
||||
<string name="driver_download_cancelled">تم إلغاء تنزيل برنامج التشغيل. لا يمكن تشغيل اللعبة بدون برنامج التشغيل المطلوب.</string>
|
||||
@@ -780,9 +781,9 @@
|
||||
<!-- Emulation Menu -->
|
||||
<string name="emulation_exit">خروج من المحاكاة</string>
|
||||
<string name="emulation_done">إنهاء</string>
|
||||
<string name="emulation_toggle_controls">عناصر التحكم</string>
|
||||
<string name="emulation_toggle_controls">تبديل عناصر التحكم</string>
|
||||
<string name="emulation_rel_stick_center">مركز العصا النسبي</string>
|
||||
<string name="emulation_dpad_slide">مزلاق الأسهم</string>
|
||||
<string name="emulation_dpad_slide">انزلاق الأسهم</string>
|
||||
<string name="emulation_haptics">الاهتزازات الديناميكية</string>
|
||||
<string name="emulation_show_overlay">عرض ذراع التحكم</string>
|
||||
<string name="emulation_hide_overlay">إخفاء ذراع التحكم</string>
|
||||
@@ -800,7 +801,6 @@
|
||||
<string name="unlock_drawer">فتح الدرج</string>
|
||||
<string name="reset">إعادة الضبط</string>
|
||||
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">لوحة المفاتيح البرمجية</string>
|
||||
|
||||
@@ -854,7 +854,7 @@
|
||||
<string name="memory_exabyte">إكسابايت</string>
|
||||
|
||||
<!-- Renderer APIs -->
|
||||
<string name="renderer_vulkan">فولكان</string>
|
||||
<string name="renderer_vulkan">Vulkan</string>
|
||||
<string name="renderer_none">لاشيء</string>
|
||||
|
||||
<!-- Renderer Accuracy -->
|
||||
@@ -886,8 +886,8 @@
|
||||
<string name="astc_recompression_bc3">BC3 (جودة متوسطة)</string>
|
||||
|
||||
<!-- ASTC Recompression Method Choices -->
|
||||
<string name="vram_usage_mode">وضع استخدام VRAM</string>
|
||||
<string name="vram_usage_mode_description">تحكم في مدى قوة المحاكي في تخصيص وتحرير ذاكرة GPU.</string>
|
||||
<string name="vram_usage_mode">وضع استخدام ذاكرة VRAM</string>
|
||||
<string name="vram_usage_mode_description">تحكم في مدى قوة تخصيص المحاكي لذاكرة وحدة معالجة الرسوميات وتحريرها.</string>
|
||||
<string name="vram_usage_conservative">محافظ</string>
|
||||
<string name="vram_usage_aggressive">عدواني</string>
|
||||
|
||||
@@ -905,7 +905,7 @@
|
||||
<!-- Renderer VSync -->
|
||||
<string name="renderer_vsync_immediate">Immediate (إيقاف)</string>
|
||||
<string name="renderer_vsync_mailbox">Mailbox</string>
|
||||
<string name="renderer_vsync_fifo">FIFO (On)</string>
|
||||
<string name="renderer_vsync_fifo">FIFO (تشغيل)</string>
|
||||
<string name="renderer_vsync_fifo_relaxed">FIFO Relaxed</string>
|
||||
|
||||
<!-- Scaling Filters -->
|
||||
@@ -967,7 +967,10 @@
|
||||
<!-- App options -->
|
||||
<string name="change_app_theme">تغيير سمة التطبيق</string>
|
||||
<string name="theme_default">افتراضي</string>
|
||||
<string name="theme_material_you">Material You</string>
|
||||
<string name="theme_material_you">ألوان ديناميكية</string>
|
||||
<string name="app_settings">إعدادات التطبيق</string>
|
||||
<string name="theme_and_color">السمة واللون</string>
|
||||
|
||||
<!-- Theme Modes -->
|
||||
<string name="change_theme_mode">تغيير وضع السمة</string>
|
||||
<string name="theme_mode_follow_system">اتبع النظام</string>
|
||||
@@ -986,11 +989,11 @@
|
||||
|
||||
<!-- Black backgrounds theme -->
|
||||
<string name="use_black_backgrounds">خلفيات سوداء</string>
|
||||
<string name="use_black_backgrounds_description">عند استخدام المظهر الداكن، قم بتطبيق خلفيات سوداء.</string>
|
||||
<string name="use_black_backgrounds_description">عند استخدام السمة الداكنة، قم بتطبيق خلفيات سوداء.</string>
|
||||
|
||||
<!-- Static Themes -->
|
||||
<string name="static_theme_color">لون السمة</string>
|
||||
<string name="eden_theme">عدن (افتراضي)</string>
|
||||
<string name="eden_theme">Eden (افتراضي)</string>
|
||||
<string name="violet">بنفسجي</string>
|
||||
<string name="blue">أزرق</string>
|
||||
<string name="cyan">سماوي</string>
|
||||
@@ -1025,9 +1028,9 @@
|
||||
<string name="swkbd_applet">لوحة المفاتيح البرمجية</string>
|
||||
|
||||
<string name="airplane_mode">وضع الطيران</string>
|
||||
<string name="airplane_mode_description">تشغيل وضع الطيران على نظام التشغيل سويتش</string>
|
||||
<string name="airplane_mode_description">تشغيل وضع الطيران في نظام التشغيل سويتش</string>
|
||||
|
||||
<!-- Licenses screen strings -->
|
||||
<string name="licenses">التراخيص</string>
|
||||
<string name="license_fidelityfx_fsr_description">AMD ترقية عالية الجودة من</string>
|
||||
<string name="license_fidelityfx_fsr_description">تحسين الجودة بدرجة عالية من AMD</string>
|
||||
</resources>
|
||||
|
||||
@@ -322,9 +322,6 @@
|
||||
<string name="firmware_uninstalling">جاري إزالة البرنامج الثابت</string>
|
||||
<string name="firmware_uninstalled_success">تم إزالة البرنامج الثابت بنجاح</string>
|
||||
|
||||
<string name="error_firmware_missing">فریموێر پێویستە بۆ کارپێکردنی هەندێک یاری و بەکارهێنانی بەرنامەکان. ئێدین تەنها لەگەڵ فریموێری 19.0.1 یان کۆنتر کار دەکات.</string>
|
||||
<string name="error_firmware_corrupted">فریموێر هەیە بەڵام ناتوانرێت بخوێنرێتەوە. پشکنین بکە بۆ کلیلی شیکردنەوە و دووبارە فریموێرەکە دامپ بکە ئەگەر پێویست بوو.</string>
|
||||
<string name="error_firmware_too_new">فریموێر زۆر نوێ یان ناتوانرێت بخوێنرێتەوە. ئێدین تەنها لەگەڵ فریموێری 19.0.1 یان کۆنتر کار دەکات.</string>
|
||||
|
||||
<string name="keys_failed">سەرکەوتوو نەبوو لە ناساندنی کلیلی</string>
|
||||
<string name="keys_install_success">کلیلەکان بە سەرکەوتوویی ناسێندران</string>
|
||||
|
||||
@@ -301,9 +301,6 @@
|
||||
<string name="firmware_uninstalling">Odstraňování firmwaru</string>
|
||||
<string name="firmware_uninstalled_success">Firmware byl úspěšně odinstalován</string>
|
||||
|
||||
<string name="error_firmware_missing">Firmware je vyžadován pro spuštění některých her a aplikací. Eden funguje pouze s firmwarem 19.0.1 nebo starším.</string>
|
||||
<string name="error_firmware_corrupted">Firmware byl nahlášen jako přítomný, ale nelze jej přečíst. Zkontrolujte šifrovací klíče a v případě potřeby firmware převezměte znovu.</string>
|
||||
<string name="error_firmware_too_new">Firmware je příliš nový nebo nelze přečíst. Eden funguje pouze s firmwarem 19.0.1 nebo starším.</string>
|
||||
|
||||
<string name="keys_failed">Selhání instalace klíčů</string>
|
||||
<string name="keys_install_success">Klíče úspěšně nainstalovány</string>
|
||||
|
||||
@@ -353,9 +353,6 @@ Wirklich fortfahren?</string>
|
||||
<string name="firmware_uninstalling">Firmware wird deinstalliert...</string>
|
||||
<string name="firmware_uninstalled_success">Firmware erfolgreich deinstalliert</string>
|
||||
|
||||
<string name="error_firmware_missing">Firmware wird benötigt, um bestimmte Spiele und Applikationen zu nutzen. Eden funktioniert nur mit Firmware 19.0.1 oder älter.</string>
|
||||
<string name="error_firmware_corrupted">Firmware wurde als vorhanden gemeldet, konnte aber nicht gelesen werden. Überprüfen Sie die Entschlüsselungsschlüssel und dumpen Sie die Firmware bei Bedarf neu.</string>
|
||||
<string name="error_firmware_too_new">Firmware ist zu neu oder konnte nicht gelesen werden. Eden funktioniert nur mit Firmware 19.0.1 oder älter.</string>
|
||||
|
||||
<string name="keys_failed">Schlüsselinstallation fehlgeschlagen</string>
|
||||
<string name="keys_install_success">Schlüssel erfolgreich installiert</string>
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
<string name="multiplayer_room_is_full">La sala está llena</string>
|
||||
<string name="multiplayer_host_banned">Estás baneado de esta sala</string>
|
||||
<string name="multiplayer_permission_denied">Permiso denegado</string>
|
||||
<string name="multiplayer_no_such_user">Usuario no encontrado</string>
|
||||
<string name="multiplayer_no_such_user">No hay tal usuario</string>
|
||||
<string name="multiplayer_already_in_room">Ya estás en una sala</string>
|
||||
<string name="multiplayer_create_room_error">Error al crear sala</string>
|
||||
<string name="multiplayer_host_kicked">Anfitrión expulsado</string>
|
||||
@@ -180,9 +180,9 @@
|
||||
<string name="multiplayer_room_idle">Sala inactiva</string>
|
||||
<string name="multiplayer_room_joining">Uniéndose a la sala</string>
|
||||
<string name="multiplayer_room_joined">Sala unida</string>
|
||||
<string name="multiplayer_room_moderator">Moderador de sala</string>
|
||||
<string name="multiplayer_room_moderator">Moderador de la sala</string>
|
||||
<string name="multiplayer_member_join">%1$s se ha unido</string>
|
||||
<string name="multiplayer_member_leave">%1$s ha salido</string>
|
||||
<string name="multiplayer_member_leave">%1$s se fue</string>
|
||||
<string name="multiplayer_member_kicked">%1$s fue expulsado</string>
|
||||
<string name="multiplayer_member_banned">%1$s fue baneado</string>
|
||||
<string name="multiplayer_address_unbanned">Dirección desbaneada</string>
|
||||
@@ -202,7 +202,7 @@
|
||||
<string name="multiplayer_no_bans">No hay usuarios baneados</string>
|
||||
<string name="multiplayer_unban_title">Desbanear usuario</string>
|
||||
<string name="multiplayer_unban">Desbanear</string>
|
||||
<string name="multiplayer_unban_message">¿Seguro que quieres desbanear a %1$s?</string>
|
||||
<string name="multiplayer_unban_message">¿Estás seguro de que quieres desbanear a %1$s\?</string>
|
||||
<string name="multiplayer_ban">Banear usuario</string>
|
||||
<string name="multiplayer_room_browser">Salas públicas</string>
|
||||
<string name="multiplayer_no_rooms_found">No se encontraron salas públicas</string>
|
||||
@@ -240,6 +240,7 @@
|
||||
<string name="keys_description">Selecciona tu archivo <b>prod.keys</b> utilizando el botón de abajo.</string>
|
||||
<string name="select_keys">Seleccionar las claves</string>
|
||||
<string name="firmware">Firmware</string>
|
||||
<string name="firmware_description">Seleccione su archivo <b> firmware.zip </b> con el botón de abajo.</string>
|
||||
<string name="select_firmware">Seleccionar firmware</string>
|
||||
<string name="games">Juegos</string>
|
||||
<string name="games_description">Selecciona la carpeta <b>Juegos</b> utilizando el botón de abajo</string>
|
||||
@@ -262,6 +263,9 @@
|
||||
<string name="folder">Carpeta</string>
|
||||
<string name="dont_show_again">No mostrar de nuevo</string>
|
||||
<string name="add_directory_success">Nuevo directorio de juegos agregado exitosamente</string>
|
||||
<string name="enable_update_checks">Busque actualizaciones al iniciar la aplicación.</string>
|
||||
<string name="update_available">Actualización disponible</string>
|
||||
<string name="update_available_description">Hay una nueva versión disponible: %1$s \n\n¿Quieres descargarla\?</string>
|
||||
<string name="home_search">Buscar</string>
|
||||
<string name="home_settings">Ajustes</string>
|
||||
<string name="empty_gamelist">No se encontraron archivos o aún no se ha seleccionado ningún directorio de juego.</string>
|
||||
@@ -304,6 +308,7 @@
|
||||
<string name="search_recently_added">Añadido recientemente</string>
|
||||
<string name="open_user_folder">Abrir la carpeta de Eden</string>
|
||||
<string name="open_user_folder_description">Administrar los archivos internos de Eden</string>
|
||||
<string name="app_settings_description">Modificar el comportamiento y la apariencia de la aplicación.</string>
|
||||
<string name="no_file_manager">Explorador de archivos no encontrado</string>
|
||||
<string name="notification_no_directory_link">No se pudo abrir la carpeta Eden</string>
|
||||
<string name="notification_no_directory_link_description">Por favor, busque la carpeta user con el panel lateral del explorador de archivos de forma manual.</string>
|
||||
@@ -368,9 +373,6 @@
|
||||
<string name="firmware_uninstalling">Desinstalando firmware...</string>
|
||||
<string name="firmware_uninstalled_success">Firmware desinstalado correctamente</string>
|
||||
|
||||
<string name="error_firmware_missing">Se requiere firmware para ejecutar ciertos juegos y aplicaciones. Eden solo funciona con firmware 19.0.1 o anterior.</string>
|
||||
<string name="error_firmware_corrupted">El firmware está presente pero no se pudo leer. Verifique las claves de descifrado y vuelva a volcar el firmware si es necesario.</string>
|
||||
<string name="error_firmware_too_new">El firmware es demasiado nuevo o no se pudo leer. Eden solo funciona con firmware 19.0.1 o anterior.</string>
|
||||
|
||||
<string name="keys_failed">Error al instalar claves</string>
|
||||
<string name="keys_install_success">Claves instaladas correctamente</string>
|
||||
@@ -675,7 +677,6 @@
|
||||
<string name="copy_details">Copiar detalles</string>
|
||||
<string name="add_ons">Extras/Add-ons</string>
|
||||
<string name="add_ons_description">Activa/desactiva mods, actualizaciones y DLC</string>
|
||||
<string name="playtime">Tiempo de juego:</string>
|
||||
<string name="reset_playtime">Borrar tiempo de juego</string>
|
||||
<string name="reset_playtime_description">Restablecer el tiempo de juego actual a 0 segundos</string>
|
||||
<string name="reset_playtime_warning_description">Esto borrará los datos de tiempo de juego actual. ¿Estás seguro\?</string>
|
||||
@@ -794,7 +795,6 @@
|
||||
<string name="unlock_drawer">Desbloquear menú cajón</string>
|
||||
<string name="reset">Reiniciar</string>
|
||||
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">Teclado de software</string>
|
||||
|
||||
@@ -962,6 +962,9 @@
|
||||
<string name="change_app_theme">Cambiar tema</string>
|
||||
<string name="theme_default">Predeterminado</string>
|
||||
<string name="theme_material_you">Material You</string>
|
||||
<string name="app_settings">Configuración de la aplicación</string>
|
||||
<string name="theme_and_color">Tema y color</string>
|
||||
|
||||
<!-- Theme Modes -->
|
||||
<string name="change_theme_mode">Cambiar modo del tema</string>
|
||||
<string name="theme_mode_follow_system">Igual al sistema</string>
|
||||
|
||||
@@ -387,9 +387,6 @@
|
||||
<string name="verify_installed_content_description">تمام محتوای نصب شده را از نظر خرابی بررسی میکند</string>
|
||||
<string name="keys_missing">کلیدهای رمزگذاری وجود ندارند</string>
|
||||
<string name="keys_missing_description">ثابتافزار و بازیهای فروشگاهی قابل رمزگشایی نیستند</string>
|
||||
<string name="error_firmware_missing">برای اجرای برخی بازیها و برنامهها نیاز به فیرمور است. ادن فقط با فیرمور 19.0.1 یا قدیمیتر کار میکند.</string>
|
||||
<string name="error_firmware_corrupted">فیرمور موجود است اما قابل خواندن نیست. کلیدهای رمزگشایی را بررسی کنید و در صورت نیاز فیرمور را دوباره دامپ کنید.</string>
|
||||
<string name="error_firmware_too_new">فیرمور خیلی جدید است یا قابل خواندن نیست. ادن فقط با فیرمور 19.0.1 یا قدیمیتر کار میکند.</string>
|
||||
<string name="keys_failed">خطا در نصب کلیدها</string>
|
||||
<string name="keys_install_success">کلیدها با موفقیت نصب شدند</string>
|
||||
<string name="error_keys_copy_failed">یک یا چند کلید با خطا در کپی مواجه شد.</string>
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
<string name="use_sync_core">Synchroniser la vitesse du cœur</string>
|
||||
<string name="use_sync_core_description">Synchronise la vitesse du cœur avec le pourcentage de vitesse maximal pour améliorer les performances sans modifier la vitesse réelle du jeu.</string>
|
||||
<string name="use_lru_cache">Activer le cache LRU</string>
|
||||
<string name="use_lru_cache_description">Active ou désactive le cache LRU pour améliorer les performances en réduisant l\'utilisation du processeur. Certains jeux comme TotK 1.2.1 ont des problèmes - désactivez-le si le jeu ne démarre pas ou plante aléatoirement.</string>
|
||||
<string name="use_lru_cache_description">Active ou désactive le cache LRU (Least Recently Used) pour améliorer les performances en réduisant l’utilisation du processeur. Certains jeux peuvent rencontrer des problèmes avec ce réglage ; désactivez-le si le jeu ne démarre pas ou plante de manière aléatoire.</string>
|
||||
<string name="use_fast_cpu_time">Temps CPU rapide</string>
|
||||
<string name="use_fast_cpu_time_description">Force le CPU émulé à fonctionner à une fréquence plus élevée, réduisant certains limiteurs de FPS. Cette option est instable et peut causer des problèmes, et les CPU plus faibles peuvent voir une baisse de performance.</string>
|
||||
<string name="custom_cpu_ticks">Ticks CPU personnalisés</string>
|
||||
@@ -125,7 +125,7 @@
|
||||
<string name="fast_cpu_time">Fréquence CPU</string>
|
||||
<string name="fast_cpu_time_description">Utilisez Boost (1700MHz) pour fonctionner à la fréquence native la plus élevée de la Switch, ou Fast (2000MHz) pour fonctionner à double fréquence.</string>
|
||||
<string name="memory_layout">Disposition de la mémoire</string>
|
||||
<string name="memory_layout_description">(EXPÉRIMENTAL) Change la disposition de la mémoire émulée. Ce paramètre n\'augmente pas les performances, mais peut aider les jeux utilisant des résolutions élevées via des mods. Ne pas utiliser sur les téléphones avec 8 Go de RAM ou moins.</string>
|
||||
<string name="memory_layout_description">(EXPÉRIMENTAL) Modifie la disposition de la mémoire émulée.\nCe paramètre n’améliore pas les performances, mais peut aider pour les jeux utilisant des résolutions élevées via des mods. Ne pas utiliser sur les téléphones avec 8 Go de RAM ou moins. Fonctionne uniquement avec le backend Dynarmic (JIT).</string>
|
||||
<string name="dma_accuracy">Précision DMA</string>
|
||||
<string name="dma_accuracy_description">Contrôle la précision du DMA. Une précision sûre peut résoudre les problèmes dans certains jeux, mais peut aussi affecter les performances dans certains cas. Si vous n\'êtes pas sûr, laissez ce paramètre sur Par défaut.</string>
|
||||
|
||||
@@ -240,6 +240,7 @@
|
||||
<string name="keys_description">Sélectionnez votre fichier <b>prod.keys</b> avec le bouton ci-dessous.</string>
|
||||
<string name="select_keys">Sélectionner les clés</string>
|
||||
<string name="firmware">Firmware</string>
|
||||
<string name="firmware_description">Sélectionnez votre fichier <b>firmware.zip</b> avec le bouton ci‑dessous.</string>
|
||||
<string name="select_firmware">Sélectionner le firmware</string>
|
||||
<string name="games">Jeux</string>
|
||||
<string name="games_description">Sélectionnez votre dossier <b>de Jeux</b> avec le bouton ci-dessous.</string>
|
||||
@@ -262,6 +263,9 @@
|
||||
<string name="folder">Dossier</string>
|
||||
<string name="dont_show_again">Ne plus afficher</string>
|
||||
<string name="add_directory_success">Nouveau dossier de jeux ajouté</string>
|
||||
<string name="enable_update_checks">Vérifier les mises à jour au démarrage de l’application.</string>
|
||||
<string name="update_available">Mise à jour disponible</string>
|
||||
<string name="update_available_description">Une nouvelle version est disponible : %1$s\n\nVoulez‑vous la télécharger \?</string>
|
||||
<string name="home_search">Rechercher</string>
|
||||
<string name="home_settings">Paramètres</string>
|
||||
<string name="empty_gamelist">Aucun fichier n\'a été trouvé ou aucun répertoire de jeu n\'a encore été sélectionné.</string>
|
||||
@@ -304,6 +308,7 @@
|
||||
<string name="search_recently_added">Ajouté récemment</string>
|
||||
<string name="open_user_folder">Ouvrir le dossier de Eden</string>
|
||||
<string name="open_user_folder_description">Gérer les fichiers internes de Eden</string>
|
||||
<string name="app_settings_description">Modifier le comportement et l’apparence de l’application</string>
|
||||
<string name="no_file_manager">Aucun gestionnaire de fichiers trouvé</string>
|
||||
<string name="notification_no_directory_link">Impossible d\'ouvrir le répertoire de Eden</string>
|
||||
<string name="notification_no_directory_link_description">Veuillez localiser manuellement le dossier utilisateur avec le panneau latéral du gestionnaire de fichiers.</string>
|
||||
@@ -368,9 +373,6 @@
|
||||
<string name="firmware_uninstalling">Désinstallation du firmware...</string>
|
||||
<string name="firmware_uninstalled_success">Firmware désinstallé avec succès</string>
|
||||
|
||||
<string name="error_firmware_missing">Le firmware est requis pour exécuter certains jeux et applications. Eden ne fonctionne qu\'avec le firmware 19.0.1 ou antérieur.</string>
|
||||
<string name="error_firmware_corrupted">Firmware présent mais illisible. Vérifiez les clés de décryptage et redumpz le firmware si nécessaire.</string>
|
||||
<string name="error_firmware_too_new">Firmware trop récent ou illisible. Eden ne supporte que le firmware 19.0.1 ou antérieur.</string>
|
||||
|
||||
<string name="keys_failed">Échec de l\'installation des clés</string>
|
||||
<string name="keys_install_success">Clés installées avec succès</string>
|
||||
@@ -408,7 +410,7 @@
|
||||
<string name="licenses_description">Des projets qui rendent possible Eden pour Android</string>
|
||||
<string name="build">Build</string>
|
||||
<string name="user_data">Données utilisateur</string>
|
||||
<string name="user_data_description">Importer/exporter toutes les données de l\'application\nLors de l\'importation des données utilisateur, toutes les données déjà existantes seront supprimé !\nImporter les données depuis Citron peut poser des problèmes. Il est recommandé de faire l\'importation manuellement de toutes les données nécessaire.</string>
|
||||
<string name="user_data_description">Importer/exporter toutes les données de l\'application\n\nLors de l\'importation des données utilisateur, toutes les données déjà existantes seront supprimé !\n\nImporter les données depuis Citron peut poser des problèmes. Il est recommandé de faire l\'importation manuellement de toutes les données nécessaire.</string>
|
||||
<string name="exporting_user_data">Exportation des données utilisateur...</string>
|
||||
<string name="importing_user_data">Importation des données utilisateur...</string>
|
||||
<string name="invalid_yuzu_backup">Backup Eden invalide</string>
|
||||
@@ -675,7 +677,6 @@
|
||||
<string name="copy_details">Copier les détails</string>
|
||||
<string name="add_ons">Extensions</string>
|
||||
<string name="add_ons_description">Activer les mods, mises à jour et DLC</string>
|
||||
<string name="playtime">Temps de jeu :</string>
|
||||
<string name="reset_playtime">Réinitialiser le Temps de Jeu</string>
|
||||
<string name="reset_playtime_description">Réinitialiser le temps de jeu du jeu actuel à 0 seconde</string>
|
||||
<string name="reset_playtime_warning_description">Cela effacera les données de temps de jeu du jeu actuel. Êtes-vous sûr \?</string>
|
||||
@@ -767,7 +768,7 @@
|
||||
<string name="invalid_driver_file">Fichier de pilote invalide : %s</string>
|
||||
<string name="network_unavailable">Aucune connexion réseau disponible. Veuillez vérifier votre connexion Internet et réessayer.</string>
|
||||
<string name="driver_missing_title">Pilote GPU requis</string>
|
||||
<string name="driver_missing_message">La configuration du jeu nécessite le pilote GPU \"%s\" qui n\'est pas installé sur votre appareil.\nVoulez-vous le télécharger et l\'installer maintenant \?</string>
|
||||
<string name="driver_missing_message">La configuration du jeu nécessite le pilote GPU \"%s\" qui n\'est pas installé sur votre appareil.\n\nVoulez-vous le télécharger et l\'installer maintenant \?</string>
|
||||
<string name="driver_download_cancelled">Téléchargement du pilote annulé. Le jeu ne peut pas être lancé sans le pilote requis.</string>
|
||||
<string name="download">Télécharger</string>
|
||||
|
||||
@@ -794,7 +795,6 @@
|
||||
<string name="unlock_drawer">Déverrouiller le tiroir</string>
|
||||
<string name="reset">Réinitialiser</string>
|
||||
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">Clavier virtuel</string>
|
||||
|
||||
@@ -962,6 +962,9 @@
|
||||
<string name="change_app_theme">Changer le thème de l\'application</string>
|
||||
<string name="theme_default">Par défaut</string>
|
||||
<string name="theme_material_you">Material You</string>
|
||||
<string name="app_settings">Paramètres de l’App</string>
|
||||
<string name="theme_and_color">Thème et Couleur</string>
|
||||
|
||||
<!-- Theme Modes -->
|
||||
<string name="change_theme_mode">Changer le mode de thème</string>
|
||||
<string name="theme_mode_follow_system">Automatique</string>
|
||||
|
||||
@@ -334,9 +334,6 @@
|
||||
<string name="firmware_uninstalling">מסיר קושחה...</string>
|
||||
<string name="firmware_uninstalled_success">הקושחה הוסרה בהצלחה</string>
|
||||
|
||||
<string name="error_firmware_missing">נדרש קושחה להפעלת משחקים ויישומים מסוימים. עדן עובד רק עם קושחה 19.0.1 או ישנה יותר.</string>
|
||||
<string name="error_firmware_corrupted">קושחה קיימת אך לא ניתנת לקריאה. בדוק מפתחות פענוח ושמור קושחה מחדש אם needed.</string>
|
||||
<string name="error_firmware_too_new">קושחה חדשה מדי או לא ניתנת לקריאה. עדן תומך רק בקושחה 19.0.1 או ישנה יותר.</string>
|
||||
|
||||
<string name="keys_failed">התקנת מפתחות נכשלה</string>
|
||||
<string name="keys_install_success">מפתחות הותקנו בהצלחה</string>
|
||||
|
||||
@@ -331,9 +331,6 @@
|
||||
<string name="firmware_uninstalling">Firmware eltávolítása...</string>
|
||||
<string name="firmware_uninstalled_success">A firmware sikeresen eltávolítva</string>
|
||||
|
||||
<string name="error_firmware_missing">A firmware szükséges egyes játékok és alkalmazások futtatásához. Az Eden csak 19.0.1 vagy régebbi firmware-ekkel működik.</string>
|
||||
<string name="error_firmware_corrupted">A firmware jelen van, de nem olvasható. Ellenőrizze a visszafejtési kulcsokat és szükség esetén dumpolja újra a firmware-t.</string>
|
||||
<string name="error_firmware_too_new">A firmware túl új vagy nem olvasható. Az Eden csak a 19.0.1 vagy régebbi firmware-ekkel működik.</string>
|
||||
|
||||
<string name="keys_failed">A kulcsok telepítése sikertelen</string>
|
||||
<string name="keys_install_success">A kulcsok sikeresen telepítve</string>
|
||||
|
||||
@@ -364,9 +364,6 @@
|
||||
<string name="firmware_uninstalling">Mencopot firmware...</string>
|
||||
<string name="firmware_uninstalled_success">Firmware berhasil dicopot</string>
|
||||
|
||||
<string name="error_firmware_missing">Firmware diperlukan untuk menjalankan game dan aplikasi tertentu. Eden hanya bekerja dengan firmware 19.0.1 atau lebih lama.</string>
|
||||
<string name="error_firmware_corrupted">Firmware dilaporkan ada tetapi tidak dapat dibaca. Periksa kunci dekripsi dan dump ulang firmware jika diperlukan.</string>
|
||||
<string name="error_firmware_too_new">Firmware terlalu baru atau tidak dapat dibaca. Eden hanya bekerja dengan firmware 19.0.1 atau lebih lama.</string>
|
||||
|
||||
<string name="keys_failed">Gagal menginstal kunci</string>
|
||||
<string name="keys_install_success">Kunci berhasil diinstal</string>
|
||||
@@ -772,7 +769,6 @@
|
||||
<string name="unlock_drawer">Buka Kunci Laci</string>
|
||||
<string name="reset">Reset</string>
|
||||
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">Papan Ketik Perangkat Lunak</string>
|
||||
|
||||
|
||||
@@ -240,6 +240,7 @@
|
||||
<string name="keys_description">Seleziona il tuo file <b>prod.keys</b> con il pulsante in basso.</string>
|
||||
<string name="select_keys">Seleziona le chiavi</string>
|
||||
<string name="firmware">Firmware</string>
|
||||
<string name="firmware_description">Seleziona il tuo file <b>firmware.zip</b>con il pulsante in basso.</string>
|
||||
<string name="select_firmware">Seleziona Firmware</string>
|
||||
<string name="games">Giochi</string>
|
||||
<string name="games_description">Seleziona la cartella dei <b>giochi</b> con il pulsante in basso.</string>
|
||||
@@ -256,10 +257,15 @@
|
||||
<string name="alphabetical">Alfabetico</string>
|
||||
<string name="view_list">Lista</string>
|
||||
<string name="view_grid">Griglia</string>
|
||||
<string name="view_grid_compact">Griglia Compatta</string>
|
||||
<string name="view_carousel">Carosello</string>
|
||||
<string name="game_image_desc">Screenshot per %1$s</string>
|
||||
<string name="folder">Cartella</string>
|
||||
<string name="dont_show_again">Non mostrare più</string>
|
||||
<string name="add_directory_success">Nuova directory di gioco aggiunta correttamente </string>
|
||||
<string name="enable_update_checks">Controlla se è disponibile un aggiornamento quando avvii l\'app.</string>
|
||||
<string name="update_available">Aggiornamento Disponibile</string>
|
||||
<string name="update_available_description">Una nuova versione è disponibile:%1$s\n\nVuoi scaricarla\?</string>
|
||||
<string name="home_search">Cerca</string>
|
||||
<string name="home_settings">Impostazioni</string>
|
||||
<string name="empty_gamelist">Non sono stati trovati file o non è stata ancora selezionata alcuna directory di gioco.</string>
|
||||
@@ -274,6 +280,7 @@
|
||||
<string name="install_prod_keys_description">Necessario per decrittografare i giochi</string>
|
||||
<string name="install_prod_keys_warning">Saltare l\'aggiunta delle chiavi?</string>
|
||||
<string name="install_prod_keys_warning_description">Sono necessarie delle chiavi valide per emulare i giochi. Se continui, funzioneranno solo le app homebrew.</string>
|
||||
<string name="install_prod_keys_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
||||
<string name="install_firmware_warning">Saltare l\'aggiunta del firmware?</string>
|
||||
<string name="install_firmware_warning_description">Molti giochi richiedono l\'accesso al firmware per funzionare correttamente.</string>
|
||||
<string name="install_firmware_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
||||
@@ -301,6 +308,7 @@
|
||||
<string name="search_recently_added">Aggiunti recentemente</string>
|
||||
<string name="open_user_folder">Apri la cartella di Eden</string>
|
||||
<string name="open_user_folder_description">Gestisci i file interni di Eden</string>
|
||||
<string name="app_settings_description">Modifica il comportamento e l\'aspetto dell\'app</string>
|
||||
<string name="no_file_manager">Nessun file manager trovato</string>
|
||||
<string name="notification_no_directory_link">Impossibile aprire la cartella di Eden</string>
|
||||
<string name="notification_no_directory_link_description">Per favore individua la cartella dell\'utente manualmente con il pannello laterale del file manager.</string>
|
||||
@@ -318,6 +326,7 @@
|
||||
<string name="firmware_installing">Installando il firmware</string>
|
||||
<string name="firmware_installed_failure">L\'installazione del firmware è fallita</string>
|
||||
<string name="firmware_installed_failure_description">Accertati che i file .nca del firmware siano contenuti direttamente nella radice dello .zip e riprova.</string>
|
||||
<string name="firmware_uninstalled_failure">Disinstallazione del firmware fallita</string>
|
||||
<string name="share_log">Condividi log di debug</string>
|
||||
<string name="share_log_description">Condividi i log di Eden per ricevere supporto</string>
|
||||
<string name="share_log_missing">Nessun file di log trovato</string>
|
||||
@@ -331,7 +340,9 @@
|
||||
<string name="install_game_content_success">Contenuto/i di gioco installato/i con successo.</string>
|
||||
<string name="install_game_content_success_install">%1$dinstallato con successo.</string>
|
||||
<string name="install_game_content_success_overwrite">%1$dsovrascritto con successo</string>
|
||||
<string name="install_game_content_help_link">https://yuzu-mirror.github.io/help/quickstart/#dumping-installed-updates</string>
|
||||
<string name="custom_driver_not_supported">I driver personalizzati non sono supportati.</string>
|
||||
<string name="custom_driver_not_supported_description">I driver personalizzati non sono attualmente supportati per questo dispositivo.\nRicontrolla in futuro se il supporto è stato aggiunto.</string>
|
||||
<string name="manage_yuzu_data">Gestisci i dati di Eden</string>
|
||||
<string name="manage_yuzu_data_description">Importa/Esporta il firmware, le keys, i dati utente, e altro!</string>
|
||||
<string name="game_folders">Cartelle di gioco</string>
|
||||
@@ -355,14 +366,13 @@
|
||||
|
||||
<string name="keys_missing">Chiavi di crittografia mancanti</string>
|
||||
<string name="keys_missing_description">Impossibile decifrare firmware e giochi retail</string>
|
||||
<string name="keys_missing_help">https://yuzu-mirror.github.io/help/quickstart/#dumping-decryption-keys</string>
|
||||
|
||||
<string name="uninstall_firmware">Disinstalla firmware</string>
|
||||
<string name="uninstall_firmware_description">Disinstallare il firmware lo rimuoverà dal dispositivo e potrebbe influire sulla compatibilità dei giochi.</string>
|
||||
<string name="firmware_uninstalling">Disinstallazione firmware...</string>
|
||||
<string name="firmware_uninstalled_success">Firmware disinstallato con successo</string>
|
||||
|
||||
<string name="error_firmware_missing">Il firmware è richiesto per eseguire alcuni giochi e applicazioni. Eden funziona solo con firmware 19.0.1 o precedente.</string>
|
||||
<string name="error_firmware_corrupted">Il firmware è presente ma non può essere letto. Controlla le chiavi di decrittazione e ridumpa il firmware se necessario.</string>
|
||||
<string name="error_firmware_too_new">Il firmware è troppo recente o illeggibile. Eden supporta solo firmware 19.0.1 o precedenti.</string>
|
||||
|
||||
<string name="keys_failed">Installazione chiavi fallita</string>
|
||||
<string name="keys_install_success">Chiavi installate con successo</string>
|
||||
@@ -396,9 +406,11 @@
|
||||
<string name="about_app_description">Un emulatore della Switch open-source.</string>
|
||||
<string name="contributors">Collaboratori</string>
|
||||
<string name="contributors_description">Realizzato con \u2764 dal team Eden</string>
|
||||
<string name="contributors_link">https://git.eden-emu.dev/eden-emu/eden/activity/contributors</string>
|
||||
<string name="licenses_description">Progetti che rendono Eden per Android possibile</string>
|
||||
<string name="build">Compilazione</string>
|
||||
<string name="user_data">Dati Utente</string>
|
||||
<string name="user_data_description">Importa/Esporta tutti i dati dell\'app.\n\nQuando si importano nuovi dati utente, tutti quelli esistenti verranno cancellati!\n\nImportare dati da Citron può causare problemi. È raccomandato importare manualmente tutti i dati utili.</string>
|
||||
<string name="exporting_user_data">Esportazione dei Dati Utente...</string>
|
||||
<string name="importing_user_data">Importazione dei Dati Utente...</string>
|
||||
<string name="invalid_yuzu_backup">Backup di Eden Invalido</string>
|
||||
@@ -449,6 +461,8 @@
|
||||
<string name="renderer_screen_layout">Orientamento</string>
|
||||
<string name="renderer_aspect_ratio">Rapporto d\'aspetto: </string>
|
||||
<string name="renderer_scaling_filter">Filtro adattivo della finestra </string>
|
||||
<string name="fsr_sharpness">Nitidezza FSR</string>
|
||||
<string name="fsr_sharpness_description">Determina quanto nitida dovrebbe essere l\'immagine utilizzando il Contrasto Dinamido dell\'FSR</string>
|
||||
<string name="renderer_anti_aliasing">Metodo di anti-aliasing</string>
|
||||
<string name="renderer_force_max_clock">Forza clock massimi (solo Adreno)</string>
|
||||
<string name="renderer_force_max_clock_description">Forza la GPU a girare col massimo clock possibile (i vincoli alla temperatura saranno comunque applicati)</string>
|
||||
@@ -489,6 +503,8 @@
|
||||
<string name="audio_volume">Volume</string>
|
||||
<string name="audio_volume_description">Specifica il volume dell\'audio in uscita.</string>
|
||||
|
||||
<!-- Input strings -->
|
||||
<string name="buttons">Pulsanti</string>
|
||||
<string name="button_a">A</string>
|
||||
<string name="button_b">B</string>
|
||||
<string name="button_x">X</string>
|
||||
@@ -497,25 +513,45 @@
|
||||
<string name="button_minus">Meno</string>
|
||||
<string name="button_home">Home</string>
|
||||
<string name="button_capture">Cattura</string>
|
||||
<string name="start_pause">Avvia/Pausa</string>
|
||||
<string name="dpad">D-Pad</string>
|
||||
<string name="up">Su</string>
|
||||
<string name="down">Giù</string>
|
||||
<string name="left">Sinistra</string>
|
||||
<string name="right">Destra</string>
|
||||
<string name="left_stick">Analogico sinistro</string>
|
||||
<string name="control_stick">Levetta di Controllo</string>
|
||||
<string name="right_stick">Analogico destro</string>
|
||||
<string name="c_stick">Levetta C</string>
|
||||
<string name="pressed">Premuto</string>
|
||||
<string name="range">Raggio</string>
|
||||
<string name="deadzone">Zona morta</string>
|
||||
<string name="modifier">Modificatore</string>
|
||||
<string name="modifier_range">Range di modifica</string>
|
||||
<string name="triggers">Grilletti</string>
|
||||
<string name="button_l">L</string>
|
||||
<string name="button_r">R</string>
|
||||
<string name="button_zl">ZL</string>
|
||||
<string name="button_zr">ZR</string>
|
||||
<string name="button_sl_left">SL Sinistro</string>
|
||||
<string name="button_sr_left">SR Sinistro</string>
|
||||
<string name="button_sl_right">SL Destro</string>
|
||||
<string name="button_sr_right">SR Destro</string>
|
||||
<string name="button_z">Z</string>
|
||||
<string name="invalid">Non valido</string>
|
||||
<string name="not_set">Non impostato</string>
|
||||
<string name="unknown">Sconosciuto</string>
|
||||
<string name="qualified_hat">%1$s%2$s%3$sFreccia%4$s</string>
|
||||
<string name="qualified_button_stick_axis">%1$s%2$s%3$sAsse%4$s</string>
|
||||
<string name="qualified_button">%1$s%2$s%3$sPulsante%4$s</string>
|
||||
<string name="qualified_axis">Asse%1$s%2$s</string>
|
||||
<string name="unused">Inutilizzato</string>
|
||||
<string name="input_mapping_filter">Filtro input mapping</string>
|
||||
<string name="input_mapping_filter_description">Seleziona un dispositivo che faccia da filtro per l\'input mapping</string>
|
||||
<string name="auto_map">Mappa in automatico un controller</string>
|
||||
<string name="auto_map_description">Seleziona un dispositivo per provare ad auto-mapparlo</string>
|
||||
<string name="attempted_auto_map">Auto-map eseguito con %1$s</string>
|
||||
<string name="controller_type">Tipo controller</string>
|
||||
<string name="pro_controller">Pro Controller</string>
|
||||
<string name="handheld">Portatile</string>
|
||||
<string name="dual_joycons">Due Joycon</string>
|
||||
@@ -529,9 +565,28 @@
|
||||
<string name="set_threshold">Imposta soglia</string>
|
||||
<string name="toggle_axis">Cancella asse</string>
|
||||
<string name="connected">Connesso</string>
|
||||
<string name="use_system_vibrator">Use vibrazione di sistema</string>
|
||||
<string name="input_overlay">Input overlay</string>
|
||||
<string name="vibration">Vibrazione</string>
|
||||
<string name="vibration_strength">Potenza vibrazione</string>
|
||||
<string name="profile">Profilo</string>
|
||||
<string name="create_new_profile">Crea nuovo profilo</string>
|
||||
<string name="enter_profile_name">Inserisci nome profilo</string>
|
||||
<string name="profile_name_already_exists">Un altro profilo con questo nome già esiste</string>
|
||||
<string name="invalid_profile_name">Nome profilo invalido</string>
|
||||
<string name="use_global_input_configuration">Usa la configurazione di input globale</string>
|
||||
<string name="player_num_profile">Profilo %d giocatore</string>
|
||||
<string name="delete_input_profile">Elimina profilo di input</string>
|
||||
<string name="delete_input_profile_description">Sei sicuro di voler cancellare questo profilo\? Non potrai più recuperarlo.</string>
|
||||
<string name="stick_map_description">Muovi un analogico a sinistra e poi sopra o premi un pulsante</string>
|
||||
<string name="button_map_description">Premi un pulsante o muovi un grilletto/analogico</string>
|
||||
<string name="map_dpad_direction">Map sulle frecce %1$s</string>
|
||||
<string name="map_control">Mappa su %1$s</string>
|
||||
<string name="failed_to_load_profile">Apertura del profilo fallita</string>
|
||||
<string name="failed_to_save_profile">Salvataggio del profilo fallito</string>
|
||||
<string name="reset_mapping">Resetta pulsanti</string>
|
||||
<string name="reset_mapping_description">Sei sicuro di voler resettare tutti i pulsanti mappati per questo controller\? Questa azione non può essere annullata.</string>
|
||||
|
||||
<!-- Miscellaneous -->
|
||||
<string name="slider_default">Predefinito</string>
|
||||
<string name="loading">Caricamento…</string>
|
||||
@@ -556,6 +611,7 @@
|
||||
<string name="fetch">Recupera</string>
|
||||
<string name="delete">Elimina</string>
|
||||
<string name="edit">Modifica</string>
|
||||
<string name="import_success">Importato correttamente</string>
|
||||
<string name="export_success">Esportazione completata</string>
|
||||
<string name="start">Start</string>
|
||||
<string name="global">Globale</string>
|
||||
@@ -563,6 +619,8 @@
|
||||
<string name="import_complete">Importazione completata</string>
|
||||
<string name="use_global_setting">Usa l\'impostazione globale</string>
|
||||
<string name="operation_completed_successfully">Operazione completata con successo</string>
|
||||
<string name="confirm">Conferma</string>
|
||||
<string name="load">Carica</string>
|
||||
<string name="save">Salva</string>
|
||||
|
||||
<!-- GPU driver installation -->
|
||||
@@ -601,25 +659,74 @@
|
||||
<string name="preferences_audio">Audio</string>
|
||||
<string name="preferences_audio_description">Motore di Output audio e volume</string>
|
||||
<string name="preferences_controls">Comandi</string>
|
||||
<string name="preferences_controls_description">Mappa un imput del controllerq</string>
|
||||
<string name="preferences_player">Giocatore %d</string>
|
||||
<string name="preferences_debug">Debug</string>
|
||||
<string name="preferences_debug_description">Debugging CPU/GPU, API grafiche, fastmem</string>
|
||||
|
||||
<!-- Game properties -->
|
||||
<string name="info">Info</string>
|
||||
<string name="info_description">ID Programma, Sviluppatore, Versione</string>
|
||||
<string name="per_game_settings">Impostazioni specifiche per ogni gioco</string>
|
||||
<string name="per_game_settings_description">Modifica le impostazioni solo per questo gioco</string>
|
||||
<string name="launch_options">Avvia configurazione</string>
|
||||
<string name="path">Percorso</string>
|
||||
<string name="program_id">Id Programma</string>
|
||||
<string name="developer">Sviluppatore</string>
|
||||
<string name="version">Versione</string>
|
||||
<string name="copy_details">Copia dettagli</string>
|
||||
<string name="add_ons">Add-on</string>
|
||||
<string name="add_ons_description">Gestisci mod, aggiornamenti e DLC</string>
|
||||
<string name="reset_playtime">Resetta tempo di gioco</string>
|
||||
<string name="reset_playtime_description">Resetta il tempo di gioco di quest\'ultimo a 0 secondi</string>
|
||||
<string name="reset_playtime_warning_description">In questo modo resetterai il tempo di gioco di quest\'ultimo. Sei sicuro\?</string>
|
||||
<string name="playtime_reset_successfully">Il tempo di gioco è stato resettato.</string>
|
||||
<string name="edit_playtime">Modifica tempo di gioco</string>
|
||||
<string name="hours">Ore</string>
|
||||
<string name="minutes">Minuti</string>
|
||||
<string name="hours_must_be_between_0_and_9999">Le ore devono essere comprese tra 0 e 9999</string>
|
||||
<string name="minutes_must_be_between_0_and_59">I minuti devono essere compresi tra 0 e 59</string>
|
||||
<string name="seconds_must_be_between_0_and_59">I secondi devono essere compresi tra 0 e 59</string>
|
||||
<string name="playtime_updated_successfully">Tempo di gioco correttamente aggiornato</string>
|
||||
<string name="clear_shader_cache">Rimuove la cache delle Shader</string>
|
||||
<string name="clear_shader_cache_description">Cancella tutte le shader compilate su questo gioco fino ad ora</string>
|
||||
<string name="clear_shader_cache_warning_description">Mentre la cache delle shader rigenera potresti imbatterti in stuttering</string>
|
||||
<string name="cleared_shaders_successfully">Shader azzerate correttamente</string>
|
||||
<string name="addons_game">Addons: %1$s</string>
|
||||
<string name="save_data">Dati di salvataggio</string>
|
||||
<string name="save_data_description">Gestisci i salvataggi di questo gioco</string>
|
||||
<string name="delete_save_data">Elimina salvataggio</string>
|
||||
<string name="delete_save_data_description">Cancella tutti i salvataggi per questo gioco</string>
|
||||
<string name="delete_save_data_warning_description">Questo cancella completamente tutti i dati di salvataggio per questo gioco. Sei sicuro di voler continuare\?</string>
|
||||
<string name="save_data_deleted_successfully">Salvataggi eliminati correttamente</string>
|
||||
<string name="select_content_type">Tipo contenuto</string>
|
||||
<string name="updates_and_dlc">Aggiornamenti e DLC</string>
|
||||
<string name="mods_and_cheats">Mod e trucchi</string>
|
||||
<string name="addon_notice">Avviso per gli addon importante</string>
|
||||
<!-- \"cheats/" "romfs/" and \"exefs/ should not be translated -->
|
||||
<string name="addon_notice_description">Per installare mod e trucchi, devi selezionare una cartella che contenga una cartella chiamata \"cheats/\", \"romfs/\" oppure \"exefs/\". Non possiamo verificare se questi saranno compatibili con il gioco, quindi fai attenzione!</string>
|
||||
<string name="invalid_directory">Cartella non valida</string>
|
||||
<!-- \"cheats/" "romfs/" and \"exefs/ should not be translated -->
|
||||
<string name="invalid_directory_description">Per favore ricontrolla che la cartella che hai selezionato ne contenga una chiamata \"cheats/\", \"romfs/\" o \"exefs/\" e riprova.</string>
|
||||
<string name="addon_installed_successfully">Addon installato correttamente</string>
|
||||
<string name="verifying_content">Verificando contenuto...</string>
|
||||
<string name="content_install_notice">Avviso installazione contenuto</string>
|
||||
<string name="content_install_notice_description">Il contenuto che hai selezionato non corrisponde a questo gioco. Vuoi installare comunque\?</string>
|
||||
<string name="confirm_uninstall">Conferma disinstallazione</string>
|
||||
<string name="confirm_uninstall_description">Sei sicuro di voler cancellare quest\'addon\?</string>
|
||||
<string name="verify_integrity">Verifica integrità</string>
|
||||
<string name="verifying">Verificando...</string>
|
||||
<string name="verify_success">Verifica dell\'integrità completata con successo!</string>
|
||||
<string name="verify_failure">Verifica dell\'integrità fallita!</string>
|
||||
<string name="verify_failure_description">I contenuti dei file potrebbero essere corrotti</string>
|
||||
<string name="verify_no_result">Impossibile effettuare la verifica dell\'integrità</string>
|
||||
<string name="verify_no_result_description">L\'integrità dei contenuti non è stata validata</string>
|
||||
<string name="verification_failed_for">La verifica è fallita per i seguenti file: %1$s</string>
|
||||
<string name="share_game_settings">Condividi configurazione</string>
|
||||
<string name="import_config">Importa configurazione</string>
|
||||
<string name="export_config">Esporta configurazione</string>
|
||||
<string name="share_config_failed">Impossibile condividere il file</string>
|
||||
|
||||
<!-- ROM loading errors -->
|
||||
<string name="loader_error_encrypted">La tua ROM è criptata</string>
|
||||
<string name="loader_error_encrypted_roms_description"><![CDATA[Segui le guide per ridumpare le tue <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-physical-titles-game-cards\">schede di gioco</a> o <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-digital-titles-eshop\">titoli digitali</a>.]]></string>
|
||||
@@ -651,6 +758,7 @@
|
||||
<string name="config_write_failed">Impossibile scrivere il file di configurazione</string>
|
||||
<string name="config_apply_failed">Impossibile applicare la configurazione</string>
|
||||
<string name="config_already_exists_title">Configurazione già esistente</string>
|
||||
<string name="config_already_exists_message">Impostazioni personalizzate già esistenti per %1$s.\n\nVuoi sovrascrivere la configurazione esistente\?\n\nQuesta azione non può essere annullata.</string>
|
||||
<string name="config_exists_prompt">Verifica della configurazione esistente...</string>
|
||||
<string name="overwrite_cancelled">Sovrascrittura annullata</string>
|
||||
<string name="overwrite">Sovrascrivi</string>
|
||||
@@ -660,6 +768,7 @@
|
||||
<string name="invalid_driver_file">File driver non valido: %s</string>
|
||||
<string name="network_unavailable">Nessuna connessione di rete disponibile. Controlla la connessione Internet e riprova.</string>
|
||||
<string name="driver_missing_title">Driver GPU richiesto</string>
|
||||
<string name="driver_missing_message">La configurazione del gioco richiede il driver GPU \"%s\" che non è installato sul tuo dispositivo.\n\nVuoi scaricarlo e installarlo ora\?</string>
|
||||
<string name="driver_download_cancelled">Download del driver annullato. Il gioco non può essere avviato senza il driver richiesto.</string>
|
||||
<string name="download">Scarica</string>
|
||||
|
||||
@@ -682,6 +791,10 @@
|
||||
<string name="emulation_unpause">Riprendi l\'emulazione</string>
|
||||
<string name="emulation_input_overlay">Opzioni overlay</string>
|
||||
<string name="touchscreen">Touchscreen</string>
|
||||
<string name="lock_drawer">Blocca drawer</string>
|
||||
<string name="unlock_drawer">Sblocca drawer</string>
|
||||
<string name="reset">Resetta</string>
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">Tastiera Software</string>
|
||||
|
||||
@@ -689,9 +802,12 @@
|
||||
<string name="abort_button">Interrompi</string>
|
||||
<string name="continue_button">Continua</string>
|
||||
<string name="system_archive_not_found">Archivio di sistema non trovato</string>
|
||||
<string name="system_archive_not_found_message">%s è mancante. Per favore esegui il dump degli archivi del tuo sistema.\nContinuare ad emulare potrebbe portare bug o causare crash.</string>
|
||||
<string name="system_archive_general">Un archivio di sistema</string>
|
||||
<string name="save_load_error">Errore di salvataggio/caricamento</string>
|
||||
<string name="fatal_error">Errore Fatale</string>
|
||||
<string name="fatal_error_message">Errore Fatale. Controlla i log per i dettagli.\nContinuare l\'emulazione potrebbe causare crash.</string>
|
||||
<string name="device_memory_inadequate">RAM Totale:%1$s\nRaccomandati: %2$s</string>
|
||||
<string name="memory_formatted">%1$s%2$s</string>
|
||||
<string name="no_game_present">Non è presente alcun gioco avviabile.</string>
|
||||
|
||||
@@ -738,8 +854,13 @@
|
||||
<!-- Renderer Accuracy -->
|
||||
<string name="renderer_accuracy_normal">Normale</string>
|
||||
<string name="renderer_accuracy_high">Alta</string>
|
||||
<string name="renderer_accuracy_extreme">Estrema</string>
|
||||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Predefinito</string>
|
||||
<string name="dma_accuracy_unsafe">Non sicura</string>
|
||||
<string name="dma_accuracy_safe">Sicura</string>
|
||||
|
||||
<!-- ASTC Decoding Method -->
|
||||
<string name="accelerate_astc">Metodo decodifica ASTC</string>
|
||||
<string name="accelerate_astc_description">Scegli come decodificare le texture compresse ASTC per il rendering: CPU (lento, sicuro), GPU (veloce, consigliato) o CPU Async (senza stuttering, può causare problemi)</string>
|
||||
@@ -769,6 +890,7 @@
|
||||
<string name="resolution_half">0.5X (360p/540p)</string>
|
||||
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
|
||||
<string name="resolution_one">1X (720p/1080p)</string>
|
||||
<string name="resolution_five_quarter">1.25X (900p/1350p)</string>
|
||||
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
|
||||
<string name="resolution_two">2X (1440p/2160p) (Slow)</string>
|
||||
<string name="resolution_three">3X (2160p/3240p) (Slow)</string>
|
||||
@@ -784,9 +906,17 @@
|
||||
<string name="scaling_filter_nearest_neighbor">Nearest neighbor</string>
|
||||
<string name="scaling_filter_bilinear">Bilineare</string>
|
||||
<string name="scaling_filter_bicubic">Bicubico</string>
|
||||
<string name="scaling_filter_spline1">Spline-1</string>
|
||||
<string name="scaling_filter_gaussian">Gaussiano</string>
|
||||
<string name="scaling_filter_lanczos">Lanczos</string>
|
||||
<string name="scaling_filter_scale_force">ScaleForce</string>
|
||||
<string name="scaling_filter_fsr">AMD FidelityFX™️ Super Resolution</string>
|
||||
<string name="scaling_filter_area">Area</string>
|
||||
<string name="scaling_filter_zero_tangent">Zero-Tangent</string>
|
||||
<string name="scaling_filter_bspline">B-Spline</string>
|
||||
<string name="scaling_filter_mitchell">Mitchell</string>
|
||||
<string name="scaling_filter_mmpx">MMPX</string>
|
||||
|
||||
<!-- Anti-Aliasing -->
|
||||
<string name="anti_aliasing_none">Nessuna</string>
|
||||
<string name="anti_aliasing_fxaa">FXAA</string>
|
||||
@@ -794,8 +924,13 @@
|
||||
|
||||
<!-- Screen Layouts -->
|
||||
<string name="screen_layout_auto">Automatico</string>
|
||||
<string name="screen_layout_sensor_landscape">Layout orizzontale sensore</string>
|
||||
<string name="screen_layout_landscape">Layout Orizzontale</string>
|
||||
<string name="screen_layout_reverse_landscape">Layout orizzontale inverso sensore</string>
|
||||
<string name="screen_layout_sensor_portrait">Layout verticale sensore</string>
|
||||
<string name="screen_layout_portrait">Layout Verticale</string>
|
||||
<string name="screen_layout_reverse_portrait">Layout verticale inverso</string>
|
||||
|
||||
<!-- Aspect Ratios -->
|
||||
<string name="ratio_default">Predefinito (16:9)</string>
|
||||
<string name="ratio_force_four_three">Forza 4:3</string>
|
||||
@@ -803,10 +938,16 @@
|
||||
<string name="ratio_force_sixteen_ten">Forza 16:10</string>
|
||||
<string name="ratio_stretch">Adatta alla finestra</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">Native code execution (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">Accurata</string>
|
||||
<string name="cpu_accuracy_unsafe">Non sicura</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoico (Lento)</string>
|
||||
<string name="cpu_accuracy_debugging">Debugging</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">D-pad</string>
|
||||
<string name="gamepad_left_stick">Analogico sinistro</string>
|
||||
@@ -821,12 +962,17 @@
|
||||
<string name="change_app_theme">Cambia tema dell\'app</string>
|
||||
<string name="theme_default">Predefinito</string>
|
||||
<string name="theme_material_you">Material You</string>
|
||||
<string name="app_settings">Impostazioni app</string>
|
||||
<string name="theme_and_color">Tema e colore</string>
|
||||
|
||||
<!-- Theme Modes -->
|
||||
<string name="change_theme_mode">Cambia la modalità del tema</string>
|
||||
<string name="theme_mode_follow_system">Segue il Sistema</string>
|
||||
<string name="theme_mode_light">Chiaro</string>
|
||||
<string name="theme_mode_dark">Scuro</string>
|
||||
|
||||
<!-- Audio output engines -->
|
||||
<string name="oboe">oboe</string>
|
||||
<string name="cubeb">cubeb</string>
|
||||
|
||||
<!-- Anisotropic filtering options -->
|
||||
@@ -841,6 +987,7 @@
|
||||
|
||||
<!-- Static Themes -->
|
||||
<string name="static_theme_color">Colore tema</string>
|
||||
<string name="eden_theme">Eden (Default)</string>
|
||||
<string name="violet">Viola (Predefinito)</string>
|
||||
<string name="blue">Blu</string>
|
||||
<string name="cyan">Ciano</string>
|
||||
@@ -859,6 +1006,12 @@
|
||||
<string name="mute">Silenzia</string>
|
||||
<string name="unmute">Riattiva</string>
|
||||
|
||||
<!-- Emulation vertical alignment -->
|
||||
<string name="vertical_alignment">Allineamento verticale</string>
|
||||
<string name="top">In alto</string>
|
||||
<string name="center">Centro</string>
|
||||
<string name="bottom">In basso</string>
|
||||
|
||||
<!-- Applet Modes -->
|
||||
<string name="applets_menu">Applet</string>
|
||||
<string name="applets_menu_description">(In lavorazione) Cambia frontend e impostazioni degli applet</string>
|
||||
|
||||
@@ -333,9 +333,6 @@
|
||||
<string name="firmware_uninstalling">ファームウェアをアンインストール中...</string>
|
||||
<string name="firmware_uninstalled_success">ファームウェアのアンインストールが成功しました</string>
|
||||
|
||||
<string name="error_firmware_missing">一部のゲームとアプリケーションを実行するにはファームウェアが必要です。Edenは19.0.1以前のファームウェアでのみ動作します。</string>
|
||||
<string name="error_firmware_corrupted">ファームウェアは存在しますが読み取れません。復号キーを確認し、必要に応じてファームウェアを再ダンプしてください。</string>
|
||||
<string name="error_firmware_too_new">ファームウェアが新しすぎるか読み取れません。Edenは19.0.1以前のファームウェアのみに対応しています。</string>
|
||||
|
||||
<string name="keys_failed">キーのインストールに失敗</string>
|
||||
<string name="keys_install_success">キーが正常にインストールされました</string>
|
||||
|
||||
@@ -330,9 +330,6 @@
|
||||
<string name="firmware_uninstalling">펌웨어 제거 중...</string>
|
||||
<string name="firmware_uninstalled_success">펌웨어가 성공적으로 제거되었습니다</string>
|
||||
|
||||
<string name="error_firmware_missing">일부 게임 및 애플리케이션 실행을 위해 펌웨어가 필요합니다. Eden은 19.0.1 이하 버전의 펌웨어에서만 작동합니다.</string>
|
||||
<string name="error_firmware_corrupted">펌웨어가 존재하지만 읽을 수 없습니다. 복호화 키를 확인하고 필요한 경우 펌웨어를 다시 덤프하세요.</string>
|
||||
<string name="error_firmware_too_new">펌웨어가 너무 최신이거나 읽을 수 없습니다. Eden은 19.0.1 이전 버전의 펌웨어에서만 작동합니다.</string>
|
||||
|
||||
<string name="keys_failed">키 설치 실패</string>
|
||||
<string name="keys_install_success">키가 성공적으로 설치됨</string>
|
||||
|
||||
@@ -322,9 +322,6 @@
|
||||
<string name="firmware_uninstalling">Avinstallerer firmware...</string>
|
||||
<string name="firmware_uninstalled_success">Firmware avinstallert</string>
|
||||
|
||||
<string name="error_firmware_missing">Fastvare kreves for å kjøre enkelte spill og applikasjoner. Eden fungerer bare med fastvare 19.0.1 eller eldre.</string>
|
||||
<string name="error_firmware_corrupted">Fastvare er til stede, men kan ikke leses. Sjekk dekrypteringsnøklene og dump fastvaren på nytt om nødvendig.</string>
|
||||
<string name="error_firmware_too_new">Fastvaren er for ny eller kan ikke leses. Eden fungerer bare med fastvare 19.0.1 eller eldre.</string>
|
||||
|
||||
<string name="keys_failed">Kunne ikke installere nøkler</string>
|
||||
<string name="keys_install_success">Nøklene ble installert</string>
|
||||
|
||||
@@ -240,6 +240,7 @@
|
||||
<string name="keys_description">Wybierz swoje klucze <b>prod.keys</b> za pomocą przycisku poniżej.</string>
|
||||
<string name="select_keys">Wybierz klucze</string>
|
||||
<string name="firmware">Firmware</string>
|
||||
<string name="firmware_description">Wybierz swój plik <b>firmware.zip</b> przyciskiem poniżej.</string>
|
||||
<string name="select_firmware">Wybierz Firmware</string>
|
||||
<string name="games">Gry</string>
|
||||
<string name="games_description">Wybierz katalog z grami <b>Games</b> za pomocą przycisku poniżej.</string>
|
||||
@@ -262,6 +263,9 @@
|
||||
<string name="folder">Folder</string>
|
||||
<string name="dont_show_again">Nie pokazuj ponownie</string>
|
||||
<string name="add_directory_success">Pomyślnie dodano nowy katalog gier</string>
|
||||
<string name="enable_update_checks">Sprawdzaj aktualizacje przy uruchomieniu aplikacji.</string>
|
||||
<string name="update_available">Dostępna aktualizacja</string>
|
||||
<string name="update_available_description">Dostępna jest nowa wersja: %1$s\n\nCzy chcesz ją pobrać\?</string>
|
||||
<string name="home_search">Szukaj</string>
|
||||
<string name="home_settings">Ustawienia</string>
|
||||
<string name="empty_gamelist">Nie znaleziono plików, lub nie wybrano jeszcze katalogu zawierającego gry.</string>
|
||||
@@ -304,6 +308,7 @@
|
||||
<string name="search_recently_added">Ostatnio dodane</string>
|
||||
<string name="open_user_folder">Otwórz folder Eden</string>
|
||||
<string name="open_user_folder_description">Zarządzaj plikami emulatora</string>
|
||||
<string name="app_settings_description">Dostosuj działanie i wygląd aplikacji</string>
|
||||
<string name="no_file_manager">Nie znaleziono menedżera plików</string>
|
||||
<string name="notification_no_directory_link">Nie można otworzyć folderu emulatora</string>
|
||||
<string name="notification_no_directory_link_description">Proszę wybrać ręcznie folder z pomocą panelu bocznego menedżera plików.</string>
|
||||
@@ -370,9 +375,6 @@
|
||||
<string name="firmware_uninstalling">Odinstalowywanie firmware...</string>
|
||||
<string name="firmware_uninstalled_success">Firmware odinstalowany pomyślnie</string>
|
||||
|
||||
<string name="error_firmware_missing">Firmware jest wymagany do uruchamiania niektórych gier i aplikacji. Eden działa tylko z firmwarem 19.0.1 lub starszym.</string>
|
||||
<string name="error_firmware_corrupted">Oprogramowanie sprzętowe jest obecne, ale nie można go odczytać. Sprawdź klucze deszyfrujące i w razie potrzeby zrzuć oprogramowanie ponownie.</string>
|
||||
<string name="error_firmware_too_new">Oprogramowanie sprzętowe jest zbyt nowe lub nie można go odczytać. Eden działa tylko z oprogramowaniem sprzętowym w wersji 19.0.1 lub starszej.</string>
|
||||
|
||||
<string name="keys_failed">Nie udało się zainstalować kluczy</string>
|
||||
<string name="keys_install_success">Pomyślnie zainstalowano klucze</string>
|
||||
@@ -677,7 +679,6 @@
|
||||
<string name="copy_details">Kopiuj szczegóły</string>
|
||||
<string name="add_ons">Dodatki</string>
|
||||
<string name="add_ons_description">Przełącz mody, aktualizacje i DLC</string>
|
||||
<string name="playtime">Czas gry:</string>
|
||||
<string name="reset_playtime">Wyczyść czas gry</string>
|
||||
<string name="reset_playtime_description">Zresetuj czas gry do 0 sekund.</string>
|
||||
<string name="reset_playtime_warning_description">Spowoduje to usunięcie danych dotyczących czasu gry w bieżącej grze. Czy na pewno chcesz to zrobić\?</string>
|
||||
@@ -796,7 +797,6 @@
|
||||
<string name="unlock_drawer">Odblokuj panel</string>
|
||||
<string name="reset">Resetuj</string>
|
||||
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">Klawiatura programowa</string>
|
||||
|
||||
@@ -964,6 +964,9 @@
|
||||
<string name="change_app_theme">Ustaw motyw aplikacji</string>
|
||||
<string name="theme_default">Domyślny</string>
|
||||
<string name="theme_material_you">Material You</string>
|
||||
<string name="app_settings">Ustawienia aplikacji</string>
|
||||
<string name="theme_and_color">Motyw i kolor</string>
|
||||
|
||||
<!-- Theme Modes -->
|
||||
<string name="change_theme_mode">Zmień tryb motywu</string>
|
||||
<string name="theme_mode_follow_system">Podążaj za systemowym</string>
|
||||
|
||||
@@ -240,6 +240,7 @@
|
||||
<string name="keys_description">Selecione seu arquivo <b>prod.keys</b> com o botão abaixo.</string>
|
||||
<string name="select_keys">Selecione as Chaves (Keys)</string>
|
||||
<string name="firmware">Firmware</string>
|
||||
<string name="firmware_description">Selecione seu arquivo <b>firmware.zip</b> com o botão abaixo.</string>
|
||||
<string name="select_firmware">Selecionar Firmware</string>
|
||||
<string name="games">Jogos</string>
|
||||
<string name="games_description">Selecione sua pasta de <b>Jogos</b> com o botão abaixo.</string>
|
||||
@@ -262,6 +263,9 @@
|
||||
<string name="folder">Pasta</string>
|
||||
<string name="dont_show_again">Não Mostrar Novamente</string>
|
||||
<string name="add_directory_success">Nova pasta de jogos adicionada com sucesso</string>
|
||||
<string name="enable_update_checks">Procurar por atualizações ao iniciar o aplicativo.</string>
|
||||
<string name="update_available">Atualização Disponível</string>
|
||||
<string name="update_available_description">Uma nova versão está disponível: %1$s\n\nGostaria de baixá-la\?</string>
|
||||
<string name="home_search">Pesquisar</string>
|
||||
<string name="home_settings">Configurações</string>
|
||||
<string name="empty_gamelist">Nenhum jogo foi encontrado ou nenhuma pasta de jogos foi definida.</string>
|
||||
@@ -304,6 +308,7 @@
|
||||
<string name="search_recently_added">Adicionado recentemente</string>
|
||||
<string name="open_user_folder">Abrir a pasta do Eden</string>
|
||||
<string name="open_user_folder_description">Gerencie os arquivos internos do Eden</string>
|
||||
<string name="app_settings_description">Alterar o comportamento e aparência do aplicativo</string>
|
||||
<string name="no_file_manager">Nenhum gerenciador de arquivos encontrado</string>
|
||||
<string name="notification_no_directory_link">Não foi possível abrir a pasta do Eden</string>
|
||||
<string name="notification_no_directory_link_description">Localize manualmente a pasta do usuário usando o gerenciador de arquivos.</string>
|
||||
@@ -368,9 +373,6 @@
|
||||
<string name="firmware_uninstalling">Desinstalando firmware</string>
|
||||
<string name="firmware_uninstalled_success">Firmware desinstalado com sucesso</string>
|
||||
|
||||
<string name="error_firmware_missing">Firmware é necessário para executar certos jogos e aplicativos. Eden só funciona com firmware 19.0.1 ou anterior.</string>
|
||||
<string name="error_firmware_corrupted">Firmware está presente mas não pode ser lido. Verifique as chaves de descriptografia e refaça o dump do firmware se necessário.</string>
|
||||
<string name="error_firmware_too_new">Firmware é muito novo ou não pode ser lido. Eden só funciona com firmware 19.0.1 ou anterior.</string>
|
||||
|
||||
<string name="keys_failed">Falha ao instalar chaves (keys)</string>
|
||||
<string name="keys_install_success">Chaves (keys) instaladas com sucesso</string>
|
||||
@@ -676,7 +678,6 @@ uma tentativa de mapeamento automático</string>
|
||||
<string name="copy_details">Copiar detalhes</string>
|
||||
<string name="add_ons">Add-ons</string>
|
||||
<string name="add_ons_description">Gerencie mods, atualizações e DLC</string>
|
||||
<string name="playtime">Tempo de Jogo:</string>
|
||||
<string name="reset_playtime">Limpar Tempo de Jogo</string>
|
||||
<string name="reset_playtime_description">Resetar o contador de tempo do jogo atual</string>
|
||||
<string name="reset_playtime_warning_description">Isso vai resetar os dados do contador de tempo do jogo atual. Tem certeza\?</string>
|
||||
@@ -795,7 +796,6 @@ uma tentativa de mapeamento automático</string>
|
||||
<string name="unlock_drawer">Desbloquear este menu</string>
|
||||
<string name="reset">Redefinir</string>
|
||||
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">Teclado do software</string>
|
||||
|
||||
@@ -963,6 +963,9 @@ uma tentativa de mapeamento automático</string>
|
||||
<string name="change_app_theme">Mudar o tema do aplicativo</string>
|
||||
<string name="theme_default">Padrão</string>
|
||||
<string name="theme_material_you">Material You</string>
|
||||
<string name="app_settings">Configurações do App</string>
|
||||
<string name="theme_and_color">Tema e Cores</string>
|
||||
|
||||
<!-- Theme Modes -->
|
||||
<string name="change_theme_mode">Alterar o tema</string>
|
||||
<string name="theme_mode_follow_system">Igual ao Sistema</string>
|
||||
|
||||
@@ -334,9 +334,6 @@
|
||||
<string name="firmware_uninstalling">A desinstalar firmware...</string>
|
||||
<string name="firmware_uninstalled_success">Firmware desinstalado com sucesso</string>
|
||||
|
||||
<string name="error_firmware_missing">É necessário firmware para executar alguns jogos e aplicações. O Eden só funciona com firmware 19.0.1 ou anterior.</string>
|
||||
<string name="error_firmware_corrupted">Firmware está presente mas não pode ser lido. Verifique chaves de descriptografia e volte a fazer dump do firmware se necessário.</string>
|
||||
<string name="error_firmware_too_new">Firmware é demasiado recente ou ilegível. O Eden só funciona com firmware 19.0.1 ou anterior.</string>
|
||||
|
||||
<string name="keys_failed">Falha ao instalar chaves</string>
|
||||
<string name="keys_install_success">Chaves instaladas com sucesso</string>
|
||||
|
||||
@@ -240,6 +240,7 @@
|
||||
<string name="keys_description">Выберите ваш файл <b>prod.keys</b> с помощью кнопки ниже.</string>
|
||||
<string name="select_keys">Выбрать ключи</string>
|
||||
<string name="firmware">Прошивка</string>
|
||||
<string name="firmware_description">Выберете свой <b>firmware.zip</b>файл с кнопкой внизу.</string>
|
||||
<string name="select_firmware">Выбрать прошивку</string>
|
||||
<string name="games">Игры</string>
|
||||
<string name="games_description">Выберите вашу папку с <b>играми</b> с помощью кнопки ниже.</string>
|
||||
@@ -262,6 +263,9 @@
|
||||
<string name="folder">Папка</string>
|
||||
<string name="dont_show_again">Не показывать снова</string>
|
||||
<string name="add_directory_success">Новый каталог игр успешно добавлен</string>
|
||||
<string name="enable_update_checks">Проверять наличия обновлений при запуске приложения.</string>
|
||||
<string name="update_available">Обновление доступно</string>
|
||||
<string name="update_available_description">Новая версия приложения доступна:%1$s\n\nНе хотите ли вы скачать его\?</string>
|
||||
<string name="home_search">Поиск</string>
|
||||
<string name="home_settings">Настройки</string>
|
||||
<string name="empty_gamelist">Не найдены файлы или еще не выбрана папка с играми.</string>
|
||||
@@ -304,6 +308,7 @@
|
||||
<string name="search_recently_added">Недавно добавлено</string>
|
||||
<string name="open_user_folder">Открыть папку Eden</string>
|
||||
<string name="open_user_folder_description">Управление внутренними файлами Eden</string>
|
||||
<string name="app_settings_description">Изменяет поведение и внешний вид приложения</string>
|
||||
<string name="no_file_manager">Не найден файловый менеджер</string>
|
||||
<string name="notification_no_directory_link">Не удалось открыть папку Eden</string>
|
||||
<string name="notification_no_directory_link_description">Пожалуйста, найдите папку пользователя с помощью боковой панели файлового менеджера вручную.</string>
|
||||
@@ -370,9 +375,6 @@
|
||||
<string name="firmware_uninstalling">Удаление прошивки...</string>
|
||||
<string name="firmware_uninstalled_success">Прошивка успешно удалена</string>
|
||||
|
||||
<string name="error_firmware_missing">Для запуска некоторых игр и системных апплетов требуется прошивка. Eden работает только с прошивкой версии 19.0.1 и ниже.</string>
|
||||
<string name="error_firmware_corrupted">Прошивка обнаружена, но не может быть прочитана. Проверьте наличие ключей дешифрования и при необходимости пересохраните прошивку.</string>
|
||||
<string name="error_firmware_too_new">Прошивка слишком новая или не может быть прочитана. Eden работает только с прошивкой версии 19.0.1 и ниже.</string>
|
||||
|
||||
<string name="keys_failed">Ошибка установки ключей</string>
|
||||
<string name="keys_install_success">Ключи успешно установлены</string>
|
||||
@@ -611,6 +613,7 @@
|
||||
<string name="fetch">Получить</string>
|
||||
<string name="delete">Удалить</string>
|
||||
<string name="edit">Редактировать</string>
|
||||
<string name="import_success">Успешно импортировано</string>
|
||||
<string name="export_success">Экспорт успешно выполнен</string>
|
||||
<string name="start">Запуск</string>
|
||||
<string name="global">Глобальный</string>
|
||||
@@ -676,6 +679,17 @@
|
||||
<string name="copy_details">Копировать детали</string>
|
||||
<string name="add_ons">Дополнения</string>
|
||||
<string name="add_ons_description">Включение модов, обновлений и DLC</string>
|
||||
<string name="reset_playtime">Очистить игровое время</string>
|
||||
<string name="reset_playtime_description">Сбрасывает игровое время текущей игры обратно до 0 секунд</string>
|
||||
<string name="reset_playtime_warning_description">Это очистит данные о игровом времени текущей игры. Вы уверены\?</string>
|
||||
<string name="playtime_reset_successfully">Игровое время было сброшено</string>
|
||||
<string name="edit_playtime">Изменить игровое время</string>
|
||||
<string name="hours">Часы</string>
|
||||
<string name="minutes">Минуты</string>
|
||||
<string name="hours_must_be_between_0_and_9999">Количество часов должно быть от 0 до 9999</string>
|
||||
<string name="minutes_must_be_between_0_and_59">Количество минут должно быть от 0 до 59</string>
|
||||
<string name="seconds_must_be_between_0_and_59">Количество секунд должно быть от 0 до 59</string>
|
||||
<string name="playtime_updated_successfully">Игровое время было обновлено</string>
|
||||
<string name="clear_shader_cache">Очистить кэш шейдеров</string>
|
||||
<string name="clear_shader_cache_description">Удаляет все шейдеры, созданные во время игры.</string>
|
||||
<string name="clear_shader_cache_warning_description">У вас будет больше лагов во время повторной генерации кэша шейдеров</string>
|
||||
@@ -710,6 +724,11 @@
|
||||
<string name="verify_no_result">Проверка целостности не может быть выполнена</string>
|
||||
<string name="verify_no_result_description">Файл не проверялся на корректность</string>
|
||||
<string name="verification_failed_for">Проверку не удалась для следующих файлов:\n%1$s</string>
|
||||
<string name="share_game_settings">Поделиться конфигом</string>
|
||||
<string name="import_config">Импортировать конфиг</string>
|
||||
<string name="export_config">Экспортировать конфиг</string>
|
||||
<string name="share_config_failed">Не удалось Поделиться конфигом</string>
|
||||
|
||||
<!-- ROM loading errors -->
|
||||
<string name="loader_error_encrypted">Ваш ROM зашифрованный</string>
|
||||
<string name="loader_error_encrypted_roms_description"><![CDATA[Пожалуйста, следуйте инструкциям по пересохранению <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-physical-titles-game-cards\">игровых картриджей</a> или <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-digital-titles-eshop\">установленных игр</a>.]]></string>
|
||||
@@ -778,7 +797,6 @@
|
||||
<string name="unlock_drawer">Разморозить док</string>
|
||||
<string name="reset">Сброс</string>
|
||||
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">Виртуальная клавиатура</string>
|
||||
|
||||
@@ -874,6 +892,7 @@
|
||||
<string name="resolution_half">0.5X (360p/540p)</string>
|
||||
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
|
||||
<string name="resolution_one">1X (720p/1080p)</string>
|
||||
<string name="resolution_five_quarter">1.25X (900p/1350p)</string>
|
||||
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
|
||||
<string name="resolution_two">2X (1440p/2160p) (Медленно)</string>
|
||||
<string name="resolution_three">3X (2160p/3240p) (Медленно)</string>
|
||||
@@ -895,6 +914,11 @@
|
||||
<string name="scaling_filter_scale_force">ScaleForce</string>
|
||||
<string name="scaling_filter_fsr">AMD FidelityFX™️ Super Resolution</string>
|
||||
<string name="scaling_filter_area">Зона</string>
|
||||
<string name="scaling_filter_zero_tangent">Zero-Tangent</string>
|
||||
<string name="scaling_filter_bspline">B-Spline</string>
|
||||
<string name="scaling_filter_mitchell">Mitchell</string>
|
||||
<string name="scaling_filter_mmpx">MMPX</string>
|
||||
|
||||
<!-- Anti-Aliasing -->
|
||||
<string name="anti_aliasing_none">Выкл.</string>
|
||||
<string name="anti_aliasing_fxaa">FXAA</string>
|
||||
@@ -924,6 +948,8 @@
|
||||
<string name="cpu_accuracy_accurate">Точно</string>
|
||||
<string name="cpu_accuracy_unsafe">Небезопасно</string>
|
||||
<string name="cpu_accuracy_paranoid">Параноик</string>
|
||||
<string name="cpu_accuracy_debugging">Отладка</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">Крестовина</string>
|
||||
<string name="gamepad_left_stick">Левый стик</string>
|
||||
@@ -938,6 +964,9 @@
|
||||
<string name="change_app_theme">Сменить тему</string>
|
||||
<string name="theme_default">По умолчанию</string>
|
||||
<string name="theme_material_you">Material You</string>
|
||||
<string name="app_settings">Настройки приложения</string>
|
||||
<string name="theme_and_color">Тема и цвет</string>
|
||||
|
||||
<!-- Theme Modes -->
|
||||
<string name="change_theme_mode">Сменить режим темы</string>
|
||||
<string name="theme_mode_follow_system">Системная</string>
|
||||
|
||||
@@ -334,9 +334,6 @@
|
||||
<string name="firmware_uninstalling">Деинсталирање фирмвера</string>
|
||||
<string name="firmware_uninstalled_success">Фирмваре је успешно деинсталирано</string>
|
||||
|
||||
<string name="error_firmware_missing">Firmware је потребан за покретање одређених игара и апликација. Eden ради само са firmware-ом 19.0.1 или старијим.</string>
|
||||
<string name="error_firmware_corrupted">Firmware је присутан али се не може прочитати. Проверите кључеве за дешифровање и поново направите firmware дамп ако је потребно.</string>
|
||||
<string name="error_firmware_too_new">Firmware је превише нов или се не може прочитати. Eden ради само са firmware-ом 19.0.1 или старијим.</string>
|
||||
|
||||
<string name="keys_failed">Неуспела инсталација кључева</string>
|
||||
<string name="keys_install_success">Кључеви успешно инсталирани</string>
|
||||
|
||||
@@ -240,6 +240,7 @@
|
||||
<string name="keys_description">Виберіть ваш файл <b>prod.keys</b> за допомогою кнопки нижче.</string>
|
||||
<string name="select_keys">Вибрати ключі</string>
|
||||
<string name="firmware">Прошивка</string>
|
||||
<string name="firmware_description">Виберіть файл <b>firmware.zip</b> за допомогою кнопки нижче.</string>
|
||||
<string name="select_firmware">Вибрати прошивку</string>
|
||||
<string name="games">Ігри</string>
|
||||
<string name="games_description">Виберіть вашу теку з <b>іграми</b> за допомогою кнопки нижче.</string>
|
||||
@@ -262,6 +263,9 @@
|
||||
<string name="folder">Тека</string>
|
||||
<string name="dont_show_again">Більше не показувати</string>
|
||||
<string name="add_directory_success">Нову теку з іграми успішно додано</string>
|
||||
<string name="enable_update_checks">Перевіряти оновлення при запуску застосунку.</string>
|
||||
<string name="update_available">Доступне оновлення</string>
|
||||
<string name="update_available_description">Доступна нова версія: %1$s\n\nХочете її завантажити\?</string>
|
||||
<string name="home_search">Пошук</string>
|
||||
<string name="home_settings">Налаштування</string>
|
||||
<string name="empty_gamelist">Не знайдено файлів або ще не вибрано теку з іграми.</string>
|
||||
@@ -304,6 +308,7 @@
|
||||
<string name="search_recently_added">Нещодавно додано</string>
|
||||
<string name="open_user_folder">Відкрити теку Eden</string>
|
||||
<string name="open_user_folder_description">Керування внутрішніми файлами Eden</string>
|
||||
<string name="app_settings_description">Змінити зовнішній вигляд і поведінку застосунку</string>
|
||||
<string name="no_file_manager">Не знайдено файлового менеджера</string>
|
||||
<string name="notification_no_directory_link">Не вдалося відкрити теку Eden</string>
|
||||
<string name="notification_no_directory_link_description">Будь ласка, знайдіть теку користувача за допомогою бічної панелі файлового менеджера вручну.</string>
|
||||
@@ -370,9 +375,6 @@
|
||||
<string name="firmware_uninstalling">Видалення прошивки...</string>
|
||||
<string name="firmware_uninstalled_success">Прошивку успішно видалено</string>
|
||||
|
||||
<string name="error_firmware_missing">Для запуску деяких ігор та системних аплетів потрібна прошивка. Eden працює лише з прошивкою 19.0.1 або старішою.</string>
|
||||
<string name="error_firmware_corrupted">Прошивка є, але не може бути прочитана. Перевірте ключі дешифрування та повторно зробіть дамп прошивки за необхідності.</string>
|
||||
<string name="error_firmware_too_new">Прошивка занадто нова або нечитабельна. Eden працює лише з прошивкою 19.0.1 або старішою.</string>
|
||||
|
||||
<string name="keys_failed">Не вдалося встановити ключі</string>
|
||||
<string name="keys_install_success">Ключі успішно встановлено</string>
|
||||
@@ -677,7 +679,6 @@
|
||||
<string name="copy_details">Копіювати подробиці</string>
|
||||
<string name="add_ons">Доповнення</string>
|
||||
<string name="add_ons_description">Перемикати моди, оновлення та доповнення</string>
|
||||
<string name="playtime">Награний час:</string>
|
||||
<string name="reset_playtime">Очистити награний час</string>
|
||||
<string name="reset_playtime_description">Скинути награний час поточної гри до 0 секунд</string>
|
||||
<string name="reset_playtime_warning_description">Це очистить дані про награний час поточної гри. Ви впевнені\?</string>
|
||||
@@ -796,7 +797,6 @@
|
||||
<string name="unlock_drawer">Розблокувати панель</string>
|
||||
<string name="reset">Скинути</string>
|
||||
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">Програмна клавіатура</string>
|
||||
|
||||
@@ -964,6 +964,9 @@
|
||||
<string name="change_app_theme">Змінити тему</string>
|
||||
<string name="theme_default">За замовчуванням</string>
|
||||
<string name="theme_material_you">Material You</string>
|
||||
<string name="app_settings">Налаштування застосунку</string>
|
||||
<string name="theme_and_color">Тема і колір</string>
|
||||
|
||||
<!-- Theme Modes -->
|
||||
<string name="change_theme_mode">Змінити режим теми</string>
|
||||
<string name="theme_mode_follow_system">Системна</string>
|
||||
|
||||
@@ -320,9 +320,6 @@
|
||||
<string name="firmware_uninstalling">Đang gỡ cài đặt firmware...</string>
|
||||
<string name="firmware_uninstalled_success">Gỡ cài đặt firmware thành công</string>
|
||||
|
||||
<string name="error_firmware_missing">Firmware là cần thiết để chạy một số trò chơi và ứng dụng. Eden chỉ hoạt động với firmware 19.0.1 trở về trước.</string>
|
||||
<string name="error_firmware_corrupted">Firmware được báo cáo là có nhưng không thể đọc được. Kiểm tra khóa giải mã và dump lại firmware nếu cần.</string>
|
||||
<string name="error_firmware_too_new">Firmware quá mới hoặc không thể đọc. Eden chỉ hoạt động với firmware 19.0.1 trở về trước.</string>
|
||||
|
||||
<string name="keys_failed">Không thể cài đặt khóa</string>
|
||||
<string name="keys_install_success">Đã cài đặt khóa thành công</string>
|
||||
|
||||
@@ -7,6 +7,25 @@
|
||||
<string name="notification_permission_not_granted">未授予通知权限!</string>
|
||||
<string name="app_notification_channel_description">Eden模拟器通知</string>
|
||||
<string name="app_notification_running">Eden正在运行</string>
|
||||
<string name="seconds">秒</string>
|
||||
|
||||
<!-- Spinbox strings -->
|
||||
<string name="increment">增加</string>
|
||||
<string name="decrement">减少</string>
|
||||
<string name="value_too_low">值必须最小为 %1$d</string>
|
||||
<string name="value_too_high">值最大必须为 %1$d</string>
|
||||
<string name="invalid_value">无效的值</string>
|
||||
|
||||
|
||||
<!-- Input Overlay -->
|
||||
<string name="overlay_auto_hide">自动隐藏虚拟按键</string>
|
||||
<string name="overlay_auto_hide_description">在指定的时间间隔后自动隐藏触摸控制覆盖层。</string>
|
||||
<string name="enable_input_overlay_auto_hide">开启自动隐藏虚拟按键</string>
|
||||
|
||||
<string name="input_overlay_options">虚拟按键输入</string>
|
||||
<string name="input_overlay_options_description">配置虚拟按键</string>
|
||||
|
||||
|
||||
<!-- Stats Overlay settings -->
|
||||
<string name="enhanced_fps_suffix">(增强)</string>
|
||||
<string name="process_ram">进程内存: %1$d MB</string>
|
||||
@@ -221,10 +240,12 @@
|
||||
<string name="keys_description">使用下方的按钮来选择你的 <b>prod.keys</b> 文件。</string>
|
||||
<string name="select_keys">选择密钥文件</string>
|
||||
<string name="firmware">固件</string>
|
||||
<string name="firmware_description">请使用下面的按钮选择您的 <b>firmware.zip</b> 文件。</string>
|
||||
<string name="select_firmware">选择固件</string>
|
||||
<string name="games">游戏</string>
|
||||
<string name="games_description">使用下方的按钮选择你的<b>游戏</b>文件夹。</string>
|
||||
<string name="done">完成</string>
|
||||
<string name="done_description">你完成了全部设置。\n玩的开心!</string>
|
||||
<string name="text_continue">继续</string>
|
||||
<string name="next">下一步</string>
|
||||
<string name="back">上一步</string>
|
||||
@@ -236,10 +257,15 @@
|
||||
<string name="alphabetical">字母顺序</string>
|
||||
<string name="view_list">列表</string>
|
||||
<string name="view_grid">网格</string>
|
||||
<string name="view_grid_compact">紧凑网格</string>
|
||||
<string name="view_carousel">轮播</string>
|
||||
<string name="game_image_desc">为 %1$s 截图</string>
|
||||
<string name="folder">文件夹</string>
|
||||
<string name="dont_show_again">不再显示</string>
|
||||
<string name="add_directory_success">游戏目录新增成功</string>
|
||||
<string name="enable_update_checks">在 app 启动时检查更新。</string>
|
||||
<string name="update_available">有可用更新</string>
|
||||
<string name="update_available_description">有一个新版本可用: %1$s\n\n您要下载它吗\?</string>
|
||||
<string name="home_search">搜索</string>
|
||||
<string name="home_settings">设置</string>
|
||||
<string name="empty_gamelist">找不到游戏,或者尚未选择游戏文件夹。</string>
|
||||
@@ -247,14 +273,17 @@
|
||||
<string name="select_games_folder_description">允许 Eden 更新游戏列表</string>
|
||||
<string name="add_games_warning">跳过选择游戏文件夹?</string>
|
||||
<string name="add_games_warning_description">如果未选择游戏文件夹,游戏将不会显示在游戏列表中。</string>
|
||||
<string name="add_games_warning_help">https://yuzu-mirror.github.io/help/quickstart/#dumping-games</string>
|
||||
<string name="home_search_games">搜索游戏</string>
|
||||
<string name="search_settings">搜索设置</string>
|
||||
<string name="install_prod_keys">安装 prod.keys 文件</string>
|
||||
<string name="install_prod_keys_description">需要密钥文件来解密游戏</string>
|
||||
<string name="install_prod_keys_warning">跳过添加密钥文件?</string>
|
||||
<string name="install_prod_keys_warning_description">对于商业游戏,需要有效的密钥文件才能运行。如果没有密钥文件,将只能运行自制软件。</string>
|
||||
<string name="install_prod_keys_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
||||
<string name="install_firmware_warning">跳过添加固件?</string>
|
||||
<string name="install_firmware_warning_description">许多游戏需要访问固件才能正常运行。</string>
|
||||
<string name="install_firmware_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
||||
<string name="notifications">通知</string>
|
||||
<string name="notifications_description">使用下方的按钮授予通知权限。</string>
|
||||
<string name="give_permission">授予权限</string>
|
||||
@@ -279,6 +308,7 @@
|
||||
<string name="search_recently_added">最近添加</string>
|
||||
<string name="open_user_folder">打开 Eden 文件夹</string>
|
||||
<string name="open_user_folder_description">管理 Eden 内部文件</string>
|
||||
<string name="app_settings_description">更改 app 的外观</string>
|
||||
<string name="no_file_manager">找不到可用的文件管理器</string>
|
||||
<string name="notification_no_directory_link">无法打开 Eden 文件夹</string>
|
||||
<string name="notification_no_directory_link_description">请使用文件管理器侧边栏中的内部存储手动定位用户文件夹。</string>
|
||||
@@ -310,7 +340,9 @@
|
||||
<string name="install_game_content_success">游戏附加内容已成功安装</string>
|
||||
<string name="install_game_content_success_install">%1$d 个包安装成功</string>
|
||||
<string name="install_game_content_success_overwrite">%1$d 个包覆盖安装成功</string>
|
||||
<string name="install_game_content_help_link">https://yuzu-mirror.github.io/help/quickstart/#dumping-installed-updates</string>
|
||||
<string name="custom_driver_not_supported">不支持自定义驱动</string>
|
||||
<string name="custom_driver_not_supported_description">此设备不支持自定义驱动。\n请之后再访问此项,查看是否已为此设备添加支持。</string>
|
||||
<string name="manage_yuzu_data">管理 Eden 数据</string>
|
||||
<string name="manage_yuzu_data_description">导入/导出固件、密钥、用户数据以及其他</string>
|
||||
<string name="game_folders">游戏文件夹</string>
|
||||
@@ -330,14 +362,13 @@
|
||||
|
||||
<string name="keys_missing">密钥缺失</string>
|
||||
<string name="keys_missing_description">无法解密固件和商业游戏</string>
|
||||
<string name="keys_missing_help">https://yuzu-mirror.github.io/help/quickstart/#dumping-decryption-keys</string>
|
||||
|
||||
<string name="uninstall_firmware">卸载固件</string>
|
||||
<string name="uninstall_firmware_description">卸载固件将从设备中删除它并可能影响游戏兼容性。</string>
|
||||
<string name="firmware_uninstalling">正在卸载固件...</string>
|
||||
<string name="firmware_uninstalled_success">固件卸载成功</string>
|
||||
|
||||
<string name="error_firmware_missing">运行某些游戏和系统应用需要固件。Eden仅支持19.0.1及更早版本的固件。</string>
|
||||
<string name="error_firmware_corrupted">检测到固件存在但无法读取。请检查解密密钥并在必要时重新转储固件。</string>
|
||||
<string name="error_firmware_too_new">固件过新或无法读取。Eden仅支持19.0.1及更早版本的固件。</string>
|
||||
|
||||
<string name="keys_failed">密钥安装失败</string>
|
||||
<string name="keys_install_success">密钥安装成功</string>
|
||||
@@ -371,6 +402,7 @@
|
||||
<string name="about_app_description">一款开源的 Switch 模拟器</string>
|
||||
<string name="contributors">贡献者</string>
|
||||
<string name="contributors_description">Eden 团队的用 \u2764 制作</string>
|
||||
<string name="contributors_link">https://git.eden-emu.dev/eden-emu/eden/activity/contributors</string>
|
||||
<string name="licenses_description">Android 版 Eden 离不开这些项目的支持</string>
|
||||
<string name="build">构建版本</string>
|
||||
<string name="user_data">用户数据</string>
|
||||
@@ -575,6 +607,7 @@
|
||||
<string name="fetch">获取</string>
|
||||
<string name="delete">删除</string>
|
||||
<string name="edit">编辑</string>
|
||||
<string name="import_success">导入成功</string>
|
||||
<string name="export_success">导出成功</string>
|
||||
<string name="start">开始</string>
|
||||
<string name="global">全局</string>
|
||||
@@ -640,6 +673,17 @@
|
||||
<string name="copy_details">复制明细</string>
|
||||
<string name="add_ons">附加项</string>
|
||||
<string name="add_ons_description">管理 mod、游戏更新及 DLC</string>
|
||||
<string name="reset_playtime">清除游戏时间</string>
|
||||
<string name="reset_playtime_description">将当前游戏的游戏时间重置为 0 秒</string>
|
||||
<string name="reset_playtime_warning_description">者会讲出当前游戏的游戏时间数据。您确定吗\?</string>
|
||||
<string name="playtime_reset_successfully">已重置游戏时间</string>
|
||||
<string name="edit_playtime">编辑游戏时间</string>
|
||||
<string name="hours">小时</string>
|
||||
<string name="minutes">分钟</string>
|
||||
<string name="hours_must_be_between_0_and_9999">小时必须为 0 到 9999 之间</string>
|
||||
<string name="minutes_must_be_between_0_and_59">分钟必须为 0 到 59 之间</string>
|
||||
<string name="seconds_must_be_between_0_and_59">秒必须为 0 到 59 之间</string>
|
||||
<string name="playtime_updated_successfully">已成功更新游戏时间</string>
|
||||
<string name="clear_shader_cache">清除着色器缓存</string>
|
||||
<string name="clear_shader_cache_description">删除此游戏的所有着色器缓存</string>
|
||||
<string name="clear_shader_cache_warning_description">由于着色器缓存需要重新生成,您将遇到更多卡顿</string>
|
||||
@@ -663,6 +707,7 @@
|
||||
<string name="addon_installed_successfully">附加项安装成功</string>
|
||||
<string name="verifying_content">验证安装内容...</string>
|
||||
<string name="content_install_notice">安装提醒</string>
|
||||
<string name="content_install_notice_description">您选择安装的内容与此游戏不匹配。\n要继续安装吗?</string>
|
||||
<string name="confirm_uninstall">卸载确认</string>
|
||||
<string name="confirm_uninstall_description">您确定要卸载此附加项吗?</string>
|
||||
<string name="verify_integrity">完整性验证</string>
|
||||
@@ -672,6 +717,12 @@
|
||||
<string name="verify_failure_description">文件可能已经损坏</string>
|
||||
<string name="verify_no_result">无法执行完整性验证</string>
|
||||
<string name="verify_no_result_description">未检查文件的完整性</string>
|
||||
<string name="verification_failed_for">下列文件校验失败:\n%1$s</string>
|
||||
<string name="share_game_settings">共享配置</string>
|
||||
<string name="import_config">导入配置</string>
|
||||
<string name="export_config">导出配置</string>
|
||||
<string name="share_config_failed">共享配置文件失败</string>
|
||||
|
||||
<!-- ROM loading errors -->
|
||||
<string name="loader_error_encrypted">您的 ROM 已加密</string>
|
||||
<string name="loader_error_encrypted_roms_description"><![CDATA[请按照指南重新转储您的<a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-physical-titles-game-cards\">游戏卡带</a>或<a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-digital-titles-eshop\">数字版游戏</a>。]]></string>
|
||||
@@ -703,6 +754,7 @@
|
||||
<string name="config_write_failed">无法写入配置文件</string>
|
||||
<string name="config_apply_failed">无法应用配置</string>
|
||||
<string name="config_already_exists_title">配置已存在</string>
|
||||
<string name="config_already_exists_message">已存在 %1$s 的自定义设置。\n\n您要覆盖现存的配置文件吗\?\n\n此操作无法被撤销。</string>
|
||||
<string name="config_exists_prompt">正在检查现有配置...</string>
|
||||
<string name="overwrite_cancelled">覆盖已取消</string>
|
||||
<string name="overwrite">覆盖</string>
|
||||
@@ -712,6 +764,7 @@
|
||||
<string name="invalid_driver_file">无效的驱动程序文件: %s</string>
|
||||
<string name="network_unavailable">无可用网络连接。请检查您的互联网连接并重试。</string>
|
||||
<string name="driver_missing_title">需要GPU驱动程序</string>
|
||||
<string name="driver_missing_message">游戏配置所需的 GPU 驱动 \"%s\" 尚未安装到您的设备中。\n\n您要立即下载并安装吗\?</string>
|
||||
<string name="driver_download_cancelled">驱动程序下载已取消。没有所需的驱动程序无法启动游戏。</string>
|
||||
<string name="download">下载</string>
|
||||
|
||||
@@ -736,6 +789,8 @@
|
||||
<string name="touchscreen">触摸屏</string>
|
||||
<string name="lock_drawer">锁定侧边菜单</string>
|
||||
<string name="unlock_drawer">解锁侧边菜单</string>
|
||||
<string name="reset">重置</string>
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">软件键盘</string>
|
||||
|
||||
@@ -743,9 +798,11 @@
|
||||
<string name="abort_button">中止</string>
|
||||
<string name="continue_button">继续</string>
|
||||
<string name="system_archive_not_found">未找到系统档案</string>
|
||||
<string name="system_archive_not_found_message">%s 已丢失。请重新转储您的系统档案。\n继续模拟可能会导致崩溃。</string>
|
||||
<string name="system_archive_general">系统档案</string>
|
||||
<string name="save_load_error">保存/载入发生错误</string>
|
||||
<string name="fatal_error">致命错误</string>
|
||||
<string name="fatal_error_message">发生致命错误。请查阅日志获取详细信息。\n继续模拟可能会导致崩溃。</string>
|
||||
<string name="device_memory_inadequate">设备RAM:%1$s\n建议:%2$s</string>
|
||||
<string name="memory_formatted">%1$s%2$s</string>
|
||||
<string name="no_game_present">当前没有可启动的游戏!</string>
|
||||
@@ -829,6 +886,7 @@
|
||||
<string name="resolution_half">0.5X (360p/540p)</string>
|
||||
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
|
||||
<string name="resolution_one">1X (720p/1080p)</string>
|
||||
<string name="resolution_five_quarter">1.25X (900p/1350p)</string>
|
||||
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
|
||||
<string name="resolution_two">2X (1440p/2160p) (慢速)</string>
|
||||
<string name="resolution_three">3X (2160p/3240p) (慢速)</string>
|
||||
@@ -844,9 +902,17 @@
|
||||
<string name="scaling_filter_nearest_neighbor">近邻取样</string>
|
||||
<string name="scaling_filter_bilinear">双线性过滤</string>
|
||||
<string name="scaling_filter_bicubic">双三线过滤</string>
|
||||
<string name="scaling_filter_spline1">Spline-1</string>
|
||||
<string name="scaling_filter_gaussian">高斯模糊</string>
|
||||
<string name="scaling_filter_lanczos">Lanczos</string>
|
||||
<string name="scaling_filter_scale_force">强制缩放</string>
|
||||
<string name="scaling_filter_fsr">AMD FidelityFX™️ 超级分辨率锐画技术 (FSR)</string>
|
||||
<string name="scaling_filter_area">区域</string>
|
||||
<string name="scaling_filter_zero_tangent">零切线</string>
|
||||
<string name="scaling_filter_bspline">B-Spline</string>
|
||||
<string name="scaling_filter_mitchell">Mitchell</string>
|
||||
<string name="scaling_filter_mmpx">MMPX</string>
|
||||
|
||||
<!-- Anti-Aliasing -->
|
||||
<string name="anti_aliasing_none">无</string>
|
||||
<string name="anti_aliasing_fxaa">快速近似抗锯齿 (FXAA)</string>
|
||||
@@ -876,6 +942,8 @@
|
||||
<string name="cpu_accuracy_accurate">高精度</string>
|
||||
<string name="cpu_accuracy_unsafe">低精度</string>
|
||||
<string name="cpu_accuracy_paranoid">偏执模式</string>
|
||||
<string name="cpu_accuracy_debugging">调试</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">十字方向键</string>
|
||||
<string name="gamepad_left_stick">左摇杆</string>
|
||||
@@ -890,6 +958,9 @@
|
||||
<string name="change_app_theme">切换主题</string>
|
||||
<string name="theme_default">系统默认</string>
|
||||
<string name="theme_material_you">Material You</string>
|
||||
<string name="app_settings">App 设置</string>
|
||||
<string name="theme_and_color">主题与颜色</string>
|
||||
|
||||
<!-- Theme Modes -->
|
||||
<string name="change_theme_mode">更改主题模式</string>
|
||||
<string name="theme_mode_follow_system">跟随系统</string>
|
||||
@@ -912,6 +983,7 @@
|
||||
|
||||
<!-- Static Themes -->
|
||||
<string name="static_theme_color">主题颜色</string>
|
||||
<string name="eden_theme">Eden (默认)</string>
|
||||
<string name="violet">紫色(默认)</string>
|
||||
<string name="blue">蓝色</string>
|
||||
<string name="cyan">青色</string>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<string name="overlay_auto_hide_description">在未使用虛擬按鍵幾秒後自動隱藏</string>
|
||||
<string name="enable_input_overlay_auto_hide">啟用自動隱藏虛擬按鍵</string>
|
||||
|
||||
<string name="input_overlay_options">導入虛擬按鍵設定檔</string>
|
||||
<string name="input_overlay_options">虛擬按鍵設定</string>
|
||||
<string name="input_overlay_options_description">虛擬按鍵設定</string>
|
||||
|
||||
|
||||
@@ -116,16 +116,16 @@
|
||||
<string name="use_fast_cpu_time">快速 CPU 時間</string>
|
||||
<string name="use_fast_cpu_time_description">強制模擬 CPU 以更高的時脈運行,減少某些 FPS 限制。此選項不穩定,可能會導致問題,較弱的 CPU 可能會看到效能下降。</string>
|
||||
<string name="custom_cpu_ticks">自訂CPU時脈</string>
|
||||
<string name="custom_cpu_ticks_description">設定自訂的CPU時脈值。更高的值可能提高效能,但也可能導致遊戲卡死。建議範圍為77-21000。</string>
|
||||
<string name="custom_cpu_ticks_description">自訂CPU時脈。更高的值可能提高效能,但也可能導致遊戲卡死。建議範圍為77-21000。</string>
|
||||
<string name="cpu_ticks">時脈</string>
|
||||
<string name="skip_cpu_inner_invalidation">跳過CPU內部失效處理</string>
|
||||
<string name="skip_cpu_inner_invalidation_description">在記憶體更新期間跳過某些CPU端快取的失效處理,減少CPU使用率並提高其性能。可能會導致某些遊戲出現故障或崩潰。</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">啟用主機 MMU 模擬</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">此最佳化可加速來賓程式的記憶體存取。啟用後,來賓記憶體讀取/寫入將直接在記憶體中執行並利用主機的 MMU。停用此功能將強制所有記憶體存取使用軟體 MMU 模擬。</string>
|
||||
<string name="fast_cpu_time">CPU 時鐘</string>
|
||||
<string name="fast_cpu_time">CPU時脈</string>
|
||||
<string name="fast_cpu_time_description">使用 Boost (1700MHz) 以 Switch 的最高原生時脈運行,或 Fast (2000MHz) 以雙倍時脈運行。</string>
|
||||
<string name="memory_layout">記憶體佈局</string>
|
||||
<string name="memory_layout_description">(實驗性)更改模擬記憶體佈局。此設定不會提高效能,但可能有助於透過模組使用高解析度的遊戲。不要在 RAM 為 8GB 或更少的手機上使用。</string>
|
||||
<string name="memory_layout_description">(實驗性)更改模擬記憶體佈局。此設定不會提高效能,但可能有助於使用模組來提高解析度的遊戲的載入。不要在 RAM 為 8GB 或更少的手機上使用。若遊戲崩潰請將進階設定裡偵錯選項中的CPU後端改為 Dynarmic (JIT)</string>
|
||||
<string name="dma_accuracy">DMA 準確度</string>
|
||||
<string name="dma_accuracy_description">控制 DMA 準確度。安全準確度可以修復某些遊戲中的問題,但在某些情況下也可能影響效能。如果不確定,請保留為「預設」。</string>
|
||||
|
||||
@@ -240,6 +240,7 @@
|
||||
<string name="keys_description">使用下方的按鈕安裝您的 <b>prod.keys</b> 檔案。</string>
|
||||
<string name="select_keys">選擇金鑰</string>
|
||||
<string name="firmware">韌體</string>
|
||||
<string name="firmware_description">使用下方按鈕安裝您的<b>firmware.zip</b>檔案</string>
|
||||
<string name="select_firmware">選擇韌體</string>
|
||||
<string name="games">遊戲</string>
|
||||
<string name="games_description">使用下方的按鈕選擇您的<b>遊戲</b>資料夾。</string>
|
||||
@@ -262,6 +263,9 @@
|
||||
<string name="folder">資料夾</string>
|
||||
<string name="dont_show_again">不再顯示</string>
|
||||
<string name="add_directory_success">遊戲目錄新增成功</string>
|
||||
<string name="enable_update_checks">在Eden啟動時檢查更新</string>
|
||||
<string name="update_available">偵測到新版本</string>
|
||||
<string name="update_available_description">有更新可供安裝:%1$s\n\n您要進行更新嗎?</string>
|
||||
<string name="home_search">搜尋</string>
|
||||
<string name="home_settings">設定</string>
|
||||
<string name="empty_gamelist">找不到檔案,或者尚未選取遊戲目錄。</string>
|
||||
@@ -304,6 +308,7 @@
|
||||
<string name="search_recently_added">最近新增</string>
|
||||
<string name="open_user_folder">開啟 Eden 資料夾</string>
|
||||
<string name="open_user_folder_description">管理 Eden 的內部檔案</string>
|
||||
<string name="app_settings_description">自訂Eden的主題與外觀</string>
|
||||
<string name="no_file_manager">找不到檔案管理員</string>
|
||||
<string name="notification_no_directory_link">無法開啟 Eden 目錄</string>
|
||||
<string name="notification_no_directory_link_description">請使用檔案管理員的側邊面板手動定位到使用者資料夾。</string>
|
||||
@@ -364,9 +369,6 @@
|
||||
<string name="firmware_uninstalling">正在解除安裝韌體...</string>
|
||||
<string name="firmware_uninstalled_success">韌體解除安裝成功</string>
|
||||
|
||||
<string name="error_firmware_missing">執行某些遊戲和系統應用程式需要韌體。Eden僅支援19.0.1及更早版本的韌體。</string>
|
||||
<string name="error_firmware_corrupted">檢測到韌體存在但無法讀取。請檢查解密金鑰並在必要時重新轉儲韌體。</string>
|
||||
<string name="error_firmware_too_new">韌體過新或無法讀取。Eden僅支援19.0.1及更早版本的韌體。</string>
|
||||
|
||||
<string name="keys_failed">金鑰安裝失敗</string>
|
||||
<string name="keys_install_success">金鑰安裝成功</string>
|
||||
@@ -395,7 +397,7 @@
|
||||
<string name="cabinet_formatter">格式化程式</string>
|
||||
|
||||
<!-- About screen strings -->
|
||||
<string name="gaia_is_not_real">Gaia 不真實</string>
|
||||
<string name="gaia_is_not_real">Gaia不是真的</string>
|
||||
<string name="copied_to_clipboard">已複製到剪貼簿</string>
|
||||
<string name="about_app_description">一個開放原始碼的 Switch 模擬器</string>
|
||||
<string name="contributors">參與者</string>
|
||||
@@ -404,7 +406,7 @@
|
||||
<string name="licenses_description">這些專案使 Eden Android 版成為可能</string>
|
||||
<string name="build">組建</string>
|
||||
<string name="user_data">使用者資料</string>
|
||||
<string name="user_data_description">導入/導出所有應用程式資料。\n\n導入使用者資料時,現有的使用者資料將被取代!\n\n從 Citron 導入資料可能導致問題,建議手動導入所有所需資料。</string>
|
||||
<string name="user_data_description">導入/導出所有應用程式資料。\n\n導入使用者資料時,現有的使用者資料將被取代!\n\n直接從 Citron 導入資料可能會出現問題,建議手動導入所有所需資料。</string>
|
||||
<string name="exporting_user_data">正在導出使用者資料…</string>
|
||||
<string name="importing_user_data">正在導入使用者資料…</string>
|
||||
<string name="invalid_yuzu_backup">無效的 Eden 備份</string>
|
||||
@@ -521,7 +523,7 @@
|
||||
<string name="range">靈敏度</string>
|
||||
<string name="deadzone">無感帶</string>
|
||||
<string name="modifier">用按鈕、按鍵來模擬搖桿</string>
|
||||
<string name="modifier_range">修改以按鈕模擬左搖桿的值,視遊戲不同而有所差異\n(模擬左搖桿時,若將此數值設為50,則按下按鈕時遊戲裡的人物可能只會走動而不是奔跑,數值越高代表使用的模擬值越大)</string>
|
||||
<string name="modifier_range">修改按鈕模擬左/右搖桿的值,視遊戲不同而有所差異\n(模擬左搖桿時,若將此數值設為50,則按下按鈕時遊戲裡的人物可能只會走動而不是奔跑;模擬右搖桿時所使用的值則是會影響到轉視角的速度,數值越高代表使用的模擬值越大)</string>
|
||||
<string name="triggers">肩部按鍵</string>
|
||||
<string name="button_l">L</string>
|
||||
<string name="button_r">R</string>
|
||||
@@ -560,7 +562,7 @@
|
||||
<string name="toggle_axis">視角反轉</string>
|
||||
<string name="connected">已連線</string>
|
||||
<string name="use_system_vibrator">使用系統震動器</string>
|
||||
<string name="input_overlay">虛擬按鍵設定</string>
|
||||
<string name="input_overlay">導入虛擬按鍵設定檔</string>
|
||||
<string name="vibration">震動</string>
|
||||
<string name="vibration_strength">震動強度</string>
|
||||
<string name="profile">設定檔</string>
|
||||
@@ -671,7 +673,6 @@
|
||||
<string name="copy_details">複製詳細資料</string>
|
||||
<string name="add_ons">附加元件</string>
|
||||
<string name="add_ons_description">切換模組、更新及 DLC</string>
|
||||
<string name="playtime">遊玩時間:</string>
|
||||
<string name="reset_playtime">重設遊玩時間</string>
|
||||
<string name="reset_playtime_description">將此遊戲的遊玩時間重設為0</string>
|
||||
<string name="reset_playtime_warning_description">您確定要重設此遊戲的遊玩時間嗎?</string>
|
||||
@@ -784,13 +785,12 @@
|
||||
<string name="emulation_touch_overlay_edit">編輯虛擬按鍵</string>
|
||||
<string name="emulation_pause">暫停模擬</string>
|
||||
<string name="emulation_unpause">取消暫停模擬</string>
|
||||
<string name="emulation_input_overlay">虛擬按鍵選項</string>
|
||||
<string name="emulation_input_overlay">疊加層/虛擬按鍵設定</string>
|
||||
<string name="touchscreen">觸控螢幕</string>
|
||||
<string name="lock_drawer">鎖定側邊選單</string>
|
||||
<string name="unlock_drawer">解鎖側邊選單</string>
|
||||
<string name="reset">重設</string>
|
||||
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">軟體鍵盤</string>
|
||||
|
||||
@@ -958,6 +958,9 @@
|
||||
<string name="change_app_theme">變更應用程式主題</string>
|
||||
<string name="theme_default">預設</string>
|
||||
<string name="theme_material_you">質感設計3</string>
|
||||
<string name="app_settings">Eden外觀設定</string>
|
||||
<string name="theme_and_color">主題和顏色</string>
|
||||
|
||||
<!-- Theme Modes -->
|
||||
<string name="change_theme_mode">變更主題模式</string>
|
||||
<string name="theme_mode_follow_system">跟隨系統</string>
|
||||
|
||||
@@ -200,6 +200,7 @@
|
||||
<string name="multiplayer_chat">Chat</string>
|
||||
<string name="multiplayer_more_options">More Options</string>
|
||||
<string name="chat">Chat</string>
|
||||
<string name="clear">Clear</string>
|
||||
<string name="type_message">Type message…</string>
|
||||
<string name="send_message">Send Message</string>
|
||||
<string name="multiplayer_moderation">Moderation</string>
|
||||
@@ -376,9 +377,6 @@
|
||||
<string name="firmware_uninstalling">Uninstalling firmware</string>
|
||||
<string name="firmware_uninstalled_success">Firmware uninstalled successfully</string>
|
||||
|
||||
<string name="error_firmware_missing">Firmware is required to run certain games and use system applications. Eden only works with firmware 19.0.1 and earlier.</string>
|
||||
<string name="error_firmware_corrupted">Firmware reported as present, but was unable to be read. Check for decryption keys and redump firmware if necessary.</string>
|
||||
<string name="error_firmware_too_new">Firmware is too new or could not be read. Eden only works with firmware 19.0.1 and earlier.</string>
|
||||
|
||||
<string name="keys_failed">Failed to Install Keys</string>
|
||||
<string name="keys_install_success">Keys successfully installed</string>
|
||||
@@ -673,7 +671,6 @@
|
||||
<string name="preferences_controls">Controls</string>
|
||||
<string name="preferences_controls_description">Map controller input</string>
|
||||
<string name="preferences_player">Player %d</string>
|
||||
<string name="preferences_app_settings">App vSettings</string>
|
||||
<string name="preferences_debug">Debug</string>
|
||||
<string name="preferences_debug_description">CPU/GPU debugging, graphics API, fastmem</string>
|
||||
|
||||
@@ -690,7 +687,7 @@
|
||||
<string name="copy_details">Copy details</string>
|
||||
<string name="add_ons">Add-ons</string>
|
||||
<string name="add_ons_description">Toggle mods, updates and DLC</string>
|
||||
<string name="playtime">Playtime:</string>
|
||||
<string name="playtime">Playtime: </string>
|
||||
<string name="reset_playtime">Clear Playtime</string>
|
||||
<string name="reset_playtime_description">Reset the current game\'s playtime back to 0 seconds</string>
|
||||
<string name="reset_playtime_warning_description">This will clear the current game\'s playtime data. Are you sure?</string>
|
||||
@@ -804,11 +801,21 @@
|
||||
<string name="emulation_pause">Pause emulation</string>
|
||||
<string name="emulation_unpause">Unpause emulation</string>
|
||||
<string name="emulation_input_overlay">Overlay options</string>
|
||||
<string name="load_amiibo">Load Amiibo</string>
|
||||
<string name="touchscreen">Touchscreen</string>
|
||||
<string name="lock_drawer">Lock drawer</string>
|
||||
<string name="unlock_drawer">Unlock drawer</string>
|
||||
<string name="reset">Reset</string>
|
||||
|
||||
<!-- Amiibo -->
|
||||
<string name="amiibo_title">Amiibo</string>
|
||||
<string name="amiibo_removed_message">The current amiibo has been removed</string>
|
||||
<string name="amiibo_wrong_state">The current game is not looking for amiibo</string>
|
||||
<string name="amiibo_not_valid">The selected file is not a valid amiibo</string>
|
||||
<string name="amiibo_in_use">The selected file is already in use</string>
|
||||
<string name="amiibo_unknown_error">An unknown error occurred</string>
|
||||
<string name="amiibo_load_success">Amiibo loaded</string>
|
||||
|
||||
|
||||
<!-- Software keyboard -->
|
||||
<string name="software_keyboard">Software keyboard</string>
|
||||
|
||||