Compare commits

...

17 commits

Author SHA1 Message Date
Goodfeat
032f9a631a Merge branch ryujinx:master into Master_PR 2025-03-31 05:24:51 -05:00
Goodfeat
6602693477 feature: add the ability to skip profile select dialog when opening games that use it
the skip behavior is done by passing the user id of the profile you have selected in Options > Manage User Profiles.

See merge request ryubing/ryujinx!9
2025-03-30 22:29:57 -05:00
GreemDev
2ea9e945ab Move locales.json to repository root under "assets" folder
See merge request ryubing/ryujinx!20
2025-03-30 02:06:04 -05:00
Yeager
5d8451b41a Update Swedish in locales.json 2025-03-29 20:22:23 -05:00
Shinyoyo
dfdbb23f0d Updated Simplified Chinese translation. 2025-03-29 03:47:24 -05:00
Hack茶ん
1e6b2ea9ca Update Korean translation 2025-03-28 10:01:12 +00:00
GreemDev
5bf656cb25 Merge !2 into 'master'
See merge request ryubing/ryujinx!2
2025-03-28 02:59:56 +00:00
Tartifless
a6ce065f79 sdl2 guid, remove the CRC bytes (4 first characters) and replace with 0000 when creating guid 2025-03-28 02:59:56 +00:00
GreemDev
c9e120f8f2 Merge branch 'master' into 'master'
Updated Norwegian translation

See merge request ryubing/ryujinx!13
2025-03-27 23:09:01 +00:00
Daenorth
cb486ad66d Update file locales.json 2025-03-27 05:25:02 +00:00
Daenorth
463b5d403c Merge branch ryujinx:master into master 2025-03-25 10:55:17 +00:00
Daenorth
497627d09e Merge branch ryujinx:master into master 2025-03-21 11:24:30 +00:00
Daenorth
52fae771ad Merge branch ryujinx:master into master 2025-03-20 10:22:58 +00:00
Daenorth
c067f85fa3 Edit compatibility.csv 2025-03-20 06:13:27 +00:00
Daenorth
1a705418c5 Edit compatibility.csv 2025-03-20 05:57:17 +00:00
Daenorth
8ca06b69ac Update file TitleIDs.cs 2025-03-20 01:57:45 +00:00
Daenorth
8e666ab19f Update file compatibility.csv 2025-03-20 01:56:27 +00:00
14 changed files with 146 additions and 53 deletions

View file

