Compare commits

..

40 Commits

Author SHA1 Message Date
lizzie 237fb283f8 prepare 2026-08-12 16:07:00 +00:00
lizzie a098e17e5c build adjustments 2026-08-12 16:07:00 +00:00
lizzie b3e4033ce9 ok no broken make 2026-08-12 16:07:00 +00:00
lizzie 26cb153f14 boost asio fix in android 2026-08-12 16:07:00 +00:00
lizzie ce8ec956bc it loads the fucker :) 2026-08-12 16:07:00 +00:00
lizzie 56ea54c380 BUT PROPERLY SHOW THE LOGS for fucks sake 2026-08-12 16:07:00 +00:00
lizzie e0facbe8a7 force services into guest process and singlecore option 2026-08-12 16:06:59 +00:00
lizzie 9c395241ca add filter options 2026-08-12 16:06:51 +00:00
lizzie e00e9faf12 --null-renderer 2026-08-12 16:06:35 +00:00
lizzie 526a367ffa emscripten friendly sdl loop 2026-08-12 16:06:34 +00:00
lizzie 7bd119a5b1 fixup make program 2026-08-12 16:06:03 +00:00
lizzie cc3f8cc4ca fixup caveats + add miniserver 2026-08-12 16:06:03 +00:00
lizzie b6fb3300b0 10gb of ram 2026-08-12 16:04:46 +00:00
lizzie 2d8ee311dc small writeup of wasm 2026-08-12 16:04:46 +00:00
lizzie 2b7fac48cd fix openssl 2026-08-12 16:04:46 +00:00
lizzie 411809818b proper jthread support 2026-08-12 16:04:46 +00:00
lizzie 67b3730059 fix wasm flags 2026-08-12 16:04:46 +00:00
lizzie 4a96cc9694 disable JIT service 2026-08-12 16:04:46 +00:00
lizzie b3bc1d8a40 emscripten can't memfd 2026-08-12 16:04:46 +00:00
lizzie 2da1418d77 emscripten doesnt have arc4random but wasi does? 2026-08-12 16:04:46 +00:00
lizzie a74d16a8fa fix non existant pthread funcs 2026-08-12 16:04:46 +00:00
lizzie 60943e8b9e initial wasm support 2026-08-12 16:04:46 +00:00
lizzie 911bab04f7 ok fixup but better with bool returns 2026-08-12 16:04:46 +00:00
lizzie cc04e1c536 Use managarm special fastmem fallback 2026-08-12 16:04:46 +00:00
lizzie e7a931d06b [eden-cli] rework loop to use new SDL3 event dispatch system (#4108)
modernized into the new SDL3 API for event dispatching.

also stopped using the periodic comparison and just added a SDL timer like it wants us to do
is it better than before? well it's certainly more portable now. docs say this improves battery usage on busywaits for event polling.

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4108
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-08-12 18:10:24 +02:00
crueter 8648c27cbb [cmake] Simplify DetectPlatform and normalize platform names (#4183)
Since 3.25 introduced `LINUX` and `BSD`, use them, and standardize other platforms to that style

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4183
Reviewed-by: Samuel <lizzie@eden-emu.dev>
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
2026-08-10 04:57:38 +02:00
codeman4033 def76946f0 [forgejo] Replace mentions of yuzu in issue templates with eden (#3842)
Also fix the broken link for log files in the bug report

Signed-off-by: codeman4033 <codeman4033@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3842
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: Samuel <lizzie@eden-emu.dev>
2026-08-10 03:55:03 +02:00
BoiledElectricity 13d39f39aa [qt] fix relative ROM paths passed on the CLI on macOS (#4105)
On macOS, convert relative paths to absolute paths before changing the
working directory. Otherwise, valid Switch formats may incorrectly fail
with a "The ROM format is not supported" error.

Fixes: https://github.com/eden-emulator/Issue-Reports/issues/404
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4105
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: Samuel <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-08-09 17:18:58 +02:00
lizzie 7731b5bc86 [core/hle/kernel/svc] demote ResetSignal log Debug->Trace (#4161)
I don't see why it's LOG_DEBUG if WaitSynchronization is LOG_TRACE, leaves incomplete data
may as well bundle it to trace with the others? :)

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4161
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2026-08-09 14:13:27 +02:00
lizzie c4ab2f6b9e [cmake] Add ENABLE_WERROR option (#4080)
Should warnings be errors? that's a philosophical debate which I can only answer with "no, but if you think otherwise here is an option for you"

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4080
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-08-09 02:56:28 +02:00
xbzk dd12266c26 [input] added option to disable wgi/xinput to prevent SDL GUIDE hack (#4237)
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------
So, many users hate the fact when they press START+SELECT, an additional HOME event is sent.

That is annoying coz for most users' default hotkey settings, it closes eden when not in game, and when in game it calls a NOT controller responsive prompt about leaving Eden.
There are several games with reasons to press start+select, also there are homebrews which relies on that combo to open internal menus.
Again. That is annoying.

Digging deep i've found that SDL implements something called guide hack: When Start+Select is pressed it sends a synthetic GUIDE(which code equals to HOME).
This was intended for controllers missing the HOME button, but SDL fails to track them all, and misses API to disabling it.

I've figured out a patch to SDL to disable it, but since it would be better to invest on a PR straight into SDL repo, on our side i thought it better to simply add an option to disable WGI (Windows.Gaming.Input) and Xinput, both paths which could lead into the hack enabling.

Setting is available in a remote place no one will bother.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4237
Reviewed-by: Samuel <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
2026-08-09 02:53:37 +02:00
crueter a3d32a18b8 [meta] Discourage profanity usage (#4239)
I'm not into millennial humor, personally.

Proactively removed as much profanity as I could grep.

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4239
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: Samuel <lizzie@eden-emu.dev>
2026-08-09 02:53:16 +02:00
crueter c0ffc900cd [ci] Only update translations once a week (#4256)
They've slowed down enough at this point.

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4256
2026-08-08 05:46:52 +02:00
CamilleLaVey 3f52bf4b4b [core, gpu, threads] Multithreading refactor (#4254)
This insufferable work tries to cover some holes on previous threading implementation from yuzu's team, starting with Windows and Linux reordering of priorities (NICE), reworks previous Android's threading and cpu affinity with adpf, adjust emulated clocks/gpu for better "accuracy" with their work, bumps android minSDK for all flavors, legacy will now work with AP 29 to cover A10 - A12, standard will reach A13 as base and finally the optimized build will come with API 35, mostly targeted on devices with A15 support and newer, NDK and AGP wasn't upgraded yet. The performance cost efficiency have been improved based on device power configuration; preventing overheating if certain devices tended to fall into NICE0 (not allocated threads priority, all task ran with higher priority, 11 tasks running within the limited 2 - 7 threads available on the most common configuration 1x3x4 or 1x4x3).

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4254
2026-08-08 04:39:47 +02:00
Eden CI 5ec94b1971 [dist, android] Update translations from Transifex for Aug 04 (#4248)
Automatic translation update for Aug 04

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4248
2026-08-07 05:06:08 +02:00
crueter 627770cd3a [meta] Fix AI policy link in CONTRIBUTING.md (#4255)
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4255
2026-08-07 05:03:55 +02:00
lizzie a43664c0fd [audio_core] Fix jamboree crash due to OOB access (#4252)
Signed-off-by: lizzie <lizzie@eden-emu.dev>

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

PLEASE test diablo 3 or ANY game that's sensitive to audio changes
Just TEST that there's NO regressions on the audio front

this fixes a rare Jamboree crash with audio DSP

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4252
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
2026-08-05 21:56:18 +02:00
lizzie a0f1cd1baf [hid_core] fix NPad crash on pikmin 4 due to nullref (#4249)
Signed-off-by: lizzie <lizzie@eden-emu.dev>

- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.

-------------------

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4249
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2026-08-05 20:55:01 +02:00
CamilleLaVey 49a0ca6d5d [vulkan] Initial implementation on Bindless Buffer/Descriptors (#4251)
Adds a VK_EXT_descriptor_buffer, VK_KHR_device_buffer_address path alongside push descriptors and descriptor sets. The ring is chunked and sized from the device limits, so drivers with a small sampler range (QCOM reports 128 KiB) get more, chunks per frame instead of losing the feature. A pipeline uses one path or the other, never both, since some drivers do not support bufferless push descriptors. The chunk binding is only re-emitted when it changes, and a draw that repeats the previous payload reuses its allocation instead of rewriting it. This whole change will help to reduce the constant use of descriptors on the slower path, improves the "slow implementation" on QCOM drivers (A7xx and older) for push descriptors, improves latency when compiling pipelines. The implementation on indexing descriptors was also refined.

_Special Thanks_

1.- Meowly The Bindless Smol (@Gidoly)

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4251
2026-08-05 16:58:43 +02:00
CamilleLaVey 5e1d5e82dc [vulkan] Re-adjusting ASTC resolve (#4250)
This is an adjustment made due to problems caused by my ASTC changes some pr's earlier; added sanity to decoded blocks, removes the inconditional storage view for ASTC formats (verified against MaxwellToVk logic), added support to VK_EXT_astc_decode_mode which will ensure a better way to resolve RGFA16/RGFA32 on tilers, simplified ASTC HDR decoding into LDR valid formats.

This fixes some issues with SteamDeck, Fire Emblem: Engage washed colors and other problems related to ASTC.

_Special Thanks_

1.- Meowly The Smol (@Gidoly)
2.- @simply0001 for the actual idea on the redundant storage views on the transcoded ASTC path.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4250
2026-08-05 09:24:35 +02:00
181 changed files with 4406 additions and 2054 deletions
+92
View File
@@ -0,0 +1,92 @@
#!/bin/sh -ex
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
# SPDX-License-Identifier: GPL-3.0-or-later
NUM_JOBS=$(nproc 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null || echo 2)
: "${CCACHE:=false}"
RETURN=0
usage() {
cat <<EOF
Usage: $0 [-b|--build-type BUILD_TYPE] [-o|--outdir OUTPUT_DIRECTORY]
Build script for Emscripten (using wasm64).
Options:
--build-type Set the CMake build type (Release|RelWithDebInfo|MinSizeRel|Debug)
Default: Release
--outdir Set the output directory
Default: build
EOF
exit "$RETURN"
}
die() {
echo "-- ! $*" >&2
RETURN=1 usage
}
type() {
[ -z "$1" ] && die "You must specify a valid type."
TYPE="$1"
}
outdir() {
[ -z "$1" ] && die "You must specify a valid output directory."
OUTDIR="$1"
}
while true; do
case "$1" in
-r|--release) DEVEL=false ;;
-b|--build-type) type "$2"; shift ;;
-o|--outdir) outdir "$2"; shift ;;
-h|--help) usage ;;
*) break ;;
esac
shift
done
: "${TYPE:=Release}"
: "${DEVEL:=true}"
: "${OUTDIR:=build}"
# -sMEMORY64 must be specified twice, see below
# The CMake toolchain file will match against MEMORY64 but will fail to match if:
# - it's either -sMEMORY64
# - or it's either -sMEMORY64=1
# The line in question:
# if (CMAKE_C_FLAGS MATCHES "MEMORY64")
# However why need to specify -sMEMORY64=1 then? Oh that's because if you didn't set
# the =1, it would assume you meant =0, which equates to not specifying it at all
# This seems to be fixed in later versions but occurs atleast on 4.0.3-git and below.
emcmake cmake -B "$OUTDIR" -G "Unix Makefiles" \
-DCMAKE_BUILD_TYPE=${TYPE} \
-DENABLE_OPENGL=OFF \
-DENABLE_LTO=OFF \
-DENABLE_QT=OFF \
-DENABLE_UNITY_BUILD=OFF \
-DENABLE_QT_TRANSLATION=OFF \
-DENABLE_CUBEB=OFF \
-DENABLE_LIBUSB=OFF \
-DENABLE_UPDATE_CHECKER=OFF \
-DENABLE_WEB_SERVICE=OFF \
-DUSE_DISCORD_PRESENCE=OFF \
-DENABLE_WIFI_SCAN=OFF \
-DUSE_FASTER_LINKER=ON \
-DYUZU_STATIC_BUILD=ON \
-DYUZU_USE_BUNDLED_OPENSSL=OFF \
-DYUZU_USE_EXTERNAL_FFMPEG=ON \
-Dzstd_FORCE_BUNDLED=ON \
-DOpenSSL_FORCE_BUNDLED=ON \
-DEMSCRIPTEN_SYSTEM_PROCESSOR=wasm \
-DCMAKE_C_FLAGS="-s MEMORY64 -m64 -pipe -sMEMORY64=1" \
-DCMAKE_CXX_FLAGS="-s MEMORY64 -m64 -pipe -sMEMORY64=1" \
-DCMAKE_EXE_LINKER_FLAGS="-sMEMORY64=1 -m64 -Wl,-mwasm64 -sASYNCIFY=1" \
-DCMAKE_C_LINK_FLAGS="-sMEMORY64=1 -m64 -Wl,-mwasm64 -sASYNCIFY=1" \
-DCMAKE_CXX_LINK_FLAGS="-sMEMORY64=1 -m64 -Wl,-mwasm64 -sASYNCIFY=1"
cmake --build "$OUTDIR" -- -j$NUM_JOBS
+2 -2
View File
@@ -1,9 +1,9 @@
name: tx-pull
on:
# tuesday, saturday at 2pm
# monday at 4pm
schedule:
- cron: '0 14 * * 2,6'
- cron: '0 16 * * 1'
workflow_dispatch:
jobs:
+2 -2
View File
@@ -3,7 +3,7 @@ description: File a bug report
body:
- type: markdown
attributes:
value: Tech support does not belong here. You should only file an issue here if you think you have experienced an actual bug with yuzu.
value: Tech support does not belong here. You should only file an issue here if you think you have experienced an actual bug with Eden.
- type: checkboxes
attributes:
label: Is there an existing issue for this?
@@ -43,7 +43,7 @@ body:
id: log
attributes:
label: Log File
description: A log file will help our developers to better diagnose and fix the issue. Instructions can be found [here](https://yuzu-emu.org/help/reference/log-files).
description: A log file will help our developers to better diagnose and fix the issue. Instructions can be found [here](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/user/HowToAccessLogs.md).
validations:
required: true
- type: textarea
+2 -2
View File
@@ -4,7 +4,7 @@ labels: "request"
body:
- type: markdown
attributes:
value: Tech support does not belong here. You should only file an issue here if you are requesting a feature you believe would make yuzu better.
value: Tech support does not belong here. You should only file an issue here if you are requesting a feature you believe would make Eden better.
- type: checkboxes
attributes:
label: Is there an existing issue for this?
@@ -23,6 +23,6 @@ body:
id: why-feature
attributes:
label: Why would this feature be useful?
description: A brief description of why this feature would make yuzu better.
description: A brief description of why this feature would make Eden better.
validations:
required: true
@@ -0,0 +1,40 @@
diff --git a/cmake/ConfigureOpenSSL.cmake b/cmake/ConfigureOpenSSL.cmake
index 3012e05..2ae23ff 100644
--- a/cmake/ConfigureOpenSSL.cmake
+++ b/cmake/ConfigureOpenSSL.cmake
@@ -108,7 +108,8 @@ function(configure_openssl)
)
if(NOT "${CONFIGURE_OPTIONS_OLD}" STREQUAL "")
- if(CONFIGURE_OPTIONS STREQUAL CONFIGURE_OPTIONS_OLD)
+ # TODO(lizzie): Emscripten has issues with rebuilding due to the wrapper it uses
+ if(CMAKE_SYSTEM_NAME MATCHES "Emscripten" OR CONFIGURE_OPTIONS STREQUAL CONFIGURE_OPTIONS_OLD)
message(STATUS "Found previous configure results. Don't perform configuration")
return()
endif()
@@ -134,10 +135,24 @@ function(configure_openssl)
set(VERBOSE_OPTION OUTPUT_QUIET)
endif()
+ if (CMAKE_SYSTEM_NAME MATCHES "Emscripten")
+ set(EMSCRIPTEN_CMAKE_WRAPPER "emcmake")
+ find_program(EMCC emcc REQUIRED)
+ set(EMSCRIPTEN_LINKER ${EMCC})
+ list(APPEND CONFIGURE_COMMAND wasm64)
+ else()
+ set(EMSCRIPTEN_CMAKE_WRAPPER "")
+ set(EMSCRIPTEN_LINKER ${CMAKE_LINKER})
+ endif ()
+
execute_process(
- COMMAND ${CMAKE_COMMAND} -E env
+ COMMAND ${EMSCRIPTEN_CMAKE_WRAPPER} ${CMAKE_COMMAND} -E env
"CFLAGS=${CMAKE_C_FLAGS}"
"CXXFLAGS=${CMAKE_CXX_FLAGS}"
+ "LDFLAGS=${CMAKE_CXX_LINK_FLAGS}"
+ "CC=${CMAKE_C_COMPILER}"
+ "CXX=${CMAKE_CXX_COMPILER}"
+ "LD=${EMSCRIPTEN_LINKER}"
${CONFIGURE_COMMAND}
WORKING_DIRECTORY ${CONFIGURE_BUILD_DIR}
${VERBOSE_OPTION}
+112
View File
@@ -0,0 +1,112 @@
diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
index e62721e..243feb4 100644
--- a/Configurations/10-main.conf
+++ b/Configurations/10-main.conf
@@ -1970,6 +1970,26 @@ my %targets = (
multilib => "64",
},
+ "wasm32" => {
+ inherit_from => [ "BASE_unix" ],
+ CC => "emcc",
+ CXX => "emc++",
+ cflags => combine("--target=wasm32-unknown-emscripten", threads("-pthread")),
+ cxxflags => combine("--target=wasm32-unknown-emscripten", threads("-pthread")),
+ lib_cppflags => add("-DL_ENDIAN"),
+ bn_ops => "THIRTY_TWO_BIT",
+ },
+ "wasm64" => {
+ inherit_from => [ "BASE_unix" ],
+ CC => "emcc",
+ CXX => "emc++",
+ cflags => combine("--target=wasm64-unknown-emscripten", threads("-pthread")),
+ cxxflags => combine("--target=wasm64-unknown-emscripten", threads("-pthread")),
+ lib_cppflags => add("-DL_ENDIAN"),
+ bn_ops => "SIXTY_FOUR_BIT_LONG",
+ },
+
+
#### uClinux
"uClinux-dist" => {
inherit_from => [ "BASE_unix" ],
diff --git a/crypto/rand/rand_lib.c b/crypto/rand/rand_lib.c
index d9e8f02..7faf347 100644
--- a/crypto/rand/rand_lib.c
+++ b/crypto/rand/rand_lib.c
@@ -379,17 +379,27 @@ void RAND_add(const void *buf, int num, double randomness)
#if !defined(OPENSSL_NO_DEPRECATED_1_1_0)
int RAND_pseudo_bytes(unsigned char *buf, int num)
{
+#if defined(__wasi__)
+ arc4random_buf(buf, num);
+ return 1;
+#elif defined(__EMSCRIPTEN__)
+ return 1;
+#else
const RAND_METHOD *meth = RAND_get_rand_method();
if (meth != NULL && meth->pseudorand != NULL)
return meth->pseudorand(buf, num);
ERR_raise(ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED);
return -1;
+#endif
}
#endif
int RAND_status(void)
{
+#if defined(__EMSCRIPTEN__) || defined(__wasi__)
+ return 1;
+#else
EVP_RAND_CTX *rand;
#ifndef OPENSSL_NO_DEPRECATED_3_0
const RAND_METHOD *meth = RAND_get_rand_method();
@@ -401,6 +411,7 @@ int RAND_status(void)
if ((rand = RAND_get0_primary(NULL)) == NULL)
return 0;
return EVP_RAND_get_state(rand) == EVP_RAND_STATE_READY;
+#endif
}
#else /* !FIPS_MODULE */
@@ -420,6 +431,12 @@ const RAND_METHOD *RAND_get_rand_method(void)
int RAND_priv_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num,
unsigned int strength)
{
+#if defined(__wasi__)
+ arc4random_buf(buf, num);
+ return 1;
+#elif defined(__EMSCRIPTEN__)
+ return 1;
+#else
RAND_GLOBAL *dgbl;
EVP_RAND_CTX *rand;
#if !defined(OPENSSL_NO_DEPRECATED_3_0) && !defined(FIPS_MODULE)
@@ -451,6 +468,7 @@ int RAND_priv_bytes_ex(OSSL_LIB_CTX *ctx, unsigned char *buf, size_t num,
return EVP_RAND_generate(rand, buf, num, strength, 0, NULL, 0);
return 0;
+#endif
}
int RAND_priv_bytes(unsigned char *buf, int num)
diff --git a/ssl/ssl_cert.c b/ssl/ssl_cert.c
index 3d21801..e026f8f 100644
--- a/ssl/ssl_cert.c
+++ b/ssl/ssl_cert.c
@@ -941,6 +941,7 @@ done:
return ret;
}
+#ifndef OPENSSL_NO_POSIX_IO
int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
const char *dir)
{
@@ -1016,6 +1017,7 @@ err:
return ret;
}
+#endif
static int add_uris_recursive(STACK_OF(X509_NAME) *stack,
const char *uri, int depth)
+50 -20
View File
@@ -28,23 +28,23 @@ if (NOT DEFINED ARCHITECTURE)
endif()
# Needed for FFmpeg w/ VAAPI and DRM
if (PLATFORM_OPENBSD)
if (OPENBSD)
# OpenBSD 7.8 broke libcxx when upgrading, so we must define the PSTL backend manually
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R6/include -D_LIBCPP_PSTL_BACKEND_SERIAL=1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R6/include -D_LIBCPP_PSTL_BACKEND_SERIAL=1")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/X11R6/lib")
elseif (PLATFORM_NETBSD)
elseif (NETBSD)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R7/include -I${CMAKE_SYSROOT}/usr/pkg/include/c++/v1")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${CMAKE_SYSROOT}/usr/X11R7/include -I${CMAKE_SYSROOT}/usr/pkg/include/c++/v1")
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)
if (NETBSD)
set(ENV{PKG_CONFIG_PATH} "${PKG_CONFIG_PATH}:${CMAKE_SYSROOT}/usr/pkg/lib/ffmpeg7/pkgconfig")
endif()
cmake_dependent_option(YUZU_STATIC_ROOM "Build a static room executable only (CI only)" OFF "PLATFORM_LINUX" OFF)
cmake_dependent_option(YUZU_STATIC_ROOM "Build a static room executable only (CI only)" OFF "LINUX" OFF)
if (YUZU_STATIC_ROOM)
set(YUZU_ROOM ON)
set(YUZU_ROOM_STANDALONE ON)
@@ -79,6 +79,7 @@ set(YUZU_QT_MIRROR "" CACHE STRING "What mirror to use for downloading the bundl
cmake_dependent_option(YUZU_USE_BUNDLED_QT "Download bundled Qt binaries" "${MSVC}" "ENABLE_QT" OFF)
option(ENABLE_DEBUG_TOOLS "Enable debugging tools (maxwell disassembler, SPIRV translator, etc)" OFF)
option(ENABLE_WERROR "Enable -Werror diagnostics" ON)
# non-linux bundled qt are static
if (YUZU_USE_BUNDLED_QT AND (APPLE OR NOT UNIX))
@@ -157,6 +158,19 @@ if (CXX_CLANG_CL)
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-reserved-identifier>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-deprecated-declarations>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type-mismatch>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c99-extensions>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++17-compat>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat-reserved-user-defined-literal>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat-deprecated-writable-strings>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat-pedantic>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++11-compat>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++0x-compat>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++98-c++11-compat-binary-literal>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++98-compat-pedantic>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c++98-compat>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c99-compat>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c98-compat>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-c99-extensions>
$<$<COMPILE_LANGUAGE:C,CXX>:/EHsc>)
# REQUIRED CPU features IN Windows-amd64
if (ARCHITECTURE_x86_64)
@@ -210,7 +224,7 @@ endif()
# ffmpeg
option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT})
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${PLATFORM_SUN}" "NOT WIN32 AND NOT ANDROID" OFF)
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${SOLARIS}" "NOT WIN32 AND NOT ANDROID" OFF)
# sirit
set(BUNDLED_SIRIT_DEFAULT OFF)
@@ -221,7 +235,7 @@ endif()
option(YUZU_USE_BUNDLED_SIRIT "Download bundled sirit" ${BUNDLED_SIRIT_DEFAULT})
# FreeBSD 15+ has libusb, versions below should disable it
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "WIN32 OR PLATFORM_LINUX OR PLATFORM_FREEBSD OR APPLE" OFF)
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "WIN32 OR LINUX OR FREEBSD OR APPLE" OFF)
cmake_dependent_option(ENABLE_OPENGL "Enable OpenGL" ON "NOT (WIN32 AND ARCHITECTURE_arm64) AND NOT APPLE" OFF)
mark_as_advanced(FORCE ENABLE_OPENGL)
@@ -235,7 +249,7 @@ option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
# Install udev rules on Linux (mainly for gyros)
# Only acts on joysticks and nothing else.
cmake_dependent_option(YUZU_INSTALL_UDEV_RULES "Install udev rules for gyro access" OFF "PLATFORM_LINUX" OFF)
cmake_dependent_option(YUZU_INSTALL_UDEV_RULES "Install udev rules for gyro access" OFF "LINUX" OFF)
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
@@ -248,7 +262,7 @@ cmake_dependent_option(YUZU_ROOM_STANDALONE "Enable standalone room executable"
cmake_dependent_option(YUZU_CMD "Compile the eden-cli executable" ON "NOT ANDROID" OFF)
cmake_dependent_option(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR PLATFORM_LINUX" OFF)
cmake_dependent_option(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF)
option(YUZU_DOWNLOAD_TIME_ZONE_DATA "Always download time zone binaries" ON)
set(YUZU_TZDB_PATH "" CACHE STRING "Path to a pre-downloaded timezone database")
@@ -258,7 +272,7 @@ cmake_dependent_option(YUZU_USE_BUNDLED_MOLTENVK "Download bundled MoltenVK lib"
option(YUZU_DISABLE_LLVM "Disable LLVM (useful for CI)" OFF)
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL OFF)
if (EXT_DEFAULT OR PLATFORM_SUN OR PLATFORM_OPENBSD)
if (EXT_DEFAULT OR SOLARIS OR OPENBSD)
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL ON)
endif()
@@ -281,7 +295,7 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/hooks/pre-commit AND NOT EXISTS ${PROJECT_SOURCE
endif()
endif()
if (ARCHITECTURE_arm64 AND (ANDROID OR PLATFORM_LINUX))
if (ARCHITECTURE_arm64 AND (ANDROID OR LINUX))
set(HAS_NCE 1)
add_compile_definitions(HAS_NCE=1)
endif()
@@ -290,7 +304,7 @@ if (YUZU_ROOM)
add_compile_definitions(YUZU_ROOM)
endif()
if (UNIX AND NOT (PLATFORM_LINUX OR WIN32))
if (UNIX AND NOT (LINUX OR WIN32))
if(CXX_APPLE OR CXX_CLANG)
# libc++ has stop_token and jthread as experimental
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fexperimental-library")
@@ -361,6 +375,15 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
# Prefer the -pthread flag on Linux.
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
# It is absolutely promordial to enable on Emscripten
# Not only this allows to use std::thread and std::jthread without exceptions
# but it also fixes several issues related to MT operations.
# ...and CMake doesn't include it by default even when we specify
# that we prefer the pthread flag; why is that? I don't know.
if (PLATFORM_EMSCRIPTEN)
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-pthread>)
add_link_options($<$<COMPILE_LANGUAGE:C,CXX>:-pthread>)
endif()
find_package(RenderDoc MODULE)
@@ -389,7 +412,12 @@ set(BUILD_TESTING OFF)
set(ENABLE_TESTING OFF)
# boost
set(BOOST_INCLUDE_LIBRARIES algorithm icl pool container heap asio headers process filesystem crc variant)
if (PLATFORM_EMSCRIPTEN)
set(BOOST_INCLUDE_LIBRARIES algorithm icl pool container heap headers filesystem crc variant)
set(BOOST_CONTAINER_HEADER_ONLY ON)
else()
set(BOOST_INCLUDE_LIBRARIES algorithm icl pool container heap asio headers process filesystem crc variant)
endif()
AddJsonPackage(boost)
@@ -404,16 +432,18 @@ if (Boost_ADDED)
if (NOT MSVC OR CXX_CLANG)
# boost sucks
if (PLATFORM_SUN)
if (SOLARIS)
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-pthreads>)
endif()
target_compile_options(boost_heap INTERFACE $<$<COMPILE_LANGUAGE:C,CXX>:-Wno-shadow>)
target_compile_options(boost_icl INTERFACE $<$<COMPILE_LANGUAGE:C,CXX>:-Wno-shadow>)
target_compile_options(boost_asio INTERFACE
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-conversion>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-implicit-fallthrough>
)
# May not exist (i.e emscripten)
if (TARGET boost_asio)
target_compile_options(boost_asio INTERFACE
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-conversion>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-implicit-fallthrough>)
endif()
endif()
endif()
@@ -508,9 +538,9 @@ elseif (WIN32)
# PSAPI is the Process Status API
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version crypt32 rpcrt4 gdi32 wldap32 mswsock)
endif()
elseif (PLATFORM_MANAGARM)
elseif (MANAGARM)
set(PLATFORM_LIBRARIES iconv intl)
elseif (PLATFORM_HAIKU)
elseif (HAIKUOS)
# Haiku is so special :)
set(PLATFORM_LIBRARIES bsd /boot/system/lib/libnetwork.so)
elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$")
@@ -604,7 +634,7 @@ if (ENABLE_QT)
# Best practice is to ask for all components at once, so they are from the same version
set(YUZU_QT_COMPONENTS Core Widgets Charts Concurrent Gui)
if (PLATFORM_LINUX OR PLATFORM_FREEBSD)
if (LINUX OR FREEBSD)
list(APPEND YUZU_QT_COMPONENTS DBus)
# yes Qt, we get it
set(QT_NO_PRIVATE_MODULE_WARNING ON)
+1 -1
View File
@@ -13,7 +13,7 @@ find_package_handle_standard_args(Opus
VERSION_VAR OPUS_VERSION
)
if (PLATFORM_MSYS)
if (MSYS2)
FixMsysPath(PkgConfig::OPUS)
endif()
+1 -1
View File
@@ -14,7 +14,7 @@ find_package_handle_standard_args(enet
VERSION_VAR ENET_VERSION
)
if (PLATFORM_MSYS)
if (MSYS2)
FixMsysPath(PkgConfig::ENET)
endif()
+1 -1
View File
@@ -14,7 +14,7 @@ find_package_handle_standard_args(libusb
VERSION_VAR LIBUSB_VERSION
)
if (PLATFORM_MSYS)
if (MSYS2)
FixMsysPath(PkgConfig::LIBUSB)
endif()
+1 -1
View File
@@ -13,7 +13,7 @@ else()
find_package(PkgConfig QUIET)
pkg_search_module(LZ4 QUIET IMPORTED_TARGET liblz4)
if (PLATFORM_MSYS)
if (MSYS2)
FixMsysPath(PkgConfig::LZ4)
endif()
+6 -2
View File
@@ -21,10 +21,14 @@ Eden is free, open-source, copyleft software, licensed under the terms of the [G
### Policies
- No LLM or AI usage, *period*, for patches, pull requests, issues, comments, debugging, brainstorming, etc.
- For details on why, see the [detailed AI policy](docs/AI.md).
- For details on why, see the [detailed AI policy](docs/policies/AI.md).
- Usage of any form of profanity or otherwise unsavory language is generally discouraged.
- This is primarily because it rarely helps to actually understand what's going on.
- Remember that your comments should be focused and actually address what's happening. With very few exceptions, expletives are actively detrimental at best.
- New code must follow the same general style as the surrounding codebase. Exceptions may be granted in certain cases.
- Maintainers reserve the right to change your patches and pull requests at will. We will try to avoid this.
- You should respect all decisions made by the [code owners](docs/CODEOWNERS) in your particular subsystem. If you feel they are overstepping or are incorrect, don't be afraid to stand your ground!
- You should generally respect all decisions made by the [code owners](docs/CODEOWNERS) in your particular subsystem.
- However, if you feel they are overstepping or are incorrect, don't be afraid to stand your ground! Maintainers are not always correct.
- While we do *not* adhere to the terms of a formal code of conduct, you will generally be expected to respect other developers, contributors, and community members.
- You **must** have basic knowledge of [Git](https://git-scm.com/learn). Knowing how to manage your branches and follow proper fork policies is a necessity.
+5 -3
View File
@@ -108,7 +108,7 @@
"find_args": "MODULE GLOBAL",
"hash": "159ed94965018f2a371d45a3bfc1961e5fb1549e501ded70a6b4532d7fe99d0579c18b5195aff6e35f96f399b426cea2650ec9fb75ef80d4c9edeccb51f2e6c9",
"options": [
"HTTPLIB_REQUIRE_OPENSSL ON",
"HTTPLIB_REQUIRE_OPENSSL OFF",
"HTTPLIB_DISABLE_MACOSX_AUTOMATIC_ROOT_CERTIFICATES ON"
],
"patches": [
@@ -190,7 +190,8 @@
"min_version": "3.0.0",
"package": "OpenSSL",
"patches": [
"0001-add-bundled-cert.patch"
"0001-add-bundled-cert.patch",
"0002-wasm-support.patch"
],
"repo": "openssl/openssl",
"version": "openssl-3.6.2"
@@ -213,7 +214,8 @@
"0001-cpmutil-compat.patch",
"0002-use-ccache.patch",
"0003-use-cmake-compiler-flags.patch",
"0004-use-shell-wrapper.patch"
"0004-use-shell-wrapper.patch",
"0005-wasm-support.patch"
],
"repo": "jimmy-park/openssl-cmake",
"version": "3.6.2"
+45 -45
View File
@@ -4332,58 +4332,58 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>[انتظار]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>ملف تعريف جديد</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>أدخل اسم ملف التعريف:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>إنشاء ملف تعريف الإدخال</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>اسم ملف التعريف المحدد غير صالح!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; فشل في إنشاء ملف تعريف الإدخال</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>حذف ملف تعريف الإدخال</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; فشل في مسح ملف تعريف الإدخال</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>تحميل ملف تعريف الإدخال</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; فشل في تحميل ملف تعريف الإدخال</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>حفظ ملف تعريف الإدخال</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; فشل في حفظ ملف تعريف الإدخال</translation>
</message>
@@ -5997,50 +5997,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL غير متوفر!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>OpenGL لا يتم دعم السياقات المشتركة</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>OpenGL لم يتم تجميع إيدن بدعم</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>OpenGL حدث خطأ أثناء تهيئة</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>أو قد لا يكون لديك أحدث برنامج تشغيل للرسومات OpenGL قد لا تدعم بطاقة الرسومات الخاصة بك</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>OpenGL 4.6 حدث خطأ أثناء تهيئة</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>أو قد لا يكون لديك أحدث برنامج تشغيل للرسومات OpenGL 4.6 قد لا تدعم بطاقة الرسومات الخاصة بك.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>قد لا تدعم وحدة معالجة الرسومات لديك ملحقًا واحدًا أو أكثر من ملحقات OpenGL المطلوبة. يُرجى التأكد من تثبيت أحدث برنامج تشغيل للرسومات.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;1%&lt;br&gt;&lt;br&gt;إضافات غير مدعومة: &lt;br&gt;2%</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation>هذا الإصدار لا يدعم OpenGL.</translation>
</message>
@@ -8683,8 +8683,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8697,10 +8697,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8715,9 +8715,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8879,50 +8879,50 @@ p, li { white-space: pre-wrap; }
<translation>[غير معرف]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[غير صالح]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2محور %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2محور %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2حركة %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2زر %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[غير مستخدم]</translation>
+45 -45
View File
@@ -4266,58 +4266,58 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
<translation>[esperant]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Nou perfil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Introdueixi un nom de perfil:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Crear perfil d&apos;entrada</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>El nom de perfil introduït no és vàlid!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Error al crear el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Eliminar perfil d&apos;entrada</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Error al eliminar el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Carregar perfil d&apos;entrada</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Error al carregar el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Guardar perfil d&apos;entrada</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Error al guardar el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
@@ -5923,50 +5923,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL no disponible!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Error al inicialitzar OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>La seva GPU no suporta OpenGL, o no instal·lat els últims controladors gràfics.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Error inicialitzant OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>La seva GPU no suporta OpenGL 4.6, o no instal·lats els últims controladors gràfics.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>És possible que la seva GPU no suporti una o més extensions necessàries d&apos;OpenGL. Si us plau, asseguris de tenir els últims controladors de la tarjeta gràfica.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensions no suportades:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation>Aquesta compilació no suport per a OpenGL.</translation>
</message>
@@ -8569,8 +8569,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8583,10 +8583,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8601,9 +8601,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8765,50 +8765,50 @@ p, li { white-space: pre-wrap; }
<translation>[indefinit]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[invàlid]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Rotació %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eix %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eixos %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Moviment %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Botó %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[sense ús]</translation>
+45 -45
View File
@@ -4258,58 +4258,58 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
<translation>[čekání]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Nový profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Zadejte název profilu:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Vytvořit profil vstupu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Zadaný název profilu není platný!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se vytvořit profil vstupu &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Odstranit profil vstupu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se odstranit profil vstupu &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Načíst profil vstupu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se načíst profil vstupu &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Uložit profil vstupu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se uložit profil vstupu &quot;%1&quot;</translation>
</message>
@@ -5914,50 +5914,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL není k dispozici!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Chyba při inicializaci OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Vaše grafická karta pravděpodobně nepodporuje OpenGL nebo nejsou nainstalovány nejnovější ovladače.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Chyba při inicializaci OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Vaše grafická karta pravděpodobně nepodporuje OpenGL 4.6 nebo nejsou nainstalovány nejnovější ovladače.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Vaše grafická karta pravděpodobně nepodporuje jedno nebo více rozšíření OpenGL. Ujistěte se prosím, že jsou nainstalovány nejnovější ovladače.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Nepodporované rozšíření:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8557,8 +8557,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8571,10 +8571,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8589,9 +8589,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8753,50 +8753,50 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[nepoužito]</translation>
+45 -45
View File
@@ -4266,58 +4266,58 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
<translation>[venter]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Ny Profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Indtast et profilnavn:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Opret Input-Profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Det angivne profilnavn er ikke gyldigt!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Oprettelse af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Slet Input-Profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Sletning af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Indlæs Input-Profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Indlæsning af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Gem Input-Profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Lagring af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
@@ -5922,50 +5922,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8561,8 +8561,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8575,10 +8575,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8593,9 +8593,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8757,50 +8757,50 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[ubrugt]</translation>
+45 -45
View File
@@ -4342,58 +4342,58 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
<translation>[wartet]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Neues Profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Profilnamen eingeben:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Eingabeprofil erstellen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Angegebener Profilname ist nicht gültig!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Erstellen des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Eingabeprofil löschen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Löschen des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Eingabeprofil laden</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Laden des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Eingabeprofil speichern</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Speichern des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
@@ -6007,50 +6007,50 @@ Bitte gehe zu „Konfigurieren“ -&gt; „System“ -&gt; „Netzwerk“ und tr
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL nicht verfügbar!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Gemeinsame OpenGL-Kontexte werden nicht unterstützt.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden wurde nicht mit OpenGL-Unterstützung kompiliert.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Fehler beim Initialisieren von OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Deine Grafikkarte unterstützt kein OpenGL oder du hast nicht den neusten Treiber installiert.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Fehler beim Initialisieren von OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Deine Grafikkarte unterstützt OpenGL 4.6 nicht, oder du benutzt nicht die neuste Treiberversion.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Deine Grafikkarte unterstützt anscheinend nicht eine oder mehrere von yuzu benötigten OpenGL-Erweiterungen. Bitte stelle sicher, dass du den neusten Grafiktreiber installiert hast.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Nicht unterstützte Erweiterungen:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation>Diese Version bietet keine OpenGL-Unterstützung.</translation>
</message>
@@ -8679,8 +8679,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8693,10 +8693,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8711,9 +8711,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8875,50 +8875,50 @@ p, li { white-space: pre-wrap; }
<translation>[undefiniert]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[ungültig]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Achse %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Achse %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Bewegung %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Knopf %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[unbenutzt]</translation>
+45 -45
View File
@@ -4258,58 +4258,58 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>[αναμονή]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Νέο Προφίλ</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Εισαγάγετε ένα όνομα προφίλ:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Δημιουργία Προφίλ Χειρισμού</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Το όνομα του προφίλ δεν είναι έγκυρο!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Η δημιουργία του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Διαγραφή Προφίλ Χειρισμού</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Η διαγραφή του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Φόρτωση Προφίλ Χειρισμού</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Η φόρτωση του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Αποθήκευση Προφίλ Χειρισμού</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Η αποθήκευση του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
</message>
@@ -5913,50 +5913,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>Το OpenGL δεν είναι διαθέσιμο!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Σφάλμα κατα την αρχικοποίηση του OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8553,8 +8553,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8567,10 +8567,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8585,9 +8585,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8749,50 +8749,50 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[άδειο]</translation>
+45 -45
View File
@@ -4340,58 +4340,58 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
<translation>[esperando]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Nuevo perfil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Introduce un nombre de perfil:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Crear perfil de entrada</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>¡El nombre de perfil introducido no es válido!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Error al crear el perfil de entrada &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Eliminar perfil de entrada</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Error al eliminar el perfil de entrada &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Cargar perfil de entrada</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Error al cargar el perfil de entrada &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Guardar perfil de entrada</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Error al guardar el perfil de entrada &quot;%1&quot;</translation>
</message>
@@ -6004,50 +6004,50 @@ Por favor, vaya a Configuración -&gt; Sistema -&gt; Red y selecciona una interf
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>¡OpenGL no está disponible!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Los contextos compartidos de OpenGL no son compatibles.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden no ha sido compilado con soporte para OpenGL.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>¡Error al inicializar OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Tu GPU no soporta OpenGL, o no tienes instalados los últimos controladores gráficos.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>¡Error al iniciar OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Tu GPU no soporta OpenGL 4.6, o no tienes instalado el último controlador de la tarjeta gráfica.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Es posible que la GPU no soporte una o más extensiones necesarias de OpenGL . Por favor, asegúrate de tener los últimos controladores de la tarjeta gráfica.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensiones no soportadas:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation>Esta compilación no tiene soporte para OpenGL.</translation>
</message>
@@ -8681,8 +8681,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8695,10 +8695,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8713,9 +8713,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8877,50 +8877,50 @@ p, li { white-space: pre-wrap; }
<translation>[sin definir]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[inválido]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Rotación %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eje %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eje %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Movimiento %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Botón %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[no usado]</translation>
+45 -45
View File
@@ -4236,58 +4236,58 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
@@ -5891,50 +5891,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>openGL ei ole saatavilla!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Virhe käynnistäessä OpenGL ydintä!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8530,8 +8530,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8544,10 +8544,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8562,9 +8562,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8726,50 +8726,50 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[ei käytössä]</translation>
+45 -45
View File
@@ -4320,58 +4320,58 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
<translation>[en attente]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Nouveau Profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Entrez un nom de profil :</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Créer un profil d&apos;entrée </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Le nom de profil donné est invalide !</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Échec de la création du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Supprimer le profil d&apos;entrée</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Échec de la suppression du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Charger le profil d&apos;entrée</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Échec du chargement du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Sauvegarder le profil d&apos;entrée</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Échec de la sauvegarde du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
@@ -5980,50 +5980,50 @@ Veuillez aller dans Configurer -&gt; Système -&gt; Réseau puis en choisir une.
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL n&apos;est pas disponible !</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Les contextes OpenGL partagés ne sont pas pris en charge.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden n&apos;a pas é compilé avec le support OpenGL</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Erreur lors de l&apos;initialisation d&apos;OpenGL !</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Votre GPU peut ne pas prendre en charge OpenGL, ou vous n&apos;avez pas les derniers pilotes graphiques.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Erreur lors de l&apos;initialisation d&apos;OpenGL 4.6 !</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Votre GPU peut ne pas prendre en charge OpenGL 4.6 ou vous ne disposez pas du dernier pilote graphique: %1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Votre GPU peut ne pas prendre en charge une ou plusieurs extensions OpenGL requises. Veuillez vous assurer que vous disposez du dernier pilote graphique.&lt;br&gt;&lt;br&gt;GL Renderer :&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensions non prises en charge :&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8640,8 +8640,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8654,10 +8654,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8672,9 +8672,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8836,50 +8836,50 @@ p, li { white-space: pre-wrap; }
<translation>[non défini]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[invalide]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Chapeau %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Axe %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Axe %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Mouvement %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Bouton %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[inutilisé]</translation>
+45 -45
View File
@@ -4248,58 +4248,58 @@ A tengely megfordításához mozgasd a kart először függőlegesen, majd vízs
<translation>[várakozás]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Új profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Add meg a profil nevét:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Beviteli profil létrehozása</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>A megadott profilnév érvénytelen!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>A &quot;%1&quot; beviteli profilt nem sikerült létrehozni</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Beviteli profil törlése</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>A &quot;%1&quot; beviteli profilt nem sikerült eltávolítani</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Beviteli profil betöltése</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>A &quot;%1&quot; beviteli profilt nem sikerült betölteni</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Beviteli profil mentése</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>A &quot;%1&quot; beviteli profilt nem sikerült elmenteni</translation>
</message>
@@ -5906,50 +5906,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL nem elérhető!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Hiba történt az OpenGL inicializálása során!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Lehetséges, hogy a GPU-d nem támogatja az OpenGL-t, vagy nem a legfrissebb grafikus illesztőprogram van telepítve.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Hiba történt az OpenGL 4.6 inicializálása során!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Lehetséges, hogy a GPU-d nem támogatja az OpenGL 4.6-ot, vagy nem a legfrissebb grafikus illesztőprogram van telepítve.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Előfordulhat, hogy a GPU-d nem támogat egy vagy több szükséges OpenGL kiterjesztést. Győződj meg róla, hogy a legújabb videokártya-illesztőprogramot használod.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Nem támogatott kiterjesztések:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8552,8 +8552,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8566,10 +8566,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8584,9 +8584,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8748,50 +8748,50 @@ p, li { white-space: pre-wrap; }
<translation>[nem definiált]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[érvénytelen]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Tengely %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Tengely %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Gomb %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[nem használt]</translation>
+45 -45
View File
@@ -4287,58 +4287,58 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
<translation>[menunggu]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Profil Baru</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Masukkan nama profil:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Ciptakan Profil Masukan</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Nama profil yang diberi tidak sah!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Gagal membuat profil masukan &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Hapus Profil Masukan</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Gagal menghapus profil masukan &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Muat Profil Masukan</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Gagal memuat profil masukan &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Simpat Profil Masukan</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Gagal menyimpan profil masukan &quot;%1&quot;</translation>
</message>
@@ -5942,50 +5942,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL tidak tersedia!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Terjadi kesalahan menginisialisasi OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>VGA anda mungkin tidak mendukung OpenGL, atau anda tidak memiliki pemacu piranti (driver) grafis terbaharu.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Terjadi kesalahan menginisialisasi OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>VGA anda mungkin tidak mendukung OpenGL 4.6, atau anda tidak memiliki pemacu piranti (driver) grafis terbaharu.&lt;br&gt;&lt;br&gt;Pemuat GL:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>VGA anda mungkin tidak mendukung satu atau lebih ekstensi OpenGL. Mohon pastikan bahwa anda memiliki pemacu piranti (driver) grafis terbaharu.&lt;br&gt;&lt;br&gt;Pemuat GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Ekstensi yang tidak didukung:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8581,8 +8581,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8595,10 +8595,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8613,9 +8613,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8777,50 +8777,50 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Gerakan %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation type="unfinished"/>
+45 -45
View File
@@ -4332,58 +4332,58 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
<translation>[in attesa]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Nuovo profilo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Inserisci un nome profilo:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Crea un profilo di input</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Il nome profilo inserito non è valido!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Impossibile creare il profilo di input &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Elimina un profilo di input</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Impossibile eliminare il profilo di input &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Carica un profilo di input</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Impossibile caricare il profilo di input &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Salva un profilo di Input</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Impossibile creare il profilo di input &quot;%1&quot;</translation>
</message>
@@ -6001,50 +6001,50 @@ Vai su Configura -&gt; Sistema -&gt; Rete e selezionane una.</translation>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL non disponibile!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Gli shared context di OpenGL non sono supportati.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden non è stato compilato con il supporto a OpenGL.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Errore durante l&apos;inizializzazione di OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>La tua GPU potrebbe non supportare OpenGL, o non hai installato l&apos;ultima versione dei driver video.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Errore durante l&apos;inizializzazione di OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>La tua GPU potrebbe non supportare OpenGL 4.6, o non hai installato l&apos;ultima versione dei driver video.&lt;br&gt;&lt;br&gt;Renderer GL:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>La tua GPU potrebbe non supportare una o più estensioni OpenGL richieste. Assicurati di aver installato i driver video più recenti.&lt;br&gt;&lt;br&gt;Renderer GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Estensioni non supportate:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8666,8 +8666,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8680,10 +8680,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8698,9 +8698,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8862,50 +8862,50 @@ p, li { white-space: pre-wrap; }
<translation>[indefinito]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[non valido]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Freccia %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Asse %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Asse %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Movimento %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Pulsante %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[inutilizzato]</translation>
+45 -45
View File
@@ -4272,58 +4272,58 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation> &quot;%1&quot; </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation> &quot;%1&quot; </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation> &quot;%1&quot; </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation> &quot;%1&quot; </translation>
</message>
@@ -5929,50 +5929,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGLは使用できません</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>OpenGL初期化エラー</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>GPUがOpenGLをサポートしていないか</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>OpenGL4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>GPUがOpenGL4.6&lt;br&gt;&lt;br&gt;GL :&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>GPUが1つ以上の必要なOpenGL拡張機能をサポートしていない可能性があります使&lt;br&gt;&lt;br&gt;GL :&lt;br&gt;%1&lt;br&gt;&lt;br&gt;:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8575,8 +8575,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8589,10 +8589,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8607,9 +8607,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8771,50 +8771,50 @@ p, li { white-space: pre-wrap; }
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[使]</translation>
+45 -45
View File
@@ -4353,58 +4353,58 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation> </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation> :</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation> </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation> !</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation> </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation> </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation> </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; </translation>
</message>
@@ -6017,50 +6017,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL을 !</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>OpenGL .</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden은 OpenGL .</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>OpenGL을 !</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation> GPU가 OpenGL을 , .</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>OpenGL 4.6 !</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation> GPU가 OpenGL 4.6 .&lt;br&gt;&lt;br&gt;GL :&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation> GPU가 OpenGL . .&lt;br&gt;&lt;br&gt;GL :&lt;br&gt;%1&lt;br&gt;&lt;br&gt; :&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation> OpenGL을 .</translation>
</message>
@@ -8688,8 +8688,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8702,10 +8702,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8720,9 +8720,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8884,50 +8884,50 @@ p, li { white-space: pre-wrap; }
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2 %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[]</translation>
+45 -45
View File
@@ -4269,58 +4269,58 @@ For å invertere aksene, flytt først stikken vertikalt, og så horistonalt.</tr
<translation>[venter]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Ny profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Skriv inn et profilnavn:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Opprett inndataprofil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Det oppgitte profilenavnet er ugyldig!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Klarte ikke lage inndataprofil &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Slett inndataprofil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Klarte ikke slette inndataprofil &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Last inn inndataprofil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Klarte ikke laste inn inndataprofil &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Lagre inndataprofil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Klarte ikke lagre inndataprofil &quot;%1&quot;</translation>
</message>
@@ -5926,50 +5926,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL ikke tilgjengelig!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Delte OpenGL-kontekster støttes ikke.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Feil under initialisering av OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Det kan hende at GPU-en din ikke støtter OpenGL, eller at du ikke har den nyeste grafikkdriveren.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Feil under initialisering av OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Det kan hende at GPU-en din ikke støtter OpenGL 4.6, eller at du ikke har den nyeste grafikkdriveren.&lt;br&gt;&lt;br&gt;GL-renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Det kan hende at GPU-en din ikke støtter én eller flere nødvendige OpenGL-utvidelser. Vennligst sørg for at du har den nyeste grafikkdriveren.&lt;br&gt;&lt;br&gt;GL-renderer: &lt;br&gt;%1&lt;br&gt;&lt;br&gt;Ikke-støttede utvidelser:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8574,8 +8574,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8588,10 +8588,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8606,9 +8606,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8770,50 +8770,50 @@ p, li { white-space: pre-wrap; }
<translation>[udefinert]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[ugyldig]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Akse %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Akse %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Bevegelse %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Knapp %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[ubrukt]</translation>
+45 -45
View File
@@ -4266,58 +4266,58 @@ Om de assen om te keren, beweeg je de joystick eerst verticaal en vervolgens hor
<translation>[aan het wachten]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Nieuw Profiel</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Voer een profielnaam in:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Maak Invoerprofiel</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>De ingevoerde profielnaam is niet geldig!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Kon invoerprofiel &quot;%1&quot; niet maken</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Verwijder Invoerprofiel</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Kon invoerprofiel &quot;%1&quot; niet verwijderen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Laad Invoerprofiel</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Kon invoerprofiel &quot;%1&quot; niet laden</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Sla Invoerprofiel op</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Kon invoerprofiel &quot;%1&quot; niet opslaan</translation>
</message>
@@ -5924,50 +5924,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL niet beschikbaar!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>OpenGL gedeelde contexten worden niet ondersteund.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Fout tijdens het initialiseren van OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Je GPU ondersteunt mogelijk geen OpenGL, of je hebt niet de laatste grafische stuurprogramma.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Fout tijdens het initialiseren van OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Je GPU ondersteunt mogelijk OpenGL 4.6 niet, of je hebt niet het laatste grafische stuurprogramma.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Je GPU ondersteunt mogelijk een of meer vereiste OpenGL-extensies niet. Zorg ervoor dat je het laatste grafische stuurprogramma hebt.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Ondersteunde extensies:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8570,8 +8570,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8584,10 +8584,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8602,9 +8602,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8766,50 +8766,50 @@ p, li { white-space: pre-wrap; }
<translation>[ongedefinieerd]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[ongeldig]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2As %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2As %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Beweging %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Knop %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[ongebruikt]</translation>
+45 -45
View File
@@ -4330,58 +4330,58 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
<translation>[oczekiwanie]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Nowy profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Wpisz nazwę profilu:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Utwórz profil wejściowy</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Podana nazwa profilu jest nieprawidłowa!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Nie udało się utworzyć profilu wejściowego &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Usuń profil wejściowy</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Nie udało się usunąć profilu wejściowego &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Załaduj profil wejściowy</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Nie udało się wczytać profilu wejściowego &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Zapisz profil wejściowy</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Nie udało się zapisać profilu wejściowego &quot;%1&quot;</translation>
</message>
@@ -5990,50 +5990,50 @@ Przejdź do sekcji Konfiguracja -&gt; System -&gt; Sieć i dokonaj wyboru.</tran
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL niedostępny!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Współdzielone konteksty OpenGL nie obsługiwane.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden nie został skompilowany z obsługą OpenGL.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Błąd podczas inicjowania OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Twoja karta graficzna może nie obsługiwać OpenGL lub nie masz najnowszych sterowników karty graficznej.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Błąd podczas inicjowania OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Twoja karta graficzna może nie obsługiwać OpenGL 4.6 lub nie masz najnowszych sterowników karty graficznej.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Twoja karta graficzna może nie obsługiwać co najmniej jednego wymaganego rozszerzenia OpenGL. Upewnij się, że masz najnowsze sterowniki karty graficznej&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Nieobsługiwane rozszerzenia:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8669,8 +8669,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8683,10 +8683,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8701,9 +8701,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8865,50 +8865,50 @@ p, li { white-space: pre-wrap; }
<translation>[niezdefiniowane]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[niepoprawne]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Drążek %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2 %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Ruch %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Przycisk %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[nieużywane]</translation>
+45 -45
View File
@@ -4332,58 +4332,58 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
<translation>[em espera]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Novo Perfil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Introduza um novo nome de perfil:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Criar perfil de controlo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>O nome de perfil dado não é válido!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Falha ao criar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Apagar Perfil de Controlo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Falha ao apagar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Carregar perfil de controlo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Falha ao carregar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Salvar perfil de controle</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Falha ao salvar o perfil de controle &quot;%1&quot;</translation>
</message>
@@ -5997,50 +5997,50 @@ Por favor vá para Configuração -&gt; Sistema -&gt; Rede e selecione.</transla
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL não está disponível!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Shared contexts do OpenGL não são suportados.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden não foi compilado com suporte a OpenGL.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Erro ao inicializar OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>O seu GPU pode não suportar OpenGL, ou não tem os drivers gráficos mais recentes.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Erro ao inicializar o OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>A sua GPU não tem suporte a OpenGL 4.6, talvez você não esteja usando os drivers gráficos mais atuais.&lt;br&gt;&lt;br&gt;Renderizador GL:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Sua GPU pode não suportar uma ou mais extensões necessárias do OpenGL. Verifique se você possui a última versão dos drivers gráficos.&lt;br&gt;&lt;br&gt;Renderizador GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensões não suportadas:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation>Essa build não suporte a OpenGL.</translation>
</message>
@@ -8647,8 +8647,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8661,10 +8661,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8679,9 +8679,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8843,50 +8843,50 @@ p, li { white-space: pre-wrap; }
<translation>[indefinido]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[inválido]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Direcional %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eixo %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eixo %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Movimentação %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Botão %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[sem uso]</translation>
+45 -45
View File
@@ -4269,58 +4269,58 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
<translation>[em espera]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Novo Perfil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Introduza um novo nome de perfil:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Criar perfil de controlo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>O nome de perfil dado não é válido!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Falha ao criar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Apagar Perfil de Controlo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Falha ao apagar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Carregar perfil de controlo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Falha ao carregar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Guardar perfil de controlo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Falha ao guardar o perfil de controlo &quot;%1&quot;</translation>
</message>
@@ -5927,50 +5927,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL não está disponível!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Shared contexts do OpenGL não são suportados.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Erro ao inicializar OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>O seu GPU pode não suportar OpenGL, ou não tem os drivers gráficos mais recentes.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Erro ao inicializar o OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>O teu GPU pode não suportar OpenGL 4.6, ou não tem os drivers gráficos mais recentes.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Sua GPU pode não suportar uma ou mais extensões necessárias do OpenGL. Verifique se você possui a última versão dos drivers gráficos.&lt;br&gt;&lt;br&gt;Renderizador GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensões não suportadas:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8573,8 +8573,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8587,10 +8587,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8605,9 +8605,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8769,50 +8769,50 @@ p, li { white-space: pre-wrap; }
<translation>[indefinido]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[inválido]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Direcional %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eixo %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eixo %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Movimentação %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Botão %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[sem uso]</translation>
+45 -45
View File
@@ -4339,58 +4339,58 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>[ожидание]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Новый профиль</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Введите имя профиля:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Создать профиль управления</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Заданное имя профиля недействительно!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Не удалось создать профиль управления &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Удалить профиль управления</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Не удалось удалить профиль управления &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Загрузить профиль управления</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Не удалось загрузить профиль управления &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Сохранить профиль управления</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Не удалось сохранить профиль управления &quot;%1&quot;</translation>
</message>
@@ -6005,50 +6005,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL не доступен!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Общие контексты OpenGL не поддерживаются.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden не был скомпилирован с поддержкой OpenGL.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Ошибка при инициализации OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Ваш ГП может не поддерживать OpenGL, или у вас установлен устаревший графический драйвер.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Ошибка при инициализации OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Ваш ГП может не поддерживать OpenGL 4.6, или у вас установлен устаревший графический драйвер.&lt;br&gt;&lt;br&gt;Рендерер GL:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Ваш ГП может не поддерживать одно или несколько требуемых расширений OpenGL. Пожалуйста, убедитесь в том, что у вас установлен последний графический драйвер.&lt;br&gt;&lt;br&gt;Рендерер GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Неподдерживаемые расширения:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation>В этой сборке отсутствует поддержка OpenGL.</translation>
</message>
@@ -8685,8 +8685,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8699,10 +8699,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8717,9 +8717,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8881,50 +8881,50 @@ p, li { white-space: pre-wrap; }
<translation>[не определено]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[недопустимо]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Крест. %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Ось %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Ось %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Движение %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Кнопка %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[не используется]</translation>
+45 -45
View File
@@ -4347,58 +4347,58 @@ Om du vill invertera axlarna för du joysticken först vertikalt och sedan horis
<translation>[väntar]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Ny profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Ange ett profilnamn:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Skapa inmatningsprofil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Det angivna profilnamnet är inte giltigt!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Misslyckades med att skapa inmatningsprofilen &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Radera inmatningsprofil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Misslyckades med att ta bort inmatningsprofilen &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Läs in inmatningsprofil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Misslyckades med att läsa in inmatningsprofilen &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Spara inmatningsprofil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Misslyckades med att spara inmatningsprofilen &quot;%1&quot;</translation>
</message>
@@ -6012,50 +6012,50 @@ Gå till Konfigurera -&gt; System -&gt; Nätverk och gör ett val.</translation>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL är inte tillgängligt!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Delade OpenGL-kontexter stöds inte.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden har inte kompilerats med OpenGL-stöd.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Fel vid initiering av OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Din GPU kanske inte stöder OpenGL, eller har du inte den senaste grafikdrivrutinen.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Fel vid initiering av OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Din GPU kanske inte stöder OpenGL 4.6, eller har du inte den senaste grafikdrivrutinen.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Din GPU kanske inte stöder ett eller flera av de nödvändiga OpenGL-tilläggen. Se till att du har den senaste grafikdrivrutinen.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Tillägg som inte stöds:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8686,8 +8686,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8700,10 +8700,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8718,9 +8718,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8882,50 +8882,50 @@ p, li { white-space: pre-wrap; }
<translation>[odefinierad]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[ogiltig]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hatt %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Axel %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Axel %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Motion %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Knapp %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[oanvänd]</translation>
+45 -45
View File
@@ -4297,58 +4297,58 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
<translation>[bekleniyor]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Yeni Profil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Bir profil ismi girin:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Kontrol Profili Oluştur</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Girilen profil ismi geçerli değil!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili oluşturulamadı </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Kontrol Profilini Kaldır</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili kaldırılamadı</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Kontrol Profilini Yükle</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili yüklenemedi</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Kontrol Profilini Kaydet</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili kaydedilemedi</translation>
</message>
@@ -5955,50 +5955,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL kullanıma uygun değil!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>OpenGL paylaşılan bağlam desteklenmiyor.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>OpenGl başlatılırken bir hata oluştu!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>GPU&apos;nuz OpenGL desteklemiyor veya güncel bir grafik sürücüsüne sahip değilsiniz.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>OpenGl 4.6 başlatılırken bir hata oluştu!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>GPU&apos;nuz OpenGL 4.6&apos;yı desteklemiyor veya güncel bir grafik sürücüsüne sahip değilsiniz.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>GPU&apos;nuz gereken bir yada daha fazla OpenGL eklentisini desteklemiyor Lütfen güncel bir grafik sürücüsüne sahip olduğunuzdan emin olun.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt; Desteklenmeyen Eklentiler:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8601,8 +8601,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8615,10 +8615,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8633,9 +8633,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8797,50 +8797,50 @@ p, li { white-space: pre-wrap; }
<translation>[belirsiz]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[geçersiz]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eksen %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eksen %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Hareket %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Tuş %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[kullanılmayan]</translation>
+45 -45
View File
@@ -4344,58 +4344,58 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>[очікування]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Новий профіль</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Введіть назву профілю:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Створити профіль введення</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Задана назва профілю неправильна!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Не вдалося створити профіль введення «%1»</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Видалити профіль введення</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Не вдалося видалити профіль введення «%1»</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Завантажити профіль введення</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Не вдалося завантажити профіль введення «%1»</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Зберегти профіль введення</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Не вдалося зберегти профіль введення «%1»</translation>
</message>
@@ -6009,50 +6009,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL недоступний!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Спільні контексти OpenGL не підтримуються.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden не скомпільовано з підтримкою OpenGL.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Помилка під час ініціалізації OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Ваш ГП може не підтримувати OpenGL або у вас встановлено застарілий графічний драйвер.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Помилка під час ініціалізації OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Ваш ГП може не підтримувати OpenGL 4.6 або у вас встановлено застарілий графічний драйвер.&lt;br&gt;&lt;br&gt;Візуалізатор GL:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Ваш ГП може не підтримувати одне або кілька розширень, необхідних для OpenGL. Переконайтеся, що у вас встановлено останній графічний драйвер.&lt;br&gt;&lt;br&gt;Візуалізатор GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Непідтримувані розширення:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation>Ця збірка не підтримує OpenGL.</translation>
</message>
@@ -8689,8 +8689,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8703,10 +8703,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8721,9 +8721,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8885,50 +8885,50 @@ p, li { white-space: pre-wrap; }
<translation>[невизначено]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[неправильно]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Напр. %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Вісь %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Вісь %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Рух %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Кнопка %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[не використано]</translation>
+45 -45
View File
@@ -4269,58 +4269,58 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>[đang chờ]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Hồ mới</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Nhập tên hồ :</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Tạo hồ đu vào</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Tên hồ không hợp lệ!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Thất bại khi tạo hồ đu vào &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Xoá hồ đu vào</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Thất bại khi xoá hồ đu vào &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Nạp hồ đu vào</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Thất bại khi nạp hồ đu vào &quot;%1&quot;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Lưu hồ đu vào</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Thất bại khi lưu hồ dầu vào &quot;%1&quot;</translation>
</message>
@@ -5927,50 +5927,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL không khả dụng!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Các ngữ cảnh OpenGL chung không đưc hỗ trợ.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Lỗi khi khởi tạo OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>GPU của bạn thể không hỗ trợ OpenGL, hoặc bạn không driver đ hoạ mới nhất.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Lỗi khi khởi tạo OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>GPU của bạn thể không hỗ trợ OpenGL 4.6, hoặc bạn không driver đ hoạ mới nhất.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>GPU của bạn thể không hỗ trợ một hoặc nhiều tiện ích OpenGL cần thiết. Vui lòng đm bảo bạn driver đ hoạ mới nhất.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Tiện ích không hỗ trợ:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8573,8 +8573,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8587,10 +8587,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8605,9 +8605,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8769,50 +8769,50 @@ p, li { white-space: pre-wrap; }
<translation>[không xác đnh]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[không hợp lệ]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Trục %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Trục %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Chuyển đng %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Nút %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[không sử dụng]</translation>
+45 -45
View File
@@ -4269,58 +4269,58 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>[Chờ]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation>Hồ mới</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation>Nhập tên hồ :</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation>Tạo Hồ Phím</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation>Tên hồ không hợp lệ!</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Quá trình tạo hồ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation>Xóa Hồ Phím</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Quá trình xóa hồ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation>Nạp Hồ Phím</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Quá trình nạp hồ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation>Lưu Hồ Phím</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Quá trình lưu hồ phím &quot;%1&quot; thất bại</translation>
</message>
@@ -5927,50 +5927,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>Không sẵn OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Các ngữ cảnh OpenGL chung không đưc hỗ trợ.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation>Đã xảy ra lỗi khi khởi tạo OpenGL!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>GPU của bạn thể không hỗ trợ OpenGL, hoặc bạn không driver đ hoạ mới nhất.</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Lỗi khi khởi tạo OpenGL 4.6!</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>GPU của bạn thể không hỗ trợ OpenGL 4.6, hoặc bạn không driver đ hoạ mới nhất.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>GPU của bạn thể không hỗ trợ một hoặc nhiều tiện ích OpenGL cần thiết. Vui lòng đm bảo bạn driver đ hoạ mới nhất.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Tiện ích không hỗ trợ:&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8573,8 +8573,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8587,10 +8587,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8605,9 +8605,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8769,50 +8769,50 @@ p, li { white-space: pre-wrap; }
<translation>[không xác đnh]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[không hợp lệ]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2Trục %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Trục %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2Chuyển đng %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2Nút %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[không sử dụng]</translation>
+45 -45
View File
@@ -4332,58 +4332,58 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation> &quot;%1&quot; </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation> &quot;%1&quot; </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation> &quot;%1&quot; </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation> &quot;%1&quot; </translation>
</message>
@@ -5995,50 +5995,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>OpenGL </translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation> OpenGL </translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation>Eden OpenGL</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation> OpenGL </translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation> GPU OpenGL </translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation> OpenGL 4.6 </translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation> GPU OpenGL 4.6 &lt;br&gt;&lt;br&gt;GL &lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation> GPU OpenGL &lt;br&gt;&lt;br&gt;GL &lt;br&gt;%1&lt;br&gt;&lt;br&gt;&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation> OpenGL</translation>
</message>
@@ -8664,8 +8664,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8678,10 +8678,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8696,9 +8696,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8860,50 +8860,50 @@ p, li { white-space: pre-wrap; }
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2 %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[使]</translation>
+45 -45
View File
@@ -4296,58 +4296,58 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>New Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
<source>Enter a profile name:</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
<source>Create Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
<source>The given profile name is not valid!</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>%1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
<source>Delete Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>%1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
<source>Load Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>%1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
<source>Save Input Profile</source>
<translation></translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>%1</translation>
</message>
@@ -5954,50 +5954,50 @@ Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
<context>
<name>GRenderWindow</name>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="850"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
<source>OpenGL not available!</source>
<translation>使 OpenGL </translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
<source>OpenGL shared contexts are not supported.</source>
<translation> OpenGL </translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
<source>Eden has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
<source>Error while initializing OpenGL!</source>
<translation> OpenGL </translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation> GPU OpenGL</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="902"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation> OpenGL 4.6 </translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation> GPU OpenGL 4.6&lt;br&gt;&lt;br&gt;GL &lt;br&gt;%1</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="911"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation> GPU OpenGL &lt;br&gt;&lt;br&gt;GL &lt;br&gt;%1&lt;br&gt;&lt;br&gt;&lt;br&gt;%2</translation>
</message>
<message>
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
<source>This build doesn&apos;t have OpenGL support.</source>
<translation type="unfinished"/>
</message>
@@ -8599,8 +8599,8 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="395"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="461"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="396"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="183"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="251"/>
<source>[not set]</source>
@@ -8613,10 +8613,10 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="484"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="488"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="492"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="497"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="274"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="278"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="282"/>
@@ -8631,9 +8631,9 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="469"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="499"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="456"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="470"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="500"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="259"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="289"/>
@@ -8795,50 +8795,50 @@ p, li { white-space: pre-wrap; }
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>[invalid]</source>
<translation>[]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="424"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="447"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="450"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
<source>%1%2Axis %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="219"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2 %3,%4,%5</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="223"/>
<source>%1%2Motion %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="438"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
<source>%1%2Button %3</source>
<translation>%1%2 %3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
<source>[unused]</source>
<translation>[使]</translation>
+17
View File
@@ -12,6 +12,7 @@
- [NetBSD](#netbsd)
- [MSYS2](#msys2)
- [RedoxOS](#redoxos)
- [WebAssembly](#webassembly)
- [Windows](#windows)
- [Windows 7, Windows 8 and Windows 8.1](#windows-7-windows-8-and-windows-81)
- [Windows Vista and below](#windows-vista-and-below)
@@ -245,6 +246,22 @@ The package install may randomly hang at times, in which case it has to be resta
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.
## WebAssembly
**It doesn't run on a browser yet.**
WebAssembly or "WASM" for short is a *mainly 32-bit* virtual "architecture" which we only bootstrap on 64-bit only. This means not only the program runs 2x slower than it would due to using JS BigInt, it also means we need to go out of our way to enable proper 64-bit support via `-sMEMORY64=1`, however once again, some Emscripten quirks force us to specify `-s MEMORY64` and `-sMEMORY64=1` at the same time: see the [CI build script](../.ci/wasm/build.sh).
The WebAssembly target is very heavy on resources and requires at least 4 times the normal amount of resources that a native build would. Additionally, the only supported environment is Firefox at the moment, node.js and `wasmtime are not supported (PRs welcome!)
If running under Firefox and you hit "out of memory" on dev console, close the entire tab, then open it back again, see [this issue](https://github.com/emscripten-core/emscripten/issues/8126).
To run the binary (after building) you should be fine with `node ./eden-cli.js`. For obvious reasons no Qt frontend is available on WASM, support for Vulkan is done charily via [llvmpipe2wasm](https://github.com/Devsh-Graphics-Programming/llvmpipe2wasm).
If you run into the error "acorn.js can't be found" check [this associated issue](https://github.com/emscripten-core/emscripten/issues/13368), the fix in short is `npm --global install acorn`. On FreeBSD you could run `npm` under root, or you could do the sane thing and do `sudo chown -R $USER /usr/local/lib/node_modules/ /usr/local/bin/` (remember to restore permissions afterwards!) unless you wish to run `npm` under root which is generally a bad idea.
2026-06-09: As of writing, no Dynarmic-based JIT is possible on this target, full interpreted emulation is the only reasonable option. While there is some efforts on making a JIT like [here](https://github.com/wingo/wasm-jit) or [here](https://wingolog.org/archives/2022/08/18/just-in-time-code-generation-within-webassembly), the result is so latency expensive we're better off using an interpreter instead.
## Windows
### Windows 7, Windows 8 and Windows 8.1
+8
View File
@@ -359,6 +359,14 @@ pkgman install git cmake patch libfmt_devel nlohmann_json lz4_devel opus_devel b
[Caveats](./Caveats.md#haikuos).
</details>
<details>
<summary>WebAssembly</summary>
Emscripten: The default installation should provide enough.
[Caveats](./Caveats.md#wasm).
</details>
<details>
<summary>RedoxOS</summary>
+2
View File
@@ -46,6 +46,8 @@ These options control dependencies.
- `YUZU_INSTALL_UDEV_RULES` (OFF) Install udev rules to enable hidraw access
- Needed for gyroscopes
- Only available on Linux
- `ENABLE_DEBUG_TOOLS` (OFF) Enables debugging and development tools, see [tools](../tools/README.md).
- `ENABLE_WERROR` (ON) Enables warnings as errors (-Werror).
### Flavors
+1 -1
View File
@@ -34,7 +34,7 @@ Everyone has their own way of viewing good/bad C++ practices, my general outline
- The reason is because the project has `-fno-rtti` disabled by default, due to the costs of dynamic polymorphism.
- Always copy-on-value for objects with `sizeof(void *) >= sizeof(T) * 2`, i.e objects sized as 2 pointers or less, for bigger objects you can use ref/pointer as usual.
- Try using move semantics instead of references, whenever possible.
- Remember function parameters are extremelly cheap as fuck, don't be afraid to place upto 8 parameters on a given function.
- Function parameters are cheap. Don't be afraid to use as many as needed (API usability permitting).
- Don't save a reference in structures of a parent object, i.e:
```c++
+1 -1
View File
@@ -164,7 +164,7 @@ if (NOT ANDROID)
AddJsonPackage(sdl3)
else()
message(STATUS "Using bundled SDL3")
if (PLATFORM_FREEBSD)
if (FREEBSD)
set(BUILD_SHARED_LIBS ON)
endif()
AddJsonPackage(sdl3-ci)
+9 -5
View File
@@ -94,6 +94,10 @@ function(detect_architecture_symbols)
endfunction()
# arches here are put in a sane default order of importance
# EXCEPT FOR WASM, which must be probed for FIRST, because some genius
# decided to also allow the host architecture to be defined when building
# for the emscripten target, absolutely lovely detail.
#
# notably, amd64, arm64, and riscv (in order) are BY FAR the most common
# mips is pretty popular in embedded
# ppc64 is pretty popular in supercomputing
@@ -101,6 +105,11 @@ endfunction()
# ia64 exists
# the rest exist, but are probably less popular than ia64
detect_architecture_symbols(
ARCH wasm
SYMBOLS
"__EMSCRIPTEN__")
detect_architecture_symbols(
ARCH arm64
SYMBOLS
@@ -203,11 +212,6 @@ detect_architecture_symbols(
"__loongarch__"
"__loongarch64")
detect_architecture_symbols(
ARCH wasm
SYMBOLS
"__EMSCRIPTEN__")
# "generic" target
# If you have reached this point, you're on some as-of-yet unsupported architecture.
# See the docs up above for known unsupported architectures
+44 -76
View File
@@ -1,45 +1,49 @@
# SPDX-FileCopyrightText: Copyright 2025 crueter
# SPDX-FileCopyrightText: Copyright 2026 crueter
# SPDX-License-Identifier: LGPL-3.0-or-later
## DetectPlatform ##
# This is a small helper that sets PLATFORM_<platform> variables for various
# This is a small helper that sets platform variables for various
# operating systems and distributions. Note that Apple, Windows, Android, etc.
# are not covered, as CMake already does that for us.
# It also sets CXX_<compiler> for the C++ compiler.
# Furthermore, some platforms have really silly requirements/quirks, so this
# also does a few of those.
# This module contains contributions from the Eden Emulator Project,
# notably from crueter and Lizzie.
if (${CMAKE_SYSTEM_NAME} STREQUAL "SunOS")
set(PLATFORM_SUN ON)
set(SOLARIS ON)
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "OpenOrbis")
set(PLATFORM_PS4 ON)
set(OPENORBIS ON)
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "managarm")
set(PLATFORM_MANAGARM ON)
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
set(PLATFORM_FREEBSD ON)
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)
set(MANAGARM ON)
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Haiku")
set(PLATFORM_HAIKU ON)
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
set(PLATFORM_LINUX ON)
set(HAIKUOS ON)
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Emscripten")
set(EMSCRIPTEN ON)
message(WARNING "${CMAKE_LIBRARY_ARCHITECTURE} support is highly experimental!!!")
endif()
# BSD
if (DEFINED BSD)
if ("${BSD}" STREQUAL "DragonFlyBSD")
set(DRAGONFLYBSD ON)
elseif ("${BSD}" STREQUAL "FreeBSD")
set(FREEBSD ON)
elseif ("${BSD}" STREQUAL "OpenBSD")
set(OPENBSD ON)
elseif ("${BSD}" STREQUAL "NetBSD")
set(NETBSD ON)
endif()
endif()
# dumb heuristic to detect msys2
if (CMAKE_COMMAND MATCHES "msys64")
set(PLATFORM_MSYS ON)
set(MSYS2 ON)
endif()
# compiler checks
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(CXX_CLANG ON)
if (MSVC)
@@ -47,8 +51,6 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
endif()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(CXX_GCC ON)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
set(CXX_CL ON)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
set(CXX_ICC ON)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
@@ -61,37 +63,13 @@ if(MINGW AND CXX_CLANG)
set(CMAKE_SYSTEM_VERSION 10.0.0)
endif()
# NB: this does not account for SPARC
if (PLATFORM_SUN)
# Terrific OpenIndiana pkg shenanigans
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 "${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
if (CMAKE_BUILD_TYPE MATCHES "Release")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
endif()
if (CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
endif()
endif()
# MSYS2 utilities
# Sometimes, PkgConfig modules will incorrectly reference / when CMake
# wants you to reference it as C:/msys64/. This function corrects that.
# Example in a Find module:
#[[
if (PLATFORM_MSYS)
if (MSYS2)
FixMsysPath(PkgConfig::OPUS)
endif()
]]
@@ -116,41 +94,31 @@ function(FixMsysPath target)
INTERFACE_INCLUDE_DIRECTORIES ${include_dir})
endfunction()
# MSYSTEM handling + program_path
if (PLATFORM_MSYS)
# 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()
# This saves a truly ridiculous amount of time during linking
# In my tests, without this, Eden takes 2 mins, with this, it takes 3-5 seconds
# or on GitHub Actions, 10 minutes -> 3 seconds
# Saves linking time
if (MINGW)
set(MINGW_FLAGS "-Wl,--strip-all -Wl,--gc-sections")
set(CMAKE_EXE_LINKER_FLAGS_RELEASE
"${CMAKE_EXE_LINKER_FLAGS_RELEASE} ${MINGW_FLAGS}")
endif()
if (PLATFORM_EMSCRIPTEN)
set(EMSCRIPTEN_C_FLAGS "-s MEMORY64 -m64 -pipe -sMEMORY64=1")
set(EMSCRIPTEN_LINK_FLAGS "-sMEMORY64=1 -m64 -Wl,-mwasm64 -sASYNCIFY=1")
# This prevents FFmpeg and other libraries from assuming it's the host's CPU
# Additionally some Emscripten installs may not be very good... generally
set(EMSCRIPTEN_SYSTEM_PROCESSOR wasm)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EMSCRIPTEN_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EMSCRIPTEN_C_FLAGS}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${EMSCRIPTEN_LINK_FLAGS}")
set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} ${EMSCRIPTEN_LINK_FLAGS}")
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} ${EMSCRIPTEN_LINK_FLAGS}")
unset(EMSCRIPTEN_C_FLAGS)
unset(EMSCRIPTEN_LINK_FLAGS)
endif()
# awesome
if (PLATFORM_FREEBSD OR PLATFORM_DRAGONFLYBSD)
set(CMAKE_EXE_LINKER_FLAGS
"${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/local/lib")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/local/lib")
endif()
+60 -23
View File
@@ -37,26 +37,39 @@ if (NOT YUZU_USE_BUNDLED_FFMPEG)
elseif (NOT (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES CMAKE_SYSTEM_PROCESSOR
AND CMAKE_HOST_SYSTEM_NAME MATCHES CMAKE_SYSTEM_NAME))
string(TOLOWER "${CMAKE_SYSTEM_NAME}" FFmpeg_SYSTEM_NAME)
if (FFmpeg_SYSTEM_NAME STREQUAL "openorbis" OR FFmpeg_SYSTEM_NAME STREQUAL "managarm")
# All of these platforms are supported by ffmpeg as native build OSes
# anything else (like Redox or Managarm or PS4) is NOT natively supported
# hence, assume the "unix like" is just "none" for the sake of OUR sanity.
# If YOUR OS/platform has actual native support:
# 1. fucking congrats
# 2. feel free to add it on the condition below
if (NOT (PLATFORM_NETBSD OR PLATFORM_SUN OR PLATFORM_FREEBSD
OR PLATFORM_OPENBSD OR PLATFORM_DRAGONFLYBSD OR PLATFORM_HAIKU
OR PLATFORM_LINUX OR PLATFORM_MSYS OR WIN32 OR ANDROID OR APPLE))
set(FFmpeg_SYSTEM_NAME "none")
endif()
# TODO: Can we really do better? Auto-detection? Something clever?
list(APPEND FFmpeg_CROSS_COMPILE_FLAGS
--enable-cross-compile
--arch="${CMAKE_SYSTEM_PROCESSOR}"
--target-os="${FFmpeg_SYSTEM_NAME}"
--sysroot="${CMAKE_SYSROOT}"
)
--target-os="${FFmpeg_SYSTEM_NAME}")
if (PLATFORM_EMSCRIPTEN)
# funniest trolling from emscripten, such a classic!
# maybe I should PR so they use CMAKE_SYSROOT... y'know?
list(APPEND FFmpeg_CROSS_COMPILE_FLAGS --sysroot="${EMSCRIPTEN_SYSROOT}")
else()
list(APPEND FFmpeg_CROSS_COMPILE_FLAGS --sysroot="${CMAKE_SYSROOT}")
endif()
if (DEFINED FFmpeg_CROSS_PREFIX)
list(APPEND FFmpeg_CROSS_COMPILE_FLAGS --cross-prefix="${FFmpeg_CROSS_PREFIX}")
else()
message(WARNING "Please set FFmpeg_CROSS_PREFIX to your cross toolchain prefix, for example: \${CMAKE_STAGING_PREFIX}/bin/${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}-")
message(WARNING "Please set FFmpeg_CROSS_PREFIX to your cross toolchain prefix, for example: ${CMAKE_STAGING_PREFIX}/bin/${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME}")
endif()
set(FFmpeg_IS_CROSS_COMPILING TRUE)
endif()
endif()
if (PLATFORM_PS4 OR PLATFORM_MANAGARM)
if (OPENORBIS OR MANAGARM OR EMSCRIPTEN)
# Doesn't support VA-API, don't go thru the embarrassment of trying to enable it
list(APPEND FFmpeg_HWACCEL_FLAGS --disable-vaapi)
elseif (ANDROID)
@@ -75,7 +88,7 @@ elseif (UNIX AND NOT DEFINED FFmpeg_IS_CROSS_COMPILING AND NOT ANDROID)
if(X11_FOUND)
if (NOT APPLE)
# In Solaris needs explicit linking for ffmpeg which links to /lib/amd64/libX11.so
if(PLATFORM_SUN)
if(SOLARIS)
list(APPEND FFmpeg_HWACCEL_LIBRARIES
X11
"${CMAKE_SYSROOT}/usr/lib/xorg/amd64/libdrm.so")
@@ -158,26 +171,35 @@ elseif (UNIX AND NOT DEFINED FFmpeg_IS_CROSS_COMPILING AND NOT ANDROID)
endif()
endif()
if (PLATFORM_PS4)
if (OPENORBIS)
list(APPEND FFmpeg_CROSS_COMPILE_LIBS
-lkernel
-lSceUserService
-lSceSysmodule
-lSceNet
-lSceLibcInternal
)
-lSceLibcInternal)
list(APPEND FFmpeg_CROSS_COMPILE_FLAGS
--disable-pthreads
--extra-cflags=${CMAKE_SYSROOT}/usr/include
--extra-cxxflags=${CMAKE_SYSROOT}/usr/include
--extra-libs="${FFmpeg_CROSS_COMPILE_LIBS}"
)
elseif (PLATFORM_MANAGARM)
elseif (MANAGARM)
# Required for proper stuff
list(APPEND FFmpeg_CROSS_COMPILE_FLAGS
--disable-pthreads
--extra-libs="${FFmpeg_CROSS_COMPILE_LIBS}"
)
--extra-libs="${FFmpeg_CROSS_COMPILE_LIBS}")
endif()
# Usually used by Emscripten
if (DEFINED CMAKE_AR)
list(APPEND FFmpeg_CROSS_COMPILE_FLAGS --ar=${CMAKE_AR})
endif()
if (DEFINED CMAKE_NM)
list(APPEND FFmpeg_CROSS_COMPILE_FLAGS --nm=${CMAKE_NM})
endif()
if (DEFINED CMAKE_RANLIB)
list(APPEND FFmpeg_CROSS_COMPILE_FLAGS --ranlib=${CMAKE_RANLIB})
endif()
if (YUZU_USE_BUNDLED_FFMPEG)
@@ -207,6 +229,7 @@ else()
# Build FFmpeg from externals
message(STATUS "Using FFmpeg from externals")
set(FFmpeg_LD ${CMAKE_LINKER})
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64)")
# FFmpeg has source that requires one of nasm or yasm to assemble it.
# REQUIRED throws an error if not found here during configuration rather than during compilation.
@@ -215,6 +238,12 @@ else()
message(FATAL_ERROR "One of either `nasm` or `yasm` not found but is required.")
endif()
endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
# TODO: this is 100% redundant but we need it because CMAKE_LINKER can resolve to ld.lld
# which is NOT compatible
find_program(EMCC NAMES emcc REQUIRED)
set(FFmpeg_LD ${EMCC})
endif()
find_program(AUTOCONF autoconf)
if ("${AUTOCONF}" STREQUAL "AUTOCONF-NOTFOUND")
@@ -248,7 +277,13 @@ else()
CACHE PATH "Paths to FFmpeg libraries" FORCE)
endforeach()
find_program(BASH_PROGRAM bash REQUIRED)
# Some SDKs (especially wasm) require us, actually, WANT us to use their "emconfigure"
# otherwise they will cry a billion tears
if (PLATFORM_EMSCRIPTEN)
find_program(FFmpeg_CONFIGURE_WRAPPER emconfigure REQUIRED)
else()
find_program(FFmpeg_CONFIGURE_WRAPPER bash REQUIRED)
endif()
# `configure` parameters builds only exactly what yuzu needs from FFmpeg
# `--disable-vdpau` is needed to avoid linking issues
@@ -258,7 +293,7 @@ else()
OUTPUT
${FFmpeg_MAKEFILE}
COMMAND
${BASH_PROGRAM} ${FFmpeg_PREFIX}/configure
${FFmpeg_CONFIGURE_WRAPPER} ${FFmpeg_PREFIX}/configure
--disable-avdevice
--disable-avformat
--disable-doc
@@ -267,6 +302,10 @@ else()
--disable-ffprobe
--disable-network
--disable-swresample
--disable-autodetect
--disable-runtime-cpudetect
--disable-debug
--disable-programs
--enable-decoder=h264
--enable-decoder=vp8
--enable-decoder=vp9
@@ -274,7 +313,7 @@ else()
--enable-pic
--cc=${FFmpeg_CC}
--cxx=${FFmpeg_CXX}
--ld=${CMAKE_LINKER}
--ld=${FFmpeg_LD}
--extra-cflags=${CMAKE_C_FLAGS}
--extra-cxxflags=${CMAKE_CXX_FLAGS}
--extra-ldflags=${CMAKE_C_LINK_FLAGS}
@@ -290,18 +329,16 @@ else()
# Workaround for Ubuntu 18.04's older version of make not being able to call make as a child
# with context of the jobserver. Also helps ninja users.
execute_process(
COMMAND
nproc
OUTPUT_VARIABLE
SYSTEM_THREADS)
cmake_host_system_information(RESULT SYSTEM_THREADS QUERY NUMBER_OF_LOGICAL_CORES)
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)
if (LINUX OR ANDROID OR APPLE OR WIN32 OR FREEBSD)
set(FFmpeg_MAKE_ARGS -j${SYSTEM_THREADS})
else()
# No GNU make implies that this system may be highly non-GNU
find_program(MAKE make required)
set(FFmpeg_MAKE_ARGS "")
endif()
@@ -309,7 +346,7 @@ else()
OUTPUT
${FFmpeg_BUILD_LIBRARIES}
COMMAND
gmake ${FFmpeg_MAKE_ARGS}
${MAKE} ${FFmpeg_MAKE_ARGS}
WORKING_DIRECTORY
${FFmpeg_BUILD_DIR}
)
+1 -1
View File
@@ -11,7 +11,7 @@ if (NOT libusb_ADDED)
endif()
# TODO: *BSD fails to compile--may need different configs/symbols
if (MINGW OR PLATFORM_LINUX OR APPLE)
if (MINGW OR LINUX OR APPLE)
set(LIBUSB_FOUND ON CACHE BOOL "libusb is present" FORCE)
set(LIBUSB_VERSION "1.0.24" CACHE STRING "libusb version string" FORCE)
+2 -2
View File
@@ -1177,7 +1177,7 @@ static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int re
#endif
#ifndef STBI_NO_TGA
// test tga last because it's a crappy test!
// test tga last because it's a bad test!
if (stbi__tga_test(s))
return stbi__tga_load(s,x,y,comp,req_comp, ri);
#endif
@@ -7662,7 +7662,7 @@ static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp)
if (stbi__hdr_info(s, x, y, comp)) return 1;
#endif
// test tga last because it's a crappy test!
// test tga last because it's a bad test!
#ifndef STBI_NO_TGA
if (stbi__tga_info(s, x, y, comp))
return 1;
+2
View File
@@ -14,7 +14,9 @@
namespace Tz {
namespace {
#ifndef EINVAL
#define EINVAL 22
#endif
static Rule gmtmem{};
static Rule* const gmtptr = &gmtmem;
+26 -11
View File
@@ -155,23 +155,34 @@ else()
$<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>)
endif()
if (ENABLE_WERROR)
add_compile_options(
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=all>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=extra>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=missing-declarations>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=shadow>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=unused>)
else()
add_compile_options(
$<$<COMPILE_LANGUAGE:C,CXX>:-Wall>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wextra>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wmissing-declarations>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wshadow>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wunused>
# Some compilers could particularly misbehave :)
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-error-all>)
endif()
add_compile_options(
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=all>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=extra>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=missing-declarations>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=shadow>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=unused>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-attributes>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-invalid-offsetof>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-unused-parameter>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-missing-field-initializers>)
if (CXX_CLANG OR CXX_ICC OR CXX_APPLE) # Clang, AppleClang, or Intel C++
if (NOT MSVC)
add_compile_options(
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=shadow-uncaptured-local>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=implicit-fallthrough>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=type-limits>)
$<$<COMPILE_LANGUAGE:C,CXX>:-Wshadow-uncaptured-local>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wimplicit-fallthrough>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wtype-limits>)
endif()
add_compile_options(
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-braced-scalar-init>
@@ -179,9 +190,13 @@ else()
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-nullability-completeness>)
endif()
if (ARCHITECTURE_x86_64)
if (ARCHITECTURE_wasm)
# we are evil but fmt is even more evil
add_compile_options(
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-shorten-64-to-32>)
elseif (ARCHITECTURE_x86_64)
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-mcx16>)
if (PLATFORM_LINUX OR PLATFORM_FREEBSD)
if (LINUX OR FREEBSD)
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-mtls-dialect=gnu2>)
endif()
endif()
+3
View File
@@ -188,6 +188,7 @@ android {
create("mainline") {
dimension = "version"
isDefault = true
minSdk = 33
manifestPlaceholders += mapOf("appNameBase" to "Eden")
resValue("string", "app_name_suffixed", "Eden")
@@ -199,6 +200,7 @@ android {
create("genshinSpoof") {
dimension = "version"
minSdk = 35
manifestPlaceholders += mapOf("appNameBase" to "Eden Optimized")
resValue("string", "app_name_suffixed", "Eden Optimized")
applicationId = "com.miHoYo.Yuanshen"
@@ -216,6 +218,7 @@ android {
create("legacy") {
dimension = "version"
minSdk = 29
manifestPlaceholders += mapOf("appNameBase" to "Eden Legacy")
resValue("string", "app_name_suffixed", "Eden Legacy")
applicationId = "dev.legacy.eden_emulator"
@@ -218,6 +218,8 @@ object NativeLibrary {
external fun logSettings()
external fun refreshThreadPolicies()
external fun getDebugKnobAt(index: Int): Boolean
/**
@@ -30,6 +30,7 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
RENDERER_REACTIVE_FLUSHING("use_reactive_flushing"),
ENABLE_BUFFER_HISTORY("enable_buffer_history"),
USE_OPTIMIZED_VERTEX_BUFFERS("use_optimized_vertex_buffers"),
ENABLE_GPU_BUFFER_READBACK("enable_gpu_buffer_readback"),
SYNC_MEMORY_OPERATIONS("sync_memory_operations"),
BUFFER_REORDER_DISABLE("disable_buffer_reorder"),
RENDERER_DEBUG("debug"),
@@ -594,7 +594,7 @@ abstract class SettingsItem(
IntSetting.ANDROID_PIPELINE_WORKERS,
titleId = R.string.pipeline_worker_cores,
descriptionId = R.string.pipeline_worker_cores_description,
min = 4,
min = 2,
max = 8,
units = "cores"
)
@@ -808,6 +808,13 @@ abstract class SettingsItem(
descriptionId = R.string.enable_buffer_history_description
)
)
put(
SwitchSetting(
BooleanSetting.ENABLE_GPU_BUFFER_READBACK,
titleId = R.string.enable_gpu_buffer_readback,
descriptionId = R.string.enable_gpu_buffer_readback_description
)
)
put(
SwitchSetting(
BooleanSetting.USE_OPTIMIZED_VERTEX_BUFFERS,
@@ -250,8 +250,9 @@ class SettingsFragmentPresenter(
add(BooleanSetting.USE_CUSTOM_RTC.key)
add(LongSetting.CUSTOM_RTC.key)
add(HeaderSetting(R.string.cpu))
add(HeaderSetting(R.string.clocks))
add(IntSetting.FAST_CPU_TIME.key)
add(IntSetting.FAST_GPU_TIME.key)
add(BooleanSetting.CORE_SYNC_CORE_SPEED.key)
add(IntSetting.MEMORY_LAYOUT.key)
@@ -293,11 +294,11 @@ class SettingsFragmentPresenter(
add(BooleanSetting.RENDERER_FORCE_MAX_CLOCK.key)
add(BooleanSetting.RENDERER_REACTIVE_FLUSHING.key)
add(BooleanSetting.ENABLE_BUFFER_HISTORY.key)
add(BooleanSetting.ENABLE_GPU_BUFFER_READBACK.key)
add(BooleanSetting.USE_OPTIMIZED_VERTEX_BUFFERS.key)
add(HeaderSetting(R.string.hacks))
add(IntSetting.FAST_GPU_TIME.key)
add(BooleanSetting.SKIP_CPU_INNER_INVALIDATION.key)
add(BooleanSetting.FIX_BLOOM_EFFECTS.key)
add(BooleanSetting.EMULATE_BGR565.key)
@@ -1451,6 +1451,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
override fun onResume() {
super.onResume()
NativeLibrary.refreshThreadPolicies()
val b = _binding ?: return
updateStatsPosition(IntSetting.PERF_OVERLAY_POSITION.getInt())
updateSocPosition(IntSetting.SOC_OVERLAY_POSITION.getInt())
+5
View File
@@ -50,6 +50,7 @@ extern "C" {
#include "common/scope_exit.h"
#include "common/settings.h"
#include "common/string_util.h"
#include "common/thread.h"
#include "frontend_common/play_time_manager.h"
#include "core/constants.h"
#include "core/core.h"
@@ -1182,6 +1183,10 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_logSettings(JNIEnv* env, jobject jobj
Settings::LogSettings();
}
void Java_org_yuzu_yuzu_1emu_NativeLibrary_refreshThreadPolicies(JNIEnv* env, jobject jobj) {
Common::RefreshThreadPolicies();
}
jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_getDebugKnobAt(JNIEnv* env, jobject jobj, jint index) {
return static_cast<jboolean>(Settings::getDebugKnobAt(static_cast<u8>(index)));
}
@@ -499,6 +499,8 @@
<string name="renderer_reactive_flushing_description">يحسن دقة العرض في بعض الألعاب على حساب الأداء.</string>
<string name="enable_buffer_history">تمكين سجل التخزين المؤقت</string>
<string name="enable_buffer_history_description">يُتيح هذا الخيار الوصول إلى حالات التخزين المؤقت السابقة. وقد يُحسّن جودة العرض وثبات الأداء في بعض الألعاب.</string>
<string name="enable_gpu_buffer_readback">تفعيل قراءة مخزن وحدة معالجة الرسومات</string>
<string name="enable_gpu_buffer_readback_description">يحافظ هذا النظام على بيانات المخزن المؤقت المُعدّلة بواسطة وحدة معالجة الرسومات عن طريق قراءتها مرة أخرى قبل التحميل. تتطلب بعض الألعاب ذلك لعرض بعض التأثيرات بشكل صحيح. قد يُسبب ذلك مشاكل إذا لم يتمكن الجهاز من التعامل مع عبء العمل الإضافي.</string>
<string name="use_optimized_vertex_buffers">مخازن الرؤوس المُحسّنة</string>
<string name="use_optimized_vertex_buffers_description">يُتيح ربطًا مُحسَّنًا لمخازن الرؤوس لتحسين الأداء. يتطلب برامج تشغيل Mesa 26.0+ Turnip/ برامج تشغيل QCOM. قد يتعطل على برامج تشغيل Turnip القديمة (25.3 وما دون).</string>
@@ -956,7 +958,6 @@
<string name="clock_fast">سريع (2000MHz)</string>
<!-- GPU overclock factors -->
<string name="off">تعطيل</string>
<string name="fast_gpu_medium">متوسط (256)</string>
<string name="fast_gpu_high">مرتفع (512)</string>
@@ -884,7 +884,6 @@ Wirklich fortfahren?</string>
<string name="clock_fast">Schnell (2000MHz)</string>
<!-- GPU overclock factors -->
<string name="off">Aus</string>
<string name="fast_gpu_medium">Mittel (256)</string>
<string name="fast_gpu_high">Hoch (512)</string>
@@ -491,6 +491,8 @@
<string name="renderer_reactive_flushing_description">Mejora la precisión de renderizado en algunos juegos, pero reduce el rendimiento.</string>
<string name="enable_buffer_history">Activar el historial del búfer</string>
<string name="enable_buffer_history_description">Permite el acceso al estado del búfer anterior. Esta opción puede mejorar la calidad de renderizado y la consistencia en el rendimiento de algunos juegos.</string>
<string name="enable_gpu_buffer_readback">Activar la lectura del buffer de la GPU</string>
<string name="enable_gpu_buffer_readback_description">Conserva los datos del búfer modificados por la GPU leyéndolos antes de subirlos.\nAlgunos juegos requieren esto para renderizar correctamente ciertos efectos.\nPuede causar problemas si el hardware no puede soportar la carga de trabajo adicional.</string>
<string name="use_optimized_vertex_buffers">Búferes de vértices optimizados</string>
<string name="use_optimized_vertex_buffers_description">Permite la optimización del enlace del búfer de vértices para un mejor rendimiento. Requiere controladores Mesa 26.0+ Turnip/ controladores QCOM. Fallará con controladores Turnip más antiguos (versión 25.3 o inferior).</string>
@@ -948,7 +950,6 @@
<string name="clock_fast">Rápido (2000MHz)</string>
<!-- GPU overclock factors -->
<string name="off">Desactivado</string>
<string name="fast_gpu_medium">Medio (256)</string>
<string name="fast_gpu_high">Alto (512)</string>
@@ -897,7 +897,6 @@
<string name="clock_fast">Rapide (2000MHz)</string>
<!-- GPU overclock factors -->
<string name="off">Désactivé</string>
<string name="fast_gpu_medium">Moyen (256)</string>
<string name="fast_gpu_high">Élevé (512)</string>
@@ -871,7 +871,6 @@
<string name="clock_fast">Szybkie (2000MHz)</string>
<!-- GPU overclock factors -->
<string name="off">Wyłączone</string>
<string name="fast_gpu_medium">Średnie (256)</string>
<string name="fast_gpu_high">Wysokie (512)</string>
@@ -954,7 +954,6 @@
<string name="clock_fast">Быстрая (2000MHz)</string>
<!-- GPU overclock factors -->
<string name="off">Выкл.</string>
<string name="fast_gpu_medium">Среднее (256)</string>
<string name="fast_gpu_high">Высокое (512)</string>
@@ -943,7 +943,6 @@
<string name="clock_fast">Швидко (2000 МГц)</string>
<!-- GPU overclock factors -->
<string name="off">Вимкнено</string>
<string name="fast_gpu_medium">Середньо (256)</string>
<string name="fast_gpu_high">Високо (512)</string>
@@ -489,6 +489,8 @@
<string name="renderer_reactive_flushing_description">通过牺牲性能来提升某些游戏的渲染精度。</string>
<string name="enable_buffer_history">启用缓冲区历史</string>
<string name="enable_buffer_history_description">启用对先前缓冲区状态的访问。此选项可在某些游戏中提升渲染质量并保持性能的一致性。</string>
<string name="enable_gpu_buffer_readback">启用 GPU 缓冲区回读</string>
<string name="enable_gpu_buffer_readback_description">在上传前回读经由 GPU 修改过的缓冲区数据,以将其保留。一些游戏会用到这项设定以正确渲染某些效果。如果硬件无法处理额外的工作负载,则可能会导致问题。</string>
<string name="use_optimized_vertex_buffers">优化顶点缓冲区</string>
<string name="use_optimized_vertex_buffers_description">启用经过优化的顶点缓冲区绑定以提升性能。需要 Mesa 26.0 及以上版本的 Turnip 或 QCOM 驱动程序。若使用较旧版本的 Turnip 驱动 (25.3 及以下版本) 则会导致崩溃。</string>
@@ -946,7 +948,6 @@
<string name="clock_fast">快速 (2000MHz)</string>
<!-- GPU overclock factors -->
<string name="off">关闭</string>
<string name="fast_gpu_medium">中 (256)</string>
<string name="fast_gpu_high">高 (512)</string>
@@ -53,7 +53,7 @@
<string name="stats_overlay_options">疊加層</string>
<string name="enable_stats_overlay_">啟用效能統計疊加層</string>
<string name="stats_overlay_options_description">設定疊加層中顯示的資訊</string>
<string name="show_fps">顯示FPS</string>
<string name="show_fps">顯示影格率</string>
<string name="show_fps_description">顯示當前影格率</string>
<string name="show_frametime">顯示影格時間</string>
<string name="show_app_ram_usage">顯示應用程式的記憶體用量</string>
@@ -300,9 +300,9 @@
<string name="app_settings_description">自訂Eden的主題與介面</string>
<string name="no_file_manager">找不到檔案管理員</string>
<string name="notification_no_directory_link">無法開啟 Eden 目錄</string>
<string name="notification_no_directory_link_description">請使用檔案管理員的側邊面板手動定位到使用者資料夾</string>
<string name="notification_no_directory_link_description">請使用檔案管理員的側邊面板手動定位到使用者資料夾</string>
<string name="manage_save_data">管理儲存資料</string>
<string name="manage_save_data_description">導入/導出遊戲的儲存資料</string>
<string name="manage_save_data_description">導入/導出遊戲的儲存資料\n\n壓縮檔中首個子資料夾名稱必須為遊戲 ID</string>
<string name="import_save_warning">導入儲存資料</string>
<string name="import_save_warning_description">這將會以提供的檔案覆寫現有的該遊戲儲存資料,您確定要繼續嗎?</string>
<string name="save_files_importing">正在導入儲存資料…</string>
@@ -34,7 +34,7 @@
</integer-array>
<string-array name="clockNames">
<item>@string/off</item>
<item>@string/clock_normal</item>
<item>@string/clock_boost</item>
<item>@string/clock_fast</item>
</string-array>
@@ -547,7 +547,7 @@
</integer-array>
<string-array name="gpuEntries">
<item>@string/off</item>
<item>@string/fast_gpu_normal</item>
<item>@string/fast_gpu_medium</item>
<item>@string/fast_gpu_high</item>
</string-array>
+15 -11
View File
@@ -450,8 +450,8 @@
<string name="set_custom_rtc">Set custom RTC</string>
<!-- CPU -->
<string name="fast_cpu_time">CPU Overclock</string>
<string name="fast_cpu_time_description">Forces the emulated CPU to run at a higher clock, reducing certain FPS limiters. Use Boost (1700MHz) to run at the Switch\'s highest native clock, or Fast (2000MHz) to run at 2x clock.</string>
<string name="fast_cpu_time">CPU Clocks</string>
<string name="fast_cpu_time_description">Raises the clock the emulated CPU reports, which removes some FPS limiters. Weaker CPUs may see reduced performance, and certain games may behave improperly.</string>
<string name="custom_cpu_ticks">Custom CPU Ticks</string>
<string name="custom_cpu_ticks_description">Set a custom value of CPU ticks. Higher values can increase performance, but may also cause the game to freeze. A range of 7721000 is recommended.</string>
<string name="cpu_ticks">Ticks</string>
@@ -505,13 +505,15 @@
<string name="renderer_reactive_flushing_description">Improves rendering accuracy in some games at the cost of performance.</string>
<string name="enable_buffer_history">Enable buffer history</string>
<string name="enable_buffer_history_description">Enables access to previous buffer states. This option may improve rendering quality and performance consistency in some games.</string>
<string name="enable_gpu_buffer_readback">Enable GPU Buffer Readback</string>
<string name="enable_gpu_buffer_readback_description">Preserves GPU-modified buffer data by reading it back before uploads. Some games require this to render certain effects properly. May cause issues if the hardware cannot handle the additional workload.</string>
<string name="use_optimized_vertex_buffers">Optimized Vertex Buffers</string>
<string name="use_optimized_vertex_buffers_description">Enables optimized vertex buffer binding for improved performance. Requires Mesa 26.0+ Turnip drivers/ QCOM drivers. Will crash on older Turnip drivers (25.3 and below).</string>
<string name="hacks">Hacks</string>
<string name="fast_gpu_time">Fast GPU Time</string>
<string name="fast_gpu_time_description">Forces most games to run at their highest native resolution. Use 256 for maximal performance and 512 for maximal graphics fidelity.</string>
<string name="fast_gpu_time">GPU Clocks</string>
<string name="fast_gpu_time_description">Makes the game believe GPU work finishes faster than it does, so it stops lowering resolution and render distance to fit the Switch\'s clocks.</string>
<string name="skip_cpu_inner_invalidation">Skip CPU Inner Invalidation</string>
<string name="skip_cpu_inner_invalidation_description">Skips certain CPU-side cache invalidations during memory updates, reducing CPU usage and improving it\'s performance. This may cause glitches or crashes on some games.</string>
<string name="fix_bloom_effects">Fix Bloom Effects</string>
@@ -558,6 +560,7 @@
<!-- Debug settings strings -->
<string name="cpu">CPU</string>
<string name="clocks">Clocks</string>
<string name="use_auto_stub">Use Auto Stub</string>
<string name="use_auto_stub_description">Automatically stub missing services and functions. This may improve compatibility but can cause crashes and stability issues.</string>
@@ -966,14 +969,15 @@
<string name="memory_6gb">6GB (Unsafe)</string>
<string name="memory_8gb">8GB (Unsafe)</string>
<!--CPU clock speeds-->
<string name="clock_boost">Boost (1700MHz)</string>
<string name="clock_fast">Fast (2000MHz)</string>
<!-- CPU clock levels -->
<string name="clock_normal">Normal</string>
<string name="clock_boost">Boost</string>
<string name="clock_fast">Overclock</string>
<!-- GPU overclock factors -->
<string name="off">Off</string>
<string name="fast_gpu_medium">Medium (256)</string>
<string name="fast_gpu_high">High (512)</string>
<!-- GPU clock levels -->
<string name="fast_gpu_normal">Normal</string>
<string name="fast_gpu_medium">Boost</string>
<string name="fast_gpu_high">Overclock</string>
<!-- GPU swizzle texture size -->
<string name="gpu_texturesizeswizzle_verysmall">Very Small (16 MB)</string>
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsBatteryGameMode="true"
android:supportsBatteryGameMode="false"
android:supportsPerformanceGameMode="true"
android:allowGameDownscaling="false"
android:allowGameFpsOverride="false"/>
+1 -1
View File
@@ -222,7 +222,7 @@ if (MSVC)
)
else()
target_compile_options(audio_core PRIVATE
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wconversion>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>)
endif()
@@ -18,20 +18,15 @@
namespace AudioCore::Renderer {
constexpr u32 TempBufferSize = 0x3F00;
constexpr std::array<u8, 3> PitchBySrcQuality = {4, 8, 4};
/**
* Decode PCM data. Only s16 or f32 is supported.
*
* @tparam T - Type to decode. Only s16 and f32 are supported.
* @param memory - Core memory for reading samples.
* @param out_buffer - Output mix buffer to receive the samples.
* @param req - Information for how to decode.
* @return Number of samples decoded.
*/
/// @brief Decode PCM data. Only s16 or f32 is supported.
/// @tparam T - Type to decode. Only s16 and f32 are supported.
/// @param memory - Core memory for reading samples.
/// @param out_buffer - Output mix buffer to receive the samples.
/// @param req - Information for how to decode.
/// @return Number of samples decoded.
template <typename T>
static u32 DecodePcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
const DecodeArg& req) {
static u32 DecodePcm(Core::Memory::Memory& memory, std::span<s16> out_buffer, const DecodeArg& req) {
constexpr s32 min{(std::numeric_limits<s16>::min)()};
constexpr s32 max{(std::numeric_limits<s16>::max)()};
@@ -94,16 +89,12 @@ static u32 DecodePcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
return samples_to_decode;
}
/**
* Decode ADPCM data.
*
* @param memory - Core memory for reading samples.
* @param out_buffer - Output mix buffer to receive the samples.
* @param req - Information for how to decode.
* @return Number of samples decoded.
*/
static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
const DecodeArg& req) {
/// @brief Decode ADPCM data.
/// @param memory - Core memory for reading samples.
/// @param out_buffer - Output mix buffer to receive the samples.
/// @param req - Information for how to decode.
/// @return Number of samples decoded.
static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer, const DecodeArg& req) {
constexpr u32 SamplesPerFrame{14};
constexpr u32 NibblesPerFrame{16};
@@ -115,8 +106,7 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
return 0;
}
auto end{(req.end_offset % SamplesPerFrame) +
NibblesPerFrame * (req.end_offset / SamplesPerFrame)};
auto end{(req.end_offset % SamplesPerFrame) + NibblesPerFrame * (req.end_offset / SamplesPerFrame)};
if (req.end_offset % SamplesPerFrame) {
end += 3;
} else {
@@ -133,52 +123,49 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
return 0;
}
auto samples_to_read{samples_to_process};
auto samples_remaining_in_frame{start_pos % SamplesPerFrame};
auto position_in_frame{(start_pos / SamplesPerFrame) * NibblesPerFrame +
samples_remaining_in_frame};
auto samples_to_read = samples_to_process;
auto samples_remaining_in_frame = start_pos % SamplesPerFrame;
auto position_in_frame = (start_pos / SamplesPerFrame) * NibblesPerFrame + samples_remaining_in_frame;
if (samples_remaining_in_frame) {
position_in_frame += 2;
}
const auto size{(std::max)((samples_to_process / 8U) * SamplesPerFrame, 8U)};
Core::Memory::CpuGuestMemory<u8, Core::Memory::GuestMemoryFlags::UnsafeRead> wavebuffer(
memory, req.buffer + position_in_frame / 2, size);
Core::Memory::CpuGuestMemory<u8, Core::Memory::GuestMemoryFlags::UnsafeRead> wavebuffer(memory, req.buffer + position_in_frame / 2, size);
auto context{req.adpcm_context};
auto header{context->header};
u8 coeff_index{static_cast<u8>((header >> 4U) & 0xFU)};
u8 scale{static_cast<u8>(header & 0xFU)};
s32 coeff0{req.coefficients[coeff_index * 2 + 0]};
s32 coeff1{req.coefficients[coeff_index * 2 + 1]};
auto context = req.adpcm_context;
auto header = context->header;
u8 scale = u8(header & 0xfU);
u8 coeff_index = u8((header >> 4U) & 0x7u);
s32 coeff0 = req.coefficients[coeff_index * 2 + 0];
s32 coeff1 = req.coefficients[coeff_index * 2 + 1];
auto yn0{context->yn0};
auto yn1{context->yn1};
static constexpr std::array<s32, 16> Steps{
0, 1, 2, 3, 4, 5, 6, 7, -8, -7, -6, -5, -4, -3, -2, -1,
auto yn0 = context->yn0;
auto yn1 = context->yn1;
auto const get_step = [](u32 index) {
// Emulates the following table
// 0, 1, 2, 3, 4, 5, 6, 7, -8, -7, -6, -5, -4, -3, -2, -1,
constexpr u64 steps_table = 0x1234567876543210ull;
constexpr u64 steps_sign = 0b1111111100000000ull;
auto const r = s32((steps_table >> (index * 4)) & 0xf);
return ((steps_sign >> index) & 1) == 0 ? -r : r;
};
const auto decode_sample = [&](const s32 code) -> s16 {
auto const decode_sample = [&](const s32 code) -> s16 {
const auto xn = code * (1 << scale);
const auto prediction = coeff0 * yn0 + coeff1 * yn1;
const auto sample = ((xn << 11) + 0x400 + prediction) >> 11;
const auto saturated = std::clamp<s32>(sample, -0x8000, 0x7FFF);
yn1 = yn0;
yn0 = static_cast<s16>(saturated);
return yn0;
return yn0 = s16(saturated);
};
u32 read_index{0};
u32 write_index{0};
while (samples_to_read > 0) {
u32 read_index = 0;
for (u32 write_index = 0; samples_to_read > 0 && write_index < out_buffer.size(); ) {
// Are we at a new frame?
if ((position_in_frame % NibblesPerFrame) == 0) {
header = wavebuffer[read_index++];
coeff_index = (header >> 4) & 0xF;
scale = header & 0xF;
scale = header & 0xFu;
coeff_index = (header >> 4) & 0x7u;
coeff0 = req.coefficients[coeff_index * 2 + 0];
coeff1 = req.coefficients[coeff_index * 2 + 1];
position_in_frame += 2;
@@ -187,14 +174,12 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
if (samples_to_read >= SamplesPerFrame) {
// Can grab all samples until the next header
for (u32 i = 0; i < SamplesPerFrame / 2; i++) {
auto code0{Steps[(wavebuffer[read_index] >> 4) & 0xF]};
auto code1{Steps[wavebuffer[read_index] & 0xF]};
read_index++;
auto code0 = get_step((wavebuffer[read_index + i] >> 4) & 0xF);
auto code1 = get_step(wavebuffer[read_index + i] & 0xF);
out_buffer[write_index++] = decode_sample(code0);
out_buffer[write_index++] = decode_sample(code1);
}
read_index += SamplesPerFrame / 2;
position_in_frame += SamplesPerFrame;
samples_to_read -= SamplesPerFrame;
continue;
@@ -202,15 +187,14 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
}
// Decode a single sample
auto code{wavebuffer[read_index]};
auto code = wavebuffer[read_index];
if (position_in_frame & 1) {
code &= 0xF;
read_index++;
} else {
code >>= 4;
}
out_buffer[write_index++] = decode_sample(Steps[code]);
out_buffer[write_index++] = decode_sample(get_step(code));
position_in_frame++;
samples_to_read--;
@@ -219,27 +203,21 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
context->header = header;
context->yn0 = yn0;
context->yn1 = yn1;
return samples_to_process;
}
/**
* Decode implementation.
* Decode wavebuffers according to the given args.
*
* @param memory - Core memory to read data from.
* @param args - The wavebuffer data, and information for how to decode it.
*/
/// @brief Decode implementation.
/// Decode wavebuffers according to the given args.
///
/// @param memory - Core memory to read data from.
/// @param args - The wavebuffer data, and information for how to decode it.
void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuffersArgs& args) {
static constexpr auto EndWaveBuffer = [](auto& voice_state, auto& wavebuffer, auto& index,
auto& played_samples, auto& consumed) -> void {
constexpr auto EndWaveBuffer = [](auto& voice_state, auto& wavebuffer, auto& index, auto& played_samples, auto& consumed) -> void {
voice_state.wave_buffer_valid[index] = false;
voice_state.loop_count = 0;
if (wavebuffer.stream_ended) {
played_samples = 0;
}
index = (index + 1) % MaxWaveBuffers;
consumed++;
};
@@ -255,8 +233,9 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
return;
}
auto pitch{PitchBySrcQuality[static_cast<u32>(args.src_quality)]};
if (static_cast<u32>(pitch + size_required.to_int_floor()) > TempBufferSize) {
// 0 -> 4, 1 -> 8, 2 -> 4
auto pitch = u32((0x040804ul >> (u32(args.src_quality) * 8)) & 0xfful);
if (u32(pitch + size_required.to_int_floor()) > TempBufferSize) {
return;
}
@@ -272,7 +251,7 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
bool is_buffer_starved{false};
u32 offset{voice_state.offset};
auto output_buffer{args.output};
auto output_buffer = args.output;
std::array<s16, TempBufferSize> temp_buffer{};
while (remaining_sample_count > 0) {
@@ -294,8 +273,8 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
if (wavebuffer_index >= MaxWaveBuffers) {
LOG_ERROR(Service_Audio, "Invalid wavebuffer index! {}", wavebuffer_index);
wavebuffer_index = 0;
voice_state.wave_buffer_valid.fill(false);
wavebuffers_consumed = MaxWaveBuffers;
voice_state.wave_buffer_valid.fill(false);
}
if (!voice_state.wave_buffer_valid[wavebuffer_index]) {
@@ -303,12 +282,9 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
break;
}
auto& wavebuffer{args.wave_buffers[wavebuffer_index]};
if (offset == 0 && args.sample_format == SampleFormat::Adpcm &&
wavebuffer.context != 0) {
memory.ReadBlockUnsafe(wavebuffer.context, &voice_state.adpcm_context,
wavebuffer.context_size);
auto& wavebuffer = args.wave_buffers[wavebuffer_index];
if (offset == 0 && args.sample_format == SampleFormat::Adpcm && wavebuffer.context != 0) {
memory.ReadBlockUnsafe(wavebuffer.context, &voice_state.adpcm_context, wavebuffer.context_size);
}
auto start_offset{wavebuffer.start_offset};
@@ -351,9 +327,7 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
case SampleFormat::Adpcm: {
decode_arg.adpcm_context = &voice_state.adpcm_context;
memory.ReadBlockUnsafe(args.data_address, &decode_arg.coefficients, args.data_size);
samples_decoded = DecodeAdpcm(
memory, {&temp_buffer[temp_buffer_pos], TempBufferSize - temp_buffer_pos},
decode_arg);
samples_decoded = DecodeAdpcm( memory, {&temp_buffer[temp_buffer_pos], TempBufferSize - temp_buffer_pos}, decode_arg);
} break;
default:
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -5,21 +8,13 @@
namespace AudioCore::Renderer {
static void ResampleLowQuality(std::span<s32> output, std::span<const s16> input,
const Common::FixedPoint<49, 15>& sample_rate_ratio,
Common::FixedPoint<49, 15>& fraction, const u32 samples_to_write) {
if (sample_rate_ratio == 1.0f) {
for (u32 i = 0; i < samples_to_write; i++) {
output[i] = input[i];
}
} else {
u32 read_index{0};
for (u32 i = 0; i < samples_to_write; i++) {
output[i] = input[read_index + (fraction >= 0.5f)];
fraction += sample_rate_ratio;
read_index += static_cast<u32>(fraction.to_int_floor());
fraction.clear_int();
}
static void ResampleLowQuality(std::span<s32> output, std::span<const s16> input, const Common::FixedPoint<49, 15>& sample_rate_ratio, Common::FixedPoint<49, 15>& fraction, const u32 samples_to_write) {
u32 read_index{0};
for (u32 i = 0; i < samples_to_write; i++) {
output[i] = input[read_index + (fraction >= 0.5f)];
fraction += sample_rate_ratio;
read_index += u32(fraction.to_int_floor());
fraction.clear_int();
}
}
@@ -295,7 +290,7 @@ static void ResampleNormalQuality(std::span<s32> output, std::span<const s16> in
auto lut{get_lut()};
u32 read_index{0};
for (u32 i = 0; i < samples_to_write; i++) {
const auto lut_index{(fraction.get_frac() >> 8) * 4};
const auto lut_index = ((fraction.get_frac() >> 8) << 2) & 511;
const Common::FixedPoint<56, 8> sample0{input[read_index + 0] * lut[lut_index + 0]};
const Common::FixedPoint<56, 8> sample1{input[read_index + 1] * lut[lut_index + 1]};
const Common::FixedPoint<56, 8> sample2{input[read_index + 2] * lut[lut_index + 2]};
@@ -845,7 +840,7 @@ static void ResampleHighQuality(std::span<s32> output, std::span<const s16> inpu
auto lut{get_lut()};
u32 read_index{0};
for (u32 i = 0; i < samples_to_write; i++) {
const auto lut_index{(fraction.get_frac() >> 8) * 8};
const auto lut_index = ((fraction.get_frac() >> 8) << 3) & 1023;
const Common::FixedPoint<56, 8> sample0{input[read_index + 0] * lut[lut_index + 0]};
const Common::FixedPoint<56, 8> sample1{input[read_index + 1] * lut[lut_index + 1]};
const Common::FixedPoint<56, 8> sample2{input[read_index + 2] * lut[lut_index + 2]};
+8 -2
View File
@@ -121,6 +121,8 @@ add_library(
swap.h
thread.cpp
thread.h
adpf.cpp
adpf.h
thread_queue_list.h
thread_worker.h
threadsafe_queue.h
@@ -218,7 +220,7 @@ endif()
if(CXX_CLANG)
target_compile_options(common PRIVATE
$<$<COMPILE_LANGUAGE:C,CXX>:-fsized-deallocation>
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=unreachable-code-aggressive>)
$<$<COMPILE_LANGUAGE:C,CXX>:-Wunreachable-code-aggressive>)
target_compile_definitions(
common
PRIVATE
@@ -233,7 +235,11 @@ else()
target_link_libraries(common PUBLIC Boost::headers)
endif()
target_link_libraries(common PRIVATE OpenSSL::SSL)
target_link_libraries(common PUBLIC Boost::filesystem Boost::context httplib::httplib nlohmann_json::nlohmann_json)
target_link_libraries(common PUBLIC Boost::filesystem httplib::httplib nlohmann_json::nlohmann_json)
if (NOT PLATFORM_EMSCRIPTEN)
# Emscripten is: "bring your own implementation", boost doesn't add upstream support sadly
target_link_libraries(common PRIVATE Boost::context)
endif()
if (lz4_ADDED)
target_include_directories(common PRIVATE ${lz4_SOURCE_DIR}/lib)
+317
View File
@@ -0,0 +1,317 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
#include "common/adpf.h"
#ifdef __ANDROID__
#include <algorithm>
#include <array>
#include <atomic>
#include <cstdint>
#include <mutex>
#include <vector>
#include <dlfcn.h>
#include <unistd.h>
#include "common/logging.h"
namespace Common::ADPF {
namespace {
constexpr std::chrono::nanoseconds DEFAULT_TARGET = std::chrono::nanoseconds{16'666'667};
struct AHintManager;
struct AHintSession;
using PFN_GetManager = AHintManager* (*)();
using PFN_CreateSession = AHintSession* (*)(AHintManager*, const s32*, size_t, s64);
using PFN_CloseSession = void (*)(AHintSession*);
using PFN_UpdateTarget = int (*)(AHintSession*, s64);
using PFN_ReportActual = int (*)(AHintSession*, s64);
using PFN_SetThreads = int (*)(AHintSession*, const pid_t*, size_t);
using PFN_SetPowerEfficiency = int (*)(AHintSession*, bool);
struct Api {
PFN_GetManager get_manager = nullptr;
PFN_CreateSession create_session = nullptr;
PFN_CloseSession close_session = nullptr;
PFN_UpdateTarget update_target = nullptr;
PFN_ReportActual report_actual = nullptr;
PFN_SetThreads set_threads = nullptr;
PFN_SetPowerEfficiency set_power_efficiency = nullptr;
AHintManager* manager = nullptr;
bool usable = false;
};
const Api& Resolve() {
static const Api api = [] {
Api resolved;
void* library = dlopen("libandroid.so", RTLD_NOW);
if (library == nullptr) {
LOG_INFO(Common, "libandroid.so unavailable, ADPF is disabled");
return resolved;
}
const auto load = [library](const char* name) { return dlsym(library, name); };
resolved.get_manager = reinterpret_cast<PFN_GetManager>(load("APerformanceHint_getManager"));
resolved.create_session =
reinterpret_cast<PFN_CreateSession>(load("APerformanceHint_createSession"));
resolved.close_session =
reinterpret_cast<PFN_CloseSession>(load("APerformanceHint_closeSession"));
resolved.update_target =
reinterpret_cast<PFN_UpdateTarget>(load("APerformanceHint_updateTargetWorkDuration"));
resolved.report_actual =
reinterpret_cast<PFN_ReportActual>(load("APerformanceHint_reportActualWorkDuration"));
resolved.set_threads =
reinterpret_cast<PFN_SetThreads>(load("APerformanceHint_setThreads"));
resolved.set_power_efficiency = reinterpret_cast<PFN_SetPowerEfficiency>(
load("APerformanceHint_setPreferPowerEfficiency"));
if (resolved.get_manager == nullptr || resolved.create_session == nullptr ||
resolved.close_session == nullptr || resolved.update_target == nullptr ||
resolved.report_actual == nullptr) {
LOG_INFO(Common, "Performance hint API not exported, ADPF is disabled");
return resolved;
}
resolved.manager = resolved.get_manager();
if (resolved.manager == nullptr) {
LOG_INFO(Common, "Device does not provide a performance hint manager");
return resolved;
}
resolved.usable = true;
LOG_INFO(Common, "ADPF available, setThreads {}, power efficiency {}",
resolved.set_threads != nullptr ? "yes" : "no",
resolved.set_power_efficiency != nullptr ? "yes" : "no");
return resolved;
}();
return api;
}
struct SessionState {
AHintSession* handle = nullptr;
std::vector<pid_t> threads;
bool unsupported = false;
};
std::mutex g_mutex;
std::array<SessionState, 2> g_sessions;
constexpr s64 MAX_REPORTED_TARGETS = 4;
std::atomic<s64> g_target_ns{DEFAULT_TARGET.count()};
thread_local std::chrono::steady_clock::time_point t_last_frame{};
SessionState& StateOf(Session session) {
return g_sessions[static_cast<size_t>(session)];
}
bool IsBackgroundUsable(const Api& api) {
return api.set_power_efficiency != nullptr;
}
void CloseLocked(SessionState& state) {
if (state.handle != nullptr) {
Resolve().close_session(state.handle);
state.handle = nullptr;
}
}
AHintSession* CreateSessionFor(Session session, const std::vector<pid_t>& threads) {
const Api& api = Resolve();
const s64 target = session == Session::Render ? g_target_ns.load(std::memory_order_relaxed) : 0;
std::vector<s32> ids;
ids.reserve(threads.size());
for (const pid_t tid : threads) {
ids.push_back(static_cast<s32>(tid));
}
AHintSession* handle = api.create_session(api.manager, ids.data(), ids.size(), target);
if (handle == nullptr && target == 0) {
handle = api.create_session(api.manager, ids.data(), ids.size(), DEFAULT_TARGET.count());
}
if (handle == nullptr) {
return nullptr;
}
if (session == Session::Background && api.set_power_efficiency != nullptr) {
api.set_power_efficiency(handle, true);
}
return handle;
}
bool SyncLocked(Session session, SessionState& state) {
if (state.threads.empty()) {
CloseLocked(state);
return false;
}
const Api& api = Resolve();
if (state.handle != nullptr && api.set_threads != nullptr) {
std::vector<pid_t> ids = state.threads;
if (api.set_threads(state.handle, ids.data(), ids.size()) == 0) {
return true;
}
}
AHintSession* const replacement = CreateSessionFor(session, state.threads);
if (replacement == nullptr) {
if (state.handle == nullptr) {
state.unsupported = true;
}
LOG_WARNING(Common, "Could not open a performance hint session for {} threads, falling back",
state.threads.size());
return false;
}
CloseLocked(state);
state.handle = replacement;
return true;
}
} // Anonymous namespace
bool IsSessionSupported(Session session) {
const Api& api = Resolve();
if (!api.usable) {
return false;
}
if (session == Session::Background && !IsBackgroundUsable(api)) {
return false;
}
std::scoped_lock lock{g_mutex};
return !StateOf(session).unsupported;
}
bool AddCurrentThread(Session session) {
if (!IsSessionSupported(session)) {
return false;
}
const pid_t tid = gettid();
std::scoped_lock lock{g_mutex};
for (size_t i = 0; i < g_sessions.size(); ++i) {
SessionState& state = g_sessions[i];
if (static_cast<size_t>(session) == i) {
continue;
}
const auto it = std::find(state.threads.begin(), state.threads.end(), tid);
if (it != state.threads.end()) {
state.threads.erase(it);
SyncLocked(static_cast<Session>(i), state);
}
}
SessionState& state = StateOf(session);
const bool added =
std::find(state.threads.begin(), state.threads.end(), tid) == state.threads.end();
if (added) {
state.threads.push_back(tid);
}
if (!SyncLocked(session, state)) {
if (added) {
std::erase(state.threads, tid);
}
return false;
}
return true;
}
void RemoveCurrentThread() {
if (!Resolve().usable) {
return;
}
const pid_t tid = gettid();
std::scoped_lock lock{g_mutex};
for (size_t i = 0; i < g_sessions.size(); ++i) {
SessionState& state = g_sessions[i];
if (std::erase(state.threads, tid) != 0) {
SyncLocked(static_cast<Session>(i), state);
}
}
}
void SetTargetWorkDuration(std::chrono::nanoseconds target) {
const Api& api = Resolve();
if (!api.usable || target.count() <= 0) {
return;
}
if (g_target_ns.exchange(target.count(), std::memory_order_relaxed) == target.count()) {
return;
}
std::scoped_lock lock{g_mutex};
SessionState& state = StateOf(Session::Render);
if (state.handle != nullptr) {
api.update_target(state.handle, target.count());
}
}
void ReportFrameInterval() {
const Api& api = Resolve();
if (!api.usable) {
return;
}
const auto now = std::chrono::steady_clock::now();
const auto previous = t_last_frame;
t_last_frame = now;
if (previous.time_since_epoch().count() == 0) {
return;
}
s64 actual = std::chrono::duration_cast<std::chrono::nanoseconds>(now - previous).count();
if (actual <= 0) {
return;
}
const s64 ceiling = g_target_ns.load(std::memory_order_relaxed) * MAX_REPORTED_TARGETS;
actual = (std::min)(actual, ceiling);
std::scoped_lock lock{g_mutex};
SessionState& state = StateOf(Session::Render);
if (state.handle != nullptr) {
api.report_actual(state.handle, actual);
}
}
void Shutdown() {
if (!Resolve().usable) {
return;
}
std::scoped_lock lock{g_mutex};
for (SessionState& state : g_sessions) {
CloseLocked(state);
state.threads.clear();
state.unsupported = false;
}
}
} // namespace Common::ADPF
#else
namespace Common::ADPF {
bool IsSessionSupported(Session) {
return false;
}
bool AddCurrentThread(Session) {
return false;
}
void RemoveCurrentThread() {}
void SetTargetWorkDuration(std::chrono::nanoseconds) {}
void ReportFrameInterval() {}
void Shutdown() {}
} // namespace Common::ADPF
#endif
+26
View File
@@ -0,0 +1,26 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
#pragma once
#include <chrono>
namespace Common::ADPF {
enum class Session {
Render,
Background,
};
bool IsSessionSupported(Session session);
bool AddCurrentThread(Session session);
void RemoveCurrentThread();
void SetTargetWorkDuration(std::chrono::nanoseconds target);
void ReportFrameInterval();
void Shutdown();
} // namespace Common::ADPF
+85 -12
View File
@@ -11,7 +11,12 @@
#include "common/fiber.h"
#include "common/virtual_buffer.h"
#ifdef __EMSCRIPTEN__
#include <emscripten.h>
#include <emscripten/fiber.h>
#else
#include <boost/context/detail/fcontext.hpp>
#endif
namespace Common {
@@ -22,36 +27,103 @@ constexpr size_t DEFAULT_STACK_SIZE = 512 * 4096;
#endif
constexpr u32 CANARY_VALUE = 0xDEADBEEF;
#ifdef __EMSCRIPTEN__
struct Fiber::FiberImpl {
FiberImpl() {}
u32 canary_1 = CANARY_VALUE;
std::array<u8, DEFAULT_STACK_SIZE> stack{};
std::array<u8, DEFAULT_STACK_SIZE> rewind_stack{};
std::array<u8, DEFAULT_STACK_SIZE> astack{};
u32 canary_2 = CANARY_VALUE;
boost::context::detail::fcontext_t context{};
boost::context::detail::fcontext_t rewind_context{};
emscripten_fiber_t* context{nullptr};
std::mutex guard;
std::function<void()> entry_point;
std::function<void()> rewind_point;
std::shared_ptr<Fiber> previous_fiber;
u8* stack_limit = nullptr;
u8* rewind_stack_limit = nullptr;
bool is_thread_fiber = false;
bool released = false;
};
void Fiber::SetRewindPoint(std::function<void()>&& rewind_func) {
impl->rewind_point = std::move(rewind_func);
Fiber::Fiber(std::function<void()>&& entry_point_func) : impl{std::make_unique<FiberImpl>()} {
impl->entry_point = std::move(entry_point_func);
emscripten_fiber_init(impl->context, [](void *user_data) -> void {
auto* fiber = static_cast<Fiber*>(user_data);
ASSERT(fiber && fiber->impl && fiber->impl->previous_fiber && fiber->impl->previous_fiber->impl);
ASSERT(fiber->impl->canary_1 == CANARY_VALUE);
ASSERT(fiber->impl->canary_2 == CANARY_VALUE);
fiber->impl->previous_fiber->impl->context = fiber->impl->context;
fiber->impl->previous_fiber->impl->guard.unlock();
fiber->impl->previous_fiber.reset();
fiber->impl->entry_point();
UNREACHABLE();
}, impl.get(), impl->stack.data(), impl->stack.size(), impl->astack.data(), impl->astack.size());
}
Fiber::Fiber() : impl{std::make_unique<FiberImpl>()} {}
Fiber::~Fiber() {
if (!impl->released) {
// Make sure the Fiber is not being used
const bool locked = impl->guard.try_lock();
ASSERT(locked && "Destroying a fiber that's still running");
if (locked) {
impl->guard.unlock();
}
}
}
void Fiber::Exit() {
ASSERT(impl->is_thread_fiber && "Exiting non main thread fiber");
if (impl->is_thread_fiber) {
impl->guard.unlock();
impl->released = true;
}
}
void Fiber::YieldTo(std::weak_ptr<Fiber> weak_from, Fiber& to) {
to.impl->guard.lock();
to.impl->previous_fiber = weak_from.lock();
emscripten_fiber_swap(to.impl->context, to.impl->previous_fiber->impl->context);
// "from" might no longer be valid if the thread was killed
if (auto from = weak_from.lock()) {
if (from->impl->previous_fiber == nullptr) {
ASSERT(false && "previous_fiber is nullptr!");
} else {
from->impl->previous_fiber->impl->guard.unlock();
from->impl->previous_fiber.reset();
}
}
}
std::shared_ptr<Fiber> Fiber::ThreadToFiber() {
std::shared_ptr<Fiber> fiber = std::shared_ptr<Fiber>{new Fiber()};
fiber->impl->guard.lock();
fiber->impl->is_thread_fiber = true;
return fiber;
}
#else
struct Fiber::FiberImpl {
FiberImpl() {}
u32 canary_1 = CANARY_VALUE;
std::array<u8, DEFAULT_STACK_SIZE> stack{};
u32 canary_2 = CANARY_VALUE;
boost::context::detail::fcontext_t context{};
std::mutex guard;
std::function<void()> entry_point;
std::shared_ptr<Fiber> previous_fiber;
u8* stack_limit = nullptr;
bool is_thread_fiber = false;
bool released = false;
};
Fiber::Fiber(std::function<void()>&& entry_point_func) : impl{std::make_unique<FiberImpl>()} {
impl->entry_point = std::move(entry_point_func);
impl->stack_limit = impl->stack.data();
impl->rewind_stack_limit = impl->rewind_stack.data();
u8* stack_base = impl->stack_limit + DEFAULT_STACK_SIZE;
impl->context = boost::context::detail::make_fcontext(stack_base, impl->stack.size(), [](boost::context::detail::transfer_t transfer) -> void {
auto* fiber = static_cast<Fiber*>(transfer.data);
@@ -72,7 +144,7 @@ Fiber::~Fiber() {
if (!impl->released) {
// Make sure the Fiber is not being used
const bool locked = impl->guard.try_lock();
ASSERT_MSG(locked, "Destroying a fiber that's still running");
ASSERT(locked && "Destroying a fiber that's still running");
if (locked) {
impl->guard.unlock();
}
@@ -80,7 +152,7 @@ Fiber::~Fiber() {
}
void Fiber::Exit() {
ASSERT_MSG(impl->is_thread_fiber, "Exiting non main thread fiber");
ASSERT(impl->is_thread_fiber && "Exiting non main thread fiber");
if (impl->is_thread_fiber) {
impl->guard.unlock();
impl->released = true;
@@ -110,5 +182,6 @@ std::shared_ptr<Fiber> Fiber::ThreadToFiber() {
fiber->impl->is_thread_fiber = true;
return fiber;
}
#endif
} // namespace Common
+1 -2
View File
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
@@ -45,7 +45,6 @@ public:
/// Fiber 'from' must be the currently running fiber.
static void YieldTo(std::weak_ptr<Fiber> weak_from, Fiber& to);
[[nodiscard]] static std::shared_ptr<Fiber> ThreadToFiber();
void SetRewindPoint(std::function<void()>&& rewind_func);
/// Only call from main thread's fiber
void Exit();
private:
+5
View File
@@ -136,6 +136,11 @@ public:
eden_path = GetDataDirectory("XDG_DATA_HOME") / EDEN_DIR;
eden_path_cache = GetDataDirectory("XDG_CACHE_HOME") / EDEN_DIR;
eden_path_config = GetDataDirectory("XDG_CONFIG_HOME") / EDEN_DIR;
#if defined(__EMSCRIPTEN__) || defined(__wasi__) || defined(__managarm__)
// folders MAY not exist in this distrobution/OS
CreateParentDir(GetDataDirectory("XDG_CONFIG_HOME"));
CreateParentDir(GetDataDirectory("XDG_CACHE_HOME"));
#endif
} else {
eden_path_cache = eden_path / CACHE_DIR;
eden_path_config = eden_path / CONFIG_DIR;
+6 -6
View File
@@ -394,7 +394,7 @@ private:
ankerl::unordered_dense::map<size_t, size_t> placeholder_host_pointers; ///< Placeholder backing offset
};
#elif defined(__OPENORBIS__) || defined(__managarm__)
#elif defined(__OPENORBIS__) || defined(__managarm__) || defined(__wasi__) || defined(__EMSCRIPTEN__)
// None of the luxuries of POSIX, all of the suffering
// For managarm: see https://github.com/managarm/managarm/issues/1370
#else // ^^^ Windows ^^^ vvv POSIX vvv
@@ -689,7 +689,7 @@ HostMemory::HostMemory(size_t backing_size_, size_t virtual_size_)
: backing_size(backing_size_)
, virtual_size(virtual_size_)
{
#if defined(__OPENORBIS__) || defined(__managarm__)
#if defined(__OPENORBIS__) || defined(__managarm__) || defined(__wasi__) || defined(__EMSCRIPTEN__)
LOG_WARNING(HW_Memory, "Platform doesn't support fastmem");
fallback_buffer.emplace(backing_size);
backing_base = fallback_buffer->data();
@@ -723,7 +723,7 @@ HostMemory::HostMemory(HostMemory&&) noexcept = default;
HostMemory& HostMemory::operator=(HostMemory&&) noexcept = default;
void HostMemory::Map(size_t virtual_offset, size_t host_offset, size_t length, MemoryPermission perms, bool separate_heap) {
#if !(defined(__OPENORBIS__) || defined(__managarm__))
#if !(defined(__OPENORBIS__) || defined(__managarm__) || defined(__wasi__) || defined(__EMSCRIPTEN__))
ASSERT(virtual_offset % PageAlignment == 0);
ASSERT(host_offset % PageAlignment == 0);
ASSERT(length % PageAlignment == 0);
@@ -737,7 +737,7 @@ void HostMemory::Map(size_t virtual_offset, size_t host_offset, size_t length, M
}
void HostMemory::Unmap(size_t virtual_offset, size_t length, bool separate_heap) {
#if !(defined(__OPENORBIS__) || defined(__managarm__))
#if !(defined(__OPENORBIS__) || defined(__managarm__) || defined(__wasi__) || defined(__EMSCRIPTEN__))
ASSERT(virtual_offset % PageAlignment == 0);
ASSERT(length % PageAlignment == 0);
ASSERT(virtual_offset + length <= virtual_size);
@@ -749,7 +749,7 @@ void HostMemory::Unmap(size_t virtual_offset, size_t length, bool separate_heap)
}
void HostMemory::Protect(size_t virtual_offset, size_t length, MemoryPermission perm) {
#if !(defined(__OPENORBIS__) || defined(__managarm__))
#if !(defined(__OPENORBIS__) || defined(__managarm__) || defined(__wasi__) || defined(__EMSCRIPTEN__))
ASSERT(virtual_offset % PageAlignment == 0);
ASSERT(length % PageAlignment == 0);
ASSERT(virtual_offset + length <= virtual_size);
@@ -768,7 +768,7 @@ void HostMemory::ClearBackingRegion(size_t physical_offset, size_t length, u32 f
}
void HostMemory::EnableDirectMappedAddress() {
#if !(defined(__OPENORBIS__) || defined(__managarm__))
#if !(defined(__OPENORBIS__) || defined(__managarm__) || defined(__wasi__) || defined(__EMSCRIPTEN__))
if (impl) {
impl->EnableDirectMappedAddress();
virtual_size += reinterpret_cast<uintptr_t>(virtual_base);
+1 -1
View File
@@ -77,7 +77,7 @@ private:
size_t backing_size{};
size_t virtual_size{};
#if !(defined(__OPENORBIS__) || defined(__managarm__))
#if !(defined(__OPENORBIS__) || defined(__managarm__) || defined(__wasi__) || defined(__EMSCRIPTEN__))
// Low level handler for the platform dependent memory routines
class Impl;
std::unique_ptr<Impl> impl;
+26 -11
View File
@@ -260,10 +260,10 @@ struct Values {
Category::Cpu};
SwitchableSetting<CpuAccuracy, true> cpu_accuracy{linkage, CpuAccuracy::Auto,
"cpu_accuracy", Category::Cpu};
SwitchableSetting<CpuClock> fast_cpu_time{linkage,
CpuClock::Off,
SwitchableSetting<CpuClock> cpu_clock{linkage,
CpuClock::Normal,
"fast_cpu_time",
Category::Cpu,
Category::System,
Specialization::Default,
true,
true};
@@ -540,13 +540,13 @@ struct Values {
#endif
// Renderer Hacks //
SwitchableSetting<GpuOverclock> fast_gpu_time{linkage,
GpuOverclock::Medium,
"fast_gpu_time",
Category::RendererHacks,
Specialization::Default,
true,
true};
SwitchableSetting<GpuClock> gpu_clock{linkage,
GpuClock::Boost,
"fast_gpu_time",
Category::System,
Specialization::Default,
true,
true};
SwitchableSetting<bool> skip_cpu_inner_invalidation{linkage,
false,
@@ -576,6 +576,13 @@ struct Values {
false,
#endif
"rescale_hack", Category::RendererHacks};
SwitchableSetting<bool> enable_gpu_buffer_readback{linkage,
false,
"enable_gpu_buffer_readback",
Category::RendererAdvanced,
Specialization::Default,
true,
true};
SwitchableSetting<bool> use_asynchronous_shaders{linkage, false, "use_asynchronous_shaders",
Category::RendererHacks};
@@ -695,7 +702,15 @@ struct Values {
// Controls
InputSetting<std::array<PlayerInput, 10>> players;
Setting<bool> disable_wgi_xinput{
linkage, false, "disable_wgi_xinput", Category::Controls, Specialization::Default,
// Only read/write disable_wgi_xinput on Windows platforms
#ifdef _WIN32
true
#else
false
#endif
};
Setting<bool> enable_raw_input{
linkage, false, "enable_raw_input", Category::Controls, Specialization::Default,
// Only read/write enable_raw_input on Windows platforms
+2 -2
View File
@@ -140,7 +140,7 @@ ENUM(DmaAccuracy, Default, Unsafe, Safe);
ENUM(GpuFenceBehavior, Default, Immediate, Balanced, Accurate, Strict);
ENUM(CpuBackend, Dynarmic, Nce);
ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid, Debugging);
ENUM(CpuClock, Off, Boost, Fast)
ENUM(CpuClock, Normal, Boost, Overclock)
ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb, Memory_10Gb, Memory_12Gb);
ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
ENUM(FullscreenMode, Borderless, Exclusive);
@@ -152,7 +152,7 @@ ENUM(AspectRatio, R16_9, R4_3, R21_9, R16_10, Stretch);
ENUM(ConsoleMode, Handheld, Docked);
ENUM(AppletMode, HLE, LLE);
ENUM(SpirvOptimizeMode, Never, OnLoad, Always);
ENUM(GpuOverclock, Normal, Medium, High)
ENUM(GpuClock, Normal, Boost, Overclock)
ENUM(GpuUnswizzleSize, VerySmall, Small, Normal, Large, VeryLarge)
ENUM(GpuUnswizzle, VeryLow, Low, Normal, Medium, High)
ENUM(GpuUnswizzleChunk, VeryLow, Low, Normal, Medium, High)
+512 -36
View File
@@ -1,5 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: 2013 Dolphin Emulator Project
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -9,6 +10,7 @@
#include <string>
#include <thread>
#include "common/adpf.h"
#include "common/error.h"
#include "common/logging.h"
#include "common/assert.h"
@@ -39,6 +41,402 @@
#include <unistd.h>
#endif
#ifdef __linux__
#include <sys/resource.h>
#include <algorithm>
namespace {
constexpr int NICE_AUDIO = -16;
constexpr int NICE_URGENT_DISPLAY = -8;
constexpr int NICE_DISPLAY = -4;
constexpr int NICE_DEFAULT = 0;
constexpr int NICE_BACKGROUND = 10;
int LowestAllowedNice() {
static const int lowest = [] {
rlimit limit{};
if (getrlimit(RLIMIT_NICE, &limit) != 0) {
return 0;
}
if (limit.rlim_cur >= 40) {
return -20;
}
return 20 - static_cast<int>(limit.rlim_cur);
}();
return lowest;
}
int NiceValueForPriority(Common::ThreadPriority priority) {
const int wanted = [priority] {
switch (priority) {
case Common::ThreadPriority::Low: return NICE_BACKGROUND;
case Common::ThreadPriority::Normal: return NICE_DEFAULT;
case Common::ThreadPriority::High: return NICE_DISPLAY;
case Common::ThreadPriority::VeryHigh: return NICE_URGENT_DISPLAY;
case Common::ThreadPriority::Critical: return NICE_AUDIO;
default: return NICE_DEFAULT;
}
}();
return (std::max)(wanted, (std::min)(NICE_DEFAULT, LowestAllowedNice()));
}
} // Anonymous namespace
#endif
#ifdef __ANDROID__
#include <sys/utsname.h>
#include <atomic>
#include <cerrno>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <mutex>
#include <vector>
namespace {
constexpr size_t ANDROID_MINIMUM_PERFORMANCE_CORES = 4;
// A core counts as a performance core while it is within this much of the fastest one.
constexpr s64 ANDROID_PERFORMANCE_CAPACITY_PERCENT = 50;
constexpr std::chrono::nanoseconds ANDROID_POLICY_POLL_INTERVAL = std::chrono::milliseconds{500};
enum class CoreGroup {
Unrestricted,
Performance,
Efficiency,
};
struct ThreadPolicy {
pid_t tid;
CoreGroup group;
s32 nice_value;
bool has_nice;
};
struct CoreInfo {
s64 weight;
u64 midr;
s32 cpu;
};
struct CpuTopologyState {
std::mutex topology_mutex;
cpu_set_t allowed{};
cpu_set_t performance{};
cpu_set_t efficiency{};
bool separated = false;
bool initialized = false;
pid_t canary_tid = 0;
cpu_set_t canary_mask{};
bool canary_valid = false;
std::atomic<s64> next_poll_ns{0};
std::mutex policy_mutex;
std::vector<ThreadPolicy> policies;
};
CpuTopologyState& State() {
static CpuTopologyState* const state = new CpuTopologyState();
return *state;
}
struct PolicyRegistration {
~PolicyRegistration() {
const pid_t tid = gettid();
::Common::ADPF::RemoveCurrentThread();
CpuTopologyState& state = State();
std::scoped_lock lock{state.policy_mutex};
std::erase_if(state.policies,
[tid](const ThreadPolicy& policy) { return policy.tid == tid; });
}
};
thread_local PolicyRegistration t_policy_registration;
s32 PossibleCpuCount() {
std::ifstream file("/sys/devices/system/cpu/possible");
std::string list;
if (file && std::getline(file, list) && !list.empty()) {
s64 highest = -1;
const char* cursor = list.c_str();
while (*cursor != '\0') {
char* end = nullptr;
const s64 value = std::strtol(cursor, &end, 10);
if (end == cursor) {
break;
}
highest = (std::max)(highest, value);
cursor = end;
while (*cursor == '-' || *cursor == ',') {
++cursor;
}
}
if (highest >= 0) {
return static_cast<s32>((std::min<s64>)(highest + 1, CPU_SETSIZE));
}
}
const s64 configured = sysconf(_SC_NPROCESSORS_CONF);
if (configured > 0) {
return static_cast<s32>((std::min<s64>)(configured, CPU_SETSIZE));
}
return static_cast<s32>((std::min<s64>)(std::thread::hardware_concurrency(), CPU_SETSIZE));
}
s64 ReadCpuScalar(s32 cpu, const char* node) {
s64 value = 0;
std::ifstream file("/sys/devices/system/cpu/cpu" + std::to_string(cpu) + "/" + node);
if (!file || !(file >> value) || value <= 0) {
return 0;
}
return value;
}
u64 ReadCpuMidr(s32 cpu) {
u64 midr = 0;
std::ifstream file("/sys/devices/system/cpu/cpu" + std::to_string(cpu) +
"/regs/identification/midr_el1");
if (!file || !(file >> std::hex >> midr)) {
return 0;
}
return midr;
}
std::vector<CoreInfo> CollectCores(const cpu_set_t& allowed, s32 total, const char* node,
bool require_all) {
std::vector<CoreInfo> cores;
for (s32 cpu = 0; cpu < total; ++cpu) {
if (!CPU_ISSET(cpu, &allowed)) {
continue;
}
const s64 weight = ReadCpuScalar(cpu, node);
if (weight <= 0) {
if (require_all) {
return {};
}
LOG_WARNING(Common, "Could not read {} for CPU {}, treating it as an efficiency core",
node, cpu);
continue;
}
cores.push_back(CoreInfo{weight, ReadCpuMidr(cpu), cpu});
}
return cores;
}
bool WeightsAreUniform(const std::vector<CoreInfo>& cores) {
return std::all_of(cores.begin(), cores.end(),
[&](const CoreInfo& core) { return core.weight == cores.front().weight; });
}
bool MidrsAreDistinct(const std::vector<CoreInfo>& cores) {
return std::none_of(cores.begin(), cores.end(),
[](const CoreInfo& core) { return core.midr == 0; }) &&
std::any_of(cores.begin(), cores.end(),
[&](const CoreInfo& core) { return core.midr != cores.front().midr; });
}
void ComputeTopologyLocked(CpuTopologyState& state) {
state.initialized = true;
state.separated = false;
CPU_ZERO(&state.allowed);
CPU_ZERO(&state.performance);
CPU_ZERO(&state.efficiency);
if (sched_getaffinity(getpid(), sizeof(state.allowed), &state.allowed) != 0) {
LOG_WARNING(Common, "Could not query process CPU affinity: {}",
::Common::GetLastErrorMsg());
return;
}
const s32 total = PossibleCpuCount();
auto cores = CollectCores(state.allowed, total, "cpu_capacity", true);
if (cores.empty() || (WeightsAreUniform(cores) && MidrsAreDistinct(cores))) {
auto by_frequency = CollectCores(state.allowed, total, "cpufreq/cpuinfo_max_freq", false);
if (!by_frequency.empty()) {
cores = std::move(by_frequency);
}
}
if (cores.empty()) {
LOG_WARNING(Common, "Could not determine CPU topology, thread placement is disabled");
return;
}
if (WeightsAreUniform(cores)) {
if (MidrsAreDistinct(cores)) {
LOG_WARNING(Common, "CPU clusters differ but rank identically, thread placement is "
"disabled");
} else {
LOG_INFO(Common, "CPU cores are symmetric, thread placement is disabled");
}
return;
}
std::sort(cores.begin(), cores.end(), [](const CoreInfo& lhs, const CoreInfo& rhs) {
if (lhs.weight != rhs.weight) {
return lhs.weight > rhs.weight;
}
return lhs.cpu < rhs.cpu;
});
const s64 fastest = cores.front().weight;
size_t taken = 0;
for (const auto& core : cores) {
const bool fast_enough =
core.weight * 100 >= fastest * ANDROID_PERFORMANCE_CAPACITY_PERCENT;
if (!fast_enough && taken >= ANDROID_MINIMUM_PERFORMANCE_CORES) {
break;
}
CPU_SET(core.cpu, &state.performance);
++taken;
}
if (taken == 0) {
return;
}
for (s32 cpu = 0; cpu < total; ++cpu) {
if (CPU_ISSET(cpu, &state.allowed) && !CPU_ISSET(cpu, &state.performance)) {
CPU_SET(cpu, &state.efficiency);
}
}
state.separated = CPU_COUNT(&state.efficiency) > 0;
LOG_INFO(Common, "CPU topology: {} performance cores, {} efficiency cores, separation {}",
CPU_COUNT(&state.performance), CPU_COUNT(&state.efficiency),
state.separated ? "enabled" : "unavailable");
}
void EnsureTopologyLocked(CpuTopologyState& state) {
if (!state.initialized) {
ComputeTopologyLocked(state);
}
}
void RefreshTopologyLocked(CpuTopologyState& state) {
if (!state.initialized) {
ComputeTopologyLocked(state);
return;
}
cpu_set_t current;
CPU_ZERO(&current);
if (sched_getaffinity(getpid(), sizeof(current), &current) != 0) {
return;
}
if (std::memcmp(&current, &state.allowed, sizeof(current)) != 0) {
ComputeTopologyLocked(state);
}
}
bool ApplyCoreGroupLocked(CpuTopologyState& state, pid_t tid, CoreGroup group,
bool* gone = nullptr) {
const bool restrict_group = group != CoreGroup::Unrestricted && state.separated;
const cpu_set_t* mask = &state.allowed;
if (restrict_group) {
mask = group == CoreGroup::Performance ? &state.performance : &state.efficiency;
}
if (CPU_COUNT(mask) == 0) {
return false;
}
if (sched_setaffinity(tid, sizeof(*mask), mask) != 0) {
if (gone != nullptr && errno == ESRCH) {
*gone = true;
return false;
}
LOG_WARNING(Common, "Could not restrict thread {} to its core group: {}", tid,
::Common::GetLastErrorMsg());
return false;
}
return true;
}
bool KernelPreservesRequestedAffinity() {
utsname info{};
if (uname(&info) != 0) {
return false;
}
s32 major = 0;
s32 minor = 0;
if (std::sscanf(info.release, "%d.%d", &major, &minor) != 2) {
return false;
}
return major > 6 || (major == 6 && minor >= 2);
}
void SnapshotCanaryLocked(CpuTopologyState& state) {
state.canary_valid = false;
if (!state.separated) {
return;
}
for (const auto& policy : state.policies) {
if (policy.group == CoreGroup::Unrestricted) {
continue;
}
cpu_set_t mask;
CPU_ZERO(&mask);
if (sched_getaffinity(policy.tid, sizeof(mask), &mask) != 0) {
continue;
}
state.canary_tid = policy.tid;
state.canary_mask = mask;
state.canary_valid = true;
return;
}
}
bool DueForPoll(CpuTopologyState& state) {
const auto now = std::chrono::steady_clock::now().time_since_epoch();
const s64 now_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(now).count();
s64 next = state.next_poll_ns.load(std::memory_order_relaxed);
if (now_ns < next) {
return false;
}
return state.next_poll_ns.compare_exchange_strong(
next, now_ns + ANDROID_POLICY_POLL_INTERVAL.count(), std::memory_order_relaxed);
}
ThreadPolicy& AcquirePolicyLocked(CpuTopologyState& state, pid_t tid) {
for (auto& policy : state.policies) {
if (policy.tid == tid) {
return policy;
}
}
return state.policies.emplace_back(ThreadPolicy{tid, CoreGroup::Unrestricted, 0, false});
}
void SetCurrentThreadCoreGroup(CoreGroup group) {
const pid_t tid = gettid();
(void)&t_policy_registration;
CoreGroup effective = group;
if (tid == getpid() && group != CoreGroup::Unrestricted) {
LOG_WARNING(Common, "Refusing to place the main thread: the CPU topology is read from it");
effective = CoreGroup::Unrestricted;
}
CpuTopologyState& state = State();
std::scoped_lock topology_lock{state.topology_mutex};
EnsureTopologyLocked(state);
ApplyCoreGroupLocked(state, tid, effective);
std::scoped_lock policy_lock{state.policy_mutex};
AcquirePolicyLocked(state, tid).group = effective;
if (!state.canary_valid) {
SnapshotCanaryLocked(state);
}
}
void RememberCurrentThreadNice(pid_t tid, s32 nice_value) {
(void)&t_policy_registration;
CpuTopologyState& state = State();
std::scoped_lock lock{state.policy_mutex};
ThreadPolicy& policy = AcquirePolicyLocked(state, tid);
policy.nice_value = nice_value;
policy.has_nice = true;
}
} // Anonymous namespace
#endif
#include "common/cpu_features.h"
#ifdef ARCHITECTURE_x86_64
#ifdef _MSC_VER
@@ -48,7 +446,6 @@
#endif
#include "common/x64/rdtsc.h"
#endif
#include "core/core_timing.h"
namespace Common {
@@ -78,21 +475,33 @@ void SetCurrentThreadPriority(ThreadPriority new_priority) {
}
}();
set_thread_priority(find_thread(NULL), priority);
#else
pthread_t this_thread = pthread_self();
const auto scheduling_type = SCHED_OTHER;
s32 max_prio = sched_get_priority_max(scheduling_type);
s32 min_prio = sched_get_priority_min(scheduling_type);
u32 level = (std::max)(u32(new_priority) + 1, 4U);
struct sched_param params;
if (max_prio > min_prio) {
params.sched_priority = min_prio + ((max_prio - min_prio) * level) / 4;
} else {
params.sched_priority = min_prio - ((min_prio - max_prio) * level) / 4;
#elif defined(__ANDROID__)
const int nice_value = NiceValueForPriority(new_priority);
const pid_t tid = gettid();
if (setpriority(PRIO_PROCESS, static_cast<id_t>(tid), nice_value) != 0) {
LOG_WARNING(Common, "Could not set thread nice value to {}: {}", nice_value,
GetLastErrorMsg());
return;
}
RememberCurrentThreadNice(tid, nice_value);
#elif defined(__linux__)
const int nice_value = NiceValueForPriority(new_priority);
if (setpriority(PRIO_PROCESS, 0, nice_value) != 0) {
LOG_DEBUG(Common, "Could not set thread nice value to {}: {}", nice_value,
GetLastErrorMsg());
}
#elif defined(__EMSCRIPTEN__)
// TODO: set priority?
#else
const s32 max_prio = sched_get_priority_max(SCHED_OTHER);
const s32 min_prio = sched_get_priority_min(SCHED_OTHER);
if (max_prio > min_prio) {
const u32 level = (std::min)(static_cast<u32>(new_priority), 4U);
sched_param params{};
params.sched_priority =
min_prio + static_cast<s32>(static_cast<u32>(max_prio - min_prio) * level) / 4;
pthread_setschedparam(pthread_self(), SCHED_OTHER, &params);
}
pthread_setschedparam(this_thread, scheduling_type, &params);
#endif
}
@@ -127,34 +536,101 @@ void SetCurrentThreadName(const char* name) {
// See for reference
// https://gitlab.freedesktop.org/mesa/mesa/-/blame/main/src/util/u_thread.c?ref_type=heads#L75
(void)name;
#elif defined(__EMSCRIPTEN__)
// TODO: set thread name?
#else
pthread_setname_np(pthread_self(), name);
#endif
}
void PinCurrentThreadToPerformanceCore(size_t core_id) {
ASSERT(core_id < 4);
// If we set a flag for a CPU that doesn't exist, the thread may not be allowed to
// run in ANY processor!
auto const total_cores = std::thread::hardware_concurrency();
if (core_id < total_cores) {
void SetCurrentThreadToPerformanceCores() {
#if defined(__ANDROID__)
cpu_set_t set;
CPU_ZERO(&set);
CPU_SET(core_id, &set);
sched_setaffinity(pthread_self(), sizeof(set), &set);
#elif defined(__linux__) || defined(__FreeBSD__)
cpu_set_t set;
CPU_ZERO(&set);
CPU_SET(core_id, &set);
pthread_setaffinity_np(pthread_self(), sizeof(set), &set);
#elif defined(_WIN32)
DWORD set = 1UL << core_id;
SetThreadAffinityMask(GetCurrentThread(), set);
#else
// No pin functionality implemented
#endif
if (ADPF::AddCurrentThread(ADPF::Session::Render)) {
SetCurrentThreadCoreGroup(CoreGroup::Unrestricted);
return;
}
SetCurrentThreadCoreGroup(CoreGroup::Performance);
#endif
}
void SetCurrentThreadToEfficiencyCores() {
#if defined(__ANDROID__)
if (ADPF::AddCurrentThread(ADPF::Session::Background)) {
SetCurrentThreadCoreGroup(CoreGroup::Unrestricted);
return;
}
SetCurrentThreadCoreGroup(CoreGroup::Efficiency);
#endif
}
void SetCurrentThreadToBackgroundWork() {
#if defined(__ANDROID__)
ADPF::AddCurrentThread(ADPF::Session::Background);
SetCurrentThreadCoreGroup(CoreGroup::Unrestricted);
#endif
}
void SetCurrentThreadToAllCores() {
#if defined(__ANDROID__)
ADPF::RemoveCurrentThread();
SetCurrentThreadCoreGroup(CoreGroup::Unrestricted);
#endif
}
void RefreshThreadPolicies() {
#if defined(__ANDROID__)
CpuTopologyState& state = State();
std::scoped_lock topology_lock{state.topology_mutex};
RefreshTopologyLocked(state);
std::scoped_lock policy_lock{state.policy_mutex};
std::erase_if(state.policies, [&state](const ThreadPolicy& policy) {
bool gone = false;
if (policy.has_nice &&
setpriority(PRIO_PROCESS, static_cast<id_t>(policy.tid), policy.nice_value) != 0 &&
errno == ESRCH) {
gone = true;
}
if (!gone) {
ApplyCoreGroupLocked(state, policy.tid, policy.group, &gone);
}
return gone;
});
SnapshotCanaryLocked(state);
#endif
}
void PollThreadPolicies() {
#if defined(__ANDROID__)
static const bool needed = !KernelPreservesRequestedAffinity();
if (!needed) {
return;
}
CpuTopologyState& state = State();
if (!DueForPoll(state)) {
return;
}
pid_t tid;
cpu_set_t expected;
{
std::scoped_lock lock{state.topology_mutex};
if (!state.canary_valid) {
return;
}
tid = state.canary_tid;
expected = state.canary_mask;
}
cpu_set_t current;
CPU_ZERO(&current);
if (sched_getaffinity(tid, sizeof(current), &current) == 0 &&
std::memcmp(&current, &expected, sizeof(current)) == 0) {
return;
}
RefreshThreadPolicies();
#endif
}
#ifdef ARCHITECTURE_x86_64
+13 -1
View File
@@ -99,8 +99,20 @@ enum class ThreadPriority : u32 {
Critical = 4,
};
enum class ThreadPlacement : u32 {
Default = 0,
Background = 1,
Efficiency = 2,
};
void SetCurrentThreadPriority(ThreadPriority new_priority);
void SetCurrentThreadName(const char* name);
void PinCurrentThreadToPerformanceCore(size_t core_id);
void SetCurrentThreadToPerformanceCores();
void SetCurrentThreadToEfficiencyCores();
void SetCurrentThreadToBackgroundWork();
void SetCurrentThreadToAllCores();
void RefreshThreadPolicies();
void PollThreadPolicies();
} // namespace Common
+18 -3
View File
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
@@ -37,10 +37,25 @@ class StatefulThreadWorker {
using StateMaker = std::conditional_t<with_state, std::function<StateType()>, DummyCallable>;
public:
explicit StatefulThreadWorker(size_t num_workers, std::string name, StateMaker func = {})
explicit StatefulThreadWorker(size_t num_workers, std::string name, StateMaker func = {},
ThreadPlacement placement = ThreadPlacement::Default)
: workers_queued{num_workers}, thread_name{std::move(name)} {
const auto lambda = [this, func](std::stop_token stop_token) {
const auto lambda = [this, func, placement](std::stop_token stop_token) {
Common::SetCurrentThreadName(thread_name.c_str());
if (placement != ThreadPlacement::Default) {
Common::SetCurrentThreadPriority(ThreadPriority::Low);
}
switch (placement) {
case ThreadPlacement::Efficiency:
Common::SetCurrentThreadToEfficiencyCores();
break;
case ThreadPlacement::Background:
Common::SetCurrentThreadToBackgroundWork();
break;
default:
Common::SetCurrentThreadToAllCores();
break;
}
{
[[maybe_unused]] std::conditional_t<with_state, StateType, int> state{func()};
while (!stop_token.stop_requested()) {
+14 -7
View File
@@ -38,10 +38,6 @@ add_library(core STATIC
debugger/debugger.cpp
debugger/debugger.h
debugger/debugger_interface.h
debugger/gdbstub.cpp
debugger/gdbstub.h
debugger/gdbstub_arch.cpp
debugger/gdbstub_arch.h
device_memory.cpp
device_memory.h
device_memory_manager.h
@@ -1170,10 +1166,18 @@ add_library(core STATIC
tools/freezer.h
tools/renderdoc.cpp
tools/renderdoc.h)
if (NOT PLATFORM_EMSCRIPTEN)
# incompatible with wasm's async model
target_sources(core PRIVATE
debugger/gdbstub.cpp
debugger/gdbstub.h
debugger/gdbstub_arch.cpp
debugger/gdbstub_arch.h)
endif()
if (ENABLE_WIFI_SCAN)
target_sources(core PRIVATE internal_network/wifi_scanner.cpp)
if (PLATFORM_LINUX)
if (LINUX)
target_link_libraries(core PRIVATE iw)
endif()
else()
@@ -1199,7 +1203,7 @@ if (MSVC)
)
else()
target_compile_options(core PRIVATE
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wconversion>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type>
$<$<CXX_COMPILER_ID:Clang>:-fsized-deallocation>)
@@ -1213,7 +1217,10 @@ target_include_directories(core PRIVATE ${OPUS_INCLUDE_DIRS})
target_link_libraries(core PUBLIC common PRIVATE audio_core hid_core network video_core nx_tzdb tz)
if (BOOST_NO_HEADERS)
target_link_libraries(core PUBLIC Boost::container Boost::heap Boost::asio Boost::process Boost::crc)
target_link_libraries(core PUBLIC Boost::container Boost::heap Boost::crc)
if (NOT PLATFORM_EMSCRIPTEN)
target_link_libraries(core PUBLIC Boost::asio Boost::process)
endif()
else()
target_link_libraries(core PUBLIC Boost::headers)
endif()
+4 -2
View File
@@ -6,19 +6,20 @@
#pragma once
#ifndef __EMSCRIPTEN__
#include <dynarmic/interface/halt_reason.h>
#endif
#include "core/arm/arm_interface.h"
namespace Core {
#ifndef __EMSCRIPTEN__
constexpr Dynarmic::HaltReason StepThread = Dynarmic::HaltReason::Step;
constexpr Dynarmic::HaltReason DataAbort = Dynarmic::HaltReason::MemoryAbort;
constexpr Dynarmic::HaltReason BreakLoop = Dynarmic::HaltReason::UserDefined2;
constexpr Dynarmic::HaltReason SupervisorCall = Dynarmic::HaltReason::UserDefined3;
constexpr Dynarmic::HaltReason InstructionBreakpoint = Dynarmic::HaltReason::UserDefined4;
constexpr Dynarmic::HaltReason PrefetchAbort = Dynarmic::HaltReason::UserDefined6;
constexpr HaltReason TranslateHaltReason(Dynarmic::HaltReason hr) {
static_assert(u64(HaltReason::StepThread) == u64(StepThread));
static_assert(u64(HaltReason::DataAbort) == u64(DataAbort));
@@ -28,5 +29,6 @@ constexpr HaltReason TranslateHaltReason(Dynarmic::HaltReason hr) {
static_assert(u64(HaltReason::PrefetchAbort) == u64(PrefetchAbort));
return HaltReason(hr);
}
#endif
} // namespace Core
+2
View File
@@ -10,6 +10,7 @@
#include "audio_core/audio_core.h"
#include "common/fs/fs.h"
#include "common/logging.h"
#include "common/adpf.h"
#include "common/settings.h"
#include "common/settings_enums.h"
#include "common/string_util.h"
@@ -385,6 +386,7 @@ struct System::Impl {
void ShutdownMainProcess() {
SetShuttingDown(true);
Common::ADPF::Shutdown();
// Reset per-game flags
Settings::values.use_squashed_iterated_blend = false;
+20 -3
View File
@@ -23,6 +23,21 @@ namespace Core::Timing {
constexpr s64 MAX_SLICE_LENGTH = 10000;
constexpr u32 CPU_CLOCK_BASE_MHZ = 1020;
constexpr u32 CPU_CLOCK_BOOST_MHZ = 1734;
constexpr u32 CPU_CLOCK_OVERCLOCK_MHZ = 2040;
constexpr u32 CpuClockTargetMhz(Settings::CpuClock clock) {
switch (clock) {
case Settings::CpuClock::Boost:
return CPU_CLOCK_BOOST_MHZ;
case Settings::CpuClock::Overclock:
return CPU_CLOCK_OVERCLOCK_MHZ;
default:
return CPU_CLOCK_BASE_MHZ;
}
}
std::shared_ptr<EventType> CreateEvent(std::string name, TimedCallback&& callback) {
return std::make_shared<EventType>(std::move(callback), std::move(name));
}
@@ -58,7 +73,8 @@ void CoreTiming::Initialize(std::function<void()>&& on_thread_init_) {
if (is_multicore) {
timer_thread = std::jthread([this](std::stop_token stop_token) {
Common::SetCurrentThreadName("HostTiming");
Common::SetCurrentThreadPriority(Common::ThreadPriority::High);
Common::SetCurrentThreadPriority(Common::ThreadPriority::VeryHigh);
Common::SetCurrentThreadToPerformanceCores();
on_thread_init();
has_started = true;
@@ -209,8 +225,9 @@ void CoreTiming::ResetTicks() {
u64 CoreTiming::GetClockTicks() const {
u64 fres = is_multicore ? Common::g_wall_clock.GetCNTPCT() : Common::WallClock::CPUTickToCNTPCT(cpu_ticks);
if (auto const overclock = Settings::values.fast_cpu_time.GetValue(); overclock != Settings::CpuClock::Off) {
fres = u64(f64(fres) * (1.7 + 0.3 * u32(overclock)));
if (const u32 target = CpuClockTargetMhz(Settings::values.cpu_clock.GetValue());
target != CPU_CLOCK_BASE_MHZ) {
fres = fres * target / CPU_CLOCK_BASE_MHZ;
}
if (::Settings::values.sync_core_speed.GetValue()) {
auto const ticks = f64(fres);
+1 -6
View File
@@ -174,12 +174,7 @@ void CpuManager::RunThread(std::stop_token token, std::size_t core) {
std::string name = is_multicore ? ("CPUCore_" + std::to_string(core)) : std::string{"CPUThread"};
Common::SetCurrentThreadName(name.c_str());
Common::SetCurrentThreadPriority(Common::ThreadPriority::Critical);
#ifdef __ANDROID__
// Aimed specifically for Snapdragon 8 Elite devices
// This kills performance on desktop, but boosts perf for UMA devices
// like the S8E. Mediatek and Mali likely won't suffer.
Common::PinCurrentThreadToPerformanceCore(core);
#endif
Common::SetCurrentThreadToPerformanceCores();
auto& data = core_data[core];
data.host_context = Common::Fiber::ThreadToFiber();
+27 -2
View File
@@ -6,30 +6,54 @@
#include <mutex>
#include <utility>
#if defined(__EMSCRIPTEN__) || defined(__wasi__)
// TODO: gdb stub compat with emscripten?
#else
#include <boost/asio.hpp>
#include <boost/version.hpp>
#if BOOST_VERSION > 108400 && (!defined(_WINDOWS) && !defined(__ANDROID__)) || defined(YUZU_BOOST_v1)
#define USE_BOOST_v1
#endif
#ifdef USE_BOOST_v1
#include <boost/process/v1/async_pipe.hpp>
#else
#include <boost/process/async_pipe.hpp>
#endif
#endif
#include "common/logging.h"
#include "common/polyfill_thread.h"
#include "common/thread.h"
#include "core/core.h"
#include "core/debugger/debugger.h"
#if defined(__EMSCRIPTEN__) || defined(__wasi__)
// TODO: gdbstub with emscripten?
#else
#include "core/debugger/debugger_interface.h"
#include "core/debugger/gdbstub.h"
#endif
#include "core/hle/kernel/global_scheduler_context.h"
#include "core/hle/kernel/k_process.h"
#include "core/hle/kernel/k_scheduler.h"
#if defined(__EMSCRIPTEN__) || defined(__wasi__)
namespace Core {
// Dummy
class DebuggerImpl {
char pad;
};
Debugger::Debugger(Core::System& system, u16 port) {}
Debugger::~Debugger() = default;
bool Debugger::NotifyThreadStopped(Kernel::KThread* thread) {
return false;
}
bool Debugger::NotifyThreadWatchpoint(Kernel::KThread* thread, const Kernel::DebugWatchpoint& watch) {
return false;
}
void Debugger::NotifyShutdown() {}
} // namespace Core
#else
template <typename Readable, typename Buffer, typename Callback>
static void AsyncReceiveInto(Readable& r, Buffer& buffer, Callback&& c) {
static_assert(std::is_trivial_v<Buffer>);
@@ -400,3 +424,4 @@ void Debugger::NotifyShutdown() {
}
} // namespace Core
#endif
+10 -3
View File
@@ -7,8 +7,14 @@
#include <random>
#include "common/scope_exit.h"
#include "common/settings.h"
#include "core/arm/exclusive_monitor.h"
#ifndef __EMSCRIPTEN__
#include "core/arm/dynarmic/arm_dynarmic.h"
#include "core/arm/dynarmic/dynarmic_exclusive_monitor.h"
#include "core/arm/dynarmic/arm_dynarmic_32.h"
#include "core/arm/dynarmic/arm_dynarmic_64.h"
#endif
#include "core/core.h"
#include "core/hle/kernel/k_process.h"
#include "core/hle/kernel/k_scoped_resource_reservation.h"
@@ -18,8 +24,6 @@
#include "core/hle/kernel/k_thread_queue.h"
#include "core/hle/kernel/k_worker_task_manager.h"
#include "core/arm/dynarmic/arm_dynarmic_32.h"
#include "core/arm/dynarmic/arm_dynarmic_64.h"
#ifdef HAS_NCE
#include "core/arm/nce/arm_nce.h"
#endif
@@ -1300,9 +1304,11 @@ void KProcess::LoadModule(KernelCore& kernel, CodeSet code_set, KProcessAddress
}
void KProcess::InitializeInterfaces(KernelCore& kernel) {
#ifdef __EMSCRIPTEN__
ASSERT(false && "unimplemented");
#else
m_exclusive_monitor =
Core::MakeExclusiveMonitor(this->GetMemory(), Core::Hardware::NUM_CPU_CORES);
#ifdef HAS_NCE
if (this->IsApplication() && Settings::IsNceEnabled()) {
for (size_t i = 0; i < Core::Hardware::NUM_CPU_CORES; i++)
@@ -1322,6 +1328,7 @@ void KProcess::InitializeInterfaces(KernelCore& kernel) {
static_cast<Core::DynarmicExclusiveMonitor&>(*m_exclusive_monitor), i);
}
}
#endif
}
bool KProcess::InsertWatchpoint(KernelCore& kernel, KProcessAddress addr, u64 size, DebugWatchpointType type) {
@@ -28,7 +28,7 @@ Result CloseHandle(Core::System& system, Handle handle) {
/// Clears the signaled state of an event or process.
Result ResetSignal(Core::System& system, Handle handle) {
LOG_DEBUG(Kernel_SVC, "called handle {:#08x}", handle);
LOG_TRACE(Kernel_SVC, "called handle {:#08x}", handle);
// Get the current handle table.
const auto& handle_table = GetCurrentProcess(system.Kernel()).GetHandleTable();
@@ -6,6 +6,7 @@
#include <boost/container/small_vector.hpp>
#include "common/adpf.h"
#include "common/assert.h"
#include "common/logging.h"
#include "core/core.h"
@@ -86,11 +87,16 @@ void nvdisp_disp0::Composite(std::span<const Nvnflinger::HwcLayer> sorted_layers
}
system.GPU().RequestComposite(std::move(output_layers), std::move(output_fences));
Common::ADPF::ReportFrameInterval();
system.SpeedLimiter().DoSpeedLimiting(system.CoreTiming().GetGlobalTimeUs());
system.GetPerfStats().EndSystemFrame();
system.GetPerfStats().BeginSystemFrame();
}
void nvdisp_disp0::WaitForComposite() {
system.GPU().WaitForComposite();
}
Kernel::KEvent* nvdisp_disp0::QueryEvent(u32 event_id) {
LOG_CRITICAL(Service_NVDRV, "Unknown DISP Event {}", event_id);
return nullptr;
@@ -1,3 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
@@ -37,6 +40,8 @@ public:
/// Performs a screen flip, compositing each buffer.
void Composite(std::span<const Nvnflinger::HwcLayer> sorted_layers);
void WaitForComposite();
Kernel::KEvent* QueryEvent(u32 event_id) override;
private:
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
@@ -57,18 +57,8 @@ u32 HardwareComposer::ComposeLocked(f32* out_speed_scale, Display& display,
// Set default speed limit to 100%.
*out_speed_scale = 1.0f;
// If no layers are available, skip the logic.
bool any_visible = false;
for (auto& layer : display.stack.layers) {
if (layer->visible) {
any_visible = true;
break;
}
}
if (!any_visible) {
*out_speed_scale = 1.0f;
return 1;
}
nvdisp.WaitForComposite();
this->ReleaseFramebuffersLocked(display);
// Determine the number of vsync periods to wait before composing again.
std::optional<s32> swap_interval{};
@@ -158,55 +148,30 @@ u32 HardwareComposer::ComposeLocked(f32* out_speed_scale, Display& display,
nvdisp.Composite(composition_stack);
}
// Batch framebuffer releases, instead of one-into-one.
std::vector<std::pair<Layer*, Framebuffer*>> to_release;
for (auto& [layer_id, framebuffer] : m_framebuffers) {
if (!framebuffer.is_acquired)
continue;
auto layer = display.stack.FindLayer(layer_id);
if (!layer)
continue;
// Overlay layers always release after every compose
// Non-overlay layers release based on their swap interval
if (layer->is_overlay || framebuffer.release_frame_number <= m_frame_number) {
to_release.emplace_back(layer.get(), &framebuffer);
}
}
for (auto& [layer, framebuffer] : to_release) {
layer->buffer_item_consumer->ReleaseBuffer(framebuffer->item, android::Fence::NoFence());
framebuffer->is_acquired = false;
}
// Advance by 1 frame (60 FPS compositing)
m_frame_number += 1;
// Release any necessary framebuffers (non-overlay layers only, as overlays are already released above).
return 1;
}
void HardwareComposer::ReleaseFramebuffersLocked(Display& display) {
for (auto& [layer_id, framebuffer] : m_framebuffers) {
if (!framebuffer.is_acquired) {
// Already released.
continue;
}
if (framebuffer.release_frame_number > m_frame_number) {
const auto layer = display.stack.FindLayer(layer_id);
if (!layer) {
continue;
}
if (const auto layer = display.stack.FindLayer(layer_id); layer != nullptr) {
// Skip overlay layers as they were already released above
if (layer->is_overlay) {
continue;
}
// TODO: support release fence
// This is needed to prevent screen tearing
layer->buffer_item_consumer->ReleaseBuffer(framebuffer.item, android::Fence::NoFence());
framebuffer.is_acquired = false;
if (!layer->is_overlay && framebuffer.release_frame_number > m_frame_number) {
continue;
}
layer->buffer_item_consumer->ReleaseBuffer(framebuffer.item, android::Fence::NoFence());
framebuffer.is_acquired = false;
}
return 1;
}
void HardwareComposer::RemoveLayerLocked(Display& display, ConsumerId consumer_id) {
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
@@ -52,6 +52,7 @@ private:
private:
bool TryAcquireFramebufferLocked(Layer& layer, Framebuffer& framebuffer);
CacheStatus CacheFramebufferLocked(Layer& layer, ConsumerId consumer_id);
void ReleaseFramebuffersLocked(Display& display);
};
} // namespace Service::Nvnflinger
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator
@@ -84,7 +84,7 @@ private:
RestrictionSettings restriction_settings{};
std::array<char, 8> pin_code{};
Capability capability{};
// TODO: this is RAW as fuck
// TODO: this is raw
PlayTimerSettings raw_play_timer_settings{};
KernelHelpers::ServiceContext service_context;

Some files were not shown because too many files have changed in this diff Show More