mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-15 13:16:43 +00:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f359a957d7 | |||
| 412d7c4667 | |||
| 6e3e5ba2a4 | |||
| 2519329760 |
@@ -1,9 +1,9 @@
|
||||
name: tx-pull
|
||||
|
||||
on:
|
||||
# monday at 4pm
|
||||
# tuesday, saturday at 2pm
|
||||
schedule:
|
||||
- cron: '0 16 * * 1'
|
||||
- cron: '0 14 * * 2,6'
|
||||
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 Eden.
|
||||
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.
|
||||
- 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://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/user/HowToAccessLogs.md).
|
||||
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).
|
||||
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 Eden 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 yuzu 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 Eden better.
|
||||
description: A brief description of why this feature would make yuzu better.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@@ -19,7 +19,6 @@ log.txt
|
||||
# Generated source files
|
||||
src/common/scm_rev.cpp
|
||||
dist/english_plurals/generated_en.ts
|
||||
*-toolchain.cmake
|
||||
|
||||
# Project/editor files
|
||||
*.swp
|
||||
|
||||
+15
-29
@@ -28,23 +28,23 @@ if (NOT DEFINED ARCHITECTURE)
|
||||
endif()
|
||||
|
||||
# Needed for FFmpeg w/ VAAPI and DRM
|
||||
if (OPENBSD)
|
||||
if (PLATFORM_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 (NETBSD)
|
||||
elseif (PLATFORM_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 (NETBSD)
|
||||
if (PLATFORM_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 "LINUX" OFF)
|
||||
cmake_dependent_option(YUZU_STATIC_ROOM "Build a static room executable only (CI only)" OFF "PLATFORM_LINUX" OFF)
|
||||
if (YUZU_STATIC_ROOM)
|
||||
set(YUZU_ROOM ON)
|
||||
set(YUZU_ROOM_STANDALONE ON)
|
||||
@@ -79,7 +79,6 @@ 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))
|
||||
@@ -158,19 +157,6 @@ 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)
|
||||
@@ -224,7 +210,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" "${SOLARIS}" "NOT WIN32 AND NOT ANDROID" OFF)
|
||||
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from external source" "${PLATFORM_SUN}" "NOT WIN32 AND NOT ANDROID" OFF)
|
||||
|
||||
# sirit
|
||||
set(BUNDLED_SIRIT_DEFAULT OFF)
|
||||
@@ -235,7 +221,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 LINUX OR FREEBSD OR APPLE" OFF)
|
||||
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_OPENGL "Enable OpenGL" ON "NOT (WIN32 AND ARCHITECTURE_arm64) AND NOT APPLE" OFF)
|
||||
mark_as_advanced(FORCE ENABLE_OPENGL)
|
||||
@@ -249,7 +235,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 "LINUX" OFF)
|
||||
cmake_dependent_option(YUZU_INSTALL_UDEV_RULES "Install udev rules for gyro access" OFF "PLATFORM_LINUX" OFF)
|
||||
|
||||
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
|
||||
|
||||
@@ -262,7 +248,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 LINUX" OFF)
|
||||
cmake_dependent_option(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR PLATFORM_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")
|
||||
@@ -272,7 +258,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 SOLARIS OR OPENBSD)
|
||||
if (EXT_DEFAULT OR PLATFORM_SUN OR PLATFORM_OPENBSD)
|
||||
set(DEFAULT_YUZU_USE_BUNDLED_OPENSSL ON)
|
||||
endif()
|
||||
|
||||
@@ -295,7 +281,7 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/hooks/pre-commit AND NOT EXISTS ${PROJECT_SOURCE
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (ARCHITECTURE_arm64 AND (ANDROID OR LINUX))
|
||||
if (ARCHITECTURE_arm64 AND (ANDROID OR PLATFORM_LINUX))
|
||||
set(HAS_NCE 1)
|
||||
add_compile_definitions(HAS_NCE=1)
|
||||
endif()
|
||||
@@ -304,7 +290,7 @@ if (YUZU_ROOM)
|
||||
add_compile_definitions(YUZU_ROOM)
|
||||
endif()
|
||||
|
||||
if (UNIX AND NOT (LINUX OR WIN32))
|
||||
if (UNIX AND NOT (PLATFORM_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")
|
||||
@@ -418,7 +404,7 @@ if (Boost_ADDED)
|
||||
|
||||
if (NOT MSVC OR CXX_CLANG)
|
||||
# boost sucks
|
||||
if (SOLARIS)
|
||||
if (PLATFORM_SUN)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-pthreads>)
|
||||
endif()
|
||||
|
||||
@@ -522,9 +508,9 @@ elseif (WIN32)
|
||||
# PSAPI is the Process Status API
|
||||
set(PLATFORM_LIBRARIES ${PLATFORM_LIBRARIES} psapi imm32 version crypt32 rpcrt4 gdi32 wldap32 mswsock)
|
||||
endif()
|
||||
elseif (MANAGARM)
|
||||
elseif (PLATFORM_MANAGARM)
|
||||
set(PLATFORM_LIBRARIES iconv intl)
|
||||
elseif (HAIKUOS)
|
||||
elseif (PLATFORM_HAIKU)
|
||||
# Haiku is so special :)
|
||||
set(PLATFORM_LIBRARIES bsd /boot/system/lib/libnetwork.so)
|
||||
elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|kFreeBSD|GNU|SunOS)$")
|
||||
@@ -618,7 +604,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 (LINUX OR FREEBSD)
|
||||
if (PLATFORM_LINUX OR PLATFORM_FREEBSD)
|
||||
list(APPEND YUZU_QT_COMPONENTS DBus)
|
||||
# yes Qt, we get it
|
||||
set(QT_NO_PRIVATE_MODULE_WARNING ON)
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
set(CROSS_TARGET "powerpc64le" CACHE STRING "Cross-compilation target (aarch64, powerpc64le, riscv64, etc)")
|
||||
|
||||
set(CMAKE_SYSROOT /usr/${CROSS_TARGET}-unknown-linux-gnu)
|
||||
|
||||
set(CMAKE_C_COMPILER ${CROSS_TARGET}-unknown-linux-gnu-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${CROSS_TARGET}-unknown-linux-gnu-g++)
|
||||
|
||||
# search programs in the host environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
|
||||
# search headers and libraries in the target environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH /usr/${CROSS_TARGET}-unknown-linux-gnu)
|
||||
@@ -13,7 +13,7 @@ find_package_handle_standard_args(Opus
|
||||
VERSION_VAR OPUS_VERSION
|
||||
)
|
||||
|
||||
if (MSYS2)
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::OPUS)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ find_package_handle_standard_args(enet
|
||||
VERSION_VAR ENET_VERSION
|
||||
)
|
||||
|
||||
if (MSYS2)
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::ENET)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ find_package_handle_standard_args(libusb
|
||||
VERSION_VAR LIBUSB_VERSION
|
||||
)
|
||||
|
||||
if (MSYS2)
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::LIBUSB)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ else()
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(LZ4 QUIET IMPORTED_TARGET liblz4)
|
||||
|
||||
if (MSYS2)
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::LZ4)
|
||||
endif()
|
||||
|
||||
|
||||
+2
-6
@@ -21,14 +21,10 @@ 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/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.
|
||||
- For details on why, see the [detailed AI policy](docs/AI.md).
|
||||
- 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 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.
|
||||
- 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!
|
||||
- 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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>ملف تعريف جديد</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>أدخل اسم ملف التعريف:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>إنشاء ملف تعريف الإدخال</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<source>The given profile name is not valid!</source>
|
||||
<translation>اسم ملف التعريف المحدد غير صالح!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<source>Failed to create the input profile "%1"</source>
|
||||
<translation>"%1" فشل في إنشاء ملف تعريف الإدخال</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>حذف ملف تعريف الإدخال</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<source>Failed to delete the input profile "%1"</source>
|
||||
<translation>"%1" فشل في مسح ملف تعريف الإدخال</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>تحميل ملف تعريف الإدخال</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<source>Failed to load the input profile "%1"</source>
|
||||
<translation>"%1" فشل في تحميل ملف تعريف الإدخال</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>حفظ ملف تعريف الإدخال</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL غير متوفر!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>OpenGL لا يتم دعم السياقات المشتركة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>OpenGL لم يتم تجميع إيدن بدعم</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>OpenGL حدث خطأ أثناء تهيئة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>OpenGL 4.6 حدث خطأ أثناء تهيئة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Hat %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2زر %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Nou perfil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<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="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Crear perfil d'entrada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Eliminar perfil d'entrada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Carregar perfil d'entrada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Guardar perfil d'entrada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL no disponible!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Error al inicialitzar OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Error inicialitzant OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Rotació %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Botó %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Nový profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Zadejte název profilu:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Vytvořit profil vstupu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Odstranit profil vstupu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Načíst profil vstupu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Uložit profil vstupu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL není k dispozici!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Chyba při inicializaci OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_input_player.cpp" line="239"/>
|
||||
<source>%1%2Axis %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Ny Profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Indtast et profilnavn:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Opret Input-Profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Slet Input-Profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Indlæs Input-Profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Gem Input-Profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_input_player.cpp" line="239"/>
|
||||
<source>%1%2Axis %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Neues Profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Profilnamen eingeben:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Eingabeprofil erstellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Eingabeprofil löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Eingabeprofil laden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Eingabeprofil speichern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL nicht verfügbar!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<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="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Fehler beim Initialisieren von OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Hat %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Knopf %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Νέο Προφίλ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Εισαγάγετε ένα όνομα προφίλ:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Δημιουργία Προφίλ Χειρισμού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<source>The given profile name is not valid!</source>
|
||||
<translation>Το όνομα του προφίλ δεν είναι έγκυρο!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<source>Failed to create the input profile "%1"</source>
|
||||
<translation>Η δημιουργία του προφίλ χειρισμού "%1" απέτυχε</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Διαγραφή Προφίλ Χειρισμού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<source>Failed to delete the input profile "%1"</source>
|
||||
<translation>Η διαγραφή του προφίλ χειρισμού "%1" απέτυχε</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Φόρτωση Προφίλ Χειρισμού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<source>Failed to load the input profile "%1"</source>
|
||||
<translation>Η φόρτωση του προφίλ χειρισμού "%1" απέτυχε</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Αποθήκευση Προφίλ Χειρισμού</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>Το OpenGL δεν είναι διαθέσιμο!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Σφάλμα κατα την αρχικοποίηση του OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_input_player.cpp" line="239"/>
|
||||
<source>%1%2Axis %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Nuevo perfil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<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="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Crear perfil de entrada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Eliminar perfil de entrada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Cargar perfil de entrada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Guardar perfil de entrada</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>¡OpenGL no está disponible!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<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="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>¡Error al inicializar OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Rotación %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Botón %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<source>The given profile name is not valid!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<source>Failed to create the input profile "%1"</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<source>Failed to delete the input profile "%1"</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<source>Failed to load the input profile "%1"</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>openGL ei ole saatavilla!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Virhe käynnistäessä OpenGL ydintä!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_input_player.cpp" line="239"/>
|
||||
<source>%1%2Axis %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Nouveau Profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<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="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<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="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<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="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<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="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<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="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL n'est pas disponible !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<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="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Erreur lors de l'initialisation d'OpenGL !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Chapeau %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Bouton %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Új profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<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="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Beviteli profil létrehozása</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Beviteli profil törlése</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Beviteli profil betöltése</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Beviteli profil mentése</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL nem elérhető!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<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="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Gomb %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Profil Baru</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Masukkan nama profil:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Ciptakan Profil Masukan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Hapus Profil Masukan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Muat Profil Masukan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Simpat Profil Masukan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL tidak tersedia!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Terjadi kesalahan menginisialisasi OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_input_player.cpp" line="239"/>
|
||||
<source>%1%2Axis %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Nuovo profilo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Inserisci un nome profilo:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Crea un profilo di input</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Elimina un profilo di input</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Carica un profilo di input</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Salva un profilo di Input</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL non disponibile!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<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="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Errore durante l'inizializzazione di OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Freccia %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Pulsante %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>新規プロファイル</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>プロファイル名を入力:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>入力プロファイルを作成</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<source>The given profile name is not valid!</source>
|
||||
<translation>プロファイル名が無効です!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<source>Failed to create the input profile "%1"</source>
|
||||
<translation>入力プロファイル "%1" の作成に失敗しました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>入力プロファイルを削除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<source>Failed to delete the input profile "%1"</source>
|
||||
<translation>入力プロファイル "%1" の削除に失敗しました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>入力プロファイルをロード</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<source>Failed to load the input profile "%1"</source>
|
||||
<translation>入力プロファイル "%1" のロードに失敗しました</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>入力プロファイルをセーブ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGLは使用できません!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>OpenGL初期化エラー</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>OpenGL4.6初期化エラー!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_input_player.cpp" line="239"/>
|
||||
<source>%1%2Axis %3</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2ボタン %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>새 프로필</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>프로필 이름을 입력하세요:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>입력 프로필 생성</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<source>The given profile name is not valid!</source>
|
||||
<translation>해당 프로필 이름은 사용할 수 없습니다!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<source>Failed to create the input profile "%1"</source>
|
||||
<translation>"%1" 입력 프로필 생성 실패</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>입력 프로필 삭제</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<source>Failed to delete the input profile "%1"</source>
|
||||
<translation>"%1" 입력 프로필 삭제 실패</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>입력 프로필 불러오기</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<source>Failed to load the input profile "%1"</source>
|
||||
<translation>"%1" 입력 프로필 불러오기 실패</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>입력 프로필 저장</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL을 사용할 수 없습니다!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>OpenGL 공유 컨텍스트는 지원되지 않습니다.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden은 OpenGL 지원 기능을 포함하여 컴파일되지 않았습니다.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>OpenGL을 초기화하는 동안 오류가 발생했습니다!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>OpenGL 4.6 초기화 중 오류 발생!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2방향키 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2버튼 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Ny profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Skriv inn et profilnavn:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Opprett inndataprofil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Slett inndataprofil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Last inn inndataprofil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Lagre inndataprofil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL ikke tilgjengelig!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Feil under initialisering av OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Hat %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Knapp %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Nieuw Profiel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Voer een profielnaam in:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Maak Invoerprofiel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Verwijder Invoerprofiel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Laad Invoerprofiel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Sla Invoerprofiel op</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL niet beschikbaar!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Fout tijdens het initialiseren van OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Hat %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Knop %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Nowy profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Wpisz nazwę profilu:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Utwórz profil wejściowy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Usuń profil wejściowy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Załaduj profil wejściowy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Zapisz profil wejściowy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL niedostępny!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<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="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Błąd podczas inicjowania OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Drążek %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Przycisk %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Novo Perfil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<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="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Criar perfil de controlo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Apagar Perfil de Controlo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Carregar perfil de controlo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Salvar perfil de controle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL não está disponível!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<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="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Erro ao inicializar OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Direcional %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Botão %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Novo Perfil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<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="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Criar perfil de controlo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Apagar Perfil de Controlo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Carregar perfil de controlo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Guardar perfil de controlo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL não está disponível!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Erro ao inicializar OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Direcional %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Botão %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Новый профиль</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Введите имя профиля:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Создать профиль управления</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<source>The given profile name is not valid!</source>
|
||||
<translation>Заданное имя профиля недействительно!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<source>Failed to create the input profile "%1"</source>
|
||||
<translation>Не удалось создать профиль управления "%1"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Удалить профиль управления</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<source>Failed to delete the input profile "%1"</source>
|
||||
<translation>Не удалось удалить профиль управления "%1"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Загрузить профиль управления</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<source>Failed to load the input profile "%1"</source>
|
||||
<translation>Не удалось загрузить профиль управления "%1"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Сохранить профиль управления</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL не доступен!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Общие контексты OpenGL не поддерживаются.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden не был скомпилирован с поддержкой OpenGL.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Ошибка при инициализации OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Ошибка при инициализации OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Крест. %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Кнопка %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Ny profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Ange ett profilnamn:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Skapa inmatningsprofil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Radera inmatningsprofil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Läs in inmatningsprofil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Spara inmatningsprofil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL är inte tillgängligt!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<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="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Fel vid initiering av OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Hatt %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Knapp %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Yeni Profil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Bir profil ismi girin:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Kontrol Profili Oluştur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Kontrol Profilini Kaldır</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Kontrol Profilini Yükle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Kontrol Profilini Kaydet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL kullanıma uygun değil!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<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="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Hat %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Tuş %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Новий профіль</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>Введіть назву профілю:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>Створити профіль введення</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<source>The given profile name is not valid!</source>
|
||||
<translation>Задана назва профілю неправильна!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<source>Failed to create the input profile "%1"</source>
|
||||
<translation>Не вдалося створити профіль введення «%1»</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>Видалити профіль введення</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<source>Failed to delete the input profile "%1"</source>
|
||||
<translation>Не вдалося видалити профіль введення «%1»</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>Завантажити профіль введення</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<source>Failed to load the input profile "%1"</source>
|
||||
<translation>Не вдалося завантажити профіль введення «%1»</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>Зберегти профіль введення</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL недоступний!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Спільні контексти OpenGL не підтримуються.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden не скомпільовано з підтримкою OpenGL.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Помилка під час ініціалізації OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Помилка під час ініціалізації OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Напр. %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Кнопка %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Hồ sơ mới</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<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="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<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="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<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="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<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="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<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="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL không khả dụng!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<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="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Mũ %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Nút %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>Hồ sơ mới</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<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="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<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="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<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="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<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="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<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="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<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="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<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="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<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="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<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="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>Không có sẵn OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<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="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<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="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<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="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Mũ %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2Nút %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>新建自定义设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>输入配置文件名称:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>新建输入配置文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<source>The given profile name is not valid!</source>
|
||||
<translation>输入的配置文件名称无效!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<source>Failed to create the input profile "%1"</source>
|
||||
<translation>新建输入配置文件 "%1" 失败</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>删除输入配置文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<source>Failed to delete the input profile "%1"</source>
|
||||
<translation>删除输入配置文件 "%1" 失败</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>加载输入配置文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<source>Failed to load the input profile "%1"</source>
|
||||
<translation>加载输入配置文件 "%1" 失败</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>保存输入配置文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL 模式不可用!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>不支持 OpenGL 共享上下文。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden 尚未编译为支持 OpenGL。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>初始化 OpenGL 时出错!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>初始化 OpenGL 4.6 时出错!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2方向键 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2按键 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<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="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>New Profile</source>
|
||||
<translation>新增設定檔</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1578"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1576"/>
|
||||
<source>Enter a profile name:</source>
|
||||
<translation>輸入設定檔名稱:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1586"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1594"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
|
||||
<source>Create Input Profile</source>
|
||||
<translation>建立輸入設定檔</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1587"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
|
||||
<source>The given profile name is not valid!</source>
|
||||
<translation>輸入的設定檔名稱無效!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1595"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1593"/>
|
||||
<source>Failed to create the input profile "%1"</source>
|
||||
<translation>建立輸入設定檔「%1」失敗</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1615"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1613"/>
|
||||
<source>Delete Input Profile</source>
|
||||
<translation>刪除輸入設定檔</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1616"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1614"/>
|
||||
<source>Failed to delete the input profile "%1"</source>
|
||||
<translation>刪除輸入設定檔「%1」失敗</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1638"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1636"/>
|
||||
<source>Load Input Profile</source>
|
||||
<translation>載入輸入設定檔</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1639"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1637"/>
|
||||
<source>Failed to load the input profile "%1"</source>
|
||||
<translation>載入輸入設定檔「%1」失敗</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1664"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1662"/>
|
||||
<source>Save Input Profile</source>
|
||||
<translation>儲存輸入設定檔</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1665"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1663"/>
|
||||
<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="850"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="867"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="845"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="862"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>無法使用 OpenGL 模式!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="851"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="846"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>不支援 OpenGL 共用的上下文。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="868"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="863"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="892"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="910"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="920"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="887"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="905"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="915"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>初始化 OpenGL 時發生錯誤!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="893"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="888"/>
|
||||
<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="902"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="897"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>初始化 OpenGL 4.6 時發生錯誤!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="903"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="898"/>
|
||||
<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="911"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="906"/>
|
||||
<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="921"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="916"/>
|
||||
<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="396"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="462"/>
|
||||
<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_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="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_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_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="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_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_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="406"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="405"/>
|
||||
<source>%1%2</source>
|
||||
<translation>%1%2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="410"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="409"/>
|
||||
<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="420"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="444"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="419"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
|
||||
<source>%1%2Hat %3</source>
|
||||
<translation>%1%2Hat 控制器 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<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_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_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="430"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="429"/>
|
||||
<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="434"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="433"/>
|
||||
<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="438"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="453"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
|
||||
<source>%1%2Button %3</source>
|
||||
<translation>%1%2按鈕 %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="480"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="479"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="269"/>
|
||||
<source>[unused]</source>
|
||||
<translation>[未使用]</translation>
|
||||
|
||||
+1
-137
@@ -2,122 +2,7 @@
|
||||
|
||||
General guide for cross compiling.
|
||||
|
||||
## Gentoo
|
||||
|
||||
Gentoo's cross-compilation setup is relatively easy, provided you're already familiar with portage.
|
||||
|
||||
### Crossdev
|
||||
|
||||
First, emerge crossdev via `sudo emerge -a sys-devel/crossdev`.
|
||||
|
||||
Now, set up the environment depending on the target architecture; e.g.
|
||||
|
||||
```sh
|
||||
sudo crossdev powerpc64le
|
||||
sudo crossdev aarch64
|
||||
```
|
||||
|
||||
### QEMU
|
||||
|
||||
Installing a qemu user setup is recommended for testing. To do so, you will need the relevant USE flags:
|
||||
|
||||
```sh
|
||||
app-emulation/qemu static-user qemu_user_targets_ppc64le qemu_user_targets_aarch64
|
||||
```
|
||||
|
||||
Note that to use cross-emerged libraries, you will need to tell qemu where the sysroot is. You can do this with an alias:
|
||||
|
||||
```sh
|
||||
alias qemu-ppc64le="qemu-ppc64le -L /usr/powerpc64le-unknown-linux-gnu"
|
||||
alias qemu-aarch64="qemu-aarch64 -L /usr/aarch64-unknown-linux-gnu"
|
||||
```
|
||||
|
||||
### Dependencies
|
||||
|
||||
Some packages have broken USE flags on other architectures; you'll also need to set up python targets. In `/usr/<target>-unknown-linux-gnu/etc/portage/package.use`:
|
||||
|
||||
```sh
|
||||
>=net-misc/curl-8.16.0-r1 ssl
|
||||
|
||||
*/* PYTHON_TARGETS: python3_13 PYTHON_SINGLE_TARGET: python3_13
|
||||
*/* pam
|
||||
|
||||
sys-apps/util-linux pam su
|
||||
app-shells/bash -readline
|
||||
>=dev-libs/libpcre2-10.47 unicode
|
||||
>=x11-libs/libxkbcommon-1.12.3 X
|
||||
>=sys-libs/zlib-1.3.1-r1 minizip
|
||||
>=app-alternatives/gpg-1-r3 ssl
|
||||
>=app-crypt/gnupg-2.5.13-r2 ssl
|
||||
|
||||
dev-libs/* -introspection
|
||||
media-libs/harfbuzz -introspection
|
||||
dev-libs/quazip -qt5 qt6
|
||||
```
|
||||
|
||||
Dependencies should be about the same [as normal Gentoo](./Deps.md), but removing gamemode and renderdoc is recommended. Keep in mind that when emerging, you want to use `emerge-<target>-unknown-linux-gnu`, e.g. `emerge-powerpc64le-unknown-linux-gnu`.
|
||||
|
||||
Enable GURU in the cross environment (as root):
|
||||
|
||||
```sh
|
||||
mkdir -p /usr/powerpc64le-unknown-linux-gnu/etc/portage/repos.conf
|
||||
cat << EOF > /usr/powerpc64le-unknown-linux-gnu/etc/portage/repos.conf/guru.conf
|
||||
[guru]
|
||||
location = /var/db/repos/guru
|
||||
auto-sync = no
|
||||
priority = 1
|
||||
EOF
|
||||
```
|
||||
|
||||
Now emerge your dependencies:
|
||||
|
||||
```sh
|
||||
sudo emerge-powerpc64le-unknown-linux-gnu -aU app-arch/lz4 app-arch/zstd app-arch/unzip \
|
||||
dev-libs/libfmt dev-libs/libusb dev-libs/mcl dev-libs/sirit dev-libs/oaknut \
|
||||
dev-libs/unordered_dense dev-libs/boost dev-libs/openssl dev-libs/discord-rpc \
|
||||
dev-util/spirv-tools dev-util/spirv-headers dev-util/vulkan-headers \
|
||||
dev-util/vulkan-utility-libraries dev-util/glslang \
|
||||
media-libs/libva media-libs/opus media-video/ffmpeg \
|
||||
media-libs/VulkanMemoryAllocator media-libs/libsdl2 media-libs/cubeb \
|
||||
net-libs/enet net-libs/mbedtls \
|
||||
sys-libs/zlib \
|
||||
dev-cpp/nlohmann_json dev-cpp/simpleini dev-cpp/cpp-httplib dev-cpp/cpp-jwt dev-cpp/catch \
|
||||
net-wireless/wireless-tools \
|
||||
dev-qt/qtbase:6 dev-libs/quazip \
|
||||
virtual/pkgconfig
|
||||
```
|
||||
|
||||
### Building
|
||||
|
||||
A toolchain is provided in `CMakeModules/GentooCross.cmake`. To use it:
|
||||
|
||||
```sh
|
||||
cmake -S . -B build/ppc64 -DCMAKE_TOOLCHAIN_FILE=CMakeModules/GentooCross.cmake -G Ninja -DCROSS_TARGET=powerpc64le -DENABLE_OPENGL=OFF
|
||||
```
|
||||
|
||||
Now build as normal:
|
||||
|
||||
```sh
|
||||
cmake --build build/ppc64 -j$(nproc)
|
||||
```
|
||||
|
||||
### Alternatively
|
||||
|
||||
Only emerge the absolute necessities:
|
||||
|
||||
```sh
|
||||
sudo emerge-powerpc64le-unknown-linux-gnu -aU media-video/ffmpeg media-libs/libsdl2 dev-qt/qtbase:6
|
||||
```
|
||||
|
||||
Then set `YUZU_USE_CPM=ON`:
|
||||
|
||||
```sh
|
||||
cmake -S . -B build/ppc64 -DCMAKE_TOOLCHAIN_FILE=CMakeModules/GentooCross.cmake -G Ninja -DCROSS_TARGET=powerpc64le -DENABLE_OPENGL=OFF -DYUZU_USE_CPM=ON
|
||||
```
|
||||
|
||||
## ARM64
|
||||
|
||||
### Debian ARM64
|
||||
## Debian ARM64
|
||||
|
||||
A painless guide for cross compilation (or to test NCE) from a x86_64 system without polluting your main.
|
||||
|
||||
@@ -203,24 +88,3 @@ And finally, run the compiled executable with QEMU!
|
||||
```sh
|
||||
qemu-aarch64 build/aarch64/bin/eden
|
||||
```
|
||||
|
||||
## PowerPC
|
||||
|
||||
This is a guide for FreeBSD users mainly.
|
||||
|
||||
Now you got a PowerPC sysroot - quickly decompress it somewhere, say `/home/user/opt/powerpc64le`. Create a toolchain file, for example `powerpc64le-toolchain.cmake`; always [consult the manual](https://man.freebsd.org/cgi/man.cgi?query=cmake-toolchains&sektion=7&manpath=FreeBSD+13.2-RELEASE+and+Ports).
|
||||
|
||||
There is a script to automatically do all of this under `./tools/setup-cross-sysroot.sh`.
|
||||
|
||||
Remember to add `-mabi=elfv1` to `CFLAGS`/`CXXFLAGS` otherwise the program will crash.
|
||||
|
||||
Specify:
|
||||
|
||||
- `YUZU_USE_CPM`: Set this to `ON` so packages can be found and built if your sysroot doesn't have them.
|
||||
- `YUZU_USE_EXTERNAL_FFMPEG`: Set this to `ON` as well.
|
||||
|
||||
Then run using a program such as QEMU to emulate userland syscalls:
|
||||
|
||||
```sh
|
||||
cmake --build build-ppc64-pc-freebsd -t dynarmic_tests -- -j8 && qemu-ppc64-static -L $HOME/opt/ppc64-freebsd/sysroot ./build-ppc64-pc-freebsd/bin/dynarmic_tests
|
||||
```
|
||||
|
||||
@@ -46,8 +46,6 @@ These options control dependencies.
|
||||
- `YUZU_INSTALL_UDEV_RULES` (OFF) Install udev rules to enable hidraw access
|
||||
- Needed for gyroscopes
|
||||
- Only available on Linux
|
||||
- `ENABLE_DEBUG_TOOLS` (OFF) Enables debugging and development tools, see [tools](../tools/README.md).
|
||||
- `ENABLE_WERROR` (ON) Enables warnings as errors (-Werror).
|
||||
|
||||
### Flavors
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
# PowerPC 64 backend
|
||||
|
||||
The ppc64 backend currently only supports the little endian variant, with big endian support being experimental for the time being. Additionally only A32 is supported (for now).
|
||||
|
||||
- Flag handling: Flags are emulated via software, while there may be some funny tricks with the CTR, I'd rather not bother - plus it's widely known that those instructions are not nice on real metal - so I would rather take the i-cache cost.
|
||||
- 128-bit atomics: No 128-bit atomic support is provided, this may cause wrong or erroneous execution in some contexts.
|
||||
|
||||
To handle endianess differences all 16/32/64-bit loads and stores to the "emulated memory" are byteswapped beforehand.
|
||||
@@ -35,7 +35,6 @@ There are no plans to support v1 or v2.
|
||||
|
||||
* x86-64
|
||||
* AArch64
|
||||
* PowerPC 64 (POWER 4 and up)
|
||||
|
||||
There are no plans to support any 32-bit architecture.
|
||||
|
||||
@@ -51,7 +50,6 @@ Documentation
|
||||
-------------
|
||||
|
||||
Design documentation can be found at [./Design.md](./Design.md).
|
||||
PowerPC design documentation can be found at [./PowerPC](./PowerPC.md).
|
||||
|
||||
|
||||
Usage Example
|
||||
|
||||
@@ -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.
|
||||
- Function parameters are cheap. Don't be afraid to use as many as needed (API usability permitting).
|
||||
- Remember function parameters are extremelly cheap as fuck, don't be afraid to place upto 8 parameters on a given function.
|
||||
- Don't save a reference in structures of a parent object, i.e:
|
||||
|
||||
```c++
|
||||
|
||||
Vendored
+1
-6
@@ -164,7 +164,7 @@ if (NOT ANDROID)
|
||||
AddJsonPackage(sdl3)
|
||||
else()
|
||||
message(STATUS "Using bundled SDL3")
|
||||
if (FREEBSD)
|
||||
if (PLATFORM_FREEBSD)
|
||||
set(BUILD_SHARED_LIBS ON)
|
||||
endif()
|
||||
AddJsonPackage(sdl3-ci)
|
||||
@@ -254,11 +254,6 @@ endif()
|
||||
# TZDB (Time Zone Database)
|
||||
add_subdirectory(nx_tzdb)
|
||||
|
||||
# PowerPC emitter
|
||||
if (ARCHITECTURE_powerpc64)
|
||||
add_subdirectory(powah)
|
||||
endif()
|
||||
|
||||
add_library(tz tz/tz/tz.cpp)
|
||||
target_include_directories(tz PUBLIC ./tz)
|
||||
|
||||
|
||||
+2
-2
@@ -166,7 +166,7 @@ detect_architecture_symbols(
|
||||
"_M_MRX000")
|
||||
|
||||
detect_architecture_symbols(
|
||||
ARCH powerpc64
|
||||
ARCH ppc64
|
||||
SYMBOLS
|
||||
"__ppc64__"
|
||||
"__powerpc64__"
|
||||
@@ -174,7 +174,7 @@ detect_architecture_symbols(
|
||||
"_M_PPC64")
|
||||
|
||||
detect_architecture_symbols(
|
||||
ARCH powerpc
|
||||
ARCH ppc
|
||||
SYMBOLS
|
||||
"__ppc__"
|
||||
"__ppc"
|
||||
|
||||
+80
-23
@@ -1,46 +1,45 @@
|
||||
# SPDX-FileCopyrightText: Copyright 2026 crueter
|
||||
# SPDX-FileCopyrightText: Copyright 2025 crueter
|
||||
# SPDX-License-Identifier: LGPL-3.0-or-later
|
||||
|
||||
## DetectPlatform ##
|
||||
|
||||
# This is a small helper that sets platform variables for various
|
||||
# This is a small helper that sets PLATFORM_<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(SOLARIS ON)
|
||||
set(PLATFORM_SUN ON)
|
||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "OpenOrbis")
|
||||
set(OPENORBIS ON)
|
||||
set(PLATFORM_PS4 ON)
|
||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "managarm")
|
||||
set(MANAGARM ON)
|
||||
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)
|
||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Haiku")
|
||||
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()
|
||||
set(PLATFORM_HAIKU ON)
|
||||
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||
set(PLATFORM_LINUX ON)
|
||||
endif()
|
||||
|
||||
# dumb heuristic to detect msys2
|
||||
if (CMAKE_COMMAND MATCHES "msys64")
|
||||
set(MSYS2 ON)
|
||||
set(PLATFORM_MSYS ON)
|
||||
endif()
|
||||
|
||||
# compiler checks
|
||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
set(CXX_CLANG ON)
|
||||
if (MSVC)
|
||||
@@ -48,6 +47,8 @@ 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")
|
||||
@@ -60,13 +61,37 @@ 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 (MSYS2)
|
||||
if (PLATFORM_MSYS)
|
||||
FixMsysPath(PkgConfig::OPUS)
|
||||
endif()
|
||||
]]
|
||||
@@ -91,9 +116,41 @@ function(FixMsysPath target)
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${include_dir})
|
||||
endfunction()
|
||||
|
||||
# Saves linking time
|
||||
# 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
|
||||
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 (OPENORBIS OR MANAGARM)
|
||||
if (PLATFORM_PS4 OR PLATFORM_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(SOLARIS)
|
||||
if(PLATFORM_SUN)
|
||||
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 (OPENORBIS)
|
||||
if (PLATFORM_PS4)
|
||||
list(APPEND FFmpeg_CROSS_COMPILE_LIBS
|
||||
-lkernel
|
||||
-lSceUserService
|
||||
@@ -172,7 +172,7 @@ if (OPENORBIS)
|
||||
--extra-cxxflags=${CMAKE_SYSROOT}/usr/include
|
||||
--extra-libs="${FFmpeg_CROSS_COMPILE_LIBS}"
|
||||
)
|
||||
elseif (MANAGARM)
|
||||
elseif (PLATFORM_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 (LINUX OR ANDROID OR APPLE OR WIN32 OR FREEBSD)
|
||||
if (PLATFORM_LINUX OR ANDROID OR APPLE OR WIN32 OR PLATFORM_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 LINUX OR APPLE)
|
||||
if (MINGW OR PLATFORM_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
-10
@@ -1,10 +0,0 @@
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
add_library(powah INTERFACE)
|
||||
target_include_directories(powah INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
target_compile_options(powah INTERFACE -Wno-unused-parameter)
|
||||
|
||||
add_executable(powah_tests tests.cpp)
|
||||
create_target_directory_groups(powah_tests)
|
||||
target_link_libraries(powah_tests PRIVATE Catch2::Catch2WithMain)
|
||||
Vendored
-145
@@ -1,145 +0,0 @@
|
||||
vabsdub,VX,04,1027
|
||||
vabsduh,VX,04,1091
|
||||
vabsduw,VX,04,1155
|
||||
vaddcuw,VX,04,384
|
||||
vaddfp,VX,04,10
|
||||
vaddsbs,VX,04,768
|
||||
vaddshs,VX,04,832
|
||||
vaddsws,VX,04,896
|
||||
vaddubm,VX,04,0
|
||||
vaddubs,VX,04,512
|
||||
vadduhm,VX,04,64
|
||||
vadduhs,VX,04,576
|
||||
vadduwm,VX,04,128
|
||||
vadduws,VX,04,640
|
||||
vand,VX,04,1028
|
||||
vandc,VX,04,1092
|
||||
vavgsb,VX,04,1282
|
||||
vavgsh,VX,04,1346
|
||||
vavgsw,VX,04,1410
|
||||
vavgub,VX,04,1026
|
||||
vavguh,VX,04,1090
|
||||
vavguw,VX,04,1154
|
||||
vcfsx,VDU,04842
|
||||
vcfux,VDU,04778
|
||||
vcmpbfp,VXR,04,966
|
||||
vcmpeqfp,VXR,04,198
|
||||
vcmpequb,VXR,04,6
|
||||
vcmpequh,VXR,04,70
|
||||
vcmpequw,VXR,04,134
|
||||
vcmpgefp,VXR,04,454
|
||||
vcmpgtfp,VXR,04,710
|
||||
vcmpgtsb,VXR,04,774
|
||||
vcmpgtsh,VXR,04,838
|
||||
vcmpgtsw,VXR,04,902
|
||||
vcmpgtub,VXR,04,518
|
||||
vcmpgtuh,VXR,04,582
|
||||
vcmpgtuw,VXR,04,646
|
||||
vctsxs,VDU,04970
|
||||
vctuxs,VDU,04906
|
||||
vexptefp,VY,04,394
|
||||
vlogefp,VY,04,458
|
||||
vmaddfp,VXC,46
|
||||
vmaxfp,VX,04,1034
|
||||
vmaxsb,VX,04,258
|
||||
vmaxsh,VX,04,322
|
||||
vmaxsw,VX,04,386
|
||||
vmaxub,VX,04,2
|
||||
vmaxuh,VX,04,66
|
||||
vmaxuw,VX,04,130
|
||||
vmhaddshs,VXC,32
|
||||
vmhraddshs,VXC,33
|
||||
vminfp,VX,04,1098
|
||||
vminsb,VX,04,770
|
||||
vminsh,VX,04,834
|
||||
vminsw,VX,04,898
|
||||
vminub,VX,04,514
|
||||
vminuh,VX,04,578
|
||||
vminuw,VX,04,642
|
||||
vmladduhm,VXC,34
|
||||
vmrghb,VX,04,12
|
||||
vmrghh,VX,04,76
|
||||
vmrghw,VX,04,140
|
||||
vmrglb,VX,04,268
|
||||
vmrglh,VX,04,332
|
||||
vmrglw,VX,04,396
|
||||
vmsummbm,VXC,37
|
||||
vmsumshm,VXC,40
|
||||
vmsumshs,VXC,41
|
||||
vmsumubm,VXC,36
|
||||
vmsumuhm,VXC,38
|
||||
vmsumuhs,VXC,39
|
||||
vmulesb,VX,04,776
|
||||
vmulesh,VX,04,840
|
||||
vmuleub,VX,04,520
|
||||
vmuleuh,VX,04,584
|
||||
vmulosb,VX,04,264
|
||||
vmulosh,VX,04,328
|
||||
vmuloub,VX,04,8
|
||||
vmulouh,VX,04,72
|
||||
vnmsubfp,VXC,47
|
||||
vnor,VX,04,1284
|
||||
vor,VX,04,1156
|
||||
vperm,VXC,43
|
||||
vpkpx,VX,04,782
|
||||
vpkshss,VX,04,398
|
||||
vpkshus,VX,04,270
|
||||
vpkswss,VX,04,462
|
||||
vpkswus,VX,04,334
|
||||
vpkuhum,VX,04,14
|
||||
vpkuhus,VX,04,142
|
||||
vpkuwum,VX,04,78
|
||||
vpkuwus,VX,04,206
|
||||
vrefp,VY,04,266
|
||||
vrfim,VY,04,714
|
||||
vrfin,VY,04,522
|
||||
vrfip,VY,04,650
|
||||
vrfiz,VY,04,586
|
||||
vrlb,VX,04,4
|
||||
vrlh,VX,04,68
|
||||
vrlw,VX,04,132
|
||||
vrsqrtefp,VY,04,330
|
||||
vsel,VXC,42
|
||||
vsl,VX,04,452
|
||||
vslb,VX,04,260
|
||||
vsldoi,VX,04,/ SH 44
|
||||
vslh,VX,04,324
|
||||
vslo,VX,04,1036
|
||||
vslw,VX,04,388
|
||||
vspltb,VU,04,524
|
||||
vsplth,VU,04,588
|
||||
vspltisb,VS,04,780
|
||||
vspltish,VS,04,844
|
||||
vspltisw,VS,04,908
|
||||
vspltw,VSU,04,652
|
||||
vsr,VX,04,708
|
||||
vsrab,VX,04,772
|
||||
vsrah,VX,04,836
|
||||
vsraw,VX,04,900
|
||||
vsrb,VX,04,516
|
||||
vsrh,VX,04,580
|
||||
vsro,VX,04,1100
|
||||
vsrw,VX,04,644
|
||||
vsubcuw,VX,04,1408
|
||||
vsubfp,VX,04,74
|
||||
vsubsbs,VX,04,1792
|
||||
vsubshs,VX,04,1856
|
||||
vsubsws,VX,04,1920
|
||||
vsububm,VX,04,1024
|
||||
vsububs,VX,04,1536
|
||||
vsubuhm,VX,04,1088
|
||||
vsubuhs,VX,04,1600
|
||||
vsubuwm,VX,04,1152
|
||||
vsubuws,VX,04,1664
|
||||
vsumsws,VX,04,1928
|
||||
vsum2sws,VX,04,1672
|
||||
vsum4sbs,VX,04,1800
|
||||
vsum4shs,VX,04,1608
|
||||
vsum4ubs,VX,04,1544
|
||||
vupkhpx,VY,04,846
|
||||
vupkhsb,VY,04,526
|
||||
vupkhsh,VY,04,590
|
||||
vupklpx,VY,04,974
|
||||
vupklsb,VY,04,654
|
||||
vupklsh,VY,04,718
|
||||
vxor,VX,04,122
|
||||
Vendored
-6
@@ -1,6 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
$CC data2code.c -o data2code && ./data2code data.txt >powah_gen_base.hpp
|
||||
$CC --target=powerpc64le test.S -c -o test && objdump -SC test
|
||||
Vendored
-222
@@ -1,222 +0,0 @@
|
||||
add[o][.],Add,XO,31,266
|
||||
addc[o][.],Add Carrying,XO,31,10
|
||||
adde[o][.],Add Extended,XO,31,138
|
||||
addi,Add Immediate,D,14,
|
||||
addic,Add Immediate Carrying,D,12,
|
||||
addic.,Add Immediate Carrying and Record,D,13,
|
||||
addis,Add Immediate Shifted,D,15,
|
||||
addme[o][.],Add to Minus One Extended,XO,31,234
|
||||
addze[o][.],Add to Zero Extended,XO,31,202
|
||||
and[.],AND,X,31,28
|
||||
andc[.],AND with Complement,X,31,60
|
||||
andi.,AND Immediate,D,28,
|
||||
andis.,AND Immediate Shifted,D,29,
|
||||
b[l][a],Branch,I,18,
|
||||
bc[l][a],Branch Conditional,B,16,
|
||||
bcctr[l],Branch Conditional to Count Register,XL,19,528
|
||||
bclr[l],Branch Conditional Link Register,XL,19,16
|
||||
cmp,Compare,X,31,0
|
||||
cmpi,Compare Immediate,D,11,
|
||||
cmpl,Compare Logical,X,31,32
|
||||
cmpli,Compare Logical Immediate,D,10,
|
||||
cntlzd,Count Leading Zeros Doubleword,X,31,58
|
||||
cntlzw[.],Count Leading Zeros Word,X,31,26
|
||||
crand,Condition Register AND,XL,19,257
|
||||
crandc,Condition Register AND with Complement,XL,19,129
|
||||
creqv,Condition Register Equivalent,XL,19,289
|
||||
crnand,Condition Register NAND,XL,19,225
|
||||
crnor,Condition Register NOR,XL,19,33
|
||||
cror,Condition Register OR,XL,19,449
|
||||
crorc,Condition Register OR with Complement,XL,19,417
|
||||
crxor,Condition Register XOR,XL,19,193
|
||||
dcbf,Data Cache Block Flush,X,31,86
|
||||
dcbi,Data Cache Block Invalidate,X,31,470
|
||||
dcbst,Data Cache Block Store,X,31,54
|
||||
dcbt,Data Cache Block Touch,X,31,278
|
||||
dcbtst,Data Cache Block Touch for Store,X,31,246
|
||||
dcbz,Data Cache Block Set to Zero,X,31,1014
|
||||
divd,Divide Doubleword,XO,31,489
|
||||
divdu,Divide Doubleword Unsigned,XO,31,457
|
||||
divw[o][.],Divide Word,XO,31,491
|
||||
divwu[o][.],Divide Word Unsigned,XO,31,459
|
||||
eciwx,External Control in Word Indexed (opt.),X,31,310
|
||||
ecowx,External Control out Word Indexed (opt.),X,31,438
|
||||
eieio,Enforce In-order Execution of I/O,X,31,854
|
||||
eqv[.],Equivalent,X,31,284
|
||||
extsb[.],Extend Sign Byte,X,31,954
|
||||
extsh[.],Extend Sign Halfword,XO,31,922
|
||||
extsw,Extend Sign Word,X,31,986
|
||||
fabs[.],Floating Absolute Value,X,63,264
|
||||
fadd[.],Floating Add,A,63,21
|
||||
fadds[.],Floating Add Single,A,59,21
|
||||
fcfid,Floating Convert from Integer Doubleword,X,63,846
|
||||
fcmpo,Floating Compare Ordered,X,63,32
|
||||
fcmpu,Floating Compare Unordered,XL,63,0
|
||||
fctid,Floating Convert to Integer Doubleword,X,63,814
|
||||
fctidz,Floating Convert to Integer Doubleword with Round Toward Zero,X,63,815
|
||||
fctiw[.],Floating Convert to Integer Word,X,63,14
|
||||
fctiwz[.],Floating Convert to Integer Word with Round to Zero,XL,63,15
|
||||
fdiv[.],Floating Divide,A,63,18
|
||||
fdivs[.],Floating Divide Single,A,59,18
|
||||
fmadd[.],Floating Multiply-Add,A,63,29
|
||||
fmadds[.],Floating Multiply-Add Single,A,59,29
|
||||
fmr[.],Floating Move Register,X,63,72
|
||||
fmsub[.],Floating Multiply-Subtract,A,63,28
|
||||
fmsubs[.],Floating Multiply-Subtract Single,A,59,28
|
||||
fmul[.],Floating Multiply,A,63,25
|
||||
fmuls[.],Floating Multiply Single,A,59,25
|
||||
fnabs[.],Floating Negative Absolute Value,X,63,136
|
||||
fneg[.],Floating Negate,X,63,40
|
||||
fnmadd[.],Floating Negative Multiply-Add,A,63,31
|
||||
fnmadds[.],Floating Negative Multiply-Add Single,A,59,31
|
||||
fnmsub[.],Floating Negative Multiply-Subtract,A,63,30
|
||||
fnmsubs[.],Floating Negative Multiply-Subtract Single,A,59,30
|
||||
fres[.],Floating Reciprocal Estimate Single (optional),A,59,24
|
||||
frsp[.],Floating Round to Single Precision,X,63,12
|
||||
frsqrte[.],Floating Reciprocal Square Root Estimate (optional),A,63,26
|
||||
fsel[.],Floating-Point Select (optional),A,63,23
|
||||
fsub[.],Floating Subtract,A,63,20
|
||||
fsubs[.],Floating Subtract Single,A,59,20
|
||||
icbi,Instruction Cache Block Invalidate,X,31,982
|
||||
isync,Instruction Synchronize,X,19,150
|
||||
lbz,Load Byte and Zero,D,34,
|
||||
lbzu,Load Byte and Zero with Update,D,35,
|
||||
lbzux,Load Byte and Zero with Update Indexed,X,31,119
|
||||
lbzx,Load Byte and Zero Indexed,X,31,87
|
||||
ld,Load Doubleword,DS,58,0
|
||||
ldarx,Load Doubleword and Reserve Indexed,X,31,84
|
||||
ldu,Load Doubleword with Update,DS,58,1
|
||||
ldux,Load Doubleword with Update Indexed,X,31,53
|
||||
ldx,Load Doubleword Indexed,X,31,21
|
||||
lfd,Load Floating-Point Double,D,50,
|
||||
lfdu,Load Floating-Point Double with Update,D,51,
|
||||
lfdux,Load Floating-Point Double with Update Indexed,X,31,631
|
||||
lfdx,Load Floating-Point Double Indexed,X,31,599
|
||||
lfs,Load Floating-Point Single,D,48,
|
||||
lfsu,Load Floating-Point Single with Update,D,49,
|
||||
lfsux,Load Floating-Point Single with Update Indexed,X,31,567
|
||||
lfsx,Load Floating-Point Single Indexed,X,31,535
|
||||
lha,Load Half Algebraic,D,42,
|
||||
lhau,Load Half Algebraic with Update,D,43,
|
||||
lhaux,Load Half Algebraic with Update Indexed,X,31,375
|
||||
lhax,Load Half Algebraic Indexed,X,31,343
|
||||
lhbrx,Load Half Byte-Reversed Indexed,X,31,790
|
||||
lhz,Load Half and Zero,D,40,
|
||||
lhzu,Load Half and Zero with Update,D,41,
|
||||
lhzux,Load Half and Zero with Update Indexed,X,31,331
|
||||
lhzx,Load Half and Zero Indexed,X,31,279
|
||||
lmw,Load Multiple Word,D,46,
|
||||
lswi,Load String Word Immediate,X,31,597
|
||||
lswx,Load String Word Indexed,X,31,533
|
||||
lwa,Load Word Algebraic,DS,58,2
|
||||
lwarx,Load Word and Reserve Indexed,X,31,20
|
||||
lwaux,Load Word Algebraic with Update Indexed,X,31,373
|
||||
lwax,Load Word Algebraic Indexed,X,31,341
|
||||
lwbrx,Load Word Byte-Reversed Indexed,X,31,534
|
||||
lwz,Load Word and Zero,D,32,
|
||||
lwzu,Load Word with Zero Update,D,33,
|
||||
lwzux,Load Word and Zero with Update Indexed,X,31,55
|
||||
lwzx,Load Word and Zero Indexed,X,31,23
|
||||
mcrf,Move Condition Register Field,XL,19,0
|
||||
mcrfs,Move to Condition Register from FPSCR,X,63,64
|
||||
mcrxr,Move to Condition Register from XER,X,31,512
|
||||
mfcr,Move from Condition Register,X,31,19
|
||||
mffs[.],Move from FPSCR,X,63,583
|
||||
mfmsr,Move from Machine State Register,X,31,83
|
||||
mfspr,Move from Special-Purpose Register,X,31,339
|
||||
mfsr,Move from Segment Register,X,31,595
|
||||
mfsrin,Move from Segment Register Indirect,X,31,659
|
||||
mtcrf,Move to Condition Register Fields,XFX,31,144
|
||||
mtfsb0[.],Move to FPSCR Bit 0,X,63,70
|
||||
mtfsb1[.],Move to FPSCR Bit 1,X,63,38
|
||||
mtfsf[.],Move to FPSCR Fields,XFL,63,711
|
||||
mtfsfi[.],Move to FPSCR Field Immediate,X,63,134
|
||||
mtmsr,Move to Machine State Register,X,31,146
|
||||
mtspr,Move to Special-Purpose Register,X,31,467
|
||||
mtsr,Move to Segment Register,X,31,210
|
||||
mtsrin,Move to Segment Register Indirect,X,31,242
|
||||
mulhd,Multiply High Doubleword,XO,31,73
|
||||
mulhdu,Multiply High Doubleword Unsigned,XO,31,9
|
||||
mulhw[.],Multiply High Word,XO,31,75
|
||||
mulhwu[.],Multiply High Word Unsigned,XO,31,11
|
||||
mulld,Multiply Low Doubleword,XO,31,233
|
||||
mulli,Multiply Low Immediate,D,07,
|
||||
mullw[o][.],Multiply Low Word,XO,31,235
|
||||
nand[.],NAND,X,31,476
|
||||
neg[o][.],Negate,XO,31,104
|
||||
nor[.],NOR,X,31,124
|
||||
or[.],OR,X,31,444
|
||||
orc[.],OR with Complement,X,31,412
|
||||
ori,OR Immediate,D,24,
|
||||
oris,OR Immediate Shifted,D,25,
|
||||
rfi,Return from Interrupt,X,19,50
|
||||
rldcl,Rotate Left Doubleword then Clear Left,MDS,30,8
|
||||
rldcr,Rotate Left Doubleword then Clear Right,MDS,30,9
|
||||
rldic,Rotate Left Doubleword Immediate then Clear,MD,30,2
|
||||
rldicl,Rotate Left Doubleword Immediate then Clear Left,MD,30,0
|
||||
rldicr,Rotate Left Doubleword Immediate then Clear Right,MD,30,1
|
||||
rldimi,Rotate Left Doubleword Immediate then Mask Insert,MD,30,3
|
||||
rlwimi[.],Rotate Left Word Immediate then Mask Insert,M,20,
|
||||
rlwinm[.],Rotate Left Word Immediate then AND with Mask,M,21,
|
||||
rlwnm[.],Rotate Left Word then AND with Mask,M,23,
|
||||
sc,System Call,SC,17,
|
||||
si,Subtract Immediate,D,12,
|
||||
si.,Subtract Immediate and Record,D,13,
|
||||
slbia,SLB Invalidate All,X,31,498
|
||||
slbie,SLB Invalidate Entry,X,31,434
|
||||
sld,Shift Left Doubleword,X,31,27
|
||||
slw[.],Shift Left Word,X,31,24
|
||||
srad,Shift Right Algebraic Doubleword,X,31,794
|
||||
sradi,Shift Right Algebraic Doubleword Immediate,XS,31,413
|
||||
srd,Shift Right Doubleword,X,31,539
|
||||
sraw[.],Shift Right Algebraic Word,X,31,792
|
||||
srawi[.],Shift Right Algebraic Word Immediate,X,31,824
|
||||
srw[.],Shift Right Word,X,31,536
|
||||
stb,Store Byte,D,38,
|
||||
stbu,Store Byte with Update,D,39,
|
||||
stbux,Store Byte with Update Indexed,X,31,247
|
||||
stbx,Store Byte Indexed,X,31,215
|
||||
std,Store Doubleword,DS,62,0
|
||||
stdcx,Store Doubleword Conditional Indexed,X,31,214
|
||||
stdu,Store Doubleword with Update,DS,62,1
|
||||
stdux,Store Doubleword with Update Indexed,X,31,181
|
||||
stdx,Store Doubleword Indexed,X,31,149
|
||||
stfd,Store Floating-Point Double,D,54,
|
||||
stfdu,Store Floating-Point Double with Update,D,55,
|
||||
stfdux,Store Floating-Point Double with Update Indexed,X,31,759
|
||||
stfdx,Store Floating-Point Double Indexed,X,31,727
|
||||
stfiwx,Store Floating-Point as Integer Word Indexed (optional),X,31,983
|
||||
stfs,Store Floating-Point Single,D,52,
|
||||
stfsu,Store Floating-Point Single with Update,D,53,
|
||||
stfsux,Store Floating-Point Single with Update Indexed,X,31,695
|
||||
stfsx,Store Floating-Point Single Indexed,X,31,663
|
||||
sth,Store Half,D,44,
|
||||
sthbrx,Store Half Byte-Reverse Indexed,X,31,918
|
||||
sthu,Store Half with Update,D,45,
|
||||
sthux,Store Half with Update Indexed,X,31,439
|
||||
sthx,Store Half Indexed,X,31,407
|
||||
stmw,Store Multiple Word,D,47,
|
||||
stswi,Store String Word Immediate,X,31,725
|
||||
stswx,Store String Word Indexed,X,31,661
|
||||
stw,Store,D,36,
|
||||
stwbrx,Store Word Byte-Reversed Indexed,X,31,662
|
||||
stwcx.,Store Word Conditional Indexed,X,31,150
|
||||
stwu,Store Word with Update,D,37,
|
||||
stwux,Store Word with Update Indexed,X,31,183
|
||||
stwx,Store Word Indexed,X,31,151
|
||||
subf[o][.],Subtract from,XO,31,40
|
||||
subfc[o][.],Subtract from Carrying,XO,31,08
|
||||
subfe[o][.],Subtract from Extended,XO,31,136
|
||||
subfic,Subtract from Immediate Carrying,D,08,
|
||||
subfme[o][.],Subtract from Minus One Extended,XO,31,232
|
||||
subfze[o][.],Subtract from Zero Extended,XO,31,200
|
||||
sync,Synchronize,X,31,598
|
||||
td,Trap Doubleword,X,31,68
|
||||
tdi,Trap Doubleword Immediate,D,2,
|
||||
tlbie,Translation Look-aside Buffer Invalidate Entry (optional),X,31,306
|
||||
tlbsync,Translation Look-aside Buffer Synchronize (optional),X,31,566
|
||||
tw,Trap Word,X,31,04
|
||||
twi,Trap Word Immediate,D,03,
|
||||
xor[.],XOR,X,31,316
|
||||
xori,XOR Immediate,D,26,
|
||||
xoris,XOR Immediate Shift,D,27,
|
||||
Vendored
-343
@@ -1,343 +0,0 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <stdbool.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
int main(int argc, char *argv[]) {
|
||||
printf(
|
||||
"// this file is autogenerated DO NOT MODIFY\n"
|
||||
"#pragma once\n"
|
||||
);
|
||||
FILE* fp = fopen(argv[1], "rt");
|
||||
if (fp) {
|
||||
char line[80];
|
||||
while (fgets(line, sizeof line, fp) != NULL) {
|
||||
bool with_o = strstr(line, "[o]"), with_d = strstr(line, "[.]");
|
||||
char* p = strchr(line, '\n'), *name = strchr(line, ','), *mem = line;
|
||||
if (p) *p = '\0';
|
||||
if (name) {
|
||||
*name++ = '\0';
|
||||
char *form = strchr(name, ',');
|
||||
if (form) {
|
||||
*form++ = '\0';
|
||||
char *opc = strchr(form, ',');
|
||||
if (opc) {
|
||||
*opc++ = '\0';
|
||||
char *sec = strchr(opc, ',');
|
||||
if (sec) {
|
||||
struct b_info { const char *s; int o; int p; } infos[] = {
|
||||
{"",1,0},
|
||||
{"LT",1,12},
|
||||
{"LE",2,4},
|
||||
{"NG",2,4},
|
||||
{"EQ",3,12},
|
||||
{"GE",1,4},
|
||||
{"NL",1,4},
|
||||
{"GT",2,12},
|
||||
{"NE",3,4},
|
||||
{"SO",4,12},
|
||||
{"UN",4,12},
|
||||
{"NS",4,4},
|
||||
{"NU",4,4},
|
||||
};
|
||||
#define OP_EXT ((i_opcode << 26) | (i_extopc << 1))
|
||||
if (strchr(mem, '[') != NULL) *strchr(mem, '[') = '\0';
|
||||
if (strchr(mem, '.') != NULL) *strchr(mem, '.') = '_';
|
||||
*sec++ = '\0';
|
||||
for (int i = 0; i < strlen(mem); ++i)
|
||||
mem[i] = toupper(mem[i]);
|
||||
int i_opcode = atoi(opc);
|
||||
int i_extopc = atoi(sec);
|
||||
//printf("// %s\n", mem);
|
||||
if (!strcmp(form, "XO")) {
|
||||
if (!strcmp(mem, "EXTSH")) {
|
||||
printf(
|
||||
"void %s(GPR const rt, GPR const ra) {"
|
||||
" emit_%s(0x%08x, rt, ra, R0, false, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %sC(GPR const rt, GPR const ra) {"
|
||||
" emit_%s(0x%08x, rt, ra, R0, true, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %s_(GPR const rt, GPR const ra) {"
|
||||
" emit_%s(0x%08x, rt, ra, R0, false, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %sC_(GPR const rt, GPR const ra) {"
|
||||
" emit_%s(0x%08x, rt, ra, R0, true, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
} else {
|
||||
printf(
|
||||
"void %s(GPR const rt, GPR const ra, GPR const rb) {"
|
||||
" emit_%s(0x%08x, rt, ra, rb, false, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %sO(GPR const rt, GPR const ra, GPR const rb) {"
|
||||
" emit_%s(0x%08x, rt, ra, rb, true, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %s_(GPR const rt, GPR const ra, GPR const rb) {"
|
||||
" emit_%s(0x%08x, rt, ra, rb, false, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %sO_(GPR const rt, GPR const ra, GPR const rb) {"
|
||||
" emit_%s(0x%08x, rt, ra, rb, true, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
}
|
||||
} else if (!strcmp(form, "X")) {
|
||||
if (!strcmp(mem, "CMPL") || !strcmp(mem, "CMP")) {
|
||||
printf(
|
||||
"void %s(uint32_t bf, uint32_t l, GPR const ra, GPR const rb) {"
|
||||
" emit_%s(0x%08x, GPR{(bf << 2) | l}, ra, rb, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
} else if (!strcmp(mem, "CNTLZD") || !strcmp(mem, "CNTLZW") || !strcmp(mem, "EXTSB") || !strcmp(mem, "EXTSH") || !strcmp(mem, "EXTSW")) {
|
||||
printf(
|
||||
"void %s(GPR const rt, GPR const ra) {"
|
||||
" emit_%s(0x%08x, ra, rt, R0, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %s_(GPR const rt, GPR const ra) {"
|
||||
" emit_%s(0x%08x, ra, rt, R0, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
} else {
|
||||
printf(
|
||||
"void %s(GPR const rt, GPR const ra, GPR const rb) {"
|
||||
" emit_%s(0x%08x, ra, rt, rb, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %s_(GPR const rt, GPR const ra, GPR const rb) {"
|
||||
" emit_%s(0x%08x, ra, rt, rb, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
}
|
||||
} else if (!strcmp(form, "I")) {
|
||||
printf(
|
||||
"void %s(Label const& i) {"
|
||||
" emit_reloc_%s(0x%08x, i, false); "
|
||||
"}\n"
|
||||
, mem, form, i_opcode << 26);
|
||||
printf(
|
||||
"void %sL(Label const& i) {"
|
||||
" emit_reloc_%s(0x%08x, i, true); "
|
||||
"}\n"
|
||||
, mem, form, i_opcode << 26);
|
||||
} else if (!strcmp(form, "B")) {
|
||||
for (int i = 0; i < 12; ++i) {
|
||||
printf(
|
||||
"void %s%s(CPR const cr, Label const& i) {"
|
||||
" emit_reloc_%s(0x%08x, %i, cr.index + %i, i, false); "
|
||||
"}\n"
|
||||
, mem, infos[i].s, form, i_opcode << 26, infos[i].p, infos[i].o - 1);
|
||||
printf(
|
||||
"void %s%sL(CPR const cr, Label const& i) {"
|
||||
" emit_reloc_%s(0x%08x, %i, cr.index + %i, i, true); "
|
||||
"}\n"
|
||||
, mem, infos[i].s, form, i_opcode << 26, infos[i].p, infos[i].o - 1);
|
||||
if (!strcmp(mem, "BC")) mem[1] = '\0';
|
||||
}
|
||||
} else if (!strcmp(form, "D")) {
|
||||
if (!strcmp(mem, "CMPLI") || !strcmp(mem, "CMPI")) {
|
||||
printf(
|
||||
"void %s(uint32_t bf, uint32_t l, GPR const ra, uint32_t d) {"
|
||||
" emit_%s(0x%08x, GPR{(bf << 2) | l}, ra, d); "
|
||||
"}\n"
|
||||
, mem, form, i_opcode << 26);
|
||||
} else if (!strcmp(mem, "ANDIS_") || !strcmp(mem, "ANDI_")
|
||||
|| !strcmp(mem, "ORI") || !strcmp(mem, "ORIS")
|
||||
|| !strcmp(mem, "XORI") || !strcmp(mem, "XORIS")) {
|
||||
printf(
|
||||
"void %s(GPR const rt, GPR const ra, uint32_t d) {"
|
||||
" emit_%s(0x%08x, ra, rt, d); "
|
||||
"}\n"
|
||||
, mem, form, i_opcode << 26);
|
||||
} else {
|
||||
printf(
|
||||
"void %s(GPR const rt, GPR const ra, uint32_t d) {"
|
||||
" emit_%s(0x%08x, rt, ra, d); "
|
||||
"}\n"
|
||||
, mem, form, i_opcode << 26);
|
||||
}
|
||||
} else if (!strcmp(form, "SC")) {
|
||||
printf(
|
||||
"void %s(uint32_t lev) {"
|
||||
" emit_%s(0x%08x, lev); "
|
||||
"}\n"
|
||||
, mem, form, i_opcode << 26);
|
||||
} else if (!strcmp(form, "DS")) {
|
||||
#define OP_EXT_DS ((i_opcode << 26) | (i_extopc << 0))
|
||||
printf(
|
||||
"void %s(GPR const rt, GPR const ra, uint32_t d) {"
|
||||
" emit_%s(0x%08x, rt, ra, d >> 2); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT_DS);
|
||||
#undef OP_EXT_DS
|
||||
} else if (!strcmp(form, "XS")) {
|
||||
#define OP_EXT_XS ((i_opcode << 26) | (i_extopc << 2))
|
||||
/* HUGE DIFFERENCE DO NOT REMOVE */
|
||||
printf(
|
||||
"void %s(GPR const rt, GPR const ra, uint32_t sh) {"
|
||||
" emit_%s(0x%08x, rt, ra, sh, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT_XS);
|
||||
printf(
|
||||
"void %s_(GPR const rt, GPR const ra, uint32_t sh) {"
|
||||
" emit_%s(0x%08x, rt, ra, sh, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT_XS);
|
||||
#undef OP_EXT_XS
|
||||
} else if (!strcmp(form, "XL")) {
|
||||
if (!strcmp(mem, "BCLR")) {
|
||||
printf(
|
||||
"void %s(GPR const bt, CPR const ba, GPR const bb) {"
|
||||
" emit_%s(0x%08x, bt.index, ba.index, bb.index, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %sL(GPR const bt, CPR const ba, GPR const bb) {"
|
||||
" emit_%s(0x%08x, bt.index, ba.index, bb.index, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
if (!strcmp(mem, "BCLR")) mem[1] = '\0';
|
||||
for (int i = 1; i < 12; ++i) {
|
||||
printf(
|
||||
"void %s%sLR(CPR const cr) {"
|
||||
" emit_%s(0x%08x, %i, cr.index + %i, 0, false); "
|
||||
"}\n"
|
||||
, mem, infos[i].s, form, OP_EXT, infos[i].p, infos[i].o - 1);
|
||||
printf(
|
||||
"void %s%sLRL(CPR const cr) {"
|
||||
" emit_%s(0x%08x, %i, cr.index + %i, 0, true); "
|
||||
"}\n"
|
||||
, mem, infos[i].s, form, OP_EXT, infos[i].p, infos[i].o - 1);
|
||||
}
|
||||
} else if (mem[0] == 'B') {
|
||||
printf(
|
||||
"void %s(GPR const bt, CPR const ba, GPR const bb) {"
|
||||
" emit_%s(0x%08x, bt.index, ba.index, bb.index, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %sL(GPR const bt, CPR const ba, GPR const bb) {"
|
||||
" emit_%s(0x%08x, bt.index, ba.index, bb.index, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %s(GPR const bt, Cond const ba, GPR const bb) {"
|
||||
" emit_%s(0x%08x, bt.index, cond2offset(ba), bb.index, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %sL(GPR const bt, Cond const ba, GPR const bb) {"
|
||||
" emit_%s(0x%08x, bt.index, cond2offset(ba), bb.index, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
} else {
|
||||
printf(
|
||||
"void %s(CPR const bt, CPR const ba, CPR const bb) {"
|
||||
" emit_%s(0x%08x, bt.index, ba.index, bb.index, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %sL(CPR const bt, CPR const ba, CPR const bb) {"
|
||||
" emit_%s(0x%08x, bt.index, ba.index, bb.index, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
}
|
||||
} else if (!strcmp(form, "M")) {
|
||||
if (!strcmp(mem, "RLWNM")) {
|
||||
printf(
|
||||
"void %s(GPR const rs, GPR const ra, GPR const rb, uint32_t mb, uint32_t me = 0) {"
|
||||
" emit_%s(0x%08x, ra, rs, rb.index, mb, me, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %s_(GPR const rs, GPR const ra, GPR const rb, uint32_t mb, uint32_t me = 0) {"
|
||||
" emit_%s(0x%08x, ra, rs, rb.index, mb, me, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
} else {
|
||||
printf(
|
||||
"void %s(GPR const rs, GPR const ra, uint32_t sh, uint32_t mb, uint32_t me = 0) {"
|
||||
" emit_%s(0x%08x, ra, rs, sh, mb, me, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %s_(GPR const rs, GPR const ra, uint32_t sh, uint32_t mb, uint32_t me = 0) {"
|
||||
" emit_%s(0x%08x, ra, rs, sh, mb, me, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
}
|
||||
} else if (!strcmp(form, "MD")) {
|
||||
printf(
|
||||
"void %s(GPR const rs, GPR const ra, uint32_t mb, uint32_t sh) {"
|
||||
" emit_%s(0x%08x, ra, rs, mb, sh, false); "
|
||||
"}\n"
|
||||
, mem, form, (i_opcode << 26) | (i_extopc << 2));
|
||||
printf(
|
||||
"void %s_(GPR const rs, GPR const ra, uint32_t mb, uint32_t sh) {"
|
||||
" emit_%s(0x%08x, ra, rs, mb, sh, true); "
|
||||
"}\n"
|
||||
, mem, form, (i_opcode << 26) | (i_extopc << 2));
|
||||
} else if (!strcmp(form, "MDS")) {
|
||||
printf(
|
||||
"void %s(GPR const rs, GPR const ra, GPR const rb, uint32_t mb) {"
|
||||
" emit_%s(0x%08x, ra, rs, rb, mb, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %s_(GPR const rs, GPR const ra, GPR const rb, uint32_t mb) {"
|
||||
" emit_%s(0x%08x, ra, rs, rb, mb, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
} else if (!strcmp(form, "A")) {
|
||||
printf(
|
||||
"void %s(FPR const frt, FPR const fra, FPR const frb, FPR const frc) {"
|
||||
" emit_%s(0x%08x, frt, fra, frb, frc, false); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
printf(
|
||||
"void %s_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) {"
|
||||
" emit_%s(0x%08x, frt, fra, frb, frc, true); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
} else if (!strcmp(form, "XFX")) {
|
||||
printf(
|
||||
"void %s(GPR const rt, uint32_t spr) {"
|
||||
" emit_%s(0x%08x, rt, spr); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
} else {
|
||||
printf(
|
||||
"void %s() {"
|
||||
" emit_%s(0x%08x); "
|
||||
"}\n"
|
||||
, mem, form, OP_EXT);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//printf("%s\n", line);
|
||||
}
|
||||
fclose(fp);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
Vendored
-401
@@ -1,401 +0,0 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#undef NDEBUG
|
||||
|
||||
#include <cstdint>
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
#include <sys/mman.h>
|
||||
#include <cstdlib>
|
||||
|
||||
//#ifndef __cpp_lib_unreachable
|
||||
namespace std {
|
||||
[[noreturn]] inline void unreachable() {
|
||||
#if defined(_MSC_VER) && !defined(__clang__) // MSVC
|
||||
__assume(false);
|
||||
#else // GCC, Clang
|
||||
__builtin_unreachable();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
//#endif
|
||||
|
||||
namespace powah {
|
||||
|
||||
// Symbolic conditions
|
||||
enum class Cond : uint8_t {
|
||||
LT, LE, NG, EQ, GE, NL, GT, NE, SO, UN, NS, NU
|
||||
};
|
||||
|
||||
struct GPR { uint32_t index; };
|
||||
struct FPR { uint32_t index; };
|
||||
struct VPR { uint32_t index; };
|
||||
struct CPR { uint32_t index; };
|
||||
struct Label { uint32_t index; };
|
||||
|
||||
constexpr inline GPR R0{0};
|
||||
constexpr inline GPR R1{1};
|
||||
constexpr inline GPR R2{2};
|
||||
constexpr inline GPR R3{3};
|
||||
constexpr inline GPR R4{4};
|
||||
constexpr inline GPR R5{5};
|
||||
constexpr inline GPR R6{6};
|
||||
constexpr inline GPR R7{7};
|
||||
constexpr inline GPR R8{8};
|
||||
constexpr inline GPR R9{9};
|
||||
constexpr inline GPR R10{10};
|
||||
constexpr inline GPR R11{11};
|
||||
constexpr inline GPR R12{12};
|
||||
constexpr inline GPR R13{13};
|
||||
constexpr inline GPR R14{14};
|
||||
constexpr inline GPR R15{15};
|
||||
constexpr inline GPR R16{16};
|
||||
constexpr inline GPR R17{17};
|
||||
constexpr inline GPR R18{18};
|
||||
constexpr inline GPR R19{19};
|
||||
constexpr inline GPR R20{20};
|
||||
constexpr inline GPR R21{21};
|
||||
constexpr inline GPR R22{22};
|
||||
constexpr inline GPR R23{23};
|
||||
constexpr inline GPR R24{24};
|
||||
constexpr inline GPR R25{25};
|
||||
constexpr inline GPR R26{26};
|
||||
constexpr inline GPR R27{27};
|
||||
constexpr inline GPR R28{28};
|
||||
constexpr inline GPR R29{29};
|
||||
constexpr inline GPR R30{30};
|
||||
constexpr inline GPR R31{31};
|
||||
|
||||
constexpr inline FPR FR0{0};
|
||||
constexpr inline FPR FR1{1};
|
||||
constexpr inline FPR FR2{2};
|
||||
constexpr inline FPR FR3{3};
|
||||
constexpr inline FPR FR4{4};
|
||||
constexpr inline FPR FR5{5};
|
||||
constexpr inline FPR FR6{6};
|
||||
constexpr inline FPR FR7{7};
|
||||
constexpr inline FPR FR8{8};
|
||||
constexpr inline FPR FR9{9};
|
||||
constexpr inline FPR FR10{10};
|
||||
constexpr inline FPR FR11{11};
|
||||
constexpr inline FPR FR12{12};
|
||||
constexpr inline FPR FR13{13};
|
||||
constexpr inline FPR FR14{14};
|
||||
constexpr inline FPR FR15{15};
|
||||
constexpr inline FPR FR16{16};
|
||||
constexpr inline FPR FR17{17};
|
||||
constexpr inline FPR FR18{18};
|
||||
constexpr inline FPR FR19{19};
|
||||
constexpr inline FPR FR20{20};
|
||||
constexpr inline FPR FR21{21};
|
||||
constexpr inline FPR FR22{22};
|
||||
constexpr inline FPR FR23{23};
|
||||
constexpr inline FPR FR24{24};
|
||||
constexpr inline FPR FR25{25};
|
||||
constexpr inline FPR FR26{26};
|
||||
constexpr inline FPR FR27{27};
|
||||
constexpr inline FPR FR28{28};
|
||||
constexpr inline FPR FR29{29};
|
||||
constexpr inline FPR FR30{30};
|
||||
constexpr inline FPR FR31{31};
|
||||
|
||||
// They call it CPR because when programmers see this code they-
|
||||
constexpr inline CPR CR0{0};
|
||||
constexpr inline CPR CR1{4};
|
||||
constexpr inline CPR CR2{8};
|
||||
constexpr inline CPR CR3{12};
|
||||
constexpr inline CPR CR4{16};
|
||||
constexpr inline CPR CR5{20};
|
||||
constexpr inline CPR CR6{24};
|
||||
constexpr inline CPR CR7{28};
|
||||
|
||||
constexpr uint32_t XER_SO = 32;
|
||||
constexpr uint32_t XER_OV = 33;
|
||||
constexpr uint32_t XER_CA = 34;
|
||||
|
||||
enum class RelocKind : uint8_t {
|
||||
FormB,
|
||||
FormI,
|
||||
};
|
||||
struct RelocInfo {
|
||||
uint32_t offset;
|
||||
RelocKind kind;
|
||||
};
|
||||
|
||||
struct Context {
|
||||
Context() = default;
|
||||
Context(void* ptr, size_t size)
|
||||
: base{reinterpret_cast<uint32_t*>(ptr)}
|
||||
, offset{0}
|
||||
, size{uint32_t(size)} {
|
||||
|
||||
}
|
||||
~Context() = default;
|
||||
|
||||
std::vector<uint32_t> labels;
|
||||
std::vector<std::pair<uint32_t, RelocInfo>> relocs;
|
||||
|
||||
Label DefineLabel() {
|
||||
labels.push_back(0);
|
||||
return Label{ uint32_t(labels.size() - 1) };
|
||||
}
|
||||
|
||||
void ApplyRelocs() {
|
||||
for (auto const &[index, info] : relocs) {
|
||||
//assert(labels[index] != 0); //label must have an addr
|
||||
int32_t rel = (int32_t)labels[index] - (int32_t)info.offset;
|
||||
switch (info.kind) {
|
||||
case RelocKind::FormB:
|
||||
base[info.offset] |= bitExt(rel, 16, 14);
|
||||
break;
|
||||
case RelocKind::FormI:
|
||||
base[info.offset] |= bitExt(rel, 6, 24);
|
||||
break;
|
||||
}
|
||||
}
|
||||
relocs.clear();
|
||||
}
|
||||
|
||||
void LABEL(Label l) {
|
||||
assert(labels[l.index] == 0);
|
||||
labels[l.index] = offset;
|
||||
}
|
||||
|
||||
static constexpr uint32_t cond2offset(Cond c) noexcept {
|
||||
switch (c) {
|
||||
case Cond::LT: return 1;
|
||||
case Cond::LE: return 2;
|
||||
case Cond::NG: return 2;
|
||||
case Cond::EQ: return 3;
|
||||
case Cond::GE: return 1;
|
||||
case Cond::NL: return 1;
|
||||
case Cond::GT: return 2;
|
||||
case Cond::NE: return 3;
|
||||
case Cond::SO: return 4;
|
||||
case Cond::UN: return 4;
|
||||
case Cond::NS: return 4;
|
||||
case Cond::NU: return 4;
|
||||
default: return 0; //hopefully icc isn't stupid
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t bitExt(uint32_t value, uint32_t offs, uint32_t n) {
|
||||
uint32_t mask = (1UL << n) - 1;
|
||||
return (value & mask) << (32 - (n + offs));
|
||||
}
|
||||
void emit_XO(uint32_t op, GPR const rt, GPR const ra, GPR const rb, bool oe, bool rc) {
|
||||
base[offset++] = (op |
|
||||
bitExt(rt.index, 6, 5)
|
||||
| bitExt(ra.index, 11, 5)
|
||||
| bitExt(rb.index, 16, 5)
|
||||
| bitExt(oe, 21, 1)
|
||||
| bitExt(rc, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_D(uint32_t op, GPR const rt, GPR const ra, uint32_t d) {
|
||||
base[offset++] = (op |
|
||||
bitExt(rt.index, 6, 5)
|
||||
| bitExt(ra.index, 11, 5)
|
||||
| (d & 0xffff)
|
||||
);
|
||||
}
|
||||
void emit_X(uint32_t op, GPR const rt, GPR const ra, GPR const rb, bool rc) {
|
||||
base[offset++] = (op |
|
||||
bitExt(rt.index, 6, 5)
|
||||
| bitExt(ra.index, 11, 5)
|
||||
| bitExt(rb.index, 16, 5)
|
||||
| bitExt(rc, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_XS(uint32_t op, GPR const rt, GPR const ra, uint32_t sh, bool rc) {
|
||||
base[offset++] = (op |
|
||||
((rt.index & 0x1f) << 16)
|
||||
| ((ra.index & 0x1f) << 21)
|
||||
| ((sh & 0x1f) << 11)
|
||||
| ((sh >> 4) & 0x02)
|
||||
| bitExt(rc, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_reloc_I(uint32_t op, Label const& l, bool lk) {
|
||||
relocs.emplace_back(l.index, RelocInfo{ offset, RelocKind::FormI });
|
||||
base[offset++] = (op |
|
||||
bitExt(lk, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_reloc_B(uint32_t op, uint32_t bo, uint32_t cri, Label const& l, bool lk) {
|
||||
relocs.emplace_back(l.index, RelocInfo{ offset, RelocKind::FormB });
|
||||
base[offset++] = (op |
|
||||
bitExt(bo, 6, 5)
|
||||
| bitExt(cri, 11, 5)
|
||||
| bitExt(lk, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_XL(uint32_t op, uint32_t bt, uint32_t ba, uint32_t bb, bool lk) {
|
||||
base[offset++] = (op |
|
||||
bitExt(bt, 6, 5)
|
||||
| bitExt(ba, 11, 5)
|
||||
| bitExt(bb, 16, 5)
|
||||
| bitExt(lk, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_A(uint32_t op, FPR const frt, FPR const fra, FPR const frb, FPR const frc, bool rc) {
|
||||
base[offset++] = (op |
|
||||
bitExt(frt.index, 6, 5)
|
||||
| bitExt(fra.index, 11, 5)
|
||||
| bitExt(frb.index, 16, 5)
|
||||
| bitExt(frc.index, 21, 5)
|
||||
| bitExt(rc, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_DS(uint32_t op, GPR const rt, GPR const ra, uint32_t d) {
|
||||
//assert(d & 0x03 == 0);
|
||||
base[offset++] = (op |
|
||||
bitExt(rt.index, 6, 5)
|
||||
| bitExt(ra.index, 11, 5)
|
||||
| bitExt(d, 16, 14)
|
||||
);
|
||||
}
|
||||
void emit_M(uint32_t op, GPR const rs, GPR const ra, uint32_t sh, uint32_t mb, uint32_t me, bool rc) {
|
||||
assert(sh <= 0x3f && mb <= 0x3f);
|
||||
base[offset++] = (op |
|
||||
bitExt(rs.index, 6, 5)
|
||||
| bitExt(ra.index, 11, 5)
|
||||
| ((sh & 0x1f) << 11)
|
||||
| ((mb & 0x1f) << 6)
|
||||
| ((me & 0x1f) << 1)
|
||||
| bitExt(rc, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_MD(uint32_t op, GPR const rs, GPR const ra, GPR const rb, uint32_t mb, bool rc) {
|
||||
assert(mb <= 0x3f);
|
||||
base[offset++] = (op |
|
||||
bitExt(rs.index, 6, 5)
|
||||
| bitExt(ra.index, 11, 5)
|
||||
| bitExt(rb.index, 16, 5)
|
||||
| ((mb & 0x1f) << 6) | (mb & 0x20)
|
||||
| bitExt(rc, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_MD(uint32_t op, GPR const rs, GPR const ra, uint32_t sh, uint32_t mb, bool rc) {
|
||||
assert(sh <= 0x3f && mb <= 0x3f);
|
||||
base[offset++] = (op |
|
||||
bitExt(rs.index, 6, 5)
|
||||
| bitExt(ra.index, 11, 5)
|
||||
| ((mb & 0x1f) << 6) | (mb & 0x20)
|
||||
| ((sh & 0x1f) << 11) | ((sh >> 4) & 0x02)
|
||||
| bitExt(rc, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_MDS(uint32_t op, GPR const rs, GPR const ra, GPR const rb, uint32_t mb, bool rc) {
|
||||
base[offset++] = (op |
|
||||
bitExt(rs.index, 6, 5)
|
||||
| bitExt(ra.index, 11, 5)
|
||||
| bitExt(rb.index, 16, 5)
|
||||
| ((mb & 0x1f) << 6) | (mb & 0x20)
|
||||
| bitExt(rc, 31, 1)
|
||||
);
|
||||
}
|
||||
void emit_XFL(uint32_t op) {
|
||||
(void)op;
|
||||
std::abort();
|
||||
}
|
||||
void emit_XFX(uint32_t op, GPR const rt, uint32_t spr) {
|
||||
base[offset++] = (op |
|
||||
(rt.index & 0x1f) << 21
|
||||
| ((spr & 0xff) << 12)
|
||||
);
|
||||
}
|
||||
void emit_SC(uint32_t op, uint32_t lev) {
|
||||
(void)op;
|
||||
(void)lev;
|
||||
std::abort();
|
||||
}
|
||||
|
||||
// Extended Memmonics, hand coded :)
|
||||
void MR(GPR const ra, GPR const rs) { OR(ra, rs, rs); }
|
||||
void NOP() { ORI(R0, R0, 0); }
|
||||
void NOT(GPR const ra, GPR const rs) { NOR(ra, rs, rs); }
|
||||
|
||||
void ROTLDI(GPR const ra, GPR const rs, uint32_t n) { RLDICL(ra, rs, n, 0); }
|
||||
void ROTRDI(GPR const ra, GPR const rs, uint32_t n) { RLDICL(ra, rs, 64 - n, 0); }
|
||||
|
||||
void ROTLWI(GPR const ra, GPR const rs, uint32_t n) { RLWINM(ra, rs, n, 0, 31); }
|
||||
void ROTRWI(GPR const ra, GPR const rs, uint32_t n) { RLWINM(ra, rs, 32 - n, 0, 31); }
|
||||
|
||||
void ROTLW(GPR const ra, GPR const rs, GPR const rb) { RLWNM(ra, rs, rb, 0, 31); }
|
||||
void ROTLD(GPR const ra, GPR const rs, GPR const rb) { RLDCL(ra, rs, rb, 0); }
|
||||
|
||||
void EXTLDI(GPR const ra, GPR const rs, uint32_t n, uint32_t b) { RLDICR(ra, rs, b, n - 1); }
|
||||
void SLDI(GPR const ra, GPR const rs, uint32_t n) { RLDICR(ra, rs, n, 63 - n); }
|
||||
void CLRLDI(GPR const ra, GPR const rs, uint32_t n) { RLDICL(ra, rs, 0, n); }
|
||||
|
||||
void EXTRDI(GPR const ra, GPR const rs, uint32_t n, uint32_t b) { RLDICL(ra, rs, b + n, 64 - n); }
|
||||
void SRDI(GPR const ra, GPR const rs, uint32_t n) { RLDICL(ra, rs, 64 - n, n); }
|
||||
void CLLDI(GPR const ra, GPR const rs, uint32_t n) { RLDICR(ra, rs, 0, n); }
|
||||
void CLRSLDI(GPR const ra, GPR const rs, uint32_t n, uint32_t b) { RLDICR(ra, rs, n, b - n); }
|
||||
|
||||
void EXTLWI(GPR const ra, GPR const rs, uint32_t n, uint32_t b) { RLWINM(ra, rs, b, 0, n - 1); }
|
||||
void SRWI(GPR const ra, GPR const rs, uint32_t n) { RLWINM(ra, rs, 32 - n, n, 31); }
|
||||
void CLRRWI(GPR const ra, GPR const rs, uint32_t n) { RLWINM(ra, rs, 0, 0, 31 - n); }
|
||||
|
||||
void CRSET(CPR const bx) { CREQV(bx, bx, bx); }
|
||||
void CRCLR(CPR const bx) { CRXOR(bx, bx, bx); }
|
||||
void CRMOVE(CPR const bx, CPR const by) { CROR(bx, by, by); }
|
||||
void CRNOT(CPR const bx, CPR const by) { CRNOR(bx, by, by); }
|
||||
|
||||
void CMPLDI(CPR const cr, GPR const rx, uint32_t v) { CMPLI(cr.index, 1, rx, v); }
|
||||
void CMPLWI(CPR const cr, GPR const rx, uint32_t v) { CMPLI(cr.index, 0, rx, v); }
|
||||
void CMPLD(CPR const cr, GPR const rx, GPR const ry) { CMPL(cr.index, 1, rx, ry); }
|
||||
void CMPLW(CPR const cr, GPR const rx, GPR const ry) { CMPL(cr.index, 0, rx, ry); }
|
||||
void CMPLDI(GPR const rx, uint32_t v) { CMPLI(0, 1, rx, v); }
|
||||
void CMPLWI(GPR const rx, uint32_t v) { CMPLI(0, 0, rx, v); }
|
||||
void CMPLD(GPR const rx, GPR const ry) { CMPL(0, 1, rx, ry); }
|
||||
void CMPLW(GPR const rx, GPR const ry) { CMPL(0, 0, rx, ry); }
|
||||
|
||||
void CMPWI(CPR const cr, GPR const rx, uint32_t si) { CMPI(cr.index, 0, rx, si); }
|
||||
void CMPW(CPR const cr, GPR const rx, GPR const ry) { CMP(cr.index, 0, rx, ry); }
|
||||
void CMPDI(CPR const cr, GPR const rx, uint32_t si) { CMPI(cr.index, 1, rx, si); }
|
||||
void CMPD(CPR const cr, GPR const rx, GPR const ry) { CMP(cr.index, 1, rx, ry); }
|
||||
void CMPWI(GPR const rx, uint32_t si) { CMPI(0, 0, rx, si); }
|
||||
void CMPW(GPR const rx, GPR const ry) { CMP(0, 0, rx, ry); }
|
||||
void CMPDI(GPR const rx, uint32_t si) { CMPI(0, 1, rx, si); }
|
||||
void CMPD(GPR const rx, GPR const ry) { CMP(0, 1, rx, ry); }
|
||||
|
||||
void LI(GPR const rx, uint32_t value) { ADDI(rx, R0, value); }
|
||||
void LIS(GPR const rx, uint32_t value) { ADDIS(rx, R0, value); }
|
||||
|
||||
void MFLR(GPR const rt) { MFSPR(powah::GPR{8}, rt, powah::GPR{0}); }
|
||||
void MTLR(GPR const rt) { MTSPR(powah::GPR{8}, rt, powah::GPR{0}); }
|
||||
void BLR() { base[offset++] = 0x4e800020; } //BCLR(R0, CR0, R0);
|
||||
|
||||
void MFCTR(GPR const rt) { MFSPR(powah::GPR{9}, rt, powah::GPR{0}); }
|
||||
void MTCTR(GPR const rt) { MTSPR(powah::GPR{9}, rt, powah::GPR{0}); }
|
||||
void BCTRL() { base[offset++] = 0x4e800421; } //BCCTRL(R0, CR0, R0);
|
||||
void BCTR() { base[offset++] = 0x4e800420; } //BCCTR(R0, CR0, R0);
|
||||
|
||||
// TODO: PowerPC 11 stuff
|
||||
void ISEL(GPR const rd, GPR const ra, GPR const rb, uint32_t d) {
|
||||
(void)rd;
|
||||
(void)ra;
|
||||
(void)rb;
|
||||
(void)d;
|
||||
std::unreachable();
|
||||
}
|
||||
void ISELLT(GPR const rd, GPR const ra, GPR const rb) { ISEL(rd, ra, rb, 0); }
|
||||
void ISELGT(GPR const rd, GPR const ra, GPR const rb) { ISEL(rd, ra, rb, 1); }
|
||||
void ISELEQ(GPR const rd, GPR const ra, GPR const rb) { ISEL(rd, ra, rb, 2); }
|
||||
|
||||
// Rawly pasted because fuck you
|
||||
#include "powah_gen_base.hpp"
|
||||
|
||||
uint32_t* base = nullptr;
|
||||
uint32_t offset = 0;
|
||||
uint32_t size = 0;
|
||||
};
|
||||
|
||||
}
|
||||
Vendored
-487
@@ -1,487 +0,0 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// this file is autogenerated DO NOT MODIFY
|
||||
#pragma once
|
||||
void ADD(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000214, rt, ra, rb, false, false); }
|
||||
void ADDO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000214, rt, ra, rb, true, false); }
|
||||
void ADD_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000214, rt, ra, rb, false, true); }
|
||||
void ADDO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000214, rt, ra, rb, true, true); }
|
||||
void ADDC(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000014, rt, ra, rb, false, false); }
|
||||
void ADDCO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000014, rt, ra, rb, true, false); }
|
||||
void ADDC_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000014, rt, ra, rb, false, true); }
|
||||
void ADDCO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000014, rt, ra, rb, true, true); }
|
||||
void ADDE(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000114, rt, ra, rb, false, false); }
|
||||
void ADDEO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000114, rt, ra, rb, true, false); }
|
||||
void ADDE_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000114, rt, ra, rb, false, true); }
|
||||
void ADDEO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000114, rt, ra, rb, true, true); }
|
||||
void ADDI(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x38000000, rt, ra, d); }
|
||||
void ADDIC(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x30000000, rt, ra, d); }
|
||||
void ADDIC_(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x34000000, rt, ra, d); }
|
||||
void ADDIS(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x3c000000, rt, ra, d); }
|
||||
void ADDME(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d4, rt, ra, rb, false, false); }
|
||||
void ADDMEO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d4, rt, ra, rb, true, false); }
|
||||
void ADDME_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d4, rt, ra, rb, false, true); }
|
||||
void ADDMEO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d4, rt, ra, rb, true, true); }
|
||||
void ADDZE(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000194, rt, ra, rb, false, false); }
|
||||
void ADDZEO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000194, rt, ra, rb, true, false); }
|
||||
void ADDZE_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000194, rt, ra, rb, false, true); }
|
||||
void ADDZEO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000194, rt, ra, rb, true, true); }
|
||||
void AND(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000038, ra, rt, rb, false); }
|
||||
void AND_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000038, ra, rt, rb, true); }
|
||||
void ANDC(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000078, ra, rt, rb, false); }
|
||||
void ANDC_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000078, ra, rt, rb, true); }
|
||||
void ANDI_(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x70000000, ra, rt, d); }
|
||||
void ANDIS_(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x74000000, ra, rt, d); }
|
||||
void B(Label const& i) { emit_reloc_I(0x48000000, i, false); }
|
||||
void BL(Label const& i) { emit_reloc_I(0x48000000, i, true); }
|
||||
void BC(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 0, cr.index + 0, i, false); }
|
||||
void BCL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 0, cr.index + 0, i, true); }
|
||||
void BLT(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 12, cr.index + 0, i, false); }
|
||||
void BLTL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 12, cr.index + 0, i, true); }
|
||||
void BLE(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 1, i, false); }
|
||||
void BLEL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 1, i, true); }
|
||||
void BNG(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 1, i, false); }
|
||||
void BNGL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 1, i, true); }
|
||||
void BEQ(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 12, cr.index + 2, i, false); }
|
||||
void BEQL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 12, cr.index + 2, i, true); }
|
||||
void BGE(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 0, i, false); }
|
||||
void BGEL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 0, i, true); }
|
||||
void BNL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 0, i, false); }
|
||||
void BNLL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 0, i, true); }
|
||||
void BGT(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 12, cr.index + 1, i, false); }
|
||||
void BGTL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 12, cr.index + 1, i, true); }
|
||||
void BNE(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 2, i, false); }
|
||||
void BNEL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 2, i, true); }
|
||||
void BSO(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 12, cr.index + 3, i, false); }
|
||||
void BSOL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 12, cr.index + 3, i, true); }
|
||||
void BUN(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 12, cr.index + 3, i, false); }
|
||||
void BUNL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 12, cr.index + 3, i, true); }
|
||||
void BNS(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 3, i, false); }
|
||||
void BNSL(CPR const cr, Label const& i) { emit_reloc_B(0x40000000, 4, cr.index + 3, i, true); }
|
||||
void BCCTR(GPR const bt, CPR const ba, GPR const bb) { emit_XL(0x4c000420, bt.index, ba.index, bb.index, false); }
|
||||
void BCCTRL(GPR const bt, CPR const ba, GPR const bb) { emit_XL(0x4c000420, bt.index, ba.index, bb.index, true); }
|
||||
void BCCTR(GPR const bt, Cond const ba, GPR const bb) { emit_XL(0x4c000420, bt.index, cond2offset(ba), bb.index, false); }
|
||||
void BCCTRL(GPR const bt, Cond const ba, GPR const bb) { emit_XL(0x4c000420, bt.index, cond2offset(ba), bb.index, true); }
|
||||
void BCLR(GPR const bt, CPR const ba, GPR const bb) { emit_XL(0x4c000020, bt.index, ba.index, bb.index, false); }
|
||||
void BCLRL(GPR const bt, CPR const ba, GPR const bb) { emit_XL(0x4c000020, bt.index, ba.index, bb.index, true); }
|
||||
void BLTLR(CPR const cr) { emit_XL(0x4c000020, 12, cr.index + 0, 0, false); }
|
||||
void BLTLRL(CPR const cr) { emit_XL(0x4c000020, 12, cr.index + 0, 0, true); }
|
||||
void BLELR(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 1, 0, false); }
|
||||
void BLELRL(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 1, 0, true); }
|
||||
void BNGLR(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 1, 0, false); }
|
||||
void BNGLRL(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 1, 0, true); }
|
||||
void BEQLR(CPR const cr) { emit_XL(0x4c000020, 12, cr.index + 2, 0, false); }
|
||||
void BEQLRL(CPR const cr) { emit_XL(0x4c000020, 12, cr.index + 2, 0, true); }
|
||||
void BGELR(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 0, 0, false); }
|
||||
void BGELRL(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 0, 0, true); }
|
||||
void BNLLR(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 0, 0, false); }
|
||||
void BNLLRL(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 0, 0, true); }
|
||||
void BGTLR(CPR const cr) { emit_XL(0x4c000020, 12, cr.index + 1, 0, false); }
|
||||
void BGTLRL(CPR const cr) { emit_XL(0x4c000020, 12, cr.index + 1, 0, true); }
|
||||
void BNELR(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 2, 0, false); }
|
||||
void BNELRL(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 2, 0, true); }
|
||||
void BSOLR(CPR const cr) { emit_XL(0x4c000020, 12, cr.index + 3, 0, false); }
|
||||
void BSOLRL(CPR const cr) { emit_XL(0x4c000020, 12, cr.index + 3, 0, true); }
|
||||
void BUNLR(CPR const cr) { emit_XL(0x4c000020, 12, cr.index + 3, 0, false); }
|
||||
void BUNLRL(CPR const cr) { emit_XL(0x4c000020, 12, cr.index + 3, 0, true); }
|
||||
void BNSLR(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 3, 0, false); }
|
||||
void BNSLRL(CPR const cr) { emit_XL(0x4c000020, 4, cr.index + 3, 0, true); }
|
||||
void CMP(uint32_t bf, uint32_t l, GPR const ra, GPR const rb) { emit_X(0x7c000000, GPR{(bf << 2) | l}, ra, rb, false); }
|
||||
void CMPI(uint32_t bf, uint32_t l, GPR const ra, uint32_t d) { emit_D(0x2c000000, GPR{(bf << 2) | l}, ra, d); }
|
||||
void CMPL(uint32_t bf, uint32_t l, GPR const ra, GPR const rb) { emit_X(0x7c000040, GPR{(bf << 2) | l}, ra, rb, false); }
|
||||
void CMPLI(uint32_t bf, uint32_t l, GPR const ra, uint32_t d) { emit_D(0x28000000, GPR{(bf << 2) | l}, ra, d); }
|
||||
void CNTLZD(GPR const rt, GPR const ra) { emit_X(0x7c000074, ra, rt, R0, false); }
|
||||
void CNTLZD_(GPR const rt, GPR const ra) { emit_X(0x7c000074, ra, rt, R0, true); }
|
||||
void CNTLZW(GPR const rt, GPR const ra) { emit_X(0x7c000034, ra, rt, R0, false); }
|
||||
void CNTLZW_(GPR const rt, GPR const ra) { emit_X(0x7c000034, ra, rt, R0, true); }
|
||||
void CRAND(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000202, bt.index, ba.index, bb.index, false); }
|
||||
void CRANDL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000202, bt.index, ba.index, bb.index, true); }
|
||||
void CRANDC(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000102, bt.index, ba.index, bb.index, false); }
|
||||
void CRANDCL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000102, bt.index, ba.index, bb.index, true); }
|
||||
void CREQV(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000242, bt.index, ba.index, bb.index, false); }
|
||||
void CREQVL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000242, bt.index, ba.index, bb.index, true); }
|
||||
void CRNAND(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c0001c2, bt.index, ba.index, bb.index, false); }
|
||||
void CRNANDL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c0001c2, bt.index, ba.index, bb.index, true); }
|
||||
void CRNOR(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000042, bt.index, ba.index, bb.index, false); }
|
||||
void CRNORL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000042, bt.index, ba.index, bb.index, true); }
|
||||
void CROR(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000382, bt.index, ba.index, bb.index, false); }
|
||||
void CRORL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000382, bt.index, ba.index, bb.index, true); }
|
||||
void CRORC(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000342, bt.index, ba.index, bb.index, false); }
|
||||
void CRORCL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000342, bt.index, ba.index, bb.index, true); }
|
||||
void CRXOR(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000182, bt.index, ba.index, bb.index, false); }
|
||||
void CRXORL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000182, bt.index, ba.index, bb.index, true); }
|
||||
void DCBF(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000ac, ra, rt, rb, false); }
|
||||
void DCBF_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000ac, ra, rt, rb, true); }
|
||||
void DCBI(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0003ac, ra, rt, rb, false); }
|
||||
void DCBI_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0003ac, ra, rt, rb, true); }
|
||||
void DCBST(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00006c, ra, rt, rb, false); }
|
||||
void DCBST_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00006c, ra, rt, rb, true); }
|
||||
void DCBT(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00022c, ra, rt, rb, false); }
|
||||
void DCBT_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00022c, ra, rt, rb, true); }
|
||||
void DCBTST(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001ec, ra, rt, rb, false); }
|
||||
void DCBTST_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001ec, ra, rt, rb, true); }
|
||||
void DCBZ(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0007ec, ra, rt, rb, false); }
|
||||
void DCBZ_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0007ec, ra, rt, rb, true); }
|
||||
void DIVD(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0003d2, rt, ra, rb, false, false); }
|
||||
void DIVDO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0003d2, rt, ra, rb, true, false); }
|
||||
void DIVD_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0003d2, rt, ra, rb, false, true); }
|
||||
void DIVDO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0003d2, rt, ra, rb, true, true); }
|
||||
void DIVDU(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000392, rt, ra, rb, false, false); }
|
||||
void DIVDUO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000392, rt, ra, rb, true, false); }
|
||||
void DIVDU_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000392, rt, ra, rb, false, true); }
|
||||
void DIVDUO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000392, rt, ra, rb, true, true); }
|
||||
void DIVW(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0003d6, rt, ra, rb, false, false); }
|
||||
void DIVWO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0003d6, rt, ra, rb, true, false); }
|
||||
void DIVW_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0003d6, rt, ra, rb, false, true); }
|
||||
void DIVWO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0003d6, rt, ra, rb, true, true); }
|
||||
void DIVWU(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000396, rt, ra, rb, false, false); }
|
||||
void DIVWUO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000396, rt, ra, rb, true, false); }
|
||||
void DIVWU_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000396, rt, ra, rb, false, true); }
|
||||
void DIVWUO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000396, rt, ra, rb, true, true); }
|
||||
void ECIWX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00026c, ra, rt, rb, false); }
|
||||
void ECIWX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00026c, ra, rt, rb, true); }
|
||||
void ECOWX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00036c, ra, rt, rb, false); }
|
||||
void ECOWX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00036c, ra, rt, rb, true); }
|
||||
void EIEIO(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0006ac, ra, rt, rb, false); }
|
||||
void EIEIO_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0006ac, ra, rt, rb, true); }
|
||||
void EQV(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000238, ra, rt, rb, false); }
|
||||
void EQV_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000238, ra, rt, rb, true); }
|
||||
void EXTSB(GPR const rt, GPR const ra) { emit_X(0x7c000774, ra, rt, R0, false); }
|
||||
void EXTSB_(GPR const rt, GPR const ra) { emit_X(0x7c000774, ra, rt, R0, true); }
|
||||
void EXTSH(GPR const rt, GPR const ra) { emit_XO(0x7c000734, rt, ra, R0, false, false); }
|
||||
void EXTSHC(GPR const rt, GPR const ra) { emit_XO(0x7c000734, rt, ra, R0, true, false); }
|
||||
void EXTSH_(GPR const rt, GPR const ra) { emit_XO(0x7c000734, rt, ra, R0, false, true); }
|
||||
void EXTSHC_(GPR const rt, GPR const ra) { emit_XO(0x7c000734, rt, ra, R0, true, true); }
|
||||
void EXTSW(GPR const rt, GPR const ra) { emit_X(0x7c0007b4, ra, rt, R0, false); }
|
||||
void EXTSW_(GPR const rt, GPR const ra) { emit_X(0x7c0007b4, ra, rt, R0, true); }
|
||||
void FABS(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000210, ra, rt, rb, false); }
|
||||
void FABS_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000210, ra, rt, rb, true); }
|
||||
void FADD(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc00002a, frt, fra, frb, frc, false); }
|
||||
void FADD_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc00002a, frt, fra, frb, frc, true); }
|
||||
void FADDS(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec00002a, frt, fra, frb, frc, false); }
|
||||
void FADDS_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec00002a, frt, fra, frb, frc, true); }
|
||||
void FCFID(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00069c, ra, rt, rb, false); }
|
||||
void FCFID_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00069c, ra, rt, rb, true); }
|
||||
void FCMPO(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000040, ra, rt, rb, false); }
|
||||
void FCMPO_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000040, ra, rt, rb, true); }
|
||||
void FCMPU(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0xfc000000, bt.index, ba.index, bb.index, false); }
|
||||
void FCMPUL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0xfc000000, bt.index, ba.index, bb.index, true); }
|
||||
void FCTID(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00065c, ra, rt, rb, false); }
|
||||
void FCTID_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00065c, ra, rt, rb, true); }
|
||||
void FCTIDZ(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00065e, ra, rt, rb, false); }
|
||||
void FCTIDZ_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00065e, ra, rt, rb, true); }
|
||||
void FCTIW(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00001c, ra, rt, rb, false); }
|
||||
void FCTIW_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00001c, ra, rt, rb, true); }
|
||||
void FCTIWZ(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0xfc00001e, bt.index, ba.index, bb.index, false); }
|
||||
void FCTIWZL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0xfc00001e, bt.index, ba.index, bb.index, true); }
|
||||
void FDIV(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc000024, frt, fra, frb, frc, false); }
|
||||
void FDIV_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc000024, frt, fra, frb, frc, true); }
|
||||
void FDIVS(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec000024, frt, fra, frb, frc, false); }
|
||||
void FDIVS_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec000024, frt, fra, frb, frc, true); }
|
||||
void FMADD(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc00003a, frt, fra, frb, frc, false); }
|
||||
void FMADD_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc00003a, frt, fra, frb, frc, true); }
|
||||
void FMADDS(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec00003a, frt, fra, frb, frc, false); }
|
||||
void FMADDS_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec00003a, frt, fra, frb, frc, true); }
|
||||
void FMR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000090, ra, rt, rb, false); }
|
||||
void FMR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000090, ra, rt, rb, true); }
|
||||
void FMSUB(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc000038, frt, fra, frb, frc, false); }
|
||||
void FMSUB_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc000038, frt, fra, frb, frc, true); }
|
||||
void FMSUBS(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec000038, frt, fra, frb, frc, false); }
|
||||
void FMSUBS_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec000038, frt, fra, frb, frc, true); }
|
||||
void FMUL(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc000032, frt, fra, frb, frc, false); }
|
||||
void FMUL_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc000032, frt, fra, frb, frc, true); }
|
||||
void FMULS(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec000032, frt, fra, frb, frc, false); }
|
||||
void FMULS_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec000032, frt, fra, frb, frc, true); }
|
||||
void FNABS(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000110, ra, rt, rb, false); }
|
||||
void FNABS_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000110, ra, rt, rb, true); }
|
||||
void FNEG(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000050, ra, rt, rb, false); }
|
||||
void FNEG_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000050, ra, rt, rb, true); }
|
||||
void FNMADD(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc00003e, frt, fra, frb, frc, false); }
|
||||
void FNMADD_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc00003e, frt, fra, frb, frc, true); }
|
||||
void FNMADDS(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec00003e, frt, fra, frb, frc, false); }
|
||||
void FNMADDS_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec00003e, frt, fra, frb, frc, true); }
|
||||
void FNMSUB(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc00003c, frt, fra, frb, frc, false); }
|
||||
void FNMSUB_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc00003c, frt, fra, frb, frc, true); }
|
||||
void FNMSUBS(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec00003c, frt, fra, frb, frc, false); }
|
||||
void FNMSUBS_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec00003c, frt, fra, frb, frc, true); }
|
||||
void FRES(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec000030, frt, fra, frb, frc, false); }
|
||||
void FRES_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec000030, frt, fra, frb, frc, true); }
|
||||
void FRSP(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000018, ra, rt, rb, false); }
|
||||
void FRSP_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000018, ra, rt, rb, true); }
|
||||
void FRSQRTE(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc000034, frt, fra, frb, frc, false); }
|
||||
void FRSQRTE_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc000034, frt, fra, frb, frc, true); }
|
||||
void FSEL(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc00002e, frt, fra, frb, frc, false); }
|
||||
void FSEL_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc00002e, frt, fra, frb, frc, true); }
|
||||
void FSUB(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc000028, frt, fra, frb, frc, false); }
|
||||
void FSUB_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xfc000028, frt, fra, frb, frc, true); }
|
||||
void FSUBS(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec000028, frt, fra, frb, frc, false); }
|
||||
void FSUBS_(FPR const frt, FPR const fra, FPR const frb, FPR const frc) { emit_A(0xec000028, frt, fra, frb, frc, true); }
|
||||
void ICBI(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0007ac, ra, rt, rb, false); }
|
||||
void ICBI_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0007ac, ra, rt, rb, true); }
|
||||
void ISYNC(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x4c00012c, ra, rt, rb, false); }
|
||||
void ISYNC_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x4c00012c, ra, rt, rb, true); }
|
||||
void LBZ(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x88000000, rt, ra, d); }
|
||||
void LBZU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x8c000000, rt, ra, d); }
|
||||
void LBZUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000ee, ra, rt, rb, false); }
|
||||
void LBZUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000ee, ra, rt, rb, true); }
|
||||
void LBZX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000ae, ra, rt, rb, false); }
|
||||
void LBZX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000ae, ra, rt, rb, true); }
|
||||
void LD(GPR const rt, GPR const ra, uint32_t d) { emit_DS(0xe8000000, rt, ra, d >> 2); }
|
||||
void LDARX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000a8, ra, rt, rb, false); }
|
||||
void LDARX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000a8, ra, rt, rb, true); }
|
||||
void LDU(GPR const rt, GPR const ra, uint32_t d) { emit_DS(0xe8000001, rt, ra, d >> 2); }
|
||||
void LDUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00006a, ra, rt, rb, false); }
|
||||
void LDUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00006a, ra, rt, rb, true); }
|
||||
void LDX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00002a, ra, rt, rb, false); }
|
||||
void LDX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00002a, ra, rt, rb, true); }
|
||||
void LFD(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xc8000000, rt, ra, d); }
|
||||
void LFDU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xcc000000, rt, ra, d); }
|
||||
void LFDUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0004ee, ra, rt, rb, false); }
|
||||
void LFDUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0004ee, ra, rt, rb, true); }
|
||||
void LFDX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0004ae, ra, rt, rb, false); }
|
||||
void LFDX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0004ae, ra, rt, rb, true); }
|
||||
void LFS(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xc0000000, rt, ra, d); }
|
||||
void LFSU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xc4000000, rt, ra, d); }
|
||||
void LFSUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00046e, ra, rt, rb, false); }
|
||||
void LFSUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00046e, ra, rt, rb, true); }
|
||||
void LFSX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00042e, ra, rt, rb, false); }
|
||||
void LFSX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00042e, ra, rt, rb, true); }
|
||||
void LHA(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xa8000000, rt, ra, d); }
|
||||
void LHAU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xac000000, rt, ra, d); }
|
||||
void LHAUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0002ee, ra, rt, rb, false); }
|
||||
void LHAUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0002ee, ra, rt, rb, true); }
|
||||
void LHAX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0002ae, ra, rt, rb, false); }
|
||||
void LHAX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0002ae, ra, rt, rb, true); }
|
||||
void LHBRX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00062c, ra, rt, rb, false); }
|
||||
void LHBRX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00062c, ra, rt, rb, true); }
|
||||
void LHZ(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xa0000000, rt, ra, d); }
|
||||
void LHZU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xa4000000, rt, ra, d); }
|
||||
void LHZUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000296, ra, rt, rb, false); }
|
||||
void LHZUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000296, ra, rt, rb, true); }
|
||||
void LHZX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00022e, ra, rt, rb, false); }
|
||||
void LHZX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00022e, ra, rt, rb, true); }
|
||||
void LMW(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xb8000000, rt, ra, d); }
|
||||
void LSWI(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0004aa, ra, rt, rb, false); }
|
||||
void LSWI_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0004aa, ra, rt, rb, true); }
|
||||
void LSWX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00042a, ra, rt, rb, false); }
|
||||
void LSWX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00042a, ra, rt, rb, true); }
|
||||
void LWA(GPR const rt, GPR const ra, uint32_t d) { emit_DS(0xe8000002, rt, ra, d >> 2); }
|
||||
void LWARX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000028, ra, rt, rb, false); }
|
||||
void LWARX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000028, ra, rt, rb, true); }
|
||||
void LWAUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0002ea, ra, rt, rb, false); }
|
||||
void LWAUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0002ea, ra, rt, rb, true); }
|
||||
void LWAX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0002aa, ra, rt, rb, false); }
|
||||
void LWAX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0002aa, ra, rt, rb, true); }
|
||||
void LWBRX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00042c, ra, rt, rb, false); }
|
||||
void LWBRX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00042c, ra, rt, rb, true); }
|
||||
void LWZ(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x80000000, rt, ra, d); }
|
||||
void LWZU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x84000000, rt, ra, d); }
|
||||
void LWZUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00006e, ra, rt, rb, false); }
|
||||
void LWZUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00006e, ra, rt, rb, true); }
|
||||
void LWZX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00002e, ra, rt, rb, false); }
|
||||
void LWZX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00002e, ra, rt, rb, true); }
|
||||
void MCRF(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000000, bt.index, ba.index, bb.index, false); }
|
||||
void MCRFL(CPR const bt, CPR const ba, CPR const bb) { emit_XL(0x4c000000, bt.index, ba.index, bb.index, true); }
|
||||
void MCRFS(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000080, ra, rt, rb, false); }
|
||||
void MCRFS_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc000080, ra, rt, rb, true); }
|
||||
void MCRXR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000400, ra, rt, rb, false); }
|
||||
void MCRXR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000400, ra, rt, rb, true); }
|
||||
void MFCR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000026, ra, rt, rb, false); }
|
||||
void MFCR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000026, ra, rt, rb, true); }
|
||||
void MFFS(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00048e, ra, rt, rb, false); }
|
||||
void MFFS_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00048e, ra, rt, rb, true); }
|
||||
void MFMSR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000a6, ra, rt, rb, false); }
|
||||
void MFMSR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000a6, ra, rt, rb, true); }
|
||||
void MFSPR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0002a6, ra, rt, rb, false); }
|
||||
void MFSPR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0002a6, ra, rt, rb, true); }
|
||||
void MFSR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0004a6, ra, rt, rb, false); }
|
||||
void MFSR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0004a6, ra, rt, rb, true); }
|
||||
void MFSRIN(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000526, ra, rt, rb, false); }
|
||||
void MFSRIN_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000526, ra, rt, rb, true); }
|
||||
void MTCRF(GPR const rt, uint32_t spr) { emit_XFX(0x7c000120, rt, spr); }
|
||||
void MTFSB0(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00008c, ra, rt, rb, false); }
|
||||
void MTFSB0_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00008c, ra, rt, rb, true); }
|
||||
void MTFSB1(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00004c, ra, rt, rb, false); }
|
||||
void MTFSB1_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00004c, ra, rt, rb, true); }
|
||||
void MTFSF() { emit_XFL(0xfc00058e); }
|
||||
void MTFSFI(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00010c, ra, rt, rb, false); }
|
||||
void MTFSFI_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0xfc00010c, ra, rt, rb, true); }
|
||||
void MTMSR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000124, ra, rt, rb, false); }
|
||||
void MTMSR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000124, ra, rt, rb, true); }
|
||||
void MTSPR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0003a6, ra, rt, rb, false); }
|
||||
void MTSPR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0003a6, ra, rt, rb, true); }
|
||||
void MTSR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001a4, ra, rt, rb, false); }
|
||||
void MTSR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001a4, ra, rt, rb, true); }
|
||||
void MTSRIN(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001e4, ra, rt, rb, false); }
|
||||
void MTSRIN_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001e4, ra, rt, rb, true); }
|
||||
void MULHD(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000092, rt, ra, rb, false, false); }
|
||||
void MULHDO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000092, rt, ra, rb, true, false); }
|
||||
void MULHD_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000092, rt, ra, rb, false, true); }
|
||||
void MULHDO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000092, rt, ra, rb, true, true); }
|
||||
void MULHDU(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000012, rt, ra, rb, false, false); }
|
||||
void MULHDUO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000012, rt, ra, rb, true, false); }
|
||||
void MULHDU_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000012, rt, ra, rb, false, true); }
|
||||
void MULHDUO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000012, rt, ra, rb, true, true); }
|
||||
void MULHW(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000096, rt, ra, rb, false, false); }
|
||||
void MULHWO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000096, rt, ra, rb, true, false); }
|
||||
void MULHW_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000096, rt, ra, rb, false, true); }
|
||||
void MULHWO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000096, rt, ra, rb, true, true); }
|
||||
void MULHWU(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000016, rt, ra, rb, false, false); }
|
||||
void MULHWUO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000016, rt, ra, rb, true, false); }
|
||||
void MULHWU_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000016, rt, ra, rb, false, true); }
|
||||
void MULHWUO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000016, rt, ra, rb, true, true); }
|
||||
void MULLD(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d2, rt, ra, rb, false, false); }
|
||||
void MULLDO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d2, rt, ra, rb, true, false); }
|
||||
void MULLD_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d2, rt, ra, rb, false, true); }
|
||||
void MULLDO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d2, rt, ra, rb, true, true); }
|
||||
void MULLI(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x1c000000, rt, ra, d); }
|
||||
void MULLW(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d6, rt, ra, rb, false, false); }
|
||||
void MULLWO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d6, rt, ra, rb, true, false); }
|
||||
void MULLW_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d6, rt, ra, rb, false, true); }
|
||||
void MULLWO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d6, rt, ra, rb, true, true); }
|
||||
void NAND(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0003b8, ra, rt, rb, false); }
|
||||
void NAND_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0003b8, ra, rt, rb, true); }
|
||||
void NEG(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0000d0, rt, ra, rb, false, false); }
|
||||
void NEGO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0000d0, rt, ra, rb, true, false); }
|
||||
void NEG_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0000d0, rt, ra, rb, false, true); }
|
||||
void NEGO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0000d0, rt, ra, rb, true, true); }
|
||||
void NOR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000f8, ra, rt, rb, false); }
|
||||
void NOR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0000f8, ra, rt, rb, true); }
|
||||
void OR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000378, ra, rt, rb, false); }
|
||||
void OR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000378, ra, rt, rb, true); }
|
||||
void ORC(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000338, ra, rt, rb, false); }
|
||||
void ORC_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000338, ra, rt, rb, true); }
|
||||
void ORI(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x60000000, ra, rt, d); }
|
||||
void ORIS(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x64000000, ra, rt, d); }
|
||||
void RFI(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x4c000064, ra, rt, rb, false); }
|
||||
void RFI_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x4c000064, ra, rt, rb, true); }
|
||||
void RLDCL(GPR const rs, GPR const ra, GPR const rb, uint32_t mb) { emit_MDS(0x78000010, ra, rs, rb, mb, false); }
|
||||
void RLDCL_(GPR const rs, GPR const ra, GPR const rb, uint32_t mb) { emit_MDS(0x78000010, ra, rs, rb, mb, true); }
|
||||
void RLDCR(GPR const rs, GPR const ra, GPR const rb, uint32_t mb) { emit_MDS(0x78000012, ra, rs, rb, mb, false); }
|
||||
void RLDCR_(GPR const rs, GPR const ra, GPR const rb, uint32_t mb) { emit_MDS(0x78000012, ra, rs, rb, mb, true); }
|
||||
void RLDIC(GPR const rs, GPR const ra, uint32_t mb, uint32_t sh) { emit_MD(0x78000008, ra, rs, mb, sh, false); }
|
||||
void RLDIC_(GPR const rs, GPR const ra, uint32_t mb, uint32_t sh) { emit_MD(0x78000008, ra, rs, mb, sh, true); }
|
||||
void RLDICL(GPR const rs, GPR const ra, uint32_t mb, uint32_t sh) { emit_MD(0x78000000, ra, rs, mb, sh, false); }
|
||||
void RLDICL_(GPR const rs, GPR const ra, uint32_t mb, uint32_t sh) { emit_MD(0x78000000, ra, rs, mb, sh, true); }
|
||||
void RLDICR(GPR const rs, GPR const ra, uint32_t mb, uint32_t sh) { emit_MD(0x78000004, ra, rs, mb, sh, false); }
|
||||
void RLDICR_(GPR const rs, GPR const ra, uint32_t mb, uint32_t sh) { emit_MD(0x78000004, ra, rs, mb, sh, true); }
|
||||
void RLDIMI(GPR const rs, GPR const ra, uint32_t mb, uint32_t sh) { emit_MD(0x7800000c, ra, rs, mb, sh, false); }
|
||||
void RLDIMI_(GPR const rs, GPR const ra, uint32_t mb, uint32_t sh) { emit_MD(0x7800000c, ra, rs, mb, sh, true); }
|
||||
void RLWIMI(GPR const rs, GPR const ra, uint32_t sh, uint32_t mb, uint32_t me = 0) { emit_M(0x50000000, ra, rs, sh, mb, me, false); }
|
||||
void RLWIMI_(GPR const rs, GPR const ra, uint32_t sh, uint32_t mb, uint32_t me = 0) { emit_M(0x50000000, ra, rs, sh, mb, me, true); }
|
||||
void RLWINM(GPR const rs, GPR const ra, uint32_t sh, uint32_t mb, uint32_t me = 0) { emit_M(0x54000000, ra, rs, sh, mb, me, false); }
|
||||
void RLWINM_(GPR const rs, GPR const ra, uint32_t sh, uint32_t mb, uint32_t me = 0) { emit_M(0x54000000, ra, rs, sh, mb, me, true); }
|
||||
void RLWNM(GPR const rs, GPR const ra, GPR const rb, uint32_t mb, uint32_t me = 0) { emit_M(0x5c000000, ra, rs, rb.index, mb, me, false); }
|
||||
void RLWNM_(GPR const rs, GPR const ra, GPR const rb, uint32_t mb, uint32_t me = 0) { emit_M(0x5c000000, ra, rs, rb.index, mb, me, true); }
|
||||
void SC(uint32_t lev) { emit_SC(0x44000000, lev); }
|
||||
void SI(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x30000000, rt, ra, d); }
|
||||
void SI_(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x34000000, rt, ra, d); }
|
||||
void SLBIA(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0003e4, ra, rt, rb, false); }
|
||||
void SLBIA_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0003e4, ra, rt, rb, true); }
|
||||
void SLBIE(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000364, ra, rt, rb, false); }
|
||||
void SLBIE_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000364, ra, rt, rb, true); }
|
||||
void SLD(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000036, ra, rt, rb, false); }
|
||||
void SLD_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000036, ra, rt, rb, true); }
|
||||
void SLW(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000030, ra, rt, rb, false); }
|
||||
void SLW_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000030, ra, rt, rb, true); }
|
||||
void SRAD(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000634, ra, rt, rb, false); }
|
||||
void SRAD_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000634, ra, rt, rb, true); }
|
||||
void SRADI(GPR const rt, GPR const ra, uint32_t sh) { emit_XS(0x7c000674, rt, ra, sh, false); }
|
||||
void SRADI_(GPR const rt, GPR const ra, uint32_t sh) { emit_XS(0x7c000674, rt, ra, sh, true); }
|
||||
void SRD(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000436, ra, rt, rb, false); }
|
||||
void SRD_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000436, ra, rt, rb, true); }
|
||||
void SRAW(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000630, ra, rt, rb, false); }
|
||||
void SRAW_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000630, ra, rt, rb, true); }
|
||||
void SRAWI(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000670, ra, rt, rb, false); }
|
||||
void SRAWI_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000670, ra, rt, rb, true); }
|
||||
void SRW(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000430, ra, rt, rb, false); }
|
||||
void SRW_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000430, ra, rt, rb, true); }
|
||||
void STB(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x98000000, rt, ra, d); }
|
||||
void STBU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x9c000000, rt, ra, d); }
|
||||
void STBUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001ee, ra, rt, rb, false); }
|
||||
void STBUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001ee, ra, rt, rb, true); }
|
||||
void STBX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001ae, ra, rt, rb, false); }
|
||||
void STBX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001ae, ra, rt, rb, true); }
|
||||
void STD(GPR const rt, GPR const ra, uint32_t d) { emit_DS(0xf8000000, rt, ra, d >> 2); }
|
||||
void STDCX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001ac, ra, rt, rb, false); }
|
||||
void STDCX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0001ac, ra, rt, rb, true); }
|
||||
void STDU(GPR const rt, GPR const ra, uint32_t d) { emit_DS(0xf8000001, rt, ra, d >> 2); }
|
||||
void STDUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00016a, ra, rt, rb, false); }
|
||||
void STDUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00016a, ra, rt, rb, true); }
|
||||
void STDX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00012a, ra, rt, rb, false); }
|
||||
void STDX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00012a, ra, rt, rb, true); }
|
||||
void STFD(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xd8000000, rt, ra, d); }
|
||||
void STFDU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xdc000000, rt, ra, d); }
|
||||
void STFDUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0005ee, ra, rt, rb, false); }
|
||||
void STFDUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0005ee, ra, rt, rb, true); }
|
||||
void STFDX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0005ae, ra, rt, rb, false); }
|
||||
void STFDX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0005ae, ra, rt, rb, true); }
|
||||
void STFIWX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0007ae, ra, rt, rb, false); }
|
||||
void STFIWX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0007ae, ra, rt, rb, true); }
|
||||
void STFS(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xd0000000, rt, ra, d); }
|
||||
void STFSU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xd4000000, rt, ra, d); }
|
||||
void STFSUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00056e, ra, rt, rb, false); }
|
||||
void STFSUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00056e, ra, rt, rb, true); }
|
||||
void STFSX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00052e, ra, rt, rb, false); }
|
||||
void STFSX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00052e, ra, rt, rb, true); }
|
||||
void STH(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xb0000000, rt, ra, d); }
|
||||
void STHBRX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00072c, ra, rt, rb, false); }
|
||||
void STHBRX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00072c, ra, rt, rb, true); }
|
||||
void STHU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xb4000000, rt, ra, d); }
|
||||
void STHUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00036e, ra, rt, rb, false); }
|
||||
void STHUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00036e, ra, rt, rb, true); }
|
||||
void STHX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00032e, ra, rt, rb, false); }
|
||||
void STHX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00032e, ra, rt, rb, true); }
|
||||
void STMW(GPR const rt, GPR const ra, uint32_t d) { emit_D(0xbc000000, rt, ra, d); }
|
||||
void STSWI(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0005aa, ra, rt, rb, false); }
|
||||
void STSWI_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0005aa, ra, rt, rb, true); }
|
||||
void STSWX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00052a, ra, rt, rb, false); }
|
||||
void STSWX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00052a, ra, rt, rb, true); }
|
||||
void STW(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x90000000, rt, ra, d); }
|
||||
void STWBRX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00052c, ra, rt, rb, false); }
|
||||
void STWBRX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00052c, ra, rt, rb, true); }
|
||||
void STWCX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00012c, ra, rt, rb, false); }
|
||||
void STWCX__(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00012c, ra, rt, rb, true); }
|
||||
void STWU(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x94000000, rt, ra, d); }
|
||||
void STWUX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00016e, ra, rt, rb, false); }
|
||||
void STWUX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00016e, ra, rt, rb, true); }
|
||||
void STWX(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00012e, ra, rt, rb, false); }
|
||||
void STWX_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00012e, ra, rt, rb, true); }
|
||||
void SUBF(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000050, rt, ra, rb, false, false); }
|
||||
void SUBFO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000050, rt, ra, rb, true, false); }
|
||||
void SUBF_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000050, rt, ra, rb, false, true); }
|
||||
void SUBFO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000050, rt, ra, rb, true, true); }
|
||||
void SUBFC(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000010, rt, ra, rb, false, false); }
|
||||
void SUBFCO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000010, rt, ra, rb, true, false); }
|
||||
void SUBFC_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000010, rt, ra, rb, false, true); }
|
||||
void SUBFCO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000010, rt, ra, rb, true, true); }
|
||||
void SUBFE(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000110, rt, ra, rb, false, false); }
|
||||
void SUBFEO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000110, rt, ra, rb, true, false); }
|
||||
void SUBFE_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000110, rt, ra, rb, false, true); }
|
||||
void SUBFEO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000110, rt, ra, rb, true, true); }
|
||||
void SUBFIC(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x20000000, rt, ra, d); }
|
||||
void SUBFME(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d0, rt, ra, rb, false, false); }
|
||||
void SUBFMEO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d0, rt, ra, rb, true, false); }
|
||||
void SUBFME_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d0, rt, ra, rb, false, true); }
|
||||
void SUBFMEO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c0001d0, rt, ra, rb, true, true); }
|
||||
void SUBFZE(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000190, rt, ra, rb, false, false); }
|
||||
void SUBFZEO(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000190, rt, ra, rb, true, false); }
|
||||
void SUBFZE_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000190, rt, ra, rb, false, true); }
|
||||
void SUBFZEO_(GPR const rt, GPR const ra, GPR const rb) { emit_XO(0x7c000190, rt, ra, rb, true, true); }
|
||||
void SYNC(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0004ac, ra, rt, rb, false); }
|
||||
void SYNC_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c0004ac, ra, rt, rb, true); }
|
||||
void TD(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000088, ra, rt, rb, false); }
|
||||
void TD_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000088, ra, rt, rb, true); }
|
||||
void TDI(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x08000000, rt, ra, d); }
|
||||
void TLBIE(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000264, ra, rt, rb, false); }
|
||||
void TLBIE_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000264, ra, rt, rb, true); }
|
||||
void TLBSYNC(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00046c, ra, rt, rb, false); }
|
||||
void TLBSYNC_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c00046c, ra, rt, rb, true); }
|
||||
void TW(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000008, ra, rt, rb, false); }
|
||||
void TW_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000008, ra, rt, rb, true); }
|
||||
void TWI(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x0c000000, rt, ra, d); }
|
||||
void XOR(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000278, ra, rt, rb, false); }
|
||||
void XOR_(GPR const rt, GPR const ra, GPR const rb) { emit_X(0x7c000278, ra, rt, rb, true); }
|
||||
void XORI(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x68000000, ra, rt, d); }
|
||||
void XORIS(GPR const rt, GPR const ra, uint32_t d) { emit_D(0x6c000000, ra, rt, d); }
|
||||
Vendored
-340
@@ -1,340 +0,0 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include <catch2/catch_test_macros.hpp>
|
||||
#include <sys/mman.h>
|
||||
#include "powah_emit.hpp"
|
||||
|
||||
#define EB32(X) __bswap32(X)
|
||||
|
||||
TEST_CASE("ppc64: addi", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
|
||||
ctx.ADDI(powah::R2, powah::R2, 0);
|
||||
ctx.ADDIS(powah::R2, powah::R12, 0);
|
||||
REQUIRE(data[0] == EB32(0x00004238));
|
||||
REQUIRE(data[1] == EB32(0x00004c3c));
|
||||
}
|
||||
|
||||
TEST_CASE("ppc64: std/mr", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
|
||||
ctx.STD(powah::R26, powah::R1, 144);
|
||||
ctx.MR(powah::R26, powah::R4);
|
||||
ctx.STD(powah::R30, powah::R1, 176);
|
||||
ctx.MR(powah::R30, powah::R3);
|
||||
ctx.RLDICR(powah::R4, powah::R5, 25, 6);
|
||||
ctx.STD(powah::R28, powah::R1, 160);
|
||||
REQUIRE(data[0] == EB32(0x900041fb));
|
||||
REQUIRE(data[1] == EB32(0x78239a7c));
|
||||
REQUIRE(data[2] == EB32(0xb000c1fb));
|
||||
REQUIRE(data[3] == EB32(0x781b7e7c));
|
||||
REQUIRE(data[4] == EB32(0x84c9a478));
|
||||
REQUIRE(data[5] == EB32(0xa00081fb));
|
||||
}
|
||||
|
||||
TEST_CASE("ppc64: sldi", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
|
||||
ctx.SLDI(powah::R3, powah::R5, 37);
|
||||
REQUIRE(data[0] == EB32(0x862ea378));
|
||||
}
|
||||
|
||||
TEST_CASE("ppc64: rldicr", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
ctx.RLDICR(powah::R1, powah::R1, 0, 0);
|
||||
ctx.RLDICR(powah::R1, powah::R1, 1, 0);
|
||||
ctx.RLDICR(powah::R1, powah::R1, 0, 1);
|
||||
ctx.RLDICR(powah::R1, powah::R1, 1, 1);
|
||||
ctx.RLDICR(powah::R1, powah::R1, 31, 31);
|
||||
REQUIRE(data[0] == EB32(0x04002178));
|
||||
REQUIRE(data[1] == EB32(0x04082178));
|
||||
REQUIRE(data[2] == EB32(0x44002178));
|
||||
REQUIRE(data[3] == EB32(0x44082178));
|
||||
REQUIRE(data[4] == EB32(0xc4ff2178));
|
||||
}
|
||||
|
||||
TEST_CASE("ppc64: mr/or/std", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
ctx.MR(powah::R27, powah::R7);
|
||||
ctx.MR(powah::R29, powah::R6);
|
||||
ctx.OR(powah::R3, powah::R3, powah::R4);
|
||||
ctx.MR(powah::R4, powah::R28);
|
||||
ctx.CRMOVE(powah::CPR{8}, powah::CPR{1});
|
||||
ctx.MR(powah::R25, powah::R5);
|
||||
ctx.OR(powah::R3, powah::R3, powah::R26);
|
||||
ctx.STD(powah::R3, powah::R1, 56);
|
||||
ctx.MR(powah::R3, powah::R30);
|
||||
REQUIRE(data[0] == EB32(0x783bfb7c));
|
||||
REQUIRE(data[1] == EB32(0x7833dd7c));
|
||||
REQUIRE(data[2] == EB32(0x7823637c));
|
||||
REQUIRE(data[3] == EB32(0x78e3847f));
|
||||
REQUIRE(data[4] == EB32(0x820b014d));
|
||||
REQUIRE(data[5] == EB32(0x782bb97c));
|
||||
REQUIRE(data[6] == EB32(0x78d3637c));
|
||||
REQUIRE(data[7] == EB32(0x380061f8));
|
||||
REQUIRE(data[8] == EB32(0x78f3c37f));
|
||||
}
|
||||
|
||||
TEST_CASE("ppc64: ld/crand+addi", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
ctx.LD(powah::R4, powah::R1, 72);
|
||||
ctx.LWZ(powah::R5, powah::R1, 80);
|
||||
ctx.CRAND(powah::CPR{20}, powah::CPR{10}, powah::CPR{9});
|
||||
ctx.ADDI(powah::R6, powah::R4, 4);
|
||||
ctx.ANDIS_(powah::R4, powah::R5, 1992);
|
||||
ctx.LD(powah::R5, powah::R30, 1984);
|
||||
ctx.LBZ(powah::R3, powah::R1, 84);
|
||||
ctx.CLRLDI(powah::R26, powah::R6, 8);
|
||||
ctx.STW(powah::R4, powah::R1, 80);
|
||||
ctx.ADDI(powah::R5, powah::R5, 1);
|
||||
ctx.STD(powah::R26, powah::R1, 72);
|
||||
ctx.STD(powah::R5, powah::R30, 1984);
|
||||
REQUIRE(data[0] == EB32(0x480081e8));
|
||||
REQUIRE(data[1] == EB32(0x5000a180));
|
||||
REQUIRE(data[2] == EB32(0x024a8a4e));
|
||||
REQUIRE(data[3] == EB32(0x0400c438));
|
||||
REQUIRE(data[4] == EB32(0xc807a474));
|
||||
REQUIRE(data[5] == EB32(0xc007bee8));
|
||||
REQUIRE(data[6] == EB32(0x54006188));
|
||||
REQUIRE(data[7] == EB32(0x0002da78));
|
||||
REQUIRE(data[8] == EB32(0x50008190));
|
||||
REQUIRE(data[9] == EB32(0x0100a538));
|
||||
REQUIRE(data[10] == EB32(0x480041fb));
|
||||
REQUIRE(data[11] == EB32(0xc007bef8));
|
||||
}
|
||||
|
||||
TEST_CASE("ppc64: rotldi", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
ctx.ROTLDI(powah::R5, powah::R3, 16);
|
||||
ctx.ROTLDI(powah::R4, powah::R3, 8);
|
||||
ctx.RLDIMI(powah::R4, powah::R5, 8, 48);
|
||||
ctx.ROTLDI(powah::R5, powah::R3, 24);
|
||||
ctx.RLDIMI(powah::R4, powah::R5, 16, 40);
|
||||
ctx.ROTLDI(powah::R5, powah::R3, 32);
|
||||
ctx.RLDIMI(powah::R4, powah::R5, 24, 32);
|
||||
ctx.ROTLDI(powah::R5, powah::R3, 48);
|
||||
ctx.RLDIMI(powah::R4, powah::R5, 40, 16);
|
||||
ctx.ROTLDI(powah::R5, powah::R3, 56);
|
||||
ctx.RLDIMI(powah::R4, powah::R5, 48, 8);
|
||||
ctx.RLDIMI(powah::R4, powah::R3, 56, 0);
|
||||
ctx.MR(powah::R3, powah::R4);
|
||||
REQUIRE(data[0] == EB32(0x00806578));
|
||||
REQUIRE(data[1] == EB32(0x00406478));
|
||||
REQUIRE(data[2] == EB32(0x2c44a478));
|
||||
REQUIRE(data[3] == EB32(0x00c06578));
|
||||
REQUIRE(data[4] == EB32(0x2c82a478));
|
||||
REQUIRE(data[5] == EB32(0x02006578));
|
||||
REQUIRE(data[6] == EB32(0x2cc0a478));
|
||||
REQUIRE(data[7] == EB32(0x02806578));
|
||||
REQUIRE(data[8] == EB32(0x0e44a478));
|
||||
REQUIRE(data[9] == EB32(0x02c06578));
|
||||
REQUIRE(data[10] == EB32(0x0e82a478));
|
||||
REQUIRE(data[11] == EB32(0x0ec06478));
|
||||
REQUIRE(data[12] == EB32(0x7823837c));
|
||||
}
|
||||
|
||||
TEST_CASE("ppc64: branch-backwards", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
powah::Label l_3 = ctx.DefineLabel();
|
||||
ctx.LABEL(l_3);
|
||||
ctx.ADD(powah::R1, powah::R2, powah::R3);
|
||||
ctx.B(l_3);
|
||||
ctx.ApplyRelocs();
|
||||
REQUIRE(data[0] == EB32(0x141a227c));
|
||||
REQUIRE(data[1] == EB32(0xfcffff4b));
|
||||
}
|
||||
|
||||
TEST_CASE("ppc64: rlwimi madness", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
ctx.ROTLWI(powah::R10, powah::R3, 24);
|
||||
ctx.SRDI(powah::R9, powah::R3, 32);
|
||||
ctx.RLWIMI(powah::R10, powah::R3, 8, 8, 15);
|
||||
ctx.RLWIMI(powah::R10, powah::R3, 8, 24, 31);
|
||||
ctx.ROTLWI(powah::R3, powah::R9, 24);
|
||||
ctx.RLWIMI(powah::R3, powah::R9, 8, 8, 15);
|
||||
ctx.RLWIMI(powah::R3, powah::R9, 8, 24, 31);
|
||||
ctx.RLDIMI(powah::R3, powah::R10, 32, 0);
|
||||
REQUIRE(data[0] == EB32(0x3ec06a54));
|
||||
REQUIRE(data[1] == EB32(0x22006978));
|
||||
REQUIRE(data[2] == EB32(0x1e426a50));
|
||||
REQUIRE(data[3] == EB32(0x3e466a50));
|
||||
REQUIRE(data[4] == EB32(0x3ec02355));
|
||||
REQUIRE(data[5] == EB32(0x1e422351));
|
||||
REQUIRE(data[6] == EB32(0x3e462351));
|
||||
REQUIRE(data[7] == EB32(0x0e004379));
|
||||
}
|
||||
|
||||
/*
|
||||
0: 78 1b 68 7c mr 8, 3
|
||||
4: 38 28 83 7c and 3, 4, 5
|
||||
8: 74 00 6a 7c cntlzd 10, 3
|
||||
c: 76 06 69 7c sradi 9, 3, 32
|
||||
10: 82 d1 4a 79 rldicl 10, 10, 58, 6
|
||||
14: 00 00 29 55 rlwinm 9, 9, 0, 0, 0
|
||||
18: 64 f0 4a 79 sldi 10, 10, 30
|
||||
1c: 78 53 29 7d or 9, 9, 10
|
||||
20: 00 00 28 f9 std 9, 0(8)
|
||||
24: 20 00 80 4e blr
|
||||
*/
|
||||
TEST_CASE("ppc64: functor-2", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
ctx.MR(powah::R8, powah::R3);
|
||||
ctx.AND(powah::R3, powah::R4, powah::R5);
|
||||
ctx.CNTLZD(powah::R10, powah::R3);
|
||||
ctx.SRADI(powah::R9, powah::R3, 32);
|
||||
ctx.RLDICL(powah::R10, powah::R10, 58, 6);
|
||||
ctx.RLWINM(powah::R9, powah::R9, 0, 0, 0);
|
||||
ctx.SLDI(powah::R10, powah::R10, 30);
|
||||
ctx.OR(powah::R9, powah::R9, powah::R10);
|
||||
ctx.STD(powah::R9, powah::R8, 0);
|
||||
ctx.BLR();
|
||||
REQUIRE(data[0] == EB32(0x781b687c));
|
||||
REQUIRE(data[1] == EB32(0x3828837c));
|
||||
REQUIRE(data[2] == EB32(0x74006a7c));
|
||||
REQUIRE(data[3] == EB32(0x7606697c));
|
||||
REQUIRE(data[4] == EB32(0x82d14a79));
|
||||
REQUIRE(data[5] == EB32(0x00002955));
|
||||
REQUIRE(data[6] == EB32(0x64f04a79));
|
||||
REQUIRE(data[7] == EB32(0x7853297d));
|
||||
REQUIRE(data[8] == EB32(0x000028f9));
|
||||
REQUIRE(data[9] == EB32(0x2000804e));
|
||||
}
|
||||
|
||||
TEST_CASE("ppc64: functor-1", "[ppc64]") {
|
||||
std::vector<uint32_t> data(64);
|
||||
powah::Context ctx(data.data(), data.size());
|
||||
powah::Label l_4 = ctx.DefineLabel();
|
||||
powah::Label l_7 = ctx.DefineLabel();
|
||||
ctx.CMPLD(powah::CR0, powah::R3, powah::R4);
|
||||
ctx.MR(powah::R9, powah::R3);
|
||||
ctx.BGT(powah::CR0, l_7);
|
||||
ctx.CMPLDI(powah::CR0, powah::R3, 3781);
|
||||
ctx.LI(powah::R3, 1);
|
||||
ctx.BGTLR(powah::CR0);
|
||||
ctx.CMPLD(powah::CR0, powah::R9, powah::R5);
|
||||
ctx.BLE(powah::CR0, l_4);
|
||||
ctx.SUBF(powah::R5, powah::R9, powah::R5);
|
||||
ctx.XOR(powah::R3, powah::R5, powah::R4);
|
||||
ctx.BLR();
|
||||
ctx.LABEL(l_4);
|
||||
ctx.ADD(powah::R5, powah::R4, powah::R5);
|
||||
ctx.ADD(powah::R3, powah::R5, powah::R9);
|
||||
ctx.BLR();
|
||||
ctx.LABEL(l_7);
|
||||
ctx.ADD(powah::R3, powah::R4, powah::R5);
|
||||
ctx.BLR();
|
||||
ctx.ApplyRelocs();
|
||||
REQUIRE(data[0] == EB32(0x4020237c));
|
||||
REQUIRE(data[1] == EB32(0x781b697c));
|
||||
REQUIRE(data[2] == EB32(0x30008141));
|
||||
REQUIRE(data[3] == EB32(0xc50e2328));
|
||||
REQUIRE(data[4] == EB32(0x01006038));
|
||||
REQUIRE(data[5] == EB32(0x2000814d));
|
||||
REQUIRE(data[6] == EB32(0x4028297c));
|
||||
REQUIRE(data[7] == EB32(0x10008140));
|
||||
REQUIRE(data[8] == EB32(0x5028a97c));
|
||||
REQUIRE(data[9] == EB32(0x7822a37c));
|
||||
REQUIRE(data[10] == EB32(0x2000804e));
|
||||
REQUIRE(data[11] == EB32(0x142aa47c));
|
||||
REQUIRE(data[12] == EB32(0x144a657c));
|
||||
REQUIRE(data[13] == EB32(0x2000804e));
|
||||
REQUIRE(data[14] == EB32(0x142a647c));
|
||||
REQUIRE(data[15] == EB32(0x2000804e));
|
||||
}
|
||||
|
||||
#if defined(ARCHITECTURE_powerpc64)
|
||||
/*
|
||||
0: d619637c mullw 3, 3, 3
|
||||
4: 20006378 clrldi 3, 3, 32
|
||||
8: 2000804e blr
|
||||
*/
|
||||
TEST_CASE("ppc64: live-exec square", "[ppc64]") {
|
||||
uint32_t* data = (uint32_t*)mmap(nullptr, 4096, PROT_WRITE | PROT_READ | PROT_EXEC, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
|
||||
REQUIRE(data != nullptr);
|
||||
|
||||
powah::Context ctx((void*)data, 4096);
|
||||
ctx.MULLW(powah::R3, powah::R3, powah::R3);
|
||||
ctx.CLRLDI(powah::R3, powah::R3, 32);
|
||||
ctx.BLR();
|
||||
REQUIRE(data[0] == EB32(0xd619637c));
|
||||
REQUIRE(data[1] == EB32(0x20006378));
|
||||
REQUIRE(data[2] == EB32(0x2000804e));
|
||||
|
||||
auto* fn = (int (*)(int))data;
|
||||
REQUIRE(fn(4) == 4 * 4);
|
||||
REQUIRE(fn(8) == 8 * 8);
|
||||
|
||||
munmap((void*)data, 4096);
|
||||
}
|
||||
|
||||
/*
|
||||
int f(int a, int b, int c) {
|
||||
a += (a > b) ? b - 0xffff : c + 402, b += 2, c &= b*c;
|
||||
return a * a + b ^ c & b;
|
||||
}
|
||||
*/
|
||||
TEST_CASE("ppc64: live-exec xoralu", "[ppc64]") {
|
||||
uint32_t* data = (uint32_t*)mmap(nullptr, 4096, PROT_WRITE | PROT_READ | PROT_EXEC, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
|
||||
REQUIRE(data != nullptr);
|
||||
|
||||
powah::Context ctx((void*)data, 4096);
|
||||
powah::Label l_2 = ctx.DefineLabel();
|
||||
powah::Label l_3 = ctx.DefineLabel();
|
||||
ctx.CMPW(powah::R3, powah::R4);
|
||||
ctx.BGT(powah::CR0, l_2);
|
||||
ctx.ADDI(powah::R6, powah::R5, 402);
|
||||
ctx.B(l_3);
|
||||
ctx.LABEL(l_2);
|
||||
ctx.ADDI(powah::R6, powah::R4, 1);
|
||||
ctx.ADDIS(powah::R6, powah::R6, -1);
|
||||
ctx.LABEL(l_3);
|
||||
ctx.ADDI(powah::R4, powah::R4, 2);
|
||||
ctx.ADD(powah::R3, powah::R6, powah::R3);
|
||||
ctx.MULLW(powah::R6, powah::R4, powah::R5);
|
||||
ctx.MULLW(powah::R3, powah::R3, powah::R3);
|
||||
ctx.AND(powah::R5, powah::R5, powah::R6);
|
||||
ctx.ADD(powah::R3, powah::R3, powah::R4);
|
||||
ctx.AND(powah::R4, powah::R5, powah::R4);
|
||||
ctx.XOR(powah::R3, powah::R3, powah::R4);
|
||||
ctx.EXTSW(powah::R3, powah::R3);
|
||||
ctx.BLR();
|
||||
ctx.ApplyRelocs();
|
||||
REQUIRE(data[0] == EB32(0x0020037c));
|
||||
REQUIRE(data[1] == EB32(0x0c008141));
|
||||
REQUIRE(data[2] == EB32(0x9201c538));
|
||||
REQUIRE(data[3] == EB32(0x0c000048));
|
||||
REQUIRE(data[4] == EB32(0x0100c438));
|
||||
REQUIRE(data[5] == EB32(0xffffc63c));
|
||||
REQUIRE(data[6] == EB32(0x02008438));
|
||||
REQUIRE(data[7] == EB32(0x141a667c));
|
||||
REQUIRE(data[8] == EB32(0xd629c47c));
|
||||
REQUIRE(data[9] == EB32(0xd619637c));
|
||||
REQUIRE(data[10] == EB32(0x3830a57c));
|
||||
REQUIRE(data[11] == EB32(0x1422637c));
|
||||
REQUIRE(data[12] == EB32(0x3820a47c));
|
||||
REQUIRE(data[13] == EB32(0x7822637c));
|
||||
REQUIRE(data[14] == EB32(0xb407637c));
|
||||
REQUIRE(data[15] == EB32(0x2000804e));
|
||||
|
||||
auto const orig = [](int a, int b, int c) {
|
||||
a += (a > b) ? b - 0xffff : c + 402, b += 2, c &= b*c;
|
||||
return a * a + b ^ c & b;
|
||||
};
|
||||
auto* fn = (int (*)(int, int, int))data;
|
||||
REQUIRE(fn(0, 1, 2) == orig(0, 1, 2));
|
||||
REQUIRE(fn(6456, 4564, 4564561) == orig(6456, 4564, 4564561));
|
||||
|
||||
munmap((void*)data, 4096);
|
||||
}
|
||||
#endif
|
||||
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 bad test!
|
||||
// test tga last because it's a crappy 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 bad test!
|
||||
// test tga last because it's a crappy test!
|
||||
#ifndef STBI_NO_TGA
|
||||
if (stbi__tga_info(s, x, y, comp))
|
||||
return 1;
|
||||
|
||||
+10
-22
@@ -8,7 +8,7 @@
|
||||
include_directories(.)
|
||||
|
||||
# Dynarmic
|
||||
if ((ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64 OR ARCHITECTURE_riscv64 OR ARCHITECTURE_loongarch64 OR ARCHITECTURE_powerpc64) AND NOT YUZU_STATIC_ROOM)
|
||||
if ((ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64 OR ARCHITECTURE_riscv64 OR ARCHITECTURE_loongarch64) AND NOT YUZU_STATIC_ROOM)
|
||||
add_subdirectory(dynarmic)
|
||||
add_library(dynarmic::dynarmic ALIAS dynarmic)
|
||||
endif()
|
||||
@@ -155,24 +155,12 @@ 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>
|
||||
@@ -181,9 +169,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>:-Wshadow-uncaptured-local>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wimplicit-fallthrough>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wtype-limits>)
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=shadow-uncaptured-local>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=implicit-fallthrough>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=type-limits>)
|
||||
endif()
|
||||
add_compile_options(
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-braced-scalar-init>
|
||||
@@ -193,7 +181,7 @@ else()
|
||||
|
||||
if (ARCHITECTURE_x86_64)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-mcx16>)
|
||||
if (LINUX OR FREEBSD)
|
||||
if (PLATFORM_LINUX OR PLATFORM_FREEBSD)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-mtls-dialect=gnu2>)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -65,7 +65,7 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "dev.eden.eden_emulator"
|
||||
minSdk = 24
|
||||
minSdk = 33
|
||||
targetSdk = 36
|
||||
versionName = getGitVersion()
|
||||
versionCode = autoVersion
|
||||
@@ -188,7 +188,6 @@ android {
|
||||
create("mainline") {
|
||||
dimension = "version"
|
||||
isDefault = true
|
||||
minSdk = 33
|
||||
|
||||
manifestPlaceholders += mapOf("appNameBase" to "Eden")
|
||||
resValue("string", "app_name_suffixed", "Eden")
|
||||
@@ -200,7 +199,6 @@ android {
|
||||
|
||||
create("genshinSpoof") {
|
||||
dimension = "version"
|
||||
minSdk = 35
|
||||
manifestPlaceholders += mapOf("appNameBase" to "Eden Optimized")
|
||||
resValue("string", "app_name_suffixed", "Eden Optimized")
|
||||
applicationId = "com.miHoYo.Yuanshen"
|
||||
@@ -218,7 +216,6 @@ android {
|
||||
|
||||
create("legacy") {
|
||||
dimension = "version"
|
||||
minSdk = 29
|
||||
manifestPlaceholders += mapOf("appNameBase" to "Eden Legacy")
|
||||
resValue("string", "app_name_suffixed", "Eden Legacy")
|
||||
applicationId = "dev.legacy.eden_emulator"
|
||||
|
||||
@@ -218,8 +218,6 @@ object NativeLibrary {
|
||||
|
||||
external fun logSettings()
|
||||
|
||||
external fun refreshThreadPolicies()
|
||||
|
||||
external fun getDebugKnobAt(index: Int): Boolean
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -594,7 +594,7 @@ abstract class SettingsItem(
|
||||
IntSetting.ANDROID_PIPELINE_WORKERS,
|
||||
titleId = R.string.pipeline_worker_cores,
|
||||
descriptionId = R.string.pipeline_worker_cores_description,
|
||||
min = 2,
|
||||
min = 4,
|
||||
max = 8,
|
||||
units = "cores"
|
||||
)
|
||||
|
||||
+2
-2
@@ -250,9 +250,8 @@ class SettingsFragmentPresenter(
|
||||
add(BooleanSetting.USE_CUSTOM_RTC.key)
|
||||
add(LongSetting.CUSTOM_RTC.key)
|
||||
|
||||
add(HeaderSetting(R.string.clocks))
|
||||
add(HeaderSetting(R.string.cpu))
|
||||
add(IntSetting.FAST_CPU_TIME.key)
|
||||
add(IntSetting.FAST_GPU_TIME.key)
|
||||
add(BooleanSetting.CORE_SYNC_CORE_SPEED.key)
|
||||
|
||||
add(IntSetting.MEMORY_LAYOUT.key)
|
||||
@@ -299,6 +298,7 @@ class SettingsFragmentPresenter(
|
||||
|
||||
add(HeaderSetting(R.string.hacks))
|
||||
|
||||
add(IntSetting.FAST_GPU_TIME.key)
|
||||
add(BooleanSetting.SKIP_CPU_INNER_INVALIDATION.key)
|
||||
add(BooleanSetting.FIX_BLOOM_EFFECTS.key)
|
||||
add(BooleanSetting.EMULATE_BGR565.key)
|
||||
|
||||
@@ -1451,7 +1451,6 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
NativeLibrary.refreshThreadPolicies()
|
||||
val b = _binding ?: return
|
||||
updateStatsPosition(IntSetting.PERF_OVERLAY_POSITION.getInt())
|
||||
updateSocPosition(IntSetting.SOC_OVERLAY_POSITION.getInt())
|
||||
|
||||
@@ -20,96 +20,132 @@ struct RomMetadata {
|
||||
std::vector<u8> icon;
|
||||
bool isHomebrew;
|
||||
};
|
||||
static ankerl::unordered_dense::map<std::string, RomMetadata> m_rom_metadata_cache;
|
||||
|
||||
static RomMetadata CacheRomMetadata(const std::string& path) {
|
||||
auto& instance = EmulationSession::GetInstance();
|
||||
const auto file = Core::GetGameFileFromPath(instance.System().GetFilesystem(), path);
|
||||
if (auto loader = Loader::GetLoader(instance.System(), file, 0, 0); loader) {
|
||||
RomMetadata entry;
|
||||
loader->ReadTitle(entry.title);
|
||||
loader->ReadProgramId(entry.programId);
|
||||
loader->ReadIcon(entry.icon);
|
||||
ankerl::unordered_dense::map<std::string, RomMetadata> m_rom_metadata_cache;
|
||||
|
||||
const FileSys::PatchManager pm{
|
||||
entry.programId,
|
||||
instance.System().GetFileSystemController(),
|
||||
instance.System().GetContentProvider()
|
||||
};
|
||||
const auto control = pm.GetControlMetadata();
|
||||
RomMetadata CacheRomMetadata(const std::string& path) {
|
||||
const auto file =
|
||||
Core::GetGameFileFromPath(EmulationSession::GetInstance().System().GetFilesystem(), path);
|
||||
auto loader = Loader::GetLoader(EmulationSession::GetInstance().System(), file, 0, 0);
|
||||
|
||||
if (control.first != nullptr) {
|
||||
entry.developer = control.first->GetDeveloperName();
|
||||
entry.version = control.first->GetVersionString();
|
||||
RomMetadata entry;
|
||||
loader->ReadTitle(entry.title);
|
||||
loader->ReadProgramId(entry.programId);
|
||||
loader->ReadIcon(entry.icon);
|
||||
|
||||
const FileSys::PatchManager pm{
|
||||
entry.programId, EmulationSession::GetInstance().System().GetFileSystemController(),
|
||||
EmulationSession::GetInstance().System().GetContentProvider()};
|
||||
const auto control = pm.GetControlMetadata();
|
||||
|
||||
if (control.first != nullptr) {
|
||||
entry.developer = control.first->GetDeveloperName();
|
||||
entry.version = control.first->GetVersionString();
|
||||
} else {
|
||||
FileSys::NACP nacp;
|
||||
if (loader->ReadControlData(nacp) == Loader::ResultStatus::Success) {
|
||||
entry.developer = nacp.GetDeveloperName();
|
||||
} else {
|
||||
FileSys::NACP nacp{};
|
||||
entry.developer = loader->ReadControlData(nacp) == Loader::ResultStatus::Success
|
||||
? nacp.GetDeveloperName()
|
||||
: "";
|
||||
entry.version = "1.0.0";
|
||||
entry.developer = "";
|
||||
}
|
||||
if (loader->GetFileType() == Loader::FileType::NRO) {
|
||||
auto loader_nro = reinterpret_cast<Loader::AppLoader_NRO*>(loader.get());
|
||||
entry.isHomebrew = loader_nro->IsHomebrew();
|
||||
} else {
|
||||
entry.isHomebrew = false;
|
||||
}
|
||||
m_rom_metadata_cache[path] = entry;
|
||||
return entry;
|
||||
|
||||
entry.version = "1.0.0";
|
||||
}
|
||||
return {};
|
||||
|
||||
if (loader->GetFileType() == Loader::FileType::NRO) {
|
||||
auto loader_nro = reinterpret_cast<Loader::AppLoader_NRO*>(loader.get());
|
||||
entry.isHomebrew = loader_nro->IsHomebrew();
|
||||
} else {
|
||||
entry.isHomebrew = false;
|
||||
}
|
||||
|
||||
m_rom_metadata_cache[path] = entry;
|
||||
|
||||
return entry;
|
||||
}
|
||||
|
||||
static RomMetadata GetRomMetadata(const std::string& path, bool reload = false) {
|
||||
if (reload)
|
||||
RomMetadata GetRomMetadata(const std::string& path, bool reload = false) {
|
||||
if (reload) {
|
||||
return CacheRomMetadata(path);
|
||||
if (auto it = m_rom_metadata_cache.find(path); it != m_rom_metadata_cache.end())
|
||||
return it->second;
|
||||
}
|
||||
|
||||
if (auto search = m_rom_metadata_cache.find(path); search != m_rom_metadata_cache.end()) {
|
||||
return search->second;
|
||||
}
|
||||
|
||||
return CacheRomMetadata(path);
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
|
||||
jboolean Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIsValid(JNIEnv* env, jobject obj, jstring jpath) {
|
||||
if (auto const file = EmulationSession::GetInstance().System().GetFilesystem()->OpenFile(Common::Android::GetJString(env, jpath), FileSys::OpenMode::Read); file) {
|
||||
if (auto loader = Loader::GetLoader(EmulationSession::GetInstance().System(), file); loader) {
|
||||
auto const file_type = loader->GetFileType();
|
||||
if (file_type == Loader::FileType::Unknown || file_type == Loader::FileType::Error)
|
||||
return false;
|
||||
if ((file_type == Loader::FileType::NSP || file_type == Loader::FileType::XCI) && !Loader::IsBootableGameContainer(file, file_type))
|
||||
return false;
|
||||
u64 program_id = 0;
|
||||
return loader->ReadProgramId(program_id) == Loader::ResultStatus::Success;
|
||||
}
|
||||
jboolean Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIsValid(JNIEnv* env, jobject obj,
|
||||
jstring jpath) {
|
||||
const auto file = EmulationSession::GetInstance().System().GetFilesystem()->OpenFile(
|
||||
Common::Android::GetJString(env, jpath), FileSys::OpenMode::Read);
|
||||
if (!file) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
||||
auto loader = Loader::GetLoader(EmulationSession::GetInstance().System(), file);
|
||||
if (!loader) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const auto file_type = loader->GetFileType();
|
||||
if (file_type == Loader::FileType::Unknown || file_type == Loader::FileType::Error) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((file_type == Loader::FileType::NSP || file_type == Loader::FileType::XCI) &&
|
||||
!Loader::IsBootableGameContainer(file, file_type)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
u64 program_id = 0;
|
||||
Loader::ResultStatus res = loader->ReadProgramId(program_id);
|
||||
if (res != Loader::ResultStatus::Success) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getTitle(JNIEnv* env, jobject obj, jstring jpath) {
|
||||
return Common::Android::ToJString(env, GetRomMetadata(Common::Android::GetJString(env, jpath)).title);
|
||||
jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getTitle(JNIEnv* env, jobject obj,
|
||||
jstring jpath) {
|
||||
return Common::Android::ToJString(
|
||||
env, GetRomMetadata(Common::Android::GetJString(env, jpath)).title);
|
||||
}
|
||||
|
||||
jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getProgramId(JNIEnv* env, jobject obj, jstring jpath) {
|
||||
return Common::Android::ToJString(env, std::to_string(GetRomMetadata(Common::Android::GetJString(env, jpath)).programId));
|
||||
jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getProgramId(JNIEnv* env, jobject obj,
|
||||
jstring jpath) {
|
||||
return Common::Android::ToJString(
|
||||
env, std::to_string(GetRomMetadata(Common::Android::GetJString(env, jpath)).programId));
|
||||
}
|
||||
|
||||
jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getDeveloper(JNIEnv* env, jobject obj, jstring jpath) {
|
||||
return Common::Android::ToJString(env, GetRomMetadata(Common::Android::GetJString(env, jpath)).developer);
|
||||
jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getDeveloper(JNIEnv* env, jobject obj,
|
||||
jstring jpath) {
|
||||
return Common::Android::ToJString(
|
||||
env, GetRomMetadata(Common::Android::GetJString(env, jpath)).developer);
|
||||
}
|
||||
|
||||
jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getVersion(JNIEnv* env, jobject obj, jstring jpath, jboolean jreload) {
|
||||
return Common::Android::ToJString(env, GetRomMetadata(Common::Android::GetJString(env, jpath), jreload).version);
|
||||
jstring Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getVersion(JNIEnv* env, jobject obj,
|
||||
jstring jpath, jboolean jreload) {
|
||||
return Common::Android::ToJString(
|
||||
env, GetRomMetadata(Common::Android::GetJString(env, jpath), jreload).version);
|
||||
}
|
||||
|
||||
jbyteArray Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIcon(JNIEnv* env, jobject obj, jstring jpath) {
|
||||
jbyteArray Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIcon(JNIEnv* env, jobject obj,
|
||||
jstring jpath) {
|
||||
auto icon_data = GetRomMetadata(Common::Android::GetJString(env, jpath)).icon;
|
||||
jbyteArray icon = env->NewByteArray(jsize(icon_data.size()));
|
||||
env->SetByteArrayRegion(icon, 0, env->GetArrayLength(icon), reinterpret_cast<jbyte*>(icon_data.data()));
|
||||
jbyteArray icon = env->NewByteArray(static_cast<jsize>(icon_data.size()));
|
||||
env->SetByteArrayRegion(icon, 0, env->GetArrayLength(icon),
|
||||
reinterpret_cast<jbyte*>(icon_data.data()));
|
||||
return icon;
|
||||
}
|
||||
|
||||
jboolean Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIsHomebrew(JNIEnv* env, jobject obj, jstring jpath) {
|
||||
return jboolean(GetRomMetadata(Common::Android::GetJString(env, jpath)).isHomebrew);
|
||||
jboolean Java_org_yuzu_yuzu_1emu_utils_GameMetadata_getIsHomebrew(JNIEnv* env, jobject obj,
|
||||
jstring jpath) {
|
||||
return static_cast<jboolean>(
|
||||
GetRomMetadata(Common::Android::GetJString(env, jpath)).isHomebrew);
|
||||
}
|
||||
|
||||
void Java_org_yuzu_yuzu_1emu_utils_GameMetadata_resetMetadata(JNIEnv* env, jobject obj) {
|
||||
|
||||
@@ -50,7 +50,6 @@ extern "C" {
|
||||
#include "common/scope_exit.h"
|
||||
#include "common/settings.h"
|
||||
#include "common/string_util.h"
|
||||
#include "common/thread.h"
|
||||
#include "frontend_common/play_time_manager.h"
|
||||
#include "core/constants.h"
|
||||
#include "core/core.h"
|
||||
@@ -1183,10 +1182,6 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_logSettings(JNIEnv* env, jobject jobj
|
||||
Settings::LogSettings();
|
||||
}
|
||||
|
||||
void Java_org_yuzu_yuzu_1emu_NativeLibrary_refreshThreadPolicies(JNIEnv* env, jobject jobj) {
|
||||
Common::RefreshThreadPolicies();
|
||||
}
|
||||
|
||||
jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_getDebugKnobAt(JNIEnv* env, jobject jobj, jint index) {
|
||||
return static_cast<jboolean>(Settings::getDebugKnobAt(static_cast<u8>(index)));
|
||||
}
|
||||
|
||||
@@ -958,6 +958,7 @@
|
||||
<string name="clock_fast">سريع (2000MHz)</string>
|
||||
|
||||
<!-- GPU overclock factors -->
|
||||
<string name="off">تعطيل</string>
|
||||
<string name="fast_gpu_medium">متوسط (256)</string>
|
||||
<string name="fast_gpu_high">مرتفع (512)</string>
|
||||
|
||||
|
||||
@@ -884,6 +884,7 @@ Wirklich fortfahren?</string>
|
||||
<string name="clock_fast">Schnell (2000MHz)</string>
|
||||
|
||||
<!-- GPU overclock factors -->
|
||||
<string name="off">Aus</string>
|
||||
<string name="fast_gpu_medium">Mittel (256)</string>
|
||||
<string name="fast_gpu_high">Hoch (512)</string>
|
||||
|
||||
|
||||
@@ -950,6 +950,7 @@
|
||||
<string name="clock_fast">Rápido (2000MHz)</string>
|
||||
|
||||
<!-- GPU overclock factors -->
|
||||
<string name="off">Desactivado</string>
|
||||
<string name="fast_gpu_medium">Medio (256)</string>
|
||||
<string name="fast_gpu_high">Alto (512)</string>
|
||||
|
||||
|
||||
@@ -897,6 +897,7 @@
|
||||
<string name="clock_fast">Rapide (2000MHz)</string>
|
||||
|
||||
<!-- GPU overclock factors -->
|
||||
<string name="off">Désactivé</string>
|
||||
<string name="fast_gpu_medium">Moyen (256)</string>
|
||||
<string name="fast_gpu_high">Élevé (512)</string>
|
||||
|
||||
|
||||
@@ -871,6 +871,7 @@
|
||||
<string name="clock_fast">Szybkie (2000MHz)</string>
|
||||
|
||||
<!-- GPU overclock factors -->
|
||||
<string name="off">Wyłączone</string>
|
||||
<string name="fast_gpu_medium">Średnie (256)</string>
|
||||
<string name="fast_gpu_high">Wysokie (512)</string>
|
||||
|
||||
|
||||
@@ -954,6 +954,7 @@
|
||||
<string name="clock_fast">Быстрая (2000MHz)</string>
|
||||
|
||||
<!-- GPU overclock factors -->
|
||||
<string name="off">Выкл.</string>
|
||||
<string name="fast_gpu_medium">Среднее (256)</string>
|
||||
<string name="fast_gpu_high">Высокое (512)</string>
|
||||
|
||||
|
||||
@@ -943,6 +943,7 @@
|
||||
<string name="clock_fast">Швидко (2000 МГц)</string>
|
||||
|
||||
<!-- GPU overclock factors -->
|
||||
<string name="off">Вимкнено</string>
|
||||
<string name="fast_gpu_medium">Середньо (256)</string>
|
||||
<string name="fast_gpu_high">Високо (512)</string>
|
||||
|
||||
|
||||
@@ -948,6 +948,7 @@
|
||||
<string name="clock_fast">快速 (2000MHz)</string>
|
||||
|
||||
<!-- GPU overclock factors -->
|
||||
<string name="off">关闭</string>
|
||||
<string name="fast_gpu_medium">中 (256)</string>
|
||||
<string name="fast_gpu_high">高 (512)</string>
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
<string name="stats_overlay_options">疊加層</string>
|
||||
<string name="enable_stats_overlay_">啟用效能統計疊加層</string>
|
||||
<string name="stats_overlay_options_description">設定疊加層中顯示的資訊</string>
|
||||
<string name="show_fps">顯示影格率</string>
|
||||
<string name="show_fps">顯示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">導入/導出遊戲的儲存資料\n\n壓縮檔中首個子資料夾名稱必須為遊戲 ID</string>
|
||||
<string name="manage_save_data_description">導入/導出遊戲的儲存資料</string>
|
||||
<string name="import_save_warning">導入儲存資料</string>
|
||||
<string name="import_save_warning_description">這將會以提供的檔案覆寫現有的該遊戲儲存資料,您確定要繼續嗎?</string>
|
||||
<string name="save_files_importing">正在導入儲存資料…</string>
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</integer-array>
|
||||
|
||||
<string-array name="clockNames">
|
||||
<item>@string/clock_normal</item>
|
||||
<item>@string/off</item>
|
||||
<item>@string/clock_boost</item>
|
||||
<item>@string/clock_fast</item>
|
||||
</string-array>
|
||||
@@ -547,7 +547,7 @@
|
||||
</integer-array>
|
||||
|
||||
<string-array name="gpuEntries">
|
||||
<item>@string/fast_gpu_normal</item>
|
||||
<item>@string/off</item>
|
||||
<item>@string/fast_gpu_medium</item>
|
||||
<item>@string/fast_gpu_high</item>
|
||||
</string-array>
|
||||
|
||||
@@ -450,8 +450,8 @@
|
||||
<string name="set_custom_rtc">Set custom RTC</string>
|
||||
|
||||
<!-- CPU -->
|
||||
<string name="fast_cpu_time">CPU Clocks</string>
|
||||
<string name="fast_cpu_time_description">Raises the clock the emulated CPU reports, which removes some FPS limiters. Weaker CPUs may see reduced performance, and certain games may behave improperly.</string>
|
||||
<string name="fast_cpu_time">CPU Overclock</string>
|
||||
<string name="fast_cpu_time_description">Forces the emulated CPU to run at a higher clock, reducing certain FPS limiters. Use Boost (1700MHz) to run at the Switch\'s highest native clock, or Fast (2000MHz) to run at 2x clock.</string>
|
||||
<string name="custom_cpu_ticks">Custom CPU Ticks</string>
|
||||
<string name="custom_cpu_ticks_description">Set a custom value of CPU ticks. Higher values can increase performance, but may also cause the game to freeze. A range of 77–21000 is recommended.</string>
|
||||
<string name="cpu_ticks">Ticks</string>
|
||||
@@ -512,8 +512,8 @@
|
||||
|
||||
<string name="hacks">Hacks</string>
|
||||
|
||||
<string name="fast_gpu_time">GPU Clocks</string>
|
||||
<string name="fast_gpu_time_description">Makes the game believe GPU work finishes faster than it does, so it stops lowering resolution and render distance to fit the Switch\'s clocks.</string>
|
||||
<string name="fast_gpu_time">Fast GPU Time</string>
|
||||
<string name="fast_gpu_time_description">Forces most games to run at their highest native resolution. Use 256 for maximal performance and 512 for maximal graphics fidelity.</string>
|
||||
<string name="skip_cpu_inner_invalidation">Skip CPU Inner Invalidation</string>
|
||||
<string name="skip_cpu_inner_invalidation_description">Skips certain CPU-side cache invalidations during memory updates, reducing CPU usage and improving it\'s performance. This may cause glitches or crashes on some games.</string>
|
||||
<string name="fix_bloom_effects">Fix Bloom Effects</string>
|
||||
@@ -560,7 +560,6 @@
|
||||
|
||||
<!-- Debug settings strings -->
|
||||
<string name="cpu">CPU</string>
|
||||
<string name="clocks">Clocks</string>
|
||||
<string name="use_auto_stub">Use Auto Stub</string>
|
||||
<string name="use_auto_stub_description">Automatically stub missing services and functions. This may improve compatibility but can cause crashes and stability issues.</string>
|
||||
|
||||
@@ -969,15 +968,14 @@
|
||||
<string name="memory_6gb">6GB (Unsafe)</string>
|
||||
<string name="memory_8gb">8GB (Unsafe)</string>
|
||||
|
||||
<!-- CPU clock levels -->
|
||||
<string name="clock_normal">Normal</string>
|
||||
<string name="clock_boost">Boost</string>
|
||||
<string name="clock_fast">Overclock</string>
|
||||
<!--CPU clock speeds-->
|
||||
<string name="clock_boost">Boost (1700MHz)</string>
|
||||
<string name="clock_fast">Fast (2000MHz)</string>
|
||||
|
||||
<!-- GPU clock levels -->
|
||||
<string name="fast_gpu_normal">Normal</string>
|
||||
<string name="fast_gpu_medium">Boost</string>
|
||||
<string name="fast_gpu_high">Overclock</string>
|
||||
<!-- GPU overclock factors -->
|
||||
<string name="off">Off</string>
|
||||
<string name="fast_gpu_medium">Medium (256)</string>
|
||||
<string name="fast_gpu_high">High (512)</string>
|
||||
|
||||
<!-- GPU swizzle texture size -->
|
||||
<string name="gpu_texturesizeswizzle_verysmall">Very Small (16 MB)</string>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<game-mode-config
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:supportsBatteryGameMode="false"
|
||||
android:supportsBatteryGameMode="true"
|
||||
android:supportsPerformanceGameMode="true"
|
||||
android:allowGameDownscaling="false"
|
||||
android:allowGameFpsOverride="false"/>
|
||||
@@ -222,7 +222,7 @@ if (MSVC)
|
||||
)
|
||||
else()
|
||||
target_compile_options(audio_core PRIVATE
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wconversion>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -18,15 +18,20 @@
|
||||
namespace AudioCore::Renderer {
|
||||
|
||||
constexpr u32 TempBufferSize = 0x3F00;
|
||||
constexpr std::array<u8, 3> PitchBySrcQuality = {4, 8, 4};
|
||||
|
||||
/// @brief Decode PCM data. Only s16 or f32 is supported.
|
||||
/// @tparam T - Type to decode. Only s16 and f32 are supported.
|
||||
/// @param memory - Core memory for reading samples.
|
||||
/// @param out_buffer - Output mix buffer to receive the samples.
|
||||
/// @param req - Information for how to decode.
|
||||
/// @return Number of samples decoded.
|
||||
/**
|
||||
* Decode PCM data. Only s16 or f32 is supported.
|
||||
*
|
||||
* @tparam T - Type to decode. Only s16 and f32 are supported.
|
||||
* @param memory - Core memory for reading samples.
|
||||
* @param out_buffer - Output mix buffer to receive the samples.
|
||||
* @param req - Information for how to decode.
|
||||
* @return Number of samples decoded.
|
||||
*/
|
||||
template <typename T>
|
||||
static u32 DecodePcm(Core::Memory::Memory& memory, std::span<s16> out_buffer, const DecodeArg& req) {
|
||||
static u32 DecodePcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
|
||||
const DecodeArg& req) {
|
||||
constexpr s32 min{(std::numeric_limits<s16>::min)()};
|
||||
constexpr s32 max{(std::numeric_limits<s16>::max)()};
|
||||
|
||||
@@ -89,12 +94,16 @@ static u32 DecodePcm(Core::Memory::Memory& memory, std::span<s16> out_buffer, co
|
||||
return samples_to_decode;
|
||||
}
|
||||
|
||||
/// @brief Decode ADPCM data.
|
||||
/// @param memory - Core memory for reading samples.
|
||||
/// @param out_buffer - Output mix buffer to receive the samples.
|
||||
/// @param req - Information for how to decode.
|
||||
/// @return Number of samples decoded.
|
||||
static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer, const DecodeArg& req) {
|
||||
/**
|
||||
* Decode ADPCM data.
|
||||
*
|
||||
* @param memory - Core memory for reading samples.
|
||||
* @param out_buffer - Output mix buffer to receive the samples.
|
||||
* @param req - Information for how to decode.
|
||||
* @return Number of samples decoded.
|
||||
*/
|
||||
static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
|
||||
const DecodeArg& req) {
|
||||
constexpr u32 SamplesPerFrame{14};
|
||||
constexpr u32 NibblesPerFrame{16};
|
||||
|
||||
@@ -106,7 +115,8 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
|
||||
return 0;
|
||||
}
|
||||
|
||||
auto end{(req.end_offset % SamplesPerFrame) + NibblesPerFrame * (req.end_offset / SamplesPerFrame)};
|
||||
auto end{(req.end_offset % SamplesPerFrame) +
|
||||
NibblesPerFrame * (req.end_offset / SamplesPerFrame)};
|
||||
if (req.end_offset % SamplesPerFrame) {
|
||||
end += 3;
|
||||
} else {
|
||||
@@ -123,49 +133,52 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
|
||||
return 0;
|
||||
}
|
||||
|
||||
auto samples_to_read = samples_to_process;
|
||||
auto samples_remaining_in_frame = start_pos % SamplesPerFrame;
|
||||
auto position_in_frame = (start_pos / SamplesPerFrame) * NibblesPerFrame + samples_remaining_in_frame;
|
||||
auto samples_to_read{samples_to_process};
|
||||
auto samples_remaining_in_frame{start_pos % SamplesPerFrame};
|
||||
auto position_in_frame{(start_pos / SamplesPerFrame) * NibblesPerFrame +
|
||||
samples_remaining_in_frame};
|
||||
|
||||
if (samples_remaining_in_frame) {
|
||||
position_in_frame += 2;
|
||||
}
|
||||
|
||||
const auto size{(std::max)((samples_to_process / 8U) * SamplesPerFrame, 8U)};
|
||||
Core::Memory::CpuGuestMemory<u8, Core::Memory::GuestMemoryFlags::UnsafeRead> wavebuffer(memory, req.buffer + position_in_frame / 2, size);
|
||||
Core::Memory::CpuGuestMemory<u8, Core::Memory::GuestMemoryFlags::UnsafeRead> wavebuffer(
|
||||
memory, req.buffer + position_in_frame / 2, size);
|
||||
|
||||
auto context = req.adpcm_context;
|
||||
auto header = context->header;
|
||||
u8 scale = u8(header & 0xfU);
|
||||
u8 coeff_index = u8((header >> 4U) & 0x7u);
|
||||
s32 coeff0 = req.coefficients[coeff_index * 2 + 0];
|
||||
s32 coeff1 = req.coefficients[coeff_index * 2 + 1];
|
||||
auto context{req.adpcm_context};
|
||||
auto header{context->header};
|
||||
u8 coeff_index{static_cast<u8>((header >> 4U) & 0xFU)};
|
||||
u8 scale{static_cast<u8>(header & 0xFU)};
|
||||
s32 coeff0{req.coefficients[coeff_index * 2 + 0]};
|
||||
s32 coeff1{req.coefficients[coeff_index * 2 + 1]};
|
||||
|
||||
auto yn0 = context->yn0;
|
||||
auto yn1 = context->yn1;
|
||||
auto const get_step = [](u32 index) {
|
||||
// Emulates the following table
|
||||
// 0, 1, 2, 3, 4, 5, 6, 7, -8, -7, -6, -5, -4, -3, -2, -1,
|
||||
constexpr u64 steps_table = 0x1234567876543210ull;
|
||||
constexpr u64 steps_sign = 0b1111111100000000ull;
|
||||
auto const r = s32((steps_table >> (index * 4)) & 0xf);
|
||||
return ((steps_sign >> index) & 1) == 0 ? -r : r;
|
||||
auto yn0{context->yn0};
|
||||
auto yn1{context->yn1};
|
||||
|
||||
static constexpr std::array<s32, 16> Steps{
|
||||
0, 1, 2, 3, 4, 5, 6, 7, -8, -7, -6, -5, -4, -3, -2, -1,
|
||||
};
|
||||
auto const decode_sample = [&](const s32 code) -> s16 {
|
||||
|
||||
const auto decode_sample = [&](const s32 code) -> s16 {
|
||||
const auto xn = code * (1 << scale);
|
||||
const auto prediction = coeff0 * yn0 + coeff1 * yn1;
|
||||
const auto sample = ((xn << 11) + 0x400 + prediction) >> 11;
|
||||
const auto saturated = std::clamp<s32>(sample, -0x8000, 0x7FFF);
|
||||
yn1 = yn0;
|
||||
return yn0 = s16(saturated);
|
||||
yn0 = static_cast<s16>(saturated);
|
||||
return yn0;
|
||||
};
|
||||
|
||||
u32 read_index = 0;
|
||||
for (u32 write_index = 0; samples_to_read > 0 && write_index < out_buffer.size(); ) {
|
||||
u32 read_index{0};
|
||||
u32 write_index{0};
|
||||
|
||||
while (samples_to_read > 0) {
|
||||
// Are we at a new frame?
|
||||
if ((position_in_frame % NibblesPerFrame) == 0) {
|
||||
header = wavebuffer[read_index++];
|
||||
scale = header & 0xFu;
|
||||
coeff_index = (header >> 4) & 0x7u;
|
||||
coeff_index = (header >> 4) & 0xF;
|
||||
scale = header & 0xF;
|
||||
coeff0 = req.coefficients[coeff_index * 2 + 0];
|
||||
coeff1 = req.coefficients[coeff_index * 2 + 1];
|
||||
position_in_frame += 2;
|
||||
@@ -174,12 +187,14 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
|
||||
if (samples_to_read >= SamplesPerFrame) {
|
||||
// Can grab all samples until the next header
|
||||
for (u32 i = 0; i < SamplesPerFrame / 2; i++) {
|
||||
auto code0 = get_step((wavebuffer[read_index + i] >> 4) & 0xF);
|
||||
auto code1 = get_step(wavebuffer[read_index + i] & 0xF);
|
||||
auto code0{Steps[(wavebuffer[read_index] >> 4) & 0xF]};
|
||||
auto code1{Steps[wavebuffer[read_index] & 0xF]};
|
||||
read_index++;
|
||||
|
||||
out_buffer[write_index++] = decode_sample(code0);
|
||||
out_buffer[write_index++] = decode_sample(code1);
|
||||
}
|
||||
read_index += SamplesPerFrame / 2;
|
||||
|
||||
position_in_frame += SamplesPerFrame;
|
||||
samples_to_read -= SamplesPerFrame;
|
||||
continue;
|
||||
@@ -187,14 +202,15 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
|
||||
}
|
||||
|
||||
// Decode a single sample
|
||||
auto code = wavebuffer[read_index];
|
||||
auto code{wavebuffer[read_index]};
|
||||
if (position_in_frame & 1) {
|
||||
code &= 0xF;
|
||||
read_index++;
|
||||
} else {
|
||||
code >>= 4;
|
||||
}
|
||||
out_buffer[write_index++] = decode_sample(get_step(code));
|
||||
|
||||
out_buffer[write_index++] = decode_sample(Steps[code]);
|
||||
|
||||
position_in_frame++;
|
||||
samples_to_read--;
|
||||
@@ -203,21 +219,27 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
|
||||
context->header = header;
|
||||
context->yn0 = yn0;
|
||||
context->yn1 = yn1;
|
||||
|
||||
return samples_to_process;
|
||||
}
|
||||
|
||||
/// @brief Decode implementation.
|
||||
/// Decode wavebuffers according to the given args.
|
||||
///
|
||||
/// @param memory - Core memory to read data from.
|
||||
/// @param args - The wavebuffer data, and information for how to decode it.
|
||||
/**
|
||||
* Decode implementation.
|
||||
* Decode wavebuffers according to the given args.
|
||||
*
|
||||
* @param memory - Core memory to read data from.
|
||||
* @param args - The wavebuffer data, and information for how to decode it.
|
||||
*/
|
||||
void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuffersArgs& args) {
|
||||
constexpr auto EndWaveBuffer = [](auto& voice_state, auto& wavebuffer, auto& index, auto& played_samples, auto& consumed) -> void {
|
||||
static constexpr auto EndWaveBuffer = [](auto& voice_state, auto& wavebuffer, auto& index,
|
||||
auto& played_samples, auto& consumed) -> void {
|
||||
voice_state.wave_buffer_valid[index] = false;
|
||||
voice_state.loop_count = 0;
|
||||
|
||||
if (wavebuffer.stream_ended) {
|
||||
played_samples = 0;
|
||||
}
|
||||
|
||||
index = (index + 1) % MaxWaveBuffers;
|
||||
consumed++;
|
||||
};
|
||||
@@ -233,9 +255,8 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
|
||||
return;
|
||||
}
|
||||
|
||||
// 0 -> 4, 1 -> 8, 2 -> 4
|
||||
auto pitch = u32((0x040804ul >> (u32(args.src_quality) * 8)) & 0xfful);
|
||||
if (u32(pitch + size_required.to_int_floor()) > TempBufferSize) {
|
||||
auto pitch{PitchBySrcQuality[static_cast<u32>(args.src_quality)]};
|
||||
if (static_cast<u32>(pitch + size_required.to_int_floor()) > TempBufferSize) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -251,7 +272,7 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
|
||||
bool is_buffer_starved{false};
|
||||
u32 offset{voice_state.offset};
|
||||
|
||||
auto output_buffer = args.output;
|
||||
auto output_buffer{args.output};
|
||||
std::array<s16, TempBufferSize> temp_buffer{};
|
||||
|
||||
while (remaining_sample_count > 0) {
|
||||
@@ -273,8 +294,8 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
|
||||
if (wavebuffer_index >= MaxWaveBuffers) {
|
||||
LOG_ERROR(Service_Audio, "Invalid wavebuffer index! {}", wavebuffer_index);
|
||||
wavebuffer_index = 0;
|
||||
wavebuffers_consumed = MaxWaveBuffers;
|
||||
voice_state.wave_buffer_valid.fill(false);
|
||||
wavebuffers_consumed = MaxWaveBuffers;
|
||||
}
|
||||
|
||||
if (!voice_state.wave_buffer_valid[wavebuffer_index]) {
|
||||
@@ -282,9 +303,12 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
|
||||
break;
|
||||
}
|
||||
|
||||
auto& wavebuffer = args.wave_buffers[wavebuffer_index];
|
||||
if (offset == 0 && args.sample_format == SampleFormat::Adpcm && wavebuffer.context != 0) {
|
||||
memory.ReadBlockUnsafe(wavebuffer.context, &voice_state.adpcm_context, wavebuffer.context_size);
|
||||
auto& wavebuffer{args.wave_buffers[wavebuffer_index]};
|
||||
|
||||
if (offset == 0 && args.sample_format == SampleFormat::Adpcm &&
|
||||
wavebuffer.context != 0) {
|
||||
memory.ReadBlockUnsafe(wavebuffer.context, &voice_state.adpcm_context,
|
||||
wavebuffer.context_size);
|
||||
}
|
||||
|
||||
auto start_offset{wavebuffer.start_offset};
|
||||
@@ -327,7 +351,9 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
|
||||
case SampleFormat::Adpcm: {
|
||||
decode_arg.adpcm_context = &voice_state.adpcm_context;
|
||||
memory.ReadBlockUnsafe(args.data_address, &decode_arg.coefficients, args.data_size);
|
||||
samples_decoded = DecodeAdpcm( memory, {&temp_buffer[temp_buffer_pos], TempBufferSize - temp_buffer_pos}, decode_arg);
|
||||
samples_decoded = DecodeAdpcm(
|
||||
memory, {&temp_buffer[temp_buffer_pos], TempBufferSize - temp_buffer_pos},
|
||||
decode_arg);
|
||||
} break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
@@ -8,13 +5,21 @@
|
||||
|
||||
namespace AudioCore::Renderer {
|
||||
|
||||
static void ResampleLowQuality(std::span<s32> output, std::span<const s16> input, const Common::FixedPoint<49, 15>& sample_rate_ratio, Common::FixedPoint<49, 15>& fraction, const u32 samples_to_write) {
|
||||
u32 read_index{0};
|
||||
for (u32 i = 0; i < samples_to_write; i++) {
|
||||
output[i] = input[read_index + (fraction >= 0.5f)];
|
||||
fraction += sample_rate_ratio;
|
||||
read_index += u32(fraction.to_int_floor());
|
||||
fraction.clear_int();
|
||||
static void ResampleLowQuality(std::span<s32> output, std::span<const s16> input,
|
||||
const Common::FixedPoint<49, 15>& sample_rate_ratio,
|
||||
Common::FixedPoint<49, 15>& fraction, const u32 samples_to_write) {
|
||||
if (sample_rate_ratio == 1.0f) {
|
||||
for (u32 i = 0; i < samples_to_write; i++) {
|
||||
output[i] = input[i];
|
||||
}
|
||||
} else {
|
||||
u32 read_index{0};
|
||||
for (u32 i = 0; i < samples_to_write; i++) {
|
||||
output[i] = input[read_index + (fraction >= 0.5f)];
|
||||
fraction += sample_rate_ratio;
|
||||
read_index += static_cast<u32>(fraction.to_int_floor());
|
||||
fraction.clear_int();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -290,7 +295,7 @@ static void ResampleNormalQuality(std::span<s32> output, std::span<const s16> in
|
||||
auto lut{get_lut()};
|
||||
u32 read_index{0};
|
||||
for (u32 i = 0; i < samples_to_write; i++) {
|
||||
const auto lut_index = ((fraction.get_frac() >> 8) << 2) & 511;
|
||||
const auto lut_index{(fraction.get_frac() >> 8) * 4};
|
||||
const Common::FixedPoint<56, 8> sample0{input[read_index + 0] * lut[lut_index + 0]};
|
||||
const Common::FixedPoint<56, 8> sample1{input[read_index + 1] * lut[lut_index + 1]};
|
||||
const Common::FixedPoint<56, 8> sample2{input[read_index + 2] * lut[lut_index + 2]};
|
||||
@@ -840,7 +845,7 @@ static void ResampleHighQuality(std::span<s32> output, std::span<const s16> inpu
|
||||
auto lut{get_lut()};
|
||||
u32 read_index{0};
|
||||
for (u32 i = 0; i < samples_to_write; i++) {
|
||||
const auto lut_index = ((fraction.get_frac() >> 8) << 3) & 1023;
|
||||
const auto lut_index{(fraction.get_frac() >> 8) * 8};
|
||||
const Common::FixedPoint<56, 8> sample0{input[read_index + 0] * lut[lut_index + 0]};
|
||||
const Common::FixedPoint<56, 8> sample1{input[read_index + 1] * lut[lut_index + 1]};
|
||||
const Common::FixedPoint<56, 8> sample2{input[read_index + 2] * lut[lut_index + 2]};
|
||||
|
||||
@@ -121,8 +121,6 @@ add_library(
|
||||
swap.h
|
||||
thread.cpp
|
||||
thread.h
|
||||
adpf.cpp
|
||||
adpf.h
|
||||
thread_queue_list.h
|
||||
thread_worker.h
|
||||
threadsafe_queue.h
|
||||
@@ -220,7 +218,7 @@ endif()
|
||||
if(CXX_CLANG)
|
||||
target_compile_options(common PRIVATE
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-fsized-deallocation>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wunreachable-code-aggressive>)
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=unreachable-code-aggressive>)
|
||||
target_compile_definitions(
|
||||
common
|
||||
PRIVATE
|
||||
|
||||
@@ -1,317 +0,0 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "common/adpf.h"
|
||||
|
||||
#ifdef __ANDROID__
|
||||
|
||||
#include <algorithm>
|
||||
#include <array>
|
||||
#include <atomic>
|
||||
#include <cstdint>
|
||||
#include <mutex>
|
||||
#include <vector>
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "common/logging.h"
|
||||
|
||||
namespace Common::ADPF {
|
||||
|
||||
namespace {
|
||||
|
||||
constexpr std::chrono::nanoseconds DEFAULT_TARGET = std::chrono::nanoseconds{16'666'667};
|
||||
|
||||
struct AHintManager;
|
||||
struct AHintSession;
|
||||
|
||||
using PFN_GetManager = AHintManager* (*)();
|
||||
using PFN_CreateSession = AHintSession* (*)(AHintManager*, const s32*, size_t, s64);
|
||||
using PFN_CloseSession = void (*)(AHintSession*);
|
||||
using PFN_UpdateTarget = int (*)(AHintSession*, s64);
|
||||
using PFN_ReportActual = int (*)(AHintSession*, s64);
|
||||
using PFN_SetThreads = int (*)(AHintSession*, const pid_t*, size_t);
|
||||
using PFN_SetPowerEfficiency = int (*)(AHintSession*, bool);
|
||||
|
||||
struct Api {
|
||||
PFN_GetManager get_manager = nullptr;
|
||||
PFN_CreateSession create_session = nullptr;
|
||||
PFN_CloseSession close_session = nullptr;
|
||||
PFN_UpdateTarget update_target = nullptr;
|
||||
PFN_ReportActual report_actual = nullptr;
|
||||
PFN_SetThreads set_threads = nullptr;
|
||||
PFN_SetPowerEfficiency set_power_efficiency = nullptr;
|
||||
AHintManager* manager = nullptr;
|
||||
bool usable = false;
|
||||
};
|
||||
|
||||
const Api& Resolve() {
|
||||
static const Api api = [] {
|
||||
Api resolved;
|
||||
void* library = dlopen("libandroid.so", RTLD_NOW);
|
||||
if (library == nullptr) {
|
||||
LOG_INFO(Common, "libandroid.so unavailable, ADPF is disabled");
|
||||
return resolved;
|
||||
}
|
||||
const auto load = [library](const char* name) { return dlsym(library, name); };
|
||||
|
||||
resolved.get_manager = reinterpret_cast<PFN_GetManager>(load("APerformanceHint_getManager"));
|
||||
resolved.create_session =
|
||||
reinterpret_cast<PFN_CreateSession>(load("APerformanceHint_createSession"));
|
||||
resolved.close_session =
|
||||
reinterpret_cast<PFN_CloseSession>(load("APerformanceHint_closeSession"));
|
||||
resolved.update_target =
|
||||
reinterpret_cast<PFN_UpdateTarget>(load("APerformanceHint_updateTargetWorkDuration"));
|
||||
resolved.report_actual =
|
||||
reinterpret_cast<PFN_ReportActual>(load("APerformanceHint_reportActualWorkDuration"));
|
||||
resolved.set_threads =
|
||||
reinterpret_cast<PFN_SetThreads>(load("APerformanceHint_setThreads"));
|
||||
resolved.set_power_efficiency = reinterpret_cast<PFN_SetPowerEfficiency>(
|
||||
load("APerformanceHint_setPreferPowerEfficiency"));
|
||||
|
||||
if (resolved.get_manager == nullptr || resolved.create_session == nullptr ||
|
||||
resolved.close_session == nullptr || resolved.update_target == nullptr ||
|
||||
resolved.report_actual == nullptr) {
|
||||
LOG_INFO(Common, "Performance hint API not exported, ADPF is disabled");
|
||||
return resolved;
|
||||
}
|
||||
|
||||
resolved.manager = resolved.get_manager();
|
||||
if (resolved.manager == nullptr) {
|
||||
LOG_INFO(Common, "Device does not provide a performance hint manager");
|
||||
return resolved;
|
||||
}
|
||||
|
||||
resolved.usable = true;
|
||||
LOG_INFO(Common, "ADPF available, setThreads {}, power efficiency {}",
|
||||
resolved.set_threads != nullptr ? "yes" : "no",
|
||||
resolved.set_power_efficiency != nullptr ? "yes" : "no");
|
||||
return resolved;
|
||||
}();
|
||||
return api;
|
||||
}
|
||||
|
||||
struct SessionState {
|
||||
AHintSession* handle = nullptr;
|
||||
std::vector<pid_t> threads;
|
||||
bool unsupported = false;
|
||||
};
|
||||
|
||||
std::mutex g_mutex;
|
||||
std::array<SessionState, 2> g_sessions;
|
||||
|
||||
constexpr s64 MAX_REPORTED_TARGETS = 4;
|
||||
|
||||
std::atomic<s64> g_target_ns{DEFAULT_TARGET.count()};
|
||||
thread_local std::chrono::steady_clock::time_point t_last_frame{};
|
||||
|
||||
SessionState& StateOf(Session session) {
|
||||
return g_sessions[static_cast<size_t>(session)];
|
||||
}
|
||||
|
||||
bool IsBackgroundUsable(const Api& api) {
|
||||
return api.set_power_efficiency != nullptr;
|
||||
}
|
||||
|
||||
void CloseLocked(SessionState& state) {
|
||||
if (state.handle != nullptr) {
|
||||
Resolve().close_session(state.handle);
|
||||
state.handle = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
AHintSession* CreateSessionFor(Session session, const std::vector<pid_t>& threads) {
|
||||
const Api& api = Resolve();
|
||||
const s64 target = session == Session::Render ? g_target_ns.load(std::memory_order_relaxed) : 0;
|
||||
|
||||
std::vector<s32> ids;
|
||||
ids.reserve(threads.size());
|
||||
for (const pid_t tid : threads) {
|
||||
ids.push_back(static_cast<s32>(tid));
|
||||
}
|
||||
|
||||
AHintSession* handle = api.create_session(api.manager, ids.data(), ids.size(), target);
|
||||
if (handle == nullptr && target == 0) {
|
||||
handle = api.create_session(api.manager, ids.data(), ids.size(), DEFAULT_TARGET.count());
|
||||
}
|
||||
if (handle == nullptr) {
|
||||
return nullptr;
|
||||
}
|
||||
if (session == Session::Background && api.set_power_efficiency != nullptr) {
|
||||
api.set_power_efficiency(handle, true);
|
||||
}
|
||||
return handle;
|
||||
}
|
||||
|
||||
bool SyncLocked(Session session, SessionState& state) {
|
||||
if (state.threads.empty()) {
|
||||
CloseLocked(state);
|
||||
return false;
|
||||
}
|
||||
|
||||
const Api& api = Resolve();
|
||||
if (state.handle != nullptr && api.set_threads != nullptr) {
|
||||
std::vector<pid_t> ids = state.threads;
|
||||
if (api.set_threads(state.handle, ids.data(), ids.size()) == 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
AHintSession* const replacement = CreateSessionFor(session, state.threads);
|
||||
if (replacement == nullptr) {
|
||||
if (state.handle == nullptr) {
|
||||
state.unsupported = true;
|
||||
}
|
||||
LOG_WARNING(Common, "Could not open a performance hint session for {} threads, falling back",
|
||||
state.threads.size());
|
||||
return false;
|
||||
}
|
||||
CloseLocked(state);
|
||||
state.handle = replacement;
|
||||
return true;
|
||||
}
|
||||
|
||||
} // Anonymous namespace
|
||||
|
||||
bool IsSessionSupported(Session session) {
|
||||
const Api& api = Resolve();
|
||||
if (!api.usable) {
|
||||
return false;
|
||||
}
|
||||
if (session == Session::Background && !IsBackgroundUsable(api)) {
|
||||
return false;
|
||||
}
|
||||
std::scoped_lock lock{g_mutex};
|
||||
return !StateOf(session).unsupported;
|
||||
}
|
||||
|
||||
bool AddCurrentThread(Session session) {
|
||||
if (!IsSessionSupported(session)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const pid_t tid = gettid();
|
||||
std::scoped_lock lock{g_mutex};
|
||||
|
||||
for (size_t i = 0; i < g_sessions.size(); ++i) {
|
||||
SessionState& state = g_sessions[i];
|
||||
if (static_cast<size_t>(session) == i) {
|
||||
continue;
|
||||
}
|
||||
const auto it = std::find(state.threads.begin(), state.threads.end(), tid);
|
||||
if (it != state.threads.end()) {
|
||||
state.threads.erase(it);
|
||||
SyncLocked(static_cast<Session>(i), state);
|
||||
}
|
||||
}
|
||||
|
||||
SessionState& state = StateOf(session);
|
||||
const bool added =
|
||||
std::find(state.threads.begin(), state.threads.end(), tid) == state.threads.end();
|
||||
if (added) {
|
||||
state.threads.push_back(tid);
|
||||
}
|
||||
if (!SyncLocked(session, state)) {
|
||||
if (added) {
|
||||
std::erase(state.threads, tid);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void RemoveCurrentThread() {
|
||||
if (!Resolve().usable) {
|
||||
return;
|
||||
}
|
||||
const pid_t tid = gettid();
|
||||
std::scoped_lock lock{g_mutex};
|
||||
for (size_t i = 0; i < g_sessions.size(); ++i) {
|
||||
SessionState& state = g_sessions[i];
|
||||
if (std::erase(state.threads, tid) != 0) {
|
||||
SyncLocked(static_cast<Session>(i), state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void SetTargetWorkDuration(std::chrono::nanoseconds target) {
|
||||
const Api& api = Resolve();
|
||||
if (!api.usable || target.count() <= 0) {
|
||||
return;
|
||||
}
|
||||
if (g_target_ns.exchange(target.count(), std::memory_order_relaxed) == target.count()) {
|
||||
return;
|
||||
}
|
||||
std::scoped_lock lock{g_mutex};
|
||||
SessionState& state = StateOf(Session::Render);
|
||||
if (state.handle != nullptr) {
|
||||
api.update_target(state.handle, target.count());
|
||||
}
|
||||
}
|
||||
|
||||
void ReportFrameInterval() {
|
||||
const Api& api = Resolve();
|
||||
if (!api.usable) {
|
||||
return;
|
||||
}
|
||||
|
||||
const auto now = std::chrono::steady_clock::now();
|
||||
const auto previous = t_last_frame;
|
||||
t_last_frame = now;
|
||||
if (previous.time_since_epoch().count() == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
s64 actual = std::chrono::duration_cast<std::chrono::nanoseconds>(now - previous).count();
|
||||
if (actual <= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const s64 ceiling = g_target_ns.load(std::memory_order_relaxed) * MAX_REPORTED_TARGETS;
|
||||
actual = (std::min)(actual, ceiling);
|
||||
|
||||
std::scoped_lock lock{g_mutex};
|
||||
SessionState& state = StateOf(Session::Render);
|
||||
if (state.handle != nullptr) {
|
||||
api.report_actual(state.handle, actual);
|
||||
}
|
||||
}
|
||||
|
||||
void Shutdown() {
|
||||
if (!Resolve().usable) {
|
||||
return;
|
||||
}
|
||||
std::scoped_lock lock{g_mutex};
|
||||
for (SessionState& state : g_sessions) {
|
||||
CloseLocked(state);
|
||||
state.threads.clear();
|
||||
state.unsupported = false;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Common::ADPF
|
||||
|
||||
#else
|
||||
|
||||
namespace Common::ADPF {
|
||||
|
||||
bool IsSessionSupported(Session) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool AddCurrentThread(Session) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void RemoveCurrentThread() {}
|
||||
|
||||
void SetTargetWorkDuration(std::chrono::nanoseconds) {}
|
||||
|
||||
void ReportFrameInterval() {}
|
||||
|
||||
void Shutdown() {}
|
||||
|
||||
} // namespace Common::ADPF
|
||||
|
||||
#endif
|
||||
@@ -1,26 +0,0 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <chrono>
|
||||
|
||||
namespace Common::ADPF {
|
||||
|
||||
enum class Session {
|
||||
Render,
|
||||
Background,
|
||||
};
|
||||
|
||||
bool IsSessionSupported(Session session);
|
||||
|
||||
bool AddCurrentThread(Session session);
|
||||
void RemoveCurrentThread();
|
||||
|
||||
void SetTargetWorkDuration(std::chrono::nanoseconds target);
|
||||
|
||||
void ReportFrameInterval();
|
||||
|
||||
void Shutdown();
|
||||
|
||||
} // namespace Common::ADPF
|
||||
+11
-19
@@ -260,10 +260,10 @@ struct Values {
|
||||
Category::Cpu};
|
||||
SwitchableSetting<CpuAccuracy, true> cpu_accuracy{linkage, CpuAccuracy::Auto,
|
||||
"cpu_accuracy", Category::Cpu};
|
||||
SwitchableSetting<CpuClock> cpu_clock{linkage,
|
||||
CpuClock::Normal,
|
||||
SwitchableSetting<CpuClock> fast_cpu_time{linkage,
|
||||
CpuClock::Off,
|
||||
"fast_cpu_time",
|
||||
Category::System,
|
||||
Category::Cpu,
|
||||
Specialization::Default,
|
||||
true,
|
||||
true};
|
||||
@@ -540,13 +540,13 @@ struct Values {
|
||||
#endif
|
||||
|
||||
// Renderer Hacks //
|
||||
SwitchableSetting<GpuClock> gpu_clock{linkage,
|
||||
GpuClock::Boost,
|
||||
"fast_gpu_time",
|
||||
Category::System,
|
||||
Specialization::Default,
|
||||
true,
|
||||
true};
|
||||
SwitchableSetting<GpuOverclock> fast_gpu_time{linkage,
|
||||
GpuOverclock::Medium,
|
||||
"fast_gpu_time",
|
||||
Category::RendererHacks,
|
||||
Specialization::Default,
|
||||
true,
|
||||
true};
|
||||
|
||||
SwitchableSetting<bool> skip_cpu_inner_invalidation{linkage,
|
||||
false,
|
||||
@@ -702,15 +702,7 @@ 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
|
||||
|
||||
@@ -140,7 +140,7 @@ ENUM(DmaAccuracy, Default, Unsafe, Safe);
|
||||
ENUM(GpuFenceBehavior, Default, Immediate, Balanced, Accurate, Strict);
|
||||
ENUM(CpuBackend, Dynarmic, Nce);
|
||||
ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid, Debugging);
|
||||
ENUM(CpuClock, Normal, Boost, Overclock)
|
||||
ENUM(CpuClock, Off, Boost, Fast)
|
||||
ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb, Memory_10Gb, Memory_12Gb);
|
||||
ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
|
||||
ENUM(FullscreenMode, Borderless, Exclusive);
|
||||
@@ -152,7 +152,7 @@ ENUM(AspectRatio, R16_9, R4_3, R21_9, R16_10, Stretch);
|
||||
ENUM(ConsoleMode, Handheld, Docked);
|
||||
ENUM(AppletMode, HLE, LLE);
|
||||
ENUM(SpirvOptimizeMode, Never, OnLoad, Always);
|
||||
ENUM(GpuClock, Normal, Boost, Overclock)
|
||||
ENUM(GpuOverclock, Normal, Medium, High)
|
||||
ENUM(GpuUnswizzleSize, VerySmall, Small, Normal, Large, VeryLarge)
|
||||
ENUM(GpuUnswizzle, VeryLow, Low, Normal, Medium, High)
|
||||
ENUM(GpuUnswizzleChunk, VeryLow, Low, Normal, Medium, High)
|
||||
|
||||
+33
-505
@@ -1,6 +1,5 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: 2013 Dolphin Emulator Project
|
||||
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
@@ -10,7 +9,6 @@
|
||||
#include <string>
|
||||
#include <thread>
|
||||
|
||||
#include "common/adpf.h"
|
||||
#include "common/error.h"
|
||||
#include "common/logging.h"
|
||||
#include "common/assert.h"
|
||||
@@ -41,402 +39,6 @@
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#ifdef __linux__
|
||||
#include <sys/resource.h>
|
||||
#include <algorithm>
|
||||
|
||||
namespace {
|
||||
constexpr int NICE_AUDIO = -16;
|
||||
constexpr int NICE_URGENT_DISPLAY = -8;
|
||||
constexpr int NICE_DISPLAY = -4;
|
||||
constexpr int NICE_DEFAULT = 0;
|
||||
constexpr int NICE_BACKGROUND = 10;
|
||||
|
||||
int LowestAllowedNice() {
|
||||
static const int lowest = [] {
|
||||
rlimit limit{};
|
||||
if (getrlimit(RLIMIT_NICE, &limit) != 0) {
|
||||
return 0;
|
||||
}
|
||||
if (limit.rlim_cur >= 40) {
|
||||
return -20;
|
||||
}
|
||||
return 20 - static_cast<int>(limit.rlim_cur);
|
||||
}();
|
||||
return lowest;
|
||||
}
|
||||
|
||||
int NiceValueForPriority(Common::ThreadPriority priority) {
|
||||
const int wanted = [priority] {
|
||||
switch (priority) {
|
||||
case Common::ThreadPriority::Low: return NICE_BACKGROUND;
|
||||
case Common::ThreadPriority::Normal: return NICE_DEFAULT;
|
||||
case Common::ThreadPriority::High: return NICE_DISPLAY;
|
||||
case Common::ThreadPriority::VeryHigh: return NICE_URGENT_DISPLAY;
|
||||
case Common::ThreadPriority::Critical: return NICE_AUDIO;
|
||||
default: return NICE_DEFAULT;
|
||||
}
|
||||
}();
|
||||
return (std::max)(wanted, (std::min)(NICE_DEFAULT, LowestAllowedNice()));
|
||||
}
|
||||
} // Anonymous namespace
|
||||
#endif
|
||||
|
||||
#ifdef __ANDROID__
|
||||
#include <sys/utsname.h>
|
||||
#include <atomic>
|
||||
#include <cerrno>
|
||||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
#include <fstream>
|
||||
#include <mutex>
|
||||
#include <vector>
|
||||
|
||||
namespace {
|
||||
constexpr size_t ANDROID_MINIMUM_PERFORMANCE_CORES = 4;
|
||||
|
||||
// A core counts as a performance core while it is within this much of the fastest one.
|
||||
constexpr s64 ANDROID_PERFORMANCE_CAPACITY_PERCENT = 50;
|
||||
|
||||
constexpr std::chrono::nanoseconds ANDROID_POLICY_POLL_INTERVAL = std::chrono::milliseconds{500};
|
||||
|
||||
enum class CoreGroup {
|
||||
Unrestricted,
|
||||
Performance,
|
||||
Efficiency,
|
||||
};
|
||||
|
||||
struct ThreadPolicy {
|
||||
pid_t tid;
|
||||
CoreGroup group;
|
||||
s32 nice_value;
|
||||
bool has_nice;
|
||||
};
|
||||
|
||||
struct CoreInfo {
|
||||
s64 weight;
|
||||
u64 midr;
|
||||
s32 cpu;
|
||||
};
|
||||
|
||||
struct CpuTopologyState {
|
||||
std::mutex topology_mutex;
|
||||
cpu_set_t allowed{};
|
||||
cpu_set_t performance{};
|
||||
cpu_set_t efficiency{};
|
||||
bool separated = false;
|
||||
bool initialized = false;
|
||||
|
||||
pid_t canary_tid = 0;
|
||||
cpu_set_t canary_mask{};
|
||||
bool canary_valid = false;
|
||||
|
||||
std::atomic<s64> next_poll_ns{0};
|
||||
|
||||
std::mutex policy_mutex;
|
||||
std::vector<ThreadPolicy> policies;
|
||||
};
|
||||
|
||||
CpuTopologyState& State() {
|
||||
static CpuTopologyState* const state = new CpuTopologyState();
|
||||
return *state;
|
||||
}
|
||||
|
||||
struct PolicyRegistration {
|
||||
~PolicyRegistration() {
|
||||
const pid_t tid = gettid();
|
||||
::Common::ADPF::RemoveCurrentThread();
|
||||
CpuTopologyState& state = State();
|
||||
std::scoped_lock lock{state.policy_mutex};
|
||||
std::erase_if(state.policies,
|
||||
[tid](const ThreadPolicy& policy) { return policy.tid == tid; });
|
||||
}
|
||||
};
|
||||
|
||||
thread_local PolicyRegistration t_policy_registration;
|
||||
|
||||
s32 PossibleCpuCount() {
|
||||
std::ifstream file("/sys/devices/system/cpu/possible");
|
||||
std::string list;
|
||||
if (file && std::getline(file, list) && !list.empty()) {
|
||||
s64 highest = -1;
|
||||
const char* cursor = list.c_str();
|
||||
while (*cursor != '\0') {
|
||||
char* end = nullptr;
|
||||
const s64 value = std::strtol(cursor, &end, 10);
|
||||
if (end == cursor) {
|
||||
break;
|
||||
}
|
||||
highest = (std::max)(highest, value);
|
||||
cursor = end;
|
||||
while (*cursor == '-' || *cursor == ',') {
|
||||
++cursor;
|
||||
}
|
||||
}
|
||||
if (highest >= 0) {
|
||||
return static_cast<s32>((std::min<s64>)(highest + 1, CPU_SETSIZE));
|
||||
}
|
||||
}
|
||||
const s64 configured = sysconf(_SC_NPROCESSORS_CONF);
|
||||
if (configured > 0) {
|
||||
return static_cast<s32>((std::min<s64>)(configured, CPU_SETSIZE));
|
||||
}
|
||||
return static_cast<s32>((std::min<s64>)(std::thread::hardware_concurrency(), CPU_SETSIZE));
|
||||
}
|
||||
|
||||
s64 ReadCpuScalar(s32 cpu, const char* node) {
|
||||
s64 value = 0;
|
||||
std::ifstream file("/sys/devices/system/cpu/cpu" + std::to_string(cpu) + "/" + node);
|
||||
if (!file || !(file >> value) || value <= 0) {
|
||||
return 0;
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
u64 ReadCpuMidr(s32 cpu) {
|
||||
u64 midr = 0;
|
||||
std::ifstream file("/sys/devices/system/cpu/cpu" + std::to_string(cpu) +
|
||||
"/regs/identification/midr_el1");
|
||||
if (!file || !(file >> std::hex >> midr)) {
|
||||
return 0;
|
||||
}
|
||||
return midr;
|
||||
}
|
||||
|
||||
std::vector<CoreInfo> CollectCores(const cpu_set_t& allowed, s32 total, const char* node,
|
||||
bool require_all) {
|
||||
std::vector<CoreInfo> cores;
|
||||
for (s32 cpu = 0; cpu < total; ++cpu) {
|
||||
if (!CPU_ISSET(cpu, &allowed)) {
|
||||
continue;
|
||||
}
|
||||
const s64 weight = ReadCpuScalar(cpu, node);
|
||||
if (weight <= 0) {
|
||||
if (require_all) {
|
||||
return {};
|
||||
}
|
||||
LOG_WARNING(Common, "Could not read {} for CPU {}, treating it as an efficiency core",
|
||||
node, cpu);
|
||||
continue;
|
||||
}
|
||||
cores.push_back(CoreInfo{weight, ReadCpuMidr(cpu), cpu});
|
||||
}
|
||||
return cores;
|
||||
}
|
||||
|
||||
bool WeightsAreUniform(const std::vector<CoreInfo>& cores) {
|
||||
return std::all_of(cores.begin(), cores.end(),
|
||||
[&](const CoreInfo& core) { return core.weight == cores.front().weight; });
|
||||
}
|
||||
|
||||
bool MidrsAreDistinct(const std::vector<CoreInfo>& cores) {
|
||||
return std::none_of(cores.begin(), cores.end(),
|
||||
[](const CoreInfo& core) { return core.midr == 0; }) &&
|
||||
std::any_of(cores.begin(), cores.end(),
|
||||
[&](const CoreInfo& core) { return core.midr != cores.front().midr; });
|
||||
}
|
||||
|
||||
void ComputeTopologyLocked(CpuTopologyState& state) {
|
||||
state.initialized = true;
|
||||
state.separated = false;
|
||||
CPU_ZERO(&state.allowed);
|
||||
CPU_ZERO(&state.performance);
|
||||
CPU_ZERO(&state.efficiency);
|
||||
|
||||
if (sched_getaffinity(getpid(), sizeof(state.allowed), &state.allowed) != 0) {
|
||||
LOG_WARNING(Common, "Could not query process CPU affinity: {}",
|
||||
::Common::GetLastErrorMsg());
|
||||
return;
|
||||
}
|
||||
|
||||
const s32 total = PossibleCpuCount();
|
||||
auto cores = CollectCores(state.allowed, total, "cpu_capacity", true);
|
||||
if (cores.empty() || (WeightsAreUniform(cores) && MidrsAreDistinct(cores))) {
|
||||
auto by_frequency = CollectCores(state.allowed, total, "cpufreq/cpuinfo_max_freq", false);
|
||||
if (!by_frequency.empty()) {
|
||||
cores = std::move(by_frequency);
|
||||
}
|
||||
}
|
||||
if (cores.empty()) {
|
||||
LOG_WARNING(Common, "Could not determine CPU topology, thread placement is disabled");
|
||||
return;
|
||||
}
|
||||
|
||||
if (WeightsAreUniform(cores)) {
|
||||
if (MidrsAreDistinct(cores)) {
|
||||
LOG_WARNING(Common, "CPU clusters differ but rank identically, thread placement is "
|
||||
"disabled");
|
||||
} else {
|
||||
LOG_INFO(Common, "CPU cores are symmetric, thread placement is disabled");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
std::sort(cores.begin(), cores.end(), [](const CoreInfo& lhs, const CoreInfo& rhs) {
|
||||
if (lhs.weight != rhs.weight) {
|
||||
return lhs.weight > rhs.weight;
|
||||
}
|
||||
return lhs.cpu < rhs.cpu;
|
||||
});
|
||||
|
||||
const s64 fastest = cores.front().weight;
|
||||
size_t taken = 0;
|
||||
for (const auto& core : cores) {
|
||||
const bool fast_enough =
|
||||
core.weight * 100 >= fastest * ANDROID_PERFORMANCE_CAPACITY_PERCENT;
|
||||
if (!fast_enough && taken >= ANDROID_MINIMUM_PERFORMANCE_CORES) {
|
||||
break;
|
||||
}
|
||||
CPU_SET(core.cpu, &state.performance);
|
||||
++taken;
|
||||
}
|
||||
if (taken == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (s32 cpu = 0; cpu < total; ++cpu) {
|
||||
if (CPU_ISSET(cpu, &state.allowed) && !CPU_ISSET(cpu, &state.performance)) {
|
||||
CPU_SET(cpu, &state.efficiency);
|
||||
}
|
||||
}
|
||||
|
||||
state.separated = CPU_COUNT(&state.efficiency) > 0;
|
||||
LOG_INFO(Common, "CPU topology: {} performance cores, {} efficiency cores, separation {}",
|
||||
CPU_COUNT(&state.performance), CPU_COUNT(&state.efficiency),
|
||||
state.separated ? "enabled" : "unavailable");
|
||||
}
|
||||
|
||||
void EnsureTopologyLocked(CpuTopologyState& state) {
|
||||
if (!state.initialized) {
|
||||
ComputeTopologyLocked(state);
|
||||
}
|
||||
}
|
||||
|
||||
void RefreshTopologyLocked(CpuTopologyState& state) {
|
||||
if (!state.initialized) {
|
||||
ComputeTopologyLocked(state);
|
||||
return;
|
||||
}
|
||||
cpu_set_t current;
|
||||
CPU_ZERO(¤t);
|
||||
if (sched_getaffinity(getpid(), sizeof(current), ¤t) != 0) {
|
||||
return;
|
||||
}
|
||||
if (std::memcmp(¤t, &state.allowed, sizeof(current)) != 0) {
|
||||
ComputeTopologyLocked(state);
|
||||
}
|
||||
}
|
||||
|
||||
bool ApplyCoreGroupLocked(CpuTopologyState& state, pid_t tid, CoreGroup group,
|
||||
bool* gone = nullptr) {
|
||||
const bool restrict_group = group != CoreGroup::Unrestricted && state.separated;
|
||||
const cpu_set_t* mask = &state.allowed;
|
||||
if (restrict_group) {
|
||||
mask = group == CoreGroup::Performance ? &state.performance : &state.efficiency;
|
||||
}
|
||||
if (CPU_COUNT(mask) == 0) {
|
||||
return false;
|
||||
}
|
||||
if (sched_setaffinity(tid, sizeof(*mask), mask) != 0) {
|
||||
if (gone != nullptr && errno == ESRCH) {
|
||||
*gone = true;
|
||||
return false;
|
||||
}
|
||||
LOG_WARNING(Common, "Could not restrict thread {} to its core group: {}", tid,
|
||||
::Common::GetLastErrorMsg());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool KernelPreservesRequestedAffinity() {
|
||||
utsname info{};
|
||||
if (uname(&info) != 0) {
|
||||
return false;
|
||||
}
|
||||
s32 major = 0;
|
||||
s32 minor = 0;
|
||||
if (std::sscanf(info.release, "%d.%d", &major, &minor) != 2) {
|
||||
return false;
|
||||
}
|
||||
return major > 6 || (major == 6 && minor >= 2);
|
||||
}
|
||||
|
||||
void SnapshotCanaryLocked(CpuTopologyState& state) {
|
||||
state.canary_valid = false;
|
||||
if (!state.separated) {
|
||||
return;
|
||||
}
|
||||
for (const auto& policy : state.policies) {
|
||||
if (policy.group == CoreGroup::Unrestricted) {
|
||||
continue;
|
||||
}
|
||||
cpu_set_t mask;
|
||||
CPU_ZERO(&mask);
|
||||
if (sched_getaffinity(policy.tid, sizeof(mask), &mask) != 0) {
|
||||
continue;
|
||||
}
|
||||
state.canary_tid = policy.tid;
|
||||
state.canary_mask = mask;
|
||||
state.canary_valid = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
bool DueForPoll(CpuTopologyState& state) {
|
||||
const auto now = std::chrono::steady_clock::now().time_since_epoch();
|
||||
const s64 now_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(now).count();
|
||||
s64 next = state.next_poll_ns.load(std::memory_order_relaxed);
|
||||
if (now_ns < next) {
|
||||
return false;
|
||||
}
|
||||
return state.next_poll_ns.compare_exchange_strong(
|
||||
next, now_ns + ANDROID_POLICY_POLL_INTERVAL.count(), std::memory_order_relaxed);
|
||||
}
|
||||
|
||||
ThreadPolicy& AcquirePolicyLocked(CpuTopologyState& state, pid_t tid) {
|
||||
for (auto& policy : state.policies) {
|
||||
if (policy.tid == tid) {
|
||||
return policy;
|
||||
}
|
||||
}
|
||||
return state.policies.emplace_back(ThreadPolicy{tid, CoreGroup::Unrestricted, 0, false});
|
||||
}
|
||||
|
||||
void SetCurrentThreadCoreGroup(CoreGroup group) {
|
||||
const pid_t tid = gettid();
|
||||
(void)&t_policy_registration;
|
||||
|
||||
CoreGroup effective = group;
|
||||
if (tid == getpid() && group != CoreGroup::Unrestricted) {
|
||||
LOG_WARNING(Common, "Refusing to place the main thread: the CPU topology is read from it");
|
||||
effective = CoreGroup::Unrestricted;
|
||||
}
|
||||
|
||||
CpuTopologyState& state = State();
|
||||
std::scoped_lock topology_lock{state.topology_mutex};
|
||||
EnsureTopologyLocked(state);
|
||||
ApplyCoreGroupLocked(state, tid, effective);
|
||||
|
||||
std::scoped_lock policy_lock{state.policy_mutex};
|
||||
AcquirePolicyLocked(state, tid).group = effective;
|
||||
if (!state.canary_valid) {
|
||||
SnapshotCanaryLocked(state);
|
||||
}
|
||||
}
|
||||
|
||||
void RememberCurrentThreadNice(pid_t tid, s32 nice_value) {
|
||||
(void)&t_policy_registration;
|
||||
CpuTopologyState& state = State();
|
||||
std::scoped_lock lock{state.policy_mutex};
|
||||
ThreadPolicy& policy = AcquirePolicyLocked(state, tid);
|
||||
policy.nice_value = nice_value;
|
||||
policy.has_nice = true;
|
||||
}
|
||||
} // Anonymous namespace
|
||||
#endif
|
||||
|
||||
#include "common/cpu_features.h"
|
||||
#ifdef ARCHITECTURE_x86_64
|
||||
#ifdef _MSC_VER
|
||||
@@ -446,6 +48,7 @@ void RememberCurrentThreadNice(pid_t tid, s32 nice_value) {
|
||||
#endif
|
||||
#include "common/x64/rdtsc.h"
|
||||
#endif
|
||||
#include "core/core_timing.h"
|
||||
|
||||
namespace Common {
|
||||
|
||||
@@ -475,31 +78,21 @@ void SetCurrentThreadPriority(ThreadPriority new_priority) {
|
||||
}
|
||||
}();
|
||||
set_thread_priority(find_thread(NULL), priority);
|
||||
#elif defined(__ANDROID__)
|
||||
const int nice_value = NiceValueForPriority(new_priority);
|
||||
const pid_t tid = gettid();
|
||||
if (setpriority(PRIO_PROCESS, static_cast<id_t>(tid), nice_value) != 0) {
|
||||
LOG_WARNING(Common, "Could not set thread nice value to {}: {}", nice_value,
|
||||
GetLastErrorMsg());
|
||||
return;
|
||||
}
|
||||
RememberCurrentThreadNice(tid, nice_value);
|
||||
#elif defined(__linux__)
|
||||
const int nice_value = NiceValueForPriority(new_priority);
|
||||
if (setpriority(PRIO_PROCESS, 0, nice_value) != 0) {
|
||||
LOG_DEBUG(Common, "Could not set thread nice value to {}: {}", nice_value,
|
||||
GetLastErrorMsg());
|
||||
}
|
||||
#else
|
||||
const s32 max_prio = sched_get_priority_max(SCHED_OTHER);
|
||||
const s32 min_prio = sched_get_priority_min(SCHED_OTHER);
|
||||
pthread_t this_thread = pthread_self();
|
||||
const auto scheduling_type = SCHED_OTHER;
|
||||
s32 max_prio = sched_get_priority_max(scheduling_type);
|
||||
s32 min_prio = sched_get_priority_min(scheduling_type);
|
||||
u32 level = (std::max)(u32(new_priority) + 1, 4U);
|
||||
|
||||
struct sched_param params;
|
||||
if (max_prio > min_prio) {
|
||||
const u32 level = (std::min)(static_cast<u32>(new_priority), 4U);
|
||||
sched_param params{};
|
||||
params.sched_priority =
|
||||
min_prio + static_cast<s32>(static_cast<u32>(max_prio - min_prio) * level) / 4;
|
||||
pthread_setschedparam(pthread_self(), SCHED_OTHER, ¶ms);
|
||||
params.sched_priority = min_prio + ((max_prio - min_prio) * level) / 4;
|
||||
} else {
|
||||
params.sched_priority = min_prio - ((min_prio - max_prio) * level) / 4;
|
||||
}
|
||||
|
||||
pthread_setschedparam(this_thread, scheduling_type, ¶ms);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -539,94 +132,29 @@ void SetCurrentThreadName(const char* name) {
|
||||
#endif
|
||||
}
|
||||
|
||||
void SetCurrentThreadToPerformanceCores() {
|
||||
void PinCurrentThreadToPerformanceCore(size_t core_id) {
|
||||
ASSERT(core_id < 4);
|
||||
// If we set a flag for a CPU that doesn't exist, the thread may not be allowed to
|
||||
// run in ANY processor!
|
||||
auto const total_cores = std::thread::hardware_concurrency();
|
||||
if (core_id < total_cores) {
|
||||
#if defined(__ANDROID__)
|
||||
if (ADPF::AddCurrentThread(ADPF::Session::Render)) {
|
||||
SetCurrentThreadCoreGroup(CoreGroup::Unrestricted);
|
||||
return;
|
||||
}
|
||||
SetCurrentThreadCoreGroup(CoreGroup::Performance);
|
||||
cpu_set_t set;
|
||||
CPU_ZERO(&set);
|
||||
CPU_SET(core_id, &set);
|
||||
sched_setaffinity(pthread_self(), sizeof(set), &set);
|
||||
#elif defined(__linux__) || defined(__FreeBSD__)
|
||||
cpu_set_t set;
|
||||
CPU_ZERO(&set);
|
||||
CPU_SET(core_id, &set);
|
||||
pthread_setaffinity_np(pthread_self(), sizeof(set), &set);
|
||||
#elif defined(_WIN32)
|
||||
DWORD set = 1UL << core_id;
|
||||
SetThreadAffinityMask(GetCurrentThread(), set);
|
||||
#else
|
||||
// No pin functionality implemented
|
||||
#endif
|
||||
}
|
||||
|
||||
void SetCurrentThreadToEfficiencyCores() {
|
||||
#if defined(__ANDROID__)
|
||||
if (ADPF::AddCurrentThread(ADPF::Session::Background)) {
|
||||
SetCurrentThreadCoreGroup(CoreGroup::Unrestricted);
|
||||
return;
|
||||
}
|
||||
SetCurrentThreadCoreGroup(CoreGroup::Efficiency);
|
||||
#endif
|
||||
}
|
||||
|
||||
void SetCurrentThreadToBackgroundWork() {
|
||||
#if defined(__ANDROID__)
|
||||
ADPF::AddCurrentThread(ADPF::Session::Background);
|
||||
SetCurrentThreadCoreGroup(CoreGroup::Unrestricted);
|
||||
#endif
|
||||
}
|
||||
|
||||
void SetCurrentThreadToAllCores() {
|
||||
#if defined(__ANDROID__)
|
||||
ADPF::RemoveCurrentThread();
|
||||
SetCurrentThreadCoreGroup(CoreGroup::Unrestricted);
|
||||
#endif
|
||||
}
|
||||
|
||||
void RefreshThreadPolicies() {
|
||||
#if defined(__ANDROID__)
|
||||
CpuTopologyState& state = State();
|
||||
std::scoped_lock topology_lock{state.topology_mutex};
|
||||
RefreshTopologyLocked(state);
|
||||
|
||||
std::scoped_lock policy_lock{state.policy_mutex};
|
||||
std::erase_if(state.policies, [&state](const ThreadPolicy& policy) {
|
||||
bool gone = false;
|
||||
if (policy.has_nice &&
|
||||
setpriority(PRIO_PROCESS, static_cast<id_t>(policy.tid), policy.nice_value) != 0 &&
|
||||
errno == ESRCH) {
|
||||
gone = true;
|
||||
}
|
||||
if (!gone) {
|
||||
ApplyCoreGroupLocked(state, policy.tid, policy.group, &gone);
|
||||
}
|
||||
return gone;
|
||||
});
|
||||
SnapshotCanaryLocked(state);
|
||||
#endif
|
||||
}
|
||||
|
||||
void PollThreadPolicies() {
|
||||
#if defined(__ANDROID__)
|
||||
static const bool needed = !KernelPreservesRequestedAffinity();
|
||||
if (!needed) {
|
||||
return;
|
||||
}
|
||||
|
||||
CpuTopologyState& state = State();
|
||||
if (!DueForPoll(state)) {
|
||||
return;
|
||||
}
|
||||
|
||||
pid_t tid;
|
||||
cpu_set_t expected;
|
||||
{
|
||||
std::scoped_lock lock{state.topology_mutex};
|
||||
if (!state.canary_valid) {
|
||||
return;
|
||||
}
|
||||
tid = state.canary_tid;
|
||||
expected = state.canary_mask;
|
||||
}
|
||||
|
||||
cpu_set_t current;
|
||||
CPU_ZERO(¤t);
|
||||
if (sched_getaffinity(tid, sizeof(current), ¤t) == 0 &&
|
||||
std::memcmp(¤t, &expected, sizeof(current)) == 0) {
|
||||
return;
|
||||
}
|
||||
RefreshThreadPolicies();
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef ARCHITECTURE_x86_64
|
||||
|
||||
+1
-13
@@ -99,20 +99,8 @@ enum class ThreadPriority : u32 {
|
||||
Critical = 4,
|
||||
};
|
||||
|
||||
enum class ThreadPlacement : u32 {
|
||||
Default = 0,
|
||||
Background = 1,
|
||||
Efficiency = 2,
|
||||
};
|
||||
|
||||
void SetCurrentThreadPriority(ThreadPriority new_priority);
|
||||
void SetCurrentThreadName(const char* name);
|
||||
void SetCurrentThreadToPerformanceCores();
|
||||
void SetCurrentThreadToEfficiencyCores();
|
||||
void SetCurrentThreadToBackgroundWork();
|
||||
void SetCurrentThreadToAllCores();
|
||||
|
||||
void RefreshThreadPolicies();
|
||||
void PollThreadPolicies();
|
||||
void PinCurrentThreadToPerformanceCore(size_t core_id);
|
||||
|
||||
} // namespace Common
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
|
||||
@@ -37,25 +37,10 @@ class StatefulThreadWorker {
|
||||
using StateMaker = std::conditional_t<with_state, std::function<StateType()>, DummyCallable>;
|
||||
|
||||
public:
|
||||
explicit StatefulThreadWorker(size_t num_workers, std::string name, StateMaker func = {},
|
||||
ThreadPlacement placement = ThreadPlacement::Default)
|
||||
explicit StatefulThreadWorker(size_t num_workers, std::string name, StateMaker func = {})
|
||||
: workers_queued{num_workers}, thread_name{std::move(name)} {
|
||||
const auto lambda = [this, func, placement](std::stop_token stop_token) {
|
||||
const auto lambda = [this, func](std::stop_token stop_token) {
|
||||
Common::SetCurrentThreadName(thread_name.c_str());
|
||||
if (placement != ThreadPlacement::Default) {
|
||||
Common::SetCurrentThreadPriority(ThreadPriority::Low);
|
||||
}
|
||||
switch (placement) {
|
||||
case ThreadPlacement::Efficiency:
|
||||
Common::SetCurrentThreadToEfficiencyCores();
|
||||
break;
|
||||
case ThreadPlacement::Background:
|
||||
Common::SetCurrentThreadToBackgroundWork();
|
||||
break;
|
||||
default:
|
||||
Common::SetCurrentThreadToAllCores();
|
||||
break;
|
||||
}
|
||||
{
|
||||
[[maybe_unused]] std::conditional_t<with_state, StateType, int> state{func()};
|
||||
while (!stop_token.stop_requested()) {
|
||||
|
||||
@@ -208,12 +208,4 @@ UUID UUID::MakeRandomRFC4122V4() {
|
||||
return uuid;
|
||||
}
|
||||
|
||||
UUID UUID::MakeRFC4122V5(std::span<u8, 20> sha1) {
|
||||
UUID uuid{};
|
||||
std::memcpy(&uuid.uuid, sha1.data(), sizeof(UUID));
|
||||
uuid.uuid[8] = 0x80 | (uuid.uuid[8] & 0x3F);
|
||||
uuid.uuid[6] = 0x50 | (uuid.uuid[6] & 0xF);
|
||||
return uuid;
|
||||
}
|
||||
|
||||
} // namespace Common
|
||||
|
||||
+20
-16
@@ -1,6 +1,3 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
@@ -8,7 +5,6 @@
|
||||
|
||||
#include <array>
|
||||
#include <functional>
|
||||
#include <span>
|
||||
#include <string>
|
||||
|
||||
#include "common/common_types.h"
|
||||
@@ -90,20 +86,28 @@ struct UUID {
|
||||
};
|
||||
}
|
||||
|
||||
/// @brief Creates a random UUID.
|
||||
/// @returns A random UUID.
|
||||
[[nodiscard]] static UUID MakeRandom();
|
||||
/**
|
||||
* Creates a random UUID.
|
||||
*
|
||||
* @returns A random UUID.
|
||||
*/
|
||||
static UUID MakeRandom();
|
||||
|
||||
/// @brief Creates a random UUID with a seed.
|
||||
/// @param seed A seed to initialize the Mersenne-Twister RNG
|
||||
/// @returns A random UUID.
|
||||
[[nodiscard]] static UUID MakeRandomWithSeed(u32 seed);
|
||||
/**
|
||||
* Creates a random UUID with a seed.
|
||||
*
|
||||
* @param seed A seed to initialize the Mersenne-Twister RNG
|
||||
*
|
||||
* @returns A random UUID.
|
||||
*/
|
||||
static UUID MakeRandomWithSeed(u32 seed);
|
||||
|
||||
/// @brief Creates a random UUID. The generated UUID is RFC 4122 Version 4 compliant.
|
||||
/// @returns A random UUID that is RFC 4122 Version 4 compliant.
|
||||
[[nodiscard]] static UUID MakeRandomRFC4122V4();
|
||||
|
||||
[[nodiscard]] static UUID MakeRFC4122V5(std::span<u8, 20> sha1);
|
||||
/**
|
||||
* Creates a random UUID. The generated UUID is RFC 4122 Version 4 compliant.
|
||||
*
|
||||
* @returns A random UUID that is RFC 4122 Version 4 compliant.
|
||||
*/
|
||||
static UUID MakeRandomRFC4122V4();
|
||||
|
||||
friend constexpr bool operator==(const UUID& lhs, const UUID& rhs) = default;
|
||||
};
|
||||
|
||||
@@ -1173,7 +1173,7 @@ add_library(core STATIC
|
||||
|
||||
if (ENABLE_WIFI_SCAN)
|
||||
target_sources(core PRIVATE internal_network/wifi_scanner.cpp)
|
||||
if (LINUX)
|
||||
if (PLATFORM_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>:-Wconversion>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Werror=conversion>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-sign-conversion>
|
||||
$<$<COMPILE_LANGUAGE:C,CXX>:-Wno-cast-function-type>
|
||||
$<$<CXX_COMPILER_ID:Clang>:-fsized-deallocation>)
|
||||
@@ -1251,7 +1251,7 @@ if (HAS_NCE)
|
||||
target_link_libraries(core PRIVATE merry::oaknut)
|
||||
endif()
|
||||
|
||||
if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64 OR ARCHITECTURE_riscv64 OR ARCHITECTURE_powerpc64 OR ARCHITECTURE_powerpc64)
|
||||
if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64 OR ARCHITECTURE_riscv64 OR ARCHITECTURE_loongarch64)
|
||||
target_sources(core PRIVATE
|
||||
arm/dynarmic/arm_dynarmic.h
|
||||
arm/dynarmic/arm_dynarmic_64.cpp
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#include "audio_core/audio_core.h"
|
||||
#include "common/fs/fs.h"
|
||||
#include "common/logging.h"
|
||||
#include "common/adpf.h"
|
||||
#include "common/settings.h"
|
||||
#include "common/settings_enums.h"
|
||||
#include "common/string_util.h"
|
||||
@@ -386,7 +385,6 @@ struct System::Impl {
|
||||
|
||||
void ShutdownMainProcess() {
|
||||
SetShuttingDown(true);
|
||||
Common::ADPF::Shutdown();
|
||||
|
||||
// Reset per-game flags
|
||||
Settings::values.use_squashed_iterated_blend = false;
|
||||
|
||||
@@ -23,21 +23,6 @@ namespace Core::Timing {
|
||||
|
||||
constexpr s64 MAX_SLICE_LENGTH = 10000;
|
||||
|
||||
constexpr u32 CPU_CLOCK_BASE_MHZ = 1020;
|
||||
constexpr u32 CPU_CLOCK_BOOST_MHZ = 1734;
|
||||
constexpr u32 CPU_CLOCK_OVERCLOCK_MHZ = 2040;
|
||||
|
||||
constexpr u32 CpuClockTargetMhz(Settings::CpuClock clock) {
|
||||
switch (clock) {
|
||||
case Settings::CpuClock::Boost:
|
||||
return CPU_CLOCK_BOOST_MHZ;
|
||||
case Settings::CpuClock::Overclock:
|
||||
return CPU_CLOCK_OVERCLOCK_MHZ;
|
||||
default:
|
||||
return CPU_CLOCK_BASE_MHZ;
|
||||
}
|
||||
}
|
||||
|
||||
std::shared_ptr<EventType> CreateEvent(std::string name, TimedCallback&& callback) {
|
||||
return std::make_shared<EventType>(std::move(callback), std::move(name));
|
||||
}
|
||||
@@ -73,8 +58,7 @@ void CoreTiming::Initialize(std::function<void()>&& on_thread_init_) {
|
||||
if (is_multicore) {
|
||||
timer_thread = std::jthread([this](std::stop_token stop_token) {
|
||||
Common::SetCurrentThreadName("HostTiming");
|
||||
Common::SetCurrentThreadPriority(Common::ThreadPriority::VeryHigh);
|
||||
Common::SetCurrentThreadToPerformanceCores();
|
||||
Common::SetCurrentThreadPriority(Common::ThreadPriority::High);
|
||||
on_thread_init();
|
||||
has_started = true;
|
||||
|
||||
@@ -225,9 +209,8 @@ void CoreTiming::ResetTicks() {
|
||||
|
||||
u64 CoreTiming::GetClockTicks() const {
|
||||
u64 fres = is_multicore ? Common::g_wall_clock.GetCNTPCT() : Common::WallClock::CPUTickToCNTPCT(cpu_ticks);
|
||||
if (const u32 target = CpuClockTargetMhz(Settings::values.cpu_clock.GetValue());
|
||||
target != CPU_CLOCK_BASE_MHZ) {
|
||||
fres = fres * target / CPU_CLOCK_BASE_MHZ;
|
||||
if (auto const overclock = Settings::values.fast_cpu_time.GetValue(); overclock != Settings::CpuClock::Off) {
|
||||
fres = u64(f64(fres) * (1.7 + 0.3 * u32(overclock)));
|
||||
}
|
||||
if (::Settings::values.sync_core_speed.GetValue()) {
|
||||
auto const ticks = f64(fres);
|
||||
|
||||
@@ -174,7 +174,12 @@ void CpuManager::RunThread(std::stop_token token, std::size_t core) {
|
||||
std::string name = is_multicore ? ("CPUCore_" + std::to_string(core)) : std::string{"CPUThread"};
|
||||
Common::SetCurrentThreadName(name.c_str());
|
||||
Common::SetCurrentThreadPriority(Common::ThreadPriority::Critical);
|
||||
Common::SetCurrentThreadToPerformanceCores();
|
||||
#ifdef __ANDROID__
|
||||
// Aimed specifically for Snapdragon 8 Elite devices
|
||||
// This kills performance on desktop, but boosts perf for UMA devices
|
||||
// like the S8E. Mediatek and Mali likely won't suffer.
|
||||
Common::PinCurrentThreadToPerformanceCore(core);
|
||||
#endif
|
||||
auto& data = core_data[core];
|
||||
data.host_context = Common::Fiber::ThreadToFiber();
|
||||
|
||||
|
||||
@@ -274,22 +274,23 @@ public:
|
||||
explicit NACP(VirtualFile file);
|
||||
~NACP();
|
||||
|
||||
[[nodiscard]] const LanguageEntry& GetLanguageEntry() const;
|
||||
[[nodiscard]] std::string GetApplicationName() const;
|
||||
[[nodiscard]] std::string GetDeveloperName() const;
|
||||
[[nodiscard]] u64 GetTitleId() const;
|
||||
[[nodiscard]] u64 GetDLCBaseTitleId() const;
|
||||
[[nodiscard]] std::string GetVersionString() const;
|
||||
[[nodiscard]] u64 GetDefaultNormalSaveSize() const;
|
||||
[[nodiscard]] u64 GetDefaultJournalSaveSize() const;
|
||||
[[nodiscard]] u32 GetSupportedLanguages() const;
|
||||
[[nodiscard]] std::vector<std::string> GetApplicationNames() const;
|
||||
[[nodiscard]] std::vector<u8> GetRawBytes() const;
|
||||
[[nodiscard]] bool GetUserAccountSwitchLock() const;
|
||||
[[nodiscard]] u64 GetDeviceSaveDataSize() const;
|
||||
[[nodiscard]] u32 GetParentalControlFlag() const;
|
||||
[[nodiscard]] const std::array<u8, 0x20>& GetRatingAge() const;
|
||||
const LanguageEntry& GetLanguageEntry() const;
|
||||
std::string GetApplicationName() const;
|
||||
std::string GetDeveloperName() const;
|
||||
u64 GetTitleId() const;
|
||||
u64 GetDLCBaseTitleId() const;
|
||||
std::string GetVersionString() const;
|
||||
u64 GetDefaultNormalSaveSize() const;
|
||||
u64 GetDefaultJournalSaveSize() const;
|
||||
u32 GetSupportedLanguages() const;
|
||||
std::vector<std::string> GetApplicationNames() const;
|
||||
std::vector<u8> GetRawBytes() const;
|
||||
bool GetUserAccountSwitchLock() const;
|
||||
u64 GetDeviceSaveDataSize() const;
|
||||
u32 GetParentalControlFlag() const;
|
||||
const std::array<u8, 0x20>& GetRatingAge() const;
|
||||
|
||||
private:
|
||||
RawNACP raw{};
|
||||
std::vector<LanguageEntry> language_entries;
|
||||
};
|
||||
|
||||
@@ -1156,14 +1156,4 @@ PatchManager::Metadata PatchManager::ParseControlNCA(const NCA& nca) const {
|
||||
|
||||
return {std::move(nacp), icon_file};
|
||||
}
|
||||
|
||||
[[nodiscard]] PatchManager::Metadata PatchManager::GetMetadataFromBaseOrUpdate(Core::System& system, u64 application_id) noexcept {
|
||||
const FileSys::PatchManager pm{application_id, system.GetFileSystemController(), system.GetContentProvider()};
|
||||
auto metadata = pm.GetControlMetadata();
|
||||
if (metadata.first != nullptr)
|
||||
return metadata;
|
||||
const FileSys::PatchManager pm_update{FileSys::GetUpdateTitleID(application_id), system.GetFileSystemController(), system.GetContentProvider()};
|
||||
return pm_update.GetControlMetadata();
|
||||
}
|
||||
|
||||
} // namespace FileSys
|
||||
|
||||
@@ -105,9 +105,6 @@ public:
|
||||
// Version of GetControlMetadata that takes an arbitrary NCA
|
||||
[[nodiscard]] Metadata ParseControlNCA(const NCA& nca) const;
|
||||
|
||||
/// @brief Gets NACP metadata (accounting for any patches or updates)
|
||||
[[nodiscard]] static PatchManager::Metadata GetMetadataFromBaseOrUpdate(Core::System& system, u64 application_id) noexcept;
|
||||
|
||||
private:
|
||||
[[nodiscard]] std::vector<VirtualFile> CollectPatches(const std::vector<VirtualDir>& patch_dirs,
|
||||
const std::string& build_id) const;
|
||||
|
||||
@@ -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_TRACE(Kernel_SVC, "called handle {:#08x}", handle);
|
||||
LOG_DEBUG(Kernel_SVC, "called handle {:#08x}", handle);
|
||||
|
||||
// Get the current handle table.
|
||||
const auto& handle_table = GetCurrentProcess(system.Kernel()).GetHandleTable();
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <openssl/evp.h>
|
||||
|
||||
#include "common/settings.h"
|
||||
#include "common/uuid.h"
|
||||
#include "core/file_sys/control_metadata.h"
|
||||
@@ -156,7 +154,20 @@ Result IApplicationFunctions::GetDesiredLanguage(Out<u64> out_language_code) {
|
||||
// Default to 0 (all languages supported)
|
||||
u32 supported_languages = 0;
|
||||
|
||||
const auto res = FileSys::PatchManager::GetMetadataFromBaseOrUpdate(system, m_applet->program_id);
|
||||
const auto res = [this] {
|
||||
const FileSys::PatchManager pm{m_applet->program_id, system.GetFileSystemController(),
|
||||
system.GetContentProvider()};
|
||||
auto metadata = pm.GetControlMetadata();
|
||||
if (metadata.first != nullptr) {
|
||||
return metadata;
|
||||
}
|
||||
|
||||
const FileSys::PatchManager pm_update{FileSys::GetUpdateTitleID(m_applet->program_id),
|
||||
system.GetFileSystemController(),
|
||||
system.GetContentProvider()};
|
||||
return pm_update.GetControlMetadata();
|
||||
}();
|
||||
|
||||
if (res.first != nullptr) {
|
||||
supported_languages = res.first->GetSupportedLanguages();
|
||||
}
|
||||
@@ -194,7 +205,20 @@ Result IApplicationFunctions::SetTerminateResult(Result terminate_result) {
|
||||
Result IApplicationFunctions::GetDisplayVersion(Out<DisplayVersion> out_display_version) {
|
||||
LOG_DEBUG(Service_AM, "called");
|
||||
|
||||
const auto res = FileSys::PatchManager::GetMetadataFromBaseOrUpdate(system, m_applet->program_id);
|
||||
const auto res = [this] {
|
||||
const FileSys::PatchManager pm{m_applet->program_id, system.GetFileSystemController(),
|
||||
system.GetContentProvider()};
|
||||
auto metadata = pm.GetControlMetadata();
|
||||
if (metadata.first != nullptr) {
|
||||
return metadata;
|
||||
}
|
||||
|
||||
const FileSys::PatchManager pm_update{FileSys::GetUpdateTitleID(m_applet->program_id),
|
||||
system.GetFileSystemController(),
|
||||
system.GetContentProvider()};
|
||||
return pm_update.GetControlMetadata();
|
||||
}();
|
||||
|
||||
if (res.first != nullptr) {
|
||||
const auto& version = res.first->GetVersionString();
|
||||
std::memcpy(out_display_version->string.data(), version.data(),
|
||||
@@ -323,21 +347,8 @@ Result IApplicationFunctions::NotifyRunning(Out<bool> out_became_running) {
|
||||
}
|
||||
|
||||
Result IApplicationFunctions::GetPseudoDeviceId(Out<Common::UUID> out_pseudo_device_id) {
|
||||
LOG_WARNING(Service_AM, "(stubbed)");
|
||||
|
||||
// This should be hashed with the device specific hash
|
||||
// for now this will do
|
||||
const auto res = FileSys::PatchManager::GetMetadataFromBaseOrUpdate(system, m_applet->program_id);
|
||||
u8 hash[EVP_MAX_MD_SIZE];
|
||||
unsigned int hash_len = 0;
|
||||
auto const seed = res.first->raw.seed_for_pseudo_device_id;
|
||||
EVP_MD_CTX *ctx = EVP_MD_CTX_new();
|
||||
auto const algorithm = EVP_sha1();
|
||||
EVP_DigestInit_ex(ctx, algorithm, nullptr);
|
||||
EVP_DigestUpdate(ctx, &seed, sizeof(seed));
|
||||
EVP_DigestFinal_ex(ctx, hash, &hash_len);
|
||||
EVP_MD_CTX_free(ctx);
|
||||
*out_pseudo_device_id = Common::UUID::MakeRFC4122V5(std::span<u8, 20>{hash, std::size(hash)});
|
||||
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||
*out_pseudo_device_id = {};
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
|
||||
@@ -252,7 +252,19 @@ Result ILibraryAppletSelfAccessor::GetMainAppletApplicationDesiredLanguage(
|
||||
// Default to 0 (all languages supported)
|
||||
u32 supported_languages = 0;
|
||||
|
||||
const auto res = FileSys::PatchManager::GetMetadataFromBaseOrUpdate(system, identity.application_id);
|
||||
const auto res = [this, identity] {
|
||||
const FileSys::PatchManager pm{identity.application_id, system.GetFileSystemController(),
|
||||
system.GetContentProvider()};
|
||||
auto metadata = pm.GetControlMetadata();
|
||||
if (metadata.first != nullptr) {
|
||||
return metadata;
|
||||
}
|
||||
|
||||
const FileSys::PatchManager pm_update{FileSys::GetUpdateTitleID(identity.application_id),
|
||||
system.GetFileSystemController(),
|
||||
system.GetContentProvider()};
|
||||
return pm_update.GetControlMetadata();
|
||||
}();
|
||||
|
||||
if (res.first != nullptr) {
|
||||
supported_languages = res.first->GetSupportedLanguages();
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user