@ -460,7 +460,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "스크린샷 폴더 열기",
"no_NO": "",
"no_NO": "Åpne Skjermbilde Mappen",
"pl_PL": "",
"pt_BR": "Abrir Pasta de Capturas de Tela",
"ru_RU": "Открыть папку со скриншотами",
@ -2760,7 +2760,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "사용자 정의 구성 만들기",
"no_NO": "",
"no_NO": "Opprett egendefinert konfigurasjon",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "Задать индивидуальные параметры",
@ -2785,7 +2785,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "사용자 정의 구성 편집",
"no_NO": "",
"no_NO": "Rediger egendefinert konfigurasjon",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "Изменить индивидуальные параметры",
@ -2860,7 +2860,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "선택한 게임에 대한 기존 독립 구성 편집",
"no_NO": "",
"no_NO": "Rediger din eksisterende uavhengige konfigurasjon for det valgte spillet",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "Отредактировать существующие независимые параметры для выбранной игры.",
@ -4934,16 +4934,16 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "터보 모드 배수 :",
"no_NO": "Multiplikator i turbomodus:",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"sv_SE": "Multiplikator för turboläge:",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"zh_CN": "涡轮模式倍数:",
"zh_TW": ""
}
},
@ -4959,16 +4959,16 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "터보 모드 배수 목표 값입니다.\n\n모르면 200으로 두세요.",
"no_NO": "Målverdien for multiplikatoren i turbomodus. \n\nLa syå på 200 hvis du er usikker.",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"sv_SE": "Målvärdet för multiplikatorn i turboläget. \n\nLämna den på 200 om du är osäker.",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"zh_CN": "涡轮模式倍数的目标值。\n\n如果不确定请保留为 200。",
"zh_TW": ""
}
},
@ -4984,16 +4984,16 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "터보 모드는 게임이 프레임 속도에 민감하지 않을 때 효과적으로 속도를 높이거나 낮추는 에뮬레이터 기능입니다.\n이 기능은 Ryujinx 키보드 단축키 설정에서 구성할 수 있는 단축키를 사용하여 게임 내에서 전환할 수 있습니다.\n\n모르면 200으로 두세요.",
"no_NO": "Turbo-modus er en emulatorfunksjon som effektivt øker eller senker hastigheten når et spill ikke er følsom for bildefrekvens.\nDu kan slå på denne funksjonen i spillet med en hurtigtast, som kan konfigureres i Ryujinx Keyboard Hotkeys-innstillingene.\n\nLa den stå på 200 hvis du er usikker.",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"sv_SE": "Turboläget är en emulatorfunktion som effektivt ökar eller sänker hastigheten när ett spel inte är känsligt för bildfrekvens.\nDu kan växla denna funktion i spelet med en snabbtangent, konfigurerbar i Ryujinx inställningar för snabbtangenter.\n\nLämna den på 200 om du är osäker.",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"zh_CN": "涡轮模式是一种模拟器功能当游戏对帧率不敏感时它可以有效地导致加速或降速。\n您可以在游戏中使用热键切换此功能,它可以在 Ryujinx 的键盘热键设置进行设置。\n\n如果不确定则保留为 200。",
"zh_TW": ""
}
},
@ -5360,7 +5360,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "컨트롤러 애플릿 무시",
"no_NO": "",
"no_NO": "Ignorer Kontroller-applet",
"pl_PL": "",
"pt_BR": "Ignorar Applet do Controlador",
"ru_RU": "Игнорировать апплет контроллера",
@ -5372,6 +5372,31 @@
"zh_TW": "忽略控制器小程式"
}
},
{
"ID": "SettingsTabSystemSkipUserProfilesManager",
"Translations": {
"ar_SA": "تخطي مربع حوار 'إدارة الملفات الشخصية للمستخدم'",
"de_DE": "Überspringen des Dialogs 'Benutzerprofile verwalten'",
"el_GR": "Παράκαμψη διαλόγου 'Διαχείριση Προφίλ _Χρηστών'",
"en_US": "Skip dialog 'Manage User Profiles'",
"es_ES": "Omitir el diálogo 'Gestionar perfiles de usuario'",
"fr_FR": "Ignorer le dialogue 'Gérer les profils d'utilisateurs'",
"he_IL": "דילוג על הדיאלוג 'נהל פרופילי משתמש'",
"it_IT": "Salta la finestra di dialogo 'Gestisci i profili utente'",
"ja_JP": "「ユーザプロファイルを管理」ダイアログをスキップ",
"ko_KR": "'사용자 프로필 관리' 대화 상자 건너뛰기",
"no_NO": "Hopp over dialogen 'Administrere Brukerprofiler'",
"pl_PL": "Pomiń okno dialogowe 'Zarządzaj profilami użytkowników'",
"pt_BR": "Ignorar a caixa de diálogo 'Gerenciar Perfis de Usuário'",
"ru_RU": "Пропустить диалог 'Менеджер учётных записей'",
"sv_SE": "Hoppa över dialogen 'Hantera användarprofiler'",
"th_TH": "ข้ามหน้าต่างโต้ตอบ 'จัดการโปรไฟล์ผู้ใช้งาน'",
"tr_TR": "'Kullanıcı Profillerini Yönet' iletişim kutusunu atla",
"uk_UA": "Пропустити діалог 'Керувати профілями користувачів'",
"zh_CN": "跳过对话框“管理用户账户”",
"zh_TW": "略過對話框「管理使用者設定檔」"
}
},
{
"ID": "SettingsTabGraphics",
"Translations": {
@ -10114,7 +10139,7 @@
"pl_PL": "",
"pt_BR": "",
"ru_RU": "Enter (блок цифр)",
"sv_SE": "",
"sv_SE": "Enter (numerisk)",
"th_TH": "",
"tr_TR": "",
"uk_UA": "Enter (цифровий блок)",
@ -11164,7 +11189,7 @@
"pl_PL": "",
"pt_BR": "",
"ru_RU": "Тачпад",
"sv_SE": "",
"sv_SE": "Pekplatta",
"th_TH": "",
"tr_TR": "",
"uk_UA": "Сенсорна панель",
@ -16885,7 +16910,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "앱이 실행 중일 때, 게임패드의 연결이 끊어지면 컨트롤러 애플릿 대화 상자가 나타나지 않습니다.\n\n모르시면 끔으로 두십시오.",
"no_NO": "",
"no_NO": "Håndkontroller-appleten vises ikke hvis gamepaden kobles fra mens et program kjører.",
"pl_PL": "",
"pt_BR": "A caixa de diálogo do Applet do controlador não aparecerá se o controle for desconectado enquanto um aplicativo estiver em execução.\n\nDeixe a opção DESLIGADO se não tiver certeza.",
"ru_RU": "Диалоговое окно апплета контроллера не будет отображаться, если геймпад отключен во время работы приложения.\n\nОставьте выключенным, если не уверены.",
@ -16897,6 +16922,31 @@
"zh_TW": "在模擬應用程式時如果遊戲手柄中斷連線則不會顯示控制器小程式。\n\n如果不確定請保持關閉狀態。"
}
},
{
"ID": "SkipUserProfilesTooltip",
"Translations": {
"ar_SA": "",
"de_DE": "Diese Option überspringt den Dialog 'Benutzerprofile verwalten' während des Spiels und verwendet ein voreingestelltes Profil.\n\nDie Profilumschaltung finden Sie unter 'Einstellungen' - 'Benutzerprofile verwalten'. Wählen Sie das gewünschte Profil aus, bevor Sie das Spiel laden.",
"el_GR": "Αυτή η επιλογή παρακάμπτει το παράθυρο διαλόγου 'Διαχειριστής Προφίλ Χρήστη' κατά τη διάρκεια του παιχνιδιού, χρησιμοποιώντας ένα προεπιλεγμένο προφίλ.\n\nΗ εναλλαγή προφίλ βρίσκεται στις 'Ρυθμίσεις' - 'Διαχειριστής Προφίλ Χρήστη'. Επιλέξτε το επιθυμητό προφίλ πριν φορτώσετε το παιχνίδι.",
"en_US": "This option skips the 'Manage User Profiles' dialog during gameplay, using a pre-selected profile.\n\nProfile switching is found in 'Settings' - 'Manager User Profiles'. Select the desired profile before loading the game.",
"es_ES": "Esta opción omite el diálogo de 'Gestionar perfiles de usuario' durante el juego, utilizando un perfil preseleccionado.\n\nEl cambio de perfil se encuentra en 'Configuración' - 'Gestionar perfiles de usuario'. Seleccione el perfil deseado antes de cargar el juego.",
"fr_FR": "Cette option permet d'éviter le dialogue du 'Gérer les profils d'utilisateurs' pendant le jeu, en utilisant un profil pré-sélectionné.\n\nLa sélection du profil se trouve dans 'Paramètres' - 'Gérer les profils d'utilisateurs'. Sélectionnez le profil souhaité avant de charger la partie.",
"he_IL": "",
"it_IT": "Questa opzione salta la finestra di dialogo 'Gestisci i profili utente' durante il gioco, utilizzando un profilo pre-selezionato.\n\nIl cambio del profilo si trova in 'Impostazioni' - 'Gestisci i profili utente'. Seleziona il profilo desiderato prima di caricare il gioco.",
"ja_JP": "このオプションは、ゲームプレイ中に「ユーザプロファイルを管理」ダイアログをスキップし、事前に選択されたプロファイルを使用します。\n\nプロファイルの切り替えは、「設定」-「ユーザプロファイルを管理」で見つけることができます。ゲームのロード前に目的のプロファイルをを選択してください。",
"ko_KR": "이 옵션은 게임 플레이 중 '사용자 프로필 관리' 대화 상자를 건너뛰고, 미리 선택된 프로필을 사용합니다.\n\n프로필 전환은 '설정' - '사용자 프로필 관리'에서 찾을 수 있습니다. 게임 로드 전에 원하는 프로필을 선택하세요.",
"no_NO": "Dette alternativet hopper over dialogen 'Administrere Brukerprofiler' under spilling, og bruker en forhåndsvalgt profil.\n\nProfilbytte finnes i 'Innstillinger' - 'Administrer Brukerprofiler'. Velg ønsket profil før du laster spillet.",
"pl_PL": "Ta opcja pomija okno dialogowe 'Zarządzaj profilami użytkowników' podczas gry, używając wcześniej wybrany profil.\n\nPrzełączanie profili można znaleźć w 'Ustawienia' - 'Zarządzaj Profilami Użytkowników'. Wybierz żądany profil przed załadowaniem gry.",
"pt_BR": "Esta opção ignora a caixa de diálogo 'Gerenciar Perfis de Usuário' durante o jogo, usando um perfil pré-selecionado.\n\nO gerenciamento de perfis pode ser encontrado em 'Configurações' - 'Gerenciar Perfis de Usuários'. Selecione o perfil desejado antes de carregar o jogo.",
"ru_RU": "Эта опция пропускает диалоговое окно 'Менеджер учётных записей' во время игры, используя предварительно выбранный профиль.\n\nПереключение профилей можно найти в 'Параметры' - 'Менеджер учётных записей'. Выберите желаемый профиль перед загрузкой игры.",
"sv_SE": "Det här alternativet hoppar över dialogrutan 'Hantera användarprofiler' under spelet och använder en förvald profil.\n\nProfilväxling finns i 'Inställningar' - 'Hantera användarprofiler'. Välj önskad profil innan du laddar spelet.",
"th_TH": "ตัวเลือกนี้จะข้ามหน้าต่าง 'จัดการโปรไฟล์ผู้ใช้งาน' ระหว่างเล่นเกม โดยใช้โปรไฟล์ที่เลือกไว้ล่วงหน้า\n\nการสลับโปรไฟล์สามารถพบได้ใน 'ตั้งค่า' - 'จัดการโปรไฟล์ผู้ใช้งาน' เลือกโปรไฟล์ที่คุณต้องการก่อนโหลดเกม",
"tr_TR": "Bu seçenek, oyun sırasında 'Kullanıcı Profillerini Yönet' iletişim kutusunu atlar ve önceden seçilmiş bir profil kullanır.\n\nProfil değiştirme 'Seçenekler' - 'Kullanıcı Profillerini Yönet' bölümünde bulunur. Oyunu yüklemeden önce istediğiniz profili seçin.",
"uk_UA": "Ця опція пропускає діалогове вікно 'Керувати профілями користувачів' під час гри, використовуючи попередньо вибраний профіль.\n\nПеремикання профілів можна знайти в 'Налаштування' - 'Керувати профілями користувачів'. Виберіть потрібний профіль перед завантаженням гри.",
"zh_CN": "此选项跳过游戏过程中的“管理用户账户”对话框,使用预选的配置。\n\n可以在“设置” - “管理用户账户”中找到配置文件切换。 在加载游戏之前选择所需的配置文件。",
"zh_TW": "這個選項跳過遊戲過程中的「管理使用者設定檔」對話框,使用預先選取的設定。\n\n可以在「設定」-「管理使用者設定檔」中找到設定檔切換。 在載入遊戲前選擇您需要的設定檔。"
}
},
{
"ID": "GraphicsBackendThreadingTooltip",
"Translations": {
@ -17560,7 +17610,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "Ryujinx 스크린샷 폴더 열기",
"no_NO": "",
"no_NO": "Åpne Ryujinx skjermbildemappen",
"pl_PL": "",
"pt_BR": "Abre a pasta de capturas de tela do Ryujinx",
"ru_RU": "Открывает папку скриншотов Ryujinx",
@ -18309,12 +18359,12 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"ko_KR": "{0}FPS({1}밀리초)",
"no_NO": "",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"sv_SE": "{0} bilder/s ({1}ms)",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
@ -18334,16 +18384,16 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"ko_KR": "{0}FPS({1}밀리초), ({2}%) 터보",
"no_NO": "",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"sv_SE": "{0} bilder/s ({1}ms), Turbo ({2}%)",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"zh_CN": "{0} FPS ({1}ms), 涡轮 ({2}%)",
"zh_TW": ""
}
},
@ -24084,16 +24134,16 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"ko_KR": "터보 모드 :",
"no_NO": "",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"sv_SE": "Turboläge:",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"zh_CN": "涡轮模式: ",
"zh_TW": ""
}
},
@ -24109,16 +24159,16 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "터보 모드 단축키입니다.\nRyujinx CPU 설정에서 터보 모드의 동작을 구성합니다.\n\n모르면 바인딩 해제 상태로 두세요.",
"no_NO": "Hurtigtasten for turbo-modus.\nKonfigurer oppførselen til turbo-modus i Ryujinx CPU-innstillinger.\n\nLa være ubundet hvis du er usikker.",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"sv_SE": "Snabbtangenten för turboläge.\nKonfigurera beteendet för turboläge i Ryujinx CPU-inställningar.\n\nLämna Obunden om du är osäker.",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"zh_CN": "涡轮模式热键。\n可以在 Ryujinx CPU 设置中配置涡轮模式的行为。\n\n如果不确定请保留为未绑定。",
"zh_TW": ""
}
},
@ -24134,16 +24184,16 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "누르고 있는 동안만",
"no_NO": "Bare mens du trykker på",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
"sv_SE": "",
"sv_SE": "Endast när du trycker ner",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"zh_CN": "仅在按下时",
"zh_TW": ""
}
},
@ -24185,7 +24235,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "호환성 목록 - {0}개 항목",
"no_NO": "",
"no_NO": "Kompatibilitetsliste - {0} oppføringer",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "Список совместимости — записей: {0}",
@ -24334,7 +24384,7 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "플레이 가능",
"ko_KR": "원활",
"no_NO": "Spillbar",
"pl_PL": "",
"pt_BR": "Jogável",
@ -24359,7 +24409,7 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "게임 내",
"ko_KR": "가능",
"no_NO": "",
"pl_PL": "",
"pt_BR": "No jogo",
@ -24409,7 +24459,7 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "부",
"ko_KR": "부",
"no_NO": "Starter",
"pl_PL": "",
"pt_BR": "Inicializa",
@ -24434,7 +24484,7 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "없음",
"ko_KR": "불가능",
"no_NO": "Ingenting",
"pl_PL": "",
"pt_BR": "Nada",
@ -24585,7 +24635,7 @@
"it_IT": "",
"ja_JP": "",
"ko_KR": "사용자 정의 설정",
"no_NO": "",
"no_NO": "Tilpasset konfigurasjon",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "Индивидуальные параметры",

