diff --git a/README.md b/README.md index ef3e683e6..bb51dee13 100644 --- a/README.md +++ b/README.md @@ -39,12 +39,12 @@

Click below to join the Discord:
- + Discord

- +

## Usage diff --git a/docs/compatibility.csv b/docs/compatibility.csv index 6cb10e8d8..7653ced9e 100644 --- a/docs/compatibility.csv +++ b/docs/compatibility.csv @@ -2988,8 +2988,8 @@ 010015D003EE4000,"The Jackbox Party Pack 2",online-working,playable,2022-08-22 18:23:40 0100CC80013D6000,"The Jackbox Party Pack 3",slow;online-working,playable,2022-08-22 18:41:06 0100E1F003EE8000,"The Jackbox Party Pack 4",online-working,playable,2022-08-22 18:56:34 -01006fe0096ac000,"The Jackbox Party Pack 5",ldn-untested,boots,2025-02-03 22:32:00 -01005a400db52000,"The Jackbox Party Pack 6",ldn-untested,boots,2025-02-03 22:32:00 +01006fe0096ac000,"The Jackbox Party Pack 5",slow;online-working,ingame,2025-02-14 05:32:00 +01005a400db52000,"The Jackbox Party Pack 6",slow;online-working,ingame,2025-02-14 05:26:00 010052C00B184000,"The Journey Down: Chapter One",nvdec,playable,2021-02-24 13:32:41 01006BC00B188000,"The Journey Down: Chapter Three",nvdec,playable,2021-02-24 13:45:27 01009AB00B186000,"The Journey Down: Chapter Two",nvdec,playable,2021-02-24 13:32:13 diff --git a/src/ARMeilleure/Translation/Cache/JitCache.cs b/src/ARMeilleure/Translation/Cache/JitCache.cs index bc75e7d3f..5871b5308 100644 --- a/src/ARMeilleure/Translation/Cache/JitCache.cs +++ b/src/ARMeilleure/Translation/Cache/JitCache.cs @@ -186,7 +186,7 @@ namespace ARMeilleure.Translation.Cache int newRegionNumber = _activeRegionIndex; - Logger.Warning?.Print(LogClass.Cpu, $"JIT Cache Region {exhaustedRegion} exhausted, creating new Cache Region {newRegionNumber} ({((newRegionNumber + 1) * CacheSize).Bytes()} Total Allocation)."); + Logger.Warning?.Print(LogClass.Cpu, $"JIT Cache Region {exhaustedRegion} exhausted, creating new Cache Region {newRegionNumber} ({((long)(newRegionNumber + 1) * CacheSize).Bytes()} Total Allocation)."); _cacheAllocator = new CacheMemoryAllocator(CacheSize); diff --git a/src/Ryujinx.Cpu/LightningJit/Cache/JitCache.cs b/src/Ryujinx.Cpu/LightningJit/Cache/JitCache.cs index ccf8ad964..1d79ed0b5 100644 --- a/src/Ryujinx.Cpu/LightningJit/Cache/JitCache.cs +++ b/src/Ryujinx.Cpu/LightningJit/Cache/JitCache.cs @@ -166,7 +166,7 @@ namespace Ryujinx.Cpu.LightningJit.Cache int newRegionNumber = _activeRegionIndex; - Logger.Warning?.Print(LogClass.Cpu, $"JIT Cache Region {exhaustedRegion} exhausted, creating new Cache Region {newRegionNumber} ({((newRegionNumber + 1) * CacheSize).Bytes()} Total Allocation)."); + Logger.Warning?.Print(LogClass.Cpu, $"JIT Cache Region {exhaustedRegion} exhausted, creating new Cache Region {newRegionNumber} ({((long)(newRegionNumber + 1) * CacheSize).Bytes()} Total Allocation)."); _cacheAllocator = new CacheMemoryAllocator(CacheSize); diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs index a3e765a2d..b345eb362 100644 --- a/src/Ryujinx/AppHost.cs +++ b/src/Ryujinx/AppHost.cs @@ -517,7 +517,7 @@ namespace Ryujinx.Ava Device?.System.ChangeDockedModeState(e.NewValue); } - private void UpdateAudioVolumeState(object sender, ReactiveEventArgs e) + public void UpdateAudioVolumeState(object sender, ReactiveEventArgs e) { Device?.SetVolume(e.NewValue); diff --git a/src/Ryujinx/Assets/Styles/Styles.xaml b/src/Ryujinx/Assets/Styles/Styles.xaml index 45cc151f8..7793f5341 100644 --- a/src/Ryujinx/Assets/Styles/Styles.xaml +++ b/src/Ryujinx/Assets/Styles/Styles.xaml @@ -46,6 +46,8 @@ + @@ -337,6 +339,14 @@ + + + + + diff --git a/src/Ryujinx/Assets/locales.json b/src/Ryujinx/Assets/locales.json index 5456f90ce..11b9efd2a 100644 --- a/src/Ryujinx/Assets/locales.json +++ b/src/Ryujinx/Assets/locales.json @@ -76,7 +76,7 @@ "ID": "MenuBarFileOpenAppletOpenMiiApplet", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Mii-Bearbeitungsapplet", "el_GR": "", "en_US": "Mii Edit Applet", "es_ES": "Applet Editor Mii", @@ -87,7 +87,7 @@ "ko_KR": "Mii 편집 애플릿", "no_NO": "Mii-redigeringsapplet", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Applet Editor de Mii", "ru_RU": "Апплет Mii Editor", "sv_SE": "Redigera Mii-applet", "th_TH": "", @@ -176,7 +176,7 @@ "ID": "SettingsTabSystemMemoryManagerModeSoftware", "Translations": { "ar_SA": "البرنامج", - "de_DE": "", + "de_DE": "Programme", "el_GR": "Λογισμικό", "en_US": "Software", "es_ES": "", @@ -326,7 +326,7 @@ "ID": "MenuBarFileOpenFromFileError", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Keine Anwendungen im ausgewählten Datei gefunden.", "el_GR": "", "en_US": "No applications found in selected file.", "es_ES": "No se encontraron aplicaciones en el archivo seleccionado.", @@ -376,7 +376,7 @@ "ID": "MenuBarFileLoadDlcFromFolder", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "DLC aus Ordner laden", "el_GR": "", "en_US": "Load DLC From Folder", "es_ES": "Cargar DLC Desde Carpeta", @@ -401,7 +401,7 @@ "ID": "MenuBarFileLoadTitleUpdatesFromFolder", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Titel-Updates aus Ordner laden", "el_GR": "", "en_US": "Load Title Updates From Folder", "es_ES": "Cargar Actualizaciones de Títulos Desde Carpeta", @@ -576,7 +576,7 @@ "ID": "MenuBarOptionsStartGamesWithoutUI", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Spiele ohne Benutzeroberfläche starten", "el_GR": "", "en_US": "Start Games with UI Hidden", "es_ES": "", @@ -585,11 +585,11 @@ "it_IT": "", "ja_JP": "", "ko_KR": "UI를 숨긴 상태에서 게임 시작", - "no_NO": "", + "no_NO": "Start Spillet med UI Gjemt", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Iniciar jogos ocultando a interface", "ru_RU": "", - "sv_SE": "", + "sv_SE": "Starta spel med dolt användargränssnitt", "th_TH": "", "tr_TR": "", "uk_UA": "", @@ -751,7 +751,7 @@ "ID": "MenuBarActionsScanAmiiboBin", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Amiibo scannen (aus Bin-Datei)", "el_GR": "", "en_US": "Scan An Amiibo (From Bin)", "es_ES": "", @@ -762,7 +762,7 @@ "ko_KR": "Amiibo 스캔(빈에서)", "no_NO": "Skann en Amiibo (fra bin fil)", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Escaneie um Amiibo (de um .bin)", "ru_RU": "Сканировать Amiibo (из папки Bin)", "sv_SE": "Skanna en Amiibo (från bin-fil)", "th_TH": "", @@ -851,7 +851,7 @@ "ID": "MenuBarActionsInstallKeys", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Schlüssel installieren", "el_GR": "", "en_US": "Install Keys", "es_ES": "", @@ -862,7 +862,7 @@ "ko_KR": "설치 키", "no_NO": "Installere nøkler", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Instalar Chaves", "ru_RU": "Установить ключи", "sv_SE": "Installera nycklar", "th_TH": "", @@ -876,7 +876,7 @@ "ID": "MenuBarFileActionsInstallKeysFromFile", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Schlüssel aus KEYS oder ZIP installieren", "el_GR": "", "en_US": "Install keys from KEYS or ZIP", "es_ES": "Instalar keys de KEYS o ZIP", @@ -887,7 +887,7 @@ "ko_KR": "키나 ZIP에서 키 설치", "no_NO": "Installer nøkler fra KEYS eller ZIP", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Instalar chaves de CHAVES ou ZIP", "ru_RU": "Установить ключи из файла KEYS или ZIP", "sv_SE": "Installera nycklar från KEYS eller ZIP", "th_TH": "", @@ -901,7 +901,7 @@ "ID": "MenuBarFileActionsInstallKeysFromFolder", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Schlüssel aus einem Verzeichnis installieren", "el_GR": "", "en_US": "Install keys from a directory", "es_ES": "Instalar keys de un directorio", @@ -912,7 +912,7 @@ "ko_KR": "디렉터리에서 키 설치", "no_NO": "Installer nøkler fra en mappe", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Instalar chaves de um diretório", "ru_RU": "Установить ключи из папки", "sv_SE": "Installera nycklar från en katalog", "th_TH": "", @@ -1001,7 +1001,7 @@ "ID": "MenuBarActionsXCITrimmer", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "XCI-Dateien trimmen", "el_GR": "", "en_US": "Trim XCI Files", "es_ES": "Recortar archivos XCI", @@ -1012,7 +1012,7 @@ "ko_KR": "XCI 파일 트리머", "no_NO": "Trim XCI-filer", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Reduzir arquivos XCI", "ru_RU": "Уменьшить размер XCI файлов", "sv_SE": "Optimera XCI-filer", "th_TH": "", @@ -1037,7 +1037,7 @@ "ko_KR": "보기(_V)", "no_NO": "_Vis", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Ver", "ru_RU": "_Вид", "sv_SE": "_Visa", "th_TH": "_มุมมอง", @@ -1062,7 +1062,7 @@ "ko_KR": "윈도 창", "no_NO": "Vindu størrelse", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Tamanho da janela", "ru_RU": "Размер окна", "sv_SE": "Fönsterstorlek", "th_TH": "ขนาดหน้าต่าง", @@ -1226,7 +1226,7 @@ "ID": "MenuBarHelpFaqAndGuides", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "FAQ & Anleitungen", "el_GR": "", "en_US": "FAQ & Guides", "es_ES": "", @@ -1237,7 +1237,7 @@ "ko_KR": "자주 묻는 질문(FAQ) 및 안내", "no_NO": "Vanlige spørsmål og veiledninger", "pl_PL": "", - "pt_BR": "", + "pt_BR": "FAQ & Guias", "ru_RU": "FAQ и Руководства", "sv_SE": "Frågor, svar och guider", "th_TH": "", @@ -1251,7 +1251,7 @@ "ID": "MenuBarHelpFaq", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "FAQ & Fehlerbehebung Seite", "el_GR": "", "en_US": "FAQ & Troubleshooting Page", "es_ES": "", @@ -1262,7 +1262,7 @@ "ko_KR": "자주 묻는 질문(FAQ) 및 문제해결 페이지", "no_NO": "FAQ- og feilsøkingsside", "pl_PL": "", - "pt_BR": "", + "pt_BR": "FAQ e solução de problemas", "ru_RU": "FAQ & Устранение неполадок", "sv_SE": "Frågor, svar och felsökningssida", "th_TH": "", @@ -1276,7 +1276,7 @@ "ID": "MenuBarHelpFaqTooltip", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Öffnet die FAQ- und Fehlerbehebungsseite im offiziellen Ryujinx-Wiki", "el_GR": "", "en_US": "Opens the FAQ and Troubleshooting page on the official Ryujinx wiki", "es_ES": "", @@ -1287,7 +1287,7 @@ "ko_KR": "공식 Ryujinx 위키에서 자주 묻는 질문(FAQ) 및 문제 해결 페이지 열기", "no_NO": "Åpner FAQ- og feilsøkingssiden på den offisielle Ryujinx-wikien", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Abre a página de FAQ e solução de problemas no wiki oficial do Ryujinx", "ru_RU": "Открывает страницы с FAQ и Устранением неполадок на официальной странице вики Ryujinx", "sv_SE": "Öppnar Frågor, svar och felsökningssidan på den officiella Ryujinx-wikin", "th_TH": "", @@ -1301,7 +1301,7 @@ "ID": "MenuBarHelpSetup", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Setup- und Konfigurationsanleitung", "el_GR": "", "en_US": "Setup & Configuration Guide", "es_ES": "", @@ -1312,7 +1312,7 @@ "ko_KR": "설치 및 구성 안내", "no_NO": "Oppsett- og konfigurasjonsveiledning", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Guia de instalação e configuração", "ru_RU": "Руководство по установке и настройке", "sv_SE": "Konfigurationsguide", "th_TH": "", @@ -1326,7 +1326,7 @@ "ID": "MenuBarHelpSetupTooltip", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Öffnet die Setup- und Konfigurationsanleitung im offiziellen Ryujinx-Wiki", "el_GR": "", "en_US": "Opens the Setup & Configuration guide on the official Ryujinx wiki", "es_ES": "", @@ -1337,7 +1337,7 @@ "ko_KR": "공식 Ryujinx 위키에서 설정 및 구성 안내 열기", "no_NO": "Åpner oppsett- og konfigurasjonsveiledningen på den offisielle Ryujinx-wikien", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Abre o guia de instalação e configuração no wiki oficial do Ryujinx", "ru_RU": "Открывает страницу Руководство по установке и настройке на официальной странице вики Ryujinx", "sv_SE": "Öppnar konfigurationsguiden på den officiella Ryujinx-wikin", "th_TH": "", @@ -1351,7 +1351,7 @@ "ID": "MenuBarHelpMultiplayer", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Multiplayer (LDN/LAN) Anleitung", "el_GR": "", "en_US": "Multiplayer (LDN/LAN) Guide", "es_ES": "", @@ -1362,7 +1362,7 @@ "ko_KR": "멀티플레이어(LDN/LAN) 안내", "no_NO": "Flerspillerveiledning (LDN/LAN)", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Guia multijogador (LDN/LAN)", "ru_RU": "Гайд по мультиплееру (LDN/LAN)", "sv_SE": "Flerspelarguide (LDN/LAN)", "th_TH": "", @@ -1376,7 +1376,7 @@ "ID": "MenuBarHelpMultiplayerTooltip", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Öffnet die Multiplayer-Anleitung im offiziellen Ryujinx-Wiki", "el_GR": "", "en_US": "Opens the Multiplayer guide on the official Ryujinx wiki", "es_ES": "", @@ -1387,7 +1387,7 @@ "ko_KR": "공식 Ryujinx 위키에서 멀티플레이어 안내 열기", "no_NO": "Åpner flerspillerveiledningen på den offisielle Ryujinx-wikien", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Abre o guia multijogador no wiki oficial do Ryujinx", "ru_RU": "Открывает гайд по мультиплееру на официальной странице вики Ryujinx", "sv_SE": "Öppnar flerspelarguiden på den officiella Ryujinx-wikin", "th_TH": "", @@ -1526,7 +1526,7 @@ "ID": "GameListHeaderDeveloper", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Entwickelt von {0}", "el_GR": "", "en_US": "Developed by {0}", "es_ES": "", @@ -1535,9 +1535,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Utviklet av {0}", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Desenvolvido por {0}", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -1826,7 +1826,7 @@ "ID": "GameListHeaderCompatibilityStatus", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Kompatibilität:", "el_GR": "", "en_US": "Compatibility:", "es_ES": "", @@ -1835,9 +1835,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Kompatibilitet", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Compatibilidade:", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -1860,9 +1860,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Tittel ID:", "pl_PL": "", - "pt_BR": "", + "pt_BR": "ID do título:", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -1885,9 +1885,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Spill som Arrangeres: {0}", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Jogos hospedados: {0}", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -1910,9 +1910,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Online-spillere: {0}", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Jogadores Online: {0}", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -2260,9 +2260,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "PPTC 캐시 제거", - "no_NO": "", + "no_NO": "Tøm PPTC-bufferen", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Limpar cache PPTC", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -2285,9 +2285,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "앱의 모든 PPTC 캐시 파일 삭제", - "no_NO": "", + "no_NO": "Sletter alle PPTC-cache-filer for applikasjonen", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Apagar os arquivos de cache PPTC do aplicativo", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -2612,9 +2612,9 @@ "ko_KR": "선택한 DLC 파일에서 RomFS 추출", "no_NO": "Pakk ut RomFS filene fra valgt DLC fil", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Extraia o RomFS de um arquivo DLC selecionado", "ru_RU": "", - "sv_SE": "", + "sv_SE": "Extrahera RomFS från en vald DLC-fil", "th_TH": "", "tr_TR": "", "uk_UA": "", @@ -2637,7 +2637,7 @@ "ko_KR": "로고", "no_NO": "", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Logotipo", "ru_RU": "Лого", "sv_SE": "Logotyp", "th_TH": "โลโก้", @@ -2810,9 +2810,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "호환성 항목 표시", - "no_NO": "", + "no_NO": "Vis kompatibilitetsoppføring", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Mostrar entrada de compatibilidade", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -2835,9 +2835,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "일반적으로 도움말 메뉴를 통해 접근할 수 있는 호환성 목록에 선택한 게임을 표시합니다.", - "no_NO": "", + "no_NO": "Vis det valgte spillet i kompatibilitetslisten, som du vanligvis får tilgang til via Hjelp-menyen.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Exibe o jogo selecionado na Lista de Compatibilidade, que normalmente pode ser acessada pelo menu Ajuda.", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -2860,9 +2860,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "게임 통계 표시", - "no_NO": "", + "no_NO": "Vis Spill Info", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Mostrar informações do jogo", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -2885,9 +2885,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "그리드 보기 레이아웃에서 누락된 현재 선택된 게임에 대한 다양한 정보를 표시합니다.", - "no_NO": "", + "no_NO": "Vis statistikk og detaljer om det valgte spillet.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Mostrar estatísticas e detalhes sobre o jogo selecionado no momento.", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -2987,7 +2987,7 @@ "ko_KR": "해당 게임의 모드가 포함된 대체 SD 카드 Atmosphere 디렉터리를 엽니다. 실제 하드웨어용으로 패키징된 모드에 유용합니다.", "no_NO": "Åpner den alternative SD-kortets Atmosfære-mappe som inneholder programmoduser. Nyttig for modifikasjoner som er pakket for ekte maskinvare.", "pl_PL": "Otwiera alternatywny katalog Atmosphere na karcie SD, który zawiera mody danej aplikacji. Przydatne dla modów przygotowanych pod prawdziwy sprzęt.", - "pt_BR": "", + "pt_BR": "Abre o diretório Atmosphere do cartão SD alternativo que contém os Mods do aplicativo. Útil para mods que são empacotados para hardware real.", "ru_RU": "Открывает папку Atmosphere на альтернативной SD-карте, которая содержит моды для приложений и игр. Полезно для модов, сделанных для реальной консоли.", "sv_SE": "Öppnar den alternativa Atmosphere-katalogen på SD-kort som innehåller applikationens Mods. Användbart för Mods som är paketerade för riktig hårdvara.", "th_TH": "เปิดไดเร็กทอรี่ Atmosphere ของการ์ด SD สำรองซึ่งมี Mods ของแอปพลิเคชัน ซึ่งมีประโยชน์สำหรับ Mods ที่บรรจุมากับฮาร์ดแวร์จริง", @@ -3012,7 +3012,7 @@ "ko_KR": "XCI 파일 확인 및 트림", "no_NO": "Kontroller og trim XCI-filen", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Verificar e reduzir o arquivo XCI", "ru_RU": "Проверить и обрезать XCI файл", "sv_SE": "Kontrollera och optimera XCI-fil", "th_TH": "", @@ -3037,7 +3037,7 @@ "ko_KR": "디스크 공간을 절약하기 위해 XCI 파일 확인 및 트림", "no_NO": "Kontroller og trimm XCI-filen for å spare diskplass", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Verifique e reduza o arquivo XCI para economizar espaço em disco", "ru_RU": "Проверить и обрезать XCI файл для уменьшения его размера", "sv_SE": "Kontrollera och optimera XCI-fil för att spara diskutrymme", "th_TH": "", @@ -3112,7 +3112,7 @@ "ko_KR": "XCI 파일 '{0}' 트리밍", "no_NO": "Trimming av XCI-filen '{0}'", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Reduzindo arquivo XCI '{0}'", "ru_RU": "Обрезается XCI файл '{0}'", "sv_SE": "Optimerar XCI-filen '{0}'", "th_TH": "", @@ -3435,15 +3435,15 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Se etter Oppdateringer:", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Verificar atualizações:", "ru_RU": "", "sv_SE": "", "th_TH": "", "tr_TR": "", "uk_UA": "", - "zh_CN": "", + "zh_CN": "检查更新", "zh_TW": "" } }, @@ -3460,15 +3460,15 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Av", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Desligado", "ru_RU": "", "sv_SE": "", "th_TH": "", "tr_TR": "", "uk_UA": "", - "zh_CN": "", + "zh_CN": "关闭", "zh_TW": "" } }, @@ -3485,7 +3485,7 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Spør", "pl_PL": "", "pt_BR": "", "ru_RU": "", @@ -3493,7 +3493,7 @@ "th_TH": "", "tr_TR": "", "uk_UA": "", - "zh_CN": "", + "zh_CN": "提示", "zh_TW": "" } }, @@ -3510,15 +3510,165 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Bakgrunn", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Fundo", "ru_RU": "", "sv_SE": "", "th_TH": "", "tr_TR": "", "uk_UA": "", - "zh_CN": "", + "zh_CN": "背景", + "zh_TW": "" + } + }, + { + "ID": "SettingsTabGeneralFocusLossType", + "Translations": { + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "On Emulator Focus Lost:", + "es_ES": "", + "fr_FR": "", + "he_IL": "", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "På Emulator Fokus Tapt:", + "pl_PL": "", + "pt_BR": "Ao perder o Foco do emulador:", + "ru_RU": "", + "sv_SE": "", + "th_TH": "", + "tr_TR": "", + "uk_UA": "", + "zh_CN": "当模拟器在后台时:", + "zh_TW": "" + } + }, + { + "ID": "SettingsTabGeneralFocusLossTypeDoNothing", + "Translations": { + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "Do Nothing", + "es_ES": "", + "fr_FR": "", + "he_IL": "", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "Gjør Ingenting", + "pl_PL": "", + "pt_BR": "Não fazer nada", + "ru_RU": "", + "sv_SE": "", + "th_TH": "", + "tr_TR": "", + "uk_UA": "", + "zh_CN": "什么事情也不做", + "zh_TW": "" + } + }, + { + "ID": "SettingsTabGeneralFocusLossTypeBlockInput", + "Translations": { + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "Block Input", + "es_ES": "", + "fr_FR": "", + "he_IL": "", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "Blokkinngang", + "pl_PL": "", + "pt_BR": "Bloquear entrada", + "ru_RU": "", + "sv_SE": "", + "th_TH": "", + "tr_TR": "", + "uk_UA": "", + "zh_CN": "禁用输入", + "zh_TW": "" + } + }, + { + "ID": "SettingsTabGeneralFocusLossTypeMuteAudio", + "Translations": { + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "Mute Volume", + "es_ES": "", + "fr_FR": "", + "he_IL": "", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "Demp Lyd", + "pl_PL": "", + "pt_BR": "Ficar mudo", + "ru_RU": "", + "sv_SE": "", + "th_TH": "", + "tr_TR": "", + "uk_UA": "", + "zh_CN": "静音", + "zh_TW": "" + } + }, + { + "ID": "SettingsTabGeneralFocusLossTypeBlockInputAndMuteAudio", + "Translations": { + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "Block Input & Mute Volume", + "es_ES": "", + "fr_FR": "", + "he_IL": "", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "Blokker Inputs og demp Volumet", + "pl_PL": "", + "pt_BR": "Bloquear entrada & Ficar mudo", + "ru_RU": "", + "sv_SE": "", + "th_TH": "", + "tr_TR": "", + "uk_UA": "", + "zh_CN": "阻止输入且静音", + "zh_TW": "" + } + }, + { + "ID": "SettingsTabGeneralFocusLossTypePauseEmulation", + "Translations": { + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "Pause Emulation", + "es_ES": "", + "fr_FR": "", + "he_IL": "", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "Pause Emulatoren", + "pl_PL": "", + "pt_BR": "Pausar a emulação", + "ru_RU": "", + "sv_SE": "", + "th_TH": "", + "tr_TR": "", + "uk_UA": "", + "zh_CN": "暂停模拟", "zh_TW": "" } }, @@ -3587,13 +3737,13 @@ "ko_KR": "", "no_NO": "Deaktiver inndata når vinduet er ute av fokus", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Desativar entrada quando estiver fora de foco", "ru_RU": "", "sv_SE": "", "th_TH": "", "tr_TR": "", "uk_UA": "", - "zh_CN": "", + "zh_CN": "在后台时禁用输入", "zh_TW": "" } }, @@ -3612,7 +3762,7 @@ "ko_KR": "제목 표시줄 표시(다시 시작해야 함)", "no_NO": "Vis tittellinje (krever omstart)", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Mostrar barra de título (requer reinicialização)", "ru_RU": "Показать строку заголовка (требуется перезапуск)", "sv_SE": "Visa titelrad (kräver omstart)", "th_TH": "", @@ -4560,7 +4710,7 @@ "it_IT": "", "ja_JP": "", "ko_KR": "스웨덴어", - "no_NO": "", + "no_NO": "Svensk", "pl_PL": "", "pt_BR": "", "ru_RU": "", @@ -4568,7 +4718,7 @@ "th_TH": "", "tr_TR": "", "uk_UA": "", - "zh_CN": "", + "zh_CN": "瑞典语", "zh_TW": "" } }, @@ -4593,7 +4743,7 @@ "th_TH": "", "tr_TR": "", "uk_UA": "", - "zh_CN": "", + "zh_CN": "挪威语", "zh_TW": "" } }, @@ -4660,9 +4810,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "매치 시스템 시간", - "no_NO": "", + "no_NO": "Match systemtid", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Sincronizar data e hora com o sistema PC", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -4687,7 +4837,7 @@ "ko_KR": "PPTC(프로파일된 영구 번역 캐시)", "no_NO": "PPTC (Profilert Vedvarende Oversettelseshurtigbuffer)", "pl_PL": "PPTC (Profilowana pamięć podręczna trwałych łłumaczeń)", - "pt_BR": "Habilitar PPTC (Profiled Persistent Translation Cache)", + "pt_BR": "PPTC (Cache de Tradução Persistente de Perfil)", "ru_RU": "Использовать PPTC (Profiled Persistent Translation Cache)", "sv_SE": "PPTC (Profilerad bestående översättningscache)", "th_TH": "PPTC (แคชโปรไฟล์การแปลแบบถาวร)", @@ -4712,7 +4862,7 @@ "ko_KR": "저전력 PPTC 캐시", "no_NO": "PPTC med lavt strømforbruk", "pl_PL": "Low-power PPTC", - "pt_BR": "Low-power PPTC", + "pt_BR": "Cache PPTC com baixo consumo de energia", "ru_RU": "PPTC с низким электропотреблением", "sv_SE": "PPTC med låg strömförbrukning", "th_TH": "PPTC แบบพลังงานตํ่า", @@ -4962,7 +5112,7 @@ "ko_KR": "4GB", "no_NO": "4GB", "pl_PL": "", - "pt_BR": "", + "pt_BR": "4GB", "ru_RU": "4ГиБ", "sv_SE": "", "th_TH": "", @@ -4987,7 +5137,7 @@ "ko_KR": "6GB", "no_NO": "6GB", "pl_PL": "", - "pt_BR": "", + "pt_BR": "6GB", "ru_RU": "6ГиБ", "sv_SE": "", "th_TH": "", @@ -5012,7 +5162,7 @@ "ko_KR": "8GB", "no_NO": "8GB", "pl_PL": "", - "pt_BR": "", + "pt_BR": "8GB", "ru_RU": "8ГиБ", "sv_SE": "", "th_TH": "", @@ -5037,7 +5187,7 @@ "ko_KR": "12GB", "no_NO": "12GB", "pl_PL": "", - "pt_BR": "", + "pt_BR": "12GB", "ru_RU": "12ГиБ", "sv_SE": "", "th_TH": "", @@ -5073,28 +5223,28 @@ } }, { - "ID": "SettingsTabSystemIgnoreApplet", + "ID": "SettingsTabSystemIgnoreControllerApplet", "Translations": { "ar_SA": "", - "de_DE": "Applet ignorieren", - "el_GR": "Αγνοήστε το Applet", - "en_US": "Ignore Applet", - "es_ES": "Ignorar el Applet", - "fr_FR": "Ignorer la déconnexion de la manette", + "de_DE": "", + "el_GR": "", + "en_US": "Ignore Controller Applet", + "es_ES": "", + "fr_FR": "", "he_IL": "", - "it_IT": "Ignora l'applet", - "ja_JP": "アプレットを無視する", - "ko_KR": "애플릿 무시", - "no_NO": "Ignorer appleten", - "pl_PL": "Ignoruj ​​aplet", - "pt_BR": "Ignorar applet", - "ru_RU": "Игнорировать Апплет", - "sv_SE": "Ignorera applet", - "th_TH": "เมินเฉย Applet", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "", + "pl_PL": "", + "pt_BR": "", + "ru_RU": "", + "sv_SE": "", + "th_TH": "", "tr_TR": "", - "uk_UA": "Ігнорувати Аплет", - "zh_CN": "忽略小程序", - "zh_TW": "忽略小程式" + "uk_UA": "", + "zh_CN": "", + "zh_TW": "" } }, { @@ -5935,15 +6085,15 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Aktivere UI-logger", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Habilitar logs da IU", "ru_RU": "", "sv_SE": "", "th_TH": "", "tr_TR": "", "uk_UA": "", - "zh_CN": "", + "zh_CN": "启用 UI 日志", "zh_TW": "" } }, @@ -6335,9 +6485,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Tilbakestill innstillinger", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Redefinir configurações", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -6360,9 +6510,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Jeg vil tilbakestille innstillingene mine.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Quero redefinir minhas configurações.", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -6389,7 +6539,7 @@ "pl_PL": "", "pt_BR": "", "ru_RU": "", - "sv_SE": "", + "sv_SE": "Ok", "th_TH": "ตกลง", "tr_TR": "Tamam", "uk_UA": "", @@ -8285,11 +8435,11 @@ "it_IT": "", "ja_JP": "", "ko_KR": "비활성화", - "no_NO": "", + "no_NO": "Deaktiver", "pl_PL": "", "pt_BR": "", "ru_RU": "", - "sv_SE": "", + "sv_SE": "Inaktivera", "th_TH": "", "tr_TR": "", "uk_UA": "", @@ -8310,11 +8460,11 @@ "it_IT": "", "ja_JP": "", "ko_KR": "레인보우", - "no_NO": "", + "no_NO": "Regnbue", "pl_PL": "", "pt_BR": "", "ru_RU": "", - "sv_SE": "", + "sv_SE": "Regnbåge", "th_TH": "", "tr_TR": "", "uk_UA": "", @@ -8335,7 +8485,7 @@ "it_IT": "", "ja_JP": "", "ko_KR": "레인보우 속도", - "no_NO": "", + "no_NO": "Regnbue Hastighet", "pl_PL": "", "pt_BR": "", "ru_RU": "", @@ -8360,11 +8510,11 @@ "it_IT": "", "ja_JP": "", "ko_KR": "색상", - "no_NO": "", + "no_NO": "Farge", "pl_PL": "", "pt_BR": "", "ru_RU": "", - "sv_SE": "", + "sv_SE": "Färg", "th_TH": "", "tr_TR": "", "uk_UA": "", @@ -8437,7 +8587,7 @@ "ko_KR": "알 수 없음", "no_NO": "Ukjent", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Desconhecido", "ru_RU": "Неизвестно", "sv_SE": "Okänd", "th_TH": "ไม่รู้จัก", @@ -11387,7 +11537,7 @@ "ko_KR": "닫기", "no_NO": "Lukk", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Fechar", "ru_RU": "Закрыть", "sv_SE": "Stäng", "th_TH": "", @@ -11587,7 +11737,7 @@ "ko_KR": "프로필 보기", "no_NO": "Se Profil", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Ver perfil", "ru_RU": "Показать профиль", "sv_SE": "Visa profil", "th_TH": "", @@ -13187,7 +13337,7 @@ "ko_KR": "XCI 트리머 창", "no_NO": "XCI Trimmervindu", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Janela de redução XCI", "ru_RU": "Окно триммера XCI", "sv_SE": "XCI-optimerare", "th_TH": "", @@ -13635,9 +13785,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "다음에서 모든 PPTC 데이터를 제거하려고 합니다:\n\n{0}\n\n계속하시겠습니까?", - "no_NO": "", + "no_NO": "Du er i ferd med å slette alle PPTC-data fra:\n\n{0}\n\n\nEr du sikker på at du vil fortsette?", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Você está prestes a limpar todos os dados PPTC de:\n\n{0}\n\nTem certeza de que deseja continuar?", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -13937,7 +14087,7 @@ "ko_KR": "{0}에서 잘못된 키 파일이 발견", "no_NO": "En ugyldig Keys-fil ble funnet i {0}.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Um arquivo Chaves inválido foi encontrado em {0}", "ru_RU": "В {0} были найдены некорректные ключи", "sv_SE": "En ogiltig nyckelfil hittades i {0}", "th_TH": "", @@ -13962,7 +14112,7 @@ "ko_KR": "설치 키", "no_NO": "Installere nøkler", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Instalar Chaves", "ru_RU": "Установить ключи", "sv_SE": "Installera nycklar", "th_TH": "", @@ -13987,7 +14137,7 @@ "ko_KR": "새로운 키 파일이 설치됩니다.", "no_NO": "Ny Keys-fil vil bli installert.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "O novo arquivo Keys será instalado", "ru_RU": "Будут установлены новые ключи.", "sv_SE": "Ny nyckelfil kommer att installeras.", "th_TH": "", @@ -14012,7 +14162,7 @@ "ko_KR": "\n\n이로 인해 현재 설치된 키 중 일부가 대체될 수 있습니다.", "no_NO": "\n\nDette kan erstatte noen av de nåværende installerte nøklene.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "\n\nIsso pode substituir algumas das chaves instaladas atualmente.", "ru_RU": "\n\nЭто действие может перезаписать установленные ключи.", "sv_SE": "\n\nDetta kan ersätta några av de redan installerade nycklarna.", "th_TH": "", @@ -14037,7 +14187,7 @@ "ko_KR": "\n\n계속하시겠습니까?", "no_NO": "\n\nVil du fortsette?", "pl_PL": "", - "pt_BR": "", + "pt_BR": "\n\nVocê quer continuar?", "ru_RU": "\n\nХотите продолжить?", "sv_SE": "\n\nVill du fortsätta?", "th_TH": "", @@ -14062,7 +14212,7 @@ "ko_KR": "키 설치 중...", "no_NO": "Installere nøkler...", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Instalando Chaves...", "ru_RU": "Установка ключей...", "sv_SE": "Installerar nycklar...", "th_TH": "", @@ -14087,7 +14237,7 @@ "ko_KR": "새로운 키 파일이 성공적으로 설치되었습니다.", "no_NO": "Ny Keys -fil installert.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Novo arquivo de chaves instalado com sucesso.", "ru_RU": "Новые ключи были успешно установлены.", "sv_SE": "Ny nyckelfil installerades.", "th_TH": "", @@ -15087,7 +15237,7 @@ "ko_KR": "Ryujinx는 Nintendo Switch™용 에뮬레이터입니다.\n모든 최신 소식을 Discord에서 확인하세요.\n기여에 관심이 있는 개발자는 GitHub 또는 Discord에서 자세한 내용을 확인할 수 있습니다.", "no_NO": "Ryujinx er en emulator for Nintendo SwitchTM.\nVennligst støtt oss på Patreon.\nFå alle de siste nyhetene på vår Twitter eller Discord.\nUtviklere som er interessert i å bidra kan finne ut mer på GitHub eller Discord.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Ryujinx é um emulador de Nintendo Switch™.\nReceba todas as últimas notícias em nosso Discord.\nDesenvolvedores interessados em contribuir podem descobrir mais em nosso GitHub ou Discord.", "ru_RU": "Ryujinx - это эмулятор для Nintendo Switch™.\nПолучайте все последние новости разработки в нашем Discord.\nРазработчики, заинтересованные в участии, могут узнать больше на нашем GitHub или Discord.", "sv_SE": "Ryujinx är en emulator för Nintendo Switch™.\nFå de senaste nyheterna via vår Discord.\nUtvecklare som är intresserade att bidra kan hitta mer info på vår GitHub eller Discord.", "th_TH": "", @@ -15137,7 +15287,7 @@ "ko_KR": "이전 관리자 :", "no_NO": "Tidligere vedlikeholdt av:", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Anteriormente mantido por:", "ru_RU": "Поддержка:", "sv_SE": "Underhölls tidigare av:", "th_TH": "", @@ -15189,7 +15339,7 @@ "pl_PL": "Seria Amiibo", "pt_BR": "Franquia Amiibo", "ru_RU": "Серия Amiibo", - "sv_SE": "", + "sv_SE": "Amiibo-serie", "th_TH": "", "tr_TR": "Amiibo Serisi", "uk_UA": "Серія Amiibo", @@ -15737,7 +15887,7 @@ "ko_KR": "\"현재 진행 중인\" 디스코드 활동에 Ryujinx를 표시할지 여부를 선택", "no_NO": "Velg om Ryujinx skal vises på din \"spillende\" Discord aktivitet eller ikke", "pl_PL": "Wybierz, czy chcesz wyświetlać Ryujinx w swojej \"aktualnie grane\" aktywności Discord", - "pt_BR": "Habilita ou desabilita Discord Rich Presence", + "pt_BR": "Escolha se deseja mostrar Ryujinx ou não na sua atividade do Discord quando estiver usando-o", "ru_RU": "Включает или отключает отображение статуса \"Играет в игру\" в Discord", "sv_SE": "Välj huruvida Ryujinx ska visas på din \"spelar för tillfället\" Discord-aktivitet", "th_TH": "เลือกว่าจะแสดง Ryujinx ในกิจกรรม Discord \"ที่กำลังเล่นอยู่\" ของคุณหรือไม่?", @@ -16162,7 +16312,7 @@ "ko_KR": "시스템 시간을 PC의 현재 날짜 및 시간과 일치하도록 다시 동기화합니다.", "no_NO": "Resynkroniser systemtiden slik at den samsvarer med PC-ens gjeldende dato og klokkeslett.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Sincroniza a data e hora do emulador com seu sistema PC", "ru_RU": "Повторно синхронизирует системное время, чтобы оно соответствовало текущей дате и времени вашего компьютера.", "sv_SE": "Återsynkronisera systemtiden för att matcha din dators aktuella datum och tid.", "th_TH": "", @@ -16212,7 +16362,7 @@ "ko_KR": "번역된 JIT 함수를 저장하여 게임을 불러올 때마다 번역할 필요가 없도록 합니다.\n\n게임을 처음 부팅한 후 끊김 현상을 줄이고 부팅 시간을 크게 단축합니다.\n\n모르면 켬으로 두세요.", "no_NO": "Lagrer oversatte JIT funksjoner så de ikke trenger og bli oversatt hver gang spillet laster.\n\nKan redusere hakkete spilling og gjør at spillet starter opp raskere ved første oppstart.\n\nLa være PÅ om usikker.", "pl_PL": "Zapisuje przetłumaczone funkcje JIT, dzięki czemu nie muszą być tłumaczone za każdym razem, gdy gra się ładuje.\n\nZmniejsza zacinanie się i znacznie przyspiesza uruchamianie po pierwszym uruchomieniu gry.\n\nJeśli nie masz pewności, pozostaw WŁĄCZONE", - "pt_BR": "Habilita ou desabilita PPTC", + "pt_BR": "Salva funções JIT traduzidas para que elas não precisem ser traduzidas toda vez que o jogo for carregado.\n\nReduz a trepidação e acelera significativamente os tempos de inicialização após a primeira inicialização de um jogo.\n\nDeixe LIGADO se não tiver certeza.", "ru_RU": "Сохраняет скомпилированные JIT-функции для того, чтобы не преобразовывать их по новой каждый раз при запуске игры.\n\nУменьшает статтеры и значительно ускоряет последующую загрузку игр.\n\nРекомендуется оставить включенным.", "sv_SE": "Sparar översatta JIT-funktioner så att de inte behöver översättas varje gång som spelet läses in.\n\nMinskar stuttering och snabbare på uppstartstiden väsentligt efter första uppstarten av ett spel.\n\nLämna PÅ om du är osäker.", "th_TH": "บันทึกฟังก์ชั่น JIT ที่แปลแล้ว ดังนั้นจึงไม่จำเป็นต้องแปลทุกครั้งที่โหลดเกม\n\nลดอาการกระตุกและเร่งความเร็วการบูตได้อย่างมากหลังจากการบูตครั้งแรกของเกม\n\nเปิดทิ้งไว้หากคุณไม่แน่ใจ", @@ -16237,7 +16387,7 @@ "ko_KR": "코어의 3분의 1을 사용하여 PPTC를 불러옵니다.", "no_NO": "Last inn PPTC med en tredjedel av antall kjerner.", "pl_PL": "", - "pt_BR": "Carregar o PPTC usando um terço da quantidade de núcleos.", + "pt_BR": "Carrega o PPTC usando um terço da quantidade de núcleos.", "ru_RU": "Загрузить PPTC, используя треть от количества ядер.", "sv_SE": "Läs in PPTC med en tredjedel av mängden kärnor.", "th_TH": "โหลด PPTC โดยใช้หนึ่งในสามของจำนวนคอร์", @@ -16473,28 +16623,28 @@ } }, { - "ID": "IgnoreAppletTooltip", + "ID": "IgnoreControllerAppletTooltip", "Translations": { - "ar_SA": "لن يظهر مربع الحوار الخارجي \"تطبيق وحدة التحكم\" إذا تم فصل لوحة الألعاب أثناء اللعب. ولن تظهر مطالبة بإغلاق مربع الحوار أو إعداد وحدة تحكم جديدة. وبمجرد إعادة توصيل وحدة التحكم التي تم فصلها سابقًا، ستستأنف اللعبة تلقائيًا.", - "de_DE": "Der externe Dialog \"Controller-Applet\" wird nicht angezeigt, wenn das Gamepad während des Spiels getrennt wird. Es erfolgt keine Aufforderung, den Dialog zu schließen oder einen neuen Controller einzurichten. Sobald der zuvor getrennte Controller wieder angeschlossen wird, wird das Spiel automatisch fortgesetzt.", - "el_GR": "Το εξωτερικό παράθυρο διαλόγου \"Ελεγκτής μικροεφαρμογής\" δεν θα εμφανιστεί εάν το gamepad αποσυνδεθεί κατά τη διάρκεια του παιχνιδιού. Δεν θα σας ζητηθεί να κλείσετε το παράθυρο διαλόγου ή να ρυθμίσετε έναν νέο ελεγκτή. Μόλις επανασυνδεθεί το χειριστήριο που είχε αποσυνδεθεί προηγουμένως, το παιχνίδι θα συνεχιστεί αυτόματα.", - "en_US": "The external dialog \"Controller Applet\" will not appear if the gamepad is disconnected during gameplay. There will be no prompt to close the dialog or set up a new controller. Once the previously disconnected controller is reconnected, the game will automatically resume.", - "es_ES": "El cuadro de diálogo externo \"Applet del controlador\" no aparecerá si el gamepad se desconecta durante el juego. No aparecerá ningún mensaje para cerrar el cuadro de diálogo o configurar un nuevo controlador. Una vez que se vuelva a conectar el controlador que se había desconectado anteriormente, el juego se reanudará automáticamente.", - "fr_FR": "La boîte de dialogue externe \"Programme Manette\" n'apparaîtra pas si la manette est déconnectée en jeu. Il n'y aura aucune boîte de dialogue ouverte pour configurer une nouvelle manette. Une fois que la manette précédemment déconnectée est reconnectée, le jeu reprendra automatiquement. \n\nLaissez désactivé en cas d'incertitude.", - "he_IL": "תיבת הדו-שיח החיצונית \"Controller Applet\" לא תופיע אם ה-Gamepad מנותק במהלך המשחק. לא תהיה הנחיה לסגור את תיבת הדו-שיח או להגדיר בקר חדש. ברגע שהבקר שנותק בעבר יתחבר מחדש, המשחק יתחדש אוטומטית.", - "it_IT": "La finestra di dialogo esterna \"Controller Applet\" non apparirà se il gamepad viene disconnesso durante il gioco. Non ci sarà alcun prompt per chiudere la finestra di dialogo o impostare un nuovo controller. Una volta che il controller disconnesso in precedenza viene ricollegato, il gioco riprenderà automaticamente.", - "ja_JP": "ゲームプレイ中にゲームパッドが切断された場合、外部ダイアログ「コントローラーアプレット」は表示されません。このダイアログを閉じるか、新しいコントローラーを設定するように求めるプロンプトは表示されません。以前に切断されたコントローラーが再接続されると、ゲームは自動的に再開されます。", - "ko_KR": "게임 플레이 중에 게임패드 연결이 끊어지면 외부 대화 상자 \"컨트롤러 애플릿\"이 나타나지 않습니다. 대화 상자를 닫거나 새 컨트롤러를 설정하라는 메시지가 표시되지 않습니다. 이전에 연결이 끊어진 컨트롤러가 다시 연결되면 게임이 자동으로 다시 시작됩니다.", - "no_NO": "Den eksterne dialogboksen «Controller Applet» vises ikke hvis gamepaden kobles fra under spilling. Du blir ikke bedt om å lukke dialogboksen eller konfigurere en ny kontroller. Når den tidligere frakoblede kontrolleren er koblet til igjen, fortsetter spillet automatisk.", - "pl_PL": "Zewnętrzny dialog \"Controller Applet\" nie pojawi się, jeśli gamepad zostanie odłączony podczas rozgrywki. Nie pojawi się monit o zamknięcie dialogu lub skonfigurowanie nowego kontrolera. Po ponownym podłączeniu poprzednio odłączonego kontrolera gra zostanie automatycznie wznowiona.", - "pt_BR": "O diálogo externo \"Controller Applet\" não aparecerá se o gamepad for desconectado durante o jogo. Não haverá prompt para fechar o diálogo ou configurar um novo controle. Assim que o controle desconectado anteriormente for reconectado, o jogo será retomado automaticamente.", - "ru_RU": "Внешний диалог \"Апплет контроллера\" не появится, если геймпад будет отключен во время игры. Не будет предложено закрыть диалог или настроить новый контроллер. После повторного подключения ранее отключенного контроллера игра автоматически возобновится.", - "sv_SE": "Den externa dialogen \"Handkontroller-applet\" kommer inte att visas om din gamepad är frånkopplad under spel. Det finns ingen fråga att stänga dialogen eller konfigurera en ny handkontroller. När den tidigare frånkopplade handkontrollern återansluts så kommer spelet att automatiskt återupptas.", - "th_TH": "กล่องโต้ตอบภายนอก \"แอปเพล็ตตัวควบคุม\" จะไม่ปรากฏขึ้นหากแป้นเกมถูกตัดการเชื่อมต่อระหว่างการเล่นเกม จะไม่มีข้อความแจ้งให้ปิดกล่องโต้ตอบหรือตั้งค่าตัวควบคุมใหม่ เมื่อเชื่อมต่อคอนโทรลเลอร์ที่ตัดการเชื่อมต่อก่อนหน้านี้อีกครั้ง เกมจะดำเนินการต่อโดยอัตโนมัติ", - "tr_TR": "Oyun sırasında oyun kumandasının bağlantısı kesilirse, harici \"Controller Applet\" iletişim kutusu görünmez. İletişim kutusunu kapatma veya yeni bir kumanda ayarlama isteği olmaz. Daha önce bağlantısı kesilen kumanda tekrar bağlandığında oyun otomatik olarak devam eder.", - "uk_UA": "Зовнішнє діалогове вікно \"Аплет контролера\" не з’являтиметься, якщо геймпад буде від’єднано під час гри. Не буде запиту закрити діалогове вікно чи налаштувати новий контролер. Після повторного підключення раніше від’єднаного контролера гра автоматично відновиться.", - "zh_CN": "如果游戏手柄在游戏过程中断开连接,则不会出现外部对话框“控制器小程序”。不会提示关闭对话框或设置新控制器。一旦先前断开连接的控制器重新连接,游戏将自动恢复。", - "zh_TW": "如果遊戲手把在遊戲過程中斷開連接,則外部對話方塊「控制器小程式」將不會出現。不會提示關閉對話方塊或設定新控制器。一旦先前斷開的控制器重新連接,遊戲將自動恢復。" + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "The Controller Applet dialog will not appear if the gamepad is disconnected while an application is running.\n\nLeave OFF if unsure.", + "es_ES": "", + "fr_FR": "", + "he_IL": "", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "", + "pl_PL": "", + "pt_BR": "", + "ru_RU": "", + "sv_SE": "", + "th_TH": "", + "tr_TR": "", + "uk_UA": "", + "zh_CN": "", + "zh_TW": "" } }, { @@ -16562,7 +16712,7 @@ "ko_KR": "후속 실행 시 끊김 현상을 줄이는 디스크 셰이더 캐시를 저장합니다.\n\n모르면 켬으로 두세요.", "no_NO": "Lagrer en disk shader cache som reduserer hakking jo flere ganger du spiller.\n\nLa være PÅ om usikker.", "pl_PL": "Zapisuje pamięć podręczną shaderów na dysku, co zmniejsza zacinanie się w kolejnych uruchomieniach.\n\nPozostaw WŁĄCZONE, jeśli nie masz pewności.", - "pt_BR": "Habilita ou desabilita o cache de shader", + "pt_BR": "Salva um cache de shader de disco que reduz a trepidação em execuções subsequentes.\n\nDeixe LIGADO se não tiver certeza.", "ru_RU": "Сохраняет кэш шейдеров на диске, для уменьшения статтеров при последующих запусках.\n\nРекомендуется оставить включенным.", "sv_SE": "Sparar en disk shader cache som minskar stuttering i efterföljande körningar.\n\nLämna PÅ om du är osäker.", "th_TH": "บันทึกแคชแสงเงาของดิสก์ซึ่งช่วยลดการกระตุกในการรันครั้งต่อๆ ไป\n\nเปิดทิ้งไว้หากคุณไม่แน่ใจ", @@ -16960,15 +17110,15 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Skriver ut Avalonia (UI)-loggmeldinger i konsollen.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Imprimir mensagens de log do Avalonia (IU) no console.", "ru_RU": "", "sv_SE": "", "th_TH": "", "tr_TR": "", "uk_UA": "", - "zh_CN": "", + "zh_CN": "在控制台显示 Avalonia (UI) 的日志信息", "zh_TW": "" } }, @@ -17087,7 +17237,7 @@ "ko_KR": "파일 탐색기를 열어 DLC를 일괄 불러오기할 폴더를 하나 이상 선택", "no_NO": "Åpne en filutforsker for å velge en eller flere mapper å laste inn DLC fra", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Abrir um explorador de arquivos para escolher uma ou mais pastas para carregar DLC em massa", "ru_RU": "Открывает проводник, для выбора одной или нескольких папок для массовой загрузки DLC", "sv_SE": "Öppna en filutforskare för att välja en eller flera mappar att läsa in alla DLC från", "th_TH": "เปิดตัวสำรวจไฟล์เพื่อเลือกหนึ่งโฟลเดอร์ขึ้นไปเพื่อโหลด DLC จำนวนมาก", @@ -17112,7 +17262,7 @@ "ko_KR": "파일 탐색기를 열어 하나 이상의 폴더를 선택하여 대량으로 타이틀 업데이트 불러오기", "no_NO": "Åpne en filutforsker for å velge en eller flere mapper som du vil laste inn titteloppdateringer fra", "pl_PL": "", - "pt_BR": "Abra o explorador de arquivos para selecionar uma ou mais pastas e carregar atualizações de jogo em massa.", + "pt_BR": "Abrir o explorador de arquivos para selecionar uma ou mais pastas e carregar atualizações de jogo em massa.", "ru_RU": "Открывает проводник, чтобы выбрать одну или несколько папок для массовой загрузки обновлений приложений", "sv_SE": "Öppna en filutforskare för att välja en eller flera mappar att läsa in alla titeluppdateringar från", "th_TH": "เปิดตัวสำรวจไฟล์เพื่อเลือกหนึ่งโฟลเดอร์ขึ้นไปเพื่อโหลดไฟล์อัปเดตจำนวนมาก", @@ -17885,15 +18035,15 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Oppdatering tilgjengelig!", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Atualização disponível!", "ru_RU": "", "sv_SE": "", "th_TH": "", "tr_TR": "", "uk_UA": "", - "zh_CN": "", + "zh_CN": "有可用的更新!", "zh_TW": "" } }, @@ -18462,7 +18612,7 @@ "ko_KR": "일부", "no_NO": "Delvis", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Parcial", "ru_RU": "Частично", "sv_SE": "Delvis", "th_TH": "", @@ -18487,7 +18637,7 @@ "ko_KR": "트리밍되지 않음", "no_NO": "Ikke trimmet", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Não reduzido", "ru_RU": "Не обрезан", "sv_SE": "Inte optimerad", "th_TH": "", @@ -18512,7 +18662,7 @@ "ko_KR": "트리밍됨", "no_NO": "Trimmet", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Reduzido", "ru_RU": "Обрезан", "sv_SE": "Optimerad", "th_TH": "", @@ -18537,7 +18687,7 @@ "ko_KR": "(실패)", "no_NO": "(Mislyktes)", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Falhou", "ru_RU": "(Ошибка)", "sv_SE": "(misslyckades)", "th_TH": "", @@ -18562,7 +18712,7 @@ "ko_KR": "{0:n0} Mb 저장", "no_NO": "Spare {0:n0} Mb", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Salvo {0:n0} Mb", "ru_RU": "Сохранить {0:n0} Мб", "sv_SE": "Spara {0:n0} Mb", "th_TH": "", @@ -18587,7 +18737,7 @@ "ko_KR": "{0:n0}Mb 저장됨", "no_NO": "Spart {0:n0} Mb", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Salvo {0:n0} Mb", "ru_RU": "Сохранено {0:n0} Мб", "sv_SE": "Sparade {0:n0} Mb", "th_TH": "", @@ -18614,7 +18764,7 @@ "pl_PL": "", "pt_BR": "{0} - Informação", "ru_RU": "{0} - Информация", - "sv_SE": "", + "sv_SE": "{0} - Information", "th_TH": "{0} – ข้อมูล", "tr_TR": "{0} - Bilgi", "uk_UA": "{0} - Інформація", @@ -18762,7 +18912,7 @@ "ko_KR": "캐비닛 대화 상자", "no_NO": "Dialogboks for kabinett", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Diálogo do Gabinete", "ru_RU": "Сообщение кабинета", "sv_SE": "Cabinet-dialog", "th_TH": "", @@ -18787,7 +18937,7 @@ "ko_KR": "Amiibo의 새 이름 입력하기", "no_NO": "Skriv inn Amiiboens nye navn", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Digite o novo nome do seu Amiibo", "ru_RU": "Введите новое имя вашего Amiibo", "sv_SE": "Ange nya namnet för din Amiibo", "th_TH": "", @@ -18812,7 +18962,7 @@ "ko_KR": "지금 Amiibo를 스캔하세요.", "no_NO": "Vennligst skann Amiiboene dine nå.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Por favor, escaneie seu Amiibo agora.", "ru_RU": "Пожалуйста, отсканируйте свой Amiibo.", "sv_SE": "Skanna din Amiibo nu.", "th_TH": "", @@ -18937,7 +19087,7 @@ "ko_KR": "지원되는 컨트롤러 :", "no_NO": "Støttede kontrollere:", "pl_PL": "Obsługiwane Kontrolery:", - "pt_BR": "", + "pt_BR": "Controladores suportados:", "ru_RU": "Поддерживаемые геймпады:", "sv_SE": "Handkontroller som stöds:", "th_TH": "คอนโทรลเลอร์ที่รองรับ:", @@ -18987,7 +19137,7 @@ "ko_KR": "현재 구성이 유효하지 않습니다. 설정을 열고 입력을 다시 구성하십시오.", "no_NO": "Din nåværende konfigurasjon er ugyldig. Åpne innstillinger og konfigurer inndata.", "pl_PL": "Twoja aktualna konfiguracja jest nieprawidłowa. Otwórz ustawienia i skonfiguruj swoje wejścia.", - "pt_BR": "", + "pt_BR": "Sua configuração atual é inválida. Abra as configurações e reconfigure suas entradas.", "ru_RU": "Текущая конфигурация некорректна. Откройте параметры и перенастройте управление.", "sv_SE": "Din aktuella konfiguration är ogiltig. Öppna inställningarna och konfigurera om din inmatning.", "th_TH": "การกำหนดค่าปัจจุบันของคุณไม่ถูกต้อง กรุณาเปิดการตั้งค่าและกำหนดค่าอินพุตของคุณใหม่", @@ -19012,7 +19162,7 @@ "ko_KR": "도킹 모드가 설정되었습니다. 휴대용 제어 기능을 비활성화해야 합니다.", "no_NO": "Docked modus. Håndholdt kontroll skal være deaktivert.", "pl_PL": "Ustawiony tryb zadokowany. Sterowanie przenośne powinno być wyłączone.", - "pt_BR": "", + "pt_BR": "Modo ancorado definido. O controle portátil deve ser desabilitado.", "ru_RU": "Используется стационарный режим. Управление в портативном режиме должно быть отключено.", "sv_SE": "Dockat läge angivet. Handhållna kontroller bör inaktiveras.", "th_TH": "ตั้งค่าด็อกโหมด ควรปิดใช้งานการควบคุมแบบแฮนด์เฮลด์", @@ -19710,11 +19860,11 @@ "it_IT": "", "ja_JP": "", "ko_KR": "LED 설정", - "no_NO": "", + "no_NO": "LED-innstillinger", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Configurações de LED", "ru_RU": "", - "sv_SE": "", + "sv_SE": "LED-inställningar", "th_TH": "", "tr_TR": "", "uk_UA": "", @@ -19962,7 +20112,7 @@ "ko_KR": "모드 디렉터리 선택", "no_NO": "Velg modifikasjons mappe", "pl_PL": "Wybierz katalog modów", - "pt_BR": "", + "pt_BR": "Selecione o diretório do mod", "ru_RU": "Выбрать папку с модами", "sv_SE": "Välj moddkatalog", "th_TH": "เลือกไดเรกทอรี Mods", @@ -19987,7 +20137,7 @@ "ko_KR": "XCI 파일 확인 및 정리", "no_NO": "Kontroller og trim XCI-filen", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Verifique e reduza o arquivo XCI", "ru_RU": "Проверить и обрезать XCI файл", "sv_SE": "Kontrollera och optimera XCI-filer", "th_TH": "", @@ -20012,7 +20162,7 @@ "ko_KR": "이 기능은 먼저 충분한 공간을 확보한 다음 XCI 파일을 트리밍하여 디스크 공간을 절약합니다.", "no_NO": "Denne funksjonen kontrollerer først hvor mye plass som er ledig, og trimmer deretter XCI-filen for å spare diskplass.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Esta função primeiro verificará o espaço vazio e depois reduzirá o arquivo XCI para economizar espaço em disco.", "ru_RU": "Эта функция сначала проверит наличие пустого пространства, а затем обрежет файл XCI, чтобы сэкономить место на диске.", "sv_SE": "Denna funktion kommer först att kontrollera ledigt utrymme och sedan optimera XCI-filen för att spara diskutrymme.", "th_TH": "", @@ -20037,7 +20187,7 @@ "ko_KR": "현재 파일 크기 : {0:n}MB\n게임 데이터 크기 : {1:n}MB\n디스크 공간 절약 : {2:n}MB", "no_NO": "Nåværende filstørrelse: 0:n MB\nSpilldatastørrelse: {1:n} MB\nDiskplassbesparelse: {2:n} MB", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Tamanho atual do arquivo: {0:n} MB\nTamanho dos dados do jogo: {1:n} MB\nEconomia de espaço em disco: {2:n} MB", "ru_RU": "Размер текущего файла: {0:n} Мб\nРазмер игровых данных: {1:n} MB\nЭкономия дискового пространства: {2:n} Мб", "sv_SE": "Aktuell filstorlek: {0:n} MB\nStorlek för speldata: {1:n} MB\nSparat diskutrymme: {2:n} MB", "th_TH": "", @@ -20062,7 +20212,7 @@ "ko_KR": "XCI 파일은 트리밍할 필요가 없습니다. 자세한 내용은 로그를 확인", "no_NO": "XCI-filen trenger ikke å trimmes. Sjekk loggene for mer informasjon", "pl_PL": "", - "pt_BR": "", + "pt_BR": "O arquivo XCI não precisa ser reduzido. Verifique os logs para mais detalhes", "ru_RU": "Файл XCI не нуждается в обрезке. Проверьте логи для получения более подробной информации", "sv_SE": "XCI-filen behöver inte optimeras. Kontrollera loggen för mer information", "th_TH": "", @@ -20087,7 +20237,7 @@ "ko_KR": "XCI 파일은 트리밍을 해제할 수 없습니다. 자세한 내용은 로그를 확인", "no_NO": "XCI-filen kan ikke trimmes. Sjekk loggene for mer informasjon", "pl_PL": "", - "pt_BR": "", + "pt_BR": "O arquivo XCI não pode ser desfeito. Verifique os logs para mais detalhes", "ru_RU": "XCI файл не может быть обрезан. Проверьте логи для получения более подробной информации", "sv_SE": "XCI-filen kan inte avoptimeras. Kontrollera loggen för mer information", "th_TH": "", @@ -20112,7 +20262,7 @@ "ko_KR": "XCI 파일은 읽기 전용이므로 쓰기 가능하게 만들 수 없습니다. 자세한 내용은 로그를 확인", "no_NO": "XCI-filen er skrivebeskyttet og kunne ikke gjøres skrivbar. Sjekk loggene for mer informasjon", "pl_PL": "", - "pt_BR": "", + "pt_BR": "O arquivo XCI é somente leitura e não pôde ser tornado gravável. Verifique os logs para mais detalhes", "ru_RU": "Файл XCI доступен только для чтения и его невозможно сделать доступным для записи. Проверьте логи для получения более подробной информации", "sv_SE": "XCI-filen är skrivskyddad och kunde inte göras skrivbar. Kontrollera loggen för mer information", "th_TH": "", @@ -20137,7 +20287,7 @@ "ko_KR": "XCI 파일이 스캔된 후 크기가 변경되었습니다. 파일이 쓰여지고 있지 않은지 확인하고 다시 시도하세요.", "no_NO": "XCI File har endret størrelse siden den ble skannet. Kontroller at det ikke skrives til filen, og prøv på nytt.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "O arquivo XCI mudou de tamanho desde que foi escaneado. Verifique se o arquivo não está sendo gravado e tente novamente.", "ru_RU": "Файл XCI изменился в размере после сканирования. Проверьте, не производится ли запись в этот файл, и повторите попытку.", "sv_SE": "XCI-filen har ändrats i storlek sedan den lästes av. Kontrollera att filen inte skrivs till och försök igen.", "th_TH": "", @@ -20162,7 +20312,7 @@ "ko_KR": "XCI 파일에 여유 공간 영역에 데이터가 있으므로 트리밍하는 것이 안전하지 않음", "no_NO": "XCI-filen har data i ledig plass, og det er ikke trygt å trimme den", "pl_PL": "", - "pt_BR": "", + "pt_BR": "O arquivo XCI tem dados na área de espaço livre, não é seguro reduzi-lo", "ru_RU": "XCI файл содержит данные в пустой зоне, обрезать его небезопасно", "sv_SE": "XCI-filen har data i det lediga utrymmet. Den är inte säker att optimera", "th_TH": "", @@ -20187,7 +20337,7 @@ "ko_KR": "XCI 파일에 유효하지 않은 데이터가 포함되어 있습니다. 자세한 내용은 로그를 확인", "no_NO": "XCI-filen inneholder ugyldige data. Sjekk loggene for ytterligere detaljer", "pl_PL": "", - "pt_BR": "", + "pt_BR": "O arquivo XCI contém dados inválidos. Verifique os logs para obter mais detalhes", "ru_RU": "Файл XCI содержит недопустимые данные. Проверьте логи для получения дополнительной информации", "sv_SE": "XCI-filen innehåller ogiltig data. Kontrollera loggen för mer information", "th_TH": "", @@ -20212,7 +20362,7 @@ "ko_KR": "XCI 파일을 쓰기 위해 열 수 없습니다. 자세한 내용은 로그를 확인", "no_NO": "XCI-filen kunne ikke åpnes for skriving. Sjekk loggene for ytterligere detaljer", "pl_PL": "", - "pt_BR": "", + "pt_BR": "O arquivo XCI não pôde ser aberto para gravação. Verifique os logs para mais detalhes", "ru_RU": "XCI файл не удалось открыть для записи. Проверьте логи для получения дополнительной информации", "sv_SE": "XCI-filen kunde inte öppnas för skrivning. Kontrollera loggen för mer information", "th_TH": "", @@ -20237,7 +20387,7 @@ "ko_KR": "XCI 파일 트리밍에 실패", "no_NO": "Trimming av XCI-filen mislyktes", "pl_PL": "", - "pt_BR": "", + "pt_BR": "A redução do arquivo XCI falhou", "ru_RU": "Обрезка файла XCI не удалась", "sv_SE": "Optimering av XCI-filen misslyckades", "th_TH": "", @@ -20262,7 +20412,7 @@ "ko_KR": "작업이 취소됨", "no_NO": "Operasjonen ble avlyst", "pl_PL": "", - "pt_BR": "", + "pt_BR": "A operação foi cancelada", "ru_RU": "Операция была отменена", "sv_SE": "Åtgärden avbröts", "th_TH": "", @@ -20287,7 +20437,7 @@ "ko_KR": "작업이 수행되지 않음", "no_NO": "Ingen operasjon ble utført", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Nenhuma operação foi realizada", "ru_RU": "Операция не была проведена", "sv_SE": "Ingen åtgärd genomfördes", "th_TH": "", @@ -20437,7 +20587,7 @@ "ko_KR": "XCI 파일 트리머", "no_NO": "", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Redutor de arquivo XCI", "ru_RU": "Уменьшение размера XCI файлов", "sv_SE": "Optimera XCI-filer", "th_TH": "", @@ -20462,7 +20612,7 @@ "ko_KR": "{1}개 타이틀 중 {0}개 선택됨", "no_NO": "{0} av {1} Valgte tittel(er)", "pl_PL": "", - "pt_BR": "", + "pt_BR": "{0} de {1} Título(s) Selecionado(s)", "ru_RU": "{0} из {1} файла(ов) выбрано", "sv_SE": "{0} av {1} spel markerade", "th_TH": "", @@ -20487,7 +20637,7 @@ "ko_KR": "{1}개 타이틀 중 {0}개 선택됨({2}개 표시됨)", "no_NO": "{0} av {1} Tittel(er) valgt ({2} vises)", "pl_PL": "", - "pt_BR": "", + "pt_BR": "{0} de {1} Título(s) Selecionado(s) ({2} exibidos)", "ru_RU": "{0} из {1} файла(ов) выбрано ({2} показано)", "sv_SE": "{0} av {1} spel markerade ({2} visade)", "th_TH": "", @@ -20512,7 +20662,7 @@ "ko_KR": "{0}개의 타이틀을 트리밍 중...", "no_NO": "Trimming av {0} tittel(er)...", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Reduzindo {0} Título(s)...", "ru_RU": "Обрезка {0} файла(ов)...", "sv_SE": "Optimerar {0} spel...", "th_TH": "", @@ -20537,7 +20687,7 @@ "ko_KR": "{0}개의 타이틀을 트리밍 해제 중...", "no_NO": "Untrimming {0} Tittel(er)...", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Desfazendo {0} Título(s)...", "ru_RU": "Отмена обрезки {0} файла(ов)...", "sv_SE": "Avoptimerar {0} spel...", "th_TH": "", @@ -20562,7 +20712,7 @@ "ko_KR": "실패", "no_NO": "Mislyktes", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Falhou", "ru_RU": "Ошибка", "sv_SE": "Misslyckades", "th_TH": "", @@ -20587,7 +20737,7 @@ "ko_KR": "잠재적 비용 절감", "no_NO": "Potensielle besparelser", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Economia potencial", "ru_RU": "Потенциально освобождено места", "sv_SE": "Möjlig besparning", "th_TH": "", @@ -20612,7 +20762,7 @@ "ko_KR": "실제 비용 절감", "no_NO": "Faktiske besparelser", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Economia real", "ru_RU": "Реально освобождено места", "sv_SE": "Faktisk besparning", "th_TH": "", @@ -20662,7 +20812,7 @@ "ko_KR": "표시됨 선택", "no_NO": "Velg vist", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Selecionar mostrado(s)", "ru_RU": "Выбрать то что показано", "sv_SE": "Markera visade", "th_TH": "", @@ -20687,7 +20837,7 @@ "ko_KR": "표시됨 선택 취소", "no_NO": "Opphev valg av Vist", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Desmarcar mostrado(s)", "ru_RU": "Отменить выбор показанного", "sv_SE": "Avmarkera visade", "th_TH": "", @@ -20712,7 +20862,7 @@ "ko_KR": "타이틀", "no_NO": "Tittel", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Título", "ru_RU": "Приложение", "sv_SE": "Titel", "th_TH": "", @@ -20737,7 +20887,7 @@ "ko_KR": "공간 절약s", "no_NO": "Plassbesparelser", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Economia de espaço", "ru_RU": "Сохранение места на диске", "sv_SE": "Utrymmesbesparning", "th_TH": "", @@ -20762,7 +20912,7 @@ "ko_KR": "트림", "no_NO": "", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Reduzir", "ru_RU": "Обрезать", "sv_SE": "Optimera", "th_TH": "", @@ -20787,7 +20937,7 @@ "ko_KR": "언트림", "no_NO": "Utrim", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Desfazer", "ru_RU": "Отмена обрезки", "sv_SE": "Avoptimera", "th_TH": "", @@ -20937,7 +21087,7 @@ "ko_KR": "{0} DLC 사용 가능", "no_NO": "{0} Nedlastbare innhold(er)", "pl_PL": "", - "pt_BR": "", + "pt_BR": "{0} DLC(s) disponíveis", "ru_RU": "{0} доступных DLC", "sv_SE": "{0} DLC(er) tillgängliga", "th_TH": "", @@ -21137,7 +21287,7 @@ "ko_KR": "계속", "no_NO": "Fortsett", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Continuar", "ru_RU": "Продолжить", "sv_SE": "Fortsätt", "th_TH": "", @@ -21487,7 +21637,7 @@ "ko_KR": "에뮬레이터에서 사용할 그래픽 후단부를 선택합니다.\n\nVulkan은 드라이버가 최신 상태인 한 모든 최신 그래픽 카드에 전반적으로 더 좋습니다. Vulkan은 또한 모든 GPU 공급업체에서 더 빠른 셰이더 컴파일(덜 끊김)을 제공합니다.\n\nOpenGL은 오래된 Nvidia GPU, Linux의 오래된 AMD GPU 또는 VRAM이 낮은 GPU에서 더 나은 결과를 얻을 수 있지만 셰이더 컴파일 끊김이 더 큽니다.\n\n모르면 Vulkan으로 설정합니다. 최신 그래픽 드라이버를 사용해도 GPU가 Vulkan을 지원하지 않는 경우 OpenGL로 설정하세요..", "no_NO": "Velg grafikkbackend som skal brukes i emulatoren.\n\nVulkan er generelt bedre for alle moderne grafikkort, så lenge driverne er oppdatert. Vulkan har også en raskere sammenstilling av Shader (mindre hakkete) på alle GPU-leverandører.\n\nOpenGL kan oppnå bedre resultater for eldre Nvidia GPU-er, på eldre AMD GPU-er på Linux, eller på GPU-er med lavere VRAM, selv om skyggekompileringsutløser vil være større.\n\nSett til Vulkan hvis du er usikker. Sett til OpenGL hvis ikke GPU-en støtter Vulkan selv med de nyeste grafikkdriverne.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Selecione o backend gráfico que será usado no emulador.\n\nO Vulkan é melhor no geral para todas as placas de vídeo modernas, desde que seus drivers estejam atualizados. O Vulkan também apresenta compilação de shader mais rápida (menos travamentos) em todos os fornecedores de GPU.\n\nO OpenGL pode obter melhores resultados em GPUs Nvidia antigas, em GPUs AMD antigas no Linux ou em GPUs com VRAM menor, embora os travamentos de compilação de shader sejam maiores.\n\nDefina como Vulkan se não tiver certeza. Defina como OpenGL se sua GPU não suportar Vulkan, mesmo com os drivers gráficos mais recentes.", "ru_RU": "Выбирает бэкенд, который будет использован в эмуляторе.\n\nVulkan является лучшим выбором для всех современных графических карт с актуальными драйверами. В Vulkan также включена более быстрая компиляция шейдеров (меньше статтеров) для всех видеоадаптеров.\n\nПри использовании OpenGL можно достичь лучших результатов на старых видеоадаптерах Nvidia и AMD в Linux или на видеоадаптерах с небольшим количеством видеопамяти, хотя статтеров при компиляции шейдеров будет больше.\n\nРекомендуется использовать Vulkan. Используйте OpenGL, если ваш видеоадаптер не поддерживает Vulkan даже с актуальными драйверами.", "sv_SE": "Väljer den grafikbakände som ska användas i emulatorn.\n\nVulkan är oftast bättre för alla moderna grafikkort, så länge som deras drivrutiner är uppdaterade. Vulkan har också funktioner för snabbare shader compilation (mindre stuttering) för alla GPU-tillverkare.\n\nOpenGL kan nå bättre resultat på gamla Nvidia GPU:er, på äldre AMD GPU:er på Linux, eller på GPU:er med lägre VRAM, även om shader compilation stuttering kommer att vara större.\n\nStäll in till Vulkan om du är osäker. Ställ in till OpenGL om du GPU inte har stöd för Vulkan även med de senaste grafikdrivrutinerna.", "th_TH": "เลือกกราฟิกเบื้องหลังที่จะใช้ในโปรแกรมจำลอง\n\nโดยรวมแล้ว Vulkan นั้นดีกว่าสำหรับการ์ดจอรุ่นใหม่ทั้งหมด ตราบใดที่ไดรเวอร์ยังอัพเดทอยู่เสมอ Vulkan ยังมีคุณสมบัติการคอมไพล์เชเดอร์ที่เร็วขึ้น(และลดอาการกระตุก) สำหรับ GPU อื่นๆทุกอัน\n\nOpenGL อาจได้รับผลลัพธ์ที่ดีกว่าบน Nvidia GPU รุ่นเก่า, AMD GPU รุ่นเก่าบน Linux หรือบน GPU ที่มี VRAM น้อย แม้ว่าการคอมไพล์เชเดอร์ จะทำให้อาการกระตุกมากขึ้นก็ตาม\n\nตั้งค่าเป็น Vulkan หากไม่แน่ใจ ตั้งค่าเป็น OpenGL หาก GPU ของคุณไม่รองรับ Vulkan แม้จะมีไดรเวอร์กราฟิกล่าสุดก็ตาม", @@ -21537,7 +21687,7 @@ "ko_KR": "Vulkan을 사용합니다.\nARM 맥에서 해당 플랫폼에서 잘 실행되는 게임을 플레이하는 경우 Metal 후단부를 사용합니다.", "no_NO": "Bruker Vulkan \nPå en ARM Mac, og når du spiller et spill som kjører bra under den, bruker du Metal-backend.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Usa Vulkan.\nEm um Mac ARM, e ao jogar um jogo que roda bem nele, usa o backend Metal.", "ru_RU": "Использует Vulkan.\nНа Mac с ARM процессорами используется Metal, если игра с ним совместима и хорошо работает.", "sv_SE": "Använder Vulkan.\nPå en ARM Mac och vid spel som körs bra på den så används Metal-bakänden.", "th_TH": "", @@ -21587,7 +21737,7 @@ "ko_KR": "VRAM 사용량을 줄이기 위해 ASTC 텍스처를 압축합니다.\n\n이 텍스처 형식을 사용하는 게임에는 Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder, The Legend of Zelda: Tears of the Kingdom이 있습니다.\n\n4GiB VRAM 이하의 그래픽 카드는 이러한 게임을 실행하는 동안 어느 시점에서 충돌할 가능성이 있습니다.\n\n위에서 언급한 게임에서 VRAM이 부족한 경우에만 활성화합니다. 모르면 끔으로 두세요.", "no_NO": "Kompresser ASTC-teksturer for å redusere VRAM-bruk.\n\nSpill som bruker dette teksturformatet, inkluderer Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder and The Legend of Zelda: Tears of the Kingdom.\n\nGrafikkkort med 4GiB VRAM eller mindre, vil sannsynligvis krasje på et tidspunkt når spillene kjører.\n\nAktiver bare hvis du går tom for VRAM på nevnte spill. La AV om du er usikker.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Compacta texturas ASTC para reduzir o uso de VRAM.\n\nJogos que usam esse formato de textura incluem Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder e The Legend of Zelda: Tears of the Kingdom.\n\nPlacas gráficas com 4GB VRAM ou menos provavelmente travarão em algum momento durante a execução desses jogos.\n\nHabilite somente se estiver ficando sem VRAM nos jogos mencionados acima. Deixe DESLIGADO se não tiver certeza.", "ru_RU": "Сжатие ASTC текстур для уменьшения использования VRAM. \n\nИгры, использующие этот формат текстур: Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder и The Legend of Zelda: Tears of the Kingdom. \nНа видеоадаптерах с 4GiB видеопамяти или менее возможны вылеты при запуске этих игр. \n\nВключите, только если у вас заканчивается видеопамять в вышеупомянутых играх. \n\nРекомендуется оставить выключенным.", "sv_SE": "Komprimerar ASTC-texturer för att minska VRAM-användning.\n\nSpel som använder detta texturformat inkluderar Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder och The Legend of Zelda: Tears of the Kingdom.\n\nGrafikkort med 4GiB VRAM eller mindre kommer sannolikt krascha någon gång när du kör dessa spel.\n\nAktivera endast om du har slut på VRAM på ovan nämnda spel. Lämna AV om du är osäker.", "th_TH": "บีบอัดพื้นผิว ASTC เพื่อลดการใช้งาน VRAM\n\nเกมที่ใช้รูปแบบพื้นผิวนี้ ได้แก่ Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder และ The Legend of Zelda: Tears of the Kingdom\n\nการ์ดจอที่มี 4GiB VRAM หรือน้อยกว่ามีแนวโน้มที่จะพังในบางจุดขณะเล่นเกมเหล่านี้\n\nเปิดใช้งานเฉพาะในกรณีที่ VRAM ของคุณใกล้หมดในเกมที่กล่าวมาข้างต้น ปล่อยให้ปิดหากไม่แน่ใจ", @@ -21914,7 +22064,7 @@ "pl_PL": "Głoś", "pt_BR": "", "ru_RU": "Громкость", - "sv_SE": "", + "sv_SE": "Volym", "th_TH": "ระดับเสียง", "tr_TR": "Ses", "uk_UA": "Гуч.", @@ -22787,7 +22937,7 @@ "ko_KR": "멀티플레이어", "no_NO": "Flerspiller", "pl_PL": "Gra Wieloosobowa", - "pt_BR": "", + "pt_BR": "Multijogador", "ru_RU": "Мультиплеер", "sv_SE": "Flerspelare", "th_TH": "ผู้เล่นหลายคน", @@ -22937,7 +23087,7 @@ "ko_KR": "P2P 네트워크 호스팅 비활성화(대기 시간이 늘어날 수 있음)", "no_NO": "Deaktiver P2P-nettverkshosting (kan øke ventetiden)", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Desabilitar hospedagem de rede P2P (pode aumentar a latência)", "ru_RU": "Отключить хостинг P2P-сетей (может увеличить задержку)", "sv_SE": "Inaktivera P2P-nätverkshosting (kan öka latens)", "th_TH": "", @@ -22962,7 +23112,7 @@ "ko_KR": "P2P 네트워크 호스팅을 비활성화하면 피어가 직접 연결하지 않고 마스터 서버를 통해 프록시합니다.", "no_NO": "Deaktiver P2P-nettverkshosting, så vil andre brukere gå via hovedserveren i stedet for å koble seg direkte til deg.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Desabilite a hospedagem de rede P2P, os pares farão proxy através do servidor mestre em vez de se conectarem a você diretamente.", "ru_RU": "Отключая хостинг P2P-сетей, пользователи будут проксироваться через главный сервер, а не подключаться к вам напрямую.", "sv_SE": "Inaktivera P2P-nätverkshosting, motparter kommer skickas genom masterservern isället för att ansluta direkt till dig.", "th_TH": "", @@ -22987,7 +23137,7 @@ "ko_KR": "네트워크 암호 문구 :", "no_NO": "Nettverkspassord:", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Senha de rede:", "ru_RU": "Cетевой пароль:", "sv_SE": "Lösenfras för nätverk:", "th_TH": "", @@ -23012,7 +23162,7 @@ "ko_KR": "귀하는 귀하와 동일한 암호를 사용하는 호스팅 게임만 볼 수 있습니다.", "no_NO": "Du vil bare kunne se spill som er arrangert med samme passordfrase som deg.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Você só poderá ver jogos hospedados com a mesma senha que você.", "ru_RU": "Вы сможете видеть только те игры, в которых используется тот же пароль, что и у вас.", "sv_SE": "Du kommer endast kunna se hostade spel med samma lösenfras som du.", "th_TH": "", @@ -23037,7 +23187,7 @@ "ko_KR": "Ryujinx-<8 hex chars> 형식으로 암호를 입력하세요. 귀하는 귀하와 동일한 암호를 사용하는 호스팅 게임만 볼 수 있습니다.", "no_NO": "Skriv inn en passordfrase i formatet Ryujinx-<8 heks tegn>. Du vil bare kunne se spill som er arrangert med samme passordfrase som deg.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Insira uma frase-senha no formato Ryujinx-<8 hex chars>. Você só poderá ver jogos hospedados com a mesma frase-senha que você.", "ru_RU": "Введите пароль в формате Ryujinx-<8 шестнадцатеричных символов>. Вы сможете видеть только те игры, в которых используется тот же пароль, что и у вас.", "sv_SE": "Ange en lösenfras i formatet Ryujinx-<8 hextecken>. Du kommer endast kunna se hostade spel med samma lösenfras som du.", "th_TH": "", @@ -23062,7 +23212,7 @@ "ko_KR": "(일반)", "no_NO": "(offentlig)", "pl_PL": "", - "pt_BR": "", + "pt_BR": "(público)", "ru_RU": "(публичный)", "sv_SE": "(publik)", "th_TH": "", @@ -23087,7 +23237,7 @@ "ko_KR": "무작위 생성", "no_NO": "Generer tilfeldig", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Gerar Aleatório", "ru_RU": "Сгенерировать рандомно", "sv_SE": "Generera slumpmässigt", "th_TH": "", @@ -23112,7 +23262,7 @@ "ko_KR": "다른 플레이어와 공유할 수 있는 새로운 암호 문구를 생성합니다.", "no_NO": "Genererer en ny passordfrase, som kan deles med andre spillere.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Gera uma nova senha, que pode ser compartilhada com outros jogadores.", "ru_RU": "Генерирует новый пароль, который можно передать другим игрокам.", "sv_SE": "Genererar en ny lösenfras som kan delas med andra spelare.", "th_TH": "", @@ -23137,7 +23287,7 @@ "ko_KR": "지우기", "no_NO": "Slett", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Limpar", "ru_RU": "Очистить", "sv_SE": "Töm", "th_TH": "", @@ -23162,7 +23312,7 @@ "ko_KR": "현재 암호를 지우고 공용 네트워크로 돌아갑니다.", "no_NO": "Sletter den gjeldende passordfrasen og går tilbake til det offentlige nettverket.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Limpa a senha atual, retornando à rede pública.", "ru_RU": "Очищает текущий пароль, возвращаясь в публичную сеть.", "sv_SE": "Tömmer aktuell lösenfras och återgår till det publika nätverket.", "th_TH": "", @@ -23187,7 +23337,7 @@ "ko_KR": "유효하지 않은 암호입니다! \"Ryujinx-<8 hex chars>\" 형식이어야 합니다.", "no_NO": "Ugyldig passordfrase! Må være i formatet \"Ryujinx-<8 hex tegn>\"", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Frase-senha inválida! Deve estar no formato \"Ryujinx-<8 hex chars>\"", "ru_RU": "Неверный пароль! Пароль должен быть в формате \"Ryujinx-<8 шестнадцатеричных символов>\"", "sv_SE": "Ogiltig lösenfras! Måste vara i formatet \"Ryujinx-<8 hextecken>\"", "th_TH": "", @@ -23237,7 +23387,7 @@ "ko_KR": "사용자 정의 주사율 활성화(실험적)", "no_NO": "Aktiver egendefinert oppdateringsfrekvens (eksperimentell)", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Habilitar taxa de atualização personalizada (Experimental)", "ru_RU": "Включить пользовательскую частоту кадров (Экспериментально)", "sv_SE": "Aktivera anpassad uppdateringsfrekvens (experimentell)", "th_TH": "", @@ -23287,7 +23437,7 @@ "ko_KR": "무제한", "no_NO": "Ubegrenset", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Ilimitado", "ru_RU": "Без ограничений", "sv_SE": "Obunden", "th_TH": "", @@ -23312,7 +23462,7 @@ "ko_KR": "사용자 정의 주사율", "no_NO": "Egendefinert oppdateringsfrekvens", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Taxa de atualização personalizada", "ru_RU": "Пользовательская частота кадров", "sv_SE": "Anpassad uppdateringsfrekvens", "th_TH": "", @@ -23326,7 +23476,7 @@ "ID": "SettingsTabSystemVSyncModeTooltip", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Emulierte vertikale Synchronisation. \"Switch\" emuliert die 60Hz-Bildwiederholfrequenz der Switch. \"Unbounded\" ist eine unbegrenzte Bildwiederholfrequenz.", "el_GR": "", "en_US": "Emulated Vertical Sync. 'Switch' emulates the Switch's refresh rate of 60Hz. 'Unbounded' is an unbounded refresh rate.", "es_ES": "", @@ -23337,7 +23487,7 @@ "ko_KR": "에뮬레이트된 수직 동기화. '스위치'는 스위치의 60Hz 주사율을 에뮬레이트합니다. '무한'은 무제한 주사율입니다.", "no_NO": "Emulert vertikal synkronisering. «Switch» emulerer Switchs oppdateringsfrekvens på 60 Hz. «Ubegrenset» er en ubegrenset oppdateringsfrekvens.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Sincronização vertical emulada. 'Switch' emula a taxa de atualização de 60 Hz do Switch. 'Ilimitada' é uma taxa de atualização sem limite.", "ru_RU": "Эмулированная вертикальная синхронизация. 'Консоль' эмулирует частоту обновления консоли, равную 60 Гц. 'Без ограничений' - неограниченная частота кадров.", "sv_SE": "Emulerad vertikal synk. 'Switch' emulerar Switchens uppdateringsfrekvens på 60Hz. 'Obunden' är en obegränsad uppdateringsfrekvens.", "th_TH": "", @@ -23351,7 +23501,7 @@ "ID": "SettingsTabSystemVSyncModeTooltipCustom", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Emulierte vertikale Synchronisation. \"Switch\" emuliert die 60Hz-Bildwiederholfrequenz der Switch. „Unbounded“ ist eine unbegrenzte Bildwiederholfrequenz. „Benutzerdefinierte Bildwiederholfrequenz“ emuliert die angegebene benutzerdefinierte Bildwiederholfrequenz.", "el_GR": "", "en_US": "Emulated Vertical Sync. 'Switch' emulates the Switch's refresh rate of 60Hz. 'Unbounded' is an unbounded refresh rate. 'Custom Refresh Rate' emulates the specified custom refresh rate.", "es_ES": "", @@ -23362,7 +23512,7 @@ "ko_KR": "에뮬레이트된 수직 동기화. '스위치'는 스위치의 60Hz 주사율을 에뮬레이트합니다. '무한'은 무제한 주사율입니다. '사용자 지정'은 지정된 사용자 지정 주사율을 에뮬레이트합니다.", "no_NO": "Emulert vertikal synkronisering. «Switch» emulerer Switchs oppdateringsfrekvens på 60 Hz. «Ubegrenset» er en ubegrenset oppdateringsfrekvens. «Egendefinert» emulerer den angitte egendefinerte oppdateringsfrekvensen.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Sincronização Vertical Emulada. 'Switch' emula a taxa de atualização de 60 Hz do Switch. 'Ilimitada' é uma taxa de atualização sem limite. 'Taxa de atualização personalizada' emula a taxa de atualização personalizada especificada.", "ru_RU": "Эмулированная вертикальная синхронизация. 'Консоль' эмулирует частоту обновления консоли, равную 60 Гц. 'Без ограничений' - неограниченная частота кадров. 'Пользовательска частота кадров' эмулирует выбранную пользователем частоту кадров.", "sv_SE": "Emulerad vertikal synk. 'Switch' emulerar Switchens uppdateringsfrekvens på 60Hz. 'Obunden' är en obegränsad uppdateringsfrekvens. 'Anpassad uppdateringsfrekvens' emulerar den angivna anpassade uppdateringsfrekvensen.", "th_TH": "", @@ -23376,7 +23526,7 @@ "ID": "SettingsTabSystemEnableCustomVSyncIntervalTooltip", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Ermöglicht es dem Benutzer, eine emulierte Bildwiederholfrequenz festzulegen. In einigen Titeln kann dies die Geschwindigkeit der Spiel-Logik erhöhen oder verringern. In anderen Titeln kann dies dazu führen, dass die FPS auf ein Vielfaches der Bildwiederholfrequenz begrenzt werden oder zu unvorhersehbarem Verhalten führen. Dies ist eine experimentelle Funktion, ohne Garantien dafür, wie sich das Gameplay auswirkt. \n\nLassen Sie diese Option deaktiviert, wenn Sie sich nicht sicher sind.", "el_GR": "", "en_US": "Allows the user to specify an emulated refresh rate. In some titles, this may speed up or slow down the rate of gameplay logic. In other titles, it may allow for capping FPS at some multiple of the refresh rate, or lead to unpredictable behavior. This is an experimental feature, with no guarantees for how gameplay will be affected. \n\nLeave OFF if unsure.", "es_ES": "", @@ -23387,7 +23537,7 @@ "ko_KR": "사용자가 에뮬레이트된 화면 주사율을 지정할 수 있습니다. 일부 타이틀에서는 게임플레이 로직 속도가 빨라지거나 느려질 수 있습니다. 다른 타이틀에서는 주사율의 배수로 FPS를 제한하거나 예측할 수 없는 동작으로 이어질 수 있습니다. 이는 실험적 기능으로 게임 플레이에 어떤 영향을 미칠지 보장할 수 없습니다. \n\n모르면 끔으로 두세요.", "no_NO": "Gjør det mulig for brukeren å angi en emulert oppdateringsfrekvens. I noen titler kan dette øke eller senke hastigheten på spillogikken. I andre titler kan det gjøre det mulig å begrense FPS til et multiplum av oppdateringsfrekvensen, eller føre til uforutsigbar oppførsel. Dette er en eksperimentell funksjon, og det gis ingen garantier for hvordan spillingen påvirkes. \n\nLa AV stå hvis du er usikker.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Permite que o usuário especifique uma taxa de atualização emulada. Em alguns títulos, isso pode acelerar ou desacelerar a taxa de lógica do jogo. Em outros títulos, pode permitir limitar o FPS em algum múltiplo da taxa de atualização ou levar a um comportamento imprevisível. Este é um recurso experimental, sem garantias de como o jogo será afetado. \n\nDeixe OFF se não tiver certeza.", "ru_RU": "Позволяет пользователю указать эмулируемую частоту кадров. В некоторых играх это может ускорить или замедлить скорость логики игрового процесса. В других играх это может позволить ограничить FPS на уровне, кратном частоте обновления, или привести к непредсказуемому поведению. Это экспериментальная функция, и нет никаких гарантий того, как она повлияет на игровой процесс. \n\nОставьте выключенным, если не уверены.", "sv_SE": "Låter användaren ange en emulerad uppdateringsfrekvens. För vissa spel så kan detta snabba upp eller ner frekvensen för spellogiken. I andra spel så kan detta tillåta att bildfrekvensen kapas för delar av uppdateringsfrekvensen eller leda till oväntat beteende. Detta är en experimentell funktion utan några garantier för hur spelet påverkas. \n\nLämna AV om du är osäker.", "th_TH": "", @@ -23401,7 +23551,7 @@ "ID": "SettingsTabSystemCustomVSyncIntervalValueTooltip", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Der Zielwert für die benutzerdefinierte Bildwiederholfrequenz.", "el_GR": "", "en_US": "The custom refresh rate target value.", "es_ES": "", @@ -23412,7 +23562,7 @@ "ko_KR": "사용자 정의 주사율 목표 값입니다.", "no_NO": "Den egendefinerte målverdien for oppdateringsfrekvens.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "O valor alvo da taxa de atualização personalizada.", "ru_RU": "Заданное значение частоты кадров", "sv_SE": "Målvärde för anpassad uppdateringsfrekvens.", "th_TH": "", @@ -23426,7 +23576,7 @@ "ID": "SettingsTabSystemCustomVSyncIntervalSliderTooltip", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Die benutzerdefinierte Bildwiederholfrequenz als Prozentsatz der normalen Switch-Bildwiederholfrequenz.", "el_GR": "", "en_US": "The custom refresh rate, as a percentage of the normal Switch refresh rate.", "es_ES": "", @@ -23437,7 +23587,7 @@ "ko_KR": "일반 스위치 주사율의 백분율로 나타낸 사용자 지정 주사율입니다.", "no_NO": "Den egendefinerte oppdateringsfrekvensen, i prosent av den normale oppdateringsfrekvensen for Switch-konsollen.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "A taxa de atualização personalizada, como uma porcentagem da taxa de atualização normal do Switch.", "ru_RU": "Пользовательская частота кадров в процентах от обычной частоты обновления на консоли.", "sv_SE": "Anpassad uppdateringsfrekvens, som en procentdel av den normala uppdateringsfrekvensen för Switch.", "th_TH": "", @@ -23451,7 +23601,7 @@ "ID": "SettingsTabSystemCustomVSyncIntervalPercentage", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Benutzerdefinierte Bildwiederholfrequenz %:", "el_GR": "", "en_US": "Custom Refresh Rate %:", "es_ES": "", @@ -23462,7 +23612,7 @@ "ko_KR": "사용자 정의 주사율 % :", "no_NO": "Egendefinert oppdateringsfrekvens %:", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Taxa de atualização personalizada %:", "ru_RU": "Пользовательская частота кадров %:", "sv_SE": "Anpassad uppdateringsfrekvens %:", "th_TH": "", @@ -23476,7 +23626,7 @@ "ID": "SettingsTabSystemCustomVSyncIntervalValue", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Wert für benutzerdefinierte Bildwiederholfrequenz:", "el_GR": "", "en_US": "Custom Refresh Rate Value:", "es_ES": "", @@ -23487,7 +23637,7 @@ "ko_KR": "사용자 정의 주사율 값 :", "no_NO": "Egendefinert verdi for oppdateringsfrekvens:", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Valor da taxa de atualização personalizada:", "ru_RU": "Значение пользовательской частоты кадров:", "sv_SE": "Värde för anpassad uppdateringsfrekvens:", "th_TH": "", @@ -23512,7 +23662,7 @@ "ko_KR": "간격", "no_NO": "Intervall", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Intervalo", "ru_RU": "Интервал", "sv_SE": "Intervall", "th_TH": "", @@ -23526,7 +23676,7 @@ "ID": "SettingsTabHotkeysToggleVSyncModeHotkey", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "VSync-Modus umschalten:", "el_GR": "", "en_US": "Toggle VSync mode:", "es_ES": "", @@ -23537,7 +23687,7 @@ "ko_KR": "수직 동기화 모드 전환 :", "no_NO": "Veksle mellom VSync-modus:", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Alternar modo VSync:", "ru_RU": "Выбрать режим вертикальной синхронизации:", "sv_SE": "Växla VSync-läge:", "th_TH": "", @@ -23551,7 +23701,7 @@ "ID": "SettingsTabHotkeysIncrementCustomVSyncIntervalHotkey", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Benutzerdefinierte Bildwiederholfrequenz erhöhen:", "el_GR": "", "en_US": "Raise custom refresh rate", "es_ES": "", @@ -23562,7 +23712,7 @@ "ko_KR": "사용자 정의 주사율 증가", "no_NO": "Øk den egendefinerte oppdateringsfrekvensen", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Aumentar taxa de atualização personalizada", "ru_RU": "Повышение пользовательской частоты кадров", "sv_SE": "Höj anpassad uppdateringsfrekvens", "th_TH": "", @@ -23576,7 +23726,7 @@ "ID": "SettingsTabHotkeysDecrementCustomVSyncIntervalHotkey", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Benutzerdefinierte Bildwiederholfrequenz senken:", "el_GR": "", "en_US": "Lower custom refresh rate:", "es_ES": "", @@ -23587,7 +23737,7 @@ "ko_KR": "사용자 정의 주사율 감소", "no_NO": "Lavere tilpasset oppdateringsfrekvens", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Reduzir Taxa de atualização personalizada:", "ru_RU": "Понижение пользовательской частоты кадров", "sv_SE": "Sänk anpassad uppdateringsfrekvens", "th_TH": "", @@ -23601,7 +23751,7 @@ "ID": "CompatibilityListLastUpdated", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Zuletzt aktualisiert: {0}", "el_GR": "", "en_US": "Last updated: {0}", "es_ES": "", @@ -23612,7 +23762,7 @@ "ko_KR": "최종 업데이트 : {0}", "no_NO": "Sist oppdatert: {0}", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Última atualização: {0}", "ru_RU": "", "sv_SE": "Senast uppdaterad: {0}", "th_TH": "", @@ -23626,7 +23776,7 @@ "ID": "CompatibilityListWarning", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Diese Kompatibilitätsliste könnte veraltete Einträge enthalten. Teste dennoch Spiele im \"Ingame\"-Status.", "el_GR": "", "en_US": "This compatibility list might contain out of date entries.\nDo not be opposed to testing games in the \"Ingame\" status.", "es_ES": "", @@ -23637,7 +23787,7 @@ "ko_KR": "이 호환성 목록에는 오래된 항목이 포함되어 있을 수 있습니다.\n\"게임 내\" 상태에서 게임을 테스트하는 것을 반대하지 마십시오.", "no_NO": "Denne kompatibilitetslisten kan inneholde oppføringer som er tomme for data.\nVær ikke imot å teste spill i statusen «Ingame».", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Esta lista de compatibilidade pode estar desatualizada.\nNão se oponha a testar os jogos", "ru_RU": "", "sv_SE": "Denna kompatibilitetslista kan innehålla utdaterade poster.\nTesta gärna spelen som listas med \"Spelproblem\"-status.", "th_TH": "", @@ -23651,7 +23801,7 @@ "ID": "CompatibilityListSearchBoxWatermark", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Kompatibilitätseinträge durchsuchen...", "el_GR": "", "en_US": "Search compatibility entries...", "es_ES": "", @@ -23662,7 +23812,7 @@ "ko_KR": "호환성 항목 검색...", "no_NO": "Søk i kompatibilitetsoppføringer...", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Pesquisa de compatibilidade", "ru_RU": "", "sv_SE": "Sök i kompatibilitetsposter...", "th_TH": "", @@ -23687,7 +23837,7 @@ "ko_KR": "호환성 목록 열기", "no_NO": "Åpne kompatibilitetslisten", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Lista de Compatibilidade", "ru_RU": "", "sv_SE": "Öppna kompatibilitetslistan", "th_TH": "", @@ -23701,7 +23851,7 @@ "ID": "CompatibilityListOnlyShowOwnedGames", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Nur eigene Spiele anzeigen", "el_GR": "", "en_US": "Only show owned games", "es_ES": "", @@ -23712,7 +23862,7 @@ "ko_KR": "보유 게임만 표시", "no_NO": "Vis bare eide spill", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Mostrar apenas jogos disponíveis", "ru_RU": "", "sv_SE": "Visa endast ägda spel", "th_TH": "", @@ -23726,7 +23876,7 @@ "ID": "CompatibilityListPlayable", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Spielbar", "el_GR": "", "en_US": "Playable", "es_ES": "", @@ -23737,7 +23887,7 @@ "ko_KR": "플레이 가능", "no_NO": "Spillbar", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Jogável", "ru_RU": "", "sv_SE": "Spelbart", "th_TH": "", @@ -23751,7 +23901,7 @@ "ID": "CompatibilityListIngame", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Im Spiel", "el_GR": "", "en_US": "Ingame", "es_ES": "", @@ -23762,7 +23912,7 @@ "ko_KR": "게임 내", "no_NO": "", "pl_PL": "", - "pt_BR": "", + "pt_BR": "No jogo", "ru_RU": "", "sv_SE": "Spelproblem", "th_TH": "", @@ -23787,7 +23937,7 @@ "ko_KR": "메뉴", "no_NO": "Menyer", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Menu", "ru_RU": "", "sv_SE": "Menyer", "th_TH": "", @@ -23812,7 +23962,7 @@ "ko_KR": "부츠", "no_NO": "Starter", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Inicializa", "ru_RU": "", "sv_SE": "Startar", "th_TH": "", @@ -23837,7 +23987,7 @@ "ko_KR": "없음", "no_NO": "Ingenting", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Nada", "ru_RU": "", "sv_SE": "Ingenting", "th_TH": "", @@ -23860,9 +24010,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Starter opp og spiller uten krasj eller GPU-feil av noe slag, og med en hastighet som er rask nok til å ha rimelig glede av på en gjennomsnittlig PC.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Inicializa e roda sem travamentos ou bugs de GPU de qualquer tipo, e em uma velocidade rápida o suficiente para ser aproveitado em um PC comum.", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -23885,9 +24035,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Starter og går i gang i spillet, men lider av ett eller flere av følgende: krasjer, fastlåser, GPU-feil, distraherende dårlig lyd eller er rett og slett for tregt. Spillet kan fortsatt spilles helt til ende, men ikke slik det er ment å spilles.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Inicializa e entra no jogo, mas sofre de um ou mais dos seguintes: travamentos, deadlocks, bugs de GPU, áudio ruim que distrai ou é simplesmente muito lento. O jogo ainda pode ser jogado até o fim, mas não da forma como foi criado para ser jogado.", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -23910,9 +24060,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Starter opp og går forbi tittelskjermen, men kommer ikke inn i hovedspillet.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Inicializa e passa da tela de título, mas não entra no jogo principal.", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -23926,7 +24076,7 @@ "ID": "CompatibilityListBootsTooltip", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Startet, kommt aber nicht über den Titelbildschirm hinaus.", "el_GR": "", "en_US": "Boots but does not make it past the title screen.", "es_ES": "", @@ -23935,9 +24085,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Starter, men kommer ikke lenger enn til tittelskjermen.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Inizializa, mas não passa da tela de título.", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -23951,7 +24101,7 @@ "ID": "CompatibilityListNothingTooltip", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Startet nicht oder zeigt keine Anzeichen von Aktivität.", "el_GR": "", "en_US": "Does not boot or shows no signs of activity.", "es_ES": "", @@ -23960,9 +24110,9 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Starter ikke opp eller viser ingen tegn til aktivitet.", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Não inicializa ou não mostra sinais de atividade.", "ru_RU": "", "sv_SE": "", "th_TH": "", @@ -24001,7 +24151,7 @@ "ID": "ExtractAocListHeader", "Translations": { "ar_SA": "", - "de_DE": "", + "de_DE": "Wähle ein DLC zum Extrahieren aus", "el_GR": "", "en_US": "Select a DLC to Extract", "es_ES": "", @@ -24012,9 +24162,9 @@ "ko_KR": "추출할 DLC 선택", "no_NO": "Velg en DLC og hente ut", "pl_PL": "", - "pt_BR": "", + "pt_BR": "Selecione um DLC para extrair", "ru_RU": "", - "sv_SE": "", + "sv_SE": "Välj en DLC att extrahera", "th_TH": "", "tr_TR": "", "uk_UA": "", @@ -24035,7 +24185,7 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Rikt nærværsbilde", "pl_PL": "", "pt_BR": "", "ru_RU": "", @@ -24060,7 +24210,7 @@ "it_IT": "", "ja_JP": "", "ko_KR": "", - "no_NO": "", + "no_NO": "Dynamisk og rik tilstedeværelse", "pl_PL": "", "pt_BR": "", "ru_RU": "", diff --git a/src/Ryujinx/Common/ThemeManager.cs b/src/Ryujinx/Common/ThemeManager.cs deleted file mode 100644 index 6da01bfa7..000000000 --- a/src/Ryujinx/Common/ThemeManager.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace Ryujinx.Ava.Common -{ - public static class ThemeManager - { - public static event Action ThemeChanged; - - public static void OnThemeChanged() - { - ThemeChanged?.Invoke(); - } - } -} diff --git a/src/Ryujinx/Headless/Options.cs b/src/Ryujinx/Headless/Options.cs index a57863d5d..6658ba3ad 100644 --- a/src/Ryujinx/Headless/Options.cs +++ b/src/Ryujinx/Headless/Options.cs @@ -148,7 +148,7 @@ namespace Ryujinx.Headless IgnoreMissingServices = configurationState.System.IgnoreMissingServices; if (NeedsOverride(nameof(IgnoreControllerApplet))) - IgnoreControllerApplet = configurationState.System.IgnoreApplet; + IgnoreControllerApplet = configurationState.System.IgnoreControllerApplet; return; diff --git a/src/Ryujinx/Program.cs b/src/Ryujinx/Program.cs index 997f4edb4..ecf9667c8 100644 --- a/src/Ryujinx/Program.cs +++ b/src/Ryujinx/Program.cs @@ -170,6 +170,11 @@ namespace Ryujinx.Ava public static string GetDirGameUserConfig(string gameId, bool rememberGlobalDir = false, bool changeFolderForGame = false) { + if (string.IsNullOrEmpty(gameId)) + { + return ""; + } + string gameDir = Path.Combine(AppDataManager.GamesDirPath, gameId, ReleaseInformation.ConfigName); // Should load with the game if there is a custom setting for the game diff --git a/src/Ryujinx/RyujinxApp.axaml.cs b/src/Ryujinx/RyujinxApp.axaml.cs index 32318776a..90552cd16 100644 --- a/src/Ryujinx/RyujinxApp.axaml.cs +++ b/src/Ryujinx/RyujinxApp.axaml.cs @@ -22,6 +22,8 @@ namespace Ryujinx.Ava { public class RyujinxApp : Application { + public static event Action ThemeChanged; + internal static string FormatTitle(LocaleKeys? windowTitleKey = null, bool includeVersion = true) => windowTitleKey is null ? $"{FullAppName}{(includeVersion ? $" {Program.Version}" : string.Empty)}" @@ -112,7 +114,7 @@ namespace Ryujinx.Ava baseStyle = ConfigurationState.Instance.UI.BaseStyle; } - ThemeManager.OnThemeChanged(); + ThemeChanged?.Invoke(); RequestedThemeVariant = baseStyle switch { diff --git a/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs b/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs index c03c4c45f..c9bd08fa3 100644 --- a/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs +++ b/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs @@ -41,7 +41,7 @@ namespace Ryujinx.Ava.UI.Applet bool okPressed = false; - if (ConfigurationState.Instance.System.IgnoreApplet) + if (ConfigurationState.Instance.System.IgnoreControllerApplet) return false; Dispatcher.UIThread.InvokeAsync(async () => diff --git a/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs index be0a5d644..7a63c3391 100644 --- a/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs @@ -25,10 +25,10 @@ namespace Ryujinx.Ava.UI.ViewModels Version = RyujinxApp.FullAppName + "\n" + Program.Version; UpdateLogoTheme(ConfigurationState.Instance.UI.BaseStyle.Value); - ThemeManager.ThemeChanged += ThemeManager_ThemeChanged; + RyujinxApp.ThemeChanged += Ryujinx_ThemeChanged; } - private void ThemeManager_ThemeChanged() + private void Ryujinx_ThemeChanged() { Dispatcher.UIThread.Post(() => UpdateLogoTheme(ConfigurationState.Instance.UI.BaseStyle.Value)); } @@ -49,7 +49,7 @@ namespace Ryujinx.Ava.UI.ViewModels public void Dispose() { - ThemeManager.ThemeChanged -= ThemeManager_ThemeChanged; + RyujinxApp.ThemeChanged -= Ryujinx_ThemeChanged; GithubLogo.Dispose(); DiscordLogo.Dispose(); diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs index 45742eadb..c379ab71b 100644 --- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs @@ -355,11 +355,11 @@ namespace Ryujinx.Ava.UI.ViewModels _ => null, }; } - set + set { ListSelectedApplication = value; GridSelectedApplication = value; - } + } } public bool HasCompatibilityEntry => SelectedApplication.HasPlayabilityInfo; @@ -1546,7 +1546,6 @@ namespace Ryujinx.Ava.UI.ViewModels { BackendThreadingInit = ConfigurationState.Instance.Graphics.BackendThreading.Value.ToString(); } - // If a configuration is found in the "/games/xxxxxxxxxxxxxx" folder, the program will load the user setting. string idGame = application.IdBaseString; diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs index e1387c6d4..f98c99634 100644 --- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs @@ -4,7 +4,6 @@ using Avalonia.Media.Imaging; using Avalonia.Threading; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; -using Humanizer; using LibHac.Tools.FsSystem; using Ryujinx.Audio.Backends.OpenAL; using Ryujinx.Audio.Backends.SDL2; @@ -52,8 +51,7 @@ namespace Ryujinx.Ava.UI.ViewModels private int _graphicsBackendMultithreadingIndex; private float _volume; [ObservableProperty] private bool _isVulkanAvailable = true; - [ObservableProperty] private bool _gameDirectoryChanged; - [ObservableProperty] private bool _autoloadDirectoryChanged; + [ObservableProperty] private bool _gameListNeedsRefresh; private readonly List _gpuIds = []; private int _graphicsBackendIndex; private int _scalingFilter; @@ -82,6 +80,8 @@ namespace Ryujinx.Ava.UI.ViewModels public string GamePath => _gamePath; public string GameTitle => _gameTitle; public string GameId => _gameId; + public bool IsGameTitleNotNull => !string.IsNullOrEmpty(GameTitle); + public double PanelOpacity => IsGameTitleNotNull ? 0.5 : 1; public int ResolutionScale { @@ -142,6 +142,8 @@ namespace Ryujinx.Ava.UI.ViewModels public bool EnableMouse { get; set; } public bool DisableInputWhenOutOfFocus { get; set; } + public int FocusLostActionType { get; set; } + public VSyncMode VSyncMode { get => _vSyncMode; @@ -421,10 +423,8 @@ namespace Ryujinx.Ava.UI.ViewModels { Task.Run(LoadAvailableGpus); - if (!noLoadGlobalConfig)// Default is false, but loading custom config avoids double call - { + // if (!noLoadGlobalConfig)// Default is false, but loading custom config avoids double call LoadCurrentConfiguration(); - } DirtyHacks = new SettingsHacksViewModel(this); } @@ -535,34 +535,29 @@ namespace Ryujinx.Ava.UI.ViewModels { ConfigurationState config = ConfigurationState.Instance; + // User Interface + EnableDiscordIntegration = config.EnableDiscordIntegration; + CheckUpdatesOnStart = config.CheckUpdatesOnStart; + ShowConfirmExit = config.ShowConfirmExit; + RememberWindowState = config.RememberWindowState; + ShowTitleBar = config.ShowTitleBar; + HideCursor = (int)config.HideCursor.Value; + UpdateCheckerType = (int)config.UpdateCheckerType.Value; + FocusLostActionType = (int)config.FocusLostActionType.Value; - //It is necessary that the data is used from the global configuration file - if (string.IsNullOrEmpty(GameId)) + GameDirectories.Clear(); + GameDirectories.AddRange(config.UI.GameDirs.Value); + + AutoloadDirectories.Clear(); + AutoloadDirectories.AddRange(config.UI.AutoloadDirs.Value); + + BaseStyleIndex = config.UI.BaseStyle.Value switch { - // User Interface - EnableDiscordIntegration = config.EnableDiscordIntegration; - CheckUpdatesOnStart = config.CheckUpdatesOnStart; - ShowConfirmExit = config.ShowConfirmExit; - RememberWindowState = config.RememberWindowState; - ShowTitleBar = config.ShowTitleBar; - HideCursor = (int)config.HideCursor.Value; - UpdateCheckerType = (int)config.UpdateCheckerType.Value; - - GameDirectories.Clear(); - GameDirectories.AddRange(config.UI.GameDirs.Value); - - AutoloadDirectories.Clear(); - AutoloadDirectories.AddRange(config.UI.AutoloadDirs.Value); - - BaseStyleIndex = config.UI.BaseStyle.Value switch - { - "Auto" => 0, - "Light" => 1, - "Dark" => 2, - _ => 0 - }; - - } + "Auto" => 0, + "Light" => 1, + "Dark" => 2, + _ => 0 + }; // Input EnableDockedMode = config.System.EnableDockedMode; @@ -583,6 +578,7 @@ namespace Ryujinx.Ava.UI.ViewModels DateTime currentDateTime = currentHostDateTime.Add(systemDateTimeOffset); CurrentDate = currentDateTime.Date; CurrentTime = currentDateTime.TimeOfDay; + MatchSystemTime = config.System.MatchSystemTime; EnableCustomVSyncInterval = config.Graphics.EnableCustomVSyncInterval; @@ -591,7 +587,7 @@ namespace Ryujinx.Ava.UI.ViewModels EnableFsIntegrityChecks = config.System.EnableFsIntegrityChecks; DramSize = config.System.DramSize; IgnoreMissingServices = config.System.IgnoreMissingServices; - IgnoreApplet = config.System.IgnoreApplet; + IgnoreApplet = config.System.IgnoreControllerApplet; // CPU EnablePptc = config.System.EnablePtc; @@ -643,42 +639,30 @@ namespace Ryujinx.Ava.UI.ViewModels LdnPassphrase = config.Multiplayer.LdnPassphrase; LdnServer = config.Multiplayer.LdnServer; } - + public void SaveSettings() { ConfigurationState config = ConfigurationState.Instance; - bool userConfigFile = string.IsNullOrEmpty(GameId); + // User Interface + config.EnableDiscordIntegration.Value = EnableDiscordIntegration; + config.CheckUpdatesOnStart.Value = CheckUpdatesOnStart; + config.ShowConfirmExit.Value = ShowConfirmExit; + config.RememberWindowState.Value = RememberWindowState; + config.ShowTitleBar.Value = ShowTitleBar; + config.HideCursor.Value = (HideCursorMode)HideCursor; + config.UpdateCheckerType.Value = (UpdaterType)UpdateCheckerType; + config.FocusLostActionType.Value = (FocusLostType)FocusLostActionType; + config.UI.GameDirs.Value = [.. GameDirectories]; + config.UI.AutoloadDirs.Value = [.. AutoloadDirectories]; - if (userConfigFile) + config.UI.BaseStyle.Value = BaseStyleIndex switch { - // User Interface - config.EnableDiscordIntegration.Value = EnableDiscordIntegration; - config.CheckUpdatesOnStart.Value = CheckUpdatesOnStart; - config.ShowConfirmExit.Value = ShowConfirmExit; - config.RememberWindowState.Value = RememberWindowState; - config.ShowTitleBar.Value = ShowTitleBar; - config.HideCursor.Value = (HideCursorMode)HideCursor; - config.UpdateCheckerType.Value = (UpdaterType)UpdateCheckerType; - - if (GameDirectoryChanged) - { - config.UI.GameDirs.Value = [.. GameDirectories]; - } - - if (AutoloadDirectoryChanged) - { - config.UI.AutoloadDirs.Value = [.. AutoloadDirectories]; - } - - config.UI.BaseStyle.Value = BaseStyleIndex switch - { - 0 => "Auto", - 1 => "Light", - 2 => "Dark", - _ => "Auto" - }; - } + 0 => "Auto", + 1 => "Light", + 2 => "Dark", + _ => "Auto" + }; // Input config.System.EnableDockedMode.Value = EnableDockedMode; @@ -691,8 +675,11 @@ namespace Ryujinx.Ava.UI.ViewModels // System config.System.Region.Value = (Region)Region; - config.System.Language.Value = (Language)Language; + if (config.System.Language.Value != (Language)Language) + GameListNeedsRefresh = true; + + config.System.Language.Value = (Language)Language; if (_validTzRegions.Contains(TimeZone)) { config.System.TimeZone.Value = TimeZone; @@ -703,7 +690,7 @@ namespace Ryujinx.Ava.UI.ViewModels config.System.EnableFsIntegrityChecks.Value = EnableFsIntegrityChecks; config.System.DramSize.Value = DramSize; config.System.IgnoreMissingServices.Value = IgnoreMissingServices; - config.System.IgnoreApplet.Value = IgnoreApplet; + config.System.IgnoreControllerApplet.Value = IgnoreApplet; // CPU config.System.EnablePtc.Value = EnablePptc; @@ -770,23 +757,20 @@ namespace Ryujinx.Ava.UI.ViewModels config.Multiplayer.DisableP2p.Value = DisableP2P; config.Multiplayer.LdnPassphrase.Value = LdnPassphrase; config.Multiplayer.LdnServer.Value = LdnServer; - + // Dirty Hacks config.Hacks.Xc2MenuSoftlockFix.Value = DirtyHacks.Xc2MenuSoftlockFix; config.Hacks.EnableShaderTranslationDelay.Value = DirtyHacks.ShaderTranslationDelayEnabled; config.Hacks.ShaderTranslationDelay.Value = DirtyHacks.ShaderTranslationDelay; - - config.ToFileFormat().SaveConfig(Program.ConfigurationPath); - + config.ToFileFormat().SaveConfig(Program.ConfigurationPath); MainWindow.UpdateGraphicsConfig(); RyujinxApp.MainWindow.ViewModel.VSyncModeSettingChanged(); SaveSettingsEvent?.Invoke(); - GameDirectoryChanged = false; - AutoloadDirectoryChanged = false; + GameListNeedsRefresh = false; } private static void RevertIfNotSaved() diff --git a/src/Ryujinx/UI/Views/Settings/SettingsSystemView.axaml b/src/Ryujinx/UI/Views/Settings/SettingsSystemView.axaml index aa7144cf1..5a9f98ae5 100644 --- a/src/Ryujinx/UI/Views/Settings/SettingsSystemView.axaml +++ b/src/Ryujinx/UI/Views/Settings/SettingsSystemView.axaml @@ -162,6 +162,8 @@ ValueMemberBinding="{Binding Mode=OneWay, Converter={x:Static helpers:TimeZoneConverter.Instance}}" /> + + - + + - + ToolTip.Tip="{ext:Locale IgnoreControllerAppletTooltip}"> + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + Text="{ext:Locale SettingsTabGeneralFocusLossType}" + Width="150" /> + + + + + + + + + + + + + + + + + + + @@ -60,8 +111,11 @@ + - + @@ -79,7 +133,11 @@ - + + + - + + + + - + + + + (GameDirsList.SelectedItems.Cast())) { ViewModel.GameDirectories.Remove(path); - ViewModel.GameDirectoryChanged = true; + ViewModel.GameListNeedsRefresh = true; } if (GameDirsList.ItemCount > 0) @@ -81,7 +75,7 @@ namespace Ryujinx.Ava.UI.Views.Settings foreach (string path in new List(AutoloadDirsList.SelectedItems.Cast())) { ViewModel.AutoloadDirectories.Remove(path); - ViewModel.AutoloadDirectoryChanged = true; + ViewModel.GameListNeedsRefresh = true; } if (AutoloadDirsList.ItemCount > 0) diff --git a/src/Ryujinx/UI/Windows/GameSpecificSettingsWindow.axaml b/src/Ryujinx/UI/Windows/GameSpecificSettingsWindow.axaml index c7a5d1fa4..6f11b3b57 100644 --- a/src/Ryujinx/UI/Windows/GameSpecificSettingsWindow.axaml +++ b/src/Ryujinx/UI/Windows/GameSpecificSettingsWindow.axaml @@ -29,6 +29,7 @@ IsVisible="False" KeyboardNavigation.IsTabStop="False"/> + @@ -80,6 +81,11 @@ + /// The current version of the file format /// - public const int CurrentVersion = 66; + public const int CurrentVersion = 67; /// /// Version of the configuration file format @@ -171,6 +171,11 @@ namespace Ryujinx.Ava.Utilities.Configuration /// Checks for updates when Ryujinx starts when enabled, either prompting when an update is found or just showing a notification. /// public UpdaterType UpdateCheckerType { get; set; } + + /// + /// How the emulator should behave when you click off/on the window. + /// + public FocusLostType FocusLostActionType { get; set; } /// /// Show "Confirm Exit" Dialog @@ -178,7 +183,7 @@ namespace Ryujinx.Ava.Utilities.Configuration public bool ShowConfirmExit { get; set; } /// - /// ignore "Applet" dialog + /// Ignore Controller Applet dialog /// public bool IgnoreApplet { get; set; } diff --git a/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs b/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs index 386abcbe5..bd145e048 100644 --- a/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs +++ b/src/Ryujinx/Utilities/Configuration/ConfigurationState.Migration.cs @@ -49,15 +49,16 @@ namespace Ryujinx.Ava.Utilities.Configuration configurationFileUpdated = true; } - + EnableDiscordIntegration.Value = shouldLoadFromFile ? cff.EnableDiscordIntegration : EnableDiscordIntegration.Value; // Get from global config only CheckUpdatesOnStart.Value = shouldLoadFromFile ? cff.CheckUpdatesOnStart : CheckUpdatesOnStart.Value; // Get from global config only UpdateCheckerType.Value = shouldLoadFromFile ? cff.UpdateCheckerType : UpdateCheckerType.Value; // Get from global config only + FocusLostActionType.Value = cff.FocusLostActionType; ShowConfirmExit.Value = shouldLoadFromFile ? cff.ShowConfirmExit : ShowConfirmExit.Value; // Get from global config only RememberWindowState.Value = shouldLoadFromFile ? cff.RememberWindowState : RememberWindowState.Value; // Get from global config only ShowTitleBar.Value = shouldLoadFromFile ? cff.ShowTitleBar : ShowTitleBar.Value; // Get from global config only EnableHardwareAcceleration.Value = shouldLoadFromFile ? cff.EnableHardwareAcceleration : EnableHardwareAcceleration.Value; // Get from global config only - HideCursor.Value = shouldLoadFromFile ? cff.HideCursor : HideCursor.Value; // Get from global config only + HideCursor.Value = cff.HideCursor; Logger.EnableFileLog.Value = cff.EnableFileLog; Logger.EnableDebug.Value = cff.LoggingEnableDebug; @@ -94,6 +95,7 @@ namespace Ryujinx.Ava.Utilities.Configuration System.Region.Value = cff.SystemRegion; System.TimeZone.Value = cff.SystemTimeZone; System.SystemTimeOffset.Value = shouldLoadFromFile ? cff.SystemTimeOffset : System.SystemTimeOffset.Value; // Get from global config only + System.MatchSystemTime.Value = shouldLoadFromFile ? cff.MatchSystemTime : System.MatchSystemTime.Value; // Get from global config only System.EnableDockedMode.Value = cff.DockedMode; System.EnablePtc.Value = cff.EnablePtc; System.EnableLowPowerPtc.Value = cff.EnableLowPowerPtc; @@ -105,7 +107,7 @@ namespace Ryujinx.Ava.Utilities.Configuration System.MemoryManagerMode.Value = cff.MemoryManagerMode; System.DramSize.Value = cff.DramSize; System.IgnoreMissingServices.Value = cff.IgnoreMissingServices; - System.IgnoreApplet.Value = cff.IgnoreApplet; + System.IgnoreControllerApplet.Value = cff.IgnoreApplet; System.UseHypervisor.Value = cff.UseHypervisor; UI.GuiColumns.FavColumn.Value = shouldLoadFromFile ? cff.GuiColumns.FavColumn : UI.GuiColumns.FavColumn.Value; @@ -443,7 +445,8 @@ namespace Ryujinx.Ava.Utilities.Configuration (63, static cff => cff.MatchSystemTime = false), (64, static cff => cff.LoggingEnableAvalonia = false), (65, static cff => cff.UpdateCheckerType = cff.CheckUpdatesOnStart ? UpdaterType.PromptAtStartup : UpdaterType.Off), - (66, static cff => cff.DisableInputWhenOutOfFocus = false) + (66, static cff => cff.DisableInputWhenOutOfFocus = false), + (67, static cff => cff.FocusLostActionType = cff.DisableInputWhenOutOfFocus ? FocusLostType.BlockInput : FocusLostType.DoNothing) ); } } diff --git a/src/Ryujinx/Utilities/Configuration/ConfigurationState.Model.cs b/src/Ryujinx/Utilities/Configuration/ConfigurationState.Model.cs index 93496753b..3f22c6c0f 100644 --- a/src/Ryujinx/Utilities/Configuration/ConfigurationState.Model.cs +++ b/src/Ryujinx/Utilities/Configuration/ConfigurationState.Model.cs @@ -383,7 +383,7 @@ namespace Ryujinx.Ava.Utilities.Configuration /// /// Ignore Controller Applet /// - public ReactiveObject IgnoreApplet { get; private set; } + public ReactiveObject IgnoreControllerApplet { get; private set; } /// /// Uses Hypervisor over JIT if available @@ -424,8 +424,8 @@ namespace Ryujinx.Ava.Utilities.Configuration DramSize.LogChangesToValue(nameof(DramSize)); IgnoreMissingServices = new ReactiveObject(); IgnoreMissingServices.LogChangesToValue(nameof(IgnoreMissingServices)); - IgnoreApplet = new ReactiveObject(); - IgnoreApplet.LogChangesToValue(nameof(IgnoreApplet)); + IgnoreControllerApplet = new ReactiveObject(); + IgnoreControllerApplet.LogChangesToValue(nameof(IgnoreControllerApplet)); AudioVolume = new ReactiveObject(); AudioVolume.LogChangesToValue(nameof(AudioVolume)); UseHypervisor = new ReactiveObject(); @@ -779,6 +779,11 @@ namespace Ryujinx.Ava.Utilities.Configuration /// Checks for updates when Ryujinx starts when enabled, either prompting when an update is found or just showing a notification. /// public ReactiveObject UpdateCheckerType { get; private set; } + + /// + /// How the emulator should behave when you click off/on the window. + /// + public ReactiveObject FocusLostActionType { get; private set; } /// /// Show "Confirm Exit" Dialog @@ -817,6 +822,7 @@ namespace Ryujinx.Ava.Utilities.Configuration EnableDiscordIntegration = new ReactiveObject(); CheckUpdatesOnStart = new ReactiveObject(); UpdateCheckerType = new ReactiveObject(); + FocusLostActionType = new ReactiveObject(); ShowConfirmExit = new ReactiveObject(); RememberWindowState = new ReactiveObject(); ShowTitleBar = new ReactiveObject(); diff --git a/src/Ryujinx/Utilities/Configuration/ConfigurationState.cs b/src/Ryujinx/Utilities/Configuration/ConfigurationState.cs index 0406219f6..02a91e51d 100644 --- a/src/Ryujinx/Utilities/Configuration/ConfigurationState.cs +++ b/src/Ryujinx/Utilities/Configuration/ConfigurationState.cs @@ -53,10 +53,12 @@ namespace Ryujinx.Ava.Utilities.Configuration SystemRegion = System.Region, SystemTimeZone = System.TimeZone, SystemTimeOffset = System.SystemTimeOffset, + MatchSystemTime = System.MatchSystemTime, DockedMode = System.EnableDockedMode, EnableDiscordIntegration = EnableDiscordIntegration, CheckUpdatesOnStart = CheckUpdatesOnStart, UpdateCheckerType = UpdateCheckerType, + FocusLostActionType = FocusLostActionType, ShowConfirmExit = ShowConfirmExit, RememberWindowState = RememberWindowState, ShowTitleBar = ShowTitleBar, @@ -79,7 +81,7 @@ namespace Ryujinx.Ava.Utilities.Configuration MemoryManagerMode = System.MemoryManagerMode, DramSize = System.DramSize, IgnoreMissingServices = System.IgnoreMissingServices, - IgnoreApplet = System.IgnoreApplet, + IgnoreApplet = System.IgnoreControllerApplet, UseHypervisor = System.UseHypervisor, GuiColumns = new GuiColumns { @@ -178,6 +180,7 @@ namespace Ryujinx.Ava.Utilities.Configuration System.EnableDockedMode.Value = true; EnableDiscordIntegration.Value = true; UpdateCheckerType.Value = UpdaterType.PromptAtStartup; + FocusLostActionType.Value = FocusLostType.DoNothing; ShowConfirmExit.Value = true; RememberWindowState.Value = true; ShowTitleBar.Value = !OperatingSystem.IsWindows(); @@ -202,7 +205,7 @@ namespace Ryujinx.Ava.Utilities.Configuration System.MemoryManagerMode.Value = MemoryManagerMode.HostMappedUnsafe; System.DramSize.Value = MemoryConfiguration.MemoryConfiguration4GiB; System.IgnoreMissingServices.Value = false; - System.IgnoreApplet.Value = false; + System.IgnoreControllerApplet.Value = false; System.UseHypervisor.Value = true; Multiplayer.LanInterfaceId.Value = "0"; Multiplayer.Mode.Value = MultiplayerMode.Disabled; diff --git a/src/Ryujinx/Utilities/Configuration/UI/FocusLostType.cs b/src/Ryujinx/Utilities/Configuration/UI/FocusLostType.cs new file mode 100644 index 000000000..eea588539 --- /dev/null +++ b/src/Ryujinx/Utilities/Configuration/UI/FocusLostType.cs @@ -0,0 +1,15 @@ +using Ryujinx.Common.Utilities; +using System.Text.Json.Serialization; + +namespace Ryujinx.Ava.Utilities.Configuration.UI +{ + [JsonConverter(typeof(TypedStringEnumConverter))] + public enum FocusLostType + { + DoNothing, + BlockInput, + MuteAudio, + BlockInputAndMuteAudio, + PauseEmulation + } +}