diff --git a/.ci/linux/build.sh b/.ci/linux/build.sh
index c020cc7edd..f804474814 100755
--- a/.ci/linux/build.sh
+++ b/.ci/linux/build.sh
@@ -61,6 +61,7 @@ cmake .. -G Ninja \
     -DYUZU_USE_QT_WEB_ENGINE=OFF \
     -DENABLE_QT_TRANSLATION=ON \
     -DUSE_DISCORD_PRESENCE=OFF \
+    -DBUNDLE_SPEEX=ON \
     -DYUZU_USE_FASTER_LD=OFF \
     -DYUZU_ENABLE_LTO=ON \
     -DCMAKE_LINKER=/usr/bin/mold \
diff --git a/.ci/linux/package.sh b/.ci/linux/package.sh
index 4d58b8f328..8d0cd14894 100755
--- a/.ci/linux/package.sh
+++ b/.ci/linux/package.sh
@@ -28,22 +28,21 @@ VERSION="$(echo "$EDEN_TAG")"
 mkdir -p ./AppDir
 cd ./AppDir
 
-cat > eden.desktop << EOL
+cat > org.eden_emu.eden.desktop << EOL
 [Desktop Entry]
 Type=Application
 Name=Eden
-Icon=eden
-StartupWMClass=eden
+Icon=org.eden_emu.eden
 Exec=eden
 Categories=Game;Emulator;
 EOL
 
-cp ../dist/eden.svg ./eden.svg
+cp ../dist/eden.svg ./org.eden_emu.eden.svg
 
-ln -sf ./eden.svg ./.DirIcon
+ln -sf ./org.eden_emu.eden.svg.svg ./.DirIcon
 
 if [ "$DEVEL" = 'true' ]; then
-	sed -i 's|Name=Eden|Name=Eden Nightly|' ./eden.desktop
+	sed -i 's|Name=Eden|Name=Eden Nightly|' ./org.eden_emu.eden.desktop
 	UPINFO="$(echo "$UPINFO" | sed 's|latest|nightly|')"
 fi
 
diff --git a/.github/workflows/trigger_release.yml b/.github/workflows/trigger_release.yml
index 5553884862..91bd4d2d15 100644
--- a/.github/workflows/trigger_release.yml
+++ b/.github/workflows/trigger_release.yml
@@ -102,7 +102,7 @@ jobs:
         uses: forgejo/upload-artifact@v4
         with:
           name: linux.zip