View file

@ -15,7 +15,7 @@ namespace Ryujinx.BuildValidationTasks
{
Console.WriteLine("Running Locale Validation Task...");
string path = projectPath + "src/Ryujinx/Assets/locales.json";
string path = projectPath + "assets/locales.json";
string data;
using (StreamReader sr = new(path))

View file

@ -57,16 +57,19 @@ namespace Ryujinx.Input.SDL2
return null;
}
// Remove the first 4 char of the guid (CRC part) to make it stable
string guidString = "0000" + guid.ToString().Substring(4);
string id;
lock (_lock)
{
int guidIndex = 0;
id = guidIndex + "-" + guid;
id = guidIndex + "-" + guidString;
while (_gamepadsIds.Contains(id))
{
id = (++guidIndex) + "-" + guid;
id = (++guidIndex) + "-" + guidString;
}
}

View file

@ -154,7 +154,7 @@ namespace Ryujinx.Ava.Common.Locale
{
Dictionary<LocaleKeys, string> localeStrings = new();
_localeData ??= EmbeddedResources.ReadAllText("Ryujinx/Assets/locales.json")
_localeData ??= EmbeddedResources.ReadAllText("Ryujinx/Assets/Locale.json")
.Into(it => JsonHelper.Deserialize(it, LocalesJsonContext.Default.LocalesJson));
foreach (LocalesEntry locale in _localeData.Value.Locales)

View file

@ -150,7 +150,10 @@ namespace Ryujinx.Headless
if (NeedsOverride(nameof(IgnoreControllerApplet)))
IgnoreControllerApplet = configurationState.System.IgnoreControllerApplet;
if (NeedsOverride(nameof(SkipUserProfilesManager)))
SkipUserProfilesManager = configurationState.System.SkipUserProfilesManager;
return;
bool NeedsOverride(string argKey) => originalArgs.None(arg => arg.TrimStart('-').EqualsIgnoreCase(OptionName(argKey)));
@ -414,6 +417,9 @@ namespace Ryujinx.Headless
[Option("ignore-controller-applet", Required = false, Default = false, HelpText = "Enable ignoring the controller applet when your game loses connection to your controller.")]
public bool IgnoreControllerApplet { get; set; }
[Option("skip-user-profiles-manager", Required = false, Default = false, HelpText = "Enable skips the Profiles Manager popup during gameplay. Select the desired profile before starting the game")]
public bool SkipUserProfilesManager { get; set; }
// Values
[Value(0, MetaName = "input", HelpText = "Input to load.", Required = true)]

View file

@ -154,7 +154,9 @@
<EmbeddedResource Include="..\..\docs\compatibility.csv" LogicalName="RyujinxGameCompatibilityList">
<Link>Assets\RyujinxGameCompatibility.csv</Link>
</EmbeddedResource>
<EmbeddedResource Include="Assets\locales.json" />
<EmbeddedResource Include="..\..\assets\locales.json">
<Link>Assets\Locale.json</Link>
</EmbeddedResource>
<EmbeddedResource Include="Assets\Styles\Styles.xaml" />
<EmbeddedResource Include="Assets\Icons\Controller_JoyConLeft.svg" />
<EmbeddedResource Include="Assets\Icons\Controller_JoyConPair.svg" />
@ -173,6 +175,6 @@
<EmbeddedResource Include="Assets\UIImages\Logo_Ryujinx_AntiAlias.png" />
</ItemGroup>
<ItemGroup>
<AdditionalFiles Include="Assets\locales.json" />
<AdditionalFiles Include="..\..\assets\locales.json" />
</ItemGroup>
</Project>

View file

@ -15,7 +15,7 @@ namespace Ryujinx.Ava.Systems.Configuration
/// <summary>
/// The current version of the file format
/// </summary>
public const int CurrentVersion = 68;
public const int CurrentVersion = 69;
/// <summary>
/// Version of the configuration file format
@ -187,6 +187,11 @@ namespace Ryujinx.Ava.Systems.Configuration
/// </summary>
public bool IgnoreApplet { get; set; }
/// <summary>
/// Skip user profiles manager dialog during gameplay(the used profile in the configuration will be selected)
/// </summary>
public bool SkipUserProfiles { get; set; }
/// <summary>
/// Enables or disables save window size, position and state on close.
/// </summary>

View file

@ -103,6 +103,7 @@ namespace Ryujinx.Ava.Systems.Configuration
System.DramSize.Value = cff.DramSize;
System.IgnoreMissingServices.Value = cff.IgnoreMissingServices;
System.IgnoreControllerApplet.Value = cff.IgnoreApplet;
System.SkipUserProfilesManager.Value = cff.SkipUserProfiles;
System.UseHypervisor.Value = cff.UseHypervisor;
UI.GuiColumns.FavColumn.Value = shouldLoadFromFile ? cff.GuiColumns.FavColumn : UI.GuiColumns.FavColumn.Value;
@ -459,7 +460,8 @@ namespace Ryujinx.Ava.Systems.Configuration
TurboMode = Key.Unbound,
TurboModeWhileHeld = false
};
})
}),
(69, static cff => cff.SkipUserProfiles = false)
);
}
}

