mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-25 16:54:41 +00:00
Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a8d38a0fce | |||
| 450c69d873 | |||
| e62d67e1a0 | |||
| e7a931d06b | |||
| 8648c27cbb | |||
| def76946f0 | |||
| 13d39f39aa | |||
| 7731b5bc86 | |||
| c4ab2f6b9e | |||
| dd12266c26 | |||
| a3d32a18b8 | |||
| c0ffc900cd | |||
| 3f52bf4b4b | |||
| 5ec94b1971 | |||
| 627770cd3a |
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
+29
-15
@@ -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")
|
||||
@@ -404,7 +418,7 @@ 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()
|
||||
|
||||
@@ -508,9 +522,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 +618,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)
|
||||
|
||||
@@ -13,7 +13,7 @@ find_package_handle_standard_args(Opus
|
||||
VERSION_VAR OPUS_VERSION
|
||||
)
|
||||
|
||||
if (PLATFORM_MSYS)
|
||||
if (MSYS2)
|
||||
FixMsysPath(PkgConfig::OPUS)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ find_package_handle_standard_args(enet
|
||||
VERSION_VAR ENET_VERSION
|
||||
)
|
||||
|
||||
if (PLATFORM_MSYS)
|
||||
if (MSYS2)
|
||||
FixMsysPath(PkgConfig::ENET)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ find_package_handle_standard_args(libusb
|
||||
VERSION_VAR LIBUSB_VERSION
|
||||
)
|
||||
|
||||
if (PLATFORM_MSYS)
|
||||
if (MSYS2)
|
||||
FixMsysPath(PkgConfig::LIBUSB)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -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
@@ -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.
|
||||
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</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 "%1"</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 "%1"</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 "%1"</source>
|
||||
<translation>"%1" فشل في حفظ ملف تعريف الإدخال</translation>
|
||||
</message>
|
||||
@@ -5997,50 +5997,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>أو قد لا يكون لديك أحدث برنامج تشغيل للرسومات OpenGL 4.6 قد لا تدعم بطاقة الرسومات الخاصة بك.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>قد لا تدعم وحدة معالجة الرسومات لديك ملحقًا واحدًا أو أكثر من ملحقات OpenGL المطلوبة. يُرجى التأكد من تثبيت أحدث برنامج تشغيل للرسومات.<br><br>GL Renderer:<br>1%<br><br>إضافات غير مدعومة: <br>2%</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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'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 "%1"</source>
|
||||
<translation>Error al crear el perfil d'entrada "%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>Eliminar perfil d'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 "%1"</source>
|
||||
<translation>Error al eliminar el perfil d'entrada "%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>Carregar perfil d'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 "%1"</source>
|
||||
<translation>Error al carregar el perfil d'entrada "%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>Guardar perfil d'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 "%1"</source>
|
||||
<translation>Error al guardar el perfil d'entrada "%1"</translation>
|
||||
</message>
|
||||
@@ -5923,50 +5923,50 @@ Please go to Configure -> System -> 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 té 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>La seva GPU no suporta OpenGL 4.6, o no té instal·lats els últims controladors gràfics.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>És possible que la seva GPU no suporti una o més extensions necessàries d'OpenGL. Si us plau, asseguris de tenir els últims controladors de la tarjeta gràfica.<br><br>GL Renderer:<br>%1<br><br>Extensions no suportades:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn't have OpenGL support.</source>
|
||||
<translation>Aquesta compilació no té 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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Nepodařilo se vytvořit profil vstupu "%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>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 "%1"</source>
|
||||
<translation>Nepodařilo se odstranit profil vstupu "%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>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 "%1"</source>
|
||||
<translation>Nepodařilo se načíst profil vstupu "%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>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 "%1"</source>
|
||||
<translation>Nepodařilo se uložit profil vstupu "%1"</translation>
|
||||
</message>
|
||||
@@ -5914,50 +5914,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Vaše grafická karta pravděpodobně nepodporuje OpenGL 4.6 nebo nejsou nainstalovány nejnovější ovladače.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Nepodporované rozšíření:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Oprettelse af input-profil "%1" 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 "%1"</source>
|
||||
<translation>Sletning af input-profil "%1" 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 "%1"</source>
|
||||
<translation>Indlæsning af input-profil "%1" 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 "%1"</source>
|
||||
<translation>Lagring af input-profil "%1" mislykkedes</translation>
|
||||
</message>
|
||||
@@ -5922,50 +5922,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Erstellen des Eingabeprofils "%1" 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 "%1"</source>
|
||||
<translation>Löschen des Eingabeprofils "%1" 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 "%1"</source>
|
||||
<translation>Laden des Eingabeprofils "%1" 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 "%1"</source>
|
||||
<translation>Speichern des Eingabeprofils "%1" ist fehlgeschlagen</translation>
|
||||
</message>
|
||||
@@ -6007,50 +6007,50 @@ Bitte gehe zu „Konfigurieren“ -> „System“ -> „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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Deine Grafikkarte unterstützt OpenGL 4.6 nicht, oder du benutzt nicht die neuste Treiberversion.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Nicht unterstützte Erweiterungen:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</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 "%1"</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 "%1"</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 "%1"</source>
|
||||
<translation>Η αποθήκευση του προφίλ χειρισμού "%1" απέτυχε</translation>
|
||||
</message>
|
||||
@@ -5913,50 +5913,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Error al crear el perfil de entrada "%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>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 "%1"</source>
|
||||
<translation>Error al eliminar el perfil de entrada "%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>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 "%1"</source>
|
||||
<translation>Error al cargar el perfil de entrada "%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>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 "%1"</source>
|
||||
<translation>Error al guardar el perfil de entrada "%1"</translation>
|
||||
</message>
|
||||
@@ -6004,50 +6004,50 @@ Por favor, vaya a Configuración -> Sistema -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Tu GPU no soporta OpenGL 4.6, o no tienes instalado el último controlador de la tarjeta gráfica.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Extensiones no soportadas:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</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 "%1"</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 "%1"</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 "%1"</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
@@ -5891,50 +5891,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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'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>
|
||||
|
||||
Vendored
+45
-45
@@ -4320,58 +4320,58 @@ Pour inverser les axes, bougez d'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'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 "%1"</source>
|
||||
<translation>Échec de la création du profil d'entrée "%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>Supprimer le profil d'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 "%1"</source>
|
||||
<translation>Échec de la suppression du profil d'entrée "%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>Charger le profil d'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 "%1"</source>
|
||||
<translation>Échec du chargement du profil d'entrée "%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>Sauvegarder le profil d'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 "%1"</source>
|
||||
<translation>Échec de la sauvegarde du profil d'entrée "%1"</translation>
|
||||
</message>
|
||||
@@ -5980,50 +5980,50 @@ Veuillez aller dans Configurer -> Système -> 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'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'a pas été 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'initialisation d'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'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'initialisation d'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.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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.<br><br>GL Renderer :<br>%1<br><br>Extensions non prises en charge :<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>A "%1" 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 "%1"</source>
|
||||
<translation>A "%1" 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 "%1"</source>
|
||||
<translation>A "%1" 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 "%1"</source>
|
||||
<translation>A "%1" beviteli profilt nem sikerült elmenteni</translation>
|
||||
</message>
|
||||
@@ -5906,50 +5906,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Nem támogatott kiterjesztések:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Gagal membuat profil masukan "%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>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 "%1"</source>
|
||||
<translation>Gagal menghapus profil masukan "%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>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 "%1"</source>
|
||||
<translation>Gagal memuat profil masukan "%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>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 "%1"</source>
|
||||
<translation>Gagal menyimpan profil masukan "%1"</translation>
|
||||
</message>
|
||||
@@ -5942,50 +5942,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>VGA anda mungkin tidak mendukung OpenGL 4.6, atau anda tidak memiliki pemacu piranti (driver) grafis terbaharu.<br><br>Pemuat GL:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>VGA anda mungkin tidak mendukung satu atau lebih ekstensi OpenGL. Mohon pastikan bahwa anda memiliki pemacu piranti (driver) grafis terbaharu.<br><br>Pemuat GL:<br>%1<br><br>Ekstensi yang tidak didukung:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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"/>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Impossibile creare il profilo di input "%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>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 "%1"</source>
|
||||
<translation>Impossibile eliminare il profilo di input "%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>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 "%1"</source>
|
||||
<translation>Impossibile caricare il profilo di input "%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>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 "%1"</source>
|
||||
<translation>Impossibile creare il profilo di input "%1"</translation>
|
||||
</message>
|
||||
@@ -6001,50 +6001,50 @@ Vai su Configura -> Sistema -> 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'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'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'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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>La tua GPU potrebbe non supportare OpenGL 4.6, o non hai installato l'ultima versione dei driver video.<br><br>Renderer GL:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>La tua GPU potrebbe non supportare una o più estensioni OpenGL richieste. Assicurati di aver installato i driver video più recenti.<br><br>Renderer GL:<br>%1<br><br>Estensioni non supportate:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</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 "%1"</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 "%1"</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 "%1"</source>
|
||||
<translation>入力プロファイル "%1" のセーブに失敗しました</translation>
|
||||
</message>
|
||||
@@ -5929,50 +5929,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>GPUがOpenGL4.6をサポートしていないか、グラフィックスドライバーが最新ではありません。<br><br>GL レンダラ:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>GPUが1つ以上の必要なOpenGL拡張機能をサポートしていない可能性があります。最新のグラフィックドライバを使用していることを確認してください。<br><br>GL レンダラ:<br>%1<br><br>サポートされていない拡張機能:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</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 "%1"</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 "%1"</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 "%1"</source>
|
||||
<translation>"%1" 입력 프로필 저장 실패</translation>
|
||||
</message>
|
||||
@@ -6017,50 +6017,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>사용 중인 GPU가 OpenGL 4.6을 지원하지 않거나 최신 그래픽 드라이버가 설치되어 있지 않습니다.<br><br>GL 렌더러:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>사용 중인 GPU가 하나 이상의 필수 OpenGL 확장 기능을 지원하지 않을 수 있습니다. 최신 그래픽 드라이버가 설치되어 있는지 확인해 주세요.<br><br>GL 렌더러:<br>%1<br><br>지원되지 않는 확장 기능:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Klarte ikke lage inndataprofil "%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>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 "%1"</source>
|
||||
<translation>Klarte ikke slette inndataprofil "%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>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 "%1"</source>
|
||||
<translation>Klarte ikke laste inn inndataprofil "%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>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 "%1"</source>
|
||||
<translation>Klarte ikke lagre inndataprofil "%1"</translation>
|
||||
</message>
|
||||
@@ -5926,50 +5926,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Det kan hende at GPU-en din ikke støtter OpenGL 4.6, eller at du ikke har den nyeste grafikkdriveren.<br><br>GL-renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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.<br><br>GL-renderer: <br>%1<br><br>Ikke-støttede utvidelser:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Kon invoerprofiel "%1" 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 "%1"</source>
|
||||
<translation>Kon invoerprofiel "%1" 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 "%1"</source>
|
||||
<translation>Kon invoerprofiel "%1" 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 "%1"</source>
|
||||
<translation>Kon invoerprofiel "%1" niet opslaan</translation>
|
||||
</message>
|
||||
@@ -5924,50 +5924,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Je GPU ondersteunt mogelijk OpenGL 4.6 niet, of je hebt niet het laatste grafische stuurprogramma.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Je GPU ondersteunt mogelijk een of meer vereiste OpenGL-extensies niet. Zorg ervoor dat je het laatste grafische stuurprogramma hebt.<br><br>GL Renderer:<br>%1<br><br>Ondersteunde extensies:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Nie udało się utworzyć profilu wejściowego "%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>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 "%1"</source>
|
||||
<translation>Nie udało się usunąć profilu wejściowego "%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>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 "%1"</source>
|
||||
<translation>Nie udało się wczytać profilu wejściowego "%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>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 "%1"</source>
|
||||
<translation>Nie udało się zapisać profilu wejściowego "%1"</translation>
|
||||
</message>
|
||||
@@ -5990,50 +5990,50 @@ Przejdź do sekcji Konfiguracja -> System -> 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 są 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Twoja karta graficzna może nie obsługiwać OpenGL 4.6 lub nie masz najnowszych sterowników karty graficznej.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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<br><br>GL Renderer:<br>%1<br><br>Nieobsługiwane rozszerzenia:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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%2Oś %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%2Oś %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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Falha ao criar o perfil de controlo "%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>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 "%1"</source>
|
||||
<translation>Falha ao apagar o perfil de controlo "%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>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 "%1"</source>
|
||||
<translation>Falha ao carregar o perfil de controlo "%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>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 "%1"</source>
|
||||
<translation>Falha ao salvar o perfil de controle "%1"</translation>
|
||||
</message>
|
||||
@@ -5997,50 +5997,50 @@ Por favor vá para Configuração -> Sistema -> 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.<br><br>GL Renderer:<br>%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.<br><br>Renderizador GL:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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.<br><br>Renderizador GL:<br>%1<br><br>Extensões não suportadas:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Falha ao criar o perfil de controlo "%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>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 "%1"</source>
|
||||
<translation>Falha ao apagar o perfil de controlo "%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>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 "%1"</source>
|
||||
<translation>Falha ao carregar o perfil de controlo "%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>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 "%1"</source>
|
||||
<translation>Falha ao guardar o perfil de controlo "%1"</translation>
|
||||
</message>
|
||||
@@ -5927,50 +5927,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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.<br><br>Renderizador GL:<br>%1<br><br>Extensões não suportadas:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</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 "%1"</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 "%1"</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 "%1"</source>
|
||||
<translation>Не удалось сохранить профиль управления "%1"</translation>
|
||||
</message>
|
||||
@@ -6005,50 +6005,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Ваш ГП может не поддерживать OpenGL 4.6, или у вас установлен устаревший графический драйвер.<br><br>Рендерер GL:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Ваш ГП может не поддерживать одно или несколько требуемых расширений OpenGL. Пожалуйста, убедитесь в том, что у вас установлен последний графический драйвер.<br><br>Рендерер GL:<br>%1<br><br>Неподдерживаемые расширения:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>Misslyckades med att skapa inmatningsprofilen "%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>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 "%1"</source>
|
||||
<translation>Misslyckades med att ta bort inmatningsprofilen "%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>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 "%1"</source>
|
||||
<translation>Misslyckades med att läsa in inmatningsprofilen "%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>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 "%1"</source>
|
||||
<translation>Misslyckades med att spara inmatningsprofilen "%1"</translation>
|
||||
</message>
|
||||
@@ -6012,50 +6012,50 @@ Gå till Konfigurera -> System -> 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 så 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Din GPU kanske inte stöder OpenGL 4.6, eller så har du inte den senaste grafikdrivrutinen.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Tillägg som inte stöds:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</source>
|
||||
<translation>"%1" 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 "%1"</source>
|
||||
<translation>"%1" 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 "%1"</source>
|
||||
<translation>"%1" 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 "%1"</source>
|
||||
<translation>"%1" kontrol profili kaydedilemedi</translation>
|
||||
</message>
|
||||
@@ -5955,50 +5955,50 @@ Please go to Configure -> System -> 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'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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>GPU'nuz OpenGL 4.6'yı desteklemiyor veya güncel bir grafik sürücüsüne sahip değilsiniz.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>GPU'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.<br><br>GL Renderer:<br>%1<br><br> Desteklenmeyen Eklentiler:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</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 "%1"</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 "%1"</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 "%1"</source>
|
||||
<translation>Не вдалося зберегти профіль введення «%1»</translation>
|
||||
</message>
|
||||
@@ -6009,50 +6009,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Ваш ГП може не підтримувати OpenGL 4.6 або у вас встановлено застарілий графічний драйвер.<br><br>Візуалізатор GL:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Ваш ГП може не підтримувати одне або кілька розширень, необхідних для OpenGL. Переконайтеся, що у вас встановлено останній графічний драйвер.<br><br>Візуалізатор GL:<br>%1<br><br>Непідтримувані розширення:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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ồ sơ 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ồ sơ:</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ồ sơ đầ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ồ sơ 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 "%1"</source>
|
||||
<translation>Thất bại khi tạo hồ sơ đầu vào "%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>Xoá hồ sơ đầ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 "%1"</source>
|
||||
<translation>Thất bại khi xoá hồ sơ đầu vào "%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>Nạp hồ sơ đầ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 "%1"</source>
|
||||
<translation>Thất bại khi nạp hồ sơ đầu vào "%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>Lưu hồ sơ đầ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 "%1"</source>
|
||||
<translation>Thất bại khi lưu hồ sơ dầu vào "%1"</translation>
|
||||
</message>
|
||||
@@ -5927,50 +5927,50 @@ Please go to Configure -> System -> 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 có thể không hỗ trợ OpenGL, hoặc bạn không có 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>GPU của bạn có thể không hỗ trợ OpenGL 4.6, hoặc bạn không có driver đồ hoạ mới nhất.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>GPU của bạn có 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 có driver đồ hoạ mới nhất.<br><br>GL Renderer:<br>%1<br><br>Tiện ích không hỗ trợ:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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%2Mũ %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>
|
||||
|
||||
Vendored
+45
-45
@@ -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ồ sơ 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ồ sơ:</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ồ Sơ 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ồ sơ 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 "%1"</source>
|
||||
<translation>Quá trình tạo hồ sơ phím "%1" 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ồ Sơ 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 "%1"</source>
|
||||
<translation>Quá trình xóa hồ sơ phím "%1" 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ồ Sơ 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 "%1"</source>
|
||||
<translation>Quá trình nạp hồ sơ phím "%1" 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ồ Sơ 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 "%1"</source>
|
||||
<translation>Quá trình lưu hồ sơ phím "%1" thất bại</translation>
|
||||
</message>
|
||||
@@ -5927,50 +5927,50 @@ Please go to Configure -> System -> 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 có 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 có thể không hỗ trợ OpenGL, hoặc bạn không có 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>GPU của bạn có thể không hỗ trợ OpenGL 4.6, hoặc bạn không có driver đồ hoạ mới nhất.<br><br>GL Renderer:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>GPU của bạn có 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 có driver đồ hoạ mới nhất.<br><br>GL Renderer:<br>%1<br><br>Tiện ích không hỗ trợ:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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%2Mũ %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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</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 "%1"</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 "%1"</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 "%1"</source>
|
||||
<translation>保存输入配置文件 "%1" 失败</translation>
|
||||
</message>
|
||||
@@ -5995,50 +5995,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>您的 GPU 可能不支持 OpenGL 4.6 ,或者您没有安装最新的显卡驱动。<br><br>GL 渲染器:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>您的 GPU 可能不支持某些必需的 OpenGL 扩展。请确保您已经安装最新的显卡驱动。<br><br>GL 渲染器:<br>%1<br><br>不支持的扩展:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
Vendored
+45
-45
@@ -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 "%1"</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 "%1"</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 "%1"</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 "%1"</source>
|
||||
<translation>儲存輸入設定檔「%1」失敗</translation>
|
||||
</message>
|
||||
@@ -5954,50 +5954,50 @@ Please go to Configure -> System -> 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.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>您的 GPU 可能不支援 OpenGL 4.6,或是未安裝最新的圖形驅動程式<br><br>GL 渲染器:<br>%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.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>您的 GPU 可能不支援某些必需的 OpenGL 功能。請確保您已安裝最新的圖形驅動程式。<br><br>GL 渲染器:<br>%1<br><br>不支援的功能:<br>%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="921"/>
|
||||
<source>This build doesn'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>
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
+36
-37
@@ -76,45 +76,44 @@ public:
|
||||
u64 ticks_left = 0;
|
||||
std::array<u8, 2048> memory{};
|
||||
|
||||
u8 MemoryRead8(u32 vaddr) override {
|
||||
if (vaddr >= memory.size()) {
|
||||
return 0;
|
||||
u64 MemoryRead(u64 vaddr, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64):
|
||||
return MemoryRead(vaddr, sizeof(u32))
|
||||
| MemoryRead(vaddr + sizeof(u32), sizeof(u32)) << 32;
|
||||
case sizeof(u32):
|
||||
return MemoryRead(vaddr, sizeof(u16))
|
||||
| MemoryRead(vaddr + sizeof(u16), sizeof(u16)) << 16;
|
||||
case sizeof(u16):
|
||||
return MemoryRead(vaddr, sizeof(u8))
|
||||
| MemoryRead(vaddr + sizeof(u8), sizeof(u8)) << 8;
|
||||
case sizeof(u8):
|
||||
return vaddr >= memory.size() ? 0 : memory[vaddr];
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
return memory[vaddr];
|
||||
}
|
||||
|
||||
u16 MemoryRead16(u32 vaddr) override {
|
||||
return u16(MemoryRead8(vaddr)) | u16(MemoryRead8(vaddr + 1)) << 8;
|
||||
}
|
||||
|
||||
u32 MemoryRead32(u32 vaddr) override {
|
||||
return u32(MemoryRead16(vaddr)) | u32(MemoryRead16(vaddr + 2)) << 16;
|
||||
}
|
||||
|
||||
u64 MemoryRead64(u32 vaddr) override {
|
||||
return u64(MemoryRead32(vaddr)) | u64(MemoryRead32(vaddr + 4)) << 32;
|
||||
}
|
||||
|
||||
void MemoryWrite8(u32 vaddr, u8 value) override {
|
||||
if (vaddr >= memory.size()) {
|
||||
return;
|
||||
void MemoryWrite(Dynarmic::A32::VAddr vaddr, u64 value, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64):
|
||||
MemoryWrite(vaddr, u32(value), sizeof(u32));
|
||||
MemoryWrite(vaddr + 4, u32(value >> 32), sizeof(u32));
|
||||
break;
|
||||
case sizeof(u32):
|
||||
MemoryWrite(vaddr, u16(value), sizeof(u16));
|
||||
MemoryWrite(vaddr + 2, u16(value >> 16), sizeof(u16));
|
||||
break;
|
||||
case sizeof(u16):
|
||||
MemoryWrite(vaddr, u8(value), sizeof(u8));
|
||||
MemoryWrite(vaddr + 1, u8(value >> 8), sizeof(u8));
|
||||
break;
|
||||
case sizeof(u8):
|
||||
memory[vaddr] = value;
|
||||
break;
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
memory[vaddr] = value;
|
||||
}
|
||||
|
||||
void MemoryWrite16(u32 vaddr, u16 value) override {
|
||||
MemoryWrite8(vaddr, u8(value));
|
||||
MemoryWrite8(vaddr + 1, u8(value >> 8));
|
||||
}
|
||||
|
||||
void MemoryWrite32(u32 vaddr, u32 value) override {
|
||||
MemoryWrite16(vaddr, u16(value));
|
||||
MemoryWrite16(vaddr + 2, u16(value >> 16));
|
||||
}
|
||||
|
||||
void MemoryWrite64(u32 vaddr, u64 value) override {
|
||||
MemoryWrite32(vaddr, u32(value));
|
||||
MemoryWrite32(vaddr + 4, u32(value >> 32));
|
||||
}
|
||||
|
||||
void CallSVC(u32 swi) override {
|
||||
@@ -149,8 +148,8 @@ int main(int argc, char** argv) {
|
||||
env.ticks_left = 1;
|
||||
|
||||
// Write some code to memory.
|
||||
env.MemoryWrite16(0, 0x0088); // lsls r0, r1, #2
|
||||
env.MemoryWrite16(2, 0xE7FE); // b +#0 (infinite loop)
|
||||
env.MemoryWrite(0, 0x0088, 2); // lsls r0, r1, #2
|
||||
env.MemoryWrite(2, 0xE7FE, 2); // b +#0 (infinite loop)
|
||||
|
||||
// Setup registers.
|
||||
cpu.Regs()[0] = 1;
|
||||
|
||||
@@ -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++
|
||||
|
||||
Vendored
+1
-1
@@ -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)
|
||||
|
||||
+23
-80
@@ -1,45 +1,46 @@
|
||||
# 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)
|
||||
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 +48,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 +60,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 +91,9 @@ 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()
|
||||
|
||||
# awesome
|
||||
if (PLATFORM_FREEBSD OR PLATFORM_DRAGONFLYBSD)
|
||||
set(CMAKE_EXE_LINKER_FLAGS
|
||||
"${CMAKE_EXE_LINKER_FLAGS} -L${CMAKE_SYSROOT}/usr/local/lib")
|
||||
endif()
|
||||
|
||||
Vendored
+5
-5
@@ -56,7 +56,7 @@ if (NOT YUZU_USE_BUNDLED_FFMPEG)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (PLATFORM_PS4 OR PLATFORM_MANAGARM)
|
||||
if (OPENORBIS OR MANAGARM)
|
||||
# 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 +75,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,7 +158,7 @@ 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
|
||||
@@ -172,7 +172,7 @@ if (PLATFORM_PS4)
|
||||
--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
|
||||
@@ -299,7 +299,7 @@ else()
|
||||
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()
|
||||
set(FFmpeg_MAKE_ARGS "")
|
||||
|
||||
Vendored
+1
-1
@@ -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)
|
||||
|
||||
|
||||
Vendored
+2
-2
@@ -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;
|
||||
|
||||
+21
-9
@@ -155,12 +155,24 @@ 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>
|
||||
@@ -169,9 +181,9 @@ else()
|
||||
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>
|
||||
@@ -181,7 +193,7 @@ else()
|
||||
|
||||
if (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()
|
||||
|
||||
-1
@@ -27,7 +27,6 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
||||
RENDERER_ASYNCHRONOUS_GPU_EMULATION("use_asynchronous_gpu_emulation"),
|
||||
RENDERER_ASYNC_PRESENTATION("async_presentation"),
|
||||
RENDERER_ASYNCHRONOUS_SHADERS("use_asynchronous_shaders"),
|
||||
RENDERER_UNIFIED_MEMORY("use_unified_memory"),
|
||||
RENDERER_REACTIVE_FLUSHING("use_reactive_flushing"),
|
||||
ENABLE_BUFFER_HISTORY("enable_buffer_history"),
|
||||
USE_OPTIMIZED_VERTEX_BUFFERS("use_optimized_vertex_buffers"),
|
||||
|
||||
-7
@@ -685,13 +685,6 @@ abstract class SettingsItem(
|
||||
descriptionId = R.string.renderer_asynchronous_shaders_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.RENDERER_UNIFIED_MEMORY,
|
||||
titleId = R.string.renderer_unified_memory,
|
||||
descriptionId = R.string.renderer_unified_memory_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SingleChoiceSetting(
|
||||
IntSetting.FAST_GPU_TIME,
|
||||
|
||||
-1
@@ -304,7 +304,6 @@ class SettingsFragmentPresenter(
|
||||
add(BooleanSetting.EMULATE_BGR565.key)
|
||||
add(BooleanSetting.RESCALE_HACK.key)
|
||||
add(BooleanSetting.RENDERER_ASYNCHRONOUS_SHADERS.key)
|
||||
add(BooleanSetting.RENDERER_UNIFIED_MEMORY.key)
|
||||
add(IntSetting.ANDROID_PIPELINE_WORKERS.key)
|
||||
add(BooleanSetting.RENDERER_ASYNCHRONOUS_GPU_EMULATION.key)
|
||||
add(BooleanSetting.RENDERER_ASYNC_PRESENTATION.key)
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -524,8 +524,6 @@
|
||||
<string name="rescale_hack_description">Enables a legacy handling for the rescale configuration pass for games by using a quick rescale path</string>
|
||||
<string name="renderer_asynchronous_shaders">Use asynchronous shaders</string>
|
||||
<string name="renderer_asynchronous_shaders_description">Compiles shaders asynchronously. This may reduce stutters but may also introduce glitches.</string>
|
||||
<string name="renderer_unified_memory">Unified memory access</string>
|
||||
<string name="renderer_unified_memory_description">Allows GPU write buffer readbacks directly into guest memory, skipping the CPU staging copy.</string>
|
||||
<string name="gpu_unswizzle_settings">GPU Unswizzle Settings</string>
|
||||
<string name="gpu_unswizzle_settings_description">Configure GPU-based texture unswizzling parameters or disable it entirely. Adjust these settings to balance performance and texture loading quality.</string>
|
||||
<string name="gpu_unswizzle_enable">Enable GPU Unswizzle</string>
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -220,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
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
||||
+6
-340
@@ -51,45 +51,14 @@
|
||||
|
||||
#endif // ^^^ POSIX ^^^
|
||||
|
||||
#include <atomic>
|
||||
#include <mutex>
|
||||
#include <random>
|
||||
#include <vector>
|
||||
|
||||
#include "common/alignment.h"
|
||||
#include "common/assert.h"
|
||||
#include "common/free_region_manager.h"
|
||||
#include "common/host_memory.h"
|
||||
#include "common/logging.h"
|
||||
#include "common/memory_detect.h"
|
||||
#include "common/settings.h"
|
||||
|
||||
#ifdef __ANDROID__
|
||||
#include <dlfcn.h>
|
||||
#include <android/hardware_buffer.h>
|
||||
|
||||
namespace {
|
||||
|
||||
struct NativeHandle {
|
||||
int version;
|
||||
int numFds;
|
||||
int numInts;
|
||||
int data[1];
|
||||
};
|
||||
|
||||
using PFN_AHardwareBuffer_getNativeHandle = const NativeHandle* (*)(const AHardwareBuffer*);
|
||||
|
||||
PFN_AHardwareBuffer_getNativeHandle ResolveGetNativeHandle() {
|
||||
void* const lib = dlopen("libnativewindow.so", RTLD_NOW);
|
||||
if (lib == nullptr) {
|
||||
return nullptr;
|
||||
}
|
||||
return reinterpret_cast<PFN_AHardwareBuffer_getNativeHandle>(
|
||||
dlsym(lib, "AHardwareBuffer_getNativeHandle"));
|
||||
}
|
||||
|
||||
} // namespace
|
||||
#endif
|
||||
|
||||
#if defined(__ANDROID__) && __ANDROID_API__ < 30
|
||||
#include <sys/syscall.h>
|
||||
@@ -106,12 +75,6 @@ namespace Common {
|
||||
[[maybe_unused]] constexpr size_t PageAlignment = 0x1000;
|
||||
[[maybe_unused]] constexpr size_t HugePageSize = 0x200000;
|
||||
|
||||
static std::atomic<u64> committed_backing_size{};
|
||||
|
||||
u64 GetCommittedBackingSize() noexcept {
|
||||
return committed_backing_size.load(std::memory_order_relaxed);
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
// Manually imported for MinGW compatibility
|
||||
@@ -160,7 +123,7 @@ static void GetFuncAddress(Common::DynamicLibrary& dll, const char* name, T& pfn
|
||||
|
||||
class HostMemory::Impl {
|
||||
public:
|
||||
explicit Impl(size_t backing_size_, size_t virtual_size_, size_t)
|
||||
explicit Impl(size_t backing_size_, size_t virtual_size_)
|
||||
: backing_size{backing_size_}
|
||||
, virtual_size{virtual_size_}
|
||||
, process{GetCurrentProcess()}
|
||||
@@ -266,10 +229,6 @@ public:
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
bool IsBackingShared() const noexcept {
|
||||
return true;
|
||||
}
|
||||
|
||||
const size_t backing_size; ///< Size of the backing memory in bytes
|
||||
const size_t virtual_size; ///< Size of the virtual address placeholder in bytes
|
||||
|
||||
@@ -542,10 +501,9 @@ static int shm_open_anon(int flags, mode_t mode) {
|
||||
|
||||
class HostMemory::Impl {
|
||||
public:
|
||||
explicit Impl(size_t backing_size_, size_t virtual_size_, size_t preferred_offset_)
|
||||
explicit Impl(size_t backing_size_, size_t virtual_size_)
|
||||
: backing_size{backing_size_}
|
||||
, virtual_size{virtual_size_}
|
||||
, preferred_offset{preferred_offset_}
|
||||
{}
|
||||
|
||||
bool Init() {
|
||||
@@ -585,15 +543,10 @@ public:
|
||||
LOG_WARNING(Common_Memory, "Using private mappings instead of shared ones");
|
||||
backing_base = static_cast<u8*>(mmap(nullptr, backing_size, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0));
|
||||
if (fd > 0) {
|
||||
fd = -1;
|
||||
close(fd);
|
||||
}
|
||||
fd = -1;
|
||||
} else {
|
||||
#ifdef __ANDROID__
|
||||
if (InitAhbBacking()) {
|
||||
return InitVirtual();
|
||||
}
|
||||
#endif
|
||||
backing_base = static_cast<u8*>(mmap(nullptr, backing_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0));
|
||||
}
|
||||
if (backing_base == MAP_FAILED) {
|
||||
@@ -601,10 +554,7 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
return InitVirtual();
|
||||
}
|
||||
|
||||
bool InitVirtual() {
|
||||
// Virtual memory initialization
|
||||
virtual_base = virtual_map_base = static_cast<u8*>(ChooseVirtualBase(virtual_size));
|
||||
if (virtual_base == MAP_FAILED) {
|
||||
LOG_CRITICAL(HW_Memory, "mmap failed: {}", strerror(errno));
|
||||
@@ -617,222 +567,6 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifdef __ANDROID__
|
||||
static AHardwareBuffer_Desc MakeBlobDesc(size_t len) {
|
||||
return AHardwareBuffer_Desc{
|
||||
.width = static_cast<u32>(len),
|
||||
.height = 1,
|
||||
.layers = 1,
|
||||
.format = AHARDWAREBUFFER_FORMAT_BLOB,
|
||||
.usage = AHARDWAREBUFFER_USAGE_CPU_READ_OFTEN |
|
||||
AHARDWAREBUFFER_USAGE_CPU_WRITE_OFTEN |
|
||||
AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER,
|
||||
.stride = 0,
|
||||
.rfu0 = 0,
|
||||
.rfu1 = 0,
|
||||
};
|
||||
}
|
||||
|
||||
static bool ProbeAhbBacking(PFN_AHardwareBuffer_getNativeHandle get_native_handle) {
|
||||
const AHardwareBuffer_Desc desc = MakeBlobDesc(PageAlignment * 2);
|
||||
AHardwareBuffer* buffer{};
|
||||
if (AHardwareBuffer_allocate(&desc, &buffer) != 0 || buffer == nullptr) {
|
||||
return false;
|
||||
}
|
||||
const NativeHandle* const handle = get_native_handle(buffer);
|
||||
if (handle == nullptr || handle->numFds < 1) {
|
||||
AHardwareBuffer_release(buffer);
|
||||
return false;
|
||||
}
|
||||
const int probe_fd = handle->data[0];
|
||||
bool ok = true;
|
||||
const auto try_map = [&](int prot, off_t offset, const char* what) {
|
||||
if (!ok) {
|
||||
return;
|
||||
}
|
||||
void* const ptr = mmap(nullptr, PageAlignment, prot, MAP_SHARED, probe_fd, offset);
|
||||
if (ptr == MAP_FAILED) {
|
||||
ok = false;
|
||||
return;
|
||||
}
|
||||
munmap(ptr, PageAlignment);
|
||||
};
|
||||
try_map(PROT_READ | PROT_WRITE, 0, "shared mappings");
|
||||
try_map(PROT_READ | PROT_WRITE, static_cast<off_t>(PageAlignment), "mappings at an offset");
|
||||
#ifdef ARCHITECTURE_arm64
|
||||
try_map(PROT_READ | PROT_EXEC, 0, "executable mappings");
|
||||
#endif
|
||||
AHardwareBuffer_release(buffer);
|
||||
return ok;
|
||||
}
|
||||
|
||||
size_t ComputeAhbBudget(size_t window_size) const {
|
||||
const u64 total_physical = Common::GetMemInfo().TotalPhysicalMemory;
|
||||
if (total_physical == 0) {
|
||||
return 0;
|
||||
}
|
||||
constexpr u64 MinimumTotalPhysical = 7ULL << 30;
|
||||
if (total_physical < MinimumTotalPhysical) {
|
||||
return 0;
|
||||
}
|
||||
const u64 max_map_count = Common::GetMaxMapCount();
|
||||
constexpr u64 ReservedMaps = 24576;
|
||||
if (max_map_count == 0 || max_map_count <= ReservedMaps) {
|
||||
return 0;
|
||||
}
|
||||
u64 budget = total_physical / 6;
|
||||
budget = (std::min)(budget, (max_map_count - ReservedMaps) * PageAlignment);
|
||||
const u64 available = Common::GetAvailablePhysicalMemory();
|
||||
if (available != 0) {
|
||||
constexpr u64 Headroom = 2ULL << 30;
|
||||
budget = (std::min)(budget, available > Headroom ? available - Headroom : 0);
|
||||
}
|
||||
budget = (std::min)(budget, static_cast<u64>(backing_size));
|
||||
budget = Common::AlignDown(budget, window_size);
|
||||
constexpr u64 MinimumBudget = 256ULL << 20;
|
||||
if (budget < MinimumBudget) {
|
||||
return 0;
|
||||
}
|
||||
return static_cast<size_t>(budget);
|
||||
}
|
||||
|
||||
bool InitAhbBacking() {
|
||||
if (!Settings::values.use_unified_memory.GetValue()) {
|
||||
return false;
|
||||
}
|
||||
static const PFN_AHardwareBuffer_getNativeHandle get_native_handle =
|
||||
ResolveGetNativeHandle();
|
||||
if (get_native_handle == nullptr) {
|
||||
return false;
|
||||
}
|
||||
constexpr size_t window_size = 512ULL << 20;
|
||||
const AHardwareBuffer_Desc window_desc = MakeBlobDesc(window_size);
|
||||
if (AHardwareBuffer_isSupported(&window_desc) == 0) {
|
||||
return false;
|
||||
}
|
||||
const size_t budget = ComputeAhbBudget(window_size);
|
||||
if (budget == 0) {
|
||||
return false;
|
||||
}
|
||||
if (!ProbeAhbBacking(get_native_handle)) {
|
||||
return false;
|
||||
}
|
||||
const size_t aligned_backing = Common::AlignDown(backing_size, window_size);
|
||||
const size_t region_size = (std::min)(budget, aligned_backing);
|
||||
const size_t region_base = Common::AlignDown(
|
||||
(std::min)(preferred_offset, aligned_backing - region_size), window_size);
|
||||
const size_t num_windows = region_size / window_size;
|
||||
|
||||
std::vector<AHardwareBuffer*> buffers;
|
||||
std::vector<int> buffer_fds;
|
||||
const auto cleanup = [&] {
|
||||
for (AHardwareBuffer* buffer : buffers) {
|
||||
AHardwareBuffer_release(buffer);
|
||||
}
|
||||
buffers.clear();
|
||||
buffer_fds.clear();
|
||||
};
|
||||
for (size_t i = 0; i < num_windows; ++i) {
|
||||
const AHardwareBuffer_Desc desc = MakeBlobDesc(window_size);
|
||||
AHardwareBuffer* buffer{};
|
||||
if (AHardwareBuffer_allocate(&desc, &buffer) != 0 || buffer == nullptr) {
|
||||
cleanup();
|
||||
return false;
|
||||
}
|
||||
buffers.push_back(buffer);
|
||||
const NativeHandle* const handle = get_native_handle(buffer);
|
||||
if (handle == nullptr || handle->numFds < 1) {
|
||||
cleanup();
|
||||
return false;
|
||||
}
|
||||
const int buffer_fd = handle->data[0];
|
||||
const off_t buffer_len = lseek(buffer_fd, 0, SEEK_END);
|
||||
if (buffer_len < static_cast<off_t>(window_size)) {
|
||||
cleanup();
|
||||
return false;
|
||||
}
|
||||
buffer_fds.push_back(buffer_fd);
|
||||
}
|
||||
u8* const base = static_cast<u8*>(mmap(nullptr, backing_size, PROT_NONE,
|
||||
MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0));
|
||||
if (base == MAP_FAILED) {
|
||||
cleanup();
|
||||
return false;
|
||||
}
|
||||
const auto map_over_reservation = [&](size_t offset, size_t len, int map_fd,
|
||||
off_t map_offset) {
|
||||
if (len == 0) {
|
||||
return true;
|
||||
}
|
||||
if (mmap(base + offset, len, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED, map_fd,
|
||||
map_offset) == MAP_FAILED) {
|
||||
munmap(base, backing_size);
|
||||
cleanup();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
if (!map_over_reservation(0, region_base, fd, 0)) {
|
||||
return false;
|
||||
}
|
||||
for (size_t i = 0; i < num_windows; ++i) {
|
||||
if (!map_over_reservation(region_base + i * window_size, window_size, buffer_fds[i],
|
||||
0)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
const size_t tail_offset = region_base + region_size;
|
||||
if (!map_over_reservation(tail_offset, backing_size - tail_offset, fd,
|
||||
static_cast<off_t>(tail_offset))) {
|
||||
return false;
|
||||
}
|
||||
backing_base = base;
|
||||
ahb_windows = std::move(buffers);
|
||||
ahb_fds = std::move(buffer_fds);
|
||||
ahb_window_size = window_size;
|
||||
ahb_base = region_base;
|
||||
ahb_bytes = region_size;
|
||||
committed_backing_size.store(region_size, std::memory_order_relaxed);
|
||||
return true;
|
||||
}
|
||||
|
||||
void MapBackingRange(size_t virtual_offset, size_t host_offset, size_t length, int prot_flags) {
|
||||
while (length > 0) {
|
||||
int map_fd = fd;
|
||||
off_t map_offset = static_cast<off_t>(host_offset);
|
||||
size_t chunk = length;
|
||||
if (host_offset < ahb_base) {
|
||||
chunk = (std::min)(chunk, ahb_base - host_offset);
|
||||
} else if (host_offset < ahb_base + ahb_bytes) {
|
||||
const size_t relative = host_offset - ahb_base;
|
||||
const size_t window = relative / ahb_window_size;
|
||||
const size_t local = relative % ahb_window_size;
|
||||
map_fd = ahb_fds[window];
|
||||
map_offset = static_cast<off_t>(local);
|
||||
chunk = (std::min)(chunk, ahb_window_size - local);
|
||||
}
|
||||
void* const ret = mmap(virtual_base + virtual_offset, chunk, prot_flags,
|
||||
MAP_SHARED | MAP_FIXED, map_fd, map_offset);
|
||||
ASSERT_MSG(ret != MAP_FAILED, "mmap: {}", strerror(errno));
|
||||
virtual_offset += chunk;
|
||||
host_offset += chunk;
|
||||
length -= chunk;
|
||||
}
|
||||
}
|
||||
|
||||
std::span<AHardwareBuffer* const> AhbWindows() const noexcept {
|
||||
return ahb_windows;
|
||||
}
|
||||
|
||||
size_t AhbWindowSize() const noexcept {
|
||||
return ahb_bytes != 0 ? ahb_window_size : 0;
|
||||
}
|
||||
|
||||
size_t AhbBase() const noexcept {
|
||||
return ahb_base;
|
||||
}
|
||||
#endif
|
||||
|
||||
~Impl() {
|
||||
Release();
|
||||
}
|
||||
@@ -853,12 +587,6 @@ public:
|
||||
#ifdef ARCHITECTURE_arm64
|
||||
if (True(perms & MemoryPermission::Execute))
|
||||
prot_flags |= PROT_EXEC;
|
||||
#endif
|
||||
#ifdef __ANDROID__
|
||||
if (ahb_bytes != 0) {
|
||||
MapBackingRange(virtual_offset, host_offset, length, prot_flags);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
int flags = (fd >= 0 ? MAP_SHARED : MAP_PRIVATE) | MAP_FIXED;
|
||||
void* ret = mmap(virtual_base + virtual_offset, length, prot_flags, flags, fd, host_offset);
|
||||
@@ -904,18 +632,8 @@ public:
|
||||
virtual_base = nullptr;
|
||||
}
|
||||
|
||||
bool IsBackingShared() const noexcept {
|
||||
#ifdef __ANDROID__
|
||||
if (ahb_bytes != 0) {
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
return fd >= 0;
|
||||
}
|
||||
|
||||
const size_t backing_size; ///< Size of the backing memory in bytes
|
||||
const size_t virtual_size; ///< Size of the virtual address placeholder in bytes
|
||||
const size_t preferred_offset;
|
||||
|
||||
u8* backing_base{reinterpret_cast<u8*>(MAP_FAILED)};
|
||||
u8* virtual_base{reinterpret_cast<u8*>(MAP_FAILED)};
|
||||
@@ -938,18 +656,6 @@ private:
|
||||
int ret = close(fd);
|
||||
ASSERT_MSG(ret == 0, "close failed: {}", strerror(errno));
|
||||
}
|
||||
|
||||
#ifdef __ANDROID__
|
||||
for (AHardwareBuffer* buffer : ahb_windows) {
|
||||
AHardwareBuffer_release(buffer);
|
||||
}
|
||||
ahb_windows.clear();
|
||||
ahb_fds.clear();
|
||||
if (ahb_bytes != 0) {
|
||||
committed_backing_size.store(0, std::memory_order_relaxed);
|
||||
ahb_bytes = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void AdjustMap(size_t* virtual_offset, size_t* length) {
|
||||
@@ -975,19 +681,11 @@ private:
|
||||
|
||||
int fd{-1}; // memfd file descriptor, -1 is the error value of memfd_create
|
||||
FreeRegionManager free_manager{};
|
||||
|
||||
#ifdef __ANDROID__
|
||||
std::vector<AHardwareBuffer*> ahb_windows;
|
||||
std::vector<int> ahb_fds;
|
||||
size_t ahb_window_size{};
|
||||
size_t ahb_base{};
|
||||
size_t ahb_bytes{};
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // ^^^ POSIX ^^^
|
||||
|
||||
HostMemory::HostMemory(size_t backing_size_, size_t virtual_size_, size_t preferred_offset_)
|
||||
HostMemory::HostMemory(size_t backing_size_, size_t virtual_size_)
|
||||
: backing_size(backing_size_)
|
||||
, virtual_size(virtual_size_)
|
||||
{
|
||||
@@ -999,7 +697,7 @@ HostMemory::HostMemory(size_t backing_size_, size_t virtual_size_, size_t prefer
|
||||
#else
|
||||
// Try to allocate a fastmem arena.
|
||||
// The implementation will fail with std::bad_alloc on errors.
|
||||
impl = std::make_unique<HostMemory::Impl>(AlignUp(backing_size, PageAlignment), AlignUp(virtual_size, PageAlignment) + HugePageSize, preferred_offset_);
|
||||
impl = std::make_unique<HostMemory::Impl>(AlignUp(backing_size, PageAlignment), AlignUp(virtual_size, PageAlignment) + HugePageSize);
|
||||
if (impl->Init()) {
|
||||
backing_base = impl->backing_base;
|
||||
virtual_base = impl->virtual_base;
|
||||
@@ -1069,38 +767,6 @@ void HostMemory::ClearBackingRegion(size_t physical_offset, size_t length, u32 f
|
||||
std::memset(backing_base + physical_offset, fill_value, length);
|
||||
}
|
||||
|
||||
std::span<AHardwareBuffer* const> HostMemory::BackingHardwareBuffers() const noexcept {
|
||||
#ifdef __ANDROID__
|
||||
return impl ? impl->AhbWindows() : std::span<AHardwareBuffer* const>{};
|
||||
#else
|
||||
return {};
|
||||
#endif
|
||||
}
|
||||
|
||||
size_t HostMemory::BackingHardwareBufferWindowSize() const noexcept {
|
||||
#ifdef __ANDROID__
|
||||
return impl ? impl->AhbWindowSize() : 0;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool HostMemory::IsBackingShared() const noexcept {
|
||||
#if defined(__OPENORBIS__) || defined(__managarm__)
|
||||
return false;
|
||||
#else
|
||||
return impl && impl->IsBackingShared();
|
||||
#endif
|
||||
}
|
||||
|
||||
size_t HostMemory::BackingHardwareBufferBase() const noexcept {
|
||||
#ifdef __ANDROID__
|
||||
return impl ? impl->AhbBase() : 0;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
void HostMemory::EnableDirectMappedAddress() {
|
||||
#if !(defined(__OPENORBIS__) || defined(__managarm__))
|
||||
if (impl) {
|
||||
|
||||
@@ -8,17 +8,12 @@
|
||||
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
#include <span>
|
||||
#include "common/common_funcs.h"
|
||||
#include "common/common_types.h"
|
||||
#include "common/virtual_buffer.h"
|
||||
|
||||
struct AHardwareBuffer;
|
||||
|
||||
namespace Common {
|
||||
|
||||
[[nodiscard]] u64 GetCommittedBackingSize() noexcept;
|
||||
|
||||
enum class MemoryPermission : u32 {
|
||||
Read = 1 << 0,
|
||||
Write = 1 << 1,
|
||||
@@ -33,7 +28,7 @@ DECLARE_ENUM_FLAG_OPERATORS(MemoryPermission)
|
||||
*/
|
||||
class HostMemory {
|
||||
public:
|
||||
explicit HostMemory(size_t backing_size_, size_t virtual_size_, size_t preferred_offset_ = 0);
|
||||
explicit HostMemory(size_t backing_size_, size_t virtual_size_);
|
||||
~HostMemory();
|
||||
|
||||
/**
|
||||
@@ -67,18 +62,6 @@ public:
|
||||
return backing_base;
|
||||
}
|
||||
|
||||
[[nodiscard]] size_t BackingSize() const noexcept {
|
||||
return backing_size;
|
||||
}
|
||||
|
||||
[[nodiscard]] std::span<AHardwareBuffer* const> BackingHardwareBuffers() const noexcept;
|
||||
|
||||
[[nodiscard]] size_t BackingHardwareBufferWindowSize() const noexcept;
|
||||
|
||||
[[nodiscard]] size_t BackingHardwareBufferBase() const noexcept;
|
||||
|
||||
[[nodiscard]] bool IsBackingShared() const noexcept;
|
||||
|
||||
[[nodiscard]] u8* VirtualBasePointer() noexcept {
|
||||
return virtual_base;
|
||||
}
|
||||
|
||||
@@ -17,10 +17,6 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
|
||||
#include "common/memory_detect.h"
|
||||
|
||||
namespace Common {
|
||||
@@ -73,55 +69,4 @@ const MemoryInfo& GetMemInfo() {
|
||||
return mem_info;
|
||||
}
|
||||
|
||||
u64 GetAvailablePhysicalMemory() {
|
||||
#ifdef _WIN32
|
||||
MEMORYSTATUSEX memorystatus;
|
||||
memorystatus.dwLength = sizeof(memorystatus);
|
||||
if (GlobalMemoryStatusEx(&memorystatus)) {
|
||||
return memorystatus.ullAvailPhys;
|
||||
}
|
||||
return 0;
|
||||
#elif defined(__linux__)
|
||||
if (std::FILE* const file = std::fopen("/proc/meminfo", "re")) {
|
||||
char line[256];
|
||||
u64 available = 0;
|
||||
while (std::fgets(line, sizeof(line), file) != nullptr) {
|
||||
if (std::strncmp(line, "MemAvailable:", 13) == 0) {
|
||||
available = std::strtoull(line + 13, nullptr, 10) * 1024ULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
std::fclose(file);
|
||||
if (available != 0) {
|
||||
return available;
|
||||
}
|
||||
}
|
||||
struct sysinfo info;
|
||||
if (sysinfo(&info) == 0) {
|
||||
const u64 unit = info.mem_unit != 0 ? info.mem_unit : 1ULL;
|
||||
return (static_cast<u64>(info.freeram) + static_cast<u64>(info.bufferram)) * unit;
|
||||
}
|
||||
return 0;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
u64 GetMaxMapCount() {
|
||||
#ifdef __linux__
|
||||
if (std::FILE* const file = std::fopen("/proc/sys/vm/max_map_count", "re")) {
|
||||
char line[32];
|
||||
u64 count = 0;
|
||||
if (std::fgets(line, sizeof(line), file) != nullptr) {
|
||||
count = std::strtoull(line, nullptr, 10);
|
||||
}
|
||||
std::fclose(file);
|
||||
return count;
|
||||
}
|
||||
return 0;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
} // namespace Common
|
||||
|
||||
@@ -18,8 +18,4 @@ struct MemoryInfo {
|
||||
*/
|
||||
[[nodiscard]] const MemoryInfo& GetMemInfo();
|
||||
|
||||
[[nodiscard]] u64 GetAvailablePhysicalMemory();
|
||||
|
||||
[[nodiscard]] u64 GetMaxMapCount();
|
||||
|
||||
} // namespace Common
|
||||
|
||||
@@ -587,9 +587,6 @@ struct Values {
|
||||
SwitchableSetting<bool> use_asynchronous_shaders{linkage, false, "use_asynchronous_shaders",
|
||||
Category::RendererHacks};
|
||||
|
||||
SwitchableSetting<bool> use_unified_memory{linkage, false, "use_unified_memory",
|
||||
Category::RendererHacks};
|
||||
|
||||
SwitchableSetting<GpuUnswizzleSize> gpu_unswizzle_texture_size{linkage,
|
||||
GpuUnswizzleSize::Large,
|
||||
"gpu_unswizzle_texture_size",
|
||||
@@ -705,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
|
||||
|
||||
@@ -1173,7 +1173,7 @@ add_library(core STATIC
|
||||
|
||||
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 +1199,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>)
|
||||
|
||||
@@ -22,21 +22,15 @@ DynarmicCallbacks32::DynarmicCallbacks32(ArmDynarmic32& parent, Kernel::KProcess
|
||||
, m_check_memory_access{m_debugger_enabled || !Settings::values.cpuopt_ignore_memory_aborts.GetValue()}
|
||||
{}
|
||||
|
||||
u8 DynarmicCallbacks32::MemoryRead8(u32 vaddr) {
|
||||
CheckMemoryAccess(vaddr, 1, Kernel::DebugWatchpointType::Read);
|
||||
return m_memory.Read8(vaddr);
|
||||
}
|
||||
u16 DynarmicCallbacks32::MemoryRead16(u32 vaddr) {
|
||||
CheckMemoryAccess(vaddr, 2, Kernel::DebugWatchpointType::Read);
|
||||
return m_memory.Read16(vaddr);
|
||||
}
|
||||
u32 DynarmicCallbacks32::MemoryRead32(u32 vaddr) {
|
||||
CheckMemoryAccess(vaddr, 4, Kernel::DebugWatchpointType::Read);
|
||||
return m_memory.Read32(vaddr);
|
||||
}
|
||||
u64 DynarmicCallbacks32::MemoryRead64(u32 vaddr) {
|
||||
CheckMemoryAccess(vaddr, 8, Kernel::DebugWatchpointType::Read);
|
||||
return m_memory.Read64(vaddr);
|
||||
u64 DynarmicCallbacks32::MemoryRead(u32 vaddr, size_t size) {
|
||||
CheckMemoryAccess(vaddr, size, Kernel::DebugWatchpointType::Read);
|
||||
switch (size) {
|
||||
case sizeof(u64): return m_memory.Read64(vaddr);
|
||||
case sizeof(u32): return m_memory.Read32(vaddr);
|
||||
case sizeof(u16): return m_memory.Read16(vaddr);
|
||||
case sizeof(u8): return m_memory.Read8(vaddr);
|
||||
default: UNREACHABLE();
|
||||
}
|
||||
}
|
||||
|
||||
std::optional<u32> DynarmicCallbacks32::MemoryReadCode(u32 vaddr) {
|
||||
@@ -50,27 +44,17 @@ std::optional<u32> DynarmicCallbacks32::MemoryReadCode(u32 vaddr) {
|
||||
return cached_code_page.inst[(vaddr & Core::Memory::YUZU_PAGEMASK) / sizeof(u32)];
|
||||
}
|
||||
|
||||
void DynarmicCallbacks32::MemoryWrite8(u32 vaddr, u8 value) {
|
||||
if (CheckMemoryAccess(vaddr, 1, Kernel::DebugWatchpointType::Write)) {
|
||||
m_memory.Write8(vaddr, value);
|
||||
void DynarmicCallbacks32::MemoryWrite(Dynarmic::A32::VAddr vaddr, u64 value, size_t size) {
|
||||
if (CheckMemoryAccess(vaddr, size, Kernel::DebugWatchpointType::Write)) {
|
||||
switch (size) {
|
||||
case sizeof(u64): return m_memory.Write64(vaddr, value);
|
||||
case sizeof(u32): return m_memory.Write32(vaddr, u32(value));
|
||||
case sizeof(u16): return m_memory.Write16(vaddr, u16(value));
|
||||
case sizeof(u8): return m_memory.Write8(vaddr, u8(value));
|
||||
default: UNREACHABLE();
|
||||
}
|
||||
}
|
||||
}
|
||||
void DynarmicCallbacks32::MemoryWrite16(u32 vaddr, u16 value) {
|
||||
if (CheckMemoryAccess(vaddr, 2, Kernel::DebugWatchpointType::Write)) {
|
||||
m_memory.Write16(vaddr, value);
|
||||
}
|
||||
}
|
||||
void DynarmicCallbacks32::MemoryWrite32(u32 vaddr, u32 value) {
|
||||
if (CheckMemoryAccess(vaddr, 4, Kernel::DebugWatchpointType::Write)) {
|
||||
m_memory.Write32(vaddr, value);
|
||||
}
|
||||
}
|
||||
void DynarmicCallbacks32::MemoryWrite64(u32 vaddr, u64 value) {
|
||||
if (CheckMemoryAccess(vaddr, 8, Kernel::DebugWatchpointType::Write)) {
|
||||
m_memory.Write64(vaddr, value);
|
||||
}
|
||||
}
|
||||
|
||||
bool DynarmicCallbacks32::MemoryWriteExclusive8(u32 vaddr, u8 value, u8 expected) {
|
||||
return CheckMemoryAccess(vaddr, 1, Kernel::DebugWatchpointType::Write) &&
|
||||
m_memory.WriteExclusive8(vaddr, value, expected);
|
||||
|
||||
@@ -30,18 +30,12 @@ class System;
|
||||
class DynarmicCallbacks32 : public Dynarmic::A32::UserCallbacks {
|
||||
public:
|
||||
explicit DynarmicCallbacks32(ArmDynarmic32& parent, Kernel::KProcess* process);
|
||||
u8 MemoryRead8(u32 vaddr) override;
|
||||
u16 MemoryRead16(u32 vaddr) override;
|
||||
u32 MemoryRead32(u32 vaddr) override;
|
||||
u64 MemoryRead64(u32 vaddr) override;
|
||||
u64 MemoryRead(u32 vaddr, size_t size) override;
|
||||
std::optional<u32> MemoryReadCode(u32 vaddr) override;
|
||||
void InstructionSynchronizationBarrierRaised() override {
|
||||
last_code_addr = u64(-1); //reset back, force refetch
|
||||
}
|
||||
void MemoryWrite8(u32 vaddr, u8 value) override;
|
||||
void MemoryWrite16(u32 vaddr, u16 value) override;
|
||||
void MemoryWrite32(u32 vaddr, u32 value) override;
|
||||
void MemoryWrite64(u32 vaddr, u64 value) override;
|
||||
void MemoryWrite(Dynarmic::A32::VAddr vaddr, u64 value, size_t size) override;
|
||||
bool MemoryWriteExclusive8(u32 vaddr, u8 value, u8 expected) override;
|
||||
bool MemoryWriteExclusive16(u32 vaddr, u16 value, u16 expected) override;
|
||||
bool MemoryWriteExclusive32(u32 vaddr, u32 value, u32 expected) override;
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "core/arm/dynarmic/dynarmic_exclusive_monitor.h"
|
||||
#include "core/core_timing.h"
|
||||
#include "core/hle/kernel/k_process.h"
|
||||
#include "dynarmic/interface/A64/config.h"
|
||||
|
||||
namespace Core {
|
||||
|
||||
@@ -21,21 +22,15 @@ DynarmicCallbacks64::DynarmicCallbacks64(ArmDynarmic64& parent, Kernel::KProcess
|
||||
, m_check_memory_access{m_debugger_enabled || !Settings::values.cpuopt_ignore_memory_aborts.GetValue()}
|
||||
{}
|
||||
|
||||
u8 DynarmicCallbacks64::MemoryRead8(u64 vaddr) {
|
||||
CheckMemoryAccess(vaddr, 1, Kernel::DebugWatchpointType::Read);
|
||||
return m_memory.Read8(vaddr);
|
||||
}
|
||||
u16 DynarmicCallbacks64::MemoryRead16(u64 vaddr) {
|
||||
CheckMemoryAccess(vaddr, 2, Kernel::DebugWatchpointType::Read);
|
||||
return m_memory.Read16(vaddr);
|
||||
}
|
||||
u32 DynarmicCallbacks64::MemoryRead32(u64 vaddr) {
|
||||
CheckMemoryAccess(vaddr, 4, Kernel::DebugWatchpointType::Read);
|
||||
return m_memory.Read32(vaddr);
|
||||
}
|
||||
u64 DynarmicCallbacks64::MemoryRead64(u64 vaddr) {
|
||||
CheckMemoryAccess(vaddr, 8, Kernel::DebugWatchpointType::Read);
|
||||
return m_memory.Read64(vaddr);
|
||||
u64 DynarmicCallbacks64::MemoryRead(u64 vaddr, size_t size) {
|
||||
CheckMemoryAccess(vaddr, size, Kernel::DebugWatchpointType::Read);
|
||||
switch (size) {
|
||||
case sizeof(u64): return m_memory.Read64(vaddr);
|
||||
case sizeof(u32): return m_memory.Read32(vaddr);
|
||||
case sizeof(u16): return m_memory.Read16(vaddr);
|
||||
case sizeof(u8): return m_memory.Read8(vaddr);
|
||||
default: UNREACHABLE();
|
||||
}
|
||||
}
|
||||
Dynarmic::A64::Vector DynarmicCallbacks64::MemoryRead128(u64 vaddr) {
|
||||
CheckMemoryAccess(vaddr, 16, Kernel::DebugWatchpointType::Read);
|
||||
@@ -53,24 +48,15 @@ std::optional<u32> DynarmicCallbacks64::MemoryReadCode(u64 vaddr) {
|
||||
return cached_code_page.inst[(vaddr & Core::Memory::YUZU_PAGEMASK) / sizeof(u32)];
|
||||
}
|
||||
|
||||
void DynarmicCallbacks64::MemoryWrite8(u64 vaddr, u8 value) {
|
||||
if (CheckMemoryAccess(vaddr, 1, Kernel::DebugWatchpointType::Write)) {
|
||||
m_memory.Write8(vaddr, value);
|
||||
}
|
||||
}
|
||||
void DynarmicCallbacks64::MemoryWrite16(u64 vaddr, u16 value) {
|
||||
if (CheckMemoryAccess(vaddr, 2, Kernel::DebugWatchpointType::Write)) {
|
||||
m_memory.Write16(vaddr, value);
|
||||
}
|
||||
}
|
||||
void DynarmicCallbacks64::MemoryWrite32(u64 vaddr, u32 value) {
|
||||
if (CheckMemoryAccess(vaddr, 4, Kernel::DebugWatchpointType::Write)) {
|
||||
m_memory.Write32(vaddr, value);
|
||||
}
|
||||
}
|
||||
void DynarmicCallbacks64::MemoryWrite64(u64 vaddr, u64 value) {
|
||||
if (CheckMemoryAccess(vaddr, 8, Kernel::DebugWatchpointType::Write)) {
|
||||
m_memory.Write64(vaddr, value);
|
||||
void DynarmicCallbacks64::MemoryWrite(Dynarmic::A64::VAddr vaddr, u64 value, std::size_t size) {
|
||||
if (CheckMemoryAccess(vaddr, size, Kernel::DebugWatchpointType::Write)) {
|
||||
switch (size) {
|
||||
case sizeof(u64): return m_memory.Write64(vaddr, u64(value));
|
||||
case sizeof(u32): return m_memory.Write32(vaddr, u32(value));
|
||||
case sizeof(u16): return m_memory.Write16(vaddr, u16(value));
|
||||
case sizeof(u8): return m_memory.Write8(vaddr, u8(value));
|
||||
default: UNREACHABLE();
|
||||
}
|
||||
}
|
||||
}
|
||||
void DynarmicCallbacks64::MemoryWrite128(u64 vaddr, Dynarmic::A64::Vector value) {
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "common/hash.h"
|
||||
#include "core/arm/arm_interface.h"
|
||||
#include "core/arm/dynarmic/dynarmic_exclusive_monitor.h"
|
||||
#include "dynarmic/interface/A64/config.h"
|
||||
|
||||
namespace Core::Memory {
|
||||
class Memory;
|
||||
@@ -36,19 +37,13 @@ class DynarmicCallbacks64 : public Dynarmic::A64::UserCallbacks {
|
||||
public:
|
||||
explicit DynarmicCallbacks64(ArmDynarmic64& parent, Kernel::KProcess* process);
|
||||
|
||||
u8 MemoryRead8(u64 vaddr) override;
|
||||
u16 MemoryRead16(u64 vaddr) override;
|
||||
u32 MemoryRead32(u64 vaddr) override;
|
||||
u64 MemoryRead64(u64 vaddr) override;
|
||||
u64 MemoryRead(u64 vaddr, size_t size) override;
|
||||
Dynarmic::A64::Vector MemoryRead128(u64 vaddr) override;
|
||||
std::optional<u32> MemoryReadCode(u64 vaddr) override;
|
||||
void InstructionSynchronizationBarrierRaised() override {
|
||||
last_code_addr = u64(-1); //reset back, force refetch
|
||||
}
|
||||
void MemoryWrite8(u64 vaddr, u8 value) override;
|
||||
void MemoryWrite16(u64 vaddr, u16 value) override;
|
||||
void MemoryWrite32(u64 vaddr, u32 value) override;
|
||||
void MemoryWrite64(u64 vaddr, u64 value) override;
|
||||
void MemoryWrite(Dynarmic::A64::VAddr vaddr, u64 value, std::size_t size) override;
|
||||
void MemoryWrite128(u64 vaddr, Dynarmic::A64::Vector value) override;
|
||||
bool MemoryWriteExclusive8(u64 vaddr, std::uint8_t value, std::uint8_t expected) override;
|
||||
bool MemoryWriteExclusive16(u64 vaddr, std::uint16_t value, std::uint16_t expected) override;
|
||||
|
||||
+1
-5
@@ -119,7 +119,6 @@ struct System::Impl {
|
||||
|
||||
is_multicore = Settings::values.use_multi_core.GetValue();
|
||||
extended_memory_layout = Settings::values.memory_layout_mode.GetValue() != Settings::MemoryLayout::Memory_4Gb;
|
||||
unified_memory = Settings::values.use_unified_memory.GetValue();
|
||||
|
||||
core_timing.SetMulticore(is_multicore);
|
||||
core_timing.Initialize([&system]() { system.RegisterHostThread(); });
|
||||
@@ -147,8 +146,7 @@ struct System::Impl {
|
||||
!device_memory.has_value() ||
|
||||
is_multicore != Settings::values.use_multi_core.GetValue() ||
|
||||
extended_memory_layout != (Settings::values.memory_layout_mode.GetValue() !=
|
||||
Settings::MemoryLayout::Memory_4Gb) ||
|
||||
unified_memory != Settings::values.use_unified_memory.GetValue();
|
||||
Settings::MemoryLayout::Memory_4Gb);
|
||||
|
||||
if (!must_reinitialize) {
|
||||
return;
|
||||
@@ -159,7 +157,6 @@ struct System::Impl {
|
||||
is_multicore = Settings::values.use_multi_core.GetValue();
|
||||
extended_memory_layout =
|
||||
Settings::values.memory_layout_mode.GetValue() != Settings::MemoryLayout::Memory_4Gb;
|
||||
unified_memory = Settings::values.use_unified_memory.GetValue();
|
||||
|
||||
Initialize(system);
|
||||
}
|
||||
@@ -506,7 +503,6 @@ struct System::Impl {
|
||||
std::atomic_bool is_powered_on{};
|
||||
bool is_multicore : 1 = false;
|
||||
bool extended_memory_layout : 1 = false;
|
||||
bool unified_memory : 1 = false;
|
||||
bool exit_locked : 1 = false;
|
||||
bool exit_requested : 1 = false;
|
||||
bool nvdec_active : 1 = false;
|
||||
|
||||
@@ -12,18 +12,9 @@ constexpr size_t VirtualReserveSize = 1ULL << 38;
|
||||
constexpr size_t VirtualReserveSize = 1ULL << 39;
|
||||
#endif
|
||||
|
||||
namespace {
|
||||
size_t ApplicationPoolOffset() {
|
||||
using Init = Kernel::Board::Nintendo::Nx::KSystemControl::Init;
|
||||
const size_t dram_size = Init::GetIntendedMemorySize();
|
||||
const size_t application_pool_size = Init::GetApplicationPoolSize();
|
||||
return dram_size > application_pool_size ? dram_size - application_pool_size : 0;
|
||||
}
|
||||
}
|
||||
|
||||
DeviceMemory::DeviceMemory()
|
||||
: buffer{Kernel::Board::Nintendo::Nx::KSystemControl::Init::GetIntendedMemorySize(),
|
||||
VirtualReserveSize, ApplicationPoolOffset()} {}
|
||||
VirtualReserveSize} {}
|
||||
|
||||
DeviceMemory::~DeviceMemory() = default;
|
||||
|
||||
|
||||
@@ -20,8 +20,6 @@
|
||||
#include "common/scratch_buffer.h"
|
||||
#include "common/virtual_buffer.h"
|
||||
|
||||
struct AHardwareBuffer;
|
||||
|
||||
namespace Core {
|
||||
|
||||
constexpr size_t DEVICE_PAGEBITS = 12ULL;
|
||||
@@ -97,34 +95,6 @@ public:
|
||||
ApplyOpOnPAddr(address, buffer, operation);
|
||||
}
|
||||
|
||||
u8* GetPhysicalBase() noexcept {
|
||||
return reinterpret_cast<u8*>(physical_base);
|
||||
}
|
||||
|
||||
const u8* GetPhysicalBase() const noexcept {
|
||||
return reinterpret_cast<const u8*>(physical_base);
|
||||
}
|
||||
|
||||
size_t GetPhysicalSize() const noexcept {
|
||||
return physical_size;
|
||||
}
|
||||
|
||||
std::span<AHardwareBuffer* const> GetBackingHardwareBuffers() const noexcept {
|
||||
return ahb_windows;
|
||||
}
|
||||
|
||||
size_t GetBackingHardwareBufferWindowSize() const noexcept {
|
||||
return ahb_window_size;
|
||||
}
|
||||
|
||||
size_t GetBackingHardwareBufferBase() const noexcept {
|
||||
return ahb_base;
|
||||
}
|
||||
|
||||
bool IsBackingShared() const noexcept {
|
||||
return backing_is_shared;
|
||||
}
|
||||
|
||||
PAddr GetPhysicalRawAddressFromDAddr(DAddr address) const {
|
||||
PAddr subbits = PAddr(address & page_mask);
|
||||
auto paddr = tracked_entries[(address >> page_bits)].compressed_physical_ptr;
|
||||
@@ -201,11 +171,6 @@ private:
|
||||
std::unique_ptr<DeviceMemoryManagerAllocator<Traits>> impl;
|
||||
|
||||
const uintptr_t physical_base;
|
||||
const size_t physical_size;
|
||||
const std::span<AHardwareBuffer* const> ahb_windows;
|
||||
const size_t ahb_window_size;
|
||||
const size_t ahb_base;
|
||||
const bool backing_is_shared;
|
||||
DeviceInterface* device_inter;
|
||||
|
||||
struct TrackedEntry {
|
||||
|
||||
@@ -171,11 +171,6 @@ struct DeviceMemoryManagerAllocator {
|
||||
template <typename Traits>
|
||||
DeviceMemoryManager<Traits>::DeviceMemoryManager(const DeviceMemory& device_memory_)
|
||||
: physical_base{uintptr_t(device_memory_.buffer.BackingBasePointer())}
|
||||
, physical_size{device_memory_.buffer.BackingSize()}
|
||||
, ahb_windows{device_memory_.buffer.BackingHardwareBuffers()}
|
||||
, ahb_window_size{device_memory_.buffer.BackingHardwareBufferWindowSize()}
|
||||
, ahb_base{device_memory_.buffer.BackingHardwareBufferBase()}
|
||||
, backing_is_shared{device_memory_.buffer.IsBackingShared()}
|
||||
, device_inter{nullptr}
|
||||
, compressed_device_addr(1ULL << ((Settings::values.memory_layout_mode.GetValue() == Settings::MemoryLayout::Memory_4Gb ? physical_min_bits : physical_max_bits) - Memory::YUZU_PAGEBITS))
|
||||
, tracked_entries(device_as_size >> Memory::YUZU_PAGEBITS)
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -71,17 +71,14 @@ public:
|
||||
void InstructionSynchronizationBarrierRaised() override {
|
||||
last_code_addr = u64(-1); //reset back, force refetch
|
||||
}
|
||||
u8 MemoryRead8(u64 vaddr) override {
|
||||
return ReadMemory<u8>(vaddr);
|
||||
}
|
||||
u16 MemoryRead16(u64 vaddr) override {
|
||||
return ReadMemory<u16>(vaddr);
|
||||
}
|
||||
u32 MemoryRead32(u64 vaddr) override {
|
||||
return ReadMemory<u32>(vaddr);
|
||||
}
|
||||
u64 MemoryRead64(u64 vaddr) override {
|
||||
return ReadMemory<u64>(vaddr);
|
||||
u64 MemoryRead(u64 vaddr, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64): return ReadMemory<u64>(vaddr);
|
||||
case sizeof(u32): return ReadMemory<u32>(vaddr);
|
||||
case sizeof(u16): return ReadMemory<u16>(vaddr);
|
||||
case sizeof(u8): return ReadMemory<u8>(vaddr);
|
||||
default: UNREACHABLE();
|
||||
}
|
||||
}
|
||||
u128 MemoryRead128(u64 vaddr) override {
|
||||
return ReadMemory<u128>(vaddr);
|
||||
@@ -89,22 +86,19 @@ public:
|
||||
std::string MemoryReadCString(u64 vaddr) {
|
||||
std::string result{};
|
||||
u8 next;
|
||||
while ((next = MemoryRead8(vaddr++)) != 0)
|
||||
while ((next = u8(MemoryRead(vaddr++, sizeof(u8)))) != 0)
|
||||
result += char(next);
|
||||
return result;
|
||||
}
|
||||
|
||||
void MemoryWrite8(u64 vaddr, u8 value) override {
|
||||
WriteMemory<u8>(vaddr, value);
|
||||
}
|
||||
void MemoryWrite16(u64 vaddr, u16 value) override {
|
||||
WriteMemory<u16>(vaddr, value);
|
||||
}
|
||||
void MemoryWrite32(u64 vaddr, u32 value) override {
|
||||
WriteMemory<u32>(vaddr, value);
|
||||
}
|
||||
void MemoryWrite64(u64 vaddr, u64 value) override {
|
||||
WriteMemory<u64>(vaddr, value);
|
||||
void MemoryWrite(u64 vaddr, u64 value, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64): WriteMemory<u64>(vaddr, u64(value)); break;
|
||||
case sizeof(u32): WriteMemory<u32>(vaddr, u32(value)); break;
|
||||
case sizeof(u16): WriteMemory<u16>(vaddr, u16(value)); break;
|
||||
case sizeof(u8): WriteMemory<u8>(vaddr, u8(value)); break;
|
||||
default: UNREACHABLE();
|
||||
}
|
||||
}
|
||||
void MemoryWrite128(u64 vaddr, u128 value) override {
|
||||
WriteMemory<u128>(vaddr, value);
|
||||
@@ -193,14 +187,14 @@ public:
|
||||
// The loaded NRO file has ELF relocations that must be processed before it can run.
|
||||
// Normally this would be processed by RTLD, but in HLE context, we don't have
|
||||
// the linker available, so we have to do it ourselves.
|
||||
const VAddr mod_offset{callbacks->MemoryRead32(4)};
|
||||
if (callbacks->MemoryRead32(mod_offset) != Common::MakeMagic('M', 'O', 'D', '0'))
|
||||
const VAddr mod_offset{callbacks->MemoryRead(4, sizeof(u32))};
|
||||
if (callbacks->MemoryRead(mod_offset, sizeof(u32)) != Common::MakeMagic('M', 'O', 'D', '0'))
|
||||
return false;
|
||||
|
||||
// For more info about dynamic entries, see the ELF ABI specification:
|
||||
// https://refspecs.linuxbase.org/elf/gabi4+/ch5.dynamic.html
|
||||
// https://refspecs.linuxbase.org/elf/gabi4+/ch4.reloc.html
|
||||
VAddr dynamic_offset{mod_offset + callbacks->MemoryRead32(mod_offset + 4)};
|
||||
VAddr dynamic_offset{mod_offset + callbacks->MemoryRead(mod_offset + 4, sizeof(u32))};
|
||||
VAddr rela_dyn = 0, relr_dyn = 0;
|
||||
size_t num_rela = 0, num_relr = 0;
|
||||
while (true) {
|
||||
@@ -222,8 +216,8 @@ public:
|
||||
for (size_t i = 0; i < num_rela; i++) {
|
||||
const auto rela{callbacks->ReadMemory<Elf64_Rela>(rela_dyn + i * sizeof(Elf64_Rela))};
|
||||
if (Elf64RelType(rela.r_info) == ElfAArch64Relative) {
|
||||
const VAddr contents{callbacks->MemoryRead64(rela.r_offset)};
|
||||
callbacks->MemoryWrite64(rela.r_offset, contents + rela.r_addend);
|
||||
const VAddr contents{callbacks->MemoryRead(rela.r_offset, sizeof(u64))};
|
||||
callbacks->MemoryWrite(rela.r_offset, contents + rela.r_addend, sizeof(u64));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,7 +225,7 @@ public:
|
||||
for (size_t i = 0; i < num_relr; i++) {
|
||||
const auto relr = callbacks->ReadMemory<Elf64_Relr>(relr_dyn + i * sizeof(Elf64_Relr));
|
||||
const auto incr = [&](VAddr where) {
|
||||
callbacks->MemoryWrite64(where, callbacks->MemoryRead64(where) + relocbase);
|
||||
callbacks->MemoryWrite(where, callbacks->MemoryRead(where, sizeof(u64)) + relocbase, sizeof(u64));
|
||||
};
|
||||
if ((relr & 1) == 0) {
|
||||
// where pointer
|
||||
@@ -294,7 +288,7 @@ public:
|
||||
if (argument_stack.size() > 8) {
|
||||
const VAddr new_sp = Common::AlignDown(top_of_stack - (argument_stack.size() - 8) * sizeof(u64), STACK_ALIGN);
|
||||
for (size_t i = 8; i < argument_stack.size(); i++)
|
||||
callbacks->MemoryWrite64(new_sp + (i - 8) * sizeof(u64), argument_stack[i]);
|
||||
callbacks->MemoryWrite(new_sp + (i - 8) * sizeof(u64), argument_stack[i], sizeof(u64));
|
||||
jit->SetSP(new_sp);
|
||||
}
|
||||
// Reset the call state for the next invocation
|
||||
@@ -385,17 +379,17 @@ void DynarmicCallbacks64::CallSVC(u32 swi) {
|
||||
|
||||
if (dest < src) {
|
||||
for (size_t i = 0; i < n; i++)
|
||||
MemoryWrite8(dest + i, MemoryRead8(src + i));
|
||||
MemoryWrite(dest + i, u8(MemoryRead(src + i, sizeof(u8))), sizeof(u8));
|
||||
} else {
|
||||
for (size_t i = n; i > 0; i--)
|
||||
MemoryWrite8(dest + i - 1, MemoryRead8(src + i - 1));
|
||||
MemoryWrite(dest + i - 1, u8(MemoryRead(src + i - 1, sizeof(u8))), sizeof(u8));
|
||||
}
|
||||
} else if (pc == parent.helpers[size_t(HelperFn::Memset)]) {
|
||||
const VAddr dest{parent.jit->GetRegister(0)};
|
||||
const u64 c{parent.jit->GetRegister(1)};
|
||||
const size_t n{parent.jit->GetRegister(2)};
|
||||
for (size_t i = 0; i < n; i++)
|
||||
MemoryWrite8(dest + i, u8(c));
|
||||
MemoryWrite(dest + i, u8(c), sizeof(u8));
|
||||
} else if (pc == parent.helpers[size_t(HelperFn::Resolve)]) {
|
||||
// X0 contains a char* for a symbol to resolve
|
||||
const auto name{MemoryReadCString(parent.jit->GetRegister(0))};
|
||||
@@ -422,7 +416,7 @@ void DynarmicCallbacks64::CallSVC(u32 swi) {
|
||||
}
|
||||
|
||||
void DynarmicCallbacks64::ExceptionRaised(u64 pc, Dynarmic::A64::Exception exception) {
|
||||
auto const inst = MemoryRead32(pc);
|
||||
auto const inst = MemoryRead(pc, sizeof(u32));
|
||||
LOG_CRITICAL(Service_JIT, "{} PC @ {:08x}, data = {:08x}", exception, pc, inst);
|
||||
parent.jit->HaltExecution();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1020,7 +1020,7 @@ Result ISystemSettingsServer::GetBatteryLot(Out<BatteryLot> out_battery_lot) {
|
||||
c.lot_number[1] = 'H';
|
||||
c.lot_number[2] = 'A';
|
||||
c.lot_number[3] = 'C';
|
||||
// TODO: I have no fucking idea what the letters mean
|
||||
// TODO: what do the letters mean?
|
||||
c.lot_number[4] = 'H';
|
||||
c.lot_number[5] = 'Z';
|
||||
c.lot_number[6] = 'Z';
|
||||
|
||||
@@ -531,7 +531,8 @@ int TranslateTypeToNative(Type type) {
|
||||
NETWORK_PROTOCOL_TRANSLATE_ELEM(MPLS) \
|
||||
NETWORK_PROTOCOL_TRANSLATE_ELEM(PFSYNC)
|
||||
#elif defined(__linux__)
|
||||
// Other platforms get fucked
|
||||
// Other platforms may not support some niche protocols.
|
||||
// This is usually not an issue
|
||||
#define NETWORK_PROTOCOL_TRANSLATE_LIST \
|
||||
NETWORK_PROTOCOL_TRANSLATE_ELEM(IP) \
|
||||
/*NETWORK_PROTOCOL_TRANSLATE_ELEM(HOPOPTS)*/ \
|
||||
|
||||
@@ -33,18 +33,10 @@ u64 MemoryReadWidth(Core::Memory::Memory& memory, u32 width, VAddr addr) {
|
||||
|
||||
void MemoryWriteWidth(Core::Memory::Memory& memory, u32 width, VAddr addr, u64 value) {
|
||||
switch (width) {
|
||||
case 1:
|
||||
memory.Write8(addr, static_cast<u8>(value));
|
||||
break;
|
||||
case 2:
|
||||
memory.Write16(addr, static_cast<u16>(value));
|
||||
break;
|
||||
case 4:
|
||||
memory.Write32(addr, static_cast<u32>(value));
|
||||
break;
|
||||
case 8:
|
||||
memory.Write64(addr, value);
|
||||
break;
|
||||
case sizeof(u64): return memory.Write64(addr, value);
|
||||
case sizeof(u32): return memory.Write32(addr, u32(value));
|
||||
case sizeof(u16): return memory.Write16(addr, u16(value));
|
||||
case sizeof(u8): return memory.Write8(addr, u8(value));
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ endif()
|
||||
# Dynarmic project options
|
||||
option(DYNARMIC_ENABLE_CPU_FEATURE_DETECTION "Turning this off causes dynarmic to assume the host CPU doesn't support anything later than SSE3" ON)
|
||||
|
||||
if (PLATFORM_OPENBSD OR PLATFORM_DRAGONFLY OR PLATFORM_NETBSD)
|
||||
if (OPENBSD OR DRAGONFLY OR NETBSD)
|
||||
set(REQUIRE_WX ON)
|
||||
else()
|
||||
set(REQUIRE_WX OFF)
|
||||
|
||||
@@ -363,7 +363,7 @@ elseif (APPLE)
|
||||
backend/exception_handler_macos_mig.c
|
||||
)
|
||||
endif()
|
||||
elseif (UNIX AND NOT PLATFORM_HAIKU)
|
||||
elseif (UNIX AND NOT HAIKUOS)
|
||||
# Haiku lacks <ucontext.h>
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
target_link_libraries(dynarmic PRIVATE rt)
|
||||
|
||||
@@ -82,7 +82,7 @@ static void* EmitExclusiveReadCallTrampoline(oaknut::CodeGenerator& code, const
|
||||
|
||||
auto fn = [](const A32::UserConfig& conf, A32::VAddr vaddr) -> T {
|
||||
return conf.global_monitor->ReadAndMark<T>(conf.processor_id, vaddr, [&]() -> T {
|
||||
return (conf.callbacks->*callback)(vaddr);
|
||||
return (conf.callbacks->*callback)(vaddr, sizeof(T));
|
||||
});
|
||||
};
|
||||
|
||||
@@ -136,12 +136,9 @@ static void* EmitExclusiveWriteCallTrampoline(oaknut::CodeGenerator& code, const
|
||||
oaknut::Label l_addr, l_this;
|
||||
|
||||
auto fn = [](const A32::UserConfig& conf, A32::VAddr vaddr, T value) -> u32 {
|
||||
return conf.global_monitor->DoExclusiveOperation<T>(conf.processor_id, vaddr,
|
||||
[&](T expected) -> bool {
|
||||
return (conf.callbacks->*callback)(vaddr, value, expected);
|
||||
})
|
||||
? 0
|
||||
: 1;
|
||||
return conf.global_monitor->DoExclusiveOperation<T>(conf.processor_id, vaddr, [&](T expected) -> bool {
|
||||
return (conf.callbacks->*callback)(vaddr, value, expected);
|
||||
}) ? 0 : 1;
|
||||
};
|
||||
|
||||
void* target = code.xptr<void*>();
|
||||
@@ -179,26 +176,14 @@ void A32AddressSpace::EmitPrelude() {
|
||||
|
||||
UnprotectCodeMemory();
|
||||
|
||||
prelude_info.read_memory_8 = EmitCallTrampoline<&A32::UserCallbacks::MemoryRead8>(code, conf.callbacks);
|
||||
prelude_info.read_memory_16 = EmitCallTrampoline<&A32::UserCallbacks::MemoryRead16>(code, conf.callbacks);
|
||||
prelude_info.read_memory_32 = EmitCallTrampoline<&A32::UserCallbacks::MemoryRead32>(code, conf.callbacks);
|
||||
prelude_info.read_memory_64 = EmitCallTrampoline<&A32::UserCallbacks::MemoryRead64>(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory_8 = EmitWrappedReadCallTrampoline<&A32::UserCallbacks::MemoryRead8>(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory_16 = EmitWrappedReadCallTrampoline<&A32::UserCallbacks::MemoryRead16>(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory_32 = EmitWrappedReadCallTrampoline<&A32::UserCallbacks::MemoryRead32>(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory_64 = EmitWrappedReadCallTrampoline<&A32::UserCallbacks::MemoryRead64>(code, conf.callbacks);
|
||||
prelude_info.exclusive_read_memory_8 = EmitExclusiveReadCallTrampoline<&A32::UserCallbacks::MemoryRead8, u8>(code, conf);
|
||||
prelude_info.exclusive_read_memory_16 = EmitExclusiveReadCallTrampoline<&A32::UserCallbacks::MemoryRead16, u16>(code, conf);
|
||||
prelude_info.exclusive_read_memory_32 = EmitExclusiveReadCallTrampoline<&A32::UserCallbacks::MemoryRead32, u32>(code, conf);
|
||||
prelude_info.exclusive_read_memory_64 = EmitExclusiveReadCallTrampoline<&A32::UserCallbacks::MemoryRead64, u64>(code, conf);
|
||||
prelude_info.write_memory_8 = EmitCallTrampoline<&A32::UserCallbacks::MemoryWrite8>(code, conf.callbacks);
|
||||
prelude_info.write_memory_16 = EmitCallTrampoline<&A32::UserCallbacks::MemoryWrite16>(code, conf.callbacks);
|
||||
prelude_info.write_memory_32 = EmitCallTrampoline<&A32::UserCallbacks::MemoryWrite32>(code, conf.callbacks);
|
||||
prelude_info.write_memory_64 = EmitCallTrampoline<&A32::UserCallbacks::MemoryWrite64>(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory_8 = EmitWrappedWriteCallTrampoline<&A32::UserCallbacks::MemoryWrite8>(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory_16 = EmitWrappedWriteCallTrampoline<&A32::UserCallbacks::MemoryWrite16>(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory_32 = EmitWrappedWriteCallTrampoline<&A32::UserCallbacks::MemoryWrite32>(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory_64 = EmitWrappedWriteCallTrampoline<&A32::UserCallbacks::MemoryWrite64>(code, conf.callbacks);
|
||||
prelude_info.read_memory = EmitCallTrampoline<&A32::UserCallbacks::MemoryRead>(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory = EmitWrappedReadCallTrampoline<&A32::UserCallbacks::MemoryRead>(code, conf.callbacks);
|
||||
prelude_info.exclusive_read_memory_8 = EmitExclusiveReadCallTrampoline<&A32::UserCallbacks::MemoryRead, u8>(code, conf);
|
||||
prelude_info.exclusive_read_memory_16 = EmitExclusiveReadCallTrampoline<&A32::UserCallbacks::MemoryRead, u16>(code, conf);
|
||||
prelude_info.exclusive_read_memory_32 = EmitExclusiveReadCallTrampoline<&A32::UserCallbacks::MemoryRead, u32>(code, conf);
|
||||
prelude_info.exclusive_read_memory_64 = EmitExclusiveReadCallTrampoline<&A32::UserCallbacks::MemoryRead, u64>(code, conf);
|
||||
prelude_info.write_memory = EmitCallTrampoline<&A32::UserCallbacks::MemoryWrite>(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory = EmitWrappedWriteCallTrampoline<&A32::UserCallbacks::MemoryWrite>(code, conf.callbacks);
|
||||
prelude_info.exclusive_write_memory_8 = EmitExclusiveWriteCallTrampoline<&A32::UserCallbacks::MemoryWriteExclusive8, u8>(code, conf);
|
||||
prelude_info.exclusive_write_memory_16 = EmitExclusiveWriteCallTrampoline<&A32::UserCallbacks::MemoryWriteExclusive16, u16>(code, conf);
|
||||
prelude_info.exclusive_write_memory_32 = EmitExclusiveWriteCallTrampoline<&A32::UserCallbacks::MemoryWriteExclusive32, u32>(code, conf);
|
||||
|
||||
@@ -81,7 +81,7 @@ static void* EmitExclusiveReadCallTrampoline(oaknut::CodeGenerator& code, const
|
||||
|
||||
auto fn = [](const A64::UserConfig& conf, A64::VAddr vaddr) -> T {
|
||||
return conf.global_monitor->ReadAndMark<T>(conf.processor_id, vaddr, [&]() -> T {
|
||||
return (conf.callbacks->*callback)(vaddr);
|
||||
return (conf.callbacks->*callback)(vaddr, sizeof(T));
|
||||
});
|
||||
};
|
||||
|
||||
@@ -133,14 +133,10 @@ static void* EmitExclusiveWriteCallTrampoline(oaknut::CodeGenerator& code, const
|
||||
using namespace oaknut::util;
|
||||
|
||||
oaknut::Label l_addr, l_this;
|
||||
|
||||
auto fn = [](const A64::UserConfig& conf, A64::VAddr vaddr, T value) -> u32 {
|
||||
return conf.global_monitor->DoExclusiveOperation<T>(conf.processor_id, vaddr,
|
||||
[&](T expected) -> bool {
|
||||
return (conf.callbacks->*callback)(vaddr, value, expected);
|
||||
})
|
||||
? 0
|
||||
: 1;
|
||||
return conf.global_monitor->DoExclusiveOperation<T>(conf.processor_id, vaddr, [&](T expected) -> bool {
|
||||
return (conf.callbacks->*callback)(vaddr, value, expected);
|
||||
}) ? 0 : 1;
|
||||
};
|
||||
|
||||
void* target = code.xptr<void*>();
|
||||
@@ -346,30 +342,18 @@ void A64AddressSpace::EmitPrelude() {
|
||||
|
||||
UnprotectCodeMemory();
|
||||
|
||||
prelude_info.read_memory_8 = EmitCallTrampoline<&A64::UserCallbacks::MemoryRead8>(code, conf.callbacks);
|
||||
prelude_info.read_memory_16 = EmitCallTrampoline<&A64::UserCallbacks::MemoryRead16>(code, conf.callbacks);
|
||||
prelude_info.read_memory_32 = EmitCallTrampoline<&A64::UserCallbacks::MemoryRead32>(code, conf.callbacks);
|
||||
prelude_info.read_memory_64 = EmitCallTrampoline<&A64::UserCallbacks::MemoryRead64>(code, conf.callbacks);
|
||||
prelude_info.read_memory = EmitCallTrampoline<&A64::UserCallbacks::MemoryRead>(code, conf.callbacks);
|
||||
prelude_info.read_memory_128 = EmitRead128CallTrampoline(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory_8 = EmitWrappedReadCallTrampoline<&A64::UserCallbacks::MemoryRead8>(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory_16 = EmitWrappedReadCallTrampoline<&A64::UserCallbacks::MemoryRead16>(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory_32 = EmitWrappedReadCallTrampoline<&A64::UserCallbacks::MemoryRead32>(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory_64 = EmitWrappedReadCallTrampoline<&A64::UserCallbacks::MemoryRead64>(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory = EmitWrappedReadCallTrampoline<&A64::UserCallbacks::MemoryRead>(code, conf.callbacks);
|
||||
prelude_info.wrapped_read_memory_128 = EmitWrappedRead128CallTrampoline(code, conf.callbacks);
|
||||
prelude_info.exclusive_read_memory_8 = EmitExclusiveReadCallTrampoline<&A64::UserCallbacks::MemoryRead8, u8>(code, conf);
|
||||
prelude_info.exclusive_read_memory_16 = EmitExclusiveReadCallTrampoline<&A64::UserCallbacks::MemoryRead16, u16>(code, conf);
|
||||
prelude_info.exclusive_read_memory_32 = EmitExclusiveReadCallTrampoline<&A64::UserCallbacks::MemoryRead32, u32>(code, conf);
|
||||
prelude_info.exclusive_read_memory_64 = EmitExclusiveReadCallTrampoline<&A64::UserCallbacks::MemoryRead64, u64>(code, conf);
|
||||
prelude_info.exclusive_read_memory_8 = EmitExclusiveReadCallTrampoline<&A64::UserCallbacks::MemoryRead, u8>(code, conf);
|
||||
prelude_info.exclusive_read_memory_16 = EmitExclusiveReadCallTrampoline<&A64::UserCallbacks::MemoryRead, u16>(code, conf);
|
||||
prelude_info.exclusive_read_memory_32 = EmitExclusiveReadCallTrampoline<&A64::UserCallbacks::MemoryRead, u32>(code, conf);
|
||||
prelude_info.exclusive_read_memory_64 = EmitExclusiveReadCallTrampoline<&A64::UserCallbacks::MemoryRead, u64>(code, conf);
|
||||
prelude_info.exclusive_read_memory_128 = EmitExclusiveRead128CallTrampoline(code, conf);
|
||||
prelude_info.write_memory_8 = EmitCallTrampoline<&A64::UserCallbacks::MemoryWrite8>(code, conf.callbacks);
|
||||
prelude_info.write_memory_16 = EmitCallTrampoline<&A64::UserCallbacks::MemoryWrite16>(code, conf.callbacks);
|
||||
prelude_info.write_memory_32 = EmitCallTrampoline<&A64::UserCallbacks::MemoryWrite32>(code, conf.callbacks);
|
||||
prelude_info.write_memory_64 = EmitCallTrampoline<&A64::UserCallbacks::MemoryWrite64>(code, conf.callbacks);
|
||||
prelude_info.write_memory = EmitCallTrampoline<&A64::UserCallbacks::MemoryWrite>(code, conf.callbacks);
|
||||
prelude_info.write_memory_128 = EmitWrite128CallTrampoline(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory_8 = EmitWrappedWriteCallTrampoline<&A64::UserCallbacks::MemoryWrite8>(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory_16 = EmitWrappedWriteCallTrampoline<&A64::UserCallbacks::MemoryWrite16>(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory_32 = EmitWrappedWriteCallTrampoline<&A64::UserCallbacks::MemoryWrite32>(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory_64 = EmitWrappedWriteCallTrampoline<&A64::UserCallbacks::MemoryWrite64>(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory = EmitWrappedWriteCallTrampoline<&A64::UserCallbacks::MemoryWrite>(code, conf.callbacks);
|
||||
prelude_info.wrapped_write_memory_128 = EmitWrappedWrite128CallTrampoline(code, conf.callbacks);
|
||||
prelude_info.exclusive_write_memory_8 = EmitExclusiveWriteCallTrampoline<&A64::UserCallbacks::MemoryWriteExclusive8, u8>(code, conf);
|
||||
prelude_info.exclusive_write_memory_16 = EmitExclusiveWriteCallTrampoline<&A64::UserCallbacks::MemoryWriteExclusive16, u16>(code, conf);
|
||||
|
||||
@@ -145,32 +145,42 @@ void AddressSpace::Link(EmittedBlockInfo& block_info) {
|
||||
case LinkTarget::ReturnFromRunCode:
|
||||
c.B(prelude_info.return_from_run_code);
|
||||
break;
|
||||
// { this, vaddr, size }
|
||||
case LinkTarget::ReadMemory8:
|
||||
c.BL(prelude_info.read_memory_8);
|
||||
c.LDR(X2, 1);
|
||||
c.BL(prelude_info.read_memory);
|
||||
break;
|
||||
case LinkTarget::ReadMemory16:
|
||||
c.BL(prelude_info.read_memory_16);
|
||||
c.LDR(X2, 2);
|
||||
c.BL(prelude_info.read_memory);
|
||||
break;
|
||||
case LinkTarget::ReadMemory32:
|
||||
c.BL(prelude_info.read_memory_32);
|
||||
c.LDR(X2, 4);
|
||||
c.BL(prelude_info.read_memory);
|
||||
break;
|
||||
case LinkTarget::ReadMemory64:
|
||||
c.BL(prelude_info.read_memory_64);
|
||||
c.LDR(X2, 8);
|
||||
c.BL(prelude_info.read_memory);
|
||||
break;
|
||||
case LinkTarget::ReadMemory128:
|
||||
c.BL(prelude_info.read_memory_128);
|
||||
break;
|
||||
// { this, vaddr, size }
|
||||
case LinkTarget::WrappedReadMemory8:
|
||||
c.BL(prelude_info.wrapped_read_memory_8);
|
||||
c.LDR(X2, 1);
|
||||
c.BL(prelude_info.wrapped_read_memory);
|
||||
break;
|
||||
case LinkTarget::WrappedReadMemory16:
|
||||
c.BL(prelude_info.wrapped_read_memory_16);
|
||||
c.LDR(X2, 2);
|
||||
c.BL(prelude_info.wrapped_read_memory);
|
||||
break;
|
||||
case LinkTarget::WrappedReadMemory32:
|
||||
c.BL(prelude_info.wrapped_read_memory_32);
|
||||
c.LDR(X2, 4);
|
||||
c.BL(prelude_info.wrapped_read_memory);
|
||||
break;
|
||||
case LinkTarget::WrappedReadMemory64:
|
||||
c.BL(prelude_info.wrapped_read_memory_64);
|
||||
c.LDR(X2, 8);
|
||||
c.BL(prelude_info.wrapped_read_memory);
|
||||
break;
|
||||
case LinkTarget::WrappedReadMemory128:
|
||||
c.BL(prelude_info.wrapped_read_memory_128);
|
||||
@@ -190,32 +200,41 @@ void AddressSpace::Link(EmittedBlockInfo& block_info) {
|
||||
case LinkTarget::ExclusiveReadMemory128:
|
||||
c.BL(prelude_info.exclusive_read_memory_128);
|
||||
break;
|
||||
// { this, vaddr, value, size }
|
||||
case LinkTarget::WriteMemory8:
|
||||
c.BL(prelude_info.write_memory_8);
|
||||
c.LDR(X3, 1);
|
||||
c.BL(prelude_info.write_memory);
|
||||
break;
|
||||
case LinkTarget::WriteMemory16:
|
||||
c.BL(prelude_info.write_memory_16);
|
||||
c.LDR(X3, 2);
|
||||
c.BL(prelude_info.write_memory);
|
||||
break;
|
||||
case LinkTarget::WriteMemory32:
|
||||
c.BL(prelude_info.write_memory_32);
|
||||
c.LDR(X3, 4);
|
||||
c.BL(prelude_info.write_memory);
|
||||
break;
|
||||
case LinkTarget::WriteMemory64:
|
||||
c.BL(prelude_info.write_memory_64);
|
||||
c.LDR(X3, 8);
|
||||
c.BL(prelude_info.write_memory);
|
||||
break;
|
||||
case LinkTarget::WriteMemory128:
|
||||
c.BL(prelude_info.write_memory_128);
|
||||
break;
|
||||
case LinkTarget::WrappedWriteMemory8:
|
||||
c.BL(prelude_info.wrapped_write_memory_8);
|
||||
c.LDR(X3, 1);
|
||||
c.BL(prelude_info.wrapped_write_memory);
|
||||
break;
|
||||
case LinkTarget::WrappedWriteMemory16:
|
||||
c.BL(prelude_info.wrapped_write_memory_16);
|
||||
c.LDR(X3, 2);
|
||||
c.BL(prelude_info.wrapped_write_memory);
|
||||
break;
|
||||
case LinkTarget::WrappedWriteMemory32:
|
||||
c.BL(prelude_info.wrapped_write_memory_32);
|
||||
c.LDR(X3, 4);
|
||||
c.BL(prelude_info.wrapped_write_memory);
|
||||
break;
|
||||
case LinkTarget::WrappedWriteMemory64:
|
||||
c.BL(prelude_info.wrapped_write_memory_64);
|
||||
c.LDR(X3, 8);
|
||||
c.BL(prelude_info.wrapped_write_memory);
|
||||
break;
|
||||
case LinkTarget::WrappedWriteMemory128:
|
||||
c.BL(prelude_info.wrapped_write_memory_128);
|
||||
|
||||
@@ -92,30 +92,18 @@ protected:
|
||||
void* return_to_dispatcher;
|
||||
void* return_from_run_code;
|
||||
|
||||
void* read_memory_8;
|
||||
void* read_memory_16;
|
||||
void* read_memory_32;
|
||||
void* read_memory_64;
|
||||
void* read_memory;
|
||||
void* read_memory_128;
|
||||
void* wrapped_read_memory_8;
|
||||
void* wrapped_read_memory_16;
|
||||
void* wrapped_read_memory_32;
|
||||
void* wrapped_read_memory_64;
|
||||
void* wrapped_read_memory;
|
||||
void* wrapped_read_memory_128;
|
||||
void* exclusive_read_memory_8;
|
||||
void* exclusive_read_memory_16;
|
||||
void* exclusive_read_memory_32;
|
||||
void* exclusive_read_memory_64;
|
||||
void* exclusive_read_memory_128;
|
||||
void* write_memory_8;
|
||||
void* write_memory_16;
|
||||
void* write_memory_32;
|
||||
void* write_memory_64;
|
||||
void* write_memory;
|
||||
void* write_memory_128;
|
||||
void* wrapped_write_memory_8;
|
||||
void* wrapped_write_memory_16;
|
||||
void* wrapped_write_memory_32;
|
||||
void* wrapped_write_memory_64;
|
||||
void* wrapped_write_memory;
|
||||
void* wrapped_write_memory_128;
|
||||
void* exclusive_write_memory_8;
|
||||
void* exclusive_write_memory_16;
|
||||
|
||||
@@ -31,16 +31,16 @@ using namespace Xbyak::util;
|
||||
void A32EmitX64::GenFastmemFallbacks() {
|
||||
const std::initializer_list<int> idxes{0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
|
||||
const std::array<std::pair<size_t, ArgCallback>, 4> read_callbacks{{
|
||||
{8, Devirtualize<&A32::UserCallbacks::MemoryRead8>(conf.callbacks)},
|
||||
{16, Devirtualize<&A32::UserCallbacks::MemoryRead16>(conf.callbacks)},
|
||||
{32, Devirtualize<&A32::UserCallbacks::MemoryRead32>(conf.callbacks)},
|
||||
{64, Devirtualize<&A32::UserCallbacks::MemoryRead64>(conf.callbacks)},
|
||||
{8, Devirtualize<&A32::UserCallbacks::MemoryRead>(conf.callbacks)},
|
||||
{16, Devirtualize<&A32::UserCallbacks::MemoryRead>(conf.callbacks)},
|
||||
{32, Devirtualize<&A32::UserCallbacks::MemoryRead>(conf.callbacks)},
|
||||
{64, Devirtualize<&A32::UserCallbacks::MemoryRead>(conf.callbacks)},
|
||||
}};
|
||||
const std::array<std::pair<size_t, ArgCallback>, 4> write_callbacks{{
|
||||
{8, Devirtualize<&A32::UserCallbacks::MemoryWrite8>(conf.callbacks)},
|
||||
{16, Devirtualize<&A32::UserCallbacks::MemoryWrite16>(conf.callbacks)},
|
||||
{32, Devirtualize<&A32::UserCallbacks::MemoryWrite32>(conf.callbacks)},
|
||||
{64, Devirtualize<&A32::UserCallbacks::MemoryWrite64>(conf.callbacks)},
|
||||
{8, Devirtualize<&A32::UserCallbacks::MemoryWrite>(conf.callbacks)},
|
||||
{16, Devirtualize<&A32::UserCallbacks::MemoryWrite>(conf.callbacks)},
|
||||
{32, Devirtualize<&A32::UserCallbacks::MemoryWrite>(conf.callbacks)},
|
||||
{64, Devirtualize<&A32::UserCallbacks::MemoryWrite>(conf.callbacks)},
|
||||
}};
|
||||
const std::array<std::pair<size_t, ArgCallback>, 4> exclusive_write_callbacks{{
|
||||
{8, Devirtualize<&A32::UserCallbacks::MemoryWriteExclusive8>(conf.callbacks)},
|
||||
@@ -56,12 +56,12 @@ void A32EmitX64::GenFastmemFallbacks() {
|
||||
code.align();
|
||||
read_fallbacks[std::make_tuple(ordered, bitsize, vaddr_idx, value_idx)] = code.getCurr<void (*)()>();
|
||||
ABI_PushCallerSaveRegistersAndAdjustStackExcept(code, HostLocRegIdx(value_idx));
|
||||
// params = { this, vaddr, size }
|
||||
if (vaddr_idx != code.ABI_PARAM2.getIdx()) {
|
||||
code.mov(code.ABI_PARAM2, Xbyak::Reg64{vaddr_idx});
|
||||
}
|
||||
if (ordered) {
|
||||
code.mfence();
|
||||
}
|
||||
code.mov(code.ABI_PARAM3, bitsize / CHAR_BIT);
|
||||
if (ordered) code.mfence();
|
||||
callback.EmitCall(code);
|
||||
if (value_idx != code.ABI_RETURN.getIdx()) {
|
||||
code.mov(Xbyak::Reg64{value_idx}, code.ABI_RETURN);
|
||||
@@ -76,6 +76,7 @@ void A32EmitX64::GenFastmemFallbacks() {
|
||||
code.align();
|
||||
write_fallbacks[std::make_tuple(ordered, bitsize, vaddr_idx, value_idx)] = code.getCurr<void (*)()>();
|
||||
ABI_PushCallerSaveRegistersAndAdjustStack(code);
|
||||
// params = { this, vaddr, value, size }
|
||||
if (vaddr_idx == code.ABI_PARAM3.getIdx() && value_idx == code.ABI_PARAM2.getIdx()) {
|
||||
code.xchg(code.ABI_PARAM2, code.ABI_PARAM3);
|
||||
} else if (vaddr_idx == code.ABI_PARAM3.getIdx()) {
|
||||
@@ -92,10 +93,9 @@ void A32EmitX64::GenFastmemFallbacks() {
|
||||
}
|
||||
}
|
||||
code.ZeroExtendFrom(bitsize, code.ABI_PARAM3);
|
||||
code.mov(code.ABI_PARAM4, bitsize / CHAR_BIT);
|
||||
callback.EmitCall(code);
|
||||
if (ordered) {
|
||||
code.mfence();
|
||||
}
|
||||
if (ordered) code.mfence();
|
||||
ABI_PopCallerSaveRegistersAndAdjustStack(code);
|
||||
code.ret();
|
||||
PerfMapRegister(write_fallbacks[std::make_tuple(ordered, bitsize, vaddr_idx, value_idx)], code.getCurr(), fmt::format("a32_write_fallback_{}", bitsize));
|
||||
@@ -138,35 +138,35 @@ void A32EmitX64::GenFastmemFallbacks() {
|
||||
#undef Axx
|
||||
|
||||
void A32EmitX64::EmitA32ReadMemory8(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryRead<8, &A32::UserCallbacks::MemoryRead8>(ctx, inst);
|
||||
EmitMemoryRead<8, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32ReadMemory16(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryRead<16, &A32::UserCallbacks::MemoryRead16>(ctx, inst);
|
||||
EmitMemoryRead<16, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32ReadMemory32(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryRead<32, &A32::UserCallbacks::MemoryRead32>(ctx, inst);
|
||||
EmitMemoryRead<32, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32ReadMemory64(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryRead<64, &A32::UserCallbacks::MemoryRead64>(ctx, inst);
|
||||
EmitMemoryRead<64, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32WriteMemory8(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryWrite<8, &A32::UserCallbacks::MemoryWrite8>(ctx, inst);
|
||||
EmitMemoryWrite<8, &A32::UserCallbacks::MemoryWrite>(ctx, inst);
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32WriteMemory16(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryWrite<16, &A32::UserCallbacks::MemoryWrite16>(ctx, inst);
|
||||
EmitMemoryWrite<16, &A32::UserCallbacks::MemoryWrite>(ctx, inst);
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32WriteMemory32(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryWrite<32, &A32::UserCallbacks::MemoryWrite32>(ctx, inst);
|
||||
EmitMemoryWrite<32, &A32::UserCallbacks::MemoryWrite>(ctx, inst);
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32WriteMemory64(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryWrite<64, &A32::UserCallbacks::MemoryWrite64>(ctx, inst);
|
||||
EmitMemoryWrite<64, &A32::UserCallbacks::MemoryWrite>(ctx, inst);
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32ClearExclusive(A32EmitContext&, IR::Inst*) {
|
||||
@@ -175,33 +175,33 @@ void A32EmitX64::EmitA32ClearExclusive(A32EmitContext&, IR::Inst*) {
|
||||
|
||||
void A32EmitX64::EmitA32ExclusiveReadMemory8(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
if (conf.fastmem_exclusive_access) {
|
||||
EmitExclusiveReadMemoryInline<8, &A32::UserCallbacks::MemoryRead8>(ctx, inst);
|
||||
EmitExclusiveReadMemoryInline<8, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
} else {
|
||||
EmitExclusiveReadMemory<8, &A32::UserCallbacks::MemoryRead8>(ctx, inst);
|
||||
EmitExclusiveReadMemory<8, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32ExclusiveReadMemory16(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
if (conf.fastmem_exclusive_access) {
|
||||
EmitExclusiveReadMemoryInline<16, &A32::UserCallbacks::MemoryRead16>(ctx, inst);
|
||||
EmitExclusiveReadMemoryInline<16, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
} else {
|
||||
EmitExclusiveReadMemory<16, &A32::UserCallbacks::MemoryRead16>(ctx, inst);
|
||||
EmitExclusiveReadMemory<16, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32ExclusiveReadMemory32(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
if (conf.fastmem_exclusive_access) {
|
||||
EmitExclusiveReadMemoryInline<32, &A32::UserCallbacks::MemoryRead32>(ctx, inst);
|
||||
EmitExclusiveReadMemoryInline<32, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
} else {
|
||||
EmitExclusiveReadMemory<32, &A32::UserCallbacks::MemoryRead32>(ctx, inst);
|
||||
EmitExclusiveReadMemory<32, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
}
|
||||
|
||||
void A32EmitX64::EmitA32ExclusiveReadMemory64(A32EmitContext& ctx, IR::Inst* inst) {
|
||||
if (conf.fastmem_exclusive_access) {
|
||||
EmitExclusiveReadMemoryInline<64, &A32::UserCallbacks::MemoryRead64>(ctx, inst);
|
||||
EmitExclusiveReadMemoryInline<64, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
} else {
|
||||
EmitExclusiveReadMemory<64, &A32::UserCallbacks::MemoryRead64>(ctx, inst);
|
||||
EmitExclusiveReadMemory<64, &A32::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -234,7 +234,7 @@ private:
|
||||
BlockOfCode block_of_code;
|
||||
A32EmitX64 emitter;
|
||||
Optimization::PolyfillOptions polyfill_options;
|
||||
// Keep it here, you don't wanna mess with the fuckery that's initializer lists
|
||||
// Keep it here in order to not mess with initializer lists
|
||||
const A32::UserConfig conf;
|
||||
Jit* jit_interface;
|
||||
|
||||
|
||||
@@ -115,16 +115,16 @@ void A64EmitX64::GenMemory128Accessors() {
|
||||
void A64EmitX64::GenFastmemFallbacks() {
|
||||
const std::initializer_list<int> idxes{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
|
||||
const std::array<std::pair<size_t, ArgCallback>, 4> read_callbacks{{
|
||||
{8, Devirtualize<&A64::UserCallbacks::MemoryRead8>(conf.callbacks)},
|
||||
{16, Devirtualize<&A64::UserCallbacks::MemoryRead16>(conf.callbacks)},
|
||||
{32, Devirtualize<&A64::UserCallbacks::MemoryRead32>(conf.callbacks)},
|
||||
{64, Devirtualize<&A64::UserCallbacks::MemoryRead64>(conf.callbacks)},
|
||||
{8, Devirtualize<&A64::UserCallbacks::MemoryRead>(conf.callbacks)},
|
||||
{16, Devirtualize<&A64::UserCallbacks::MemoryRead>(conf.callbacks)},
|
||||
{32, Devirtualize<&A64::UserCallbacks::MemoryRead>(conf.callbacks)},
|
||||
{64, Devirtualize<&A64::UserCallbacks::MemoryRead>(conf.callbacks)},
|
||||
}};
|
||||
const std::array<std::pair<size_t, ArgCallback>, 4> write_callbacks{{
|
||||
{8, Devirtualize<&A64::UserCallbacks::MemoryWrite8>(conf.callbacks)},
|
||||
{16, Devirtualize<&A64::UserCallbacks::MemoryWrite16>(conf.callbacks)},
|
||||
{32, Devirtualize<&A64::UserCallbacks::MemoryWrite32>(conf.callbacks)},
|
||||
{64, Devirtualize<&A64::UserCallbacks::MemoryWrite64>(conf.callbacks)},
|
||||
{8, Devirtualize<&A64::UserCallbacks::MemoryWrite>(conf.callbacks)},
|
||||
{16, Devirtualize<&A64::UserCallbacks::MemoryWrite>(conf.callbacks)},
|
||||
{32, Devirtualize<&A64::UserCallbacks::MemoryWrite>(conf.callbacks)},
|
||||
{64, Devirtualize<&A64::UserCallbacks::MemoryWrite>(conf.callbacks)},
|
||||
}};
|
||||
const std::array<std::pair<size_t, ArgCallback>, 4> exclusive_write_callbacks{{
|
||||
{8, Devirtualize<&A64::UserCallbacks::MemoryWriteExclusive8>(conf.callbacks)},
|
||||
@@ -204,12 +204,12 @@ void A64EmitX64::GenFastmemFallbacks() {
|
||||
code.align();
|
||||
read_fallbacks[std::make_tuple(ordered, bitsize, vaddr_idx, value_idx)] = code.getCurr<void (*)()>();
|
||||
ABI_PushCallerSaveRegistersAndAdjustStackExcept(code, HostLocRegIdx(value_idx));
|
||||
// params = { this, vaddr, size }
|
||||
if (vaddr_idx != code.ABI_PARAM2.getIdx()) {
|
||||
code.mov(code.ABI_PARAM2, Xbyak::Reg64{vaddr_idx});
|
||||
}
|
||||
if (ordered) {
|
||||
code.mfence();
|
||||
}
|
||||
code.mov(code.ABI_PARAM3, bitsize / CHAR_BIT);
|
||||
if (ordered) code.mfence();
|
||||
callback.EmitCall(code);
|
||||
if (value_idx != code.ABI_RETURN.getIdx()) {
|
||||
code.mov(Xbyak::Reg64{value_idx}, code.ABI_RETURN);
|
||||
@@ -224,6 +224,7 @@ void A64EmitX64::GenFastmemFallbacks() {
|
||||
code.align();
|
||||
write_fallbacks[std::make_tuple(ordered, bitsize, vaddr_idx, value_idx)] = code.getCurr<void (*)()>();
|
||||
ABI_PushCallerSaveRegistersAndAdjustStack(code);
|
||||
// params = { this, vaddr, value, size }
|
||||
if (vaddr_idx == code.ABI_PARAM3.getIdx() && value_idx == code.ABI_PARAM2.getIdx()) {
|
||||
code.xchg(code.ABI_PARAM2, code.ABI_PARAM3);
|
||||
} else if (vaddr_idx == code.ABI_PARAM3.getIdx()) {
|
||||
@@ -240,10 +241,9 @@ void A64EmitX64::GenFastmemFallbacks() {
|
||||
}
|
||||
}
|
||||
code.ZeroExtendFrom(bitsize, code.ABI_PARAM3);
|
||||
code.mov(code.ABI_PARAM4, bitsize / CHAR_BIT);
|
||||
callback.EmitCall(code);
|
||||
if (ordered) {
|
||||
code.mfence();
|
||||
}
|
||||
if (ordered) code.mfence();
|
||||
ABI_PopCallerSaveRegistersAndAdjustStack(code);
|
||||
code.ret();
|
||||
PerfMapRegister(write_fallbacks[std::make_tuple(ordered, bitsize, vaddr_idx, value_idx)], code.getCurr(), fmt::format("a64_write_fallback_{}", bitsize));
|
||||
@@ -286,19 +286,19 @@ void A64EmitX64::GenFastmemFallbacks() {
|
||||
#undef Axx
|
||||
|
||||
void A64EmitX64::EmitA64ReadMemory8(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryRead<8, &A64::UserCallbacks::MemoryRead8>(ctx, inst);
|
||||
EmitMemoryRead<8, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64ReadMemory16(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryRead<16, &A64::UserCallbacks::MemoryRead16>(ctx, inst);
|
||||
EmitMemoryRead<16, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64ReadMemory32(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryRead<32, &A64::UserCallbacks::MemoryRead32>(ctx, inst);
|
||||
EmitMemoryRead<32, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64ReadMemory64(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryRead<64, &A64::UserCallbacks::MemoryRead64>(ctx, inst);
|
||||
EmitMemoryRead<64, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64ReadMemory128(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
@@ -306,23 +306,23 @@ void A64EmitX64::EmitA64ReadMemory128(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64WriteMemory8(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryWrite<8, &A64::UserCallbacks::MemoryWrite8>(ctx, inst);
|
||||
EmitMemoryWrite<8, &A64::UserCallbacks::MemoryWrite>(ctx, inst);
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64WriteMemory16(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryWrite<16, &A64::UserCallbacks::MemoryWrite16>(ctx, inst);
|
||||
EmitMemoryWrite<16, &A64::UserCallbacks::MemoryWrite>(ctx, inst);
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64WriteMemory32(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryWrite<32, &A64::UserCallbacks::MemoryWrite32>(ctx, inst);
|
||||
EmitMemoryWrite<32, &A64::UserCallbacks::MemoryWrite>(ctx, inst);
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64WriteMemory64(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryWrite<64, &A64::UserCallbacks::MemoryWrite64>(ctx, inst);
|
||||
EmitMemoryWrite<64, &A64::UserCallbacks::MemoryWrite>(ctx, inst);
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64WriteMemory128(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
EmitMemoryWrite<128, &A64::UserCallbacks::MemoryWrite64>(ctx, inst);
|
||||
EmitMemoryWrite<128, &A64::UserCallbacks::MemoryWrite>(ctx, inst);
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64ClearExclusive(A64EmitContext&, IR::Inst*) {
|
||||
@@ -331,33 +331,33 @@ void A64EmitX64::EmitA64ClearExclusive(A64EmitContext&, IR::Inst*) {
|
||||
|
||||
void A64EmitX64::EmitA64ExclusiveReadMemory8(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
if (conf.fastmem_exclusive_access) {
|
||||
EmitExclusiveReadMemoryInline<8, &A64::UserCallbacks::MemoryRead8>(ctx, inst);
|
||||
EmitExclusiveReadMemoryInline<8, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
} else {
|
||||
EmitExclusiveReadMemory<8, &A64::UserCallbacks::MemoryRead8>(ctx, inst);
|
||||
EmitExclusiveReadMemory<8, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64ExclusiveReadMemory16(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
if (conf.fastmem_exclusive_access) {
|
||||
EmitExclusiveReadMemoryInline<16, &A64::UserCallbacks::MemoryRead16>(ctx, inst);
|
||||
EmitExclusiveReadMemoryInline<16, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
} else {
|
||||
EmitExclusiveReadMemory<16, &A64::UserCallbacks::MemoryRead16>(ctx, inst);
|
||||
EmitExclusiveReadMemory<16, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64ExclusiveReadMemory32(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
if (conf.fastmem_exclusive_access) {
|
||||
EmitExclusiveReadMemoryInline<32, &A64::UserCallbacks::MemoryRead32>(ctx, inst);
|
||||
EmitExclusiveReadMemoryInline<32, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
} else {
|
||||
EmitExclusiveReadMemory<32, &A64::UserCallbacks::MemoryRead32>(ctx, inst);
|
||||
EmitExclusiveReadMemory<32, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
}
|
||||
|
||||
void A64EmitX64::EmitA64ExclusiveReadMemory64(A64EmitContext& ctx, IR::Inst* inst) {
|
||||
if (conf.fastmem_exclusive_access) {
|
||||
EmitExclusiveReadMemoryInline<64, &A64::UserCallbacks::MemoryRead64>(ctx, inst);
|
||||
EmitExclusiveReadMemoryInline<64, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
} else {
|
||||
EmitExclusiveReadMemory<64, &A64::UserCallbacks::MemoryRead64>(ctx, inst);
|
||||
EmitExclusiveReadMemory<64, &A64::UserCallbacks::MemoryRead>(ctx, inst);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
/* This file is part of the dynarmic project.
|
||||
* Copyright (c) 2022 MerryMage
|
||||
* SPDX-License-Identifier: 0BSD
|
||||
@@ -56,16 +59,13 @@ void AxxEmitX64::EmitMemoryRead(AxxEmitContext& ctx, IR::Inst* inst) {
|
||||
// Neither fastmem nor page table: Use callbacks
|
||||
if constexpr (bitsize == 128) {
|
||||
ctx.reg_alloc.HostCall(code, nullptr, {}, args[1]);
|
||||
if (ordered) {
|
||||
code.mfence();
|
||||
}
|
||||
if (ordered) code.mfence();
|
||||
code.CallFunction(memory_read_128);
|
||||
ctx.reg_alloc.DefineValue(code, inst, xmm1);
|
||||
} else {
|
||||
ctx.reg_alloc.HostCall(code, inst, {}, args[1]);
|
||||
if (ordered) {
|
||||
code.mfence();
|
||||
}
|
||||
code.mov(code.ABI_PARAM3.cvt32(), bitsize / CHAR_BIT);
|
||||
if (ordered) code.mfence();
|
||||
Devirtualize<callback>(conf.callbacks).EmitCall(code);
|
||||
code.ZeroExtendFrom(bitsize, code.ABI_RETURN);
|
||||
}
|
||||
@@ -148,12 +148,12 @@ void AxxEmitX64::EmitMemoryWrite(AxxEmitContext& ctx, IR::Inst* inst) {
|
||||
ctx.reg_alloc.HostCall(code, nullptr);
|
||||
code.CallFunction(memory_write_128);
|
||||
} else {
|
||||
// { this, vaddr, value, size }
|
||||
ctx.reg_alloc.HostCall(code, nullptr, {}, args[1], args[2]);
|
||||
code.mov(code.ABI_PARAM4.cvt32(), bitsize / CHAR_BIT);
|
||||
Devirtualize<callback>(conf.callbacks).EmitCall(code);
|
||||
}
|
||||
if (ordered) {
|
||||
code.mfence();
|
||||
}
|
||||
if (ordered) code.mfence();
|
||||
EmitCheckMemoryAbort(ctx, inst);
|
||||
return;
|
||||
}
|
||||
@@ -230,12 +230,11 @@ void AxxEmitX64::EmitExclusiveReadMemory(AxxEmitContext& ctx, IR::Inst* inst) {
|
||||
if (ordered) {
|
||||
code.mfence();
|
||||
}
|
||||
code.CallLambda(
|
||||
[](AxxUserConfig& conf, Axx::VAddr vaddr) -> T {
|
||||
return conf.global_monitor->ReadAndMark<T>(conf.processor_id, vaddr, [&]() -> T {
|
||||
return (conf.callbacks->*callback)(vaddr);
|
||||
});
|
||||
code.CallLambda([](AxxUserConfig& conf, Axx::VAddr vaddr) -> T {
|
||||
return conf.global_monitor->ReadAndMark<T>(conf.processor_id, vaddr, [&]() -> T {
|
||||
return (conf.callbacks->*callback)(vaddr, bitsize / CHAR_BIT);
|
||||
});
|
||||
});
|
||||
code.ZeroExtendFrom(bitsize, code.ABI_RETURN);
|
||||
} else {
|
||||
const Xbyak::Xmm result = ctx.reg_alloc.ScratchXmm(code);
|
||||
@@ -250,12 +249,11 @@ void AxxEmitX64::EmitExclusiveReadMemory(AxxEmitContext& ctx, IR::Inst* inst) {
|
||||
if (ordered) {
|
||||
code.mfence();
|
||||
}
|
||||
code.CallLambda(
|
||||
[](AxxUserConfig& conf, Axx::VAddr vaddr, Vector& ret) {
|
||||
ret = conf.global_monitor->ReadAndMark<Vector>(conf.processor_id, vaddr, [&]() -> Vector {
|
||||
return (conf.callbacks->*callback)(vaddr);
|
||||
});
|
||||
code.CallLambda([](AxxUserConfig& conf, Axx::VAddr vaddr, Vector& ret) {
|
||||
ret = conf.global_monitor->ReadAndMark<Vector>(conf.processor_id, vaddr, [&]() -> Vector {
|
||||
return (conf.callbacks->*callback)(vaddr);
|
||||
});
|
||||
});
|
||||
code.movups(result, xword[rsp + ABI_SHADOW_SPACE]);
|
||||
ctx.reg_alloc.ReleaseStackSpace(code, 16 + ABI_SHADOW_SPACE);
|
||||
|
||||
|
||||
@@ -2160,8 +2160,6 @@ void EmitFPVectorToFixed(BlockOfCode& code, EmitContext& ctx, IR::Inst* inst) {
|
||||
ROUNDING_MODE_CASE(CASE, 0x3e) \
|
||||
ROUNDING_MODE_CASE(CASE, 0x3f)
|
||||
|
||||
// FUCK YOU MSVC, FUCKING DEPTH CANT EVEN HANDLE 8+16+32+64 DEPTH OF A ELSE STATMENT YOU FUCKING STUPID
|
||||
// BURN MSVC BURN IT STUPID COMPILER CAN'T EVEN COMPILE THE MOST BASIC C++
|
||||
ROUNDING_MODE_SWITCH(ToNearest_TieEven)
|
||||
ROUNDING_MODE_SWITCH(TowardsPlusInfinity)
|
||||
ROUNDING_MODE_SWITCH(TowardsMinusInfinity)
|
||||
|
||||
@@ -66,7 +66,9 @@ struct UserCallbacks : public TranslateCallbacks {
|
||||
|
||||
// All reads through this callback are 4-byte aligned.
|
||||
// Memory must be interpreted as little endian.
|
||||
std::optional<std::uint32_t> MemoryReadCode(VAddr vaddr) override { return MemoryRead32(vaddr); }
|
||||
std::optional<std::uint32_t> MemoryReadCode(VAddr vaddr) override {
|
||||
return std::uint32_t(MemoryRead(vaddr, sizeof(std::uint32_t)));
|
||||
}
|
||||
|
||||
// This function is called before the instruction at pc is read.
|
||||
// IR code can be emitted by the callee prior to instruction handling.
|
||||
@@ -80,16 +82,10 @@ struct UserCallbacks : public TranslateCallbacks {
|
||||
|
||||
// Reads through these callbacks may not be aligned.
|
||||
// Memory must be interpreted as if ENDIANSTATE == 0, endianness will be corrected by the JIT.
|
||||
virtual std::uint8_t MemoryRead8(VAddr vaddr) = 0;
|
||||
virtual std::uint16_t MemoryRead16(VAddr vaddr) = 0;
|
||||
virtual std::uint32_t MemoryRead32(VAddr vaddr) = 0;
|
||||
virtual std::uint64_t MemoryRead64(VAddr vaddr) = 0;
|
||||
virtual std::uint64_t MemoryRead(VAddr vaddr, std::size_t size) = 0;
|
||||
|
||||
// Writes through these callbacks may not be aligned.
|
||||
virtual void MemoryWrite8(VAddr vaddr, std::uint8_t value) = 0;
|
||||
virtual void MemoryWrite16(VAddr vaddr, std::uint16_t value) = 0;
|
||||
virtual void MemoryWrite32(VAddr vaddr, std::uint32_t value) = 0;
|
||||
virtual void MemoryWrite64(VAddr vaddr, std::uint64_t value) = 0;
|
||||
virtual void MemoryWrite(VAddr vaddr, std::uint64_t value, std::size_t size) = 0;
|
||||
|
||||
// Writes through these callbacks may not be aligned.
|
||||
virtual bool MemoryWriteExclusive8(VAddr /*vaddr*/, std::uint8_t /*value*/, std::uint8_t /*expected*/) { return false; }
|
||||
|
||||
@@ -89,20 +89,16 @@ struct UserCallbacks {
|
||||
|
||||
// All reads through this callback are 4-byte aligned.
|
||||
// Memory must be interpreted as little endian.
|
||||
virtual std::optional<std::uint32_t> MemoryReadCode(VAddr vaddr) { return MemoryRead32(vaddr); }
|
||||
virtual std::optional<std::uint32_t> MemoryReadCode(VAddr vaddr) {
|
||||
return std::uint32_t(MemoryRead(vaddr, sizeof(std::uint32_t)));
|
||||
}
|
||||
|
||||
// Reads through these callbacks may not be aligned.
|
||||
virtual std::uint8_t MemoryRead8(VAddr vaddr) = 0;
|
||||
virtual std::uint16_t MemoryRead16(VAddr vaddr) = 0;
|
||||
virtual std::uint32_t MemoryRead32(VAddr vaddr) = 0;
|
||||
virtual std::uint64_t MemoryRead64(VAddr vaddr) = 0;
|
||||
virtual std::uint64_t MemoryRead(VAddr vaddr, std::size_t size) = 0;
|
||||
virtual Vector MemoryRead128(VAddr vaddr) = 0;
|
||||
|
||||
// Writes through these callbacks may not be aligned.
|
||||
virtual void MemoryWrite8(VAddr vaddr, std::uint8_t value) = 0;
|
||||
virtual void MemoryWrite16(VAddr vaddr, std::uint16_t value) = 0;
|
||||
virtual void MemoryWrite32(VAddr vaddr, std::uint32_t value) = 0;
|
||||
virtual void MemoryWrite64(VAddr vaddr, std::uint64_t value) = 0;
|
||||
virtual void MemoryWrite(VAddr vaddr, std::uint64_t value, std::size_t size) = 0;
|
||||
virtual void MemoryWrite128(VAddr vaddr, Vector value) = 0;
|
||||
|
||||
// Writes through these callbacks may not be aligned.
|
||||
|
||||
@@ -40,7 +40,7 @@ static void ConstantMemoryReads(IR::Block& block, A32::UserCallbacks* cb) {
|
||||
if (inst.AreAllArgsImmediates()) {
|
||||
const u32 vaddr = inst.GetArg(1).GetU32();
|
||||
if (cb->IsReadOnlyMemory(vaddr)) {
|
||||
const u8 value_from_memory = cb->MemoryRead8(vaddr);
|
||||
const u8 value_from_memory = u8(cb->MemoryRead(vaddr, sizeof(u8)));
|
||||
inst.ReplaceUsesWith(IR::Value{value_from_memory});
|
||||
}
|
||||
}
|
||||
@@ -51,7 +51,7 @@ static void ConstantMemoryReads(IR::Block& block, A32::UserCallbacks* cb) {
|
||||
if (inst.AreAllArgsImmediates()) {
|
||||
const u32 vaddr = inst.GetArg(1).GetU32();
|
||||
if (cb->IsReadOnlyMemory(vaddr)) {
|
||||
const u16 value_from_memory = cb->MemoryRead16(vaddr);
|
||||
const u16 value_from_memory = u16(cb->MemoryRead(vaddr, sizeof(u16)));
|
||||
inst.ReplaceUsesWith(IR::Value{value_from_memory});
|
||||
}
|
||||
}
|
||||
@@ -62,7 +62,7 @@ static void ConstantMemoryReads(IR::Block& block, A32::UserCallbacks* cb) {
|
||||
if (inst.AreAllArgsImmediates()) {
|
||||
const u32 vaddr = inst.GetArg(1).GetU32();
|
||||
if (cb->IsReadOnlyMemory(vaddr)) {
|
||||
const u32 value_from_memory = cb->MemoryRead32(vaddr);
|
||||
const u32 value_from_memory = u32(cb->MemoryRead(vaddr, sizeof(u32)));
|
||||
inst.ReplaceUsesWith(IR::Value{value_from_memory});
|
||||
}
|
||||
}
|
||||
@@ -73,7 +73,7 @@ static void ConstantMemoryReads(IR::Block& block, A32::UserCallbacks* cb) {
|
||||
if (inst.AreAllArgsImmediates()) {
|
||||
const u32 vaddr = inst.GetArg(1).GetU32();
|
||||
if (cb->IsReadOnlyMemory(vaddr)) {
|
||||
const u64 value_from_memory = cb->MemoryRead64(vaddr);
|
||||
const u64 value_from_memory = u64(cb->MemoryRead(vaddr, sizeof(u64)));
|
||||
inst.ReplaceUsesWith(IR::Value{value_from_memory});
|
||||
}
|
||||
}
|
||||
@@ -787,7 +787,7 @@ static void FoldCountLeadingZeros(IR::Inst& inst, bool is_32_bit) {
|
||||
/// Folds division operations based on the following:
|
||||
///
|
||||
/// 1. x / 0 -> 0 (NOTE: This is an ARM-specific behavior defined in the architecture reference manual)
|
||||
/// 2a. 0x8000_0000 / 0xFFFF_FFFF -> 0x8000_0000 (NOTE: More ARM bullshit)
|
||||
/// 2a. 0x8000_0000 / 0xFFFF_FFFF -> 0x8000_0000 (NOTE: More ARM errata)
|
||||
/// 2b. 0x8000_0000_0000_0000 / 0xFFFF_FFFF_FFFF_FFFF -> 0x8000_0000_0000_0000
|
||||
/// 3. imm_x / imm_y -> result
|
||||
/// 4. x / 1 -> x
|
||||
|
||||
@@ -503,7 +503,7 @@ TEST_CASE("Fuzz Thumb32 instructions set", "[JitX64][Thumb][Thumb32]") {
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("Verify fix for off by one error in MemoryRead32 worked", "[Thumb][Thumb16]") {
|
||||
TEST_CASE("Verify fix for off by one error in MemoryRead<32> worked", "[Thumb][Thumb16]") {
|
||||
ThumbTestEnv test_env;
|
||||
|
||||
// Prepare test subjects
|
||||
|
||||
@@ -553,9 +553,9 @@ TEST_CASE("arm: Memory access (fastmem)", "[arm][A32]") {
|
||||
memset(backing_memory, 0, memory_size);
|
||||
memcpy(backing_memory + 0x100, "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", 57);
|
||||
|
||||
env.MemoryWrite32(0, 0xE5904000); // LDR R4, [R0]
|
||||
env.MemoryWrite32(4, 0xE5814000); // STR R4, [R1]
|
||||
env.MemoryWrite32(8, 0xEAFFFFFE); // B .
|
||||
env.MemoryWrite(0, 0xE5904000, sizeof(u32)); // LDR R4, [R0]
|
||||
env.MemoryWrite(4, 0xE5814000, sizeof(u32)); // STR R4, [R1]
|
||||
env.MemoryWrite(8, 0xEAFFFFFE, sizeof(u32)); // B .
|
||||
jit.Regs()[0] = 0x100;
|
||||
jit.Regs()[1] = 0x1F0;
|
||||
jit.Regs()[15] = 0; // PC = 0
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
#include "common/assert.h"
|
||||
#include "common/common_types.h"
|
||||
#include "dynarmic/frontend/A32/translate/translate_callbacks.h"
|
||||
#include "dynarmic/interface/A32/a32.h"
|
||||
|
||||
template<typename InstructionType_, u32 infinite_loop_u32>
|
||||
@@ -59,42 +60,51 @@ public:
|
||||
return infinite_loop_u32; // B .
|
||||
}
|
||||
|
||||
std::uint8_t MemoryRead8(u32 vaddr) override {
|
||||
if (IsInCodeMem(vaddr)) {
|
||||
return reinterpret_cast<u8*>(code_mem.data())[vaddr];
|
||||
u64 MemoryRead(u32 vaddr, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64):
|
||||
return MemoryRead(vaddr, sizeof(u32))
|
||||
| MemoryRead(vaddr + sizeof(u32), sizeof(u32)) << 32;
|
||||
case sizeof(u32):
|
||||
return MemoryRead(vaddr, sizeof(u16))
|
||||
| MemoryRead(vaddr + sizeof(u16), sizeof(u16)) << 16;
|
||||
case sizeof(u16):
|
||||
return MemoryRead(vaddr, sizeof(u8))
|
||||
| MemoryRead(vaddr + sizeof(u8), sizeof(u8)) << 8;
|
||||
case sizeof(u8): {
|
||||
if (IsInCodeMem(vaddr))
|
||||
return reinterpret_cast<u8*>(code_mem.data())[vaddr];
|
||||
if (auto iter = modified_memory.find(vaddr); iter != modified_memory.end())
|
||||
return iter->second;
|
||||
return u8(vaddr);
|
||||
}
|
||||
if (auto iter = modified_memory.find(vaddr); iter != modified_memory.end()) {
|
||||
return iter->second;
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
return static_cast<u8>(vaddr);
|
||||
}
|
||||
std::uint16_t MemoryRead16(u32 vaddr) override {
|
||||
return u16(MemoryRead8(vaddr)) | u16(MemoryRead8(vaddr + 1)) << 8;
|
||||
}
|
||||
std::uint32_t MemoryRead32(u32 vaddr) override {
|
||||
return u32(MemoryRead16(vaddr)) | u32(MemoryRead16(vaddr + 2)) << 16;
|
||||
}
|
||||
std::uint64_t MemoryRead64(u32 vaddr) override {
|
||||
return u64(MemoryRead32(vaddr)) | u64(MemoryRead32(vaddr + 4)) << 32;
|
||||
}
|
||||
|
||||
void MemoryWrite8(u32 vaddr, std::uint8_t value) override {
|
||||
if (vaddr < code_mem.size() * sizeof(u32)) {
|
||||
code_mem_modified_by_guest = true;
|
||||
void MemoryWrite(Dynarmic::A32::VAddr vaddr, u64 value, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64):
|
||||
MemoryWrite(vaddr, u32(value), sizeof(u32));
|
||||
MemoryWrite(vaddr + 4, u32(value >> 32), sizeof(u32));
|
||||
break;
|
||||
case sizeof(u32):
|
||||
MemoryWrite(vaddr, u16(value), sizeof(u16));
|
||||
MemoryWrite(vaddr + 2, u16(value >> 16), sizeof(u16));
|
||||
break;
|
||||
case sizeof(u16):
|
||||
MemoryWrite(vaddr, u8(value), sizeof(u8));
|
||||
MemoryWrite(vaddr + 1, u8(value >> 8), sizeof(u8));
|
||||
break;
|
||||
case sizeof(u8):
|
||||
if (vaddr < code_mem.size() * sizeof(u32))
|
||||
code_mem_modified_by_guest = true;
|
||||
modified_memory[vaddr] = value;
|
||||
break;
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
modified_memory[vaddr] = value;
|
||||
}
|
||||
void MemoryWrite16(u32 vaddr, std::uint16_t value) override {
|
||||
MemoryWrite8(vaddr, static_cast<u8>(value));
|
||||
MemoryWrite8(vaddr + 1, static_cast<u8>(value >> 8));
|
||||
}
|
||||
void MemoryWrite32(u32 vaddr, std::uint32_t value) override {
|
||||
MemoryWrite16(vaddr, static_cast<u16>(value));
|
||||
MemoryWrite16(vaddr + 2, static_cast<u16>(value >> 16));
|
||||
}
|
||||
void MemoryWrite64(u32 vaddr, std::uint64_t value) override {
|
||||
MemoryWrite32(vaddr, static_cast<u32>(value));
|
||||
MemoryWrite32(vaddr + 4, static_cast<u32>(value >> 32));
|
||||
}
|
||||
|
||||
void CallSVC(std::uint32_t swi) override {
|
||||
@@ -143,46 +153,41 @@ public:
|
||||
return read<std::uint32_t>(vaddr);
|
||||
}
|
||||
|
||||
std::uint8_t MemoryRead8(std::uint32_t vaddr) override {
|
||||
return read<std::uint8_t>(vaddr);
|
||||
}
|
||||
std::uint16_t MemoryRead16(std::uint32_t vaddr) override {
|
||||
return read<std::uint16_t>(vaddr);
|
||||
}
|
||||
std::uint32_t MemoryRead32(std::uint32_t vaddr) override {
|
||||
return read<std::uint32_t>(vaddr);
|
||||
}
|
||||
std::uint64_t MemoryRead64(std::uint32_t vaddr) override {
|
||||
return read<std::uint64_t>(vaddr);
|
||||
u64 MemoryRead(u32 vaddr, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64): return read<u64>(vaddr);
|
||||
case sizeof(u32): return read<u32>(vaddr);
|
||||
case sizeof(u16): return read<u16>(vaddr);
|
||||
case sizeof(u8): return read<u8>(vaddr);
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
}
|
||||
|
||||
void MemoryWrite8(std::uint32_t vaddr, std::uint8_t value) override {
|
||||
write(vaddr, value);
|
||||
}
|
||||
void MemoryWrite16(std::uint32_t vaddr, std::uint16_t value) override {
|
||||
write(vaddr, value);
|
||||
}
|
||||
void MemoryWrite32(std::uint32_t vaddr, std::uint32_t value) override {
|
||||
write(vaddr, value);
|
||||
}
|
||||
void MemoryWrite64(std::uint32_t vaddr, std::uint64_t value) override {
|
||||
write(vaddr, value);
|
||||
void MemoryWrite(Dynarmic::A32::VAddr vaddr, std::uint64_t value, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64): return write<u64>(vaddr, u64(value));
|
||||
case sizeof(u32): return write<u32>(vaddr, u32(value));
|
||||
case sizeof(u16): return write<u16>(vaddr, u16(value));
|
||||
case sizeof(u8): return write<u8>(vaddr, u8(value));
|
||||
default: std::abort();
|
||||
}
|
||||
}
|
||||
|
||||
bool MemoryWriteExclusive8(std::uint32_t vaddr, std::uint8_t value, [[maybe_unused]] std::uint8_t expected) override {
|
||||
MemoryWrite8(vaddr, value);
|
||||
bool MemoryWriteExclusive8(Dynarmic::A32::VAddr vaddr, std::uint8_t value, [[maybe_unused]] std::uint8_t expected) override {
|
||||
MemoryWrite(vaddr, value, sizeof(u8));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive16(std::uint32_t vaddr, std::uint16_t value, [[maybe_unused]] std::uint16_t expected) override {
|
||||
MemoryWrite16(vaddr, value);
|
||||
bool MemoryWriteExclusive16(Dynarmic::A32::VAddr vaddr, std::uint16_t value, [[maybe_unused]] std::uint16_t expected) override {
|
||||
MemoryWrite(vaddr, value, sizeof(u16));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive32(std::uint32_t vaddr, std::uint32_t value, [[maybe_unused]] std::uint32_t expected) override {
|
||||
MemoryWrite32(vaddr, value);
|
||||
bool MemoryWriteExclusive32(Dynarmic::A32::VAddr vaddr, std::uint32_t value, [[maybe_unused]] std::uint32_t expected) override {
|
||||
MemoryWrite(vaddr, value, sizeof(u32));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive64(std::uint32_t vaddr, std::uint64_t value, [[maybe_unused]] std::uint64_t expected) override {
|
||||
MemoryWrite64(vaddr, value);
|
||||
bool MemoryWriteExclusive64(Dynarmic::A32::VAddr vaddr, std::uint64_t value, [[maybe_unused]] std::uint64_t expected) override {
|
||||
MemoryWrite(vaddr, value, sizeof(u64));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -25,48 +25,55 @@ public:
|
||||
u64 ticks_left = 0;
|
||||
ankerl::unordered_dense::map<u64, u8> memory{};
|
||||
|
||||
u8 MemoryRead8(u64 vaddr) override {
|
||||
return memory[vaddr];
|
||||
}
|
||||
|
||||
u16 MemoryRead16(u64 vaddr) override {
|
||||
return u16(MemoryRead8(vaddr)) | u16(MemoryRead8(vaddr + 1)) << 8;
|
||||
}
|
||||
|
||||
u32 MemoryRead32(u64 vaddr) override {
|
||||
return u32(MemoryRead16(vaddr)) | u32(MemoryRead16(vaddr + 2)) << 16;
|
||||
}
|
||||
|
||||
u64 MemoryRead64(u64 vaddr) override {
|
||||
return u64(MemoryRead32(vaddr)) | u64(MemoryRead32(vaddr + 4)) << 32;
|
||||
u64 MemoryRead(u64 vaddr, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64):
|
||||
return MemoryRead(vaddr, sizeof(u32))
|
||||
| MemoryRead(vaddr + sizeof(u32), sizeof(u32)) << 32;
|
||||
case sizeof(u32):
|
||||
return MemoryRead(vaddr, sizeof(u16))
|
||||
| MemoryRead(vaddr + sizeof(u16), sizeof(u16)) << 16;
|
||||
case sizeof(u16):
|
||||
return MemoryRead(vaddr, sizeof(u8))
|
||||
| MemoryRead(vaddr + sizeof(u8), sizeof(u8)) << 8;
|
||||
case sizeof(u8):
|
||||
return memory[vaddr];
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
}
|
||||
|
||||
std::array<u64, 2> MemoryRead128(u64 vaddr) override {
|
||||
return {MemoryRead64(vaddr), MemoryRead64(vaddr + 8)};
|
||||
return {
|
||||
MemoryRead(vaddr, sizeof(u64)),
|
||||
MemoryRead(vaddr + sizeof(u64), sizeof(u64))
|
||||
};
|
||||
}
|
||||
|
||||
void MemoryWrite8(u64 vaddr, u8 value) override {
|
||||
memory[vaddr] = value;
|
||||
void MemoryWrite(Dynarmic::A64::VAddr vaddr, u64 value, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64):
|
||||
MemoryWrite(vaddr, u32(value), sizeof(u32));
|
||||
MemoryWrite(vaddr + 4, u32(value >> 32), sizeof(u32));
|
||||
break;
|
||||
case sizeof(u32):
|
||||
MemoryWrite(vaddr, u16(value), sizeof(u16));
|
||||
MemoryWrite(vaddr + 2, u16(value >> 16), sizeof(u16));
|
||||
break;
|
||||
case sizeof(u16):
|
||||
MemoryWrite(vaddr, u8(value), sizeof(u8));
|
||||
MemoryWrite(vaddr + 1, u8(value >> 8), sizeof(u8));
|
||||
break;
|
||||
case sizeof(u8):
|
||||
memory[vaddr] = value;
|
||||
break;
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
}
|
||||
|
||||
void MemoryWrite16(u64 vaddr, u16 value) override {
|
||||
MemoryWrite8(vaddr, u8(value));
|
||||
MemoryWrite8(vaddr + 1, u8(value >> 8));
|
||||
}
|
||||
|
||||
void MemoryWrite32(u64 vaddr, u32 value) override {
|
||||
MemoryWrite16(vaddr, u16(value));
|
||||
MemoryWrite16(vaddr + 2, u16(value >> 16));
|
||||
}
|
||||
|
||||
void MemoryWrite64(u64 vaddr, u64 value) override {
|
||||
MemoryWrite32(vaddr, u32(value));
|
||||
MemoryWrite32(vaddr + 4, u32(value >> 32));
|
||||
}
|
||||
|
||||
void MemoryWrite128(u64 vaddr, std::array<u64, 2> value) override {
|
||||
MemoryWrite64(vaddr, value[0]);
|
||||
MemoryWrite64(vaddr + 8, value[1]);
|
||||
MemoryWrite(vaddr, value[0], sizeof(u64));
|
||||
MemoryWrite(vaddr + 8, value[1], sizeof(u64));
|
||||
}
|
||||
|
||||
void CallSVC(u32) override {
|
||||
@@ -135,9 +142,9 @@ TEST_CASE("A64: fibonacci", "[a64]") {
|
||||
code.RET();
|
||||
|
||||
for (size_t i = 0; i < 1024; i++) {
|
||||
env.MemoryWrite32(i * 4, instructions[i]);
|
||||
env.MemoryWrite(i * 4, instructions[i], sizeof(u32));
|
||||
}
|
||||
env.MemoryWrite32(8888, 0xd4200000);
|
||||
env.MemoryWrite(8888, 0xd4200000, sizeof(u32));
|
||||
cpu.SetRegister(30, 8888);
|
||||
|
||||
cpu.SetRegister(0, 10);
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "common/assert.h"
|
||||
#include "common/common_types.h"
|
||||
#include "dynarmic/interface/A64/a64.h"
|
||||
#include "dynarmic/interface/A64/config.h"
|
||||
|
||||
using Vector = Dynarmic::A64::Vector;
|
||||
|
||||
@@ -34,64 +35,79 @@ public:
|
||||
return code_mem[index];
|
||||
}
|
||||
|
||||
std::uint8_t MemoryRead8(u64 vaddr) override {
|
||||
if (IsInCodeMem(vaddr)) {
|
||||
return reinterpret_cast<u8*>(code_mem.data())[vaddr - code_mem_start_address];
|
||||
u64 MemoryRead(u64 vaddr, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64):
|
||||
return MemoryRead(vaddr, sizeof(u32))
|
||||
| MemoryRead(vaddr + sizeof(u32), sizeof(u32)) << 32;
|
||||
case sizeof(u32):
|
||||
return MemoryRead(vaddr, sizeof(u16))
|
||||
| MemoryRead(vaddr + sizeof(u16), sizeof(u16)) << 16;
|
||||
case sizeof(u16):
|
||||
return MemoryRead(vaddr, sizeof(u8))
|
||||
| MemoryRead(vaddr + sizeof(u8), sizeof(u8)) << 8;
|
||||
case sizeof(u8): {
|
||||
if (IsInCodeMem(vaddr))
|
||||
return reinterpret_cast<u8*>(code_mem.data())[vaddr - code_mem_start_address];
|
||||
if (auto const it = modified_memory.find(vaddr); it != modified_memory.end())
|
||||
return it->second;
|
||||
return u8(vaddr);
|
||||
}
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
if (auto const it = modified_memory.find(vaddr); it != modified_memory.end())
|
||||
return it->second;
|
||||
return u8(vaddr);
|
||||
}
|
||||
std::uint16_t MemoryRead16(u64 vaddr) override {
|
||||
return u16(MemoryRead8(vaddr)) | u16(MemoryRead8(vaddr + 1)) << 8;
|
||||
}
|
||||
std::uint32_t MemoryRead32(u64 vaddr) override {
|
||||
return u32(MemoryRead16(vaddr)) | u32(MemoryRead16(vaddr + 2)) << 16;
|
||||
}
|
||||
std::uint64_t MemoryRead64(u64 vaddr) override {
|
||||
return u64(MemoryRead32(vaddr)) | u64(MemoryRead32(vaddr + 4)) << 32;
|
||||
}
|
||||
Vector MemoryRead128(u64 vaddr) override {
|
||||
return {MemoryRead64(vaddr), MemoryRead64(vaddr + 8)};
|
||||
}
|
||||
|
||||
void MemoryWrite8(u64 vaddr, std::uint8_t value) override {
|
||||
if (IsInCodeMem(vaddr)) {
|
||||
code_mem_modified_by_guest = true;
|
||||
Vector MemoryRead128(u64 vaddr) override {
|
||||
return {
|
||||
MemoryRead(vaddr, sizeof(u64)),
|
||||
MemoryRead(vaddr + 8, sizeof(u64))
|
||||
};
|
||||
}
|
||||
|
||||
void MemoryWrite(Dynarmic::A64::VAddr vaddr, u64 value, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64):
|
||||
MemoryWrite(vaddr, u32(value), sizeof(u32));
|
||||
MemoryWrite(vaddr + 4, u32(value >> 32), sizeof(u32));
|
||||
break;
|
||||
case sizeof(u32):
|
||||
MemoryWrite(vaddr, u16(value), sizeof(u16));
|
||||
MemoryWrite(vaddr + 2, u16(value >> 16), sizeof(u16));
|
||||
break;
|
||||
case sizeof(u16):
|
||||
MemoryWrite(vaddr, u8(value), sizeof(u8));
|
||||
MemoryWrite(vaddr + 1, u8(value >> 8), sizeof(u8));
|
||||
break;
|
||||
case sizeof(u8):
|
||||
if (IsInCodeMem(vaddr)) {
|
||||
code_mem_modified_by_guest = true;
|
||||
}
|
||||
modified_memory[vaddr] = value;
|
||||
break;
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
modified_memory[vaddr] = value;
|
||||
}
|
||||
void MemoryWrite16(u64 vaddr, std::uint16_t value) override {
|
||||
MemoryWrite8(vaddr, u8(value));
|
||||
MemoryWrite8(vaddr + 1, u8(value >> 8));
|
||||
}
|
||||
void MemoryWrite32(u64 vaddr, std::uint32_t value) override {
|
||||
MemoryWrite16(vaddr, u16(value));
|
||||
MemoryWrite16(vaddr + 2, u16(value >> 16));
|
||||
}
|
||||
void MemoryWrite64(u64 vaddr, std::uint64_t value) override {
|
||||
MemoryWrite32(vaddr, u32(value));
|
||||
MemoryWrite32(vaddr + 4, u32(value >> 32));
|
||||
}
|
||||
void MemoryWrite128(u64 vaddr, Vector value) override {
|
||||
MemoryWrite64(vaddr, value[0]);
|
||||
MemoryWrite64(vaddr + 8, value[1]);
|
||||
MemoryWrite(vaddr, value[0], sizeof(u64));
|
||||
MemoryWrite(vaddr + 8, value[1], sizeof(u64));
|
||||
}
|
||||
|
||||
bool MemoryWriteExclusive8(u64 vaddr, std::uint8_t value, [[maybe_unused]] std::uint8_t expected) override {
|
||||
MemoryWrite8(vaddr, value);
|
||||
MemoryWrite(vaddr, value, sizeof(u8));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive16(u64 vaddr, std::uint16_t value, [[maybe_unused]] std::uint16_t expected) override {
|
||||
MemoryWrite16(vaddr, value);
|
||||
MemoryWrite(vaddr, value, sizeof(u16));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive32(u64 vaddr, std::uint32_t value, [[maybe_unused]] std::uint32_t expected) override {
|
||||
MemoryWrite32(vaddr, value);
|
||||
MemoryWrite(vaddr, value, sizeof(u32));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive64(u64 vaddr, std::uint64_t value, [[maybe_unused]] std::uint64_t expected) override {
|
||||
MemoryWrite64(vaddr, value);
|
||||
MemoryWrite(vaddr, value, sizeof(u64));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive128(u64 vaddr, Vector value, [[maybe_unused]] Vector expected) override {
|
||||
@@ -145,52 +161,46 @@ public:
|
||||
return read<std::uint32_t>(vaddr);
|
||||
}
|
||||
|
||||
std::uint8_t MemoryRead8(u64 vaddr) override {
|
||||
return read<std::uint8_t>(vaddr);
|
||||
}
|
||||
std::uint16_t MemoryRead16(u64 vaddr) override {
|
||||
return read<std::uint16_t>(vaddr);
|
||||
}
|
||||
std::uint32_t MemoryRead32(u64 vaddr) override {
|
||||
return read<std::uint32_t>(vaddr);
|
||||
}
|
||||
std::uint64_t MemoryRead64(u64 vaddr) override {
|
||||
return read<std::uint64_t>(vaddr);
|
||||
u64 MemoryRead(u64 vaddr, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64): return read<u64>(vaddr);
|
||||
case sizeof(u32): return read<u32>(vaddr);
|
||||
case sizeof(u16): return read<u16>(vaddr);
|
||||
case sizeof(u8): return read<u8>(vaddr);
|
||||
default: std::abort();
|
||||
}
|
||||
}
|
||||
Vector MemoryRead128(u64 vaddr) override {
|
||||
return read<Vector>(vaddr);
|
||||
}
|
||||
|
||||
void MemoryWrite8(u64 vaddr, std::uint8_t value) override {
|
||||
write(vaddr, value);
|
||||
}
|
||||
void MemoryWrite16(u64 vaddr, std::uint16_t value) override {
|
||||
write(vaddr, value);
|
||||
}
|
||||
void MemoryWrite32(u64 vaddr, std::uint32_t value) override {
|
||||
write(vaddr, value);
|
||||
}
|
||||
void MemoryWrite64(u64 vaddr, std::uint64_t value) override {
|
||||
write(vaddr, value);
|
||||
void MemoryWrite(u64 vaddr, std::uint64_t value, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64): return write<u64>(vaddr, u64(value));
|
||||
case sizeof(u32): return write<u32>(vaddr, u32(value));
|
||||
case sizeof(u16): return write<u16>(vaddr, u16(value));
|
||||
case sizeof(u8): return write<u8>(vaddr, u8(value));
|
||||
default: std::abort();
|
||||
}
|
||||
}
|
||||
void MemoryWrite128(u64 vaddr, Vector value) override {
|
||||
write(vaddr, value);
|
||||
}
|
||||
|
||||
bool MemoryWriteExclusive8(u64 vaddr, std::uint8_t value, [[maybe_unused]] std::uint8_t expected) override {
|
||||
MemoryWrite8(vaddr, value);
|
||||
MemoryWrite(vaddr, value, sizeof(u8));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive16(u64 vaddr, std::uint16_t value, [[maybe_unused]] std::uint16_t expected) override {
|
||||
MemoryWrite16(vaddr, value);
|
||||
MemoryWrite(vaddr, value, sizeof(u16));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive32(u64 vaddr, std::uint32_t value, [[maybe_unused]] std::uint32_t expected) override {
|
||||
MemoryWrite32(vaddr, value);
|
||||
MemoryWrite(vaddr, value, sizeof(u32));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive64(u64 vaddr, std::uint64_t value, [[maybe_unused]] std::uint64_t expected) override {
|
||||
MemoryWrite64(vaddr, value);
|
||||
MemoryWrite(vaddr, value, sizeof(u64));
|
||||
return true;
|
||||
}
|
||||
bool MemoryWriteExclusive128(u64 vaddr, Vector value, [[maybe_unused]] Vector expected) override {
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <fmt/format.h>
|
||||
#include <fmt/ostream.h>
|
||||
#include <fmt/ranges.h>
|
||||
#include "dynarmic/frontend/A32/translate/translate_callbacks.h"
|
||||
#include "dynarmic/mcl/bit.hpp"
|
||||
#include "common/common_types.h"
|
||||
|
||||
@@ -118,36 +119,47 @@ public:
|
||||
u64 ticks_left = 0;
|
||||
std::map<u32, u8> memory;
|
||||
|
||||
std::uint8_t MemoryRead8(u32 vaddr) override {
|
||||
if (auto iter = memory.find(vaddr); iter != memory.end()) {
|
||||
return iter->second;
|
||||
u64 MemoryRead(Dynarmic::A32::VAddr vaddr, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64):
|
||||
return MemoryRead(vaddr, sizeof(u32))
|
||||
| MemoryRead(vaddr + sizeof(u32), sizeof(u32)) << 32;
|
||||
case sizeof(u32):
|
||||
return MemoryRead(vaddr, sizeof(u16))
|
||||
| MemoryRead(vaddr + sizeof(u16), sizeof(u16)) << 16;
|
||||
case sizeof(u16):
|
||||
return MemoryRead(vaddr, sizeof(u8))
|
||||
| MemoryRead(vaddr + sizeof(u8), sizeof(u8)) << 8;
|
||||
case sizeof(u8): {
|
||||
if (auto const it = memory.find(vaddr); it != memory.end())
|
||||
return it->second;
|
||||
return 0;
|
||||
}
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
std::uint16_t MemoryRead16(u32 vaddr) override {
|
||||
return u16(MemoryRead8(vaddr)) | u16(MemoryRead8(vaddr + 1)) << 8;
|
||||
}
|
||||
std::uint32_t MemoryRead32(u32 vaddr) override {
|
||||
return u32(MemoryRead16(vaddr)) | u32(MemoryRead16(vaddr + 2)) << 16;
|
||||
}
|
||||
std::uint64_t MemoryRead64(u32 vaddr) override {
|
||||
return u64(MemoryRead32(vaddr)) | u64(MemoryRead32(vaddr + 4)) << 32;
|
||||
}
|
||||
|
||||
void MemoryWrite8(u32 vaddr, std::uint8_t value) override {
|
||||
memory[vaddr] = value;
|
||||
}
|
||||
void MemoryWrite16(u32 vaddr, std::uint16_t value) override {
|
||||
MemoryWrite8(vaddr, static_cast<u8>(value));
|
||||
MemoryWrite8(vaddr + 1, static_cast<u8>(value >> 8));
|
||||
}
|
||||
void MemoryWrite32(u32 vaddr, std::uint32_t value) override {
|
||||
MemoryWrite16(vaddr, static_cast<u16>(value));
|
||||
MemoryWrite16(vaddr + 2, static_cast<u16>(value >> 16));
|
||||
}
|
||||
void MemoryWrite64(u32 vaddr, std::uint64_t value) override {
|
||||
MemoryWrite32(vaddr, static_cast<u32>(value));
|
||||
MemoryWrite32(vaddr + 4, static_cast<u32>(value >> 32));
|
||||
void MemoryWrite(Dynarmic::A32::VAddr vaddr, u64 value, size_t size) override {
|
||||
switch (size) {
|
||||
case sizeof(u64):
|
||||
MemoryWrite(vaddr, u32(value), sizeof(u32));
|
||||
MemoryWrite(vaddr + 4, u32(value >> 32), sizeof(u32));
|
||||
break;
|
||||
case sizeof(u32):
|
||||
MemoryWrite(vaddr, u16(value), sizeof(u16));
|
||||
MemoryWrite(vaddr + 2, u16(value >> 16), sizeof(u16));
|
||||
break;
|
||||
case sizeof(u16):
|
||||
MemoryWrite(vaddr, u8(value), sizeof(u8));
|
||||
MemoryWrite(vaddr + 1, u8(value >> 8), sizeof(u8));
|
||||
break;
|
||||
case sizeof(u8):
|
||||
memory[vaddr] = value;
|
||||
break;
|
||||
default:
|
||||
std::abort();
|
||||
}
|
||||
}
|
||||
|
||||
void CallSVC(std::uint32_t swi) override {
|
||||
@@ -231,7 +243,7 @@ void ExecuteA32Instruction(u32 instruction) {
|
||||
if (const auto address = get_value()) {
|
||||
fmt::print("value: ");
|
||||
if (const auto value = get_value()) {
|
||||
env.MemoryWrite32(*address, *value);
|
||||
env.MemoryWrite(*address, *value, sizeof(u32));
|
||||
fmt::print("> mem[{:#08x}] = {:#08x}\n", *address, *value);
|
||||
}
|
||||
}
|
||||
@@ -247,8 +259,8 @@ void ExecuteA32Instruction(u32 instruction) {
|
||||
cpu.SetFpscr(fpscr);
|
||||
|
||||
const u32 initial_pc = regs[15];
|
||||
env.MemoryWrite32(initial_pc + 0, instruction);
|
||||
env.MemoryWrite32(initial_pc + 4, 0xEAFFFFFE); // B +0
|
||||
env.MemoryWrite(initial_pc + 0, instruction, sizeof(u32));
|
||||
env.MemoryWrite(initial_pc + 4, 0xEAFFFFFE, sizeof(u32)); // B +0
|
||||
|
||||
cpu.Run();
|
||||
fmt::print("{}", fmt::join(cpu.Disassemble(), "\n"));
|
||||
|
||||
@@ -290,7 +290,7 @@ bool A32Unicorn<TestEnvironment>::UnmappedMemoryHook(uc_engine* uc, uc_mem_type
|
||||
auto page = std::make_unique<Page>();
|
||||
page->address = base_address;
|
||||
for (size_t i = 0; i < page->data.size(); ++i)
|
||||
page->data[i] = this_->testenv.MemoryRead8(static_cast<u32>(base_address + i));
|
||||
page->data[i] = u8(this_->testenv.MemoryRead(u32(base_address + i), sizeof(u8)));
|
||||
|
||||
uc_err err = uc_mem_map_ptr(uc, base_address, page->data.size(), permissions, page->data.data());
|
||||
if (err == UC_ERR_MAP)
|
||||
@@ -321,24 +321,7 @@ bool A32Unicorn<TestEnvironment>::UnmappedMemoryHook(uc_engine* uc, uc_mem_type
|
||||
template<class TestEnvironment>
|
||||
bool A32Unicorn<TestEnvironment>::MemoryWriteHook(uc_engine* /*uc*/, uc_mem_type /*type*/, u32 start_address, int size, u64 value, void* user_data) {
|
||||
auto* this_ = static_cast<A32Unicorn*>(user_data);
|
||||
|
||||
switch (size) {
|
||||
case 1:
|
||||
this_->testenv.MemoryWrite8(start_address, static_cast<u8>(value));
|
||||
break;
|
||||
case 2:
|
||||
this_->testenv.MemoryWrite16(start_address, static_cast<u16>(value));
|
||||
break;
|
||||
case 4:
|
||||
this_->testenv.MemoryWrite32(start_address, static_cast<u32>(value));
|
||||
break;
|
||||
case 8:
|
||||
this_->testenv.MemoryWrite64(start_address, value);
|
||||
break;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
this_->testenv.MemoryWrite(start_address, value, size);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ bool A64Unicorn::UnmappedMemoryHook(uc_engine* uc, uc_mem_type /*type*/, u64 sta
|
||||
auto page = std::make_unique<Page>();
|
||||
page->address = base_address;
|
||||
for (size_t i = 0; i < page->data.size(); ++i)
|
||||
page->data[i] = this_->testenv.MemoryRead8(base_address + i);
|
||||
page->data[i] = u8(this_->testenv.MemoryRead(base_address + i, sizeof(u8)));
|
||||
|
||||
uc_err err = uc_mem_map_ptr(uc, base_address, page->data.size(), permissions, page->data.data());
|
||||
if (err == UC_ERR_MAP)
|
||||
@@ -227,23 +227,6 @@ bool A64Unicorn::UnmappedMemoryHook(uc_engine* uc, uc_mem_type /*type*/, u64 sta
|
||||
|
||||
bool A64Unicorn::MemoryWriteHook(uc_engine* /*uc*/, uc_mem_type /*type*/, u64 start_address, int size, u64 value, void* user_data) {
|
||||
auto* this_ = static_cast<A64Unicorn*>(user_data);
|
||||
|
||||
switch (size) {
|
||||
case 1:
|
||||
this_->testenv.MemoryWrite8(start_address, static_cast<u8>(value));
|
||||
break;
|
||||
case 2:
|
||||
this_->testenv.MemoryWrite16(start_address, static_cast<u16>(value));
|
||||
break;
|
||||
case 4:
|
||||
this_->testenv.MemoryWrite32(start_address, static_cast<u32>(value));
|
||||
break;
|
||||
case 8:
|
||||
this_->testenv.MemoryWrite64(start_address, value);
|
||||
break;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
||||
this_->testenv.MemoryWrite(start_address, value, size);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ if (MSVC)
|
||||
)
|
||||
else()
|
||||
target_compile_options(hid_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>)
|
||||
|
||||
@@ -44,7 +44,7 @@ if (MSVC)
|
||||
/we4800 # Implicit conversion from 'type' to bool. Possible information loss
|
||||
)
|
||||
else()
|
||||
target_compile_options(input_common PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>)
|
||||
target_compile_options(input_common PRIVATE $<$<COMPILE_LANGUAGE:C,CXX>:-Wconversion>)
|
||||
endif()
|
||||
|
||||
if (ANDROID)
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
@@ -157,8 +160,8 @@ Common::ParamPackage Android::BuildButtonParamPackageForButton(PadIdentifier ide
|
||||
|
||||
bool Android::MatchVID(Common::UUID device, const std::vector<std::string>& vids) const {
|
||||
for (size_t i = 0; i < vids.size(); ++i) {
|
||||
auto fucker = device.RawString();
|
||||
if (fucker.find(vids[i]) != std::string::npos) {
|
||||
auto dev_str = device.RawString();
|
||||
if (dev_str.find(vids[i]) != std::string::npos) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -648,6 +648,13 @@ SDLDriver::SDLDriver(std::string input_engine_) : InputEngine(std::move(input_en
|
||||
// Disable raw input. When enabled this setting causes SDL to die when a web applet opens
|
||||
SDL_SetHint(SDL_HINT_JOYSTICK_RAWINPUT, Settings::values.enable_raw_input ? "1" : "0");
|
||||
|
||||
#ifdef _WIN32
|
||||
if (Settings::values.disable_wgi_xinput) {
|
||||
SDL_SetHintWithPriority(SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT, "0", SDL_HINT_OVERRIDE);
|
||||
SDL_SetHintWithPriority(SDL_HINT_JOYSTICK_WGI, "0", SDL_HINT_OVERRIDE);
|
||||
}
|
||||
#endif
|
||||
|
||||
// SDL3 defaults Steam Controller Bluetooth HIDAPI support to off, which can disable gyro.
|
||||
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_STEAM, "1");
|
||||
SDL_SetHint(SDL_HINT_GAMECONTROLLER_SENSOR_FUSION, "1");
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user