-          path: ./*.AppImage*
+          path: ./*.AppImage
 
   android:
     runs-on: android
@@ -177,7 +177,6 @@ jobs:
           mkdir -p dist
 
           cp linux.zip/Eden-*.AppImage dist/Eden-Linux-${{ env.VERSION }}-amd64.AppImage
-          cp linux.zip/Eden-*.AppImage.zsync dist/Eden-Linux-${{ env.VERSION }}-amd64.AppImage.zsync
           cp msvc.zip/eden-windows-msvc*.zip dist/Eden-Windows-MSVC-${{ env.VERSION }}-amd64.zip
           cp android.zip/eden-android*.apk dist/Eden-Android-${{ env.VERSION }}.apk
           cp android.zip/eden-android*.aab dist/Eden-Android-${{ env.VERSION }}.aab
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 40a9b9ee18..b88ab64e53 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -105,13 +105,13 @@ if (ANDROID AND YUZU_DOWNLOAD_ANDROID_VVL)
         file(DOWNLOAD "${vvl_base_url}/${vvl_version}/android-binaries-${vvl_version}-android.zip"
             "${vvl_zip_file}" SHOW_PROGRESS)
         execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf "${vvl_zip_file}"
-            WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/externals")
+                        WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/externals")
     endif()
 
     # Copy the arm64 binary to src/android/app/main/jniLibs
     set(vvl_lib_path "${CMAKE_CURRENT_SOURCE_DIR}/src/android/app/src/main/jniLibs/arm64-v8a/")
     file(COPY "${CMAKE_BINARY_DIR}/externals/android-binaries-${vvl_version}/arm64-v8a/libVkLayer_khronos_validation.so"
-        DESTINATION "${vvl_lib_path}")
+            DESTINATION "${vvl_lib_path}")
 endif()
 
 if (ANDROID)
@@ -141,7 +141,7 @@ if (YUZU_USE_BUNDLED_VCPKG)
         set(VCPKG_DOWNLOADS_PATH ${PROJECT_SOURCE_DIR}/externals/vcpkg/downloads)
         set(NASM_VERSION "2.16.01")
         set(NASM_DESTINATION_PATH ${VCPKG_DOWNLOADS_PATH}/nasm-${NASM_VERSION}-win64.zip)
-        set(NASM_DOWNLOAD_URL "https://git.eden-emu.dev/eden-emu/ext-windows-bin/raw/master/nasm/nasm-${NASM_VERSION}-win64.zip")
+        set(NASM_DOWNLOAD_URL "https://github.com/eden-emulator/ext-windows-bin/raw/master/nasm/nasm-${NASM_VERSION}-win64.zip")
 
         if (NOT EXISTS ${NASM_DESTINATION_PATH})
             file(DOWNLOAD ${NASM_DOWNLOAD_URL} ${NASM_DESTINATION_PATH} SHOW_PROGRESS STATUS NASM_STATUS)
@@ -209,7 +209,7 @@ function(check_submodules_present)
         string(REGEX REPLACE "path *= *" "" module ${module})
         if (NOT EXISTS "${PROJECT_SOURCE_DIR}/${module}/.git")
             message(FATAL_ERROR "Git submodule ${module} not found. "
-                "Please run: \ngit submodule update --init --recursive")
+                    "Please run: \ngit submodule update --init --recursive")
         endif()
     endforeach()
 endfunction()
@@ -218,12 +218,12 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/.gitmodules AND YUZU_CHECK_SUBMODULES)
     check_submodules_present()
 endif()
 configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
-    ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
-    COPYONLY)
+               ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
+               COPYONLY)
 if (EXISTS ${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.json)
     configure_file("${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.json"
-        "${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json"
-        COPYONLY)
+                   "${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json"
+                   COPYONLY)
 endif()
 if (ENABLE_COMPATIBILITY_LIST_DOWNLOAD AND NOT EXISTS ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.json)
     message(STATUS "Downloading compatibility list for yuzu...")
@@ -370,7 +370,7 @@ if (ENABLE_SDL2)
     if (YUZU_USE_BUNDLED_SDL2)
         # Detect toolchain and platform
         if ((MSVC_VERSION GREATER_EQUAL 1920) AND ARCHITECTURE_x86_64)
-            set(SDL2_VER "SDL2-2.32.6")
+            set(SDL2_VER "SDL2-2.28.2")
         else()
             message(FATAL_ERROR "No bundled SDL2 binaries for your toolchain. Disable YUZU_USE_BUNDLED_SDL2 and provide your own.")
         endif()
@@ -399,7 +399,7 @@ add_subdirectory(externals)
 
 if (ENABLE_QT)
     if (NOT USE_SYSTEM_QT)
-        download_qt(6.8.3)
+        download_qt(6.7.3)
     endif()
 
     find_package(Qt6 REQUIRED COMPONENTS Widgets Multimedia Concurrent)
@@ -431,34 +431,34 @@ if (ENABLE_QT)
 endif()
 
 function(set_yuzu_qt_components)
-    # Best practice is to ask for all components at once, so they are from the same version
-    set(YUZU_QT_COMPONENTS2 Core Widgets Concurrent)
-    if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-        list(APPEND YUZU_QT_COMPONENTS2 DBus)
-    endif()
-    if (YUZU_USE_QT_MULTIMEDIA)
-        list(APPEND YUZU_QT_COMPONENTS2 Multimedia)
+# Best practice is to ask for all components at once, so they are from the same version
+set(YUZU_QT_COMPONENTS2 Core Widgets Concurrent)
+if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+list(APPEND YUZU_QT_COMPONENTS2 DBus)
+endif()
+if (YUZU_USE_QT_MULTIMEDIA)
+list(APPEND YUZU_QT_COMPONENTS2 Multimedia)
     endif()
     if (YUZU_USE_QT_WEB_ENGINE)
-        list(APPEND YUZU_QT_COMPONENTS2 WebEngineCore WebEngineWidgets)
+    list(APPEND YUZU_QT_COMPONENTS2 WebEngineCore WebEngineWidgets)
     endif()
     if (ENABLE_QT_TRANSLATION)
-        list(APPEND YUZU_QT_COMPONENTS2 LinguistTools)
+    list(APPEND YUZU_QT_COMPONENTS2 LinguistTools)
     endif()
     if (USE_DISCORD_PRESENCE)
-        list(APPEND YUZU_QT_COMPONENTS2 Network)
+    list(APPEND YUZU_QT_COMPONENTS2 Network)
     endif()
     set(YUZU_QT_COMPONENTS ${YUZU_QT_COMPONENTS2} PARENT_SCOPE)
-endfunction(set_yuzu_qt_components)
+    endfunction(set_yuzu_qt_components)
 
-# List of all FFmpeg components required
-set(FFmpeg_COMPONENTS
+    # List of all FFmpeg components required
+    set(FFmpeg_COMPONENTS
     avcodec
     avfilter
     avutil
     swscale)
 
-if (UNIX AND NOT APPLE AND NOT ANDROID)
+    if (UNIX AND NOT APPLE AND NOT ANDROID)
     find_package(PkgConfig REQUIRED)
     pkg_check_modules(LIBVA libva)
 endif()
@@ -468,12 +468,12 @@ if (NOT YUZU_USE_BUNDLED_FFMPEG)
 endif()
 
 if(ENABLE_QT)
-    set_yuzu_qt_components()
-    find_package(Qt6 REQUIRED COMPONENTS ${YUZU_QT_COMPONENTS})
-    set(QT_MAJOR_VERSION 6)
-    # Qt6 sets cxx_std_17 and we need to undo that
-    set_target_properties(Qt6::Platform PROPERTIES INTERFACE_COMPILE_FEATURES "")
-endif()
+        set_yuzu_qt_components()
+        find_package(Qt6 REQUIRED COMPONENTS ${YUZU_QT_COMPONENTS})
+        set(QT_MAJOR_VERSION 6)
+        # Qt6 sets cxx_std_17 and we need to undo that
+        set_target_properties(Qt6::Platform PROPERTIES INTERFACE_COMPILE_FEATURES "")
+    endif()
 
 if (WIN32 AND YUZU_CRASH_DUMPS)
     set(BREAKPAD_VER "breakpad-c89f9dd")
@@ -517,7 +517,7 @@ endif()
 set(CLANG_FORMAT_POSTFIX "-15")
 find_program(CLANG_FORMAT
     NAMES clang-format${CLANG_FORMAT_POSTFIX}
-    clang-format
+          clang-format
     PATHS ${PROJECT_BINARY_DIR}/externals)
 # if find_program doesn't find it, try to download from externals
 if (NOT CLANG_FORMAT)
@@ -525,7 +525,7 @@ if (NOT CLANG_FORMAT)
         message(STATUS "Clang format not found! Downloading...")
         set(CLANG_FORMAT "${PROJECT_BINARY_DIR}/externals/clang-format${CLANG_FORMAT_POSTFIX}.exe")
         file(DOWNLOAD
-            https://git.eden-emu.dev/eden-emu/ext-windows-bin/raw/master/clang-format${CLANG_FORMAT_POSTFIX}.exe
+            https://github.com/eden-emulator/ext-windows-bin/raw/master/clang-format${CLANG_FORMAT_POSTFIX}.exe
             "${CLANG_FORMAT}" SHOW_PROGRESS
             STATUS DOWNLOAD_SUCCESS)
         if (NOT DOWNLOAD_SUCCESS EQUAL 0)
@@ -642,12 +642,12 @@ endif()
 # https://www.freedesktop.org/software/appstream/docs/
 if(ENABLE_QT AND UNIX AND NOT APPLE)
     install(FILES "dist/org.yuzu_emu.yuzu.desktop"
-        DESTINATION "share/applications")
+            DESTINATION "share/applications")
     install(FILES "dist/eden.svg"
-        DESTINATION "share/icons/hicolor/scalable/apps"
-        RENAME "org.yuzu_emu.eden.svg")
+            DESTINATION "share/icons/hicolor/scalable/apps"
+            RENAME "org.yuzu_emu.eden.svg")
     install(FILES "dist/org.yuzu_emu.yuzu.xml"
-        DESTINATION "share/mime/packages")
+            DESTINATION "share/mime/packages")
     install(FILES "dist/org.yuzu_emu.yuzu.metainfo.xml"
-        DESTINATION "share/metainfo")
+            DESTINATION "share/metainfo")
 endif()
diff --git a/CMakeModules/CopyYuzuQt6Deps.cmake b/CMakeModules/CopyYuzuQt6Deps.cmake
index 39f88cbc19..c6a5fa2db2 100644
--- a/CMakeModules/CopyYuzuQt6Deps.cmake
+++ b/CMakeModules/CopyYuzuQt6Deps.cmake
@@ -16,7 +16,7 @@ function(copy_yuzu_Qt6_deps target_dir)
     set(PLATFORMS ${DLL_DEST}plugins/platforms/)
     set(STYLES ${DLL_DEST}plugins/styles/)
     set(IMAGEFORMATS ${DLL_DEST}plugins/imageformats/)
-	set(RESOURCES ${DLL_DEST}resources/)
+
     if (MSVC)
         windows_copy_files(${target_dir} ${Qt6_DLL_DIR} ${DLL_DEST}
             Qt6Core$<$<CONFIG:Debug>:d>.*
@@ -31,31 +31,20 @@ function(copy_yuzu_Qt6_deps target_dir)
         endif()
         if (YUZU_USE_QT_WEB_ENGINE)
             windows_copy_files(${target_dir} ${Qt6_DLL_DIR} ${DLL_DEST}
-                Qt6OpenGL$<$<CONFIG:Debug>:d>.*
-                Qt6Positioning$<$<CONFIG:Debug>:d>.*
-                Qt6PrintSupport$<$<CONFIG:Debug>:d>.*
-                Qt6Qml$<$<CONFIG:Debug>:d>.*
-				Qt6QmlMeta$<$<CONFIG:Debug>:d>.*
-                Qt6QmlModels$<$<CONFIG:Debug>:d>.*
-				Qt6QmlWorkerScript$<$<CONFIG:Debug>:d>.*
-                Qt6Quick$<$<CONFIG:Debug>:d>.*
-                Qt6QuickWidgets$<$<CONFIG:Debug>:d>.*
-                Qt6WebChannel$<$<CONFIG:Debug>:d>.*
                 Qt6WebEngineCore$<$<CONFIG:Debug>:d>.*
                 Qt6WebEngineWidgets$<$<CONFIG:Debug>:d>.*
-				QtWebEngineProcess$<$<CONFIG:Debug>:d>.*
+                QtWebEngineProcess$<$<CONFIG:Debug>:d>.*
             )
-            windows_copy_files(${target_dir} ${Qt6_RESOURCES_DIR} ${RESOURCES}
+            windows_copy_files(${target_dir} ${Qt6_RESOURCES_DIR} ${DLL_DEST}
                 icudtl.dat
                 qtwebengine_devtools_resources.pak
                 qtwebengine_resources.pak
                 qtwebengine_resources_100p.pak
                 qtwebengine_resources_200p.pak
-				v8_context_snapshot.bin
             )
         endif()
         windows_copy_files(yuzu ${Qt6_PLATFORMS_DIR} ${PLATFORMS} qwindows$<$<CONFIG:Debug>:d>.*)
-        windows_copy_files(yuzu ${Qt6_STYLES_DIR} ${STYLES} qmodernwindowsstyle$<$<CONFIG:Debug>:d>.*)
+        windows_copy_files(yuzu ${Qt6_STYLES_DIR} ${STYLES} qwindowsvistastyle$<$<CONFIG:Debug>:d>.*)
         windows_copy_files(yuzu ${Qt6_IMAGEFORMATS_DIR} ${IMAGEFORMATS}
             qjpeg$<$<CONFIG:Debug>:d>.*
             qgif$<$<CONFIG:Debug>:d>.*
@@ -63,6 +52,9 @@ function(copy_yuzu_Qt6_deps target_dir)
     else()
         # Update for non-MSVC platforms if needed
     endif()
-    # Fixes dark mode being forced automatically even when light theme is set in app settings.
-	file(WRITE "${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE}/qt.conf" "[Platforms]\nWindowsArguments = darkmode=0")
+
+    # Create an empty qt.conf file
+    add_custom_command(TARGET yuzu POST_BUILD
+        COMMAND ${CMAKE_COMMAND} -E touch ${DLL_DEST}qt.conf
+    )
 endfunction(copy_yuzu_Qt6_deps)
diff --git a/CMakeModules/DownloadExternals.cmake b/CMakeModules/DownloadExternals.cmake
index f48c844f08..3fe15a16c4 100644
--- a/CMakeModules/DownloadExternals.cmake
+++ b/CMakeModules/DownloadExternals.cmake
@@ -8,17 +8,17 @@
 set(CURRENT_MODULE_DIR ${CMAKE_CURRENT_LIST_DIR})
 function(download_bundled_external remote_path lib_name prefix_var)
 
-set(package_base_url "https://git.eden-emu.dev/eden-emu/")
+set(package_base_url "https://github.com/eden-emulator/")
 set(package_repo "no_platform")
 set(package_extension "no_platform")
 if (WIN32)
     set(package_repo "ext-windows-bin/raw/master/")
     set(package_extension ".7z")
 elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
-    set(package_repo "ext-linux-bin/raw/master/")
+    set(package_repo "ext-linux-bin/raw/main/")
     set(package_extension ".tar.xz")
 elseif (ANDROID)
-    set(package_repo "ext-android-bin/raw/master/")
+    set(package_repo "ext-android-bin/raw/main/")
     set(package_extension ".tar.xz")
 else()
     message(FATAL_ERROR "No package available for this platform")
@@ -68,18 +68,18 @@ function(determine_qt_parameters target host_out type_out arch_out arch_path_out
                 set(arch_path "mingw_64")
             elseif (MSVC)
                 if ("arm64" IN_LIST ARCHITECTURE)
-                    set(arch_path "msvc2022_arm64")
+                    set(arch_path "msvc2019_arm64")
                 elseif ("x86_64" IN_LIST ARCHITECTURE)
-                    set(arch_path "msvc2022_64")
+                    set(arch_path "msvc2019_64")
                 else()
                     message(FATAL_ERROR "Unsupported bundled Qt architecture. Enable USE_SYSTEM_QT and provide your own.")
                 endif()
                 set(arch "win64_${arch_path}")
 
                 if (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "AMD64")
-                    set(host_arch_path "msvc2022_64")
+                    set(host_arch_path "msvc2019_64")
                 elseif (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "ARM64")
-                    set(host_arch_path "msvc2022_arm64")
+                    set(host_arch_path "msvc2019_64")
                 endif()
                 set(host_arch "win64_${host_arch_path}")
             else()
@@ -133,12 +133,13 @@ function(download_qt_configuration prefix_out target host type arch arch_path ba
         set(install_args ${install_args} install-tool --outputdir ${base_path} ${host} desktop ${target})
     else()
         set(prefix "${base_path}/${target}/${arch_path}")
-        set(install_args ${install_args} install-qt --outputdir ${base_path} ${host} ${type} ${target} ${arch} -m qt3d qt5compat qtactiveqt qtcharts qtconnectivity qtdatavis3d qtgraphs qtgrpc qthttpserver qtimageformats qtlanguageserver qtlocation qtlottie qtmultimedia qtnetworkauth qtpdf qtpositioning qtquick3d qtquick3dphysics qtquickeffectmaker qtquicktimeline qtremoteobjects qtscxml qtsensors qtserialbus qtserialport qtshadertools qtspeech qtvirtualkeyboard qtwebchannel qtwebengine qtwebsockets qtwebview)
+        set(install_args ${install_args} install-qt --outputdir ${base_path} ${host} ${type} ${target} ${arch}
+                -m qtmultimedia --archives qttranslations qttools qtsvg qtbase)
     endif()
 
     if (NOT EXISTS "${prefix}")
         message(STATUS "Downloading Qt binaries for ${target}:${host}:${type}:${arch}:${arch_path}")
-        set(AQT_PREBUILD_BASE_URL "https://github.com/miurahr/aqtinstall/releases/download/v3.2.1")
+        set(AQT_PREBUILD_BASE_URL "https://github.com/miurahr/aqtinstall/releases/download/v3.1.18")
         if (WIN32)
             set(aqt_path "${base_path}/aqt.exe")
             if (NOT EXISTS "${aqt_path}")
diff --git a/externals/ffmpeg/CMakeLists.txt b/externals/ffmpeg/CMakeLists.txt
index 8804aa6ad3..543585d4f2 100644
--- a/externals/ffmpeg/CMakeLists.txt
+++ b/externals/ffmpeg/CMakeLists.txt
@@ -254,7 +254,7 @@ elseif(ANDROID)
     set(FFmpeg_INCLUDE_DIR "${FFmpeg_INCLUDE_DIR}" PARENT_SCOPE)
 elseif(WIN32)
     # Use yuzu FFmpeg binaries
-    set(FFmpeg_EXT_NAME "ffmpeg-7.0.3")
+    set(FFmpeg_EXT_NAME "ffmpeg-6.0")
     set(FFmpeg_PATH "${CMAKE_BINARY_DIR}/externals/${FFmpeg_EXT_NAME}")
     download_bundled_external("ffmpeg/" ${FFmpeg_EXT_NAME} "")
     set(FFmpeg_FOUND YES)
diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts
index 95a9cd84f5..8517855abc 100644
--- a/src/android/app/build.gradle.kts
+++ b/src/android/app/build.gradle.kts
@@ -168,6 +168,7 @@ android {
                     "-DENABLE_QT=0", // Don't use QT
                     "-DENABLE_SDL2=0", // Don't use SDL
                     "-DENABLE_WEB_SERVICE=0", // Don't use telemetry
+                    "-DBUNDLE_SPEEX=ON",
                     "-DANDROID_ARM_NEON=true", // cryptopp requires Neon to work
                     "-DYUZU_USE_BUNDLED_VCPKG=ON",
                     "-DYUZU_USE_BUNDLED_FFMPEG=ON",
diff --git a/src/android/app/src/main/AndroidManifest.xml b/src/android/app/src/main/AndroidManifest.xml
index 6ad1d1c1bf..51a4705f52 100644
--- a/src/android/app/src/main/AndroidManifest.xml
+++ b/src/android/app/src/main/AndroidManifest.xml
@@ -29,7 +29,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
         android:banner="@drawable/tv_banner"
         android:fullBackupContent="@xml/data_extraction_rules"
         android:dataExtractionRules="@xml/data_extraction_rules_api_31"
-        android:enableOnBackInvokedCallback="true">
+        android:enableOnBackInvokedCallback="false">
 
         <meta-data android:name="android.game_mode_config"
             android:resource="@xml/game_mode_config" />
@@ -44,7 +44,6 @@ SPDX-License-Identifier: GPL-3.0-or-later
                 <action android:name="android.intent.action.MAIN" />
 
                 <category android:name="android.intent.category.LAUNCHER" />
-                <category android:name="android.intent.category.GAME" />
                 <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
             </intent-filter>
         </activity>
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
index ddf3cb1fe1..fcc0ae8b99 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
@@ -565,11 +565,11 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
                         var fpsText = String.format("FPS: %.1f", actualFps)
 
                         if (enableFrameInterpolation) {
-                            fpsText += " " + getString(R.string.enhanced_fps_suffix)
+                            fpsText += ("(Enhanced)")
                         }
 
                         if (enableFrameSkipping) {
-                            fpsText += " " + getString(R.string.skipping_fps_suffix)
+                            fpsText += " [Skipping]"
                         }
 
                         sb.append(fpsText)
diff --git a/src/android/app/src/main/res/layout/header_in_game.xml b/src/android/app/src/main/res/layout/header_in_game.xml
index 32aa84ebfe..7e75c624c8 100644
--- a/src/android/app/src/main/res/layout/header_in_game.xml
+++ b/src/android/app/src/main/res/layout/header_in_game.xml
@@ -30,7 +30,7 @@
             android:textColor="?attr/colorOnSurfaceVariant"
             android:textAlignment="viewStart"
             android:layout_marginEnd="4dp"
-            android:text="@string/system_info_label" />
+            android:text="System Info:" />
 
         <com.google.android.material.textview.MaterialTextView
             android:id="@+id/cpu_backend"
diff --git a/src/android/app/src/main/res/values-ar/strings.xml b/src/android/app/src/main/res/values-ar/strings.xml
index 53c0be9039..e8cbd73821 100644
--- a/src/android/app/src/main/res/values-ar/strings.xml
+++ b/src/android/app/src/main/res/values-ar/strings.xml
@@ -6,9 +6,6 @@
     <string name="notification_permission_not_granted">لم يتم منح إذن الإشعار</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(مُحسَّن)</string>
-    <string name="skipping_fps_suffix">(تخطي)</string>
-    <string name="system_info_label">النظام:</string>
     <string name="show_stats_overlay">عرض إحصائيات الأداء</string>
     <string name="stats_overlay_customization">تخصيص</string>
     <string name="stats_overlay_items">الرؤية</string>
@@ -22,9 +19,9 @@
     <string name="show_speed">عرض السرعة</string>
     <string name="show_speed_description">عرض نسبة سرعة المحاكاة</string>
     <string name="show_app_ram_usage">عرض استخدام ذاكرة التطبيق</string>
-    <string name="show_app_ram_usage_description">عرض كمية ذاكرة الوصول العشوائي التي يستخدمها المحاكي</string>
+    <string name="show_app_ram_usage_description">عرض كمية الذاكرة المستخدمة من قبل المحاكي</string>
     <string name="show_system_ram_usage">عرض استخدام ذاكرة النظام</string>
-    <string name="show_system_ram_usage_description">عرض كمية ذاكرة الوصول العشوائي المستخدمة من قبل النظام</string>
+    <string name="show_system_ram_usage_description">عرض كمية الذاكرة المستخدمة من قبل النظام</string>
     <string name="show_bat_temperature">عرض درجة حرارة البطارية</string>
     <string name="show_bat_temperature_description">عرض درجة حرارة البطارية الحالية</string>
     <string name="overlay_position">موضع العرض</string>
@@ -52,7 +49,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">يحسن الأداء على الأجهزة الأحدث. مدعوم فقط على وحدات معالجة الرسومات التي تدعم فولكان 1.3+.</string>
     <string name="use_sync_core">مزامنة سرعة النواة</string>
-    <string name="use_sync_core_description">مزامنة سرعة النواة مع النسبة القصوى للسرعة لتحسين الأداء دون تغيير السرعة الفعلية للعبة.</string>
+    <string name="use_sync_core_description">قم بمزامنة سرعة النواة مع النسبة المئوية القصوى للسرعة لتحسين الأداء دون تغيير السرعة الفعلية للعبة.</string>
     <string name="use_auto_stub">استخدام الستاب التلقائي</string>
     <string name="use_auto_stub_description">يقوم تلقائيًا بإضافة خدمات ووظائف ناقصة. قد يحسن التوافق ولكنه قد يتسبب في تعطل المشغل ومشاكل في الاستقرار.</string>
     <string name="uninstall_firmware">إزالة البرنامج الثابت</string>
@@ -89,9 +86,8 @@
     <!-- خلفية Shader -->
     <string name="shader_backend">خلفية Shader</string>
     <string name="shader_backend_description">اختيار طريقة ترجمة Shaders</string>
-    <string name="shader_backend_glsl">عام</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- محاكاة NVDEC -->
     <string name="nvdec_emulation">محاكاة NVDEC</string>
@@ -377,7 +373,7 @@
     <string name="renderer_aspect_ratio">تناسب الابعاد</string>
     <string name="renderer_anti_aliasing">طريقة مكافحة التعرج</string>
     <string name="renderer_asynchronous_shaders">استخدم تظليل غير متزامن</string>
-    <string name="renderer_asynchronous_shaders_description">تجميع الظلال بشكل غير متزامن. قد يقلل هذا من التقطع ولكنه قد يتسبب أيضًا في حدوث أخطاء.</string>
+    <string name="renderer_asynchronous_shaders_description">يجمع التظليل بشكل غير متزامن، مما يقلل من التأتأة ولكنه قد يؤدي إلى حدوث بعض الأخطاء.</string>
     <string name="renderer_reactive_flushing">استخدم التنظيف التفاعلي</string>
     <string name="renderer_reactive_flushing_description">تحسين دقة العرض في بعض الألعاب على حساب الأداء</string>
     <string name="use_disk_shader_cache_description">يقلل من التأتأة عن طريق تخزين وتحميل التظليلات التي تم إنشاؤها محليًا.</string>
diff --git a/src/android/app/src/main/res/values-ckb/strings.xml b/src/android/app/src/main/res/values-ckb/strings.xml
index a96132bfbb..b82b3f56b1 100644
--- a/src/android/app/src/main/res/values-ckb/strings.xml
+++ b/src/android/app/src/main/res/values-ckb/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">مۆڵەتی ئاگادارکردنەوە نەدراوە!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(پێشکەوتوو)</string>
-    <string name="skipping_fps_suffix">(بازدان)</string>
-    <string name="system_info_label">سیستەم:</string>
     <string name="show_stats_overlay">پیشاندانی ستاتیستی کارایی</string>
     <string name="stats_overlay_customization">خۆڕێکخستن</string>
     <string name="stats_overlay_items">دیاربوون</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">نیشاندانی خێرایی</string>
     <string name="show_speed_description">نیشاندانی خێرایی ئیمولەیشن بە ڕێژە</string>
     <string name="show_app_ram_usage">نیشاندانی بەکارهێنانی RAMی ئەپ</string>
-    <string name="show_app_ram_usage_description">نیشاندانی بڕی RAM کە ئێمولاتۆر بەکاردەهێنێت</string>
+    <string name="show_app_ram_usage_description">نیشاندانی بەکارهێنانی RAM لەلایەن ئیمولەیتەر</string>
     <string name="show_system_ram_usage">نیشاندانی بەکارهێنانی RAMی سیستەم</string>
-    <string name="show_system_ram_usage_description">نیشاندانی بڕی RAM کە سیستم بەکاردەهێنێت</string>
+    <string name="show_system_ram_usage_description">نیشاندانی بەکارهێنانی RAM لەلایەن سیستەم</string>
     <string name="show_bat_temperature">نیشاندانی پلەی گەرمی بەتری</string>
     <string name="show_bat_temperature_description">نیشاندانی پلەی گەرمی بەتری بە سەدی و فارینهایت</string>
     <string name="overlay_position">شوێنی ئاوێرە</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">يحسن الأداء على الأجهزة الأحدث. مدعوم فقط على وحدات معالجة الرسومات التي تدعم فولكان 1.3+.</string>
     <string name="use_sync_core">مزامنة سرعة النواة</string>
-    <string name="use_sync_core_description">خێرایی تیکەکانی ناوک ڕێکبخە لەگەڵ ڕێژەی خێرایی بەرزترین بۆ باشترکردنی کارایی بەبێ گۆڕینی خێرایی ڕاستەقینەی یارییەکە.</string>
+    <string name="use_sync_core_description">قم بمزامنة سرعة النواة مع النسبة المئوية القصوى للسرعة لتحسين الأداء دون تغيير السرعة الفعلية للعبة.</string>
     <string name="use_auto_stub">استخدام الستاب التلقائي</string>
     <string name="use_auto_stub_description">يقوم تلقائيًا بإضافة خدمات ووظائف ناقصة. قد يحسن التوافق ولكنه قد يتسبب في تعطل المشغل ومشاكل في الاستقرار.</string>
     <string name="uninstall_firmware">إزالة البرنامج الثابت</string>
@@ -90,9 +87,8 @@
     <!-- شادەر باکند -->
     <string name="shader_backend">شادەر باکند</string>
     <string name="shader_backend_description">هەڵبژاردنی ڕێگای پێکهێنانی شادەر</string>
-    <string name="shader_backend_glsl">گشتی</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- ئیمولەیشنی NVDEC -->
     <string name="nvdec_emulation">ئیمولەیشنی NVDEC</string>
@@ -332,7 +328,7 @@
     <string name="renderer_force_max_clock">ناچاریکردن بۆ زۆرترین کاتژمێر (تەنها ئەدرینۆ)</string>
     <string name="renderer_force_max_clock_description">GPU ناچار دەکات بە زۆرترین کاتژمێر کاربکات (هێشتا سنووردارکردنی گەرمی جێبەجێ دەکرێت).</string>
     <string name="renderer_asynchronous_shaders">بەکارهێنانی سێبەری ناهاوسەنگ</string>
-    <string name="renderer_asynchronous_shaders_description">کۆمپایلکردنی شادەرەکان بەشێوەی ناڕێک. ئەمە ڕەنگە کەمکردنەوەی ستەتەر بکات بەڵام لەوانەیە هەڵەش دروست بکات.</string>
+    <string name="renderer_asynchronous_shaders_description">سێبەرەکان بە شێوەیەکی ناهاوسەنگ کۆدەکاتەوە، پچڕپچڕی کەمدەکاتەوە بەڵام لەوانەیە گلێچ دروستکا.</string>
     <string name="renderer_reactive_flushing">بەکارهێنانی بەرپێچدەرەوە</string>
     <string name="renderer_reactive_flushing_description">وردی ڕێندەرکردن لە هەندێک یاریدا باشتر دەکات لەسەر تێچووی کارایی.</string>
     <string name="use_disk_shader_cache">بیرگەخێرای سێبەری دیسک</string>
diff --git a/src/android/app/src/main/res/values-cs/strings.xml b/src/android/app/src/main/res/values-cs/strings.xml
index 76ef57a906..9cdbf53d32 100644
--- a/src/android/app/src/main/res/values-cs/strings.xml
+++ b/src/android/app/src/main/res/values-cs/strings.xml
@@ -6,9 +6,6 @@
     <string name="notification_permission_not_granted">Oznámení nejsou oprávněna!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Vylepšený)</string>
-    <string name="skipping_fps_suffix">(Přeskakování)</string>
-    <string name="system_info_label">Systém:</string>
     <string name="show_stats_overlay">Zobrazit překryv statistik výkonu</string>
     <string name="stats_overlay_customization">Přizpůsobení</string>
     <string name="stats_overlay_items">Viditelnost</string>
@@ -22,9 +19,9 @@
     <string name="show_speed">Zobrazit rychlost</string>
     <string name="show_speed_description">Aktuální rychlost emulace v procentech</string>
     <string name="show_app_ram_usage">Zobrazit využití RAM aplikace</string>
-    <string name="show_app_ram_usage_description">Zobrazit množství RAM, které emulátor používá</string>
+    <string name="show_app_ram_usage_description">Množství RAM používané emulátorem</string>
     <string name="show_system_ram_usage">Zobrazit využití systémové RAM</string>
-    <string name="show_system_ram_usage_description">Zobrazit množství RAM využívané systémem</string>
+    <string name="show_system_ram_usage_description">Množství RAM používané systémem</string>
     <string name="show_bat_temperature">Zobrazit teplotu baterie</string>
     <string name="show_bat_temperature_description">Aktuální teplota baterie ve °C a °F</string>
     <string name="overlay_position">Pozice překryvu</string>
@@ -52,7 +49,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Zlepšuje výkon na novějších zařízeních. Podporováno pouze na GPU s Vulkan 1.3+.</string>
     <string name="use_sync_core">Synchronizovat rychlost jádra</string>
-    <string name="use_sync_core_description">Synchronizuje rychlost jádra s maximálním procentem rychlosti, aby se zlepšil výkon bez změny skutečné rychlosti hry.</string>
+    <string name="use_sync_core_description">Synchronizuje rychlost jádra s maximální procentuální rychlostí pro lepší výkon bez změny skutečné rychlosti hry.</string>
     <string name="use_auto_stub">Použít automatický stub</string>
     <string name="use_auto_stub_description">Automaticky doplňuje chybějící služby a funkce. Může zlepšit kompatibilitu, ale také způsobit pády a problémy se stabilitou.</string>
     <string name="uninstall_firmware">Odinstalovat firmware</string>
@@ -89,9 +86,8 @@
     <!-- Backend shaderů -->
     <string name="shader_backend">Backend shaderů</string>
     <string name="shader_backend_description">Způsob kompilace shaderů</string>
-    <string name="shader_backend_glsl">Univerzální</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- Emulace NVDEC -->
     <string name="nvdec_emulation">Emulace NVDEC</string>
@@ -296,43 +292,16 @@
 
     <!-- General settings strings -->
     <string name="frame_limit_enable">Omezit rychlost</string>
-    <string name="frame_limit_enable_description">Omezení emulační rychlosti</string>
-    <string name="frame_limit_slider">Procento omezení</string>
-    <string name="frame_limit_slider_description">Procento normální rychlosti</string>
-    <string name="cpu_backend">CPU backend</string>
-    <string name="cpu_accuracy">Přesnost CPU</string>
-    <string name="value_with_units">%1$s%2$s</string>
-    <string name="device_name">Název zařízení</string>
-    <string name="use_docked_mode">Docked režim</string>
-    <string name="use_docked_mode_description">Větší rozlišení, menší výkon</string>
+    <string name="cpu_accuracy">CPU přesnost</string>
     <string name="emulated_region">Emulovaná oblast</string>
     <string name="emulated_language">Emulovaný jazyk</string>
-    <string name="select_rtc_date">Vybrat datum RTC</string>
-    <string name="select_rtc_time">Vybrat čas RTC</string>
     <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>
 
     <!-- Graphics settings strings -->
     <string name="renderer_accuracy">Úroveň přesnosti</string>
-    <string name="renderer_resolution">Rozlišení (Handheld/Docked)</string>
     <string name="renderer_vsync">VSync režim</string>
     <string name="renderer_screen_layout">Orientace</string>
     <string name="renderer_aspect_ratio">Poměr stran</string>
-    <string name="renderer_scaling_filter">Filtr přizpůsobení</string>
-    <string name="fsr_sharpness">Ostrost FSR</string>
-    <string name="fsr_sharpness_description">Nastavení ostrosti pro FSR</string>
-    <string name="renderer_anti_aliasing">Anti-aliasing</string>
-    <string name="renderer_force_max_clock">Maximální takt (Adreno)</string>
-    <string name="renderer_force_max_clock_description">Maximální výkon GPU</string>
-    <string name="renderer_asynchronous_shaders">Asynchronní shadery</string>
-    <string name="renderer_asynchronous_shaders_description">Kompiluje stínovače asynchronně. Může to snížit trhání, ale také způsobit grafické chyby.</string>
-    <string name="renderer_reactive_flushing">Reaktivní flushing</string>
-    <string name="renderer_reactive_flushing_description">Zlepšení přesnosti vykreslování</string>
-    <string name="use_disk_shader_cache">Shader cache na disku</string>
-    <string name="use_disk_shader_cache_description">Snížení trhání ukládáním shaderů</string>
-    <string name="anisotropic_filtering">Anizotropní filtrování</string>
-    <string name="anisotropic_filtering_description">Zlepšení kvality textur</string>
 
     <!-- Debug settings strings -->
     <string name="cpu">CPU</string>
diff --git a/src/android/app/src/main/res/values-de/strings.xml b/src/android/app/src/main/res/values-de/strings.xml
index 805db9adcc..872df8ad80 100644
--- a/src/android/app/src/main/res/values-de/strings.xml
+++ b/src/android/app/src/main/res/values-de/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Berechtigung für Benachrichtigungen nicht erlaubt!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Enhanced)</string>
-    <string name="skipping_fps_suffix">(Skipping)</string>
-    <string name="system_info_label">System:</string>
     <string name="show_stats_overlay">Leistungsstatistik Overlay anzeigen</string>
     <string name="stats_overlay_customization">Anpassung</string>
     <string name="stats_overlay_items">Sichtbarkeit</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Geschwindigkeit anzeigen</string>
     <string name="show_speed_description">Emulationsgeschwindigkeit in Prozent</string>
     <string name="show_app_ram_usage">App-RAM-Nutzung anzeigen</string>
-    <string name="show_app_ram_usage_description">Zeigt den RAM-Verbrauch des Emulators an</string>
+    <string name="show_app_ram_usage_description">RAM-Nutzung durch den Emulator</string>
     <string name="show_system_ram_usage">System-RAM-Nutzung anzeigen</string>
-    <string name="show_system_ram_usage_description">Zeigt den vom System genutzten RAM an</string>
+    <string name="show_system_ram_usage_description">RAM-Nutzung durch das System</string>
     <string name="show_bat_temperature">Batterietemperatur anzeigen</string>
     <string name="show_bat_temperature_description">Aktuelle Batterietemperatur in °C/°F</string>
     <string name="overlay_position">Overlay-Position</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Verbessert die Leistung auf neueren Geräten. Wird nur von GPUs mit Vulkan 1.3+ unterstützt.</string>
     <string name="use_sync_core">Kern-Geschwindigkeit synchronisieren</string>
-    <string name="use_sync_core_description">Synchronisiert die Taktrate des Kerns mit der maximalen Geschwindigkeit, um die Leistung zu verbessern, ohne die tatsächliche Spielgeschwindigkeit zu verändern.</string>
+    <string name="use_sync_core_description">Synchronisiert die Kern-Taktgeschwindigkeit mit der maximalen Geschwindigkeit, um die Leistung zu verbessern, ohne die tatsächliche Spielgeschwindigkeit zu ändern.</string>
     <string name="use_auto_stub">Auto-Stub verwenden</string>
     <string name="use_auto_stub_description">Ergänzt automatisch fehlende Dienste und Funktionen. Kann die Kompatibilität verbessern, aber auch zu Abstürzen und Stabilitätsproblemen führen.</string>
     <string name="uninstall_firmware">Firmware deinstallieren</string>
@@ -90,9 +87,8 @@
     <!-- Shader Backend -->
     <string name="shader_backend">Shader-Backend</string>
     <string name="shader_backend_description">Methode zur Shader-Kompilierung</string>
-    <string name="shader_backend_glsl">Universal</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- NVDEC Emulation -->
     <string name="nvdec_emulation">NVDEC-Emulation</string>
@@ -347,24 +343,15 @@ Wird der Handheld-Modus verwendet, verringert es die Auflösung und erhöht die
     <string name="use_custom_rtc">Benutzerdefinierte Echtzeituhr</string>
     <!-- Graphics settings strings -->
     <string name="renderer_accuracy">Genauigkeitsstufe</string>
-    <string name="renderer_resolution">Auflösung (Handheld/Gedockt)</string>
+    <string name="renderer_resolution">Auflösung (Mobil/Gedockt)</string>
     <string name="renderer_vsync">VSync-Modus</string>
-    <string name="renderer_screen_layout">Ausrichtung</string>
+    <string name="renderer_screen_layout">Orientierung</string>
     <string name="renderer_aspect_ratio">Seitenverhältnis</string>
-    <string name="renderer_scaling_filter">Skalierungsfilter</string>
-    <string name="fsr_sharpness">FSR-Schärfe</string>
-    <string name="fsr_sharpness_description">Bestimmt die Schärfe bei FSR-Nutzung.</string>
+    <string name="renderer_scaling_filter">Fensteranpassungsfilter</string>
     <string name="renderer_anti_aliasing">Kantenglättung</string>
     <string name="renderer_force_max_clock">Maximale Taktfrequenz erzwingen (nur Adreno)</string>
-    <string name="renderer_force_max_clock_description">Erzwingt maximale GPU-Taktfrequenz.</string>
-    <string name="renderer_asynchronous_shaders">Asynchrone Shader</string>
-    <string name="renderer_asynchronous_shaders_description">Kompiliert Shader asynchron. Dies kann Ruckler reduzieren, aber auch Grafikfehler verursachen.</string>
-    <string name="renderer_reactive_flushing">Reaktives Flushing</string>
-    <string name="renderer_reactive_flushing_description">Verbessert die Genauigkeit in einigen Spielen.</string>
-    <string name="use_disk_shader_cache">Shader-Cache auf Festplatte</string>
-    <string name="use_disk_shader_cache_description">Reduziert Ruckler durch Shader-Caching.</string>
-    <string name="anisotropic_filtering">Anisotrope Filterung</string>
-    <string name="anisotropic_filtering_description">Verbessert die Texturenqualität.</string>
+    <string name="renderer_force_max_clock_description">Erzwingt den Betrieb der GPU mit der maximal möglichen Taktfrequenz (Temperaturbeschränkungen werden weiterhin angewendet).</string>
+    <string name="renderer_asynchronous_shaders">Asynchrone Shader nutzen</string>
     <!-- Debug settings strings -->
     <string name="cpu">CPU</string>
     <string name="cpu_debug_mode">CPU Debugging</string>
diff --git a/src/android/app/src/main/res/values-es/strings.xml b/src/android/app/src/main/res/values-es/strings.xml
index 5137b04d18..2305234df3 100644
--- a/src/android/app/src/main/res/values-es/strings.xml
+++ b/src/android/app/src/main/res/values-es/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">¡Permisos de notificación no concedidos!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Mejorado)</string>
-    <string name="skipping_fps_suffix">(Saltando)</string>
-    <string name="system_info_label">Sistema:</string>
     <string name="show_stats_overlay">Mostrar superposición de estadísticas de rendimiento</string>
     <string name="stats_overlay_customization">Personalización</string>
     <string name="stats_overlay_items">Visibilidad</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Mostrar velocidad</string>
     <string name="show_speed_description">Mostrar porcentaje de velocidad de emulación</string>
     <string name="show_app_ram_usage">Mostrar uso de RAM de la app</string>
-    <string name="show_app_ram_usage_description">Mostrar la cantidad de RAM que utiliza el emulador</string>
+    <string name="show_app_ram_usage_description">Mostrar RAM utilizada por el emulador</string>
     <string name="show_system_ram_usage">Mostrar uso de RAM del sistema</string>
-    <string name="show_system_ram_usage_description">Mostrar la cantidad de RAM utilizada por el sistema</string>
+    <string name="show_system_ram_usage_description">Mostrar RAM utilizada por el sistema</string>
     <string name="show_bat_temperature">Mostrar temperatura de batería</string>
     <string name="show_bat_temperature_description">Mostrar temperatura en Celsius y Fahrenheit</string>
     <string name="overlay_position">Posición de la superposición</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Mejora el rendimiento en dispositivos nuevos. Solo compatible con GPUs Vulkan 1.3+.</string>
     <string name="use_sync_core">Sincronizar velocidad del núcleo</string>
-    <string name="use_sync_core_description">Sincroniza la velocidad del núcleo con el porcentaje máximo de velocidad para mejorar el rendimiento sin alterar la velocidad real del juego.</string>
+    <string name="use_sync_core_description">Sincroniza la velocidad del núcleo con el porcentaje máximo para mejorar el rendimiento sin alterar la velocidad real del juego.</string>
     <string name="use_auto_stub">Usar Auto Stub</string>
     <string name="use_auto_stub_description">Rellena automáticamente servicios y funciones faltantes. Puede mejorar compatibilidad pero causar cierres inesperados.</string>
     <string name="uninstall_firmware">Desinstalar firmware</string>
@@ -90,9 +87,8 @@
     <!-- Backend de shaders -->
     <string name="shader_backend">Backend de shaders</string>
     <string name="shader_backend_description">Elegir cómo se compilan shaders</string>
-    <string name="shader_backend_glsl">Universal</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- Emulación NVDEC -->
     <string name="nvdec_emulation">Emulación NVDEC</string>
@@ -412,7 +408,7 @@
     <string name="renderer_force_max_clock">Forzar velocidad al máximo (solo Adreno)</string>
     <string name="renderer_force_max_clock_description">Fuerza a la GPU a ejecutarse a la velocidad máxima de reloj posible (se seguirán aplicando restricciones térmicas).</string>
     <string name="renderer_asynchronous_shaders">Usar shaders asíncronos</string>
-    <string name="renderer_asynchronous_shaders_description">Compila los shaders de forma asíncrona. Esto puede reducir los tirones, pero también puede introducir errores gráficos.</string>
+    <string name="renderer_asynchronous_shaders_description">Compila shaders de manera asíncrona, reduce los parones pero puede introducir fallos.</string>
     <string name="renderer_reactive_flushing">Usar limpieza reactiva</string>
     <string name="renderer_reactive_flushing_description">Mejora la precisión de renderizado en algunos juegos, pero reduce el rendimiento.</string>
     <string name="use_disk_shader_cache">Caché de shaders en disco</string>
diff --git a/src/android/app/src/main/res/values-fa/strings.xml b/src/android/app/src/main/res/values-fa/strings.xml
index 9513e16bc0..6cf7b35bf5 100644
--- a/src/android/app/src/main/res/values-fa/strings.xml
+++ b/src/android/app/src/main/res/values-fa/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">مجوز اعلان داده نشده!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(بهبودیافته)</string>
-    <string name="skipping_fps_suffix">(رد کردن)</string>
-    <string name="system_info_label">سیستم:</string>
     <string name="show_stats_overlay">نمایش آمار عملکرد</string>
     <string name="stats_overlay_customization">سفارشی‌سازی</string>
     <string name="stats_overlay_items">نمایش</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">نمایش سرعت</string>
     <string name="show_speed_description">نمایش درصد سرعت شبیه‌سازی</string>
     <string name="show_app_ram_usage">نمایش مصرف رم برنامه</string>
-    <string name="show_app_ram_usage_description">نمایش میزان رم مورد استفاده شبیه‌ساز</string>
+    <string name="show_app_ram_usage_description">نمایش میزان رم استفاده‌شده توسط شبیه‌ساز</string>
     <string name="show_system_ram_usage">نمایش مصرف رم سیستم</string>
-    <string name="show_system_ram_usage_description">نمایش میزان رم استفاده شده توسط سیستم</string>
+    <string name="show_system_ram_usage_description">نمایش میزان رم استفاده‌شده توسط سیستم</string>
     <string name="show_bat_temperature">نمایش دمای باتری</string>
     <string name="show_bat_temperature_description">نمایش دمای باتری به سانتی‌گراد و فارنهایت</string>
     <string name="overlay_position">موقعیت اورلی</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + حالت پویای ورودی رأس</string>
     <string name="dyna_state3_description">عملکرد را در دستگاه‌های جدیدتر بهبود می‌بخشد. فقط در کارت‌های گرافیک با پشتیبانی از ولکان 1.3+ قابل استفاده است</string>
     <string name="use_sync_core">همگام‌سازی سرعت هسته</string>
-    <string name="use_sync_core_description">همگام‌سازی سرعت هسته با حداکثر درصد سرعت برای بهبود عملکرد بدون تغییر سرعت واقعی بازی.</string>
+    <string name="use_sync_core_description">سرعت تیک هسته را با حداکثر درصد سرعت همگام می‌کند تا عملکرد بهبود یابد بدون آنکه سرعت واقعی بازی تغییر کند</string>
     <string name="use_auto_stub">استفاده از استاب خودکار</string>
     <string name="use_auto_stub_description">به طور خودکار سرویس‌ها و توابع از دست رفته را استاب می‌کند. این ممکن است سازگاری را بهبود بخشد اما می‌تواند باعث کرش و مشکلات پایداری شود</string>
     <string name="uninstall_firmware">حذف فرمور</string>
@@ -90,9 +87,8 @@
     <!-- بک‌اند شیدر -->
     <string name="shader_backend">بک‌اند شیدر</string>
     <string name="shader_backend_description">انتخاب روش کامپایل و ترجمه شیدرها</string>
-    <string name="shader_backend_glsl">همه‌کاره</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- شبیه‌سازی NVDEC -->
     <string name="nvdec_emulation">شبیه‌سازی NVDEC</string>
@@ -412,7 +408,7 @@
     <string name="renderer_force_max_clock">اجبار به حداکثر فرکانس (فقط برای Adreno)</string>
     <string name="renderer_force_max_clock_description">پردازنده گرافیکی را مجبور می‌کند تا با بیشترین فرکانس کار کند (محدودیت‌های حرارتی همچنان اعمال خواهند شد).</string>
     <string name="renderer_asynchronous_shaders">استفاده از سایه‌زن‌های ناهمزمان</string>
-    <string name="renderer_asynchronous_shaders_description">کامپایل شیدرها به صورت ناهمزمان. این ممکن است باعث کاهش مکث شود اما ممکن است مشکلات گرافیکی نیز ایجاد کند.</string>
+    <string name="renderer_asynchronous_shaders_description">سایه‌زن‌ها را به صورت ناهمزمان کامپایل می کند، لکنت را کاهش می‌دهد اما ممکن است اشکالاتی ایجاد کند.</string>
     <string name="renderer_reactive_flushing">استفاده از فلاش کردن واکنشی</string>
     <string name="renderer_reactive_flushing_description">دقت تفسیر تصاویر را در برخی از بازی‌ها به قیمت عملکرد بهبود می‌بخشد.</string>
     <string name="use_disk_shader_cache">ذخیره سایه‌زنی‌ها در حافظه</string>
diff --git a/src/android/app/src/main/res/values-fr/strings.xml b/src/android/app/src/main/res/values-fr/strings.xml
index 7eeaebc7b7..f13945e77a 100644
--- a/src/android/app/src/main/res/values-fr/strings.xml
+++ b/src/android/app/src/main/res/values-fr/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Permission de notification non accordée !</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Amélioré)</string>
-    <string name="skipping_fps_suffix">(Saut)</string>
-    <string name="system_info_label">Système:</string>
     <string name="show_stats_overlay">Afficher les stats de performance</string>
     <string name="stats_overlay_customization">Personnalisation</string>
     <string name="stats_overlay_items">Visibilité</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Afficher vitesse</string>
     <string name="show_speed_description">Afficher la vitesse d`émulation</string>
     <string name="show_app_ram_usage">RAM app</string>
-    <string name="show_app_ram_usage_description">Afficher la quantité de RAM utilisée par l\'émulateur</string>
+    <string name="show_app_ram_usage_description">Afficher la RAM utilisée par l`émulateur</string>
     <string name="show_system_ram_usage">RAM système</string>
-    <string name="show_system_ram_usage_description">Afficher la quantité de RAM utilisée par le système</string>
+    <string name="show_system_ram_usage_description">Afficher la RAM système utilisée</string>
     <string name="show_bat_temperature">Temp. batterie</string>
     <string name="show_bat_temperature_description">Afficher la température de la batterie</string>
     <string name="overlay_position">Position overlay</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Améliore les performances sur les appareils récents. Pris en charge uniquement par les GPU Vulkan 1.3+.</string>
     <string name="use_sync_core">Synchroniser la vitesse du cœur</string>
-    <string name="use_sync_core_description">Synchronise la vitesse du cœur avec le pourcentage de vitesse maximal pour améliorer les performances sans modifier la vitesse réelle du jeu.</string>
+    <string name="use_sync_core_description">Synchronise la vitesse de base avec le pourcentage de vitesse maximal pour améliorer les performances sans altérer la vitesse réelle du jeu.</string>
     <string name="use_auto_stub">Utiliser le stub automatique</string>
     <string name="use_auto_stub_description">Comble automatiquement les services et fonctions manquants. Peut améliorer la compatibilité mais peut provoquer des plantages et des problèmes de stabilité.</string>
     <string name="uninstall_firmware">Désinstaller le firmware</string>
@@ -90,9 +87,8 @@
     <!-- Shader Backend -->
     <string name="shader_backend">Backend shader</string>
     <string name="shader_backend_description">Méthode de compilation</string>
-    <string name="shader_backend_glsl">Universel</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- NVDEC -->
     <string name="nvdec_emulation">Émulation NVDEC</string>
@@ -414,7 +410,7 @@
     <string name="renderer_force_max_clock">Forcer les fréquences maximales (Adreno uniquement)</string>
     <string name="renderer_force_max_clock_description">Forcer le GPU à fonctionner à ses fréquences maximales possibles (les contraintes thermiques seront toujours appliquées).</string>
     <string name="renderer_asynchronous_shaders">Utiliser les shaders asynchrones</string>
-    <string name="renderer_asynchronous_shaders_description">Compile les shaders de manière asynchrone. Cela peut réduire les saccades mais peut aussi provoquer des problèmes graphiques.</string>
+    <string name="renderer_asynchronous_shaders_description">Compile les shaders de manière asynchrone, réduisant les saccades mais pouvant entraîner des problèmes visuels.</string>
     <string name="renderer_reactive_flushing">Utiliser le vidage réactif</string>
     <string name="renderer_reactive_flushing_description">Améliore la précision du rendu dans certains jeux au détriment des performances.</string>
     <string name="use_disk_shader_cache">Utiliser les shader cache</string>
diff --git a/src/android/app/src/main/res/values-he/strings.xml b/src/android/app/src/main/res/values-he/strings.xml
index 7437db4f9f..3b6a09266d 100644
--- a/src/android/app/src/main/res/values-he/strings.xml
+++ b/src/android/app/src/main/res/values-he/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">הרשאות התראות לא ניתנה!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(משופר)</string>
-    <string name="skipping_fps_suffix">(דילוג)</string>
-    <string name="system_info_label">מערכת:</string>
     <string name="show_stats_overlay">הצג סטטיסטיקות ביצועים</string>
     <string name="stats_overlay_customization">התאמה אישית</string>
     <string name="stats_overlay_items">נראות</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">הצג מהירות</string>
     <string name="show_speed_description">מציג את אחוז מהירות האמולציה</string>
     <string name="show_app_ram_usage">הצג שימוש זיכרון</string>
-    <string name="show_app_ram_usage_description">הצג את כמות ה-RAM שהאמולטור משתמש בה</string>
+    <string name="show_app_ram_usage_description">מציג את כמות הזיכרון בשימוש על ידי האמולטור</string>
     <string name="show_system_ram_usage">הצג שימוש זיכרון מערכת</string>
-    <string name="show_system_ram_usage_description">הצג את כמות ה-RAM שבה המערכת משתמשת</string>
+    <string name="show_system_ram_usage_description">מציג את כמות הזיכרון בשימוש על ידי המערכת</string>
     <string name="show_bat_temperature">הצג טמפרטורת סוללה</string>
     <string name="show_bat_temperature_description">מציג טמפרטורת סוללה במעלות צלזיוס ופרנהייט</string>
     <string name="overlay_position">מיקום שכבה</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">משפר ביצועים במכשירים חדשים יותר. נתמך רק בכרטיסי מסך עם Vulkan 1.3+.</string>
     <string name="use_sync_core">סנכרון מהירות ליבה</string>
-    <string name="use_sync_core_description">סנכרן את מהירות הליבה לאחוז המהירות המרבי כדי לשפר ביצועים מבלי לשנות את מהירות המשחק בפועל.</string>
+    <string name="use_sync_core_description">מסנכרן את מהירות הליבה לאחוז המהירות המקסימלי כדי לשפר ביצועים ללא שינוי במהירות המשחק בפועל.</string>
     <string name="use_auto_stub">שימוש ב-Auto Stub</string>
     <string name="use_auto_stub_description">משלים אוטומטית שירותים ופונקציות חסרים. עשוי לשפר תאימות אך עלול לגרום לקריסות ובעיות יציבות.</string>
     <string name="uninstall_firmware">הסרת קושחה</string>
@@ -90,9 +87,8 @@
     <!-- מנוע שיידרים -->
     <string name="shader_backend">מנוע שיידרים</string>
     <string name="shader_backend_description">בחר כיצד לקמפל שיידרים</string>
-    <string name="shader_backend_glsl">אוניברסלי</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- אמולציית NVDEC -->
     <string name="nvdec_emulation">אמולציית NVDEC</string>
@@ -395,7 +391,7 @@
     <string name="renderer_force_max_clock">החזק מהירות שעון מקסימלית (רק ל Adreno)</string>
     <string name="renderer_force_max_clock_description">מכריח לדחוף את מהירויות המעבד הגרפי למקסימום (הגבלות חום ימשיכו לתפקד).</string>
     <string name="renderer_asynchronous_shaders">השתמש בשיידרים אסינכרונים</string>
-    <string name="renderer_asynchronous_shaders_description">מקמפל שיידרים באופן אסינכרוני. זה עשוי להפחית קפיצות אך גם עלול לגרום לתקלות גרפיות.</string>
+    <string name="renderer_asynchronous_shaders_description">מקמפל שיידרים בצורה אסנכרונית, מפחית תקיעות אך עלול לגרום לבעיות גרפיות.</string>
     <string name="renderer_reactive_flushing">השתמש בהבהוב תגובתי</string>
     <string name="renderer_reactive_flushing_description">משפר את הדיוק של האמולציה במשחקים מסויימים במחיר של ביצועים.</string>
     <string name="use_disk_shader_cache">מטמון השיידר של הדיסק</string>
diff --git a/src/android/app/src/main/res/values-hu/strings.xml b/src/android/app/src/main/res/values-hu/strings.xml
index 9fb6f6321d..bab82f1fa5 100644
--- a/src/android/app/src/main/res/values-hu/strings.xml
+++ b/src/android/app/src/main/res/values-hu/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Nincs engedély az értesítés megjelenítéséhez!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Továbbfejlesztett)</string>
-    <string name="skipping_fps_suffix">(Kihagyás)</string>
-    <string name="system_info_label">Rendszer:</string>
     <string name="show_stats_overlay">Teljesítmény statisztikák megjelenítése</string>
     <string name="stats_overlay_customization">Testreszabás</string>
     <string name="stats_overlay_items">Láthatóság</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Sebesség mutatása</string>
     <string name="show_speed_description">Emulációs sebesség százalékban</string>
     <string name="show_app_ram_usage">Alkalmazás RAM-használat</string>
-    <string name="show_app_ram_usage_description">Az emulátor által használt RAM mennyiségének megjelenítése</string>
+    <string name="show_app_ram_usage_description">Az emulátor által használt RAM</string>
     <string name="show_system_ram_usage">Rendszer RAM-használat</string>
-    <string name="show_system_ram_usage_description">A rendszer által használt RAM mennyiségének megjelenítése</string>
+    <string name="show_system_ram_usage_description">A rendszer által használt RAM</string>
     <string name="show_bat_temperature">Akkumulátor hőmérséklet</string>
     <string name="show_bat_temperature_description">Aktuális hőmérséklet Celsiusban és Fahrenheitben</string>
     <string name="overlay_position">Overlay pozíció</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Javítja a teljesítményt újabb eszközökön. Csak Vulkan 1.3+ GPU-kon támogatott.</string>
     <string name="use_sync_core">Magsebesség szinkronizálása</string>
-    <string name="use_sync_core_description">A mag sebességének szinkronizálása a maximális sebesség százalékával a teljesítmény javítása érdekében a játék tényleges sebességének megváltoztatása nélkül.</string>
+    <string name="use_sync_core_description">Szinkronizálja a magsebességet a maximális sebesség százalékához a teljesítmény javításához anélkül, hogy megváltoztatná a játék tényleges sebességét.</string>
     <string name="use_auto_stub">Automatikus Stub használata</string>
     <string name="use_auto_stub_description">Automatusan kiegészíti a hiányzó szolgáltatásokat és funkciókat. Növelheti a kompatibilitást, de összeomlásokat és stabilitási problémákat okozhat.</string>
     <string name="uninstall_firmware">Firmware eltávolítása</string>
@@ -90,9 +87,8 @@
     <!-- Shader Backend -->
     <string name="shader_backend">Shader backend</string>
     <string name="shader_backend_description">Shaderek fordításának módja</string>
-    <string name="shader_backend_glsl">Univerzális</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- NVDEC Emuláció -->
     <string name="nvdec_emulation">NVDEC emuláció</string>
@@ -408,7 +404,7 @@
     <string name="renderer_force_max_clock">Maximum órajel kényszerítése (csak Adreno)</string>
     <string name="renderer_force_max_clock_description">Kényszeríti a GPU-t a lehető legnagyobb órajelen működésre (a hőmérséklet korlátozások továbbra is érvényben maradnak).</string>
     <string name="renderer_asynchronous_shaders">Aszinkron árnyékolók használata</string>
-    <string name="renderer_asynchronous_shaders_description">A shaderek aszinkron fordítása. Csökkentheti a belassulásokat, de hibákat is okozhat.</string>
+    <string name="renderer_asynchronous_shaders_description">Aszinkron módon fordítja az árnyékolókat, ami csökkenti az akadozást, de hibákat okozhat.</string>
     <string name="renderer_reactive_flushing">Reaktív ürítés használata</string>
     <string name="renderer_reactive_flushing_description">Javítja a renderelési pontosságot néhány játékban a teljesítmény rovására.</string>
     <string name="use_disk_shader_cache">Lemez árnyékoló gyorsítótár</string>
diff --git a/src/android/app/src/main/res/values-id/strings.xml b/src/android/app/src/main/res/values-id/strings.xml
index 4c8a969e5d..b2442010c8 100644
--- a/src/android/app/src/main/res/values-id/strings.xml
+++ b/src/android/app/src/main/res/values-id/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Izin notifikasi tidak diberikan!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Ditingkatkan)</string>
-    <string name="skipping_fps_suffix">(Melewatkan)</string>
-    <string name="system_info_label">Sistem:</string>
     <string name="show_stats_overlay">Tampilkan Overlay Statistik Performa</string>
     <string name="stats_overlay_customization">Kustomisasi</string>
     <string name="stats_overlay_items">Visibilitas</string>
@@ -23,7 +20,7 @@
     <string name="show_speed">Tampilkan Kecepatan</string>
     <string name="show_speed_description">Tampilkan persentase kecepatan emulasi saat ini</string>
     <string name="show_app_ram_usage">Tampilkan Penggunaan RAM Aplikasi</string>
-    <string name="show_app_ram_usage_description">Tampilkan jumlah RAM yang digunakan emulator</string>
+    <string name="show_app_ram_usage_description">Tampilkan jumlah RAM yang digunakan oleh emulator</string>
     <string name="show_system_ram_usage">Tampilkan Penggunaan RAM Sistem</string>
     <string name="show_system_ram_usage_description">Tampilkan jumlah RAM yang digunakan oleh sistem</string>
     <string name="show_bat_temperature">Tampilkan Suhu Baterai</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Meningkatkan performa di perangkat baru. Hanya didukung di GPU Vulkan 1.3+.</string>
     <string name="use_sync_core">Sinkronisasi Kecepatan Inti</string>
-    <string name="use_sync_core_description">Sinkronkan kecepatan inti dengan persentase kecepatan maksimum untuk meningkatkan performa tanpa mengubah kecepatan sebenarnya dari permainan.</string>
+    <string name="use_sync_core_description">Sinkronkan kecepatan inti ke persentase kecepatan maksimum untuk meningkatkan performa tanpa mengubah kecepatan aktual game.</string>
     <string name="use_auto_stub">Gunakan Auto Stub</string>
     <string name="use_auto_stub_description">Otomatis menyediakan layanan dan fungsi yang hilang. Dapat meningkatkan kompatibilitas tetapi mungkin menyebabkan crash dan masalah stabilitas.</string>
     <string name="uninstall_firmware">Copot Firmware</string>
@@ -90,9 +87,8 @@
     <!-- Backend Shader -->
     <string name="shader_backend">Backend Shader</string>
     <string name="shader_backend_description">Pilih cara shader dikompilasi dan diterjemahkan untuk GPU Anda.</string>
-    <string name="shader_backend_glsl">Universal</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- Emulasi NVDEC -->
     <string name="nvdec_emulation">Emulasi NVDEC</string>
@@ -408,7 +404,7 @@
     <string name="renderer_force_max_clock">Paksa jam maximum (hanya untuk Adreno)</string>
     <string name="renderer_force_max_clock_description">Memaksa GPU untuk berjalan pada kecepatan maksimum yang mungkin (batasan termal masih akan diterapkan).</string>
     <string name="renderer_asynchronous_shaders">Gunakan shader asinkron</string>
-    <string name="renderer_asynchronous_shaders_description">Kompilasi shader secara asinkron. Ini dapat mengurangi lag tetapi juga dapat menyebabkan glitch.</string>
+    <string name="renderer_asynchronous_shaders_description">Mengompilasi shader secara asinkron mengurangi Tutup Paksa tetapi dapat menimbulkan gangguan.</string>
     <string name="renderer_reactive_flushing">Gunakan reactive flushing</string>
     <string name="renderer_reactive_flushing_description">Meningkatkan akurasi rendering dalam beberapa permainan dengan mengorbankan performa.</string>
     <string name="use_disk_shader_cache">Cache shader disk</string>
diff --git a/src/android/app/src/main/res/values-it/strings.xml b/src/android/app/src/main/res/values-it/strings.xml
index 69a55c7a06..bcd6c3ae4f 100644
--- a/src/android/app/src/main/res/values-it/strings.xml
+++ b/src/android/app/src/main/res/values-it/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Autorizzazione di notifica non concessa!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Migliorato)</string>
-    <string name="skipping_fps_suffix">(Salto)</string>
-    <string name="system_info_label">Sistema:</string>
     <string name="show_stats_overlay">Mostra overlay prestazioni</string>
     <string name="stats_overlay_customization">Personalizzazione</string>
     <string name="stats_overlay_items">Visibilità</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Mostra velocità</string>
     <string name="show_speed_description">Mostra percentuale velocità emulazione</string>
     <string name="show_app_ram_usage">Mostra RAM app</string>
-    <string name="show_app_ram_usage_description">Mostra la quantità di RAM utilizzata dall\'emulatore</string>
+    <string name="show_app_ram_usage_description">Mostra RAM usata dall`emulatore</string>
     <string name="show_system_ram_usage">Mostra RAM sistema</string>
-    <string name="show_system_ram_usage_description">Mostra la quantità di RAM utilizzata dal sistema</string>
+    <string name="show_system_ram_usage_description">Mostra RAM usata dal sistema</string>
     <string name="show_bat_temperature">Mostra temperatura batteria</string>
     <string name="show_bat_temperature_description">Mostra temperatura batteria in °C e °F</string>
     <string name="overlay_position">Posizione overlay</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Migliora le prestazioni sui dispositivi più recenti. Supportato solo su GPU Vulkan 1.3+.</string>
     <string name="use_sync_core">Sincronizza velocità core</string>
-    <string name="use_sync_core_description">Sincronizza la velocità del core con la percentuale massima di velocità per migliorare le prestazioni senza alterare la velocità effettiva del gioco.</string>
+    <string name="use_sync_core_description">Sincronizza la velocità del core alla percentuale massima per migliorare le prestazioni senza alterare la velocità effettiva del gioco.</string>
     <string name="use_auto_stub">Usa Auto Stub</string>
     <string name="use_auto_stub_description">Aggiunge automaticamente servizi e funzioni mancanti. Può migliorare la compatibilità ma causare crash e problemi di stabilità.</string>
     <string name="uninstall_firmware">Disinstalla firmware</string>
@@ -90,9 +87,8 @@
     <!-- Backend shader -->
     <string name="shader_backend">Backend shader</string>
     <string name="shader_backend_description">Scegli come compilare gli shader</string>
-    <string name="shader_backend_glsl">Universale</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- Emulazione NVDEC -->
     <string name="nvdec_emulation">Emulazione NVDEC</string>
@@ -398,7 +394,7 @@
     <string name="renderer_force_max_clock">Forza clock massimi (solo Adreno)</string>
     <string name="renderer_force_max_clock_description">Forza la GPU a girare col massimo clock possibile (i vincoli alla temperatura saranno comunque applicati)</string>
     <string name="renderer_asynchronous_shaders">Usa shaders asincrone</string>
-    <string name="renderer_asynchronous_shaders_description">Compila gli shader in modo asincrono. Può ridurre gli scatti, ma può anche causare glitch grafici.</string>
+    <string name="renderer_asynchronous_shaders_description">Compila le shader in modo asincrone, riducendo lo stutter. Può causare glitch grafici.</string>
     <string name="renderer_reactive_flushing">Abilita il Reactive Flushing</string>
     <string name="renderer_reactive_flushing_description">Migliora l\'accuratezza della grafica in alcuni giochi, al costo delle performance.</string>
     <string name="use_disk_shader_cache">Usa la cache delle shader</string>
diff --git a/src/android/app/src/main/res/values-ja/strings.xml b/src/android/app/src/main/res/values-ja/strings.xml
index 8314382285..3ab0e79c10 100644
--- a/src/android/app/src/main/res/values-ja/strings.xml
+++ b/src/android/app/src/main/res/values-ja/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">通知が許可されていません!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(強化)</string>
-    <string name="skipping_fps_suffix">(スキップ)</string>
-    <string name="system_info_label">システム:</string>
     <string name="show_stats_overlay">パフォーマンス統計オーバーレイを表示</string>
     <string name="stats_overlay_customization">カスタマイズ</string>
     <string name="stats_overlay_items">表示項目</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">速度表示</string>
     <string name="show_speed_description">現在のエミュレーション速度を表示</string>
     <string name="show_app_ram_usage">アプリRAM使用量</string>
-    <string name="show_app_ram_usage_description">エミュレーターが使用しているRAMの量を表示</string>
+    <string name="show_app_ram_usage_description">エミュレータのRAM使用量を表示</string>
     <string name="show_system_ram_usage">システムRAM使用量</string>
-    <string name="show_system_ram_usage_description">システムが使用しているRAMの量を表示</string>
+    <string name="show_system_ram_usage_description">システムのRAM使用量を表示</string>
     <string name="show_bat_temperature">バッテリー温度</string>
     <string name="show_bat_temperature_description">バッテリー温度を表示(℃/℉)</string>
     <string name="overlay_position">オーバーレイ位置</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + 頂点入力動的状態</string>
     <string name="dyna_state3_description">新しいデバイスでパフォーマンスを向上させます。Vulkan 1.3+ GPUでのみサポートされています。</string>
     <string name="use_sync_core">コア速度の同期</string>
-    <string name="use_sync_core_description">コアの速度を最大速度パーセンテージに同期させ、ゲームの実際の速度を変えずにパフォーマンスを向上させます。</string>
+    <string name="use_sync_core_description">コアの動作速度を最大速度パーセンテージに同期させ、ゲームの実際の速度を変更することなくパフォーマンスを向上させます。</string>
     <string name="use_auto_stub">自動スタブを使用</string>
     <string name="use_auto_stub_description">不足しているサービスや機能を自動的にスタブします。互換性が向上する可能性がありますが、クラッシュや安定性の問題を引き起こす可能性があります。</string>
     <string name="uninstall_firmware">ファームウェアをアンインストール</string>
@@ -90,9 +87,8 @@
     <!-- Shader Backend -->
     <string name="shader_backend">シェーダーバックエンド</string>
     <string name="shader_backend_description">シェーダーのコンパイル方法</string>
-    <string name="shader_backend_glsl">ユニバーサル</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- NVDEC Emulation -->
     <string name="nvdec_emulation">NVDECエミュレーション</string>
@@ -360,7 +356,7 @@
     <string name="renderer_force_max_clock">最大クロックを強制 (Adrenoのみ)</string>
     <string name="renderer_force_max_clock_description">GPUを最大限可能な周波数で動作させます (過熱制限は引き続き適用されます)。</string>
     <string name="renderer_asynchronous_shaders">非同期シェーダー</string>
-    <string name="renderer_asynchronous_shaders_description">シェーダーを非同期でコンパイルします。これによりカクつきが減る可能性がありますが、グラフィックの不具合が発生する場合もあります。</string>
+    <string name="renderer_asynchronous_shaders_description">シェーダーを非同期でコンパイルします。コマ落ちが軽減されますが、不具合が発生する可能性があります。</string>
     <string name="renderer_reactive_flushing">即時書き込み</string>
     <string name="renderer_reactive_flushing_description">一部のゲームにおいて、パフォーマンスを犠牲にしながらも、レンダリング精度を向上させます。</string>
     <string name="use_disk_shader_cache">ディスクシェーダーキャッシュ</string>
diff --git a/src/android/app/src/main/res/values-ko/strings.xml b/src/android/app/src/main/res/values-ko/strings.xml
index ede1e59d92..54df91f2a7 100644
--- a/src/android/app/src/main/res/values-ko/strings.xml
+++ b/src/android/app/src/main/res/values-ko/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">알림 권한이 부여되지 않았습니다!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(향상됨)</string>
-    <string name="skipping_fps_suffix">(건너뜀)</string>
-    <string name="system_info_label">시스템:</string>
     <string name="show_stats_overlay">성능 통계 오버레이 표시</string>
     <string name="stats_overlay_customization">사용자 지정</string>
     <string name="stats_overlay_items">표시 항목</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + 정점 입력 동적 상태</string>
     <string name="dyna_state3_description">최신 기기에서 성능을 향상시킵니다. Vulkan 1.3+ GPU에서만 지원됩니다.</string>
     <string name="use_sync_core">코어 속도 동기화</string>
-    <string name="use_sync_core_description">코어 틱 속도를 최대 속도 백분율과 동기화하여 게임의 실제 속도를 변경하지 않고 성능을 향상시킵니다.</string>
+    <string name="use_sync_core_description">코어 틱 속도를 최대 속도 백분율로 동기화하여 게임의 실제 속도를 변경하지 않고 성능을 개선합니다.</string>
     <string name="use_auto_stub">자동 스텁 사용</string>
     <string name="use_auto_stub_description">누락된 서비스와 기능을 자동으로 스텁합니다. 호환성을 개선할 수 있지만 충돌과 안정성 문제를 일으킬 수 있습니다.</string>
     <string name="uninstall_firmware">펌웨어 제거</string>
@@ -90,9 +87,9 @@
     <!-- Shader Backend -->
     <string name="shader_backend">셰이더 백엔드</string>
     <string name="shader_backend_description">셰이더 컴파일 방식 선택</string>
-    <string name="shader_backend_glsl">범용</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
+
     <!-- NVDEC Emulation -->
     <string name="nvdec_emulation">NVDEC 에뮬레이션</string>
     <string name="nvdec_emulation_description">비디오 디코딩 처리 방식 선택</string>
@@ -405,7 +402,7 @@
     <string name="renderer_force_max_clock">최대 클럭 강제 설정 (아드레노 전용)</string>
     <string name="renderer_force_max_clock_description">GPU가 가능한 최대 클럭으로 실행되도록 강제합니다 (열 제약 조건은 여전히 적용됩니다).</string>
     <string name="renderer_asynchronous_shaders">비동기 셰이더 사용</string>
-    <string name="renderer_asynchronous_shaders_description">셰이더를 비동기적으로 컴파일합니다. 이로 인해 끊김 현상이 줄어들 수 있지만 그래픽 오류가 발생할 수도 있습니다.</string>
+    <string name="renderer_asynchronous_shaders_description">셰이더를 비동기식으로 컴파일하여 끊김 현상을 줄이지만 글리치가 발생할 수 있습니다.</string>
     <string name="renderer_reactive_flushing">반응형 플러싱 사용</string>
     <string name="renderer_reactive_flushing_description">일부 게임에서 성능 저하를 감수하고 렌더링 정확도를 향상합니다.</string>
     <string name="use_disk_shader_cache">디스크 셰이더 캐시</string>
diff --git a/src/android/app/src/main/res/values-nb/strings.xml b/src/android/app/src/main/res/values-nb/strings.xml
index 22792fb302..1852e4c55c 100644
--- a/src/android/app/src/main/res/values-nb/strings.xml
+++ b/src/android/app/src/main/res/values-nb/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Varslingstillatelse ikke gitt!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Forbedret)</string>
-    <string name="skipping_fps_suffix">(Hopp)</string>
-    <string name="system_info_label">System:</string>
     <string name="show_stats_overlay">Vis ytelsesstatistikkoverlay</string>
     <string name="stats_overlay_customization">Tilpasning</string>
     <string name="stats_overlay_items">Synlighet</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Vis hastighet</string>
     <string name="show_speed_description">Vis emuleringshastighet i prosent</string>
     <string name="show_app_ram_usage">Vis appminnebruk</string>
-    <string name="show_app_ram_usage_description">Vis hvor mye RAM emulatoren bruker</string>
+    <string name="show_app_ram_usage_description">Vis RAM-bruk av emulatoren</string>
     <string name="show_system_ram_usage">Vis systemminnebruk</string>
-    <string name="show_system_ram_usage_description">Vis hvor mye RAM systemet bruker</string>
+    <string name="show_system_ram_usage_description">Vis systemets RAM-bruk</string>
     <string name="show_bat_temperature">Vis batteritemperatur</string>
     <string name="show_bat_temperature_description">Vis batteritemperatur i Celsius og Fahrenheit</string>
     <string name="overlay_position">Overlayposisjon</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Forbedrer ytelsen på nyere enheter. Støttes kun på Vulkan 1.3+ GPU-er.</string>
     <string name="use_sync_core">Synkroniser kjernespeed</string>
-    <string name="use_sync_core_description">Synkroniser kjernens hastighet med maksimal hastighetsprosent for å forbedre ytelsen uten å endre spillets faktiske hastighet.</string>
+    <string name="use_sync_core_description">Synkroniser kjernetaktfrekvensen til maksimal hastighetsprosent for å forbedre ytelsen uten å endre spillets faktiske hastighet.</string>
     <string name="use_auto_stub">Bruk Auto Stub</string>
     <string name="use_auto_stub_description">Automatisk stubber manglende tjenester og funksjoner. Kan forbedre kompatibilitet, men kan forårsake krasj og stabilitetsproblemer.</string>
     <string name="uninstall_firmware">Avinstaller firmware</string>
@@ -90,9 +87,8 @@
     <!-- Shader-backend -->
     <string name="shader_backend">Shader-backend</string>
     <string name="shader_backend_description">Velg hvordan shadere kompileres</string>
-    <string name="shader_backend_glsl">Universell</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- NVDEC-emulering -->
     <string name="nvdec_emulation">NVDEC-emulering</string>
@@ -332,7 +328,7 @@
     <string name="renderer_force_max_clock">Tving fram maksimal klokkefrekvens (kun Adreno)</string>
     <string name="renderer_force_max_clock_description">Tvinger GPU-en til å kjøre med maksimal klokkefrekvens (termiske begrensninger vil fortsatt gjelde).</string>
     <string name="renderer_asynchronous_shaders">Bruk asynkrone shaders</string>
-    <string name="renderer_asynchronous_shaders_description">Kompilerer shadere asynkront. Dette kan redusere rykk, men kan også forårsake grafiske feil.</string>
+    <string name="renderer_asynchronous_shaders_description">Kompilerer shaders asynkront, noe som reduserer hakking, men kan føre til feil.</string>
     <string name="renderer_reactive_flushing">Bruk reaktiv spyling</string>
     <string name="renderer_reactive_flushing_description">Forbedrer gjengivelsesnøyaktigheten i enkelte spill på bekostning av ytelsen.</string>
     <string name="use_disk_shader_cache">Disk shader-hurtigbuffer</string>
diff --git a/src/android/app/src/main/res/values-pl/strings.xml b/src/android/app/src/main/res/values-pl/strings.xml
index 55702b21ce..679ca30114 100644
--- a/src/android/app/src/main/res/values-pl/strings.xml
+++ b/src/android/app/src/main/res/values-pl/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Nie zezwolono na powiadomienia!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Ulepszony)</string>
-    <string name="skipping_fps_suffix">(Pomijanie)</string>
-    <string name="system_info_label">System:</string>
     <string name="show_stats_overlay">Pokaż nakładkę statystyk wydajności</string>
     <string name="stats_overlay_customization">Dostosowanie</string>
     <string name="stats_overlay_items">Widoczność</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Pokaż prędkość</string>
     <string name="show_speed_description">Wyświetla procentową prędkość emulacji</string>
     <string name="show_app_ram_usage">Pokaż użycie RAM aplikacji</string>
-    <string name="show_app_ram_usage_description">Wyświetl ilość pamięci RAM używanej przez emulator</string>
+    <string name="show_app_ram_usage_description">Wyświetla ilość RAM używanego przez emulator</string>
     <string name="show_system_ram_usage">Pokaż użycie RAM systemu</string>
-    <string name="show_system_ram_usage_description">Wyświetl ilość pamięci RAM używanej przez system</string>
+    <string name="show_system_ram_usage_description">Wyświetla ilość RAM używanego przez system</string>
     <string name="show_bat_temperature">Pokaż temperaturę baterii</string>
     <string name="show_bat_temperature_description">Wyświetla temperaturę baterii w °C i °F</string>
     <string name="overlay_position">Pozycja nakładki</string>
@@ -90,9 +87,8 @@
     <!-- Backend shaderów -->
     <string name="shader_backend">Backend shaderów</string>
     <string name="shader_backend_description">Wybierz metodę kompilacji shaderów.</string>
-    <string name="shader_backend_glsl">Uniwersalny</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- Emulacja NVDEC -->
     <string name="nvdec_emulation">Emulacja NVDEC</string>
@@ -332,7 +328,7 @@
     <string name="renderer_force_max_clock">Maksymalne taktowanie GPU (układy Adreno)</string>
     <string name="renderer_force_max_clock_description">Wymusza uruchomienie maksymalnego taktowania układu graficznego (zabezpieczenia termiczne będą dalej aktywne).</string>
     <string name="renderer_asynchronous_shaders">Wyłącz synchronizację shaderów</string>
-    <string name="renderer_asynchronous_shaders_description">Kompiluje shadery asynchronicznie. Może to zmniejszyć zacinanie, ale może też powodować błędy graficzne.</string>
+    <string name="renderer_asynchronous_shaders_description">Kompiluj oświetlenie bez synchronizacji, poprawi wydajność ale może powodować błędy.</string>
     <string name="renderer_reactive_flushing">Użyj spłukiwania reaktywnego - reactive flushing</string>
     <string name="renderer_reactive_flushing_description">Poprawia jakość renderowania w kilku grach, kosztem wydajności.</string>
     <string name="use_disk_shader_cache">Pamięć podręczna shaderów</string>
diff --git a/src/android/app/src/main/res/values-pt-rBR/strings.xml b/src/android/app/src/main/res/values-pt-rBR/strings.xml
index 8ea90ceb61..bf24f1b367 100644
--- a/src/android/app/src/main/res/values-pt-rBR/strings.xml
+++ b/src/android/app/src/main/res/values-pt-rBR/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Acesso às notificações não concedido!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Aprimorado)</string>
-    <string name="skipping_fps_suffix">(Pular)</string>
-    <string name="system_info_label">Sistema:</string>
     <string name="show_stats_overlay">Mostrar sobreposição de estatísticas de desempenho</string>
     <string name="stats_overlay_customization">Personalização</string>
     <string name="stats_overlay_items">Visibilidade</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Mostrar velocidade</string>
     <string name="show_speed_description">Exibir porcentagem de velocidade de emulação</string>
     <string name="show_app_ram_usage">Mostrar uso de RAM do app</string>
-    <string name="show_app_ram_usage_description">Mostrar a quantidade de RAM que o emulador está usando</string>
+    <string name="show_app_ram_usage_description">Exibir quantidade de RAM usada pelo emulador</string>
     <string name="show_system_ram_usage">Mostrar uso de RAM do sistema</string>
-    <string name="show_system_ram_usage_description">Mostrar a quantidade de RAM usada pelo sistema</string>
+    <string name="show_system_ram_usage_description">Exibir quantidade de RAM usada pelo sistema</string>
     <string name="show_bat_temperature">Mostrar temperatura da bateria</string>
     <string name="show_bat_temperature_description">Exibir temperatura da bateria em Celsius e Fahrenheit</string>
     <string name="overlay_position">Posição da sobreposição</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Melhora desempenho em dispositivos mais novos. Suportado apenas em GPUs Vulkan 1.3+.</string>
     <string name="use_sync_core">Sincronizar velocidade do núcleo</string>
-    <string name="use_sync_core_description">Sincroniza a velocidade do núcleo com a porcentagem máxima de velocidade para melhorar o desempenho sem alterar a velocidade real do jogo.</string>
+    <string name="use_sync_core_description">Sincroniza a velocidade do núcleo com a porcentagem máxima para melhorar desempenho sem alterar a velocidade real do jogo.</string>
     <string name="use_auto_stub">Usar Auto Stub</string>
     <string name="use_auto_stub_description">Preenche automaticamente serviços e funções ausentes. Pode melhorar compatibilidade mas causar crashes e problemas de estabilidade.</string>
     <string name="uninstall_firmware">Desinstalar firmware</string>
@@ -90,9 +87,8 @@
     <!-- Backend de shader -->
     <string name="shader_backend">Backend de shader</string>
     <string name="shader_backend_description">Define como shaders são compilados</string>
-    <string name="shader_backend_glsl">Universal</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- Emulação NVDEC -->
     <string name="nvdec_emulation">Emulação NVDEC</string>
@@ -414,7 +410,7 @@
     <string name="renderer_force_max_clock">Forçar velocidade máxima (somente Adreno)</string>
     <string name="renderer_force_max_clock_description">Força a GPU a rodar na velocidade máxima (restrições térmicas serão aplicadas)</string>
     <string name="renderer_asynchronous_shaders">Usar shaders assíncronos </string>
-    <string name="renderer_asynchronous_shaders_description">Compila shaders de forma assíncrona. Isso pode reduzir engasgos, mas também pode introduzir falhas gráficas.</string>
+    <string name="renderer_asynchronous_shaders_description">Compila os shaders de forma assíncrona, reduzindo engasgos, mas pode apresentar problemas.</string>
     <string name="renderer_reactive_flushing">Usar flushing reativo</string>
     <string name="renderer_reactive_flushing_description">Melhora a precisão da renderização em alguns jogos ao custo de desempenho.</string>
     <string name="use_disk_shader_cache">Cache de shaders em disco</string>
diff --git a/src/android/app/src/main/res/values-pt-rPT/strings.xml b/src/android/app/src/main/res/values-pt-rPT/strings.xml
index 2006f4201a..3f3f840e0f 100644
--- a/src/android/app/src/main/res/values-pt-rPT/strings.xml
+++ b/src/android/app/src/main/res/values-pt-rPT/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Permissões de notificação não permitidas </string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Melhorado)</string>
-    <string name="skipping_fps_suffix">(Saltar)</string>
-    <string name="system_info_label">Sistema:</string>
     <string name="show_stats_overlay">Mostrar Overlay de Desempenho</string>
     <string name="stats_overlay_customization">Personalização</string>
     <string name="stats_overlay_items">Visibilidade</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Mostrar Velocidade</string>
     <string name="show_speed_description">Exibir percentual de velocidade</string>
     <string name="show_app_ram_usage">Mostrar RAM do App</string>
-    <string name="show_app_ram_usage_description">Mostrar a quantidade de RAM que o emulador está a utilizar</string>
+    <string name="show_app_ram_usage_description">Exibir uso de RAM pelo emulador</string>
     <string name="show_system_ram_usage">Mostrar RAM do Sistema</string>
-    <string name="show_system_ram_usage_description">Mostrar a quantidade de RAM utilizada pelo sistema</string>
+    <string name="show_system_ram_usage_description">Exibir uso de RAM pelo sistema</string>
     <string name="show_bat_temperature">Mostrar Temp. Bateria</string>
     <string name="show_bat_temperature_description">Exibir temperatura em Celsius/Fahrenheit</string>
     <string name="overlay_position">Posição do Overlay</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Melhora o desempenho em dispositivos mais recentes. Suportado apenas em GPUs Vulkan 1.3+.</string>
     <string name="use_sync_core">Sincronizar velocidade do núcleo</string>
-    <string name="use_sync_core_description">Sincroniza a velocidade do núcleo com a percentagem máxima de velocidade para melhorar o desempenho sem alterar a velocidade real do jogo.</string>
+    <string name="use_sync_core_description">Sincroniza a velocidade do núcleo com a percentagem máxima para melhorar o desempenho sem alterar a velocidade real do jogo.</string>
     <string name="use_auto_stub">Usar Auto Stub</string>
     <string name="use_auto_stub_description">Preenche automaticamente serviços e funções em falta. Pode melhorar a compatibilidade mas causar crashes e problemas de estabilidade.</string>
     <string name="uninstall_firmware">Desinstalar firmware</string>
@@ -90,9 +87,8 @@
     <!-- Backend de Shader -->
     <string name="shader_backend">Backend de Shader</string>
     <string name="shader_backend_description">Método de compilação de shaders.</string>
-    <string name="shader_backend_glsl">Universal</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- Emulação NVDEC -->
     <string name="nvdec_emulation">Emulação NVDEC</string>
@@ -414,7 +410,7 @@
     <string name="renderer_force_max_clock">Força velocidade máxima (Adreno only)</string>
     <string name="renderer_force_max_clock_description">Força o GPU a correr à velocidade máxima (restrições térmicas serão aplicadas)</string>
     <string name="renderer_asynchronous_shaders">Usa shaders assíncronos </string>
-    <string name="renderer_asynchronous_shaders_description">Compila shaders de forma assíncrona. Isto pode reduzir engasgadelas, mas também pode introduzir falhas gráficas.</string>
+    <string name="renderer_asynchronous_shaders_description">Compila os shaders de forma assíncrona, reduzindo travamentos, mas pode apresentar problemas.</string>
     <string name="renderer_reactive_flushing">Usar flushing reativo</string>
     <string name="renderer_reactive_flushing_description">Melhora a precisão da renderização em alguns jogos ao custo de desempenho.</string>
     <string name="use_disk_shader_cache">Cache de shaders em disco</string>
diff --git a/src/android/app/src/main/res/values-ru/strings.xml b/src/android/app/src/main/res/values-ru/strings.xml
index b16dce419c..f7e5487e8f 100644
--- a/src/android/app/src/main/res/values-ru/strings.xml
+++ b/src/android/app/src/main/res/values-ru/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Вы не предоставили разрешение на уведомления!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Улучшенный)</string>
-    <string name="skipping_fps_suffix">(Пропуск)</string>
-    <string name="system_info_label">Система:</string>
     <string name="show_stats_overlay">Показать оверлей статистики</string>
     <string name="stats_overlay_customization">Настройки</string>
     <string name="stats_overlay_items">Видимость</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Показать скорость</string>
     <string name="show_speed_description">Текущая скорость эмуляции в %</string>
     <string name="show_app_ram_usage">Показать RAM эмулятора</string>
-    <string name="show_app_ram_usage_description">Показать объем оперативной памяти, используемой эмулятором</string>
+    <string name="show_app_ram_usage_description">Использование RAM эмулятором</string>
     <string name="show_system_ram_usage">Показать RAM системы</string>
-    <string name="show_system_ram_usage_description">Показать объем оперативной памяти, используемой системой</string>
+    <string name="show_system_ram_usage_description">Использование RAM системой</string>
     <string name="show_bat_temperature">Показать температуру батареи</string>
     <string name="show_bat_temperature_description">Текущая температура батареи (°C/°F)</string>
     <string name="overlay_position">Позиция оверлея</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + Динамическое состояние ввода вершин</string>
     <string name="dyna_state3_description">Улучшает производительность на новых устройствах. Поддерживается только GPU с Vulkan 1.3+.</string>
     <string name="use_sync_core">Синхронизация скорости ядра</string>
-    <string name="use_sync_core_description">Синхронизирует скорость ядра с максимальным процентом скорости для улучшения производительности без изменения фактической скорости игры.</string>
+    <string name="use_sync_core_description">Синхронизирует скорость тактов ядра с максимальным процентом скорости для повышения производительности без изменения фактической скорости игры.</string>
     <string name="use_auto_stub">Использовать Auto Stub</string>
     <string name="use_auto_stub_description">Автоматически заглушает отсутствующие сервисы и функции. Может улучшить совместимость, но вызывать сбои и проблемы стабильности.</string>
     <string name="uninstall_firmware">Удалить прошивку</string>
@@ -90,9 +87,8 @@
     <!-- Shader Backend -->
     <string name="shader_backend">Шейдерный бэкенд</string>
     <string name="shader_backend_description">Метод компиляции шейдеров</string>
-    <string name="shader_backend_glsl">Универсальный</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- NVDEC Emulation -->
     <string name="nvdec_emulation">Эмуляция NVDEC</string>
@@ -415,7 +411,7 @@
     <string name="renderer_force_max_clock">Принудительно заставить максимальную тактовую частоту (только для Adreno)</string>
     <string name="renderer_force_max_clock_description">Заставляет ГП работать на максимально возможных тактовых частотах (тепловые ограничения все равно будут применяться).</string>
     <string name="renderer_asynchronous_shaders">Использовать асинхронные шейдеры</string>
-    <string name="renderer_asynchronous_shaders_description">Компилирует шейдеры асинхронно. Это может уменьшить подтормаживания, но также может вызвать графические артефакты.</string>
+    <string name="renderer_asynchronous_shaders_description">Компиляция шейдеров происходит асинхронно, что уменьшает зависания, но может привести к появлению багов.</string>
     <string name="renderer_reactive_flushing">Реактивная очистка</string>
     <string name="renderer_reactive_flushing_description">Повышение точности рендеринга в некоторых играх за счет снижения производительности.</string>
     <string name="use_disk_shader_cache">Кэш шейдеров на диске</string>
diff --git a/src/android/app/src/main/res/values-uk/strings.xml b/src/android/app/src/main/res/values-uk/strings.xml
index 369f116308..b536c81e29 100644
--- a/src/android/app/src/main/res/values-uk/strings.xml
+++ b/src/android/app/src/main/res/values-uk/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Ви не надали дозвіл сповіщень!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Покращений)</string>
-    <string name="skipping_fps_suffix">(Пропуск)</string>
-    <string name="system_info_label">Система:</string>
     <string name="show_stats_overlay">Показати накладання статистики</string>
     <string name="stats_overlay_customization">Налаштування</string>
     <string name="stats_overlay_items">Видимість</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Показати швидкість</string>
     <string name="show_speed_description">Відображати швидкість емуляції</string>
     <string name="show_app_ram_usage">Показати використання RAM</string>
-    <string name="show_app_ram_usage_description">Показати обсяг оперативної пам’яті, яку використовує емулятор</string>
+    <string name="show_app_ram_usage_description">Відображати використання пам`яті емулятором</string>
     <string name="show_system_ram_usage">Показати системну RAM</string>
-    <string name="show_system_ram_usage_description">Показати обсяг оперативної пам’яті, яку використовує система</string>
+    <string name="show_system_ram_usage_description">Відображати використання пам`яті системою</string>
     <string name="show_bat_temperature">Показати температуру батареї</string>
     <string name="show_bat_temperature_description">Відображати температуру батареї</string>
     <string name="overlay_position">Позиція накладання</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + Динамічний стан вводу вершин</string>
     <string name="dyna_state3_description">Покращує продуктивність на нових пристроях. Підтримується лише GPU з Vulkan 1.3+.</string>
     <string name="use_sync_core">Синхронізувати швидкість ядра</string>
-    <string name="use_sync_core_description">Синхронізує швидкість ядра з максимальним відсотком швидкості для покращення продуктивності без зміни реальної швидкості гри.</string>
+    <string name="use_sync_core_description">Синхронізує швидкість тактів ядра з максимальним відсотком швидкості для покращення продуктивності без зміни фактичної швидкості гри.</string>
     <string name="use_auto_stub">Використовувати Auto Stub</string>
     <string name="use_auto_stub_description">Автоматично замінює відсутні сервіси та функції. Може покращити сумісність, але викликати збої та проблеми стабільності.</string>
     <string name="uninstall_firmware">Видалити прошивку</string>
@@ -90,9 +87,8 @@
     <!-- Shader Backend -->
     <string name="shader_backend">Вершинний шейдер</string>
     <string name="shader_backend_description">Спосіб компіляції шейдерів</string>
-    <string name="shader_backend_glsl">Універсальний</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- NVDEC Emulation -->
     <string name="nvdec_emulation">Емуляція NVDEC</string>
@@ -292,45 +288,17 @@
     <string name="our_eternal_gratitude">Наша нескінченна вдячність</string>
     <string name="are_you_interested">Ви зацікавлені?</string>
 
-    <string name="frame_limit_enable">Обмеження швидкості</string>
-    <string name="frame_limit_enable_description">Обмежує швидкість емуляції у відсотках від нормальної.</string>
-    <string name="frame_limit_slider">Відсоток обмеження</string>
-    <string name="frame_limit_slider_description">Вказує відсоток обмеження швидкості. 100% — нормальна швидкість.</string>
-    <string name="cpu_backend">Режим ЦП</string>
+    <string name="frame_limit_slider">Обмеження відсотка швидкості</string>
     <string name="cpu_accuracy">Точність ЦП</string>
-    <string name="value_with_units">%1$s%2$s</string>
-
-    <!-- Системні налаштування -->
-    <string name="device_name">Назва пристрою</string>
-    <string name="use_docked_mode">Режим док-станції</string>
-    <string name="use_docked_mode_description">Збільшує роздільну здатність, знижуючи продуктивність. У портативному режимі роздільна здатність нижча, а продуктивність вища.</string>
-    <string name="emulated_region">Регіон</string>
-    <string name="emulated_language">Мова</string>
-    <string name="select_rtc_date">Вибрати дату</string>
-    <string name="select_rtc_time">Вибрати час</string>
-    <string name="use_custom_rtc">Свій RTC</string>
-    <string name="use_custom_rtc_description">Дозволяє встановити власний час, відмінний від системного.</string>
-    <string name="set_custom_rtc">Встановити RTC</string>
+    <string name="emulated_region">Емульований регіон</string>
+    <string name="emulated_language">Емульована мова</string>
+    <string name="use_custom_rtc">Користувацький RTC</string>
     <!-- Graphics settings strings -->
     <string name="renderer_accuracy">Рівень точності</string>
-    <string name="renderer_resolution">Роздільна здатність (Портативний/Док)</string>
     <string name="renderer_vsync">Режим верт. синхронізації</string>
-    <string name="renderer_screen_layout">Орієнтація</string>
-    <string name="renderer_aspect_ratio">Співвідношення</string>
-    <string name="renderer_scaling_filter">Фільтр масштабування</string>
-    <string name="fsr_sharpness">Різкість FSR</string>
-    <string name="fsr_sharpness_description">Визначає різкість зображення при використанні FSR.</string>
-    <string name="renderer_anti_aliasing">Згладжування</string>
-    <string name="renderer_force_max_clock">Максимальна тактова частота (тільки Adreno)</string>
-    <string name="renderer_force_max_clock_description">Змушує ГП працювати на максимальній тактовій частоті.</string>
-    <string name="renderer_asynchronous_shaders">Асинхронні шейдери</string>
-    <string name="renderer_asynchronous_shaders_description">Компілює шейдери асинхронно. Це може зменшити затримки, але також може спричинити графічні помилки.</string>
-    <string name="renderer_reactive_flushing">Реактивне очищення</string>
-    <string name="renderer_reactive_flushing_description">Покращує точність рендерингу в деяких іграх.</string>
-    <string name="use_disk_shader_cache">Кеш шейдерів</string>
-    <string name="use_disk_shader_cache_description">Зменшує затримки шляхом збереження шейдерів.</string>
-    <string name="anisotropic_filtering">Анізотропне фільтрування</string>
-    <string name="anisotropic_filtering_description">Покращує якість текстур під кутом.</string>
+    <string name="renderer_force_max_clock">Примусово змусити максимальну тактову частоту (тільки для Adreno)</string>
+    <string name="renderer_force_max_clock_description">Змушує ГП працювати на максимально можливих тактових частотах (теплові обмеження все одно будуть застосовуватися).</string>
+    <string name="renderer_asynchronous_shaders">Використовувати асинхронні шейдери</string>
     <!-- Debug settings strings -->
     <string name="cpu">ЦП</string>
     <string name="renderer_api">API</string>
diff --git a/src/android/app/src/main/res/values-vi/strings.xml b/src/android/app/src/main/res/values-vi/strings.xml
index 475b379b64..a1d4318d79 100644
--- a/src/android/app/src/main/res/values-vi/strings.xml
+++ b/src/android/app/src/main/res/values-vi/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">Ứng dụng không được cấp quyền thông báo!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Nâng cao)</string>
-    <string name="skipping_fps_suffix">(Bỏ qua)</string>
-    <string name="system_info_label">Hệ thống:</string>
     <string name="show_stats_overlay">Hiển thị thống kê hiệu suất</string>
     <string name="stats_overlay_customization">Tùy chỉnh</string>
     <string name="stats_overlay_items">Hiển thị</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">Hiển thị tốc độ</string>
     <string name="show_speed_description">Hiển thị phần trăm tốc độ giả lập</string>
     <string name="show_app_ram_usage">Hiển thị RAM ứng dụng</string>
-    <string name="show_app_ram_usage_description">Hiển thị lượng RAM mà trình giả lập đang sử dụng</string>
+    <string name="show_app_ram_usage_description">Hiển thị lượng RAM sử dụng bởi giả lập</string>
     <string name="show_system_ram_usage">Hiển thị RAM hệ thống</string>
-    <string name="show_system_ram_usage_description">Hiển thị lượng RAM được hệ thống sử dụng</string>
+    <string name="show_system_ram_usage_description">Hiển thị lượng RAM sử dụng bởi hệ thống</string>
     <string name="show_bat_temperature">Hiển thị nhiệt độ pin</string>
     <string name="show_bat_temperature_description">Hiển thị nhiệt độ pin (Celsius/Fahrenheit)</string>
     <string name="overlay_position">Vị trí overlay</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + Trạng thái động đầu vào đỉnh</string>
     <string name="dyna_state3_description">Cải thiện hiệu suất trên các thiết bị mới hơn. Chỉ được hỗ trợ trên GPU Vulkan 1.3+.</string>
     <string name="use_sync_core">Đồng bộ tốc độ lõi</string>
-    <string name="use_sync_core_description">Đồng bộ tốc độ lõi với tỷ lệ phần trăm tốc độ tối đa để cải thiện hiệu suất mà không làm thay đổi tốc độ thực tế của trò chơi.</string>
+    <string name="use_sync_core_description">Đồng bộ tốc độ xung nhịp lõi với phần trăm tốc độ tối đa để cải thiện hiệu suất mà không thay đổi tốc độ thực tế của trò chơi.</string>
     <string name="use_auto_stub">Sử dụng Auto Stub</string>
     <string name="use_auto_stub_description">Tự động thay thế các dịch vụ và chức năng bị thiếu. Có thể cải thiện khả năng tương thích nhưng gây ra sự cố và vấn đề ổn định.</string>
     <string name="uninstall_firmware">Gỡ cài đặt firmware</string>
@@ -90,9 +87,8 @@
     <!-- Backend Shader -->
     <string name="shader_backend">Backend Shader</string>
     <string name="shader_backend_description">Chọn cách biên dịch shader</string>
-    <string name="shader_backend_glsl">Đa năng</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- Giả lập NVDEC -->
     <string name="nvdec_emulation">Giả lập NVDEC</string>
@@ -332,7 +328,7 @@
     <string name="renderer_force_max_clock">Buộc chạy ở xung nhịp tối đa (chỉ Adreno)</string>
     <string name="renderer_force_max_clock_description">Buộc GPU hoạt động ở xung nhịp tối đa có thể (ràng buộc nhiệt độ vẫn sẽ được áp dụng).</string>
     <string name="renderer_asynchronous_shaders">Dùng các shader bất đồng bộ</string>
-    <string name="renderer_asynchronous_shaders_description">Biên dịch shader không đồng bộ. Điều này có thể giảm giật lag nhưng cũng có thể gây ra lỗi đồ họa.</string>
+    <string name="renderer_asynchronous_shaders_description">Biên dịch các shader bất đồng bộ, giảm tình trạng giật lag nhưng có thể gây ra các lỗi.</string>
     <string name="renderer_reactive_flushing">Bật xả tương ứng</string>
     <string name="renderer_reactive_flushing_description">Cải thiện độ chính xác hiển thị trong một số trò chơi nhưng đồng thời giảm hiệu suất chơi.</string>
     <string name="use_disk_shader_cache">Lưu bộ nhớ đệm shader trên ổ cứng</string>
diff --git a/src/android/app/src/main/res/values-zh-rCN/strings.xml b/src/android/app/src/main/res/values-zh-rCN/strings.xml
index a57b0def0c..0e69ca0c06 100644
--- a/src/android/app/src/main/res/values-zh-rCN/strings.xml
+++ b/src/android/app/src/main/res/values-zh-rCN/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">未授予通知权限!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(增强)</string>
-    <string name="skipping_fps_suffix">(跳过)</string>
-    <string name="system_info_label">系统:</string>
     <string name="show_stats_overlay">显示性能统计悬浮窗</string>
     <string name="stats_overlay_customization">自定义</string>
     <string name="stats_overlay_items">显示项</string>
@@ -23,9 +20,9 @@
     <string name="show_speed">显示速度</string>
     <string name="show_speed_description">显示当前模拟速度百分比</string>
     <string name="show_app_ram_usage">显示应用内存占用</string>
-    <string name="show_app_ram_usage_description">显示模拟器正在使用的内存量</string>
+    <string name="show_app_ram_usage_description">显示模拟器内存使用量</string>
     <string name="show_system_ram_usage">显示系统内存占用</string>
-    <string name="show_system_ram_usage_description">显示系统使用的内存量</string>
+    <string name="show_system_ram_usage_description">显示系统内存使用量</string>
     <string name="show_bat_temperature">显示电池温度</string>
     <string name="show_bat_temperature_description">显示当前电池温度(℃/℉)</string>
     <string name="overlay_position">悬浮窗位置</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + 顶点输入动态状态</string>
     <string name="dyna_state3_description">提高新设备上的性能。仅支持Vulkan 1.3+ GPU。</string>
     <string name="use_sync_core">同步核心速度</string>
-    <string name="use_sync_core_description">将核心速度与最大速度百分比同步,在不改变游戏实际速度的情况下提高性能。</string>
+    <string name="use_sync_core_description">将核心时钟速度同步到最大速度百分比以提高性能,而不改变游戏实际速度。</string>
     <string name="use_auto_stub">使用自动存根</string>
     <string name="use_auto_stub_description">自动补全缺失的服务和功能。可提高兼容性但可能导致崩溃和稳定性问题。</string>
     <string name="uninstall_firmware">卸载固件</string>
@@ -90,9 +87,8 @@
     <!-- 着色器后端 -->
     <string name="shader_backend">着色器后端</string>
     <string name="shader_backend_description">选择着色器编译方式</string>
-    <string name="shader_backend_glsl">通用</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- NVDEC模拟 -->
     <string name="nvdec_emulation">NVDEC模拟</string>
@@ -409,7 +405,7 @@
     <string name="renderer_force_max_clock">强制最大时钟 (仅限 Adreno)</string>
     <string name="renderer_force_max_clock_description">强制 GPU 以最大时钟运行 (仍被温控限制)。</string>
     <string name="renderer_asynchronous_shaders">使用异步着色器</string>
-    <string name="renderer_asynchronous_shaders_description">异步编译着色器。这可能会减少卡顿,但也可能会导致图形错误。</string>
+    <string name="renderer_asynchronous_shaders_description">异步编译着色器,减少卡顿,但可能引入故障。</string>
     <string name="renderer_reactive_flushing">启用反应性刷新</string>
     <string name="renderer_reactive_flushing_description">牺牲性能,提高某些游戏的渲染精度。</string>
     <string name="use_disk_shader_cache">磁盘着色器缓存</string>
diff --git a/src/android/app/src/main/res/values-zh-rTW/strings.xml b/src/android/app/src/main/res/values-zh-rTW/strings.xml
index 80a3a89c56..6449d2d554 100644
--- a/src/android/app/src/main/res/values-zh-rTW/strings.xml
+++ b/src/android/app/src/main/res/values-zh-rTW/strings.xml
@@ -7,9 +7,6 @@
     <string name="notification_permission_not_granted">未授予通知權限!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(增強)</string>
-    <string name="skipping_fps_suffix">(跳過)</string>
-    <string name="system_info_label">系統:</string>
     <string name="show_stats_overlay">顯示效能統計疊加層</string>
     <string name="stats_overlay_customization">自訂</string>
     <string name="stats_overlay_items">可見項目</string>
@@ -23,7 +20,7 @@
     <string name="show_speed">顯示速度</string>
     <string name="show_speed_description">顯示當前模擬速度百分比</string>
     <string name="show_app_ram_usage">顯示應用記憶體用量</string>
-    <string name="show_app_ram_usage_description">顯示模擬器正在使用的記憶體量</string>
+    <string name="show_app_ram_usage_description">顯示模擬器使用的記憶體量</string>
     <string name="show_system_ram_usage">顯示系統記憶體用量</string>
     <string name="show_system_ram_usage_description">顯示系統使用的記憶體量</string>
     <string name="show_bat_temperature">顯示電池溫度</string>
@@ -53,7 +50,7 @@
     <string name="dyna_state3">EDS3 + 頂點輸入動態狀態</string>
     <string name="dyna_state3_description">提高新裝置上的效能。僅支援Vulkan 1.3+ GPU。</string>
     <string name="use_sync_core">同步核心速度</string>
-    <string name="use_sync_core_description">將核心速度與最大速度百分比同步,在不改變遊戲實際速度的情況下提高效能。</string>
+    <string name="use_sync_core_description">將核心時脈速度同步到最大速度百分比以提高效能,而不改變遊戲實際速度。</string>
     <string name="use_auto_stub">使用自動存根</string>
     <string name="use_auto_stub_description">自動補全缺失的服務和功能。可提高相容性但可能導致崩潰和穩定性問題。</string>
     <string name="uninstall_firmware">解除安裝韌體</string>
@@ -90,9 +87,8 @@
     <!-- 著色器後端 -->
     <string name="shader_backend">著色器後端</string>
     <string name="shader_backend_description">選擇著色器的編譯與轉譯方式</string>
-    <string name="shader_backend_glsl">通用</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- NVDEC模擬 -->
     <string name="nvdec_emulation">NVDEC模擬</string>
@@ -410,7 +406,7 @@
     <string name="renderer_force_max_clock">強制最大時脈 (僅 Adreno)</string>
     <string name="renderer_force_max_clock_description">強制 GPU 以最大可能時脈執行 (熱溫限制仍被套用)。</string>
     <string name="renderer_asynchronous_shaders">使用非同步著色器</string>
-    <string name="renderer_asynchronous_shaders_description">非同步編譯著色器。這可能會減少卡頓,但也可能導致圖形錯誤。</string>
+    <string name="renderer_asynchronous_shaders_description">非同步編譯著色器,將會減少間斷,但可能會引入故障。</string>
     <string name="renderer_reactive_flushing">使用重新啟用排清</string>
     <string name="renderer_reactive_flushing_description">犧牲效能,以改善部分遊戲的轉譯準確度。</string>
     <string name="use_disk_shader_cache">磁碟著色器快取</string>
diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml
index cb108dc548..adaa67415d 100644
--- a/src/android/app/src/main/res/values/arrays.xml
+++ b/src/android/app/src/main/res/values/arrays.xml
@@ -87,14 +87,12 @@
 
     <string-array name="rendererShaderNames">
         <item>@string/shader_backend_glsl</item>
-        <item>@string/shader_backend_glasm</item>
         <item>@string/shader_backend_spirv</item>
     </string-array>
 
     <integer-array name="rendererShaderValues">
         <item>0</item>
         <item>1</item>
-        <item>2</item>
     </integer-array>
 
     <!-- VRAM USAGE MODE CHOICES -->
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index cb9930d0a3..427b2890ad 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -10,9 +10,6 @@
     <string name="notification_permission_not_granted">Notification permission not granted!</string>
 
     <!-- Stats Overlay settings -->
-    <string name="enhanced_fps_suffix">(Enhanced)</string>
-    <string name="skipping_fps_suffix">(Skipping)</string>
-    <string name="system_info_label">System:</string>
     <string name="show_stats_overlay">ShoW Performance Stats Overlay</string>
     <string name="stats_overlay_customization">Customization</string>
     <string name="stats_overlay_items">Visibility</string>
@@ -26,9 +23,9 @@
     <string name="show_speed">Show Speed</string>
     <string name="show_speed_description">Display current emulation speed percentage</string>
     <string name="show_app_ram_usage">Show App Memory Usage</string>
-    <string name="show_app_ram_usage_description">Display the amount of RAM the emulator is using</string>
+    <string name="show_app_ram_usage_description">Display the amount of RAM getting used by the emulator</string>
     <string name="show_system_ram_usage">Show System Memory Usage</string>
-    <string name="show_system_ram_usage_description">Display the amount of RAM used by the system</string>
+    <string name="show_system_ram_usage_description">Display the amount of RAM getting used by the system</string>
     <string name="show_bat_temperature">Show Battery Temperature</string>
     <string name="show_bat_temperature_description">Display current Battery temperature in Celsius and Fahrenheit</string>
     <string name="overlay_position">Overlay Position</string>
@@ -52,7 +49,7 @@
     <string name="dyna_state3">EDS3 + VertexInputDynamicState</string>
     <string name="dyna_state3_description">Improves performance on newer devices. Only supported on Vulkan 1.3+ GPUs.</string>
     <string name="use_sync_core">Synchronize Core Speed</string>
-    <string name="use_sync_core_description">Synchronize the core tick speed to the maximum speed percentage to improve performance without altering the game\'s actual speed.</string>
+    <string name="use_sync_core_description">Synchronize the core tick speed to the maximum speed percentage to improve performance without altering the games actual speed.</string>
     <string name="use_auto_stub">Use Auto Stub</string>
     <string name="use_auto_stub_description">Automatically stub missing services and functions. This may improve compatibility but can cause crashes and stability issues.</string>
     <string name="uninstall_firmware">Uninstall firmware</string>
@@ -67,9 +64,8 @@
     <!-- Shader Backend -->
     <string name="shader_backend">Shader Backend</string>
     <string name="shader_backend_description">Choose how shaders are compiled and translated for your GPU.</string>
-    <string name="shader_backend_glsl">Universal</string>
-    <string name="shader_backend_glasm">Mali</string>
-    <string name="shader_backend_spirv">Adreno/Xclipse</string>
+    <string name="shader_backend_glsl">GLSL</string>
+    <string name="shader_backend_spirv">SPIR-V</string>
 
     <!-- NVDEC Emulation -->
     <string name="nvdec_emulation">NVDEC Emulation</string>
@@ -329,7 +325,7 @@
     <string name="licenses_description">Projects that make eden for Android possible</string>
     <string name="build">Build</string>
     <string name="user_data">User data</string>
-    <string name="user_data_description">Import/export all app data.\n\nWhen importing user data, all existing user data will be deleted!\n\nImporting data from Citron may cause issues. It\'s recommended to manually import all needed data.</string>
+    <string name="user_data_description">Import/export all app data.\n\nWhen importing user data, all existing user data will be deleted!</string>
     <string name="exporting_user_data">Exporting user data…</string>
     <string name="importing_user_data">Importing user data…</string>
     <string name="import_user_data">Import user data</string>
@@ -338,8 +334,8 @@
     <string name="user_data_import_success">User data imported successfully</string>
     <string name="user_data_export_cancelled">Export cancelled</string>
     <string name="user_data_import_failed_description">Make sure the user data folders are at the root of the zip folder and contain a config file at config/config.ini and try again.</string>
-    <string name="support_link">https://discord.gg/hab4Sh8qj6</string>
-    <string name="website_link">https://eden-emulator.github.io</string>
+    <string name="support_link">https://discord.gg/Xa3ssgxrY7</string>
+    <string name="website_link">https://bixthefin.github.io//</string>
     <string name="github_link">https://git.eden-emu.dev/eden-emu</string>
 
     <!-- Early access upgrade strings -->
@@ -392,7 +388,7 @@
     <string name="renderer_optimize_spirv_output">Optimize SPIRV output</string>
     <string name="renderer_optimize_spirv_output_description">Optimizes compiled shader to improve GPU efficiency.</string>
     <string name="renderer_asynchronous_shaders">Use asynchronous shaders</string>
-    <string name="renderer_asynchronous_shaders_description">Compiles shaders asynchronously. This may reduce stutters but may also introduce glitches.</string>
+    <string name="renderer_asynchronous_shaders_description">Compiles shaders asynchronously, reducing stutter but may introduce glitches.</string>
     <string name="use_fast_gpu_time">Use Fast GPU Time</string>
     <string name="use_fast_gpu_time_description">Forces most games to run at their highest native resolution. This option is hacky and may cause issues.</string>
     <string name="renderer_reactive_flushing">Use reactive flushing</string>
diff --git a/src/common/settings.h b/src/common/settings.h
index 6b4532c961..92e02d9887 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -196,11 +196,11 @@ struct Values {
     SwitchableSetting<MemoryLayout, true> memory_layout_mode{linkage,
                                                              MemoryLayout::Memory_4Gb,
                                                              MemoryLayout::Memory_4Gb,
-                                                             MemoryLayout::Memory_12Gb,
+                                                             MemoryLayout::Memory_8Gb,
                                                              "memory_layout_mode",
                                                              Category::Core,
                                                              Specialization::Default,
-                                                             true};
+                                                             false};
     SwitchableSetting<bool> use_speed_limit{
                                             linkage, true, "use_speed_limit", Category::Core, Specialization::Paired, true, true};
     SwitchableSetting<u16, true> speed_limit{linkage,
@@ -447,9 +447,9 @@ struct Values {
 
     SwitchableSetting<u8, true> dyna_state{linkage,
 #ifdef ANDROID
-                                           2,
+                                           0,
 #else
-                                           2,
+                                           1,
 #endif
                                            0,
                                            2,
@@ -457,9 +457,9 @@ struct Values {
                                            Category::RendererExtensions,
                                            Specialization::Scalar};
 
-    SwitchableSetting<bool> dyna_state3{linkage, true, "dyna_state3", Category::RendererExtensions};
-    SwitchableSetting<bool> provoking_vertex{linkage, true, "provoking_vertex", Category::RendererExtensions};
-    SwitchableSetting<bool> descriptor_indexing{linkage, true, "descriptor_indexing", Category::RendererExtensions};
+    SwitchableSetting<bool> dyna_state3{linkage, false, "dyna_state3", Category::RendererExtensions};
+    SwitchableSetting<bool> provoking_vertex{linkage, false, "provoking_vertex", Category::RendererExtensions};
+    SwitchableSetting<bool> descriptor_indexing{linkage, false, "descriptor_indexing", Category::RendererExtensions};
 
     Setting<bool> renderer_debug{linkage, false, "debug", Category::RendererDebug};
     Setting<bool> renderer_shader_feedback{linkage, false, "shader_feedback",
@@ -640,10 +640,6 @@ struct Values {
     Setting<bool> log_flush_lines{linkage, false, "flush_lines", Category::Miscellaneous};
     Setting<bool> use_dev_keys{linkage, false, "use_dev_keys", Category::Miscellaneous};
     Setting<bool> first_launch{linkage, true, "first_launch", Category::Miscellaneous};
-    Setting<bool> hide_pre_alpha_warning{linkage,
-                                         false,
-                                         "hide_pre_alpha_warning",
-                                         Category::Miscellaneous};
 
     // Network
     Setting<std::string> network_interface{linkage, std::string(), "network_interface",
diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h
index 43abe150f8..75189e60d7 100644
--- a/src/common/settings_enums.h
+++ b/src/common/settings_enums.h
@@ -134,7 +134,7 @@ ENUM(CpuBackend, Dynarmic, Nce);
 
 ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid);
 
-ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb, Memory_10Gb, Memory_12Gb);
+ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb);
 
 ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
 
diff --git a/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp b/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp
index f62f3e4767..37fa39a734 100644
--- a/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp
+++ b/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp
@@ -48,10 +48,6 @@ u32 GetMemorySizeForInit() {
         return Smc::MemorySize_6GB;
     case Settings::MemoryLayout::Memory_8Gb:
         return Smc::MemorySize_8GB;
-    case Settings::MemoryLayout::Memory_10Gb:
-        return Smc::MemorySize_10GB;
-    case Settings::MemoryLayout::Memory_12Gb:
-        return Smc::MemorySize_12GB;
     }
     return Smc::MemorySize_4GB;
 }
@@ -64,10 +60,6 @@ Smc::MemoryArrangement GetMemoryArrangeForInit() {
         return Smc::MemoryArrangement_6GB;
     case Settings::MemoryLayout::Memory_8Gb:
         return Smc::MemoryArrangement_8GB;
-    case Settings::MemoryLayout::Memory_10Gb:
-        return Smc::MemoryArrangement_10GB;
-    case Settings::MemoryLayout::Memory_12Gb:
-        return Smc::MemoryArrangement_12GB;
     }
     return Smc::MemoryArrangement_4GB;
 }
@@ -87,10 +79,6 @@ size_t KSystemControl::Init::GetIntendedMemorySize() {
         return 6_GiB;
     case Smc::MemorySize_8GB:
         return 8_GiB;
-    case Smc::MemorySize_10GB:
-        return 10_GiB;
-    case Smc::MemorySize_12GB:
-        return 12_GiB;
     }
 }
 
@@ -126,10 +114,6 @@ std::size_t KSystemControl::Init::GetApplicationPoolSize() {
         case Smc::MemoryArrangement_8GB:
             // Real kernel sets this to 4916_MiB. We are not debugging applets.
             return 6547_MiB;
-        case Smc::MemoryArrangement_10GB:
-            return 8178_MiB;
-        case Smc::MemoryArrangement_12GB:
-            return 9809_MiB;
         }
     }();
 
@@ -155,10 +139,6 @@ size_t KSystemControl::Init::GetAppletPoolSize() {
         case Smc::MemoryArrangement_8GB:
             //! Real kernel sets this to 2193_MiB. We are not debugging applets.
             return 562_MiB;
-        case Smc::MemoryArrangement_10GB:
-            return 562_MiB;
-        case Smc::MemoryArrangement_12GB:
-            return 562_MiB;
         }
     }();
 
diff --git a/src/core/hle/kernel/board/nintendo/nx/secure_monitor.h b/src/core/hle/kernel/board/nintendo/nx/secure_monitor.h
index ffec06f2d5..b0e4123f08 100644
--- a/src/core/hle/kernel/board/nintendo/nx/secure_monitor.h
+++ b/src/core/hle/kernel/board/nintendo/nx/secure_monitor.h
@@ -9,8 +9,6 @@ enum MemorySize {
     MemorySize_4GB = 0,
     MemorySize_6GB = 1,
     MemorySize_8GB = 2,
-    MemorySize_10GB = 3,
-    MemorySize_12GB = 4,
 };
 
 enum MemoryArrangement {
@@ -20,8 +18,6 @@ enum MemoryArrangement {
     MemoryArrangement_6GB = 3,
     MemoryArrangement_6GBForAppletDev = 4,
     MemoryArrangement_8GB = 5,
-    MemoryArrangement_10GB = 6,
-    MemoryArrangement_12GB = 7,
 };
 
 } // namespace Kernel::Board::Nintendo::Nx::Smc
diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp
index 53decd1dad..7e4001ef92 100644
--- a/src/core/hle/service/acc/acc.cpp
+++ b/src/core/hle/service/acc/acc.cpp
@@ -104,7 +104,9 @@ public:
             {160, nullptr, "RequiresUpdateNetworkServiceAccountIdTokenCache"},
             {161, nullptr, "RequireReauthenticationOfNetworkServiceAccount"},
             {170, nullptr, "CreateDeviceHistoryRequest"}, // 17.0.0+
-            {180, nullptr, "GetRequestForNintendoAccountReauthentication"} // 18.0.0+
+            {180, nullptr, "GetRequestForNintendoAccountReauthentication"}, // 18.0.0+
+            {181, nullptr, "CreateProcedureToReauthenticateNintendoAccount"}, // 20.0.0+
+            {182, nullptr, "ResumeProcedureToReauthenticateNintendoAccount"}, // 20.0.0+
         };
         // clang-format on
 
@@ -194,6 +196,12 @@ public:
             {161, nullptr, "RequireReauthenticationOfNetworkServiceAccount"},
             {170, nullptr, "CreateDeviceHistoryRequest"}, // 17.0.0+
             {180, nullptr, "GetRequestForNintendoAccountReauthentication"}, // 18.0.0+
+            {181, nullptr, "CreateProcedureToReauthenticateNintendoAccount"}, // 20.0.0+
+            {182, nullptr, "ResumeProcedureToReauthenticateNintendoAccount"}, // 20.0.0+
+            {183, nullptr, "GetNintendoAccountReauthenticationRequest"}, // 20.0.0+
+            {190, nullptr, "GetDeviceMigrationInfo"}, // 20.0.0+
+            {191, nullptr, "CheckDeviceMigrationAvailabilityAsync"}, // 20.0.0+
+            {192, nullptr, "StartDeviceMigrationAsync"}, // 20.0.0+
             {200, nullptr, "IsRegistered"},
             {201, nullptr, "RegisterAsync"},
             {202, nullptr, "UnregisterAsync"},
@@ -305,6 +313,7 @@ public:
             {220, nullptr, "RegisterUserAsyncWithoutProfile"}, // 17.0.0+
             {221, nullptr, "RegisterUserWithProfileAsync"}, // 17.0.0+
             {230, nullptr, "RegisterUserWithLargeImageProfileAsync"}, // 18.0.0+
+            {240, nullptr, "RegisterUserWithReauthenticationAsync"}, // 20.0.0+
         };
         // clang-format on
 
@@ -759,7 +768,8 @@ public:
             {210, nullptr, "IsProfileAvailable"}, // 17.0.0+
             {220, nullptr, "RegisterUserAsyncWithoutProfile"}, // 17.0.0+
             {221, nullptr, "RegisterUserWithProfileAsync"}, // 17.0.0+
-            {230, nullptr, "RegisterUserWithLargeImageProfileAsync"} // 18.0.0+
+            {230, nullptr, "RegisterUserWithLargeImageProfileAsync"}, // 18.0.0+
+            {240, nullptr, "RegisterUserWithReauthenticationAsync"}, // 20.0.0+
         };
         // clang-format on
 
diff --git a/src/core/hle/service/acc/acc_su.cpp b/src/core/hle/service/acc/acc_su.cpp
index 3a737341f8..92662ade29 100644
--- a/src/core/hle/service/acc/acc_su.cpp
+++ b/src/core/hle/service/acc/acc_su.cpp
@@ -53,15 +53,26 @@ ACC_SU::ACC_SU(std::shared_ptr<Module> module_, std::shared_ptr<ProfileManager>
         {212, nullptr, "ResumeProcedureToRegisterUserWithNintendoAccount"},
         {230, nullptr, "AuthenticateServiceAsync"},
         {250, nullptr, "GetBaasAccountAdministrator"},
+        {251, nullptr, "SynchronizeNetworkServiceAccountsSnapshotAsync"}, // 20.0.0+
         {290, nullptr, "ProxyProcedureForGuestLoginWithNintendoAccount"},
         {291, nullptr, "ProxyProcedureForFloatingRegistrationWithNintendoAccount"},
+        {292, nullptr, "ProxyProcedureForDeviceMigrationAuthenticatingOperatingUser"}, // 20.0.0+
+        {293, nullptr, "ProxyProcedureForDeviceMigrationDownload"}, // 20.0.0+
         {299, nullptr, "SuspendBackgroundDaemon"},
+        {350, nullptr, "CreateDeviceMigrationUserExportRequest"}, // 20.0.0+
+        {351, nullptr, "UploadNasCredential"}, // 20.0.0+
+        {352, nullptr, "CreateDeviceMigrationUserImportRequest"}, // 20.0.0+
+        {353, nullptr, "DeleteUserMigrationSaveData"}, // 20.0.0+
         {400, nullptr, "SetPinCode"}, // 18.0.0+
         {401, nullptr, "GetPinCodeLength"}, // 18.0.0+
         {402, nullptr, "GetPinCode"}, // 18.0.0+
+        {403, nullptr, "GetPinCodeParity"}, // 20.0.0+
+        {404, nullptr, "VerifyPinCode"}, // 20.0.0+
+        {405, nullptr, "IsPinCodeVerificationForbidden"}, // 20.0.0+
         {410, nullptr, "GetPinCodeErrorCount"}, // 18.0.0+
         {411, nullptr, "ResetPinCodeErrorCount"}, // 18.0.0+
         {412, nullptr, "IncrementPinCodeErrorCount"}, // 18.0.0+
+        {413, nullptr, "SetPinCodeErrorCount"}, // 20.0.0+
         {900, nullptr, "SetUserUnqualifiedForDebug"},
         {901, nullptr, "UnsetUserUnqualifiedForDebug"},
         {902, nullptr, "ListUsersUnqualifiedForDebug"},
diff --git a/src/core/hle/service/acc/acc_u1.cpp b/src/core/hle/service/acc/acc_u1.cpp
index 3832f5216d..ecc17ef31b 100644
--- a/src/core/hle/service/acc/acc_u1.cpp
+++ b/src/core/hle/service/acc/acc_u1.cpp
@@ -42,6 +42,9 @@ ACC_U1::ACC_U1(std::shared_ptr<Module> module_, std::shared_ptr<ProfileManager>
         {191, nullptr, "ActivateOpenContextHolder"},
         {401, nullptr, "GetPinCodeLength"}, // 18.0.0+
         {402, nullptr, "GetPinCode"}, // 18.0.0+
+        {403, nullptr, "GetPinCodeParity"}, // 20.0.0+
+        {404, nullptr, "VerifyPinCode"}, // 20.0.0+
+        {405, nullptr, "IsPinCodeVerificationForbidden"}, // 20.0.0+
         {997, nullptr, "DebugInvalidateTokenCacheForUser"},
         {998, nullptr, "DebugSetUserStateClose"},
         {999, nullptr, "DebugSetUserStateOpen"},
diff --git a/src/core/hle/service/am/service/all_system_applet_proxies_service.cpp b/src/core/hle/service/am/service/all_system_applet_proxies_service.cpp
index 5a787494a8..fc9c77fc36 100644
--- a/src/core/hle/service/am/service/all_system_applet_proxies_service.cpp
+++ b/src/core/hle/service/am/service/all_system_applet_proxies_service.cpp
@@ -18,6 +18,7 @@ IAllSystemAppletProxiesService::IAllSystemAppletProxiesService(Core::System& sys
     // clang-format off
     static const FunctionInfo functions[] = {
         {100, D<&IAllSystemAppletProxiesService::OpenSystemAppletProxy>, "OpenSystemAppletProxy"},
+        {110, D<&IAllSystemAppletProxiesService::OpenSystemAppletProxyForDebug>, "OpenSystemAppletProxyForDebug"},
         {200, D<&IAllSystemAppletProxiesService::OpenLibraryAppletProxyOld>, "OpenLibraryAppletProxyOld"},
         {201, D<&IAllSystemAppletProxiesService::OpenLibraryAppletProxy>, "OpenLibraryAppletProxy"},
         {300, nullptr, "OpenOverlayAppletProxy"},
@@ -25,6 +26,7 @@ IAllSystemAppletProxiesService::IAllSystemAppletProxiesService(Core::System& sys
         {400, nullptr, "CreateSelfLibraryAppletCreatorForDevelop"},
         {410, nullptr, "GetSystemAppletControllerForDebug"},
         {450, D<&IAllSystemAppletProxiesService::GetSystemProcessCommonFunctions>, "GetSystemProcessCommonFunctions"}, // 19.0.0+
+        {460, nullptr, "Unknown460"},
         {1000, nullptr, "GetDebugFunctions"},
     };
     // clang-format on
@@ -49,6 +51,26 @@ Result IAllSystemAppletProxiesService::OpenSystemAppletProxy(
     }
 }
 
+Result IAllSystemAppletProxiesService::OpenSystemAppletProxyForDebug(
+    Out<SharedPointer<ISystemAppletProxy>> out_proxy, ClientProcessId pid) {
+    LOG_DEBUG(Service_AM, "OpenSystemAppletProxyForDebug called");
+
+    auto process = system.ApplicationProcess();
+    if (!process) {
+        LOG_ERROR(Service_AM, "No application process available");
+        R_THROW(ResultUnknown);
+    }
+
+    if (const auto applet = GetAppletFromProcessId(pid)) {
+        *out_proxy = std::make_shared<ISystemAppletProxy>(
+            system, applet, process, m_window_system);
+        R_SUCCEED();
+    }
+
+    LOG_ERROR(Service_AM, "Applet not found for pid={}", pid.pid);
+    R_THROW(ResultUnknown);
+}
+
 Result IAllSystemAppletProxiesService::OpenLibraryAppletProxy(
     Out<SharedPointer<ILibraryAppletProxy>> out_library_applet_proxy, ClientProcessId pid,
     InCopyHandle<Kernel::KProcess> process_handle,
diff --git a/src/core/hle/service/am/service/all_system_applet_proxies_service.h b/src/core/hle/service/am/service/all_system_applet_proxies_service.h
index a3111c4c9b..72730ea55a 100644
--- a/src/core/hle/service/am/service/all_system_applet_proxies_service.h
+++ b/src/core/hle/service/am/service/all_system_applet_proxies_service.h
@@ -27,6 +27,7 @@ private:
     Result OpenSystemAppletProxy(Out<SharedPointer<ISystemAppletProxy>> out_system_applet_proxy,
                                  ClientProcessId pid,
                                  InCopyHandle<Kernel::KProcess> process_handle);
+    Result OpenSystemAppletProxyForDebug(Out<SharedPointer<ISystemAppletProxy>> out_proxy, ClientProcessId pid);
     Result OpenLibraryAppletProxy(Out<SharedPointer<ILibraryAppletProxy>> out_library_applet_proxy,
                                   ClientProcessId pid,
                                   InCopyHandle<Kernel::KProcess> process_handle,
diff --git a/src/core/hle/service/am/service/applet_common_functions.cpp b/src/core/hle/service/am/service/applet_common_functions.cpp
index 1c9cd74533..ed203e979a 100644
--- a/src/core/hle/service/am/service/applet_common_functions.cpp
+++ b/src/core/hle/service/am/service/applet_common_functions.cpp
@@ -33,8 +33,10 @@ IAppletCommonFunctions::IAppletCommonFunctions(Core::System& system_,
         {100, nullptr, "SetApplicationCoreUsageMode"},
         {300, D<&IAppletCommonFunctions::GetCurrentApplicationId>, "GetCurrentApplicationId"},
         {310, nullptr, "IsSystemAppletHomeMenu"}, //19.0.0+
+        {311, nullptr, "Unknown311"},
         {320, nullptr, "SetGpuTimeSliceBoost"}, //19.0.0+
         {321, nullptr, "SetGpuTimeSliceBoostDueToApplication"}, //19.0.0+
+        {350, nullptr, "Unknown350"},
     };
     // clang-format on
 
diff --git a/src/core/hle/service/am/service/common_state_getter.cpp b/src/core/hle/service/am/service/common_state_getter.cpp
index c179102f76..c445e5e776 100644
--- a/src/core/hle/service/am/service/common_state_getter.cpp
+++ b/src/core/hle/service/am/service/common_state_getter.cpp
@@ -38,7 +38,7 @@ ICommonStateGetter::ICommonStateGetter(Core::System& system_, std::shared_ptr<Ap
         {30, nullptr, "GetHomeButtonReaderLockAccessor"},
         {31, D<&ICommonStateGetter::GetReaderLockAccessorEx>, "GetReaderLockAccessorEx"},
         {32, D<&ICommonStateGetter::GetWriterLockAccessorEx>, "GetWriterLockAccessorEx"},
-        {40, nullptr, "GetCradleFwVersion"},
+        {40, D<&ICommonStateGetter::GetCradleFwVersion>, "GetCradleFwVersion"},
         {50, D<&ICommonStateGetter::IsVrModeEnabled>, "IsVrModeEnabled"},
         {51, D<&ICommonStateGetter::SetVrModeEnabled>, "SetVrModeEnabled"},
         {52, D<&ICommonStateGetter::SetLcdBacklighOffEnabled>, "SetLcdBacklighOffEnabled"},
@@ -172,6 +172,17 @@ Result ICommonStateGetter::GetBootMode(Out<PM::SystemBootMode> out_boot_mode) {
     R_SUCCEED();
 }
 
+Result ICommonStateGetter::GetCradleFwVersion(OutArray<uint32_t, 4> out_version) {
+    LOG_DEBUG(Service_AM, "(STUBBED) called");
+
+    out_version[0] = 0;
+    out_version[1] = 0;
+    out_version[2] = 0;
+    out_version[3] = 0;
+
+    R_SUCCEED();
+}
+
 Result ICommonStateGetter::IsVrModeEnabled(Out<bool> out_is_vr_mode_enabled) {
     LOG_DEBUG(Service_AM, "called");
 
diff --git a/src/core/hle/service/am/service/common_state_getter.h b/src/core/hle/service/am/service/common_state_getter.h
index 0cafbfe176..a326e11053 100644
--- a/src/core/hle/service/am/service/common_state_getter.h
+++ b/src/core/hle/service/am/service/common_state_getter.h
@@ -39,6 +39,7 @@ private:
     Result GetHdcpAuthenticationStateChangeEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
     Result GetOperationMode(Out<OperationMode> out_operation_mode);
     Result GetPerformanceMode(Out<APM::PerformanceMode> out_performance_mode);
+    Result GetCradleFwVersion(OutArray<uint32_t, 4> out_version);
     Result GetBootMode(Out<PM::SystemBootMode> out_boot_mode);
     Result IsVrModeEnabled(Out<bool> out_is_vr_mode_enabled);
     Result SetVrModeEnabled(bool is_vr_mode_enabled);
diff --git a/src/core/hle/service/am/service/process_winding_controller.cpp b/src/core/hle/service/am/service/process_winding_controller.cpp
index 10df830d70..a150248e71 100644
--- a/src/core/hle/service/am/service/process_winding_controller.cpp
+++ b/src/core/hle/service/am/service/process_winding_controller.cpp
@@ -15,7 +15,7 @@ IProcessWindingController::IProcessWindingController(Core::System& system_,
     static const FunctionInfo functions[] = {
         {0, D<&IProcessWindingController::GetLaunchReason>, "GetLaunchReason"},
         {11, D<&IProcessWindingController::OpenCallingLibraryApplet>, "OpenCallingLibraryApplet"},
-        {21, nullptr, "PushContext"},
+        {21, D<&IProcessWindingController::PushContext>, "PushContext"},
         {22, nullptr, "PopContext"},
         {23, nullptr, "CancelWindingReservation"},
         {30, nullptr, "WindAndDoReserved"},
@@ -51,4 +51,9 @@ Result IProcessWindingController::OpenCallingLibraryApplet(
     R_SUCCEED();
 }
 
+Result IProcessWindingController::PushContext() {
+    LOG_WARNING(Service_AM, "(STUBBED) called");
+    R_SUCCEED();
+}
+
 } // namespace Service::AM
diff --git a/src/core/hle/service/am/service/process_winding_controller.h b/src/core/hle/service/am/service/process_winding_controller.h
index 4408af1f1d..bcf341d94c 100644
--- a/src/core/hle/service/am/service/process_winding_controller.h
+++ b/src/core/hle/service/am/service/process_winding_controller.h
@@ -21,7 +21,7 @@ private:
     Result GetLaunchReason(Out<AppletProcessLaunchReason> out_launch_reason);
     Result OpenCallingLibraryApplet(
         Out<SharedPointer<ILibraryAppletAccessor>> out_calling_library_applet);
-
+    Result PushContext();
     const std::shared_ptr<Applet> m_applet;
 };
 
diff --git a/src/core/hle/service/am/service/self_controller.cpp b/src/core/hle/service/am/service/self_controller.cpp
index 1db02b88fd..fa36c93060 100644
--- a/src/core/hle/service/am/service/self_controller.cpp
+++ b/src/core/hle/service/am/service/self_controller.cpp
@@ -67,6 +67,7 @@ ISelfController::ISelfController(Core::System& system_, std::shared_ptr<Applet>
         {110, nullptr, "SetApplicationAlbumUserData"},
         {120, D<&ISelfController::SaveCurrentScreenshot>, "SaveCurrentScreenshot"},
         {130, D<&ISelfController::SetRecordVolumeMuted>, "SetRecordVolumeMuted"},
+        {230, D<&ISelfController::Unknown230>, "Unknown230"},
         {1000, nullptr, "GetDebugStorageChannel"},
     };
     // clang-format on
@@ -394,6 +395,10 @@ Result ISelfController::SaveCurrentScreenshot(Capture::AlbumReportOption album_r
 
     R_SUCCEED();
 }
+Result ISelfController::Unknown230() {
+    LOG_WARNING(Service_AM, "(STUBBED) called - function 230 (0xE6)");
+    R_SUCCEED();
+}
 
 Result ISelfController::SetRecordVolumeMuted(bool muted) {
     LOG_WARNING(Service_AM, "(STUBBED) called. muted={}", muted);
diff --git a/src/core/hle/service/am/service/self_controller.h b/src/core/hle/service/am/service/self_controller.h
index eca083cfe5..a384846231 100644
--- a/src/core/hle/service/am/service/self_controller.h
+++ b/src/core/hle/service/am/service/self_controller.h
@@ -62,6 +62,7 @@ private:
     Result GetAccumulatedSuspendedTickChangedEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
     Result SetAlbumImageTakenNotificationEnabled(bool enabled);
     Result SaveCurrentScreenshot(Capture::AlbumReportOption album_report_option);
+    Result Unknown230();
     Result SetRecordVolumeMuted(bool muted);
 
     Kernel::KProcess* const m_process;
diff --git a/src/core/hle/service/caps/caps_a.cpp b/src/core/hle/service/caps/caps_a.cpp
index 52228b830a..588cf2f09b 100644
--- a/src/core/hle/service/caps/caps_a.cpp
+++ b/src/core/hle/service/caps/caps_a.cpp
@@ -53,6 +53,8 @@ IAlbumAccessorService::IAlbumAccessorService(Core::System& system_,
         {8021, nullptr, "GetAlbumEntryFromApplicationAlbumEntryAruid"},
         {10011, nullptr, "SetInternalErrorConversionEnabled"},
         {50000, nullptr, "LoadMakerNoteInfoForDebug"},
+        {50011, C<&IAlbumAccessorService::GetAlbumAccessResultForDebug>, "GetAlbumAccessResultForDebug"},
+        {50012, C<&IAlbumAccessorService::SetAlbumAccessResultForDebug>, "SetAlbumAccessResultForDebug"},
         {60002, nullptr, "OpenAccessorSession"},
     };
     // clang-format on
@@ -137,6 +139,15 @@ Result IAlbumAccessorService::LoadAlbumScreenShotThumbnailImageEx1(
     R_RETURN(TranslateResult(result));
 }
 
+Result IAlbumAccessorService::GetAlbumAccessResultForDebug() {
+    LOG_DEBUG(Service_Capture, "(STUBBED) called.");
+    R_SUCCEED();
+}
+
+Result IAlbumAccessorService::SetAlbumAccessResultForDebug() {
+    LOG_DEBUG(Service_Capture, "(STUBBED) called.");
+    R_SUCCEED();
+}
 Result IAlbumAccessorService::TranslateResult(Result in_result) {
     if (in_result.IsSuccess()) {
         return in_result;
diff --git a/src/core/hle/service/caps/caps_a.h b/src/core/hle/service/caps/caps_a.h
index c7a5208e32..9590e71e70 100644
--- a/src/core/hle/service/caps/caps_a.h
+++ b/src/core/hle/service/caps/caps_a.h
@@ -50,6 +50,10 @@ private:
         OutArray<u8, BufferAttr_HipcMapAlias | BufferAttr_HipcMapTransferAllowsNonSecure> out_image,
         OutArray<u8, BufferAttr_HipcMapAlias> out_buffer);
 
+    Result GetAlbumAccessResultForDebug();
+
+    Result SetAlbumAccessResultForDebug();
+
     Result TranslateResult(Result in_result);
 
     std::shared_ptr<AlbumManager> manager = nullptr;
diff --git a/src/core/hle/service/erpt/erpt.cpp b/src/core/hle/service/erpt/erpt.cpp
index 6b7eab5efd..627ef72973 100644
--- a/src/core/hle/service/erpt/erpt.cpp
+++ b/src/core/hle/service/erpt/erpt.cpp
@@ -30,6 +30,8 @@ public:
             {10, nullptr, "CreateReportWithAttachments"},
             {11, C<&ErrorReportContext::CreateReportV1>, "CreateReportV1"},
             {12, C<&ErrorReportContext::CreateReport>, "CreateReport"},
+            {13, nullptr, "SubmitAttachmentWithLz4Compression"}, // 20.0.0+
+            {14, nullptr, "CreateReportWithSpecifiedReprotId"}, // 20.0.0+
             {20, nullptr, "RegisterRunningApplet"},
             {21, nullptr, "UnregisterRunningApplet"},
             {22, nullptr, "UpdateAppletSuspendedDuration"},
diff --git a/src/core/hle/service/filesystem/fsp/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp/fsp_srv.cpp
index 005caf6562..f95c83259c 100644
--- a/src/core/hle/service/filesystem/fsp/fsp_srv.cpp
+++ b/src/core/hle/service/filesystem/fsp/fsp_srv.cpp
@@ -76,6 +76,7 @@ FSP_SRV::FSP_SRV(Core::System& system_)
         {34, D<&FSP_SRV::GetCacheStorageSize>, "GetCacheStorageSize"},
         {35, nullptr, "CreateSaveDataFileSystemByHashSalt"},
         {36, nullptr, "OpenHostFileSystemWithOption"},
+        {38, nullptr, "DetachSdCard"}, // 20.0.0+
         {51, D<&FSP_SRV::OpenSaveDataFileSystem>, "OpenSaveDataFileSystem"},
         {52, D<&FSP_SRV::OpenSaveDataFileSystemBySystemSaveDataId>, "OpenSaveDataFileSystemBySystemSaveDataId"},
         {53, D<&FSP_SRV::OpenReadOnlySaveDataFileSystem>, "OpenReadOnlySaveDataFileSystem"},
@@ -117,6 +118,7 @@ FSP_SRV::FSP_SRV(Core::System& system_)
         {400, nullptr, "OpenDeviceOperator"},
         {500, nullptr, "OpenSdCardDetectionEventNotifier"},
         {501, nullptr, "OpenGameCardDetectionEventNotifier"},
+        {502, nullptr, "OpenSdCardAwakenReadyEventNotifier"}, // 20.0.0+
         {510, nullptr, "OpenSystemDataUpdateEventNotifier"},
         {511, nullptr, "NotifySystemDataUpdateEvent"},
         {520, nullptr, "SimulateGameCardDetectionEvent"},
diff --git a/src/core/hle/service/friend/friend.cpp b/src/core/hle/service/friend/friend.cpp
index 84c73e9d6f..e4a6251dcc 100644
--- a/src/core/hle/service/friend/friend.cpp
+++ b/src/core/hle/service/friend/friend.cpp
@@ -50,16 +50,19 @@ public:
             {20102, nullptr, "GetFriendDetailedInfo"},
             {20103, nullptr, "SyncFriendList"},
             {20104, &IFriendService::RequestSyncFriendList, "RequestSyncFriendList"},
+            {20107, nullptr, "GetFriendDetailedInfoV2"}, // 20.0.0+
             {20110, nullptr, "LoadFriendSetting"},
             {20200, &IFriendService::GetReceivedFriendRequestCount, "GetReceivedFriendRequestCount"},
-            {20201, nullptr, "GetFriendRequestList"},
+            {20201, nullptr, "GetFriendRequestListV1"}, // 20.0.0+ (1.0.0-19.0.1 GetFriendRequestList)
+            {20202, nullptr, "GetFriendRequestListV2"}, // 20.0.0+
             {20300, nullptr, "GetFriendCandidateList"},
             {20301, nullptr, "GetNintendoNetworkIdInfo"},
             {20302, nullptr, "GetSnsAccountLinkage"},
             {20303, nullptr, "GetSnsAccountProfile"},
             {20304, nullptr, "GetSnsAccountFriendList"},
-            {20400, nullptr, "GetBlockedUserList"},
+            {20400, nullptr, "GetBlockedUserListV1"}, // 20.0.0+ (1.0.0-19.0.1 GetBlockedUserList)
             {20401, nullptr, "SyncBlockedUserList"},
+            {20402, nullptr, "GetBlockedUserListV2"}, // 20.0.0+
             {20500, nullptr, "GetProfileExtraList"},
             {20501, nullptr, "GetRelationship"},
             {20600, &IFriendService::GetUserPresenceView, "GetUserPresenceView"},
@@ -78,7 +81,7 @@ public:
             {30120, nullptr, "ChangeFriendFavoriteFlag"},
             {30121, nullptr, "ChangeFriendOnlineNotificationFlag"},
             {30200, nullptr, "SendFriendRequest"},
-            {30201, nullptr, "SendFriendRequestWithApplicationInfo"},
+            {30201, nullptr, "SendFriendRequestWithApplicationInfoV1"}, // 20.0.0+ (1.0.0-19.0.1 SendFriendRequestWithApplicationInfo)
             {30202, nullptr, "CancelFriendRequest"},
             {30203, nullptr, "AcceptFriendRequest"},
             {30204, nullptr, "RejectFriendRequest"},
@@ -91,11 +94,13 @@ public:
             {30215, nullptr, "SendFriendRequestWithExternalApplicationCatalogId"},
             {30216, nullptr, "ResendFacedFriendRequest"},
             {30217, nullptr, "SendFriendRequestWithNintendoNetworkIdInfo"},
+            {30218, nullptr, "SendFriendRequestWithApplicationInfoV2"}, // 20.0.0+
             {30300, nullptr, "GetSnsAccountLinkPageUrl"},
             {30301, nullptr, "UnlinkSnsAccount"},
             {30400, nullptr, "BlockUser"},
-            {30401, nullptr, "BlockUserWithApplicationInfo"},
+            {30401, nullptr, "BlockUserWithApplicationInfoV1"}, // 20.0.0+ (1.0.0-19.0.1 BlockUserWithApplicationInfo)
             {30402, nullptr, "UnblockUser"},
+            {30403, nullptr, "BlockUserWithApplicationInfoV2"}, // 20.0.0+
             {30500, nullptr, "GetProfileExtraFromFriendCode"},
             {30700, nullptr, "DeletePlayHistory"},
             {30810, nullptr, "ChangePresencePermission"},
@@ -473,4 +478,4 @@ void LoopProcess(Core::System& system) {
     ServerManager::RunServer(std::move(server_manager));
 }
 
-} // namespace Service::Friend
+} // namespace Service::Friend
\ No newline at end of file
diff --git a/src/core/hle/service/hid/hid_debug_server.cpp b/src/core/hle/service/hid/hid_debug_server.cpp
index 738c6d9ae2..1547192b1b 100644
--- a/src/core/hle/service/hid/hid_debug_server.cpp
+++ b/src/core/hle/service/hid/hid_debug_server.cpp
@@ -87,6 +87,7 @@ IHidDebugServer::IHidDebugServer(Core::System& system_, std::shared_ptr<Resource
         {210, nullptr, "IsFirmwareUpdatingDevice"},
         {211, nullptr, "StartFirmwareUpdateIndividual"},
         {212, nullptr, "GetDetailFirmwareVersion"}, // 19.0.0+
+        {213, nullptr, "GetFirmwareVersionStringForDevMenu"}, // 20.0.0+
         {215, nullptr, "SetUsbFirmwareForceUpdateEnabled"},
         {216, nullptr, "SetAllKuinaDevicesToFirmwareUpdateMode"},
         {221, nullptr, "UpdateControllerColor"},
diff --git a/src/core/hle/service/hid/hid_server.cpp b/src/core/hle/service/hid/hid_server.cpp
index d38a8c04fa..24773957ce 100644
--- a/src/core/hle/service/hid/hid_server.cpp
+++ b/src/core/hle/service/hid/hid_server.cpp
@@ -116,6 +116,7 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr<ResourceManager> r
         {134, C<&IHidServer::SetNpadAnalogStickUseCenterClamp>, "SetNpadAnalogStickUseCenterClamp"},
         {135, C<&IHidServer::SetNpadCaptureButtonAssignment>, "SetNpadCaptureButtonAssignment"},
         {136, C<&IHidServer::ClearNpadCaptureButtonAssignment>, "ClearNpadCaptureButtonAssignment"},
+        {137, nullptr, "SetNpadGcAnalogStick8bitRawValue"}, // 20.0.0+
         {200, C<&IHidServer::GetVibrationDeviceInfo>, "GetVibrationDeviceInfo"},
         {201, C<&IHidServer::SendVibrationValue>, "SendVibrationValue"},
         {202, C<&IHidServer::GetActualVibrationValue>, "GetActualVibrationValue"},
@@ -183,7 +184,8 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr<ResourceManager> r
         {1001, C<&IHidServer::GetNpadCommunicationMode>, "GetNpadCommunicationMode"},
         {1002, C<&IHidServer::SetTouchScreenConfiguration>, "SetTouchScreenConfiguration"},
         {1003, C<&IHidServer::IsFirmwareUpdateNeededForNotification>, "IsFirmwareUpdateNeededForNotification"},
-        {1004, C<&IHidServer::SetTouchScreenResolution>, "SetTouchScreenResolution"},
+        {1004, C<&IHidServer::SetTouchScreenOutputRanges>, "SetTouchScreenOutputRanges"}, // 20.0.0+ (17.0.0-19.0.1 SetTouchScreenResolution)
+        {1005, nullptr, "EnableNxTouchScreenEmulationForTouchEnter"}, // 20.0.0+
         {2000, nullptr, "ActivateDigitizer"},
     };
     // clang-format on
@@ -1432,12 +1434,12 @@ Result IHidServer::IsFirmwareUpdateNeededForNotification(Out<bool> out_is_firmwa
     R_SUCCEED();
 }
 
-Result IHidServer::SetTouchScreenResolution(u32 width, u32 height,
+Result IHidServer::SetTouchScreenOutputRanges(u32 width, u32 height,
                                             ClientAppletResourceUserId aruid) {
     LOG_INFO(Service_HID, "called, width={}, height={}, applet_resource_user_id={}", width, height,
              aruid.pid);
 
-    GetResourceManager()->GetTouchScreen()->SetTouchScreenResolution(width, height, aruid.pid);
+    GetResourceManager()->GetTouchScreen()->SetTouchScreenOutputRanges(width, height, aruid.pid);
     R_SUCCEED();
 }
 
diff --git a/src/core/hle/service/hid/hid_server.h b/src/core/hle/service/hid/hid_server.h
index 9fdb25d5ca..11884c8db3 100644
--- a/src/core/hle/service/hid/hid_server.h
+++ b/src/core/hle/service/hid/hid_server.h
@@ -258,7 +258,7 @@ private:
                                        ClientAppletResourceUserId aruid);
     Result IsFirmwareUpdateNeededForNotification(Out<bool> out_is_firmware_update_needed,
                                                  s32 unknown, ClientAppletResourceUserId aruid);
-    Result SetTouchScreenResolution(u32 width, u32 height, ClientAppletResourceUserId aruid);
+    Result SetTouchScreenOutputRanges(u32 width, u32 height, ClientAppletResourceUserId aruid);
 
     std::shared_ptr<ResourceManager> resource_manager;
     std::shared_ptr<HidFirmwareSettings> firmware_settings;
diff --git a/src/core/hle/service/hid/hid_system_server.cpp b/src/core/hle/service/hid/hid_system_server.cpp
index 0f79844c94..9edfc045bf 100644
--- a/src/core/hle/service/hid/hid_system_server.cpp
+++ b/src/core/hle/service/hid/hid_system_server.cpp
@@ -67,6 +67,8 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
         {328, nullptr, "AttachAbstractedPadToNpad"},
         {329, nullptr, "DetachAbstractedPadAll"},
         {330, nullptr, "CheckAbstractedPadConnection"},
+        {333, nullptr, "SetNpadUserSpgApplet"}, // 20.0.0+
+        {334, nullptr, "AcquireUniquePadButtonStateChangedEventHandle"}, // 20.0.0+
         {500, nullptr, "SetAppletResourceUserId"},
         {501, &IHidSystemServer::RegisterAppletResourceUserId, "RegisterAppletResourceUserId"},
         {502, &IHidSystemServer::UnregisterAppletResourceUserId, "UnregisterAppletResourceUserId"},
@@ -96,9 +98,12 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
         {547, nullptr, "GetAllowedBluetoothLinksCount"},
         {548, &IHidSystemServer::GetRegisteredDevices, "GetRegisteredDevices"},
         {549, nullptr, "GetConnectableRegisteredDevices"},
+        {551, nullptr, "GetRegisteredDevicesForControllerSupport"}, // 20.0.0+
         {700, nullptr, "ActivateUniquePad"},
         {702, &IHidSystemServer::AcquireUniquePadConnectionEventHandle, "AcquireUniquePadConnectionEventHandle"},
         {703, &IHidSystemServer::GetUniquePadIds, "GetUniquePadIds"},
+        {711, nullptr, "AcquireUniquePadConnectionOnHandheldForNsEventHandle"}, // 20.0.0+
+        {712, nullptr, "GetUniquePadColor12"}, // 20.0.0+
         {751, &IHidSystemServer::AcquireJoyDetachOnBluetoothOffEventHandle, "AcquireJoyDetachOnBluetoothOffEventHandle"},
         {800, nullptr, "ListSixAxisSensorHandles"},
         {801, nullptr, "IsSixAxisSensorUserCalibrationSupported"},
@@ -143,6 +148,7 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
         {1009, nullptr, "AcquireAudioControlEventHandle"},
         {1010, nullptr, "GetAudioControlStates"},
         {1011, nullptr, "DeactivateAudioControl"},
+        {1012, nullptr, "GetFirmwareVersionStringForUserSupportPage"}, // 20.0.0+
         {1050, nullptr, "IsSixAxisSensorAccurateUserCalibrationSupported"},
         {1051, nullptr, "StartSixAxisSensorAccurateUserCalibration"},
         {1052, nullptr, "CancelSixAxisSensorAccurateUserCalibration"},
@@ -225,6 +231,7 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
         {1309, nullptr, "IsButtonConfigVisible"}, // 18.0.0+
         {1320, nullptr, "WakeTouchScreenUp"}, // 17.0.0+
         {1321, nullptr, "PutTouchScreenToSleep"}, // 17.0.0+
+        {1322, nullptr, "AcquireTouchScreenAsyncWakeCompletedEvent"}, // 20.0.0+
         {1420, nullptr, "GetAppletResourceProperty"}, // 19.0.0+
     };
     // clang-format on
diff --git a/src/core/hle/service/lm/lm.cpp b/src/core/hle/service/lm/lm.cpp
index 20df002330..d01a59e86e 100644
--- a/src/core/hle/service/lm/lm.cpp
+++ b/src/core/hle/service/lm/lm.cpp
@@ -88,6 +88,8 @@ public:
         static const FunctionInfo functions[] = {
             {0, &ILogger::Log, "Log"},
             {1, &ILogger::SetDestination, "SetDestination"},
+            {2, nullptr, "TransmitHashedLog"}, // 20.0.0+
+            {3, nullptr, "DevNotify"}, // 20.0.0+
         };
         RegisterHandlers(functions);
     }
diff --git a/src/core/hle/service/mii/mii.cpp b/src/core/hle/service/mii/mii.cpp
index adaaea571a..da491bb787 100644
--- a/src/core/hle/service/mii/mii.cpp
+++ b/src/core/hle/service/mii/mii.cpp
@@ -333,6 +333,8 @@ public:
             {15, nullptr, "LoadImage"},
             {16, nullptr, "AddOrUpdateImage"},
             {17, nullptr, "DeleteImages"},
+            {19, nullptr, "ClearHeaderForMigration"}, // 20.0.0+
+            {20, nullptr, "SaveHeaderForMigration"}, // 20.0.0+
             {100, nullptr, "DeleteFile"},
             {101, nullptr, "DestroyFile"},
             {102, nullptr, "ImportFile"},
diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp
index d758e9aa3d..ea6f53f9cf 100644
--- a/src/core/hle/service/nifm/nifm.cpp
+++ b/src/core/hle/service/nifm/nifm.cpp
@@ -692,9 +692,15 @@ IGeneralService::IGeneralService(Core::System& system_)
         {45, nullptr, "IsNetworkEmulationFeatureEnabled"}, // 18.0.0+
         {46, nullptr, "SelectActiveNetworkEmulationProfileIdForDebug"}, // 18.0.0+
         {47, nullptr, "GetActiveNetworkEmulationProfileId"}, // 18.0.0+
+        {48, nullptr, "ResetActiveNetworkEmulationProfileId"}, // 20.0.0+
         {50, nullptr, "IsRewriteFeatureEnabled"}, // 18.0.0+
         {51, nullptr, "CreateRewriteRule"}, // 18.0.0+
-        {52, nullptr, "DestroyRewriteRule"} // 18.0.0+
+        {52, nullptr, "DestroyRewriteRule"}, // 18.0.0+
+        {53, nullptr, "IsActiveNetworkEmulationProfileIdSelected"}, // 20.0.0+
+        {54, nullptr, "SelectDefaultNetworkEmulationProfileId"}, // 20.0.0+
+        {55, nullptr, "GetDefaultNetworkEmulationProfileId"}, // 20.0.0+
+        {56, nullptr, "GetNetworkEmulationProfile"}, // 20.0.0+
+        {57, nullptr, "SetWowlTcpKeepAliveTimeout"}, // 20.0.0+
     };
     // clang-format on
 
diff --git a/src/core/hle/service/ns/application_manager_interface.cpp b/src/core/hle/service/ns/application_manager_interface.cpp
index 7a91727f97..814e0b6e62 100644
--- a/src/core/hle/service/ns/application_manager_interface.cpp
+++ b/src/core/hle/service/ns/application_manager_interface.cpp
@@ -303,6 +303,9 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
         {3013, nullptr, "IsGameCardEnabled"},
         {3014, nullptr, "IsLocalContentShareEnabled"},
         {3050, nullptr, "ListAssignELicenseTaskResult"},
+        {4022, D<&IApplicationManagerInterface::Unknown4022>, "Unknown4022"},
+        {4023, D<&IApplicationManagerInterface::Unknown4023>, "Unknown4023"},
+        {4088, D<&IApplicationManagerInterface::Unknown4088>, "Unknown4088"},
         {9999, nullptr, "GetApplicationCertificate"},
     };
     // clang-format on
@@ -509,6 +512,23 @@ Result IApplicationManagerInterface::CheckApplicationLaunchVersion(u64 applicati
     R_SUCCEED();
 }
 
+Result IApplicationManagerInterface::Unknown4022(Out<u32> out_unknown) {
+    LOG_WARNING(Service_NS, "(STUBBED) Unknown4022 called");
+    *out_unknown = 0;
+    R_SUCCEED();
+}
+
+Result IApplicationManagerInterface::Unknown4023(Out<u32> out_unknown) {
+    LOG_WARNING(Service_NS, "(STUBBED) Unknown4022 called");
+
+    *out_unknown = 0;
+    R_SUCCEED();
+}
+Result IApplicationManagerInterface::Unknown4088() {
+    LOG_WARNING(Service_NS, "(STUBBED) Unknown4088 called");
+    R_SUCCEED();
+}
+
 Result IApplicationManagerInterface::GetApplicationTerminateResult(Out<Result> out_result,
                                                                    u64 application_id) {
     LOG_WARNING(Service_NS, "(STUBBED) called. application_id={:016X}", application_id);
diff --git a/src/core/hle/service/ns/application_manager_interface.h b/src/core/hle/service/ns/application_manager_interface.h
index f33d269b35..e96e50c8e1 100644
--- a/src/core/hle/service/ns/application_manager_interface.h
+++ b/src/core/hle/service/ns/application_manager_interface.h
@@ -48,6 +48,9 @@ public:
     Result IsApplicationUpdateRequested(Out<bool> out_update_required, Out<u32> out_update_version,
                                         u64 application_id);
     Result CheckApplicationLaunchVersion(u64 application_id);
+    Result Unknown4022(Out<u32> out_unknown);
+    Result Unknown4023(Out<u32> out_unknown);
+    Result Unknown4088();
     Result GetApplicationTerminateResult(Out<Result> out_result, u64 application_id);
 
 private:
diff --git a/src/core/hle/service/ns/platform_service_manager.cpp b/src/core/hle/service/ns/platform_service_manager.cpp
index 23cf05005c..fd144a4dff 100644
--- a/src/core/hle/service/ns/platform_service_manager.cpp
+++ b/src/core/hle/service/ns/platform_service_manager.cpp
@@ -147,6 +147,7 @@ IPlatformServiceManager::IPlatformServiceManager(Core::System& system_, const ch
         {104, nullptr, "RequestApplicationFunctionAuthorizationByProgramId"},
         {105, nullptr, "GetFunctionBlackListSystemVersionToAuthorize"},
         {106, nullptr, "GetFunctionBlackListVersion"},
+        {108, nullptr, "GetRequiredApplicationVersion"}, // 20.0.0+
         {1000, nullptr, "LoadNgWordDataForPlatformRegionChina"},
         {1001, nullptr, "GetNgWordDataSizeForPlatformRegionChina"},
     };
diff --git a/src/core/hle/service/pctl/parental_control_service.cpp b/src/core/hle/service/pctl/parental_control_service.cpp
index 3483ea30d9..a65088de9c 100644
--- a/src/core/hle/service/pctl/parental_control_service.cpp
+++ b/src/core/hle/service/pctl/parental_control_service.cpp
@@ -35,6 +35,8 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili
         {1016, nullptr, "ConfirmShowNewsPermission"},
         {1017, D<&IParentalControlService::EndFreeCommunication>, "EndFreeCommunication"},
         {1018, D<&IParentalControlService::IsFreeCommunicationAvailable>, "IsFreeCommunicationAvailable"},
+        {1019, nullptr, "ConfirmLaunchApplicationPermission"}, // 20.0.0+
+        {1020, nullptr, "ConfirmLaunchSharedApplicationPermission"}, // 20.0.0+
         {1031, D<&IParentalControlService::IsRestrictionEnabled>, "IsRestrictionEnabled"},
         {1032, D<&IParentalControlService::GetSafetyLevel>, "GetSafetyLevel"},
         {1033, nullptr, "SetSafetyLevel"},
@@ -49,9 +51,11 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili
         {1044, nullptr, "GetFreeCommunicationApplicationList"},
         {1045, nullptr, "UpdateFreeCommunicationApplicationList"},
         {1046, nullptr, "DisableFeaturesForReset"},
-        {1047, nullptr, "NotifyApplicationDownloadStarted"},
+        {1047, nullptr, "NotifyApplicationDownloadStartedOld"}, // 20.0.0+ (3.0.0-19.0.1 NotifyApplicationDownloadStarted)
         {1048, nullptr, "NotifyNetworkProfileCreated"},
         {1049, nullptr, "ResetFreeCommunicationApplicationList"},
+        {1050, nullptr, "AddToFreeCommunicationApplicationList"}, // 20.0.0+
+        {1051, nullptr, "NotifyApplicationDownloadStarted"}, // 20.0.0+
         {1061, D<&IParentalControlService::ConfirmStereoVisionRestrictionConfigurable>, "ConfirmStereoVisionRestrictionConfigurable"},
         {1062, D<&IParentalControlService::GetStereoVisionRestriction>, "GetStereoVisionRestriction"},
         {1063, D<&IParentalControlService::SetStereoVisionRestriction>, "SetStereoVisionRestriction"},
@@ -77,16 +81,18 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili
         {1451, D<&IParentalControlService::StartPlayTimer>, "StartPlayTimer"},
         {1452, D<&IParentalControlService::StopPlayTimer>, "StopPlayTimer"},
         {1453, D<&IParentalControlService::IsPlayTimerEnabled>, "IsPlayTimerEnabled"},
-        {1454, nullptr, "GetPlayTimerRemainingTime"},
+        {1454, D<&IParentalControlService::GetPlayTimerRemainingTime>, "GetPlayTimerRemainingTime"},
         {1455, D<&IParentalControlService::IsRestrictedByPlayTimer>, "IsRestrictedByPlayTimer"},
         {1456, D<&IParentalControlService::GetPlayTimerSettingsOld>, "GetPlayTimerSettingsOld"},
         {1457, D<&IParentalControlService::GetPlayTimerEventToRequestSuspension>, "GetPlayTimerEventToRequestSuspension"},
         {1458, D<&IParentalControlService::IsPlayTimerAlarmDisabled>, "IsPlayTimerAlarmDisabled"},
+        {1459, D<&IParentalControlService::GetPlayTimerRemainingTimeDisplayInfo>, "GetPlayTimerRemainingTimeDisplayInfo"}, // 20.0.0+
         {1471, nullptr, "NotifyWrongPinCodeInputManyTimes"},
         {1472, nullptr, "CancelNetworkRequest"},
         {1473, D<&IParentalControlService::GetUnlinkedEvent>, "GetUnlinkedEvent"},
         {1474, nullptr, "ClearUnlinkedEvent"},
         {1475, nullptr, "GetExtendedPlayTimerEvent"}, // 18.0.0+
+        {1501, nullptr, "SetTimerEventEnabled"}, // 20.0.0+
         {1601, nullptr, "DisableAllFeatures"},
         {1602, nullptr, "PostEnableAllFeatures"},
         {1603, nullptr, "IsAllFeaturesDisabled"},
@@ -106,6 +112,9 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili
         {1955, nullptr, "GetBedtimeAlarmTime"}, // 18.0.0+
         {1956, nullptr, "GetBedtimeAlarmTimeHour"}, // 18.0.0+
         {1957, nullptr, "GetBedtimeAlarmTimeMinute"}, // 18.0.0+
+        {1958, nullptr, "GetBedtimeAlarmResetTimeHour"}, // 20.0.0+
+        {1959, nullptr, "GetBedtimeAlarmResetTimeMinute"}, // 20.0.0+
+        {1960, nullptr, "GetExtraPlayingTimeForDebug"}, // 20.0.0+
         {2001, nullptr, "RequestPairingAsync"},
         {2002, nullptr, "FinishRequestPairing"},
         {2003, nullptr, "AuthorizePairingAsync"},
@@ -122,6 +131,15 @@ IParentalControlService::IParentalControlService(Core::System& system_, Capabili
         {2014, nullptr, "FinishSynchronizeParentalControlSettings"},
         {2015, nullptr, "FinishSynchronizeParentalControlSettingsWithLastUpdated"},
         {2016, nullptr, "RequestUpdateExemptionListAsync"},
+        {2021, nullptr, "RequestCopyPairingAsync"}, // 20.0.0+
+        {2022, nullptr, "FinishRequestCopyPairing"}, // 20.0.0+
+        {2023, nullptr, "IsFromPairingActiveDevice"}, // 20.0.0+
+        {3001, nullptr, "GetErrorContextChangedEvent"}, // 20.0.0+
+        {9401, nullptr, "GetEvents"}, // 20.0.0+
+        {9402, nullptr, "GetEventsWithJson"}, // 20.0.0+
+        {9403, nullptr, "RequestPostEvents"}, // 20.0.0+
+        {9404, nullptr, "GetPostEventInterval"}, // 20.0.0+
+        {9405, nullptr, "SetPostEventInterval"}, // 20.0.0+
         {145601, D<&IParentalControlService::GetPlayTimerSettings>, "GetPlayTimerSettings"} // 18.0.0+
     };
     // clang-format on
@@ -370,6 +388,12 @@ Result IParentalControlService::IsPlayTimerEnabled(Out<bool> out_is_play_timer_e
     R_SUCCEED();
 }
 
+Result IParentalControlService::GetPlayTimerRemainingTime(Out<s32> out_remaining_minutes) {
+    *out_remaining_minutes = 0;
+    LOG_WARNING(Service_PCTL, "(STUBBED) called, remaining_minutes={}", *out_remaining_minutes);
+    R_SUCCEED();
+}
+
 Result IParentalControlService::IsRestrictedByPlayTimer(Out<bool> out_is_restricted_by_play_timer) {
     *out_is_restricted_by_play_timer = false;
     LOG_WARNING(Service_PCTL, "(STUBBED) called, restricted={}", *out_is_restricted_by_play_timer);
@@ -404,6 +428,15 @@ Result IParentalControlService::IsPlayTimerAlarmDisabled(Out<bool> out_play_time
     R_SUCCEED();
 }
 
+Result IParentalControlService::GetPlayTimerRemainingTimeDisplayInfo(
+    Out<s32> out_remaining_minutes, Out<u32> out_unknown) {
+    *out_remaining_minutes = 0;
+    *out_unknown = 0;
+    LOG_WARNING(Service_PCTL, "(STUBBED) called, remaining_minutes={}, unknown={}",
+        *out_remaining_minutes, *out_unknown);
+    R_SUCCEED();
+}
+
 Result IParentalControlService::GetUnlinkedEvent(OutCopyHandle<Kernel::KReadableEvent> out_event) {
     LOG_INFO(Service_PCTL, "called");
     *out_event = unlinked_event.GetHandle();
@@ -444,4 +477,4 @@ Result IParentalControlService::ResetConfirmedStereoVisionPermission() {
     R_SUCCEED();
 }
 
-} // namespace Service::PCTL
+} // namespace Service::PCTL
\ No newline at end of file
diff --git a/src/core/hle/service/pctl/parental_control_service.h b/src/core/hle/service/pctl/parental_control_service.h
index d58c75f380..5b72ed1f03 100644
--- a/src/core/hle/service/pctl/parental_control_service.h
+++ b/src/core/hle/service/pctl/parental_control_service.h
@@ -45,10 +45,12 @@ private:
     Result StartPlayTimer();
     Result StopPlayTimer();
     Result IsPlayTimerEnabled(Out<bool> out_is_play_timer_enabled);
+    Result GetPlayTimerRemainingTime(Out<s32> out_remaining_minutes);
     Result IsRestrictedByPlayTimer(Out<bool> out_is_restricted_by_play_timer);
     Result GetPlayTimerSettingsOld(Out<PlayTimerSettings> out_play_timer_settings);
     Result GetPlayTimerEventToRequestSuspension(OutCopyHandle<Kernel::KReadableEvent> out_event);
     Result IsPlayTimerAlarmDisabled(Out<bool> out_play_timer_alarm_disabled);
+    Result GetPlayTimerRemainingTimeDisplayInfo(Out<s32> out_remaining_minutes, Out<u32> out_unknown);
     Result GetUnlinkedEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
     Result GetStereoVisionRestriction(Out<bool> out_stereo_vision_restriction);
     Result SetStereoVisionRestriction(bool stereo_vision_restriction);
diff --git a/src/core/hle/service/set/firmware_debug_settings_server.cpp b/src/core/hle/service/set/firmware_debug_settings_server.cpp
index b3a5e623b6..a2b087b371 100644
--- a/src/core/hle/service/set/firmware_debug_settings_server.cpp
+++ b/src/core/hle/service/set/firmware_debug_settings_server.cpp
@@ -18,6 +18,7 @@ IFirmwareDebugSettingsServer::IFirmwareDebugSettingsServer(Core::System& system_
         {21, nullptr, "SetAllowedSslHosts"},
         {22, nullptr, "SetHostFsMountPoint"},
         {23, nullptr, "SetMemoryUsageRateFlag"},
+        {24, nullptr, "CommitSettings"}, // 20.0.0+
     };
     // clang-format on
 
diff --git a/src/core/hle/service/set/system_settings_server.cpp b/src/core/hle/service/set/system_settings_server.cpp
index d246b95d0e..f327432daa 100644
--- a/src/core/hle/service/set/system_settings_server.cpp
+++ b/src/core/hle/service/set/system_settings_server.cpp
@@ -304,6 +304,14 @@ ISystemSettingsServer::ISystemSettingsServer(Core::System& system_)
         {222, nullptr, "SetForceMonauralOutputFlag"}, //17.0.0+
         {251, nullptr, "GetAccountIdentificationSettings"}, //18.0.0+
         {252, nullptr, "SetAccountIdentificationSettings"}, //18.0.0+
+        {264, nullptr, "GetVphymDirtyFlags"}, // 20.0.0+
+        {282, nullptr, "ConvertToProductModel"}, // 20.0.0+
+        {283, nullptr, "ConvertToProductModelName"}, // 20.0.0+
+        {289, nullptr, "GetDefaultAccountIdentificationFlagSet"}, // 20.0.0+
+        {300, nullptr, "AcquirePushNotificationDirtyFlagEventHandle"}, // 20.0.0+
+        {301, nullptr, "GetPushNotificationDirtyFlags"}, // 20.0.0+
+        {306, nullptr, "GetPinCodeReregistrationGuideAccounts"}, // 20.0.0+
+        {307, nullptr, "SetPinCodeReregistrationGuideAccounts"}, // 20.0.0+
     };
     // clang-format on
 
diff --git a/src/core/hle/service/ssl/ssl.cpp b/src/core/hle/service/ssl/ssl.cpp
index 67e37e0823..c9c3edf2a6 100644
--- a/src/core/hle/service/ssl/ssl.cpp
+++ b/src/core/hle/service/ssl/ssl.cpp
@@ -106,6 +106,8 @@ public:
             {33, nullptr, "ExportKeyingMaterial"},
             {34, nullptr, "SetIoTimeout"},
             {35, nullptr, "GetIoTimeout"},
+            {36, nullptr, "GetSessionTicket"}, // 20.0.0+
+            {37, nullptr, "SetSessionTicket"}, // 20.0.0+
         };
         // clang-format on
 
diff --git a/src/core/hle/service/ssl/ssl_types.h b/src/core/hle/service/ssl/ssl_types.h
index 16623c0fc5..9a9793f4f3 100644
--- a/src/core/hle/service/ssl/ssl_types.h
+++ b/src/core/hle/service/ssl/ssl_types.h
@@ -11,7 +11,7 @@ enum class CaCertificateId : s32 {
     All = -1,
     NintendoCAG3 = 1,
     NintendoClass2CAG3 = 2,
-    NintendoRootCAG4 = 3,
+    NintendoRootCAG4 = 3,  // [16.0.0+]
     AmazonRootCA1 = 1000,
     StarfieldServicesRootCertificateAuthorityG2 = 1001,
     AddTrustExternalCARoot = 1002,
@@ -29,10 +29,10 @@ enum class CaCertificateId : s32 {
     EntrustnetCertificationAuthority2048 = 1014,
     EntrustRootCertificationAuthority = 1015,
     EntrustRootCertificationAuthorityG2 = 1016,
-    GeoTrustGlobalCA2 = 1017,
-    GeoTrustGlobalCA = 1018,
-    GeoTrustPrimaryCertificationAuthorityG3 = 1019,
-    GeoTrustPrimaryCertificationAuthority = 1020,
+    GeoTrustGlobalCA2 = 1017,  // [8.0.0+] TrustedCertStatus is EnabledNotTrusted
+    GeoTrustGlobalCA = 1018,   // [8.0.0+] TrustedCertStatus is EnabledNotTrusted
+    GeoTrustPrimaryCertificationAuthorityG3 = 1019,  // [8.0.0+] TrustedCertStatus is EnabledNotTrusted
+    GeoTrustPrimaryCertificationAuthority = 1020,    // [8.0.0+] TrustedCertStatus is EnabledNotTrusted
     GlobalSignRootCA = 1021,
     GlobalSignRootCAR2 = 1022,
     GlobalSignRootCAR3 = 1023,
@@ -73,6 +73,72 @@ enum class CaCertificateId : s32 {
     DigiCertTLSECCP384RootG5 = 1058,  // [16.0.0+]
     DigiCertTLSRSA4096RootG5 = 1059,  // [16.0.0+]
     NintendoTempRootCAG4 = 65536,     // [16.0.0+] ([19.0.0+] Removed)
+
+    // Nintendo round-robin certificates [20.0.0+]
+    NintendoRR01 = 32801,
+    NintendoRR02 = 32802,
+    NintendoRR03 = 32803,
+    NintendoRR04 = 32804,
+    NintendoRR05 = 32805,
+    NintendoRR06 = 32806,
+    NintendoRR07 = 32807,
+    NintendoRR08 = 32808,
+    NintendoRR09 = 32809,
+    NintendoRR10 = 32810,
+    NintendoRR11 = 32811,
+    NintendoRR12 = 32812,
+    NintendoRR13 = 32813,
+    NintendoRR14 = 32814,
+    NintendoRR15 = 32815,
+    NintendoRR16 = 32816,
+    NintendoRR17 = 32817,
+    NintendoRR18 = 32818,
+    NintendoRR19 = 32819,
+    NintendoRR20 = 32820,
+    NintendoRR21 = 32821,
+    NintendoRR22 = 32822,
+    NintendoRR23 = 32823,
+    NintendoRR24 = 32824,
+    NintendoRR25 = 32825,
+    NintendoRR26 = 32826,
+    NintendoRR27 = 32827,
+    NintendoRR28 = 32828,
+    NintendoRR29 = 32829,
+    NintendoRR30 = 32830,
+    NintendoRR31 = 32831,
+    NintendoRR32 = 32832,
+    NintendoRR33 = 32833,
+    NintendoRR34 = 32834,
+    NintendoRR35 = 32835,
+    NintendoRR36 = 32836,
+    NintendoRR37 = 32837,
+    NintendoRR38 = 32838,
+    NintendoRR39 = 32839,
+    NintendoRR40 = 32840,
+    NintendoRR41 = 32841,
+    NintendoRR42 = 32842,
+    NintendoRR43 = 32843,
+    NintendoRR44 = 32844,
+    NintendoRR45 = 32845,
+    NintendoRR46 = 32846,
+    NintendoRR47 = 32847,
+    NintendoRR48 = 32848,
+    NintendoRR49 = 32849,
+    NintendoRR50 = 32850,
+    NintendoRR51 = 32851,
+    NintendoRR52 = 32852,
+    NintendoRR53 = 32853,
+    NintendoRR54 = 32854,
+    NintendoRR55 = 32855,
+    NintendoRR56 = 32856,
+    NintendoRR57 = 32857,
+    NintendoRR58 = 32858,
+    NintendoRR59 = 32859,
+    NintendoRR60 = 32860,
+    NintendoRR61 = 32861,
+    NintendoRR62 = 32862,
+    NintendoRR63 = 32863,
+    NintendoRR64 = 32864,
 };
 
 enum class TrustedCertStatus : s32 {
diff --git a/src/hid_core/resources/touch_screen/touch_screen.cpp b/src/hid_core/resources/touch_screen/touch_screen.cpp
index 35efb1786a..e9b1fdba51 100644
--- a/src/hid_core/resources/touch_screen/touch_screen.cpp
+++ b/src/hid_core/resources/touch_screen/touch_screen.cpp
@@ -82,9 +82,9 @@ Result TouchScreen::SetTouchScreenMagnification(f32 point1_x, f32 point1_y, f32
     return ResultSuccess;
 }
 
-Result TouchScreen::SetTouchScreenResolution(u32 width, u32 height, u64 aruid) {
+Result TouchScreen::SetTouchScreenOutputRanges(u32 width, u32 height, u64 aruid) {
     std::scoped_lock lock{mutex};
-    return touch_resource->SetTouchScreenResolution(width, height, aruid);
+    return touch_resource->SetTouchScreenOutputRanges(width, height, aruid);
 }
 
 Result TouchScreen::SetTouchScreenConfiguration(
diff --git a/src/hid_core/resources/touch_screen/touch_screen.h b/src/hid_core/resources/touch_screen/touch_screen.h
index 2fcb6247f1..8a08280ac5 100644
--- a/src/hid_core/resources/touch_screen/touch_screen.h
+++ b/src/hid_core/resources/touch_screen/touch_screen.h
@@ -42,7 +42,7 @@ public:
     Result ProcessTouchScreenAutoTune();
 
     Result SetTouchScreenMagnification(f32 point1_x, f32 point1_y, f32 point2_x, f32 point2_y);
-    Result SetTouchScreenResolution(u32 width, u32 height, u64 aruid);
+    Result SetTouchScreenOutputRanges(u32 width, u32 height, u64 aruid);
 
     Result SetTouchScreenConfiguration(const Core::HID::TouchScreenConfigurationForNx& mode,
                                        u64 aruid);
diff --git a/src/hid_core/resources/touch_screen/touch_screen_resource.cpp b/src/hid_core/resources/touch_screen/touch_screen_resource.cpp
index 79ddaa4dfa..7c949be7fe 100644
--- a/src/hid_core/resources/touch_screen/touch_screen_resource.cpp
+++ b/src/hid_core/resources/touch_screen/touch_screen_resource.cpp
@@ -296,7 +296,7 @@ void TouchResource::SetTouchScreenMagnification(f32 point1_x, f32 point1_y, f32
     };
 }
 
-Result TouchResource::SetTouchScreenResolution(u32 width, u32 height, u64 aruid) {
+Result TouchResource::SetTouchScreenOutputRanges(u32 width, u32 height, u64 aruid) {
     std::scoped_lock lock{*shared_mutex};
 
     for (std::size_t aruid_index = 0; aruid_index < AruidIndexMax; aruid_index++) {
diff --git a/src/hid_core/resources/touch_screen/touch_screen_resource.h b/src/hid_core/resources/touch_screen/touch_screen_resource.h
index 095cddd762..84fa5eb0b6 100644
--- a/src/hid_core/resources/touch_screen/touch_screen_resource.h
+++ b/src/hid_core/resources/touch_screen/touch_screen_resource.h
@@ -66,7 +66,7 @@ public:
 
     Result ProcessTouchScreenAutoTune();
     void SetTouchScreenMagnification(f32 point1_x, f32 point1_y, f32 point2_x, f32 point2_y);
-    Result SetTouchScreenResolution(u32 width, u32 height, u64 aruid);
+    Result SetTouchScreenOutputRanges(u32 width, u32 height, u64 aruid);
 
     Result SetTouchScreenConfiguration(
         const Core::HID::TouchScreenConfigurationForNx& touch_configuration, u64 aruid);
diff --git a/src/video_core/host1x/ffmpeg/ffmpeg.cpp b/src/video_core/host1x/ffmpeg/ffmpeg.cpp
index fe85efaab3..7e955223db 100644
--- a/src/video_core/host1x/ffmpeg/ffmpeg.cpp
+++ b/src/video_core/host1x/ffmpeg/ffmpeg.cpp
@@ -1,12 +1,6 @@
 // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-// SPDX-FileCopyrightText: Copyright 2024 suyu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-// SPDX-FileCopyrightText: Copyright 2025 eden Emulator Project
-// SPDX-License-Identifier: GPL-3.0-or-later
-
 #include "common/assert.h"
 #include "common/logging/log.h"
 #include "common/scope_exit.h"
@@ -55,8 +49,7 @@ AVPixelFormat GetGpuFormat(AVCodecContext* codec_context, const AVPixelFormat* p
     return codec_context->pix_fmt;
 }
 
-std::string AVError(int errnum)
-{
+std::string AVError(int errnum) {
     char errbuf[AV_ERROR_MAX_STRING_SIZE] = {};
     av_make_error_string(errbuf, sizeof(errbuf) - 1, errnum);
     return errbuf;
@@ -225,167 +218,6 @@ bool DecoderContext::OpenContext(const Decoder& decoder) {
     return true;
 }
 
-// Nasty but allows linux builds to pass.
-// Requires double checks when FFMPEG gets updated.
-// Hopefully a future FFMPEG update will all and expose a solution in the public API.
-namespace {
-
-typedef struct FFCodecDefault {
-    const char* key;
-    const char* value;
-} FFCodecDefault;
-
-typedef struct FFCodec {
-    /**
-     * The public AVCodec. See codec.h for it.
-     */
-    AVCodec p;
-
-    /**
-     * Internal codec capabilities FF_CODEC_CAP_*.
-     */
-    unsigned caps_internal : 29;
-
-    /**
-     * This field determines the type of the codec (decoder/encoder)
-     * and also the exact callback cb implemented by the codec.
-     * cb_type uses enum FFCodecType values.
-     */
-    unsigned cb_type : 3;
-
-    int priv_data_size;
-    /**
-     * @name Frame-level threading support functions
-     * @{
-     */
-    /**
-     * Copy necessary context variables from a previous thread context to the current one.
-     * If not defined, the next thread will start automatically; otherwise, the codec
-     * must call ff_thread_finish_setup().
-     *
-     * dst and src will (rarely) point to the same context, in which case memcpy should be skipped.
-     */
-    int (*update_thread_context)(struct AVCodecContext* dst, const struct AVCodecContext* src);
-
-    /**
-     * Copy variables back to the user-facing context
-     */
-    int (*update_thread_context_for_user)(struct AVCodecContext* dst,
-                                          const struct AVCodecContext* src);
-    /** @} */
-
-    /**
-     * Private codec-specific defaults.
-     */
-    const FFCodecDefault* defaults;
-
-    /**
-     * Initialize codec static data, called from av_codec_iterate().
-     *
-     * This is not intended for time consuming operations as it is
-     * run for every codec regardless of that codec being used.
-     */
-    void (*init_static_data)(struct FFCodec* codec);
-
-    int (*init)(struct AVCodecContext*);
-
-    union {
-        /**
-         * Decode to an AVFrame.
-         * cb is in this state if cb_type is FF_CODEC_CB_TYPE_DECODE.
-         *
-         * @param      avctx          codec context
-         * @param[out] frame          AVFrame for output
-         * @param[out] got_frame_ptr  decoder sets to 0 or 1 to indicate that
-         *                            a non-empty frame was returned in frame.
-         * @param[in]  avpkt          AVPacket containing the data to be decoded
-         * @return amount of bytes read from the packet on success,
-         *         negative error code on failure
-         */
-        int (*decode)(struct AVCodecContext* avctx, struct AVFrame* frame, int* got_frame_ptr,
-                      struct AVPacket* avpkt);
-        /**
-         * Decode subtitle data to an AVSubtitle.
-         * cb is in this state if cb_type is FF_CODEC_CB_TYPE_DECODE_SUB.
-         *
-         * Apart from that this is like the decode callback.
-         */
-        int (*decode_sub)(struct AVCodecContext* avctx, struct AVSubtitle* sub, int* got_frame_ptr,
-                          const struct AVPacket* avpkt);
-        /**
-         * Decode API with decoupled packet/frame dataflow.
-         * cb is in this state if cb_type is FF_CODEC_CB_TYPE_RECEIVE_FRAME.
-         *
-         * This function is called to get one output frame. It should call
-         * ff_decode_get_packet() to obtain input data.
-         */
-        int (*receive_frame)(struct AVCodecContext* avctx, struct AVFrame* frame);
-        /**
-         * Encode data to an AVPacket.
-         * cb is in this state if cb_type is FF_CODEC_CB_TYPE_ENCODE
-         *
-         * @param      avctx          codec context
-         * @param[out] avpkt          output AVPacket
-         * @param[in]  frame          AVFrame containing the input to be encoded
-         * @param[out] got_packet_ptr encoder sets to 0 or 1 to indicate that a
-         *                            non-empty packet was returned in avpkt.
-         * @return 0 on success, negative error code on failure
-         */
-        int (*encode)(struct AVCodecContext* avctx, struct AVPacket* avpkt,
-                      const struct AVFrame* frame, int* got_packet_ptr);
-        /**
-         * Encode subtitles to a raw buffer.
-         * cb is in this state if cb_type is FF_CODEC_CB_TYPE_ENCODE_SUB.
-         */
-        int (*encode_sub)(struct AVCodecContext* avctx, uint8_t* buf, int buf_size,
-                          const struct AVSubtitle* sub);
-        /**
-         * Encode API with decoupled frame/packet dataflow.
-         * cb is in this state if cb_type is FF_CODEC_CB_TYPE_RECEIVE_PACKET.
-         *
-         * This function is called to get one output packet.
-         * It should call ff_encode_get_frame() to obtain input data.
-         */
-        int (*receive_packet)(struct AVCodecContext* avctx, struct AVPacket* avpkt);
-    } cb;
-
-    int (*close)(struct AVCodecContext*);
-
-    /**
-     * Flush buffers.
-     * Will be called when seeking
-     */
-    void (*flush)(struct AVCodecContext*);
-
-    /**
-     * Decoding only, a comma-separated list of bitstream filters to apply to
-     * packets before decoding.
-     */
-    const char* bsfs;
-
-    /**
-     * Array of pointers to hardware configurations supported by the codec,
-     * or NULL if no hardware supported.  The array is terminated by a NULL
-     * pointer.
-     *
-     * The user can only access this field via avcodec_get_hw_config().
-     */
-    const struct AVCodecHWConfigInternal* const* hw_configs;
-
-    /**
-     * List of supported codec_tags, terminated by FF_CODEC_TAGS_END.
-     */
-    const uint32_t* codec_tags;
-} FFCodec;
-
-#ifndef ANDROID
-static av_always_inline const FFCodec* ffcodec(const AVCodec* codec) {
-    return (const FFCodec*)codec;
-}
-#endif
-} // namespace
-
-
 bool DecoderContext::SendPacket(const Packet& packet) {
     m_temp_frame = std::make_shared<Frame>();
     m_got_frame = 0;
@@ -395,12 +227,8 @@ bool DecoderContext::SendPacket(const Packet& packet) {
 #ifndef ANDROID
     if (!m_codec_context->hw_device_ctx && m_codec_context->codec_id == AV_CODEC_ID_H264) {
         m_decode_order = true;
-        auto* codec{ffcodec(m_decoder.GetCodec())};
-        if (const int ret = codec->cb.decode(m_codec_context,
-                                             m_temp_frame->GetFrame(),
-                                             &m_got_frame,
-                                             packet.GetPacket());
-            ret < 0) {
+        const int ret = avcodec_send_frame(m_codec_context, m_temp_frame->GetFrame());
+        if (ret < 0) {
             LOG_DEBUG(Service_NVDRV, "avcodec_send_packet error {}", AVError(ret));
             return false;
         }
@@ -419,11 +247,9 @@ bool DecoderContext::SendPacket(const Packet& packet) {
 std::shared_ptr<Frame> DecoderContext::ReceiveFrame() {
     // Android can randomly crash when calling decode directly, so skip.
     // TODO update ffmpeg and hope that fixes it.
-// TODO: This is causing issues on linux, need to bisect
 #ifndef ANDROID
     if (!m_codec_context->hw_device_ctx && m_codec_context->codec_id == AV_CODEC_ID_H264) {
         m_decode_order = true;
-        auto* codec{ffcodec(m_decoder.GetCodec())};
         int ret{0};
 
         if (m_got_frame == 0) {
@@ -431,7 +257,7 @@ std::shared_ptr<Frame> DecoderContext::ReceiveFrame() {
             auto* pkt = packet.GetPacket();
             pkt->data = nullptr;
             pkt->size = 0;
-            ret = codec->cb.decode(m_codec_context, m_temp_frame->GetFrame(), &m_got_frame, pkt);
+            ret = avcodec_receive_packet(m_codec_context, pkt);
             m_codec_context->has_b_frames = 0;
         }
 
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
index 30f5ff7a75..3260ef8cc2 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
@@ -1,9 +1,6 @@
 // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-// SPDX-FileCopyrightText: Copyright 2025 eden Emulator Project
-// SPDX-License-Identifier: GPL-3.0-or-later
-
 #include <algorithm>
 #include <array>
 #include <cstring>
@@ -102,91 +99,52 @@ Device CreateDevice(const vk::Instance& instance, const vk::InstanceDispatch& dl
 }
 
 RendererVulkan::RendererVulkan(Core::Frontend::EmuWindow& emu_window,
-                               Tegra::MaxwellDeviceMemoryManager& device_memory_,
-                               Tegra::GPU& gpu_,
-                               std::unique_ptr<Core::Frontend::GraphicsContext> context_)
-try
-    : RendererBase(emu_window, std::move(context_))
-    , device_memory(device_memory_)
-    , gpu(gpu_)
-    , library(OpenLibrary(context.get()))
-    ,
-    // Create raw Vulkan instance first
-    instance(CreateInstance(*library,
-                            dld,
-                            VK_API_VERSION_1_1,
-                            render_window.GetWindowInfo().type,
-                            Settings::values.renderer_debug.GetValue()))
-    ,
-    // Now create RAII wrappers for the resources in the correct order
-    managed_instance(MakeManagedInstance(instance, dld))
-    ,
-    // Create debug messenger if debug is enabled
-    debug_messenger(Settings::values.renderer_debug ? CreateDebugUtilsCallback(instance)
-                                                    : vk::DebugUtilsMessenger{})
-    , managed_debug_messenger(Settings::values.renderer_debug
-                                  ? MakeManagedDebugUtilsMessenger(debug_messenger, instance, dld)
-                                  : ManagedDebugUtilsMessenger{})
-    ,
-    // Create surface
-    surface(CreateSurface(instance, render_window.GetWindowInfo()))
-    , managed_surface(MakeManagedSurface(surface, instance, dld))
-    , device(CreateDevice(instance, dld, *surface))
-    , memory_allocator(device)
-    , state_tracker()
-    , scheduler(device, state_tracker)
-    , swapchain(*surface,
-                device,
-                scheduler,
-                render_window.GetFramebufferLayout().width,
-                render_window.GetFramebufferLayout().height)
-    , present_manager(instance,
-                      render_window,
-                      device,
-                      memory_allocator,
-                      scheduler,
-                      swapchain,
-#ifdef ANDROID
-                      surface)
-    ,
-#else
-                      *surface)
-    ,
-#endif
-    blit_swapchain(device_memory,
-                   device,
-                   memory_allocator,
-                   present_manager,
-                   scheduler,
-                   PresentFiltersForDisplay)
-    , blit_capture(device_memory,
-                   device,
-                   memory_allocator,
-                   present_manager,
-                   scheduler,
-                   PresentFiltersForDisplay)
-    , blit_applet(device_memory,
-                  device,
-                  memory_allocator,
-                  present_manager,
-                  scheduler,
-                  PresentFiltersForAppletCapture)
-    , rasterizer(render_window, gpu, device_memory, device, memory_allocator, state_tracker, scheduler)
-    , applet_frame() {
+                               Tegra::MaxwellDeviceMemoryManager& device_memory_, Tegra::GPU& gpu_,
+                               std::unique_ptr<Core::Frontend::GraphicsContext> context_) try
+    : RendererBase(emu_window, std::move(context_)), device_memory(device_memory_), gpu(gpu_),
+      library(OpenLibrary(context.get())),
+      // Create raw Vulkan instance first
+      instance(CreateInstance(*library, dld, VK_API_VERSION_1_1, render_window.GetWindowInfo().type,
+                            Settings::values.renderer_debug.GetValue())),
+      // Now create RAII wrappers for the resources in the correct order
+      managed_instance(MakeManagedInstance(instance, dld)),
+      // Create debug messenger if debug is enabled
+      debug_messenger(Settings::values.renderer_debug ? CreateDebugUtilsCallback(instance)
+                                                    : vk::DebugUtilsMessenger{}),
+      managed_debug_messenger(Settings::values.renderer_debug
+                             ? MakeManagedDebugUtilsMessenger(debug_messenger, instance, dld)
+                             : ManagedDebugUtilsMessenger{}),
+      // Create surface
+      surface(CreateSurface(instance, render_window.GetWindowInfo())),
+      managed_surface(MakeManagedSurface(surface, instance, dld)),
+      device(CreateDevice(instance, dld, *surface)),
+      memory_allocator(device), state_tracker(),
+      scheduler(device, state_tracker),
+      swapchain(*surface, device, scheduler, render_window.GetFramebufferLayout().width,
+                render_window.GetFramebufferLayout().height),
+      present_manager(instance, render_window, device, memory_allocator, scheduler, swapchain,
+                      *surface),
+      blit_swapchain(device_memory, device, memory_allocator, present_manager, scheduler,
+                     PresentFiltersForDisplay),
+      blit_capture(device_memory, device, memory_allocator, present_manager, scheduler,
+                   PresentFiltersForDisplay),
+      blit_applet(device_memory, device, memory_allocator, present_manager, scheduler,
+                  PresentFiltersForAppletCapture),
+      rasterizer(render_window, gpu, device_memory, device, memory_allocator, state_tracker,
+                 scheduler),
+      applet_frame() {
 
-    if (Settings::values.renderer_force_max_clock.GetValue() && device.ShouldBoostClocks()) {
+   if (Settings::values.renderer_force_max_clock.GetValue() && device.ShouldBoostClocks()) {
         turbo_mode.emplace(instance, dld);
         scheduler.RegisterOnSubmit([this] { turbo_mode->QueueSubmitted(); });
     }
 
-#ifndef ANDROID
     // Release ownership from the old instance and surface
     instance.release();
     surface.release();
     if (Settings::values.renderer_debug) {
         debug_messenger.release();
     }
-#endif
 
     Report();
 } catch (const vk::Exception& exception) {
diff --git a/src/video_core/renderer_vulkan/vk_present_manager.cpp b/src/video_core/renderer_vulkan/vk_present_manager.cpp
index a448dc5288..8f5edeae24 100644
--- a/src/video_core/renderer_vulkan/vk_present_manager.cpp
+++ b/src/video_core/renderer_vulkan/vk_present_manager.cpp
@@ -95,31 +95,15 @@ bool CanBlitToSwapchain(const vk::PhysicalDevice& physical_device, VkFormat form
 
 } // Anonymous namespace
 
-PresentManager::PresentManager(const vk::Instance& instance_,
-                               Core::Frontend::EmuWindow& render_window_,
-                               const Device& device_,
-                               MemoryAllocator& memory_allocator_,
-                               Scheduler& scheduler_,
-                               Swapchain& swapchain_,
-#ifdef ANDROID
-                               vk::SurfaceKHR& surface_)
-#else
-                               VkSurfaceKHR_T* surface_handle_)
-#endif
-    : instance{instance_}
-    , render_window{render_window_}
-    , device{device_}
-    , memory_allocator{memory_allocator_}
-    , scheduler{scheduler_}
-    , swapchain{swapchain_}
-#ifdef ANDROID
-    , surface{surface_}
-#else
-    , surface_handle{surface_handle_}
-#endif
-    , blit_supported{CanBlitToSwapchain(device.GetPhysical(), swapchain.GetImageViewFormat())}
-    , use_present_thread{Settings::values.async_presentation.GetValue()}
-{
+PresentManager::PresentManager(const vk::Instance& instance_, Core::Frontend::EmuWindow& render_window_,
+                               const Device& device_, MemoryAllocator& memory_allocator_, Scheduler& scheduler_,
+                               Swapchain& swapchain_, VkSurfaceKHR_T* surface_handle_)
+    : instance{instance_}, render_window{render_window_}, device{device_},
+      memory_allocator{memory_allocator_}, scheduler{scheduler_}, swapchain{swapchain_},
+      surface_handle{surface_handle_},
+      blit_supported{CanBlitToSwapchain(device.GetPhysical(),
+                                        swapchain.GetImageViewFormat())},
+      use_present_thread{Settings::values.async_presentation.GetValue()} {
     SetImageCount();
 
     auto& dld = device.GetLogical();
@@ -305,11 +289,7 @@ void PresentManager::PresentThread(std::stop_token token) {
 }
 
 void PresentManager::RecreateSwapchain(Frame* frame) {
-#ifndef ANDROID
     swapchain.Create(surface_handle, frame->width, frame->height); // Pass raw pointer
-#else
-    swapchain.Create(*surface, frame->width, frame->height); // Pass raw pointer
-#endif
     SetImageCount();
 }
 
@@ -327,9 +307,6 @@ void PresentManager::CopyToSwapchain(Frame* frame) {
         try {
             // Recreate surface and swapchain if needed.
             if (requires_recreation) {
-#ifdef ANDROID
-                surface = CreateSurface(instance, render_window.GetWindowInfo());
-#endif
                 RecreateSwapchain(frame);
             }
 
diff --git a/src/video_core/renderer_vulkan/vk_present_manager.h b/src/video_core/renderer_vulkan/vk_present_manager.h
index 5820280602..96850ed56f 100644
--- a/src/video_core/renderer_vulkan/vk_present_manager.h
+++ b/src/video_core/renderer_vulkan/vk_present_manager.h
@@ -37,17 +37,9 @@ struct Frame {
 
 class PresentManager {
 public:
-    PresentManager(const vk::Instance& instance,
-                   Core::Frontend::EmuWindow& render_window,
-                   const Device& device,
-                   MemoryAllocator& memory_allocator,
-                   Scheduler& scheduler,
-                   Swapchain& swapchain,
-#ifdef ANDROID
-                   vk::SurfaceKHR& surface);
-#else
-                   VkSurfaceKHR_T* surface_handle);
-#endif
+    PresentManager(const vk::Instance& instance, Core::Frontend::EmuWindow& render_window,
+                   const Device& device, MemoryAllocator& memory_allocator, Scheduler& scheduler,
+                   Swapchain& swapchain, VkSurfaceKHR_T* surface_handle);
     ~PresentManager();
 
     /// Returns the last used presentation frame
@@ -81,11 +73,7 @@ private:
     MemoryAllocator& memory_allocator;
     Scheduler& scheduler;
     Swapchain& swapchain;
-#ifdef ANDROID
-    vk::SurfaceKHR& surface;
-#else
     VkSurfaceKHR_T* surface_handle;
-#endif
     vk::CommandPool cmdpool;
     std::vector<Frame> frames;
     std::queue<Frame*> present_queue;
diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp
index 44c06eddf3..a28296bdaf 100644
--- a/src/video_core/renderer_vulkan/vk_query_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp
@@ -176,7 +176,7 @@ public:
             PauseCounter();
         }
         AbandonCurrentQuery();
-        std::function<void()> func([this] {
+        std::function<void()> func([this, counts = pending_flush_queries.size()] {
             amend_value = 0;
             accumulation_value = 0;
         });
diff --git a/src/video_core/renderer_vulkan/vk_swapchain.cpp b/src/video_core/renderer_vulkan/vk_swapchain.cpp
index a002ca83a0..ec96b75036 100644
--- a/src/video_core/renderer_vulkan/vk_swapchain.cpp
+++ b/src/video_core/renderer_vulkan/vk_swapchain.cpp
@@ -105,58 +105,23 @@ VkCompositeAlphaFlagBitsKHR ChooseAlphaFlags(const VkSurfaceCapabilitiesKHR& cap
 
 } // Anonymous namespace
 
-Swapchain::Swapchain(
-#ifdef ANDROID
-    VkSurfaceKHR surface_,
-#else
-    VkSurfaceKHR_T* surface_handle_,
-#endif
-    const Device& device_,
-    Scheduler& scheduler_,
-    u32 width_,
-    u32 height_)
-#ifdef ANDROID
-    : surface(surface_)
-#else
-    : surface_handle{surface_handle_}
-#endif
-    , device{device_}
-    , scheduler{scheduler_}
-{
-#ifdef ANDROID
-    Create(surface, width_, height_);
-#else
+Swapchain::Swapchain(VkSurfaceKHR_T* surface_handle_, const Device& device_, Scheduler& scheduler_,
+                     u32 width_, u32 height_)
+    : surface_handle{surface_handle_}, device{device_}, scheduler{scheduler_} {
     Create(surface_handle, width_, height_);
-#endif
 }
 
 Swapchain::~Swapchain() = default;
 
-void Swapchain::Create(
-#ifdef ANDROID
-    VkSurfaceKHR surface_,
-#else
-    VkSurfaceKHR_T* surface_handle_,
-#endif
-    u32 width_,
-    u32 height_)
-{
+void Swapchain::Create(VkSurfaceKHR_T* surface_handle_, u32 width_, u32 height_) {
     is_outdated = false;
     is_suboptimal = false;
     width = width_;
     height = height_;
-#ifdef ANDROID
-    surface = surface_;
-#else
     surface_handle = surface_handle_;
-#endif
 
     const auto physical_device = device.GetPhysical();
-#ifdef ANDROID
-    const auto capabilities{physical_device.GetSurfaceCapabilitiesKHR(surface)};
-#else
     const auto capabilities{physical_device.GetSurfaceCapabilitiesKHR(surface_handle)};
-#endif
     if (capabilities.maxImageExtent.width == 0 || capabilities.maxImageExtent.height == 0) {
         return;
     }
@@ -234,17 +199,10 @@ void Swapchain::Present(VkSemaphore render_semaphore) {
 
 void Swapchain::CreateSwapchain(const VkSurfaceCapabilitiesKHR& capabilities) {
     const auto physical_device{device.GetPhysical()};
-
-#ifdef ANDROID
-    const auto formats{physical_device.GetSurfaceFormatsKHR(surface)};
-    const auto present_modes = physical_device.GetSurfacePresentModesKHR(surface);
-#else
     const auto formats{physical_device.GetSurfaceFormatsKHR(surface_handle)};
     const auto present_modes = physical_device.GetSurfacePresentModesKHR(surface_handle);
-#endif
-
-    has_mailbox = std::find(present_modes.begin(), present_modes.end(), VK_PRESENT_MODE_MAILBOX_KHR)
-                  != present_modes.end();
+    has_mailbox = std::find(present_modes.begin(), present_modes.end(),
+                            VK_PRESENT_MODE_MAILBOX_KHR) != present_modes.end();
     has_imm = std::find(present_modes.begin(), present_modes.end(),
                         VK_PRESENT_MODE_IMMEDIATE_KHR) != present_modes.end();
     has_fifo_relaxed = std::find(present_modes.begin(), present_modes.end(),
@@ -270,11 +228,7 @@ void Swapchain::CreateSwapchain(const VkSurfaceCapabilitiesKHR& capabilities) {
         .sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR,
         .pNext = nullptr,
         .flags = 0,
-#ifdef ANDROID
-        .surface = surface,
-#else
         .surface = surface_handle,
-#endif
         .minImageCount = requested_image_count,
         .imageFormat = surface_format.format,
         .imageColorSpace = surface_format.colorSpace,
@@ -315,11 +269,7 @@ void Swapchain::CreateSwapchain(const VkSurfaceCapabilitiesKHR& capabilities) {
         swapchain_ci.flags |= VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR;
     }
     // Request the size again to reduce the possibility of a TOCTOU race condition.
-#ifdef ANDROID
-    const auto updated_capabilities = physical_device.GetSurfaceCapabilitiesKHR(surface);
-#else
     const auto updated_capabilities = physical_device.GetSurfaceCapabilitiesKHR(surface_handle);
-#endif
     swapchain_ci.imageExtent = ChooseSwapExtent(updated_capabilities, width, height);
     // Don't add code within this and the swapchain creation.
     swapchain = device.GetLogical().CreateSwapchainKHR(swapchain_ci);
diff --git a/src/video_core/renderer_vulkan/vk_swapchain.h b/src/video_core/renderer_vulkan/vk_swapchain.h
index b3e1c4f025..f5090c27f4 100644
--- a/src/video_core/renderer_vulkan/vk_swapchain.h
+++ b/src/video_core/renderer_vulkan/vk_swapchain.h
@@ -21,27 +21,12 @@ class Scheduler;
 
 class Swapchain {
 public:
-    explicit Swapchain(
-#ifdef ANDROID
-        VkSurfaceKHR surface,
-#else
-        VkSurfaceKHR_T* surface_handle,
-#endif
-        const Device& device,
-        Scheduler& scheduler,
-        u32 width,
-        u32 height);
+    explicit Swapchain(VkSurfaceKHR_T* surface_handle, const Device& device, Scheduler& scheduler, u32 width,
+                       u32 height);
     ~Swapchain();
 
     /// Creates (or recreates) the swapchain with a given size.
-    void Create(
-#ifdef ANDROID
-        VkSurfaceKHR surface,
-#else
-        VkSurfaceKHR_T* surface_handle,
-#endif
-        u32 width,
-        u32 height);
+    void Create(VkSurfaceKHR_T* surface_handle, u32 width, u32 height);
 
     /// Acquires the next image in the swapchain, waits as needed.
     bool AcquireNextImage();
@@ -125,12 +110,7 @@ private:
 
     bool NeedsPresentModeUpdate() const;
 
-#ifdef ANDROID
-    VkSurfaceKHR surface;
-#else
     VkSurfaceKHR_T* surface_handle;
-#endif
-
     const Device& device;
     Scheduler& scheduler;
 
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp
index f0b3ed4e6b..ff62b95919 100644
--- a/src/video_core/vulkan_common/vulkan_device.cpp
+++ b/src/video_core/vulkan_common/vulkan_device.cpp
@@ -1092,7 +1092,16 @@ bool Device::GetSuitability(bool requires_swapchain) {
 #undef EXT_FEATURE
 #undef FEATURE
 
-    // Perform the feature test.
+    if (extensions.descriptor_indexing) {
+        features.descriptor_indexing.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT;
+        features.descriptor_indexing.pNext = nullptr;
+        features.descriptor_indexing.descriptorBindingVariableDescriptorCount = VK_TRUE;
+        features.descriptor_indexing.runtimeDescriptorArray = VK_TRUE;
+        features.descriptor_indexing.descriptorBindingPartiallyBound = VK_TRUE;
+        SetNext(next, features.descriptor_indexing);
+    }
+
+           // Perform the feature test.
     physical.GetFeatures2(features2);
 
     // Base Vulkan 1.0 features are always valid regardless of instance version.
diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h
index ddc9451a7e..2a12219d48 100644
--- a/src/video_core/vulkan_common/vulkan_device.h
+++ b/src/video_core/vulkan_common/vulkan_device.h
@@ -42,6 +42,7 @@ VK_DEFINE_HANDLE(VmaAllocator)
 #define FOR_EACH_VK_FEATURE_EXT(FEATURE)                                                           \
     FEATURE(EXT, CustomBorderColor, CUSTOM_BORDER_COLOR, custom_border_color)                      \
     FEATURE(EXT, DepthBiasControl, DEPTH_BIAS_CONTROL, depth_bias_control)                         \
+    FEATURE(EXT, DescriptorIndexing, DESCRIPTOR_INDEXING, descriptor_indexing)                     \
     FEATURE(EXT, DepthClipControl, DEPTH_CLIP_CONTROL, depth_clip_control)                         \
     FEATURE(EXT, ExtendedDynamicState, EXTENDED_DYNAMIC_STATE, extended_dynamic_state)             \
     FEATURE(EXT, ExtendedDynamicState2, EXTENDED_DYNAMIC_STATE_2, extended_dynamic_state2)         \
@@ -100,6 +101,7 @@ VK_DEFINE_HANDLE(VmaAllocator)
     EXTENSION_NAME(VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME)                               \
     EXTENSION_NAME(VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME)                                       \
     EXTENSION_NAME(VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME)                                 \
+    EXTENSION_NAME(VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME)                                      \
     EXTENSION_NAME(VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME)                                   \
     EXTENSION_NAME(VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME)                                 \
     EXTENSION_NAME(VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME)                                 \
@@ -154,6 +156,13 @@ VK_DEFINE_HANDLE(VmaAllocator)
     FEATURE_NAME(depth_bias_control, depthBiasControl)                                             \
     FEATURE_NAME(depth_bias_control, leastRepresentableValueForceUnormRepresentation)              \
     FEATURE_NAME(depth_bias_control, depthBiasExact)                                               \
+    FEATURE_NAME(descriptor_indexing, descriptorBindingPartiallyBound)                             \
+    FEATURE_NAME(descriptor_indexing, descriptorBindingVariableDescriptorCount)                    \
+    FEATURE_NAME(descriptor_indexing, runtimeDescriptorArray)                                      \
+    FEATURE_NAME(descriptor_indexing, descriptorBindingVariableDescriptorCount)                    \
+    FEATURE_NAME(descriptor_indexing, shaderSampledImageArrayNonUniformIndexing)                   \
+    FEATURE_NAME(descriptor_indexing, shaderStorageBufferArrayNonUniformIndexing)                  \
+    FEATURE_NAME(descriptor_indexing, shaderStorageImageArrayNonUniformIndexing)                   \
     FEATURE_NAME(extended_dynamic_state, extendedDynamicState)                                     \
     FEATURE_NAME(format_a4b4g4r4, formatA4B4G4R4)                                                  \
     FEATURE_NAME(index_type_uint8, indexTypeUint8)                                                 \
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h
index 4607bf516c..aa9fb8e17b 100644
--- a/src/video_core/vulkan_common/vulkan_wrapper.h
+++ b/src/video_core/vulkan_common/vulkan_wrapper.h
@@ -430,7 +430,6 @@ public:
         return handle != nullptr;
     }
 
-#ifndef ANDROID
     /**
      * Releases ownership of the managed handle.
      * The caller is responsible for managing the lifetime of the returned handle.
@@ -439,7 +438,6 @@ public:
     Type release() noexcept {
         return std::exchange(handle, nullptr);
     }
-#endif
 
 protected:
     Type handle = nullptr;
@@ -512,7 +510,6 @@ public:
         return handle != nullptr;
     }
 
-#ifndef ANDROID
     /**
      * Releases ownership of the managed handle.
      * The caller is responsible for managing the lifetime of the returned handle.
@@ -521,7 +518,6 @@ public:
     Type release() noexcept {
         return std::exchange(handle, nullptr);
     }
-#endif
 
 protected:
     Type handle = nullptr;
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index 83ca3307fc..15b898279b 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -238,8 +238,6 @@ add_executable(yuzu
     yuzu.qrc
     yuzu.rc
     migration_dialog.h migration_dialog.cpp
-    migration_worker.h
-    migration_worker.cpp
 )
 
 set_target_properties(yuzu PROPERTIES OUTPUT_NAME "eden")
@@ -450,12 +448,12 @@ if(UNIX AND NOT APPLE)
     install(TARGETS yuzu)
 endif()
 
-if (WIN32 AND USE_SYSTEM_QT AND QT_VERSION VERSION_GREATER_EQUAL 6)
+if (WIN32 AND QT_VERSION VERSION_GREATER_EQUAL 6)
     set(YUZU_EXE_DIR "$<TARGET_FILE_DIR:yuzu>")
-    add_custom_command(TARGET yuzu POST_BUILD COMMAND ${WINDEPLOYQT_EXECUTABLE} "${YUZU_EXE_DIR}/eden.exe" --dir "${YUZU_EXE_DIR}" --libdir "${YUZU_EXE_DIR}" --plugindir "${YUZU_EXE_DIR}/plugins" --no-compiler-runtime --no-opengl-sw --no-system-d3d-compiler --no-translations --verbose 0)
+    add_custom_command(TARGET yuzu POST_BUILD COMMAND ${WINDEPLOYQT_EXECUTABLE} "${YUZU_EXE_DIR}/yuzu.exe" --dir "${YUZU_EXE_DIR}" --libdir "${YUZU_EXE_DIR}" --plugindir "${YUZU_EXE_DIR}/plugins" --no-compiler-runtime --no-opengl-sw --no-system-d3d-compiler --no-translations --verbose 0)
 endif()
 
-if (NOT USE_SYSTEM_QT)
+if (YUZU_USE_BUNDLED_QT)
     include(CopyYuzuQt6Deps)
     copy_yuzu_Qt6_deps(yuzu)
 endif()
diff --git a/src/yuzu/aboutdialog.ui b/src/yuzu/aboutdialog.ui
index 46cdd28e63..e6f269ee69 100644
--- a/src/yuzu/aboutdialog.ui
+++ b/src/yuzu/aboutdialog.ui
@@ -128,7 +128,7 @@ li.checked::marker { content: &quot;\2612&quot;; }
        <item>
         <widget class="QLabel" name="labelLinks">
          <property name="text">
-          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://eden-emulator.github.io/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Website&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://git.eden-emu.dev&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Source Code&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://git.eden-emu.dev/eden-emu/eden/activity/contributors&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Contributors&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://git.eden-emu.dev/eden-emu/eden/src/branch/master/LICENSE.txt&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;License&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://yuzu-emu.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Website&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Source Code&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/graphs/contributors&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Contributors&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/blob/master/LICENSE.txt&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;License&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
          </property>
          <property name="openExternalLinks">
           <bool>true</bool>
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp
index 8d773753c1..06ebb36442 100644
--- a/src/yuzu/bootmanager.cpp
+++ b/src/yuzu/bootmanager.cpp
@@ -286,7 +286,7 @@ GRenderWindow::GRenderWindow(GMainWindow* parent, EmuThread* emu_thread_,
                              Core::System& system_)
     : QWidget(parent),
       emu_thread(emu_thread_), input_subsystem{std::move(input_subsystem_)}, system{system_} {
-    setWindowTitle(QStringLiteral("eden %1 | %2-%3")
+    setWindowTitle(QStringLiteral("yuzu %1 | %2-%3")
                        .arg(QString::fromUtf8(Common::g_build_name),
                             QString::fromUtf8(Common::g_scm_branch),
                             QString::fromUtf8(Common::g_scm_desc)));
@@ -1137,4 +1137,4 @@ bool GRenderWindow::eventFilter(QObject* object, QEvent* event) {
         emit MouseActivity();
     }
     return false;
-}
+}
\ No newline at end of file
diff --git a/src/yuzu/compatdb.ui b/src/yuzu/compatdb.ui
index 6a2632a1ce..d11669df26 100644
--- a/src/yuzu/compatdb.ui
+++ b/src/yuzu/compatdb.ui
@@ -20,7 +20,7 @@
    <string>Report Compatibility</string>
   </property>
   <property name="options">
-   <set>QWizard::WizardOption::DisabledBackButtonOnLastPage|QWizard::WizardOption::HelpButtonOnRight|QWizard::WizardOption::NoBackButtonOnStartPage</set>
+   <set>QWizard::DisabledBackButtonOnLastPage|QWizard::HelpButtonOnRight|QWizard::NoBackButtonOnStartPage</set>
   </property>
   <widget class="QWizardPage" name="wizard_Info">
    <property name="title">
@@ -33,7 +33,7 @@
     <item>
      <widget class="QLabel" name="lbl_Spiel">
       <property name="text">
-       <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Should you choose to submit a test case to the &lt;/span&gt;&lt;a href=&quot;https://eden-emulator.github.io/game/&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;eden Compatibility List&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;, The following information will be collected and displayed on the site:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Hardware Information (CPU / GPU / Operating System)&lt;/li&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Which version of eden you are running&lt;/li&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;The connected eden account&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</string>
+       <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Should you choose to submit a test case to the &lt;/span&gt;&lt;a href=&quot;https://yuzu-emu.org/game/&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;yuzu Compatibility List&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;, The following information will be collected and displayed on the site:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Hardware Information (CPU / GPU / Operating System)&lt;/li&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Which version of yuzu you are running&lt;/li&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;The connected yuzu account&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</string>
       </property>
       <property name="wordWrap">
        <bool>true</bool>
@@ -46,7 +46,7 @@
     <item>
      <spacer name="verticalSpacer_2">
       <property name="orientation">
-       <enum>Qt::Orientation::Vertical</enum>
+       <enum>Qt::Vertical</enum>
       </property>
       <property name="sizeHint" stdset="0">
        <size>
@@ -84,7 +84,7 @@
     <item row="1" column="0" colspan="2">
      <spacer name="verticalSpacer1">
       <property name="orientation">
-       <enum>Qt::Orientation::Vertical</enum>
+       <enum>Qt::Vertical</enum>
       </property>
       <property name="sizeHint" stdset="0">
        <size>
@@ -150,7 +150,7 @@
     <item row="1" column="0" colspan="2">
      <spacer name="verticalSpacer2">
       <property name="orientation">
-       <enum>Qt::Orientation::Vertical</enum>
+       <enum>Qt::Vertical</enum>
       </property>
       <property name="sizeHint" stdset="0">
        <size>
@@ -202,7 +202,7 @@
     <item row="1" column="0" colspan="2">
      <spacer name="verticalSpacer3">
       <property name="orientation">
-       <enum>Qt::Orientation::Vertical</enum>
+       <enum>Qt::Vertical</enum>
       </property>
       <property name="sizeHint" stdset="0">
        <size>
@@ -254,7 +254,7 @@
     <item row="1" column="0" colspan="2">
      <spacer name="verticalSpacer4">
       <property name="orientation">
-       <enum>Qt::Orientation::Vertical</enum>
+       <enum>Qt::Vertical</enum>
       </property>
       <property name="sizeHint" stdset="0">
        <size>
@@ -313,7 +313,7 @@
     <item row="1" column="0" colspan="2">
      <spacer name="verticalSpacer5">
       <property name="orientation">
-       <enum>Qt::Orientation::Vertical</enum>
+       <enum>Qt::Vertical</enum>
       </property>
       <property name="sizeHint" stdset="0">
        <size>
@@ -372,7 +372,7 @@
     <item row="1" column="0" colspan="2">
      <spacer name="verticalSpacer6">
       <property name="orientation">
-       <enum>Qt::Orientation::Vertical</enum>
+       <enum>Qt::Vertical</enum>
       </property>
       <property name="sizeHint" stdset="0">
        <size>
diff --git a/src/yuzu/configuration/configure_debug.ui b/src/yuzu/configuration/configure_debug.ui
index 3a54d93b7b..68c5a67b24 100644
--- a/src/yuzu/configuration/configure_debug.ui
+++ b/src/yuzu/configuration/configure_debug.ui
@@ -424,7 +424,7 @@
          <item row="6" column="0">
           <widget class="QCheckBox" name="use_auto_stub">
            <property name="text">
-            <string>Enable Auto-Stub</string>
+            <string>Enable Auto-Stub**</string>
            </property>
           </widget>
          </item>
@@ -553,7 +553,7 @@
        </font>
       </property>
       <property name="text">
-       <string>**This will be reset automatically when eden closes.</string>
+       <string>**This will be reset automatically when yuzu closes.</string>
       </property>
       <property name="indent">
        <number>20</number>
diff --git a/src/yuzu/configuration/configure_graphics_extensions.ui b/src/yuzu/configuration/configure_graphics_extensions.ui
index df44b6c353..e9f5ace53e 100644
--- a/src/yuzu/configuration/configure_graphics_extensions.ui
+++ b/src/yuzu/configuration/configure_graphics_extensions.ui
@@ -29,7 +29,7 @@
          <widget class="QLabel" name="label">
           <property name="text">
            <string>While it's recommended to use state 3, some games may perform better on lower states. Setting to 0 (disabled) may also break games.
-If your GPU is older (i.e. RX570/580 or older), it may not support these features. If this is the case, set the slider to 0 and uncheck all boxes.</string>
+If your device doesn't support the selected state, the renderer will automatically disable the unsupported states.</string>
           </property>
           <property name="wordWrap">
            <bool>true</bool>
diff --git a/src/yuzu/configuration/configure_input_advanced.ui b/src/yuzu/configuration/configure_input_advanced.ui
index 2bdd137b08..2994d0ab48 100644
--- a/src/yuzu/configuration/configure_input_advanced.ui
+++ b/src/yuzu/configuration/configure_input_advanced.ui
@@ -2656,7 +2656,7 @@
                    <item row="2" column="0">
                      <widget class="QCheckBox" name="enable_raw_input">
                        <property name="toolTip">
-                         <string>Requires restarting eden</string>
+                         <string>Requires restarting yuzu</string>
                        </property>
                        <property name="minimumSize">
                          <size>
@@ -2698,7 +2698,7 @@
                    <item row="5" column="0">
                       <widget class="QCheckBox" name="enable_joycon_driver">
                        <property name="toolTip">
-                         <string>Requires restarting eden</string>
+                         <string>Requires restarting yuzu</string>
                        </property>
                        <property name="minimumSize">
                          <size>
@@ -2714,7 +2714,7 @@
                    <item row="6" column="0">
                       <widget class="QCheckBox" name="enable_procon_driver">
                        <property name="toolTip">
-                         <string>Requires restarting eden</string>
+                         <string>Requires restarting yuzu</string>
                        </property>
                        <property name="minimumSize">
                          <size>
diff --git a/src/yuzu/configuration/configure_input_player.ui b/src/yuzu/configuration/configure_input_player.ui
index b8e0465386..012379a477 100644
--- a/src/yuzu/configuration/configure_input_player.ui
+++ b/src/yuzu/configuration/configure_input_player.ui
@@ -1363,55 +1363,6 @@
                </layout>
               </widget>
              </item>
-             <item>
-              <widget class="QGroupBox" name="buttonMiscButtonsMinusGroup">
-               <property name="title">
-                <string>Minus</string>
-               </property>
-               <property name="alignment">
-                <set>Qt::AlignmentFlag::AlignCenter</set>
-               </property>
-               <layout class="QVBoxLayout" name="buttonMiscMinusVerticalLayout">
-                <property name="spacing">
-                 <number>3</number>
-                </property>
-                <property name="leftMargin">
-                 <number>3</number>
-                </property>
-                <property name="topMargin">
-                 <number>3</number>
-                </property>
-                <property name="rightMargin">
-                 <number>3</number>
-                </property>
-                <property name="bottomMargin">
-                 <number>3</number>
-                </property>
-                <item>
-                 <widget class="QPushButton" name="buttonMinus">
-                  <property name="minimumSize">
-                   <size>
-                    <width>70</width>
-                    <height>0</height>
-                   </size>
-                  </property>
-                  <property name="maximumSize">
-                   <size>
-                    <width>68</width>
-                    <height>16777215</height>
-                   </size>
-                  </property>
-                  <property name="styleSheet">
-                   <string notr="true">min-width: 68px;</string>
-                  </property>
-                  <property name="text">
-                   <string>Minus</string>
-                  </property>
-                 </widget>
-                </item>
-               </layout>
-              </widget>
-             </item>
              <item>
               <widget class="QGroupBox" name="buttonMiscButtonsPlusGroup">
                <property name="title">
@@ -1461,6 +1412,55 @@
                </layout>
               </widget>
              </item>
+             <item>
+              <widget class="QGroupBox" name="buttonMiscButtonsMinusGroup">
+               <property name="title">
+                <string>Minus</string>
+               </property>
+               <property name="alignment">
+                <set>Qt::AlignmentFlag::AlignCenter</set>
+               </property>
+               <layout class="QVBoxLayout" name="buttonMiscMinusVerticalLayout">
+                <property name="spacing">
+                 <number>3</number>
+                </property>
+                <property name="leftMargin">
+                 <number>3</number>
+                </property>
+                <property name="topMargin">
+                 <number>3</number>
+                </property>
+                <property name="rightMargin">
+                 <number>3</number>
+                </property>
+                <property name="bottomMargin">
+                 <number>3</number>
+                </property>
+                <item>
+                 <widget class="QPushButton" name="buttonMinus">
+                  <property name="minimumSize">
+                   <size>
+                    <width>70</width>
+                    <height>0</height>
+                   </size>
+                  </property>
+                  <property name="maximumSize">
+                   <size>
+                    <width>68</width>
+                    <height>16777215</height>
+                   </size>
+                  </property>
+                  <property name="styleSheet">
+                   <string notr="true">min-width: 68px;</string>
+                  </property>
+                  <property name="text">
+                   <string>Minus</string>
+                  </property>
+                 </widget>
+                </item>
+               </layout>
+              </widget>
+             </item>
              <item>
               <widget class="QWidget" name="horizontalSpacerShoulderButtonsWidget3" native="true">
                <layout class="QHBoxLayout" name="horizontalSpacerShoulderButtonsWidget3Layout">
diff --git a/src/yuzu/configuration/configure_motion_touch.cpp b/src/yuzu/configuration/configure_motion_touch.cpp
index 7a1cee463b..6372ed4812 100644
--- a/src/yuzu/configuration/configure_motion_touch.cpp
+++ b/src/yuzu/configuration/configure_motion_touch.cpp
@@ -85,7 +85,7 @@ ConfigureMotionTouch::ConfigureMotionTouch(QWidget* parent,
     ui->udp_learn_more->setOpenExternalLinks(true);
     ui->udp_learn_more->setText(
         tr("<a "
-           "href='https://eden-emulator.github.io/wiki/"
+           "href='https://yuzu-emu.org/wiki/"
            "using-a-controller-or-android-phone-for-motion-or-touch-input'><span "
            "style=\"text-decoration: underline; color:#039be5;\">Learn More</span></a>"));
 
diff --git a/src/yuzu/configuration/configure_tas.ui b/src/yuzu/configuration/configure_tas.ui
index d24f54b77b..625af0c891 100644
--- a/src/yuzu/configuration/configure_tas.ui
+++ b/src/yuzu/configuration/configure_tas.ui
@@ -14,7 +14,7 @@
         <item row="0" column="0" colspan="4">
          <widget class="QLabel" name="label_1">
           <property name="text">
-           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Reads controller input from scripts in the same format as TAS-nx scripts.&lt;br/&gt;For a more detailed explanation, please consult the &lt;a href=&quot;https://eden-emulator.github.io/help/feature/tas/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;help page&lt;/span&gt;&lt;/a&gt; on the eden website.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+           <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Reads controller input from scripts in the same format as TAS-nx scripts.&lt;br/&gt;For a more detailed explanation, please consult the &lt;a href=&quot;https://yuzu-emu.org/help/feature/tas/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;help page&lt;/span&gt;&lt;/a&gt; on the yuzu website.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
           </property>
           <property name="openExternalLinks">
            <bool>true</bool>
diff --git a/src/yuzu/configuration/configure_touchscreen_advanced.ui b/src/yuzu/configuration/configure_touchscreen_advanced.ui
index 6dce2e0097..88e7cf0506 100644
--- a/src/yuzu/configuration/configure_touchscreen_advanced.ui
+++ b/src/yuzu/configuration/configure_touchscreen_advanced.ui
@@ -23,7 +23,7 @@
       </size>
      </property>
      <property name="text">
-      <string>Warning: The settings in this page affect the inner workings of eden's emulated touchscreen. Changing them may result in undesirable behavior, such as the touchscreen partially or not working. You should only use this page if you know what you are doing.</string>
+      <string>Warning: The settings in this page affect the inner workings of yuzu's emulated touchscreen. Changing them may result in undesirable behavior, such as the touchscreen partially or not working. You should only use this page if you know what you are doing.</string>
      </property>
      <property name="wordWrap">
       <bool>true</bool>
diff --git a/src/yuzu/configuration/configure_web.cpp b/src/yuzu/configuration/configure_web.cpp
index a513e1c1b0..1f579a21e2 100644
--- a/src/yuzu/configuration/configure_web.cpp
+++ b/src/yuzu/configuration/configure_web.cpp
@@ -66,7 +66,7 @@ void ConfigureWeb::RetranslateUI() {
            "color:#039be5;\">Sign up</span></a>"));
 
     ui->web_token_info_link->setText(
-        tr("<a href='https://eden-emulator.github.io/wiki/yuzu-web-service/'><span style=\"text-decoration: "
+        tr("<a href='https://yuzu-emu.org/wiki/yuzu-web-service/'><span style=\"text-decoration: "
            "underline; color:#039be5;\">What is my token?</span></a>"));
 }
 
diff --git a/src/yuzu/configuration/configure_web.ui b/src/yuzu/configuration/configure_web.ui
index 942fb05b26..af86e476e1 100644
--- a/src/yuzu/configuration/configure_web.ui
+++ b/src/yuzu/configuration/configure_web.ui
@@ -22,13 +22,13 @@
      <item>
       <widget class="QGroupBox" name="groupBoxWebConfig">
        <property name="title">
-        <string>eden Web Service</string>
+        <string>yuzu Web Service</string>
        </property>
        <layout class="QVBoxLayout" name="verticalLayoutYuzuWebService">
         <item>
          <widget class="QLabel" name="web_credentials_disclaimer">
           <property name="text">
-           <string>By providing your username and token, you agree to allow eden to collect additional usage data, which may include user identifying information.</string>
+           <string>By providing your username and token, you agree to allow yuzu to collect additional usage data, which may include user identifying information.</string>
           </property>
          </widget>
         </item>
diff --git a/src/yuzu/configuration/shared_translation.cpp b/src/yuzu/configuration/shared_translation.cpp
index 02bb9a322f..6307daeb5a 100644
--- a/src/yuzu/configuration/shared_translation.cpp
+++ b/src/yuzu/configuration/shared_translation.cpp
@@ -289,10 +289,10 @@ std::unique_ptr<TranslationMap> InitializeTranslations(QWidget* parent) {
 
     // Ui General
     INSERT(UISettings, select_user_on_boot, tr("Prompt for user on game boot"),
-           tr("Ask to select a user profile on each boot, useful if multiple people use eden on "
+           tr("Ask to select a user profile on each boot, useful if multiple people use yuzu on "
               "the same PC."));
     INSERT(UISettings, pause_when_in_background, tr("Pause emulation when in background"),
-           tr("This setting pauses eden when focusing other windows."));
+           tr("This setting pauses yuzu when focusing other windows."));
     INSERT(UISettings, confirm_before_stopping, tr("Confirm before stopping emulation"),
            tr("This setting overrides game prompts asking to confirm stopping the game.\nEnabling "
               "it bypasses such prompts and directly exits the emulation."));
@@ -544,9 +544,7 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
                           {
                               PAIR(MemoryLayout, Memory_4Gb, tr("4GB DRAM (Default)")),
                               PAIR(MemoryLayout, Memory_6Gb, tr("6GB DRAM (Unsafe)")),
-                              PAIR(MemoryLayout, Memory_8Gb, tr("8GB DRAM")),
-                              PAIR(MemoryLayout, Memory_10Gb, tr("10GB DRAM (Unsafe)")),
-                              PAIR(MemoryLayout, Memory_12Gb, tr("12GB DRAM (Unsafe)")),
+                              PAIR(MemoryLayout, Memory_8Gb, tr("8GB DRAM (Unsafe)")),
                           }});
     translations->insert({Settings::EnumMetadata<Settings::ConsoleMode>::Index(),
                           {
diff --git a/src/yuzu/discord_impl.cpp b/src/yuzu/discord_impl.cpp
index 7ed400c955..57b50abd0d 100644
--- a/src/yuzu/discord_impl.cpp
+++ b/src/yuzu/discord_impl.cpp
@@ -16,6 +16,7 @@
 #include "core/core.h"
 #include "core/loader/loader.h"
 #include "yuzu/discord_impl.h"
+#include "yuzu/uisettings.h"
 
 namespace DiscordRPC {
 
@@ -23,7 +24,7 @@ DiscordImpl::DiscordImpl(Core::System& system_) : system{system_} {
     DiscordEventHandlers handlers{};
     // The number is the client ID for yuzu, it's used for images and the
     // application name
-    Discord_Initialize("1371246384434380841", &handlers, 1, nullptr);
+    Discord_Initialize("712465656758665259", &handlers, 1, nullptr);
 }
 
 DiscordImpl::~DiscordImpl() {
@@ -61,9 +62,8 @@ std::string DiscordImpl::GetGameString(const std::string& title) {
 }
 
 void DiscordImpl::UpdateGameStatus(bool use_default) {
-    const std::string default_text = "eden is an emulator for the Nintendo Switch";
-    const std::string default_image = "https://git.eden-emu.dev/eden-emu/eden/raw/branch/master/"
-                                      "dist/qt_themes/default/icons/256x256/eden_named.png";
+    const std::string default_text = "yuzu is an emulator for the Nintendo Switch";
+    const std::string default_image = "yuzu_logo";
     const std::string url = use_default ? default_image : game_url;
     s64 start_time = std::chrono::duration_cast<std::chrono::seconds>(
                          std::chrono::system_clock::now().time_since_epoch())
@@ -81,18 +81,15 @@ void DiscordImpl::UpdateGameStatus(bool use_default) {
 }
 
 void DiscordImpl::Update() {
-    const std::string default_text = "eden is an emulator for the Nintendo Switch";
-    const std::string default_image = "https://git.eden-emu.dev/eden-emu/eden/raw/branch/master/"
-                                      "dist/qt_themes/default/icons/256x256/eden_named.png";
+    const std::string default_text = "yuzu is an emulator for the Nintendo Switch";
+    const std::string default_image = "yuzu_logo";
 
     if (system.IsPoweredOn()) {
         system.GetAppLoader().ReadTitle(game_title);
 
         // Used to format Icon URL for yuzu website game compatibility page
         std::string icon_name = GetGameString(game_title);
-        game_url = fmt::format(
-            "https://raw.githubusercontent.com/eden-emulator/boxart/refs/heads/master/img/{}.png",
-            icon_name);
+        game_url = fmt::format("https://yuzu-emu.org/images/game/boxart/{}.png", icon_name);
 
         QNetworkAccessManager manager;
         QNetworkRequest request;
@@ -103,7 +100,6 @@ void DiscordImpl::Update() {
         QObject::connect(reply, &QNetworkReply::finished, &request_event_loop, &QEventLoop::quit);
         request_event_loop.exec();
         UpdateGameStatus(reply->error());
-
         return;
     }
 
diff --git a/src/yuzu/game_list.cpp b/src/yuzu/game_list.cpp
index ced89a6287..30a6886d73 100644
--- a/src/yuzu/game_list.cpp
+++ b/src/yuzu/game_list.cpp
@@ -374,36 +374,20 @@ GameList::GameList(FileSys::VirtualFilesystem vfs_, FileSys::ManualContentProvid
     warning_layout = new QHBoxLayout;
     pre_alpha_warning = new QLabel;
     pre_alpha_warning->setText(
-        tr("IMPORTANT: Eden is PRE-ALPHA SOFTWARE. "
+        tr("IMPORTANT: Eden is PRE-ALPHA SOFTWARE."
            "Bugs and unfinished features are expected to be present at this stage."));
     pre_alpha_warning->setWordWrap(true);
     pre_alpha_warning->setOpenExternalLinks(true);
     pre_alpha_warning->setStyleSheet(
         QString::fromStdString("color: black; font-weight: bold;"));
 
-    warning_dont_show_again = new QPushButton(this);
-    warning_dont_show_again->setStyleSheet(
-        QString::fromStdString("color: #DFDFDF; background-color: #383838;"));
-    warning_dont_show_again->setText(tr("Don't Show Again"));
-    connect(warning_dont_show_again, &QPushButton::clicked, this, [=, this] {
-        Settings::values.hide_pre_alpha_warning.SetValue(true);
-
-        layout->removeWidget(warning_widget);
-        warning_widget->hide();
-    });
-
-    warning_layout->addWidget(pre_alpha_warning, 1);
-    warning_layout->addWidget(warning_dont_show_again);
+    warning_layout->addWidget(pre_alpha_warning);
     warning_layout->setContentsMargins(3, 3, 3, 3);
     warning_widget = new QWidget;
     warning_widget->setStyleSheet(QString::fromStdString("background-color: khaki;"));
     warning_widget->setLayout(warning_layout);
 
-    if (!Settings::values.hide_pre_alpha_warning.GetValue()) {
-        layout->addWidget(warning_widget);
-    } else {
-        warning_widget->hide();
-    }
+    layout->addWidget(warning_widget);
 
     layout->addWidget(tree_view);
     layout->addWidget(search_field);
diff --git a/src/yuzu/game_list.h b/src/yuzu/game_list.h
index a7f0201709..d51110758a 100644
--- a/src/yuzu/game_list.h
+++ b/src/yuzu/game_list.h
@@ -7,7 +7,6 @@
 #include <QLabel>
 #include <QLineEdit>
 #include <QList>
-#include <QPushButton>
 #include <QStandardItemModel>
 #include <QString>
 #include <QTreeView>
@@ -173,10 +172,8 @@ private:
     QFileSystemWatcher* watcher = nullptr;
     ControllerNavigation* controller_navigation = nullptr;
     CompatibilityList compatibility_list;
-
     QHBoxLayout* warning_layout = nullptr;
     QWidget* warning_widget = nullptr;
-    QPushButton* warning_dont_show_again = nullptr;
     QLabel* pre_alpha_warning = nullptr;
 
     friend class GameListSearchField;
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 497c519f74..8cd20a452d 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -439,7 +439,7 @@ GMainWindow::GMainWindow(bool has_broken_vulkan)
 
         QMessageBox::warning(this, tr("Broken Vulkan Installation Detected"),
                              tr("Vulkan initialization failed during boot.<br><br>Click <a "
-                                "href='https://eden-emulator.github.io/wiki/faq/"
+                                "href='https://yuzu-emu.org/wiki/faq/"
                                 "#yuzu-starts-with-the-error-broken-vulkan-installation-detected'>"
                                 "here for instructions to fix the issue</a>."));
 
@@ -1592,7 +1592,6 @@ void GMainWindow::ConnectMenuEvents() {
 
     // Help
     connect_menu(ui->action_Open_yuzu_Folder, &GMainWindow::OnOpenYuzuFolder);
-    connect_menu(ui->action_Discord, &GMainWindow::OnOpenDiscord);
     connect_menu(ui->action_Verify_installed_contents, &GMainWindow::OnVerifyInstalledContents);
     connect_menu(ui->action_Install_Firmware, &GMainWindow::OnInstallFirmware);
     connect_menu(ui->action_Install_Keys, &GMainWindow::OnInstallDecryptionKeys);
@@ -1807,11 +1806,11 @@ bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletPa
             msg->setWindowTitle(tr("Game Updates Warning"));
             msg->setIcon(QMessageBox::Warning);
             msg->setText(tr("The game you are trying to launch is known to have performance or booting "
-                            "issues when updates are applied. Please try increasing the memory layout to "
-                            "6GB or 8GB if any issues occur.<br><br>Press \"OK\" to continue launching, or "
-                            "\"Cancel\" to cancel the launch."));
-
-            // TODO: TMP: Recommends more memory for TotK.
+                            "issues when updates are applied. It's recommended to disable any updates "
+                            "to this game before attempting to launch, or switch to an earlier update. "
+                            "If you don't have any updates installed or enabled, you can safely ignore "
+                            "this message.<br><br>Press \"OK\" to continue launching, or \"Cancel\" to "
+                            "cancel the launch."));
 
             msg->setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);
 
@@ -1860,7 +1859,7 @@ bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletPa
                        "outdated format that has been superseded by others such as NCA, NAX, XCI, or "
                        "NSP. Deconstructed ROM directories lack icons, metadata, and update "
                        "support.<br><br>For an explanation of the various Switch formats eden supports, <a "
-                       "href='https://eden-emulator.github.io/wiki/overview-of-switch-game-formats'>check out our "
+                       "href='https://yuzu-emu.org/wiki/overview-of-switch-game-formats'>check out our "
                        "wiki</a>. This message will not be shown again."));
     }
 
@@ -1878,7 +1877,7 @@ bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletPa
                            "This is usually caused by outdated GPU drivers, including integrated ones. "
                            "Please see the log for more details. "
                            "For more information on accessing the log, please see the following page: "
-                           "<a href='https://eden-emulator.github.io/help/reference/log-files/'>"
+                           "<a href='https://yuzu-emu.org/help/reference/log-files/'>"
                            "How to Upload the Log File</a>. "));
             break;
         default:
@@ -2883,7 +2882,7 @@ void GMainWindow::OnGameListNavigateToGamedbEntry(u64 program_id,
         directory = it->second.second;
     }
 
-    QDesktopServices::openUrl(QUrl(QStringLiteral("https://eden-emulator.github.io/game/") + directory));
+    QDesktopServices::openUrl(QUrl(QStringLiteral("https://yuzu-emu.org/game/") + directory));
 }
 
 bool GMainWindow::CreateShortcutLink(const std::filesystem::path& shortcut_path,
@@ -3041,8 +3040,8 @@ bool GMainWindow::MakeShortcutIcoPath(const u64 program_id, const std::string_vi
     }
 
     // Create icon file path
-    out_icon_path /= (program_id == 0 ? fmt::format("eden-{}.{}", game_file_name, ico_extension)
-                                      : fmt::format("eden-{:016X}.{}", program_id, ico_extension));
+    out_icon_path /= (program_id == 0 ? fmt::format("yuzu-{}.{}", game_file_name, ico_extension)
+                                      : fmt::format("yuzu-{:016X}.{}", program_id, ico_extension));
     return true;
 }
 
@@ -3597,8 +3596,8 @@ void GMainWindow::OnMenuReportCompatibility() {
     } else {
         QMessageBox::critical(
                     this, tr("Missing yuzu Account"),
-                    tr("In order to submit a game compatibility test case, you must link your eden "
-                       "account.<br><br/>To link your eden account, go to Emulation &gt; Configuration "
+                    tr("In order to submit a game compatibility test case, you must link your yuzu "
+                       "account.<br><br/>To link your yuzu account, go to Emulation &gt; Configuration "
                        "&gt; "
                        "Web."));
     }
@@ -3622,16 +3621,11 @@ void GMainWindow::OnOpenModsPage() {
 }
 
 void GMainWindow::OnOpenQuickstartGuide() {
-    OpenURL(QUrl(QStringLiteral("https://yuzu-mirror.github.io/help/quickstart/")));
+    OpenURL(QUrl(QStringLiteral("https://yuzu-emu.org/help/quickstart/")));
 }
 
 void GMainWindow::OnOpenFAQ() {
-    OpenURL(QUrl(QStringLiteral("https://eden-emulator.github.io/")));
-}
-
-void GMainWindow::OnOpenDiscord()
-{
-    OpenURL(QUrl(QStringLiteral("https://discord.gg/edenemu")));
+    OpenURL(QUrl(QStringLiteral("https://yuzu-emu.org/wiki/faq/")));
 }
 
 void GMainWindow::ToggleFullscreen() {
@@ -4205,7 +4199,7 @@ void GMainWindow::OnInstallFirmware() {
     if (!ContentManager::AreKeysPresent()) {
         QMessageBox::information(
                     this, tr("Keys not installed"),
-                    tr("Install decryption keys and restart eden before attempting to install firmware."));
+                    tr("Install decryption keys and restart yuzu before attempting to install firmware."));
         return;
     }
 
diff --git a/src/yuzu/main.h b/src/yuzu/main.h
index 5afec3d199..a6e3bbaa6c 100644
--- a/src/yuzu/main.h
+++ b/src/yuzu/main.h
@@ -338,7 +338,6 @@ private slots:
     void OnOpenModsPage();
     void OnOpenQuickstartGuide();
     void OnOpenFAQ();
-    void OnOpenDiscord();
     /// Called whenever a user selects a game in the game list widget.
     void OnGameListLoadFile(QString game_path, u64 program_id);
     void OnGameListOpenFolder(u64 program_id, GameListOpenTarget target,
diff --git a/src/yuzu/main.ui b/src/yuzu/main.ui
index fbecd9eee3..03078c0126 100644
--- a/src/yuzu/main.ui
+++ b/src/yuzu/main.ui
@@ -188,7 +188,6 @@
     <addaction name="action_Open_FAQ"/>
     <addaction name="separator"/>
     <addaction name="action_About"/>
-    <addaction name="action_Discord"/>
    </widget>
    <addaction name="menu_File"/>
    <addaction name="menu_Emulation"/>
@@ -485,11 +484,6 @@
     <string>Open Home Menu</string>
    </property>
   </action>
-  <action name="action_Discord">
-   <property name="text">
-    <string>&amp;Discord</string>
-   </property>
-  </action>
  </widget>
  <resources>
   <include location="yuzu.qrc"/>
diff --git a/src/yuzu/migration_worker.cpp b/src/yuzu/migration_worker.cpp
deleted file mode 100644
index 2bb6eee944..0000000000
--- a/src/yuzu/migration_worker.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-#include "migration_worker.h"
-
-#include <filesystem>
-
-#include "common/fs/path_util.h"
-
-MigrationWorker::MigrationWorker(const LegacyEmu selected_legacy_emu_,
-                                 const bool clear_shader_cache_,
-                                 const MigrationStrategy strategy_)
-    : QObject()
-    , selected_legacy_emu(selected_legacy_emu_)
-    , clear_shader_cache(clear_shader_cache_)
-    , strategy(strategy_)
-{}
-
-void MigrationWorker::process()
-{
-    namespace fs = std::filesystem;
-    const auto copy_options = fs::copy_options::update_existing | fs::copy_options::recursive;
-
-    std::string legacy_user_dir;
-    std::string legacy_config_dir;
-    std::string legacy_cache_dir;
-
-#define LEGACY_EMU(emu) \
-    case LegacyEmu::emu: \
-        legacy_user_dir = Common::FS::GetLegacyPath(Common::FS::LegacyPath::emu##Dir).string(); \
-        legacy_config_dir = Common::FS::GetLegacyPath(Common::FS::LegacyPath::emu##ConfigDir) \
-                                .string(); \
-        legacy_cache_dir = Common::FS::GetLegacyPath(Common::FS::LegacyPath::emu##CacheDir) \
-                               .string(); \
-        break;
-
-    switch (selected_legacy_emu) {
-        LEGACY_EMU(Citron)
-        LEGACY_EMU(Sudachi)
-        LEGACY_EMU(Yuzu)
-        LEGACY_EMU(Suyu)
-    }
-
-#undef LEGACY_EMU
-
-    fs::path eden_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::EdenDir);
-    fs::path config_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::ConfigDir);
-    fs::path cache_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::CacheDir);
-    fs::path shader_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::ShaderDir);
-
-    try {
-        fs::remove_all(eden_dir);
-    } catch (fs::filesystem_error &_) {
-        // ignore because linux does stupid crap sometimes.
-    }
-
-    switch (strategy) {
-    case MigrationStrategy::Link:
-        // Create symlinks/directory junctions if requested
-
-        // Windows 11 has random permission nonsense to deal with.
-        try {
-            fs::create_directory_symlink(legacy_user_dir, eden_dir);
-        } catch (const fs::filesystem_error &e) {
-            emit error(tr("Linking the old directory failed. You may need to re-run with "
-                          "administrative privileges on Windows.\nOS gave error: %1")
-                           .arg(tr(e.what())));
-            return;
-        }
-
-// Windows doesn't need any more links, because cache and config
-// are already children of the root directory
-#ifndef WIN32
-        if (fs::is_directory(legacy_config_dir)) {
-            fs::create_directory_symlink(legacy_config_dir, config_dir);
-        }
-
-        if (fs::is_directory(legacy_cache_dir)) {
-            fs::create_directory_symlink(legacy_cache_dir, cache_dir);
-        }
-#endif
-        break;
-    case MigrationStrategy::Move:
-        // Rename directories if deletion is requested (achieves the same result)
-        fs::rename(legacy_user_dir, eden_dir);
-
-// Windows doesn't need any more renames, because cache and config
-// are already children of the root directory
-#ifndef WIN32
-        if (fs::is_directory(legacy_config_dir)) {
-            fs::rename(legacy_config_dir, config_dir);
-        }
-
-        if (fs::is_directory(legacy_cache_dir)) {
-            fs::rename(legacy_cache_dir, cache_dir);
-        }
-#endif
-        break;
-    case MigrationStrategy::Copy:
-    default:
-        // Default behavior: copy
-        fs::copy(legacy_user_dir, eden_dir, copy_options);
-
-        if (fs::is_directory(legacy_config_dir)) {
-            fs::copy(legacy_config_dir, config_dir, copy_options);
-        }
-
-        if (fs::is_directory(legacy_cache_dir)) {
-            fs::copy(legacy_cache_dir, cache_dir, copy_options);
-        }
-
-        success_text.append(tr("\n\nIf you wish to clean up the files which were left in the old "
-                               "data location, you can do so by deleting the following directory:\n"
-                               "%1")
-                                .arg(QString::fromStdString(legacy_user_dir)));
-        break;
-    }
-
-    // Delete and re-create shader dir
-    if (clear_shader_cache) {
-        fs::remove_all(shader_dir);
-        fs::create_directory(shader_dir);
-    }
-
-    emit finished(success_text);
-}
diff --git a/src/yuzu/migration_worker.h b/src/yuzu/migration_worker.h
deleted file mode 100644
index 49bb695b32..0000000000
--- a/src/yuzu/migration_worker.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef MIGRATION_WORKER_H
-#define MIGRATION_WORKER_H
-
-#include <QObject>
-
-class MigrationWorker : public QObject
-{
-    Q_OBJECT
-public:
-    enum class LegacyEmu {
-        Citron,
-        Sudachi,
-        Yuzu,
-        Suyu,
-    };
-
-    enum class MigrationStrategy {
-        Copy,
-        Move,
-        Link,
-    };
-
-    MigrationWorker(const LegacyEmu selected_legacy_emu,
-                    const bool clear_shader_cache,
-                    const MigrationStrategy strategy);
-
-public slots:
-    void process();
-
-signals:
-    void finished(const QString &success_text);
-    void error(const QString &error_message);
-
-private:
-    LegacyEmu selected_legacy_emu;
-    bool clear_shader_cache;
-    MigrationStrategy strategy;
-    QString success_text = tr("Data was migrated successfully.");
-};
-
-#endif // MIGRATION_WORKER_H
diff --git a/src/yuzu/multiplayer/host_room.cpp b/src/yuzu/multiplayer/host_room.cpp
index 09f783ad9f..ef364ee43a 100644
--- a/src/yuzu/multiplayer/host_room.cpp
+++ b/src/yuzu/multiplayer/host_room.cpp
@@ -58,7 +58,7 @@ HostRoomWindow::HostRoomWindow(QWidget* parent, QStandardItemModel* list,
     ui->username->setText(
         QString::fromStdString(UISettings::values.multiplayer_room_nickname.GetValue()));
     if (ui->username->text().isEmpty() && !Settings::values.yuzu_username.GetValue().empty()) {
-        // Use eden Web Service user name as nickname by default
+        // Use yuzu Web Service user name as nickname by default
         ui->username->setText(QString::fromStdString(Settings::values.yuzu_username.GetValue()));
     }
     ui->room_name->setText(
@@ -184,7 +184,7 @@ void HostRoomWindow::Host() {
                     QMessageBox::warning(
                         this, tr("Error"),
                         tr("Failed to announce the room to the public lobby. In order to host a "
-                           "room publicly, you must have a valid eden account configured in "
+                           "room publicly, you must have a valid yuzu account configured in "
                            "Emulation -> Configure -> Web. If you do not want to publish a room in "
                            "the public lobby, then select Unlisted instead.\nDebug Message: ") +
                             QString::fromStdString(result.result_string),
diff --git a/src/yuzu/user_data_migration.cpp b/src/yuzu/user_data_migration.cpp
index 1585695ff0..1946254fb2 100644
--- a/src/yuzu/user_data_migration.cpp
+++ b/src/yuzu/user_data_migration.cpp
@@ -14,17 +14,15 @@
 #include "migration_dialog.h"
 
 // Needs to be included at the end due to https://bugreports.qt.io/browse/QTBUG-73263
-#include <QApplication>
 #include <QButtonGroup>
 #include <QCheckBox>
-#include <QProgressDialog>
 #include <QRadioButton>
-#include <QThread>
 #include <filesystem>
 
 namespace fs = std::filesystem;
 
-UserDataMigrator::UserDataMigrator(QMainWindow *main_window)
+UserDataMigrator::UserDataMigrator(
+    QMainWindow *main_window)
 {
     // NOTE: Logging is not initialized yet, do not produce logs here.
 
@@ -36,7 +34,8 @@ UserDataMigrator::UserDataMigrator(QMainWindow *main_window)
     }
 }
 
-void UserDataMigrator::ShowMigrationPrompt(QMainWindow *main_window)
+void UserDataMigrator::ShowMigrationPrompt(
+    QMainWindow *main_window)
 {
     namespace fs = std::filesystem;
 
@@ -91,15 +90,15 @@ void UserDataMigrator::ShowMigrationPrompt(QMainWindow *main_window)
     // Reflection would make this code 10x better
     // but for now... MACRO MADNESS!!!!
     QMap<QString, bool> found;
-    QMap<QString, MigrationWorker::LegacyEmu> legacyMap;
+    QMap<QString, LegacyEmu> legacyMap;
     QMap<QString, QAbstractButton *> buttonMap;
 
 #define EMU_MAP(name) \
     const bool name##_found = fs::is_directory( \
         Common::FS::GetLegacyPath(Common::FS::LegacyPath::name##Dir)); \
-    legacyMap[main_window->tr(#name)] = MigrationWorker::LegacyEmu::name; \
-    found[main_window->tr(#name)] = name##_found; \
-    if (name##_found) \
+        legacyMap[main_window->tr(#name)] = LegacyEmu::name; \
+        found[main_window->tr(#name)] = name##_found; \
+        if (name##_found) \
         any_found = true;
 
     EMU_MAP(Citron)
@@ -119,15 +118,7 @@ void UserDataMigrator::ShowMigrationPrompt(QMainWindow *main_window)
             if (!iter.value())
                 continue;
 
-            QAbstractButton *button = migration_prompt.addButton(iter.key());
-            // TMP: disable citron
-            if (iter.key() == main_window->tr("Citron")) {
-                button->setEnabled(false);
-                button->setToolTip(
-                    main_window->tr("Citron migration is known to cause issues. It's recommended "
-                                    "to manually set up your data again."));
-            }
-            buttonMap[iter.key()] = button;
+            buttonMap[iter.key()] = migration_prompt.addButton(iter.key());
             promptText.append(main_window->tr("\n- %1").arg(iter.key()));
         }
 
@@ -138,13 +129,13 @@ void UserDataMigrator::ShowMigrationPrompt(QMainWindow *main_window)
 
         migration_prompt.exec();
 
-        MigrationWorker::MigrationStrategy strategy;
+        MigrationStrategy strategy;
         if (link->isChecked()) {
-            strategy = MigrationWorker::MigrationStrategy::Link;
+            strategy = MigrationStrategy::Link;
         } else if (clear_old->isChecked()) {
-            strategy = MigrationWorker::MigrationStrategy::Move;
+            strategy = MigrationStrategy::Move;
         } else {
-            strategy = MigrationWorker::MigrationStrategy::Copy;
+            strategy = MigrationStrategy::Copy;
         }
 
         QMapIterator buttonIter(buttonMap);
@@ -168,7 +159,8 @@ void UserDataMigrator::ShowMigrationPrompt(QMainWindow *main_window)
         return;
 }
 
-void UserDataMigrator::ShowMigrationCancelledMessage(QMainWindow *main_window)
+void UserDataMigrator::ShowMigrationCancelledMessage(
+    QMainWindow *main_window)
 {
     QMessageBox::information(main_window,
                              main_window->tr("Migration"),
@@ -181,38 +173,107 @@ void UserDataMigrator::ShowMigrationCancelledMessage(QMainWindow *main_window)
                              QMessageBox::Ok);
 }
 
-void UserDataMigrator::MigrateUserData(QMainWindow *main_window,
-                                       const MigrationWorker::LegacyEmu selected_legacy_emu,
-                                       const bool clear_shader_cache,
-                                       const MigrationWorker::MigrationStrategy strategy)
+void UserDataMigrator::MigrateUserData(
+    QMainWindow *main_window,
+    const LegacyEmu selected_legacy_emu,
+    const bool clear_shader_cache,
+    const MigrationStrategy strategy)
 {
-    // Create a dialog to let the user know it's migrating, some users noted confusion.
-    QProgressDialog *progress = new QProgressDialog(main_window);
-    progress->setWindowTitle(main_window->tr("Migrating"));
-    progress->setLabelText(main_window->tr("Migrating, this may take a while..."));
-    progress->setRange(0, 0);
-    progress->setCancelButton(nullptr);
-    progress->setWindowModality(Qt::WindowModality::ApplicationModal);
+    namespace fs = std::filesystem;
+    const auto copy_options = fs::copy_options::update_existing | fs::copy_options::recursive;
 
-    QThread *thread = new QThread(main_window);
-    MigrationWorker *worker = new MigrationWorker(selected_legacy_emu, clear_shader_cache, strategy);
-    worker->moveToThread(thread);
+    QString success_text = main_window->tr("Data was migrated successfully.");
 
-    thread->connect(thread, &QThread::started, worker, &MigrationWorker::process);
+    std::string legacy_user_dir;
+    std::string legacy_config_dir;
+    std::string legacy_cache_dir;
 
-    thread->connect(worker, &MigrationWorker::finished, progress, [=](const QString &success_text) {
-        progress->close();
-        QMessageBox::information(main_window,
-                                 main_window->tr("Migration"),
-                                 success_text,
-                                 QMessageBox::Ok);
+#define LEGACY_EMU(emu) \
+case LegacyEmu::emu: \
+        legacy_user_dir = Common::FS::GetLegacyPath(Common::FS::LegacyPath::emu##Dir).string(); \
+        legacy_config_dir = Common::FS::GetLegacyPath(Common::FS::LegacyPath::emu##ConfigDir) \
+              .string(); \
+        legacy_cache_dir = Common::FS::GetLegacyPath(Common::FS::LegacyPath::emu##CacheDir) \
+              .string(); \
+        break;
 
-        thread->quit();
-    });
+    switch (selected_legacy_emu) {
+        LEGACY_EMU(Citron)
+        LEGACY_EMU(Sudachi)
+        LEGACY_EMU(Yuzu)
+        LEGACY_EMU(Suyu)
+    }
 
-    thread->connect(worker, &MigrationWorker::finished, worker, &QObject::deleteLater);
-    thread->connect(thread, &QThread::finished, thread, &QObject::deleteLater);
+#undef LEGACY_EMU
 
-    thread->start();
-    progress->exec();
+    fs::path eden_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::EdenDir);
+    fs::path config_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::ConfigDir);
+    fs::path cache_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::CacheDir);
+    fs::path shader_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::ShaderDir);
+
+    fs::remove_all(eden_dir);
+
+    switch (strategy) {
+    case MigrationStrategy::Link:
+        // Create symlinks/directory junctions if requested
+        fs::create_directory_symlink(legacy_user_dir, eden_dir);
+
+// Windows doesn't need any more links, because cache and config
+// are already children of the root directory
+#ifndef WIN32
+        if (fs::is_directory(legacy_config_dir)) {
+            fs::create_directory_symlink(legacy_config_dir, config_dir);
+        }
+
+        if (fs::is_directory(legacy_cache_dir)) {
+            fs::create_directory_symlink(legacy_cache_dir, cache_dir);
+        }
+#endif
+        break;
+    case MigrationStrategy::Move:
+        // Rename directories if deletion is requested (achieves the same result)
+        fs::rename(legacy_user_dir, eden_dir);
+
+// Windows doesn't need any more renames, because cache and config
+// are already children of the root directory
+#ifndef WIN32
+        if (fs::is_directory(legacy_config_dir)) {
+            fs::rename(legacy_config_dir, config_dir);
+        }
+
+        if (fs::is_directory(legacy_cache_dir)) {
+            fs::rename(legacy_cache_dir, cache_dir);
+        }
+#endif
+        break;
+    case MigrationStrategy::Copy:
+    default:
+        // Default behavior: copy
+        fs::copy(legacy_user_dir, eden_dir, copy_options);
+
+        if (fs::is_directory(legacy_config_dir)) {
+            fs::copy(legacy_config_dir, config_dir, copy_options);
+        }
+
+        if (fs::is_directory(legacy_cache_dir)) {
+            fs::copy(legacy_cache_dir, cache_dir, copy_options);
+        }
+
+        success_text.append(
+            main_window->tr("\n\nIf you wish to clean up the files which were left in the old "
+                            "data location, you can do so by deleting the following directory:\n"
+                            "%1").arg(QString::fromStdString(legacy_user_dir)));
+        break;
+    }
+
+    // Delete and re-create shader dir
+    if (clear_shader_cache) {
+        fs::remove_all(shader_dir);
+        fs::create_directory(shader_dir);
+    }
+
+    QMessageBox::information(main_window,
+                             main_window->tr("Migration"),
+                             success_text,
+                             QMessageBox::Ok);
 }
diff --git a/src/yuzu/user_data_migration.h b/src/yuzu/user_data_migration.h
index fbf76eb334..3c4f745b87 100644
--- a/src/yuzu/user_data_migration.h
+++ b/src/yuzu/user_data_migration.h
@@ -8,17 +8,27 @@
 #pragma once
 
 #include <QMainWindow>
-#include "migration_worker.h"
 
 class UserDataMigrator {
 public:
     UserDataMigrator(QMainWindow* main_window);
 
 private:
+    enum class LegacyEmu {
+        Citron,
+        Sudachi,
+        Yuzu,
+        Suyu,
+    };
+
+    enum class MigrationStrategy {
+        Copy,
+        Move,
+        Link,
+    };
+
     void ShowMigrationPrompt(QMainWindow* main_window);
     void ShowMigrationCancelledMessage(QMainWindow* main_window);
-    void MigrateUserData(QMainWindow* main_window,
-                         const MigrationWorker::LegacyEmu selected_legacy_emu,
-                         const bool clear_shader_cache,
-                         const MigrationWorker::MigrationStrategy strategy);
+    void MigrateUserData(QMainWindow* main_window, const LegacyEmu selected_legacy_emu,
+                         const bool clear_shader_cache, const MigrationStrategy strategy);
 };
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp
index 3974e4b357..eae614f9d0 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2.cpp
@@ -223,12 +223,10 @@ void EmuWindow_SDL2::WaitEvent() {
     const u32 current_time = SDL_GetTicks();
     if (current_time > last_time + 2000) {
         const auto results = system.GetAndResetPerfStats();
-        const auto title = fmt::format("eden {} | {}-{} | FPS: {:.0f} ({:.0f}%)",
-                                       Common::g_build_fullname,
-                                       Common::g_scm_branch,
-                                       Common::g_scm_desc,
-                                       results.average_game_fps,
-                                       results.emulation_speed * 100.0);
+        const auto title =
+            fmt::format("yuzu {} | {}-{} | FPS: {:.0f} ({:.0f}%)", Common::g_build_fullname,
+                        Common::g_scm_branch, Common::g_scm_desc, results.average_game_fps,
+                        results.emulation_speed * 100.0);
         SDL_SetWindowTitle(render_window, title.c_str());
         last_time = current_time;
     }
@@ -238,7 +236,7 @@ void EmuWindow_SDL2::WaitEvent() {
 void EmuWindow_SDL2::SetWindowIcon() {
     SDL_RWops* const yuzu_icon_stream = SDL_RWFromConstMem((void*)yuzu_icon, yuzu_icon_size);
     if (yuzu_icon_stream == nullptr) {
-        LOG_WARNING(Frontend, "Failed to create eden icon stream.");
+        LOG_WARNING(Frontend, "Failed to create yuzu icon stream.");
         return;
     }
     SDL_Surface* const window_icon = SDL_LoadBMP_RW(yuzu_icon_stream, 1);
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
index 2e90be35ae..35e8aeda79 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
@@ -90,7 +90,7 @@ EmuWindow_SDL2_GL::EmuWindow_SDL2_GL(InputCommon::InputSubsystem* input_subsyste
     }
     SDL_GL_SetSwapInterval(0);
 
-    std::string window_title = fmt::format("eden {} | {}-{}", Common::g_build_fullname,
+    std::string window_title = fmt::format("yuzu {} | {}-{}", Common::g_build_fullname,
                                            Common::g_scm_branch, Common::g_scm_desc);
     render_window =
         SDL_CreateWindow(window_title.c_str(),
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_null.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_null.cpp
index 043cdbf68d..a969c1c291 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2_null.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_null.cpp
@@ -23,7 +23,7 @@
 EmuWindow_SDL2_Null::EmuWindow_SDL2_Null(InputCommon::InputSubsystem* input_subsystem_,
                                          Core::System& system_, bool fullscreen)
     : EmuWindow_SDL2{input_subsystem_, system_} {
-    const std::string window_title = fmt::format("eden {} | {}-{} (Vulkan)", Common::g_build_name,
+    const std::string window_title = fmt::format("yuzu {} | {}-{} (Vulkan)", Common::g_build_name,
                                                  Common::g_scm_branch, Common::g_scm_desc);
     render_window =
         SDL_CreateWindow(window_title.c_str(), SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
index f4980932ed..c8378a5179 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
@@ -18,10 +18,8 @@
 EmuWindow_SDL2_VK::EmuWindow_SDL2_VK(InputCommon::InputSubsystem* input_subsystem_,
                                      Core::System& system_, bool fullscreen)
     : EmuWindow_SDL2{input_subsystem_, system_} {
-    const std::string window_title = fmt::format("eden {} | {}-{} (Vulkan)",
-                                                 Common::g_build_name,
-                                                 Common::g_scm_branch,
-                                                 Common::g_scm_desc);
+    const std::string window_title = fmt::format("yuzu {} | {}-{} (Vulkan)", Common::g_build_name,
+                                                 Common::g_scm_branch, Common::g_scm_desc);
     render_window =
         SDL_CreateWindow(window_title.c_str(), SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
                          Layout::ScreenUndocked::Width, Layout::ScreenUndocked::Height,
diff --git a/src/yuzu_cmd/yuzu.cpp b/src/yuzu_cmd/yuzu.cpp
index 35dc58e4e9..790d630aad 100644
--- a/src/yuzu_cmd/yuzu.cpp
+++ b/src/yuzu_cmd/yuzu.cpp
@@ -81,7 +81,7 @@ static void PrintHelp(const char* argv0) {
 }
 
 static void PrintVersion() {
-    std::cout << "eden " << Common::g_scm_branch << " " << Common::g_scm_desc << std::endl;
+    std::cout << "yuzu " << Common::g_scm_branch << " " << Common::g_scm_desc << std::endl;
 }
 
 static void OnStateChanged(const Network::RoomMember::State& state) {
@@ -394,11 +394,9 @@ int main(int argc, char** argv) {
             const u16 error_id = static_cast<u16>(load_result) - loader_id;
             LOG_CRITICAL(Frontend,
                          "While attempting to load the ROM requested, an error occurred. Please "
-                         "refer to the eden wiki for more information or the eden discord for "
+                         "refer to the yuzu wiki for more information or the yuzu discord for "
                          "additional help.\n\nError Code: {:04X}-{:04X}\nError Description: {}",
-                         loader_id,
-                         error_id,
-                         static_cast<Loader::ResultStatus>(error_id));
+                         loader_id, error_id, static_cast<Loader::ResultStatus>(error_id));
         }
         break;
     }