View file

@ -395,6 +395,11 @@ namespace Ryujinx.Ava.Systems.Configuration
/// </summary>
public ReactiveObject<bool> IgnoreControllerApplet { get; private set; }
/// <summary>
/// Skip User Profiles Manager
/// </summary>
public ReactiveObject<bool> SkipUserProfilesManager { get; private set; }
/// <summary>
/// Uses Hypervisor over JIT if available
/// </summary>
@ -445,6 +450,8 @@ namespace Ryujinx.Ava.Systems.Configuration
IgnoreMissingServices.LogChangesToValue(nameof(IgnoreMissingServices));
IgnoreControllerApplet = new ReactiveObject<bool>();
IgnoreControllerApplet.LogChangesToValue(nameof(IgnoreControllerApplet));
SkipUserProfilesManager = new ReactiveObject<bool>();
SkipUserProfilesManager.LogChangesToValue(nameof(SkipUserProfilesManager));
AudioVolume = new ReactiveObject<float>();
AudioVolume.LogChangesToValue(nameof(AudioVolume));
UseHypervisor = new ReactiveObject<bool>();

View file

@ -82,6 +82,7 @@ namespace Ryujinx.Ava.Systems.Configuration
DramSize = System.DramSize,
IgnoreMissingServices = System.IgnoreMissingServices,
IgnoreApplet = System.IgnoreControllerApplet,
SkipUserProfiles = System.SkipUserProfilesManager,
UseHypervisor = System.UseHypervisor,
GuiColumns = new GuiColumns
{
@ -206,6 +207,7 @@ namespace Ryujinx.Ava.Systems.Configuration
System.DramSize.Value = MemoryConfiguration.MemoryConfiguration4GiB;
System.IgnoreMissingServices.Value = false;
System.IgnoreControllerApplet.Value = false;
System.SkipUserProfilesManager.Value = false;
System.UseHypervisor.Value = true;
Multiplayer.LanInterfaceId.Value = "0";
Multiplayer.Mode.Value = MultiplayerMode.Disabled;

View file

@ -3,6 +3,7 @@ using Avalonia.Controls;
using Avalonia.Input;
using FluentAvalonia.UI.Controls;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.Systems.Configuration;
using Ryujinx.Ava.UI.Controls;
using Ryujinx.Ava.UI.Helpers;
using Ryujinx.Ava.UI.ViewModels;
@ -78,6 +79,13 @@ namespace Ryujinx.Ava.UI.Applet
public static async Task<(UserId Id, bool Result)> ShowInputDialog(ProfileSelectorDialogViewModel viewModel)
{
if (ConfigurationState.Instance.System.SkipUserProfilesManager)
{
UserId defaultId = viewModel.SelectedUserId;
return (defaultId, true);
}
ContentDialog contentDialog = new()
{
Title = LocaleManager.Instance[LocaleKeys.UserProfileWindowTitle],

View file

@ -133,6 +133,7 @@ namespace Ryujinx.Ava.UI.ViewModels
public bool EnableDiscordIntegration { get; set; }
public bool ShowConfirmExit { get; set; }
public bool IgnoreApplet { get; set; }
public bool SkipUserProfiles { get; set; }
public bool RememberWindowState { get; set; }
public bool ShowOldUI { get; set; }
public int HideCursor { get; set; }
@ -606,6 +607,7 @@ namespace Ryujinx.Ava.UI.ViewModels
DramSize = config.System.DramSize;
IgnoreMissingServices = config.System.IgnoreMissingServices;
IgnoreApplet = config.System.IgnoreControllerApplet;
SkipUserProfiles = config.System.SkipUserProfilesManager;
// CPU
EnablePptc = config.System.EnablePtc;
@ -709,6 +711,7 @@ namespace Ryujinx.Ava.UI.ViewModels
config.System.DramSize.Value = DramSize;
config.System.IgnoreMissingServices.Value = IgnoreMissingServices;
config.System.IgnoreControllerApplet.Value = IgnoreApplet;
config.System.SkipUserProfilesManager.Value = SkipUserProfiles;
// CPU
config.System.EnablePtc.Value = EnablePptc;

View file

@ -76,7 +76,7 @@ namespace Ryujinx.Ava.UI.Views.Main
private static IEnumerable<MenuItem> GenerateLanguageMenuItems()
{
const string LocalePath = "Ryujinx/Assets/locales.json";
const string LocalePath = "Ryujinx/Assets/Locale.json";
string languageJson = EmbeddedResources.ReadAllText(LocalePath);

View file

@ -328,6 +328,11 @@
ToolTip.Tip="{ext:Locale SettingsTabSystemEnableCustomVSyncIntervalTooltip}">
<TextBlock Text="{ext:Locale SettingsTabSystemEnableCustomVSyncInterval}" />
</CheckBox>
<CheckBox
IsChecked="{Binding SkipUserProfiles}"
ToolTip.Tip="{ext:Locale SkipUserProfilesTooltip}">
<TextBlock Text="{ext:Locale SettingsTabSystemSkipUserProfilesManager}" />
</CheckBox>
</StackPanel>
</StackPanel>
</Border>