Compare commits
31 commits
6e89c7104e
...
a25a48de50
Author | SHA1 | Date | |
---|---|---|---|
a25a48de50 | |||
f33a771d58 | |||
191e4c75a1 | |||
34302300d9 | |||
cbbdfc75cc | |||
1ca35b7559 | |||
06dabbadcb | |||
8c9cdf0d70 | |||
d623e04606 | |||
4b558e5303 | |||
28b8159da1 | |||
87d42cf542 | |||
725407b989 | |||
6510818fca | |||
a487cea683 | |||
a3c0d59dc9 | |||
cf634d4d6f | |||
b1ce3c8dc1 | |||
e1ffeec212 | |||
249e006667 | |||
8ac495acee | |||
cda6958111 | |||
dac2efc4c8 | |||
3b3278f44b | |||
3ca0bde0e9 | |||
6699361b7e | |||
19036c59b5 | |||
80dfc3d76f | |||
f4386423e8 | |||
4c5d03f5de | |||
d207df959a |
411 changed files with 4966 additions and 3413 deletions
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
# SPDX-FileCopyrightText: 2025 eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
export NDK_CCACHE=$(which ccache)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# SPDX-FileCopyrightText: 2025 eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
GITDATE="$(git show -s --date=short --format='%ad' | sed 's/-//g')"
|
||||
|
|
|
@ -5,10 +5,13 @@ HEADER_HASH="$(cat "$PWD/.ci/license/header-hash.txt")"
|
|||
|
||||
echo "Getting branch changes"
|
||||
|
||||
BRANCH=`git rev-parse --abbrev-ref HEAD`
|
||||
COMMITS=`git log ${BRANCH} --not master --pretty=format:"%h"`
|
||||
RANGE="${COMMITS[${#COMMITS[@]}-1]}^..${COMMITS[0]}"
|
||||
FILES=`git diff-tree --no-commit-id --name-only ${RANGE} -r`
|
||||
# BRANCH=`git rev-parse --abbrev-ref HEAD`
|
||||
# COMMITS=`git log ${BRANCH} --not master --pretty=format:"%h"`
|
||||
# RANGE="${COMMITS[${#COMMITS[@]}-1]}^..${COMMITS[0]}"
|
||||
# FILES=`git diff-tree --no-commit-id --name-only ${RANGE} -r`
|
||||
|
||||
BASE=`git merge-base master HEAD`
|
||||
FILES=`git diff --name-only $BASE`
|
||||
|
||||
#FILES=$(git diff --name-only master)
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash -e
|
||||
|
||||
# SPDX-FileCopyrightText: 2025 eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
case "$1" in
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: 2025 eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# This script assumes you're in the source directory
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
# SPDX-FileCopyrightText: 2025 eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
which png2icns || [ which yay && yay libicns ] || exit
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/bash -ex
|
||||
|
||||
# SPDX-FileCopyrightText: 2025 Eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
if [ "$COMPILER" == "clang" ]
|
||||
|
|
|
@ -44,6 +44,13 @@ if (PLATFORM_SUN)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
# Needed for FFmpeg w/ VAAPI and DRM
|
||||
if (PLATFORM_OPENBSD)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/usr/X11R6/include")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/X11R6/include")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -L/usr/X11R6/lib")
|
||||
endif()
|
||||
|
||||
# Detect current compilation architecture and create standard definitions
|
||||
# =======================================================================
|
||||
|
||||
|
@ -88,7 +95,7 @@ message(STATUS "Target architecture: ${ARCHITECTURE}")
|
|||
|
||||
if (MSVC AND ARCHITECTURE_x86)
|
||||
message(FATAL_ERROR "Attempting to build with the x86 environment is not supported. \
|
||||
This can typically happen if you used the Developer Command Prompt from the start menu;\
|
||||
This can typically happen if you used the Developer Command Prompt from the start menu; \
|
||||
instead, run vcvars64.bat directly, located at C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvars64.bat")
|
||||
endif()
|
||||
|
||||
|
@ -122,7 +129,7 @@ include(CMakeDependentOption)
|
|||
include(CTest)
|
||||
|
||||
# Disable Warnings as Errors for MSVC
|
||||
if (CXX_CL)
|
||||
if (MSVC AND NOT CXX_CLANG)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX-")
|
||||
endif()
|
||||
|
||||
|
@ -159,8 +166,6 @@ option(ENABLE_WEB_SERVICE "Enable web services (telemetry, etc.)" ON)
|
|||
option(ENABLE_WIFI_SCAN "Enable WiFi scanning" OFF)
|
||||
|
||||
option(YUZU_USE_BUNDLED_FFMPEG "Download/Build bundled FFmpeg" ${EXT_DEFAULT})
|
||||
option(YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES "Use Vulkan Utility Headers from externals" ${EXT_DEFAULT})
|
||||
option(YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS "Use SPIRV-Tools from externals" ${EXT_DEFAULT})
|
||||
|
||||
option(YUZU_USE_QT_MULTIMEDIA "Use QtMultimedia for Camera" OFF)
|
||||
|
||||
|
@ -172,8 +177,6 @@ option(ENABLE_CUBEB "Enables the cubeb audio backend" ON)
|
|||
|
||||
CMAKE_DEPENDENT_OPTION(USE_DISCORD_PRESENCE "Enables Discord Rich Presence" OFF "ENABLE_QT" OFF)
|
||||
|
||||
option(ENABLE_MICROPROFILE "Enables microprofile capabilities" OFF)
|
||||
|
||||
option(YUZU_TESTS "Compile tests" "${BUILD_TESTING}")
|
||||
|
||||
option(YUZU_USE_PRECOMPILED_HEADERS "Use precompiled headers" ${EXT_DEFAULT})
|
||||
|
@ -184,9 +187,7 @@ option(YUZU_DOWNLOAD_ANDROID_VVL "Download validation layer binary for android"
|
|||
option(FORCE_DOWNLOAD_WIN_BUNDLES "Forcefully download bundled Windows dependencies (useful for CI)" OFF)
|
||||
|
||||
# TODO(crueter): Cleanup, each dep that has a bundled option should allow to choose between bundled, external, system
|
||||
if (YUZU_USE_CPM AND ENABLE_SDL2)
|
||||
option(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MSVC}")
|
||||
endif()
|
||||
CMAKE_DEPENDENT_OPTION(YUZU_USE_BUNDLED_SDL2 "Download bundled SDL2 build" "${MSVC}" "ENABLE_SDL2" OFF)
|
||||
|
||||
CMAKE_DEPENDENT_OPTION(YUZU_ROOM "Enable dedicated room functionality" ON "NOT ANDROID" OFF)
|
||||
|
||||
|
@ -206,6 +207,8 @@ CMAKE_DEPENDENT_OPTION(USE_SYSTEM_MOLTENVK "Use the system MoltenVK lib (instead
|
|||
|
||||
set(YUZU_TZDB_PATH "" CACHE STRING "Path to a pre-downloaded timezone database")
|
||||
|
||||
option(YUZU_DISABLE_LLVM "Disable LLVM (useful for CI)" OFF)
|
||||
|
||||
set(DEFAULT_ENABLE_OPENSSL ON)
|
||||
if (ANDROID OR WIN32 OR APPLE OR PLATFORM_SUN)
|
||||
# - Windows defaults to the Schannel backend.
|
||||
|
@ -455,10 +458,35 @@ if (YUZU_USE_CPM)
|
|||
)
|
||||
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()
|
||||
# Enforce the search mode of non-required packages for better and shorter failure messages
|
||||
find_package(fmt 8 REQUIRED)
|
||||
find_package(LLVM MODULE COMPONENTS Demangle)
|
||||
if (NOT YUZU_DISABLE_LLVM)
|
||||
find_package(LLVM MODULE COMPONENTS Demangle)
|
||||
endif()
|
||||
|
||||
find_package(nlohmann_json 3.8 REQUIRED)
|
||||
find_package(lz4 REQUIRED)
|
||||
find_package(RenderDoc MODULE)
|
||||
|
@ -467,7 +495,32 @@ else()
|
|||
find_package(Opus 1.3 MODULE REQUIRED)
|
||||
find_package(ZLIB 1.2 REQUIRED)
|
||||
find_package(zstd 1.5 REQUIRED MODULE)
|
||||
find_package(Boost 1.79.0 REQUIRED headers context system fiber)
|
||||
|
||||
# wow
|
||||
if (PLATFORM_LINUX)
|
||||
find_package(Boost 1.57.0 REQUIRED headers context system fiber)
|
||||
else()
|
||||
find_package(Boost 1.57.0 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)
|
||||
|
@ -594,10 +647,8 @@ endfunction()
|
|||
add_subdirectory(externals)
|
||||
|
||||
# pass targets from externals
|
||||
find_package(VulkanUtilityLibraries)
|
||||
find_package(libusb)
|
||||
find_package(VulkanMemoryAllocator)
|
||||
find_package(SPIRV-Tools)
|
||||
|
||||
if (ARCHITECTURE_x86 OR ARCHITECTURE_x86_64)
|
||||
find_package(xbyak)
|
||||
|
|
|
@ -1,17 +1,6 @@
|
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: Copyright 2025 crueter
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# Created-By: crueter
|
||||
# Docs will come at a later date, mostly this is to just reduce boilerplate
|
||||
# and some cmake magic to allow for runtime viewing of dependency versions
|
||||
|
||||
# Future crueter: Wow this was a lie and a half, at this point I might as well make my own CPN
|
||||
# haha just kidding... unless?
|
||||
|
||||
# TODO(crueter): Remember to get more than 6 hours of sleep whenever making giant cmake changes
|
||||
if (MSVC OR ANDROID)
|
||||
set(BUNDLED_DEFAULT ON)
|
||||
else()
|
||||
|
@ -27,6 +16,7 @@ option(CPMUTIL_FORCE_SYSTEM
|
|||
cmake_minimum_required(VERSION 3.22)
|
||||
include(CPM)
|
||||
|
||||
# cpmfile parsing
|
||||
set(CPMUTIL_JSON_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cpmfile.json")
|
||||
|
||||
if (EXISTS ${CPMUTIL_JSON_FILE})
|
||||
|
@ -35,12 +25,11 @@ else()
|
|||
message(WARNING "[CPMUtil] cpmfile ${CPMUTIL_JSON_FILE} does not exist, AddJsonPackage will be a no-op")
|
||||
endif()
|
||||
|
||||
# utility
|
||||
# Utility stuff
|
||||
function(cpm_utils_message level name message)
|
||||
message(${level} "[CPMUtil] ${name}: ${message}")
|
||||
endfunction()
|
||||
|
||||
# utility
|
||||
function(array_to_list array length out)
|
||||
math(EXPR range "${length} - 1")
|
||||
|
||||
|
@ -53,7 +42,6 @@ function(array_to_list array length out)
|
|||
set("${out}" "${NEW_LIST}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# utility
|
||||
function(get_json_element object out member default)
|
||||
string(JSON out_type ERROR_VARIABLE err TYPE "${object}" ${member})
|
||||
|
||||
|
@ -73,14 +61,13 @@ function(get_json_element object out member default)
|
|||
set("${out}" "${outvar}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# Kinda cancerous but whatever
|
||||
# The preferred usage
|
||||
function(AddJsonPackage)
|
||||
set(oneValueArgs
|
||||
NAME
|
||||
|
||||
# these are overrides that can be generated at runtime, so can be defined separately from the json
|
||||
DOWNLOAD_ONLY
|
||||
SYSTEM_PACKAGE
|
||||
BUNDLED_PACKAGE
|
||||
)
|
||||
|
||||
|
@ -90,6 +77,7 @@ function(AddJsonPackage)
|
|||
"${ARGN}")
|
||||
|
||||
list(LENGTH ARGN argnLength)
|
||||
|
||||
# single name argument
|
||||
if(argnLength EQUAL 1)
|
||||
set(JSON_NAME "${ARGV0}")
|
||||
|
@ -199,7 +187,6 @@ function(AddJsonPackage)
|
|||
endif()
|
||||
|
||||
set(options ${options} ${JSON_OPTIONS})
|
||||
|
||||
# end options
|
||||
|
||||
# system/bundled
|
||||
|
@ -241,7 +228,7 @@ endfunction()
|
|||
function(AddPackage)
|
||||
cpm_set_policies()
|
||||
|
||||
# TODO(crueter): docs, git clone
|
||||
# TODO(crueter): git clone?
|
||||
|
||||
#[[
|
||||
URL configurations, descending order of precedence:
|
||||
|
@ -611,11 +598,6 @@ function(AddCIPackage)
|
|||
|
||||
if (DEFINED ARTIFACT_DIR)
|
||||
include(${ARTIFACT_DIR}/${ARTIFACT_CMAKE}.cmake)
|
||||
|
||||
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_NAMES ${ARTIFACT_NAME})
|
||||
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_URLS "https://github.com/${ARTIFACT_REPO}") # TODO(crueter) other hosts?
|
||||
set_property(GLOBAL APPEND PROPERTY CPM_PACKAGE_SHAS ${ARTIFACT_VERSION})
|
||||
|
||||
set(${ARTIFACT_PACKAGE}_ADDED TRUE PARENT_SCOPE)
|
||||
else()
|
||||
find_package(${ARTIFACT_PACKAGE} ${ARTIFACT_MIN_VERSION} REQUIRED)
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
# SPDX-FileCopyrightText: 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
find_package(PkgConfig QUIET)
|
||||
pkg_search_module(mbedtls QUIET IMPORTED_TARGET mbedtls)
|
||||
find_package_handle_standard_args(mbedtls
|
||||
REQUIRED_VARS mbedtls_LINK_LIBRARIES
|
||||
VERSION_VAR mbedtls_VERSION
|
||||
)
|
||||
|
||||
pkg_search_module(mbedcrypto QUIET IMPORTED_TARGET mbedcrypto)
|
||||
find_package_handle_standard_args(mbedcrypto
|
||||
REQUIRED_VARS mbedcrypto_LINK_LIBRARIES
|
||||
VERSION_VAR mbedcrypto_VERSION
|
||||
)
|
|
@ -1,4 +1,4 @@
|
|||
# SPDX-FileCopyrightText: 2025 Eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
|
|
@ -1,38 +1,35 @@
|
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# Gets a UTC timestamp and sets the provided variable to it
|
||||
# generate git/build information
|
||||
include(GetSCMRev)
|
||||
|
||||
function(get_timestamp _var)
|
||||
string(TIMESTAMP timestamp UTC)
|
||||
set(${_var} "${timestamp}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# generate git/build information
|
||||
include(GetGitRevisionDescription)
|
||||
if(NOT GIT_REF_SPEC)
|
||||
get_git_head_revision(GIT_REF_SPEC GIT_REV)
|
||||
endif()
|
||||
if(NOT GIT_DESC)
|
||||
git_describe(GIT_DESC --always --long --dirty)
|
||||
endif()
|
||||
if (NOT GIT_BRANCH)
|
||||
git_branch_name(GIT_BRANCH)
|
||||
endif()
|
||||
get_timestamp(BUILD_DATE)
|
||||
|
||||
git_get_exact_tag(GIT_TAG --tags)
|
||||
if (GIT_TAG MATCHES "NOTFOUND")
|
||||
set(BUILD_VERSION "${GIT_DESC}")
|
||||
set(IS_DEV_BUILD true)
|
||||
else()
|
||||
set(BUILD_VERSION ${GIT_TAG})
|
||||
if (DEFINED GIT_RELEASE)
|
||||
set(BUILD_VERSION "${GIT_TAG}")
|
||||
set(GIT_REFSPEC "${GIT_RELEASE}")
|
||||
set(IS_DEV_BUILD false)
|
||||
else()
|
||||
string(SUBSTRING ${GIT_COMMIT} 0 10 BUILD_VERSION)
|
||||
set(BUILD_VERSION "${BUILD_VERSION}-${GIT_REFSPEC}")
|
||||
set(IS_DEV_BUILD true)
|
||||
endif()
|
||||
|
||||
set(GIT_DESC ${BUILD_VERSION})
|
||||
|
||||
# Generate cpp with Git revision from template
|
||||
# Also if this is a CI build, add the build name (ie: Nightly, Canary) to the scm_rev file as well
|
||||
set(REPO_NAME "Eden")
|
||||
set(BUILD_ID ${GIT_BRANCH})
|
||||
set(BUILD_ID ${GIT_REFSPEC})
|
||||
set(BUILD_FULLNAME "${REPO_NAME} ${BUILD_VERSION} ")
|
||||
|
||||
set(CXX_COMPILER "${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
|
|
49
CMakeModules/GetSCMRev.cmake
Normal file
49
CMakeModules/GetSCMRev.cmake
Normal file
|
@ -0,0 +1,49 @@
|
|||
# SPDX-FileCopyrightText: 2025 crueter
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
include(GetGitRevisionDescription)
|
||||
|
||||
function(trim var)
|
||||
string(REGEX REPLACE "\n" "" new "${${var}}")
|
||||
set(${var} ${new} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
set(TAG_FILE ${CMAKE_SOURCE_DIR}/GIT-TAG)
|
||||
set(REF_FILE ${CMAKE_SOURCE_DIR}/GIT-REFSPEC)
|
||||
set(COMMIT_FILE ${CMAKE_SOURCE_DIR}/GIT-COMMIT)
|
||||
set(RELEASE_FILE ${CMAKE_SOURCE_DIR}/GIT-RELEASE)
|
||||
|
||||
if (EXISTS ${REF_FILE} AND EXISTS ${COMMIT_FILE})
|
||||
file(READ ${REF_FILE} GIT_REFSPEC)
|
||||
file(READ ${COMMIT_FILE} GIT_COMMIT)
|
||||
else()
|
||||
get_git_head_revision(GIT_REFSPEC GIT_COMMIT)
|
||||
git_branch_name(GIT_REFSPEC)
|
||||
if (GIT_REFSPEC MATCHES "NOTFOUND")
|
||||
set(GIT_REFSPEC 1.0.0)
|
||||
set(GIT_COMMIT stable)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (EXISTS ${TAG_FILE})
|
||||
file(READ ${TAG_FILE} GIT_TAG)
|
||||
else()
|
||||
git_describe(GIT_TAG --tags --abbrev=0)
|
||||
if (GIT_TAG MATCHES "NOTFOUND")
|
||||
set(GIT_TAG "${GIT_REFSPEC}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (EXISTS ${RELEASE_FILE})
|
||||
file(READ ${RELEASE_FILE} GIT_RELEASE)
|
||||
trim(GIT_RELEASE)
|
||||
message(STATUS "Git release: ${GIT_RELEASE}")
|
||||
endif()
|
||||
|
||||
trim(GIT_REFSPEC)
|
||||
trim(GIT_COMMIT)
|
||||
trim(GIT_TAG)
|
||||
|
||||
message(STATUS "Git commit: ${GIT_COMMIT}")
|
||||
message(STATUS "Git tag: ${GIT_TAG}")
|
||||
message(STATUS "Git refspec: ${GIT_REFSPEC}")
|
|
@ -1,3 +1,6 @@
|
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
10
README.md
10
README.md
|
@ -55,15 +55,11 @@ You can also follow us on [X (Twitter)](https://x.com/edenemuofficial) for updat
|
|||
|
||||
If you would like to contribute, we are open to new developers and pull requests. Please ensure that your work is of a high standard and properly documented. You can also contact any of the developers on Discord or Revolt to learn more about the current state of the emulator.
|
||||
|
||||
See the [sign-up instructions](docs/SIGNUP.md) for information on registration.
|
||||
|
||||
## Building
|
||||
|
||||
* **Windows**: [Windows Building Guide](./docs/build/Windows.md)
|
||||
* **Linux**: [Linux Building Guide](./docs/build/Linux.md)
|
||||
* **Android**: [Android Building Guide](./docs/build/Android.md)
|
||||
* **Solaris**: [Solaris Building Guide](./docs/build/Solaris.md)
|
||||
* **FreeBSD**: [FreeBSD Building Guide](./docs/build/FreeBSD.md)
|
||||
* **macOS**: [macOS Building Guide](./docs/build/macOS.md)
|
||||
* **OpenBSD**: [OpenBSD Building Guide](./docs/build/OpenBSD.md)
|
||||
See the [General Build Guide](docs/Build.md)
|
||||
|
||||
## Download
|
||||
|
||||
|
|
36
cpmfile.json
36
cpmfile.json
|
@ -91,6 +91,42 @@
|
|||
"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",
|
||||
|
|
160
docs/Build.md
Normal file
160
docs/Build.md
Normal file
|
@ -0,0 +1,160 @@
|
|||
# Building Eden
|
||||
|
||||
> [!WARNING]
|
||||
> This guide is intended for developers ONLY. If you are not a developer or packager, you are unlikely to receive support.
|
||||
|
||||
This is a full-fledged guide to build Eden on all supported platforms.
|
||||
|
||||
## Dependencies
|
||||
First, you must [install some dependencies](Deps.md).
|
||||
|
||||
## Clone
|
||||
Next, you will want to clone Eden via the terminal:
|
||||
|
||||
```sh
|
||||
git clone https://git.eden-emu.dev/eden-emu/eden.git
|
||||
cd eden
|
||||
```
|
||||
|
||||
Or use Qt Creator (Create Project -> Import Project -> Git Clone).
|
||||
|
||||
## Android
|
||||
|
||||
Android has a completely different build process than other platforms. See its [dedicated page](build/Android.md).
|
||||
|
||||
## Initial Configuration
|
||||
|
||||
If the configure phase fails, see the `Troubleshooting` section below. Usually, as long as you followed the dependencies guide, the defaults *should* successfully configure and build.
|
||||
|
||||
### Qt Creator
|
||||
|
||||
This is the recommended GUI method for Linux, macOS, and Windows.
|
||||
|
||||
<details>
|
||||
<summary>Click to Open</summary>
|
||||
|
||||
> [!WARNING]
|
||||
> On MSYS2, to use Qt Creator you are recommended to *also* install Qt from the online installer, ensuring to select the "MinGW" version.
|
||||
|
||||
Open the CMakeLists.txt file in your cloned directory via File -> Open File or Project (Ctrl+O), if you didn't clone Eden via the project import tool.
|
||||
|
||||
Select your desired "kit" (usually, the default is okay). RelWithDebInfo or Release is recommended:
|
||||
|
||||

|
||||
|
||||
Hit "Configure Project", then wait for CMake to finish configuring (may take a while on Windows).
|
||||
|
||||
</details>
|
||||
|
||||
### Command Line
|
||||
|
||||
This is recommended for *BSD, Solaris, Linux, and MSYS2. MSVC is possible, but not recommended.
|
||||
|
||||
<details>
|
||||
<summary>Click to Open</summary>
|
||||
|
||||
Note that CMake must be in your PATH, and you must be in the cloned Eden directory. On Windows, you must also set up a Visual C++ development environment. This can be done by running `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat` in the same terminal.
|
||||
|
||||
Recommended generators:
|
||||
|
||||
- MSYS2: `MSYS Makefiles`
|
||||
- MSVC: Install **[ninja](https://ninja-build.org/)** and use `Ninja`, OR use `Visual Studio 17 2022`
|
||||
- macOS: `Ninja` (preferred) or `Xcode`
|
||||
- Others: `Ninja` (preferred) or `UNIX Makefiles`
|
||||
|
||||
BUILD_TYPE should usually be `Release` or `RelWithDebInfo` (debug symbols--compiled executable will be large). If you are using a debugger and annoyed with stuff getting optimized out, try `Debug`.
|
||||
|
||||
Also see the [Options](Options.md) page for additional CMake options.
|
||||
|
||||
```sh
|
||||
cmake -S . -B build -G "GENERATOR" -DCMAKE_BUILD_TYPE=<BUILD_TYPE> -DYUZU_TESTS=OFF
|
||||
```
|
||||
|
||||
If you are on Windows and prefer to use Clang:
|
||||
|
||||
```sh
|
||||
cmake -S . -B build -G "GENERATOR" -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
### [CLion](https://www.jetbrains.com/clion/)
|
||||
|
||||
<details>
|
||||
<summary>Click to Open</summary>
|
||||
|
||||
* Clone the Repository:
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899046-0d41d7d6-8e4d-4ed2-9587-b57088af5214.png" width="500">
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899061-b2ea274a-e88c-40ae-bf0b-4450b46e9fea.png" width="500">
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899076-0e5988c4-d431-4284-a5ff-9ecff973db76.png" width="500">
|
||||
|
||||
---
|
||||
|
||||
### Building & Setup
|
||||
|
||||
* Once Cloned, You will be taken to a prompt like the image below:
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899092-3fe4cec6-a540-44e3-9e1e-3de9c2fffc2f.png" width="500">
|
||||
|
||||
* Set the settings to the image below:
|
||||
* Change `Build type: Release`
|
||||
* Change `Name: Release`
|
||||
* Change `Toolchain Visual Studio`
|
||||
* Change `Generator: Let CMake decide`
|
||||
* Change `Build directory: build`
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899164-6cee8482-3d59-428f-b1bc-e6dc793c9b20.png" width="500">
|
||||
|
||||
* Click OK; now Clion will build a directory and index your code to allow for IntelliSense. Please be patient.
|
||||
* Once this process has been completed (No loading bar bottom right), you can now build eden
|
||||
* In the top right, click on the drop-down menu, select all configurations, then select eden
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899226-975048e9-bc6d-4ec1-bc2d-bd8a1e15ed04.png" height="500" >
|
||||
|
||||
* Now run by clicking the play button or pressing Shift+F10, and eden will auto-launch once built.
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899275-d514ec6a-e563-470e-81e2-3e04f0429b68.png" width="500">
|
||||
</details>
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If your initial configure failed:
|
||||
- *Carefully* re-read the [dependencies guide](Deps.md)
|
||||
- Clear the CPM cache (`.cache/cpm`) and CMake cache (`<build directory>/CMakeCache.txt`)
|
||||
- Evaluate the error and find any related settings
|
||||
- See the [CPM docs](CPM.md) to see if you may need to forcefully bundle any packages
|
||||
|
||||
Otherwise, feel free to ask for help in Revolt or Discord.
|
||||
|
||||
## Caveats
|
||||
|
||||
Many platforms have quirks, bugs, and other fun stuff that may cause issues when building OR running. See the [Caveats page](Caveats.md) before continuing.
|
||||
|
||||
## Building & Running
|
||||
|
||||
### Qt Creator
|
||||
|
||||
Simply hit Ctrl+B, or the "hammer" icon in the bottom left. To run, hit the "play" icon, or Ctrl+R.
|
||||
|
||||
### Command Line
|
||||
|
||||
If you are not on Windows and are using the `UNIX Makefiles` generator, you must also add `-j$(nproc)` to this command.
|
||||
|
||||
```
|
||||
cmake --build build
|
||||
```
|
||||
|
||||
Your compiled executable will be in:
|
||||
- `build/bin/eden.exe` for Windows,
|
||||
- `build/bin/eden.app/Contents/MacOS/eden` for macOS,
|
||||
- and `build/bin/eden` for others.
|
||||
|
||||
## Scripts
|
||||
|
||||
Some platforms have convenience scripts provided for building.
|
||||
|
||||
- **[Linux](scripts/Linux.md)**
|
||||
- **[Windows](scripts/Windows.md)**
|
||||
|
||||
macOS scripts will come soon.
|
27
docs/CODEOWNERS
Normal file
27
docs/CODEOWNERS
Normal file
|
@ -0,0 +1,27 @@
|
|||
# ui stuff
|
||||
/src/android @AleksandrPopovich @nyxynx @Producdevity
|
||||
/src/yuzu @crueter
|
||||
/src/eden @crueter
|
||||
/src/frontend_common @crueter
|
||||
/src/qt_common @crueter
|
||||
|
||||
# docs, meta
|
||||
/docs @Lizzie @crueter
|
||||
/.ci @crueter
|
||||
|
||||
# cmake
|
||||
*.cmake @crueter
|
||||
*CMakeLists.txt @crueter
|
||||
*.in @crueter
|
||||
|
||||
# individual stuff
|
||||
src/web_service @AleksandrPopovich
|
||||
src/dynarmic @Lizzie
|
||||
src/core @Lizzie @Maufeat @PavelBARABANOV @MrPurple666 @JPikachu
|
||||
src/core/hle @Maufeat @PavelBARABANOV @SDK-Chan
|
||||
src/core/arm @Lizzie @MrPurple666
|
||||
src/*_room @AleksandrPopovich
|
||||
src/video_core @CamilleLaVey @MaranBr @Wildcard @weakboson
|
||||
|
||||
# Global owners/triage
|
||||
* @CamilleLaVey @Maufeat @crueter @MrPurple666 @MaranBr @Lizzie
|
|
@ -177,7 +177,7 @@ If `ci` is `true`:
|
|||
|
||||
### Examples
|
||||
|
||||
In order: OpenSSL CI, Boost (tag + artifact), discord-rpc (sha + options + patches), Opus (options + find_args)
|
||||
In order: OpenSSL CI, Boost (tag + artifact), Opus (options + find_args), discord-rpc (sha + options + patches)
|
||||
|
||||
```json
|
||||
{
|
||||
|
@ -245,6 +245,6 @@ include(CPMUtil)
|
|||
|
||||
Currently, `cpm-fetch.sh` defines the following directories for cpmfiles (max depth of 2, so subdirs are caught as well):
|
||||
|
||||
`externals src/yuzu src/dynarmic .`
|
||||
`externals src/qt_common src/dynarmic .`
|
||||
|
||||
Whenever you add a new cpmfile, update the script accordingly
|
52
docs/Caveats.md
Normal file
52
docs/Caveats.md
Normal file
|
@ -0,0 +1,52 @@
|
|||
# Caveats
|
||||
|
||||
## Arch Linux
|
||||
|
||||
- httplib AUR package is broken. Set `httplib_FORCE_BUNDLED=ON` if you have it installed.
|
||||
- Eden is also available as an [AUR package](https://aur.archlinux.org/packages/eden-git). If you are unable to build, either use that or compare your process to the PKGBUILD.
|
||||
|
||||
## Gentoo Linux
|
||||
|
||||
Do not use the system sirit or xbyak packages.
|
||||
|
||||
## macOS
|
||||
|
||||
macOS is largely untested. Expect crashes, significant Vulkan issues, and other fun stuff.
|
||||
|
||||
## Solaris
|
||||
|
||||
Qt Widgets appears to be broken. For now, add `-DENABLE_QT=OFF` to your configure command. In the meantime, a Qt Quick frontend is in the works--check back later!
|
||||
|
||||
This is needed for some dependencies that call cc directly (tz):
|
||||
|
||||
```sh
|
||||
echo '#!/bin/sh' >cc
|
||||
echo 'gcc $@' >>cc
|
||||
chmod +x cc
|
||||
export PATH="$PATH:$PWD"
|
||||
```
|
||||
|
||||
Default MESA is a bit outdated, the following environment variables should be set for a smoother experience:
|
||||
```sh
|
||||
export MESA_GL_VERSION_OVERRIDE=4.6
|
||||
export MESA_GLSL_VERSION_OVERRIDE=460
|
||||
export MESA_EXTENSION_MAX_YEAR=2025
|
||||
export MESA_DEBUG=1
|
||||
export MESA_VK_VERSION_OVERRIDE=1.3
|
||||
# Only if nvidia/intel drm drivers cause crashes, will severely hinder performance
|
||||
export LIBGL_ALWAYS_SOFTWARE=1
|
||||
```
|
||||
|
||||
- Modify the generated ffmpeg.make (in build dir) if using multiple threads (base system `make` doesn't use `-j4`, so change for `gmake`).
|
||||
- If using OpenIndiana, due to a bug in SDL2's CMake configuration, audio driver defaults to SunOS `<sys/audioio.h>`, which does not exist on OpenIndiana. Using external or bundled SDL2 may solve this.
|
||||
- System OpenSSL generally does not work. Instead, use `-DYUZU_USE_BUNDLED_OPENSSL=ON` to use a bundled static OpenSSL, or build a system dependency from source.
|
||||
|
||||
## OpenBSD
|
||||
|
||||
After configuration, you may need to modify `externals/ffmpeg/CMakeFiles/ffmpeg-build/build.make` to use `-j$(nproc)` instead of just `-j`.
|
||||
|
||||
## FreeBSD
|
||||
|
||||
Eden is not currently available as a port on FreeBSD, though it is in the works. For now, the recommended method of usage is to compile it yourself.
|
||||
|
||||
The available OpenSSL port (3.0.17) is out-of-date, and using a bundled static library instead is recommended; to do so, add `-DYUZU_USE_BUNDLED_OPENSSL=ON` to your CMake configure command.
|
214
docs/Deps.md
Normal file
214
docs/Deps.md
Normal file
|
@ -0,0 +1,214 @@
|
|||
# Dependencies
|
||||
|
||||
To build Eden, you MUST have a C++ compiler.
|
||||
* On Linux, this is usually [GCC](https://gcc.gnu.org/) 11+ or [Clang](https://clang.llvm.org/) v14+
|
||||
- GCC 12 also requires Clang 14+
|
||||
* On Windows, this is either:
|
||||
- **[MSVC](https://visualstudio.microsoft.com/downloads/)**,
|
||||
* *A convenience script to install the **minimal** version (Visual Build Tools) is provided in `.ci/windows/install-msvc.ps1`*
|
||||
- clang-cl - can be downloaded from the MSVC installer,
|
||||
- or **[MSYS2](https://www.msys2.org)**
|
||||
* On macOS, this is Apple Clang
|
||||
- This can be installed with `xcode-select --install`
|
||||
|
||||
The following additional tools are also required:
|
||||
|
||||
* **[CMake](https://www.cmake.org/)** 3.22+ - already included with the Android SDK
|
||||
* **[Git](https://git-scm.com/)** for version control
|
||||
- **[Windows installer](https://gitforwindows.org)**
|
||||
* On Windows, you must install the **[Vulkan SDK](https://vulkan.lunarg.com/sdk/home#windows)** as well
|
||||
- *A convenience script to install the latest SDK is provided in `.ci/windows/install-vulkan-sdk.ps1`*
|
||||
|
||||
If you are on desktop and plan to use the Qt frontend, you *must* install Qt 6, and optionally Qt Creator (the recommended IDE for building)
|
||||
* On Linux, *BSD and macOS, this can be done by the package manager
|
||||
- If you wish to use Qt Creator, append `qtcreator` or `qt-creator` to the commands seen below.
|
||||
* MSVC/clang-cl users on Windows must install through the [official installer](https://www.qt.io/download-qt-installer-oss)
|
||||
* Linux and macOS users may choose to use the installer as well.
|
||||
* MSYS2 can also install Qt 6 via the package manager
|
||||
|
||||
If you are on Windows and NOT building with MSYS2, you may go [back home](Build.md) and continue.
|
||||
|
||||
## Externals
|
||||
The following are handled by Eden's externals:
|
||||
|
||||
* [FFmpeg](https://ffmpeg.org/) (should use `-DYUZU_USE_EXTERNAL_FFMPEG=ON`)
|
||||
* [SDL2](https://www.libsdl.org/download-2.0.php) 2.0.18+ (should use `-DYUZU_USE_EXTERNAL_SDL2=ON` OR `-DYUZU_USE_BUNDLED_SDL2=ON` to reduce compile time)
|
||||
|
||||
All other dependencies will be downloaded and built by [CPM](https://github.com/cpm-cmake/CPM.cmake/) if `YUZU_USE_CPM` is on, but will always use system dependencies if available (UNIX-like only):
|
||||
|
||||
* [Boost](https://www.boost.org/users/download/) 1.57.0+
|
||||
* [Catch2](https://github.com/catchorg/Catch2) 3.0.1 if `YUZU_TESTS` or `DYNARMIC_TESTS` are on
|
||||
* [fmt](https://fmt.dev/) 8.0.1+
|
||||
* [lz4](http://www.lz4.org)
|
||||
* [nlohmann\_json](https://github.com/nlohmann/json) 3.8+
|
||||
* [OpenSSL](https://www.openssl.org/source/) 1.1.1+
|
||||
* [ZLIB](https://www.zlib.net/) 1.2+
|
||||
* [zstd](https://facebook.github.io/zstd/) 1.5+
|
||||
* [enet](http://enet.bespin.org/) 1.3+
|
||||
* [Opus](https://opus-codec.org/) 1.3+
|
||||
* [MbedTLS](https://github.com/Mbed-TLS/mbedtls) 3+
|
||||
|
||||
Vulkan 1.3.274+ is also needed:
|
||||
* [VulkanUtilityLibraries](https://github.com/KhronosGroup/Vulkan-Utility-Libraries)
|
||||
* [VulkanHeaders](https://github.com/KhronosGroup/Vulkan-Headers)
|
||||
* [SPIRV-Tools](https://github.com/KhronosGroup/SPIRV-Tools)
|
||||
* [SPIRV-Headers](https://github.com/KhronosGroup/SPIRV-Headers)
|
||||
|
||||
Certain other dependencies will be fetched by CPM regardless. System packages *can* be used for these libraries, but many are either not packaged by most distributions OR have issues when used by the system:
|
||||
|
||||
* [SimpleIni](https://github.com/brofield/simpleini)
|
||||
* [DiscordRPC](https://github.com/eden-emulator/discord-rpc)
|
||||
* [cubeb](https://github.com/mozilla/cubeb)
|
||||
* [libusb](https://github.com/libusb/libusb)
|
||||
* [VulkanMemoryAllocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator)
|
||||
* [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
|
||||
* [cpp-jwt](https://github.com/arun11299/cpp-jwt) 1.4+ - if `ENABLE_WEB_SERVICE` is on
|
||||
* [unordered-dense](https://github.com/martinus/unordered_dense)
|
||||
* [mcl](https://github.com/azahar-emu/mcl) - subject to removal
|
||||
|
||||
On amd64:
|
||||
* [xbyak](https://github.com/herumi/xbyak) - 7.22 or earlier is recommended
|
||||
* [zycore](https://github.com/zyantific/zycore-c)
|
||||
* [zydis](https://github.com/zyantific/zydis) 4+
|
||||
* Note: zydis and zycore-c MUST match. Using one as a system dependency and the other as a bundled dependency WILL break things
|
||||
|
||||
On aarch64 OR if `DYNARMIC_TESTS` is on:
|
||||
* [oaknut](https://github.com/merryhime/oaknut) 2.0.1+
|
||||
|
||||
On riscv64:
|
||||
* [biscuit](https://github.com/lioncash/biscuit) 0.9.1+
|
||||
|
||||
## Commands
|
||||
|
||||
These are commands to install all necessary dependencies on various Linux and BSD distributions, as well as macOS. Always review what you're running before you hit Enter!
|
||||
|
||||
Click on the arrows to expand.
|
||||
|
||||
<details>
|
||||
<summary>Arch Linux</summary>
|
||||
|
||||
```sh
|
||||
sudo pacman -Syu --needed base-devel boost catch2 cmake enet ffmpeg fmt git glslang libzip lz4 mbedtls ninja nlohmann-json openssl opus qt6-base qt6-multimedia sdl2 zlib zstd zip unzip zydis zycore vulkan-headers vulkan-utility-libraries libusb spirv-tools spirv-headers
|
||||
```
|
||||
|
||||
* Building with QT Web Engine requires `qt6-webengine` as well.
|
||||
* Proper Wayland support requires `qt6-wayland`
|
||||
* GCC 11 or later is required.
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Ubuntu, Debian, Mint Linux</summary>
|
||||
|
||||
```sh
|
||||
sudo apt-get install autoconf cmake g++ gcc git glslang-tools libasound2 libboost-context-dev libglu1-mesa-dev libhidapi-dev libpulse-dev libtool libudev-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-xkb1 libxext-dev libxkbcommon-x11-0 mesa-common-dev nasm ninja-build qt6-base-private-dev libmbedtls-dev catch2 libfmt-dev liblz4-dev nlohmann-json3-dev libzstd-dev libssl-dev libavfilter-dev libavcodec-dev libswscale-dev pkg-config zlib1g-dev libva-dev libvdpau-dev qt6-tools-dev libzydis-dev zydis-tools libzycore-dev
|
||||
```
|
||||
|
||||
* Ubuntu 22.04, Linux Mint 20, or Debian 12 or later is required.
|
||||
* To enable QT Web Engine, add `-DYUZU_USE_QT_WEB_ENGINE=ON` when running CMake.
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Fedora Linux</summary>
|
||||
|
||||
```sh
|
||||
sudo dnf install autoconf ccache cmake fmt-devel gcc{,-c++} glslang hidapi-devel json-devel libtool libusb1-devel libzstd-devel lz4-devel nasm ninja-build openssl-devel pulseaudio-libs-devel qt6-linguist qt6-qtbase{-private,}-devel qt6-qtwebengine-devel qt6-qtmultimedia-devel speexdsp-devel wayland-devel zlib-devel ffmpeg-devel libXext-devel
|
||||
```
|
||||
|
||||
* Force system libraries via CMake arguments:
|
||||
* SDL2: `-DYUZU_USE_BUNDLED_SDL2=OFF -DYUZU_USE_EXTERNAL_SDL2=OFF`
|
||||
* FFmpeg: `-DYUZU_USE_EXTERNAL_FFMPEG=OFF`
|
||||
* [RPM Fusion](https://rpmfusion.org/) is required for `ffmpeg-devel`
|
||||
* Fedora 32 or later is required.
|
||||
* Fedora 36+ users with GCC 12 need Clang and should configure CMake with:
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>macOS</summary>
|
||||
|
||||
Install dependencies from **[Homebrew](https://brew.sh/)**
|
||||
|
||||
```sh
|
||||
brew install autoconf automake boost ffmpeg fmt glslang hidapi libtool libusb lz4 ninja nlohmann-json openssl pkg-config qt@6 sdl2 speexdsp zlib zstd cmake Catch2 molten-vk vulkan-loader spirv-tools
|
||||
```
|
||||
|
||||
If you are compiling on Intel Mac, or are using a Rosetta Homebrew installation, you must replace all references of `/opt/homebrew` with `/usr/local`.
|
||||
|
||||
To run with MoltenVK, install additional dependencies:
|
||||
```sh
|
||||
brew install molten-vk vulkan-loader
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>FreeBSD</summary>
|
||||
|
||||
```
|
||||
devel/cmake
|
||||
devel/sdl20
|
||||
devel/boost-libs
|
||||
devel/catch2
|
||||
devel/libfmt
|
||||
devel/nlohmann-json
|
||||
devel/ninja
|
||||
devel/nasm
|
||||
devel/autoconf
|
||||
devel/pkgconf
|
||||
devel/qt6-base
|
||||
|
||||
net/enet
|
||||
|
||||
multimedia/ffnvcodec-headers
|
||||
multimedia/ffmpeg
|
||||
|
||||
audio/opus
|
||||
|
||||
archivers/liblz4
|
||||
|
||||
lang/gcc12
|
||||
|
||||
graphics/glslang
|
||||
graphics/vulkan-utility-libraries
|
||||
```
|
||||
|
||||
If using FreeBSD 12 or prior, use `devel/pkg-config` instead.
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>OpenBSD</summary>
|
||||
|
||||
```sh
|
||||
pkg_add -u
|
||||
pkg_add cmake nasm git boost unzip--iconv autoconf-2.72p0 bash ffmpeg glslang gmake llvm-19.1.7p3 qt6 jq fmt nlohmann-json enet boost vulkan-utility-libraries vulkan-headers spirv-headers spirv-tools catch2 sdl2 libusb1.1.0.27
|
||||
```
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Solaris / OpenIndiana</summary>
|
||||
|
||||
Always consult [the OpenIndiana package list](https://pkg.openindiana.org/hipster/en/index.shtml) to cross-verify availability.
|
||||
|
||||
Run the usual update + install of essential toolings: `sudo pkg update && sudo pkg install git cmake`.
|
||||
|
||||
- **gcc**: `sudo pkg install developer/gcc-14`.
|
||||
- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`.
|
||||
|
||||
Then install the libraries: `sudo pkg install qt6 boost glslang libzip library/lz4 nlohmann-json openssl opus sdl2 zlib compress/zstd unzip pkg-config nasm autoconf mesa library/libdrm header-drm developer/fmt`.
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>MSYS2</summary>
|
||||
|
||||
* Open the `MSYS2 MinGW 64-bit` shell (`mingw64.exe`)
|
||||
* Download and install all dependencies using:
|
||||
* `pacman -Syu git make mingw-w64-x86_64-SDL2 mingw-w64-x86_64-cmake mingw-w64-x86_64-python-pip mingw-w64-x86_64-qt6 mingw-w64-x86_64-toolchain autoconf libtool automake-wrapper`
|
||||
* Add MinGW binaries to the PATH:
|
||||
* `echo 'PATH=/mingw64/bin:$PATH' >> ~/.bashrc`
|
||||
* Add VulkanSDK to the PATH:
|
||||
* `echo 'PATH=$(readlink -e /c/VulkanSDK/*/Bin/):$PATH' >> ~/.bashrc`
|
||||
</details>
|
||||
|
||||
## All Done
|
||||
|
||||
You may now return to the **[root build guide](Build.md)**.
|
|
@ -1,23 +1,3 @@
|
|||
# Development
|
||||
|
||||
* **Windows**: [Windows Building Guide](./build/Windows.md)
|
||||
* **Linux**: [Linux Building Guide](./build/Linux.md)
|
||||
* **Android**: [Android Building Guide](./build/Android.md)
|
||||
* **Solaris**: [Solaris Building Guide](./build/Solaris.md)
|
||||
* **FreeBSD**: [FreeBSD Building Guide](./build/FreeBSD.md)
|
||||
* **macOS**: [macOS Building Guide](./build/macOS.md)
|
||||
* **OpenBSD**: [OpenBSD Building Guide](./build/OpenBSD.md)
|
||||
|
||||
# CPM
|
||||
|
||||
CPM (CMake Package Manager) is the preferred method of managing dependencies within Eden. Documentation on adding dependencies/using CPMUtil is in the works.
|
||||
|
||||
Notes:
|
||||
- `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
|
||||
- `CPMUTIL_DEFAULT_SYSTEM` can be set to `OFF` to force the usage of bundled dependencies. This can marginally decrease the final package size.
|
||||
- When adding new prebuilt dependencies a la OpenSSL, SDL2, or FFmpeg, there *must* be a CMake option made available to forcefully download this bundle. See the OpenSSL implementation in the root CMakeLists for an example.
|
||||
* This is necessary to allow for creation of fully-qualified source packs that allow for offline builds after download (some package managers and distros enforce this)
|
||||
|
||||
# Guidelines
|
||||
|
||||
## License Headers
|
||||
|
@ -37,6 +17,8 @@ FIX=true .ci/license-header.sh
|
|||
git commit --amend -a --no-edit
|
||||
```
|
||||
|
||||
If the work is licensed/vendored from other people or projects, you may omit the license headers. Additionally, if you wish to retain authorship over a piece of code, you may attribute it to yourself; however, the code may be changed at any given point and brought under the attribution of Eden.
|
||||
|
||||
## Pull Requests
|
||||
Pull requests are only to be merged by core developers when properly tested and discussions conclude on Discord or other communication channels. Labels are recommended but not required. However, all PRs MUST be namespaced and optionally typed:
|
||||
```
|
||||
|
@ -49,7 +31,7 @@ Pull requests are only to be merged by core developers when properly tested and
|
|||
|
||||
- The level of namespacing is generally left to the committer's choice.
|
||||
- However, we never recommend going more than two levels *except* in `hle`, in which case you may go as many as four levels depending on the specificity of your changes.
|
||||
- Ocassionally, up to two namespaces may be provided for more clarity.
|
||||
- Ocassionally, up to two additional namespaces may be provided for more clarity.
|
||||
* Changes that affect the entire project (sans CMake changes) should be namespaced as `meta`.
|
||||
- Maintainers are permitted to change namespaces at will.
|
||||
- Commits within PRs are not required to be namespaced, but it is highly recommended.
|
||||
|
|
69
docs/Options.md
Normal file
69
docs/Options.md
Normal file
|
@ -0,0 +1,69 @@
|
|||
# CMake Options
|
||||
|
||||
To change these options, add `-DOPTION_NAME=NEWVALUE` to the command line.
|
||||
|
||||
- On Qt Creator, go to Project -> Current Configuration
|
||||
|
||||
Notes:
|
||||
- Defaults are marked per-platform.
|
||||
- "Non-UNIX" just means Windows/MSVC and Android (yes, macOS is UNIX
|
||||
- Android generally doesn't need to change anything; if you do, go to `src/android/app/build.gradle.kts`
|
||||
- To set a boolean variable to on, use `ON` for the value; to turn it off, use `OFF`
|
||||
- If a variable is mentioned as being e.g. "ON" for a specific platform(s), that means it is defaulted to OFF on others
|
||||
- TYPE is always boolean unless otherwise specified
|
||||
- Format:
|
||||
* `OPTION_NAME` (TYPE DEFAULT) DESCRIPTION
|
||||
|
||||
## Options
|
||||
|
||||
- `YUZU_USE_CPM` (ON for non-UNIX) Use CPM to fetch system dependencies (fmt, boost, etc) if needed. Externals will still be fetched. See the [CPM](CPM.md) and [Deps](Deps.md) docs for more info.
|
||||
- `ENABLE_WEB_SERVICE` (ON) Enable multiplayer service
|
||||
- `ENABLE_WIFI_SCAN` (OFF) Enable WiFi scanning (requires iw on Linux) - experimental
|
||||
- `YUZU_USE_BUNDLED_FFMPEG` (ON for non-UNIX) Download (Windows, Android) or build (UNIX) bundled FFmpeg
|
||||
- `ENABLE_CUBEB` (ON) Enables the cubeb audio backend
|
||||
- `YUZU_TESTS` (ON) Compile tests - requires Catch2
|
||||
- `YUZU_USE_PRECOMPILED_HEADERS` (ON for non-UNIX) Use precompiled headers
|
||||
- `YUZU_DOWNLOAD_ANDROID_VVL` (ON) Download validation layer binary for Android
|
||||
- `YUZU_ENABLE_LTO` (OFF) Enable link-time optimization
|
||||
* Not recommended on Windows
|
||||
* UNIX may be better off appending `-flto=thin` to compiler args
|
||||
- `YUZU_DOWNLOAD_TIME_ZONE_DATA` (ON) Always download time zone binaries
|
||||
* Currently, build fails without this
|
||||
- `YUZU_USE_FASTER_LD` (ON) Check if a faster linker is available
|
||||
* Only available on UNIX
|
||||
- `USE_SYSTEM_MOLTENVK` (OFF, macOS only) Use the system MoltenVK lib (instead of the bundled one)
|
||||
- `YUZU_TZDB_PATH` (string) Path to a pre-downloaded timezone database (useful for nixOS)
|
||||
- `ENABLE_OPENSSL` (ON for Linux and *BSD) Enable OpenSSL backend for the ssl service
|
||||
* Always enabled if the web service is enabled
|
||||
- `YUZU_USE_BUNDLED_OPENSSL` (ON for MSVC) Download bundled OpenSSL build
|
||||
* Always on for Android
|
||||
* Unavailable on OpenBSD
|
||||
|
||||
The following options are desktop only:
|
||||
- `ENABLE_SDL2` (ON) Enable the SDL2 desktop, audio, and input frontend (HIGHLY RECOMMENDED!)
|
||||
* Unavailable on Android
|
||||
- `YUZU_USE_EXTERNAL_SDL2` (ON for non-UNIX) Compiles SDL2 from source
|
||||
- `YUZU_USE_BUNDLED_SDL2` (ON for MSVC) Download a prebuilt SDL2
|
||||
* Unavailable on OpenBSD
|
||||
* Only enabled if YUZU_USE_CPM and ENABLE_SDL2 are both ON
|
||||
- `ENABLE_LIBUSB` (ON) Enable the use of the libusb input frontend (HIGHLY RECOMMENDED)
|
||||
- `ENABLE_OPENGL` (ON) Enable the OpenGL graphics frontend
|
||||
* Unavailable on Windows/ARM64 and Android
|
||||
- `ENABLE_QT` (ON) Enable the Qt frontend (recommended)
|
||||
- `ENABLE_QT_TRANSLATION` (OFF) Enable translations for the Qt frontend
|
||||
- `ENABLE_QT_UPDATE_CHECKER` (OFF) Enable update checker for the Qt frontend
|
||||
- `YUZU_USE_BUNDLED_QT` (ON for MSVC) Download bundled Qt binaries
|
||||
* Note that using **system Qt** requires you to include the Qt CMake directory in `CMAKE_PREFIX_PATH`, e.g:
|
||||
* `-DCMAKE_PREFIX_PATH=C:/Qt/6.9.0/msvc2022_64/lib/cmake/Qt6`
|
||||
- `YUZU_QT_MIRROR` (string) What mirror to use for downloading the bundled Qt libraries
|
||||
- `YUZU_USE_QT_MULTIMEDIA` (OFF) Use QtMultimedia for camera support
|
||||
- `YUZU_USE_QT_WEB_ENGINE` (OFF) Use QtWebEngine for web applet implementation (requires the huge QtWebEngine dependency; not recommended)
|
||||
- `USE_DISCORD_PRESENCE` (OFF) Enables Discord Rich Presence (Qt frontend only)
|
||||
- `YUZU_ROOM` (ON) Enable dedicated room functionality
|
||||
- `YUZU_ROOM_STANDALONE` (ON) Enable standalone room executable (eden-room)
|
||||
* Requires `YUZU_ROOM`
|
||||
- `YUZU_CMD` (ON) Compile the SDL2 frontend (eden-cli) - requires SDL2
|
||||
- `YUZU_CRASH_DUMPS` Compile crash dump (Minidump) support"
|
||||
* Currently only available on Windows and Linux
|
||||
|
||||
See `src/dynarmic/CMakeLists.txt` for additional options--usually, these don't need changed
|
10
docs/README.md
Normal file
10
docs/README.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Eden Build Documentation
|
||||
|
||||
This contains documentation created by developers. This contains build instructions, guidelines, instructions/layouts for [cool stuff we made](CPM.md), and more.
|
||||
|
||||
- **[General Build Instructions](Build.md)**
|
||||
- **[Development Guidelines](Development.md)**
|
||||
- **[Dependencies](Deps.md)**
|
||||
- **[CPM - CMake Package Manager](CPM.md)**
|
||||
- **[Platform-Specific Caveats](Caveats.md)**
|
||||
- **[User Directory Handling](User.md)**
|
56
docs/SIGNUP.md
Normal file
56
docs/SIGNUP.md
Normal file
|
@ -0,0 +1,56 @@
|
|||
# Signup
|
||||
|
||||
To prevent spam and reduce bandwidth usage, registration is closed, and will likely remain this way.
|
||||
|
||||
## Valid Reasons
|
||||
|
||||
First of all, you MUST have a valid reason to sign up for our Git. Valid reasons include (but are not limited to):
|
||||
|
||||
- I want to add feature XYZ...
|
||||
- I want to improve the macOS version...
|
||||
- I want to improve the Vulkan backend...
|
||||
- I want to fix bug XYZ...
|
||||
- I have experience in XYZ...
|
||||
- I can provide insight on XYZ...
|
||||
|
||||
## Invalid Reasons
|
||||
|
||||
The following are not valid reasons to sign up:
|
||||
|
||||
- I want to contribute to Eden.
|
||||
* Be at least somewhat specific!
|
||||
- I want to support Eden.
|
||||
* If you wish to support us through development, be more specific; otherwise, to support us, check out our [donations page](https://eden-emu.dev/donations).
|
||||
- I want to report issues.
|
||||
* Most of our issue tracking is handled on [GitHub](https://github.com/eden-emulator/Issue-Reports) for the time being. This is subject to change.
|
||||
- I want to play/use Eden.
|
||||
* To download and use Eden, see our [Releases page](https://github.com/eden-emulator/Releases/releases)!
|
||||
- I want to see the source code.
|
||||
* To see Eden's source code, go [here](https://git.eden-emu.dev/eden-emu/eden).
|
||||
## 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.
|
||||
|
||||
You MUST use the following format:
|
||||
|
||||
```
|
||||
Subject: [Eden Git] Registration Request
|
||||
Username: <Your Desired Username>
|
||||
Email: <Your Desired Email>
|
||||
I wish to sign up because... <your reason here>
|
||||
```
|
||||
|
||||
Email notifications are disabled for the time being, so you don't have to use a real email. If you wish to remain anonymous, either send a separate email asking for access to a shared anonymous account, *or* create a fake username and email.
|
||||
|
||||
## Instructions
|
||||
|
||||
If you have read everything above and affirm that you will not abuse your access, click the summary below to get the email to send your request to.
|
||||
|
||||
<details>
|
||||
<summary>I affirm that I have read ALL of the information above, and will not abuse my access to Eden, nor will I send unnecessary spam requests or the following email.</summary>
|
||||
|
||||
Email [crueter@crueter.xyz](mailto:crueter@crueter.xyz) with the format above.
|
||||
|
||||
Once your request is processed, you should receive a confirmation email from crueter with your password alongside a link to a repository containing instructions on SSH, etc. Note that you are required to change your password. If your request is rejected, you will receive a notice as such, asking for clarification if needed. If you do not receive a response in 48 hours, you may send another email.
|
||||
|
||||
</details>
|
7
docs/build/Android.md
vendored
7
docs/build/Android.md
vendored
|
@ -2,7 +2,7 @@
|
|||
|
||||
## Dependencies
|
||||
* [Android Studio](https://developer.android.com/studio)
|
||||
* [NDK 25.2.9519653 and CMake 3.22.1](https://developer.android.com/studio/projects/install-ndk#default-version)
|
||||
* [NDK 27+ and CMake 3.22.1](https://developer.android.com/studio/projects/install-ndk#default-version)
|
||||
* [Git](https://git-scm.com/download)
|
||||
|
||||
### WINDOWS ONLY - Additional Dependencies
|
||||
|
@ -16,8 +16,7 @@ git clone --recursive https://git.eden-emu.dev/eden-emu/eden.git
|
|||
```
|
||||
Eden by default will be cloned into -
|
||||
* `C:\Users\<user-name>\eden` on Windows
|
||||
* `~/eden` on Linux
|
||||
* And wherever on macOS
|
||||
* `~/eden` on Linux and macOS
|
||||
|
||||
## Building
|
||||
1. Start Android Studio, on the startup dialog select `Open`.
|
||||
|
@ -32,7 +31,7 @@ Eden by default will be cloned into -
|
|||
`export ANDROID_SDK_ROOT=path/to/sdk`
|
||||
`export ANDROID_NDK_ROOT=path/to/ndk`.
|
||||
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`.
|
||||
|
||||
### Script
|
||||
|
|
81
docs/build/FreeBSD.md
vendored
81
docs/build/FreeBSD.md
vendored
|
@ -1,81 +0,0 @@
|
|||
Eden is not currently available as a port on FreeBSD, though it is in the works. For now, the recommended method of usage is to compile it yourself. Check back often, as the build process frequently changes.
|
||||
|
||||
## Dependencies.
|
||||
Eden needs the following dependencies:
|
||||
|
||||
```
|
||||
devel/cmake
|
||||
devel/sdl20
|
||||
devel/boost-libs
|
||||
devel/catch2
|
||||
devel/libfmt
|
||||
devel/nlohmann-json
|
||||
devel/ninja
|
||||
devel/nasm
|
||||
devel/autoconf
|
||||
devel/pkgconf
|
||||
devel/qt6-base
|
||||
|
||||
net/enet
|
||||
|
||||
multimedia/ffnvcodec-headers
|
||||
multimedia/ffmpeg
|
||||
|
||||
audio/opus
|
||||
|
||||
archivers/liblz4
|
||||
|
||||
lang/gcc12
|
||||
|
||||
graphics/glslang
|
||||
graphics/vulkan-utility-libraries
|
||||
```
|
||||
|
||||
If using FreeBSD 12 or prior, use `devel/pkg-config` instead.
|
||||
|
||||
---
|
||||
|
||||
### Build preparations:
|
||||
Run the following command to clone eden with git:
|
||||
```sh
|
||||
git clone --recursive https://git.eden-emu.dev/eden-emu/eden
|
||||
```
|
||||
You usually want to add the `--recursive` parameter as it also takes care of the external dependencies for you.
|
||||
|
||||
Now change into the eden directory and create a build directory there:
|
||||
```sh
|
||||
cd eden
|
||||
mkdir build
|
||||
```
|
||||
|
||||
Change into that build directory:
|
||||
```sh
|
||||
cd build
|
||||
```
|
||||
|
||||
#### 1. Building in Release Mode (usually preferred and the most performant choice):
|
||||
```sh
|
||||
cmake .. -GNinja -DYUZU_TESTS=OFF
|
||||
```
|
||||
|
||||
#### 2. Building in Release Mode with debugging symbols (useful if you want to debug errors for a eventual fix):
|
||||
```sh
|
||||
cmake .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DYUZU_TESTS=ON
|
||||
```
|
||||
|
||||
Build the emulator locally:
|
||||
```sh
|
||||
ninja
|
||||
```
|
||||
|
||||
Optional: If you wish to install eden globally onto your system issue the following command:
|
||||
```sh
|
||||
sudo ninja install
|
||||
```
|
||||
OR
|
||||
```sh
|
||||
doas -- ninja install
|
||||
```
|
||||
|
||||
## OpenSSL
|
||||
The available OpenSSL port (3.0.17) is out-of-date, and using a bundled static library instead is recommended; to do so, add `-DYUZU_USE_CPM=ON` to your CMake configure command.
|
138
docs/build/Linux.md
vendored
138
docs/build/Linux.md
vendored
|
@ -1,138 +0,0 @@
|
|||
### Dependencies
|
||||
|
||||
You'll need to download and install the following to build Eden:
|
||||
|
||||
* [GCC](https://gcc.gnu.org/) v11+ (for C++20 support) & misc
|
||||
* If GCC 12 is installed, [Clang](https://clang.llvm.org/) v14+ is required for compiling
|
||||
* [CMake](https://www.cmake.org/) 3.22+
|
||||
|
||||
The following are handled by Eden's externals:
|
||||
|
||||
* [FFmpeg](https://ffmpeg.org/)
|
||||
* [SDL2](https://www.libsdl.org/download-2.0.php) 2.0.18+
|
||||
* [opus](https://opus-codec.org/downloads/) 1.3+
|
||||
|
||||
All other dependencies will be downloaded and built by [CPM](https://github.com/cpm-cmake/CPM.cmake/) if `YUZU_USE_CPM` is on, but will always use system dependencies if available:
|
||||
|
||||
* [Boost](https://www.boost.org/users/download/) 1.79.0+
|
||||
* [Catch2](https://github.com/catchorg/Catch2) 2.13.7 - 2.13.9
|
||||
* [fmt](https://fmt.dev/) 8.0.1+
|
||||
* [lz4](http://www.lz4.org) 1.8+
|
||||
* [nlohmann_json](https://github.com/nlohmann/json) 3.8+
|
||||
* [OpenSSL](https://www.openssl.org/source/) 1.1.1+
|
||||
* [ZLIB](https://www.zlib.net/) 1.2+
|
||||
* [zstd](https://facebook.github.io/zstd/) 1.5+
|
||||
* [enet](http://enet.bespin.org/) 1.3+
|
||||
* [cubeb](https://github.com/mozilla/cubeb)
|
||||
* [SimpleIni](https://github.com/brofield/simpleini)
|
||||
|
||||
Certain other dependencies (httplib, jwt, sirit, etc.) will be fetched by CPM regardless. System packages *can* be used for these libraries but this is generally not recommended.
|
||||
|
||||
Dependencies are listed here as commands that can be copied/pasted. Of course, they should be inspected before being run.
|
||||
|
||||
- Arch / Manjaro:
|
||||
- `sudo pacman -Syu --needed base-devel boost catch2 cmake enet ffmpeg fmt git glslang libzip lz4 mbedtls ninja nlohmann-json openssl opus qt6-base qt6-multimedia sdl2 zlib zstd zip unzip`
|
||||
- Building with QT Web Engine requires `qt6-webengine` as well.
|
||||
- Proper wayland support requires `qt6-wayland`
|
||||
- GCC 11 or later is required.
|
||||
|
||||
- Ubuntu / Linux Mint / Debian:
|
||||
- `sudo apt-get install autoconf cmake g++ gcc git glslang-tools libasound2 libboost-context-dev libglu1-mesa-dev libhidapi-dev libpulse-dev libtool libudev-dev libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-xkb1 libxext-dev libxkbcommon-x11-0 mesa-common-dev nasm ninja-build qt6-base-private-dev libmbedtls-dev catch2 libfmt-dev liblz4-dev nlohmann-json3-dev libzstd-dev libssl-dev libavfilter-dev libavcodec-dev libswscale-dev pkg-config zlib1g-dev libva-dev libvdpau-dev`
|
||||
- Ubuntu 22.04, Linux Mint 20, or Debian 12 or later is required.
|
||||
- Users need to manually specify building with QT Web Engine enabled. This is done using the parameter `-DYUZU_USE_QT_WEB_ENGINE=ON` when running CMake.
|
||||
- Users need to manually disable building SDL2 from externals if they intend to use the version provided by their system by adding the parameters `-DYUZU_USE_EXTERNAL_SDL2=OFF`
|
||||
|
||||
```sh
|
||||
git submodule update --init --recursive
|
||||
cmake .. -GNinja -DCMAKE_C_COMPILER=gcc-11 -DCMAKE_CXX_COMPILER=g++-11
|
||||
```
|
||||
|
||||
- Fedora:
|
||||
- `sudo dnf install autoconf ccache cmake fmt-devel gcc{,-c++} glslang hidapi-devel json-devel libtool libusb1-devel libzstd-devel lz4-devel nasm ninja-build openssl-devel pulseaudio-libs-devel qt6-linguist qt6-qtbase{-private,}-devel qt6-qtwebengine-devel qt6-qtmultimedia-devel speexdsp-devel wayland-devel zlib-devel ffmpeg-devel libXext-devel`
|
||||
- Fedora 32 or later is required.
|
||||
- Due to GCC 12, Fedora 36 or later users need to install `clang`, and configure CMake to use it via `-DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang`
|
||||
- CMake arguments to force system libraries:
|
||||
- SDL2: `-DYUZU_USE_BUNDLED_SDL2=OFF -DYUZU_USE_EXTERNAL_SDL2=OFF`
|
||||
- FFmpeg: `-DYUZU_USE_EXTERNAL_FFMPEG=OFF`
|
||||
- [RPM Fusion](https://rpmfusion.org/) (free) is required to install `ffmpeg-devel`
|
||||
|
||||
### Cloning Eden with Git
|
||||
|
||||
**Master:**
|
||||
|
||||
```bash
|
||||
git clone --recursive https://git.eden-emu.dev/eden-emu/eden
|
||||
cd eden
|
||||
```
|
||||
|
||||
The `--recursive` option automatically clones the required Git submodules.
|
||||
|
||||
### Building Eden in Release Mode (Optimised)
|
||||
|
||||
If you need to run ctests, you can disable `-DYUZU_TESTS=OFF` and install Catch2.
|
||||
|
||||
```bash
|
||||
mkdir build && cd build
|
||||
cmake .. -GNinja -DYUZU_TESTS=OFF
|
||||
ninja
|
||||
sudo ninja install
|
||||
```
|
||||
You may also want to include support for Discord Rich Presence by adding `-DUSE_DISCORD_PRESENCE=ON` after `cmake ..`
|
||||
|
||||
`-DYUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS=OFF` might be needed if ninja command failed with `undefined reference to symbol 'spvOptimizerOptionsCreate`, reason currently unknown
|
||||
|
||||
Optionally, you can use `cmake-gui ..` to adjust various options (e.g. disable the Qt GUI).
|
||||
|
||||
### Building Eden in Debug Mode (Slow)
|
||||
|
||||
```bash
|
||||
mkdir build && cd build
|
||||
cmake .. -GNinja -DCMAKE_BUILD_TYPE=Debug -DYUZU_TESTS=OFF
|
||||
ninja
|
||||
```
|
||||
|
||||
### Building with debug symbols
|
||||
|
||||
```bash
|
||||
mkdir build && cd build
|
||||
cmake .. -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DYUZU -DYUZU_TESTS=OFF
|
||||
ninja
|
||||
```
|
||||
|
||||
### Building with Scripts
|
||||
A convenience script for building is provided in `.ci/linux/build.sh`. You must provide an arch target for optimization, e.g. `.ci/linux/build.sh amd64`. Valid targets:
|
||||
- `legacy`: x86_64 generic, only needed for CPUs older than 2013 or so
|
||||
- `amd64`: x86_64-v3, for CPUs newer than 2013 or so
|
||||
- `steamdeck` / `zen2`: For Steam Deck or Zen >= 2 AMD CPUs (untested on Intel)
|
||||
- `rog-ally` / `allyx` / `zen4`: For ROG Ally X or Zen >= 4 AMD CPUs (untested on Intel)
|
||||
- `aarch64`: For armv8-a CPUs, older than mid-2021 or so
|
||||
- `armv9`: For armv9-a CPUs, newer than mid-2021 or so
|
||||
- `native`: Optimize to your native host architecture
|
||||
|
||||
Extra flags to pass to CMake should be passed after the arch target.
|
||||
|
||||
Additional environment variables can be used to control building:
|
||||
- `NPROC`: Number of threads to use for compilation (defaults to all)
|
||||
- `TARGET`: Set to `appimage` to disable standalone `eden-cli` and `eden-room` executables
|
||||
- `BUILD_TYPE`: Sets the build type to use. Defaults to `Release`
|
||||
|
||||
The following environment variables are boolean flags. Set to `true` to enable or `false` to disable:
|
||||
- `DEVEL` (default FALSE): Disable Qt update checker
|
||||
- `USE_WEBENGINE` (default FALSE): Enable Qt WebEngine
|
||||
- `USE_MULTIMEDIA` (default TRUE): Enable Qt Multimedia
|
||||
|
||||
After building, an AppImage can be packaged via `.ci/linux/package.sh`. This script takes the same arch targets as the build script. If the build was created in a different directory, you can specify its path relative to the source directory, e.g. `.ci/linux/package.sh amd64 build-appimage`. Additionally, set the `DEVEL` environment variable to `true` to change the app name to `Eden Nightly`.
|
||||
|
||||
### Running without installing
|
||||
|
||||
After building, the binaries `eden` and `eden-cmd` (depending on your build options) will end up in `build/bin/`.
|
||||
|
||||
```bash
|
||||
# SDL
|
||||
cd build/bin/
|
||||
./eden-cmd
|
||||
|
||||
# Qt
|
||||
cd build/bin/
|
||||
./eden
|
||||
```
|
10
docs/build/OpenBSD.md
vendored
10
docs/build/OpenBSD.md
vendored
|
@ -1,10 +0,0 @@
|
|||
# Building for OpenBSD
|
||||
|
||||
```sh
|
||||
pkg_add -u
|
||||
pkg_add cmake nasm git boost unzip--iconv autoconf-2.72p0 bash ffmpeg glslang gmake llvm-19.1.7p3 qt6 jq
|
||||
git --recursive https://git.eden-emu.dev/eden-emu/eden
|
||||
cmake -DCMAKE_C_COMPILER=clang-19 -DCMAKE_CXX_COMPILER=clang++-19 -DDYNARMIC_USE_PRECOMPILED_HEADERS=OFF -DCMAKE_BUILD_TYPE=Debug -DENABLE_QT=OFF -DENABLE_OPENSSL=OFF -DENABLE_WEB_SERVICE=OFF -B /usr/obj/eden
|
||||
```
|
||||
|
||||
- Modify `externals/ffmpeg/CMakeFiles/ffmpeg-build/build.make` to use `-j$(nproc)` instead of just `-j`.
|
51
docs/build/Solaris.md
vendored
51
docs/build/Solaris.md
vendored
|
@ -1,51 +0,0 @@
|
|||
# Building for Solaris
|
||||
|
||||
## Dependencies.
|
||||
Always consult [the OpenIndiana package list](https://pkg.openindiana.org/hipster/en/index.shtml) to cross-verify availability.
|
||||
|
||||
Run the usual update + install of essential toolings: `sudo pkg update && sudo pkg install git cmake`.
|
||||
|
||||
- **gcc**: `sudo pkg install developer/gcc-14`.
|
||||
- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`.
|
||||
|
||||
Then install the libraies: `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`.
|
||||
|
||||
### Building
|
||||
|
||||
Clone eden with git `git clone --recursive https://git.eden-emu.dev/eden-emu/eden`
|
||||
|
||||
```sh
|
||||
# Needed for some dependencies that call cc directly (tz)
|
||||
echo '#!/bin/sh' >cc
|
||||
echo 'gcc $@' >>cc
|
||||
chmod +x cc
|
||||
export PATH="$PATH:$PWD"
|
||||
```
|
||||
|
||||
Patch for FFmpeg:
|
||||
```sh
|
||||
sed -i 's/ make / gmake /' externals/ffmpeg/CMakeFiles/ffmpeg-build.dir/build.make
|
||||
```
|
||||
|
||||
- **Configure**: `cmake -B build -DYUZU_USE_CPM=ON -DCMAKE_CXX_FLAGS="-I/usr/include/SDL2" -DCMAKE_C_FLAGS="-I/usr/include/SDL2"`.
|
||||
- **Build**: `cmake --build build`.
|
||||
- **Installing**: `sudo cmake --install build`.
|
||||
|
||||
### Running
|
||||
|
||||
Default Mesa is a bit outdated, the following environment variables should be set for a smoother experience:
|
||||
```sh
|
||||
export MESA_GL_VERSION_OVERRIDE=4.6
|
||||
export MESA_GLSL_VERSION_OVERRIDE=460
|
||||
export MESA_EXTENSION_MAX_YEAR=2025
|
||||
export MESA_DEBUG=1
|
||||
export MESA_VK_VERSION_OVERRIDE=1.3
|
||||
# Only if nvidia/intel drm drivers cause crashes, will severely hinder performance
|
||||
export LIBGL_ALWAYS_SOFTWARE=1
|
||||
```
|
||||
|
||||
### Notes
|
||||
|
||||
- Modify the generated ffmpeg.make (in build dir) if using multiple threads (base system `make` doesn't use `-j4`, so change for `gmake`).
|
||||
- If using OpenIndiana, due to a bug in SDL2 cmake configuration; Audio driver defaults to SunOS `<sys/audioio.h>`, which does not exist on OpenIndiana.
|
||||
- System OpenSSL generally does not work. Instead, use `-DYUZU_USE_CPM=ON` to use a bundled static OpenSSL, or build a system dependency from source.
|
259
docs/build/Windows.md
vendored
259
docs/build/Windows.md
vendored
|
@ -1,259 +0,0 @@
|
|||
# ⚠️ This guide is for developers ONLY! Support will be provided to developers ONLY.
|
||||
|
||||
## 📋 Current building methods:
|
||||
|
||||
* [ Minimal Dependencies](#minimal-dependencies)
|
||||
* [⚡ Method I: MSVC Build for Windows](#method-i-msvc-build-for-windows)
|
||||
* [🐧 Method II: MinGW-w64 Build with MSYS2](#method-ii-mingw-w64-build-with-msys2)
|
||||
* [🖥️ Method III: CLion Environment Setup](#method-iii-clion-environment-setup)
|
||||
* [💻 Building from the command line with MSVC](#building-from-the-command-line-with-msvc)
|
||||
* [📜 Building with Scripts](#building-with-scripts)
|
||||
|
||||
---
|
||||
|
||||
|
||||
## Minimal Dependencies
|
||||
|
||||
On Windows, **all** library dependencies are **automatically included** within the `externals` folder.
|
||||
|
||||
You still need to install:
|
||||
|
||||
* **[CMake](https://cmake.org/download/)** - Used to generate Visual Studio project files.
|
||||
* **[Vulkan SDK](https://vulkan.lunarg.com/sdk/home#windows)** - Make sure to select **Latest SDK**.
|
||||
|
||||
* *A convenience script to install the latest SDK is provided in `.ci/windows/install-vulkan-sdk.ps1`*
|
||||
* **[Git for Windows](https://gitforwindows.org)** - We recommend installing Git for command line use and version control integration.
|
||||
|
||||
<img src="https://i.imgur.com/x0rRs1t.png" width="500">
|
||||
|
||||
* *While installing Git Bash, select "Git from the command line and also from 3rd-party software". If missed, manually set `git.exe` path in CMake.*
|
||||
|
||||
---
|
||||
|
||||
## ⚡ Method I: MSVC Build for Windows
|
||||
|
||||
### a. Prerequisites to MSVC Build
|
||||
|
||||
* **[Visual Studio 2022 Community](https://visualstudio.microsoft.com/downloads/)** - Make sure to **select C++ support** in the installer, or **update to the latest version** if already installed.
|
||||
|
||||
* *A convenience script to install the **minimal** version (Visual Build Tools) is provided in `.ci/windows/install-msvc.ps1`*
|
||||
|
||||
---
|
||||
|
||||
### b. Clone the eden repository with Git
|
||||
|
||||
Open Terminal on
|
||||
|
||||
```cmd
|
||||
git clone https://git.eden-emu.dev/eden-emu/eden
|
||||
cd eden
|
||||
```
|
||||
|
||||
* *By default `eden` downloads to `C:\Users\<user-name>\eden`*
|
||||
|
||||
---
|
||||
|
||||
### c. Building
|
||||
|
||||
* Open the CMake GUI application and point it to the `eden`
|
||||
|
||||
<img src="https://i.imgur.com/qOslIWv.png" width="500">
|
||||
|
||||
* For the build directory, use a `build/` subdirectory inside the source directory or some other directory of your choice. (Tell CMake to create it.)
|
||||
|
||||
* Click the "Configure" button and choose `Visual Studio 17 2022`, with `x64` for the optional platform.
|
||||
|
||||
<img src="https://i.imgur.com/DKiREaK.png" width="500">
|
||||
|
||||
* *(You may also want to disable `YUZU_TESTS` in this case since Catch2 is not yet supported with this.)*
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/22451773/180585999-07316d6e-9751-4d11-b957-1cf57cd7cd58.png" width="500">
|
||||
|
||||
* Click "Generate" to create the project files.
|
||||
|
||||
<img src="https://i.imgur.com/5LKg92k.png" width="500">
|
||||
|
||||
* Open the solution file `yuzu.sln` in Visual Studio 2022, which is located in the build folder.
|
||||
|
||||
<img src="https://i.imgur.com/208yMml.png" width="500">
|
||||
|
||||
* * Depending on whether you want a graphical user interface or not, select in the Solution Explorer:
|
||||
* `eden` (GUI)
|
||||
* `eden-cmd` (command-line only)
|
||||
* Then **right-click** and choose `Set as StartUp Project`.
|
||||
|
||||
<img src="https://i.imgur.com/nPMajnn.png" height="500">
|
||||
<img src="https://i.imgur.com/BDMLzRZ.png" height="500">
|
||||
|
||||
* Select the appropriate build type, `Debug` for debug purposes or `Release` for performance (in case of doubt choose `Release`).
|
||||
|
||||
<img src="https://i.imgur.com/qxg4roC.png" width="500">
|
||||
|
||||
* **Right-click** the project you want to build and press **Build** in the submenu or press `F5`.
|
||||
|
||||
<img src="https://i.imgur.com/CkQgOFW.png" height="500">
|
||||
|
||||
---
|
||||
|
||||
## 🐧 Method II: MinGW-w64 Build with MSYS2
|
||||
|
||||
### a. Prerequisites to MinGW-w64
|
||||
|
||||
* **[MSYS2](https://www.msys2.org)** - A versatile and up-to-date development environment for Windows, providing a Unix-like shell, package manager, and toolchain.
|
||||
|
||||
---
|
||||
|
||||
### b. Install eden dependencies for MinGW-w64
|
||||
|
||||
* Open the `MSYS2 MinGW 64-bit` shell (`mingw64.exe`)
|
||||
* Download and install all dependencies using:
|
||||
* `pacman -Syu git make mingw-w64-x86_64-SDL2 mingw-w64-x86_64-cmake mingw-w64-x86_64-python-pip mingw-w64-x86_64-qt6 mingw-w64-x86_64-toolchain autoconf libtool automake-wrapper`
|
||||
* Add MinGW binaries to the PATH:
|
||||
* `echo 'PATH=/mingw64/bin:$PATH' >> ~/.bashrc`
|
||||
* Add VulkanSDK to the PATH:
|
||||
* `echo 'PATH=$(readlink -e /c/VulkanSDK/*/Bin/):$PATH' >> ~/.bashrc`
|
||||
|
||||
---
|
||||
|
||||
### c. Clone the eden repository with Git
|
||||
|
||||
```cmd
|
||||
git clone https://git.eden-emu.dev/eden-emu/eden
|
||||
cd eden
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### d. Building dynamically-linked eden
|
||||
|
||||
* This process will generate a *dynamically* linked build
|
||||
|
||||
```bash
|
||||
# Make build dir and enter
|
||||
mkdir build && cd build
|
||||
|
||||
# Generate CMake Makefiles
|
||||
cmake .. -G "MSYS Makefiles" -DYUZU_TESTS=OFF
|
||||
|
||||
# Build
|
||||
make -j$(nproc)
|
||||
|
||||
# Run eden!
|
||||
./bin/eden.exe
|
||||
```
|
||||
|
||||
* *Warning: This build is not a **static** build meaning that you **need** to include all of the DLLs with the .exe in order to use it or other systems!*
|
||||
|
||||
---
|
||||
|
||||
### Additional notes
|
||||
|
||||
|
||||
* Eden doesn't require the rather large Qt dependency, but you will lack a GUI frontend
|
||||
|
||||
```bash
|
||||
# ...
|
||||
|
||||
# Generate CMake Makefiles (withou QT)
|
||||
cmake .. -G "MSYS Makefiles" -DYUZU_TESTS=OFF -DENABLE_QT=no
|
||||
|
||||
$ ...
|
||||
```
|
||||
|
||||
* Running programs from inside `MSYS2 MinGW x64` shell has a different `%PATH%` than directly from explorer.
|
||||
* This different `%PATH%` has the locations of the other DLLs required.
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/190571/165000848-005e8428-8a82-41b1-bb4d-4ce7797cdac8.png" width="500">
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ Method III: CLion Environment Setup
|
||||
|
||||
### a. Prerequisites to CLion
|
||||
|
||||
* [CLion](https://www.jetbrains.com/clion/) - This IDE is not free; for a free alternative, check Method I
|
||||
|
||||
---
|
||||
|
||||
### b. Cloning eden with CLion
|
||||
|
||||
* Clone the Repository:
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899046-0d41d7d6-8e4d-4ed2-9587-b57088af5214.png" width="500">
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899061-b2ea274a-e88c-40ae-bf0b-4450b46e9fea.png" width="500">
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899076-0e5988c4-d431-4284-a5ff-9ecff973db76.png" width="500">
|
||||
|
||||
---
|
||||
|
||||
### c. Building & Setup
|
||||
|
||||
* Once Cloned, You will be taken to a prompt like the image below:
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899092-3fe4cec6-a540-44e3-9e1e-3de9c2fffc2f.png" width="500">
|
||||
|
||||
* Set the settings to the image below:
|
||||
* Change `Build type: Release`
|
||||
* Change `Name: Release`
|
||||
* Change `Toolchain Visual Studio`
|
||||
* Change `Generator: Let CMake decide`
|
||||
* Change `Build directory: build`
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899164-6cee8482-3d59-428f-b1bc-e6dc793c9b20.png" width="500">
|
||||
|
||||
* Click OK; now Clion will build a directory and index your code to allow for IntelliSense. Please be patient.
|
||||
* Once this process has been completed (No loading bar bottom right), you can now build eden
|
||||
* In the top right, click on the drop-down menu, select all configurations, then select eden
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899226-975048e9-bc6d-4ec1-bc2d-bd8a1e15ed04.png" height="500" >
|
||||
|
||||
* Now run by clicking the play button or pressing Shift+F10, and eden will auto-launch once built.
|
||||
|
||||
<img src="https://user-images.githubusercontent.com/42481638/216899275-d514ec6a-e563-470e-81e2-3e04f0429b68.png" width="500">
|
||||
|
||||
---
|
||||
|
||||
## 💻 Building from the command line with MSVC
|
||||
|
||||
```cmd
|
||||
# Clone eden and enter
|
||||
git clone https://git.eden-emu.dev/eden-emu/eden
|
||||
cd eden
|
||||
|
||||
# Make build dir and enter
|
||||
mkdir build && cd build
|
||||
|
||||
# Generate CMake Makefiles
|
||||
cmake .. -G "Visual Studio 17 2022" -A x64 -DYUZU_TESTS=OFF
|
||||
|
||||
# Build
|
||||
cmake --build . --config Release
|
||||
```
|
||||
|
||||
## 📜 Building with Scripts
|
||||
|
||||
* A convenience script for building is provided in `.ci/windows/build.sh`.
|
||||
* You must run this with Bash, e.g. Git Bash or MinGW TTY.
|
||||
* To use this script, you must have `windeployqt` installed (usually bundled with Qt) and set the `WINDEPLOYQT` environment variable to its canonical Bash location:
|
||||
* `WINDEPLOYQT="/c/Qt/6.9.1/msvc2022_64/bin/windeployqt6.exe" .ci/windows/build.sh`.
|
||||
* You can use `aqtinstall`, more info on <https://github.com/miurahr/aqtinstall> and <https://ddalcino.github.io/aqt-list-server/>
|
||||
|
||||
|
||||
* Extra CMake flags should be placed in the arguments of the script.
|
||||
|
||||
#### Additional environment variables can be used to control building:
|
||||
|
||||
* `BUILD_TYPE` (default `Release`): Sets the build type to use.
|
||||
|
||||
* The following environment variables are boolean flags. Set to `true` to enable or `false` to disable:
|
||||
|
||||
* `DEVEL` (default FALSE): Disable Qt update checker
|
||||
* `USE_WEBENGINE` (default FALSE): Enable Qt WebEngine
|
||||
* `USE_MULTIMEDIA` (default TRUE): Enable Qt Multimedia
|
||||
* `BUNDLE_QT` (default FALSE): Use bundled Qt
|
||||
|
||||
* Note that using **system Qt** requires you to include the Qt CMake directory in `CMAKE_PREFIX_PATH`
|
||||
* `.ci/windows/build.sh -DCMAKE_PREFIX_PATH=C:/Qt/6.9.0/msvc2022_64/lib/cmake/Qt6`
|
||||
|
||||
* After building, a zip can be packaged via `.ci/windows/package.sh`. You must have 7-zip installed and in your PATH.
|
||||
* The resulting zip will be placed into `artifacts` in the source directory.
|
||||
|
78
docs/build/macOS.md
vendored
78
docs/build/macOS.md
vendored
|
@ -1,78 +0,0 @@
|
|||
Please note this article is intended for development, and Eden on macOS is not currently ready for regular use.
|
||||
|
||||
This article was written for developers. Eden support for macOS is not ready for casual use.
|
||||
|
||||
## Dependencies
|
||||
Install dependencies from Homebrew:
|
||||
```sh
|
||||
brew install autoconf automake boost ffmpeg fmt glslang hidapi libtool libusb lz4 ninja nlohmann-json openssl pkg-config qt@6 sdl2 speexdsp zlib zstd cmake Catch2 molten-vk vulkan-loader spirv-tools
|
||||
```
|
||||
|
||||
If you are compiling on Intel Mac, or are using a Rosetta Homebrew installation, you must replace all references of `/opt/homebrew` with `/usr/local`.
|
||||
|
||||
Now, clone the repo:
|
||||
```sh
|
||||
git clone --recursive https://git.eden-emu.dev/eden-emu/eden
|
||||
cd eden
|
||||
```
|
||||
|
||||
## Method I: ninja
|
||||
|
||||
---
|
||||
Build for release
|
||||
```sh
|
||||
export Qt6_DIR="/opt/homebrew/opt/qt@6/lib/cmake"
|
||||
export LIBVULKAN_PATH=/opt/homebrew/lib/libvulkan.dylib
|
||||
cmake -B build -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DYUZU_TESTS=OFF -DENABLE_WEB_SERVICE=ON -DENABLE_LIBUSB=OFF -DCLANG_FORMAT=ON -DSDL2_DISABLE_INSTALL=ON -DSDL_ALTIVEC=ON
|
||||
ninja
|
||||
```
|
||||
|
||||
You may also want to include support for Discord Rich Presence by adding `-DUSE_DISCORD_PRESENCE=ON`
|
||||
```sh
|
||||
export Qt6_DIR="/opt/homebrew/opt/qt@6/lib/cmake"
|
||||
cmake -B build -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DYUZU_TESTS=OFF -DENABLE_WEB_SERVICE=OFF -DENABLE_LIBUSB=OFF
|
||||
ninja
|
||||
```
|
||||
|
||||
Run the output:
|
||||
```
|
||||
bin/eden.app/Contents/MacOS/eden
|
||||
```
|
||||
|
||||
## Method II: Xcode
|
||||
|
||||
---
|
||||
Build for release
|
||||
```sh
|
||||
export Qt6_DIR="/opt/homebrew/opt/qt@6/lib/cmake"
|
||||
export LIBVULKAN_PATH=/opt/homebrew/lib/libvulkan.dylib
|
||||
# Only if having errors about Xcode 15.0
|
||||
sudo /usr/bin/xcode-select --switch /Users/admin/Downloads/Xcode.ap
|
||||
cmake -B build -GXcode -DCMAKE_BUILD_TYPE=RelWithDebInfo -DYUZU_TESTS=OFF -DENABLE_WEB_SERVICE=ON -DENABLE_LIBUSB=OFF -DCLANG_FORMAT=ON -DSDL2_DISABLE_INSTALL=ON -DSDL_ALTIVEC=ON
|
||||
xcodebuild build -project yuzu.xcodeproj -scheme "yuzu" -configuration "RelWithDebInfo"
|
||||
```
|
||||
|
||||
Build with debug symbols:
|
||||
```sh
|
||||
export Qt6_DIR="/opt/homebrew/opt/qt@6/lib/cmake"
|
||||
cmake -B build -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DYUZU_TESTS=OFF -DENABLE_WEB_SERVICE=OFF -DENABLE_LIBUSB=OFF
|
||||
ninja
|
||||
```
|
||||
|
||||
Run the output:
|
||||
```
|
||||
bin/eden.app/Contents/MacOS/eden
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
To run with MoltenVK, install additional dependencies:
|
||||
```sh
|
||||
brew install molten-vk vulkan-loader
|
||||
```
|
||||
|
||||
Run with Vulkan loader path:
|
||||
```sh
|
||||
export LIBVULKAN_PATH=/opt/homebrew/lib/libvulkan.dylib
|
||||
bin/eden.app/Contents/MacOS/eden
|
||||
```
|
BIN
docs/img/creator-1.png
Normal file
BIN
docs/img/creator-1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 63 KiB |
31
docs/scripts/Linux.md
Normal file
31
docs/scripts/Linux.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
# Linux Build Scripts
|
||||
|
||||
* Provided script: `.ci/linux/build.sh`
|
||||
* Must specify arch target, e.g.: `.ci/linux/build.sh amd64`
|
||||
* Valid targets:
|
||||
* `native`: Optimize to your native host architecture
|
||||
* `legacy`: x86\_64 generic, only needed for CPUs older than 2013 or so
|
||||
* `amd64`: x86\_64-v3, for CPUs newer than 2013 or so
|
||||
* `steamdeck` / `zen2`: For Steam Deck or Zen >= 2 AMD CPUs (untested on Intel)
|
||||
* `rog-ally` / `allyx` / `zen4`: For ROG Ally X or Zen >= 4 AMD CPUs (untested on Intel)
|
||||
* `aarch64`: For armv8-a CPUs, older than mid-2021 or so
|
||||
* `armv9`: For armv9-a CPUs, newer than mid-2021 or so
|
||||
* Extra CMake flags go after the arch target.
|
||||
|
||||
### Environment Variables
|
||||
|
||||
* `NPROC`: Number of compilation threads (default: all cores)
|
||||
* `TARGET`: Set `appimage` to disable standalone `eden-cli` and `eden-room`
|
||||
* `BUILD_TYPE`: Build type (default: `Release`)
|
||||
|
||||
Boolean flags (set `true` to enable, `false` to disable):
|
||||
|
||||
* `DEVEL` (default `FALSE`): Disable Qt update checker
|
||||
* `USE_WEBENGINE` (default `FALSE`): Enable Qt WebEngine
|
||||
* `USE_MULTIMEDIA` (default `FALSE`): Enable Qt Multimedia
|
||||
|
||||
* AppImage packaging script: `.ci/linux/package.sh`
|
||||
|
||||
* Accepts same arch targets as build script
|
||||
* Use `DEVEL=true` to rename app to `Eden Nightly`
|
||||
* This should generally not be used unless in a tailor-made packaging environment (e.g. Actions/CI)
|
29
docs/scripts/Windows.md
Normal file
29
docs/scripts/Windows.md
Normal file
|
@ -0,0 +1,29 @@
|
|||
# Windows Build Scripts
|
||||
|
||||
* A convenience script for building is provided in `.ci/windows/build.sh`.
|
||||
* You must run this with Bash, e.g. Git Bash or the MinGW TTY.
|
||||
* To use this script, you must have `windeployqt` installed (usually bundled with Qt) and set the `WINDEPLOYQT` environment variable to its canonical Bash location:
|
||||
* `WINDEPLOYQT="/c/Qt/6.9.1/msvc2022_64/bin/windeployqt6.exe" .ci/windows/build.sh`.
|
||||
* You can use `aqtinstall`, more info on <https://github.com/miurahr/aqtinstall> and <https://ddalcino.github.io/aqt-list-server/>
|
||||
|
||||
|
||||
* Extra CMake flags should be placed in the arguments of the script.
|
||||
|
||||
#### Additional environment variables can be used to control building:
|
||||
|
||||
* `BUILD_TYPE` (default `Release`): Sets the build type to use.
|
||||
|
||||
* The following environment variables are boolean flags. Set to `true` to enable or `false` to disable:
|
||||
|
||||
* `DEVEL` (default FALSE): Disable Qt update checker
|
||||
* `USE_WEBENGINE` (default FALSE): Enable Qt WebEngine
|
||||
* `USE_MULTIMEDIA` (default FALSE): Enable Qt Multimedia
|
||||
* `BUNDLE_QT` (default FALSE): Use bundled Qt
|
||||
|
||||
* Note that using **system Qt** requires you to include the Qt CMake directory in `CMAKE_PREFIX_PATH`
|
||||
* `.ci/windows/build.sh -DCMAKE_PREFIX_PATH=C:/Qt/6.9.0/msvc2022_64/lib/cmake/Qt6`
|
||||
|
||||
* After building, a zip can be packaged via `.ci/windows/package.sh`. You must have 7-zip installed and in your PATH.
|
||||
* The resulting zip will be placed into `artifacts` in the source directory.
|
||||
|
||||
|
79
externals/CMakeLists.txt
vendored
79
externals/CMakeLists.txt
vendored
|
@ -1,9 +1,6 @@
|
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2016 Citra Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
@ -54,36 +51,27 @@ endif()
|
|||
# Glad
|
||||
add_subdirectory(glad)
|
||||
|
||||
# mbedtls
|
||||
AddJsonPackage(mbedtls)
|
||||
|
||||
if (mbedtls_ADDED)
|
||||
target_include_directories(mbedtls PUBLIC ${mbedtls_SOURCE_DIR}/include)
|
||||
|
||||
if (NOT MSVC)
|
||||
target_compile_options(mbedcrypto PRIVATE
|
||||
-Wno-unused-but-set-variable
|
||||
-Wno-string-concatenation
|
||||
)
|
||||
elseif(CXX_CLANG)
|
||||
foreach(TARGET mbedtls mbedcrypto mbedx509)
|
||||
target_compile_options(${TARGET} PRIVATE
|
||||
-w
|
||||
)
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# libusb
|
||||
if (ENABLE_LIBUSB)
|
||||
add_subdirectory(libusb)
|
||||
endif()
|
||||
|
||||
# Sirit
|
||||
# TODO(crueter): spirv-tools doesn't work w/ system
|
||||
set(SPIRV_WERROR OFF)
|
||||
AddJsonPackage(spirv-headers)
|
||||
# VMA
|
||||
AddJsonPackage(vulkan-memory-allocator)
|
||||
|
||||
if (VulkanMemoryAllocator_ADDED)
|
||||
if (CXX_CLANG)
|
||||
target_compile_options(VulkanMemoryAllocator INTERFACE
|
||||
-Wno-unused-variable
|
||||
)
|
||||
elseif(MSVC)
|
||||
target_compile_options(VulkanMemoryAllocator INTERFACE
|
||||
/wd4189
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Sirit
|
||||
AddJsonPackage(sirit)
|
||||
|
||||
if(MSVC AND USE_CCACHE AND sirit_ADDED)
|
||||
|
@ -117,46 +105,9 @@ if (YUZU_USE_BUNDLED_FFMPEG)
|
|||
set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
# VulkanUtilityHeaders - pulls in headers and utility libs
|
||||
AddJsonPackage(
|
||||
NAME vulkan-utility-headers
|
||||
BUNDLED_PACKAGE ${YUZU_USE_EXTERNAL_VULKAN_UTILITY_LIBRARIES}
|
||||
)
|
||||
|
||||
# small hack
|
||||
if (NOT VulkanUtilityLibraries_ADDED)
|
||||
find_package(VulkanHeaders 1.3.274 REQUIRED)
|
||||
endif()
|
||||
|
||||
# SPIRV Tools
|
||||
AddJsonPackage(
|
||||
NAME spirv-tools
|
||||
BUNDLED_PACKAGE ${YUZU_USE_EXTERNAL_VULKAN_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()
|
||||
|
||||
# TZDB (Time Zone Database)
|
||||
add_subdirectory(nx_tzdb)
|
||||
|
||||
# VMA
|
||||
AddJsonPackage(vulkan-memory-allocator)
|
||||
|
||||
if (VulkanMemoryAllocator_ADDED)
|
||||
if (CXX_CLANG)
|
||||
target_compile_options(VulkanMemoryAllocator INTERFACE
|
||||
-Wno-unused-variable
|
||||
)
|
||||
elseif(MSVC)
|
||||
target_compile_options(VulkanMemoryAllocator INTERFACE
|
||||
/wd4189
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT TARGET LLVM::Demangle)
|
||||
add_library(demangle demangle/ItaniumDemangle.cpp)
|
||||
target_include_directories(demangle PUBLIC ./demangle)
|
||||
|
|
42
externals/cpmfile.json
vendored
42
externals/cpmfile.json
vendored
|
@ -1,15 +1,10 @@
|
|||
{
|
||||
"mbedtls": {
|
||||
"repo": "eden-emulator/mbedtls",
|
||||
"sha": "ce4f81f4a9",
|
||||
"hash": "f2e7f887651b28745e508149214d409fd7cfdb92cb94b4146b47ff1e0fc09e47143f203ac18e34c2c1814b5bd031d04c74828676c0d4342920a2ddb7fd35e9a5",
|
||||
"find_args": "MODULE"
|
||||
},
|
||||
"spirv-headers": {
|
||||
"package": "SPIRV-Headers",
|
||||
"repo": "KhronosGroup/SPIRV-Headers",
|
||||
"sha": "4e209d3d7e",
|
||||
"hash": "f48bbe18341ed55ea0fe280dbbbc0a44bf222278de6e716e143ca1e95ca320b06d4d23d6583fbf8d03e1428f3dac8fa00e5b82ddcd6b425e6236d85af09550a4"
|
||||
"vulkan-memory-allocator": {
|
||||
"package": "VulkanMemoryAllocator",
|
||||
"repo": "GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator",
|
||||
"sha": "1076b348ab",
|
||||
"hash": "a46b44e4286d08cffda058e856c47f44c7fed3da55fe9555976eb3907fdcc20ead0b1860b0c38319cda01dbf9b1aa5d4b4038c7f1f8fbd97283d837fa9af9772",
|
||||
"find_args": "CONFIG"
|
||||
},
|
||||
"sirit": {
|
||||
"repo": "eden-emulator/sirit",
|
||||
|
@ -35,31 +30,6 @@
|
|||
"CPP_JWT_USE_VENDORED_NLOHMANN_JSON OFF"
|
||||
]
|
||||
},
|
||||
"vulkan-utility-headers": {
|
||||
"package": "VulkanUtilityLibraries",
|
||||
"repo": "scripts/VulkanUtilityHeaders",
|
||||
"tag": "1.4.326",
|
||||
"artifact": "VulkanUtilityHeaders.tar.zst",
|
||||
"git_host": "git.crueter.xyz",
|
||||
"hash": "5924629755cb1605c4aa4eee20ef7957a9dd8d61e4df548be656d98054f2730c4109693c1bd35811f401f4705d2ccff9fc849be32b0d8480bc3f73541a5e0964"
|
||||
},
|
||||
"vulkan-memory-allocator": {
|
||||
"package": "VulkanMemoryAllocator",
|
||||
"repo": "GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator",
|
||||
"sha": "1076b348ab",
|
||||
"hash": "a46b44e4286d08cffda058e856c47f44c7fed3da55fe9555976eb3907fdcc20ead0b1860b0c38319cda01dbf9b1aa5d4b4038c7f1f8fbd97283d837fa9af9772",
|
||||
"find_args": "CONFIG"
|
||||
},
|
||||
"spirv-tools": {
|
||||
"package": "SPIRV-Tools",
|
||||
"repo": "KhronosGroup/SPIRV-Tools",
|
||||
"sha": "40eb301f32",
|
||||
"hash": "58d0fb1047d69373cf24c73e6f78c73a72a6cca3b4df1d9f083b9dcc0962745ef154abf3dbe9b3623b835be20c6ec769431cf11733349f45e7568b3525f707aa",
|
||||
"find_args": "MODULE",
|
||||
"options": [
|
||||
"SPIRV_SKIP_EXECUTABLES ON"
|
||||
]
|
||||
},
|
||||
"xbyak_sun": {
|
||||
"package": "xbyak",
|
||||
"repo": "herumi/xbyak",
|
||||
|
|
3
externals/ffmpeg/CMakeLists.txt
vendored
3
externals/ffmpeg/CMakeLists.txt
vendored
|
@ -1,3 +1,6 @@
|
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
17
externals/libusb/CMakeLists.txt
vendored
17
externals/libusb/CMakeLists.txt
vendored
|
@ -1,14 +1,29 @@
|
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2020 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
include(CPMUtil)
|
||||
|
||||
AddJsonPackage(libusb)
|
||||
# we love our libraries don't we folks
|
||||
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)
|
||||
return()
|
||||
endif()
|
||||
|
||||
# TODO: *BSD fails to compile--may need different configs/symbols
|
||||
if (MINGW OR PLATFORM_LINUX OR APPLE)
|
||||
set(LIBUSB_FOUND ON CACHE BOOL "libusb is present" FORCE)
|
||||
set(LIBUSB_VERSION "1.0.24" CACHE STRING "libusb version string" FORCE)
|
||||
|
|
2
externals/nx_tzdb/CMakeLists.txt
vendored
2
externals/nx_tzdb/CMakeLists.txt
vendored
|
@ -1,4 +1,4 @@
|
|||
# SPDX-FileCopyrightText: 2025 Eden Emulator Project
|
||||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||
|
|
|
@ -234,6 +234,8 @@ if (YUZU_ROOM_STANDALONE)
|
|||
endif()
|
||||
|
||||
if (ENABLE_QT)
|
||||
add_definitions(-DYUZU_QT_WIDGETS)
|
||||
add_subdirectory(qt_common)
|
||||
add_subdirectory(yuzu)
|
||||
endif()
|
||||
|
||||
|
|
|
@ -36,17 +36,18 @@ import androidx.core.net.toUri
|
|||
import androidx.core.content.edit
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import org.yuzu.yuzu_emu.NativeLibrary
|
||||
import org.yuzu.yuzu_emu.databinding.CardGameGridCompactBinding
|
||||
import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting
|
||||
import org.yuzu.yuzu_emu.features.settings.model.Settings
|
||||
import org.yuzu.yuzu_emu.utils.NativeConfig
|
||||
|
||||
class GameAdapter(private val activity: AppCompatActivity) :
|
||||
AbstractDiffAdapter<Game, GameAdapter.GameViewHolder>(exact = false) {
|
||||
|
||||
companion object {
|
||||
const val VIEW_TYPE_GRID = 0
|
||||
const val VIEW_TYPE_LIST = 1
|
||||
const val VIEW_TYPE_CAROUSEL = 2
|
||||
const val VIEW_TYPE_GRID_COMPACT = 1
|
||||
const val VIEW_TYPE_LIST = 2
|
||||
const val VIEW_TYPE_CAROUSEL = 3
|
||||
}
|
||||
|
||||
private var viewType = 0
|
||||
|
@ -80,6 +81,7 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
|||
listBinding.root.layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT
|
||||
listBinding.root.layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
}
|
||||
|
||||
VIEW_TYPE_GRID -> {
|
||||
val gridBinding = holder.binding as CardGameGridBinding
|
||||
gridBinding.cardGameGrid.scaleX = 1f
|
||||
|
@ -89,6 +91,17 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
|||
gridBinding.root.layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT
|
||||
gridBinding.root.layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
}
|
||||
|
||||
VIEW_TYPE_GRID_COMPACT -> {
|
||||
val gridCompactBinding = holder.binding as CardGameGridCompactBinding
|
||||
gridCompactBinding.cardGameGridCompact.scaleX = 1f
|
||||
gridCompactBinding.cardGameGridCompact.scaleY = 1f
|
||||
gridCompactBinding.cardGameGridCompact.alpha = 1f
|
||||
// Reset layout params to XML defaults (same as normal grid)
|
||||
gridCompactBinding.root.layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT
|
||||
gridCompactBinding.root.layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
}
|
||||
|
||||
VIEW_TYPE_CAROUSEL -> {
|
||||
val carouselBinding = holder.binding as CardGameCarouselBinding
|
||||
// soothens transient flickering
|
||||
|
@ -105,16 +118,25 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
|||
parent,
|
||||
false
|
||||
)
|
||||
|
||||
VIEW_TYPE_GRID -> CardGameGridBinding.inflate(
|
||||
LayoutInflater.from(parent.context),
|
||||
parent,
|
||||
false
|
||||
)
|
||||
|
||||
VIEW_TYPE_GRID_COMPACT -> CardGameGridCompactBinding.inflate(
|
||||
LayoutInflater.from(parent.context),
|
||||
parent,
|
||||
false
|
||||
)
|
||||
|
||||
VIEW_TYPE_CAROUSEL -> CardGameCarouselBinding.inflate(
|
||||
LayoutInflater.from(parent.context),
|
||||
parent,
|
||||
false
|
||||
)
|
||||
|
||||
else -> throw IllegalArgumentException("Invalid view type")
|
||||
}
|
||||
return GameViewHolder(binding, viewType)
|
||||
|
@ -130,6 +152,7 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
|||
VIEW_TYPE_LIST -> bindListView(model)
|
||||
VIEW_TYPE_GRID -> bindGridView(model)
|
||||
VIEW_TYPE_CAROUSEL -> bindCarouselView(model)
|
||||
VIEW_TYPE_GRID_COMPACT -> bindGridCompactView(model)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -168,6 +191,23 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
|||
gridBinding.root.layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
}
|
||||
|
||||
private fun bindGridCompactView(model: Game) {
|
||||
val gridCompactBinding = binding as CardGameGridCompactBinding
|
||||
|
||||
gridCompactBinding.imageGameScreenCompact.scaleType = ImageView.ScaleType.CENTER_CROP
|
||||
GameIconUtils.loadGameIcon(model, gridCompactBinding.imageGameScreenCompact)
|
||||
|
||||
gridCompactBinding.textGameTitleCompact.text = model.title.replace("[\\t\\n\\r]+".toRegex(), " ")
|
||||
|
||||
gridCompactBinding.textGameTitleCompact.marquee()
|
||||
gridCompactBinding.cardGameGridCompact.setOnClickListener { onClick(model) }
|
||||
gridCompactBinding.cardGameGridCompact.setOnLongClickListener { onLongClick(model) }
|
||||
|
||||
// Reset layout params to XML defaults (same as normal grid)
|
||||
gridCompactBinding.root.layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT
|
||||
gridCompactBinding.root.layoutParams.height = ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
}
|
||||
|
||||
private fun bindCarouselView(model: Game) {
|
||||
val carouselBinding = binding as CardGameCarouselBinding
|
||||
|
||||
|
@ -232,8 +272,6 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
|||
binding.root.findNavController().navigate(action)
|
||||
}
|
||||
|
||||
val preferences = PreferenceManager.getDefaultSharedPreferences(YuzuApplication.appContext)
|
||||
|
||||
if (NativeLibrary.gameRequiresFirmware(game.programId) && !NativeLibrary.isFirmwareAvailable()) {
|
||||
MaterialAlertDialogBuilder(activity)
|
||||
.setTitle(R.string.loader_requires_firmware)
|
||||
|
@ -248,23 +286,6 @@ class GameAdapter(private val activity: AppCompatActivity) :
|
|||
}
|
||||
.setNegativeButton(android.R.string.cancel) { _, _ -> }
|
||||
.show()
|
||||
} else if (BooleanSetting.DISABLE_NCA_VERIFICATION.getBoolean(false) && !preferences.getBoolean(
|
||||
Settings.PREF_HIDE_NCA_POPUP, false)) {
|
||||
MaterialAlertDialogBuilder(activity)
|
||||
.setTitle(R.string.nca_verification_disabled)
|
||||
.setMessage(activity.getString(R.string.nca_verification_disabled_description))
|
||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
launch()
|
||||
}
|
||||
.setNeutralButton(R.string.dont_show_again) { _, _ ->
|
||||
preferences.edit {
|
||||
putBoolean(Settings.PREF_HIDE_NCA_POPUP, true)
|
||||
}
|
||||
|
||||
launch()
|
||||
}
|
||||
.setNegativeButton(android.R.string.cancel) { _, _ -> }
|
||||
.show()
|
||||
} else {
|
||||
launch()
|
||||
}
|
||||
|
|
|
@ -35,7 +35,6 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
|||
RENDERER_SAMPLE_SHADING("sample_shading"),
|
||||
PICTURE_IN_PICTURE("picture_in_picture"),
|
||||
USE_CUSTOM_RTC("custom_rtc_enabled"),
|
||||
DISABLE_NCA_VERIFICATION("disable_nca_verification"),
|
||||
BLACK_BACKGROUNDS("black_backgrounds"),
|
||||
JOYSTICK_REL_CENTER("joystick_rel_center"),
|
||||
DPAD_SLIDE("dpad_slide"),
|
||||
|
|
|
@ -37,7 +37,6 @@ object Settings {
|
|||
const val PREF_SHOULD_SHOW_PRE_ALPHA_WARNING = "ShouldShowPreAlphaWarning"
|
||||
const val PREF_SHOULD_SHOW_EDENS_VEIL_DIALOG = "ShouldShowEdensVeilDialog"
|
||||
const val PREF_MEMORY_WARNING_SHOWN = "MemoryWarningShown"
|
||||
const val PREF_HIDE_NCA_POPUP = "HideNCAVerificationPopup"
|
||||
const val SECTION_STATS_OVERLAY = "Stats Overlay"
|
||||
|
||||
// Deprecated input overlay preference keys
|
||||
|
|
|
@ -297,13 +297,6 @@ abstract class SettingsItem(
|
|||
descriptionId = R.string.use_custom_rtc_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.DISABLE_NCA_VERIFICATION,
|
||||
titleId = R.string.disable_nca_verification,
|
||||
descriptionId = R.string.disable_nca_verification_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
StringInputSetting(
|
||||
StringSetting.WEB_TOKEN,
|
||||
|
|
|
@ -210,7 +210,6 @@ class SettingsFragmentPresenter(
|
|||
add(IntSetting.LANGUAGE_INDEX.key)
|
||||
add(BooleanSetting.USE_CUSTOM_RTC.key)
|
||||
add(LongSetting.CUSTOM_RTC.key)
|
||||
add(BooleanSetting.DISABLE_NCA_VERIFICATION.key)
|
||||
|
||||
add(HeaderSetting(R.string.network))
|
||||
add(StringSetting.WEB_TOKEN.key)
|
||||
|
|
|
@ -810,28 +810,26 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
|
||||
override fun onConfigurationChanged(newConfig: Configuration) {
|
||||
super.onConfigurationChanged(newConfig)
|
||||
if (_binding == null) {
|
||||
return
|
||||
}
|
||||
val b = _binding ?: return
|
||||
|
||||
updateScreenLayout()
|
||||
val showInputOverlay = BooleanSetting.SHOW_INPUT_OVERLAY.getBoolean()
|
||||
if (emulationActivity?.isInPictureInPictureMode == true) {
|
||||
if (binding.drawerLayout.isOpen) {
|
||||
binding.drawerLayout.close()
|
||||
if (b.drawerLayout.isOpen) {
|
||||
b.drawerLayout.close()
|
||||
}
|
||||
if (showInputOverlay) {
|
||||
binding.surfaceInputOverlay.setVisible(visible = false, gone = false)
|
||||
b.surfaceInputOverlay.setVisible(visible = false, gone = false)
|
||||
}
|
||||
} else {
|
||||
binding.surfaceInputOverlay.setVisible(
|
||||
b.surfaceInputOverlay.setVisible(
|
||||
showInputOverlay && emulationViewModel.emulationStarted.value
|
||||
)
|
||||
if (!isInFoldableLayout) {
|
||||
if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||
binding.surfaceInputOverlay.layout = OverlayLayout.Portrait
|
||||
b.surfaceInputOverlay.layout = OverlayLayout.Portrait
|
||||
} else {
|
||||
binding.surfaceInputOverlay.layout = OverlayLayout.Landscape
|
||||
b.surfaceInputOverlay.layout = OverlayLayout.Landscape
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -847,8 +845,9 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
}
|
||||
|
||||
private fun updateQuickOverlayMenuEntry(isVisible: Boolean) {
|
||||
val menu = binding.inGameMenu.menu
|
||||
val item = menu.findItem(R.id.menu_quick_overlay)
|
||||
val b = _binding ?: return
|
||||
val item = b.inGameMenu.menu.findItem(R.id.menu_quick_overlay) ?: return
|
||||
|
||||
if (isVisible) {
|
||||
item.title = getString(R.string.emulation_hide_overlay)
|
||||
item.icon = ResourcesCompat.getDrawable(
|
||||
|
@ -867,8 +866,8 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
}
|
||||
|
||||
private fun updatePauseMenuEntry(isPaused: Boolean) {
|
||||
val menu = binding.inGameMenu.menu
|
||||
val pauseItem = menu.findItem(R.id.menu_pause_emulation)
|
||||
val b = _binding ?: return
|
||||
val pauseItem = b.inGameMenu.menu.findItem(R.id.menu_pause_emulation) ?: return
|
||||
if (isPaused) {
|
||||
pauseItem.title = getString(R.string.emulation_unpause)
|
||||
pauseItem.icon = ResourcesCompat.getDrawable(
|
||||
|
@ -887,9 +886,11 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
}
|
||||
|
||||
override fun onPause() {
|
||||
if (emulationState.isRunning && emulationActivity?.isInPictureInPictureMode != true) {
|
||||
emulationState.pause()
|
||||
updatePauseMenuEntry(true)
|
||||
if (this::emulationState.isInitialized) {
|
||||
if (emulationState.isRunning && emulationActivity?.isInPictureInPictureMode != true) {
|
||||
emulationState.pause()
|
||||
updatePauseMenuEntry(true)
|
||||
}
|
||||
}
|
||||
super.onPause()
|
||||
}
|
||||
|
@ -906,15 +907,15 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
// If the overlay is enabled, we need to update the position if changed
|
||||
val position = IntSetting.PERF_OVERLAY_POSITION.getInt()
|
||||
updateStatsPosition(position)
|
||||
val b = _binding ?: return
|
||||
updateStatsPosition(IntSetting.PERF_OVERLAY_POSITION.getInt())
|
||||
updateSocPosition(IntSetting.SOC_OVERLAY_POSITION.getInt())
|
||||
|
||||
val socPosition = IntSetting.SOC_OVERLAY_POSITION.getInt()
|
||||
updateSocPosition(socPosition)
|
||||
|
||||
binding.inGameMenu.post {
|
||||
emulationState?.isPaused?.let { updatePauseMenuEntry(it) }
|
||||
if (this::emulationState.isInitialized) {
|
||||
b.inGameMenu.post {
|
||||
if (!this::emulationState.isInitialized || _binding == null) return@post
|
||||
updatePauseMenuEntry(emulationState.isPaused)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1229,6 +1230,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
}
|
||||
|
||||
private fun updateScreenLayout() {
|
||||
val b = _binding ?: return
|
||||
val verticalAlignment =
|
||||
EmulationVerticalAlignment.from(IntSetting.VERTICAL_ALIGNMENT.getInt())
|
||||
val aspectRatio = when (IntSetting.RENDERER_ASPECT_RATIO.getInt()) {
|
||||
|
@ -1240,35 +1242,37 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
}
|
||||
when (verticalAlignment) {
|
||||
EmulationVerticalAlignment.Top -> {
|
||||
binding.surfaceEmulation.setAspectRatio(aspectRatio)
|
||||
b.surfaceEmulation.setAspectRatio(aspectRatio)
|
||||
val params = FrameLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
params.gravity = Gravity.TOP or Gravity.CENTER_HORIZONTAL
|
||||
binding.surfaceEmulation.layoutParams = params
|
||||
b.surfaceEmulation.layoutParams = params
|
||||
}
|
||||
|
||||
EmulationVerticalAlignment.Center -> {
|
||||
binding.surfaceEmulation.setAspectRatio(null)
|
||||
binding.surfaceEmulation.updateLayoutParams {
|
||||
b.surfaceEmulation.setAspectRatio(null)
|
||||
b.surfaceEmulation.updateLayoutParams {
|
||||
width = ViewGroup.LayoutParams.MATCH_PARENT
|
||||
height = ViewGroup.LayoutParams.MATCH_PARENT
|
||||
}
|
||||
}
|
||||
|
||||
EmulationVerticalAlignment.Bottom -> {
|
||||
binding.surfaceEmulation.setAspectRatio(aspectRatio)
|
||||
b.surfaceEmulation.setAspectRatio(aspectRatio)
|
||||
val params =
|
||||
FrameLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
params.gravity = Gravity.BOTTOM or Gravity.CENTER_HORIZONTAL
|
||||
binding.surfaceEmulation.layoutParams = params
|
||||
b.surfaceEmulation.layoutParams = params
|
||||
}
|
||||
}
|
||||
emulationState.updateSurface()
|
||||
if (this::emulationState.isInitialized) {
|
||||
emulationState.updateSurface()
|
||||
}
|
||||
emulationActivity?.buildPictureInPictureParams()
|
||||
updateOrientation()
|
||||
}
|
||||
|
@ -1722,4 +1726,4 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
|
|||
private val perfStatsUpdateHandler = Handler(Looper.myLooper()!!)
|
||||
private val socUpdateHandler = Handler(Looper.myLooper()!!)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -194,6 +194,10 @@ class GamesFragment : Fragment() {
|
|||
val columns = resources.getInteger(R.integer.game_columns_grid)
|
||||
GridLayoutManager(context, columns)
|
||||
}
|
||||
GameAdapter.VIEW_TYPE_GRID_COMPACT -> {
|
||||
val columns = resources.getInteger(R.integer.game_columns_grid)
|
||||
GridLayoutManager(context, columns)
|
||||
}
|
||||
GameAdapter.VIEW_TYPE_LIST -> {
|
||||
val columns = resources.getInteger(R.integer.game_columns_list)
|
||||
GridLayoutManager(context, columns)
|
||||
|
@ -300,6 +304,7 @@ class GamesFragment : Fragment() {
|
|||
val currentViewType = getCurrentViewType()
|
||||
when (currentViewType) {
|
||||
GameAdapter.VIEW_TYPE_LIST -> popup.menu.findItem(R.id.view_list).isChecked = true
|
||||
GameAdapter.VIEW_TYPE_GRID_COMPACT -> popup.menu.findItem(R.id.view_grid_compact).isChecked = true
|
||||
GameAdapter.VIEW_TYPE_GRID -> popup.menu.findItem(R.id.view_grid).isChecked = true
|
||||
GameAdapter.VIEW_TYPE_CAROUSEL -> popup.menu.findItem(R.id.view_carousel).isChecked = true
|
||||
}
|
||||
|
@ -314,6 +319,14 @@ class GamesFragment : Fragment() {
|
|||
true
|
||||
}
|
||||
|
||||
R.id.view_grid_compact -> {
|
||||
if (getCurrentViewType() == GameAdapter.VIEW_TYPE_CAROUSEL) onPause()
|
||||
setCurrentViewType(GameAdapter.VIEW_TYPE_GRID_COMPACT)
|
||||
applyGridGamesBinding()
|
||||
item.isChecked = true
|
||||
true
|
||||
}
|
||||
|
||||
R.id.view_list -> {
|
||||
if (getCurrentViewType() == GameAdapter.VIEW_TYPE_CAROUSEL) onPause()
|
||||
setCurrentViewType(GameAdapter.VIEW_TYPE_LIST)
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<gradient
|
||||
android:angle="270"
|
||||
android:startColor="@android:color/transparent"
|
||||
android:centerColor="#66000000"
|
||||
android:endColor="#AA000000"
|
||||
android:type="linear" />
|
||||
</shape>
|
|
@ -5,27 +5,32 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:focusable="false"
|
||||
android:focusableInTouchMode="false">
|
||||
android:focusableInTouchMode="false"
|
||||
android:padding="4dp">
|
||||
|
||||
<org.yuzu.yuzu_emu.views.GradientBorderCardView
|
||||
android:id="@+id/card_game_grid"
|
||||
app:cardElevation="0dp"
|
||||
app:cardBackgroundColor="@color/eden_card_background"
|
||||
app:strokeWidth="1dp"
|
||||
app:strokeColor="@color/eden_border"
|
||||
app:strokeWidth="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_margin="4dp"
|
||||
android:clickable="true"
|
||||
android:clipToPadding="true"
|
||||
android:focusable="true"
|
||||
android:transitionName="card_game"
|
||||
app:cardCornerRadius="16dp">
|
||||
app:cardCornerRadius="16dp"
|
||||
android:foreground="@color/eden_border_gradient_start">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="6dp">
|
||||
android:paddingTop="14dp"
|
||||
android:paddingLeft="6dp"
|
||||
android:paddingRight="6dp"
|
||||
android:paddingBottom="6dp">
|
||||
|
||||
<com.google.android.material.imageview.ShapeableImageView
|
||||
android:id="@+id/image_game_screen"
|
||||
|
|
|
@ -0,0 +1,82 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:focusable="false"
|
||||
android:focusableInTouchMode="false"
|
||||
android:padding="4dp">
|
||||
|
||||
<org.yuzu.yuzu_emu.views.GradientBorderCardView
|
||||
android:id="@+id/card_game_grid_compact"
|
||||
app:cardElevation="0dp"
|
||||
app:cardBackgroundColor="@color/eden_card_background"
|
||||
app:strokeWidth="0dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_margin="4dp"
|
||||
android:clickable="true"
|
||||
android:clipToPadding="true"
|
||||
android:focusable="true"
|
||||
android:transitionName="card_game_compact"
|
||||
app:cardCornerRadius="16dp"
|
||||
android:foreground="@color/eden_border_gradient_start">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="14dp"
|
||||
android:paddingLeft="6dp"
|
||||
android:paddingRight="6dp"
|
||||
android:paddingBottom="6dp">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/image_container"
|
||||
android:layout_width="150dp"
|
||||
android:layout_height="100dp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.google.android.material.imageview.ShapeableImageView
|
||||
android:id="@+id/image_game_screen_compact"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:shapeAppearance="@style/ShapeAppearance.Material3.Corner.Medium"
|
||||
android:scaleType="centerCrop"
|
||||
tools:src="@drawable/default_icon" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/gradient_overlay_bottom" />
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/text_game_title_compact"
|
||||
style="@style/SynthwaveText.Body"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_margin="6dp"
|
||||
android:requiresFadingEdge="horizontal"
|
||||
android:textAlignment="center"
|
||||
android:textSize="12sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@android:color/white"
|
||||
android:shadowColor="@android:color/black"
|
||||
android:shadowDx="1"
|
||||
android:shadowDy="1"
|
||||
android:shadowRadius="2"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
tools:text="The Legend of Zelda: Skyward Sword" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</org.yuzu.yuzu_emu.views.GradientBorderCardView>
|
||||
|
||||
</FrameLayout>
|
|
@ -4,6 +4,9 @@
|
|||
<item
|
||||
android:id="@+id/view_grid"
|
||||
android:title="@string/view_grid"/>
|
||||
<item
|
||||
android:id="@+id/view_grid_compact"
|
||||
android:title="@string/view_grid_compact"/>
|
||||
<item
|
||||
android:id="@+id/view_list"
|
||||
android:title="@string/view_list"
|
||||
|
|
|
@ -119,8 +119,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">يتخطى بعض عمليات إبطال ذاكرة التخزين المؤقت أثناء تحديثات الذاكرة، مما يقلل استخدام المعالج ويحسن أدائه. قد يسبب هذا أعطالاً أو تعطلًا في بعض الألعاب.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">تمكين محاكاة MMU المضيف</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">يعمل هذا التحسين على تسريع وصول الذاكرة بواسطة البرنامج الضيف. يؤدي تمكينه إلى إجراء عمليات قراءة/كتابة ذاكرة الضيف مباشرة في الذاكرة والاستفادة من MMU المضيف. يؤدي تعطيل هذا إلى إجبار جميع عمليات الوصول إلى الذاكرة على استخدام محاكاة MMU البرمجية.</string>
|
||||
<string name="dma_accuracy">مستوى DMA</string>
|
||||
<string name="dma_accuracy_description">يتحكم في دقة تحديد مستوى DMA. الدقة الأعلى يمكنها إصلاح بعض المشاكل في بعض الألعاب، ولكنها قد تؤثر أيضًا على الأداء في بعض الحالات. إذا كنت غير متأكد، اتركه على الوضع الافتراضي.</string>
|
||||
<string name="dma_accuracy">دقة DMA</string>
|
||||
<string name="dma_accuracy_description">يتحكم في دقة تحديد DMA. يمكن أن تصلح الدقة الآمنة المشاكل في بعض الألعاب، ولكنها قد تؤثر أيضًا على الأداء في بعض الحالات. إذا كنت غير متأكد، اترك هذا على الوضع الافتراضي.</string>
|
||||
|
||||
<!-- Memory Layouts -->
|
||||
<string name="memory_4gb">4 جيجابايت (موصى به)</string>
|
||||
|
@ -498,8 +498,6 @@
|
|||
<string name="use_custom_rtc">ساعة مخصصة في الوقت الحقيقي</string>
|
||||
<string name="use_custom_rtc_description">يسمح لك بتعيين ساعة مخصصة في الوقت الفعلي منفصلة عن وقت النظام الحالي لديك</string>
|
||||
<string name="set_custom_rtc">تعيين ساعة مخصصة في الوقت الحقيقي</string>
|
||||
<string name="disable_nca_verification">تعطيل التحقق من NCA</string>
|
||||
<string name="disable_nca_verification_description">يعطل التحقق من سلامة أرشيفات محتوى NCA. قد يحسن هذا من سرعة التحميل لكنه يخاطر بتلف البيانات أو تمرير ملفات غير صالحة دون اكتشاف. ضروري لجعل الألعاب والتحديثات التي تتطلب نظامًا أساسيًا 20+ تعمل.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">توليد</string>
|
||||
|
@ -794,9 +792,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">افتراضي</string>
|
||||
<string name="dma_accuracy_normal">عادي</string>
|
||||
<string name="dma_accuracy_high">عالي</string>
|
||||
<string name="dma_accuracy_extreme">مفرط</string>
|
||||
<string name="dma_accuracy_unsafe">غير آمن (سريع)</string>
|
||||
<string name="dma_accuracy_safe">آمن (مستقر)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -839,13 +836,13 @@
|
|||
<string name="ratio_stretch">تمتد إلى النافذة</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (بطيء)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">تنفيذ التعليمات البرمجية الأصلية (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">دقه</string>
|
||||
<string name="cpu_accuracy_unsafe">غير آمن</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoid (بطيء)</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoid</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">الأسهم</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">هەندێک لە بازنەکردنەکانی هەڵگر لە کاتی نوێکردنەوەی بیرگە دەنێرێت، کەمکردنەوەی بەکارهێنانی CPU و باشترکردنی کارایی. لەوانەیە لە هەندێک یاری کێشە درووست بکات.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">چالاککردنی میمیکردنی MMU میواندە</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">ئەم باشکردنە خێرایی دەستکەوتنی بیرگە لەلایەن پرۆگرامی میوانەکە زیاد دەکات. چالاککردنی وای لێدەکات کە خوێندنەوە/نووسینەکانی بیرگەی میوانەکە ڕاستەوخۆ لە بیرگە ئەنجام بدرێت و میمیکردنی MMU میواندە بەکاربهێنێت. ناچالاککردنی ئەمە هەموو دەستکەوتنەکانی بیرگە ڕەت دەکاتەوە لە بەکارهێنانی میمیکردنی MMU نەرمەکاڵا.</string>
|
||||
<string name="dma_accuracy">ئاستی DMA</string>
|
||||
<string name="dma_accuracy_description">کۆنتڕۆڵی وردی ڕێکخستنی DMA دەکات. وردی زیاتر دەتوانێ هەندێک کێشە لە هەندێک یاری چارەسەر بکات، بەڵام لە هەندێک حاڵەتدا کاریگەری لەسەر کارایی هەیە. ئەگەر دڵنیا نیت، بە ڕێکخستنی بنەڕەتی بێڵە.</string>
|
||||
<string name="dma_accuracy">وردیی DMA</string>
|
||||
<string name="dma_accuracy_description">کۆنتڕۆڵی وردیی وردیی DMA دەکات. وردییی پارێزراو دەتوانێت کێشەکان لە هەندێک یاری چارەسەر بکات، بەڵام لە هەندێک حاڵەتدا کاریگەری لەسەر کارایی هەیە. ئەگەر دڵنیا نیت، ئەمە بە سەر ڕەھەوادا بهێڵە.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (پێشنیارکراو)</string>
|
||||
<string name="memory_6gb">6GB (نائاسایش)</string>
|
||||
|
@ -482,8 +482,6 @@
|
|||
<string name="use_custom_rtc">RTCی تایبەتمەند</string>
|
||||
<string name="use_custom_rtc_description">ڕێگەت پێدەدات کاتژمێرێکی کاتی ڕاستەقینەی تایبەتمەند دابنێیت کە جیاوازە لە کاتی ئێستای سیستەمەکەت.</string>
|
||||
<string name="set_custom_rtc">دانانی RTCی تایبەتمەند</string>
|
||||
<string name="disable_nca_verification">ناچالاککردنی پشکنینی NCA</string>
|
||||
<string name="disable_nca_verification_description">پشکنینی پێکهاتەی ئارشیڤەکانی ناوەڕۆکی NCA ناچالاک دەکات. ئەمە لەوانەیە خێرایی بارکردن بهرهوپێش ببات، بەڵام مەترسی لەناوچوونی داتا یان ئەوەی فایلە نادروستەکان بەبێ ئەوەی دۆزرایەوە تێپەڕبن زیاتر دەکات. بۆ ئەوەی یاری و نوێکردنەوەکان کار بکەن کە پێویستی بە فریموێری 20+ هەیە زۆر پێویستە.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">بەرهەم هێنان</string>
|
||||
|
@ -763,9 +761,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">بنەڕەتی</string>
|
||||
<string name="dma_accuracy_normal">ئاسایی</string>
|
||||
<string name="dma_accuracy_high">بەرز</string>
|
||||
<string name="dma_accuracy_extreme">زۆر بەرز</string>
|
||||
<string name="dma_accuracy_unsafe">نەپارێزراو (خێرا)</string>
|
||||
<string name="dma_accuracy_safe">پارێزراو (جێگیر)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
|
|
@ -127,8 +127,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Přeskočí některé invalidace mezipaměti na straně CPU během aktualizací paměti, čímž sníží zatížení CPU a zlepší jeho výkon. Může způsobit chyby nebo pády v některých hrách.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Povolit emulaci hostitelské MMU</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Tato optimalizace zrychluje přístup do paměti hostovaného programu. Její povolení způsobí, že čtení a zápisy do paměti hosta se provádějí přímo v paměti a využívají hostitelskou MMU. Zakázání této funkce vynutí použití softwarové emulace MMU pro všechny přístupy do paměti.</string>
|
||||
<string name="dma_accuracy">Úroveň DMA</string>
|
||||
<string name="dma_accuracy_description">Ovládá přesnost DMA. Vyšší přesnost může opravit problémy v některých hrách, ale může také ovlivnit výkon. Pokud si nejste jisti, ponechejte výchozí nastavení.</string>
|
||||
<string name="dma_accuracy">Přesnost DMA</string>
|
||||
<string name="dma_accuracy_description">Ovládá přesnost DMA. Bezpečná přesnost může opravit problémy v některých hrách, ale v některých případech může také ovlivnit výkon. Pokud si nejste jisti, ponechte to na výchozím nastavení.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (Doporučeno)</string>
|
||||
<string name="memory_6gb">6GB (Nebezpečné)</string>
|
||||
|
@ -458,8 +458,6 @@
|
|||
<string name="use_custom_rtc">Vlastní RTC</string>
|
||||
<string name="use_custom_rtc_description">Vlastní nastavení času</string>
|
||||
<string name="set_custom_rtc">Nastavit vlastní RTC</string>
|
||||
<string name="disable_nca_verification">Zakázat ověřování NCA</string>
|
||||
<string name="disable_nca_verification_description">Zakáže ověřování integrity archivů obsahu NCA. To může zlepšit rychlost načítání, ale hrozí poškození dat nebo neodhalení neplatných souborů. Je nutné, aby fungovaly hry a aktualizace vyžadující firmware 20+.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Generovat</string>
|
||||
|
@ -737,9 +735,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Výchozí</string>
|
||||
<string name="dma_accuracy_normal">Normální</string>
|
||||
<string name="dma_accuracy_high">Vysoká</string>
|
||||
<string name="dma_accuracy_extreme">Extrémní</string>
|
||||
<string name="dma_accuracy_unsafe">Nebezpečné (rychlé)</string>
|
||||
<string name="dma_accuracy_safe">Bezpečné (stabilní)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Überspringt bestimmte Cache-Invalidierungen auf CPU-Seite während Speicherupdates, reduziert die CPU-Auslastung und verbessert die Leistung. Kann in einigen Spielen zu Fehlern oder Abstürzen führen.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Host-MMU-Emulation aktivieren</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Diese Optimierung beschleunigt Speicherzugriffe durch das Gastprogramm. Wenn aktiviert, erfolgen Speicherlese- und -schreibvorgänge des Gastes direkt im Speicher und nutzen die MMU des Hosts. Das Deaktivieren erzwingt die Verwendung der Software-MMU-Emulation für alle Speicherzugriffe.</string>
|
||||
<string name="dma_accuracy">DMA-Level</string>
|
||||
<string name="dma_accuracy_description">Steuert die DMA-Präzisionsgenauigkeit. Eine höhere Präzision kann Probleme in einigen Spielen beheben, kann aber in einigen Fällen auch die Leistung beeinträchtigen. Im Zweifel auf „Standard“ belassen.</string>
|
||||
<string name="dma_accuracy">DMA-Genauigkeit</string>
|
||||
<string name="dma_accuracy_description">Steuert die DMA-Präzisionsgenauigkeit. Sichere Präzision kann Probleme in einigen Spielen beheben, kann aber in einigen Fällen auch die Leistung beeinträchtigen. Im Zweifel lassen Sie dies auf Standard stehen.</string>
|
||||
|
||||
<string name="memory_4gb">4 GB (Empfohlen)</string>
|
||||
<string name="memory_6gb">6 GB (Unsicher)</string>
|
||||
|
@ -486,8 +486,6 @@ Wird der Handheld-Modus verwendet, verringert es die Auflösung und erhöht die
|
|||
<string name="select_rtc_date">RTC-Datum auswählen</string>
|
||||
<string name="select_rtc_time">RTC-Zeit auswählen</string>
|
||||
<string name="use_custom_rtc">Benutzerdefinierte Echtzeituhr</string>
|
||||
<string name="disable_nca_verification">NCA-Verifizierung deaktivieren</string>
|
||||
<string name="disable_nca_verification_description">Deaktiviert die Integritätsprüfung von NCA-Inhaltsarchiven. Dies kann die Ladegeschwindigkeit verbessern, riskiert jedoch Datenbeschädigung oder dass ungültige Dateien unentdeckt bleiben. Ist notwendig, um Spiele und Updates, die Firmware 20+ benötigen, zum Laufen zu bringen.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Generieren</string>
|
||||
|
@ -829,9 +827,8 @@ Wirklich fortfahren?</string>
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Standard</string>
|
||||
<string name="dma_accuracy_normal">Normal</string>
|
||||
<string name="dma_accuracy_high">Hoch</string>
|
||||
<string name="dma_accuracy_extreme">Extrem</string>
|
||||
<string name="dma_accuracy_unsafe">Unsicher (schnell)</string>
|
||||
<string name="dma_accuracy_safe">Sicher (stabil)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Omite ciertas invalidaciones de caché durante actualizaciones de memoria, reduciendo el uso de CPU y mejorando su rendimiento. Puede causar fallos en algunos juegos.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Habilitar emulación de MMU del host</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Esta optimización acelera los accesos a la memoria por parte del programa invitado. Al habilitarla, las lecturas/escrituras de memoria del invitado se realizan directamente en la memoria y utilizan la MMU del host. Deshabilitar esto obliga a que todos los accesos a la memoria utilicen la emulación de MMU por software.</string>
|
||||
<string name="dma_accuracy">Nivel de DMA</string>
|
||||
<string name="dma_accuracy_description">Controla la precisión del DMA. Una mayor precisión puede solucionar problemas en algunos juegos, pero también puede afectar el rendimiento en algunos casos. Si no está seguro, déjelo en Predeterminado.</string>
|
||||
<string name="dma_accuracy">Precisión de DMA</string>
|
||||
<string name="dma_accuracy_description">Controla la precisión de DMA. La precisión segura puede solucionar problemas en algunos juegos, pero también puede afectar al rendimiento en algunos casos. Si no está seguro, déjelo en Predeterminado.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (Recomendado)</string>
|
||||
<string name="memory_6gb">6GB (Inseguro)</string>
|
||||
|
@ -506,8 +506,6 @@
|
|||
<string name="use_custom_rtc">RTC personalizado</string>
|
||||
<string name="use_custom_rtc_description">Te permite tener un reloj personalizado en tiempo real diferente del tiempo del propio sistema.</string>
|
||||
<string name="set_custom_rtc">Configurar RTC personalizado</string>
|
||||
<string name="disable_nca_verification">Desactivar verificación NCA</string>
|
||||
<string name="disable_nca_verification_description">Desactiva la verificación de integridad de los archivos de contenido NCA. Esto puede mejorar la velocidad de carga, pero arriesga corrupción de datos o que archivos inválidos pasen desapercibidos. Es necesario para que funcionen juegos y actualizaciones que requieren firmware 20+.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Generar</string>
|
||||
|
@ -872,9 +870,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Predeterminado</string>
|
||||
<string name="dma_accuracy_normal">Normal</string>
|
||||
<string name="dma_accuracy_high">Alto</string>
|
||||
<string name="dma_accuracy_extreme">Extremo</string>
|
||||
<string name="dma_accuracy_unsafe">Inseguro (rápido)</string>
|
||||
<string name="dma_accuracy_safe">Seguro (estable)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -922,13 +919,13 @@
|
|||
<string name="ratio_stretch">Ajustar a la ventana</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">DynARMic (lento)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">Ejecución nativa de código (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">Preciso</string>
|
||||
<string name="cpu_accuracy_unsafe">Impreciso</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoico (Lento)</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoico</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">Cruceta</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">بعضی ابطالهای حافظه نهان در هنگام بهروزرسانیهای حافظه را رد میکند، استفاده از CPU را کاهش داده و عملکرد آن را بهبود میبخشد. ممکن است در برخی بازیها باعث مشکلات یا خرابی شود.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">فعالسازی شبیهسازی MMU میزبان</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">این بهینهسازی دسترسیهای حافظه توسط برنامه میهمان را تسریع میکند. فعالسازی آن باعث میشود خواندن/نوشتن حافظه میهمان مستقیماً در حافظه انجام شود و از MMU میزبان استفاده کند. غیرفعال کردن این قابلیت، همه دسترسیهای حافظه را مجبور به استفاده از شبیهسازی نرمافزاری MMU میکند.</string>
|
||||
<string name="dma_accuracy">سطح DMA</string>
|
||||
<string name="dma_accuracy_description">دقت صحت DMA را کنترل می کند. دقت بالاتر می تواند مشکلات برخی بازی ها را برطرف کند، اما در برخی موارد نیز می تواند بر عملکرد تأثیر بگذارد. اگر مطمئن نیستید، آن را روی پیش فرض بگذارید.</string>
|
||||
<string name="dma_accuracy">دقت DMA</string>
|
||||
<string name="dma_accuracy_description">دقت صحت DMA را کنترل می کند. دقت ایمن می تواند مشکلات برخی بازی ها را برطرف کند، اما در برخی موارد نیز ممکن است بر عملکرد تأثیر بگذارد. اگر مطمئن نیستید، این گزینه را روی پیش فرض بگذارید.</string>
|
||||
|
||||
<string name="memory_4gb">4 گیگابایت (توصیه شده)</string>
|
||||
<string name="memory_6gb">6 گیگابایت (ناامن)</string>
|
||||
|
@ -504,8 +504,6 @@
|
|||
<string name="use_custom_rtc">زمان سفارشی</string>
|
||||
<string name="use_custom_rtc_description">به شما امکان میدهد یک ساعت سفارشی جدا از زمان فعلی سیستم خود تنظیم کنید.</string>
|
||||
<string name="set_custom_rtc">تنظیم زمان سفارشی</string>
|
||||
<string name="disable_nca_verification">غیرفعال کردن تأیید اعتبار NCA</string>
|
||||
<string name="disable_nca_verification_description">بررسی صحت آرشیوهای محتوای NCA را غیرفعال میکند. این ممکن است سرعت بارگذاری را بهبود بخشد اما خطر خرابی داده یا تشخیص داده نشدن فایلهای نامعتبر را به همراه دارد. برای کار کردن بازیها و بهروزرسانیهایی که به فرمور ۲۰+ نیاز دارند، ضروری است.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">تولید</string>
|
||||
|
@ -871,9 +869,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">پیش فرض</string>
|
||||
<string name="dma_accuracy_normal">معمولی</string>
|
||||
<string name="dma_accuracy_high">بالا</string>
|
||||
<string name="dma_accuracy_extreme">فوق العاده</string>
|
||||
<string name="dma_accuracy_unsafe">ناایمن (سریع)</string>
|
||||
<string name="dma_accuracy_safe">ایمن (پایدار)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -921,13 +918,13 @@
|
|||
<string name="ratio_stretch">کشش تا پر کردن پنجره</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">دینارمیک (کند)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">اجرای کد اصلی (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">دقیق</string>
|
||||
<string name="cpu_accuracy_unsafe">ناامن</string>
|
||||
<string name="cpu_accuracy_paranoid">بدگمان (کند)</string>
|
||||
<string name="cpu_accuracy_paranoid">بدگمان</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">کلیدهای جهتی</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Ignore certaines invalidations de cache côté CPU lors des mises à jour mémoire, réduisant l\'utilisation du CPU et améliorant ses performances. Peut causer des bugs ou plantages sur certains jeux.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Activer l\'émulation de la MMU hôte</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Cette optimisation accélère les accès mémoire par le programme invité. L\'activer entraîne que les lectures/écritures mémoire de l\'invité sont effectuées directement en mémoire et utilisent la MMU de l\'hôte. Désactiver cela force tous les accès mémoire à utiliser l\'émulation logicielle de la MMU.</string>
|
||||
<string name="dma_accuracy">Niveau DMA</string>
|
||||
<string name="dma_accuracy_description">Contrôle la précision du DMA. Une précision plus élevée peut résoudre les problèmes dans certains jeux, mais peut aussi affecter les performances dans certains cas. Si vous n\'êtes pas sûr, laissez-la sur Défaut.</string>
|
||||
<string name="dma_accuracy">Précision DMA</string>
|
||||
<string name="dma_accuracy_description">Contrôle la précision du DMA. Une précision sûre peut résoudre les problèmes dans certains jeux, mais peut aussi affecter les performances dans certains cas. Si vous n\'êtes pas sûr, laissez ce paramètre sur Par défaut.</string>
|
||||
|
||||
<string name="memory_4gb">4 Go (Recommandé)</string>
|
||||
<string name="memory_6gb">6 Go (Dangereux)</string>
|
||||
|
@ -506,8 +506,6 @@
|
|||
<string name="use_custom_rtc">RTC personnalisé</string>
|
||||
<string name="use_custom_rtc_description">Vous permet de définir une horloge en temps réel personnalisée distincte de l\'heure actuelle de votre système.</string>
|
||||
<string name="set_custom_rtc">Définir l\'horloge RTC personnalisée</string>
|
||||
<string name="disable_nca_verification">Désactiver la vérification NCA</string>
|
||||
<string name="disable_nca_verification_description">Désactive la vérification d\'intégrité des archives de contenu NCA. Cela peut améliorer la vitesse de chargement mais risque une corruption des données ou que des fichiers invalides ne soient pas détectés. Est nécessaire pour faire fonctionner les jeux et mises à jour nécessitant un firmware 20+.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Générer</string>
|
||||
|
@ -920,9 +918,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Défaut</string>
|
||||
<string name="dma_accuracy_normal">Normal</string>
|
||||
<string name="dma_accuracy_high">Élevé</string>
|
||||
<string name="dma_accuracy_extreme">Extrême</string>
|
||||
<string name="dma_accuracy_unsafe">Dangereux (rapide)</string>
|
||||
<string name="dma_accuracy_safe">Sûr (stable)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -970,13 +967,13 @@
|
|||
<string name="ratio_stretch">Étirer à la fenêtre</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (Lent)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">Exécution de code natif (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">Précis</string>
|
||||
<string name="cpu_accuracy_unsafe">Risqué</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoïaque (Lent)</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoïaque</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">Pavé directionnel</string>
|
||||
|
|
|
@ -129,8 +129,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">מדלג על איפוסי מטמון מסוימים במהלך עדכוני זיכרון, מפחית שימוש במעבד ומשפר ביצועים. עלול לגרום לתקלות או קריסות בחלק מהמשחקים.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">הפעל אמולציית MMU מארח</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">אופטימיזציה זו מאיצה את גישת הזיכרון על ידי התוכנית האורחת. הפעלתה גורמת לכך שפעולות קריאה/כתיבה לזיכרון האורח מתבצעות ישירות לזיכרון ומשתמשות ב-MMU של המארח. השבתת זאת מאלצת את כל גישות הזיכרון להשתמש באמולציית MMU תוכנתית.</string>
|
||||
<string name="dma_accuracy">רמת DMA</string>
|
||||
<string name="dma_accuracy_description">שולטת בדיוק הדיוק של DMA. דיוק גבוה יותר יכול לתקן בעיות בחלק מהמשחקים, אך הוא עלול גם להשפיע על הביצועים במקרים מסוימים. אם אינך בטוח, השאר ברירת מחדל.</string>
|
||||
<string name="dma_accuracy">דיוק DMA</string>
|
||||
<string name="dma_accuracy_description">שולט בדיוק הדיוק של DMA. דיוק בטוח יכול לתקן בעיות בחלק מהמשחקים, אך הוא עלול גם להשפיע על הביצועים במקרים מסוימים. אם אינך בטוח, השאר זאת על ברירת מחדל.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (מומלץ)</string>
|
||||
<string name="memory_6gb">6GB (לא בטוח)</string>
|
||||
|
@ -505,8 +505,6 @@
|
|||
<string name="use_custom_rtc">RTC מותאם אישית</string>
|
||||
<string name="use_custom_rtc_description">מאפשר לך לקבוע שעון זמן אמת נפרד משעון המערכת שלך.</string>
|
||||
<string name="set_custom_rtc">קבע RTC מותאם אישית</string>
|
||||
<string name="disable_nca_verification">השבת אימות NCA</string>
|
||||
<string name="disable_nca_verification_description">משבית את אימות השלמות של ארכיוני התוכן של NCA. זה עשוי לשפר את מהירות הטעינה אך מסתכן בשחיקת נתונים או שמא קבצים לא חוקיים יעברו ללא זיהוי. זה הכרחי כדי לגרום למשחקים ועדכונים הדורשים firmware 20+ לעבוד.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">יצירה</string>
|
||||
|
@ -802,9 +800,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">ברירת מחדל</string>
|
||||
<string name="dma_accuracy_normal">רגיל</string>
|
||||
<string name="dma_accuracy_high">גבוה</string>
|
||||
<string name="dma_accuracy_extreme">קיצוני</string>
|
||||
<string name="dma_accuracy_unsafe">לא בטוח (מהיר)</string>
|
||||
<string name="dma_accuracy_safe">בטוח (יציב)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -847,13 +844,13 @@
|
|||
<string name="ratio_stretch">הרחב לגודל המסך</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">דינמי (איטי)</string>
|
||||
<string name="cpu_backend_dynarmic">דינמי</string>
|
||||
<string name="cpu_backend_nce">ביצוע קוד מקורי (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">מדויק</string>
|
||||
<string name="cpu_accuracy_unsafe">לא בטוח</string>
|
||||
<string name="cpu_accuracy_paranoid">פראנואידי (איטי)</string>
|
||||
<string name="cpu_accuracy_paranoid">פראנואידי</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">D-pad</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Kihagy néhány CPU-oldali gyorsítótár-érvénytelenítést memóriafrissítések közben, csökkentve a CPU használatát és javítva a teljesítményt. Néhány játékban hibákat vagy összeomlást okozhat.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Gazda MMU emuláció engedélyezése</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Ez az optimalizáció gyorsítja a vendégprogram memória-hozzáférését. Engedélyezése esetén a vendég memóriaolvasási/írási műveletei közvetlenül a memóriában történnek, és kihasználják a gazda MMU-ját. Letiltás esetén minden memória-hozzáférés a szoftveres MMU emulációt használja.</string>
|
||||
<string name="dma_accuracy">DMA szint</string>
|
||||
<string name="dma_accuracy_description">Szabályozza a DMA pontosságát. A magasabb pontosság megoldhat néhány játék problémáit, de bizonyos esetekben befolyásolhatja a teljesítményt. Ha bizonytalan, hagyja Alapértelmezett beállításnál.</string>
|
||||
<string name="dma_accuracy">DMA pontosság</string>
|
||||
<string name="dma_accuracy_description">Szabályozza a DMA pontosságát. A biztonságos pontosság megoldhat néhány játék problémáit, de bizonyos esetekben befolyásolhatja a teljesítményt. Ha bizonytalan, hagyja Alapértelmezett beállításon.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (Ajánlott)</string>
|
||||
<string name="memory_6gb">6GB (Nem biztonságos)</string>
|
||||
|
@ -501,8 +501,6 @@
|
|||
<string name="use_custom_rtc">Egyéni RTC</string>
|
||||
<string name="use_custom_rtc_description">Megadhatsz egy valós idejű órát, amely eltér a rendszer által használt órától.</string>
|
||||
<string name="set_custom_rtc">Egyéni RTC beállítása</string>
|
||||
<string name="disable_nca_verification">NCA ellenőrzés letiltása</string>
|
||||
<string name="disable_nca_verification_description">Letiltja az NCA tartalomarchívumok integritás-ellenőrzését. Ez javíthatja a betöltési sebességet, de az adatsérülés vagy az érvénytelen fájlok észrevétlen maradásának kockázatával jár. Elengedhetetlen a 20+ firmware-et igénylő játékok és frissítések működtetéséhez.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Generálás</string>
|
||||
|
@ -909,9 +907,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Alapértelmezett</string>
|
||||
<string name="dma_accuracy_normal">Normál</string>
|
||||
<string name="dma_accuracy_high">Magas</string>
|
||||
<string name="dma_accuracy_extreme">Extrém</string>
|
||||
<string name="dma_accuracy_unsafe">Nem biztonságos (gyors)</string>
|
||||
<string name="dma_accuracy_safe">Biztonságos (stabil)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -957,13 +954,13 @@
|
|||
<string name="ratio_stretch">Ablakhoz nyújtás</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dinamikus (lassú)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">Natív kód végrehajtás (Native code execution (NCE))</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">Pontos</string>
|
||||
<string name="cpu_accuracy_unsafe">Nem biztonságos</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoid (Lassú)</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoid</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">D-pad</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Melewati beberapa pembatalan cache sisi CPU selama pembaruan memori, mengurangi penggunaan CPU dan meningkatkan kinerjanya. Mungkin menyebabkan gangguan atau crash pada beberapa game.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Aktifkan Emulasi MMU Host</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Optimasi ini mempercepat akses memori oleh program tamu. Mengaktifkannya menyebabkan pembacaan/penulisan memori tamu dilakukan langsung ke memori dan memanfaatkan MMU Host. Menonaktifkan ini memaksa semua akses memori menggunakan Emulasi MMU Perangkat Lunak.</string>
|
||||
<string name="dma_accuracy">Level DMA</string>
|
||||
<string name="dma_accuracy_description">Mengontrol akurasi presisi DMA. Presisi yang lebih tinggi dapat memperbaiki masalah di beberapa game, tetapi juga dapat memengaruhi performa dalam beberapa kasus. Jika tidak yakin, biarkan di Bawaan.</string>
|
||||
<string name="dma_accuracy">Akurasi DMA</string>
|
||||
<string name="dma_accuracy_description">Mengontrol keakuratan presisi DMA. Presisi aman dapat memperbaiki masalah di beberapa game, tetapi juga dapat memengaruhi kinerja dalam beberapa kasus. Jika tidak yakin, biarkan ini pada Bawaan.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (Direkomendasikan)</string>
|
||||
<string name="memory_6gb">6GB (Tidak Aman)</string>
|
||||
|
@ -502,8 +502,6 @@
|
|||
<string name="use_custom_rtc">RTC Kustom</string>
|
||||
<string name="use_custom_rtc_description">Memungkinkan Anda untuk mengatur jam waktu nyata kustom yang terpisah dari waktu sistem saat ini Anda.</string>
|
||||
<string name="set_custom_rtc">Setel RTC Kustom</string>
|
||||
<string name="disable_nca_verification">Nonaktifkan Verifikasi NCA</string>
|
||||
<string name="disable_nca_verification_description">Menonaktifkan verifikasi integritas arsip konten NCA. Ini dapat meningkatkan kecepatan pemuatan tetapi berisiko kerusakan data atau file yang tidak valid tidak terdeteksi. Diperlukan untuk membuat game dan pembaruan yang membutuhkan firmware 20+ bekerja.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Hasilkan</string>
|
||||
|
@ -864,9 +862,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Bawaan</string>
|
||||
<string name="dma_accuracy_normal">Normal</string>
|
||||
<string name="dma_accuracy_high">Tinggi</string>
|
||||
<string name="dma_accuracy_extreme">Ekstrem</string>
|
||||
<string name="dma_accuracy_unsafe">Tidak Aman (cepat)</string>
|
||||
<string name="dma_accuracy_safe">Aman (stabil)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -914,13 +911,13 @@
|
|||
<string name="ratio_stretch">Merentangkan</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dynamic (Lambat)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">Native code execution (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">Akurat</string>
|
||||
<string name="cpu_accuracy_unsafe">Berbahaya</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoid (Slow)</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoid</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">D Pad</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Salta alcuni invalidamenti della cache lato CPU durante gli aggiornamenti di memoria, riducendo l\'uso della CPU e migliorandone le prestazioni. Potrebbe causare glitch o crash in alcuni giochi.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Abilita emulazione MMU host</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Questa ottimizzazione accelera gli accessi alla memoria da parte del programma guest. Abilitandola, le letture/scritture della memoria guest vengono eseguite direttamente in memoria e sfruttano la MMU host. Disabilitandola, tutti gli accessi alla memoria sono costretti a utilizzare l\'emulazione software della MMU.</string>
|
||||
<string name="dma_accuracy">Livello DMA</string>
|
||||
<string name="dma_accuracy_description">Controlla la precisione del DMA. Una precisione più alta può risolvere problemi in alcuni giochi, ma in alcuni casi può influire sulle prestazioni. Se non sei sicuro, lascia su Predefinito.</string>
|
||||
<string name="dma_accuracy">Precisione DMA</string>
|
||||
<string name="dma_accuracy_description">Controlla la precisione del DMA. La precisione sicura può risolvere problemi in alcuni giochi, ma in alcuni casi può anche influire sulle prestazioni. In caso di dubbi, lascia questo su Predefinito.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (Consigliato)</string>
|
||||
<string name="memory_6gb">6GB (Non sicuro)</string>
|
||||
|
@ -505,8 +505,6 @@
|
|||
<string name="use_custom_rtc">RTC Personalizzato</string>
|
||||
<string name="use_custom_rtc_description">Ti permette di impostare un orologio in tempo reale personalizzato, completamente separato da quello di sistema.</string>
|
||||
<string name="set_custom_rtc">Imposta un orologio in tempo reale personalizzato</string>
|
||||
<string name="disable_nca_verification">Disabilita verifica NCA</string>
|
||||
<string name="disable_nca_verification_description">Disabilita la verifica dell\'integrità degli archivi di contenuto NCA. Può migliorare la velocità di caricamento ma rischia il danneggiamento dei dati o che file non validi passino inosservati. Necessario per far funzionare giochi e aggiornamenti che richiedono il firmware 20+.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Genera</string>
|
||||
|
@ -833,9 +831,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Predefinito</string>
|
||||
<string name="dma_accuracy_normal">Normale</string>
|
||||
<string name="dma_accuracy_high">Alto</string>
|
||||
<string name="dma_accuracy_extreme">Estremo</string>
|
||||
<string name="dma_accuracy_unsafe">Non sicuro (veloce)</string>
|
||||
<string name="dma_accuracy_safe">Sicuro (stabile)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">メモリ更新時のCPU側キャッシュ無効化をスキップし、CPU使用率を減らして性能を向上させます。一部のゲームで不具合やクラッシュが発生する可能性があります。</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">ホストMMUエミュレーションを有効化</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">この最適化により、ゲストプログラムによるメモリアクセスが高速化されます。有効にすると、ゲストのメモリ読み書きが直接メモリ内で実行され、ホストのMMUを利用します。無効にすると、すべてのメモリアクセスでソフトウェアMMUエミュレーションが使用されます。</string>
|
||||
<string name="dma_accuracy">DMAレベル</string>
|
||||
<string name="dma_accuracy_description">DMAの精度を制御します。精度を高くすると一部のゲームの問題が修正される場合がありますが、場合によってはパフォーマンスに影響を与える可能性もあります。不明な場合は、デフォルトのままにしてください。</string>
|
||||
<string name="dma_accuracy">DMA精度</string>
|
||||
<string name="dma_accuracy_description">DMAの精度を制御します。安全な精度は一部のゲームの問題を修正できる場合がありますが、場合によってはパフォーマンスに影響を与える可能性もあります。不明な場合は、これをデフォルトのままにしてください。</string>
|
||||
|
||||
<string name="memory_4gb">4GB (推奨)</string>
|
||||
<string name="memory_6gb">6GB (安全でない)</string>
|
||||
|
@ -491,8 +491,6 @@
|
|||
<string name="use_custom_rtc">カスタム RTC</string>
|
||||
<string name="use_custom_rtc_description">現在のシステム時間とは別に、任意のリアルタイムクロックを設定できます。</string>
|
||||
<string name="set_custom_rtc">カスタムRTCを設定</string>
|
||||
<string name="disable_nca_verification">NCA検証を無効化</string>
|
||||
<string name="disable_nca_verification_description">NCAコンテンツアーカイブの整合性検証を無効にします。読み込み速度が向上する可能性がありますが、データ破損や不正なファイルが検出されないリスクがあります。ファームウェア20以上が必要なゲームや更新を動作させるために必要です。</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">生成</string>
|
||||
|
@ -792,9 +790,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">デフォルト</string>
|
||||
<string name="dma_accuracy_normal">標準</string>
|
||||
<string name="dma_accuracy_high">高</string>
|
||||
<string name="dma_accuracy_extreme">最高</string>
|
||||
<string name="dma_accuracy_unsafe">安全でない(高速)</string>
|
||||
<string name="dma_accuracy_safe">安全(安定)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -837,13 +834,13 @@
|
|||
<string name="ratio_stretch">画面に合わせる</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (低速)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">ネイティブコード実行 (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">正確</string>
|
||||
<string name="cpu_accuracy_unsafe">不安定</string>
|
||||
<string name="cpu_accuracy_paranoid">パラノイド (低速)</string>
|
||||
<string name="cpu_accuracy_paranoid">パラノイド</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">方向ボタン</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">메모리 업데이트 시 일부 CPU 측 캐시 무효화를 건너뛰어 CPU 사용량을 줄이고 성능을 향상시킵니다. 일부 게임에서 오류 또는 충돌을 일으킬 수 있습니다.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">호스트 MMU 에뮬레이션 사용</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">이 최적화는 게스트 프로그램의 메모리 접근 속도를 높입니다. 활성화하면 게스트의 메모리 읽기/쓰기가 메모리에서 직접 수행되고 호스트의 MMU를 활용합니다. 비활성화하면 모든 메모리 접근에 소프트웨어 MMU 에뮬레이션을 사용하게 됩니다.</string>
|
||||
<string name="dma_accuracy">DMA 수준</string>
|
||||
<string name="dma_accuracy_description">DMA 정밀도를 제어합니다. 높은 정밀도는 일부 게임의 문제를 해결할 수 있지만 경우에 따라 성능에 영향을 미칠 수도 있습니다. 확실하지 않다면 기본값으로 두세요.</string>
|
||||
<string name="dma_accuracy">DMA 정확도</string>
|
||||
<string name="dma_accuracy_description">DMA 정밀도 정확도를 제어합니다. 안전한 정밀도는 일부 게임의 문제를 해결할 수 있지만 경우에 따라 성능에 영향을 미칠 수도 있습니다. 확실하지 않은 경우 기본값으로 두십시오.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (권장)</string>
|
||||
<string name="memory_6gb">6GB (안전하지 않음)</string>
|
||||
|
@ -501,8 +501,6 @@
|
|||
<string name="use_custom_rtc">사용자 지정 RTC</string>
|
||||
<string name="use_custom_rtc_description">현재 시스템 시간과 별도로 사용자 지정 RTC를 설정할 수 있습니다.</string>
|
||||
<string name="set_custom_rtc">사용자 지정 RTC 설정</string>
|
||||
<string name="disable_nca_verification">NCA 검증 비활성화</string>
|
||||
<string name="disable_nca_verification_description">NCA 콘텐츠 아카이브의 무결성 검증을 비활성화합니다. 로딩 속도를 향상시킬 수 있지만 데이터 손상이나 유효하지 않은 파일이 미검증될 위험이 있습니다. 펌웨어 20+가 필요한 게임 및 업데이트를 실행하려면 필요합니다.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">생성</string>
|
||||
|
@ -863,9 +861,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">기본값</string>
|
||||
<string name="dma_accuracy_normal">보통</string>
|
||||
<string name="dma_accuracy_high">높음</string>
|
||||
<string name="dma_accuracy_extreme">극단적</string>
|
||||
<string name="dma_accuracy_unsafe">안전하지 않음(빠름)</string>
|
||||
<string name="dma_accuracy_safe">안전함(안정적)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -913,13 +910,13 @@
|
|||
<string name="ratio_stretch">화면에 맞춤</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (느림)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">네이티브 코드 실행 (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">정확함</string>
|
||||
<string name="cpu_accuracy_unsafe">최적화 (안전하지 않음)</string>
|
||||
<string name="cpu_accuracy_paranoid">최적화하지 않음 (느림)</string>
|
||||
<string name="cpu_accuracy_paranoid">최적화하지 않음</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">십자키</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Hopper over enkelte CPU-side cache-invalideringer under minneoppdateringer, reduserer CPU-bruk og forbedrer ytelsen. Kan forårsake feil eller krasj i noen spill.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Aktiver verts-MMU-emulering</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Denne optimaliseringen fremskynder minnetilgang av gjesteprogrammet. Hvis aktivert, utføres gjestens minnelesing/skriving direkte i minnet og bruker vertens MMU. Deaktivering tvinger alle minnetilganger til å bruke programvarebasert MMU-emulering.</string>
|
||||
<string name="dma_accuracy">DMA-nivå</string>
|
||||
<string name="dma_accuracy_description">Styrer DMA-presisjonsnøyaktigheten. Høyere presisjon kan fikse problemer i noen spill, men kan også påvirke ytelsen i noen tilfeller. Hvis du er usikker, la den stå på Standard.</string>
|
||||
<string name="dma_accuracy">DMA-nøyaktighet</string>
|
||||
<string name="dma_accuracy_description">Kontrollerer DMA-presisjonsnøyaktigheten. Sikker presisjon kan fikse problemer i noen spill, men kan også påvirke ytelsen i noen tilfeller. Hvis du er usikker, la dette stå på Standard.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (Anbefalt)</string>
|
||||
<string name="memory_6gb">6GB (Usikkert)</string>
|
||||
|
@ -482,8 +482,6 @@
|
|||
<string name="use_custom_rtc">Tilpasset Sannhetstidsklokke</string>
|
||||
<string name="use_custom_rtc_description">Gjør det mulig å stille inn en egendefinert sanntidsklokke separat fra den gjeldende systemtiden.</string>
|
||||
<string name="set_custom_rtc">Angi tilpasset RTC</string>
|
||||
<string name="disable_nca_verification">Deaktiver NCA-verifisering</string>
|
||||
<string name="disable_nca_verification_description">Deaktiverer integritetsverifisering av NCA-innholdsarkiv. Dette kan forbedre lastehastigheten, men medfører risiko for datakorrupsjon eller at ugyldige filer ikke oppdages. Er nødvendig for å få spill og oppdateringer som trenger firmware 20+ til å fungere.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Generer</string>
|
||||
|
@ -773,9 +771,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Standard</string>
|
||||
<string name="dma_accuracy_normal">Normal</string>
|
||||
<string name="dma_accuracy_high">Høy</string>
|
||||
<string name="dma_accuracy_extreme">Ekstrem</string>
|
||||
<string name="dma_accuracy_unsafe">Usikker (rask)</string>
|
||||
<string name="dma_accuracy_safe">Sikker (stabil)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Pomija niektóre unieważnienia pamięci podręcznej po stronie CPU podczas aktualizacji pamięci, zmniejszając użycie CPU i poprawiając jego wydajność. Może powodować błędy lub awarie w niektórych grach.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Włącz emulację MMU hosta</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Ta optymalizacja przyspiesza dostęp do pamięci przez program gościa. Włączenie powoduje, że odczyty/zapisy pamięci gościa są wykonywane bezpośrednio w pamięci i wykorzystują MMU hosta. Wyłączenie wymusza użycie programowej emulacji MMU dla wszystkich dostępów do pamięci.</string>
|
||||
<string name="dma_accuracy">Poziom DMA</string>
|
||||
<string name="dma_accuracy_description">Kontroluje dokładność precyzji DMA. Wyższy poziom może naprawić problemy w niektórych grach, ale może również wpłynąć na wydajność. Jeśli nie jesteś pewien, pozostaw wartość «Domyślny».</string>
|
||||
<string name="dma_accuracy">Dokładność DMA</string>
|
||||
<string name="dma_accuracy_description">Kontroluje dokładność precyzji DMA. Bezpieczna precyzja może naprawić problemy w niektórych grach, ale w niektórych przypadkach może również wpłynąć na wydajność. Jeśli nie jesteś pewien, pozostaw wartość Domyślną.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (Zalecane)</string>
|
||||
<string name="memory_6gb">6GB (Niebezpieczne)</string>
|
||||
|
@ -482,8 +482,6 @@
|
|||
<string name="use_custom_rtc">Niestandardowy RTC</string>
|
||||
<string name="use_custom_rtc_description">Ta opcja pozwala na wybranie własnych ustawień czasu używanych w czasie emulacji, innych niż czas systemu Android.</string>
|
||||
<string name="set_custom_rtc">Ustaw niestandardowy czas RTC</string>
|
||||
<string name="disable_nca_verification">Wyłącz weryfikację NCA</string>
|
||||
<string name="disable_nca_verification_description">Wyłącza weryfikację integralności archiwów zawartości NCA. Może to poprawić szybkość ładowania, ale niesie ryzyko uszkodzenia danych lub niezauważenia nieprawidłowych plików. Konieczne, aby działały gry i aktualizacje wymagające firmware\'u 20+.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Generuj</string>
|
||||
|
@ -770,9 +768,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">預設</string>
|
||||
<string name="dma_accuracy_normal">普通</string>
|
||||
<string name="dma_accuracy_high">高</string>
|
||||
<string name="dma_accuracy_extreme">極高</string>
|
||||
<string name="dma_accuracy_unsafe">Niezabezpieczone (szybkie)</string>
|
||||
<string name="dma_accuracy_safe">Bezpieczne (stabilne)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<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="cpuopt_unsafe_host_mmu">Ativar Emulação de MMU do Host</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="dma_accuracy">Nível DMA</string>
|
||||
<string name="dma_accuracy_description">Controla a precisão do DMA. Maior precisão pode corrigir problemas em alguns jogos, mas também pode impactar o desempenho em alguns casos. Se não tiver certeza, deixe em Padrão.</string>
|
||||
<string name="dma_accuracy">Precisão de 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="memory_4gb">4GB (Recomendado)</string>
|
||||
<string name="memory_6gb">6GB (Inseguro)</string>
|
||||
|
@ -506,8 +506,6 @@
|
|||
<string name="use_custom_rtc">Data e hora personalizadas</string>
|
||||
<string name="use_custom_rtc_description">Permite a você configurar um relógio em tempo real separado do relógio do seu dispositivo.</string>
|
||||
<string name="set_custom_rtc">Definir um relógio em tempo real personalizado</string>
|
||||
<string name="disable_nca_verification">Desativar verificação NCA</string>
|
||||
<string name="disable_nca_verification_description">Desativa a verificação de integridade de arquivos de conteúdo NCA. Pode melhorar a velocidade de carregamento, mas arrisica corromper dados ou que arquivos inválidos passem despercebidos. É necessário para fazer jogos e atualizações que exigem firmware 20+ funcionarem.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Gerar</string>
|
||||
|
@ -921,9 +919,8 @@ uma tentativa de mapeamento automático</string>
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Padrão</string>
|
||||
<string name="dma_accuracy_normal">Normal</string>
|
||||
<string name="dma_accuracy_high">Alto</string>
|
||||
<string name="dma_accuracy_extreme">Extremo</string>
|
||||
<string name="dma_accuracy_unsafe">Inseguro (rápido)</string>
|
||||
<string name="dma_accuracy_safe">Seguro (estável)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -971,13 +968,13 @@ uma tentativa de mapeamento automático</string>
|
|||
<string name="ratio_stretch">Esticar à janela</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (Lenta)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">Execução de código nativo (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">Precisa</string>
|
||||
<string name="cpu_accuracy_unsafe">Não segura</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoica (Lenta)</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoica</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">Botões Direcionais</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Ignora algumas invalidações de cache do lado da CPU durante atualizações de memória, reduzindo a utilização da CPU e melhorando o desempenho. Pode causar falhas ou crashes em alguns jogos.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Ativar Emulação de MMU do Anfitrião</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Esta otimização acelera os acessos à memória pelo programa convidado. Ativar faz com que as leituras/escritas de memória do convidado sejam efetuadas diretamente na memória e utilizem a MMU do Anfitrião. Desativar força todos os acessos à memória a usar a Emulação de MMU por Software.</string>
|
||||
<string name="dma_accuracy">Nível DMA</string>
|
||||
<string name="dma_accuracy_description">Controla a precisão do DMA. Maior precisão pode corrigir problemas em alguns jogos, mas também pode afetar o desempenho nalguns casos. Se não tiver a certeza, deixe em Predefinido.</string>
|
||||
<string name="dma_accuracy">Precisão da DMA</string>
|
||||
<string name="dma_accuracy_description">Controla a precisão da DMA. A precisão segura pode resolver problemas em alguns jogos, mas também pode afetar o desempenho nalguns casos. Se não tiver a certeza, deixe esta opção em Predefinido.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (Recomendado)</string>
|
||||
<string name="memory_6gb">6GB (Inseguro)</string>
|
||||
|
@ -506,8 +506,6 @@
|
|||
<string name="use_custom_rtc">RTC personalizado</string>
|
||||
<string name="use_custom_rtc_description">Permite a você configurar um relógio em tempo real separado do relógio do seu dispositivo.</string>
|
||||
<string name="set_custom_rtc">Defina um relógio em tempo real personalizado</string>
|
||||
<string name="disable_nca_verification">Desativar verificação NCA</string>
|
||||
<string name="disable_nca_verification_description">Desativa a verificação de integridade dos arquivos de conteúdo NCA. Pode melhorar a velocidade de carregamento, mas arrisca a corrupção de dados ou que ficheiros inválidos passem despercebidos. É necessário para que jogos e atualizações que necessitam de firmware 20+ funcionem.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Gerar</string>
|
||||
|
@ -921,9 +919,8 @@ uma tentativa de mapeamento automático</string>
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Predefinido</string>
|
||||
<string name="dma_accuracy_normal">Normal</string>
|
||||
<string name="dma_accuracy_high">Alto</string>
|
||||
<string name="dma_accuracy_extreme">Extremo</string>
|
||||
<string name="dma_accuracy_unsafe">Inseguro (rápido)</string>
|
||||
<string name="dma_accuracy_safe">Seguro (estável)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -971,13 +968,13 @@ uma tentativa de mapeamento automático</string>
|
|||
<string name="ratio_stretch">Esticar à janela</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (Lento)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">Native code execution (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">Preciso</string>
|
||||
<string name="cpu_accuracy_unsafe">Inseguro</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoid (Lento)</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoid</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">Botões Direcionais</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Пропускает некоторые инвалидации кэша на стороне ЦП при обновлениях памяти, уменьшая нагрузку на процессор и повышая производительность. Может вызывать сбои в некоторых играх.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Включить эмуляцию MMU хоста</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Эта оптимизация ускоряет доступ к памяти гостевой программой. При включении операции чтения/записи памяти гостя выполняются напрямую в памяти с использованием MMU хоста. Отключение заставляет все обращения к памяти использовать программную эмуляцию MMU.</string>
|
||||
<string name="dma_accuracy">Уровень DMA</string>
|
||||
<string name="dma_accuracy_description">Управляет точностью DMA. Более высокий уровень может исправить проблемы в некоторых играх, но также может повлиять на производительность. Если не уверены, оставьте значение «По умолчанию».</string>
|
||||
<string name="dma_accuracy">Точность DMA</string>
|
||||
<string name="dma_accuracy_description">Управляет точностью DMA. Безопасная точность может исправить проблемы в некоторых играх, но в некоторых случаях также может повлиять на производительность. Если не уверены, оставьте значение По умолчанию.</string>
|
||||
|
||||
<string name="memory_4gb">4 ГБ (Рекомендуется)</string>
|
||||
<string name="memory_6gb">6 ГБ (Небезопасно)</string>
|
||||
|
@ -508,8 +508,6 @@
|
|||
<string name="use_custom_rtc">Пользовательский RTC</string>
|
||||
<string name="use_custom_rtc_description">Позволяет установить пользовательские часы реального времени отдельно от текущего системного времени.</string>
|
||||
<string name="set_custom_rtc">Установить пользовательский RTC</string>
|
||||
<string name="disable_nca_verification">Отключить проверку NCA</string>
|
||||
<string name="disable_nca_verification_description">Отключает проверку целостности архивов содержимого NCA. Может улучшить скорость загрузки, но есть риск повреждения данных или того, что недействительные файлы останутся незамеченными. Необходимо для работы игр и обновлений, требующих прошивку 20+.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Создать</string>
|
||||
|
@ -922,9 +920,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">По умолчанию</string>
|
||||
<string name="dma_accuracy_normal">Нормальный</string>
|
||||
<string name="dma_accuracy_high">Высокий</string>
|
||||
<string name="dma_accuracy_extreme">Экстремальный</string>
|
||||
<string name="dma_accuracy_unsafe">Небезопасно (быстро)</string>
|
||||
<string name="dma_accuracy_safe">Безопасно (стабильно)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -958,7 +955,7 @@
|
|||
<!-- Screen Layouts -->
|
||||
<string name="screen_layout_auto">Авто</string>
|
||||
<string name="screen_layout_sensor_landscape">Альбомная (сенсор)</string>
|
||||
<string name="screen_layout_landscape">Пейзаж</string>
|
||||
<string name="screen_layout_landscape">Альбомная</string>
|
||||
<string name="screen_layout_reverse_landscape">Обратная альбомная</string>
|
||||
<string name="screen_layout_sensor_portrait">Портретная (сенсор)</string>
|
||||
<string name="screen_layout_portrait">Портрет</string>
|
||||
|
@ -972,13 +969,13 @@
|
|||
<string name="ratio_stretch">Растянуть до окна</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (Медленно)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">Нативное выполнение (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">Точно</string>
|
||||
<string name="cpu_accuracy_unsafe">Небезопасно</string>
|
||||
<string name="cpu_accuracy_paranoid">Параноик (медленно)</string>
|
||||
<string name="cpu_accuracy_paranoid">Параноик</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">Крестовина</string>
|
||||
|
|
|
@ -121,8 +121,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Preskače određena poništavanja keša na strani CPU-a tokom ažuriranja memorije, smanjujući opterećenje procesora i poboljšavajući performanse. Može izazvati greške u nekim igrama.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Омогући емулацију MMU домаћина</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Ова оптимизација убрзава приступ меморији од стране гостујућег програма. Укључивање изазива да се читања/уписа меморије госта обављају директно у меморији и користе MMU домаћина. Искључивање присиљава све приступе меморији да користе софтверску емулацију MMU.</string>
|
||||
<string name="dma_accuracy">DMA ниво</string>
|
||||
<string name="dma_accuracy_description">Контролише тачност DMA прецизности. Виши ниво може да поправи проблеме у неким играма, али може и да утиче на перформансе. Ако нисте сигурни, оставите на «Подразумевано».</string>
|
||||
<string name="dma_accuracy">DMA тачност</string>
|
||||
<string name="dma_accuracy_description">Управља прецизношћу DMA-а. Сигурна прецизност може да исправи проблеме у неким играма, али у неким случајевима може да утиче и на перформансе. Ако нисте сигурни, оставите ово на Подразумевано.</string>
|
||||
|
||||
<!-- Shader Backend -->
|
||||
<string name="shader_backend">Схадер Бацкенд</string>
|
||||
|
@ -457,8 +457,6 @@
|
|||
<string name="use_custom_rtc">Цустом РТЦ</string>
|
||||
<string name="use_custom_rtc_description">Омогућава вам да поставите прилагођени сат у реалном времену одвојено од тренутног времена система.</string>
|
||||
<string name="set_custom_rtc">Подесите прилагођени РТЦ</string>
|
||||
<string name="disable_nca_verification">Искључи верификацију НЦА</string>
|
||||
<string name="disable_nca_verification_description">Искључује верификацију интегритета НЦА архива садржаја. Ово може побољшати брзину учитавања, али ризикује оштећење података или да неважећи фајлови прођу незапажено. Неопходно је да би игре и ажурирања која захтевају firmware 20+ радили.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Генериши</string>
|
||||
|
@ -917,9 +915,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Подразумевано</string>
|
||||
<string name="dma_accuracy_normal">Нормално</string>
|
||||
<string name="dma_accuracy_high">Високо</string>
|
||||
<string name="dma_accuracy_extreme">Екстремно</string>
|
||||
<string name="dma_accuracy_unsafe">Небезбедно (брзо)</string>
|
||||
<string name="dma_accuracy_safe">Безбедно (стабилно)</string>
|
||||
|
||||
<!-- ASTC Decoding Method -->
|
||||
<string name="accelerate_astc">АСТЦ метода декодирања</string>
|
||||
|
@ -991,13 +988,13 @@
|
|||
<string name="ratio_stretch">Протезање до прозора</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Динамина (споро)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">Извођење изворног кода (НЦЕ)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">Тачан</string>
|
||||
<string name="cpu_accuracy_unsafe">Несигуран</string>
|
||||
<string name="cpu_accuracy_paranoid">Параноичан (споро)</string>
|
||||
<string name="cpu_accuracy_paranoid">Параноичан</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">Д-пад</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Пропускає деякі інвалідації кешу на стороні CPU під час оновлення пам\'яті, зменшуючи навантаження на процесор і покращуючи продуктивність. Може спричинити збої в деяких іграх.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Увімкнути емуляцію MMU хоста</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Ця оптимізація пришвидшує доступ до пам\'яті гостьовою програмою. Увімкнення призводить до того, що читання/запис пам\'яті гостя виконуються безпосередньо в пам\'яті та використовують MMU хоста. Вимкнення змушує всі звернення до пам\'яті використовувати програмну емуляцію MMU.</string>
|
||||
<string name="dma_accuracy">Рівень DMA</string>
|
||||
<string name="dma_accuracy_description">Керує точністю DMA. Вищий рівень може виправити проблеми в деяких іграх, але також може вплинути на продуктивність. Якщо не впевнені, залиште значення «Типово».</string>
|
||||
<string name="dma_accuracy">Точність DMA</string>
|
||||
<string name="dma_accuracy_description">Керує точністю DMA. Безпечна точність може виправити проблеми в деяких іграх, але в деяких випадках також може вплинути на продуктивність. Якщо не впевнені, залиште це значення за замовчуванням.</string>
|
||||
|
||||
<string name="memory_4gb">4 ГБ (Рекомендовано)</string>
|
||||
<string name="memory_6gb">6 ГБ (Небезпечно)</string>
|
||||
|
@ -495,8 +495,6 @@
|
|||
<string name="use_custom_rtc">Свій RTC</string>
|
||||
<string name="use_custom_rtc_description">Дозволяє встановити власний час (Real-time clock, або RTC), відмінний від системного.</string>
|
||||
<string name="set_custom_rtc">Встановити RTC</string>
|
||||
<string name="disable_nca_verification">Вимкнути перевірку NCA</string>
|
||||
<string name="disable_nca_verification_description">Вимкає перевірку цілісності архівів вмісту NCA. Може покращити швидкість завантаження, але ризикує пошкодженням даних або тим, що недійсні файли залишаться непоміченими. Необхідно для роботи ігор та оновлень, які вимагають прошивки 20+.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Створити</string>
|
||||
|
@ -811,9 +809,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Типово</string>
|
||||
<string name="dma_accuracy_normal">Нормальний</string>
|
||||
<string name="dma_accuracy_high">Високий</string>
|
||||
<string name="dma_accuracy_extreme">Екстремальний</string>
|
||||
<string name="dma_accuracy_unsafe">Небезпечно (швидко)</string>
|
||||
<string name="dma_accuracy_safe">Безпечно (стабільно)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
|
|
@ -128,8 +128,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">Bỏ qua một số lần vô hiệu hóa bộ nhớ đệm phía CPU trong khi cập nhật bộ nhớ, giảm mức sử dụng CPU và cải thiện hiệu suất. Có thể gây ra lỗi hoặc treo máy trong một số trò chơi.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">Bật giả lập MMU Máy chủ</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">Tối ưu hóa này tăng tốc độ truy cập bộ nhớ của chương trình khách. Bật nó lên khiến các thao tác đọc/ghi bộ nhớ khách được thực hiện trực tiếp vào bộ nhớ và sử dụng MMU của Máy chủ. Tắt tính năng này buộc tất cả quyền truy cập bộ nhớ phải sử dụng Giả lập MMU Phần mềm.</string>
|
||||
<string name="dma_accuracy">Cấp độ DMA</string>
|
||||
<string name="dma_accuracy_description">Điều khiển độ chính xác của DMA. Độ chính xác cao hơn có thể sửa lỗi trong một số trò chơi, nhưng cũng có thể ảnh hưởng đến hiệu suất trong một số trường hợp. Nếu không chắc chắn, hãy để ở Mặc định.</string>
|
||||
<string name="dma_accuracy">Độ chính xác DMA</string>
|
||||
<string name="dma_accuracy_description">Điều khiển độ chính xác của DMA. Độ chính xác an toàn có thể khắc phục sự cố trong một số trò chơi, nhưng trong một số trường hợp cũng có thể ảnh hưởng đến hiệu suất. Nếu không chắc chắn, hãy để giá trị này ở Mặc định.</string>
|
||||
|
||||
<string name="memory_4gb">4GB (Được đề xuất)</string>
|
||||
<string name="memory_6gb">6GB (Không an toàn)</string>
|
||||
|
@ -482,8 +482,6 @@
|
|||
<string name="use_custom_rtc">RTC tuỳ chỉnh</string>
|
||||
<string name="use_custom_rtc_description">Cho phép bạn thiết lập một đồng hồ thời gian thực tùy chỉnh riêng biệt so với thời gian hệ thống hiện tại.</string>
|
||||
<string name="set_custom_rtc">Thiết lập RTC tùy chỉnh</string>
|
||||
<string name="disable_nca_verification">Tắt xác minh NCA</string>
|
||||
<string name="disable_nca_verification_description">Tắt xác minh tính toàn vẹn của kho lưu trữ nội dung NCA. Có thể cải thiện tốc độ tải nhưng có nguy cơ hỏng dữ liệu hoặc các tệp không hợp lệ không bị phát hiện. Cần thiết để các trò chơi và bản cập nhật yêu cầu firmware 20+ hoạt động.</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">Tạo</string>
|
||||
|
@ -776,9 +774,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Mặc định</string>
|
||||
<string name="dma_accuracy_normal">Bình thường</string>
|
||||
<string name="dma_accuracy_high">Cao</string>
|
||||
<string name="dma_accuracy_extreme">Cực cao</string>
|
||||
<string name="dma_accuracy_unsafe">Không an toàn (nhanh)</string>
|
||||
<string name="dma_accuracy_safe">An toàn (ổn định)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
|
|
@ -127,8 +127,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">在内存更新期间跳过某些CPU端缓存无效化,减少CPU使用率并提高其性能。可能会导致某些游戏出现故障或崩溃。</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">启用主机 MMU 模拟</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">此优化可加速来宾程序的内存访问。启用后,来宾内存读取/写入将直接在内存中执行并利用主机的 MMU。禁用此功能将强制所有内存访问使用软件 MMU 模拟。</string>
|
||||
<string name="dma_accuracy">DMA 级别</string>
|
||||
<string name="dma_accuracy_description">控制 DMA 精度。更高的精度可以修复某些游戏中的问题,但在某些情况下也可能影响性能。如果不确定,请保留为“默认”。</string>
|
||||
<string name="dma_accuracy">DMA 精度</string>
|
||||
<string name="dma_accuracy_description">控制 DMA 精度。安全精度可以修复某些游戏中的问题,但在某些情况下也可能影响性能。如果不确定,请保留为“默认”。</string>
|
||||
|
||||
<string name="memory_4gb">4GB (推荐)</string>
|
||||
<string name="memory_6gb">6GB (不安全)</string>
|
||||
|
@ -500,8 +500,6 @@
|
|||
<string name="use_custom_rtc">自定义系统时间</string>
|
||||
<string name="use_custom_rtc_description">此选项允许您设置与目前系统时间相独立的自定义系统时钟。</string>
|
||||
<string name="set_custom_rtc">设置自定义系统时间</string>
|
||||
<string name="disable_nca_verification">禁用NCA验证</string>
|
||||
<string name="disable_nca_verification_description">禁用NCA内容存档的完整性验证。可能会提高加载速度,但存在数据损坏或无效文件未被检测到的风险。对于需要固件20+的游戏和更新是必需的。</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">生成</string>
|
||||
|
@ -914,9 +912,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">默认</string>
|
||||
<string name="dma_accuracy_normal">普通</string>
|
||||
<string name="dma_accuracy_high">高</string>
|
||||
<string name="dma_accuracy_extreme">极高</string>
|
||||
<string name="dma_accuracy_unsafe">不安全(快速)</string>
|
||||
<string name="dma_accuracy_safe">安全(稳定)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -964,13 +961,13 @@
|
|||
<string name="ratio_stretch">拉伸窗口</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">动态编译 (慢速)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">本机代码执行 (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">高精度</string>
|
||||
<string name="cpu_accuracy_unsafe">低精度</string>
|
||||
<string name="cpu_accuracy_paranoid">偏执模式 (慢速)</string>
|
||||
<string name="cpu_accuracy_paranoid">偏执模式</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">十字方向键</string>
|
||||
|
|
|
@ -120,8 +120,8 @@
|
|||
<string name="skip_cpu_inner_invalidation_description">在記憶體更新期間跳過某些CPU端快取無效化,減少CPU使用率並提高其性能。可能會導致某些遊戲出現故障或崩潰。</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">啟用主機 MMU 模擬</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">此最佳化可加速來賓程式的記憶體存取。啟用後,來賓記憶體讀取/寫入將直接在記憶體中執行並利用主機的 MMU。停用此功能將強制所有記憶體存取使用軟體 MMU 模擬。</string>
|
||||
<string name="dma_accuracy">DMA 級別</string>
|
||||
<string name="dma_accuracy_description">控制 DMA 精確度。更高的精確度可以修復某些遊戲中的問題,但在某些情況下也可能影響效能。如果不確定,請保留為「預設」。</string>
|
||||
<string name="dma_accuracy">DMA 精度</string>
|
||||
<string name="dma_accuracy_description">控制 DMA 精度。安全精度可以修復某些遊戲中的問題,但在某些情況下也可能影響效能。如果不確定,請保留為「預設」。</string>
|
||||
|
||||
<!-- Memory Layouts -->
|
||||
<string name="memory_4gb">4GB (推薦)</string>
|
||||
|
@ -505,8 +505,6 @@
|
|||
<string name="use_custom_rtc">自訂 RTC</string>
|
||||
<string name="use_custom_rtc_description">允許您設定與您的目前系統時間相互獨立的自訂即時時鐘。</string>
|
||||
<string name="set_custom_rtc">設定自訂 RTC</string>
|
||||
<string name="disable_nca_verification">停用NCA驗證</string>
|
||||
<string name="disable_nca_verification_description">停用NCA內容存檔的完整性驗證。可能會提高載入速度,但存在資料損毀或無效檔案未被偵測到的風險。對於需要韌體20+的遊戲和更新是必需的。</string>
|
||||
|
||||
<!-- Network settings strings -->
|
||||
<string name="generate">生成</string>
|
||||
|
@ -919,9 +917,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">預設</string>
|
||||
<string name="dma_accuracy_normal">普通</string>
|
||||
<string name="dma_accuracy_high">高</string>
|
||||
<string name="dma_accuracy_extreme">極高</string>
|
||||
<string name="dma_accuracy_unsafe">不安全(快速)</string>
|
||||
<string name="dma_accuracy_safe">安全(穩定)</string>
|
||||
|
||||
<!-- Resolutions -->
|
||||
<string name="resolution_quarter">0.25X (180p/270p)</string>
|
||||
|
@ -969,13 +966,13 @@
|
|||
<string name="ratio_stretch">延展視窗</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">動態 (慢)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">機器碼執行 (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">高精度</string>
|
||||
<string name="cpu_accuracy_unsafe">低精度</string>
|
||||
<string name="cpu_accuracy_paranoid">不合理 (慢)</string>
|
||||
<string name="cpu_accuracy_paranoid">不合理</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">方向鍵</string>
|
||||
|
|
|
@ -454,15 +454,13 @@
|
|||
|
||||
<string-array name="dmaAccuracyNames">
|
||||
<item>@string/dma_accuracy_default</item>
|
||||
<item>@string/dma_accuracy_normal</item>
|
||||
<item>@string/dma_accuracy_high</item>
|
||||
<item>@string/dma_accuracy_extreme</item>
|
||||
<item>@string/dma_accuracy_unsafe</item>
|
||||
<item>@string/dma_accuracy_safe</item>
|
||||
</string-array>
|
||||
<integer-array name="dmaAccuracyValues">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
<item>3</item>
|
||||
</integer-array>
|
||||
|
||||
<string-array name="appletEntries">
|
||||
|
|
|
@ -115,8 +115,8 @@
|
|||
<string name="fast_cpu_time_description">Use Boost (1700MHz) to run at the Switch\'s highest native clock, or Fast (2000MHz) to run at 2x clock.</string>
|
||||
<string name="memory_layout">Memory Layout</string>
|
||||
<string name="memory_layout_description">(EXPERIMENTAL) Change the emulated memory layout. This setting will not increase performance, but may help with games utilizing high resolutions via mods. Do not use on phones with 8GB of RAM or less. Only works on the Dynarmic (JIT) backend.</string>
|
||||
<string name="dma_accuracy">DMA Level</string>
|
||||
<string name="dma_accuracy_description">Controls the DMA precision accuracy. Higher precision can fix issues in some games, but it can also impact performance in some cases. If unsure, leave it at Default.</string>
|
||||
<string name="dma_accuracy">DMA Accuracy</string>
|
||||
<string name="dma_accuracy_description">Controls the DMA precision accuracy. Safe precision can fix issues in some games, but it can also impact performance in some cases. If unsure, leave this on Default.</string>
|
||||
|
||||
<!-- Shader Backend -->
|
||||
<string name="shader_backend">Shader Backend</string>
|
||||
|
@ -266,6 +266,7 @@
|
|||
<string name="alphabetical">Alphabetical</string>
|
||||
<string name="view_list">List</string>
|
||||
<string name="view_grid">Grid</string>
|
||||
<string name="view_grid_compact">Compact Grid</string>
|
||||
<string name="view_carousel">Carousel</string>
|
||||
<string name="game_image_desc">Screenshot for %1$s</string>
|
||||
<string name="folder">Folder</string>
|
||||
|
@ -474,8 +475,6 @@
|
|||
<string name="use_custom_rtc">Custom RTC</string>
|
||||
<string name="use_custom_rtc_description">Allows you to set a custom real-time clock separate from your current system time.</string>
|
||||
<string name="set_custom_rtc">Set custom RTC</string>
|
||||
<string name="disable_nca_verification">Disable NCA Verification</string>
|
||||
<string name="disable_nca_verification_description">Disables integrity verification of NCA content archives. This may improve loading speed but risks data corruption or invalid files going undetected. Some games that require firmware versions 20+ may need this as well.</string>
|
||||
|
||||
<string name="generate">Generate</string>
|
||||
|
||||
|
@ -784,9 +783,6 @@
|
|||
<string name="loader_requires_firmware">Game Requires Firmware</string>
|
||||
<string name="loader_requires_firmware_description"><![CDATA[The game you are trying to launch requires firmware to boot or to get past the opening menu. Please <a href="https://yuzu-mirror.github.io/help/quickstart"> dump and install firmware</a>, or press "OK" to launch anyways.]]></string>
|
||||
|
||||
<string name="nca_verification_disabled">NCA Verification Disabled</string>
|
||||
<string name="nca_verification_disabled_description">This is required to run new games and updates, but may cause instability or crashes if NCA files are corrupt, modified, or tampered with. If unsure, re-enable verification in Advanced Settings -> System, and use firmware versions of 19.0.1 or below.</string>
|
||||
|
||||
<!-- Intent Launch strings -->
|
||||
<string name="searching_for_game">Searching for game...</string>
|
||||
<string name="game_not_found_for_title_id">Game not found for Title ID: %1$s</string>
|
||||
|
@ -944,9 +940,8 @@
|
|||
|
||||
<!-- DMA Accuracy -->
|
||||
<string name="dma_accuracy_default">Default</string>
|
||||
<string name="dma_accuracy_normal">Normal</string>
|
||||
<string name="dma_accuracy_high">High</string>
|
||||
<string name="dma_accuracy_extreme">Extreme</string>
|
||||
<string name="dma_accuracy_unsafe">Unsafe (fast)</string>
|
||||
<string name="dma_accuracy_safe">Safe (stable)</string>
|
||||
|
||||
<!-- ASTC Decoding Method -->
|
||||
<string name="accelerate_astc">ASTC Decoding Method</string>
|
||||
|
@ -1019,13 +1014,13 @@
|
|||
<string name="ratio_stretch">Stretch to window</string>
|
||||
|
||||
<!-- CPU Backend -->
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (Slow)</string>
|
||||
<string name="cpu_backend_dynarmic">Dynarmic (JIT)</string>
|
||||
<string name="cpu_backend_nce">Native code execution (NCE)</string>
|
||||
|
||||
<!-- CPU Accuracy -->
|
||||
<string name="cpu_accuracy_accurate">Accurate</string>
|
||||
<string name="cpu_accuracy_unsafe">Unsafe</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoid (Slow)</string>
|
||||
<string name="cpu_accuracy_paranoid">Paranoid</string>
|
||||
|
||||
<!-- Gamepad Buttons -->
|
||||
<string name="gamepad_d_pad">D-pad</string>
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
|
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