From a4618009737bdc836c0d4613fc3f37bb9a1778fa Mon Sep 17 00:00:00 2001 From: Dzmitry Dubrova Date: Tue, 12 Dec 2023 19:26:22 +0300 Subject: [PATCH 1/3] Implement custom driver loading for ARM64 Android devices --- .gitmodules | 3 + CMakeLists.txt | 6 ++ Common/File/AndroidStorage.cpp | 1 + Common/File/AndroidStorage.h | 1 + Common/GPU/Vulkan/VulkanContext.cpp | 3 +- Common/GPU/Vulkan/VulkanLoader.cpp | 50 ++++++++-- Core/Config.cpp | 3 + Core/Config.h | 1 + UI/GameSettingsScreen.cpp | 97 +++++++++++++++++++ UI/GameSettingsScreen.h | 2 + android/AndroidManifest.xml | 3 +- android/build.gradle | 1 + android/jni/Locals.mk | 1 + android/jni/app-android.cpp | 5 +- .../src/org/ppsspp/ppsspp/NativeActivity.java | 3 +- android/src/org/ppsspp/ppsspp/NativeApp.java | 2 +- ext/CMakeLists.txt | 6 ++ ext/libadrenotools | 1 + 18 files changed, 177 insertions(+), 12 deletions(-) create mode 160000 ext/libadrenotools diff --git a/.gitmodules b/.gitmodules index 82a4f4bf24c6..7ab10b0ec98a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -53,3 +53,6 @@ [submodule "ext/libchdr"] path = ext/libchdr url = https://github.com/rtissera/libchdr.git +[submodule "ext/libadrenotools"] + path = ext/libadrenotools + url = https://github.com/bylaws/libadrenotools.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 520ae2b0a945..20a0b97f950f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -874,6 +874,12 @@ setup_target_project(Common Common) target_link_libraries(Common Ext::Snappy cpu_features) +if(ARM64) + if(ANDROID) + target_link_libraries(Common adrenotools) + endif() +endif() + if(USING_GLES2 OR (USING_EGL AND NOT USING_FBDEV)) find_package(X11) endif() diff --git a/Common/File/AndroidStorage.cpp b/Common/File/AndroidStorage.cpp index 17e973ddb831..fe106f772d04 100644 --- a/Common/File/AndroidStorage.cpp +++ b/Common/File/AndroidStorage.cpp @@ -313,5 +313,6 @@ const char *Android_ErrorToString(StorageError error) { // Very hacky. std::string g_extFilesDir = "(IF YOU SEE THIS THERE'S A BUG)"; std::string g_externalDir = "(IF YOU SEE THIS THERE'S A BUG (2))"; +std::string g_nativeLibDir = "(IF YOU SEE THIS THERE'S A BUG (3))"; #endif diff --git a/Common/File/AndroidStorage.h b/Common/File/AndroidStorage.h index b50625e425d2..cb40db0e9ff0 100644 --- a/Common/File/AndroidStorage.h +++ b/Common/File/AndroidStorage.h @@ -33,6 +33,7 @@ inline StorageError StorageErrorFromInt(int ival) { extern std::string g_extFilesDir; extern std::string g_externalDir; +extern std::string g_nativeLibDir; #if PPSSPP_PLATFORM(ANDROID) && !defined(__LIBRETRO__) diff --git a/Common/GPU/Vulkan/VulkanContext.cpp b/Common/GPU/Vulkan/VulkanContext.cpp index 05607469c8f8..6cc6bde4879c 100644 --- a/Common/GPU/Vulkan/VulkanContext.cpp +++ b/Common/GPU/Vulkan/VulkanContext.cpp @@ -5,6 +5,7 @@ #include #include +#include "Core/Config.h" #include "Common/System/System.h" #include "Common/System/Display.h" #include "Common/Log.h" @@ -132,7 +133,7 @@ VkResult VulkanContext::CreateInstance(const CreateInfo &info) { #endif #endif - if (flags_ & VULKAN_FLAG_VALIDATE) { + if ((flags_ & VULKAN_FLAG_VALIDATE) && g_Config.customDriver.empty()) { if (IsInstanceExtensionAvailable(VK_EXT_DEBUG_UTILS_EXTENSION_NAME)) { // Enable the validation layers for (size_t i = 0; i < ARRAY_SIZE(validationLayers); i++) { diff --git a/Common/GPU/Vulkan/VulkanLoader.cpp b/Common/GPU/Vulkan/VulkanLoader.cpp index f951c79332cd..e950e6332940 100644 --- a/Common/GPU/Vulkan/VulkanLoader.cpp +++ b/Common/GPU/Vulkan/VulkanLoader.cpp @@ -20,15 +20,24 @@ #include #include +#include "Core/Config.h" +#include "Common/Data/Format/JSONReader.h" #include "Common/GPU/Vulkan/VulkanLoader.h" #include "Common/Log.h" #include "Common/System/System.h" #include "Common/VR/PPSSPPVR.h" +#include "Common/File/FileUtil.h" #if !PPSSPP_PLATFORM(WINDOWS) && !PPSSPP_PLATFORM(SWITCH) #include #endif +#if PPSSPP_PLATFORM(ANDROID) && PPSSPP_ARCH(ARM64) +#include "File/AndroidStorage.h" + +#include +#endif + namespace PPSSPP_VK { PFN_vkCreateInstance vkCreateInstance; PFN_vkDestroyInstance vkDestroyInstance; @@ -289,13 +298,40 @@ static VulkanLibraryHandle VulkanLoadLibrary(const char *logname) { return LoadLibrary(L"vulkan-1.dll"); #else void *lib = nullptr; - for (int i = 0; i < ARRAY_SIZE(so_names); i++) { - lib = dlopen(so_names[i], RTLD_NOW | RTLD_LOCAL); - if (lib) { - INFO_LOG(G3D, "%s: Library loaded ('%s')", logname, so_names[i]); - break; - } - } + +#if PPSSPP_PLATFORM(ANDROID) && PPSSPP_ARCH(ARM64) + if (!g_Config.customDriver.empty() && g_Config.customDriver != "Default") { + const Path driverPath = g_Config.internalDataDirectory / "drivers" / g_Config.customDriver; + + json::JsonReader meta = json::JsonReader((driverPath / "meta.json").c_str()); + if (meta.ok()) { + std::string driverLibName = meta.root().get("libraryName")->value.toString(); + + Path tempDir = g_Config.internalDataDirectory / "temp"; + Path fileRedirectDir = g_Config.internalDataDirectory / "vk_file_redirect"; + + File::CreateDir(tempDir); + File::CreateDir(fileRedirectDir); + + lib = adrenotools_open_libvulkan( + RTLD_NOW | RTLD_LOCAL, ADRENOTOOLS_DRIVER_FILE_REDIRECT | ADRENOTOOLS_DRIVER_CUSTOM, + (std::string(tempDir.c_str()) + "/").c_str(),g_nativeLibDir.c_str(), + (std::string(driverPath.c_str()) + "/").c_str(),driverLibName.c_str(), + (std::string(fileRedirectDir.c_str()) + "/").c_str(),nullptr); + } + } +#endif + + if (!lib) { + ERROR_LOG(G3D, "Failed to load custom driver"); + for (int i = 0; i < ARRAY_SIZE(so_names); i++) { + lib = dlopen(so_names[i], RTLD_NOW | RTLD_LOCAL); + if (lib) { + INFO_LOG(G3D, "%s: Library loaded ('%s')", logname, so_names[i]); + break; + } + } + } return lib; #endif } diff --git a/Core/Config.cpp b/Core/Config.cpp index cbf207222831..92e43e86c198 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -588,6 +588,9 @@ static const ConfigSetting graphicsSettings[] = { ConfigSetting("CardboardYShift", &g_Config.iCardboardYShift, 0, CfgFlag::PER_GAME), ConfigSetting("iShowStatusFlags", &g_Config.iShowStatusFlags, 0, CfgFlag::PER_GAME), ConfigSetting("GraphicsBackend", &g_Config.iGPUBackend, &DefaultGPUBackend, &GPUBackendTranslator::To, &GPUBackendTranslator::From, CfgFlag::DEFAULT | CfgFlag::REPORT), +#if PPSSPP_PLATFORM(ANDROID) && PPSSPP_ARCH(ARM64) + ConfigSetting("CustomDriver", &g_Config.customDriver, "", CfgFlag::DEFAULT), +#endif ConfigSetting("FailedGraphicsBackends", &g_Config.sFailedGPUBackends, "", CfgFlag::DEFAULT), ConfigSetting("DisabledGraphicsBackends", &g_Config.sDisabledGPUBackends, "", CfgFlag::DEFAULT), ConfigSetting("VulkanDevice", &g_Config.sVulkanDevice, "", CfgFlag::DEFAULT), diff --git a/Core/Config.h b/Core/Config.h index 7119e144fd96..dc4c33bdcf21 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -146,6 +146,7 @@ struct Config { // GFX int iGPUBackend; + std::string customDriver; std::string sFailedGPUBackends; std::string sDisabledGPUBackends; // We have separate device parameters for each backend so it doesn't get erased if you switch backends. diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index f8512394a1ea..c164d93e05d0 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -57,6 +57,8 @@ #include "UI/RetroAchievementScreens.h" #include "Common/File/FileUtil.h" +#include "Common/File/VFS/ZipFileReader.h" +#include "Common/Data/Format/JSONReader.h" #include "Common/File/AndroidContentURI.h" #include "Common/OSVersion.h" #include "Common/TimeUtil.h" @@ -91,9 +93,20 @@ #if PPSSPP_PLATFORM(ANDROID) #include "android/jni/AndroidAudio.h" +#include "Common/File/AndroidStorage.h" extern AndroidAudioState *g_audioState; +static bool CheckKgslPresent() { + constexpr auto KgslPath{"/dev/kgsl-3d0"}; + + return access(KgslPath, F_OK) == 0; +} + +bool SupportsCustomDriver() { + return android_get_device_api_level() >= 28 && CheckKgslPresent(); +} + #endif GameSettingsScreen::GameSettingsScreen(const Path &gamePath, std::string gameID, bool editThenRestore) @@ -269,6 +282,27 @@ void GameSettingsScreen::CreateGraphicsSettings(UI::ViewGroup *graphicsSettings) // If we're not the first instance, can't save the setting, and it requires a restart, so... renderingBackendChoice->SetEnabled(false); } + +#if PPSSPP_PLATFORM(ANDROID) && PPSSPP_ARCH(ARM64) + if (GetGPUBackend() == GPUBackend::VULKAN && SupportsCustomDriver()) { + const Path driverPath = g_Config.internalDataDirectory / "drivers"; + + std::vector listing; + File::GetFilesInDir(driverPath, &listing); + + std::vector availableDrivers; + availableDrivers.push_back("Default"); + + for (auto driver : listing) { + availableDrivers.push_back(driver.name); + } + auto driverChoice = graphicsSettings->Add(new PopupMultiChoiceDynamic(&g_Config.customDriver, gr->T("Current GPU Driver"), availableDrivers, I18NCat::NONE, screenManager())); + driverChoice->OnChoice.Handle(this, &GameSettingsScreen::OnCustomDriverChange); + + auto customDriverInstallChoice = graphicsSettings->Add(new Choice(gr->T("Install Custom Driver..."))); + customDriverInstallChoice->OnClick.Handle(this, &GameSettingsScreen::OnCustomDriverInstall); + } +#endif #endif // Backends that don't allow a device choice will only expose one device. @@ -1215,6 +1249,69 @@ void GameSettingsScreen::CreateVRSettings(UI::ViewGroup *vrSettings) { vrSettings->Add(new PopupMultiChoice(&g_Config.iCameraPitch, vr->T("Camera type"), cameraPitchModes, 0, 3, I18NCat::NONE, screenManager())); } +UI::EventReturn GameSettingsScreen::OnCustomDriverChange(UI::EventParams &e) { + auto di = GetI18NCategory(I18NCat::DIALOG); + + screenManager()->push(new PromptScreen(gamePath_, di->T("Changing this setting requires PPSSPP to restart."), di->T("Restart"), di->T("Cancel"), [=](bool yes) { + if (yes) { + TriggerRestart("GameSettingsScreen::CustomDriverYes"); + } + })); + return UI::EVENT_DONE; +} + +UI::EventReturn GameSettingsScreen::OnCustomDriverInstall(UI::EventParams &e) { + auto gr = GetI18NCategory(I18NCat::GRAPHICS); + + System_BrowseForFile(gr->T("Install Custom Driver..."), BrowseFileType::ANY, [this](const std::string &value, int) { + const Path driverPath = g_Config.internalDataDirectory / "drivers"; + + if (!value.empty()) { + Path zipPath = Path(value); + + if (zipPath.GetFileExtension() == ".zip") { + ZipFileReader *zipFileReader = ZipFileReader::Create(zipPath, ""); + + size_t metaDataSize; + uint8_t *metaData = zipFileReader->ReadFile("meta.json", &metaDataSize); + + Path tempMeta = Path(g_Config.internalDataDirectory / "meta.json"); + + File::CreateEmptyFile(tempMeta); + File::WriteDataToFile(false, metaData, metaDataSize, tempMeta); + + delete[] metaData; + + json::JsonReader meta = json::JsonReader((g_Config.internalDataDirectory / "meta.json").c_str()); + if (meta.ok()) { + std::string driverName = meta.root().get("name")->value.toString(); + + Path newCustomDriver = driverPath / driverName; + File::CreateFullPath(newCustomDriver); + + std::vector zipListing; + zipFileReader->GetFileListing("", &zipListing, nullptr); + + for (auto file : zipListing) { + File::CreateEmptyFile(newCustomDriver / file.name); + + size_t size; + uint8_t *data = zipFileReader->ReadFile(file.name.c_str(), &size); + File::WriteDataToFile(false, data, size, newCustomDriver / file.name); + + delete[] data; + } + + File::Delete(tempMeta); + + RecreateViews(); + } + } + } + }); + return UI::EVENT_DONE; +} + UI::EventReturn GameSettingsScreen::OnAutoFrameskip(UI::EventParams &e) { g_Config.UpdateAfterSettingAutoFrameSkip(); return UI::EVENT_DONE; diff --git a/UI/GameSettingsScreen.h b/UI/GameSettingsScreen.h index 4c83715cf21f..d3861139f01b 100644 --- a/UI/GameSettingsScreen.h +++ b/UI/GameSettingsScreen.h @@ -98,6 +98,8 @@ class GameSettingsScreen : public TabbedUIDialogScreenWithGameBackground { UI::EventReturn OnRenderingBackend(UI::EventParams &e); UI::EventReturn OnRenderingDevice(UI::EventParams &e); UI::EventReturn OnInflightFramesChoice(UI::EventParams &e); + UI::EventReturn OnCustomDriverChange(UI::EventParams &e); + UI::EventReturn OnCustomDriverInstall(UI::EventParams &e); UI::EventReturn OnCameraDeviceChange(UI::EventParams& e); UI::EventReturn OnMicDeviceChange(UI::EventParams& e); UI::EventReturn OnAudioDevice(UI::EventParams &e); diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 38853da07c85..cb584faa475c 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -47,7 +47,8 @@ android:isGame="true" android:banner="@drawable/tv_banner" android:requestLegacyExternalStorage="true" - android:preserveLegacyExternalStorage="true"> + android:preserveLegacyExternalStorage="true" + android:extractNativeLibs="true"> g_additionalStorageDirs; @@ -705,7 +706,7 @@ static void parse_args(std::vector &args, const std::string value) extern "C" void Java_org_ppsspp_ppsspp_NativeApp_init (JNIEnv * env, jclass, jstring jmodel, jint jdeviceType, jstring jlangRegion, jstring japkpath, - jstring jdataDir, jstring jexternalStorageDir, jstring jexternalFilesDir, jstring jadditionalStorageDirs, jstring jcacheDir, jstring jshortcutParam, + jstring jdataDir, jstring jexternalStorageDir, jstring jexternalFilesDir, jstring jNativeLibDir, jstring jadditionalStorageDirs, jstring jcacheDir, jstring jshortcutParam, jint jAndroidVersion, jstring jboard) { SetCurrentThreadName("androidInit"); @@ -732,9 +733,11 @@ extern "C" void Java_org_ppsspp_ppsspp_NativeApp_init std::string externalStorageDir = GetJavaString(env, jexternalStorageDir); std::string additionalStorageDirsString = GetJavaString(env, jadditionalStorageDirs); std::string externalFilesDir = GetJavaString(env, jexternalFilesDir); + std::string nativeLibDir = GetJavaString(env, jNativeLibDir); g_externalDir = externalStorageDir; g_extFilesDir = externalFilesDir; + g_nativeLibDir = nativeLibDir; if (!additionalStorageDirsString.empty()) { SplitString(additionalStorageDirsString, ':', g_additionalStorageDirs); diff --git a/android/src/org/ppsspp/ppsspp/NativeActivity.java b/android/src/org/ppsspp/ppsspp/NativeActivity.java index 27a311e91c83..e231becb8ce1 100644 --- a/android/src/org/ppsspp/ppsspp/NativeActivity.java +++ b/android/src/org/ppsspp/ppsspp/NativeActivity.java @@ -401,6 +401,7 @@ public void Initialize() { String extStorageDir = Environment.getExternalStorageDirectory().getAbsolutePath(); File externalFiles = this.getExternalFilesDir(null); String externalFilesDir = externalFiles == null ? "" : externalFiles.getAbsolutePath(); + String nativeLibDir = getApplicationLibraryDir(appInfo); Log.i(TAG, "Ext storage: " + extStorageState + " " + extStorageDir); Log.i(TAG, "Ext files dir: " + externalFilesDir); @@ -443,7 +444,7 @@ public void Initialize() { overrideShortcutParam = null; NativeApp.audioConfig(optimalFramesPerBuffer, optimalSampleRate); - NativeApp.init(model, deviceType, languageRegion, apkFilePath, dataDir, extStorageDir, externalFilesDir, additionalStorageDirs, cacheDir, shortcut, Build.VERSION.SDK_INT, Build.BOARD); + NativeApp.init(model, deviceType, languageRegion, apkFilePath, dataDir, extStorageDir, externalFilesDir, nativeLibDir, additionalStorageDirs, cacheDir, shortcut, Build.VERSION.SDK_INT, Build.BOARD); // Allow C++ to tell us to use JavaGL or not. javaGL = "true".equalsIgnoreCase(NativeApp.queryConfig("androidJavaGL")); diff --git a/android/src/org/ppsspp/ppsspp/NativeApp.java b/android/src/org/ppsspp/ppsspp/NativeApp.java index c404cd3994bd..3944fe73a358 100644 --- a/android/src/org/ppsspp/ppsspp/NativeApp.java +++ b/android/src/org/ppsspp/ppsspp/NativeApp.java @@ -13,7 +13,7 @@ public class NativeApp { public static final int DEVICE_TYPE_DESKTOP = 2; public static final int DEVICE_TYPE_VR = 3; - public static native void init(String model, int deviceType, String languageRegion, String apkPath, String dataDir, String externalStorageDir, String extFilesDir, String additionalStorageDirs, String cacheDir, String shortcutParam, int androidVersion, String board); + public static native void init(String model, int deviceType, String languageRegion, String apkPath, String dataDir, String externalStorageDir, String extFilesDir, String nativeLibDir, String additionalStorageDirs, String cacheDir, String shortcutParam, int androidVersion, String board); public static native void audioInit(); public static native void audioShutdown(); public static native void audioConfig(int optimalFramesPerBuffer, int optimalSampleRate); diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt index 1031f6edf91c..fe6b71451646 100644 --- a/ext/CMakeLists.txt +++ b/ext/CMakeLists.txt @@ -39,3 +39,9 @@ if(USE_DISCORD AND NOT IOS AND NOT LIBRETRO) endif() add_subdirectory(libchdr-build) + +if(ANDROID) + if (ARM64) + add_subdirectory(libadrenotools) + endif() +endif() diff --git a/ext/libadrenotools b/ext/libadrenotools new file mode 160000 index 000000000000..deec5f75ee1a --- /dev/null +++ b/ext/libadrenotools @@ -0,0 +1 @@ +Subproject commit deec5f75ee1a8ccbe32c8780b1d17284fc87b0f1 From a201d505663b0a39313137e1fd50ad5f0a748802 Mon Sep 17 00:00:00 2001 From: Dzmitry Dubrova Date: Wed, 13 Dec 2023 22:32:34 +0300 Subject: [PATCH 2/3] Fix CI building --- android/jni/Android.mk | 15 +++++++++++++++ android/jni/Locals.mk | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/android/jni/Android.mk b/android/jni/Android.mk index 70fda260165a..36d26ae90c97 100644 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -140,6 +140,17 @@ RCHEEVOS_FILES := \ ${SRC}/ext/rcheevos/src/rhash/hash.c \ ${SRC}/ext/rcheevos/src/rhash/md5.c +ifeq ($(TARGET_ARCH_ABI),arm64-v8a) + ADRENOTOOLS_FILES := \ + ${SRC}/ext/libadrenotools/src/driver.cpp \ + ${SRC}/ext/libadrenotools/src/hook/hook_impl.cpp \ + ${SRC}/ext/libadrenotools/src/hook/file_redirect_hook.c \ + ${SRC}/ext/libadrenotools/src/hook/gsl_alloc_hook.c \ + ${SRC}/ext/libadrenotools/src/hook/main_hook.c \ + ${SRC}/ext/libadrenotools/lib/linkernsbypass/android_linker_ns.cpp \ + ${SRC}/ext/libadrenotools/lib/linkernsbypass/elf_soname_patcher.cpp +endif + VR_FILES := \ $(SRC)/Common/VR/OpenXRLoader.cpp \ $(SRC)/Common/VR/PPSSPPVR.cpp \ @@ -317,6 +328,10 @@ EXEC_AND_LIB_FILES := \ $(SRC)/Common/SysError.cpp \ $(SRC)/Common/TimeUtil.cpp +ifeq ($(TARGET_ARCH_ABI),arm64-v8a) + EXEC_AND_LIB_FILES += $(ADRENOTOOLS_FILES) +endif + LOCAL_MODULE := ppsspp_common LOCAL_SRC_FILES := $(EXEC_AND_LIB_FILES) include $(BUILD_STATIC_LIBRARY) diff --git a/android/jni/Locals.mk b/android/jni/Locals.mk index 5627f2644d90..6e52cc9ee4a7 100644 --- a/android/jni/Locals.mk +++ b/android/jni/Locals.mk @@ -22,7 +22,6 @@ LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/../../ext/armips/ext/tinyformat \ $(LOCAL_PATH)/../../ext/libchdr/deps/lzma-22.01/include \ $(LOCAL_PATH)/../../ext/libchdr/include \ - $(LOCAL_PATH)/../../ext/libadrenotools/include \ $(LOCAL_PATH) LOCAL_STATIC_LIBRARIES := libzip glslang-build miniupnp-build @@ -75,4 +74,6 @@ ifeq ($(TARGET_ARCH_ABI),arm64-v8a) LOCAL_LDLIBS += $(LOCAL_PATH)/../../ffmpeg/android/arm64/lib/libswscale.a LOCAL_LDLIBS += $(LOCAL_PATH)/../../ffmpeg/android/arm64/lib/libavutil.a LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../ffmpeg/android/arm64/include + LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../ext/libadrenotools/include + LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../ext/libadrenotools/lib/linkernsbypass endif From 085f30d1314f95bdf8ac0c66ee10ad9dc1c13c8f Mon Sep 17 00:00:00 2001 From: Dzmitry Dubrova Date: Thu, 14 Dec 2023 08:46:55 +0300 Subject: [PATCH 3/3] Add language strings --- assets/lang/ar_AE.ini | 2 ++ assets/lang/az_AZ.ini | 2 ++ assets/lang/bg_BG.ini | 2 ++ assets/lang/ca_ES.ini | 2 ++ assets/lang/cz_CZ.ini | 2 ++ assets/lang/da_DK.ini | 2 ++ assets/lang/de_DE.ini | 2 ++ assets/lang/dr_ID.ini | 2 ++ assets/lang/en_US.ini | 2 ++ assets/lang/es_ES.ini | 2 ++ assets/lang/es_LA.ini | 2 ++ assets/lang/fa_IR.ini | 2 ++ assets/lang/fi_FI.ini | 2 ++ assets/lang/fr_FR.ini | 2 ++ assets/lang/gl_ES.ini | 2 ++ assets/lang/gr_EL.ini | 2 ++ assets/lang/he_IL.ini | 2 ++ assets/lang/he_IL_invert.ini | 2 ++ assets/lang/hr_HR.ini | 2 ++ assets/lang/hu_HU.ini | 2 ++ assets/lang/id_ID.ini | 2 ++ assets/lang/it_IT.ini | 2 ++ assets/lang/ja_JP.ini | 2 ++ assets/lang/jv_ID.ini | 2 ++ assets/lang/ko_KR.ini | 2 ++ assets/lang/lo_LA.ini | 2 ++ assets/lang/lt-LT.ini | 2 ++ assets/lang/ms_MY.ini | 2 ++ assets/lang/nl_NL.ini | 2 ++ assets/lang/no_NO.ini | 2 ++ assets/lang/pl_PL.ini | 2 ++ assets/lang/pt_BR.ini | 2 ++ assets/lang/pt_PT.ini | 2 ++ assets/lang/ro_RO.ini | 2 ++ assets/lang/ru_RU.ini | 2 ++ assets/lang/sv_SE.ini | 2 ++ assets/lang/tg_PH.ini | 2 ++ assets/lang/th_TH.ini | 2 ++ assets/lang/tr_TR.ini | 2 ++ assets/lang/uk_UA.ini | 2 ++ assets/lang/vi_VN.ini | 2 ++ assets/lang/zh_CN.ini | 2 ++ assets/lang/zh_TW.ini | 2 ++ 43 files changed, 86 insertions(+) diff --git a/assets/lang/ar_AE.ini b/assets/lang/ar_AE.ini index 71ed75a9e192..8b6bf2a652fd 100644 --- a/assets/lang/ar_AE.ini +++ b/assets/lang/ar_AE.ini @@ -589,6 +589,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = ‎أنوية المعالج +Current GPU Driver = Current GPU Driver Debugging = ‎التصحيح DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -616,6 +617,7 @@ High = ‎عالي Hybrid = ‎هجين Hybrid + Bicubic = ‎هجين + تكعيب Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Internal resolution Lazy texture caching = Lazy texture caching (speedup) diff --git a/assets/lang/az_AZ.ini b/assets/lang/az_AZ.ini index 2b523e361d41..01bccad413e8 100644 --- a/assets/lang/az_AZ.ini +++ b/assets/lang/az_AZ.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Debugging DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -608,6 +609,7 @@ High = High Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Internal resolution Lazy texture caching = Lazy texture caching (speedup) diff --git a/assets/lang/bg_BG.ini b/assets/lang/bg_BG.ini index d0ad1c3a404e..24e8e70e408b 100644 --- a/assets/lang/bg_BG.ini +++ b/assets/lang/bg_BG.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Debugging DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -608,6 +609,7 @@ High = High Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Вътрешна резолюция Lazy texture caching = Мързеливо текстурно кеширане (ускорява) diff --git a/assets/lang/ca_ES.ini b/assets/lang/ca_ES.ini index 4414baeec14e..15357fd0025a 100644 --- a/assets/lang/ca_ES.ini +++ b/assets/lang/ca_ES.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Configuració de "Google Cardboard VR" Cheats = Trucs Copy to texture = Copy to texture CPU Core = Nucli de CPU +Current GPU Driver = Current GPU Driver Debugging = Depuració DefaultCPUClockRequired = AVÍS: Aquest joc requereix rellotge de CPU per defecte. Deposterize = Deposteritzar @@ -608,6 +609,7 @@ High = Alta Hybrid = Híbrid Hybrid + Bicubic = Híbrid i bicúbic Ignore camera notch when centering = Ignora la notch de la càmera usant el centre d'imatge. +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Resolució interna Lazy texture caching = Memòria cau de textures diferit (ràpid) diff --git a/assets/lang/cz_CZ.ini b/assets/lang/cz_CZ.ini index 1aa748353d47..a47015a5248d 100644 --- a/assets/lang/cz_CZ.ini +++ b/assets/lang/cz_CZ.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Nastavení Google Cardboard VR Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Ladění DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterizace @@ -608,6 +609,7 @@ High = Vysoká Hybrid = Hybridní Hybrid + Bicubic = Hybridní + Bikubická Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Vnitřní rozlišení Lazy texture caching = Líné ukládání textur do mezipaměti (zrychlení) diff --git a/assets/lang/da_DK.ini b/assets/lang/da_DK.ini index 7b26dc0f840e..def6db6243c9 100644 --- a/assets/lang/da_DK.ini +++ b/assets/lang/da_DK.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR indstillinger Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Fejlfinding DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -608,6 +609,7 @@ High = Høj Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubisk Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Intern opløsning Lazy texture caching = Træg textur caching (hurtigere) diff --git a/assets/lang/de_DE.ini b/assets/lang/de_DE.ini index 8513528ce76e..442fa46ee482 100644 --- a/assets/lang/de_DE.ini +++ b/assets/lang/de_DE.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR Einstellungen Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU Kern +Current GPU Driver = Current GPU Driver Debugging = Debugging DefaultCPUClockRequired = Warnung: Für dieses Spiel muss die CPU Taktrate auf den Standartwert gestellt sein. Deposterize = Tonwertverschmelzung @@ -608,6 +609,7 @@ High = Hoch Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bikubisch Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Interne Auflösung Lazy texture caching = Träges Textur-Caching (schneller) diff --git a/assets/lang/dr_ID.ini b/assets/lang/dr_ID.ini index e23a91b4a228..e9e70a1e8045 100644 --- a/assets/lang/dr_ID.ini +++ b/assets/lang/dr_ID.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Debug DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -608,6 +609,7 @@ High = High Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Internal resolution Lazy texture caching = Lazy texture caching (speedup) diff --git a/assets/lang/en_US.ini b/assets/lang/en_US.ini index 9f0523f333a3..bc6d71ab6184 100644 --- a/assets/lang/en_US.ini +++ b/assets/lang/en_US.ini @@ -594,6 +594,7 @@ Backend = Backend Balanced = Balanced Bicubic = Bicubic Copy to texture = Copy to texture +Current GPU Driver = Current GPU Driver GPUReadbackRequired = Warning: This game requires "Skip GPU Readbacks" to be set to Off. Both = Both Buffer graphics commands (faster, input lag) = Buffer graphics commands (faster, input lag) @@ -632,6 +633,7 @@ High = High Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Internal resolution Lazy texture caching = Lazy texture caching (speedup) diff --git a/assets/lang/es_ES.ini b/assets/lang/es_ES.ini index a8b5e5b4f64b..22ee46de7e55 100644 --- a/assets/lang/es_ES.ini +++ b/assets/lang/es_ES.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Ajustes de "Google Cardboard VR" Cheats = Trucos Copy to texture = Copy to texture CPU Core = Núcleo de CPU +Current GPU Driver = Current GPU Driver Debugging = Depuración DefaultCPUClockRequired = AVISO: Este juego requiere reloj de CPU por defecto. Deposterize = Deposterizar @@ -608,6 +609,7 @@ High = Alta Hybrid = Híbrido Hybrid + Bicubic = Híbrido y bicúbico Ignore camera notch when centering = Ignorar notch de la cámara usando centrado de imagen. +Install Custom Driver... = Install Custom Driver... Integer scale factor = Factor de escala entero Internal Resolution = Resolución interna Lazy texture caching = Caché de texturas diferido (rápido) diff --git a/assets/lang/es_LA.ini b/assets/lang/es_LA.ini index a5e5ce34821e..c6940a15083f 100644 --- a/assets/lang/es_LA.ini +++ b/assets/lang/es_LA.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Configurar Google Cardboard VR Cheats = Trucos Copy to texture = Copy to texture CPU Core = Núcleo de CPU +Current GPU Driver = Current GPU Driver Debugging = Depuración DefaultCPUClockRequired = ADVERTENCIA: Este juego requiere reloj de CPU en valores por defecto. Deposterize = Deposterizado @@ -608,6 +609,7 @@ High = Alta Hybrid = Híbrido Hybrid + Bicubic = Híbrido + bicúbico Ignore camera notch when centering = Ignorar muesca de la cámara al centrar +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Resolución interna Lazy texture caching = Caché de texturas diferido (rápido) diff --git a/assets/lang/fa_IR.ini b/assets/lang/fa_IR.ini index bd26f8d55b1a..65bc7adcbae3 100644 --- a/assets/lang/fa_IR.ini +++ b/assets/lang/fa_IR.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = ‎Google Cardboard VR تنظیمات عینک Cheats = Cheats Copy to texture = Copy to texture CPU Core = ‎CPU هسته +Current GPU Driver = Current GPU Driver Debugging = ‎دیباگ کردن DefaultCPUClockRequired = ‎باید روی پیش فرض تنظیم باشد CPU هشدار: برای این بازی سرعت Deposterize = Deposterize @@ -608,6 +609,7 @@ High = ‎زیاد Hybrid = ‎Hybrid (ترکیبی) Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = ‎رزولوشن داخلی Lazy texture caching = ‎کش کردن تکسچر های ماندگار (افزایش سرعت) diff --git a/assets/lang/fi_FI.ini b/assets/lang/fi_FI.ini index b0926a7a9fcb..139c69be7e62 100644 --- a/assets/lang/fi_FI.ini +++ b/assets/lang/fi_FI.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR -asetukset Cheats = Huijaukset Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Vian etsintä DefaultCPUClockRequired = Varoitus: Tämä peli vaatii Prosessorin kellon olevan asetettu oletusarvoon. Deposterize = Häiriöiden korjaus @@ -608,6 +609,7 @@ High = Korkea Hybrid = Hybridi Hybrid + Bicubic = Hybridi + Bicubic Ignore camera notch when centering = Ohita kameran lovi keskittäessä +Install Custom Driver... = Install Custom Driver... Integer scale factor = Kokonaislukuskaalauksen kerroin Internal Resolution = Sisäinen resoluutio Lazy texture caching = Laiska tekstuurivarastointi (nopeutus) diff --git a/assets/lang/fr_FR.ini b/assets/lang/fr_FR.ini index 6d77d0b8ceb8..4a8c4ddbbb8f 100644 --- a/assets/lang/fr_FR.ini +++ b/assets/lang/fr_FR.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Paramètres de Google Cardboard VR Cheats = Codes de triche Copy to texture = Copy to texture CPU Core = Méthode CPU +Current GPU Driver = Current GPU Driver Debugging = Débogage DefaultCPUClockRequired = Avertissement : Ce jeu requiert la fréquence CPU par défaut. Deposterize = Améliorer @@ -608,6 +609,7 @@ High = Haute Hybrid = Hybride Hybrid + Bicubic = Hybride + Bicubique Ignore camera notch when centering = Ignorer l'encoche de la caméra lors du centrage +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Définition interne Lazy texture caching = Mise en cache paresseuse des textures (gain de vitesse) diff --git a/assets/lang/gl_ES.ini b/assets/lang/gl_ES.ini index 395a81ad99f3..b2b3b1c10050 100644 --- a/assets/lang/gl_ES.ini +++ b/assets/lang/gl_ES.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Axustes de Google Cardboard VR Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Depuración DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterizar @@ -608,6 +609,7 @@ High = Alta Hybrid = Híbrido Hybrid + Bicubic = Híbrido + Bicúbico Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Resolución interna Lazy texture caching = Caché de texturas diferido (rápido) diff --git a/assets/lang/gr_EL.ini b/assets/lang/gr_EL.ini index fb3c5dc61da8..664603cbc79c 100644 --- a/assets/lang/gr_EL.ini +++ b/assets/lang/gr_EL.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Ρυθμίσεις Google Cardboard VR Cheats = Cheats Copy to texture = Copy to texture CPU Core = Πυρήνες CPU +Current GPU Driver = Current GPU Driver Debugging = Αποσφαλάτωση DefaultCPUClockRequired = Προειδοποίηση: Αυτό το παιχνίδι απαιτεί το ρολόι CPU να οριστεί σε προεπιλογή. Deposterize = Εξομάλυνση Διαβαθμίσεων @@ -608,6 +609,7 @@ High = Υψηλή Hybrid = Υβριδική Hybrid + Bicubic = Υβριδική + Διακυβική Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Εσωτερική Ανάλυση Lazy texture caching = Τεμπέλικη προσωρινή μνήμη υφών (ταχύτερο) diff --git a/assets/lang/he_IL.ini b/assets/lang/he_IL.ini index aca3ee38a4ce..87ee3b78d4bb 100644 --- a/assets/lang/he_IL.ini +++ b/assets/lang/he_IL.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = ניפוי DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -608,6 +609,7 @@ High = High Hybrid = היברידי Hybrid + Bicubic = היברידי + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Internal resolution Lazy texture caching = Lazy texture caching (speedup) diff --git a/assets/lang/he_IL_invert.ini b/assets/lang/he_IL_invert.ini index 5a37f8e3e84a..651e343d5f4e 100644 --- a/assets/lang/he_IL_invert.ini +++ b/assets/lang/he_IL_invert.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = יופינ DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -608,6 +609,7 @@ High = High Hybrid = ידירביה Hybrid + Bicubic = ידירביה + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Internal resolution Lazy texture caching = Lazy texture caching (speedup) diff --git a/assets/lang/hr_HR.ini b/assets/lang/hr_HR.ini index f4380e48a7bf..e224f275b8f0 100644 --- a/assets/lang/hr_HR.ini +++ b/assets/lang/hr_HR.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR postavke Cheats = Šifre Copy to texture = Copy to texture CPU Core = CPU jezgra +Current GPU Driver = Current GPU Driver Debugging = Otklanjanje grešaka DefaultCPUClockRequired = Upozorenje: Ova igra zahtijeva CPU sat da bude postavljen na obično. Deposterize = Deposteriziranje @@ -608,6 +609,7 @@ High = Visoko Hybrid = Hibrid Hybrid + Bicubic = Hibrid + Bikubični Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Unutarnja rezolucija Lazy texture caching = Lijeno teksturno predmemoriranje (ubrzanje) diff --git a/assets/lang/hu_HU.ini b/assets/lang/hu_HU.ini index 7dd5e10ea937..100a6167045a 100644 --- a/assets/lang/hu_HU.ini +++ b/assets/lang/hu_HU.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR beállítások Cheats = Csalások Copy to texture = Copy to texture CPU Core = CPU mag +Current GPU Driver = Current GPU Driver Debugging = Hibakeresés DefaultCPUClockRequired = Figyelem: Ehhez a játékhoz az alapértelmezett CPU órajel beállítás szükséges! Deposterize = Keményítés megszüntetése @@ -608,6 +609,7 @@ High = Magas Hybrid = Hibrid Hybrid + Bicubic = Hibrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Belső felbontás Lazy texture caching = Lusta textúra gyorsítótárazás (gyorsítás) diff --git a/assets/lang/id_ID.ini b/assets/lang/id_ID.ini index 2d1b2baf0667..4651e5950f90 100644 --- a/assets/lang/id_ID.ini +++ b/assets/lang/id_ID.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Pengaturan Google Cardboard VR Cheats = Pengecoh Copy to texture = Copy to texture CPU Core = Inti CPU +Current GPU Driver = Current GPU Driver Debugging = Awakutu DefaultCPUClockRequired = Peringatan: Permainan ini membutuhkan pewaktu CPU untuk disetel ke awal. Deposterize = Deposterisasi @@ -608,6 +609,7 @@ High = Tinggi Hybrid = Hibrida Hybrid + Bicubic = Hibrida + Bikubik Ignore camera notch when centering = Abaikan pandangan kamera saat sedang fokus +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Resolusi internal Lazy texture caching = Perlambatan penembolokan tekstur (mempercepat) diff --git a/assets/lang/it_IT.ini b/assets/lang/it_IT.ini index d15da4c0abab..5431d77ce063 100644 --- a/assets/lang/it_IT.ini +++ b/assets/lang/it_IT.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Impostazioni Google Cardboard VR Cheats = Trucchi Copy to texture = Copy to texture CPU Core = Core CPU +Current GPU Driver = Current GPU Driver Debugging = Debugging DefaultCPUClockRequired = Attenzione: Per questo gioco il clock della CPU deve avere i valori predefiniti. Deposterize = De-posterizza @@ -609,6 +610,7 @@ High = Alta Hybrid = Ibrido Hybrid + Bicubic = Ibrido + Bicubico Ignore camera notch when centering = Ignora il notch della foto camera durante il centramento +Install Custom Driver... = Install Custom Driver... Integer scale factor = Fattore di scala intero Internal Resolution = Risoluzione Interna Lazy texture caching = Caching lenta delle texture (velocizza) diff --git a/assets/lang/ja_JP.ini b/assets/lang/ja_JP.ini index 54e009fe01ae..bf4d42774cbf 100644 --- a/assets/lang/ja_JP.ini +++ b/assets/lang/ja_JP.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VRの設定 Cheats = チート Copy to texture = Copy to texture CPU Core = CPUコア +Current GPU Driver = Current GPU Driver Debugging = デバッグ DefaultCPUClockRequired = 警告: このゲームではCPUクロックをデフォルトに設定する必要があります。 Deposterize = ポスタライズを解除する @@ -608,6 +609,7 @@ High = 高 Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = インカメラ液晶部分を画面センタリング領域に含めない +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = 内部解像度 Lazy texture caching = テクスチャキャッシュを遅延させる (高速化) diff --git a/assets/lang/jv_ID.ini b/assets/lang/jv_ID.ini index 10a9e3b44681..1b22f67e71d6 100644 --- a/assets/lang/jv_ID.ini +++ b/assets/lang/jv_ID.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Setelan Karton Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Pilian debug DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterisasikan @@ -608,6 +609,7 @@ High = Dhuwur Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Resolusi internal Lazy texture caching = Caching tektur puguh (Luwih cepet) diff --git a/assets/lang/ko_KR.ini b/assets/lang/ko_KR.ini index ed26b6af5cd3..755b180127d0 100644 --- a/assets/lang/ko_KR.ini +++ b/assets/lang/ko_KR.ini @@ -570,6 +570,7 @@ Backend = 백엔드 Balanced = 평형 Bicubic = 고등차수보간 Copy to texture = Copy to texture +Current GPU Driver = Current GPU Driver GPUReadbackRequired = 경고: 이 게임은 "GPU 다시 읽기 건너뛰기"를 꺼짐으로 설정해야 합니다. Both = 둘 다 Buffer graphics commands (faster, input lag) = 버퍼 그래픽 명령 (빠름, 입력 지연) @@ -608,6 +609,7 @@ High = 높음 Hybrid = 혼합 Hybrid + Bicubic = 혼합 + 고등차수보간 Ignore camera notch when centering = 센터링 시 카메라 노치 무시 +Install Custom Driver... = Install Custom Driver... Integer scale factor = 정수 배율 Internal Resolution = 내부 해상도 Lazy texture caching = 레이지 텍스처 캐싱 (속도 상승) diff --git a/assets/lang/lo_LA.ini b/assets/lang/lo_LA.ini index ccc91f36cb5d..9e807370fc2c 100644 --- a/assets/lang/lo_LA.ini +++ b/assets/lang/lo_LA.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = ການຕັ້ງຄ່າ Google Cardboard VR Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = ການແກ້ຈຸດບົກພ່ອງ DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -608,6 +609,7 @@ High = ສູງ Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = ຄວາມລະອຽດພາຍໃນ Lazy texture caching = ແຄດພື້ນຜິວແບບຫຍາບ (ໄວຂຶ້ນ) diff --git a/assets/lang/lt-LT.ini b/assets/lang/lt-LT.ini index eddc29297981..d6988c3748e3 100644 --- a/assets/lang/lt-LT.ini +++ b/assets/lang/lt-LT.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Testinis režimas DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = "Deposterize" @@ -608,6 +609,7 @@ High = Aukšta Hybrid = Hybridas Hybrid + Bicubic = Hybridas + "Bicubic" Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Vidinė rezoliucija Lazy texture caching = "Tingus" tekstūrų spartinimas (greičio didintojas) diff --git a/assets/lang/ms_MY.ini b/assets/lang/ms_MY.ini index cd0bf13e51e7..f451ecffaaff 100644 --- a/assets/lang/ms_MY.ini +++ b/assets/lang/ms_MY.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Pempepijat DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -608,6 +609,7 @@ High = High Hybrid = Hibrid Hybrid + Bicubic = Hibrid + Bikubik Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Resolusi dalaman Lazy texture caching = Pengkuki tekstur ringkas (tingkatkan kelajuan) diff --git a/assets/lang/nl_NL.ini b/assets/lang/nl_NL.ini index 3a765a87f3e2..9845137285e0 100644 --- a/assets/lang/nl_NL.ini +++ b/assets/lang/nl_NL.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Instellingen voor Google Cardboard VR Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU-core +Current GPU Driver = Current GPU Driver Debugging = Fouten opsporen DefaultCPUClockRequired = Waarschuwing: Deze game vereist de standaard CPU-kloksnelheid. Deposterize = Kleuren beperken opheffen @@ -608,6 +609,7 @@ High = Hoog Hybrid = Hybride Hybrid + Bicubic = Hybride + bicubisch Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Interne resolutie Lazy texture caching = Texturecaching reduceren (sneller) diff --git a/assets/lang/no_NO.ini b/assets/lang/no_NO.ini index 65ed036c3233..c534886ef8d3 100644 --- a/assets/lang/no_NO.ini +++ b/assets/lang/no_NO.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Debugging DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -608,6 +609,7 @@ High = High Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Internal resolution Lazy texture caching = Lazy texture caching (speedup) diff --git a/assets/lang/pl_PL.ini b/assets/lang/pl_PL.ini index 4265b18c5c26..0796c290e1b9 100644 --- a/assets/lang/pl_PL.ini +++ b/assets/lang/pl_PL.ini @@ -586,6 +586,7 @@ Cardboard VR Settings = Ustawienia Google Cardboard VR Cheats = Kody Copy to texture = Copy to texture CPU Core = Rdzeń procesora +Current GPU Driver = Current GPU Driver Debugging = Debugowanie DefaultCPUClockRequired = Uwaga: Ta gra wymaga, by częstotliwość taktowania CPU była domyślna. Deposterize = Deposteryzacja @@ -613,6 +614,7 @@ High = Wysokie Hybrid = Hybrydowe Hybrid + Bicubic = Hybrydowe + Dwusześcienne Ignore camera notch when centering = Ignoruj przesunięcie kamery podczas centrowania +Install Custom Driver... = Install Custom Driver... Integer scale factor = Całkowity współczynnik skali Internal Resolution = Rozdzielczość wewnętrzna Lazy texture caching = Leniwa pamięć tekstur (przyśpieszenie) diff --git a/assets/lang/pt_BR.ini b/assets/lang/pt_BR.ini index 6f9b83e07c73..dc56f2b3ce5c 100644 --- a/assets/lang/pt_BR.ini +++ b/assets/lang/pt_BR.ini @@ -594,6 +594,7 @@ Backend = Backend Balanced = Balanceado Bicubic = Bi-cúbico Copy to texture = Copy to texture +Current GPU Driver = Current GPU Driver GPUReadbackRequired = Aviso: Este jogo requer "Ignorar Leituras da GPU" pra ser configurado como Desligado. Both = Ambos Buffer graphics commands (faster, input lag) = Buffer dos comandos dos gráficos (mais rápido, atraso na entrada dos dados) @@ -632,6 +633,7 @@ High = Alta Hybrid = Híbrido Hybrid + Bicubic = Híbrido + bi-cúbico Ignore camera notch when centering = Ignora o nível da câmera quando centralizar +Install Custom Driver... = Install Custom Driver... Integer scale factor = Fator de escala do inteiro Internal Resolution = Resolução interna Lazy texture caching = Cache preguiçoso da textura (mais rápido) diff --git a/assets/lang/pt_PT.ini b/assets/lang/pt_PT.ini index bae6afca709f..6b9a2aedd9fe 100644 --- a/assets/lang/pt_PT.ini +++ b/assets/lang/pt_PT.ini @@ -605,6 +605,7 @@ Cardboard VR Settings = Definições do Google VR Cardboard Cheats = Cheats Copy to texture = Copy to texture CPU Core = Núcleo da CPU +Current GPU Driver = Current GPU Driver Debugging = Debugging DefaultCPUClockRequired = Aviso: Este jogo requer que o clock da CPU esteja definido como padrão. Deposterize = Deposterizar @@ -632,6 +633,7 @@ High = Alta Hybrid = Híbrido Hybrid + Bicubic = Híbrido + Bicúbico Ignore camera notch when centering = Ignora o nível da câmera quando centralizar +Install Custom Driver... = Install Custom Driver... Integer scale factor = Fator de escala inteiro Internal Resolution = Resolução interna Lazy texture caching = Caching preguiçoso da textura (mais rápido) diff --git a/assets/lang/ro_RO.ini b/assets/lang/ro_RO.ini index faaf0e5169cb..7143e4930847 100644 --- a/assets/lang/ro_RO.ini +++ b/assets/lang/ro_RO.ini @@ -582,6 +582,7 @@ Cardboard VR Settings = Setări Google Cardboard VR Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Depanare DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterizare @@ -609,6 +610,7 @@ High = Înalt Hybrid = Hibrid Hybrid + Bicubic = Hibrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Rezoluție internă Lazy texture caching = Stocare de texturi leneșă (mărire viteză) diff --git a/assets/lang/ru_RU.ini b/assets/lang/ru_RU.ini index 73709bc11b83..7186d2112571 100644 --- a/assets/lang/ru_RU.ini +++ b/assets/lang/ru_RU.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Параметры Cardboard VR Cheats = Читы Copy to texture = Copy to texture CPU Core = Ядро ЦП +Current GPU Driver = Current GPU Driver Debugging = Отладка DefaultCPUClockRequired = Предупреждение: для этой игры требуется выставить стандартную частоту ЦП. Deposterize = Депостеризация @@ -608,6 +609,7 @@ High = Высокое Hybrid = Гибридный Hybrid + Bicubic = Гибридный + бикубический Ignore camera notch when centering = Игнорировать челку камеры при центрировании +Install Custom Driver... = Install Custom Driver... Integer scale factor = Коэффициент целочисленного масштабирования Internal Resolution = Внутренние разрешение Lazy texture caching = Ленивое кэширование текстур (быстрее) diff --git a/assets/lang/sv_SE.ini b/assets/lang/sv_SE.ini index ee754c0f6284..36b5d7a62ae7 100644 --- a/assets/lang/sv_SE.ini +++ b/assets/lang/sv_SE.ini @@ -582,6 +582,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Fusk Copy to texture = Copy to texture CPU Core = CPU-kärna +Current GPU Driver = Current GPU Driver Debugging = Debuggning DefaultCPUClockRequired = Warning: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -609,6 +610,7 @@ High = High Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignorera kamerahål vid centrering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Intern upplösning Lazy texture caching = Lat textur-caching (speedup) diff --git a/assets/lang/tg_PH.ini b/assets/lang/tg_PH.ini index 03958619d1b2..96ac43bc78d8 100644 --- a/assets/lang/tg_PH.ini +++ b/assets/lang/tg_PH.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Debugging DefaultCPUClockRequired = BABALA: This game requires the CPU clock to be set to default. Deposterize = Deposterize @@ -608,6 +609,7 @@ High = Mataas Hybrid = Hybrid Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Resolusyong Internal Lazy texture caching = Lazy texture caching (pampa-bilis) diff --git a/assets/lang/th_TH.ini b/assets/lang/th_TH.ini index b1b8fbc2dffa..7dec9e5be4ab 100644 --- a/assets/lang/th_TH.ini +++ b/assets/lang/th_TH.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = การตั้งค่าแว่น กูเก Cheats = สูตรโกง Copy to texture = Copy to texture CPU Core = แกนกลางหน่วยประมวลผลหลัก +Current GPU Driver = Current GPU Driver Debugging = การแก้ไขจุดบกพร่อง DefaultCPUClockRequired = คำเตือน: เกมนี้ควรปรับใช้การจำลองความถี่ของซีพียูเป็นค่าอัตโนมัติ Deposterize = ดีโพสเตอร์ไรซ์ @@ -608,6 +609,7 @@ High = สูง Hybrid = ไฮบริด Hybrid + Bicubic = ไฮบริด + ไบคิวบิค Ignore camera notch when centering = ละเว้นตำแหน่งจอแหว่งเพื่อปรับภาพให้อยู่ตรงกลาง +Install Custom Driver... = Install Custom Driver... Integer scale factor = สเกลภาพจำนวนเต็ม Internal Resolution = ความละเอียดภายใน Lazy texture caching = แคชพื้นผิวแบบหยาบ (เร็วขึ้น) diff --git a/assets/lang/tr_TR.ini b/assets/lang/tr_TR.ini index f4392f09fcd3..150474c64a61 100644 --- a/assets/lang/tr_TR.ini +++ b/assets/lang/tr_TR.ini @@ -583,6 +583,7 @@ Cardboard VR Settings = Google Cardboard VR Ayarları Cheats = Hileler Copy to texture = Copy to texture CPU Core = İşlemci Çekirdeği +Current GPU Driver = Current GPU Driver Debugging = Hata Ayıklama DefaultCPUClockRequired = Uyarı: Bu oyun CPU saatinin varsayılana ayarlanmasını gerektirir. Deposterize = Deposterize @@ -610,6 +611,7 @@ High = Yüksek Hybrid = Hibrit Hybrid + Bicubic = Hibrit + Bikübik Ignore camera notch when centering = Merkezleme sırasında kamera çentiğini yoksay +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = İç çözünürlük Lazy texture caching = Yavaş doku önbellekleme (hızlandırır) diff --git a/assets/lang/uk_UA.ini b/assets/lang/uk_UA.ini index b1b11df11764..f23fc81b0b89 100644 --- a/assets/lang/uk_UA.ini +++ b/assets/lang/uk_UA.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Управління 3D кінотеатром Cheats = Чит-коди Copy to texture = Copy to texture CPU Core = Ядро CPU +Current GPU Driver = Current GPU Driver Debugging = Налагодження DefaultCPUClockRequired = Попередження: Ця гра вимагає, щоб частота процесора була встановлена за замовчуванням. Deposterize = Деполяризація @@ -608,6 +609,7 @@ High = Висока Hybrid = Гібридний Hybrid + Bicubic = Гібридний + Бікубічний Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Внутрішнє розширення Lazy texture caching = Кешування текстур diff --git a/assets/lang/vi_VN.ini b/assets/lang/vi_VN.ini index 132ae3614838..7c8322c3fa74 100644 --- a/assets/lang/vi_VN.ini +++ b/assets/lang/vi_VN.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR settings Cheats = Cheats Copy to texture = Copy to texture CPU Core = CPU core +Current GPU Driver = Current GPU Driver Debugging = Debugging DefaultCPUClockRequired = Cảnh báo: Trò chơi này yêu cầu đồng hồ CPU được đặt mặc định. Deposterize = Chống poster hóa @@ -608,6 +609,7 @@ High = Cao Hybrid = Hybrid (hỗn hợp) Hybrid + Bicubic = Hybrid + Bicubic Ignore camera notch when centering = Ignore camera notch when centering +Install Custom Driver... = Install Custom Driver... Integer scale factor = Integer scale factor Internal Resolution = Độ phân giải bên trong Lazy texture caching = Bộ nhớ đệm lazy texture (tăng tốc) diff --git a/assets/lang/zh_CN.ini b/assets/lang/zh_CN.ini index 28ef55afc032..cbcac3e52329 100644 --- a/assets/lang/zh_CN.ini +++ b/assets/lang/zh_CN.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR设置 Cheats = 金手指 Copy to texture = Copy to texture CPU Core = CPU核心模式 +Current GPU Driver = Current GPU Driver Debugging = 调试设置 DefaultCPUClockRequired = 警告:此游戏需要将CPU频率设置为默认。 Deposterize = 色调融合 @@ -608,6 +609,7 @@ High = 高质量 Hybrid = 混合 Hybrid + Bicubic = 混合+双三次 Ignore camera notch when centering = 忽略摄像头挖孔 +Install Custom Driver... = Install Custom Driver... Integer scale factor = 整倍缩放 Internal Resolution = 内部分辨率 Lazy texture caching = 减少缓存存取 (提速) diff --git a/assets/lang/zh_TW.ini b/assets/lang/zh_TW.ini index 2667826c35fa..d30ab0c6b9c0 100644 --- a/assets/lang/zh_TW.ini +++ b/assets/lang/zh_TW.ini @@ -581,6 +581,7 @@ Cardboard VR Settings = Google Cardboard VR 設定 Cheats = 密技 Copy to texture = Copy to texture CPU Core = CPU 核心 +Current GPU Driver = Current GPU Driver Debugging = 偵錯 DefaultCPUClockRequired = 警告:這個遊戲需要將 CPU 時脈設為預設值 Deposterize = 色調混合 @@ -608,6 +609,7 @@ High = 高 Hybrid = 混合 Hybrid + Bicubic = 混合 + 雙立方 Ignore camera notch when centering = 置中時忽略相機凹口 +Install Custom Driver... = Install Custom Driver... Integer scale factor = 整數縮放比例 Internal Resolution = 內部解析度 Lazy texture caching = 消極式紋理快取 (加速)