From 5418be738bd6b2a242d5576bd9d972840d0f007e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Mon, 13 Feb 2023 11:17:03 +0100 Subject: [PATCH] Make the rewind snapshot interval wall-time based instead of frame-based. --- Core/Config.cpp | 2 +- Core/Config.h | 2 +- Core/SaveState.cpp | 63 ++++++++++++++++++++---------------- UI/GameSettingsScreen.cpp | 4 +-- UI/PauseScreen.cpp | 2 +- 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 +- 48 files changed, 84 insertions(+), 75 deletions(-) diff --git a/Core/Config.cpp b/Core/Config.cpp index 9e4aff034b..ff957a4a72 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -537,7 +537,7 @@ static const ConfigSetting generalSettings[] = { ConfigSetting("StateLoadUndoGame", &g_Config.sStateLoadUndoGame, "NA", true, false), ConfigSetting("StateUndoLastSaveGame", &g_Config.sStateUndoLastSaveGame, "NA", true, false), ConfigSetting("StateUndoLastSaveSlot", &g_Config.iStateUndoLastSaveSlot, -5, true, false), // Start with an "invalid" value - ConfigSetting("RewindFlipFrequency", &g_Config.iRewindFlipFrequency, 0, true, true), + ConfigSetting("RewindSnapshotInterval", &g_Config.iRewindSnapshotInterval, 0, true, true), ConfigSetting("ShowOnScreenMessage", &g_Config.bShowOnScreenMessages, true, true, false), ConfigSetting("ShowRegionOnGameIcon", &g_Config.bShowRegionOnGameIcon, false), diff --git a/Core/Config.h b/Core/Config.h index 552f99299c..7d90f6de8f 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -224,7 +224,7 @@ public: int iAnalogFpsMode; // 0 = auto, 1 = single direction, 2 = mapped to opposite int iMaxRecent; int iCurrentStateSlot; - int iRewindFlipFrequency; + int iRewindSnapshotInterval; bool bUISound; bool bEnableStateUndo; std::string sStateLoadUndoGame; diff --git a/Core/SaveState.cpp b/Core/SaveState.cpp index c3c2d8a5b2..50b3dad39d 100644 --- a/Core/SaveState.cpp +++ b/Core/SaveState.cpp @@ -106,9 +106,10 @@ namespace SaveState // and 1 means that the following bytes are the next block. See Compress/LockedDecompress. class StateRingbuffer { public: - StateRingbuffer(int size) : size_(size) { - states_.resize(size); - baseMapping_.resize(size); + StateRingbuffer() { + size_ = REWIND_NUM_STATES; + states_.resize(size_); + baseMapping_.resize(size_); } ~StateRingbuffer() { @@ -119,6 +120,8 @@ namespace SaveState CChunkFileReader::Error Save() { + rewindLastTime = time_now_d(); + std::lock_guard guard(lock_); int n = next_++ % size_; @@ -162,7 +165,9 @@ namespace SaveState static std::vector buffer; LockedDecompress(buffer, states_[n], bases_[baseMapping_[n]]); - return LoadFromRam(buffer, errorString); + CChunkFileReader::Error error = LoadFromRam(buffer, errorString); + rewindLastTime = time_now_d(); + return error; } void ScheduleCompress(std::vector *result, const std::vector *state, const std::vector *base) @@ -244,8 +249,29 @@ namespace SaveState return next_ == first_; } + void Process() { + if (g_Config.iRewindSnapshotInterval <= 0) { + return; + } + + // For fast-forwarding, otherwise they may be useless and too close. + double now = time_now_d(); + double diff = now - rewindLastTime; + if (diff < g_Config.iRewindSnapshotInterval) + return; + + DEBUG_LOG(SAVESTATE, "Saving rewind state"); + Save(); + } + + void NotifyState() { + // Prevent saving snapshots immediately after loading or saving a state. + rewindLastTime = time_now_d(); + } + private: static const int BLOCK_SIZE = 8192; + static const int REWIND_NUM_STATES = 20; // TODO: Instead, based on size of compressed state? static const int BASE_USAGE_INTERVAL = 15; @@ -264,6 +290,8 @@ namespace SaveState int base_ = -1; int baseUsage_ = 0; + + double rewindLastTime = 0.0f; }; static bool needsProcess = false; @@ -281,12 +309,8 @@ namespace SaveState static std::string saveStateInitialGitVersion = ""; // TODO: Should this be configurable? - static const int REWIND_NUM_STATES = 20; static const int SCREENSHOT_FAILURE_RETRIES = 15; - static StateRingbuffer rewindStates(REWIND_NUM_STATES); - // TODO: Any reason for this to be configurable? - const static float rewindMaxWallFrequency = 1.0f; - static double rewindLastTime = 0.0f; + static StateRingbuffer rewindStates; void SaveStart::DoState(PointerWrap &p) { @@ -357,6 +381,7 @@ namespace SaveState void Load(const Path &filename, int slot, Callback callback, void *cbUserData) { + rewindStates.NotifyState(); if (coreState == CoreState::CORE_RUNTIME_ERROR) Core_EnableStepping(true, "savestate.load", 0); Enqueue(Operation(SAVESTATE_LOAD, filename, slot, callback, cbUserData)); @@ -364,6 +389,7 @@ namespace SaveState void Save(const Path &filename, int slot, Callback callback, void *cbUserData) { + rewindStates.NotifyState(); if (coreState == CoreState::CORE_RUNTIME_ERROR) Core_EnableStepping(true, "savestate.save", 0); Enqueue(Operation(SAVESTATE_SAVE, filename, slot, callback, cbUserData)); @@ -778,22 +804,6 @@ namespace SaveState return false; } - static inline void CheckRewindState() - { - if (gpuStats.numFlips % g_Config.iRewindFlipFrequency != 0) - return; - - // For fast-forwarding, otherwise they may be useless and too close. - double now = time_now_d(); - float diff = now - rewindLastTime; - if (diff < rewindMaxWallFrequency) - return; - - rewindLastTime = now; - DEBUG_LOG(BOOT, "Saving rewind state"); - rewindStates.Save(); - } - bool HasLoadedState() { return hasLoadedState; } @@ -850,8 +860,7 @@ namespace SaveState void Process() { - if (g_Config.iRewindFlipFrequency != 0 && gpuStats.numFlips != 0) - CheckRewindState(); + rewindStates.Process(); if (!needsProcess) return; diff --git a/UI/GameSettingsScreen.cpp b/UI/GameSettingsScreen.cpp index 1636e1bdff..c3a17ce7e9 100644 --- a/UI/GameSettingsScreen.cpp +++ b/UI/GameSettingsScreen.cpp @@ -1054,8 +1054,8 @@ void GameSettingsScreen::CreateSystemSettings(UI::ViewGroup *systemSettings) { return UI::EVENT_CONTINUE; }); lockedMhz->SetZeroLabel(sy->T("Auto")); - PopupSliderChoice *rewindFreq = systemSettings->Add(new PopupSliderChoice(&g_Config.iRewindFlipFrequency, 0, 1800, sy->T("Rewind Snapshot Frequency", "Rewind Snapshot Frequency (mem hog)"), screenManager(), sy->T("frames, 0:off"))); - rewindFreq->SetZeroLabel(sy->T("Off")); + PopupSliderChoice *rewindInterval = systemSettings->Add(new PopupSliderChoice(&g_Config.iRewindSnapshotInterval, 0, 30, sy->T("Rewind Snapshot Interval"), screenManager(), sy->T("seconds, 0:off"))); + rewindInterval->SetZeroLabel(sy->T("Off")); systemSettings->Add(new ItemHeader(sy->T("General"))); diff --git a/UI/PauseScreen.cpp b/UI/PauseScreen.cpp index d76824d9b1..4738e425d9 100644 --- a/UI/PauseScreen.cpp +++ b/UI/PauseScreen.cpp @@ -302,7 +302,7 @@ void GamePauseScreen::CreateViews() { saveUndoButton->OnClick.Handle(this, &GamePauseScreen::OnLastSaveUndo); } - if (g_Config.iRewindFlipFrequency > 0) { + if (g_Config.iRewindSnapshotInterval > 0) { UI::Choice *rewindButton = buttonRow->Add(new Choice(pa->T("Rewind"))); rewindButton->SetEnabled(SaveState::CanRewind()); rewindButton->OnClick.Handle(this, &GamePauseScreen::OnRewind); diff --git a/assets/lang/ar_AE.ini b/assets/lang/ar_AE.ini index 091a2856be..699e53ef3d 100644 --- a/assets/lang/ar_AE.ini +++ b/assets/lang/ar_AE.ini @@ -1138,7 +1138,7 @@ Failed to save state. Error in the file system. = ‎فشل في حفظ الحا Fast (lag on slow storage) = ‎سريع (بطي علي الذواكر البطئيه) Fast Memory = ‎الذاكرة السريعة (غير ثابت) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = إطارات, 0 = ‎مُغلق +seconds, 0:off = إطارات, 0 = ‎مُغلق Games list settings = Games list settings General = ‎العام Grid icon size = Grid icon size diff --git a/assets/lang/az_AZ.ini b/assets/lang/az_AZ.ini index 659165a6db..b030b67e94 100644 --- a/assets/lang/az_AZ.ini +++ b/assets/lang/az_AZ.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = Sürətli Yaddaş (qərarsız) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = General Grid icon size = Grid icon size diff --git a/assets/lang/bg_BG.ini b/assets/lang/bg_BG.ini index b53040462f..8dbf12e598 100644 --- a/assets/lang/bg_BG.ini +++ b/assets/lang/bg_BG.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = Бърза памет (нестабилно) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = Основни Grid icon size = Grid icon size diff --git a/assets/lang/ca_ES.ini b/assets/lang/ca_ES.ini index 1fc5d21d19..64b19aba26 100644 --- a/assets/lang/ca_ES.ini +++ b/assets/lang/ca_ES.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = Memòria ràpida (inestable) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = General Grid icon size = Grid icon size diff --git a/assets/lang/cz_CZ.ini b/assets/lang/cz_CZ.ini index 1c4bd4f103..da88a9b085 100644 --- a/assets/lang/cz_CZ.ini +++ b/assets/lang/cz_CZ.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Rychlá (zasekává se na pomalém úložišti) Fast Memory = Rychlá paměť (nestabilní) Force real clock sync (slower, less lag) = Vynutit skutečný soulad hodin (pomalejší, méně sekání) -frames, 0:off = snímky, 0 = vypnuto +seconds, 0:off = sekundy, 0 = vypnuto Games list settings = Games list settings General = Obecné Grid icon size = Grid icon size diff --git a/assets/lang/da_DK.ini b/assets/lang/da_DK.ini index 9c1da40995..b94cc282b7 100644 --- a/assets/lang/da_DK.ini +++ b/assets/lang/da_DK.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Hurtig (forsinkelser på langsomt lager) Fast Memory = Hurtig hukommelse (ustabil) Force real clock sync (slower, less lag) = Tving rigtig clock sync (langsommere, færre forsinkelser) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = Generel Grid icon size = Grid icon size diff --git a/assets/lang/de_DE.ini b/assets/lang/de_DE.ini index 6b91074989..2ac1e3b203 100644 --- a/assets/lang/de_DE.ini +++ b/assets/lang/de_DE.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Speichern des Standes ist fehl Fast (lag on slow storage) = Schnell (Lag bei langsamen Speicher) Fast Memory = Schneller Speicher (instabil) Force real clock sync (slower, less lag) = Erzwinge echte Taktsync (langsamer, weniger lag) -frames, 0:off = Frames, 0 = Aus +seconds, 0:off = seconds, 0 = Aus Games list settings = Games list settings General = Allgemein Grid icon size = Grid icon size diff --git a/assets/lang/dr_ID.ini b/assets/lang/dr_ID.ini index f6addd09f8..ed04d0f8aa 100644 --- a/assets/lang/dr_ID.ini +++ b/assets/lang/dr_ID.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = Memori malassi (tang stabil) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = Yato biasa Grid icon size = Grid icon size diff --git a/assets/lang/en_US.ini b/assets/lang/en_US.ini index 362ffc0a03..a896053141 100644 --- a/assets/lang/en_US.ini +++ b/assets/lang/en_US.ini @@ -1143,7 +1143,7 @@ Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = Fast memory (unstable) Floating symbols = Floating symbols Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Game crashed = Game crashed Games list settings = Games list settings General = General diff --git a/assets/lang/es_ES.ini b/assets/lang/es_ES.ini index 67364fc79d..93920a9973 100644 --- a/assets/lang/es_ES.ini +++ b/assets/lang/es_ES.ini @@ -1131,7 +1131,7 @@ Failed to save state. Error in the file system. = Error al guardar estado. Error Fast (lag on slow storage) = Rápido (lag en almac. lento) Fast Memory = Memoria rápida (inestable) Force real clock sync (slower, less lag) = Forzar sinc. real de reloj (lento, menos lag) -frames, 0:off = cuadros, 0 = no +seconds, 0:off = segundos, 0 = no Games list settings = Ajsutes de la lista de juegos General = General Grid icon size = Tamaño de iconos de cuadrícula diff --git a/assets/lang/es_LA.ini b/assets/lang/es_LA.ini index 9945e3c650..85ff013e98 100644 --- a/assets/lang/es_LA.ini +++ b/assets/lang/es_LA.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Falló al guardar el estado. H Fast (lag on slow storage) = Rápido (lag en almac. lento) Fast Memory = Memoria Rápida (inestable) Force real clock sync (slower, less lag) = Forzar sinc. real de reloj (lento, menos lag) -frames, 0:off = frames, 0 = No +seconds, 0:off = seconds, 0 = No Games list settings = Configuración de la lista de juegos General = General Grid icon size = Tamaño de icono de cuadrícula diff --git a/assets/lang/fa_IR.ini b/assets/lang/fa_IR.ini index 01ba71f2f5..1e26d0e635 100644 --- a/assets/lang/fa_IR.ini +++ b/assets/lang/fa_IR.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = ‎سریع (در حافظه های کند باعث لگ میشود) Fast Memory = ‎(مموری سریع (ناپایدار Force real clock sync (slower, less lag) = ‎واقعی (کندتر، لگ کمتر) CPU اجبار به همگام سازی سرعت -frames, 0:off = ‎تعداد فریم، 0 : خاموش +seconds, 0:off = ‎تعداد فریم، 0 : ثانیه Games list settings = لیست تنظیمات بازی General = ‎عمومی Grid icon size = Grid icon size diff --git a/assets/lang/fi_FI.ini b/assets/lang/fi_FI.ini index 19b549c7f9..cb4a69e71e 100644 --- a/assets/lang/fi_FI.ini +++ b/assets/lang/fi_FI.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = Nopea muisti (epävakaa) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = General Grid icon size = Grid icon size diff --git a/assets/lang/fr_FR.ini b/assets/lang/fr_FR.ini index faf713b89f..084c9d650d 100644 --- a/assets/lang/fr_FR.ini +++ b/assets/lang/fr_FR.ini @@ -1121,7 +1121,7 @@ Failed to save state. Error in the file system. = Échec de la sauvegarde de l' Fast (lag on slow storage) = Rapide (lag sur stockage lent) Fast Memory = Mémoire rapide (instable) Force real clock sync (slower, less lag) = Forcer synchronisation temps réel (+ lent, - de décalage) -frames, 0:off = images, 0 = off +seconds, 0:off = images, 0 = off Games list settings = Paramètres des listes de jeux General = Général Grid icon size = Taille des icônes diff --git a/assets/lang/gl_ES.ini b/assets/lang/gl_ES.ini index 366d7a51e0..cfc7d3987f 100644 --- a/assets/lang/gl_ES.ini +++ b/assets/lang/gl_ES.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Rápido (lag en almacenamento lento) Fast Memory = Memoria rápida (inestable) Force real clock sync (slower, less lag) = Forzar sinc. real de reloxo (lento, menos lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = Xeral Grid icon size = Grid icon size diff --git a/assets/lang/gr_EL.ini b/assets/lang/gr_EL.ini index 05e6b30145..c4ac45e86b 100644 --- a/assets/lang/gr_EL.ini +++ b/assets/lang/gr_EL.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Σφάλμα αποθήκευ Fast (lag on slow storage) = Γρήγορος (καθυστερήσεις σε αργά μέσα αποθήκευσης) Fast Memory = Γρήγορη Μνήμη (ασταθής) Force real clock sync (slower, less lag) = Εξαναγκασμός συγχρονισμού πραγματικού χρόνου (πιο αργό αλλά λιγότερες καθυστερήσεις) -frames, 0:off = καρέ, 0 = off +seconds, 0:off = δευτερόλεπτα, 0 = off Games list settings = Games list settings General = Γενικά Grid icon size = Grid icon size diff --git a/assets/lang/he_IL.ini b/assets/lang/he_IL.ini index 32210508a9..c2f1943fb7 100644 --- a/assets/lang/he_IL.ini +++ b/assets/lang/he_IL.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = עיבוד מהיר של זיכרון (לא יציב) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = כללי Grid icon size = Grid icon size diff --git a/assets/lang/he_IL_invert.ini b/assets/lang/he_IL_invert.ini index b076e61772..6f50014db9 100644 --- a/assets/lang/he_IL_invert.ini +++ b/assets/lang/he_IL_invert.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = )ביצי אל( ןורכיז לש ריהמ דוביע Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = יללכ Grid icon size = Grid icon size diff --git a/assets/lang/hr_HR.ini b/assets/lang/hr_HR.ini index 87186065cf..6c3cb6a9ac 100644 --- a/assets/lang/hr_HR.ini +++ b/assets/lang/hr_HR.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Neuspješno spremanje state-a. Fast (lag on slow storage) = Brzo (štekanje na malom prostoru) Fast Memory = Brza memorija (nestabilno) Force real clock sync (slower, less lag) = Prisili pravo-satno sinkroniziranje (sporije, manje šteka) -frames, 0:off = frame-ova, 0 = isključeno +seconds, 0:off = sekundi, 0 = isključeno Games list settings = Games list settings General = Generalno Grid icon size = Veličina ikona na mreži diff --git a/assets/lang/hu_HU.ini b/assets/lang/hu_HU.ini index d9d9801e81..401245991b 100644 --- a/assets/lang/hu_HU.ini +++ b/assets/lang/hu_HU.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Állapotmentés készítése s Fast (lag on slow storage) = Gyors (lassú tárolón akadozik) Fast Memory = Gyors memória elérés (instabil) Force real clock sync (slower, less lag) = Valós idejű óra szinkron kényszerítése (lassabb, kevesebb lag) -frames, 0:off = képkocka, 0 = ki +seconds, 0:off = másodpercig, 0 = ki Games list settings = Játéklista beállításai General = Általános Grid icon size = Ikonok mérete rácsnézetben diff --git a/assets/lang/id_ID.ini b/assets/lang/id_ID.ini index 0c5febe0a9..e93b4b551e 100644 --- a/assets/lang/id_ID.ini +++ b/assets/lang/id_ID.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Gagal menyimpan status/keadaan Fast (lag on slow storage) = Cepat (telat di penyimpanan yang lambat) Fast Memory = Memori cepat (tidak stabil) Force real clock sync (slower, less lag) = Paksa sinkronisasi pewaktu nyata (lambat, namun lebih tepat) -frames, 0:off = bingkai, 0 = mati +seconds, 0:off = detik, 0 = mati Games list settings = Daftar pengaturan permainan General = Umum Grid icon size = Ukuran ikon kisi diff --git a/assets/lang/it_IT.ini b/assets/lang/it_IT.ini index 56111fc258..9e01656cce 100644 --- a/assets/lang/it_IT.ini +++ b/assets/lang/it_IT.ini @@ -1141,7 +1141,7 @@ Show Memory Stick folder = Mostra cartella Memory Stick Theme = Tema Transparent UI background = Transparent UI background UI = Interfaccia -frames, 0:off = frames, 0 = spento +seconds, 0:off = secondi, 0 = spento Games list settings = Impostazioni Lista giochi General = Generali Grid icon size = Dimensioni delle icone diff --git a/assets/lang/ja_JP.ini b/assets/lang/ja_JP.ini index 6f04fbb432..81910315c6 100644 --- a/assets/lang/ja_JP.ini +++ b/assets/lang/ja_JP.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = ステートのセーブに失 Fast (lag on slow storage) = 高速 (遅いストレージだとラグあり) Fast Memory = 高速メモリ (不安定) Force real clock sync (slower, less lag) = リアルクロックへの同期を強制する (低速化, ラグ減少) -frames, 0:off = フレーム, 0 = オフ +seconds, 0:off = 秒, 0 = オフ Games list settings = ゲームリストの設定 General = 全般 Grid icon size = グリッド表示時のアイコンサイズ diff --git a/assets/lang/jv_ID.ini b/assets/lang/jv_ID.ini index 6d01a10515..90993b2ef8 100644 --- a/assets/lang/jv_ID.ini +++ b/assets/lang/jv_ID.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Cepet (lag on slow storage) Fast Memory = Memory cepet (ora stabil) Force real clock sync (slower, less lag) = Pasukan jam nyata sink (alon, kurang lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = detik, 0 = off Games list settings = Games list settings General = Umum Grid icon size = Grid icon size diff --git a/assets/lang/ko_KR.ini b/assets/lang/ko_KR.ini index 4215f116af..ce40dbb90d 100644 --- a/assets/lang/ko_KR.ini +++ b/assets/lang/ko_KR.ini @@ -1119,7 +1119,7 @@ Fast (lag on slow storage) = 빠름 (저속 저장 시 지연) Fast Memory = 빠른 메모리 (불안정) Floating symbols = 부동 기호 Force real clock sync (slower, less lag) = 실제 클럭 동기화 강제 실행(느림, 지연 감소) -frames, 0:off = 프레임, 0 = 끔 +seconds, 0:off = 초, 0 = 끔 Game crashed = 게임 충돌 Games list settings = 게임 목록 설정 General = 일반 diff --git a/assets/lang/lo_LA.ini b/assets/lang/lo_LA.ini index 86d1265ba1..e821e31861 100644 --- a/assets/lang/lo_LA.ini +++ b/assets/lang/lo_LA.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = ໄວ (ອາດແລັກຫາກບ່ອນເກັບຂໍ້ມູນອ່ານຊ້າ) Fast Memory = ໜ່ວຍຄວາມຈຳເຮັດວຽກໄວຂຶ້ນ (ໃຊ້ໄດ້ກັບບາງອຸປະກອນ) Force real clock sync (slower, less lag) = ບັງຄັບການຊິງສັນຍານຄວາມຖີ່ (ຊ້າກວ່າ, ແລັກໜ້ອຍກວ່າ) -frames, 0:off = ເຟຣມ, 0 = ປິດ +seconds, 0:off = ວິນາທີ, 0 = ປິດ Games list settings = Games list settings General = ທົ່ວໄປ Grid icon size = Grid icon size diff --git a/assets/lang/lt-LT.ini b/assets/lang/lt-LT.ini index 646ab7494e..3079809344 100644 --- a/assets/lang/lt-LT.ini +++ b/assets/lang/lt-LT.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = Greita atmintis (nestabili) Force real clock sync (slower, less lag) = Priversti tikro greičio sinchronizaciją (lėtesnis, mažiau striginėjimų) -frames, 0:off = frames, 0 = off +seconds, 0:off = sekundžių, 0 = off Games list settings = Games list settings General = Pagrindiniai Grid icon size = Grid icon size diff --git a/assets/lang/ms_MY.ini b/assets/lang/ms_MY.ini index 2778e76e94..932dc4ce79 100644 --- a/assets/lang/ms_MY.ini +++ b/assets/lang/ms_MY.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = Memori dilajukan (Tak stabil) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = Umum Grid icon size = Grid icon size diff --git a/assets/lang/nl_NL.ini b/assets/lang/nl_NL.ini index 3ca5034f52..17931d0d2b 100644 --- a/assets/lang/nl_NL.ini +++ b/assets/lang/nl_NL.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Kon de savestate niet opslaan. Fast (lag on slow storage) = Snel (lagt bij traag geheugen) Fast Memory = Snel geheugen (instabiel) Force real clock sync (slower, less lag) = Kloksnelheid gelijkzetten (trager, minder lag) -frames, 0:off = frames, 0 = uit +seconds, 0:off = seconds, 0 = uit Games list settings = Games list settings General = Algemeen Grid icon size = Grid icon size diff --git a/assets/lang/no_NO.ini b/assets/lang/no_NO.ini index 635c60bf81..78564c313c 100644 --- a/assets/lang/no_NO.ini +++ b/assets/lang/no_NO.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Fast (lag on slow storage) Fast Memory = Turbo minne (ikke stabilt) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = General Grid icon size = Grid icon size diff --git a/assets/lang/pl_PL.ini b/assets/lang/pl_PL.ini index 757c58c37c..482bea9be3 100644 --- a/assets/lang/pl_PL.ini +++ b/assets/lang/pl_PL.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Nie można zapisać stanu. Bł Fast (lag on slow storage) = Szybka (zacina na wolnych dyskach) Fast Memory = Szybka pamięć (niestabilne) Force real clock sync (slower, less lag) = Wymuś rzeczywistą synchr. zegara (wolniej, mniej zacina) -frames, 0:off = klatki, 0 = wył. +seconds, 0:off = sekundy, 0 = wył. Games list settings = Games list settings General = Ogólne Grid icon size = Grid icon size diff --git a/assets/lang/pt_BR.ini b/assets/lang/pt_BR.ini index 145a306ee3..61a97a6d42 100644 --- a/assets/lang/pt_BR.ini +++ b/assets/lang/pt_BR.ini @@ -1143,7 +1143,7 @@ Fast (lag on slow storage) = Rápido (atraso na armazenagem lenta) Fast Memory = Memória rápida (instável) Floating symbols = Símbolos flutuantes Force real clock sync (slower, less lag) = Forçar sincronização com o relógio real (mais lento, menos atrasos) -frames, 0:off = frames, 0 = Desligado +seconds, 0:off = seconds, 0 = Desligado Game crashed = O jogo teve um crash Games list settings = Configurações da lista de jogos General = Geral diff --git a/assets/lang/pt_PT.ini b/assets/lang/pt_PT.ini index 072e9c6ff1..a3f2984a78 100644 --- a/assets/lang/pt_PT.ini +++ b/assets/lang/pt_PT.ini @@ -1146,7 +1146,7 @@ Fast (lag on slow storage) = Rápido (mais lento no armazenamento lento) Fast Memory = Memória Rápida (instável) Floating symbols = Símbolos flutuantes Force real clock sync (slower, less lag) = Forçar sincronização com o relógio real (mais lento, menos atrasos) -frames, 0:off = quadros, 0 = Desligado +seconds, 0:off = segundos, 0 = Desligado Games list settings = Definições da lista de jogos General = Geral Grid icon size = Tamanho do ícone da grade diff --git a/assets/lang/ro_RO.ini b/assets/lang/ro_RO.ini index 75025f5fe9..a7c1e774f1 100644 --- a/assets/lang/ro_RO.ini +++ b/assets/lang/ro_RO.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Failed to save state. Error in Fast (lag on slow storage) = Rapid (lent pe stocare lentă) Fast Memory = Memorie rapidă (instabil) Force real clock sync (slower, less lag) = Forțează sincronizare cu ceas real (lent, mai puțină latență) -frames, 0:off = frames, 0 = off +seconds, 0:off = secunde, 0 = off Games list settings = Games list settings General = General Grid icon size = Grid icon size diff --git a/assets/lang/ru_RU.ini b/assets/lang/ru_RU.ini index 05a99f929e..a33f26ff75 100644 --- a/assets/lang/ru_RU.ini +++ b/assets/lang/ru_RU.ini @@ -1130,7 +1130,7 @@ Fast (lag on slow storage) = Быстрый Fast Memory = Быстрая память (нестабильно) Floating symbols = Парящие символы Force real clock sync (slower, less lag) = Принудительная синхронизация реальной частоты ЦП (медленнее, меньше лагов) -frames, 0:off = кадров, 0 = откл. +seconds, 0:off = секунды, 0 = откл. Games list settings = Настройки списка игр General = Основные Grid icon size = Размер ярлыков в режиме сетки diff --git a/assets/lang/sv_SE.ini b/assets/lang/sv_SE.ini index 02f9e5c157..b9768f7c40 100644 --- a/assets/lang/sv_SE.ini +++ b/assets/lang/sv_SE.ini @@ -1129,7 +1129,7 @@ Failed to save state. Error in the file system. = Kunde inte spara state - filsy Fast (lag on slow storage) = Snabbt (lag on slow storage) Fast Memory = Snabbt minne (instabilt) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = avstängt +seconds, 0:off = seconds, 0 = avstängt Games list settings = Inställningar för spel-listan General = Blandat Grid icon size = Ikonstorlek i rutnät diff --git a/assets/lang/tg_PH.ini b/assets/lang/tg_PH.ini index 7c8f3d374a..472813cd6b 100644 --- a/assets/lang/tg_PH.ini +++ b/assets/lang/tg_PH.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Pumalya sa save state. Nagka e Fast (lag on slow storage) = Mabilis (mabagal naman sa mahinang storage) Fast Memory = Mabilis na memorya (hindi stable) Force real clock sync (slower, less lag) = Force real clock sync (slower, less lag) -frames, 0:off = frames, 0 = off +seconds, 0:off = seconds, 0 = off Games list settings = Games list settings General = Pangkalahatan Grid icon size = Grid icon size diff --git a/assets/lang/th_TH.ini b/assets/lang/th_TH.ini index a0083d8ed8..7f626c743c 100644 --- a/assets/lang/th_TH.ini +++ b/assets/lang/th_TH.ini @@ -1132,7 +1132,7 @@ Fast (lag on slow storage) = เร็ว (อาจแล็ก หากที Fast Memory = หน่วยความจำทำงานได้เร็วขึ้น (ไม่เสถียร) Floating symbols = สัญลักษณ์ปุ่มจอยลอยไปมา Force real clock sync (slower, less lag) = บังคับการซิงค์สัญญาณความถี่ (ช้ากว่า, เเล็กน้อยลง) -frames, 0:off = เฟรม, 0 = ปิด +seconds, 0:off = วินาที, 0 = ปิด Game crashed = Game crashed Games list settings = การตั้งค่าในรายการเกม General = ทั่วไป diff --git a/assets/lang/tr_TR.ini b/assets/lang/tr_TR.ini index 0948a6cd6b..ae7edf0cf8 100644 --- a/assets/lang/tr_TR.ini +++ b/assets/lang/tr_TR.ini @@ -1131,7 +1131,7 @@ Failed to save state. Error in the file system. = Durum kaydedilemedi. Dosya sis Fast (lag on slow storage) = Hızlı (Yavaş depolamada gecikme yapabilir) Fast Memory = Hızlı Bellek (Kararsız) Force real clock sync (slower, less lag) = Gerçek sayaç senkronizasyonuna zorla (daha yavaş, daha az kasma) -frames, 0:off = frames, 0 = off +seconds, 0:off = saniye, 0 = off Games list settings = Oyun listesi ayarları General = Genel Grid icon size = Izgara simge boyutu diff --git a/assets/lang/uk_UA.ini b/assets/lang/uk_UA.ini index b034407cf5..c4ec4fc6ca 100644 --- a/assets/lang/uk_UA.ini +++ b/assets/lang/uk_UA.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Не вдалося збере Fast (lag on slow storage) = Швидко (лаги при повільній шв. карти пам'яті) Fast Memory = Швидка пам'ять (нестабільно) Force real clock sync (slower, less lag) = Синхронизація в реальному часі (повільніше, можливі лаги) -frames, 0:off = кадри, 0 = вимк. +seconds, 0:off = секунд, 0 = вимк. Games list settings = Налаштування списку ігор General = Загальні Grid icon size = Розмір піктограми сітки diff --git a/assets/lang/vi_VN.ini b/assets/lang/vi_VN.ini index 14ef9e8c3c..e521a0d4be 100644 --- a/assets/lang/vi_VN.ini +++ b/assets/lang/vi_VN.ini @@ -1130,7 +1130,7 @@ Failed to save state. Error in the file system. = Save thất bại. Lỗi nằm Fast (lag on slow storage) = Nhanh (lag trên bộ nhớ thấp) Fast Memory = Bộ nhớ nhanh (không ổn định) Force real clock sync (slower, less lag) = Buộc đồng bộ tốc độ xung nhịp (chậm hơn, giảm lag hơn) -frames, 0:off = Khung, 0 = tắt +seconds, 0:off = giây, 0 = tắt Games list settings = Games list settings General = Linh tinh Grid icon size = Grid icon size diff --git a/assets/lang/zh_CN.ini b/assets/lang/zh_CN.ini index cb3aef28c6..12b0227052 100644 --- a/assets/lang/zh_CN.ini +++ b/assets/lang/zh_CN.ini @@ -1124,7 +1124,7 @@ Failed to save state. Error in the file system. = 无法保存即时存档。文 Fast (lag on slow storage) = 快速模式(存储低速时有延迟) Fast Memory = 快速内存(不稳定) Force real clock sync (slower, less lag) = 强制同步实际时钟(降低延迟,很慢) -frames, 0:off = 每几帧, 0=关 +seconds, 0:off = 秒, 0=关 Games list settings = 游戏列表设置 General = 常规设置 Grid icon size = 图标方格尺寸 diff --git a/assets/lang/zh_TW.ini b/assets/lang/zh_TW.ini index 7919506b93..6915f757ee 100644 --- a/assets/lang/zh_TW.ini +++ b/assets/lang/zh_TW.ini @@ -1121,7 +1121,7 @@ Fast (lag on slow storage) = 快速 (慢速儲存體延遲) Fast Memory = 快速記憶體 (不穩定) Floating symbols = 浮動符號 Force real clock sync (slower, less lag) = 強制真實時脈同步 (更慢,減少延遲) -frames, 0:off = 影格,0 = 關閉 +seconds, 0:off = 秒,0 = 關閉 Games list settings = 遊戲清單設定 General = 一般 Grid icon size = 格狀圖示大小