Compare commits
29 commits
f00a9ac46e
...
1f838a7c26
Author | SHA1 | Date | |
---|---|---|---|
1f838a7c26 | |||
cdb63fc2c6 | |||
86e96d8d57 | |||
0e6c580e70 | |||
8afa4b8814 | |||
b6241e4148 | |||
bfffafe68b | |||
3c6ef765af | |||
954c17c18a | |||
8078990b9b | |||
db65f10768 | |||
acd7d792a3 | |||
9acb6006b8 | |||
cf0628af46 | |||
dbeae7add0 | |||
62369aa2d5 | |||
badd913bee | |||
6a4fa11ac3 | |||
5d4cfe195b | |||
bc1d093fe9 | |||
f6d99e5032 | |||
a52ddf78a6 | |||
191dd892e5 | |||
9f385bf627 | |||
1a13e79c3d | |||
268918aece | |||
83730cd4c1 | |||
272df1fa83 | |||
71a87b2c55 |
186 changed files with 21265 additions and 18318 deletions
|
@ -13,8 +13,8 @@ fi
|
||||||
cd src/android
|
cd src/android
|
||||||
chmod +x ./gradlew
|
chmod +x ./gradlew
|
||||||
|
|
||||||
./gradlew assembleRelease
|
./gradlew assembleMainlineRelease
|
||||||
./gradlew bundleRelease
|
./gradlew bundleMainlineRelease
|
||||||
|
|
||||||
if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
|
if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
|
||||||
rm "${ANDROID_KEYSTORE_FILE}"
|
rm "${ANDROID_KEYSTORE_FILE}"
|
||||||
|
|
1
.shellcheckrc
Normal file
1
.shellcheckrc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
shell=sh
|
213
CMakeLists.txt
213
CMakeLists.txt
|
@ -32,10 +32,20 @@ endif()
|
||||||
|
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
|
||||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules")
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/externals/cmake-modules")
|
||||||
|
|
||||||
|
# NB: this does not account for SPARC
|
||||||
|
# If you get Eden working on SPARC, please shoot crueter@crueter.xyz multiple emails
|
||||||
|
# and you will be hailed for eternity
|
||||||
if (PLATFORM_SUN)
|
if (PLATFORM_SUN)
|
||||||
# Terrific Solaris pkg shenanigans
|
# Terrific Solaris pkg shenanigans
|
||||||
list(APPEND CMAKE_PREFIX_PATH "/usr/lib/qt/6.6/lib/amd64/cmake")
|
list(APPEND CMAKE_PREFIX_PATH "/usr/lib/qt/6.6/lib/amd64/cmake")
|
||||||
list(APPEND CMAKE_MODULE_PATH "/usr/lib/qt/6.6/lib/amd64/cmake")
|
list(APPEND CMAKE_MODULE_PATH "/usr/lib/qt/6.6/lib/amd64/cmake")
|
||||||
|
|
||||||
|
# amazing
|
||||||
|
# absolutely incredible
|
||||||
|
list(APPEND CMAKE_PREFIX_PATH "/usr/lib/amd64/cmake")
|
||||||
|
list(APPEND CMAKE_MODULE_PATH "/usr/lib/amd64/cmake")
|
||||||
|
|
||||||
# For some mighty reason, doing a normal release build sometimes may not trigger
|
# For some mighty reason, doing a normal release build sometimes may not trigger
|
||||||
# the proper -O3 switch to materialize
|
# the proper -O3 switch to materialize
|
||||||
if (CMAKE_BUILD_TYPE MATCHES "Release")
|
if (CMAKE_BUILD_TYPE MATCHES "Release")
|
||||||
|
@ -147,6 +157,7 @@ if (ENABLE_SDL2)
|
||||||
option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MSVC}")
|
option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MSVC}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# qt stuff
|
||||||
option(ENABLE_QT "Enable the Qt frontend" ON)
|
option(ENABLE_QT "Enable the Qt frontend" ON)
|
||||||
option(ENABLE_QT_TRANSLATION "Enable translations for the Qt frontend" OFF)
|
option(ENABLE_QT_TRANSLATION "Enable translations for the Qt frontend" OFF)
|
||||||
option(ENABLE_QT_UPDATE_CHECKER "Enable update checker for the Qt frontend" OFF)
|
option(ENABLE_QT_UPDATE_CHECKER "Enable update checker for the Qt frontend" OFF)
|
||||||
|
@ -163,8 +174,12 @@ if (MSVC OR ANDROID)
|
||||||
endif()
|
endif()
|
||||||
option(YUZU_USE_CPM "Use CPM to fetch system dependencies (fmt, boost, etc) if needed. Externals will still be fetched." ${EXT_DEFAULT})
|
option(YUZU_USE_CPM "Use CPM to fetch system dependencies (fmt, boost, etc) if needed. Externals will still be fetched." ${EXT_DEFAULT})
|
||||||
|
|
||||||
|
# ffmpeg
|
||||||
option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT})
|
option(YUZU_USE_BUNDLED_FFMPEG "Download bundled FFmpeg" ${EXT_DEFAULT})
|
||||||
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from source" OFF "NOT WIN32 AND NOT ANDROID" OFF)
|
cmake_dependent_option(YUZU_USE_EXTERNAL_FFMPEG "Build FFmpeg from source" "${PLATFORM_SUN}" "NOT WIN32 AND NOT ANDROID" OFF)
|
||||||
|
|
||||||
|
# sirit
|
||||||
|
option(YUZU_USE_BUNDLED_SIRIT "Download bundled sirit" ${EXT_DEFAULT})
|
||||||
|
|
||||||
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "NOT ANDROID" OFF)
|
cmake_dependent_option(ENABLE_LIBUSB "Enable the use of LibUSB" ON "NOT ANDROID" OFF)
|
||||||
|
|
||||||
|
@ -212,6 +227,8 @@ endif()
|
||||||
# TODO(crueter): CI this?
|
# TODO(crueter): CI this?
|
||||||
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
|
option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android" ON)
|
||||||
|
|
||||||
|
option(YUZU_LEGACY "Apply patches that improve compatibility with older GPUs (e.g. Snapdragon 865) at the cost of performance" OFF)
|
||||||
|
|
||||||
cmake_dependent_option(YUZU_ROOM "Enable dedicated room functionality" ON "NOT ANDROID" OFF)
|
cmake_dependent_option(YUZU_ROOM "Enable dedicated room functionality" ON "NOT ANDROID" OFF)
|
||||||
cmake_dependent_option(YUZU_ROOM_STANDALONE "Enable standalone room executable" ON "YUZU_ROOM" OFF)
|
cmake_dependent_option(YUZU_ROOM_STANDALONE "Enable standalone room executable" ON "YUZU_ROOM" OFF)
|
||||||
|
|
||||||
|
@ -270,6 +287,13 @@ if (ANDROID)
|
||||||
set(CMAKE_POLICY_VERSION_MINIMUM 3.5) # Workaround for Oboe
|
set(CMAKE_POLICY_VERSION_MINIMUM 3.5) # Workaround for Oboe
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# We need to downgrade debug info (/Zi -> /Z7) to use an older but more cacheable format
|
||||||
|
# See https://github.com/nanoant/CMakePCHCompiler/issues/21
|
||||||
|
if(WIN32 AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||||
|
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||||
|
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Default to a Release build
|
# Default to a Release build
|
||||||
get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
|
||||||
if (NOT IS_MULTI_CONFIG AND NOT CMAKE_BUILD_TYPE)
|
if (NOT IS_MULTI_CONFIG AND NOT CMAKE_BUILD_TYPE)
|
||||||
|
@ -309,10 +333,14 @@ if (UNIX)
|
||||||
add_compile_definitions(YUZU_UNIX=1)
|
add_compile_definitions(YUZU_UNIX=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (YUZU_LEGACY)
|
||||||
|
message(WARNING "Making legacy build. Performance may suffer.")
|
||||||
|
add_compile_definitions(YUZU_LEGACY)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (ARCHITECTURE_arm64 AND (ANDROID OR PLATFORM_LINUX))
|
if (ARCHITECTURE_arm64 AND (ANDROID OR PLATFORM_LINUX))
|
||||||
set(HAS_NCE 1)
|
set(HAS_NCE 1)
|
||||||
add_compile_definitions(HAS_NCE=1)
|
add_compile_definitions(HAS_NCE=1)
|
||||||
find_package(oaknut 2.0.1)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_ROOM)
|
if (YUZU_ROOM)
|
||||||
|
@ -450,22 +478,7 @@ if (YUZU_USE_CPM)
|
||||||
|
|
||||||
if (zstd_ADDED)
|
if (zstd_ADDED)
|
||||||
add_library(zstd::zstd ALIAS libzstd_static)
|
add_library(zstd::zstd ALIAS libzstd_static)
|
||||||
endif()
|
add_library(zstd::libzstd ALIAS libzstd_static)
|
||||||
|
|
||||||
# Catch2
|
|
||||||
if (YUZU_TESTS OR DYNARMIC_TESTS)
|
|
||||||
AddJsonPackage(catch2)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# ENet
|
|
||||||
AddJsonPackage(enet)
|
|
||||||
|
|
||||||
if (enet_ADDED)
|
|
||||||
target_include_directories(enet INTERFACE ${enet_SOURCE_DIR}/include)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT TARGET enet::enet)
|
|
||||||
add_library(enet::enet ALIAS enet)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Opus
|
# Opus
|
||||||
|
@ -482,31 +495,10 @@ if (YUZU_USE_CPM)
|
||||||
if (NOT TARGET Opus::opus)
|
if (NOT TARGET Opus::opus)
|
||||||
add_library(Opus::opus ALIAS opus)
|
add_library(Opus::opus ALIAS opus)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# VulkanUtilityHeaders - pulls in headers and utility libs
|
|
||||||
AddJsonPackage(vulkan-utility-headers)
|
|
||||||
|
|
||||||
# small hack
|
|
||||||
if (NOT VulkanUtilityLibraries_ADDED)
|
|
||||||
find_package(VulkanHeaders 1.3.274 REQUIRED)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# SPIRV Headers
|
|
||||||
AddJsonPackage(spirv-headers)
|
|
||||||
|
|
||||||
# SPIRV Tools
|
|
||||||
AddJsonPackage(spirv-tools)
|
|
||||||
|
|
||||||
if (SPIRV-Tools_ADDED)
|
|
||||||
add_library(SPIRV-Tools::SPIRV-Tools ALIAS SPIRV-Tools-static)
|
|
||||||
target_link_libraries(SPIRV-Tools-static PRIVATE SPIRV-Tools-opt SPIRV-Tools-link)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# mbedtls
|
|
||||||
AddJsonPackage(mbedtls)
|
|
||||||
else()
|
else()
|
||||||
# Enforce the search mode of non-required packages for better and shorter failure messages
|
# Enforce the search mode of non-required packages for better and shorter failure messages
|
||||||
find_package(fmt 8 REQUIRED)
|
find_package(fmt 8 REQUIRED)
|
||||||
|
|
||||||
if (NOT YUZU_DISABLE_LLVM)
|
if (NOT YUZU_DISABLE_LLVM)
|
||||||
find_package(LLVM MODULE COMPONENTS Demangle)
|
find_package(LLVM MODULE COMPONENTS Demangle)
|
||||||
endif()
|
endif()
|
||||||
|
@ -515,39 +507,16 @@ else()
|
||||||
find_package(lz4 REQUIRED)
|
find_package(lz4 REQUIRED)
|
||||||
find_package(RenderDoc MODULE)
|
find_package(RenderDoc MODULE)
|
||||||
find_package(stb MODULE)
|
find_package(stb MODULE)
|
||||||
find_package(enet 1.3 MODULE REQUIRED)
|
|
||||||
find_package(Opus 1.3 MODULE REQUIRED)
|
find_package(Opus 1.3 MODULE REQUIRED)
|
||||||
find_package(ZLIB 1.2 REQUIRED)
|
find_package(ZLIB 1.2 REQUIRED)
|
||||||
find_package(zstd 1.5 REQUIRED MODULE)
|
find_package(zstd 1.5 REQUIRED MODULE)
|
||||||
|
|
||||||
# wow
|
# wow
|
||||||
if (PLATFORM_LINUX)
|
if (PLATFORM_LINUX)
|
||||||
find_package(Boost 1.57.0 REQUIRED headers context system fiber)
|
find_package(Boost 1.57.0 CONFIG REQUIRED headers context system fiber)
|
||||||
else()
|
else()
|
||||||
find_package(Boost 1.57.0 REQUIRED)
|
find_package(Boost 1.57.0 CONFIG REQUIRED)
|
||||||
endif()
|
|
||||||
|
|
||||||
# OpenBSD does not package mbedtls3 (only 2)
|
|
||||||
if (PLATFORM_OPENBSD)
|
|
||||||
AddJsonPackage(mbedtls)
|
|
||||||
else()
|
|
||||||
find_package(MbedTLS 3 REQUIRED)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(VulkanUtilityLibraries REQUIRED)
|
|
||||||
find_package(VulkanHeaders 1.3.274 REQUIRED)
|
|
||||||
|
|
||||||
# FreeBSD does not package spirv-headers
|
|
||||||
if (PLATFORM_FREEBSD)
|
|
||||||
AddJsonPackage(spirv-headers)
|
|
||||||
else()
|
|
||||||
find_package(SPIRV-Headers 1.3.274 REQUIRED)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(SPIRV-Tools MODULE REQUIRED)
|
|
||||||
|
|
||||||
if (YUZU_TESTS)
|
|
||||||
find_package(Catch2 3.0.1 REQUIRED)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR ANDROID)
|
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" OR ANDROID)
|
||||||
|
@ -563,90 +532,6 @@ if(NOT TARGET Boost::headers)
|
||||||
AddJsonPackage(boost_headers)
|
AddJsonPackage(boost_headers)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# DiscordRPC
|
|
||||||
if (USE_DISCORD_PRESENCE)
|
|
||||||
if (ARCHITECTURE_arm64)
|
|
||||||
add_compile_definitions(RAPIDJSON_ENDIAN=RAPIDJSON_LITTLEENDIAN)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
AddJsonPackage(discord-rpc)
|
|
||||||
|
|
||||||
target_include_directories(discord-rpc INTERFACE ${discord-rpc_SOURCE_DIR}/include)
|
|
||||||
add_library(DiscordRPC::discord-rpc ALIAS discord-rpc)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# SimpleIni
|
|
||||||
AddJsonPackage(simpleini)
|
|
||||||
|
|
||||||
# Most linux distros don't package cubeb, so enable regardless of cpm settings
|
|
||||||
if(ENABLE_CUBEB)
|
|
||||||
AddJsonPackage(cubeb)
|
|
||||||
|
|
||||||
if (cubeb_ADDED)
|
|
||||||
if (NOT MSVC)
|
|
||||||
if (TARGET speex)
|
|
||||||
target_compile_options(speex PRIVATE -Wno-sign-compare)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set_target_properties(cubeb PROPERTIES COMPILE_OPTIONS "")
|
|
||||||
target_compile_options(cubeb INTERFACE
|
|
||||||
-Wno-implicit-const-int-float-conversion
|
|
||||||
-Wno-shadow
|
|
||||||
-Wno-missing-declarations
|
|
||||||
-Wno-return-type
|
|
||||||
-Wno-uninitialized
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
target_compile_options(cubeb PRIVATE
|
|
||||||
/wd4456
|
|
||||||
/wd4458
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT TARGET cubeb::cubeb)
|
|
||||||
add_library(cubeb::cubeb ALIAS cubeb)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# find SDL2 exports a bunch of variables that are needed, so its easier to do this outside of the YUZU_find_package
|
|
||||||
if (ENABLE_SDL2)
|
|
||||||
if (YUZU_USE_EXTERNAL_SDL2)
|
|
||||||
message(STATUS "Using SDL2 from externals.")
|
|
||||||
if (NOT WIN32)
|
|
||||||
# Yuzu itself needs: Atomic Audio Events Joystick Haptic Sensor Threads Timers
|
|
||||||
# Since 2.0.18 Atomic+Threads required for HIDAPI/libusb (see https://github.com/libsdl-org/SDL/issues/5095)
|
|
||||||
# Yuzu-cmd also needs: Video (depends on Loadso/Dlopen)
|
|
||||||
# CPUinfo also required for SDL Audio, at least until 2.28.0 (see https://github.com/libsdl-org/SDL/issues/7809)
|
|
||||||
set(SDL_UNUSED_SUBSYSTEMS
|
|
||||||
File Filesystem
|
|
||||||
Locale Power Render)
|
|
||||||
foreach(_SUB ${SDL_UNUSED_SUBSYSTEMS})
|
|
||||||
string(TOUPPER ${_SUB} _OPT)
|
|
||||||
set(SDL_${_OPT} OFF)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
set(HIDAPI ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (APPLE)
|
|
||||||
set(SDL_FILE ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if ("${YUZU_SYSTEM_PROFILE}" STREQUAL "steamdeck")
|
|
||||||
set(SDL_PIPEWIRE OFF) # build errors out with this on
|
|
||||||
AddJsonPackage("sdl2_steamdeck")
|
|
||||||
else()
|
|
||||||
AddJsonPackage("sdl2_generic")
|
|
||||||
endif()
|
|
||||||
elseif (YUZU_USE_BUNDLED_SDL2)
|
|
||||||
message(STATUS "Using bundled SDL2")
|
|
||||||
AddJsonPackage(sdl2)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
find_package(SDL2 2.26.4 REQUIRED)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# List of all FFmpeg components required
|
# List of all FFmpeg components required
|
||||||
set(FFmpeg_COMPONENTS
|
set(FFmpeg_COMPONENTS
|
||||||
avcodec
|
avcodec
|
||||||
|
@ -677,6 +562,12 @@ add_subdirectory(externals)
|
||||||
# pass targets from externals
|
# pass targets from externals
|
||||||
find_package(libusb)
|
find_package(libusb)
|
||||||
find_package(VulkanMemoryAllocator)
|
find_package(VulkanMemoryAllocator)
|
||||||
|
find_package(enet)
|
||||||
|
find_package(MbedTLS)
|
||||||
|
find_package(VulkanUtilityLibraries)
|
||||||
|
find_package(SimpleIni)
|
||||||
|
find_package(SPIRV-Tools)
|
||||||
|
find_package(sirit)
|
||||||
|
|
||||||
if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
|
if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
|
||||||
find_package(xbyak)
|
find_package(xbyak)
|
||||||
|
@ -690,6 +581,26 @@ if (ENABLE_WEB_SERVICE OR ENABLE_QT_UPDATE_CHECKER)
|
||||||
find_package(cpp-jwt)
|
find_package(cpp-jwt)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (ARCHITECTURE_arm64 OR DYNARMIC_TESTS)
|
||||||
|
find_package(oaknut)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (ENABLE_SDL2)
|
||||||
|
find_package(SDL2)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (USE_DISCORD_PRESENCE)
|
||||||
|
find_package(DiscordRPC)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (ENABLE_CUBEB)
|
||||||
|
find_package(cubeb)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (YUZU_TESTS OR DYNARMIC_TESTS)
|
||||||
|
find_package(Catch2)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (ENABLE_QT)
|
if (ENABLE_QT)
|
||||||
if (YUZU_USE_BUNDLED_QT)
|
if (YUZU_USE_BUNDLED_QT)
|
||||||
download_qt(6.8.3)
|
download_qt(6.8.3)
|
||||||
|
@ -708,6 +619,8 @@ if (ENABLE_QT)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
|
# yes Qt, we get it
|
||||||
|
set(QT_NO_PRIVATE_MODULE_WARNING ON)
|
||||||
find_package(Qt6 REQUIRED COMPONENTS DBus OPTIONAL_COMPONENTS GuiPrivate)
|
find_package(Qt6 REQUIRED COMPONENTS DBus OPTIONAL_COMPONENTS GuiPrivate)
|
||||||
elseif (UNIX AND NOT APPLE)
|
elseif (UNIX AND NOT APPLE)
|
||||||
find_package(Qt6 REQUIRED COMPONENTS DBus Gui)
|
find_package(Qt6 REQUIRED COMPONENTS DBus Gui)
|
||||||
|
|
|
@ -743,9 +743,11 @@ function(CPMAddPackage)
|
||||||
if(NOT DEFINED CPM_ARGS_NAME)
|
if(NOT DEFINED CPM_ARGS_NAME)
|
||||||
set(CPM_ARGS_NAME ${nameFromUrl})
|
set(CPM_ARGS_NAME ${nameFromUrl})
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED CPM_ARGS_VERSION)
|
|
||||||
set(CPM_ARGS_VERSION ${verFromUrl})
|
# this is dumb and should not be done
|
||||||
endif()
|
# if(NOT DEFINED CPM_ARGS_VERSION)
|
||||||
|
# set(CPM_ARGS_VERSION ${verFromUrl})
|
||||||
|
# endif()
|
||||||
|
|
||||||
list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS URL "${CPM_ARGS_URL}")
|
list(APPEND CPM_ARGS_UNPARSED_ARGUMENTS URL "${CPM_ARGS_URL}")
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -107,7 +107,6 @@ function(AddJsonPackage)
|
||||||
get_json_element("${object}" name name "${JSON_NAME}")
|
get_json_element("${object}" name name "${JSON_NAME}")
|
||||||
get_json_element("${object}" extension extension "tar.zst")
|
get_json_element("${object}" extension extension "tar.zst")
|
||||||
get_json_element("${object}" min_version min_version "")
|
get_json_element("${object}" min_version min_version "")
|
||||||
get_json_element("${object}" cmake_filename cmake_filename "")
|
|
||||||
get_json_element("${object}" raw_disabled disabled_platforms "")
|
get_json_element("${object}" raw_disabled disabled_platforms "")
|
||||||
|
|
||||||
if (raw_disabled)
|
if (raw_disabled)
|
||||||
|
@ -124,7 +123,6 @@ function(AddJsonPackage)
|
||||||
EXTENSION ${extension}
|
EXTENSION ${extension}
|
||||||
MIN_VERSION ${min_version}
|
MIN_VERSION ${min_version}
|
||||||
DISABLED_PLATFORMS ${disabled_platforms}
|
DISABLED_PLATFORMS ${disabled_platforms}
|
||||||
CMAKE_FILENAME ${cmake_filename}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# pass stuff to parent scope
|
# pass stuff to parent scope
|
||||||
|
@ -139,6 +137,7 @@ function(AddJsonPackage)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
get_json_element("${object}" hash hash "")
|
get_json_element("${object}" hash hash "")
|
||||||
|
get_json_element("${object}" hash_suffix hash_suffix "")
|
||||||
get_json_element("${object}" sha sha "")
|
get_json_element("${object}" sha sha "")
|
||||||
get_json_element("${object}" url url "")
|
get_json_element("${object}" url url "")
|
||||||
get_json_element("${object}" key key "")
|
get_json_element("${object}" key key "")
|
||||||
|
@ -208,6 +207,7 @@ function(AddJsonPackage)
|
||||||
VERSION "${version}"
|
VERSION "${version}"
|
||||||
URL "${url}"
|
URL "${url}"
|
||||||
HASH "${hash}"
|
HASH "${hash}"
|
||||||
|
HASH_SUFFIX "${hash_suffix}"
|
||||||
SHA "${sha}"
|
SHA "${sha}"
|
||||||
REPO "${repo}"
|
REPO "${repo}"
|
||||||
KEY "${key}"
|
KEY "${key}"
|
||||||
|
@ -277,6 +277,7 @@ function(AddPackage)
|
||||||
|
|
||||||
KEY
|
KEY
|
||||||
BUNDLED_PACKAGE
|
BUNDLED_PACKAGE
|
||||||
|
FORCE_BUNDLED_PACKAGE
|
||||||
FIND_PACKAGE_ARGUMENTS
|
FIND_PACKAGE_ARGUMENTS
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -426,7 +427,9 @@ function(AddPackage)
|
||||||
- BUNDLED_PACKAGE
|
- BUNDLED_PACKAGE
|
||||||
- default to allow local
|
- default to allow local
|
||||||
]]#
|
]]#
|
||||||
if (${PKG_ARGS_NAME}_FORCE_SYSTEM)
|
if (PKG_ARGS_FORCE_BUNDLED_PACKAGE)
|
||||||
|
set_precedence(OFF OFF)
|
||||||
|
elseif (${PKG_ARGS_NAME}_FORCE_SYSTEM)
|
||||||
set_precedence(ON ON)
|
set_precedence(ON ON)
|
||||||
elseif (${PKG_ARGS_NAME}_FORCE_BUNDLED)
|
elseif (${PKG_ARGS_NAME}_FORCE_BUNDLED)
|
||||||
set_precedence(OFF OFF)
|
set_precedence(OFF OFF)
|
||||||
|
@ -446,9 +449,14 @@ function(AddPackage)
|
||||||
set_precedence(ON OFF)
|
set_precedence(ON OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (DEFINED PKG_ARGS_VERSION)
|
||||||
|
list(APPEND EXTRA_ARGS
|
||||||
|
VERSION ${PKG_ARGS_VERSION}
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
CPMAddPackage(
|
CPMAddPackage(
|
||||||
NAME ${PKG_ARGS_NAME}
|
NAME ${PKG_ARGS_NAME}
|
||||||
VERSION ${PKG_ARGS_VERSION}
|
|
||||||
URL ${pkg_url}
|
URL ${pkg_url}
|
||||||
URL_HASH ${pkg_hash}
|
URL_HASH ${pkg_hash}
|
||||||
CUSTOM_CACHE_KEY ${pkg_key}
|
CUSTOM_CACHE_KEY ${pkg_key}
|
||||||
|
@ -459,6 +467,8 @@ function(AddPackage)
|
||||||
PATCHES ${PKG_ARGS_PATCHES}
|
PATCHES ${PKG_ARGS_PATCHES}
|
||||||
EXCLUDE_FROM_ALL ON
|
EXCLUDE_FROM_ALL ON
|
||||||
|
|
||||||
|
${EXTRA_ARGS}
|
||||||
|
|
||||||
${PKG_ARGS_UNPARSED_ARGUMENTS}
|
${PKG_ARGS_UNPARSED_ARGUMENTS}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -511,12 +521,12 @@ function(add_ci_package key)
|
||||||
NAME ${ARTIFACT_PACKAGE}
|
NAME ${ARTIFACT_PACKAGE}
|
||||||
REPO ${ARTIFACT_REPO}
|
REPO ${ARTIFACT_REPO}
|
||||||
TAG v${ARTIFACT_VERSION}
|
TAG v${ARTIFACT_VERSION}
|
||||||
VERSION ${ARTIFACT_VERSION}
|
GIT_VERSION ${ARTIFACT_VERSION}
|
||||||
ARTIFACT ${ARTIFACT}
|
ARTIFACT ${ARTIFACT}
|
||||||
|
|
||||||
KEY ${key}
|
KEY ${key}-${ARTIFACT_VERSION}
|
||||||
HASH_SUFFIX sha512sum
|
HASH_SUFFIX sha512sum
|
||||||
BUNDLED_PACKAGE ON
|
FORCE_BUNDLED_PACKAGE ON
|
||||||
)
|
)
|
||||||
|
|
||||||
set(ARTIFACT_DIR ${${ARTIFACT_PACKAGE}_SOURCE_DIR} PARENT_SCOPE)
|
set(ARTIFACT_DIR ${${ARTIFACT_PACKAGE}_SOURCE_DIR} PARENT_SCOPE)
|
||||||
|
@ -533,7 +543,6 @@ function(AddCIPackage)
|
||||||
EXTENSION
|
EXTENSION
|
||||||
MIN_VERSION
|
MIN_VERSION
|
||||||
DISABLED_PLATFORMS
|
DISABLED_PLATFORMS
|
||||||
CMAKE_FILENAME
|
|
||||||
)
|
)
|
||||||
|
|
||||||
cmake_parse_arguments(PKG_ARGS "" "${oneValueArgs}" "" ${ARGN})
|
cmake_parse_arguments(PKG_ARGS "" "${oneValueArgs}" "" ${ARGN})
|
||||||
|
@ -589,25 +598,28 @@ function(AddCIPackage)
|
||||||
add_ci_package(android)
|
add_ci_package(android)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PLATFORM_SUN AND NOT "solaris" IN_LIST DISABLED_PLATFORMS)
|
if(PLATFORM_SUN AND NOT "solaris-amd64" IN_LIST DISABLED_PLATFORMS)
|
||||||
add_ci_package(solaris)
|
add_ci_package(solaris-amd64)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(PLATFORM_FREEBSD AND NOT "freebsd" IN_LIST DISABLED_PLATFORMS)
|
if(PLATFORM_FREEBSD AND NOT "freebsd-amd64" IN_LIST DISABLED_PLATFORMS)
|
||||||
add_ci_package(freebsd)
|
add_ci_package(freebsd-amd64)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if((PLATFORM_LINUX AND ARCHITECTURE_x86_64) AND NOT "linux" IN_LIST DISABLED_PLATFORMS)
|
if((PLATFORM_LINUX AND ARCHITECTURE_x86_64) AND NOT "linux-amd64" IN_LIST DISABLED_PLATFORMS)
|
||||||
add_ci_package(linux)
|
add_ci_package(linux-amd64)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if((PLATFORM_LINUX AND ARCHITECTURE_arm64) AND NOT "linux-aarch64" IN_LIST DISABLED_PLATFORMS)
|
if((PLATFORM_LINUX AND ARCHITECTURE_arm64) AND NOT "linux-aarch64" IN_LIST DISABLED_PLATFORMS)
|
||||||
add_ci_package(linux-aarch64)
|
add_ci_package(linux-aarch64)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (DEFINED ARTIFACT_DIR)
|
# TODO(crueter): macOS amd64/aarch64 split mayhaps
|
||||||
include(${ARTIFACT_DIR}/${ARTIFACT_CMAKE}.cmake)
|
if (APPLE AND NOT "macos-universal" IN_LIST DISABLED_PLATFORMS)
|
||||||
|
add_ci_package(macos-universal)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (DEFINED ARTIFACT_DIR)
|
||||||
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
||||||
set(${ARTIFACT_PACKAGE}_SOURCE_DIR "${ARTIFACT_DIR}" PARENT_SCOPE)
|
set(${ARTIFACT_PACKAGE}_SOURCE_DIR "${ARTIFACT_DIR}" PARENT_SCOPE)
|
||||||
else()
|
else()
|
||||||
|
|
|
@ -13,9 +13,12 @@ find_package_handle_standard_args(zstd
|
||||||
if (zstd_FOUND AND NOT TARGET zstd::zstd)
|
if (zstd_FOUND AND NOT TARGET zstd::zstd)
|
||||||
if (TARGET zstd::libzstd_shared)
|
if (TARGET zstd::libzstd_shared)
|
||||||
add_library(zstd::zstd ALIAS zstd::libzstd_shared)
|
add_library(zstd::zstd ALIAS zstd::libzstd_shared)
|
||||||
|
add_library(zstd::libzstd ALIAS zstd::libzstd_shared)
|
||||||
elseif (TARGET zstd::libzstd_static)
|
elseif (TARGET zstd::libzstd_static)
|
||||||
add_library(zstd::zstd ALIAS zstd::libzstd_static)
|
add_library(zstd::zstd ALIAS zstd::libzstd_static)
|
||||||
|
add_library(zstd::libzstd ALIAS zstd::libzstd_static)
|
||||||
else()
|
else()
|
||||||
add_library(zstd::zstd ALIAS PkgConfig::ZSTD)
|
add_library(zstd::zstd ALIAS PkgConfig::ZSTD)
|
||||||
|
add_library(zstd::libzstd ALIAS PkgConfig::ZSTD)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -48,6 +48,8 @@ A list of supported games will be available in future. Please be patient.
|
||||||
|
|
||||||
Check out our [website](https://eden-emu.dev) for the latest news on exciting features, monthly progress reports, and more!
|
Check out our [website](https://eden-emu.dev) for the latest news on exciting features, monthly progress reports, and more!
|
||||||
|
|
||||||
|
[](https://repology.org/project/eden-emulator/versions)
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
Most of the development happens on our Git server. It is also where [our central repository](https://git.eden-emu.dev/eden-emu/eden) is hosted. For development discussions, please join us on [Discord](https://discord.gg/kXAmGCXBGD) or [Revolt](https://rvlt.gg/qKgFEAbH).
|
Most of the development happens on our Git server. It is also where [our central repository](https://git.eden-emu.dev/eden-emu/eden) is hosted. For development discussions, please join us on [Discord](https://discord.gg/kXAmGCXBGD) or [Revolt](https://rvlt.gg/qKgFEAbH).
|
||||||
|
@ -63,6 +65,8 @@ Alternatively, if you wish to add translations, go to the [Eden project on Trans
|
||||||
|
|
||||||
See the [General Build Guide](docs/Build.md)
|
See the [General Build Guide](docs/Build.md)
|
||||||
|
|
||||||
|
For information on provided development tooling, see the [Tools directory](./tools)
|
||||||
|
|
||||||
## Download
|
## Download
|
||||||
|
|
||||||
You can download the latest releases from [here](https://github.com/eden-emulator/Releases/releases).
|
You can download the latest releases from [here](https://github.com/eden-emulator/Releases/releases).
|
||||||
|
|
133
cpmfile.json
133
cpmfile.json
|
@ -4,8 +4,11 @@
|
||||||
"package": "OpenSSL",
|
"package": "OpenSSL",
|
||||||
"name": "openssl",
|
"name": "openssl",
|
||||||
"repo": "crueter-ci/OpenSSL",
|
"repo": "crueter-ci/OpenSSL",
|
||||||
"version": "3.5.3",
|
"version": "3.6.0",
|
||||||
"min_version": "1.1.1"
|
"min_version": "1.1.1",
|
||||||
|
"disabled_platforms": [
|
||||||
|
"macos-universal"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"boost": {
|
"boost": {
|
||||||
"package": "Boost",
|
"package": "Boost",
|
||||||
|
@ -15,6 +18,7 @@
|
||||||
"hash": "4fb7f6fde92762305aad8754d7643cd918dd1f3f67e104e9ab385b18c73178d72a17321354eb203b790b6702f2cf6d725a5d6e2dfbc63b1e35f9eb59fb42ece9",
|
"hash": "4fb7f6fde92762305aad8754d7643cd918dd1f3f67e104e9ab385b18c73178d72a17321354eb203b790b6702f2cf6d725a5d6e2dfbc63b1e35f9eb59fb42ece9",
|
||||||
"git_version": "1.89.0",
|
"git_version": "1.89.0",
|
||||||
"version": "1.57",
|
"version": "1.57",
|
||||||
|
"find_args": "CONFIG",
|
||||||
"patches": [
|
"patches": [
|
||||||
"0001-clang-cl.patch",
|
"0001-clang-cl.patch",
|
||||||
"0002-use-marmasm.patch",
|
"0002-use-marmasm.patch",
|
||||||
|
@ -23,12 +27,10 @@
|
||||||
},
|
},
|
||||||
"fmt": {
|
"fmt": {
|
||||||
"repo": "fmtlib/fmt",
|
"repo": "fmtlib/fmt",
|
||||||
"sha": "40626af88b",
|
"tag": "%VERSION%",
|
||||||
"hash": "d59f06c24339f223de4ec2afeba1c67b5835a0f350a1ffa86242a72fc3e616a6b8b21798355428d4200c75287308b66634619ffa0b52ba5bd74cc01772ea1a8a",
|
"hash": "c4ab814c20fbad7e3f0ae169125a4988a2795631194703251481dc36b18da65c886c4faa9acd046b0a295005217b3689eb0126108a9ba5aac2ca909aae263c2f",
|
||||||
"version": "8",
|
"version": "8",
|
||||||
"options": [
|
"git_version": "12.0.0"
|
||||||
"FMT_INSTALL OFF"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"lz4": {
|
"lz4": {
|
||||||
"name": "lz4",
|
"name": "lz4",
|
||||||
|
@ -40,16 +42,18 @@
|
||||||
"nlohmann": {
|
"nlohmann": {
|
||||||
"package": "nlohmann_json",
|
"package": "nlohmann_json",
|
||||||
"repo": "nlohmann/json",
|
"repo": "nlohmann/json",
|
||||||
"sha": "55f93686c0",
|
"tag": "v%VERSION%",
|
||||||
"hash": "b739749b066800e21154506ea150d2c5cbce8a45344177f46f884547a1399d26753166fd0df8135269ce28cf223552b1b65cd625b88c844d54753f2434900486",
|
"hash": "6cc1e86261f8fac21cc17a33da3b6b3c3cd5c116755651642af3c9e99bb3538fd42c1bd50397a77c8fb6821bc62d90e6b91bcdde77a78f58f2416c62fc53b97d",
|
||||||
"version": "3.8"
|
"version": "3.8",
|
||||||
|
"git_version": "3.12.0"
|
||||||
},
|
},
|
||||||
"zlib": {
|
"zlib": {
|
||||||
"package": "ZLIB",
|
"package": "ZLIB",
|
||||||
"repo": "madler/zlib",
|
"repo": "madler/zlib",
|
||||||
"sha": "51b7f2abda",
|
"tag": "v%VERSION%",
|
||||||
"hash": "16eaf1f3752489d12fd9ce30f7b5f7cbd5cb8ff53d617005a9847ae72d937f65e01e68be747f62d7ac19fd0c9aeba9956e60f16d6b465c5fdc2f3d08b4db2e6c",
|
"hash": "8c9642495bafd6fad4ab9fb67f09b268c69ff9af0f4f20cf15dfc18852ff1f312bd8ca41de761b3f8d8e90e77d79f2ccacd3d4c5b19e475ecf09d021fdfe9088",
|
||||||
"version": "1.2",
|
"version": "1.2",
|
||||||
|
"git_version": "1.3.1",
|
||||||
"options": [
|
"options": [
|
||||||
"ZLIB_BUILD_SHARED OFF",
|
"ZLIB_BUILD_SHARED OFF",
|
||||||
"ZLIB_INSTALL OFF"
|
"ZLIB_INSTALL OFF"
|
||||||
|
@ -57,8 +61,8 @@
|
||||||
},
|
},
|
||||||
"zstd": {
|
"zstd": {
|
||||||
"repo": "facebook/zstd",
|
"repo": "facebook/zstd",
|
||||||
"sha": "f8745da6ff",
|
"sha": "b8d6101fba",
|
||||||
"hash": "3037007f990040fe32573b46f9bef8762fd5dbeeb07ffffcbfeba51ec98167edae39bb9c87f9299efcd61c4e467c5e84f7c19f0df7799bc1fc04864a278792ee",
|
"hash": "a6c8e5272214fd3e65e03ae4fc375f452bd2f646623886664ee23e239e35751cfc842db4d34a84a8039d89fc8f76556121f2a4ae350d017bdff5e22150f9c3de",
|
||||||
"version": "1.5",
|
"version": "1.5",
|
||||||
"source_subdir": "build/cmake",
|
"source_subdir": "build/cmake",
|
||||||
"find_args": "MODULE",
|
"find_args": "MODULE",
|
||||||
|
@ -66,20 +70,6 @@
|
||||||
"ZSTD_BUILD_SHARED OFF"
|
"ZSTD_BUILD_SHARED OFF"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"catch2": {
|
|
||||||
"package": "Catch2",
|
|
||||||
"repo": "catchorg/Catch2",
|
|
||||||
"sha": "644821ce28",
|
|
||||||
"hash": "f8795f98acf2c02c0db8e734cc866d5caebab4b4a306e93598b97cb3c0c728dafe8283dce27ffe8d42460e5ae7302f3f32e7e274a7f991b73511ac88eef21b1f",
|
|
||||||
"version": "3.0.1"
|
|
||||||
},
|
|
||||||
"enet": {
|
|
||||||
"repo": "lsalzman/enet",
|
|
||||||
"sha": "2662c0de09",
|
|
||||||
"hash": "3de1beb4fa3d6b1e03eda8dd1e7580694f854af3ed3975dcdabfdcdf76b97f322b9734d35ea7f185855bb490d957842b938b26da4dd2dfded509390f8d2794dd",
|
|
||||||
"version": "1.3",
|
|
||||||
"find_args": "MODULE"
|
|
||||||
},
|
|
||||||
"opus": {
|
"opus": {
|
||||||
"package": "Opus",
|
"package": "Opus",
|
||||||
"repo": "crueter/opus",
|
"repo": "crueter/opus",
|
||||||
|
@ -91,101 +81,16 @@
|
||||||
"OPUS_PRESUME_NEON ON"
|
"OPUS_PRESUME_NEON ON"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"vulkan-utility-headers": {
|
|
||||||
"package": "VulkanUtilityLibraries",
|
|
||||||
"repo": "scripts/VulkanUtilityHeaders",
|
|
||||||
"tag": "1.4.326",
|
|
||||||
"artifact": "VulkanUtilityHeaders.tar.zst",
|
|
||||||
"git_host": "git.crueter.xyz",
|
|
||||||
"hash": "5924629755cb1605c4aa4eee20ef7957a9dd8d61e4df548be656d98054f2730c4109693c1bd35811f401f4705d2ccff9fc849be32b0d8480bc3f73541a5e0964"
|
|
||||||
},
|
|
||||||
"spirv-tools": {
|
|
||||||
"package": "SPIRV-Tools",
|
|
||||||
"repo": "KhronosGroup/SPIRV-Tools",
|
|
||||||
"sha": "40eb301f32",
|
|
||||||
"hash": "58d0fb1047d69373cf24c73e6f78c73a72a6cca3b4df1d9f083b9dcc0962745ef154abf3dbe9b3623b835be20c6ec769431cf11733349f45e7568b3525f707aa",
|
|
||||||
"find_args": "MODULE",
|
|
||||||
"options": [
|
|
||||||
"SPIRV_SKIP_EXECUTABLES ON"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"spirv-headers": {
|
|
||||||
"package": "SPIRV-Headers",
|
|
||||||
"repo": "KhronosGroup/SPIRV-Headers",
|
|
||||||
"sha": "4e209d3d7e",
|
|
||||||
"hash": "f48bbe18341ed55ea0fe280dbbbc0a44bf222278de6e716e143ca1e95ca320b06d4d23d6583fbf8d03e1428f3dac8fa00e5b82ddcd6b425e6236d85af09550a4",
|
|
||||||
"options": [
|
|
||||||
"SPIRV_WERROR OFF"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"mbedtls": {
|
|
||||||
"package": "MbedTLS",
|
|
||||||
"repo": "Mbed-TLS/mbedtls",
|
|
||||||
"tag": "mbedtls-%VERSION%",
|
|
||||||
"hash": "6671fb8fcaa832e5b115dfdce8f78baa6a4aea71f5c89a640583634cdee27aefe3bf4be075744da91f7c3ae5ea4e0c765c8fc3937b5cfd9ea73d87ef496524da",
|
|
||||||
"version": "3",
|
|
||||||
"git_version": "3.6.4",
|
|
||||||
"artifact": "%TAG%.tar.bz2"
|
|
||||||
},
|
|
||||||
"cubeb": {
|
|
||||||
"repo": "mozilla/cubeb",
|
|
||||||
"sha": "fa02160712",
|
|
||||||
"hash": "82d808356752e4064de48c8fecbe7856715ade1e76b53937116bf07129fc1cc5b3de5e4b408de3cd000187ba8dc32ca4109661cb7e0355a52e54bd81b9be1c61",
|
|
||||||
"find_args": "CONFIG",
|
|
||||||
"options": [
|
|
||||||
"USE_SANITIZERS OFF",
|
|
||||||
"BUILD_TESTS OFF",
|
|
||||||
"BUILD_TOOLS OFF",
|
|
||||||
"BUNDLE_SPEEX ON"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"boost_headers": {
|
"boost_headers": {
|
||||||
"repo": "boostorg/headers",
|
"repo": "boostorg/headers",
|
||||||
"sha": "95930ca8f5",
|
"sha": "95930ca8f5",
|
||||||
"hash": "d1dece16f3b209109de02123c537bfe1adf07a62b16c166367e7e5d62e0f7c323bf804c89b3192dd6871bc58a9d879d25a1cc3f7b9da0e497cf266f165816e2a",
|
"hash": "d1dece16f3b209109de02123c537bfe1adf07a62b16c166367e7e5d62e0f7c323bf804c89b3192dd6871bc58a9d879d25a1cc3f7b9da0e497cf266f165816e2a",
|
||||||
"bundled": true
|
"bundled": true
|
||||||
},
|
},
|
||||||
"discord-rpc": {
|
|
||||||
"repo": "eden-emulator/discord-rpc",
|
|
||||||
"sha": "1cf7772bb6",
|
|
||||||
"hash": "e9b35e6f2c075823257bcd59f06fe7bb2ccce1976f44818d2e28810435ef79c712a3c4f20f40da41f691342a4058cf86b078eb7f9d9e4dae83c0547c21ec4f97"
|
|
||||||
},
|
|
||||||
"simpleini": {
|
|
||||||
"package": "SimpleIni",
|
|
||||||
"repo": "brofield/simpleini",
|
|
||||||
"sha": "09c21bda1d",
|
|
||||||
"hash": "99779ca9b6e040d36558cadf484f9ffdab5b47bcc8fc72e4d33639d1d60c0ceb4410d335ba445d72a4324e455167fd6769d99b459943aa135bec085dff2d4b7c",
|
|
||||||
"find_args": "MODULE"
|
|
||||||
},
|
|
||||||
"sdl2_generic": {
|
|
||||||
"package": "SDL2",
|
|
||||||
"repo": "libsdl-org/SDL",
|
|
||||||
"sha": "54772f345a",
|
|
||||||
"hash": "2a68a0e01c390043aa9d9df63d8a20a52076c88bb460ac4e0f33194ca7d9bc8fadbbcc04e7506872ac4b6354a73fbc267c036f82200da59465789b87c7d9e3a4",
|
|
||||||
"key": "generic",
|
|
||||||
"bundled": true
|
|
||||||
},
|
|
||||||
"sdl2_steamdeck": {
|
|
||||||
"package": "SDL2",
|
|
||||||
"repo": "libsdl-org/SDL",
|
|
||||||
"sha": "cc016b0046",
|
|
||||||
"hash": "34d5ef58da6a4f9efa6689c82f67badcbd741f5a4f562a9c2c30828fa839830fb07681c5dc6a7851520e261c8405a416ac0a2c2513b51984fb3b4fa4dcb3e20b",
|
|
||||||
"key": "steamdeck",
|
|
||||||
"bundled": true
|
|
||||||
},
|
|
||||||
"sdl2": {
|
|
||||||
"ci": true,
|
|
||||||
"package": "SDL2",
|
|
||||||
"name": "SDL2",
|
|
||||||
"repo": "crueter-ci/SDL2",
|
|
||||||
"version": "2.32.8",
|
|
||||||
"min_version": "2.26.4",
|
|
||||||
"cmake_filename": "sdl2"
|
|
||||||
},
|
|
||||||
"llvm-mingw": {
|
"llvm-mingw": {
|
||||||
"repo": "misc/llvm-mingw",
|
"repo": "misc/llvm-mingw",
|
||||||
"git_host": "git.crueter.xyz",
|
"git_host": "git.crueter.xyz",
|
||||||
"tag": "20250828",
|
"tag": "%VERSION%",
|
||||||
"version": "20250828",
|
"version": "20250828",
|
||||||
"artifact": "clang-rt-builtins.tar.zst",
|
"artifact": "clang-rt-builtins.tar.zst",
|
||||||
"hash": "d902392caf94e84f223766e2cc51ca5fab6cae36ab8dc6ef9ef6a683ab1c483bfcfe291ef0bd38ab16a4ecc4078344fa8af72da2f225ab4c378dee23f6186181"
|
"hash": "d902392caf94e84f223766e2cc51ca5fab6cae36ab8dc6ef9ef6a683ab1c483bfcfe291ef0bd38ab16a4ecc4078344fa8af72da2f225ab4c378dee23f6186181"
|
||||||
|
|
1537
dist/languages/ar.ts
vendored
1537
dist/languages/ar.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/ca.ts
vendored
1033
dist/languages/ca.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/cs.ts
vendored
1033
dist/languages/cs.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/da.ts
vendored
1033
dist/languages/da.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/de.ts
vendored
1033
dist/languages/de.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/el.ts
vendored
1033
dist/languages/el.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/es.ts
vendored
1033
dist/languages/es.ts
vendored
File diff suppressed because it is too large
Load diff
1716
dist/languages/fi.ts
vendored
1716
dist/languages/fi.ts
vendored
File diff suppressed because it is too large
Load diff
1452
dist/languages/fr.ts
vendored
1452
dist/languages/fr.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/hu.ts
vendored
1033
dist/languages/hu.ts
vendored
File diff suppressed because it is too large
Load diff
1035
dist/languages/id.ts
vendored
1035
dist/languages/id.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/it.ts
vendored
1033
dist/languages/it.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/ja_JP.ts
vendored
1033
dist/languages/ja_JP.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/ko_KR.ts
vendored
1033
dist/languages/ko_KR.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/nb.ts
vendored
1033
dist/languages/nb.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/nl.ts
vendored
1033
dist/languages/nl.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/pl.ts
vendored
1033
dist/languages/pl.ts
vendored
File diff suppressed because it is too large
Load diff
5078
dist/languages/pt_BR.ts
vendored
5078
dist/languages/pt_BR.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/pt_PT.ts
vendored
1033
dist/languages/pt_PT.ts
vendored
File diff suppressed because it is too large
Load diff
1193
dist/languages/ru_RU.ts
vendored
1193
dist/languages/ru_RU.ts
vendored
File diff suppressed because it is too large
Load diff
1197
dist/languages/sv.ts
vendored
1197
dist/languages/sv.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/tr_TR.ts
vendored
1033
dist/languages/tr_TR.ts
vendored
File diff suppressed because it is too large
Load diff
2097
dist/languages/uk.ts
vendored
2097
dist/languages/uk.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/vi.ts
vendored
1033
dist/languages/vi.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/vi_VN.ts
vendored
1033
dist/languages/vi_VN.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/zh_CN.ts
vendored
1033
dist/languages/zh_CN.ts
vendored
File diff suppressed because it is too large
Load diff
1033
dist/languages/zh_TW.ts
vendored
1033
dist/languages/zh_TW.ts
vendored
File diff suppressed because it is too large
Load diff
250
docs/CPM.md
250
docs/CPM.md
|
@ -1,250 +0,0 @@
|
||||||
# CPM
|
|
||||||
|
|
||||||
CPM (CMake Package Manager) is the preferred method of managing dependencies within Eden.
|
|
||||||
|
|
||||||
Global Options:
|
|
||||||
|
|
||||||
- `YUZU_USE_CPM` is set by default on MSVC and Android. Other platforms should use this if certain "required" system dependencies (e.g. OpenSSL) are broken or missing
|
|
||||||
* If this is `OFF`, required system dependencies will be searched via `find_package`, although certain externals use CPM regardless.
|
|
||||||
- `CPMUTIL_FORCE_SYSTEM` (default `OFF`): Require all CPM dependencies to use system packages. NOT RECOMMENDED!
|
|
||||||
* Many packages, e.g. mcl, sirit, xbyak, discord-rpc, are not generally available as a system package.
|
|
||||||
* You may optionally override these (see CPMUtil section)
|
|
||||||
- `CPMUTIL_FORCE_BUNDLED` (default `ON` on MSVC and Android, `OFF` elsewhere): Require all CPM dependencies to use bundled packages.
|
|
||||||
|
|
||||||
## CPMUtil
|
|
||||||
|
|
||||||
CPMUtil is a wrapper around CPM that aims to reduce boilerplate and add useful utility functions to make dependency management a piece of cake.
|
|
||||||
|
|
||||||
### AddPackage
|
|
||||||
|
|
||||||
`AddPackage` is the core of the CPMUtil wrapper, and is generally the lowest level you will need to go when dealing with dependencies.
|
|
||||||
|
|
||||||
**Identification/Fetching**
|
|
||||||
|
|
||||||
- `NAME` (required): The package name (must be the same as the `find_package` name if applicable)
|
|
||||||
- `VERSION`: The minimum version of this package that can be used on the system
|
|
||||||
- `GIT_VERSION`: The "version" found within git
|
|
||||||
- `URL`: The URL to fetch.
|
|
||||||
- `REPO`: The GitHub repo to use (`owner/repo`).
|
|
||||||
* Only GitHub is supported for now, though other platforms will see support at some point
|
|
||||||
- `TAG`: The tag to fetch, if applicable.
|
|
||||||
- `ARTIFACT`: The name of the artifact, if applicable.
|
|
||||||
- `SHA`: Commit sha to fetch, if applicable.
|
|
||||||
- `BRANCH`: Branch to fetch, if applicable.
|
|
||||||
|
|
||||||
The following configurations are supported, in descending order of precedence:
|
|
||||||
|
|
||||||
- `URL`: Bare URL download, useful for custom artifacts
|
|
||||||
* If this is set, `GIT_URL` or `REPO` should be set to allow the dependency viewer to link to the project's Git repository.
|
|
||||||
* If this is NOT set, `REPO` must be defined.
|
|
||||||
- `REPO + TAG + ARTIFACT`: GitHub release artifact
|
|
||||||
* The final download URL will be `https://github.com/${REPO}/releases/download/${TAG}/${ARTIFACT}`
|
|
||||||
* Useful for prebuilt libraries and prefetched archives
|
|
||||||
- `REPO + TAG`: GitHub tag archive
|
|
||||||
* The final download URL will be `https://github.com/${REPO}/archive/refs/tags/${TAG}.tar.gz`
|
|
||||||
* Useful for pinning to a specific tag, better for build identification
|
|
||||||
- `REPO + SHA`: GitHub commit archive
|
|
||||||
* The final download URL will be `https://github.com/${REPO}/archive/${SHA}.zip`
|
|
||||||
* Useful for pinning to a specific commit
|
|
||||||
- `REPO + BRANCH`: GitHub branch archive
|
|
||||||
* The final download URL will be `https://github.com/${REPO}/archive/refs/heads/${BRANCH}.zip`
|
|
||||||
* Generally not recommended unless the branch is frozen
|
|
||||||
- `REPO`: GitHub master archive
|
|
||||||
* The final download URL will be `https://github.com/${REPO}/archive/refs/heads/master.zip`
|
|
||||||
* Generally not recommended unless the project is dead
|
|
||||||
|
|
||||||
**Hashing**
|
|
||||||
|
|
||||||
Hashing is used for verifying downloads. It's highly recommended to use these.
|
|
||||||
|
|
||||||
- `HASH_ALGO` (default `SHA512`): Hash algorithm to use
|
|
||||||
|
|
||||||
Hashing strategies, descending order of precedence:
|
|
||||||
|
|
||||||
- `HASH`: Bare hash verification, useful for static downloads e.g. commit archives
|
|
||||||
- `HASH_SUFFIX`: Download the hash as `${DOWNLOAD_URL}.${HASH_SUFFIX}`
|
|
||||||
* The downloaded hash *must* match the hash algorithm and contain nothing but the hash; no filenames or extra content.
|
|
||||||
- `HASH_URL`: Download the hash from a separate URL
|
|
||||||
|
|
||||||
**Additional Options**
|
|
||||||
|
|
||||||
- `KEY`: Custom cache key to use (stored as `.cache/cpm/${packagename_lower}/${key}`)
|
|
||||||
* Default is based on, in descending order of precedence:
|
|
||||||
- First 4 characters of the sha
|
|
||||||
- `GIT_VERSION`
|
|
||||||
- Tag
|
|
||||||
- `VERSION`
|
|
||||||
- Otherwise, CPM defaults will be used. This is not recommended as it doesn't produce reproducible caches
|
|
||||||
- `DOWNLOAD_ONLY`: Whether or not to configure the downloaded package via CMake
|
|
||||||
* Useful to turn `OFF` if the project doesn't use CMake
|
|
||||||
- `SOURCE_SUBDIR`: Subdirectory of the project containing a CMakeLists.txt file
|
|
||||||
- `FIND_PACKAGE_ARGUMENTS`: Arguments to pass to the `find_package` call
|
|
||||||
- `BUNDLED_PACKAGE`: Set to `ON` to force the usage of a bundled package
|
|
||||||
- `OPTIONS`: Options to pass to the configuration of the package
|
|
||||||
- `PATCHES`: Patches to apply to the package, stored in `.patch/${packagename_lower}/0001-patch-name.patch` and so on
|
|
||||||
- Other arguments can be passed to CPM as well
|
|
||||||
|
|
||||||
**Extra Variables**
|
|
||||||
|
|
||||||
For each added package, users may additionally force usage of the system/bundled package.
|
|
||||||
|
|
||||||
- `${package}_FORCE_SYSTEM`: Require the package to be installed on the system
|
|
||||||
- `${package}_FORCE_BUNDLED`: Force the package to be fetched and use the bundled version
|
|
||||||
|
|
||||||
**Bundled/System Switching**
|
|
||||||
|
|
||||||
Descending order of precedence:
|
|
||||||
- If `${package}_FORCE_SYSTEM` is true, requires the package to be on the system
|
|
||||||
- If `${package}_FORCE_BUNDLED` is true, forcefully uses the bundled package
|
|
||||||
- If `CPMUTIL_FORCE_SYSTEM` is true, requires the package to be on the system
|
|
||||||
- If `CPMUTIL_FORCE_BUNDLED` is true, forcefully uses the bundled package
|
|
||||||
- If the `BUNDLED_PACKAGE` argument is true, forcefully uses the bundled package
|
|
||||||
- Otherwise, CPM will search for the package first, and if not found, will use the bundled package
|
|
||||||
|
|
||||||
**Identification**
|
|
||||||
|
|
||||||
All dependencies must be identifiable in some way for usage in the dependency viewer. Lists are provided in descending order of precedence.
|
|
||||||
|
|
||||||
URLs:
|
|
||||||
|
|
||||||
- `GIT_URL`
|
|
||||||
- `REPO` as a GitHub repository
|
|
||||||
- `URL`
|
|
||||||
|
|
||||||
Versions (bundled):
|
|
||||||
|
|
||||||
- `SHA`
|
|
||||||
- `GIT_VERSION`
|
|
||||||
- `VERSION`
|
|
||||||
- `TAG`
|
|
||||||
- "unknown"
|
|
||||||
|
|
||||||
If the package is a system package, AddPackage will attempt to determine the package version and append ` (system)` to the identifier. Otherwise, it will be marked as `unknown (system)`
|
|
||||||
|
|
||||||
### AddCIPackage
|
|
||||||
|
|
||||||
Adds a package that follows crueter's CI repository spec.
|
|
||||||
|
|
||||||
- `VERSION` (required): The version to get (the tag will be `v${VERSION}`)
|
|
||||||
- `NAME` (required): Name used within the artifacts
|
|
||||||
- `REPO` (required): CI repository, e.g. `crueter-ci/OpenSSL`
|
|
||||||
- `PACKAGE` (required): `find_package` package name
|
|
||||||
- `EXTENSION`: Artifact extension (default `tar.zst`)
|
|
||||||
- `MIN_VERSION`: Minimum version for `find_package`. Only used if platform does not support this package as a bundled artifact
|
|
||||||
- `DISABLED_PLATFORMS`: List of platforms that lack artifacts for this package. One of:
|
|
||||||
* `windows-amd64`
|
|
||||||
* `windows-arm64`
|
|
||||||
* `android`
|
|
||||||
* `solaris`
|
|
||||||
* `freebsd`
|
|
||||||
* `linux`
|
|
||||||
* `linux-aarch64`
|
|
||||||
- `CMAKE_FILENAME`: Custom CMake filename, relative to the package root (default `${PACKAGE_ROOT}/${NAME}.cmake`)
|
|
||||||
|
|
||||||
### AddJsonPackage
|
|
||||||
|
|
||||||
This is the recommended method of usage for CPMUtil. In each directory that utilizes `CPMUtil`, there must be a `cpmfile.json` that defines dependencies in a similar manner to the individual calls.
|
|
||||||
|
|
||||||
The cpmfile is an object of objects, with each sub-object being named according to the package's identifier, e.g. `openssl`, which can then be fetched with `AddJsonPackage(<identifier>)`. Options are designed to map closely to the argument names, and are always strings unless otherwise specified.
|
|
||||||
|
|
||||||
- `package` -> `NAME` (`PACKAGE` for CI), defaults to the object key
|
|
||||||
- `repo` -> `REPO`
|
|
||||||
- `version` -> `VERSION`
|
|
||||||
- `ci` (bool)
|
|
||||||
|
|
||||||
If `ci` is `false`:
|
|
||||||
|
|
||||||
- `hash` -> `HASH`
|
|
||||||
- `sha` -> `SHA`
|
|
||||||
- `tag` -> `TAG`
|
|
||||||
- `artifact` -> `ARTIFACT`
|
|
||||||
- `git_version` -> `GIT_VERSION`
|
|
||||||
- `source_subdir` -> `SOURCE_SUBDIR`
|
|
||||||
- `bundled` -> `BUNDLED_PACKAGE`
|
|
||||||
- `find_args` -> `FIND_PACKAGE_ARGUMENTS`
|
|
||||||
- `patches` -> `PATCHES` (array)
|
|
||||||
- `options` -> `OPTIONS` (array)
|
|
||||||
|
|
||||||
Other arguments aren't currently supported. If you wish to add them, see the `AddJsonPackage` function in `CMakeModules/CPMUtil.cmake`.
|
|
||||||
|
|
||||||
If `ci` is `true`:
|
|
||||||
|
|
||||||
- `name` -> `NAME`, defaults to the object key
|
|
||||||
- `extension` -> `EXTENSION`, defaults to `tar.zst`
|
|
||||||
- `min_version` -> `MIN_VERSION`
|
|
||||||
- `cmake_filename` -> `CMAKE_FILENAME`
|
|
||||||
- `extension` -> `EXTENSION`
|
|
||||||
|
|
||||||
### Examples
|
|
||||||
|
|
||||||
In order: OpenSSL CI, Boost (tag + artifact), Opus (options + find_args), discord-rpc (sha + options + patches)
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"openssl": {
|
|
||||||
"ci": true,
|
|
||||||
"package": "OpenSSL",
|
|
||||||
"name": "openssl",
|
|
||||||
"repo": "crueter-ci/OpenSSL",
|
|
||||||
"version": "3.5.2",
|
|
||||||
"min_version": "1.1.1"
|
|
||||||
},
|
|
||||||
"boost": {
|
|
||||||
"package": "Boost",
|
|
||||||
"repo": "boostorg/boost",
|
|
||||||
"tag": "boost-1.88.0",
|
|
||||||
"artifact": "boost-1.88.0-cmake.7z",
|
|
||||||
"hash": "e5b049e5b61964480ca816395f63f95621e66cb9bcf616a8b10e441e0e69f129e22443acb11e77bc1e8170f8e4171b9b7719891efc43699782bfcd4b3a365f01",
|
|
||||||
"git_version": "1.88.0",
|
|
||||||
"version": "1.57"
|
|
||||||
},
|
|
||||||
"opus": {
|
|
||||||
"package": "Opus",
|
|
||||||
"repo": "xiph/opus",
|
|
||||||
"sha": "5ded705cf4",
|
|
||||||
"hash": "0dc89e58ddda1f3bc6a7037963994770c5806c10e66f5cc55c59286fc76d0544fe4eca7626772b888fd719f434bc8a92f792bdb350c807968b2ac14cfc04b203",
|
|
||||||
"version": "1.3",
|
|
||||||
"find_args": "MODULE",
|
|
||||||
"options": [
|
|
||||||
"OPUS_BUILD_TESTING OFF",
|
|
||||||
"OPUS_BUILD_PROGRAMS OFF",
|
|
||||||
"OPUS_INSTALL_PKG_CONFIG_MODULE OFF",
|
|
||||||
"OPUS_INSTALL_CMAKE_CONFIG_MODULE OFF"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"discord-rpc": {
|
|
||||||
"repo": "discord/discord-rpc",
|
|
||||||
"sha": "963aa9f3e5",
|
|
||||||
"hash": "386e1344e9a666d730f2d335ee3aef1fd05b1039febefd51aa751b705009cc764411397f3ca08dffd46205c72f75b235c870c737b2091a4ed0c3b061f5919bde",
|
|
||||||
"options": [
|
|
||||||
"BUILD_EXAMPLES OFF"
|
|
||||||
],
|
|
||||||
"patches": [
|
|
||||||
"0001-cmake-version.patch",
|
|
||||||
"0002-no-clang-format.patch",
|
|
||||||
"0003-fix-cpp17.patch"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Inclusion
|
|
||||||
|
|
||||||
To include CPMUtil:
|
|
||||||
|
|
||||||
```cmake
|
|
||||||
include(CPMUtil)
|
|
||||||
```
|
|
||||||
|
|
||||||
## Prefetching
|
|
||||||
|
|
||||||
- To prefetch a CPM dependency (requires cpmfile):
|
|
||||||
* `tools/cpm-fetch.sh <packages>`
|
|
||||||
- To prefetch all CPM dependencies:
|
|
||||||
* `tools/cpm-fetch-all.sh`
|
|
||||||
|
|
||||||
Currently, `cpm-fetch.sh` defines the following directories for cpmfiles (max depth of 2, so subdirs are caught as well):
|
|
||||||
|
|
||||||
`externals src/qt_common src/dynarmic .`
|
|
||||||
|
|
||||||
Whenever you add a new cpmfile, update the script accordingly
|
|
14
docs/CPMUtil.md
Normal file
14
docs/CPMUtil.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
# CPMUtil
|
||||||
|
|
||||||
|
CPMUtil is a wrapper around CPM that aims to reduce boilerplate and add useful utility functions to make dependency management a piece of cake.
|
||||||
|
|
||||||
|
See more in [its repository](https://git.crueter.xyz/CMake/CPMUtil)
|
||||||
|
|
||||||
|
Eden-specific options:
|
||||||
|
|
||||||
|
- `YUZU_USE_CPM` is set by default on MSVC and Android. Other platforms should use this if certain "required" system dependencies (e.g. OpenSSL) are broken or missing
|
||||||
|
* If this is `OFF`, required system dependencies will be searched via `find_package`, although most externals use CPM regardless.
|
||||||
|
|
||||||
|
## Tooling
|
||||||
|
|
||||||
|
See the [tooling docs](../tools/cpm)
|
|
@ -63,6 +63,7 @@ Certain other dependencies will be fetched by CPM regardless. System packages *c
|
||||||
* [VulkanMemoryAllocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator)
|
* [VulkanMemoryAllocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator)
|
||||||
* [sirit](https://github.com/eden-emulator/sirit)
|
* [sirit](https://github.com/eden-emulator/sirit)
|
||||||
* [httplib](https://github.com/yhirose/cpp-httplib) - if `ENABLE_QT_UPDATE_CHECKER` or `ENABLE_WEB_SERVICE` are on
|
* [httplib](https://github.com/yhirose/cpp-httplib) - if `ENABLE_QT_UPDATE_CHECKER` or `ENABLE_WEB_SERVICE` are on
|
||||||
|
- This package is known to be broken on the AUR.
|
||||||
* [cpp-jwt](https://github.com/arun11299/cpp-jwt) 1.4+ - if `ENABLE_WEB_SERVICE` is on
|
* [cpp-jwt](https://github.com/arun11299/cpp-jwt) 1.4+ - if `ENABLE_WEB_SERVICE` is on
|
||||||
* [unordered-dense](https://github.com/martinus/unordered_dense)
|
* [unordered-dense](https://github.com/martinus/unordered_dense)
|
||||||
* [mcl](https://github.com/azahar-emu/mcl) - subject to removal
|
* [mcl](https://github.com/azahar-emu/mcl) - subject to removal
|
||||||
|
@ -194,7 +195,7 @@ Run the usual update + install of essential toolings: `sudo pkg update && sudo p
|
||||||
- **gcc**: `sudo pkg install developer/gcc-14`.
|
- **gcc**: `sudo pkg install developer/gcc-14`.
|
||||||
- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`.
|
- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`.
|
||||||
|
|
||||||
Then install the libraries: `sudo pkg install qt6 boost glslang libzip library/lz4 nlohmann-json openssl opus sdl2 zlib compress/zstd unzip pkg-config nasm autoconf mesa library/libdrm header-drm developer/fmt`.
|
Then install the libraries: `sudo pkg install qt6 boost glslang libzip library/lz4 libusb-1 nlohmann-json openssl opus sdl2 zlib compress/zstd unzip pkg-config nasm autoconf mesa library/libdrm header-drm developer/fmt`.
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
|
@ -5,6 +5,6 @@ This contains documentation created by developers. This contains build instructi
|
||||||
- **[General Build Instructions](Build.md)**
|
- **[General Build Instructions](Build.md)**
|
||||||
- **[Development Guidelines](Development.md)**
|
- **[Development Guidelines](Development.md)**
|
||||||
- **[Dependencies](Deps.md)**
|
- **[Dependencies](Deps.md)**
|
||||||
- **[CPM - CMake Package Manager](CPM.md)**
|
- **[CPM - CMake Package Manager](CPMUtil.md)**
|
||||||
- **[Platform-Specific Caveats](Caveats.md)**
|
- **[Platform-Specific Caveats](Caveats.md)**
|
||||||
- **[User Directory Handling](User.md)**
|
- **[User Handbook](User.md)**
|
|
@ -27,6 +27,7 @@ The following are not valid reasons to sign up:
|
||||||
* To download and use Eden, see our [Releases page](https://github.com/eden-emulator/Releases/releases)!
|
* To download and use Eden, see our [Releases page](https://github.com/eden-emulator/Releases/releases)!
|
||||||
- I want to see the source code.
|
- I want to see the source code.
|
||||||
* To see Eden's source code, go [here](https://git.eden-emu.dev/eden-emu/eden).
|
* To see Eden's source code, go [here](https://git.eden-emu.dev/eden-emu/eden).
|
||||||
|
|
||||||
## Other Information
|
## Other Information
|
||||||
|
|
||||||
Requests that appear suspicious, automated, OR blank will generally be automatically filtered. In cases of suspicion, or any of the invalid reasons listed above, you may receive an email back asking for clarification.
|
Requests that appear suspicious, automated, OR blank will generally be automatically filtered. In cases of suspicion, or any of the invalid reasons listed above, you may receive an email back asking for clarification.
|
||||||
|
|
15
docs/User.md
15
docs/User.md
|
@ -1,11 +1,10 @@
|
||||||
# User configuration
|
# User Handbook
|
||||||
|
|
||||||
## Configuration directories
|
The "FAQ".
|
||||||
|
|
||||||
Eden will store configuration in the following directories:
|
This handbook is primarily aimed at the end-user - baking useful knowledge for enhancing their emulation experience.
|
||||||
|
|
||||||
- **Windows**: `%AppData%\Roaming`.
|
- **[The Basics](user/Basics.md)**
|
||||||
- **Android**: Data is stored internally.
|
- **[Audio](user/Audio.md)**
|
||||||
- **Linux, macOS, FreeBSD, Solaris, OpenBSD**: `$XDG_DATA_HOME`, `$XDG_CACHE_HOME`, `$XDG_CONFIG_HOME`.
|
- **[Graphics](user/Graphics.md)**
|
||||||
|
- **[Platforms and Architectures](user/Architectures.md)**
|
||||||
If a `user` directory is present in the current working directory, that will override all global configuration directories and the emulator will use that instead.
|
|
||||||
|
|
1
docs/build/Android.md
vendored
1
docs/build/Android.md
vendored
|
@ -33,6 +33,7 @@ Eden by default will be cloned into -
|
||||||
4. Navigate to `eden/src/android`.
|
4. Navigate to `eden/src/android`.
|
||||||
5. Then Build with `./gradlew assembleRelWithDebInfo`.
|
5. Then Build with `./gradlew assembleRelWithDebInfo`.
|
||||||
6. To build the optimised build use `./gradlew assembleGenshinSpoofRelWithDebInfo`.
|
6. To build the optimised build use `./gradlew assembleGenshinSpoofRelWithDebInfo`.
|
||||||
|
7. You can pass extra variables to cmake via `-PYUZU_ANDROID_ARGS="-D..."`
|
||||||
|
|
||||||
### Script
|
### Script
|
||||||
A convenience script for building is provided in `.ci/android/build.sh`. The built APK can be put into an `artifacts` directory via `.ci/android/package.sh`. On Windows, these must be done in the Git Bash or MinGW terminal.
|
A convenience script for building is provided in `.ci/android/build.sh`. The built APK can be put into an `artifacts` directory via `.ci/android/package.sh`. On Windows, these must be done in the Git Bash or MinGW terminal.
|
||||||
|
|
132
docs/user/Architectures.md
Normal file
132
docs/user/Architectures.md
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
# User Handbook - Architectures and Platforms
|
||||||
|
|
||||||
|
Notes and caveats for different architectures and platforms.
|
||||||
|
|
||||||
|
# Architectures
|
||||||
|
|
||||||
|
Eden is primarily designed to run on amd64 (x86_64--Intel/AMD 64-bit) and aarch64 (arm64--ARM 64-bit) CPUs. Each architecture tends to have their own quirks and fun stuff; this page serves as a reference for these quirks.
|
||||||
|
|
||||||
|
## amd64
|
||||||
|
|
||||||
|
AMD64, aka x86_64, is the most tested and supported architecture for desktop targets. Android is entirely unsupported.
|
||||||
|
|
||||||
|
### Caveats
|
||||||
|
|
||||||
|
AMD64 systems are almost always limited by the CPU. For example, a Zen 5/RX 6600 system will often hit max CPU usage before the GPU ever reaches 70% usage, with minimal exceptions (that tend to pop up only at >200fps). JIT is slow!
|
||||||
|
|
||||||
|
Computers on Linux will almost always run Eden strictly better than an equivalent machine on Windows. This is largely due to the way the Linux kernel handles memory management (and the lack of Microsoft spyware).
|
||||||
|
|
||||||
|
Intel Macs are believed to be supported, but no CI is provided for them. Performance will likely be awful on all but the highest-end iMacs and Pro-level Macs, and the MoltenVK requirement generally means Vulkan compatibility will suffer.
|
||||||
|
|
||||||
|
## aarch64
|
||||||
|
|
||||||
|
ARM64, aka aarch64, is the only supported architecture for Android, with limited experimental support available on Linux, Windows, and macOS.
|
||||||
|
|
||||||
|
### Caveats
|
||||||
|
|
||||||
|
NCE (Native Code Execution) is currently only available on Android and (experimentally) Linux. Support for macOS is in the works, but Windows is extremely unlikely to ever happen (if you want it--submit patches!). Generally, if NCE is available, you should pretty much always use it due to the massive performance hit JIT has.
|
||||||
|
|
||||||
|
When NCE is enabled, do note that the GPU will almost always be the limiting factor. This is especially the case for Android, as well as desktops that lack dedicated GPUs; Adreno, Mali, PowerVR, etc. GPUs are generally significantly weaker relative to their respective CPUs.
|
||||||
|
|
||||||
|
Windows/arm64 is *very* experimental and is unlikely to work at all. Support and testing is in the works.
|
||||||
|
|
||||||
|
## riscv64
|
||||||
|
|
||||||
|
RISC-V, aka riscv64, is sparsely tested, but preliminary tests from developers have reported at least partial support on Milk-V's Fedora/riscv64 Linux distribution. Performance, Vulkan support, compatibility, and build system caveats are largely unknown for the time being.
|
||||||
|
|
||||||
|
### Caveats
|
||||||
|
|
||||||
|
Windows/riscv64 doesn't exist, and may never (until corporate greed no longer consumes Microsoft).
|
||||||
|
|
||||||
|
Android/riscv64 is interesting. While support for it may be added if and when RISC-V phones/handhelds ever go mainstream, arm64 devices will always be preferred due to NCE.
|
||||||
|
|
||||||
|
Only Fedora/riscv64 has been tested, but in theory, every riscv64 distribution that has *at least* the standard build tools, Qt, FFmpeg, and SDL2 should work.
|
||||||
|
|
||||||
|
## Other
|
||||||
|
|
||||||
|
Other architectures, such as SPARC, MIPS, PowerPC, Loong, and all 32-bit architectures are completely unsupported, as there is no JIT backend or emitter thereof. If you want support for it--submit patches!
|
||||||
|
|
||||||
|
IA-64 (Itanium) support is completely unknown. Existing amd64 packages will not run on IA-64 (assuming you can even find a supported Windows/Linux distribution)
|
||||||
|
|
||||||
|
# Platforms
|
||||||
|
|
||||||
|
The vast majority of Eden's testing is done on Windows, Linux, and Android. However, first-class support is also provided for:
|
||||||
|
|
||||||
|
- FreeBSD
|
||||||
|
- OpenBSD
|
||||||
|
- OpenIndiana (Solaris)
|
||||||
|
- macOS
|
||||||
|
|
||||||
|
## Linux
|
||||||
|
|
||||||
|
While all modern Linux distributions are supported (Fedora >40, Ubuntu >24.04, Debian >12, Arch, Gentoo, etc.), the vast majority of testing and development for Linux is on Arch and Gentoo. Most major build system changes are tested on Gentoo first and foremost, so if builds fail on any modern distribution no matter what you do, it's likely a bug and should be reported.
|
||||||
|
|
||||||
|
Intel and Nvidia GPU support is limited. AMD (RADV) drivers receive first-class testing and are known to provide the most stable Eden experience possible.
|
||||||
|
|
||||||
|
Wayland is not recommended. Testing has shown significantly worse performance on most Wayland compositors compared to X11, alongside mysterious bugs and compatibility errors. For now, set `QT_QPA_PLATFORM=xcb` when running Eden, or pass `-platform xcb` to the launch arguments.
|
||||||
|
|
||||||
|
## Windows
|
||||||
|
|
||||||
|
Windows 10 and 11 are supported. Support for Windows 8.x is unknown, and Windows 7 support is unlikely to ever be added.
|
||||||
|
|
||||||
|
In order to run Eden, you will probably need to install the [Visual C++ Redistributable](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170).
|
||||||
|
|
||||||
|
Neither AMD nor Nvidia drivers work nearly as well as Linux's RADV drivers. Compatibility is still largely the same, but performance and some hard-to-run games may suffer compared to Linux.
|
||||||
|
|
||||||
|
## Android
|
||||||
|
|
||||||
|
A cooler is always recommended. Phone SoCs tend to get very hot, especially those manufactured with the Samsung process or those lacking in power.
|
||||||
|
|
||||||
|
Adreno 6xx and 7xx GPUs with Turnip drivers will always have the best compatibility. "Stock" (system) drivers will have better performance on Adreno, but compatibility will suffer. Better support for stock drivers (including Adreno 8xx) is in the works.
|
||||||
|
|
||||||
|
Android 16 is always recommended, as it brought major improvements to Vulkan requirements and compatibility, *plus* significant performance gains. Some users reported an over 50% performance gain on some Pixel phones after updating.
|
||||||
|
|
||||||
|
Mali, PowerVR, Xclipse, and other GPU vendors generally lack in performance and compatibility. Notably:
|
||||||
|
- No PowerVR GPUs *except* the DXT-48-1536 are known to work with Eden at all.
|
||||||
|
- No Xclipse GPUs *except* the very latest (e.g. Xclipse 950) are known to work with Eden at all.
|
||||||
|
- Mali has especially bad performance, though the Mali-G715 (Tensor G4) and Immortalis-G925 are known to generally run surprisingly well, especially on Android 16.
|
||||||
|
- The status of all other GPU vendors is unknown. As long as they support Vulkan, they theoretically can run Eden.
|
||||||
|
- Note that these GPUs generally don't play well with driver injection. If you choose to inject custom drivers via a rooted system (Panfrost, RADV, etc), you may see good results.
|
||||||
|
|
||||||
|
Qualcomm Snapdragon SoCs are generally the most well supported.
|
||||||
|
- Google Tensor chips have pretty terrible performance, but even the G1 has been proven to be able to run some games well on the Pixel 6 Pro.
|
||||||
|
* The Tensor G4 is the best-supported at the time. How the G5 currently fares is unknown, but on paper, it should do about as well as a Snapdragon 8 Gen 2 with stock drivers.
|
||||||
|
- Samsung Exynos chips made before 2022 are not supported.
|
||||||
|
- MediaTek Dimensity chips are extremely weak and most before mid-2023 don't work at all.
|
||||||
|
* This means that most budget phones won't work, as they tend to use old MediaTek SoCs.
|
||||||
|
* Generally, if your phone doesn't cost *at least* as much as a Switch itself, it will not *emulate* the Switch very well.
|
||||||
|
- Snapdragon 865 and other old-ish SoCs may benefit from the Legacy build. These will reduce performance but *should* drastically improve compatibility.
|
||||||
|
- If you're not sure how powerful your SoC is, check [NanoReview](https://nanoreview.net/en/soc-compare) - e.g. [Tensor G5](https://archive.is/ylC4Z).
|
||||||
|
* A good base to compare to is the Snapdragon 865--e.g. [Tensor vs SD865](https://archive.is/M1P58)
|
||||||
|
* Some benchmarks may be misleading due to thermal throttling OR RAM requirements.
|
||||||
|
- For example, a Pixel 6a (Tensor G1) performs about 1/3 as well as an 865 due to its lack of RAM and poor thermals.
|
||||||
|
* Remember--always use a cooler if you can, and you MUST have *at least* 8GB of RAM!
|
||||||
|
- If you're not sure what SoC you have, check [GSMArena](https://www.gsmarena.com) - e.g. [Pixel 9 Pro](https://archive.ph/91VhA)
|
||||||
|
|
||||||
|
Custom ROMs are recommended, *as long as* you know what you're doing.
|
||||||
|
- For most devices, [LineageOS](https://lineageos.org/) is preferred.
|
||||||
|
- [CalyxOS](https://calyxos.org/) is available as well.
|
||||||
|
- For Google Pixel devices ONLY... and [soon another OEM](https://archive.ph/cPpMd)... [GrapheneOS](https://grapheneos.org/) is highly recommended.
|
||||||
|
* As of October 5, 2025, the Pixel 10 line is unsupported, however, [it will be](https://archive.is/viAUl) in the very near future!
|
||||||
|
* Keep checking the [FAQ page](https://grapheneos.org/faq#supported-devices) for news.
|
||||||
|
- Custom ROMs will likely be exclusively recommended in the future due to Google's upcoming [draconian](https://archive.is/hGIjZ), [anti-privacy, anti-user](https://archive.is/mc1CJ) verification requirements.
|
||||||
|
|
||||||
|
Eden is currently unavailable on F-Droid or the Play Store. Check back occasionally.
|
||||||
|
|
||||||
|
## macOS
|
||||||
|
|
||||||
|
macOS is relatively stable, with only the occasional crash and bug. Compatibility may suffer due to the MoltenVK layer, however.
|
||||||
|
|
||||||
|
Do note that building the GUI version with Qt versions higher than 6.7.3 will cause mysterious bugs, Vulkan errors, and crashes, alongside the cool feature of freezing the entire system UI randomly; we recommend you build with 6.7.3 (via aqtinstall) or earlier as the CI does.
|
||||||
|
|
||||||
|
## *BSD, Solaris
|
||||||
|
|
||||||
|
BSD and Solaris distributions tend to lag behind Linux in terms of Vulkan and other library compatibility. For example, OpenIndiana (Solaris) does not properly package Qt, meaning the recommended method of usage is to use `eden-cli` only for now. Solaris also generally works better with OpenGL.
|
||||||
|
|
||||||
|
AMD GPU support on these platforms is limited or nonexistent.
|
||||||
|
|
||||||
|
## VMs
|
||||||
|
|
||||||
|
Eden "can" run in a VM, but only with the software renderer, *unless* you create a hardware-accelerated KVM with GPU passthrough. If you *really* want to do this and don't have a spare GPU lying around, RX 570 and 580 GPUs are extremely cheap on the black market and are powerful enough to run most commercial games at 60fps.
|
||||||
|
|
||||||
|
Some users and developers have had success using a pure OpenGL-accelerated KVM on Linux with a Windows VM, but this is ridiculously tedious to set up. You're probably better off dual-booting.
|
3
docs/user/Audio.md
Normal file
3
docs/user/Audio.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# User Handbook - Audio
|
||||||
|
|
||||||
|
`PULSE_SERVER=none` forces cubeb to use ALSA.
|
57
docs/user/Basics.md
Normal file
57
docs/user/Basics.md
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
# User Handbook - The Basics
|
||||||
|
|
||||||
|
## Introduction
|
||||||
|
|
||||||
|
Eden is a very complicated piece of software, and as such there are many knobs and toggles that can be configured. Most of these are invisible to normal users, however power users may be able to leverage them to their advantage.
|
||||||
|
|
||||||
|
This handbook primarily describes such knobs and toggles. Normal configuration options are described within the emulator itself and will not be covered in detail.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
The emulator is very demanding on hardware, and as such requires a decent mid-range computer/cellphone.
|
||||||
|
|
||||||
|
See [the requirements page](https://archive.is/sv83h) for recommended and minimum specs.
|
||||||
|
|
||||||
|
The CPU must support FMA for an optimal gameplay experience. The GPU needs to support OpenGL 4.6 ([compatibility list](https://opengl.gpuinfo.org/)), or Vulkan 1.1 ([compatibility list](https://vulkan.gpuinfo.org/)).
|
||||||
|
|
||||||
|
If your GPU doesn't support or is just behind by a minor version, see Mesa environment variables below (*nix only).
|
||||||
|
|
||||||
|
## User configuration
|
||||||
|
|
||||||
|
### Configuration directories
|
||||||
|
|
||||||
|
Eden will store configuration files in the following directories:
|
||||||
|
|
||||||
|
- **Windows**: `%AppData%\Roaming`.
|
||||||
|
- **Android**: Data is stored internally.
|
||||||
|
- **Linux, macOS, FreeBSD, Solaris, OpenBSD**: `$XDG_DATA_HOME`, `$XDG_CACHE_HOME`, `$XDG_CONFIG_HOME`.
|
||||||
|
|
||||||
|
If a `user` directory is present in the current working directory, that will override all global configuration directories and the emulator will use that instead.
|
||||||
|
|
||||||
|
### Environment variables
|
||||||
|
|
||||||
|
Throughout the handbook, environment variables are mentioned. These are often either global (system wide) or local (set in a script, bound only to the current session). It's heavily recommended to use them in a local context only, as this allows you to rollback changes easily (if for example, there are regressions setting them).
|
||||||
|
|
||||||
|
The recommended way is to create a `.bat` file alongside the emulator `.exe`; contents of which could resemble something like:
|
||||||
|
|
||||||
|
```bat
|
||||||
|
set "__GL_THREADED_OPTIMIZATIONS=1"
|
||||||
|
set "SOME_OTHER_VAR=1"
|
||||||
|
eden.exe
|
||||||
|
```
|
||||||
|
|
||||||
|
Android doesn't have a convenient way to set environment variables.
|
||||||
|
|
||||||
|
For other platforms, the recommended method is using a shell script:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export __GL_THREADED_OPTIMIZATIONS=1
|
||||||
|
export SOME_OTHER_VAR=1
|
||||||
|
./eden
|
||||||
|
```
|
||||||
|
|
||||||
|
Then just running `chmod +x script.sh && source script.sh`.
|
||||||
|
|
||||||
|
## Compatibility list
|
||||||
|
|
||||||
|
Eden doesn't mantain a compatibility list. However, [EmuReady](https://www.emuready.com/) has a more fine-grained compatibility information for multiple emulators/forks as well.
|
62
docs/user/Graphics.md
Normal file
62
docs/user/Graphics.md
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
# User Handbook - Graphics
|
||||||
|
|
||||||
|
## Visual Enhancements
|
||||||
|
|
||||||
|
### Anti-aliasing
|
||||||
|
|
||||||
|
Enhancements aimed at removing jagged lines/sharp edges and/or masking artifacts.
|
||||||
|
|
||||||
|
- **No AA**: Default, provides no anti-aliasing.
|
||||||
|
- **FXAA**: Fast Anti-Aliasing, an implementation as described on [this blog post](https://web.archive.org/web/20110831051323/http://timothylottes.blogspot.com/2011/03/nvidia-fxaa.html). Generally fast but with some innocuos artifacts.
|
||||||
|
- **SMAA**: Subpixel Morphological Anti-Aliasing, an implementation as described on [this article](https://web.archive.org/web/20250000000000*/https://www.iryoku.com/smaa/).
|
||||||
|
|
||||||
|
### Filters
|
||||||
|
|
||||||
|
Various graphical filters exist - each of them aimed at a specific target/image quality preset.
|
||||||
|
|
||||||
|
- **Nearest**: Provides no filtering - useful for debugging.
|
||||||
|
- **Pros**: Fast, works in any hardware.
|
||||||
|
- **Cons**: Less image quality.
|
||||||
|
- **Bilinear**: Provides the hardware default filtering of the Tegra X1.
|
||||||
|
- **Pros**: Fast with acceptable image quality.
|
||||||
|
- **Bicubic**: Provides a bicubic interpolation using a Catmull-Rom (or hardware-accelerated) implementation.
|
||||||
|
- **Pros**: Better image quality with more rounded edges.
|
||||||
|
- **Zero-Tangent, B-Spline, Mitchell**: Provides bicubic interpolation using the respective matrix weights. They're normally not hardware accelerated unless the device supports the `VK_QCOM_filter_cubic_weights` extension. The matrix weights are those matching [the specification itself](https://registry.khronos.org/vulkan/specs/latest/html/vkspec.html#VkSamplerCubicWeightsCreateInfoQCOM).
|
||||||
|
- **Pros/Cons**: Each of them is a variation of the Bicubic interpolation model with different weights, they offer different methods to fix some artifacts present in Catmull-Rom.
|
||||||
|
- **Spline-1**: Bicubic interpolation (similar to Mitchell) but with a faster texel fetch method. Generally less blurry than bicubic.
|
||||||
|
- **Pros**: Faster than bicubic even without hardware accelerated bicubic.
|
||||||
|
- **Gaussian**: Whole-area blur, an applied gaussian blur is done to the entire frame.
|
||||||
|
- **Pros**: Less edge artifacts.
|
||||||
|
- **Cons**: Slow and sometimes blurry.
|
||||||
|
- **Lanczos**: An implementation using `a = 3` (49 texel fetches). Provides sharper edges but blurrier artifacts.
|
||||||
|
- **Pros**: Less edge artifacts and less blurry than gaussian.
|
||||||
|
- **Cons**: Slow.
|
||||||
|
- **ScaleForce**: Experimental texture upscale method, see [ScaleFish](https://github.com/BreadFish64/ScaleFish).
|
||||||
|
- **Pros**: Relatively fast.
|
||||||
|
- **FSR**: Uses AMD FidelityFX Super Resolution to enhance image quality.
|
||||||
|
- **Pros**: Great for upscaling, and offers sharper visual quality.
|
||||||
|
- **Cons**: Somewhat slow, and may be offputtingly sharp.
|
||||||
|
- **Area**: Area interpolation (high kernel count).
|
||||||
|
- **Pros**: Best for downscaling (internal resolution > display resolution).
|
||||||
|
- **Cons**: Costly and slow.
|
||||||
|
- **MMPX**: Nearest-neighbour filter aimed at providing higher pixel-art quality.
|
||||||
|
- **Pros**: Offers decent pixel-art upscaling.
|
||||||
|
- **Cons**: Only works for pixel-art.
|
||||||
|
|
||||||
|
### External
|
||||||
|
|
||||||
|
While stock shaders offer a basic subset of options for most users, programs such as [ReShade](https://github.com/crosire/reshade) offer a more flexible experience. In addition to that users can also seek out modifications (mods) for enhancing visual experience (60 FPS mods, HDR, etc).
|
||||||
|
|
||||||
|
## Driver specifics
|
||||||
|
|
||||||
|
### Mesa environment variable hacks
|
||||||
|
|
||||||
|
The software requires a certain version of Vulkan and a certain version of OpenGL to work - otherwise it will refuse to load, this can be easily bypassed by setting an environment variable: `MESA_GL_VERSION_OVERRIDE=4.6 MESA_GLSL_VERSION_OVERRIDE=460` (OpenGL) and `MESA_VK_VERSION_OVERRIDE=1.3` (Vulkan), for more information see [Environment variables for Mesa](https://web.archive.org/web/20250000000000*/https://docs.mesa3d.org/envvars.html).
|
||||||
|
|
||||||
|
### NVIDIA OpenGL environment variables
|
||||||
|
|
||||||
|
Unstable multithreaded optimisations are offered by the stock proprietary NVIDIA driver on X11 platforms. Setting `__GL_THREADED_OPTIMIZATIONS` to `1` would enable such optimisations. This mainly benefits the OpenGL backend. For more information see [Environment Variables for X11 NVIDIA](https://web.archive.org/web/20250115162518/https://download.nvidia.com/XFree86/Linux-x86_64/435.17/README/openglenvvariables.html).
|
||||||
|
|
||||||
|
### swrast/LLVMpipe crashes under high load
|
||||||
|
|
||||||
|
The OpenGL backend would invoke behaviour that would result in swarst/LLVMpipe writing an invalid SSA IR (on old versions of Mesa), and then proceeding to crash. The solution is using a script found in [tools/llvmpipe-run.sh](../../tools/llvmpipe-run.sh).
|
153
externals/CMakeLists.txt
vendored
153
externals/CMakeLists.txt
vendored
|
@ -39,6 +39,147 @@ if (ARCHITECTURE_arm64 OR DYNARMIC_TESTS)
|
||||||
AddJsonPackage(oaknut)
|
AddJsonPackage(oaknut)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# enet
|
||||||
|
AddJsonPackage(enet)
|
||||||
|
|
||||||
|
if (enet_ADDED)
|
||||||
|
target_include_directories(enet INTERFACE ${enet_SOURCE_DIR}/include)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT TARGET enet::enet)
|
||||||
|
add_library(enet::enet ALIAS enet)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# mbedtls
|
||||||
|
AddJsonPackage(mbedtls)
|
||||||
|
|
||||||
|
# VulkanUtilityHeaders - pulls in headers and utility libs
|
||||||
|
AddJsonPackage(vulkan-utility-headers)
|
||||||
|
|
||||||
|
# small hack
|
||||||
|
if (NOT VulkanUtilityLibraries_ADDED)
|
||||||
|
find_package(VulkanHeaders 1.3.274 REQUIRED)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# DiscordRPC
|
||||||
|
if (USE_DISCORD_PRESENCE)
|
||||||
|
if (ARCHITECTURE_arm64)
|
||||||
|
add_compile_definitions(RAPIDJSON_ENDIAN=RAPIDJSON_LITTLEENDIAN)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
AddJsonPackage(discord-rpc)
|
||||||
|
|
||||||
|
if (DiscordRPC_ADDED)
|
||||||
|
target_include_directories(discord-rpc INTERFACE ${DiscordRPC_SOURCE_DIR}/include)
|
||||||
|
add_library(DiscordRPC::discord-rpc ALIAS discord-rpc)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# SimpleIni
|
||||||
|
AddJsonPackage(simpleini)
|
||||||
|
|
||||||
|
# Most linux distros don't package cubeb, so enable regardless of cpm settings
|
||||||
|
if(ENABLE_CUBEB)
|
||||||
|
AddJsonPackage(cubeb)
|
||||||
|
|
||||||
|
if (cubeb_ADDED)
|
||||||
|
if (NOT MSVC)
|
||||||
|
if (TARGET speex)
|
||||||
|
target_compile_options(speex PRIVATE -Wno-sign-compare)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set_target_properties(cubeb PROPERTIES COMPILE_OPTIONS "")
|
||||||
|
target_compile_options(cubeb INTERFACE
|
||||||
|
-Wno-implicit-const-int-float-conversion
|
||||||
|
-Wno-shadow
|
||||||
|
-Wno-missing-declarations
|
||||||
|
-Wno-return-type
|
||||||
|
-Wno-uninitialized
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
target_compile_options(cubeb PRIVATE
|
||||||
|
/wd4456
|
||||||
|
/wd4458
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT TARGET cubeb::cubeb)
|
||||||
|
add_library(cubeb::cubeb ALIAS cubeb)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# find SDL2 exports a bunch of variables that are needed, so its easier to do this outside of the YUZU_find_package
|
||||||
|
if (ENABLE_SDL2)
|
||||||
|
if (YUZU_USE_EXTERNAL_SDL2)
|
||||||
|
message(STATUS "Using SDL2 from externals.")
|
||||||
|
if (NOT WIN32)
|
||||||
|
# Yuzu itself needs: Atomic Audio Events Joystick Haptic Sensor Threads Timers
|
||||||
|
# Since 2.0.18 Atomic+Threads required for HIDAPI/libusb (see https://github.com/libsdl-org/SDL/issues/5095)
|
||||||
|
# Yuzu-cmd also needs: Video (depends on Loadso/Dlopen)
|
||||||
|
# CPUinfo also required for SDL Audio, at least until 2.28.0 (see https://github.com/libsdl-org/SDL/issues/7809)
|
||||||
|
set(SDL_UNUSED_SUBSYSTEMS
|
||||||
|
File Filesystem
|
||||||
|
Locale Power Render)
|
||||||
|
foreach(_SUB ${SDL_UNUSED_SUBSYSTEMS})
|
||||||
|
string(TOUPPER ${_SUB} _OPT)
|
||||||
|
set(SDL_${_OPT} OFF)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(HIDAPI ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
set(SDL_FILE ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if ("${YUZU_SYSTEM_PROFILE}" STREQUAL "steamdeck")
|
||||||
|
set(SDL_PIPEWIRE OFF) # build errors out with this on
|
||||||
|
AddJsonPackage("sdl2_steamdeck")
|
||||||
|
else()
|
||||||
|
AddJsonPackage("sdl2_generic")
|
||||||
|
endif()
|
||||||
|
elseif (YUZU_USE_BUNDLED_SDL2)
|
||||||
|
message(STATUS "Using bundled SDL2")
|
||||||
|
AddJsonPackage(sdl2)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
find_package(SDL2 2.26.4 REQUIRED)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# SPIRV Headers
|
||||||
|
AddJsonPackage(spirv-headers)
|
||||||
|
|
||||||
|
# Sirit
|
||||||
|
if (YUZU_USE_BUNDLED_SIRIT)
|
||||||
|
AddJsonPackage(sirit-ci)
|
||||||
|
else()
|
||||||
|
AddJsonPackage(sirit)
|
||||||
|
# Change to old-but-more-cacheable debug info on Windows
|
||||||
|
if (WIN32 AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||||
|
get_target_property(sirit_opts sirit COMPILE_OPTIONS)
|
||||||
|
list(FILTER sirit_opts EXCLUDE REGEX "/Zi")
|
||||||
|
list(APPEND sirit_opts "/Z7")
|
||||||
|
set_target_properties(sirit PROPERTIES COMPILE_OPTIONS "${sirit_opts}")
|
||||||
|
endif()
|
||||||
|
if(MSVC AND CXX_CLANG)
|
||||||
|
target_compile_options(siritobj PRIVATE -Wno-error=unused-command-line-argument)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# SPIRV Tools
|
||||||
|
AddJsonPackage(spirv-tools)
|
||||||
|
|
||||||
|
if (SPIRV-Tools_ADDED)
|
||||||
|
add_library(SPIRV-Tools::SPIRV-Tools ALIAS SPIRV-Tools-static)
|
||||||
|
target_link_libraries(SPIRV-Tools-static PRIVATE SPIRV-Tools-opt SPIRV-Tools-link)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Catch2
|
||||||
|
if (YUZU_TESTS OR DYNARMIC_TESTS)
|
||||||
|
AddJsonPackage(catch2)
|
||||||
|
endif()
|
||||||
|
|
||||||
# getopt
|
# getopt
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
add_subdirectory(getopt)
|
add_subdirectory(getopt)
|
||||||
|
@ -67,18 +208,6 @@ if (VulkanMemoryAllocator_ADDED)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Sirit
|
|
||||||
AddJsonPackage(sirit)
|
|
||||||
|
|
||||||
if(MSVC AND USE_CCACHE AND sirit_ADDED)
|
|
||||||
get_target_property(_opts sirit COMPILE_OPTIONS)
|
|
||||||
list(FILTER _opts EXCLUDE REGEX "/Zi")
|
|
||||||
list(APPEND _opts "/Z7")
|
|
||||||
set_target_properties(sirit PROPERTIES COMPILE_OPTIONS "${_opts}")
|
|
||||||
elseif(MSVC AND CXX_CLANG)
|
|
||||||
target_compile_options(sirit PRIVATE -Wno-error=unused-command-line-argument)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# httplib
|
# httplib
|
||||||
if (ENABLE_WEB_SERVICE OR ENABLE_QT_UPDATE_CHECKER)
|
if (ENABLE_WEB_SERVICE OR ENABLE_QT_UPDATE_CHECKER)
|
||||||
AddJsonPackage(httplib)
|
AddJsonPackage(httplib)
|
||||||
|
|
170
externals/cpmfile.json
vendored
170
externals/cpmfile.json
vendored
|
@ -2,23 +2,34 @@
|
||||||
"vulkan-memory-allocator": {
|
"vulkan-memory-allocator": {
|
||||||
"package": "VulkanMemoryAllocator",
|
"package": "VulkanMemoryAllocator",
|
||||||
"repo": "GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator",
|
"repo": "GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator",
|
||||||
"sha": "1076b348ab",
|
"tag": "v%VERSION%",
|
||||||
"hash": "a46b44e4286d08cffda058e856c47f44c7fed3da55fe9555976eb3907fdcc20ead0b1860b0c38319cda01dbf9b1aa5d4b4038c7f1f8fbd97283d837fa9af9772",
|
"hash": "deb5902ef8db0e329fbd5f3f4385eb0e26bdd9f14f3a2334823fb3fe18f36bc5d235d620d6e5f6fe3551ec3ea7038638899db8778c09f6d5c278f5ff95c3344b",
|
||||||
"find_args": "CONFIG"
|
"find_args": "CONFIG",
|
||||||
|
"git_version": "3.3.0"
|
||||||
},
|
},
|
||||||
"sirit": {
|
"sirit": {
|
||||||
"repo": "eden-emulator/sirit",
|
"repo": "eden-emulator/sirit",
|
||||||
"sha": "db1f1e8ab5",
|
"git_version": "1.0.2",
|
||||||
"hash": "73eb3a042848c63a10656545797e85f40d142009dfb7827384548a385e1e28e1ac72f42b25924ce530d58275f8638554281e884d72f9c7aaf4ed08690a414b05",
|
"tag": "v%VERSION%",
|
||||||
|
"artifact": "sirit-source-%VERSION%.tar.zst",
|
||||||
|
"hash_suffix": "sha512sum",
|
||||||
"find_args": "CONFIG",
|
"find_args": "CONFIG",
|
||||||
"options": [
|
"options": [
|
||||||
"SIRIT_USE_SYSTEM_SPIRV_HEADERS ON"
|
"SIRIT_USE_SYSTEM_SPIRV_HEADERS ON"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"sirit-ci": {
|
||||||
|
"ci": true,
|
||||||
|
"package": "sirit",
|
||||||
|
"name": "sirit",
|
||||||
|
"repo": "eden-emulator/sirit",
|
||||||
|
"version": "1.0.2"
|
||||||
|
},
|
||||||
"httplib": {
|
"httplib": {
|
||||||
"repo": "yhirose/cpp-httplib",
|
"repo": "yhirose/cpp-httplib",
|
||||||
"sha": "a609330e4c",
|
"tag": "v%VERSION%",
|
||||||
"hash": "dd3fd0572f8367d8549e1319fd98368b3e75801a293b0c3ac9b4adb806473a4506a484b3d389dc5bee5acc460cb90af7a20e5df705a1696b56496b30b9ce7ed2"
|
"hash": "b364500f76e2ecb0fe21b032d831272e3f1dfeea71af74e325f8fc4ce9dcdb3c941b97a5b422bdeafb9facd058597b90f8bfc284fb9afe3c33fefa15dd5a010b",
|
||||||
|
"git_version": "0.26.0"
|
||||||
},
|
},
|
||||||
"cpp-jwt": {
|
"cpp-jwt": {
|
||||||
"version": "1.4",
|
"version": "1.4",
|
||||||
|
@ -33,22 +44,26 @@
|
||||||
"xbyak_sun": {
|
"xbyak_sun": {
|
||||||
"package": "xbyak",
|
"package": "xbyak",
|
||||||
"repo": "herumi/xbyak",
|
"repo": "herumi/xbyak",
|
||||||
"sha": "9bb219333a",
|
"tag": "v%VERSION%",
|
||||||
"hash": "303165d45c8c19387ec49d9fda7d7a4e0d86d4c0153898c23f25ce2d58ece567f44c0bbbfe348239b933edb6e1a1e34f4bc1c0ab3a285bee5da0e548879387b0",
|
"hash": "e84992c65ad62c577e2746ec5180132fd2875166d1e6b1521a0ff619787e1645792fe5f6a858fe94ed66f297912b6a6b89a509b5d5f5e81a2db1dd7e6790b1f5",
|
||||||
"bundled": true
|
"bundled": true,
|
||||||
|
"git_version": "7.30"
|
||||||
},
|
},
|
||||||
"xbyak": {
|
"xbyak": {
|
||||||
"package": "xbyak",
|
"package": "xbyak",
|
||||||
"repo": "herumi/xbyak",
|
"repo": "herumi/xbyak",
|
||||||
"sha": "4e44f4614d",
|
"tag": "v%VERSION%",
|
||||||
"hash": "5824e92159e07fa36a774aedd3b3ef3541d0241371d522cffa4ab3e1f215fa5097b1b77865b47b2481376c704fa079875557ea463ca63d0a7fd6a8a20a589e70",
|
"hash": "1042090405c426e339506c179d53e91d4d545ce9c9f53d8f797caa092d589f913a9bcb9c8f31c4c60870acb954c556e305fb6732c66bc3c8f1cd924f9172def9",
|
||||||
"bundled": true
|
"git_version": "7.22",
|
||||||
|
"bundled": true,
|
||||||
|
"skip_updates": true
|
||||||
},
|
},
|
||||||
"oaknut": {
|
"oaknut": {
|
||||||
|
"repo": "eden-emulator/oaknut",
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"repo": "merryhime/oaknut",
|
"git_version": "2.0.3",
|
||||||
"sha": "94c726ce03",
|
"tag": "v%VERSION%",
|
||||||
"hash": "d8d082242fa1881abce3c82f8dafa002c4e561e66a69e7fc038af67faa5eff2630f082d3d19579c88c4c9f9488e54552accc8cb90e7ce743efe043b6230c08ac"
|
"hash": "9697e80a7d5d9bcb3ce51051a9a24962fb90ca79d215f1f03ae6b58da8ba13a63b5dda1b4dde3d26ac6445029696b8ef2883f4e5a777b342bba01283ed293856"
|
||||||
},
|
},
|
||||||
"libadrenotools": {
|
"libadrenotools": {
|
||||||
"repo": "bylaws/libadrenotools",
|
"repo": "bylaws/libadrenotools",
|
||||||
|
@ -60,15 +75,128 @@
|
||||||
},
|
},
|
||||||
"oboe": {
|
"oboe": {
|
||||||
"repo": "google/oboe",
|
"repo": "google/oboe",
|
||||||
"sha": "2bc873e53c",
|
"tag": "%VERSION%",
|
||||||
"hash": "02329058a7f9cf7d5039afaae5ab170d9f42f60f4c01e21eaf4f46073886922b057a9ae30eeac040b3ac182f51b9c1bfe9fe1050a2c9f6ce567a1a9a0ec2c768",
|
"hash": "ce4011afe7345370d4ead3b891cd69a5ef224b129535783586c0ca75051d303ed446e6c7f10bde8da31fff58d6e307f1732a3ffd03b249f9ef1fd48fd4132715",
|
||||||
|
"git_version": "1.10.0",
|
||||||
"bundled": true
|
"bundled": true
|
||||||
},
|
},
|
||||||
"unordered-dense": {
|
"unordered-dense": {
|
||||||
"package": "unordered_dense",
|
"package": "unordered_dense",
|
||||||
"repo": "martinus/unordered_dense",
|
"repo": "martinus/unordered_dense",
|
||||||
"sha": "73f3cbb237",
|
"tag": "v%VERSION%",
|
||||||
"hash": "c08c03063938339d61392b687562909c1a92615b6ef39ec8df19ea472aa6b6478e70d7d5e33d4a27b5d23f7806daf57fe1bacb8124c8a945c918c7663a9e8532",
|
"hash": "f9c819e28e1c1a387acfee09277d6af5e366597a0d39acf1c687acf0608a941ba966af8aaebdb8fba0126c7360269c4a51754ef4cab17c35c01a30215f953368",
|
||||||
"find_args": "CONFIG"
|
"find_args": "CONFIG",
|
||||||
|
"git_version": "4.5.0"
|
||||||
|
},
|
||||||
|
"mbedtls": {
|
||||||
|
"package": "MbedTLS",
|
||||||
|
"repo": "Mbed-TLS/mbedtls",
|
||||||
|
"tag": "mbedtls-%VERSION%",
|
||||||
|
"hash": "6671fb8fcaa832e5b115dfdce8f78baa6a4aea71f5c89a640583634cdee27aefe3bf4be075744da91f7c3ae5ea4e0c765c8fc3937b5cfd9ea73d87ef496524da",
|
||||||
|
"version": "3",
|
||||||
|
"git_version": "3.6.4",
|
||||||
|
"artifact": "%TAG%.tar.bz2",
|
||||||
|
"skip_updates": true
|
||||||
|
},
|
||||||
|
"enet": {
|
||||||
|
"repo": "lsalzman/enet",
|
||||||
|
"tag": "v%VERSION%",
|
||||||
|
"hash": "a0d2fa8c957704dd49e00a726284ac5ca034b50b00d2b20a94fa1bbfbb80841467834bfdc84aa0ed0d6aab894608fd6c86c3b94eee46343f0e6d9c22e391dbf9",
|
||||||
|
"version": "1.3",
|
||||||
|
"git_version": "1.3.18",
|
||||||
|
"find_args": "MODULE"
|
||||||
|
},
|
||||||
|
"vulkan-utility-headers": {
|
||||||
|
"package": "VulkanUtilityLibraries",
|
||||||
|
"repo": "scripts/VulkanUtilityHeaders",
|
||||||
|
"tag": "%VERSION%",
|
||||||
|
"git_version": "1.4.328",
|
||||||
|
"artifact": "VulkanUtilityHeaders.tar.zst",
|
||||||
|
"git_host": "git.crueter.xyz",
|
||||||
|
"hash": "9922217b39faf73cd4fc1510f2fdba14a49aa5c0d77f9ee24ee0512cef16b234d0cabc83c1fec861fa5df1d43e7f086ca9b6501753899119f39c5ca530cb0dae"
|
||||||
|
},
|
||||||
|
"spirv-tools": {
|
||||||
|
"package": "SPIRV-Tools",
|
||||||
|
"repo": "crueter/SPIRV-Tools",
|
||||||
|
"sha": "2fa2d44485",
|
||||||
|
"hash": "45b198be1d09974ccb2438e8bfa5683f23a0421b058297c28eacfd77e454ec2cf87e77850eddd202efff34b004d8d6b4d12e9615e59bd72be904c196f5eb2169",
|
||||||
|
"git_version": "2025.4",
|
||||||
|
"options": [
|
||||||
|
"SPIRV_SKIP_EXECUTABLES ON"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"spirv-headers": {
|
||||||
|
"package": "SPIRV-Headers",
|
||||||
|
"repo": "KhronosGroup/SPIRV-Headers",
|
||||||
|
"sha": "01e0577914",
|
||||||
|
"hash": "d0f905311faf7d743de686fdf241dc4cb0a4f08e2184f5a3b3b2946e680db3cd89eeb72954eafe6fa457f93550e27d516575c8709cb134d8aecc0b43064636ce",
|
||||||
|
"options": [
|
||||||
|
"SPIRV_WERROR OFF"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"cubeb": {
|
||||||
|
"repo": "mozilla/cubeb",
|
||||||
|
"sha": "fa02160712",
|
||||||
|
"hash": "82d808356752e4064de48c8fecbe7856715ade1e76b53937116bf07129fc1cc5b3de5e4b408de3cd000187ba8dc32ca4109661cb7e0355a52e54bd81b9be1c61",
|
||||||
|
"find_args": "CONFIG",
|
||||||
|
"options": [
|
||||||
|
"USE_SANITIZERS OFF",
|
||||||
|
"BUILD_TESTS OFF",
|
||||||
|
"BUILD_TOOLS OFF",
|
||||||
|
"BUNDLE_SPEEX ON"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sdl2": {
|
||||||
|
"ci": true,
|
||||||
|
"package": "SDL2",
|
||||||
|
"name": "SDL2",
|
||||||
|
"repo": "crueter-ci/SDL2",
|
||||||
|
"version": "2.32.10",
|
||||||
|
"min_version": "2.26.4",
|
||||||
|
"disabled_platforms": [
|
||||||
|
"macos-universal"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"catch2": {
|
||||||
|
"package": "Catch2",
|
||||||
|
"repo": "catchorg/Catch2",
|
||||||
|
"tag": "v%VERSION%",
|
||||||
|
"hash": "a95495142f915d6e9c2a23e80fe360343e9097680066a2f9d3037a070ba5f81ee5559a0407cc9e972dc2afae325873f1fc7ea07a64012c0f01aac6e549f03e3f",
|
||||||
|
"version": "3.0.1",
|
||||||
|
"git_version": "3.11.0"
|
||||||
|
},
|
||||||
|
"discord-rpc": {
|
||||||
|
"package": "DiscordRPC",
|
||||||
|
"repo": "eden-emulator/discord-rpc",
|
||||||
|
"sha": "1cf7772bb6",
|
||||||
|
"hash": "e9b35e6f2c075823257bcd59f06fe7bb2ccce1976f44818d2e28810435ef79c712a3c4f20f40da41f691342a4058cf86b078eb7f9d9e4dae83c0547c21ec4f97",
|
||||||
|
"find_args": "MODULE"
|
||||||
|
},
|
||||||
|
"simpleini": {
|
||||||
|
"package": "SimpleIni",
|
||||||
|
"repo": "brofield/simpleini",
|
||||||
|
"tag": "v%VERSION%",
|
||||||
|
"hash": "6c198636816a0018adbf7f735d402c64245c6fcd540b7360d4388d46f007f3a520686cdaec4705cb8cb31401b2cb4797a80b42ea5d08a6a5807c0848386f7ca1",
|
||||||
|
"find_args": "MODULE",
|
||||||
|
"git_version": "4.22"
|
||||||
|
},
|
||||||
|
"sdl2_generic": {
|
||||||
|
"package": "SDL2",
|
||||||
|
"repo": "libsdl-org/SDL",
|
||||||
|
"tag": "release-%VERSION%",
|
||||||
|
"hash": "d5622d6bb7266f7942a7b8ad43e8a22524893bf0c2ea1af91204838d9b78d32768843f6faa248757427b8404b8c6443776d4afa6b672cd8571a4e0c03a829383",
|
||||||
|
"key": "generic",
|
||||||
|
"bundled": true,
|
||||||
|
"git_version": "2.32.10",
|
||||||
|
"skip_updates": true
|
||||||
|
},
|
||||||
|
"sdl2_steamdeck": {
|
||||||
|
"package": "SDL2",
|
||||||
|
"repo": "libsdl-org/SDL",
|
||||||
|
"sha": "cc016b0046",
|
||||||
|
"hash": "34d5ef58da6a4f9efa6689c82f67badcbd741f5a4f562a9c2c30828fa839830fb07681c5dc6a7851520e261c8405a416ac0a2c2513b51984fb3b4fa4dcb3e20b",
|
||||||
|
"key": "steamdeck",
|
||||||
|
"bundled": true,
|
||||||
|
"skip_updates": "true"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
5
externals/ffmpeg/cpmfile.json
vendored
5
externals/ffmpeg/cpmfile.json
vendored
|
@ -13,8 +13,9 @@
|
||||||
"version": "8.0",
|
"version": "8.0",
|
||||||
"min_version": "4.1",
|
"min_version": "4.1",
|
||||||
"disabled_platforms": [
|
"disabled_platforms": [
|
||||||
"freebsd",
|
"freebsd-amd64",
|
||||||
"solaris"
|
"solaris-amd64",
|
||||||
|
"macos-universal"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
13
externals/libusb/CMakeLists.txt
vendored
13
externals/libusb/CMakeLists.txt
vendored
|
@ -6,18 +6,7 @@
|
||||||
|
|
||||||
include(CPMUtil)
|
include(CPMUtil)
|
||||||
|
|
||||||
# we love our libraries don't we folks
|
AddJsonPackage(libusb)
|
||||||
if (PLATFORM_SUN)
|
|
||||||
set(libusb_bundled ON)
|
|
||||||
else()
|
|
||||||
set(libusb_bundled OFF)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# TODO(crueter): Fix on Solaris
|
|
||||||
AddJsonPackage(
|
|
||||||
NAME libusb
|
|
||||||
BUNDLED_PACKAGE ${libusb_bundled}
|
|
||||||
)
|
|
||||||
|
|
||||||
if (NOT libusb_ADDED)
|
if (NOT libusb_ADDED)
|
||||||
return()
|
return()
|
||||||
|
|
7
externals/libusb/cpmfile.json
vendored
7
externals/libusb/cpmfile.json
vendored
|
@ -1,8 +1,9 @@
|
||||||
{
|
{
|
||||||
"libusb": {
|
"libusb": {
|
||||||
"repo": "libusb/libusb",
|
"repo": "libusb/libusb",
|
||||||
"sha": "c060e9ce30",
|
"tag": "v%VERSION%",
|
||||||
"hash": "44647357ba1179020cfa6674d809fc35cf6f89bff1c57252fe3a610110f5013ad678fc6eb5918e751d4384c30e2fe678868dbffc5f85736157e546cb9d10accc",
|
"hash": "98c5f7940ff06b25c9aa65aa98e23de4c79a4c1067595f4c73cc145af23a1c286639e1ba11185cd91bab702081f307b973f08a4c9746576dc8d01b3620a3aeb5",
|
||||||
"find_args": "MODULE"
|
"find_args": "MODULE",
|
||||||
|
"git_version": "1.0.29"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -101,15 +101,9 @@ if (MSVC AND NOT CXX_CLANG)
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_CCACHE OR YUZU_USE_PRECOMPILED_HEADERS)
|
if (WIN32 AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||||
# when caching, we need to use /Z7 to downgrade debug info to use an older but more cacheable format
|
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||||
# Precompiled headers are deleted if not using /Z7. See https://github.com/nanoant/CMakePCHCompiler/issues/21
|
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||||
add_compile_options(/Z7)
|
|
||||||
# Avoid D9025 warning
|
|
||||||
string(REPLACE "/Zi" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
|
||||||
string(REPLACE "/Zi" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
|
||||||
else()
|
|
||||||
add_compile_options(/Zi)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ARCHITECTURE_x86_64)
|
if (ARCHITECTURE_x86_64)
|
||||||
|
|
|
@ -57,8 +57,8 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// TODO If this is ever modified, change application_id in strings.xml
|
|
||||||
applicationId = "dev.eden.eden_emulator"
|
applicationId = "dev.eden.eden_emulator"
|
||||||
|
|
||||||
minSdk = 28
|
minSdk = 28
|
||||||
targetSdk = 36
|
targetSdk = 36
|
||||||
versionName = getGitVersion()
|
versionName = getGitVersion()
|
||||||
|
@ -72,7 +72,32 @@ android {
|
||||||
|
|
||||||
buildConfigField("String", "GIT_HASH", "\"${getGitHash()}\"")
|
buildConfigField("String", "GIT_HASH", "\"${getGitHash()}\"")
|
||||||
buildConfigField("String", "BRANCH", "\"${getBranch()}\"")
|
buildConfigField("String", "BRANCH", "\"${getBranch()}\"")
|
||||||
|
|
||||||
|
externalNativeBuild {
|
||||||
|
cmake {
|
||||||
|
val extraCMakeArgs = (project.findProperty("YUZU_ANDROID_ARGS") as String?)?.split("\\s+".toRegex()) ?: emptyList()
|
||||||
|
|
||||||
|
arguments.addAll(listOf(
|
||||||
|
"-DENABLE_QT=0", // Don't use QT
|
||||||
|
"-DENABLE_SDL2=0", // Don't use SDL
|
||||||
|
"-DENABLE_WEB_SERVICE=1", // Enable web service
|
||||||
|
"-DENABLE_OPENSSL=ON",
|
||||||
|
"-DANDROID_ARM_NEON=true", // cryptopp requires Neon to work
|
||||||
|
"-DYUZU_USE_CPM=ON",
|
||||||
|
"-DCPMUTIL_FORCE_BUNDLED=ON",
|
||||||
|
"-DYUZU_USE_BUNDLED_FFMPEG=ON",
|
||||||
|
"-DCMAKE_EXPORT_COMPILE_COMMANDS=ON",
|
||||||
|
"-DBUILD_TESTING=OFF",
|
||||||
|
"-DYUZU_TESTS=OFF",
|
||||||
|
"-DDYNARMIC_TESTS=OFF",
|
||||||
|
*extraCMakeArgs.toTypedArray()
|
||||||
|
))
|
||||||
|
|
||||||
|
abiFilters("arm64-v8a")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
val keystoreFile = System.getenv("ANDROID_KEYSTORE_FILE")
|
val keystoreFile = System.getenv("ANDROID_KEYSTORE_FILE")
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
|
@ -94,7 +119,6 @@ android {
|
||||||
|
|
||||||
// Define build types, which are orthogonal to product flavors.
|
// Define build types, which are orthogonal to product flavors.
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
|
||||||
// Signed by release key, allowing for upload to Play Store.
|
// Signed by release key, allowing for upload to Play Store.
|
||||||
release {
|
release {
|
||||||
signingConfig = if (keystoreFile != null) {
|
signingConfig = if (keystoreFile != null) {
|
||||||
|
@ -103,7 +127,6 @@ android {
|
||||||
signingConfigs.getByName("default")
|
signingConfigs.getByName("default")
|
||||||
}
|
}
|
||||||
|
|
||||||
resValue("string", "app_name_suffixed", "Eden")
|
|
||||||
isMinifyEnabled = true
|
isMinifyEnabled = true
|
||||||
isDebuggable = false
|
isDebuggable = false
|
||||||
proguardFiles(
|
proguardFiles(
|
||||||
|
@ -116,7 +139,6 @@ android {
|
||||||
// Attaches 'debug' suffix to version and package name, allowing installation alongside the release build.
|
// Attaches 'debug' suffix to version and package name, allowing installation alongside the release build.
|
||||||
register("relWithDebInfo") {
|
register("relWithDebInfo") {
|
||||||
isDefault = true
|
isDefault = true
|
||||||
resValue("string", "app_name_suffixed", "Eden Debug Release")
|
|
||||||
signingConfig = signingConfigs.getByName("default")
|
signingConfig = signingConfigs.getByName("default")
|
||||||
isDebuggable = true
|
isDebuggable = true
|
||||||
proguardFiles(
|
proguardFiles(
|
||||||
|
@ -132,7 +154,6 @@ android {
|
||||||
// Attaches 'debug' suffix to version and package name, allowing installation alongside the release build.
|
// Attaches 'debug' suffix to version and package name, allowing installation alongside the release build.
|
||||||
debug {
|
debug {
|
||||||
signingConfig = signingConfigs.getByName("default")
|
signingConfig = signingConfigs.getByName("default")
|
||||||
resValue("string", "app_name_suffixed", "Eden Debug")
|
|
||||||
isDebuggable = true
|
isDebuggable = true
|
||||||
isJniDebuggable = true
|
isJniDebuggable = true
|
||||||
versionNameSuffix = "-debug"
|
versionNameSuffix = "-debug"
|
||||||
|
@ -140,19 +161,62 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// this is really annoying but idk any other ways to fix this behavior
|
||||||
|
applicationVariants.all {
|
||||||
|
val variant = this
|
||||||
|
when {
|
||||||
|
variant.flavorName == "legacy" && variant.buildType.name == "debug" -> {
|
||||||
|
variant.resValue("string", "app_name_suffixed", "Eden Legacy Debug")
|
||||||
|
}
|
||||||
|
variant.flavorName == "mainline" && variant.buildType.name == "debug" -> {
|
||||||
|
variant.resValue("string", "app_name_suffixed", "Eden Debug")
|
||||||
|
}
|
||||||
|
variant.flavorName == "genshinSpoof" && variant.buildType.name == "debug" -> {
|
||||||
|
variant.resValue("string", "app_name_suffixed", "Eden Optimized Debug")
|
||||||
|
}
|
||||||
|
variant.flavorName == "legacy" && variant.buildType.name == "relWithDebInfo" -> {
|
||||||
|
variant.resValue("string", "app_name_suffixed", "Eden Legacy Debug Release")
|
||||||
|
}
|
||||||
|
variant.flavorName == "mainline" && variant.buildType.name == "relWithDebInfo" -> {
|
||||||
|
variant.resValue("string", "app_name_suffixed", "Eden Debug Release")
|
||||||
|
}
|
||||||
|
variant.flavorName == "genshinSpoof" && variant.buildType.name == "relWithDebInfo" -> {
|
||||||
|
variant.resValue("string", "app_name_suffixed", "Eden Optimized Debug Release")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
flavorDimensions.add("version")
|
flavorDimensions.add("version")
|
||||||
productFlavors {
|
productFlavors {
|
||||||
create("mainline") {
|
create("mainline") {
|
||||||
dimension = "version"
|
dimension = "version"
|
||||||
// No need to set applicationId here
|
resValue("string", "app_name_suffixed", "Eden")
|
||||||
}
|
}
|
||||||
|
|
||||||
create("genshinSpoof") {
|
create("genshinSpoof") {
|
||||||
dimension = "version"
|
dimension = "version"
|
||||||
resValue("string", "app_name_suffixed", "Eden Optimised")
|
resValue("string", "app_name_suffixed", "Eden Optimized")
|
||||||
applicationId = "com.miHoYo.Yuanshen"
|
applicationId = "com.miHoYo.Yuanshen"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
create("legacy") {
|
||||||
|
dimension = "version"
|
||||||
|
resValue("string", "app_name_suffixed", "Eden Legacy")
|
||||||
|
applicationId = "dev.legacy.eden_emulator"
|
||||||
|
|
||||||
|
externalNativeBuild {
|
||||||
|
cmake {
|
||||||
|
arguments.add("-DYUZU_LEGACY=ON")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets {
|
||||||
|
getByName("legacy") {
|
||||||
|
res.srcDirs("src/main/legacy")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,29 +226,6 @@ android {
|
||||||
path = file("../../../CMakeLists.txt")
|
path = file("../../../CMakeLists.txt")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
defaultConfig {
|
|
||||||
externalNativeBuild {
|
|
||||||
cmake {
|
|
||||||
arguments(
|
|
||||||
"-DENABLE_QT=0", // Don't use QT
|
|
||||||
"-DENABLE_SDL2=0", // Don't use SDL
|
|
||||||
"-DENABLE_WEB_SERVICE=1", // Enable web service
|
|
||||||
"-DENABLE_OPENSSL=ON",
|
|
||||||
"-DANDROID_ARM_NEON=true", // cryptopp requires Neon to work
|
|
||||||
"-DYUZU_USE_CPM=ON",
|
|
||||||
"-DCPMUTIL_FORCE_BUNDLED=ON",
|
|
||||||
"-DYUZU_USE_BUNDLED_FFMPEG=ON",
|
|
||||||
"-DCMAKE_EXPORT_COMPILE_COMMANDS=ON",
|
|
||||||
"-DBUILD_TESTING=OFF",
|
|
||||||
"-DYUZU_TESTS=OFF",
|
|
||||||
"-DDYNARMIC_TESTS=OFF"
|
|
||||||
)
|
|
||||||
|
|
||||||
abiFilters("arm64-v8a")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.register<Delete>("ktlintReset", fun Delete.() {
|
tasks.register<Delete>("ktlintReset", fun Delete.() {
|
||||||
|
|
|
@ -51,7 +51,6 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
||||||
|
|
||||||
SOC_OVERLAY_BACKGROUND("soc_overlay_background"),
|
SOC_OVERLAY_BACKGROUND("soc_overlay_background"),
|
||||||
|
|
||||||
ENABLE_RAII("enable_raii"),
|
|
||||||
FRAME_INTERPOLATION("frame_interpolation"),
|
FRAME_INTERPOLATION("frame_interpolation"),
|
||||||
// FRAME_SKIPPING("frame_skipping"),
|
// FRAME_SKIPPING("frame_skipping"),
|
||||||
|
|
||||||
|
@ -71,7 +70,6 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
||||||
DEBUG_FLUSH_BY_LINE("flush_line"),
|
DEBUG_FLUSH_BY_LINE("flush_line"),
|
||||||
USE_LRU_CACHE("use_lru_cache");
|
USE_LRU_CACHE("use_lru_cache");
|
||||||
|
|
||||||
external fun isRaiiEnabled(): Boolean
|
|
||||||
|
|
||||||
// external fun isFrameSkippingEnabled(): Boolean
|
// external fun isFrameSkippingEnabled(): Boolean
|
||||||
external fun isFrameInterpolationEnabled(): Boolean
|
external fun isFrameInterpolationEnabled(): Boolean
|
||||||
|
|
|
@ -229,13 +229,6 @@ abstract class SettingsItem(
|
||||||
|
|
||||||
override fun reset() = BooleanSetting.USE_DOCKED_MODE.reset()
|
override fun reset() = BooleanSetting.USE_DOCKED_MODE.reset()
|
||||||
}
|
}
|
||||||
put(
|
|
||||||
SwitchSetting(
|
|
||||||
BooleanSetting.ENABLE_RAII,
|
|
||||||
titleId = R.string.enable_raii,
|
|
||||||
descriptionId = R.string.enable_raii_description
|
|
||||||
)
|
|
||||||
)
|
|
||||||
put(
|
put(
|
||||||
SwitchSetting(
|
SwitchSetting(
|
||||||
BooleanSetting.FRAME_INTERPOLATION,
|
BooleanSetting.FRAME_INTERPOLATION,
|
||||||
|
@ -833,3 +826,4 @@ abstract class SettingsItem(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -462,7 +462,6 @@ class SettingsFragmentPresenter(
|
||||||
add(IntSetting.RENDERER_SAMPLE_SHADING_FRACTION.key)
|
add(IntSetting.RENDERER_SAMPLE_SHADING_FRACTION.key)
|
||||||
|
|
||||||
add(HeaderSetting(R.string.veil_renderer))
|
add(HeaderSetting(R.string.veil_renderer))
|
||||||
add(BooleanSetting.ENABLE_RAII.key)
|
|
||||||
add(BooleanSetting.RENDERER_EARLY_RELEASE_FENCES.key)
|
add(BooleanSetting.RENDERER_EARLY_RELEASE_FENCES.key)
|
||||||
add(IntSetting.DMA_ACCURACY.key)
|
add(IntSetting.DMA_ACCURACY.key)
|
||||||
add(BooleanSetting.BUFFER_REORDER_DISABLE.key)
|
add(BooleanSetting.BUFFER_REORDER_DISABLE.key)
|
||||||
|
|
BIN
src/android/app/src/main/legacy/drawable/ic_icon_bg.png
Normal file
BIN
src/android/app/src/main/legacy/drawable/ic_icon_bg.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
BIN
src/android/app/src/main/legacy/drawable/ic_icon_bg_orig.png
Normal file
BIN
src/android/app/src/main/legacy/drawable/ic_icon_bg_orig.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 438 KiB |
|
@ -1,10 +1,32 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
<string name="app_disclaimer">سيشغّل هذا البرنامج ألعابًا لجهاز نينتندو سويتش. لا يتضمن أي عناوين أو مفاتيح ألعاب. قبل البدء، يُرجى تحديد موقع ملف <![CDATA[ prod.keys ]]> على وحدة تخزين جهازك. <![CDATA[اعرف المزيد]]></string>
|
<string name="app_disclaimer">سيشغل هذا البرنامج ألعابًا لأجهزة الألعاب نينتندو سويتش. لا يتضمن البرنامج أي ألعاب أو مفاتيح.<br /><br />قبل أن تبدأ، يرجى تحديد موقع <![CDATA[<b> prod.keys </b>]]> ملف على وحدة تخزين جهازك.<br /><br /><![CDATA[<a href=\"https://yuzu-mirror.github.io/help/quickstart\">اعرف المزيد</a>]]></string>
|
||||||
<string name="notice_notification_channel_name">الإشعارات والأخطاء</string>
|
<string name="notice_notification_channel_name">الإشعارات والأخطاء</string>
|
||||||
<string name="notice_notification_channel_description">اظهار اشعار عند حصول اي مشكلة.</string>
|
<string name="notice_notification_channel_description">عرض الإشعارات عند حدوث خطأ ما.</string>
|
||||||
<string name="notification_permission_not_granted">لم يتم منح إذن الإشعار</string>
|
<string name="notification_permission_not_granted">لم يتم منح إذن الإشعار!</string>
|
||||||
|
<string name="app_notification_channel_description">إشعارات محاكي عدن سويتش</string>
|
||||||
|
<string name="app_notification_running">عدن قيد التشغيل</string>
|
||||||
|
<string name="seconds">ثواني</string>
|
||||||
|
|
||||||
|
<!-- Spinbox strings -->
|
||||||
|
<string name="increment">زيادة</string>
|
||||||
|
<string name="decrement">تقليل</string>
|
||||||
|
<string name="value">قيمة</string>
|
||||||
|
<string name="value_too_low">يجب أن تكون القيمة على الأقل %1$d</string>
|
||||||
|
<string name="value_too_high">يجب أن تكون القيمة على الأكثر %1$d</string>
|
||||||
|
<string name="invalid_value">قيمة غير صالحة</string>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Input Overlay -->
|
||||||
|
<string name="overlay_auto_hide">إخفاء التراكب تلقائيًا</string>
|
||||||
|
<string name="overlay_auto_hide_description">إخفاء تراكب عناصر التحكم باللمس تلقائيًا بعد مرور الوقت المحدد من عدم النشاط.</string>
|
||||||
|
<string name="enable_input_overlay_auto_hide">تمكين إخفاء التراكب تلقائيًا</string>
|
||||||
|
|
||||||
|
<string name="input_overlay_options">تراكب الإدخال</string>
|
||||||
|
<string name="input_overlay_options_description">تكوين عناصر التحكم على الشاشة</string>
|
||||||
|
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(مُحسَّن)</string>
|
<string name="enhanced_fps_suffix">(مُحسَّن)</string>
|
||||||
<string name="process_ram">ذاكرة RAM للعملية: %1$d م.ب</string>
|
<string name="process_ram">ذاكرة RAM للعملية: %1$d م.ب</string>
|
||||||
|
@ -59,17 +81,17 @@
|
||||||
<string name="show_gpu_model_description">عرض طراز GPU المضيف</string>
|
<string name="show_gpu_model_description">عرض طراز GPU المضيف</string>
|
||||||
<string name="show_soc_model">عرض طراز SoC</string>
|
<string name="show_soc_model">عرض طراز SoC</string>
|
||||||
<string name="show_soc_model_description">عرض طراز SoC المضيف</string>
|
<string name="show_soc_model_description">عرض طراز SoC المضيف</string>
|
||||||
<string name="show_fw_version">إظهار إصدار الفريموير</string>
|
<string name="show_fw_version">عرض إصدار الفريموير</string>
|
||||||
<string name="show_fw_version_description">عرض إصدار الفريموير</string>
|
<string name="show_fw_version_description">عرض إصدار الفريموير</string>
|
||||||
|
|
||||||
<!-- Eden\'s Veil -->
|
<!-- Eden\'s Veil -->
|
||||||
<string name="eden_veil">حجاب عدن</string>
|
<string name="eden_veil">حجاب عدن</string>
|
||||||
<string name="eden_veil_description">إعدادات تجريبية لتحسين الأداء والقدرة. قد تسبب هذه الإعدادات شاشات سوداء أو مشاكل أخرى في اللعبة.</string>
|
<string name="eden_veil_description">إعدادات تجريبية لتحسين الأداء والقدرة. قد تسبب هذه الإعدادات شاشات سوداء أو مشاكل أخرى في اللعبة.</string>
|
||||||
<string name="eden_veil_warning_title">إعدادات تجريبية</string>
|
<string name="eden_veil_warning_title">الإعدادات التجريبية</string>
|
||||||
<string name="eden_veil_warning_description">الإعدادات الموجودة في حجاب عدن تجريبية جداً وقد تسبب مشاكل. إذا لم تعمل اللعبة، قم بتعطيل جميع الامتدادات.</string>
|
<string name="eden_veil_warning_description">الإعدادات الموجودة في حجاب عدن تجريبية للغاية وقد تسبب مشاكل. إذا لم يتم تشغيل اللعبة، فقم بتعطيل أي إضافات.</string>
|
||||||
|
|
||||||
<string name="veil_extensions">امتدادات GPU</string>
|
<string name="veil_extensions">امتدادات GPU</string>
|
||||||
<string name="dyna_state">الحالة الديناميكية الممتدة</string>
|
<string name="dyna_state">الحالة الديناميكية الموسعة</string>
|
||||||
<string name="dyna_state_description">يتحكم في عدد المميزات التي يمكن استخدامها في الحالة الديناميكية الموسعة. الأرقام الأعلى تسمح بميزات أكثر ويمكن أن تعزز الأداء، ولكن قد تسبب مشكلات مع بعض السائقين والبائعين. قد تختلف القيمة الافتراضية بحسب نظامك وقدرات الأجهزة. يمكن تغيير هذه القيمة حتى يتم تحقيق الاستقرار وجودة الصورة الأفضل.</string>
|
<string name="dyna_state_description">يتحكم في عدد المميزات التي يمكن استخدامها في الحالة الديناميكية الموسعة. الأرقام الأعلى تسمح بميزات أكثر ويمكن أن تعزز الأداء، ولكن قد تسبب مشكلات مع بعض السائقين والبائعين. قد تختلف القيمة الافتراضية بحسب نظامك وقدرات الأجهزة. يمكن تغيير هذه القيمة حتى يتم تحقيق الاستقرار وجودة الصورة الأفضل.</string>
|
||||||
<string name="disabled">معطل</string>
|
<string name="disabled">معطل</string>
|
||||||
<string name="provoking_vertex">الرأس المثير</string>
|
<string name="provoking_vertex">الرأس المثير</string>
|
||||||
|
@ -82,9 +104,7 @@
|
||||||
<string name="sample_shading_fraction_description">شدة تمرير التظليل العيني. القيم الأعلى تحسن الجودة أكثر ولكنها تقلل الأداء بدرجة أكبر.</string>
|
<string name="sample_shading_fraction_description">شدة تمرير التظليل العيني. القيم الأعلى تحسن الجودة أكثر ولكنها تقلل الأداء بدرجة أكبر.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">العارض</string>
|
<string name="veil_renderer">العارض</string>
|
||||||
<string name="enable_raii">RAII</string>
|
<string name="frame_interpolation">تحسين سرعة الإطارات</string>
|
||||||
<string name="enable_raii_description">طريقة لإدارة الموارد تلقائيًا في فولكان تضمن الإفراج الصحيح عن الموارد عندما لا تكون هناك حاجة إليها، ولكن قد تسبب تعطل الألعاب المجمعة.</string>
|
|
||||||
<string name="frame_interpolation">تحسين توقيت الإطارات</string>
|
|
||||||
<string name="frame_interpolation_description">يضمن تسليمًا سلسًا ومتناسقًا للإطارات من خلال مزامنة التوقيت بينها، مما يقلل من التقطيع وعدم انتظام الحركة. مثالي للألعاب التي تعاني من عدم استقرار في توقيت الإطارات أو تقطع دقيق أثناء اللعب.</string>
|
<string name="frame_interpolation_description">يضمن تسليمًا سلسًا ومتناسقًا للإطارات من خلال مزامنة التوقيت بينها، مما يقلل من التقطيع وعدم انتظام الحركة. مثالي للألعاب التي تعاني من عدم استقرار في توقيت الإطارات أو تقطع دقيق أثناء اللعب.</string>
|
||||||
<string name="renderer_early_release_fences">إطلاق الأسوار مبكرًا</string>
|
<string name="renderer_early_release_fences">إطلاق الأسوار مبكرًا</string>
|
||||||
<string name="renderer_early_release_fences_description">يساعد في إصلاح مشكلة 0 إطار في الثانية في ألعاب مثل DKCR:HD وSubnautica Below Zero وOri 2، ولكن قد يتسبب في تعطيل التحميل أو الأداء في ألعاب Unreal Engine.</string>
|
<string name="renderer_early_release_fences_description">يساعد في إصلاح مشكلة 0 إطار في الثانية في ألعاب مثل DKCR:HD وSubnautica Below Zero وOri 2، ولكن قد يتسبب في تعطيل التحميل أو الأداء في ألعاب Unreal Engine.</string>
|
||||||
|
@ -98,7 +118,7 @@
|
||||||
<string name="use_sync_core_description">مزامنة سرعة النواة مع النسبة القصوى للسرعة لتحسين الأداء دون تغيير السرعة الفعلية للعبة.</string>
|
<string name="use_sync_core_description">مزامنة سرعة النواة مع النسبة القصوى للسرعة لتحسين الأداء دون تغيير السرعة الفعلية للعبة.</string>
|
||||||
<string name="use_lru_cache">تمكين ذاكرة التخزين المؤقت LRU</string>
|
<string name="use_lru_cache">تمكين ذاكرة التخزين المؤقت LRU</string>
|
||||||
<string name="use_lru_cache_description">تمكين أو تعطيل ذاكرة التخزين المؤقت الأقل استخداماً مؤخراً (LRU) لتحسين الأداء عن طريق تقليل استخدام وحدة المعالجة المركزية. بعض الألعاب قد تواجه مشاكل معه، خاصةً TotK 1.2.1، لذا قم بتعطيله إذا لم تعمل اللعبة أو انهارت عشوائياً.</string>
|
<string name="use_lru_cache_description">تمكين أو تعطيل ذاكرة التخزين المؤقت الأقل استخداماً مؤخراً (LRU) لتحسين الأداء عن طريق تقليل استخدام وحدة المعالجة المركزية. بعض الألعاب قد تواجه مشاكل معه، خاصةً TotK 1.2.1، لذا قم بتعطيله إذا لم تعمل اللعبة أو انهارت عشوائياً.</string>
|
||||||
<string name="use_fast_cpu_time">وقت CPU سريع</string>
|
<string name="use_fast_cpu_time">وقت وحدة المعالجة المركزية السريع</string>
|
||||||
<string name="use_fast_cpu_time_description">يجبر وحدة المعالجة المركزية المحاكاة على العمل بسرعة أعلى، مما يقلل من بعض محددات معدل الإطارات. هذا الخيار غير مستقر وقد يسبب مشاكل، وقد يرى المستخدمون بأجهزة أضعف انخفاضًا في الأداء.</string>
|
<string name="use_fast_cpu_time_description">يجبر وحدة المعالجة المركزية المحاكاة على العمل بسرعة أعلى، مما يقلل من بعض محددات معدل الإطارات. هذا الخيار غير مستقر وقد يسبب مشاكل، وقد يرى المستخدمون بأجهزة أضعف انخفاضًا في الأداء.</string>
|
||||||
<string name="custom_cpu_ticks">تخصيص دورات المعالج</string>
|
<string name="custom_cpu_ticks">تخصيص دورات المعالج</string>
|
||||||
<string name="custom_cpu_ticks_description">تعيين قيمة مخصصة لدورات المعالج. القيم الأعلى قد تزيد الأداء، ولكن قد تتسبب أيضًا في تجمد اللعبة. يوصى بنطاق 77-21000.</string>
|
<string name="custom_cpu_ticks_description">تعيين قيمة مخصصة لدورات المعالج. القيم الأعلى قد تزيد الأداء، ولكن قد تتسبب أيضًا في تجمد اللعبة. يوصى بنطاق 77-21000.</string>
|
||||||
|
@ -288,7 +308,7 @@
|
||||||
<string name="install_prod_keys">تثبيت prod.keys</string>
|
<string name="install_prod_keys">تثبيت prod.keys</string>
|
||||||
<string name="install_prod_keys_description">مطلوب لفك تشفير ألعاب البيع بالتجزئة</string>
|
<string name="install_prod_keys_description">مطلوب لفك تشفير ألعاب البيع بالتجزئة</string>
|
||||||
<string name="install_prod_keys_warning">تخطي إضافة المفاتيح؟</string>
|
<string name="install_prod_keys_warning">تخطي إضافة المفاتيح؟</string>
|
||||||
<string name="install_prod_keys_warning_description">مطلوب مفاتيح صالحة لمحاكاة ألعاب البيع بالتجزئة. ستعمل تطبيقات البيرة المنزلية فقط إذا تابعت</string>
|
<string name="install_prod_keys_warning_description">يلزم وجود مفاتيح صالحة لمحاكاة ألعاب البيع بالتجزئة. لن تعمل سوى التطبيقات المحلية إذا واصلت.</string>
|
||||||
<string name="install_prod_keys_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
<string name="install_prod_keys_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
||||||
<string name="install_firmware_warning">تخطي إضافة الفريموير؟</string>
|
<string name="install_firmware_warning">تخطي إضافة الفريموير؟</string>
|
||||||
<string name="install_firmware_warning_description">العديد من الألعاب تتطلب الوصول إلى الفريموير لتشغيل بشكل صحيح.</string>
|
<string name="install_firmware_warning_description">العديد من الألعاب تتطلب الوصول إلى الفريموير لتشغيل بشكل صحيح.</string>
|
||||||
|
@ -317,11 +337,11 @@
|
||||||
<string name="advanced_settings">إعدادات متقدمة</string>
|
<string name="advanced_settings">إعدادات متقدمة</string>
|
||||||
<string name="advanced_settings_game">إعدادات متقدمة: %1$s</string>
|
<string name="advanced_settings_game">إعدادات متقدمة: %1$s</string>
|
||||||
<string name="settings_description">تكوين إعدادات المحاكي</string>
|
<string name="settings_description">تكوين إعدادات المحاكي</string>
|
||||||
<string name="search_recently_played">لعبت مؤخرا</string>
|
<string name="search_recently_played">تم تشغيلها مؤخرًا</string>
|
||||||
<string name="search_recently_added">أضيف مؤخرا</string>
|
<string name="search_recently_added">أضيفت مؤخراً</string>
|
||||||
<string name="search_retail">بيع بالتجزئة</string>
|
<string name="search_retail">بيع بالتجزئة</string>
|
||||||
<string name="search_homebrew">البيرة المنزلية</string>
|
<string name="search_homebrew">برمجيات يُنتجها هواة</string>
|
||||||
<string name="open_user_folder">افتح مجلد عدن</string>
|
<string name="open_user_folder">فتح مجلد عدن</string>
|
||||||
<string name="open_user_folder_description">إدارة الملفات الداخلية لـ عدن</string>
|
<string name="open_user_folder_description">إدارة الملفات الداخلية لـ عدن</string>
|
||||||
<string name="theme_and_color_description">تعديل مظهر التطبيق</string>
|
<string name="theme_and_color_description">تعديل مظهر التطبيق</string>
|
||||||
<string name="no_file_manager">لم يتم العثور على مدير الملفات</string>
|
<string name="no_file_manager">لم يتم العثور على مدير الملفات</string>
|
||||||
|
@ -352,7 +372,7 @@
|
||||||
<string name="install_game_content">تثبيت محتوى اللعبة</string>
|
<string name="install_game_content">تثبيت محتوى اللعبة</string>
|
||||||
<string name="install_game_content_description">قم بتثبيت تحديثات اللعبة أو الإضافات</string>
|
<string name="install_game_content_description">قم بتثبيت تحديثات اللعبة أو الإضافات</string>
|
||||||
<string name="installing_game_content">جارٍ تثبيت المحتوى...</string>
|
<string name="installing_game_content">جارٍ تثبيت المحتوى...</string>
|
||||||
<string name="install_game_content_failure">حدث خطأ أثناء تثبيت الملف(ات) على NAND</string>
|
<string name="install_game_content_failure">خطأ في تثبيت الملف(ات) على NAND</string>
|
||||||
<string name="install_game_content_failure_description">يرجى التأكد من صحة المحتوى (المحتويات) وتثبيت ملف prod.keys.</string>
|
<string name="install_game_content_failure_description">يرجى التأكد من صحة المحتوى (المحتويات) وتثبيت ملف prod.keys.</string>
|
||||||
<string name="install_game_content_failure_base">لا يُسمح بتثبيت الألعاب الأساسية لتجنب التعارضات المحتملة.</string>
|
<string name="install_game_content_failure_base">لا يُسمح بتثبيت الألعاب الأساسية لتجنب التعارضات المحتملة.</string>
|
||||||
<string name="install_game_content_failure_file_extension">يتم دعم محتوى NSP و XCI فقط. يرجى التحقق من أن محتوى (محتويات) اللعبة صالحة.</string>
|
<string name="install_game_content_failure_file_extension">يتم دعم محتوى NSP و XCI فقط. يرجى التحقق من أن محتوى (محتويات) اللعبة صالحة.</string>
|
||||||
|
@ -833,7 +853,7 @@
|
||||||
<string name="emulation_rel_stick_center">مركز العصا النسبي</string>
|
<string name="emulation_rel_stick_center">مركز العصا النسبي</string>
|
||||||
<string name="emulation_dpad_slide">مزلاق الأسهم</string>
|
<string name="emulation_dpad_slide">مزلاق الأسهم</string>
|
||||||
<string name="emulation_haptics">الاهتزازات الديناميكية</string>
|
<string name="emulation_haptics">الاهتزازات الديناميكية</string>
|
||||||
<string name="emulation_show_overlay">إظهار وحدة التحكم</string>
|
<string name="emulation_show_overlay">عرض وحدة التحكم</string>
|
||||||
<string name="emulation_hide_overlay">إخفاء وحدة التحكم</string>
|
<string name="emulation_hide_overlay">إخفاء وحدة التحكم</string>
|
||||||
<string name="emulation_toggle_all">تبديل الكل</string>
|
<string name="emulation_toggle_all">تبديل الكل</string>
|
||||||
<string name="emulation_control_adjust">ضبط التراكب</string>
|
<string name="emulation_control_adjust">ضبط التراكب</string>
|
||||||
|
@ -847,6 +867,8 @@
|
||||||
<string name="touchscreen">شاشة اللمس</string>
|
<string name="touchscreen">شاشة اللمس</string>
|
||||||
<string name="lock_drawer">قفل الدرج</string>
|
<string name="lock_drawer">قفل الدرج</string>
|
||||||
<string name="unlock_drawer">فتح الدرج</string>
|
<string name="unlock_drawer">فتح الدرج</string>
|
||||||
|
<string name="reset">إعادة الضبط</string>
|
||||||
|
|
||||||
<string name="load_settings">جارٍ تحميل الإعدادات...</string>
|
<string name="load_settings">جارٍ تحميل الإعدادات...</string>
|
||||||
|
|
||||||
<!-- Software keyboard -->
|
<!-- Software keyboard -->
|
||||||
|
@ -856,9 +878,12 @@
|
||||||
<string name="abort_button">إلغاء</string>
|
<string name="abort_button">إلغاء</string>
|
||||||
<string name="continue_button">استمر</string>
|
<string name="continue_button">استمر</string>
|
||||||
<string name="system_archive_not_found">لم يتم العثور على أرشيف النظام</string>
|
<string name="system_archive_not_found">لم يتم العثور على أرشيف النظام</string>
|
||||||
|
<string name="system_archive_not_found_message">%sمفقود. يرجى تفريغ أرشيفات النظام.\nقد يؤدي استمرار المحاكاة إلى حدوث أعطال.</string>
|
||||||
<string name="system_archive_general">أرشيف النظام</string>
|
<string name="system_archive_general">أرشيف النظام</string>
|
||||||
<string name="save_load_error">خطأ في الحفظ/التحميل</string>
|
<string name="save_load_error">خطأ في الحفظ/التحميل</string>
|
||||||
<string name="fatal_error">خطا فادح</string>
|
<string name="fatal_error">خطا فادح</string>
|
||||||
|
<string name="fatal_error_message">حدث خطأ فادح. تحقق من السجل للحصول على التفاصيل.\nقد يؤدي استمرار المحاكاة إلى حدوث أعطال.</string>
|
||||||
|
<string name="performance_warning">سيؤدي إيقاف تشغيل هذا الإعداد إلى انخفاض كبير في الأداء. يوصى بترك هذا الإعداد قيد التشغيل.</string>
|
||||||
<string name="device_memory_inadequate">ذاكرة الوصول العشوائي للجهاز: \'%1$s\'\nموصى به: \'%2$s\' </string>
|
<string name="device_memory_inadequate">ذاكرة الوصول العشوائي للجهاز: \'%1$s\'\nموصى به: \'%2$s\' </string>
|
||||||
<string name="memory_formatted">%1$s %2$s</string>
|
<string name="memory_formatted">%1$s %2$s</string>
|
||||||
<string name="no_game_present">لا توجد لعبة قابلة للتمهيد</string>
|
<string name="no_game_present">لا توجد لعبة قابلة للتمهيد</string>
|
||||||
|
@ -908,8 +933,13 @@
|
||||||
<!-- Renderer Accuracy -->
|
<!-- Renderer Accuracy -->
|
||||||
<string name="renderer_accuracy_normal">عادي</string>
|
<string name="renderer_accuracy_normal">عادي</string>
|
||||||
<string name="renderer_accuracy_high">عالي</string>
|
<string name="renderer_accuracy_high">عالي</string>
|
||||||
|
<string name="renderer_accuracy_extreme">أقصى حد</string>
|
||||||
|
|
||||||
<!-- DMA Accuracy -->
|
<!-- DMA Accuracy -->
|
||||||
<string name="dma_accuracy_default">افتراضي</string>
|
<string name="dma_accuracy_default">افتراضي</string>
|
||||||
|
<string name="dma_accuracy_unsafe">غير آمن</string>
|
||||||
|
<string name="dma_accuracy_safe">آمن</string>
|
||||||
|
|
||||||
<!-- ASTC Decoding Method -->
|
<!-- ASTC Decoding Method -->
|
||||||
<string name="accelerate_astc">طريقة فك ضغط ASTC</string>
|
<string name="accelerate_astc">طريقة فك ضغط ASTC</string>
|
||||||
<string name="accelerate_astc_description">اختر كيفية فك ضغط نسيج ASTC للعرض: CPU (بطيء، آمن)، GPU (سريع، موصى به)، أو CPU Async (بدون توقف، قد يسبب مشاكل)</string>
|
<string name="accelerate_astc_description">اختر كيفية فك ضغط نسيج ASTC للعرض: CPU (بطيء، آمن)، GPU (سريع، موصى به)، أو CPU Async (بدون توقف، قد يسبب مشاكل)</string>
|
||||||
|
@ -930,7 +960,7 @@
|
||||||
|
|
||||||
<!-- ASTC Recompression Method Choices -->
|
<!-- ASTC Recompression Method Choices -->
|
||||||
<string name="vram_usage_mode">وضع استخدام VRAM</string>
|
<string name="vram_usage_mode">وضع استخدام VRAM</string>
|
||||||
<string name="vram_usage_mode_description">التحكم في إدارة ذاكرة GPU</string>
|
<string name="vram_usage_mode_description">تحكم في مدى قوة المحاكي في تخصيص وتحرير ذاكرة GPU.</string>
|
||||||
<string name="vram_usage_conservative">محافظ</string>
|
<string name="vram_usage_conservative">محافظ</string>
|
||||||
<string name="vram_usage_aggressive">عدواني</string>
|
<string name="vram_usage_aggressive">عدواني</string>
|
||||||
|
|
||||||
|
@ -945,7 +975,7 @@
|
||||||
<string name="resolution_four">4X (2880p/4320p) (بطيء)</string>
|
<string name="resolution_four">4X (2880p/4320p) (بطيء)</string>
|
||||||
|
|
||||||
<!-- Renderer VSync -->
|
<!-- Renderer VSync -->
|
||||||
<string name="renderer_vsync_immediate">فوري (إيقاف)</string>
|
<string name="renderer_vsync_immediate">Immediate (Off)</string>
|
||||||
<string name="renderer_vsync_mailbox">Mailbox</string>
|
<string name="renderer_vsync_mailbox">Mailbox</string>
|
||||||
<string name="renderer_vsync_fifo">FIFO (On)</string>
|
<string name="renderer_vsync_fifo">FIFO (On)</string>
|
||||||
<string name="renderer_vsync_fifo_relaxed">FIFO Relaxed</string>
|
<string name="renderer_vsync_fifo_relaxed">FIFO Relaxed</string>
|
||||||
|
@ -954,11 +984,12 @@
|
||||||
<string name="scaling_filter_nearest_neighbor">Nearest Neighbor</string>
|
<string name="scaling_filter_nearest_neighbor">Nearest Neighbor</string>
|
||||||
<string name="scaling_filter_bilinear">Bilinear</string>
|
<string name="scaling_filter_bilinear">Bilinear</string>
|
||||||
<string name="scaling_filter_bicubic">Bicubic</string>
|
<string name="scaling_filter_bicubic">Bicubic</string>
|
||||||
|
<string name="scaling_filter_spline1">Spline-1</string>
|
||||||
<string name="scaling_filter_gaussian">Gaussian</string>
|
<string name="scaling_filter_gaussian">Gaussian</string>
|
||||||
|
<string name="scaling_filter_lanczos">Lanczos</string>
|
||||||
<string name="scaling_filter_scale_force">ScaleForce</string>
|
<string name="scaling_filter_scale_force">ScaleForce</string>
|
||||||
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
|
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
|
||||||
<string name="scaling_filter_area">Area</string>
|
<string name="scaling_filter_area">Area</string>
|
||||||
|
|
||||||
<!-- Anti-Aliasing -->
|
<!-- Anti-Aliasing -->
|
||||||
<string name="anti_aliasing_none">لا شيء</string>
|
<string name="anti_aliasing_none">لا شيء</string>
|
||||||
<string name="anti_aliasing_fxaa">FXAA</string>
|
<string name="anti_aliasing_fxaa">FXAA</string>
|
||||||
|
@ -1062,7 +1093,7 @@
|
||||||
<string name="swkbd_applet">لوحة المفاتيح البرمجية</string>
|
<string name="swkbd_applet">لوحة المفاتيح البرمجية</string>
|
||||||
|
|
||||||
<string name="airplane_mode">وضع الطيران</string>
|
<string name="airplane_mode">وضع الطيران</string>
|
||||||
<string name="airplane_mode_description">يمرر وضع الطيران إلى نظام التشغيل Switch</string>
|
<string name="airplane_mode_description">تشغيل وضع الطيران على نظام التشغيل سويتش</string>
|
||||||
|
|
||||||
<!-- Licenses screen strings -->
|
<!-- Licenses screen strings -->
|
||||||
<string name="licenses">التراخيص</string>
|
<string name="licenses">التراخيص</string>
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">چڕی تێپەڕاندنی سێبەرکردنی نموونە. بەهای زیاتر کوالێتی باشتر دەکات بەڵام کارایی زیاتر کەم دەکاتەوە.</string>
|
<string name="sample_shading_fraction_description">چڕی تێپەڕاندنی سێبەرکردنی نموونە. بەهای زیاتر کوالێتی باشتر دەکات بەڵام کارایی زیاتر کەم دەکاتەوە.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">رێندرەر</string>
|
<string name="veil_renderer">رێندرەر</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">ڕێگایەکی بەڕێوەبردنی سەرچاوەکان بە خۆکار لە ڤولکان کە دڵنیای دەکاتەوە لە ئازادکردنی گونجاوی سەرچاوەکان کاتێک کە چیتر پێویستیان نییە، بەڵام لەوانەیە ببێتە هۆی کەوتنی یارییە کۆکراوەکان.</string>
|
|
||||||
<string name="frame_interpolation">تحسين توقيت الإطارات</string>
|
<string name="frame_interpolation">تحسين توقيت الإطارات</string>
|
||||||
<string name="frame_interpolation_description">يضمن تسليمًا سلسًا ومتناسقًا للإطارات من خلال مزامنة التوقيت بينها، مما يقلل من التقطيع وعدم انتظام الحركة. مثالي للألعاب التي تعاني من عدم استقرار في توقيت الإطارات أو تقطع دقيق أثناء اللعب.</string>
|
<string name="frame_interpolation_description">يضمن تسليمًا سلسًا ومتناسقًا للإطارات من خلال مزامنة التوقيت بينها، مما يقلل من التقطيع وعدم انتظام الحركة. مثالي للألعاب التي تعاني من عدم استقرار في توقيت الإطارات أو تقطع دقيق أثناء اللعب.</string>
|
||||||
<string name="renderer_early_release_fences">زێدەکردنی پەرستارەکان زووتر</string>
|
<string name="renderer_early_release_fences">زێدەکردنی پەرستارەکان زووتر</string>
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">Intenzita průchodu stínování vzorku. Vyšší hodnoty zlepšují kvalitu, ale také výrazněji snižují výkon.</string>
|
<string name="sample_shading_fraction_description">Intenzita průchodu stínování vzorku. Vyšší hodnoty zlepšují kvalitu, ale také výrazněji snižují výkon.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderer</string>
|
<string name="veil_renderer">Renderer</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Metoda automatické správy prostředků ve Vulkanu, která zajišťuje správné uvolnění prostředků, když již nejsou potřeba, ale může způsobit pády v balených hrách.</string>
|
|
||||||
<string name="frame_interpolation">Vylepšené časování snímků</string>
|
<string name="frame_interpolation">Vylepšené časování snímků</string>
|
||||||
<string name="frame_interpolation_description">Zajišťuje plynulé a konzistentní zobrazování snímků synchronizací jejich časování, čímž snižuje trhání a nerovnoměrné animace. Ideální pro hry, které trpí nestabilitou časování snímků nebo mikrotrháním během hraní.</string>
|
<string name="frame_interpolation_description">Zajišťuje plynulé a konzistentní zobrazování snímků synchronizací jejich časování, čímž snižuje trhání a nerovnoměrné animace. Ideální pro hry, které trpí nestabilitou časování snímků nebo mikrotrháním během hraní.</string>
|
||||||
<string name="renderer_early_release_fences">Uvolnit ploty brzy</string>
|
<string name="renderer_early_release_fences">Uvolnit ploty brzy</string>
|
||||||
|
|
|
@ -82,8 +82,6 @@
|
||||||
<string name="sample_shading_fraction_description">Die Intensität des Sample-Shading-Durchgangs. Höhere Werte verbessern die Qualität stärker, beeinträchtigen aber auch die Leistung stärker.</string>
|
<string name="sample_shading_fraction_description">Die Intensität des Sample-Shading-Durchgangs. Höhere Werte verbessern die Qualität stärker, beeinträchtigen aber auch die Leistung stärker.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderer</string>
|
<string name="veil_renderer">Renderer</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Eine Methode zur automatischen Ressourcenverwaltung in Vulkan, die eine ordnungsgemäße Freigabe von Ressourcen gewährleistet, wenn sie nicht mehr benötigt werden, aber bei gebündelten Spielen Abstürze verursachen kann.</string>
|
|
||||||
<string name="frame_interpolation">Erweiterte Frame-Synchronisation</string>
|
<string name="frame_interpolation">Erweiterte Frame-Synchronisation</string>
|
||||||
<string name="frame_interpolation_description">Sorgt für eine gleichmäßige und konsistente Frame-Wiedergabe durch Synchronisierung der Frame-Zeiten, was Ruckeln und ungleichmäßige Animationen reduziert. Ideal für Spiele, die unter instabilen Frame-Zeiten oder Mikrorucklern leiden.</string>
|
<string name="frame_interpolation_description">Sorgt für eine gleichmäßige und konsistente Frame-Wiedergabe durch Synchronisierung der Frame-Zeiten, was Ruckeln und ungleichmäßige Animationen reduziert. Ideal für Spiele, die unter instabilen Frame-Zeiten oder Mikrorucklern leiden.</string>
|
||||||
<string name="renderer_early_release_fences">Zäune früher freigeben</string>
|
<string name="renderer_early_release_fences">Zäune früher freigeben</string>
|
||||||
|
@ -946,7 +944,6 @@ Wirklich fortfahren?</string>
|
||||||
<string name="scaling_filter_scale_force">ScaleForce</string>
|
<string name="scaling_filter_scale_force">ScaleForce</string>
|
||||||
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
|
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
|
||||||
<string name="scaling_filter_area">Bereich</string>
|
<string name="scaling_filter_area">Bereich</string>
|
||||||
|
|
||||||
<!-- Anti-Aliasing -->
|
<!-- Anti-Aliasing -->
|
||||||
<string name="anti_aliasing_none">Keiner</string>
|
<string name="anti_aliasing_none">Keiner</string>
|
||||||
<string name="anti_aliasing_fxaa">FXAA</string>
|
<string name="anti_aliasing_fxaa">FXAA</string>
|
||||||
|
|
|
@ -82,8 +82,6 @@
|
||||||
<string name="sample_shading_fraction_description">La intensidad del paso de sombreado de la muestra. Los valores más altos mejoran más la calidad, pero también reducen el rendimiento en mayor medida.</string>
|
<string name="sample_shading_fraction_description">La intensidad del paso de sombreado de la muestra. Los valores más altos mejoran más la calidad, pero también reducen el rendimiento en mayor medida.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderizador</string>
|
<string name="veil_renderer">Renderizador</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Un método de gestión automática de recursos en Vulkan que garantiza la liberación adecuada de los recursos cuando ya no son necesarios, pero puede causar bloqueos en juegos agrupados.</string>
|
|
||||||
<string name="frame_interpolation">Ritmo de fotogramas mejorado</string>
|
<string name="frame_interpolation">Ritmo de fotogramas mejorado</string>
|
||||||
<string name="frame_interpolation_description">Garantiza una entrega de fotogramas fluida y consistente al sincronizar el tiempo entre fotogramas, reduciendo la tartamudez y la animación desigual. Ideal para juegos que experimentan inestabilidad en el tiempo de fotogramas o microtartamudeos durante el juego.</string>
|
<string name="frame_interpolation_description">Garantiza una entrega de fotogramas fluida y consistente al sincronizar el tiempo entre fotogramas, reduciendo la tartamudez y la animación desigual. Ideal para juegos que experimentan inestabilidad en el tiempo de fotogramas o microtartamudeos durante el juego.</string>
|
||||||
<string name="renderer_early_release_fences">Liberar las vallas antes</string>
|
<string name="renderer_early_release_fences">Liberar las vallas antes</string>
|
||||||
|
@ -952,7 +950,6 @@
|
||||||
<string name="scaling_filter_scale_force">ScaleForce</string>
|
<string name="scaling_filter_scale_force">ScaleForce</string>
|
||||||
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolución</string>
|
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolución</string>
|
||||||
<string name="scaling_filter_area">Área</string>
|
<string name="scaling_filter_area">Área</string>
|
||||||
|
|
||||||
<!-- Anti-Aliasing -->
|
<!-- Anti-Aliasing -->
|
||||||
<string name="anti_aliasing_none">Ninguno</string>
|
<string name="anti_aliasing_none">Ninguno</string>
|
||||||
<string name="anti_aliasing_fxaa">FXAA</string>
|
<string name="anti_aliasing_fxaa">FXAA</string>
|
||||||
|
|
|
@ -65,8 +65,6 @@
|
||||||
<!-- Eden\'s Veil -->
|
<!-- Eden\'s Veil -->
|
||||||
<string name="veil_extensions">افزونههای GPU</string>
|
<string name="veil_extensions">افزونههای GPU</string>
|
||||||
<string name="veil_renderer">رندرر</string>
|
<string name="veil_renderer">رندرر</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">روشی برای مدیریت خودکار منابع در ولکان که تضمین میکند منابع به درستی آزاد شوند وقتی دیگر مورد نیاز نیستند، اما ممکن است باعث کرش شدن بازیهای بستهبندی شده شود.</string>
|
|
||||||
<string name="veil_misc">پردازنده و حافظه</string>
|
<string name="veil_misc">پردازنده و حافظه</string>
|
||||||
<string name="eden_veil">پرده عدن</string>
|
<string name="eden_veil">پرده عدن</string>
|
||||||
<string name="eden_veil_description">تنظیمات آزمایشی برای بهبود عملکرد و قابلیت. این تنظیمات ممکن است باعث نمایش صفحه سیاه یا سایر مشکلات بازی شود.</string>
|
<string name="eden_veil_description">تنظیمات آزمایشی برای بهبود عملکرد و قابلیت. این تنظیمات ممکن است باعث نمایش صفحه سیاه یا سایر مشکلات بازی شود.</string>
|
||||||
|
|
|
@ -5,6 +5,28 @@
|
||||||
<string name="notice_notification_channel_name">Avis et erreurs</string>
|
<string name="notice_notification_channel_name">Avis et erreurs</string>
|
||||||
<string name="notice_notification_channel_description">Affiche des notifications en cas de problème.</string>
|
<string name="notice_notification_channel_description">Affiche des notifications en cas de problème.</string>
|
||||||
<string name="notification_permission_not_granted">Permission de notification non accordée !</string>
|
<string name="notification_permission_not_granted">Permission de notification non accordée !</string>
|
||||||
|
<string name="app_notification_channel_description">Notifications de l\'émulateur Eden pour Switch</string>
|
||||||
|
<string name="app_notification_running">Eden est en cours d\'exécution</string>
|
||||||
|
<string name="seconds">Secondes</string>
|
||||||
|
|
||||||
|
<!-- Spinbox strings -->
|
||||||
|
<string name="increment">Incrément</string>
|
||||||
|
<string name="decrement">Décrément</string>
|
||||||
|
<string name="value">Valeur</string>
|
||||||
|
<string name="value_too_low">La valeur doit être d\'au moins %1$d</string>
|
||||||
|
<string name="value_too_high">La valeur ne doit pas dépasser %1$d</string>
|
||||||
|
<string name="invalid_value">Valeur invalide</string>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Input Overlay -->
|
||||||
|
<string name="overlay_auto_hide">Masquage automatique de l\'overlay</string>
|
||||||
|
<string name="overlay_auto_hide_description">Masquer automatiquement l\'overlay des contrôles tactiles après le temps d\'inactivité spécifié.</string>
|
||||||
|
<string name="enable_input_overlay_auto_hide">Activer le masquage automatique de l\'overlay</string>
|
||||||
|
|
||||||
|
<string name="input_overlay_options">Overlay des entrées</string>
|
||||||
|
<string name="input_overlay_options_description">Configurer les contrôles à l\'écran</string>
|
||||||
|
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Amélioré)</string>
|
<string name="enhanced_fps_suffix">(Amélioré)</string>
|
||||||
<string name="process_ram">RAM processus: %1$d Mo</string>
|
<string name="process_ram">RAM processus: %1$d Mo</string>
|
||||||
|
@ -82,8 +104,6 @@
|
||||||
<string name="sample_shading_fraction_description">L\'intensité de la passe d\'ombrage d\'échantillon. Des valeurs plus élevées améliorent davantage la qualité mais réduisent aussi plus fortement les performances.</string>
|
<string name="sample_shading_fraction_description">L\'intensité de la passe d\'ombrage d\'échantillon. Des valeurs plus élevées améliorent davantage la qualité mais réduisent aussi plus fortement les performances.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Rendu</string>
|
<string name="veil_renderer">Rendu</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Une méthode de gestion automatique des ressources dans Vulkan qui assure la libération correcte des ressources lorsqu\'elles ne sont plus nécessaires, mais peut provoquer des plantages dans les jeux regroupés.</string>
|
|
||||||
<string name="frame_interpolation">Synchronisation avancée des frames</string>
|
<string name="frame_interpolation">Synchronisation avancée des frames</string>
|
||||||
<string name="frame_interpolation_description">Assure une diffusion fluide et régulière des frames en synchronisant leur timing, réduisant ainsi les saccades et les animations irrégulières. Idéal pour les jeux souffrant d`instabilité de timing des frames ou de micro-saccades pendant le jeu.</string>
|
<string name="frame_interpolation_description">Assure une diffusion fluide et régulière des frames en synchronisant leur timing, réduisant ainsi les saccades et les animations irrégulières. Idéal pour les jeux souffrant d`instabilité de timing des frames ou de micro-saccades pendant le jeu.</string>
|
||||||
<string name="renderer_early_release_fences">Libérer les barrières plus tôt</string>
|
<string name="renderer_early_release_fences">Libérer les barrières plus tôt</string>
|
||||||
|
@ -841,6 +861,8 @@
|
||||||
<string name="touchscreen">Écran tactile</string>
|
<string name="touchscreen">Écran tactile</string>
|
||||||
<string name="lock_drawer">Verrouiller le tiroir</string>
|
<string name="lock_drawer">Verrouiller le tiroir</string>
|
||||||
<string name="unlock_drawer">Déverrouiller le tiroir</string>
|
<string name="unlock_drawer">Déverrouiller le tiroir</string>
|
||||||
|
<string name="reset">Réinitialiser</string>
|
||||||
|
|
||||||
<string name="load_settings">Chargement des paramètres…</string>
|
<string name="load_settings">Chargement des paramètres…</string>
|
||||||
|
|
||||||
<!-- Software keyboard -->
|
<!-- Software keyboard -->
|
||||||
|
@ -850,9 +872,12 @@
|
||||||
<string name="abort_button">Abandonner</string>
|
<string name="abort_button">Abandonner</string>
|
||||||
<string name="continue_button">Continuer</string>
|
<string name="continue_button">Continuer</string>
|
||||||
<string name="system_archive_not_found">Archive système introuvable</string>
|
<string name="system_archive_not_found">Archive système introuvable</string>
|
||||||
|
<string name="system_archive_not_found_message">%s est manquant. Veuillez sauvegarder vos archives système.\nContinuer l\'exécution de l\'émulation pourrait entraîner des plantages.</string>
|
||||||
<string name="system_archive_general">Une archive système</string>
|
<string name="system_archive_general">Une archive système</string>
|
||||||
<string name="save_load_error">Erreur de sauvegarde/chargement</string>
|
<string name="save_load_error">Erreur de sauvegarde/chargement</string>
|
||||||
<string name="fatal_error">Erreur fatale</string>
|
<string name="fatal_error">Erreur fatale</string>
|
||||||
|
<string name="fatal_error_message">Une erreur fatale est survenue. Vérifiez les logs pour plus de détails.\nContinuer l\'exécution de l\'émulation pourrait entraîner des plantages.</string>
|
||||||
|
<string name="performance_warning">Désactiver ce paramètre réduira considérablement les performances. Il est recommandé que vous laissiez ce paramètre activé.</string>
|
||||||
<string name="device_memory_inadequate">Mémoire RAM de l\'appareil : %1$s\nRecommandé : %2$s</string>
|
<string name="device_memory_inadequate">Mémoire RAM de l\'appareil : %1$s\nRecommandé : %2$s</string>
|
||||||
<string name="memory_formatted">%1$s %2$s</string>
|
<string name="memory_formatted">%1$s %2$s</string>
|
||||||
<string name="no_game_present">Aucun jeu démarreable présent !</string>
|
<string name="no_game_present">Aucun jeu démarreable présent !</string>
|
||||||
|
@ -902,8 +927,13 @@
|
||||||
<!-- Renderer Accuracy -->
|
<!-- Renderer Accuracy -->
|
||||||
<string name="renderer_accuracy_normal">Normal</string>
|
<string name="renderer_accuracy_normal">Normal</string>
|
||||||
<string name="renderer_accuracy_high">Haut</string>
|
<string name="renderer_accuracy_high">Haut</string>
|
||||||
|
<string name="renderer_accuracy_extreme">Extrême</string>
|
||||||
|
|
||||||
<!-- DMA Accuracy -->
|
<!-- DMA Accuracy -->
|
||||||
<string name="dma_accuracy_default">Défaut</string>
|
<string name="dma_accuracy_default">Défaut</string>
|
||||||
|
<string name="dma_accuracy_unsafe">Dangereux</string>
|
||||||
|
<string name="dma_accuracy_safe">Sûr</string>
|
||||||
|
|
||||||
<!-- ASTC Decoding Method -->
|
<!-- ASTC Decoding Method -->
|
||||||
<string name="accelerate_astc">Méthode ASTC</string>
|
<string name="accelerate_astc">Méthode ASTC</string>
|
||||||
<string name="accelerate_astc_description">Choisissez comment les textures compressées ASTC sont décodées pour le rendu : CPU (lent, sûr), GPU (rapide, recommandé) ou CPU Async (pas de saccades, peut causer des problèmes)</string>
|
<string name="accelerate_astc_description">Choisissez comment les textures compressées ASTC sont décodées pour le rendu : CPU (lent, sûr), GPU (rapide, recommandé) ou CPU Async (pas de saccades, peut causer des problèmes)</string>
|
||||||
|
@ -948,11 +978,12 @@
|
||||||
<string name="scaling_filter_nearest_neighbor">Plus proche voisin</string>
|
<string name="scaling_filter_nearest_neighbor">Plus proche voisin</string>
|
||||||
<string name="scaling_filter_bilinear">Bilinéaire</string>
|
<string name="scaling_filter_bilinear">Bilinéaire</string>
|
||||||
<string name="scaling_filter_bicubic">Bicubique</string>
|
<string name="scaling_filter_bicubic">Bicubique</string>
|
||||||
|
<string name="scaling_filter_spline1">Spline-1</string>
|
||||||
<string name="scaling_filter_gaussian">Gaussien</string>
|
<string name="scaling_filter_gaussian">Gaussien</string>
|
||||||
|
<string name="scaling_filter_lanczos">Lanczos</string>
|
||||||
<string name="scaling_filter_scale_force">ScaleForce</string>
|
<string name="scaling_filter_scale_force">ScaleForce</string>
|
||||||
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
|
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
|
||||||
<string name="scaling_filter_area">Zone</string>
|
<string name="scaling_filter_area">Zone</string>
|
||||||
|
|
||||||
<!-- Anti-Aliasing -->
|
<!-- Anti-Aliasing -->
|
||||||
<string name="anti_aliasing_none">Aucune</string>
|
<string name="anti_aliasing_none">Aucune</string>
|
||||||
<string name="anti_aliasing_fxaa">FXAA</string>
|
<string name="anti_aliasing_fxaa">FXAA</string>
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">עוצמת מעבר ההצללה לדוגמה. ערכים גבוהים יותר משפרים את האיכות יותר אך גם מפחיתים את הביצועים במידה רבה יותר.</string>
|
<string name="sample_shading_fraction_description">עוצמת מעבר ההצללה לדוגמה. ערכים גבוהים יותר משפרים את האיכות יותר אך גם מפחיתים את הביצועים במידה רבה יותר.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">רנדרר</string>
|
<string name="veil_renderer">רנדרר</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">שיטה לניהול אוטומטי של משאבים ב-Vulkan המבטיחה שחרור נכון של משאבים כאשר הם כבר לא נחוצים, אך עלולה לגרום לקריסות במשחקים מאוגדים.</string>
|
|
||||||
<string name="frame_interpolation">סנכרון פריימים מתקדם</string>
|
<string name="frame_interpolation">סנכרון פריימים מתקדם</string>
|
||||||
<string name="frame_interpolation_description">מבטיח אספקה חלקה ועקבית של פריימים על ידי סנכרון התזמון ביניהם, מפחית קפיצות ואנימציה לא אחידה. אידיאלי למשחקים עם בעיות בתזמון פריימים או מיקרו-קפיצות במהלך המשחק.</string>
|
<string name="frame_interpolation_description">מבטיח אספקה חלקה ועקבית של פריימים על ידי סנכרון התזמון ביניהם, מפחית קפיצות ואנימציה לא אחידה. אידיאלי למשחקים עם בעיות בתזמון פריימים או מיקרו-קפיצות במהלך המשחק.</string>
|
||||||
<string name="renderer_early_release_fences">שחרר גדרות מוקדם</string>
|
<string name="renderer_early_release_fences">שחרר גדרות מוקדם</string>
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">A mintavételezés árnyékolási lépés intenzitása. A magasabb értékek jobb minőséget eredményeznek, de nagyobb mértékben csökkentik a teljesítményt.</string>
|
<string name="sample_shading_fraction_description">A mintavételezés árnyékolási lépés intenzitása. A magasabb értékek jobb minőséget eredményeznek, de nagyobb mértékben csökkentik a teljesítményt.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Megjelenítő</string>
|
<string name="veil_renderer">Megjelenítő</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">A Vulkan erőforrás-kezelési módszere, amely biztosítja az erőforrások megfelelő felszabadítását, ha már nincs rájuk szükség, de csomagolt játékok összeomlását okozhatja.</string>
|
|
||||||
<string name="frame_interpolation">Továbbfejlesztett Képkocka-időzítés</string>
|
<string name="frame_interpolation">Továbbfejlesztett Képkocka-időzítés</string>
|
||||||
<string name="frame_interpolation_description">Biztosítja a képkockák sima és egyenletes kézbesítését azok időzítésének szinkronizálásával, csökkentve a megakadásokat és egyenetlen animációkat. Ideális azokhoz a játékokhoz, amelyek képkocka-időzítési instabilitást vagy mikro-reccsenést tapasztalnak játék közben.</string>
|
<string name="frame_interpolation_description">Biztosítja a képkockák sima és egyenletes kézbesítését azok időzítésének szinkronizálásával, csökkentve a megakadásokat és egyenetlen animációkat. Ideális azokhoz a játékokhoz, amelyek képkocka-időzítési instabilitást vagy mikro-reccsenést tapasztalnak játék közben.</string>
|
||||||
<string name="renderer_early_release_fences">Korai kerítés-felszabadítás</string>
|
<string name="renderer_early_release_fences">Korai kerítés-felszabadítás</string>
|
||||||
|
|
|
@ -5,6 +5,28 @@
|
||||||
<string name="notice_notification_channel_name">Pemberitahuan dan error</string>
|
<string name="notice_notification_channel_name">Pemberitahuan dan error</string>
|
||||||
<string name="notice_notification_channel_description">Menampilkan pemberitahuan ketika terjadi kesalahan.</string>
|
<string name="notice_notification_channel_description">Menampilkan pemberitahuan ketika terjadi kesalahan.</string>
|
||||||
<string name="notification_permission_not_granted">Izin notifikasi tidak diberikan!</string>
|
<string name="notification_permission_not_granted">Izin notifikasi tidak diberikan!</string>
|
||||||
|
<string name="app_notification_channel_description">Notifikasi emulator Eden</string>
|
||||||
|
<string name="app_notification_running">Eden sedang berjalan</string>
|
||||||
|
<string name="seconds">Detik</string>
|
||||||
|
|
||||||
|
<!-- Spinbox strings -->
|
||||||
|
<string name="increment">Tingkatkan</string>
|
||||||
|
<string name="decrement">Kurangi</string>
|
||||||
|
<string name="value">Nilai</string>
|
||||||
|
<string name="value_too_low">Minimal nilai yang diperlukan yaitu %1$d</string>
|
||||||
|
<string name="value_too_high">Maksimal nilai yang diperlukan yaitu %1$d</string>
|
||||||
|
<string name="invalid_value">Nilai invalid</string>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Input Overlay -->
|
||||||
|
<string name="overlay_auto_hide">Sembunyikan otomatis Overlay</string>
|
||||||
|
<string name="overlay_auto_hide_description">Otomatis menyembunyikan overlay kontrol layar sentuh setelah beberapa waktu spesifik.</string>
|
||||||
|
<string name="enable_input_overlay_auto_hide">Aktifkan \"Sembunyikan otomatis Overlay\"</string>
|
||||||
|
|
||||||
|
<string name="input_overlay_options">Overlay Input</string>
|
||||||
|
<string name="input_overlay_options_description">Konfigurasi kontrol di layar</string>
|
||||||
|
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Ditingkatkan)</string>
|
<string name="enhanced_fps_suffix">(Ditingkatkan)</string>
|
||||||
<string name="process_ram">RAM Proses: %1$d MB</string>
|
<string name="process_ram">RAM Proses: %1$d MB</string>
|
||||||
|
@ -82,8 +104,6 @@
|
||||||
<string name="sample_shading_fraction_description">Intensitas proses pencahayaan sampel. Nilai lebih tinggi meningkatkan kualitas lebih baik tetapi juga mengurangi performa lebih besar.</string>
|
<string name="sample_shading_fraction_description">Intensitas proses pencahayaan sampel. Nilai lebih tinggi meningkatkan kualitas lebih baik tetapi juga mengurangi performa lebih besar.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderer</string>
|
<string name="veil_renderer">Renderer</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Metode manajemen sumber daya otomatis di Vulkan yang memastikan pelepasan sumber daya yang tepat ketika tidak lagi diperlukan, tetapi dapat menyebabkan crash pada game yang dibundel.</string>
|
|
||||||
<string name="frame_interpolation">Penyelarasan Frame Tingkat Lanjut</string>
|
<string name="frame_interpolation">Penyelarasan Frame Tingkat Lanjut</string>
|
||||||
<string name="frame_interpolation_description">Memastikan pengiriman frame yang halus dan konsisten dengan menyinkronkan waktu antar frame, mengurangi stuttering dan animasi tidak rata. Ideal untuk game yang mengalami ketidakstabilan waktu frame atau micro-stutter selama gameplay.</string>
|
<string name="frame_interpolation_description">Memastikan pengiriman frame yang halus dan konsisten dengan menyinkronkan waktu antar frame, mengurangi stuttering dan animasi tidak rata. Ideal untuk game yang mengalami ketidakstabilan waktu frame atau micro-stutter selama gameplay.</string>
|
||||||
<string name="renderer_early_release_fences">Lepas Pagar Lebih Awal</string>
|
<string name="renderer_early_release_fences">Lepas Pagar Lebih Awal</string>
|
||||||
|
@ -837,6 +857,8 @@
|
||||||
<string name="touchscreen">Layar Sentuh</string>
|
<string name="touchscreen">Layar Sentuh</string>
|
||||||
<string name="lock_drawer">Kunci Laci</string>
|
<string name="lock_drawer">Kunci Laci</string>
|
||||||
<string name="unlock_drawer">Buka Kunci Laci</string>
|
<string name="unlock_drawer">Buka Kunci Laci</string>
|
||||||
|
<string name="reset">Reset</string>
|
||||||
|
|
||||||
<string name="load_settings">Pengaturan</string>
|
<string name="load_settings">Pengaturan</string>
|
||||||
|
|
||||||
<!-- Software keyboard -->
|
<!-- Software keyboard -->
|
||||||
|
@ -849,6 +871,7 @@
|
||||||
<string name="system_archive_general">Arsip Umum</string>
|
<string name="system_archive_general">Arsip Umum</string>
|
||||||
<string name="save_load_error">Kesalahan Memuat</string>
|
<string name="save_load_error">Kesalahan Memuat</string>
|
||||||
<string name="fatal_error">Kesalahan Fatal</string>
|
<string name="fatal_error">Kesalahan Fatal</string>
|
||||||
|
<string name="performance_warning">Menonaktifkan pengaturan ini akan mengurangi performa secara signifikan. Direkomendasikan untuk mengaktifkan pengaturan ini</string>
|
||||||
<string name="device_memory_inadequate">Ram Perangkat: %1$s\nRekomendasi: %2$s</string>
|
<string name="device_memory_inadequate">Ram Perangkat: %1$s\nRekomendasi: %2$s</string>
|
||||||
<string name="memory_formatted">%1$s%2$s</string>
|
<string name="memory_formatted">%1$s%2$s</string>
|
||||||
<string name="no_game_present">Tidak ada permainan yang dapat di-boot!</string>
|
<string name="no_game_present">Tidak ada permainan yang dapat di-boot!</string>
|
||||||
|
@ -948,7 +971,6 @@
|
||||||
<string name="scaling_filter_scale_force">ScaleForce</string>
|
<string name="scaling_filter_scale_force">ScaleForce</string>
|
||||||
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolusi</string>
|
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolusi</string>
|
||||||
<string name="scaling_filter_area">Area</string>
|
<string name="scaling_filter_area">Area</string>
|
||||||
|
|
||||||
<!-- Anti-Aliasing -->
|
<!-- Anti-Aliasing -->
|
||||||
<string name="anti_aliasing_none">Tak ada</string>
|
<string name="anti_aliasing_none">Tak ada</string>
|
||||||
<string name="anti_aliasing_fxaa">FXAA</string>
|
<string name="anti_aliasing_fxaa">FXAA</string>
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">L\'intensità della passata di ombreggiatura campione. Valori più alti migliorano la qualità ma riducono maggiormente le prestazioni.</string>
|
<string name="sample_shading_fraction_description">L\'intensità della passata di ombreggiatura campione. Valori più alti migliorano la qualità ma riducono maggiormente le prestazioni.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderer</string>
|
<string name="veil_renderer">Renderer</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Un metodo di gestione automatica delle risorse in Vulkan che garantisce il corretto rilascio delle risorse quando non sono più necessarie, ma può causare crash nei giochi in bundle.</string>
|
|
||||||
<string name="frame_interpolation">Sincronizzazione avanzata fotogrammi</string>
|
<string name="frame_interpolation">Sincronizzazione avanzata fotogrammi</string>
|
||||||
<string name="frame_interpolation_description">Garantisce una consegna fluida e costante dei fotogrammi sincronizzandone i tempi, riducendo scatti e animazioni irregolari. Ideale per giochi che presentano instabilità nei tempi dei fotogrammi o micro-scatti durante il gameplay.</string>
|
<string name="frame_interpolation_description">Garantisce una consegna fluida e costante dei fotogrammi sincronizzandone i tempi, riducendo scatti e animazioni irregolari. Ideale per giochi che presentano instabilità nei tempi dei fotogrammi o micro-scatti durante il gameplay.</string>
|
||||||
<string name="renderer_early_release_fences">Rilascia le barriere prima</string>
|
<string name="renderer_early_release_fences">Rilascia le barriere prima</string>
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">サンプルシェーディング処理の強度。高い値ほど品質は向上しますが、パフォーマンスも大きく低下します。</string>
|
<string name="sample_shading_fraction_description">サンプルシェーディング処理の強度。高い値ほど品質は向上しますが、パフォーマンスも大きく低下します。</string>
|
||||||
|
|
||||||
<string name="veil_renderer">レンダラー</string>
|
<string name="veil_renderer">レンダラー</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Vulkanにおける自動リソース管理の方法で、不要になったリソースを適切に解放しますが、バンドルされたゲームでクラッシュを引き起こす可能性があります。</string>
|
|
||||||
<string name="frame_interpolation">高度なフレーム同期</string>
|
<string name="frame_interpolation">高度なフレーム同期</string>
|
||||||
<string name="frame_interpolation_description">フレーム間のタイミングを同期させることで、スムーズで一貫したフレーム配信を確保し、カクつきや不均一なアニメーションを軽減します。フレームタイミングの不安定さやマイクロスタッターが発生するゲームに最適です。</string>
|
<string name="frame_interpolation_description">フレーム間のタイミングを同期させることで、スムーズで一貫したフレーム配信を確保し、カクつきや不均一なアニメーションを軽減します。フレームタイミングの不安定さやマイクロスタッターが発生するゲームに最適です。</string>
|
||||||
<string name="renderer_early_release_fences">フェンスを早期に解放</string>
|
<string name="renderer_early_release_fences">フェンスを早期に解放</string>
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">샘플 쉐이딩 패스의 강도. 값이 높을수록 품질이 더 향상되지만 성능도 더 크게 저하됩니다.</string>
|
<string name="sample_shading_fraction_description">샘플 쉐이딩 패스의 강도. 값이 높을수록 품질이 더 향상되지만 성능도 더 크게 저하됩니다.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">렌더러</string>
|
<string name="veil_renderer">렌더러</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Vulkan에서 자동 리소스 관리를 위한 방법으로, 더 이상 필요하지 않은 리소스를 적절히 해제하지만 번들된 게임에서 충돌을 일으킬 수 있습니다.</string>
|
|
||||||
<string name="frame_interpolation">향상된 프레임 페이싱</string>
|
<string name="frame_interpolation">향상된 프레임 페이싱</string>
|
||||||
<string name="frame_interpolation_description">프레임 간 타이밍을 동기화하여 부드럽고 일관된 프레임 전달을 보장하며, 끊김과 불균일한 애니메이션을 줄입니다. 프레임 타이밍 불안정이나 게임 플레이 중 미세 끊김이 발생하는 게임에 이상적입니다.</string>
|
<string name="frame_interpolation_description">프레임 간 타이밍을 동기화하여 부드럽고 일관된 프레임 전달을 보장하며, 끊김과 불균일한 애니메이션을 줄입니다. 프레임 타이밍 불안정이나 게임 플레이 중 미세 끊김이 발생하는 게임에 이상적입니다.</string>
|
||||||
<string name="renderer_early_release_fences">펜스 조기 해제</string>
|
<string name="renderer_early_release_fences">펜스 조기 해제</string>
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">Intensiteten til prøveskyggepasseringen. Høyere verdier forbedrer kvaliteten mer, men reduserer også ytelsen i større grad.</string>
|
<string name="sample_shading_fraction_description">Intensiteten til prøveskyggepasseringen. Høyere verdier forbedrer kvaliteten mer, men reduserer også ytelsen i større grad.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderer</string>
|
<string name="veil_renderer">Renderer</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">En metode for automatisk ressurshåndtering i Vulkan som sikrer riktig frigjøring av ressurser når de ikke lenger trengs, men kan føre til krasj i bundlede spill.</string>
|
|
||||||
<string name="frame_interpolation">Avansert bildevindu-synkronisering</string>
|
<string name="frame_interpolation">Avansert bildevindu-synkronisering</string>
|
||||||
<string name="frame_interpolation_description">Sikrer jevn og konsekvent bildelevering ved å synkronisere tiden mellom bilder, noe som reduserer hakking og ujevn animasjon. Ideelt for spill som opplever ustabil bildetid eller mikro-hakk under spilling.</string>
|
<string name="frame_interpolation_description">Sikrer jevn og konsekvent bildelevering ved å synkronisere tiden mellom bilder, noe som reduserer hakking og ujevn animasjon. Ideelt for spill som opplever ustabil bildetid eller mikro-hakk under spilling.</string>
|
||||||
<string name="renderer_early_release_fences">Frigjør gjerder tidlig</string>
|
<string name="renderer_early_release_fences">Frigjør gjerder tidlig</string>
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">Intensywność przebiegu cieniowania próbki. Wyższe wartości poprawiają jakość, ale także w większym stopniu zmniejszają wydajność.</string>
|
<string name="sample_shading_fraction_description">Intensywność przebiegu cieniowania próbki. Wyższe wartości poprawiają jakość, ale także w większym stopniu zmniejszają wydajność.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderer</string>
|
<string name="veil_renderer">Renderer</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Metoda automatycznego zarządzania zasobami w Vulkanie, która zapewnia prawidłowe zwalnianie zasobów, gdy nie są już potrzebne, ale może powodować awarie w pakietowych grach.</string>
|
|
||||||
<string name="frame_interpolation">Zaawansowana synchronizacja klatek</string>
|
<string name="frame_interpolation">Zaawansowana synchronizacja klatek</string>
|
||||||
<string name="frame_interpolation_description">Zapewnia płynne i spójne wyświetlanie klatek poprzez synchronizację ich czasu, redukując zacinanie i nierówną animację. Idealne dla gier z niestabilnym czasem klatek lub mikro-zacinaniem podczas rozgrywki.</string>
|
<string name="frame_interpolation_description">Zapewnia płynne i spójne wyświetlanie klatek poprzez synchronizację ich czasu, redukując zacinanie i nierówną animację. Idealne dla gier z niestabilnym czasem klatek lub mikro-zacinaniem podczas rozgrywki.</string>
|
||||||
<string name="renderer_early_release_fences">Wcześniejsze zwalnianie zabezpieczeń</string>
|
<string name="renderer_early_release_fences">Wcześniejsze zwalnianie zabezpieczeń</string>
|
||||||
|
|
|
@ -4,126 +4,146 @@
|
||||||
<string name="app_disclaimer">Este programa serve para rodar jogos do Nintendo Switch. Nenhum jogo ou chaves do sistema são inclusos<br /><br />Antes de começar, localize o seu <![CDATA[<b> prod.keys </b>]]> salvo no seu sistema.<br /><br /><![CDATA[<a href=\"https://yuzu-mirror.github.io/help/quickstart\">Saiba mais</a>]]></string>
|
<string name="app_disclaimer">Este programa serve para rodar jogos do Nintendo Switch. Nenhum jogo ou chaves do sistema são inclusos<br /><br />Antes de começar, localize o seu <![CDATA[<b> prod.keys </b>]]> salvo no seu sistema.<br /><br /><![CDATA[<a href=\"https://yuzu-mirror.github.io/help/quickstart\">Saiba mais</a>]]></string>
|
||||||
<string name="notice_notification_channel_name">Notificações e erros</string>
|
<string name="notice_notification_channel_name">Notificações e erros</string>
|
||||||
<string name="notice_notification_channel_description">Mostra notificações quando acontecer um erro.</string>
|
<string name="notice_notification_channel_description">Mostra notificações quando acontecer um erro.</string>
|
||||||
<string name="notification_permission_not_granted">Acesso às notificações não permitido!</string>
|
<string name="notification_permission_not_granted">Acesso às notificações não foi permitido!</string>
|
||||||
|
<string name="app_notification_channel_description">Notificações do Eden Switch Emulator</string>
|
||||||
|
<string name="app_notification_running">Eden está em execução</string>
|
||||||
|
<string name="seconds">Segundos</string>
|
||||||
|
|
||||||
|
<!-- Spinbox strings -->
|
||||||
|
<string name="increment">Aumentar</string>
|
||||||
|
<string name="decrement">Diminuir</string>
|
||||||
|
<string name="value">Valor</string>
|
||||||
|
<string name="value_too_low">O valor deve ser no mínimo %1$d</string>
|
||||||
|
<string name="value_too_high">O valor deve ser no máximo %1$d</string>
|
||||||
|
<string name="invalid_value">Valor inválido</string>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Input Overlay -->
|
||||||
|
<string name="overlay_auto_hide">Esconder Sobreposição Automaticamente</string>
|
||||||
|
<string name="overlay_auto_hide_description">Os controles na tela serão escondidos automaticamente se não houver atividade após o tempo definido.</string>
|
||||||
|
<string name="enable_input_overlay_auto_hide">Ativar Esconder Sobreposição Automaticamente</string>
|
||||||
|
|
||||||
|
<string name="input_overlay_options">Controles na Tela</string>
|
||||||
|
<string name="input_overlay_options_description">Ajustar a disposição dos controles na tela</string>
|
||||||
|
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Aprimorado)</string>
|
<string name="enhanced_fps_suffix">(Aprimorado)</string>
|
||||||
<string name="process_ram">RAM do processo: %1$d MB</string>
|
<string name="process_ram">Memória do processo: %1$d MB</string>
|
||||||
<string name="shaders_prefix">Compilando</string>
|
<string name="shaders_prefix">Compilando</string>
|
||||||
<string name="shaders_suffix">Shader(s)</string>
|
<string name="shaders_suffix">Shader(s)</string>
|
||||||
<string name="charging">(Carregando)</string>
|
<string name="charging">(Carregando)</string>
|
||||||
|
|
||||||
<string name="system_info_label">Sistema:</string>
|
<string name="system_info_label">Sistema:</string>
|
||||||
<string name="show_stats_overlay">Mostrar sobreposição de estatísticas de desempenho</string>
|
<string name="show_stats_overlay">Mostrar Sobreposição de Estatísticas de Desempenho</string>
|
||||||
<string name="stats_overlay_customization">Personalização</string>
|
<string name="stats_overlay_customization">Personalização</string>
|
||||||
<string name="stats_overlay_items">Visibilidade</string>
|
<string name="stats_overlay_items">Visibilidade</string>
|
||||||
<string name="stats_overlay_options">Sobreposição</string>
|
<string name="stats_overlay_options">Sobreposição de Desempenho</string>
|
||||||
<string name="enable_stats_overlay_">Ativar sobreposição de estatísticas de desempenho</string>
|
<string name="enable_stats_overlay_">Ativar Sobreposição de Estatísticas de Desempenho</string>
|
||||||
<string name="stats_overlay_options_description">Configurar quais informações são exibidas na sobreposição de estatísticas</string>
|
<string name="stats_overlay_options_description">Configurar quais informações são exibidas na sobreposição de estatísticas</string>
|
||||||
<string name="show_fps">Mostrar FPS</string>
|
<string name="show_fps">Mostrar FPS</string>
|
||||||
<string name="show_fps_description">Exibir quadros por segundo</string>
|
<string name="show_fps_description">Exibir FPS atual</string>
|
||||||
<string name="show_frametime">Mostrar tempo de quadro</string>
|
<string name="show_frametime">Mostrar Tempo de Quadro</string>
|
||||||
<string name="show_frametime_description">Exibir tempo de quadro atual</string>
|
<string name="show_frametime_description">Exibir tempo de quadro atual</string>
|
||||||
<string name="show_speed">Mostrar velocidade</string>
|
<string name="show_speed">Mostrar Velocidade</string>
|
||||||
<string name="show_speed_description">Exibir porcentagem de velocidade de emulação</string>
|
<string name="show_speed_description">Exibir a velocidade de emulação atual em porcentagem</string>
|
||||||
<string name="show_app_ram_usage">Mostrar uso de RAM do app</string>
|
<string name="show_app_ram_usage">Mostrar Uso de Memória Pelo App</string>
|
||||||
<string name="show_app_ram_usage_description">Mostrar a quantidade de memória RAM que o emulador está usando</string>
|
<string name="show_app_ram_usage_description">Exibir a quantidade de memória que o emulador está usando</string>
|
||||||
<string name="show_system_ram_usage">Mostrar uso de RAM do sistema</string>
|
<string name="show_system_ram_usage">Mostrar Uso de Memória Pelo Sistema</string>
|
||||||
<string name="show_system_ram_usage_description">Mostrar a quantidade de memória RAM usada pelo sistema</string>
|
<string name="show_system_ram_usage_description">Exibir a quantidade de memória usada pelo sistema</string>
|
||||||
<string name="show_bat_temperature">Mostrar temperatura da bateria</string>
|
<string name="show_bat_temperature">Mostrar Temperatura da Bateria</string>
|
||||||
<string name="show_bat_temperature_description">Exibir temperatura atual da bateria</string>
|
<string name="show_bat_temperature_description">Exibir a temperatura atual da bateria</string>
|
||||||
<string name="bat_temperature_unit">Unidades de temperatura da bateria</string>
|
<string name="bat_temperature_unit">Unidade de Temperatura da Bateria</string>
|
||||||
<string name="show_power_info">Mostrar informações da bateria</string>
|
<string name="show_power_info">Mostrar Informações da Bateria</string>
|
||||||
<string name="show_power_info_description">Exibir consumo atual de energia e capacidade restante da bateria</string>
|
<string name="show_power_info_description">Exibir consumo de energia atual e capacidade restante da bateria</string>
|
||||||
<string name="show_shaders_building">Mostrar construção de shaders</string>
|
<string name="show_shaders_building">Mostrar Construção de Shaders</string>
|
||||||
<string name="show_shaders_building_description">Exibe o número atual de shaders sendo construídos</string>
|
<string name="show_shaders_building_description">Exibir número atual de shaders em construção</string>
|
||||||
<string name="overlay_position">Posição da sobreposição</string>
|
<string name="overlay_position">Posição da Sobreposição</string>
|
||||||
<string name="overlay_position_description">Escolher onde a sobreposição é exibida na tela</string>
|
<string name="overlay_position_description">Escolher onde a sobreposição será exibida na tela</string>
|
||||||
<string name="overlay_position_top_left">Canto superior esquerdo</string>
|
<string name="overlay_position_top_left">Canto Superior Esquerdo</string>
|
||||||
<string name="overlay_position_top_right">Canto superior direito</string>
|
<string name="overlay_position_top_right">Canto Superior Direito</string>
|
||||||
<string name="overlay_position_bottom_left">Canto inferior esquerdo</string>
|
<string name="overlay_position_bottom_left">Canto Inferior Esquerdo</string>
|
||||||
<string name="overlay_position_bottom_right">Canto inferior direito</string>
|
<string name="overlay_position_bottom_right">Canto Inferior Direito</string>
|
||||||
<string name="overlay_position_center_top">Centro superior</string>
|
<string name="overlay_position_center_top">Centro Superior</string>
|
||||||
<string name="overlay_position_center_bottom">Centro inferior</string>
|
<string name="overlay_position_center_bottom">Centro Inferior</string>
|
||||||
<string name="perf_overlay_background">Fundo da sobreposição</string>
|
<string name="perf_overlay_background">Plano de Fundo da Sobreposição</string>
|
||||||
<string name="perf_overlay_background_description">Adiciona um fundo para melhorar a legibilidade</string>
|
<string name="perf_overlay_background_description">Adiciona um fundo atrás da sobreposição para facilitar a leitura</string>
|
||||||
|
|
||||||
<!-- Device Overlay settings -->
|
<!-- Device Overlay settings -->
|
||||||
<string name="show_soc_overlay">Mostrar sobreposição de informações do dispositivo</string>
|
<string name="show_soc_overlay">Mostrar Sobreposição de Informações do Dispositivo</string>
|
||||||
<string name="enable_soc_overlay">Ativar sobreposição do dispositivo</string>
|
<string name="enable_soc_overlay">Ativar Sobreposição do Dispositivo</string>
|
||||||
<string name="soc_overlay_options">Sobreposição do dispositivo</string>
|
<string name="soc_overlay_options">Sobreposição do Dispositivo</string>
|
||||||
<string name="soc_overlay_options_description">Configurar quais informações são mostradas na sobreposição do dispositivo</string>
|
<string name="soc_overlay_options_description">Configurar quais informações são mostradas na sobreposição do dispositivo</string>
|
||||||
|
|
||||||
<string name="show_device_model">Mostrar modelo do dispositivo</string>
|
<string name="show_device_model">Mostrar Modelo do Dispositivo</string>
|
||||||
<string name="show_device_model_description">Exibir o modelo do dispositivo host</string>
|
<string name="show_device_model_description">Exibir o modelo do dispositivo</string>
|
||||||
<string name="show_gpu_model">Mostrar modelo da GPU</string>
|
<string name="show_gpu_model">Mostrar Modelo da GPU</string>
|
||||||
<string name="show_gpu_model_description">Exibir o modelo da GPU host</string>
|
<string name="show_gpu_model_description">Exibir o modelo da placa de vídeo do dispositivo</string>
|
||||||
<string name="show_soc_model">Mostrar modelo do SoC</string>
|
<string name="show_soc_model">Mostrar Modelo do SoC</string>
|
||||||
<string name="show_soc_model_description">Exibir o modelo do SoC host</string>
|
<string name="show_soc_model_description">Exibir o modelo do chip integrado (SoC) do dispositivo</string>
|
||||||
<string name="show_fw_version">Mostrar versão do firmware</string>
|
<string name="show_fw_version">Mostrar Versão do Firmware</string>
|
||||||
<string name="show_fw_version_description">Exibe a versão do firmware instalado</string>
|
<string name="show_fw_version_description">Exibir a versão do firmware instalado</string>
|
||||||
|
|
||||||
<!-- Eden\'s Veil -->
|
<!-- Eden\'s Veil -->
|
||||||
<string name="eden_veil">Véu do Éden</string>
|
<string name="eden_veil">Véu do Éden</string>
|
||||||
<string name="eden_veil_description">Configurações experimentais para melhorar desempenho e capacidade. Essas configurações podem causar telas pretas ou outros problemas no jogo.</string>
|
<string name="eden_veil_description">Configurações experimentais que podem melhorar a performance e recursos do emulador. Essas configurações podem causar telas pretas ou outros problemas durante o jogo.</string>
|
||||||
<string name="eden_veil_warning_title">Configurações Experimentais</string>
|
<string name="eden_veil_warning_title">Configurações Experimentais</string>
|
||||||
<string name="eden_veil_warning_description">As configurações no Véu do Éden são altamente experimentais e podem causar problemas. Se seu jogo não iniciar, desative todas as extensões.</string>
|
<string name="eden_veil_warning_description">As configurações no Véu do Éden são altamente experimentais e podem causar problemas. Se o jogo não iniciar corretamente, desative todas as extensões.\nAlgumas configurações podem estar com nome em inglês para garantir um melhor suporte.</string>
|
||||||
|
|
||||||
<string name="veil_extensions">Extensões da GPU</string>
|
<string name="veil_extensions">Extensões da GPU</string>
|
||||||
<string name="dyna_state">Estado Dinâmico Estendido</string>
|
<string name="dyna_state">Extended Dynamic State</string>
|
||||||
<string name="dyna_state_description">Controla o número de recursos que podem ser usados no Estado Dinâmico Estendido. Números mais altos permitem mais recursos e podem aumentar o desempenho, mas podem causar problemas com alguns drivers e fabricantes. O valor padrão pode variar dependendo do seu sistema e capacidades de hardware. Este valor pode ser alterado até que a estabilidade e uma melhor qualidade visual sejam alcançadas.</string>
|
<string name="dyna_state_description">Estado Dinâmico Estendido: Controla o nível de recursos que podem ser usados no Extended Dynamic State. Níveis mais altos permitem mais recursos e podem melhorar o desempenho, mas podem causar problemas com alguns drivers e fabricantes. O nível padrão pode variar dependendo do seu sistema e das capacidades do hardware. Este valor pode ser ajustado até que se alcance estabilidade e melhor qualidade visual.</string>
|
||||||
<string name="disabled">Desativado</string>
|
<string name="disabled">Desativado</string>
|
||||||
<string name="provoking_vertex">Vértice provocante</string>
|
<string name="provoking_vertex">Provoking Vertex</string>
|
||||||
<string name="provoking_vertex_description">Melhora iluminação e tratamento de vértices em certos jogos. Suportado apenas em GPUs Vulkan 1.0+.</string>
|
<string name="provoking_vertex_description">Vértice Provocante: Melhora a iluminação e o processamento de vértices em certos jogos. Suportado apenas em GPUs com Vulkan 1.0 ou superior.</string>
|
||||||
<string name="descriptor_indexing">Indexação de descritores</string>
|
<string name="descriptor_indexing">Descriptor Indexing</string>
|
||||||
<string name="descriptor_indexing_description">Melhora tratamento de texturas e buffers, assim como a camada de tradução Maxwell. Suportado por algumas GPUs Vulkan 1.1 e todas Vulkan 1.2+.</string>
|
<string name="descriptor_indexing_description">Indexação de Descritores: Melhora o processamento de texturas e buffers, assim como a camada de tradução Maxwell. Suportado por algumas GPUs Vulkan 1.1 e todas as GPUs Vulkan 1.2 ou superiores.</string>
|
||||||
<string name="sample_shading">Amostragem de sombreamento</string>
|
<string name="sample_shading">Sample Shading</string>
|
||||||
<string name="sample_shading_description">Permite que o fragment shader seja executado por amostra em um fragmento multi-amostrado em vez de uma vez por fragmento. Melhora a qualidade gráfica às custas de desempenho. Apenas dispositivos Vulkan 1.1+ suportam esta extensão.</string>
|
<string name="sample_shading_description">Amostragem de Sombreamento: Permite que o shader de fragmento seja processado por cada amostra em fragmentos multiamostrados, em vez de executar uma vez por fragmento, melhorando a qualidade gráfica, porém impactando levemente o desempenho. Funciona apenas em dispositivos Vulkan 1.1 ou superiores.</string>
|
||||||
<string name="sample_shading_fraction">Fração de Sombreamento de Amostra</string>
|
<string name="sample_shading_fraction">Sample Shading Fraction</string>
|
||||||
<string name="sample_shading_fraction_description">A intensidade da passagem de sombreamento de amostra. Valores mais altos melhoram mais a qualidade, mas também reduzem o desempenho em maior medida.</string>
|
<string name="sample_shading_fraction_description">Fração de Sombreamento de Amostra: Define a intensidade do sample shading. Quanto maior, melhor a qualidade, mas maior o impacto no desempenho.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderizador</string>
|
<string name="veil_renderer">Renderizador</string>
|
||||||
<string name="enable_raii">RAII</string>
|
<string name="frame_interpolation">Enhanced Frame Pacing</string>
|
||||||
<string name="enable_raii_description">Um método de gerenciamento automático de recursos no Vulkan que garante a liberação adequada de recursos quando não são mais necessários, mas pode causar falhas em jogos empacotados.</string>
|
<string name="frame_interpolation_description">Sincronização Melhorada de Quadros: Sincroniza o tempo entre os quadros para uma entrega mais uniforme, reduzindo travamentos e animações irregulares. Útil em jogos que sofrem com microtravamentos ou instabilidade na taxa de frames.</string>
|
||||||
<string name="frame_interpolation">Sincronização avançada de quadros</string>
|
<string name="renderer_early_release_fences">Release Fences Early</string>
|
||||||
<string name="frame_interpolation_description">Garante entrega suave e consistente de quadros sincronizando seu tempo, reduzindo engasgos e animações irregulares. Ideal para jogos com instabilidade no tempo de quadros ou micro-engasgos durante a jogatina.</string>
|
<string name="renderer_early_release_fences_description">Liberar Cercas Antecipadamente: Ajuda a corrigir 0 FPS em jogos como DKCR:HD, Subnautica Below Zero e Ori 2, mas pode prejudicar o carregamento ou o desempenho em jogos feitos com Unreal Engine.</string>
|
||||||
<string name="renderer_early_release_fences">Liberar cercas antecipadamente</string>
|
|
||||||
<string name="renderer_early_release_fences_description">Ajuda a corrigir 0 FPS em jogos como DKCR:HD, Subnautica Below Zero e Ori 2, mas pode prejudicar carregamento ou desempenho em jogos Unreal Engine.</string>
|
|
||||||
<string name="sync_memory_operations">Sincronizar Operações de Memória</string>
|
<string name="sync_memory_operations">Sincronizar Operações de Memória</string>
|
||||||
<string name="sync_memory_operations_description">Garante a consistência dos dados entre operações de computação e memória. Esta opção deve corrigir problemas em alguns jogos, mas pode reduzir o desempenho em alguns casos. Os jogos com Unreal Engine 4 parecem ser os mais afetados.</string>
|
<string name="sync_memory_operations_description">Garante a consistência de dados entre operações de computação e memória. Esta opção pode corrigir problemas em alguns jogos, mas também pode reduzir o desempenho, sendo os jogos da Unreal Engine 4 os mais afetados.</string>
|
||||||
<string name="buffer_reorder_disable">Desativar reorganização de buffer</string>
|
<string name="buffer_reorder_disable">Desativar Reordenação de Buffers</string>
|
||||||
<string name="buffer_reorder_disable_description">Quando marcado, desativa a reorganização de carregamentos de memória mapeada que permite associar carregamentos a desenhos específicos. Pode reduzir o desempenho em alguns casos.</string>
|
<string name="buffer_reorder_disable_description">Quando marcado, desativa a reordenação de uploads de memória mapeada, permitindo associar uploads a desenhos específicos. Pode reduzir o desempenho em alguns casos.</string>
|
||||||
|
|
||||||
<string name="veil_misc">CPU e Memória</string>
|
<string name="veil_misc">CPU e Memória</string>
|
||||||
<string name="use_sync_core">Sincronizar velocidade do núcleo</string>
|
<string name="use_sync_core">Sincronizar Velocidade do Núcleo</string>
|
||||||
<string name="use_sync_core_description">Sincroniza a velocidade do núcleo com a porcentagem máxima de velocidade para melhorar o desempenho sem alterar a velocidade real do jogo.</string>
|
<string name="use_sync_core_description">Aumenta a velocidade do ciclo do núcleo até o máximo para melhorar o desempenho, mantendo a velocidade real do jogo inalterada.</string>
|
||||||
<string name="use_lru_cache">Ativar cache LRU</string>
|
<string name="use_lru_cache">Ativar Cache LRU</string>
|
||||||
<string name="use_lru_cache_description">Ativa ou desativa o cache dos itens menos acessados recentemente (LRU), que melhora o desempenho ao reduzir o uso do processador. Alguns jogos podem apresentar problemas com essa opção, então desative caso o jogo não inicie ou feche sozinho.</string>
|
<string name="use_lru_cache_description">O cache Least Recently Used (LRU, ou Itens Menos Usados) aumenta o desempenho, economizando o uso do processador. Alguns jogos podem apresentar problemas com esta configuração. Desative-a caso o jogo não inicie ou trave aleatoriamente.</string>
|
||||||
<string name="use_fast_cpu_time">Tempo de CPU rápido</string>
|
<string name="use_fast_cpu_time">Tempo Rápido na CPU</string>
|
||||||
<string name="use_fast_cpu_time_description">Força a CPU emulada a funcionar em uma frequência mais alta, reduzindo certos limitadores de FPS. Esta opção é instável e pode causar problemas, e CPUs mais fracas podem ter desempenho reduzido.</string>
|
<string name="use_fast_cpu_time_description">Força a CPU emulada a rodar em um clock mais alto, reduzindo certos limitadores de FPS. Esta opção é instável e pode causar problemas. CPUs mais fracas podem ter desempenho reduzido.</string>
|
||||||
<string name="custom_cpu_ticks">Ticks de CPU personalizados</string>
|
<string name="custom_cpu_ticks">Ciclos da CPU Personalizados</string>
|
||||||
<string name="custom_cpu_ticks_description">Defina um valor personalizado para ticks de CPU. Valores mais altos podem aumentar o desempenho, mas também podem causar travamentos no jogo. Um intervalo de 77–21000 é recomendado.</string>
|
<string name="custom_cpu_ticks_description">Defina um valor personalizado de ciclos da CPU. Valores mais altos podem aumentar o desempenho, mas também podem fazer o jogo travar. Recomenda-se usar valores entre 77 e 21000.</string>
|
||||||
<string name="cpu_ticks">Ticks</string>
|
<string name="cpu_ticks">Ciclos</string>
|
||||||
<string name="skip_cpu_inner_invalidation">Pular invalidação interna da CPU</string>
|
<string name="skip_cpu_inner_invalidation">Ignorar Invalidação Interna da CPU</string>
|
||||||
<string name="skip_cpu_inner_invalidation_description">Ignora algumas invalidações de cache do lado da CPU durante atualizações de memória, reduzindo o uso da CPU e melhorando seu desempenho. Pode causar falhas ou travamentos em alguns jogos.</string>
|
<string name="skip_cpu_inner_invalidation_description">Ignora certas invalidações de cache do lado da CPU durante atualizações de memória, reduzindo o uso da CPU e melhorando seu desempenho. Isso pode causar falhas ou travamentos em alguns jogos.</string>
|
||||||
<string name="cpuopt_unsafe_host_mmu">Ativar Emulação de MMU do Host</string>
|
<string name="cpuopt_unsafe_host_mmu">Ativar Emulação da MMU do Sistema</string>
|
||||||
<string name="cpuopt_unsafe_host_mmu_description">Esta otimização acelera os acessos à memória pelo programa convidado. Ativar isso faz com que as leituras/gravações de memória do convidado sejam feitas diretamente na memória e utilizem a MMU do Host. Desativar isso força todos os acessos à memória a usarem a Emulação de MMU por Software.</string>
|
<string name="cpuopt_unsafe_host_mmu_description">Esta otimização acelera o acesso à memória pelo programa. Ao ativá-la, leituras e gravações são feitas diretamente na memória, usando a MMU (Unidade de Gerenciamento de Memória) do sistema. Ao desativar, todos os acessos passam a utilizar a Emulação de MMU por Software.</string>
|
||||||
<string name="fast_cpu_time">Clock da CPU</string>
|
<string name="fast_cpu_time">Clock da CPU</string>
|
||||||
<string name="fast_cpu_time_description">Use Boost (1700MHz) para funcionar na frequência nativa mais alta do Switch, ou Fast (2000MHz) para funcionar em dobro da frequência.</string>
|
<string name="fast_cpu_time_description">Use Boost (1700 MHz) para rodar na frequência nativa máxima do Switch, ou Fast (2000 MHz) para rodar com o dobro do clock.</string>
|
||||||
<string name="memory_layout">Layout de memória</string>
|
<string name="memory_layout">Layout da Memória</string>
|
||||||
<string name="memory_layout_description">(EXPERIMENTAL) Altera o layout de memória emulado. Esta configuração não aumenta o desempenho, mas pode ajudar em jogos que utilizam altas resoluções via mods. Não use em telefones com 8GB de RAM ou menos.</string>
|
<string name="memory_layout_description">(EXPERIMENTAL) Layout da Memória: Altera o layout da memória emulada. Esta configuração não aumenta o desempenho, mas pode ajudar em jogos que utilizam altas resoluções via mods. Não use em celulares com 8 GB de RAM ou menos. Funciona apenas no backend Dynarmic (JIT).</string>
|
||||||
<string name="dma_accuracy">Precisão de DMA</string>
|
<string name="dma_accuracy">Precisão do DMA</string>
|
||||||
<string name="dma_accuracy_description">Controla a precisão do DMA. A precisão segura pode corrigir problemas em alguns jogos, mas também pode afetar o desempenho em alguns casos. Se não tiver certeza, deixe isso como Padrão.</string>
|
<string name="dma_accuracy_description">Controla a precisão das operações de DMA (Acesso Direto à Memória). A precisão Segura pode corrigir problemas em alguns jogos, mas também pode impactar o desempenho em certos casos. Se estiver em dúvida, mantenha na opção Padrão.</string>
|
||||||
|
|
||||||
<!-- Shader Backend -->
|
<!-- Shader Backend -->
|
||||||
<string name="shader_backend">Backend de shader</string>
|
<string name="shader_backend">Shader Backend</string>
|
||||||
<string name="shader_backend_description">Define como shaders são compilados</string>
|
<string name="shader_backend_description">Escolha como os shaders são compilados e traduzidos para sua GPU.</string>
|
||||||
<string name="shader_backend_glsl">GLSL</string>
|
<string name="shader_backend_glsl">GLSL</string>
|
||||||
<string name="shader_backend_glasm">GLASM</string>
|
<string name="shader_backend_glasm">GLASM</string>
|
||||||
<string name="shader_backend_spirv">Spir-V</string>
|
<string name="shader_backend_spirv">Spir-V</string>
|
||||||
|
|
||||||
<!-- NVDEC Emulation -->
|
<!-- NVDEC Emulation -->
|
||||||
<string name="nvdec_emulation">Emulação NVDEC</string>
|
<string name="nvdec_emulation">Decodificação de Vídeo (NVDEC)</string>
|
||||||
<string name="nvdec_emulation_description">Define como vídeos são decodificados (NVDEC) durante as cutscenes e introduções.</string>
|
<string name="nvdec_emulation_description">Selecione como a decodificação de vídeo é realizada durante cutscenes e intros.</string>
|
||||||
<string name="nvdec_emulation_cpu">CPU</string>
|
<string name="nvdec_emulation_cpu">CPU</string>
|
||||||
<string name="nvdec_emulation_gpu">GPU</string>
|
<string name="nvdec_emulation_gpu">GPU</string>
|
||||||
<string name="nvdec_emulation_none">Nenhum</string>
|
<string name="nvdec_emulation_none">Nenhum</string>
|
||||||
|
@ -134,29 +154,29 @@
|
||||||
<string name="always">Sempre</string>
|
<string name="always">Sempre</string>
|
||||||
|
|
||||||
<!-- Multiplayer -->
|
<!-- Multiplayer -->
|
||||||
<string name="multiplayer">Multijogador</string>
|
<string name="multiplayer">Multiplayer</string>
|
||||||
<string name="multiplayer_description">Crie sua própria sala ou entre em uma existente para jogar com outros</string>
|
<string name="multiplayer_description">Crie sua própria sala de jogo ou entre em uma existente para jogar com outras pessoas.</string>
|
||||||
<string name="multiplayer_room_title">Sala: %1$s</string>
|
<string name="multiplayer_room_title">Sala: %1$s</string>
|
||||||
<string name="multiplayer_console_id">ID do Console: %1$s</string>
|
<string name="multiplayer_console_id">ID do Console: %1$s</string>
|
||||||
<string name="multiplayer_create_room">Criar</string>
|
<string name="multiplayer_create_room">Criar</string>
|
||||||
<string name="multiplayer_join_room">Entrar</string>
|
<string name="multiplayer_join_room">Entrar</string>
|
||||||
<string name="multiplayer_public_room">Procurar salas públicas</string>
|
<string name="multiplayer_public_room">Procurar salas públicas</string>
|
||||||
<string name="multiplayer_username">Nome de usuário</string>
|
<string name="multiplayer_username">Nome de Usuário</string>
|
||||||
<string name="multiplayer_ip_address">Endereço IP</string>
|
<string name="multiplayer_ip_address">Endereço IP</string>
|
||||||
<string name="multiplayer_ip_port">Porta</string>
|
<string name="multiplayer_ip_port">Porta</string>
|
||||||
<string name="multiplayer_create_room_success">Sala criada com sucesso</string>
|
<string name="multiplayer_create_room_success">Sala criada com sucesso</string>
|
||||||
<string name="multiplayer_join_room_success">Entrou na sala com sucesso</string>
|
<string name="multiplayer_join_room_success">Entrou na sala com sucesso</string>
|
||||||
<string name="multiplayer_create_room_failed">Falha ao criar sala</string>
|
<string name="multiplayer_create_room_failed">Falha ao criar a sala</string>
|
||||||
<string name="multiplayer_join_room_failed">Falha ao entrar na sala</string>
|
<string name="multiplayer_join_room_failed">Falha ao entrar na sala</string>
|
||||||
<string name="multiplayer_name_invalid">Nome muito curto</string>
|
<string name="multiplayer_name_invalid">Nome é muito curto</string>
|
||||||
<string name="multiplayer_address_invalid">Endereço inválido</string>
|
<string name="multiplayer_address_invalid">Endereço inválido</string>
|
||||||
<string name="multiplayer_port_invalid">Porta inválida</string>
|
<string name="multiplayer_port_invalid">Porta inválida</string>
|
||||||
<string name="multiplayer_exit_room">Sair da sala</string>
|
<string name="multiplayer_exit_room">Sair da Sala</string>
|
||||||
<string name="multiplayer_network_error">Erro de rede</string>
|
<string name="multiplayer_network_error">Problema na rede</string>
|
||||||
<string name="multiplayer_lost_connection">Conexão perdida</string>
|
<string name="multiplayer_lost_connection">Conexão perdida</string>
|
||||||
<string name="multiplayer_name_collision">Nome de usuário já em uso</string>
|
<string name="multiplayer_name_collision">Nome de usuário já está em uso</string>
|
||||||
<string name="multiplayer_mac_collision">Conflito de MAC</string>
|
<string name="multiplayer_mac_collision">Conflito de MAC</string>
|
||||||
<string name="multiplayer_console_id_collision">Conflito de ID do console</string>
|
<string name="multiplayer_console_id_collision">Conflito no ID do console</string>
|
||||||
<string name="multiplayer_wrong_version">Versão incorreta</string>
|
<string name="multiplayer_wrong_version">Versão incorreta</string>
|
||||||
<string name="multiplayer_wrong_password">Senha incorreta</string>
|
<string name="multiplayer_wrong_password">Senha incorreta</string>
|
||||||
<string name="multiplayer_could_not_connect">Não foi possível conectar</string>
|
<string name="multiplayer_could_not_connect">Não foi possível conectar</string>
|
||||||
|
@ -166,11 +186,11 @@
|
||||||
<string name="multiplayer_no_such_user">Usuário não existe</string>
|
<string name="multiplayer_no_such_user">Usuário não existe</string>
|
||||||
<string name="multiplayer_already_in_room">Já está na sala</string>
|
<string name="multiplayer_already_in_room">Já está na sala</string>
|
||||||
<string name="multiplayer_create_room_error">Erro ao criar sala</string>
|
<string name="multiplayer_create_room_error">Erro ao criar sala</string>
|
||||||
<string name="multiplayer_host_kicked">Host expulso</string>
|
<string name="multiplayer_host_kicked">Expulso pelo Host</string>
|
||||||
<string name="multiplayer_unknown_error">Erro desconhecido</string>
|
<string name="multiplayer_unknown_error">Erro desconhecido</string>
|
||||||
<string name="multiplayer_room_uninitialized">Sala não inicializada</string>
|
<string name="multiplayer_room_uninitialized">Sala não inicializada</string>
|
||||||
<string name="multiplayer_room_idle">Sala inativa</string>
|
<string name="multiplayer_room_idle">Sala inativa</string>
|
||||||
<string name="multiplayer_room_joining">Entrando na sala...</string>
|
<string name="multiplayer_room_joining">Entrando na sala</string>
|
||||||
<string name="multiplayer_room_joined">Entrou na sala</string>
|
<string name="multiplayer_room_joined">Entrou na sala</string>
|
||||||
<string name="multiplayer_room_moderator">Moderador da sala</string>
|
<string name="multiplayer_room_moderator">Moderador da sala</string>
|
||||||
<string name="multiplayer_member_join">%1$s entrou</string>
|
<string name="multiplayer_member_join">%1$s entrou</string>
|
||||||
|
@ -179,11 +199,11 @@
|
||||||
<string name="multiplayer_member_banned">%1$s foi banido</string>
|
<string name="multiplayer_member_banned">%1$s foi banido</string>
|
||||||
<string name="multiplayer_address_unbanned">Endereço desbanido</string>
|
<string name="multiplayer_address_unbanned">Endereço desbanido</string>
|
||||||
<string name="multiplayer_kick_member">Expulsar</string>
|
<string name="multiplayer_kick_member">Expulsar</string>
|
||||||
<string name="multiplayer_chat_input_hint">Enviar mensagem...</string>
|
<string name="multiplayer_chat_input_hint">Enviar mensagens...</string>
|
||||||
<string name="multiplayer_password">Senha</string>
|
<string name="multiplayer_password">Senha</string>
|
||||||
<string name="multiplayer_joining">Entrando...</string>
|
<string name="multiplayer_joining">Entrando...</string>
|
||||||
<string name="multiplayer_creating">Criando...</string>
|
<string name="multiplayer_creating">Criando...</string>
|
||||||
<string name="multiplayer_room_name">Nome da sala</string>
|
<string name="multiplayer_room_name">Nome da Sala</string>
|
||||||
<string name="multiplayer_room_name_invalid">O nome da sala deve ter entre 3 e 20 caracteres</string>
|
<string name="multiplayer_room_name_invalid">O nome da sala deve ter entre 3 e 20 caracteres</string>
|
||||||
<string name="multiplayer_max_players">Máx. jogadores (16)</string>
|
<string name="multiplayer_max_players">Máx. jogadores (16)</string>
|
||||||
<string name="multiplayer_max_players_value">Máx. jogadores: %d</string>
|
<string name="multiplayer_max_players_value">Máx. jogadores: %d</string>
|
||||||
|
@ -204,40 +224,40 @@
|
||||||
<string name="multiplayer_ban">Banir usuário</string>
|
<string name="multiplayer_ban">Banir usuário</string>
|
||||||
<string name="multiplayer_room_browser">Salas públicas</string>
|
<string name="multiplayer_room_browser">Salas públicas</string>
|
||||||
<string name="multiplayer_no_rooms_found">Nenhuma sala pública encontrada</string>
|
<string name="multiplayer_no_rooms_found">Nenhuma sala pública encontrada</string>
|
||||||
<string name="multiplayer_password_required">Senha necessária</string>
|
<string name="multiplayer_password_required">Senha Necessária</string>
|
||||||
<string name="multiplayer_player_count">: %1$d/%2$d</string>
|
<string name="multiplayer_player_count">: %1$d/%2$d</string>
|
||||||
<string name="multiplayer_game">Jogo</string>
|
<string name="multiplayer_game">Jogo</string>
|
||||||
<string name="multiplayer_no_game_info">Qualquer jogo</string>
|
<string name="multiplayer_no_game_info">Qualquer jogo</string>
|
||||||
<string name="multiplayer_password_protected">Sala com senha</string>
|
<string name="multiplayer_password_protected">Sala com senha</string>
|
||||||
<string name="multiplayer_hide_full_rooms">Ocultar salas cheias</string>
|
<string name="multiplayer_hide_full_rooms">Ocultar Salas Cheias</string>
|
||||||
<string name="multiplayer_hide_empty_rooms">Ocultar salas vazias</string>
|
<string name="multiplayer_hide_empty_rooms">Ocultar Salas Vazias</string>
|
||||||
<string name="multiplayer_tap_refresh_to_check_again">Toque para atualizar</string>
|
<string name="multiplayer_tap_refresh_to_check_again">Toque em Atualizar para verificar novamente</string>
|
||||||
<string name="multiplayer_search_public_lobbies">Procurar salas...</string>
|
<string name="multiplayer_search_public_lobbies">Procurar Salas Públicas...</string>
|
||||||
<string name="emulation_multiplayer">Multijogador</string>
|
<string name="emulation_multiplayer">Multiplayer</string>
|
||||||
<string name="multiplayer_game_name">Jogos preferidos</string>
|
<string name="multiplayer_game_name">Jogos Preferidos</string>
|
||||||
<string name="multiplayer_preferred_game_name">Jogo preferido</string>
|
<string name="multiplayer_preferred_game_name">Jogo Preferido</string>
|
||||||
<string name="multiplayer_lobby_type">Tipo de lobby</string>
|
<string name="multiplayer_lobby_type">Tipo de Sala Pública</string>
|
||||||
<string name="multiplayer_no_game">Nenhum jogo encontrado</string>
|
<string name="multiplayer_no_game">Nenhum Jogo Encontrado</string>
|
||||||
<string name="multiplayer_preferred_game_name_invalid">Selecione um jogo preferido</string>
|
<string name="multiplayer_preferred_game_name_invalid">Você deve escolher um Jogo Preferido para hospedar uma sala.</string>
|
||||||
<string name="multiplayer_room_name_error">3-20 caracteres necessários</string>
|
<string name="multiplayer_room_name_error">Deve ter entre 3 e 20 caracteres.</string>
|
||||||
<string name="multiplayer_required">Obrigatório</string>
|
<string name="multiplayer_required">Obrigatório</string>
|
||||||
<string name="multiplayer_token_required">Token web necessário, vá para Configurações avançadas -> Sistema -> Rede</string>
|
<string name="multiplayer_token_required">Web Token necessário, vá para Configurações Avançadas -> Sistema -> Rede</string>
|
||||||
<string name="multiplayer_ip_error">Formato de IP inválido</string>
|
<string name="multiplayer_ip_error">Formato de IP inválido</string>
|
||||||
<string name="multiplayer_username_error">Deve ter 4-20 caracteres (apenas alfanuméricos, pontos, hífens, sublinhados e espaços)</string>
|
<string name="multiplayer_username_error">Deve ter entre 4 e 20 caracteres e conter apenas letras, números, pontos, traços, sublinhados e espaços.</string>
|
||||||
<string name="multiplayer_nickname_invalid">Nome de usuário inválido, verifique em Sistema → Rede</string>
|
<string name="multiplayer_nickname_invalid">Nome de usuário inválido. Certifique-se de configurá-lo corretamente em Sistema -> Rede</string>
|
||||||
<string name="multiplayer_token_error">Deve ter 48 caracteres e apenas letras minúsculas a-z</string>
|
<string name="multiplayer_token_error">Deve ter 48 caracteres, usando apenas letras minúsculas de a-z</string>
|
||||||
<string name="multiplayer_port_error">Deve ser entre 1 e 65535</string>
|
<string name="multiplayer_port_error">Deve ser entre 1 e 65535</string>
|
||||||
<string name="cancel">Cancelar</string>
|
<string name="cancel">Cancelar</string>
|
||||||
<string name="ok">Ok</string>
|
<string name="ok">Ok</string>
|
||||||
<string name="refresh">Atualizar</string>
|
<string name="refresh">Atualizar</string>
|
||||||
<string name="room_list">Lista de salas</string>
|
<string name="room_list">Lista de Salas</string>
|
||||||
<string name="multiplayer_public_visibility">Público</string>
|
<string name="multiplayer_public_visibility">Público</string>
|
||||||
<string name="multiplayer_unlisted_visibility">Não listado</string>
|
<string name="multiplayer_unlisted_visibility">Não Listado</string>
|
||||||
|
|
||||||
<!-- Setup strings -->
|
<!-- Setup strings -->
|
||||||
<string name="welcome">Bem-vindo! </string>
|
<string name="welcome">Bem-vindo! </string>
|
||||||
<string name="welcome_description">Aprenda como configurar o <b>Eden</b> e mergulhe na emulação.</string>
|
<string name="welcome_description">Aprenda como configurar o <b>Eden</b> e mergulhe na emulação.</string>
|
||||||
<string name="get_started">Primeiros passos</string>
|
<string name="get_started">Vamos começar</string>
|
||||||
<string name="keys">Keys</string>
|
<string name="keys">Keys</string>
|
||||||
<string name="keys_description">Selecione seu arquivo <b>prod.keys</b> com o botão abaixo.</string>
|
<string name="keys_description">Selecione seu arquivo <b>prod.keys</b> com o botão abaixo.</string>
|
||||||
<string name="select_keys">Selecione as Keys</string>
|
<string name="select_keys">Selecione as Keys</string>
|
||||||
|
@ -245,17 +265,17 @@
|
||||||
<string name="firmware_description">Selecione seu arquivo <b>firmware.zip</b> com o botão abaixo.\nAtualmente, o Eden requer a versão <b>19.0.1</b> ou inferior.</string>
|
<string name="firmware_description">Selecione seu arquivo <b>firmware.zip</b> com o botão abaixo.\nAtualmente, o Eden requer a versão <b>19.0.1</b> ou inferior.</string>
|
||||||
<string name="select_firmware">Selecionar Firmware</string>
|
<string name="select_firmware">Selecionar Firmware</string>
|
||||||
<string name="games">Jogos</string>
|
<string name="games">Jogos</string>
|
||||||
<string name="games_description">Selecione sua pasta <b>Jogos</b> com o botão abaixo.</string>
|
<string name="games_description">Selecione sua pasta de <b>Jogos</b> com o botão abaixo.</string>
|
||||||
<string name="done">Pronto</string>
|
<string name="done">Pronto</string>
|
||||||
<string name="done_description">Tudo certo.\nAproveite seus jogos!</string>
|
<string name="done_description">Tudo certo.\nAproveite seus jogos!</string>
|
||||||
<string name="text_continue">Continuar</string>
|
<string name="text_continue">Continuar</string>
|
||||||
<string name="next">Próximo</string>
|
<string name="next">Próximo</string>
|
||||||
<string name="back">Voltar</string>
|
<string name="back">Voltar</string>
|
||||||
<string name="add_games">Adicionar Jogos</string>
|
<string name="add_games">Adicionar Jogos</string>
|
||||||
<string name="add_games_description">Selecione sua pasta de Jogos</string>
|
<string name="add_games_description">Selecione sua pasta de jogos</string>
|
||||||
<string name="step_complete">Concluído!</string>
|
<string name="step_complete">Concluído!</string>
|
||||||
<string name="bluetooth_permissions_granted">Permissões Bluetooth concedidas.</string>
|
<string name="bluetooth_permissions_granted">Permissões do Bluetooth concedidas.</string>
|
||||||
<string name="bluetooth_permissions_denied">Permissões do Bluetooth foram negadas. O suporte a controladores pode ser limitado.</string>
|
<string name="bluetooth_permissions_denied">Permissões do Bluetooth foram negadas. O suporte a controles pode ser limitado.</string>
|
||||||
|
|
||||||
<!-- Home strings -->
|
<!-- Home strings -->
|
||||||
|
|
||||||
|
@ -264,57 +284,57 @@
|
||||||
<string name="view_grid">Grade</string>
|
<string name="view_grid">Grade</string>
|
||||||
<string name="view_grid_compact">Grade Compacta</string>
|
<string name="view_grid_compact">Grade Compacta</string>
|
||||||
<string name="view_carousel">Carrossel</string>
|
<string name="view_carousel">Carrossel</string>
|
||||||
<string name="game_image_desc">Captura de tela salva em %1$s</string>
|
<string name="game_image_desc">Captura de tela para %1$s</string>
|
||||||
<string name="folder">Pasta</string>
|
<string name="folder">Pasta</string>
|
||||||
<string name="pre_alpha_warning_title">Software Pré-Alpha</string>
|
<string name="pre_alpha_warning_title">Versão Pre-Alpha</string>
|
||||||
<string name="pre_alpha_warning_description">AVISO: Esta versão não deve ser compartilhada. Software em estágio pré-alpha pode conter bugs e recursos incompletos. \nSe você obteve acesso não autorizado a esta versão, é recomendado desinstalá-la imediatamente.</string>
|
<string name="pre_alpha_warning_description">AVISO: Este software está em estágio pré-alpha e pode apresentar erros e funcionalidades incompletas.</string>
|
||||||
<string name="dont_show_again">Não Mostrar Novamente</string>
|
<string name="dont_show_again">Não Mostrar Novamente</string>
|
||||||
<string name="pre_alpha_warning">SOFTWARE PRÉ-ALPHA; NÃO PARA USO PÚBLICO</string>
|
<string name="pre_alpha_warning">VERSÃO PRE-ALPHA</string>
|
||||||
<string name="add_directory_success">Pasta do jogo adicionada com sucesso</string>
|
<string name="add_directory_success">Nova pasta de jogos adicionada com sucesso</string>
|
||||||
<string name="home_games">Jogos</string>
|
<string name="home_games">Jogos</string>
|
||||||
<string name="home_search">Pesquisar</string>
|
<string name="home_search">Pesquisar</string>
|
||||||
<string name="home_settings">Configurações</string>
|
<string name="home_settings">Configurações</string>
|
||||||
<string name="empty_gamelist">Não foram encontrados jogos ou a pasta de Jogos ainda não foi definida. </string>
|
<string name="empty_gamelist">Nenhum jogo foi encontrado ou nenhuma pasta de jogos foi definida.</string>
|
||||||
<string name="search_and_filter_games">Procura e filtra jogos</string>
|
<string name="search_and_filter_games">Procura e filtra jogos</string>
|
||||||
<string name="select_games_folder">Seleciona a pasta de jogos</string>
|
<string name="select_games_folder">Selecionar a pasta de jogos</string>
|
||||||
<string name="manage_game_folders">Gerenciar pastas de jogos</string>
|
<string name="manage_game_folders">Gerenciar pastas de jogos</string>
|
||||||
<string name="select_games_folder_description">Permite que o Eden preencha a lista de jogos</string>
|
<string name="select_games_folder_description">Permite ao Eden preencher a lista de jogos</string>
|
||||||
<string name="add_games_warning">Ignorar a seleção da pasta de jogos?</string>
|
<string name="add_games_warning">Pular a seleção da pasta de jogos\?</string>
|
||||||
<string name="add_games_warning_description">Os jogos não serão exibidos na lista de jogos se uma pasta não estiver selecionada.</string>
|
<string name="add_games_warning_description">Os jogos não serão exibidos na lista de jogos se nenhuma pasta for selecionada.</string>
|
||||||
<string name="add_games_warning_help">https://yuzu-mirror.github.io/help/quickstart/#dumping-games</string>
|
<string name="add_games_warning_help">https://yuzu-mirror.github.io/help/quickstart/#dumping-games</string>
|
||||||
<string name="home_search_games">Procurar jogos</string>
|
<string name="home_search_games">Procurar jogos</string>
|
||||||
<string name="search_settings">Procurar nas configurações</string>
|
<string name="search_settings">Procurar nas configurações</string>
|
||||||
<string name="games_dir_selected">Pasta de jogos selecionada</string>
|
<string name="games_dir_selected">Pasta de jogos selecionada</string>
|
||||||
<string name="install_prod_keys">Instalar prod.keys</string>
|
<string name="install_prod_keys">Instalar prod.keys</string>
|
||||||
<string name="install_prod_keys_description">Necessárias para desencriptar jogos comerciais</string>
|
<string name="install_prod_keys_description">Necessário para descriptografar jogos comerciais</string>
|
||||||
<string name="install_prod_keys_warning">Ignorar a adição de chaves?</string>
|
<string name="install_prod_keys_warning">Continuar sem adicionar as keys\?</string>
|
||||||
<string name="install_prod_keys_warning_description">São necessárias chaves válidas para emular jogos comerciais. Somente aplicativos homebrew funcionarão se você continuar.</string>
|
<string name="install_prod_keys_warning_description">Keys válidas são necessárias para emular jogos comerciais. Apenas aplicativos homebrew funcionarão se você continuar.</string>
|
||||||
<string name="install_prod_keys_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
<string name="install_prod_keys_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
||||||
<string name="install_firmware_warning">Pular a adição do firmware?</string>
|
<string name="install_firmware_warning">Pular instalação do firmware\?</string>
|
||||||
<string name="install_firmware_warning_description">Muitos jogos requerem acesso ao firmware para funcionar corretamente.</string>
|
<string name="install_firmware_warning_description">Muitos jogos precisam do firmware para funcionar corretamente</string>
|
||||||
<string name="install_firmware_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
<string name="install_firmware_warning_help">https://yuzu-mirror.github.io/help/quickstart/#guide-introduction</string>
|
||||||
<string name="notifications">Notificações</string>
|
<string name="notifications">Notificações</string>
|
||||||
<string name="notifications_description">Conceda a permissão de notificação com o botão abaixo.</string>
|
<string name="notifications_description">Conceda a permissão de notificação usando o botão abaixo.</string>
|
||||||
<string name="give_permission">Conceder permissão</string>
|
<string name="give_permission">Conceder permissão</string>
|
||||||
<string name="notification_warning">Ignorar a concessão da permissão de notificação?</string>
|
<string name="notification_warning">Ignorar a permissão de notificação\?</string>
|
||||||
<string name="notification_warning_description">O Eden não irá te notificar de informações importantes. </string>
|
<string name="notification_warning_description">O Eden não será capaz de notificá-lo sobre informações importantes.</string>
|
||||||
<string name="permission_denied">Permissão negada</string>
|
<string name="permission_denied">Permissão negada</string>
|
||||||
<string name="permission_denied_description">Você negou essa permissão muitas vezes e agora precisa concedê-la manualmente nas configurações do sistema.</string>
|
<string name="permission_denied_description">Como você negou esta permissão várias vezes, agora precisa ativá-la manualmente nas configurações do sistema.</string>
|
||||||
<string name="about">Sobre</string>
|
<string name="about">Sobre</string>
|
||||||
<string name="about_description">Versão da compilação, créditos e mais</string>
|
<string name="about_description">Versão da compilação, créditos e mais</string>
|
||||||
<string name="warning_help">Ajuda</string>
|
<string name="warning_help">Ajuda</string>
|
||||||
<string name="warning">Aviso</string>
|
<string name="warning">Aviso</string>
|
||||||
<string name="warning_skip">Ignorar</string>
|
<string name="warning_skip">Ignorar</string>
|
||||||
<string name="warning_cancel">Cancelar</string>
|
<string name="warning_cancel">Cancelar</string>
|
||||||
<string name="install_amiibo_keys">Instalar chaves Amiibo</string>
|
<string name="install_amiibo_keys">Instalar Amiibo keys</string>
|
||||||
<string name="install_amiibo_keys_description">Necessárias para usar Amiibos em um jogo</string>
|
<string name="install_amiibo_keys_description">Necessárias para usar Amiibo em um jogo</string>
|
||||||
<string name="install_amiibo_keys_failure_extension_description">Verifique se seu arquivo de chaves possui a extensão .bin e tente novamente.</string>
|
<string name="install_amiibo_keys_failure_extension_description">Verifique se seu arquivo de keys possui a extensão .bin e tente novamente.</string>
|
||||||
<string name="dumping_keys_quickstart_link">https://yuzu-mirror.github.io/help/quickstart/#dumping-decryption-keys</string>
|
<string name="dumping_keys_quickstart_link">https://yuzu-mirror.github.io/help/quickstart/#dumping-decryption-keys</string>
|
||||||
<string name="gpu_driver_fetcher">Obtentor de drivers GPU</string>
|
<string name="gpu_driver_fetcher">Assistente de Atualização de Drivers da GPU</string>
|
||||||
<string name="gpu_driver_manager">Gerenciador de driver de GPU</string>
|
<string name="gpu_driver_manager">Gerenciador de Driver da GPU</string>
|
||||||
<string name="install_gpu_driver">Instalar driver para GPU</string>
|
<string name="install_gpu_driver">Instalar driver da GPU</string>
|
||||||
<string name="install_gpu_driver_description">Instale drivers alternativos para desempenho ou precisão potencialmente melhores</string>
|
<string name="install_gpu_driver_description">Instale drivers alternativos que podem ajudar no desempenho ou melhorar a precisão</string>
|
||||||
<string name="advanced_settings">Configurações avançadas</string>
|
<string name="advanced_settings">Configurações Avançadas</string>
|
||||||
<string name="advanced_settings_game">Configurações avançadas: %1$s</string>
|
<string name="advanced_settings_game">Configurações avançadas: %1$s</string>
|
||||||
<string name="settings_description">Configure opções do emulador</string>
|
<string name="settings_description">Configure opções do emulador</string>
|
||||||
<string name="search_recently_played">Jogado recentemente</string>
|
<string name="search_recently_played">Jogado recentemente</string>
|
||||||
|
@ -326,14 +346,14 @@
|
||||||
<string name="theme_and_color_description">Alterar a aparência do aplicativo</string>
|
<string name="theme_and_color_description">Alterar a aparência do aplicativo</string>
|
||||||
<string name="no_file_manager">Nenhum gerenciador de arquivos encontrado</string>
|
<string name="no_file_manager">Nenhum gerenciador de arquivos encontrado</string>
|
||||||
<string name="notification_no_directory_link">Não foi possível abrir a pasta do Eden</string>
|
<string name="notification_no_directory_link">Não foi possível abrir a pasta do Eden</string>
|
||||||
<string name="notification_no_directory_link_description">Por favor localize manualmente a pasta do usuário, com o painel lateral do gerenciador de arquivos.</string>
|
<string name="notification_no_directory_link_description">Localize manualmente a pasta do usuário usando o gerenciador de arquivos.</string>
|
||||||
<string name="manage_save_data">Gerenciar os dados salvos dos jogos</string>
|
<string name="manage_save_data">Gerenciar dados salvos dos jogos</string>
|
||||||
<string name="manage_save_data_description">Dados salvos encontrados. Por favor selecione uma opção abaixo.</string>
|
<string name="manage_save_data_description">Dados salvos encontrados. Por favor, escolha uma opção abaixo.</string>
|
||||||
<string name="import_save_warning">Importar dados salvos</string>
|
<string name="import_save_warning">Importar dados salvos</string>
|
||||||
<string name="import_save_warning_description">Isso irá substituir seus dados salvos com o arquivo selecionado. Você tem certeza que quer continuar?</string>
|
<string name="import_save_warning_description">Isso irá substituir seus dados salvos pelo arquivo selecionado. Você tem certeza que quer continuar\?</string>
|
||||||
<string name="import_export_saves_description">Importa ou exporta arquivos de dados salvos</string>
|
<string name="import_export_saves_description">Importar ou exportar os dados salvos</string>
|
||||||
<string name="save_files_importing">Importando dados salvos...</string>
|
<string name="save_files_importing">Importando dados salvos...</string>
|
||||||
<string name="save_files_exporting">Exportando arquivos de dados salvos...</string>
|
<string name="save_files_exporting">Exportando dados salvos...</string>
|
||||||
<string name="save_file_imported_success">Importado com sucesso</string>
|
<string name="save_file_imported_success">Importado com sucesso</string>
|
||||||
<string name="save_file_invalid_zip_structure">Estrutura de diretório de dados salvos inválida</string>
|
<string name="save_file_invalid_zip_structure">Estrutura de diretório de dados salvos inválida</string>
|
||||||
<string name="save_file_invalid_zip_structure_description">O nome da primeira subpasta deve ser a ID do jogo.</string>
|
<string name="save_file_invalid_zip_structure_description">O nome da primeira subpasta deve ser a ID do jogo.</string>
|
||||||
|
@ -470,10 +490,10 @@
|
||||||
<string name="generate">Gerar</string>
|
<string name="generate">Gerar</string>
|
||||||
|
|
||||||
<!-- Network settings strings -->
|
<!-- Network settings strings -->
|
||||||
<string name="web_token">Token web</string>
|
<string name="web_token">Web Token</string>
|
||||||
<string name="web_token_description">Token web usado para criar salas públicas. É uma string de 48 caracteres contendo apenas letras minúsculas a-z.</string>
|
<string name="web_token_description">Web Token usado para criar Salas Públicas. É uma sequência de 48 caracteres contendo apenas letras minúsculas de a-z.</string>
|
||||||
<string name="web_username">Nome de usuário web</string>
|
<string name="web_username">Nome de usuário web</string>
|
||||||
<string name="web_username_description">Nome de usuário exibido em salas multiplayer. Deve ter 4-20 caracteres (apenas alfanuméricos, hífens, pontos, sublinhados e espaços).</string>
|
<string name="web_username_description">Nome de usuário a ser exibido nas Salas Públicas. Deve ter entre 4 e 20 caracteres, contendo apenas letras, números, traços, pontos, sublinhados e espaços.</string>
|
||||||
<string name="network">Rede</string>
|
<string name="network">Rede</string>
|
||||||
|
|
||||||
<!-- Graphics settings strings -->
|
<!-- Graphics settings strings -->
|
||||||
|
@ -617,8 +637,8 @@ uma tentativa de mapeamento automático</string>
|
||||||
<string name="map_control">Mapear botão %1$s</string>
|
<string name="map_control">Mapear botão %1$s</string>
|
||||||
<string name="failed_to_load_profile">Falha ao carregar perfil</string>
|
<string name="failed_to_load_profile">Falha ao carregar perfil</string>
|
||||||
<string name="failed_to_save_profile">Falha ao salvar perfil</string>
|
<string name="failed_to_save_profile">Falha ao salvar perfil</string>
|
||||||
<string name="reset_mapping">Redefinir mapeamento</string>
|
<string name="reset_mapping">Redefinir mapeamentos</string>
|
||||||
<string name="reset_mapping_description">Você tem certeza que quer redefinir todos os mapeamentos deste controle para os padrões? Isso não pode ser desfeito.</string>
|
<string name="reset_mapping_description">Tem certeza de que deseja redefinir todos os mapeamentos deste controle para os padrões\? Esta ação não pode ser desfeita.</string>
|
||||||
|
|
||||||
<!-- Miscellaneous -->
|
<!-- Miscellaneous -->
|
||||||
<string name="slider_default">Padrão</string>
|
<string name="slider_default">Padrão</string>
|
||||||
|
@ -628,11 +648,11 @@ uma tentativa de mapeamento automático</string>
|
||||||
<string name="unimplemented_menu">Menu não implementado</string>
|
<string name="unimplemented_menu">Menu não implementado</string>
|
||||||
<string name="loading">Carregando...</string>
|
<string name="loading">Carregando...</string>
|
||||||
<string name="shutting_down">Encerrando...</string>
|
<string name="shutting_down">Encerrando...</string>
|
||||||
<string name="reset_setting_confirmation">Deseja reverter esta configuração para os valores padrões?</string>
|
<string name="reset_setting_confirmation">Deseja redefinir esta configuração para o valor padrão\?</string>
|
||||||
<string name="reset_to_default">Redefinir para o padrão</string>
|
<string name="reset_to_default">Redefinir para o padrão</string>
|
||||||
<string name="reset_to_default_description">Redefine todas as configurações avançadas</string>
|
<string name="reset_to_default_description">Redefinir todas as configurações avançadas</string>
|
||||||
<string name="reset_all_settings">Redefinir todas as configurações?</string>
|
<string name="reset_all_settings">Redefinir todas as configurações?</string>
|
||||||
<string name="reset_all_settings_description">Todas as configurações avançadas serão redefinidas para o padrão. Isto não pode ser desfeito.</string>
|
<string name="reset_all_settings_description">Todas as configurações avançadas serão redefinidas para a configuração padrão. Isto não pode ser desfeito.</string>
|
||||||
<string name="settings_reset">Configurações redefinidas</string>
|
<string name="settings_reset">Configurações redefinidas</string>
|
||||||
<string name="close">Fechar</string>
|
<string name="close">Fechar</string>
|
||||||
<string name="learn_more">Saiba mais</string>
|
<string name="learn_more">Saiba mais</string>
|
||||||
|
@ -834,7 +854,7 @@ uma tentativa de mapeamento automático</string>
|
||||||
<string name="emulation_control_adjust">Ajustar overlay</string>
|
<string name="emulation_control_adjust">Ajustar overlay</string>
|
||||||
<string name="emulation_control_scale">Escala</string>
|
<string name="emulation_control_scale">Escala</string>
|
||||||
<string name="emulation_control_opacity">Opacidade</string>
|
<string name="emulation_control_opacity">Opacidade</string>
|
||||||
<string name="emulation_touch_overlay_reset">Redefinir overlay</string>
|
<string name="emulation_touch_overlay_reset">Redefinir sobreposição</string>
|
||||||
<string name="emulation_touch_overlay_edit">Editar overlay</string>
|
<string name="emulation_touch_overlay_edit">Editar overlay</string>
|
||||||
<string name="emulation_pause">Pausar emulação</string>
|
<string name="emulation_pause">Pausar emulação</string>
|
||||||
<string name="emulation_unpause">Retomar a emulação</string>
|
<string name="emulation_unpause">Retomar a emulação</string>
|
||||||
|
@ -842,6 +862,8 @@ uma tentativa de mapeamento automático</string>
|
||||||
<string name="touchscreen">Tela de toque</string>
|
<string name="touchscreen">Tela de toque</string>
|
||||||
<string name="lock_drawer">Bloquear este menu</string>
|
<string name="lock_drawer">Bloquear este menu</string>
|
||||||
<string name="unlock_drawer">Desbloquear este menu</string>
|
<string name="unlock_drawer">Desbloquear este menu</string>
|
||||||
|
<string name="reset">Redefinir</string>
|
||||||
|
|
||||||
<string name="load_settings">Carregando configurações...</string>
|
<string name="load_settings">Carregando configurações...</string>
|
||||||
|
|
||||||
<!-- Software keyboard -->
|
<!-- Software keyboard -->
|
||||||
|
@ -851,9 +873,12 @@ uma tentativa de mapeamento automático</string>
|
||||||
<string name="abort_button">Abortar</string>
|
<string name="abort_button">Abortar</string>
|
||||||
<string name="continue_button">Continuar</string>
|
<string name="continue_button">Continuar</string>
|
||||||
<string name="system_archive_not_found">Arquivo do Sistema Não Encontrado</string>
|
<string name="system_archive_not_found">Arquivo do Sistema Não Encontrado</string>
|
||||||
|
<string name="system_archive_not_found_message">%s está faltando. Por favor, faça o dump dos arquivos do sistema.\nContinuar a emulação pode causar falhas.</string>
|
||||||
<string name="system_archive_general">Um arquivo do sistema</string>
|
<string name="system_archive_general">Um arquivo do sistema</string>
|
||||||
<string name="save_load_error">Erro de Salvamento/Carregamento</string>
|
<string name="save_load_error">Erro de Salvamento/Carregamento</string>
|
||||||
<string name="fatal_error">Erro fatal</string>
|
<string name="fatal_error">Erro fatal</string>
|
||||||
|
<string name="fatal_error_message">Erro fatal detectado. Confira o log para mais informações.\nProsseguir com a emulação pode causar falhas.</string>
|
||||||
|
<string name="performance_warning">Desativar esta configuração reduzirá significativamente o desempenho. É recomendado mantê-la ativada.</string>
|
||||||
<string name="device_memory_inadequate">Memória RAM do dispositivo: %1$s\nRecomendada: %2$s</string>
|
<string name="device_memory_inadequate">Memória RAM do dispositivo: %1$s\nRecomendada: %2$s</string>
|
||||||
<string name="memory_formatted">%1$s %2$s</string>
|
<string name="memory_formatted">%1$s %2$s</string>
|
||||||
<string name="no_game_present">Nenhum jogo inicializável presente!</string>
|
<string name="no_game_present">Nenhum jogo inicializável presente!</string>
|
||||||
|
@ -903,11 +928,16 @@ uma tentativa de mapeamento automático</string>
|
||||||
<!-- Renderer Accuracy -->
|
<!-- Renderer Accuracy -->
|
||||||
<string name="renderer_accuracy_normal">Normal</string>
|
<string name="renderer_accuracy_normal">Normal</string>
|
||||||
<string name="renderer_accuracy_high">Alta</string>
|
<string name="renderer_accuracy_high">Alta</string>
|
||||||
|
<string name="renderer_accuracy_extreme">Extrema</string>
|
||||||
|
|
||||||
<!-- DMA Accuracy -->
|
<!-- DMA Accuracy -->
|
||||||
<string name="dma_accuracy_default">Padrão</string>
|
<string name="dma_accuracy_default">Padrão</string>
|
||||||
|
<string name="dma_accuracy_unsafe">Insegura</string>
|
||||||
|
<string name="dma_accuracy_safe">Segura</string>
|
||||||
|
|
||||||
<!-- ASTC Decoding Method -->
|
<!-- ASTC Decoding Method -->
|
||||||
<string name="accelerate_astc">Método de decodificação ASTC</string>
|
<string name="accelerate_astc">Método de decodificação ASTC</string>
|
||||||
<string name="accelerate_astc_description">Escolha como as texturas compactadas em ASTC são decodificadas para renderização: CPU (lento, seguro), GPU (rápido, recomendado) ou CPU Async (sem engasgos, pode causar problemas)</string>
|
<string name="accelerate_astc_description">Escolha como as texturas comprimidas em ASTC são decodificadas para renderização: CPU (lenta, segura), GPU (rápida, recomendada) ou CPU Assíncrona (sem travamentos, mas pode causar problemas).</string>
|
||||||
|
|
||||||
<!-- ASTC Decoding Method Choices -->
|
<!-- ASTC Decoding Method Choices -->
|
||||||
<string name="accelerate_astc_cpu">CPU</string>
|
<string name="accelerate_astc_cpu">CPU</string>
|
||||||
|
@ -949,11 +979,12 @@ uma tentativa de mapeamento automático</string>
|
||||||
<string name="scaling_filter_nearest_neighbor">Vizinho mais próximo</string>
|
<string name="scaling_filter_nearest_neighbor">Vizinho mais próximo</string>
|
||||||
<string name="scaling_filter_bilinear">Bilinear</string>
|
<string name="scaling_filter_bilinear">Bilinear</string>
|
||||||
<string name="scaling_filter_bicubic">Bicúbico</string>
|
<string name="scaling_filter_bicubic">Bicúbico</string>
|
||||||
|
<string name="scaling_filter_spline1">Spline-1</string>
|
||||||
<string name="scaling_filter_gaussian">Gaussiano</string>
|
<string name="scaling_filter_gaussian">Gaussiano</string>
|
||||||
|
<string name="scaling_filter_lanczos">Lanczos</string>
|
||||||
<string name="scaling_filter_scale_force">ScaleForce</string>
|
<string name="scaling_filter_scale_force">ScaleForce</string>
|
||||||
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
|
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
|
||||||
<string name="scaling_filter_area">Área</string>
|
<string name="scaling_filter_area">Área</string>
|
||||||
|
|
||||||
<!-- Anti-Aliasing -->
|
<!-- Anti-Aliasing -->
|
||||||
<string name="anti_aliasing_none">Nenhum</string>
|
<string name="anti_aliasing_none">Nenhum</string>
|
||||||
<string name="anti_aliasing_fxaa">FXAA</string>
|
<string name="anti_aliasing_fxaa">FXAA</string>
|
||||||
|
@ -981,7 +1012,7 @@ uma tentativa de mapeamento automático</string>
|
||||||
|
|
||||||
<!-- CPU Accuracy -->
|
<!-- CPU Accuracy -->
|
||||||
<string name="cpu_accuracy_accurate">Precisa</string>
|
<string name="cpu_accuracy_accurate">Precisa</string>
|
||||||
<string name="cpu_accuracy_unsafe">Não segura</string>
|
<string name="cpu_accuracy_unsafe">Inseguro</string>
|
||||||
<string name="cpu_accuracy_paranoid">Paranoica</string>
|
<string name="cpu_accuracy_paranoid">Paranoica</string>
|
||||||
|
|
||||||
<!-- Gamepad Buttons -->
|
<!-- Gamepad Buttons -->
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">A intensidade da passagem de sombreamento de amostra. Valores mais elevados melhoram a qualidade, mas também reduzem o desempenho numa maior medida.</string>
|
<string name="sample_shading_fraction_description">A intensidade da passagem de sombreamento de amostra. Valores mais elevados melhoram a qualidade, mas também reduzem o desempenho numa maior medida.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderizador</string>
|
<string name="veil_renderer">Renderizador</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Um método de gestão automática de recursos no Vulkan que garante a libertação adequada de recursos quando já não são necessários, mas pode causar falhas em jogos empacotados.</string>
|
|
||||||
<string name="frame_interpolation">Sincronização avançada de frames</string>
|
<string name="frame_interpolation">Sincronização avançada de frames</string>
|
||||||
<string name="frame_interpolation_description">Garante uma entrega suave e consistente de frames sincronizando o seu tempo, reduzindo engasgadelas e animações irregulares. Ideal para jogos que experienciam instabilidade no tempo de frames ou micro-engasgadelas durante o jogo.</string>
|
<string name="frame_interpolation_description">Garante uma entrega suave e consistente de frames sincronizando o seu tempo, reduzindo engasgadelas e animações irregulares. Ideal para jogos que experienciam instabilidade no tempo de frames ou micro-engasgadelas durante o jogo.</string>
|
||||||
<string name="renderer_early_release_fences">Libertar barreiras antecipadamente</string>
|
<string name="renderer_early_release_fences">Libertar barreiras antecipadamente</string>
|
||||||
|
|
|
@ -5,9 +5,31 @@
|
||||||
<string name="notice_notification_channel_name">Уведомления и ошибки</string>
|
<string name="notice_notification_channel_name">Уведомления и ошибки</string>
|
||||||
<string name="notice_notification_channel_description">Показывает уведомления, когда что-то пошло не так</string>
|
<string name="notice_notification_channel_description">Показывает уведомления, когда что-то пошло не так</string>
|
||||||
<string name="notification_permission_not_granted">Вы не предоставили разрешение на уведомления!</string>
|
<string name="notification_permission_not_granted">Вы не предоставили разрешение на уведомления!</string>
|
||||||
|
<string name="app_notification_channel_description">Уведомления эмулятора switch Eden</string>
|
||||||
|
<string name="app_notification_running">Eden работает</string>
|
||||||
|
<string name="seconds">Секунды</string>
|
||||||
|
|
||||||
|
<!-- Spinbox strings -->
|
||||||
|
<string name="increment">Прирост</string>
|
||||||
|
<string name="decrement">Уменьшение</string>
|
||||||
|
<string name="value">Величина</string>
|
||||||
|
<string name="value_too_low">Величина должна быть не менее %1$d</string>
|
||||||
|
<string name="value_too_high">Величина должна быть не более %1$d</string>
|
||||||
|
<string name="invalid_value">Неверная величина</string>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Input Overlay -->
|
||||||
|
<string name="overlay_auto_hide">Авто-скрытие оверлея</string>
|
||||||
|
<string name="overlay_auto_hide_description">Автоматически скрывает сенсорное управление после определенного времени неактивности.</string>
|
||||||
|
<string name="enable_input_overlay_auto_hide">Включить авто-скрытие оверлея</string>
|
||||||
|
|
||||||
|
<string name="input_overlay_options">Оверлей ввода</string>
|
||||||
|
<string name="input_overlay_options_description">Настройка экранного управления</string>
|
||||||
|
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Улучшенный)</string>
|
<string name="enhanced_fps_suffix">(Улучшенный)</string>
|
||||||
<string name="process_ram">RAM процесса: %1$d МБ</string>
|
<string name="process_ram">ОЗУ процесса: %1$d МБ</string>
|
||||||
<string name="shaders_prefix">Компиляция</string>
|
<string name="shaders_prefix">Компиляция</string>
|
||||||
<string name="shaders_suffix">Шейдер(ов)</string>
|
<string name="shaders_suffix">Шейдер(ов)</string>
|
||||||
<string name="charging">(Заряжается)</string>
|
<string name="charging">(Заряжается)</string>
|
||||||
|
@ -82,8 +104,6 @@
|
||||||
<string name="sample_shading_fraction_description">Интенсивность прохода сэмплового затенения. Более высокие значения улучшают качество, но и сильнее снижают производительность.</string>
|
<string name="sample_shading_fraction_description">Интенсивность прохода сэмплового затенения. Более высокие значения улучшают качество, но и сильнее снижают производительность.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Рендеринг</string>
|
<string name="veil_renderer">Рендеринг</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Метод автоматического управления ресурсами в Vulkan, который обеспечивает правильное освобождение ресурсов при их ненадобности, но может вызывать сбои в бандл-играх.</string>
|
|
||||||
<string name="frame_interpolation">Улучшенная синхронизация кадров</string>
|
<string name="frame_interpolation">Улучшенная синхронизация кадров</string>
|
||||||
<string name="frame_interpolation_description">Обеспечивает плавную и стабильную подачу кадров за счет синхронизации их времени, уменьшая подтормаживания и неравномерную анимацию. Идеально для игр с нестабильным временем кадров или микро-подтормаживаниями во время игры.</string>
|
<string name="frame_interpolation_description">Обеспечивает плавную и стабильную подачу кадров за счет синхронизации их времени, уменьшая подтормаживания и неравномерную анимацию. Идеально для игр с нестабильным временем кадров или микро-подтормаживаниями во время игры.</string>
|
||||||
<string name="renderer_early_release_fences">Ранний релиз ограждений</string>
|
<string name="renderer_early_release_fences">Ранний релиз ограждений</string>
|
||||||
|
@ -843,6 +863,8 @@
|
||||||
<string name="touchscreen">Сенсорный экран</string>
|
<string name="touchscreen">Сенсорный экран</string>
|
||||||
<string name="lock_drawer">Заморозить док</string>
|
<string name="lock_drawer">Заморозить док</string>
|
||||||
<string name="unlock_drawer">Разморозить док</string>
|
<string name="unlock_drawer">Разморозить док</string>
|
||||||
|
<string name="reset">Сброс</string>
|
||||||
|
|
||||||
<string name="load_settings">Загрузка настроек...</string>
|
<string name="load_settings">Загрузка настроек...</string>
|
||||||
|
|
||||||
<!-- Software keyboard -->
|
<!-- Software keyboard -->
|
||||||
|
@ -852,9 +874,12 @@
|
||||||
<string name="abort_button">Прервать</string>
|
<string name="abort_button">Прервать</string>
|
||||||
<string name="continue_button">Продолжить</string>
|
<string name="continue_button">Продолжить</string>
|
||||||
<string name="system_archive_not_found">Системный архив не найден</string>
|
<string name="system_archive_not_found">Системный архив не найден</string>
|
||||||
|
<string name="system_archive_not_found_message">%s отсутствует. Пожалуйста, сдампите ваши системные архивы.\nПродолжение эмуляции может привести к сбоям и ошибкам.</string>
|
||||||
<string name="system_archive_general">Системный архив</string>
|
<string name="system_archive_general">Системный архив</string>
|
||||||
<string name="save_load_error">Ошибка сохранения/загрузки</string>
|
<string name="save_load_error">Ошибка сохранения/загрузки</string>
|
||||||
<string name="fatal_error">Фатальная ошибка</string>
|
<string name="fatal_error">Фатальная ошибка</string>
|
||||||
|
<string name="fatal_error_message">Произошла фатальная ошибка. Проверьте логи для получения подробной информации.\nПродолжение может вызвать сбои и ошибки. </string>
|
||||||
|
<string name="performance_warning">Отключение этого параметра будет значительно снижать производительность. Рекомендуется оставить этот параметр включенным.</string>
|
||||||
<string name="device_memory_inadequate">Оперативной памяти на устройстве: %1$s\nРекоминдовано: %2$s</string>
|
<string name="device_memory_inadequate">Оперативной памяти на устройстве: %1$s\nРекоминдовано: %2$s</string>
|
||||||
<string name="memory_formatted">%1$s%2$s</string>
|
<string name="memory_formatted">%1$s%2$s</string>
|
||||||
<string name="no_game_present">Загрузочной игры нету!</string>
|
<string name="no_game_present">Загрузочной игры нету!</string>
|
||||||
|
@ -904,8 +929,13 @@
|
||||||
<!-- Renderer Accuracy -->
|
<!-- Renderer Accuracy -->
|
||||||
<string name="renderer_accuracy_normal">Нормальная</string>
|
<string name="renderer_accuracy_normal">Нормальная</string>
|
||||||
<string name="renderer_accuracy_high">Высокая</string>
|
<string name="renderer_accuracy_high">Высокая</string>
|
||||||
|
<string name="renderer_accuracy_extreme">Экстрим</string>
|
||||||
|
|
||||||
<!-- DMA Accuracy -->
|
<!-- DMA Accuracy -->
|
||||||
<string name="dma_accuracy_default">По умолчанию</string>
|
<string name="dma_accuracy_default">По умолчанию</string>
|
||||||
|
<string name="dma_accuracy_unsafe">Небезопасно</string>
|
||||||
|
<string name="dma_accuracy_safe">Безопасный</string>
|
||||||
|
|
||||||
<!-- ASTC Decoding Method -->
|
<!-- ASTC Decoding Method -->
|
||||||
<string name="accelerate_astc">Метод декодирования ASTC</string>
|
<string name="accelerate_astc">Метод декодирования ASTC</string>
|
||||||
<string name="accelerate_astc_description">Выберите способ декодирования сжатых текстур ASTC для рендеринга: ЦП (медленно, безопасно), ГПУ (быстро, рекомендуется) или ЦП асинхронно (без заиканий, могут возникнуть проблемы)</string>
|
<string name="accelerate_astc_description">Выберите способ декодирования сжатых текстур ASTC для рендеринга: ЦП (медленно, безопасно), ГПУ (быстро, рекомендуется) или ЦП асинхронно (без заиканий, могут возникнуть проблемы)</string>
|
||||||
|
@ -950,11 +980,12 @@
|
||||||
<string name="scaling_filter_nearest_neighbor">Ближайший сосед</string>
|
<string name="scaling_filter_nearest_neighbor">Ближайший сосед</string>
|
||||||
<string name="scaling_filter_bilinear">Билинейный</string>
|
<string name="scaling_filter_bilinear">Билинейный</string>
|
||||||
<string name="scaling_filter_bicubic">Бикубический</string>
|
<string name="scaling_filter_bicubic">Бикубический</string>
|
||||||
|
<string name="scaling_filter_spline1">Spline-1</string>
|
||||||
<string name="scaling_filter_gaussian">Гаусс</string>
|
<string name="scaling_filter_gaussian">Гаусс</string>
|
||||||
|
<string name="scaling_filter_lanczos">Lanczos</string>
|
||||||
<string name="scaling_filter_scale_force">ScaleForce</string>
|
<string name="scaling_filter_scale_force">ScaleForce</string>
|
||||||
<string name="scaling_filter_fsr">AMD FidelityFX™️ Super Resolution</string>
|
<string name="scaling_filter_fsr">AMD FidelityFX™️ Super Resolution</string>
|
||||||
<string name="scaling_filter_area">Зона</string>
|
<string name="scaling_filter_area">Зона</string>
|
||||||
|
|
||||||
<!-- Anti-Aliasing -->
|
<!-- Anti-Aliasing -->
|
||||||
<string name="anti_aliasing_none">Выкл.</string>
|
<string name="anti_aliasing_none">Выкл.</string>
|
||||||
<string name="anti_aliasing_fxaa">FXAA</string>
|
<string name="anti_aliasing_fxaa">FXAA</string>
|
||||||
|
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="sample_shading_fraction_description">Интензитет проласка сенчења узорка. Веће вредности побољшавају квалитет више, али такође више смањују перформансе.</string>
|
<string name="sample_shading_fraction_description">Интензитет проласка сенчења узорка. Веће вредности побољшавају квалитет више, али такође више смањују перформансе.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Рендерер</string>
|
<string name="veil_renderer">Рендерер</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Метод аутоматског управљања ресурсима у Vulkan-у који осигурава правилно ослобађање ресурса када више нису потребни, али може изазвати падове у пакованим играма.</string>
|
|
||||||
<string name="frame_interpolation">Побољшани оквирни пејсинг</string>
|
<string name="frame_interpolation">Побољшани оквирни пејсинг</string>
|
||||||
<string name="frame_interpolation_description">Осигурава глатку и доследан испоруку оквира синхронизацијом времена између оквира, смањење муцања и неуједначене анимације. Идеално за игре које доживљавају временски оквир нестабилност или микро-штитнике током играња.</string>
|
<string name="frame_interpolation_description">Осигурава глатку и доследан испоруку оквира синхронизацијом времена између оквира, смањење муцања и неуједначене анимације. Идеално за игре које доживљавају временски оквир нестабилност или микро-штитнике током играња.</string>
|
||||||
<string name="renderer_early_release_fences">Ranije oslobađanje ograda</string>
|
<string name="renderer_early_release_fences">Ranije oslobađanje ograda</string>
|
||||||
|
|
|
@ -1,9 +1,32 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
|
||||||
|
|
||||||
|
<string name="app_disclaimer">Цей програмний засіб запускає ігри для ігрової консолі Nintendo Switch. Він не містить ігор чи ключів.<br /><br />Перш ніж почати, укажіть розташування файлу <![CDATA[<b> prod.keys </b>]]> у пам’яті вашого пристрою.<br /><br /><![CDATA[<a href=\"https://yuzu-mirror.github.io/help/quickstart\">Дізнатися більше</a>]]></string>
|
||||||
<string name="notice_notification_channel_name">Сповіщення та помилки</string>
|
<string name="notice_notification_channel_name">Сповіщення та помилки</string>
|
||||||
<string name="notice_notification_channel_description">Виводить сповіщення у разі виникнення проблем.</string>
|
<string name="notice_notification_channel_description">Виводить сповіщення у разі виникнення проблем.</string>
|
||||||
<string name="notification_permission_not_granted">Дозвіл на сповіщення не надано!</string>
|
<string name="notification_permission_not_granted">Дозвіл на сповіщення не надано!</string>
|
||||||
|
<string name="app_notification_channel_description">Сповіщення емулятора Switch Eden</string>
|
||||||
|
<string name="app_notification_running">Eden працює</string>
|
||||||
|
<string name="seconds">с</string>
|
||||||
|
|
||||||
|
<!-- Spinbox strings -->
|
||||||
|
<string name="increment">Збільшення</string>
|
||||||
|
<string name="decrement">Зменшення</string>
|
||||||
|
<string name="value">Значення</string>
|
||||||
|
<string name="value_too_low">Значення повинно бути щонайменше %1$d</string>
|
||||||
|
<string name="value_too_high">Значення повинно бути не більше %1$d</string>
|
||||||
|
<string name="invalid_value">Неправильне значення</string>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Input Overlay -->
|
||||||
|
<string name="overlay_auto_hide">Автоматично приховувати оверлей</string>
|
||||||
|
<string name="overlay_auto_hide_description">Автоматично приховувати оверлей сенсорного керування після вказаного часу неактивності.</string>
|
||||||
|
<string name="enable_input_overlay_auto_hide">Увімкнути автоматичне приховування оверлею</string>
|
||||||
|
|
||||||
|
<string name="input_overlay_options">Оверлей введення</string>
|
||||||
|
<string name="input_overlay_options_description">Налаштувати наекранне керування</string>
|
||||||
|
|
||||||
|
|
||||||
<!-- Stats Overlay settings -->
|
<!-- Stats Overlay settings -->
|
||||||
<string name="enhanced_fps_suffix">(Покращений)</string>
|
<string name="enhanced_fps_suffix">(Покращений)</string>
|
||||||
<string name="process_ram">RAM процесу: %1$d МБ</string>
|
<string name="process_ram">RAM процесу: %1$d МБ</string>
|
||||||
|
@ -71,18 +94,16 @@
|
||||||
<string name="dyna_state">Розширений динамічний стан</string>
|
<string name="dyna_state">Розширений динамічний стан</string>
|
||||||
<string name="dyna_state_description">Керує кількістю функцій, які можна використовувати в розширеному динамічному стані. Вищі значення дозволяють більше функцій і можуть підвищити продуктивність, але можуть спричинити проблеми з деякими драйверами та постачальниками. Значення за замовчуванням може відрізнятися залежно від вашої системи та апаратних можливостей. Це значення можна змінювати, док не буде досягнуто стабільності та кращої якості зображення.</string>
|
<string name="dyna_state_description">Керує кількістю функцій, які можна використовувати в розширеному динамічному стані. Вищі значення дозволяють більше функцій і можуть підвищити продуктивність, але можуть спричинити проблеми з деякими драйверами та постачальниками. Значення за замовчуванням може відрізнятися залежно від вашої системи та апаратних можливостей. Це значення можна змінювати, док не буде досягнуто стабільності та кращої якості зображення.</string>
|
||||||
<string name="disabled">Вимкнено</string>
|
<string name="disabled">Вимкнено</string>
|
||||||
<string name="provoking_vertex">Provoking Vertex</string>
|
<string name="provoking_vertex">Провокативна вершина</string>
|
||||||
<string name="provoking_vertex_description">Покращує освітлення та обробку вершин у деяких іграх. Підтримується лише GPU з Vulkan 1.0+.</string>
|
<string name="provoking_vertex_description">Покращує освітлення та обробку вершин у деяких іграх. Підтримується лише GPU з Vulkan 1.0+.</string>
|
||||||
<string name="descriptor_indexing">Індексація дескрипторів</string>
|
<string name="descriptor_indexing">Індексація дескрипторів</string>
|
||||||
<string name="descriptor_indexing_description">Покращує обробку текстур та буферів, а також шар перекладу Maxwell. Підтримується деякими GPU Vulkan 1.1 та всіма GPU Vulkan 1.2+.</string>
|
<string name="descriptor_indexing_description">Покращує обробку текстур та буферів, а також шар перекладу Maxwell. Підтримується деякими GPU Vulkan 1.1 та всіма GPU Vulkan 1.2+.</string>
|
||||||
<string name="sample_shading">Семплове затінення</string>
|
<string name="sample_shading">Шейдинг зразків</string>
|
||||||
<string name="sample_shading_description">Дозволяє шейдеру фрагментів виконуватися на кожен семпл у багатосемпловому фрагменті замість одного разу на фрагмент. Покращує якість графіки за рахунок продуктивності. Лише пристрої з Vulkan 1.1+ підтримують це розширення.</string>
|
<string name="sample_shading_description">Дозволяє шейдеру фрагментів виконуватися на кожен семпл у багатосемпловому фрагменті замість одного разу на фрагмент. Покращує якість графіки за рахунок продуктивності. Лише пристрої з Vulkan 1.1+ підтримують це розширення.</string>
|
||||||
<string name="sample_shading_fraction">Частка затінення зразка</string>
|
<string name="sample_shading_fraction">Частка затінення зразка</string>
|
||||||
<string name="sample_shading_fraction_description">Інтенсивність проходу затінення зразка. Вищі значення покращують якість, але й сильніше знижують продуктивність.</string>
|
<string name="sample_shading_fraction_description">Інтенсивність проходу затінення зразка. Вищі значення покращують якість, але й сильніше знижують продуктивність.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Рендеринг</string>
|
<string name="veil_renderer">Візуалізатор</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Метод автоматичного керування ресурсами у Vulkan, який забезпечує правильне звільнення ресурсів після завершення їх використання, проте він може спричинити збої в ігрових збірниках.</string>
|
|
||||||
<string name="frame_interpolation">Покращена синхронізація кадрів</string>
|
<string name="frame_interpolation">Покращена синхронізація кадрів</string>
|
||||||
<string name="frame_interpolation_description">Забезпечує плавну та стабільну подачу кадрів шляхом синхронізації їх часу, зменшуючи підвисання та нерівномірну анімацію. Ідеально для ігор з нестабільним часом кадрів або мікро-підвисаннями під час гри.</string>
|
<string name="frame_interpolation_description">Забезпечує плавну та стабільну подачу кадрів шляхом синхронізації їх часу, зменшуючи підвисання та нерівномірну анімацію. Ідеально для ігор з нестабільним часом кадрів або мікро-підвисаннями під час гри.</string>
|
||||||
<string name="renderer_early_release_fences">Release fences early</string>
|
<string name="renderer_early_release_fences">Release fences early</string>
|
||||||
|
@ -115,7 +136,7 @@
|
||||||
|
|
||||||
<!-- Shader Backend -->
|
<!-- Shader Backend -->
|
||||||
<string name="shader_backend">Система обробки шейдерів</string>
|
<string name="shader_backend">Система обробки шейдерів</string>
|
||||||
<string name="shader_backend_description">Спосіб компіляції шейдерів</string>
|
<string name="shader_backend_description">Виберіть, як компілювати й транслювати шейдери для ГП.</string>
|
||||||
<string name="shader_backend_glsl">GLSL</string>
|
<string name="shader_backend_glsl">GLSL</string>
|
||||||
<string name="shader_backend_glasm">GLASM</string>
|
<string name="shader_backend_glasm">GLASM</string>
|
||||||
<string name="shader_backend_spirv">Spir-V</string>
|
<string name="shader_backend_spirv">Spir-V</string>
|
||||||
|
@ -123,8 +144,8 @@
|
||||||
<!-- NVDEC Emulation -->
|
<!-- NVDEC Emulation -->
|
||||||
<string name="nvdec_emulation">Емуляція NVDEC</string>
|
<string name="nvdec_emulation">Емуляція NVDEC</string>
|
||||||
<string name="nvdec_emulation_description">Обробка відео під час катсцен</string>
|
<string name="nvdec_emulation_description">Обробка відео під час катсцен</string>
|
||||||
<string name="nvdec_emulation_cpu">CPU</string>
|
<string name="nvdec_emulation_cpu">ЦП</string>
|
||||||
<string name="nvdec_emulation_gpu">GPU</string>
|
<string name="nvdec_emulation_gpu">ГП</string>
|
||||||
<string name="nvdec_emulation_none">Вимкнено</string>
|
<string name="nvdec_emulation_none">Вимкнено</string>
|
||||||
|
|
||||||
<!-- Optimize Spir-V output -->
|
<!-- Optimize Spir-V output -->
|
||||||
|
@ -140,10 +161,10 @@
|
||||||
<string name="multiplayer_create_room">Створити</string>
|
<string name="multiplayer_create_room">Створити</string>
|
||||||
<string name="multiplayer_join_room">Приєднатися</string>
|
<string name="multiplayer_join_room">Приєднатися</string>
|
||||||
<string name="multiplayer_public_room">Публічні кімнати</string>
|
<string name="multiplayer_public_room">Публічні кімнати</string>
|
||||||
<string name="multiplayer_username">Ім`я</string>
|
<string name="multiplayer_username">Ім’я користувача</string>
|
||||||
<string name="multiplayer_ip_address">IP-адреса</string>
|
<string name="multiplayer_ip_address">IP-адреса</string>
|
||||||
<string name="multiplayer_ip_port">Порт</string>
|
<string name="multiplayer_ip_port">Порт</string>
|
||||||
<string name="multiplayer_create_room_success">Кімнату створено</string>
|
<string name="multiplayer_create_room_success">Кімнату успішно створено</string>
|
||||||
<string name="multiplayer_join_room_success">Приєднано до кімнати</string>
|
<string name="multiplayer_join_room_success">Приєднано до кімнати</string>
|
||||||
<string name="multiplayer_create_room_failed">Помилка створення</string>
|
<string name="multiplayer_create_room_failed">Помилка створення</string>
|
||||||
<string name="multiplayer_join_room_failed">Помилка приєднання</string>
|
<string name="multiplayer_join_room_failed">Помилка приєднання</string>
|
||||||
|
@ -222,7 +243,7 @@
|
||||||
<string name="multiplayer_required">Обов\'язково</string>
|
<string name="multiplayer_required">Обов\'язково</string>
|
||||||
<string name="multiplayer_token_required">Потрібний веб-токен, перейдіть у Розширені налаштування → Система → Мережа</string>
|
<string name="multiplayer_token_required">Потрібний веб-токен, перейдіть у Розширені налаштування → Система → Мережа</string>
|
||||||
<string name="multiplayer_ip_error">Невірний IP</string>
|
<string name="multiplayer_ip_error">Невірний IP</string>
|
||||||
<string name="multiplayer_username_error">Повинно містити 4-20 символів (лише літери, цифри, крапки, дефіси, підкреслення та пробіли)</string>
|
<string name="multiplayer_username_error">Повинно містити 4–20 символів (лише латинські літери, цифри, крапки, тире, підкреслення та пробіли)</string>
|
||||||
<string name="multiplayer_nickname_invalid">Недійсне ім\'я користувача, перевірте в Система → Мережа</string>
|
<string name="multiplayer_nickname_invalid">Недійсне ім\'я користувача, перевірте в Система → Мережа</string>
|
||||||
<string name="multiplayer_token_error">Має бути 48 символів і містити лише малі літери a-z</string>
|
<string name="multiplayer_token_error">Має бути 48 символів і містити лише малі літери a-z</string>
|
||||||
<string name="multiplayer_port_error">1-65535</string>
|
<string name="multiplayer_port_error">1-65535</string>
|
||||||
|
|
|
@ -81,8 +81,6 @@
|
||||||
<string name="sample_shading_fraction_description">Cường độ của bước tô bóng mẫu. Giá trị cao hơn cải thiện chất lượng tốt hơn nhưng cũng giảm hiệu suất nhiều hơn.</string>
|
<string name="sample_shading_fraction_description">Cường độ của bước tô bóng mẫu. Giá trị cao hơn cải thiện chất lượng tốt hơn nhưng cũng giảm hiệu suất nhiều hơn.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Trình kết xuất</string>
|
<string name="veil_renderer">Trình kết xuất</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Phương pháp quản lý tài nguyên tự động trong Vulkan đảm bảo giải phóng tài nguyên đúng cách khi không còn cần thiết, nhưng có thể gây ra sự cố trong các trò chơi được đóng gói.</string>
|
|
||||||
<string name="frame_interpolation">Đồng bộ khung hình nâng cao</string>
|
<string name="frame_interpolation">Đồng bộ khung hình nâng cao</string>
|
||||||
<string name="frame_interpolation_description">Đảm bảo cung cấp khung hình mượt mà và ổn định bằng cách đồng bộ hóa thời gian giữa các khung hình, giảm giật lag và hoạt ảnh không đồng đều. Lý tưởng cho các trò chơi gặp vấn đề về thời gian khung hình không ổn định hoặc giật lag nhẹ trong khi chơi.</string>
|
<string name="frame_interpolation_description">Đảm bảo cung cấp khung hình mượt mà và ổn định bằng cách đồng bộ hóa thời gian giữa các khung hình, giảm giật lag và hoạt ảnh không đồng đều. Lý tưởng cho các trò chơi gặp vấn đề về thời gian khung hình không ổn định hoặc giật lag nhẹ trong khi chơi.</string>
|
||||||
<string name="renderer_early_release_fences">Giải phóng rào chắn sớm</string>
|
<string name="renderer_early_release_fences">Giải phóng rào chắn sớm</string>
|
||||||
|
|
|
@ -80,8 +80,6 @@
|
||||||
<string name="sample_shading_fraction_description">采样着色处理的强度。值越高,质量改善越多,但性能降低也越明显。</string>
|
<string name="sample_shading_fraction_description">采样着色处理的强度。值越高,质量改善越多,但性能降低也越明显。</string>
|
||||||
|
|
||||||
<string name="veil_renderer">渲染器</string>
|
<string name="veil_renderer">渲染器</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Vulkan中的一种自动资源管理方法,确保在不再需要时正确释放资源,但可能导致捆绑游戏崩溃。</string>
|
|
||||||
<string name="frame_interpolation">增强帧同步</string>
|
<string name="frame_interpolation">增强帧同步</string>
|
||||||
<string name="frame_interpolation_description">通过同步帧间时间确保流畅一致的帧交付,减少卡顿和不均匀动画。适合存在帧时间不稳定或游戏过程中出现微卡顿的游戏。</string>
|
<string name="frame_interpolation_description">通过同步帧间时间确保流畅一致的帧交付,减少卡顿和不均匀动画。适合存在帧时间不稳定或游戏过程中出现微卡顿的游戏。</string>
|
||||||
<string name="renderer_early_release_fences">提前释放围栏</string>
|
<string name="renderer_early_release_fences">提前释放围栏</string>
|
||||||
|
|
|
@ -82,8 +82,6 @@
|
||||||
<string name="sample_shading_fraction_description">採樣著色處理的強度。數值越高,品質改善越多,但效能降低也越明顯。</string>
|
<string name="sample_shading_fraction_description">採樣著色處理的強度。數值越高,品質改善越多,但效能降低也越明顯。</string>
|
||||||
|
|
||||||
<string name="veil_renderer">渲染器</string>
|
<string name="veil_renderer">渲染器</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">Vulkan中的一種自動資源管理方法,確保在不再需要時正確釋放資源,但可能導致捆綁遊戲崩潰。</string>
|
|
||||||
<string name="frame_interpolation">增強幀同步</string>
|
<string name="frame_interpolation">增強幀同步</string>
|
||||||
<string name="frame_interpolation_description">通過同步幀間時間確保幀傳輸流暢一致,減少卡頓和不均勻動畫。適合存在幀時間不穩定或遊戲過程中出現些微卡頓的遊戲。</string>
|
<string name="frame_interpolation_description">通過同步幀間時間確保幀傳輸流暢一致,減少卡頓和不均勻動畫。適合存在幀時間不穩定或遊戲過程中出現些微卡頓的遊戲。</string>
|
||||||
<string name="renderer_early_release_fences">提前釋放圍欄</string>
|
<string name="renderer_early_release_fences">提前釋放圍欄</string>
|
||||||
|
@ -948,7 +946,6 @@
|
||||||
<string name="scaling_filter_scale_force">強制縮放</string>
|
<string name="scaling_filter_scale_force">強制縮放</string>
|
||||||
<string name="scaling_filter_fsr">AMD Radeon™ 超級解析度</string>
|
<string name="scaling_filter_fsr">AMD Radeon™ 超級解析度</string>
|
||||||
<string name="scaling_filter_area">Area</string>
|
<string name="scaling_filter_area">Area</string>
|
||||||
|
|
||||||
<!-- Anti-Aliasing -->
|
<!-- Anti-Aliasing -->
|
||||||
<string name="anti_aliasing_none">無</string>
|
<string name="anti_aliasing_none">無</string>
|
||||||
<string name="anti_aliasing_fxaa">FXAA</string>
|
<string name="anti_aliasing_fxaa">FXAA</string>
|
||||||
|
|
|
@ -180,6 +180,7 @@
|
||||||
<item>@string/resolution_half</item>
|
<item>@string/resolution_half</item>
|
||||||
<item>@string/resolution_three_quarter</item>
|
<item>@string/resolution_three_quarter</item>
|
||||||
<item>@string/resolution_one</item>
|
<item>@string/resolution_one</item>
|
||||||
|
<item>@string/resolution_five_quarter</item>
|
||||||
<item>@string/resolution_three_half</item>
|
<item>@string/resolution_three_half</item>
|
||||||
<item>@string/resolution_two</item>
|
<item>@string/resolution_two</item>
|
||||||
<item>@string/resolution_three</item>
|
<item>@string/resolution_three</item>
|
||||||
|
@ -202,6 +203,7 @@
|
||||||
<item>5</item>
|
<item>5</item>
|
||||||
<item>6</item>
|
<item>6</item>
|
||||||
<item>7</item>
|
<item>7</item>
|
||||||
|
<item>8</item>
|
||||||
</integer-array>
|
</integer-array>
|
||||||
|
|
||||||
<integer-array name="rendererVSyncValues">
|
<integer-array name="rendererVSyncValues">
|
||||||
|
@ -251,12 +253,16 @@
|
||||||
<item>@string/scaling_filter_nearest_neighbor</item>
|
<item>@string/scaling_filter_nearest_neighbor</item>
|
||||||
<item>@string/scaling_filter_bilinear</item>
|
<item>@string/scaling_filter_bilinear</item>
|
||||||
<item>@string/scaling_filter_bicubic</item>
|
<item>@string/scaling_filter_bicubic</item>
|
||||||
<item>@string/scaling_filter_spline1</item>
|
|
||||||
<item>@string/scaling_filter_gaussian</item>
|
<item>@string/scaling_filter_gaussian</item>
|
||||||
<item>@string/scaling_filter_lanczos</item>
|
<item>@string/scaling_filter_lanczos</item>
|
||||||
<item>@string/scaling_filter_scale_force</item>
|
<item>@string/scaling_filter_scale_force</item>
|
||||||
<item>@string/scaling_filter_fsr</item>
|
<item>@string/scaling_filter_fsr</item>
|
||||||
<item>@string/scaling_filter_area</item>
|
<item>@string/scaling_filter_area</item>
|
||||||
|
<item>@string/scaling_filter_mmpx</item>
|
||||||
|
<item>@string/scaling_filter_zero_tangent</item>
|
||||||
|
<item>@string/scaling_filter_bspline</item>
|
||||||
|
<item>@string/scaling_filter_mitchell</item>
|
||||||
|
<item>@string/scaling_filter_spline1</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<integer-array name="rendererScalingFilterValues">
|
<integer-array name="rendererScalingFilterValues">
|
||||||
|
@ -269,6 +275,10 @@
|
||||||
<item>6</item>
|
<item>6</item>
|
||||||
<item>7</item>
|
<item>7</item>
|
||||||
<item>8</item>
|
<item>8</item>
|
||||||
|
<item>9</item>
|
||||||
|
<item>10</item>
|
||||||
|
<item>11</item>
|
||||||
|
<item>12</item>
|
||||||
</integer-array>
|
</integer-array>
|
||||||
|
|
||||||
<string-array name="rendererAntiAliasingNames">
|
<string-array name="rendererAntiAliasingNames">
|
||||||
|
|
|
@ -109,8 +109,6 @@
|
||||||
<string name="sample_shading_fraction_description">The intensity of the sample shading pass. Higher values improve quality more but also reduce performance to a greater extent.</string>
|
<string name="sample_shading_fraction_description">The intensity of the sample shading pass. Higher values improve quality more but also reduce performance to a greater extent.</string>
|
||||||
|
|
||||||
<string name="veil_renderer">Renderer</string>
|
<string name="veil_renderer">Renderer</string>
|
||||||
<string name="enable_raii">RAII</string>
|
|
||||||
<string name="enable_raii_description">A method of automatic resource management in Vulkan that ensures proper release of resources when they are no longer needed, but may cause crashes in bundled games.</string>
|
|
||||||
<string name="frame_interpolation">Enhanced Frame Pacing</string>
|
<string name="frame_interpolation">Enhanced Frame Pacing</string>
|
||||||
<string name="frame_interpolation_description">Ensures smooth and consistent frame delivery by synchronizing the timing between frames, reducing stuttering and uneven animation. Ideal for games that experience frame timing instability or micro-stutters during gameplay.</string>
|
<string name="frame_interpolation_description">Ensures smooth and consistent frame delivery by synchronizing the timing between frames, reducing stuttering and uneven animation. Ideal for games that experience frame timing instability or micro-stutters during gameplay.</string>
|
||||||
<string name="renderer_early_release_fences">Release Fences Early</string>
|
<string name="renderer_early_release_fences">Release Fences Early</string>
|
||||||
|
@ -995,6 +993,7 @@
|
||||||
<string name="resolution_half">0.5X (360p/540p)</string>
|
<string name="resolution_half">0.5X (360p/540p)</string>
|
||||||
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
|
<string name="resolution_three_quarter">0.75X (540p/810p)</string>
|
||||||
<string name="resolution_one">1X (720p/1080p)</string>
|
<string name="resolution_one">1X (720p/1080p)</string>
|
||||||
|
<string name="resolution_five_quarter">1.25X (900p/1350p)</string>
|
||||||
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
|
<string name="resolution_three_half">1.5X (1080p/1620p)</string>
|
||||||
<string name="resolution_two">2X (1440p/2160p) (Slow)</string>
|
<string name="resolution_two">2X (1440p/2160p) (Slow)</string>
|
||||||
<string name="resolution_three">3X (2160p/3240p) (Slow)</string>
|
<string name="resolution_three">3X (2160p/3240p) (Slow)</string>
|
||||||
|
@ -1016,6 +1015,10 @@
|
||||||
<string name="scaling_filter_scale_force">ScaleForce</string>
|
<string name="scaling_filter_scale_force">ScaleForce</string>
|
||||||
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
|
<string name="scaling_filter_fsr">AMD FidelityFX™ Super Resolution</string>
|
||||||
<string name="scaling_filter_area">Area</string>
|
<string name="scaling_filter_area">Area</string>
|
||||||
|
<string name="scaling_filter_zero_tangent">Zero-Tangent</string>
|
||||||
|
<string name="scaling_filter_bspline">B-Spline</string>
|
||||||
|
<string name="scaling_filter_mitchell">Mitchell</string>
|
||||||
|
<string name="scaling_filter_mmpx">MMPX</string>
|
||||||
|
|
||||||
<!-- Anti-Aliasing -->
|
<!-- Anti-Aliasing -->
|
||||||
<string name="anti_aliasing_none">None</string>
|
<string name="anti_aliasing_none">None</string>
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: 2012 Gekko Emulator
|
// SPDX-FileCopyrightText: 2012 Gekko Emulator
|
||||||
// SPDX-FileContributor: ShizZy <shizzy247@gmail.com>
|
// SPDX-FileContributor: ShizZy <shizzy247@gmail.com>
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
@ -30,7 +33,6 @@
|
||||||
|
|
||||||
#include <array>
|
#include <array>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <memory>
|
|
||||||
|
|
||||||
using u8 = std::uint8_t; ///< 8-bit unsigned byte
|
using u8 = std::uint8_t; ///< 8-bit unsigned byte
|
||||||
using u16 = std::uint16_t; ///< 16-bit unsigned short
|
using u16 = std::uint16_t; ///< 16-bit unsigned short
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <filesystem>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
#include "common/common_funcs.h"
|
#include "common/common_funcs.h"
|
||||||
|
|
|
@ -301,6 +301,10 @@ void TranslateResolutionInfo(ResolutionSetup setup, ResolutionScalingInfo& info)
|
||||||
info.up_scale = 3;
|
info.up_scale = 3;
|
||||||
info.down_shift = 1;
|
info.down_shift = 1;
|
||||||
break;
|
break;
|
||||||
|
case ResolutionSetup::Res5_4X:
|
||||||
|
info.up_scale = 5;
|
||||||
|
info.down_shift = 2;
|
||||||
|
break;
|
||||||
case ResolutionSetup::Res2X:
|
case ResolutionSetup::Res2X:
|
||||||
info.up_scale = 2;
|
info.up_scale = 2;
|
||||||
info.down_shift = 0;
|
info.down_shift = 0;
|
||||||
|
|
|
@ -161,7 +161,7 @@ struct Values {
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> photo_viewer_applet_mode{
|
Setting<AppletMode> photo_viewer_applet_mode{
|
||||||
linkage, AppletMode::LLE, "photo_viewer_applet_mode", Category::LibraryApplet};
|
linkage, AppletMode::LLE, "photo_viewer_applet_mode", Category::LibraryApplet};
|
||||||
Setting<AppletMode> offline_web_applet_mode{linkage, AppletMode::LLE, "offline_web_applet_mode",
|
Setting<AppletMode> offline_web_applet_mode{linkage, AppletMode::HLE, "offline_web_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
Setting<AppletMode> login_share_applet_mode{linkage, AppletMode::HLE, "login_share_applet_mode",
|
Setting<AppletMode> login_share_applet_mode{linkage, AppletMode::HLE, "login_share_applet_mode",
|
||||||
Category::LibraryApplet};
|
Category::LibraryApplet};
|
||||||
|
@ -320,15 +320,22 @@ struct Values {
|
||||||
linkage, true, "cpuopt_unsafe_ignore_global_monitor", Category::CpuUnsafe};
|
linkage, true, "cpuopt_unsafe_ignore_global_monitor", Category::CpuUnsafe};
|
||||||
|
|
||||||
// Renderer
|
// Renderer
|
||||||
SwitchableSetting<RendererBackend, true> renderer_backend{
|
SwitchableSetting<RendererBackend, true> renderer_backend{linkage,
|
||||||
linkage, RendererBackend::Vulkan,
|
#if defined(__sun__) || defined(__managarm__)
|
||||||
|
RendererBackend::OpenGL,
|
||||||
|
#else
|
||||||
|
RendererBackend::Vulkan,
|
||||||
|
#endif
|
||||||
"backend", Category::Renderer};
|
"backend", Category::Renderer};
|
||||||
SwitchableSetting<ShaderBackend, true> shader_backend{
|
SwitchableSetting<ShaderBackend, true> shader_backend{linkage,
|
||||||
linkage, ShaderBackend::SpirV,
|
#if defined(__sun__) || defined(__managarm__)
|
||||||
|
ShaderBackend::Glsl,
|
||||||
|
#else
|
||||||
|
ShaderBackend::SpirV,
|
||||||
|
#endif
|
||||||
"shader_backend", Category::Renderer, Specialization::RuntimeList};
|
"shader_backend", Category::Renderer, Specialization::RuntimeList};
|
||||||
SwitchableSetting<int> vulkan_device{linkage, 0, "vulkan_device", Category::Renderer,
|
SwitchableSetting<int> vulkan_device{linkage, 0, "vulkan_device", Category::Renderer,
|
||||||
Specialization::RuntimeList};
|
Specialization::RuntimeList};
|
||||||
SwitchableSetting<bool> enable_raii{linkage, false, "enable_raii", Category::Renderer};
|
|
||||||
#ifdef __ANDROID__
|
#ifdef __ANDROID__
|
||||||
SwitchableSetting<bool> frame_interpolation{linkage, true, "frame_interpolation", Category::Renderer,
|
SwitchableSetting<bool> frame_interpolation{linkage, true, "frame_interpolation", Category::Renderer,
|
||||||
Specialization::RuntimeList};
|
Specialization::RuntimeList};
|
||||||
|
|
|
@ -142,8 +142,8 @@ ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb, Memory_10Gb, Memory_12Gb)
|
||||||
ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
|
ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
|
||||||
ENUM(FullscreenMode, Borderless, Exclusive);
|
ENUM(FullscreenMode, Borderless, Exclusive);
|
||||||
ENUM(NvdecEmulation, Off, Cpu, Gpu);
|
ENUM(NvdecEmulation, Off, Cpu, Gpu);
|
||||||
ENUM(ResolutionSetup, Res1_4X, Res1_2X, Res3_4X, Res1X, Res3_2X, Res2X, Res3X, Res4X, Res5X, Res6X, Res7X, Res8X);
|
ENUM(ResolutionSetup, Res1_4X, Res1_2X, Res3_4X, Res1X, Res5_4X, Res3_2X, Res2X, Res3X, Res4X, Res5X, Res6X, Res7X, Res8X);
|
||||||
ENUM(ScalingFilter, NearestNeighbor, Bilinear, Bicubic, Spline1, Gaussian, Lanczos, ScaleForce, Fsr, Area, MaxEnum);
|
ENUM(ScalingFilter, NearestNeighbor, Bilinear, Bicubic, Gaussian, Lanczos, ScaleForce, Fsr, Area, ZeroTangent, BSpline, Mitchell, Spline1, Mmpx, MaxEnum);
|
||||||
ENUM(AntiAliasing, None, Fxaa, Smaa, MaxEnum);
|
ENUM(AntiAliasing, None, Fxaa, Smaa, MaxEnum);
|
||||||
ENUM(AspectRatio, R16_9, R4_3, R21_9, R16_10, Stretch);
|
ENUM(AspectRatio, R16_9, R4_3, R21_9, R16_10, Stretch);
|
||||||
ENUM(ConsoleMode, Handheld, Docked);
|
ENUM(ConsoleMode, Handheld, Docked);
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: 2013 Dolphin Emulator Project
|
// SPDX-FileCopyrightText: 2013 Dolphin Emulator Project
|
||||||
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
|
// SPDX-FileCopyrightText: 2014 Citra Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
@ -18,9 +17,8 @@
|
||||||
#else
|
#else
|
||||||
#if defined(__Bitrig__) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
#if defined(__Bitrig__) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||||
#include <pthread_np.h>
|
#include <pthread_np.h>
|
||||||
#else
|
|
||||||
#include <pthread.h>
|
|
||||||
#endif
|
#endif
|
||||||
|
#include <pthread.h>
|
||||||
#include <sched.h>
|
#include <sched.h>
|
||||||
#endif
|
#endif
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
|
@ -93,33 +91,35 @@ void SetCurrentThreadName(const char* name) {
|
||||||
#else // !MSVC_VER, so must be POSIX threads
|
#else // !MSVC_VER, so must be POSIX threads
|
||||||
|
|
||||||
// MinGW with the POSIX threading model does not support pthread_setname_np
|
// MinGW with the POSIX threading model does not support pthread_setname_np
|
||||||
#if !defined(_WIN32) || defined(_MSC_VER)
|
|
||||||
void SetCurrentThreadName(const char* name) {
|
void SetCurrentThreadName(const char* name) {
|
||||||
|
// See for reference
|
||||||
|
// https://gitlab.freedesktop.org/mesa/mesa/-/blame/main/src/util/u_thread.c?ref_type=heads#L75
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
pthread_setname_np(name);
|
pthread_setname_np(name);
|
||||||
|
#elif defined(__HAIKU__)
|
||||||
|
rename_thread(find_thread(NULL), name);
|
||||||
#elif defined(__Bitrig__) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
#elif defined(__Bitrig__) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||||
pthread_set_name_np(pthread_self(), name);
|
pthread_set_name_np(pthread_self(), name);
|
||||||
#elif defined(__NetBSD__)
|
#elif defined(__NetBSD__)
|
||||||
pthread_setname_np(pthread_self(), "%s", (void*)name);
|
pthread_setname_np(pthread_self(), "%s", (void*)name);
|
||||||
#elif defined(__linux__)
|
#elif defined(__linux__) || defined(__CYGWIN__) || defined(__sun__) || defined(__glibc__) || defined(__managarm__)
|
||||||
|
int ret = pthread_setname_np(pthread_self(), name);
|
||||||
|
if (ret == ERANGE) {
|
||||||
// Linux limits thread names to 15 characters and will outright reject any
|
// Linux limits thread names to 15 characters and will outright reject any
|
||||||
// attempt to set a longer name with ERANGE.
|
// attempt to set a longer name with ERANGE.
|
||||||
std::string truncated(name, (std::min)(strlen(name), static_cast<size_t>(15)));
|
char buf[16];
|
||||||
if (int e = pthread_setname_np(pthread_self(), truncated.c_str())) {
|
size_t const len = std::min<size_t>(std::strlen(name), sizeof(buf) - 1);
|
||||||
errno = e;
|
std::memcpy(buf, name, len);
|
||||||
LOG_ERROR(Common, "Failed to set thread name to '{}': {}", truncated, GetLastErrorMsg());
|
buf[len] = '\0';
|
||||||
|
pthread_setname_np(pthread_self(), buf);
|
||||||
}
|
}
|
||||||
|
#elif !defined(_WIN32) || defined(_MSC_VER)
|
||||||
|
// mingw stub
|
||||||
|
(void)name;
|
||||||
#else
|
#else
|
||||||
pthread_setname_np(pthread_self(), name);
|
pthread_setname_np(pthread_self(), name);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(_WIN32)
|
|
||||||
void SetCurrentThreadName(const char* name) {
|
|
||||||
// Do Nothing on MingW
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -227,7 +227,7 @@ HaltReason ArmNce::RunThread(Kernel::KThread* thread) {
|
||||||
if (auto it = post_handlers.find(m_guest_ctx.pc); it != post_handlers.end()) {
|
if (auto it = post_handlers.find(m_guest_ctx.pc); it != post_handlers.end()) {
|
||||||
hr = ReturnToRunCodeByTrampoline(thread_params, &m_guest_ctx, it->second);
|
hr = ReturnToRunCodeByTrampoline(thread_params, &m_guest_ctx, it->second);
|
||||||
} else {
|
} else {
|
||||||
hr = ReturnToRunCodeByExceptionLevelChange(m_thread_id, thread_params);
|
hr = ReturnToRunCodeByExceptionLevelChange(m_thread_id, thread_params); // Android: Use "process handle SIGUSR2 -n true -p true -s false" (and SIGURG) in LLDB when debugging
|
||||||
}
|
}
|
||||||
|
|
||||||
// Critical section for thread cleanup
|
// Critical section for thread cleanup
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#include <memory>
|
|
||||||
#include "common/assert.h"
|
#include "common/assert.h"
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "common/logging/log.h"
|
#include "common/logging/log.h"
|
||||||
|
@ -129,10 +128,6 @@ std::string SaveDataFactory::GetFullPath(ProgramId program_id, VirtualDir dir,
|
||||||
|
|
||||||
std::string out = GetSaveDataSpaceIdPath(space);
|
std::string out = GetSaveDataSpaceIdPath(space);
|
||||||
|
|
||||||
LOG_INFO(Common_Filesystem, "Save ID: {:016X}", save_id);
|
|
||||||
LOG_INFO(Common_Filesystem, "User ID[1]: {:016X}", user_id[1]);
|
|
||||||
LOG_INFO(Common_Filesystem, "User ID[0]: {:016X}", user_id[0]);
|
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case SaveDataType::System:
|
case SaveDataType::System:
|
||||||
return fmt::format("{}save/{:016X}/{:016X}{:016X}", out, save_id, user_id[1], user_id[0]);
|
return fmt::format("{}save/{:016X}/{:016X}{:016X}", out, save_id, user_id[1], user_id[0]);
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
#include "core/frontend/applets/applet.h"
|
#include "core/frontend/applets/applet.h"
|
||||||
#include "core/hle/service/nfp/nfp_types.h"
|
#include "core/hle/service/nfp/nfp_types.h"
|
||||||
|
|
||||||
|
|
|
@ -4,13 +4,17 @@
|
||||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include <filesystem>
|
||||||
|
#include <iostream>
|
||||||
#include <random>
|
#include <random>
|
||||||
|
|
||||||
#include <fmt/ranges.h>
|
#include <fmt/ranges.h>
|
||||||
|
|
||||||
#include "common/fs/file.h"
|
#include "common/fs/file.h"
|
||||||
#include "common/fs/fs.h"
|
#include "common/fs/fs.h"
|
||||||
|
#include "common/fs/fs_types.h"
|
||||||
#include "common/fs/path_util.h"
|
#include "common/fs/path_util.h"
|
||||||
#include <ranges>
|
#include <ranges>
|
||||||
#include "common/settings.h"
|
#include "common/settings.h"
|
||||||
|
@ -90,6 +94,11 @@ bool ProfileManager::RemoveProfileAtIndex(std::size_t index) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProfileManager::RemoveAllProfiles()
|
||||||
|
{
|
||||||
|
profiles = {};
|
||||||
|
}
|
||||||
|
|
||||||
/// Helper function to register a user to the system
|
/// Helper function to register a user to the system
|
||||||
Result ProfileManager::AddUser(const ProfileInfo& user) {
|
Result ProfileManager::AddUser(const ProfileInfo& user) {
|
||||||
if (!AddToProfiles(user)) {
|
if (!AddToProfiles(user)) {
|
||||||
|
@ -259,8 +268,9 @@ void ProfileManager::CloseUser(UUID uuid) {
|
||||||
/// Gets all valid user ids on the system
|
/// Gets all valid user ids on the system
|
||||||
UserIDArray ProfileManager::GetAllUsers() const {
|
UserIDArray ProfileManager::GetAllUsers() const {
|
||||||
UserIDArray output{};
|
UserIDArray output{};
|
||||||
std::ranges::transform(profiles, output.begin(),
|
std::ranges::transform(profiles, output.begin(), [](const ProfileInfo& p) {
|
||||||
[](const ProfileInfo& p) { return p.user_uuid; });
|
return p.user_uuid;
|
||||||
|
});
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -387,18 +397,19 @@ bool ProfileManager::SetProfileBaseAndData(Common::UUID uuid, const ProfileBase&
|
||||||
void ProfileManager::ParseUserSaveFile() {
|
void ProfileManager::ParseUserSaveFile() {
|
||||||
const auto save_path(FS::GetEdenPath(FS::EdenPath::NANDDir) / ACC_SAVE_AVATORS_BASE_PATH /
|
const auto save_path(FS::GetEdenPath(FS::EdenPath::NANDDir) / ACC_SAVE_AVATORS_BASE_PATH /
|
||||||
"profiles.dat");
|
"profiles.dat");
|
||||||
|
|
||||||
const FS::IOFile save(save_path, FS::FileAccessMode::Read, FS::FileType::BinaryFile);
|
const FS::IOFile save(save_path, FS::FileAccessMode::Read, FS::FileType::BinaryFile);
|
||||||
|
|
||||||
if (!save.IsOpen()) {
|
if (!save.IsOpen()) {
|
||||||
LOG_WARNING(Service_ACC, "Failed to load profile data from save data... Generating new "
|
LOG_WARNING(Service_ACC, "Failed to load profile data from save data... Generating new "
|
||||||
"user 'eden' with random UUID.");
|
"user 'Eden' with random UUID.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ProfileDataRaw data;
|
ProfileDataRaw data;
|
||||||
if (!save.ReadObject(data)) {
|
if (!save.ReadObject(data)) {
|
||||||
LOG_WARNING(Service_ACC, "profiles.dat is smaller than expected... Generating new user "
|
LOG_WARNING(Service_ACC, "profiles.dat is smaller than expected... Generating new user "
|
||||||
"'eden' with random UUID.");
|
"'Eden' with random UUID.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -471,6 +482,79 @@ void ProfileManager::WriteUserSaveFile() {
|
||||||
is_save_needed = false;
|
is_save_needed = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ProfileManager::ResetUserSaveFile()
|
||||||
|
{
|
||||||
|
RemoveAllProfiles();
|
||||||
|
ParseUserSaveFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<std::string> ProfileManager::FindOrphanedProfiles()
|
||||||
|
{
|
||||||
|
std::vector<std::string> good_uuids;
|
||||||
|
|
||||||
|
for (const ProfileInfo& p : profiles) {
|
||||||
|
std::string uuid_string = [p]() -> std::string {
|
||||||
|
auto uuid = p.user_uuid;
|
||||||
|
|
||||||
|
// "ignore" invalid uuids
|
||||||
|
if (uuid.IsInvalid()) {
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
auto user_id = uuid.AsU128();
|
||||||
|
|
||||||
|
return fmt::format("{:016X}{:016X}", user_id[1], user_id[0]);
|
||||||
|
}();
|
||||||
|
|
||||||
|
good_uuids.emplace_back(uuid_string);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: fetch save_id programmatically
|
||||||
|
const auto path = Common::FS::GetEdenPath(Common::FS::EdenPath::NANDDir)
|
||||||
|
/ "user/save/0000000000000000";
|
||||||
|
|
||||||
|
std::vector<std::string> orphaned_profiles;
|
||||||
|
|
||||||
|
Common::FS::IterateDirEntries(
|
||||||
|
path,
|
||||||
|
[&good_uuids, &orphaned_profiles](const std::filesystem::directory_entry& entry) -> bool {
|
||||||
|
const std::string uuid = entry.path().stem().string();
|
||||||
|
|
||||||
|
// first off, we should always clear empty profiles
|
||||||
|
// 99% of the time these are useless. If not, they are recreated anyways...
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
|
const auto is_empty = [&entry]() -> bool {
|
||||||
|
try {
|
||||||
|
for (const auto& file : fs::recursive_directory_iterator(entry.path())) {
|
||||||
|
if (file.is_regular_file()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (const fs::filesystem_error& e) {
|
||||||
|
// if we get an error--no worries, just pretend it's not empty
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}();
|
||||||
|
|
||||||
|
if (!is_empty) {
|
||||||
|
fs::remove_all(entry);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// if profiles.dat contains the UUID--all good
|
||||||
|
// if not--it's an orphaned profile and should be resolved by the user
|
||||||
|
if (std::find(good_uuids.begin(), good_uuids.end(), uuid) == good_uuids.end()) {
|
||||||
|
orphaned_profiles.emplace_back(uuid);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
Common::FS::DirEntryFilter::Directory);
|
||||||
|
|
||||||
|
return orphaned_profiles;
|
||||||
|
}
|
||||||
|
|
||||||
void ProfileManager::SetUserPosition(u64 position, Common::UUID uuid) {
|
void ProfileManager::SetUserPosition(u64 position, Common::UUID uuid) {
|
||||||
auto idxOpt = GetUserIndex(uuid);
|
auto idxOpt = GetUserIndex(uuid);
|
||||||
if (!idxOpt)
|
if (!idxOpt)
|
||||||
|
|
|
@ -103,10 +103,15 @@ public:
|
||||||
|
|
||||||
void WriteUserSaveFile();
|
void WriteUserSaveFile();
|
||||||
|
|
||||||
|
void ResetUserSaveFile();
|
||||||
|
|
||||||
|
std::vector<std::string> FindOrphanedProfiles();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ParseUserSaveFile();
|
void ParseUserSaveFile();
|
||||||
std::optional<std::size_t> AddToProfiles(const ProfileInfo& profile);
|
std::optional<std::size_t> AddToProfiles(const ProfileInfo& profile);
|
||||||
bool RemoveProfileAtIndex(std::size_t index);
|
bool RemoveProfileAtIndex(std::size_t index);
|
||||||
|
void RemoveAllProfiles();
|
||||||
|
|
||||||
bool is_save_needed{};
|
bool is_save_needed{};
|
||||||
std::array<ProfileInfo, MAX_USERS> profiles{};
|
std::array<ProfileInfo, MAX_USERS> profiles{};
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
@ -29,7 +32,7 @@ IQueryService::IQueryService(Core::System& system_) : ServiceFramework{system_,
|
||||||
{14, nullptr, "QueryRecentlyPlayedApplication"},
|
{14, nullptr, "QueryRecentlyPlayedApplication"},
|
||||||
{15, nullptr, "GetRecentlyPlayedApplicationUpdateEvent"},
|
{15, nullptr, "GetRecentlyPlayedApplicationUpdateEvent"},
|
||||||
{16, nullptr, "QueryApplicationPlayStatisticsByUserAccountIdForSystemV0"},
|
{16, nullptr, "QueryApplicationPlayStatisticsByUserAccountIdForSystemV0"},
|
||||||
{17, nullptr, "QueryLastPlayTime"},
|
{17, D<&IQueryService::QueryLastPlayTime>, "QueryLastPlayTime"},
|
||||||
{18, nullptr, "QueryApplicationPlayStatisticsForSystem"},
|
{18, nullptr, "QueryApplicationPlayStatisticsForSystem"},
|
||||||
{19, nullptr, "QueryApplicationPlayStatisticsByUserAccountIdForSystem"},
|
{19, nullptr, "QueryApplicationPlayStatisticsByUserAccountIdForSystem"},
|
||||||
};
|
};
|
||||||
|
@ -53,4 +56,13 @@ Result IQueryService::QueryPlayStatisticsByApplicationIdAndUserAccountId(
|
||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result IQueryService::QueryLastPlayTime(
|
||||||
|
Out<s32> out_entries, u8 unknown,
|
||||||
|
OutArray<LastPlayTime, BufferAttr_HipcMapAlias> out_last_play_times,
|
||||||
|
InArray<s32, BufferAttr_HipcMapAlias> application_ids) {
|
||||||
|
*out_entries = 1;
|
||||||
|
*out_last_play_times = {};
|
||||||
|
R_SUCCEED();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Service::NS
|
} // namespace Service::NS
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
@ -23,6 +26,8 @@ struct PlayStatistics {
|
||||||
};
|
};
|
||||||
static_assert(sizeof(PlayStatistics) == 0x28, "PlayStatistics is an invalid size");
|
static_assert(sizeof(PlayStatistics) == 0x28, "PlayStatistics is an invalid size");
|
||||||
|
|
||||||
|
struct LastPlayTime {};
|
||||||
|
|
||||||
class IQueryService final : public ServiceFramework<IQueryService> {
|
class IQueryService final : public ServiceFramework<IQueryService> {
|
||||||
public:
|
public:
|
||||||
explicit IQueryService(Core::System& system_);
|
explicit IQueryService(Core::System& system_);
|
||||||
|
@ -31,6 +36,9 @@ public:
|
||||||
private:
|
private:
|
||||||
Result QueryPlayStatisticsByApplicationIdAndUserAccountId(
|
Result QueryPlayStatisticsByApplicationIdAndUserAccountId(
|
||||||
Out<PlayStatistics> out_play_statistics, bool unknown, u64 application_id, Uid account_id);
|
Out<PlayStatistics> out_play_statistics, bool unknown, u64 application_id, Uid account_id);
|
||||||
|
Result QueryLastPlayTime(Out<s32> out_entries, u8 unknown,
|
||||||
|
OutArray<LastPlayTime, BufferAttr_HipcMapAlias> out_last_play_times,
|
||||||
|
InArray<s32, BufferAttr_HipcMapAlias> application_ids);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Service::NS
|
} // namespace Service::NS
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
@ -5,6 +8,8 @@
|
||||||
|
|
||||||
#include <variant>
|
#include <variant>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
#include <fmt/printf.h>
|
#include <fmt/printf.h>
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "core/memory/dmnt_cheat_types.h"
|
#include "core/memory/dmnt_cheat_types.h"
|
||||||
|
|
|
@ -25,11 +25,7 @@ option(DYNARMIC_IGNORE_ASSERTS "Ignore asserts" OFF)
|
||||||
option(DYNARMIC_TESTS_USE_UNICORN "Enable fuzzing tests against unicorn" OFF)
|
option(DYNARMIC_TESTS_USE_UNICORN "Enable fuzzing tests against unicorn" OFF)
|
||||||
CMAKE_DEPENDENT_OPTION(DYNARMIC_USE_LLVM "Support disassembly of jitted x86_64 code using LLVM" OFF "NOT YUZU_DISABLE_LLVM" OFF)
|
CMAKE_DEPENDENT_OPTION(DYNARMIC_USE_LLVM "Support disassembly of jitted x86_64 code using LLVM" OFF "NOT YUZU_DISABLE_LLVM" OFF)
|
||||||
|
|
||||||
if (PLATFORM_OPENBSD)
|
option(DYNARMIC_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF)
|
||||||
option(DYNARMIC_USE_PRECOMPILED_HEADERS "Use precompiled headers" OFF)
|
|
||||||
else()
|
|
||||||
option(DYNARMIC_USE_PRECOMPILED_HEADERS "Use precompiled headers" ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
option(DYNARMIC_INSTALL "Install dynarmic headers and CMake files" OFF)
|
option(DYNARMIC_INSTALL "Install dynarmic headers and CMake files" OFF)
|
||||||
option(DYNARMIC_USE_BUNDLED_EXTERNALS "Use all bundled externals (useful when e.g. cross-compiling)" OFF)
|
option(DYNARMIC_USE_BUNDLED_EXTERNALS "Use all bundled externals (useful when e.g. cross-compiling)" OFF)
|
||||||
|
@ -81,7 +77,6 @@ if (MSVC)
|
||||||
/wd4592 # Symbol will be dynamically initialized (implementation limitation)
|
/wd4592 # Symbol will be dynamically initialized (implementation limitation)
|
||||||
/permissive- # Stricter C++ standards conformance
|
/permissive- # Stricter C++ standards conformance
|
||||||
/MP
|
/MP
|
||||||
/Zi
|
|
||||||
/Zo
|
/Zo
|
||||||
/EHsc
|
/EHsc
|
||||||
/Zc:externConstexpr # Allows external linkage for variables declared "extern constexpr", as the standard permits.
|
/Zc:externConstexpr # Allows external linkage for variables declared "extern constexpr", as the standard permits.
|
||||||
|
@ -91,6 +86,11 @@ if (MSVC)
|
||||||
/bigobj # Increase number of sections in .obj files
|
/bigobj # Increase number of sections in .obj files
|
||||||
/DNOMINMAX)
|
/DNOMINMAX)
|
||||||
|
|
||||||
|
if (WIN32 AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||||
|
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||||
|
string(REPLACE "/Zi" "/Z7" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
|
||||||
|
endif()
|
||||||
|
|
||||||
if (DYNARMIC_WARNINGS_AS_ERRORS)
|
if (DYNARMIC_WARNINGS_AS_ERRORS)
|
||||||
list(APPEND DYNARMIC_CXX_FLAGS
|
list(APPEND DYNARMIC_CXX_FLAGS
|
||||||
/WX)
|
/WX)
|
||||||
|
|
7
src/dynarmic/externals/cpmfile.json
vendored
7
src/dynarmic/externals/cpmfile.json
vendored
|
@ -1,9 +1,10 @@
|
||||||
{
|
{
|
||||||
"biscuit": {
|
"biscuit": {
|
||||||
"version": "0.9.1",
|
|
||||||
"repo": "lioncash/biscuit",
|
"repo": "lioncash/biscuit",
|
||||||
"sha": "76b0be8dae",
|
"tag": "v%VERSION%",
|
||||||
"hash": "47d55ed02d032d6cf3dc107c6c0a9aea686d5f25aefb81d1af91db027b6815bd5add1755505e19d76625feeb17aa2db6cd1668fe0dad2e6a411519bde6ca4489"
|
"hash": "1229f345b014f7ca544dedb4edb3311e41ba736f9aa9a67f88b5f26f3c983288c6bb6cdedcfb0b8a02c63088a37e6a0d7ba97d9c2a4d721b213916327cffe28a",
|
||||||
|
"version": "0.9.1",
|
||||||
|
"git_version": "0.19.0"
|
||||||
},
|
},
|
||||||
"mcl": {
|
"mcl": {
|
||||||
"version": "0.1.12",
|
"version": "0.1.12",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
include(TargetArchitectureSpecificSources)
|
include(TargetArchitectureSpecificSources)
|
||||||
|
|
||||||
add_library(dynarmic
|
add_library(dynarmic STATIC
|
||||||
backend/block_range_information.cpp
|
backend/block_range_information.cpp
|
||||||
backend/block_range_information.h
|
backend/block_range_information.h
|
||||||
backend/exception_handler.h
|
backend/exception_handler.h
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue