Compare commits
190 Commits
v0.0.4.test
...
showcase
| Author | SHA1 | Date | |
|---|---|---|---|
| 8c99f0c166 | |||
| 520e07e756 | |||
| 674f552ff1 | |||
| 75d9236520 | |||
| 89926bce0b | |||
| 6c1fc4b4ed | |||
| 311f06047b | |||
| 46df717f7c | |||
| dcf9483b0b | |||
| 2b828a9fee | |||
| 6fe1f86984 | |||
| af073f13cf | |||
| aea945b671 | |||
| c52fda760a | |||
| c168755c65 | |||
| 8a83cf0271 | |||
| 3db41fbce6 | |||
| 5e7fb6eead | |||
| bcc5390943 | |||
| a51d875d91 | |||
| 6134a57367 | |||
| c845b6086f | |||
| 31c168efe1 | |||
| 8bd87204f5 | |||
| e72a206aee | |||
| 6a62fa7ee3 | |||
| 52b630dfdc | |||
| 4860050358 | |||
| 47f0563c1b | |||
| b1208f03ee | |||
| 0fd603c094 | |||
| 1ca19af7fb | |||
| ddd78c3b37 | |||
| 2e68f8795d | |||
| d3595fd2b1 | |||
| 033531509b | |||
| b9954de1ca | |||
| 5f88deeebf | |||
| d25da944ed | |||
| ec274a855e | |||
| 8133d4a8b4 | |||
| 4f3e4bf9cb | |||
| ec9e0f37ea | |||
| b5f7735dba | |||
| 5f501d6ec0 | |||
| e820f304a5 | |||
| 3527a33430 | |||
| 3f226678dd | |||
| e9d84d098d | |||
| ee5565077c | |||
| 9085ff1229 | |||
| 6eff1779a2 | |||
| 3228cffd23 | |||
| 9d9530efe0 | |||
| aaaa7c7601 | |||
| 7f8a507b79 | |||
| c28ae059e8 | |||
| 7f1369f9a8 | |||
| 6b05c164a1 | |||
| a3f9d3b59c | |||
| b066a6ffa0 | |||
| a14cba7f11 | |||
| 2d85b70373 | |||
| aa8cc4da38 | |||
| baddaf0040 | |||
| 35b4e34e09 | |||
| b574e9c334 | |||
| d6b5a3e181 | |||
| a65a35432e | |||
| 6e575364eb | |||
| 71a1442ab6 | |||
| 32db6c1877 | |||
| 8eaa7c28ce | |||
| 3edfcabdea | |||
| 450c483de0 | |||
| 66db2613b5 | |||
| 9a046190c7 | |||
| cfbef5c487 | |||
| f51d61e4a4 | |||
| ba9e03a612 | |||
| 7832afc5dd | |||
| 028765867f | |||
| d89df63a28 | |||
| 87c4f658ce | |||
| b7584cb2c3 | |||
| f32f356c40 | |||
| 7ca657d22f | |||
| 7764cdd57e | |||
| 4a17762ed7 | |||
| 447c4de73d | |||
| cd2c4d8caf | |||
| ee64c945fb | |||
| eec5d48220 | |||
| 75cc43a57a | |||
| 0078094b86 | |||
| 3cd33fce44 | |||
| ccafe0ed91 | |||
| 94af9ff51f | |||
| d229fdca32 | |||
| e636e940ed | |||
| 2798174b00 | |||
| 46f2084114 | |||
| 42863027e2 | |||
| 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 |
@@ -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
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
name: tx-src
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
sources:
|
||||
runs-on: source
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Push New Sources
|
||||
run: |
|
||||
export PATH=/usr/lib/qt6/bin:$PATH
|
||||
./tools/translations/qt-source.sh
|
||||
tx-cli push -s
|
||||
@@ -0,0 +1,61 @@
|
||||
name: tx-pull
|
||||
|
||||
on:
|
||||
# monday, wednesday, saturday at 2pm
|
||||
schedule:
|
||||
cron:
|
||||
- '0 14 * * 1,3,6'
|
||||
|
||||
jobs:
|
||||
tx-update:
|
||||
runs-on: source
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Get New Translations
|
||||
run: tx-cli pull -t -f
|
||||
|
||||
- name: Push branch
|
||||
run: |
|
||||
git config --local user.name "Eden CI"
|
||||
git config --local user.email "ci@eden-emu.dev"
|
||||
git config --local user.signingkey "D57652791BB25D2A"
|
||||
git config --local push.autoSetupRemote true
|
||||
|
||||
git remote set-url origin ci:eden-emu/eden.git
|
||||
|
||||
TIMESTAMP=$(date +"%s")
|
||||
echo "TIMESTAMP=$TIMESTAMP" >> "$GITHUB_ENV"
|
||||
|
||||
git switch -c update-translations-$TIMESTAMP
|
||||
git add dist src/android/app/src/main/res
|
||||
|
||||
git commit -sS -m "[dist, android] Update translations from Transifex"
|
||||
git push
|
||||
|
||||
- name: Create PR
|
||||
run: |
|
||||
DATE=$(date +"%b %d")
|
||||
TITLE="[dist, android] Update translations from Transifex for $DATE"
|
||||
BODY="Automatic translation update for $DATE"
|
||||
BASE=master
|
||||
HEAD=update-translations-$TIMESTAMP
|
||||
|
||||
cat << EOF > data.json
|
||||
{
|
||||
"base": "$BASE",
|
||||
"body": "$BODY",
|
||||
"head": "$HEAD",
|
||||
"title": "$TITLE"
|
||||
}
|
||||
EOF
|
||||
|
||||
curl -X 'POST' \
|
||||
'https://git.eden-emu.dev/api/v1/repos/eden-emu/eden/pulls' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer ${{ secrets.CI_FJ_TOKEN }}' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d "@data.json" --fail
|
||||
|
||||
@@ -1,129 +0,0 @@
|
||||
From d765ebed3598ddfd7167fc546474626ac5ef9498 Mon Sep 17 00:00:00 2001
|
||||
From: Anthony Roberts <anthony.roberts@linaro.org>
|
||||
Date: Fri, 2 Aug 2024 16:55:57 +0100
|
||||
Subject: [PATCH] Add support for clang-cl on Windows (#633)
|
||||
|
||||
This commit adds support for clang-cl (clang, pretending to be MSVC) to
|
||||
SSE2NEON on Windows ARM64 platforms. This change is part of some Blender
|
||||
work, as using clang-cl provides a ~20-40% speedup compared to MSVC.
|
||||
|
||||
Compiled with the following command line (via a VS2022 Native ARM64 Tools
|
||||
CMD window):
|
||||
msbuild sse2neon.vcxproj /p:Configuration=Release /p:CLToolExe=clang-cl.exe
|
||||
/p:CLToolPath="C:\Program Files\LLVM\bin\"
|
||||
|
||||
Known failures in test suite:
|
||||
Test mm_cvttpd_epi32
|
||||
Test rdtsc
|
||||
|
||||
Co-authored-by: Anthony Roberts <anthony.roberts@linaro.org>
|
||||
---
|
||||
sse2neon.h | 22 +++++++++++-----------
|
||||
1 file changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/sse2neon.h b/sse2neon.h
|
||||
index 56254b5..76cf8e3 100644
|
||||
--- a/sse2neon.h
|
||||
+++ b/sse2neon.h
|
||||
@@ -180,7 +180,7 @@
|
||||
}
|
||||
|
||||
/* Compiler barrier */
|
||||
-#if defined(_MSC_VER)
|
||||
+#if defined(_MSC_VER) && !defined(__clang__)
|
||||
#define SSE2NEON_BARRIER() _ReadWriteBarrier()
|
||||
#else
|
||||
#define SSE2NEON_BARRIER() \
|
||||
@@ -856,7 +856,7 @@ FORCE_INLINE uint64x2_t _sse2neon_vmull_p64(uint64x1_t _a, uint64x1_t _b)
|
||||
{
|
||||
poly64_t a = vget_lane_p64(vreinterpret_p64_u64(_a), 0);
|
||||
poly64_t b = vget_lane_p64(vreinterpret_p64_u64(_b), 0);
|
||||
-#if defined(_MSC_VER)
|
||||
+#if defined(_MSC_VER) && !defined(__clang__)
|
||||
__n64 a1 = {a}, b1 = {b};
|
||||
return vreinterpretq_u64_p128(vmull_p64(a1, b1));
|
||||
#else
|
||||
@@ -1767,7 +1767,7 @@ FORCE_INLINE void _mm_free(void *addr)
|
||||
FORCE_INLINE uint64_t _sse2neon_get_fpcr(void)
|
||||
{
|
||||
uint64_t value;
|
||||
-#if defined(_MSC_VER)
|
||||
+#if defined(_MSC_VER) && !defined(__clang__)
|
||||
value = _ReadStatusReg(ARM64_FPCR);
|
||||
#else
|
||||
__asm__ __volatile__("mrs %0, FPCR" : "=r"(value)); /* read */
|
||||
@@ -1777,7 +1777,7 @@ FORCE_INLINE uint64_t _sse2neon_get_fpcr(void)
|
||||
|
||||
FORCE_INLINE void _sse2neon_set_fpcr(uint64_t value)
|
||||
{
|
||||
-#if defined(_MSC_VER)
|
||||
+#if defined(_MSC_VER) && !defined(__clang__)
|
||||
_WriteStatusReg(ARM64_FPCR, value);
|
||||
#else
|
||||
__asm__ __volatile__("msr FPCR, %0" ::"r"(value)); /* write */
|
||||
@@ -2246,7 +2246,7 @@ FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b)
|
||||
FORCE_INLINE void _mm_prefetch(char const *p, int i)
|
||||
{
|
||||
(void) i;
|
||||
-#if defined(_MSC_VER)
|
||||
+#if defined(_MSC_VER) && !defined(__clang__)
|
||||
switch (i) {
|
||||
case _MM_HINT_NTA:
|
||||
__prefetch2(p, 1);
|
||||
@@ -4817,7 +4817,7 @@ FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b)
|
||||
// https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#text=_mm_pause
|
||||
FORCE_INLINE void _mm_pause(void)
|
||||
{
|
||||
-#if defined(_MSC_VER)
|
||||
+#if defined(_MSC_VER) && !defined(__clang__)
|
||||
__isb(_ARM64_BARRIER_SY);
|
||||
#else
|
||||
__asm__ __volatile__("isb\n");
|
||||
@@ -5713,7 +5713,7 @@ FORCE_INLINE __m128d _mm_undefined_pd(void)
|
||||
#pragma GCC diagnostic ignored "-Wuninitialized"
|
||||
#endif
|
||||
__m128d a;
|
||||
-#if defined(_MSC_VER)
|
||||
+#if defined(_MSC_VER) && !defined(__clang__)
|
||||
a = _mm_setzero_pd();
|
||||
#endif
|
||||
return a;
|
||||
@@ -8127,7 +8127,7 @@ FORCE_INLINE int _sse2neon_sido_negative(int res, int lb, int imm8, int bound)
|
||||
|
||||
FORCE_INLINE int _sse2neon_clz(unsigned int x)
|
||||
{
|
||||
-#ifdef _MSC_VER
|
||||
+#if defined(_MSC_VER) && !defined(__clang__)
|
||||
unsigned long cnt = 0;
|
||||
if (_BitScanReverse(&cnt, x))
|
||||
return 31 - cnt;
|
||||
@@ -8139,7 +8139,7 @@ FORCE_INLINE int _sse2neon_clz(unsigned int x)
|
||||
|
||||
FORCE_INLINE int _sse2neon_ctz(unsigned int x)
|
||||
{
|
||||
-#ifdef _MSC_VER
|
||||
+#if defined(_MSC_VER) && !defined(__clang__)
|
||||
unsigned long cnt = 0;
|
||||
if (_BitScanForward(&cnt, x))
|
||||
return cnt;
|
||||
@@ -9055,7 +9055,7 @@ FORCE_INLINE __m128i _mm_aeskeygenassist_si128(__m128i a, const int rcon)
|
||||
// AESE does ShiftRows and SubBytes on A
|
||||
uint8x16_t u8 = vaeseq_u8(vreinterpretq_u8_m128i(a), vdupq_n_u8(0));
|
||||
|
||||
-#ifndef _MSC_VER
|
||||
+#if !defined(_MSC_VER) || defined(__clang__)
|
||||
uint8x16_t dest = {
|
||||
// Undo ShiftRows step from AESE and extract X1 and X3
|
||||
u8[0x4], u8[0x1], u8[0xE], u8[0xB], // SubBytes(X1)
|
||||
@@ -9242,7 +9242,7 @@ FORCE_INLINE uint64_t _rdtsc(void)
|
||||
* bits wide and it is attributed with the flag 'cap_user_time_short'
|
||||
* is true.
|
||||
*/
|
||||
-#if defined(_MSC_VER)
|
||||
+#if defined(_MSC_VER) && !defined(__clang__)
|
||||
val = _ReadStatusReg(ARM64_SYSREG(3, 3, 14, 0, 2));
|
||||
#else
|
||||
__asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(val));
|
||||
--
|
||||
2.48.1
|
||||
|
||||
@@ -13,12 +13,19 @@ 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")
|
||||
set(PLATFORM_LINUX ON)
|
||||
endif()
|
||||
|
||||
# dumb heuristic to detect msys2
|
||||
if (CMAKE_COMMAND MATCHES "msys64")
|
||||
set(PLATFORM_MSYS ON)
|
||||
endif()
|
||||
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(CXX_CLANG ON)
|
||||
if (MSVC)
|
||||
@@ -37,17 +44,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 +76,101 @@ 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()
|
||||
|
||||
# MSYS2 utilities
|
||||
if (PLATFORM_MSYS)
|
||||
include(FixMsysPaths)
|
||||
# really, really dumb heuristic to detect what environment we are in
|
||||
macro(system var)
|
||||
if (CMAKE_COMMAND MATCHES ${var})
|
||||
set(MSYSTEM ${var})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
system(mingw64)
|
||||
system(clang64)
|
||||
system(clangarm64)
|
||||
system(ucrt64)
|
||||
|
||||
if (NOT DEFINED MSYSTEM)
|
||||
set(MSYSTEM msys2)
|
||||
endif()
|
||||
|
||||
# we (generally) want to prioritize environment-specific binaries if possible
|
||||
# some, like autoconf, are not present on environments besides msys2 though
|
||||
set(CMAKE_PROGRAM_PATH C:/msys64/${MSYSTEM}/bin C:/msys64/usr/bin)
|
||||
set(ENV{PKG_CONFIG_PATH} C:/msys64/${MSYSTEM}/lib/pkgconfig)
|
||||
endif()
|
||||
|
||||
# static stuff
|
||||
option(YUZU_STATIC_BUILD "Use static libraries and executables if available" OFF)
|
||||
|
||||
if (YUZU_STATIC_BUILD)
|
||||
# lol
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
|
||||
## find .a libs first (static, usually)
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||
|
||||
## some libraries define a Library::Name_static alternative ##
|
||||
set(YUZU_STATIC_SUFFIX _static)
|
||||
|
||||
## some libraries use CMAKE_IMPORT_LIBRARY_SUFFIX e.g. Harfbuzz ##
|
||||
set(CMAKE_IMPORT_LIBRARY_SUFFIX ".a")
|
||||
|
||||
if (MINGW)
|
||||
# simple hook to reject dynamic libs
|
||||
function(find_library var)
|
||||
# also skip previously-found libraries cuz... yaknow
|
||||
if (${var})
|
||||
return()
|
||||
endif()
|
||||
|
||||
_find_library(${var} ${ARGN})
|
||||
if (${var})
|
||||
get_filename_component(lib_name "${${var}}" NAME)
|
||||
if (lib_name MATCHES "dll\\.a$")
|
||||
unset(${var} CACHE)
|
||||
set(${var} "${var}-NOTFOUND" CACHE INTERNAL "" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# msys2 quazip does not build a static lib
|
||||
set(QuaZip-Qt6_FORCE_BUNDLED ON)
|
||||
|
||||
set(YUZU_USE_BUNDLED_FFMPEG ON)
|
||||
set(YUZU_USE_BUNDLED_SDL2 ON)
|
||||
|
||||
set(HTTPLIB_USE_BROTLI_IF_AVAILABLE OFF)
|
||||
elseif(APPLE)
|
||||
# these libs do not properly provide static libs/let you do it with cmake
|
||||
set(YUZU_USE_CPM ON)
|
||||
|
||||
# IMPORTED_IMPLIB not set for imported target
|
||||
# TODO(crueter): wtf
|
||||
set(YUZU_USE_BUNDLED_FFMPEG ON)
|
||||
set(YUZU_USE_EXTERNAL_SDL2 ON)
|
||||
|
||||
set(fmt_FORCE_BUNDLED ON)
|
||||
set(SPIRV-Tools_FORCE_BUNDLED ON)
|
||||
set(SPIRV-Headers_FORCE_BUNDLED ON)
|
||||
set(zstd_FORCE_BUNDLED ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Detect current compilation architecture and create standard definitions
|
||||
@@ -92,12 +188,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 +207,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 +279,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,20 +299,17 @@ 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.
|
||||
# On Linux system SDL2 is likely to be lacking HIDAPI support which have drawbacks but is needed for SDL motion
|
||||
cmake_dependent_option(ENABLE_SDL2 "Enable the SDL2 frontend" ON "NOT ANDROID" OFF)
|
||||
|
||||
if (ENABLE_SDL2)
|
||||
# TODO(crueter): Cleanup, each dep that has a bundled option should allow to choose between bundled, external, system
|
||||
cmake_dependent_option(YUZU_USE_EXTERNAL_SDL2 "Compile external SDL2" OFF "NOT MSVC" OFF)
|
||||
option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MSVC}")
|
||||
endif()
|
||||
# TODO(crueter): Cleanup, each dep that has a bundled option should allow to choose between bundled, external, system
|
||||
cmake_dependent_option(YUZU_USE_EXTERNAL_SDL2 "Build SDL2 from external source" OFF "ENABLE_SDL2;NOT MSVC" OFF)
|
||||
cmake_dependent_option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MSVC}" "ENABLE_SDL2" OFF)
|
||||
|
||||
# qt stuff
|
||||
option(ENABLE_QT "Enable the Qt frontend" ON)
|
||||
@@ -183,8 +320,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)
|
||||
@@ -194,10 +330,14 @@ option(YUZU_USE_CPM "Use CPM to fetch system dependencies (fmt, boost, etc) if n
|
||||
|
||||
# ffmpeg
|
||||
option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT})
|
||||
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from source" "${PLATFORM_SUN}" "NOT WIN32 AND NOT ANDROID" OFF)
|
||||
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${PLATFORM_SUN}" "NOT WIN32 AND NOT ANDROID" OFF)
|
||||
|
||||
# sirit
|
||||
option(YUZU_USE_BUNDLED_SIRIT "Download bundled sirit" ${EXT_DEFAULT})
|
||||
set(BUNDLED_SIRIT_DEFAULT OFF)
|
||||
if ((MSVC AND NOT (CMAKE_BUILD_TYPE MATCHES "Debug|RelWithDebInfo") OR ANDROID))
|
||||
set(BUNDLED_SIRIT_DEFAULT ON)
|
||||
endif()
|
||||
option(YUZU_USE_BUNDLED_SIRIT "Download bundled sirit" ${BUNDLED_SIRIT_DEFAULT})
|
||||
|
||||
# Re-allow on FreeBSD once its on mainline ports
|
||||
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "WIN32 OR PLATFORM_LINUX OR APPLE" OFF)
|
||||
@@ -222,6 +362,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)
|
||||
@@ -231,7 +372,18 @@ if(USE_CCACHE)
|
||||
set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_BINARY})
|
||||
set(CMAKE_CXX_COMPILER_LAUNCHER ${CCACHE_BINARY})
|
||||
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()
|
||||
# Follow SCCache recommendations:
|
||||
# <https://github.com/mozilla/sccache/blob/main/README.md?plain=1#L144>
|
||||
if(WIN32)
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||
string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
||||
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||
string(REPLACE "/Zi" "/Z7" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -266,9 +418,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)
|
||||
@@ -302,13 +456,6 @@ if (ANDROID)
|
||||
set(CMAKE_POLICY_VERSION_MINIMUM 3.5) # Workaround for Oboe
|
||||
endif()
|
||||
|
||||
# We need to downgrade debug info (/Zi -> /Z7) to use an older but more cacheable format
|
||||
# See https://github.com/nanoant/CMakePCHCompiler/issues/21
|
||||
if(WIN32 AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||
endif()
|
||||
|
||||
# Default to a Release build
|
||||
get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||
if (NOT IS_MULTI_CONFIG AND NOT CMAKE_BUILD_TYPE)
|
||||
@@ -344,10 +491,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)
|
||||
@@ -377,6 +520,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")
|
||||
@@ -395,13 +540,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()
|
||||
@@ -527,11 +676,12 @@ else()
|
||||
find_package(stb MODULE)
|
||||
|
||||
find_package(Opus 1.3 MODULE REQUIRED)
|
||||
|
||||
find_package(ZLIB 1.2 REQUIRED)
|
||||
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,15 +729,15 @@ 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})
|
||||
# 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)
|
||||
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} winmm iphlpapi ws2_32 wlanapi)
|
||||
if (MINGW)
|
||||
# PSAPI is the Process Status API
|
||||
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version)
|
||||
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version crypt32 rpcrt4 gdi32 wldap32 mswsock)
|
||||
endif()
|
||||
elseif (PLATFORM_HAIKU)
|
||||
# Haiku is so special :)
|
||||
@@ -600,6 +750,8 @@ elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$")
|
||||
set(PLATFORM_LIBRARIES rt)
|
||||
endif()
|
||||
|
||||
message(STATUS "Platform Libraries: ${PLATFORM_LIBRARIES}")
|
||||
|
||||
add_subdirectory(externals)
|
||||
|
||||
# pass targets from externals
|
||||
@@ -611,9 +763,6 @@ find_package(VulkanUtilityLibraries)
|
||||
find_package(SimpleIni)
|
||||
find_package(SPIRV-Tools)
|
||||
find_package(sirit)
|
||||
if (ARCHITECTURE_arm64)
|
||||
find_package(sse2neon)
|
||||
endif()
|
||||
|
||||
if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
|
||||
find_package(xbyak)
|
||||
@@ -896,6 +1045,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
|
||||
|
||||
@@ -542,10 +542,11 @@ function(AddCIPackage)
|
||||
PACKAGE
|
||||
EXTENSION
|
||||
MIN_VERSION
|
||||
DISABLED_PLATFORMS
|
||||
)
|
||||
|
||||
cmake_parse_arguments(PKG_ARGS "" "${oneValueArgs}" "" ${ARGN})
|
||||
set(multiValueArgs DISABLED_PLATFORMS)
|
||||
|
||||
cmake_parse_arguments(PKG_ARGS "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
if(NOT DEFINED PKG_ARGS_VERSION)
|
||||
message(FATAL_ERROR "[CPMUtil] VERSION is required")
|
||||
@@ -594,6 +595,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
|
||||
|
||||
@@ -10,6 +13,10 @@ find_package_handle_standard_args(Opus
|
||||
VERSION_VAR OPUS_VERSION
|
||||
)
|
||||
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::OPUS)
|
||||
endif()
|
||||
|
||||
if (Opus_FOUND AND NOT TARGET Opus::opus)
|
||||
add_library(Opus::opus ALIAS PkgConfig::OPUS)
|
||||
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
|
||||
|
||||
@@ -10,6 +13,10 @@ find_package_handle_standard_args(SPIRV-Tools
|
||||
VERSION_VAR SPIRV-Tools_VERSION
|
||||
)
|
||||
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::SPIRV-Tools)
|
||||
endif()
|
||||
|
||||
if (SPIRV-Tools_FOUND AND NOT TARGET SPIRV-Tools::SPIRV-Tools)
|
||||
if (TARGET SPIRV-Tools)
|
||||
add_library(SPIRV-Tools::SPIRV-Tools ALIAS SPIRV-Tools)
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -11,6 +14,10 @@ find_package_handle_standard_args(enet
|
||||
VERSION_VAR ENET_VERSION
|
||||
)
|
||||
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::ENET)
|
||||
endif()
|
||||
|
||||
if (enet_FOUND AND NOT TARGET enet::enet)
|
||||
add_library(enet::enet ALIAS PkgConfig::ENET)
|
||||
endif()
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2022 Alexandre Bouvier <contact@amb.tf>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
@@ -11,6 +14,10 @@ find_package_handle_standard_args(libusb
|
||||
VERSION_VAR LIBUSB_VERSION
|
||||
)
|
||||
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::LIBUSB)
|
||||
endif()
|
||||
|
||||
if (libusb_FOUND AND NOT TARGET libusb::usb)
|
||||
add_library(libusb::usb ALIAS PkgConfig::LIBUSB)
|
||||
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
|
||||
|
||||
@@ -9,6 +12,11 @@ if (lz4_CONSIDERED_CONFIGS)
|
||||
else()
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(LZ4 QUIET IMPORTED_TARGET liblz4)
|
||||
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::LZ4)
|
||||
endif()
|
||||
|
||||
find_package_handle_standard_args(lz4
|
||||
REQUIRED_VARS LZ4_LINK_LIBRARIES
|
||||
VERSION_VAR LZ4_VERSION
|
||||
|
||||
@@ -1,24 +1,39 @@
|
||||
# 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
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(ZSTD QUIET IMPORTED_TARGET libzstd)
|
||||
find_package_handle_standard_args(zstd
|
||||
REQUIRED_VARS ZSTD_LINK_LIBRARIES
|
||||
VERSION_VAR ZSTD_VERSION
|
||||
)
|
||||
find_package(zstd QUIET CONFIG)
|
||||
if (zstd_CONSIDERED_CONFIGS)
|
||||
find_package_handle_standard_args(zstd CONFIG_MODE)
|
||||
else()
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(ZSTD QUIET IMPORTED_TARGET libzstd)
|
||||
find_package_handle_standard_args(zstd
|
||||
REQUIRED_VARS ZSTD_LINK_LIBRARIES
|
||||
VERSION_VAR ZSTD_VERSION
|
||||
)
|
||||
endif()
|
||||
|
||||
if (zstd_FOUND AND NOT TARGET zstd::zstd)
|
||||
if (TARGET zstd::libzstd_shared)
|
||||
if (TARGET zstd::libzstd_shared AND NOT YUZU_STATIC_BUILD)
|
||||
add_library(zstd::zstd ALIAS zstd::libzstd_shared)
|
||||
add_library(zstd::libzstd ALIAS zstd::libzstd_shared)
|
||||
elseif (TARGET zstd::libzstd_static)
|
||||
add_library(zstd::zstd ALIAS zstd::libzstd_static)
|
||||
add_library(zstd::libzstd ALIAS zstd::libzstd_static)
|
||||
else()
|
||||
add_library(zstd::zstd ALIAS PkgConfig::ZSTD)
|
||||
add_library(zstd::libzstd ALIAS PkgConfig::ZSTD)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
get_target_property(ZSTD_TARGET zstd::zstd ALIASED_TARGET)
|
||||
|
||||
if (NOT TARGET zstd::libzstd)
|
||||
if (ZSTD_TARGET)
|
||||
add_library(zstd::libzstd ALIAS ${ZSTD_TARGET})
|
||||
else()
|
||||
add_library(zstd::libzstd ALIAS zstd::zstd)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
function(FixMsysPath target)
|
||||
get_target_property(include_dir ${target} INTERFACE_INCLUDE_DIRECTORIES)
|
||||
|
||||
if (NOT (include_dir MATCHES "^/"))
|
||||
return()
|
||||
endif()
|
||||
|
||||
set(root_default $ENV{MSYS2_LOCATION})
|
||||
if (root_default STREQUAL "")
|
||||
set(root_default "C:/msys64")
|
||||
endif()
|
||||
|
||||
set(MSYS_ROOT_PATH ${root_default} CACHE STRING "Location of the MSYS2 root")
|
||||
|
||||
set(include_dir "C:/msys64${include_dir}")
|
||||
set_target_properties(${target} PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${include_dir})
|
||||
endfunction()
|
||||
@@ -1,58 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
set(MINGW_PREFIX /usr/x86_64-w64-mingw32/)
|
||||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX})
|
||||
set(SDL2_PATH ${MINGW_PREFIX})
|
||||
set(MINGW_TOOL_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-)
|
||||
|
||||
# Specify the cross compiler
|
||||
set(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}clang)
|
||||
set(CMAKE_CXX_COMPILER ${MINGW_TOOL_PREFIX}clang++)
|
||||
set(CMAKE_RC_COMPILER ${MINGW_TOOL_PREFIX}windres)
|
||||
set(CMAKE_C_COMPILER_AR ${MINGW_TOOL_PREFIX}ar)
|
||||
set(CMAKE_CXX_COMPILER_AR ${MINGW_TOOL_PREFIX}ar)
|
||||
set(CMAKE_C_COMPILER_RANLIB ${MINGW_TOOL_PREFIX}ranlib)
|
||||
set(CMAKE_CXX_COMPILER_RANLIB ${MINGW_TOOL_PREFIX}ranlib)
|
||||
|
||||
# Mingw tools
|
||||
set(STRIP ${MINGW_TOOL_PREFIX}strip)
|
||||
set(WINDRES ${MINGW_TOOL_PREFIX}windres)
|
||||
set(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config)
|
||||
|
||||
# ccache wrapper
|
||||
option(USE_CCACHE "Use ccache for compilation" OFF)
|
||||
if(USE_CCACHE)
|
||||
find_program(CCACHE ccache)
|
||||
if(CCACHE)
|
||||
message(STATUS "Using ccache 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 ccache found")
|
||||
endif(CCACHE)
|
||||
endif(USE_CCACHE)
|
||||
|
||||
# Search for programs in the build host directories
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
|
||||
# Echo modified cmake vars to screen for debugging purposes
|
||||
if(NOT DEFINED ENV{MINGW_DEBUG_INFO})
|
||||
message("")
|
||||
message("Custom cmake vars: (blank = system default)")
|
||||
message("-----------------------------------------")
|
||||
message("* CMAKE_C_COMPILER : ${CMAKE_C_COMPILER}")
|
||||
message("* CMAKE_CXX_COMPILER : ${CMAKE_CXX_COMPILER}")
|
||||
message("* CMAKE_RC_COMPILER : ${CMAKE_RC_COMPILER}")
|
||||
message("* WINDRES : ${WINDRES}")
|
||||
message("* ENV{PKG_CONFIG} : $ENV{PKG_CONFIG}")
|
||||
message("* STRIP : ${STRIP}")
|
||||
message("* USE_CCACHE : ${USE_CCACHE}")
|
||||
message("")
|
||||
# So that the debug info only appears once
|
||||
set(ENV{MINGW_DEBUG_INFO} SHOWN)
|
||||
endif()
|
||||
@@ -1,57 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2018 tech4me <guiwanglong@gmail.com>
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
set(MINGW_PREFIX /usr/x86_64-w64-mingw32/)
|
||||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
set(CMAKE_SYSTEM_PROCESSOR x86_64)
|
||||
# Actually a hack, w/o this will cause some strange errors
|
||||
set(CMAKE_HOST_WIN32 TRUE)
|
||||
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH ${MINGW_PREFIX})
|
||||
set(SDL2_PATH ${MINGW_PREFIX})
|
||||
set(MINGW_TOOL_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-)
|
||||
|
||||
# Specify the cross compiler
|
||||
set(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc)
|
||||
set(CMAKE_CXX_COMPILER ${MINGW_TOOL_PREFIX}g++)
|
||||
set(CMAKE_RC_COMPILER ${MINGW_TOOL_PREFIX}windres)
|
||||
|
||||
# Mingw tools
|
||||
set(STRIP ${MINGW_TOOL_PREFIX}strip)
|
||||
set(WINDRES ${MINGW_TOOL_PREFIX}windres)
|
||||
set(ENV{PKG_CONFIG} ${MINGW_TOOL_PREFIX}pkg-config)
|
||||
|
||||
# ccache wrapper
|
||||
option(USE_CCACHE "Use ccache for compilation" OFF)
|
||||
if(USE_CCACHE)
|
||||
find_program(CCACHE ccache)
|
||||
if(CCACHE)
|
||||
message(STATUS "Using ccache 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 ccache found")
|
||||
endif(CCACHE)
|
||||
endif(USE_CCACHE)
|
||||
|
||||
# Search for programs in the build host directories
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
|
||||
# Echo modified cmake vars to screen for debugging purposes
|
||||
if(NOT DEFINED ENV{MINGW_DEBUG_INFO})
|
||||
message("")
|
||||
message("Custom cmake vars: (blank = system default)")
|
||||
message("-----------------------------------------")
|
||||
message("* CMAKE_C_COMPILER : ${CMAKE_C_COMPILER}")
|
||||
message("* CMAKE_CXX_COMPILER : ${CMAKE_CXX_COMPILER}")
|
||||
message("* CMAKE_RC_COMPILER : ${CMAKE_RC_COMPILER}")
|
||||
message("* WINDRES : ${WINDRES}")
|
||||
message("* ENV{PKG_CONFIG} : $ENV{PKG_CONFIG}")
|
||||
message("* STRIP : ${STRIP}")
|
||||
message("* USE_CCACHE : ${USE_CCACHE}")
|
||||
message("")
|
||||
# So that the debug info only appears once
|
||||
set(ENV{MINGW_DEBUG_INFO} SHOWN)
|
||||
endif()
|
||||
@@ -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",
|
||||
|
||||
|
Before Width: | Height: | Size: 316 KiB After Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 4.9 MiB After Width: | Height: | Size: 37 KiB |
@@ -0,0 +1,9 @@
|
||||
# Icon variations
|
||||
|
||||
These icons are licensed under GPLv3. Please see the [script for generating icons](../../tools/README.md) and appropriatedly redirect for seasonal icons.
|
||||
|
||||
- `base_named.svg` - Named variant.
|
||||
- `base_small.svg`: Variant used for tiny icons (16x16, 64x64, etc).
|
||||
- `base.svg`: Variant without branding/naming.
|
||||
|
||||
Try to keep the icons simple. And preferably automatically be able to be generated (to reduce maintanaince burden). Additionally keep the files small (use `svgo` and `optipng`) to not clutter the git.
|
||||
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 37 KiB |
@@ -0,0 +1,80 @@
|
||||
<?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="base_small.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:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs7">
|
||||
<linearGradient
|
||||
id="linearGradient10"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
style="stop-color:#f977d9;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop10" />
|
||||
<stop
|
||||
style="stop-color:#a655d5;stop-opacity:1;"
|
||||
offset="0.54051435"
|
||||
id="stop13" />
|
||||
<stop
|
||||
style="stop-color:#984fd5;stop-opacity:1;"
|
||||
offset="0.5714342"
|
||||
id="stop12" />
|
||||
<stop
|
||||
style="stop-color:#8c4ad4;stop-opacity:1;"
|
||||
offset="0.59666741"
|
||||
id="stop14" />
|
||||
<stop
|
||||
style="stop-color:#3928d2;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop11" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient10"
|
||||
id="linearGradient11"
|
||||
x1="264.17508"
|
||||
y1="28.385544"
|
||||
x2="264.17508"
|
||||
y2="488.65109"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.97815818,0,0,0.97880258,4.570042,5.8799159)" />
|
||||
</defs>
|
||||
<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="0.88388348"
|
||||
inkscape:cx="153.30075"
|
||||
inkscape:cy="243.24473"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="849"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg7"
|
||||
showguides="false" />
|
||||
<path
|
||||
id="path9"
|
||||
style="fill:url(#linearGradient11);fill-opacity:1;stroke:none;stroke-width:13.3314;stroke-opacity:1;paint-order:stroke fill markers"
|
||||
d="M 262.97461 33.6875 A 218.44267 225.23091 0 0 0 138.83789 73.589844 L 141.13867 72.265625 L 161.2207 65.195312 L 181.01953 61.517578 L 204.35352 64.205078 L 228.96094 76.650391 L 265.80078 115 L 283 99.400391 L 304.59961 85.800781 L 331 76.400391 L 360.59961 69.599609 L 379.95508 69.208984 A 218.44267 225.23091 0 0 0 262.97461 33.6875 z M 380.07617 69.291016 L 350.19922 77.800781 L 329.19922 89.199219 L 307.40039 108 L 288.80078 129.80078 L 287.40039 135 L 302.40039 129.59961 L 319 127.80078 L 348.80078 131.80078 L 370.19922 141.40039 L 393 161.40039 L 399.59961 171.59961 L 374.80078 160.80078 L 338.40039 150.80078 L 309.19922 150 L 288.80078 154.40039 L 293.19922 155.19922 L 319.19922 168.80078 L 338 187.19922 L 350.80078 224 L 349.19922 260 L 326 222.80078 L 302.80078 194 L 277.59961 172.40039 L 269.19922 187.59961 L 256.80078 281.59961 L 258 364 L 278.40039 452.80078 L 297.19531 481.36914 A 218.44267 225.23091 0 0 0 481.41797 258.91797 A 218.44267 225.23091 0 0 0 380.07617 69.291016 z M 133.07422 77.839844 A 218.44267 225.23091 0 0 0 44.533203 258.91797 A 218.44267 225.23091 0 0 0 257.04102 484.06641 L 247.3457 458.62891 L 237.87109 418.18359 L 233.0625 380.42383 L 230.375 354.9668 L 229.95117 321.30859 L 232.35547 291.32812 L 237.44727 254.98242 L 254.55859 191.9082 L 261.62891 172.5332 L 255.54883 174.08984 L 240.98242 180.87695 L 229.59961 190.19922 L 210.59961 208.19922 L 197.40039 229.40039 L 186.40039 252.59961 L 173.40039 269 L 171.40039 253.19922 L 173.59961 229.40039 L 183 202.40039 L 199.40039 178 L 221.04102 153.44141 L 209.02148 155.70508 L 177.05859 162.77539 L 148.06836 171.40234 L 119.92578 183 L 120.63281 180.16992 L 129.82422 165.88672 L 151.17969 147.50195 L 172.95898 135.48242 L 190.07031 129.54102 L 209.02148 127.98633 L 227.6875 128.69336 L 247.76953 128.41016 L 246.49805 125.1582 L 226.69922 105.92383 L 219.62695 97.439453 L 221.4668 90.085938 L 206.75781 94.044922 L 195.86914 95.458984 L 179.46289 88.671875 L 156.12891 81.458984 L 133.07422 77.839844 z " />
|
||||
<path
|
||||
style="fill:#1b1b1b;fill-opacity:0.12492698;stroke:none;stroke-width:13.374;stroke-opacity:0.415999;paint-order:stroke fill markers"
|
||||
d="m 259.36665,490.16617 39.03323,-6.96642 -20,-30.4 -20.4,-88.8 -1.2,-82.4 12.4,-94 8.4,-15.2 25.2,21.6 23.2,28.8 23.2,37.2 1.6,-36 -12.8,-36.8 -18.8,-18.4 -26,-13.6 -4.4,-0.8 20.4,-4.4 29.2,0.8 36.4,10 24.8,10.8 -6.6,-10.2 -22.8,-20 -21.4,-9.6 -29.8,-4 -16.6,1.8 -15,5.4 1.4,-5.2 18.6,-21.8 21.8,-18.800003 21,-11.4 30.2,-8.6 -19.8,0.4 -29.6,6.8 -26.4,9.4 -21.6,13.6 -17.2,15.600003 -36.83882,-38.349628 -24.60732,-12.445079 -23.33452,-2.687006 -19.79899,3.676955 -20.08184,7.071068 -9.33381,5.374012 24.32448,3.818376 23.33452,7.212489 16.40488,6.788226 10.88944,-1.414214 14.70782,-3.959798 -1.83847,7.353911 7.07106,8.485288 19.79899,19.2333 1.2728,3.25269 -20.08184,0.28284 -18.66762,-0.7071 -18.95046,1.55563 -17.11198,5.9397 -21.77889,12.02081 -21.35462,18.38478 -9.19239,14.28356 -0.70711,2.82843 28.14285,-11.59656 28.99138,-8.6267 31.96122,-7.07107 12.02082,-2.26274 -21.64158,24.55783 -16.4,24.4 -9.4,27 -2.2,23.8 2,15.8 13,-16.4 11,-23.2 13.2,-21.2 19,-18 11.38199,-9.32209 14.5664,-6.78822 6.08112,-1.55564 -7.07107,19.37473 -17.11198,63.07393 -5.09117,36.34528 -2.40416,29.98133 0.42426,33.65828 2.68701,25.45585 4.80832,37.7595 9.47523,40.44651 z"
|
||||
id="path8-4" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.5 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 |
@@ -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,24 +1,28 @@
|
||||
# Caveats
|
||||
|
||||
<!-- TOC -->
|
||||
- [Arch Linux](#arch-linux)
|
||||
- [Gentoo Linux](#gentoo-linux)
|
||||
- [macOS](#macos)
|
||||
- [Solaris](#solaris)
|
||||
- [HaikuOS](#haikuos)
|
||||
- [OpenBSD](#openbsd)
|
||||
- [FreeBSD](#freebsd)
|
||||
- [NetBSD](#netbsd)
|
||||
- [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
|
||||
|
||||
@@ -26,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):
|
||||
@@ -70,7 +81,7 @@ Still will not run flawlessly until `mesa-24` is available. Modify CMakeCache.tx
|
||||
|
||||
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`.
|
||||
|
||||
@@ -102,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.
|
||||
|
||||
@@ -8,6 +8,8 @@ But for new developers you may find that following these guidelines will make ev
|
||||
|
||||
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`.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -72,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+
|
||||
@@ -90,11 +87,58 @@ Notes for writers: Include build tools as well, assume user has NOTHING installe
|
||||
|
||||
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.
|
||||
@@ -106,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.
|
||||
@@ -152,6 +196,7 @@ apk add g++ git cmake make mbedtls-dev mbedtls-static mesa-dev qt6-qtbase-dev qt
|
||||
`mbedtls-static` has to be specified otherwise `libeverest.a` and `libp256m.a` will fail to be found.
|
||||
|
||||
</details>
|
||||
<details>
|
||||
<summary>Void Linux</summary>
|
||||
|
||||
```sh
|
||||
@@ -161,6 +206,7 @@ xbps-install -Su git make cmake clang pkg-config patch mbedtls-devel SPIRV-Tools
|
||||
Yes, `nlohmann-json` is just named `json-c++`. Why?
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>NixOS</summary>
|
||||
|
||||
@@ -189,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.
|
||||
|
||||
@@ -214,18 +260,23 @@ 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).
|
||||
|
||||
@@ -237,43 +288,48 @@ Then install the libraries: `sudo pkg install qt6 boost glslang libzip library/l
|
||||
* Download and install all dependencies:
|
||||
```
|
||||
BASE="git make autoconf libtool automake-wrapper jq patch"
|
||||
MINGW="SDL2 cmake python-pip qt6-base toolchain ffmpeg boost catch fmt lz4 nlohmann-json openssl zlib zstd enet opus mbedtls vulkan-devel libusb vulkan-memory-allocator unordered_dense zydis clang ccache"
|
||||
|
||||
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 -Syu --needed --noconfirm $packages
|
||||
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.
|
||||
- Clang is installed as it generally works better here. You can compile with GCC just fine, however.
|
||||
- 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 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 zydis_devel libusb1_devel libz_devel glslang mbedtls3
|
||||
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
|
||||
|
||||
@@ -10,4 +10,4 @@ This contains documentation created by developers. This contains build instructi
|
||||
- **[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**.
|
||||
@@ -160,13 +160,6 @@ if (YUZU_USE_BUNDLED_SIRIT)
|
||||
AddJsonPackage(sirit-ci)
|
||||
else()
|
||||
AddJsonPackage(sirit)
|
||||
# Change to old-but-more-cacheable debug info on Windows
|
||||
if (WIN32 AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||
get_target_property(sirit_opts sirit COMPILE_OPTIONS)
|
||||
list(FILTER sirit_opts EXCLUDE REGEX "/Zi")
|
||||
list(APPEND sirit_opts "/Z7")
|
||||
set_target_properties(sirit PROPERTIES COMPILE_OPTIONS "${sirit_opts}")
|
||||
endif()
|
||||
if(MSVC AND CXX_CLANG)
|
||||
target_compile_options(siritobj PRIVATE -Wno-error=unused-command-line-argument)
|
||||
endif()
|
||||
@@ -219,7 +212,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,10 +392,3 @@ if (ANDROID)
|
||||
|
||||
add_library(oboe::oboe ALIAS oboe)
|
||||
endif()
|
||||
|
||||
# sse2neon
|
||||
if (ARCHITECTURE_arm64 AND NOT TARGET sse2neon)
|
||||
AddJsonPackage(sse2neon)
|
||||
add_library(sse2neon INTERFACE)
|
||||
target_include_directories(sse2neon INTERFACE ${sse2neon_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
@@ -23,7 +23,11 @@
|
||||
"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",
|
||||
@@ -213,14 +217,5 @@
|
||||
"key": "steamdeck",
|
||||
"bundled": true,
|
||||
"skip_updates": "true"
|
||||
},
|
||||
"sse2neon": {
|
||||
"repo": "DLTcollab/sse2neon",
|
||||
"sha": "66267b52fd",
|
||||
"hash": "3aed8676e1b8c428acb076464663e3968a721457b08710a7c5f8df2fbdaa5601053c1606169a55e987e7a58dd17e3cc3b7fbf953aa891c5ac5f8ce2941862e4b",
|
||||
"download_only": "true",
|
||||
"patches": [
|
||||
"0001-Add-support-for-clang-cl-on-Windows-633.patch"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,18 +25,26 @@ if (UNIX AND NOT ANDROID)
|
||||
if (NOT APPLE)
|
||||
# In Solaris needs explicit linking for ffmpeg which links to /lib/amd64/libX11.so
|
||||
if(PLATFORM_SUN)
|
||||
list(APPEND FFmpeg_HWACCEL_LIBRARIES
|
||||
X11
|
||||
"/usr/lib/xorg/amd64/libdrm.so")
|
||||
find_library(LIBDRM_LIB libdrm PATHS /usr/lib/64 /usr/lib/amd64 /usr/lib)
|
||||
if(LIBDRM_LIB)
|
||||
list(APPEND FFmpeg_HWACCEL_LIBRARIES
|
||||
X11
|
||||
"${LIBDRM_LIB}")
|
||||
message(STATUS "Found libdrm at: ${LIBDRM_LIB}")
|
||||
else()
|
||||
message(WARNING "libdrm not found, disabling libdrm support")
|
||||
list(APPEND FFmpeg_HWACCEL_FLAGS
|
||||
--disable-libdrm)
|
||||
endif()
|
||||
else()
|
||||
pkg_check_modules(LIBDRM libdrm REQUIRED)
|
||||
list(APPEND FFmpeg_HWACCEL_LIBRARIES
|
||||
${LIBDRM_LIBRARIES})
|
||||
list(APPEND FFmpeg_HWACCEL_INCLUDE_DIRS
|
||||
${LIBDRM_INCLUDE_DIRS})
|
||||
list(APPEND FFmpeg_HWACCEL_FLAGS
|
||||
--enable-libdrm)
|
||||
endif()
|
||||
list(APPEND FFmpeg_HWACCEL_FLAGS
|
||||
--enable-libdrm)
|
||||
endif()
|
||||
|
||||
if(LIBVA_FOUND)
|
||||
@@ -89,7 +97,7 @@ if (UNIX AND NOT ANDROID)
|
||||
endif(CUDA_FOUND)
|
||||
endif()
|
||||
|
||||
if (VDPAU_FOUND)
|
||||
if (VDPAU_FOUND AND NOT APPLE)
|
||||
list(APPEND FFmpeg_HWACCEL_FLAGS
|
||||
--enable-vdpau
|
||||
--enable-hwaccel=h264_vdpau
|
||||
@@ -107,9 +115,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)
|
||||
@@ -246,11 +255,19 @@ else()
|
||||
SYSTEM_THREADS)
|
||||
|
||||
set(FFmpeg_BUILD_LIBRARIES ${FFmpeg_LIBRARIES})
|
||||
|
||||
# BSD make or Solaris make don't support ffmpeg make-j8
|
||||
if (PLATFORM_LINUX OR ANDROID OR APPLE OR WIN32 OR PLATFORM_FREEBSD)
|
||||
set(FFmpeg_MAKE_ARGS -j${SYSTEM_THREADS})
|
||||
else()
|
||||
set(FFmpeg_MAKE_ARGS "")
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT
|
||||
${FFmpeg_BUILD_LIBRARIES}
|
||||
COMMAND
|
||||
make -j${SYSTEM_THREADS}
|
||||
make ${FFmpeg_MAKE_ARGS}
|
||||
WORKING_DIRECTORY
|
||||
${FFmpeg_BUILD_DIR}
|
||||
)
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"disabled_platforms": [
|
||||
"freebsd-amd64",
|
||||
"solaris-amd64",
|
||||
"macos-universal"
|
||||
"openbsd-amd64"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"git_host": "git.crueter.xyz",
|
||||
"artifact": "%VERSION%.tar.gz",
|
||||
"tag": "%VERSION%",
|
||||
"hash": "87abb2aeca716d5d77b05317086dbc2f8acfc2f3f76ce4778345ee3df19973e6cd8ecbf16cfab5ad94c9636a6c44fd3588f9aadd3cba89403cfd56c8bec645c5",
|
||||
"version": "091025"
|
||||
"hash": "dc37a189a44ce8b5c988ca550582431a6c7eadfd3c6e709bee6277116ee803e714333e85c9e6cbb5c69346a14d6f2cc7ed96e8aa09cc5fb8a89f945059651db6",
|
||||
"version": "121125"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,11 +9,15 @@ pkgs.mkShellNoCC {
|
||||
# libraries
|
||||
openssl boost fmt nlohmann_json lz4 zlib zstd
|
||||
enet libopus vulkan-headers vulkan-utility-libraries
|
||||
spirv-tools spirv-headers simpleini vulkan-memory-allocator
|
||||
vulkan-loader unzip mbedtls zydis glslang python3 httplib
|
||||
cpp-jwt ffmpeg-headless libusb1 cubeb
|
||||
qt6.full # eden
|
||||
SDL2 # eden-cli
|
||||
discord-rpc gamemode # optional components
|
||||
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
|
||||
];
|
||||
}
|
||||
@@ -35,7 +35,6 @@ if (MSVC AND NOT CXX_CLANG)
|
||||
|
||||
# /W4 - Level 4 warnings
|
||||
# /MP - Multi-threaded compilation
|
||||
# /Zi - Output debugging information
|
||||
# /Zm - Specifies the precompiled header memory allocation limit
|
||||
# /Zo - Enhanced debug info for optimized builds
|
||||
# /permissive- - Enables stricter C++ standards conformance checks
|
||||
@@ -98,11 +97,6 @@ if (MSVC AND NOT CXX_CLANG)
|
||||
)
|
||||
endif()
|
||||
|
||||
if (WIN32 AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||
endif()
|
||||
|
||||
if (ARCHITECTURE_x86_64)
|
||||
add_compile_options(/QIntel-jcc-erratum)
|
||||
endif()
|
||||
@@ -127,7 +121,7 @@ else()
|
||||
-Werror=unused
|
||||
|
||||
-Wno-attributes
|
||||
-Wno-invalid-offsetof
|
||||
$<$<COMPILE_LANGUAGE:CXX>:-Wno-invalid-offsetof>
|
||||
-Wno-unused-parameter
|
||||
-Wno-missing-field-initializers
|
||||
)
|
||||
@@ -176,13 +170,27 @@ else()
|
||||
add_compile_definitions(_FILE_OFFSET_BITS=64)
|
||||
endif()
|
||||
|
||||
if (YUZU_STATIC_BUILD)
|
||||
add_compile_definitions(QT_STATICPLUGIN)
|
||||
|
||||
# macos doesn't even let you make static executables... wtf?
|
||||
if (NOT APPLE)
|
||||
add_compile_options(-static)
|
||||
if (YUZU_STATIC_BUILD)
|
||||
# yuzu-cmd requires us to explicitly link libpthread, libgcc, and libstdc++ as static
|
||||
# At a guess, it's probably because Qt handles the Qt executable for us, whereas this does not
|
||||
add_link_options(-static -lpthread)
|
||||
add_link_options(-static-libgcc -static-libstdc++)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (MINGW)
|
||||
add_compile_definitions(MINGW_HAS_SECURE_API)
|
||||
add_compile_options("-msse4.1")
|
||||
|
||||
if (MINGW_STATIC_BUILD)
|
||||
add_compile_definitions(QT_STATICPLUGIN)
|
||||
add_compile_options("-static")
|
||||
# Only windows has this requirement, thanks windows
|
||||
if (WIN32 AND ARCHITECTURE_x86_64)
|
||||
add_compile_options("-msse4.1")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
@@ -16,11 +16,15 @@ import java.io.FileOutputStream
|
||||
import java.security.KeyStore
|
||||
import javax.net.ssl.TrustManagerFactory
|
||||
import javax.net.ssl.X509TrustManager
|
||||
import android.content.res.Configuration
|
||||
import android.os.LocaleList
|
||||
import org.yuzu.yuzu_emu.features.settings.model.IntSetting
|
||||
import org.yuzu.yuzu_emu.utils.DirectoryInitialization
|
||||
import org.yuzu.yuzu_emu.utils.DocumentsTree
|
||||
import org.yuzu.yuzu_emu.utils.GpuDriverHelper
|
||||
import org.yuzu.yuzu_emu.utils.Log
|
||||
import org.yuzu.yuzu_emu.utils.PowerStateUpdater
|
||||
import java.util.Locale
|
||||
|
||||
fun Context.getPublicFilesDir(): File = getExternalFilesDir(null) ?: filesDir
|
||||
|
||||
@@ -73,5 +77,38 @@ class YuzuApplication : Application() {
|
||||
|
||||
val appContext: Context
|
||||
get() = application.applicationContext
|
||||
|
||||
private val LANGUAGE_CODES = arrayOf(
|
||||
"system", "en", "es", "fr", "de", "it", "pt", "pt-BR", "ru", "ja", "ko",
|
||||
"zh-CN", "zh-TW", "pl", "cs", "nb", "hu", "uk", "vi", "id", "ar", "ckb", "fa", "he", "sr"
|
||||
)
|
||||
|
||||
fun applyLanguage(context: Context): Context {
|
||||
val languageIndex = IntSetting.APP_LANGUAGE.getInt()
|
||||
val langCode = if (languageIndex in LANGUAGE_CODES.indices) {
|
||||
LANGUAGE_CODES[languageIndex]
|
||||
} else {
|
||||
"system"
|
||||
}
|
||||
|
||||
if (langCode == "system") {
|
||||
return context
|
||||
}
|
||||
|
||||
val locale = when {
|
||||
langCode.contains("-") -> {
|
||||
val parts = langCode.split("-")
|
||||
Locale.Builder().setLanguage(parts[0]).setRegion(parts[1]).build()
|
||||
}
|
||||
else -> Locale.Builder().setLanguage(langCode).build()
|
||||
}
|
||||
|
||||
Locale.setDefault(locale)
|
||||
|
||||
val config = Configuration(context.resources.configuration)
|
||||
config.setLocales(LocaleList(locale))
|
||||
|
||||
return context.createConfigurationContext(config)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,6 +86,10 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
|
||||
|
||||
private var foregroundService: Intent? = null
|
||||
|
||||
override fun attachBaseContext(base: Context) {
|
||||
super.attachBaseContext(YuzuApplication.applyLanguage(base))
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
Log.gameLaunched = true
|
||||
ThemeHelper.setTheme(this)
|
||||
|
||||
@@ -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() }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ enum class IntSetting(override val key: String) : AbstractIntSetting {
|
||||
MAX_ANISOTROPY("max_anisotropy"),
|
||||
THEME("theme"),
|
||||
THEME_MODE("theme_mode"),
|
||||
APP_LANGUAGE("app_language"),
|
||||
OVERLAY_SCALE("control_scale"),
|
||||
OVERLAY_OPACITY("control_opacity"),
|
||||
LOCK_DRAWER("lock_drawer"),
|
||||
|
||||
@@ -667,10 +667,11 @@ abstract class SettingsItem(
|
||||
)
|
||||
)
|
||||
put(
|
||||
SliderSetting(
|
||||
SpinBoxSetting(
|
||||
IntSetting.CPU_TICKS,
|
||||
titleId = R.string.cpu_ticks,
|
||||
descriptionId = 0,
|
||||
valueHint = R.string.cpu_ticks,
|
||||
min = 77,
|
||||
max = 65535
|
||||
)
|
||||
@@ -756,6 +757,15 @@ abstract class SettingsItem(
|
||||
titleId = R.string.enable_update_checks,
|
||||
)
|
||||
)
|
||||
put(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.APP_LANGUAGE,
|
||||
titleId = R.string.app_language,
|
||||
descriptionId = R.string.app_language_description,
|
||||
choicesId = R.array.appLanguageNames,
|
||||
valuesId = R.array.appLanguageValues
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.RENDERER_DEBUG,
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
// 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
|
||||
|
||||
package org.yuzu.yuzu_emu.features.settings.ui
|
||||
|
||||
import android.content.Context
|
||||
import org.yuzu.yuzu_emu.YuzuApplication
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.view.ViewGroup.MarginLayoutParams
|
||||
@@ -24,6 +29,7 @@ import org.yuzu.yuzu_emu.features.input.NativeInput
|
||||
import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile
|
||||
import org.yuzu.yuzu_emu.fragments.ResetSettingsDialogFragment
|
||||
import org.yuzu.yuzu_emu.utils.*
|
||||
import org.yuzu.yuzu_emu.utils.collect
|
||||
|
||||
class SettingsActivity : AppCompatActivity() {
|
||||
private lateinit var binding: ActivitySettingsBinding
|
||||
@@ -32,6 +38,10 @@ class SettingsActivity : AppCompatActivity() {
|
||||
|
||||
private val settingsViewModel: SettingsViewModel by viewModels()
|
||||
|
||||
override fun attachBaseContext(base: Context) {
|
||||
super.attachBaseContext(YuzuApplication.applyLanguage(base))
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
ThemeHelper.setTheme(this)
|
||||
|
||||
@@ -125,6 +135,16 @@ class SettingsActivity : AppCompatActivity() {
|
||||
NativeConfig.savePerGameConfig()
|
||||
NativeConfig.unloadPerGameConfig()
|
||||
}
|
||||
|
||||
if (settingsViewModel.shouldRecreateForLanguageChange.value) {
|
||||
settingsViewModel.setShouldRecreateForLanguageChange(false)
|
||||
val relaunchIntent = packageManager?.getLaunchIntentForPackage(packageName)
|
||||
if (relaunchIntent != null) {
|
||||
relaunchIntent.addFlags(android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK or android.content.Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
startActivity(relaunchIntent)
|
||||
android.os.Process.killProcess(android.os.Process.myPid())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -425,6 +425,14 @@ class SettingsAdapter(
|
||||
position
|
||||
).show(fragment.childFragmentManager, SettingsDialogFragment.TAG)
|
||||
|
||||
// reset language if detected
|
||||
if (item.setting.key == "app_language") {
|
||||
// recreate page apply language change instantly
|
||||
fragment.requireActivity().recreate()
|
||||
|
||||
settingsViewModel.setShouldRecreateForLanguageChange(true)
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,9 @@ import android.text.TextWatcher
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.MotionEvent
|
||||
import android.os.Handler
|
||||
import android.os.Looper
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.DialogFragment
|
||||
@@ -197,6 +200,54 @@ class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener
|
||||
updateValidity(newValue)
|
||||
}
|
||||
|
||||
fun attachRepeat(button: View, delta: Int) {
|
||||
val handler = Handler(Looper.getMainLooper())
|
||||
var runnable: Runnable? = null
|
||||
val initialDelay = 400L
|
||||
val minDelay = 40L
|
||||
val accelerationFactor = 0.75f
|
||||
|
||||
button.setOnTouchListener { v, event ->
|
||||
when (event.action) {
|
||||
MotionEvent.ACTION_DOWN -> {
|
||||
val current = spinboxBinding.editValue.text.toString().toIntOrNull() ?: currentValue
|
||||
val newValue = (current + delta)
|
||||
spinboxBinding.editValue.setText(newValue.toString())
|
||||
updateValidity(newValue)
|
||||
|
||||
var delay = initialDelay
|
||||
runnable = object : Runnable {
|
||||
override fun run() {
|
||||
val curr = spinboxBinding.editValue.text.toString().toIntOrNull() ?: currentValue
|
||||
val next = curr + delta
|
||||
spinboxBinding.editValue.setText(next.toString())
|
||||
updateValidity(next)
|
||||
// accelerate
|
||||
delay = (delay * accelerationFactor).toLong().coerceAtLeast(minDelay)
|
||||
handler.postDelayed(this, delay)
|
||||
}
|
||||
}
|
||||
handler.postDelayed(runnable!!, initialDelay)
|
||||
true
|
||||
}
|
||||
|
||||
MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
|
||||
if (runnable != null) {
|
||||
handler.removeCallbacks(runnable!!)
|
||||
runnable = null
|
||||
}
|
||||
v.performClick()
|
||||
true
|
||||
}
|
||||
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
attachRepeat(spinboxBinding.buttonDecrement, -1)
|
||||
attachRepeat(spinboxBinding.buttonIncrement, 1)
|
||||
|
||||
spinboxBinding.editValue.addTextChangedListener(object : TextWatcher {
|
||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {}
|
||||
@@ -336,6 +387,12 @@ class SettingsDialogFragment : DialogFragment(), DialogInterface.OnClickListener
|
||||
.show()
|
||||
}
|
||||
scSetting.setSelectedValue(value)
|
||||
|
||||
if (scSetting.setting.key == "app_language") {
|
||||
settingsViewModel.setShouldRecreateForLanguageChange(true)
|
||||
// recreate page apply language change instantly
|
||||
requireActivity().recreate()
|
||||
}
|
||||
}
|
||||
|
||||
is StringSingleChoiceSetting -> {
|
||||
|
||||
@@ -1030,8 +1030,10 @@ class SettingsFragmentPresenter(
|
||||
override fun reset() = IntSetting.THEME.setInt(defaultValue)
|
||||
}
|
||||
|
||||
add(HeaderSetting(R.string.app_settings))
|
||||
add(IntSetting.APP_LANGUAGE.key)
|
||||
|
||||
if (NativeLibrary.isUpdateCheckerEnabled()) {
|
||||
add(HeaderSetting(R.string.app_settings))
|
||||
add(BooleanSetting.ENABLE_UPDATE_CHECKS.key)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -54,6 +57,8 @@ class SettingsViewModel : ViewModel() {
|
||||
private val _shouldShowResetInputDialog = MutableStateFlow(false)
|
||||
val shouldShowResetInputDialog = _shouldShowResetInputDialog.asStateFlow()
|
||||
|
||||
private val _shouldRecreateForLanguageChange = MutableStateFlow(false)
|
||||
val shouldRecreateForLanguageChange = _shouldRecreateForLanguageChange.asStateFlow()
|
||||
fun setShouldRecreate(value: Boolean) {
|
||||
_shouldRecreate.value = value
|
||||
}
|
||||
@@ -103,6 +108,10 @@ class SettingsViewModel : ViewModel() {
|
||||
_shouldShowResetInputDialog.value = value
|
||||
}
|
||||
|
||||
fun setShouldRecreateForLanguageChange(value: Boolean) {
|
||||
_shouldRecreateForLanguageChange.value = value
|
||||
}
|
||||
|
||||
fun getCurrentDeviceParams(defaultParams: ParamPackage): ParamPackage =
|
||||
try {
|
||||
InputHandler.registeredControllers[currentDevice]
|
||||
|
||||
@@ -1511,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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1842,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) {
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
package org.yuzu.yuzu_emu.ui.main
|
||||
|
||||
import android.content.Intent
|
||||
import android.content.Context
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
@@ -53,6 +54,7 @@ import org.yuzu.yuzu_emu.activities.EmulationActivity
|
||||
import kotlin.text.compareTo
|
||||
import androidx.core.net.toUri
|
||||
import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting
|
||||
import org.yuzu.yuzu_emu.YuzuApplication
|
||||
|
||||
class MainActivity : AppCompatActivity(), ThemeProvider {
|
||||
private lateinit var binding: ActivityMainBinding
|
||||
@@ -68,6 +70,10 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
|
||||
private val CHECKED_DECRYPTION = "CheckedDecryption"
|
||||
private var checkedDecryption = false
|
||||
|
||||
override fun attachBaseContext(base: Context) {
|
||||
super.attachBaseContext(YuzuApplication.applyLanguage(base))
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
val splashScreen = installSplashScreen()
|
||||
splashScreen.setKeepOnScreenCondition { !DirectoryInitialization.areDirectoriesReady }
|
||||
|
||||
@@ -62,6 +62,7 @@ namespace AndroidSettings {
|
||||
Settings::Setting<s32> theme_mode{linkage, -1, "theme_mode", Settings::Category::Android};
|
||||
Settings::Setting<bool> black_backgrounds{linkage, false, "black_backgrounds",
|
||||
Settings::Category::Android};
|
||||
Settings::Setting<s32> app_language{linkage, 0, "app_language", Settings::Category::Android};
|
||||
Settings::Setting<bool> enable_update_checks{linkage, true, "enable_update_checks",
|
||||
Settings::Category::Android};
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#define VMA_IMPLEMENTATION
|
||||
#include "video_core/vulkan_common/vma.h"
|
||||
|
||||
#include <codecvt>
|
||||
#include <locale>
|
||||
|
||||
|
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>
|
||||
|
||||
@@ -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>
|
||||
|
||||