Compare commits

..

9 Commits

Author SHA1 Message Date
GreemDev
e9824c9053 Comment AppImage builds
It randomly started erroring in GitHub actions with exit code 8 but only sometimes, and I don't have the patience to debug it. I don't even use linux lol
2025-07-28 19:35:47 -05:00
LotP
d2037da65f Nullify Locales (ryubing/ryujinx!83)
See merge request ryubing/ryujinx!83
2025-07-28 19:35:47 -05:00
Rondo
8fe7d54f85 Changes to uk_UA (ryubing/ryujinx!84)
See merge request ryubing/ryujinx!84
2025-07-28 19:35:47 -05:00
Daenorth
b8f9f3e16a Edit TileIDs.cs (ryubing/ryujinx!81)
See merge request ryubing/ryujinx!81
2025-07-28 19:35:47 -05:00
Daenorth
7b1c8717ef Edit compatibility.csv (ryubing/ryujinx!80)
See merge request ryubing/ryujinx!80
2025-07-28 19:35:47 -05:00
GreemDev
6122fa204f simplify completion callback 2025-07-28 17:58:54 -05:00
GreemDev
217fd90568 Use a single parser execution per text box update
Before it would: parse, compile, then execute for getting the formatted result, then run the suggestions function which did parsing on its own. It has now been moved to the new ParseAndGetCompletions function which returns the used ParserResult, saving some work.
2025-07-27 17:35:06 -05:00
GreemDev
95157c0cfd make ApplicationLibrary implement IStarscriptObject 2025-07-27 17:32:39 -05:00
GreemDev
8a3ccaafe3 basic starscript support + a textbox that provides the starscript executed result & compiled script as well as suggestions 2025-07-27 01:09:59 -05:00
13 changed files with 710 additions and 110 deletions

View File

@@ -55,6 +55,7 @@
<PackageVersion Include="SkiaSharp" Version="2.88.9" />
<PackageVersion Include="SkiaSharp.NativeAssets.Linux" Version="2.88.9" />
<PackageVersion Include="SPB" Version="0.0.4-build32" />
<PackageVersion Include="Starscript.Net" Version="1.0.36" />
<PackageVersion Include="System.IO.Hashing" Version="9.0.2" />
<PackageVersion Include="System.Management" Version="9.0.2" />
<PackageVersion Include="UnicornEngine.Unicorn" Version="2.0.2-rc1-fb78016" />

View File

@@ -223,7 +223,7 @@
"ar_SA": "المُضيف (سريع)",
"de_DE": "Host (schnell)",
"el_GR": "Υπολογιστής (γρήγορο)",
"en_US": "Host (Fast)",
"en_US": "Host (fast)",
"es_ES": "Host (rápido)",
"fr_FR": "Hôte (rapide)",
"he_IL": "מארח (מהיר)",
@@ -248,7 +248,7 @@
"ar_SA": "المضيف (غير مفحوص) (أسرع، غير آمن)",
"de_DE": "Host ungeprüft (am schnellsten, unsicher)",
"el_GR": "Χωρίς Ελέγχους (γρηγορότερο, μη ασφαλές)",
"en_US": "Host Unchecked (Fastest, Unsafe)",
"en_US": "Host Unchecked (fastest, unsafe)",
"es_ES": "Host sin verificación (más rápido, inseguro)",
"fr_FR": "Hôte non vérifié (plus rapide, non sécurisé)",
"he_IL": "מארח לא מבוקר (המהיר ביותר, לא בטוח)",
@@ -323,7 +323,7 @@
"ar_SA": "_تحميل تطبيق من ملف",
"de_DE": "Datei _öffnen",
"el_GR": "_Φόρτωση Αρχείου Εφαρμογής",
"en_US": "_Load Application from File",
"en_US": "_Load Application From File",
"es_ES": "_Cargar aplicación desde un archivo",
"fr_FR": "_Charger une application à partir dun fichier",
"he_IL": "_טען יישום מקובץ",
@@ -534,7 +534,7 @@
"pl_PL": "_Wyjdź",
"pt_BR": "_Sair",
"ru_RU": "_Выход",
"sv_SE": "_Avsluta",
"sv_SE": "A_vsluta",
"th_TH": "_ออก",
"tr_TR": "_Çıkış",
"uk_UA": "_Вихід",
@@ -559,7 +559,7 @@
"pl_PL": "_Opcje",
"pt_BR": "_Opções",
"ru_RU": "_Настройки",
"sv_SE": "_Inställningar",
"sv_SE": "I_nställningar",
"th_TH": "_ตัวเลือก",
"tr_TR": "_Seçenekler",
"uk_UA": "_Параметри",
@@ -582,7 +582,7 @@
"ko_KR": "전체 화면 전환",
"no_NO": "Fullskjermsvisning av/på",
"pl_PL": "Przełącz na tryb pełnoekranowy",
"pt_BR": "Mudar para Tela Cheia",
"pt_BR": "_Mudar para Tela Cheia",
"ru_RU": "Включить полноэкранный режим",
"sv_SE": "Växla helskärm",
"th_TH": "สลับเป็นโหมดเต็มหน้าจอ",
@@ -657,7 +657,7 @@
"ko_KR": "에뮬레이션 중지",
"no_NO": "Stopp Emulering",
"pl_PL": "Zatrzymaj emulację",
"pt_BR": "Parar a Emulação",
"pt_BR": "_Parar a Emulação",
"ru_RU": "Остановить эмуляцию",
"sv_SE": "Stoppa emulering",
"th_TH": "หยุดการจำลอง",
@@ -734,7 +734,7 @@
"pl_PL": "_Akcje",
"pt_BR": "_Ações",
"ru_RU": "_Действия",
"sv_SE": "_Åtgärder",
"sv_SE": "Åt_gärder",
"th_TH": "การดำเนินการ",
"tr_TR": "_Eylemler",
"uk_UA": "_Дії",
@@ -748,7 +748,7 @@
"ar_SA": "محاكاة رسالة الاستيقاظ",
"de_DE": "Aufwachnachricht simulieren",
"el_GR": "Προσομοίωση Μηνύματος Αφύπνισης",
"en_US": "Simulate Wake-Up Message",
"en_US": "Simulate Wake-up message",
"es_ES": "Simular mensaje de reactivación",
"fr_FR": "Simuler un message de réveil",
"he_IL": "דמה הודעת השכמה",
@@ -757,7 +757,7 @@
"ko_KR": "웨이크업 메시지 시뮬레이션",
"no_NO": "Simuler oppvåknings-melding",
"pl_PL": "Symuluj wiadomość wybudzania",
"pt_BR": "Simular Mensagem de Acordar o Console",
"pt_BR": "_Simular Mensagem de Acordar o Console",
"ru_RU": "Имитировать сообщение пробуждения",
"sv_SE": "Simulera uppvakningsmeddelande",
"th_TH": "จำลองข้อความปลุก",
@@ -798,7 +798,7 @@
"ar_SA": "",
"de_DE": "Amiibo scannen (aus Bin-Datei)",
"el_GR": "",
"en_US": "Scan An Amiibo (from .bin)",
"en_US": "Scan An Amiibo (From Bin)",
"es_ES": "",
"fr_FR": "Scanner un Amiibo (à partir d'un .bin)",
"he_IL": "",
@@ -832,7 +832,7 @@
"ko_KR": "펌웨어 설치",
"no_NO": "Installer fastvare",
"pl_PL": "Zainstaluj oprogramowanie",
"pt_BR": "Instalar Firmware",
"pt_BR": "_Instalar Firmware",
"ru_RU": "Установка прошивки",
"sv_SE": "Installera firmware",
"th_TH": "ติดตั้งเฟิร์มแวร์",
@@ -848,7 +848,7 @@
"ar_SA": "تثبيت برنامج ثابت من XCI أو ZIP",
"de_DE": "Firmware von einer XCI- oder einer ZIP-Datei installieren",
"el_GR": "Εγκατάσταση Firmware από XCI ή ZIP",
"en_US": "Install Firmware from XCI or ZIP",
"en_US": "Install a firmware from XCI or ZIP",
"es_ES": "Instalar firmware desde un archivo XCI o ZIP",
"fr_FR": "Installer un firmware depuis un fichier XCI ou ZIP",
"he_IL": "התקן קושחה מקובץ- ZIP/XCI",
@@ -873,7 +873,7 @@
"ar_SA": "تثبيت برنامج ثابت من مجلد",
"de_DE": "Firmware aus einem Verzeichnis installieren",
"el_GR": "Εγκατάσταση Firmware από τοποθεσία",
"en_US": "Install Firmware from a Directory",
"en_US": "Install a firmware from a directory",
"es_ES": "Instalar firmware desde una carpeta",
"fr_FR": "Installer un firmware à partir dun dossier",
"he_IL": "התקן קושחה מתוך תקייה",
@@ -923,7 +923,7 @@
"ar_SA": "",
"de_DE": "Schlüssel aus KEYS oder ZIP installieren",
"el_GR": "",
"en_US": "Install Keys from KEYS or ZIP",
"en_US": "Install keys from KEYS or ZIP",
"es_ES": "Instalar keys de KEYS o ZIP",
"fr_FR": "Installer des clés à partir de .KEYS ou .ZIP",
"he_IL": "",
@@ -948,7 +948,7 @@
"ar_SA": "",
"de_DE": "Schlüssel aus einem Verzeichnis installieren",
"el_GR": "",
"en_US": "Install Keys from a Directory",
"en_US": "Install keys from a directory",
"es_ES": "Instalar keys de un directorio",
"fr_FR": "Installer des clés à partir d'un dossier",
"he_IL": "",
@@ -973,7 +973,7 @@
"ar_SA": "إدارة أنواع الملفات",
"de_DE": "Dateitypen verwalten",
"el_GR": "Διαχείριση τύπων αρχείων",
"en_US": "Manage File Types",
"en_US": "Manage file types",
"es_ES": "Administrar tipos de archivo",
"fr_FR": "Gérer les types de fichiers",
"he_IL": "ניהול סוגי קבצים",
@@ -998,7 +998,7 @@
"ar_SA": "تثبيت أنواع الملفات",
"de_DE": "Dateitypen installieren",
"el_GR": "Εγκαταστήσετε τύπους αρχείων.",
"en_US": "Install File Types",
"en_US": "Install file types",
"es_ES": "Instalar tipos de archivo",
"fr_FR": "Installer des types de fichiers",
"he_IL": "סוגי קבצי התקנה",
@@ -1023,7 +1023,7 @@
"ar_SA": "إزالة أنواع الملفات",
"de_DE": "Dateitypen deinstallieren",
"el_GR": "Απεγκαταστήσετε τύπους αρχείων",
"en_US": "Uninstall File Types",
"en_US": "Uninstall file types",
"es_ES": "Desinstalar tipos de archivo",
"fr_FR": "Désinstaller des types de fichiers",
"he_IL": "סוגי קבצי הסרה",
@@ -1082,7 +1082,7 @@
"ko_KR": "보기(_V)",
"no_NO": "_Vis",
"pl_PL": "",
"pt_BR": "_Ver",
"pt_BR": "Ver",
"ru_RU": "_Вид",
"sv_SE": "_Visa",
"th_TH": "_มุมมอง",
@@ -1257,7 +1257,7 @@
"ko_KR": "업데이트 확인",
"no_NO": "Se etter oppdateringer",
"pl_PL": "Sprawdź aktualizacje",
"pt_BR": "Verificar Atualizações",
"pt_BR": "_Verificar Atualizações",
"ru_RU": "Проверить наличие обновлений",
"sv_SE": "Leta efter uppdateringar",
"th_TH": "ตรวจสอบอัปเดต",
@@ -1457,7 +1457,7 @@
"ko_KR": "정보",
"no_NO": "Om",
"pl_PL": "O programie",
"pt_BR": "Sobre",
"pt_BR": "_Sobre",
"ru_RU": "О программе",
"sv_SE": "Om",
"th_TH": "เกี่ยวกับ",
@@ -1798,7 +1798,7 @@
"ar_SA": "صيغة الملف",
"de_DE": "Dateiformat",
"el_GR": "Κατάληξη",
"en_US": "File Ext.",
"en_US": "File Ext",
"es_ES": "Extensión",
"fr_FR": "Extension du fichier",
"he_IL": "סיומת קובץ",
@@ -2142,6 +2142,31 @@
"zh_TW": "開啟使用者存檔資料夾"
}
},
{
"ID": "GameListContextMenuOpenUserSaveDirectoryToolTip",
"Translations": {
"ar_SA": "يفتح المجلد الذي يحتوي على حفظ المستخدم للتطبيق",
"de_DE": "Öffnet das Verzeichnis, welches den Benutzer-Spielstand beinhaltet",
"el_GR": "Ανοίγει την τοποθεσία που περιέχει την Αποθήκευση Χρήστη της εφαρμογής",
"en_US": "Opens the directory which contains Application's User Save",
"es_ES": "Abre la carpeta que contiene la partida guardada del usuario para esta aplicación",
"fr_FR": "Ouvre le dossier contenant la sauvegarde utilisateur de lapplication",
"he_IL": "פותח את תקיית השמור של המשתמש ביישום הנוכחי",
"it_IT": "Apre la cartella che contiene i dati di salvataggio dell'utente",
"ja_JP": "アプリケーションのユーザセーブデータを格納するディレクトリを開きます",
"ko_KR": "앱의 사용자 저장이 포함된 디렉터리 열기",
"no_NO": "Åpner mappen som inneholder programmets bruker lagring",
"pl_PL": "Otwiera katalog, który zawiera zapis użytkownika dla tej aplikacji",
"pt_BR": "Abre o diretório que contém jogos salvos para o usuário atual",
"ru_RU": "Открывает папку с пользовательскими сохранениями",
"sv_SE": "Öppnar katalogen som innehåller applikationens användarsparade spel",
"th_TH": "เปิดไดเร็กทอรี่ซึ่งมีการบันทึกข้อมูลของผู้ใช้แอปพลิเคชัน",
"tr_TR": "Uygulamanın Kullanıcı Kaydı'nın bulunduğu dizini açar",
"uk_UA": "Відкриває теку, яка містить збереження користувача",
"zh_CN": "打开储存游戏用户存档的目录",
"zh_TW": "開啟此應用程式的使用者存檔資料夾"
}
},
{
"ID": "GameListContextMenuOpenDeviceSaveDirectory",
"Translations": {
@@ -2167,6 +2192,31 @@
"zh_TW": "開啟裝置存檔資料夾"
}
},
{
"ID": "GameListContextMenuOpenDeviceSaveDirectoryToolTip",
"Translations": {
"ar_SA": "يفتح المجلد الذي يحتوي على حفظ الجهاز للتطبيق",
"de_DE": "Öffnet das Verzeichnis, welches den Geräte-Spielstände beinhaltet",
"el_GR": "Ανοίγει την τοποθεσία που περιέχει την Αποθήκευση Συσκευής της εφαρμογής",
"en_US": "Opens the directory which contains Application's Device Save",
"es_ES": "Abre la carpeta que contiene la partida guardada del sistema para esta aplicación",
"fr_FR": "Ouvre le dossier contenant la sauvegarde locale de lapplication",
"he_IL": "פותח את הספרייה המכילה את שמור המכשיר של היישום",
"it_IT": "Apre la cartella che contiene i dati di salvataggio del dispositivo",
"ja_JP": "アプリケーションのデバイスセーブデータを格納するディレクトリを開きます",
"ko_KR": "앱의 장치 저장이 포함된 디렉터리 열기",
"no_NO": "Åpner mappen som inneholder programmets lagringsenhet",
"pl_PL": "Otwiera katalog, który zawiera zapis urządzenia dla tej aplikacji",
"pt_BR": "Abre o diretório que contém saves do dispositivo para o usuário atual",
"ru_RU": "Открывает папку, содержащую сохраненные устройства",
"sv_SE": "Öppnar katalogen som innehåller applikationens sparade spel på enheten",
"th_TH": "เปิดไดเรกทอรี่ซึ่งมีบันทึกข้อมูลของอุปกรณ์ในแอปพลิเคชัน",
"tr_TR": "Uygulamanın Kullanıcı Cihaz Kaydı'nın bulunduğu dizini açar",
"uk_UA": "Відкриває теку, яка містить збережені пристрої",
"zh_CN": "打开储存游戏系统数据的目录",
"zh_TW": "開啟此應用程式的裝置存檔資料夾"
}
},
{
"ID": "GameListContextMenuOpenBcatSaveDirectory",
"Translations": {
@@ -2192,6 +2242,31 @@
"zh_TW": "開啟 BCAT 存檔資料夾"
}
},
{
"ID": "GameListContextMenuOpenBcatSaveDirectoryToolTip",
"Translations": {
"ar_SA": "‫يفتح المجلد الذي يحتوي على حفظ الـBCAT للتطبيق",
"de_DE": "Öffnet das Verzeichnis, welches den BCAT-Cache des Spiels beinhaltet",
"el_GR": "Ανοίγει την τοποθεσία που περιέχει την Αποθήκευση BCAT της εφαρμογής",
"en_US": "Opens the directory which contains Application's BCAT Save",
"es_ES": "Abrir la carpeta que contiene el guardado BCAT de esta aplicación",
"fr_FR": "Ouvre le dossier contenant la sauvegarde BCAT de lapplication",
"he_IL": "פותח את תקיית שמור ה-BCAT של היישום",
"it_IT": "Apre la cartella che contiene il salvataggio BCAT dell'applicazione",
"ja_JP": "アプリケーションの BCAT セーブデータを格納するディレクトリを開きます",
"ko_KR": "앱의 BCAT 저장이 포함된 디렉터리 열기",
"no_NO": "Åpner mappen som inneholder programmets BCAT-lagring",
"pl_PL": "Otwiera katalog, który zawiera zapis BCAT dla tej aplikacji",
"pt_BR": "Abre o diretório que contém saves BCAT para o usuário atual",
"ru_RU": "Открывает папку, содержащую сохраненные BCAT",
"sv_SE": "Öppnar katalogen som innehåller applikationens BCAT-sparningar",
"th_TH": "เปิดไดเรกทอรี่ซึ่งมีการบันทึกข้อมูลของ BCAT ในแอปพลิเคชัน",
"tr_TR": "Uygulamanın Kullanıcı BCAT Kaydı'nın bulunduğu dizini açar",
"uk_UA": "Відкриває теку, яка містить BCAT-збереження програми",
"zh_CN": "打开储存游戏 BCAT 数据的目录",
"zh_TW": "開啟此應用程式的 BCAT 存檔資料夾"
}
},
{
"ID": "GameListContextMenuManageTitleUpdates",
"Translations": {
@@ -2217,6 +2292,31 @@
"zh_TW": "管理遊戲更新"
}
},
{
"ID": "GameListContextMenuManageTitleUpdatesToolTip",
"Translations": {
"ar_SA": "يفتح نافذة إدارة تحديث اللُعبة",
"de_DE": "Öffnet den Spiel-Update-Manager",
"el_GR": "Ανοίγει το παράθυρο διαχείρισης Ενημερώσεων Παιχνιδιού",
"en_US": "Opens the Title Update management window",
"es_ES": "Abrir la ventana de gestión de actualizaciones de esta aplicación",
"fr_FR": "Ouvre la fenêtre de gestion des mises à jour du titre",
"he_IL": "פותח את חלון מנהל עדכוני המשחקים",
"it_IT": "Apre la finestra di gestione aggiornamenti del gioco",
"ja_JP": "タイトルのアップデート管理ウインドウを開きます",
"ko_KR": "타이틀 업데이트 관리 창 열기",
"no_NO": "Åpner vinduet Tittel - Oppdateringskontroll",
"pl_PL": "Otwiera okno zarządzania aktualizacjami danej aplikacji",
"pt_BR": "Abre a janela de gerenciamento de atualizações",
"ru_RU": "Открывает окно управления обновлениями приложения",
"sv_SE": "Öppnar spelets hanteringsfönster för uppdateringar",
"th_TH": "เปิดหน้าต่างการจัดการเวอร์ชั่นการอัพเดต",
"tr_TR": "Oyun Güncelleme Yönetim Penceresini Açar",
"uk_UA": "Відкриває меню керування оновленнями до гри (застосунку)",
"zh_CN": "打开游戏更新管理窗口",
"zh_TW": "開啟遊戲更新管理視窗"
}
},
{
"ID": "GameListContextMenuManageDlc",
"Translations": {
@@ -2242,6 +2342,31 @@
"zh_TW": "管理 DLC"
}
},
{
"ID": "GameListContextMenuManageDlcToolTip",
"Translations": {
"ar_SA": "يفتح نافذة إدارة المحتوي الإضافي",
"de_DE": "Öffnet den DLC-Manager",
"el_GR": "Ανοίγει το παράθυρο διαχείρισης DLC",
"en_US": "Opens the DLC management window",
"es_ES": "Abrir la ventana de gestión del DLC",
"fr_FR": "Ouvre la fenêtre de gestion des DLC",
"he_IL": "פותח את חלון מנהל הרחבות המשחקים",
"it_IT": "Apre la finestra di gestione dei DLC",
"ja_JP": "DLC管理ウインドウを開きます",
"ko_KR": "DLC 관리 창 열기",
"no_NO": "Åpner DLC håndteringsvinduet",
"pl_PL": "Otwiera okno zarządzania dodatkową zawartością",
"pt_BR": "Abre a janela de gerenciamento de DLCs",
"ru_RU": "Открывает окно управления DLC",
"sv_SE": "Öppnar DLC-hanteringsfönstret",
"th_TH": "เปิดหน้าต่างจัดการ DLC",
"tr_TR": "DLC yönetim penceresini açar",
"uk_UA": "Відкриває меню керування DLC",
"zh_CN": "打开 DLC 管理窗口",
"zh_TW": "開啟 DLC 管理視窗"
}
},
{
"ID": "GameListContextMenuCacheManagement",
"Translations": {
@@ -2323,7 +2448,7 @@
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Purge PPTC Cache",
"en_US": "Purge PPTC cache",
"es_ES": "",
"fr_FR": "Purger le cache PPTC",
"he_IL": "",
@@ -2442,6 +2567,31 @@
"zh_TW": "開啟 PPTC 資料夾"
}
},
{
"ID": "GameListContextMenuCacheManagementOpenPptcDirectoryToolTip",
"Translations": {
"ar_SA": "‫‫يفتح المجلد الذي يحتوي على ذاكرة التخزين المؤقت للترجمة المستمرة (PPTC) للتطبيق",
"de_DE": "Öffnet das Verzeichnis, das den PPTC-Cache der Anwendung beinhaltet",
"el_GR": "Ανοίγει την τοποθεσία που περιέχει τη προσωρινή μνήμη PPTC της εφαρμογής",
"en_US": "Opens the directory which contains Application's PPTC cache",
"es_ES": "Abrir la carpeta que contiene la caché de PPTC de esta aplicación",
"fr_FR": "Ouvre le dossier contenant le cache PPTC de lapplication",
"he_IL": "פותח את התקייה של מטמון ה-PPTC של האפליקציה",
"it_IT": "Apre la cartella che contiene la cache PPTC dell'applicazione",
"ja_JP": "アプリケーションの PPTC キャッシュを格納するディレクトリを開きます",
"ko_KR": "앱의 PPTC 캐시가 포함된 디렉터리 열기",
"no_NO": "Åpner mappen som inneholder programmets PPTC cache",
"pl_PL": "Otwiera katalog, który zawiera pamięć podręczną PPTC aplikacji",
"pt_BR": "Abre o diretório contendo os arquivos do cache PPTC",
"ru_RU": "Открывает папку, содержащую PPTC кэш приложений и игр",
"sv_SE": "Öppnar katalogen som innehåller applikationens PPTC-cache",
"th_TH": "เปิดไดเร็กทอรี่ของ แคช PPTC ในแอปพลิเคชัน",
"tr_TR": "Uygulamanın PPTC Önbelleğinin bulunduğu dizini açar",
"uk_UA": "Відкриває теку, яка містить PPTC кеш застосунку (гри)",
"zh_CN": "打开储存游戏 PPTC 缓存文件的目录",
"zh_TW": "開啟此應用程式的 PPTC 快取資料夾"
}
},
{
"ID": "GameListContextMenuCacheManagementOpenShaderCacheDirectory",
"Translations": {
@@ -2467,6 +2617,31 @@
"zh_TW": "開啟著色器快取資料夾"
}
},
{
"ID": "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip",
"Translations": {
"ar_SA": "يفتح المجلد الذي يحتوي على ذاكرة المظللات المؤقتة للتطبيق",
"de_DE": "Öffnet das Verzeichnis, das den Shader Cache der Anwendung beinhaltet",
"el_GR": "Ανοίγει την τοποθεσία που περιέχει την προσωρινή μνήμη Shader της εφαρμογής",
"en_US": "Opens the directory which contains Application's shader cache",
"es_ES": "Abrir la carpeta que contiene la caché de sombreadores de esta aplicación",
"fr_FR": "Ouvre le dossier contenant le cache des shaders de lapplication",
"he_IL": "פותח את תקיית מטמון ההצללות של היישום",
"it_IT": "Apre la cartella che contiene la cache degli shader dell'applicazione",
"ja_JP": "アプリケーションのシェーダーキャッシュを格納するディレクトリを開きます",
"ko_KR": "앱의 셰이더 캐시가 포함된 디렉터리 열기",
"no_NO": "Åpner mappen som inneholder Programmets shader cache",
"pl_PL": "Otwiera katalog, który zawiera pamięć podręczną cieni aplikacji",
"pt_BR": "Abre o diretório contendo os arquivos do cache de Shaders",
"ru_RU": "Открывает папку, содержащую кэш шейдеров приложений и игр",
"sv_SE": "Öppnar katalogen som innehåller applikationens shader cache",
"th_TH": "เปิดไดเรกทอรี่ของ แคช แสงเงา ในแอปพลิเคชัน",
"tr_TR": "Uygulamanın shader önbelleğinin bulunduğu dizini açar",
"uk_UA": "Відкриває теку, яка містить кеш шейдерів застосунку (гри)",
"zh_CN": "打开储存游戏着色器缓存文件的目录",
"zh_TW": "開啟此應用程式的著色器快取資料夾"
}
},
{
"ID": "GameListContextMenuExtractData",
"Translations": {
@@ -2942,6 +3117,31 @@
"zh_TW": "顯示遊戲資訊"
}
},
{
"ID": "GameListContextMenuShowGameDataToolTip",
"Translations": {
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Show stats & details about the currently selected game.",
"es_ES": "",
"fr_FR": "Afficher les statistiques et les détails sur le jeu actuellement sélectionné.",
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "그리드 보기 레이아웃에서 누락된 현재 선택된 게임에 대한 다양한 정보를 표시합니다.",
"no_NO": "Vis statistikk og detaljer om det valgte spillet.",
"pl_PL": "",
"pt_BR": "Exibe estatísticas e detalhes sobre o jogo selecionado.",
"ru_RU": "Показывать статистику и подробную информацию о выбранной игре.",
"sv_SE": "Visa statistik och detaljer om det aktuella spelet.",
"th_TH": "",
"tr_TR": "",
"uk_UA": "Показати статистику та деталі обраної гри.",
"zh_CN": "显示当前选定游戏的状态与详细信息。",
"zh_TW": "顯示目前已選擇遊戲的狀態及詳細資訊。"
}
},
{
"ID": "GameListContextMenuOpenModsDirectory",
"Translations": {
@@ -2967,6 +3167,31 @@
"zh_TW": "開啟模組資料夾"
}
},
{
"ID": "GameListContextMenuOpenModsDirectoryToolTip",
"Translations": {
"ar_SA": "يفتح المجلد الذي يحتوي على تعديلات‫(mods) التطبيق",
"de_DE": "Öffnet das Verzeichnis, welches Mods für die Spiele beinhaltet",
"el_GR": "",
"en_US": "Opens the directory which contains Application's Mods",
"es_ES": "Abre el directorio que contiene los Mods de la Aplicación.",
"fr_FR": "Ouvre le dossier contenant les mods de lapplication",
"he_IL": "פותח את התיקייה שמכילה מודים של האפליקציה",
"it_IT": "Apre la cartella che contiene le mod dell'applicazione",
"ja_JP": "アプリケーションの Mod データを格納するディレクトリを開きます",
"ko_KR": "앱의 모드가 포함된 디렉터리 열기",
"no_NO": "Åpner mappen som inneholder programmets modifikasjoner",
"pl_PL": "Otwiera katalog zawierający mody dla danej aplikacji",
"pt_BR": "Abre a pasta que contém os mods da aplicação",
"ru_RU": "Открывает папку, содержащую моды для приложений и игр",
"sv_SE": "Öppnar katalogen som innehåller applikationens Mods",
"th_TH": "เปิดไดเร็กทอรี่ Mods ของแอปพลิเคชัน",
"tr_TR": "",
"uk_UA": "Відкриває теку, яка містить модифікації застосунків (ігор)",
"zh_CN": "打开存放游戏 MOD 的目录",
"zh_TW": "開啟此應用程式模組的資料夾"
}
},
{
"ID": "GameListContextMenuOpenSdModsDirectory",
"Translations": {
@@ -2974,7 +3199,7 @@
"de_DE": "Atmosphere-Mod-Verzeichnis öffnen",
"el_GR": "",
"en_US": "Open Atmosphere Mods Directory",
"es_ES": "Abrir Directorio de Mods de Atmosphere",
"es_ES": "Abrir Directorio de Mods de Atmosphere\n\n\n\n\n\n",
"fr_FR": "Ouvrir le dossier des mods Atmosphère",
"he_IL": "פתח תיקיית מודים של Atmosphere",
"it_IT": "Apri la cartella delle mod Atmosphere",
@@ -3050,7 +3275,7 @@
"el_GR": "",
"en_US": "Check and Trim XCI File to Save Disk Space",
"es_ES": "Verificar y recortar archivo XCI para ahorrar espacio en disco",
"fr_FR": "Vérifier et réduire le fichier XCI pour économiser de lespace disque",
"fr_FR": "Vérifier et découper le fichier XCI pour économiser de lespace disque",
"he_IL": "",
"it_IT": "Controlla e riduci la dimensione del file XCI per risparmiare spazio su disco",
"ja_JP": "",
@@ -3773,7 +3998,7 @@
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Show Original UI Style (Requires Restart)",
"en_US": "Show Original UI Style (Requires restart)",
"es_ES": "",
"fr_FR": "Afficher le style dinterface original (redémarrage requis)",
"he_IL": "",
@@ -3798,23 +4023,23 @@
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Show the older Avalonia Ryujinx UI reminiscent of Ryujinx 1.1.1403. This is enabled by default on platforms that are not Windows.\n\nThe classic-style title bar is back and major window layout reworkings are reversed; such as the settings navigation placement above this tooltip.",
"en_US": "Show the older Avalonia Ryujinx UI reminiscent of Ryujinx 1.1.1403. This is enabled by default on platforms that are not Windows.\nThe classic-style title bar is back and major window layout reworkings are reversed; such as the settings navigation placement above this tooltip.",
"es_ES": "",
"fr_FR": "Afficher lancienne interface Avalonia Ryujinx, rappelant Ryujinx 1.1.1403. Cette option est activée par défaut sur les plateformes autres que Windows.\n\nLa barre de titre au style classique est de retour et les modifications majeures de la disposition des fenêtres sont annulées, comme le placement de la navigation des paramètres au-dessus de cette infobulle.",
"fr_FR": "Afficher lancienne interface Avalonia Ryujinx, rappelant Ryujinx 1.1.1403. Cette option est activée par défaut sur les plateformes autres que Windows.\nLa barre de titre au style classique est de retour et les modifications majeures de la disposition des fenêtres sont annulées, comme le placement de la navigation des paramètres au-dessus de cette infobulle.",
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "Ryujinx 1.1.1403을 연상시키는 이전 Avalonia Ryujinx UI를 표시합니다. 이 기능은 윈도가 아닌 플랫폼에서는 기본적으로 활성화됩니다.\n\n 클래식 스타일의 타이틀 바가 돌아왔고 주요 창 레이아웃 변경 사항이 원래대로 적용됩니다. 이 툴팁 위의 설정 탐색 배치와 같은 경우입니다.",
"no_NO": "Vis det eldre Avalonia Ryujinx-grensesnittet som minner om Ryujinx 1.1.1403. Dette er aktivert som standard på plattformer som ikke er Windows.\n\nTittellinjen i klassisk stil er tilbake, og store omarbeidinger av vindusoppsettet er reversert, for eksempel plasseringen av innstillingsnavigasjonen over dette verktøytipset.",
"ko_KR": "Ryujinx 1.1.1403을 연상시키는 이전 Avalonia Ryujinx UI를 표시합니다. 이 기능은 윈도가 아닌 플랫폼에서는 기본적으로 활성화됩니다.\n 클래식 스타일의 타이틀 바가 돌아왔고 주요 창 레이아웃 변경 사항이 원래대로 적용됩니다. 이 툴팁 위의 설정 탐색 배치와 같은 경우입니다.",
"no_NO": "Vis det eldre Avalonia Ryujinx-grensesnittet som minner om Ryujinx 1.1.1403. Dette er aktivert som standard på plattformer som ikke er Windows.\nTittellinjen i klassisk stil er tilbake, og store omarbeidinger av vindusoppsettet er reversert, for eksempel plasseringen av innstillingsnavigasjonen over dette verktøytipset.",
"pl_PL": "",
"pt_BR": "Mostrar a Interface Avalonia antiga do Ryujinx 1.1.1403. Esta versão é ativada por padrão nas plataformas que não sejam Windows.\n\nO estilo clássico da Barra de Título retorna e grande parte das mudanças do Layout de janela são revertidas; assim como as configurações de posicionamento da navegação acima dessa descrição.",
"ru_RU": "Показать старый пользовательский интерфейс Avalonia Ryujinx, напоминающий Ryujinx 1.1.1403. Включено по умолчанию на платформах, отличных от Windows.\n\nСтрока заголовка в классическом стиле вернётся на место, а основные изменения в оформлении окна будут отменены; например, расположение навигации по настройкам над этой всплывающей подсказкой.",
"sv_SE": "Visa det gamla Ryuijinx-gränssnittet baserat på Avalonia som påminner om version 1.1.1403. Detta är aktiverat som standard på plattformat som inte är Windows.\n\nDen klassiska titelfältet är tillbaka och de stora omarbetningarna av fönsterlayouten är omvända, till exempel placeringen av inställningsnavigeringen ovanför detta verktygstips.",
"pt_BR": "Mostrar a Interface Avalonia antiga do Ryujinx 1.1.1403. Esta versão é ativada por padrão nas plataformas que não sejam Windows. \nO estilo clássico da Barra de Título retorna e grande parte das mudanças do Layout de janela são revertidas; assim como as configurações de posicionamento da navegação acima dessa descrição.",
"ru_RU": "Показать старый пользовательский интерфейс Avalonia Ryujinx, напоминающий Ryujinx 1.1.1403. Включено по умолчанию на платформах, отличных от Windows.\nСтрока заголовка в классическом стиле вернётся на место, а основные изменения в оформлении окна будут отменены; например, расположение навигации по настройкам над этой всплывающей подсказкой.",
"sv_SE": "Visa det gamla Ryuijinx-gränssnittet baserat på Avalonia som påminner om version 1.1.1403. Detta är aktiverat som standard på plattformat som inte är Windows.\nDen klassiska titelfältet är tillbaka och de stora omarbetningarna av fönsterlayouten är omvända, till exempel placeringen av inställningsnavigeringen ovanför detta verktygstips.",
"th_TH": "",
"tr_TR": "",
"uk_UA": "Показати старий інтерфейс Avalonia Ryujinx, який був у Ryujinx 1.1.1403. Ця опція активна за замовчуванням на всіх інших, окрім Windows платформах.\n\nПовернеться класична панель заголовка, а всі суттєві зміни інтерфейсу будуть скасовані, зокрема горизонтальне розміщення навігації в налаштуваннях.",
"zh_CN": "显示旧的类似 Ryujinx 1.1.1403 的 Avalonia Ryujinx UI。在非 Windows 平台上默认启用此选项。\n\n经典样式的标题栏已回归并且恢复了对窗口布局的重大重构;例如在工具提示上方放置设置导航。",
"zh_TW": "顯示舊版 Ryujinx 1.1.1403 的 Avalonia UI 樣式。在非 Windows 平台預設啟用。\n\n經典樣式的標題欄已回歸,並且還原了對設定視窗佈局的大型重構:例如在工具提示上方設置導覽列。"
"uk_UA": "Показати старий інтерфейс Avalonia Ryujinx, який був у Ryujinx 1.1.1403. Ця опція активна за замовчуванням на всіх інших, окрім Windows платформах.\nПовернеться класична панель заголовка, а всі суттєві зміни інтерфейсу будуть скасовані, зокрема горизонтальне розміщення навігації в налаштуваннях.",
"zh_CN": "显示旧的类似 Ryujinx 1.1.1403 的 Avalonia Ryujinx UI。在非 Windows 平台上默认启用此选项。\n经典样式的标题栏已回归并且恢复了对窗口布局的重大重构;例如在工具提示上方放置设置导航。",
"zh_TW": "顯示舊版 Ryujinx 1.1.1403 的 Avalonia UI 樣式。在非 Windows 平台預設啟用。\n經典樣式的標題欄已回歸並且還原了對設定視窗佈局的大型重構例如在工具提示上方設置導覽列。"
}
},
{
@@ -4845,24 +5070,24 @@
{
"ID": "SettingsTabSystemEnableLowPowerPptc",
"Translations": {
"ar_SA": "",
"ar_SA": "Low-power PPTC",
"de_DE": "Kleinleistungs-PPTC",
"el_GR": "",
"en_US": "Low-Power PPTC",
"es_ES": "PPTC de bajo consumo",
"fr_FR": "PPTC de faible puissance",
"he_IL": "",
"it_IT": "PPTC a basso consumo energetico",
"ja_JP": "",
"el_GR": "Low-power PPTC",
"en_US": "Low-power PPTC cache",
"es_ES": "Cache PPTC de bajo consumo",
"fr_FR": "Cache PPTC de faible puissance",
"he_IL": "Low-power PPTC",
"it_IT": "Caricamento PPTC a basso consumo energetico",
"ja_JP": "Low-power PPTC",
"ko_KR": "저전력 PPTC 캐시",
"no_NO": "PPTC med lavt strømforbruk",
"pl_PL": "",
"pt_BR": "PPTC com Baixo Consumo de Energia",
"pl_PL": "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 แบบพลังงานตํ่า",
"tr_TR": "",
"uk_UA": "",
"tr_TR": "Low-power PPTC",
"uk_UA": "Low-power PPTC",
"zh_CN": "低功耗 PPTC 加载",
"zh_TW": "低功耗 PPTC"
}
@@ -4873,7 +5098,7 @@
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Turbo Mode Multiplier:",
"en_US": "Turbo Mode multiplier:",
"es_ES": "",
"fr_FR": "Multiplicateur du Mode Turbo :",
"he_IL": "",
@@ -4923,7 +5148,7 @@
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Turbo Mode is an emulator feature which effectively causes speed up or slow down when a game is not frame-rate sensitive.\nYou can toggle this feature in-game with a hotkey, configurable in Ryujinx Keyboard Hotkeys settings.\n\nLeave at 200 if unsure.",
"en_US": "Turbo mode is an emulator feature which effectively causes speed up or slow down when a game is not frame-rate sensitive.\nYou can toggle this feature in-game with a hotkey, configurable in Ryujinx Keyboard Hotkeys settings.\n\nLeave at 200 if unsure.",
"es_ES": "",
"fr_FR": "Le Mode Turbo est une fonctionnalité de lémulateur qui permet daccélérer ou de ralentir le jeu lorsque celui-ci nest pas sensible au taux de rafraîchissement.\nVous pouvez activer ou désactiver cette fonction en jeu via un raccourci clavier, configurable dans les paramètres des raccourcis clavier de Ryujinx.\n\nLaissez à 200 si vous nêtes pas sûr.",
"he_IL": "",
@@ -5121,23 +5346,23 @@
"ID": "SettingsTabSystemHacksNote",
"Translations": {
"ar_SA": "قد يتسبب في عدم الاستقرار",
"de_DE": "Kann Fehler verursachen",
"el_GR": "Μπορεί να προκαλέσουν αστάθεια",
"en_US": "May Cause Instability",
"es_ES": "Pueden causar inestabilidad",
"de_DE": " (Kann Fehler verursachen)",
"el_GR": " (Μπορεί να προκαλέσουν αστάθεια)",
"en_US": "May cause instability",
"es_ES": " (Pueden causar inestabilidad)",
"fr_FR": "Peut causer des instabilités",
"he_IL": "עלול לגרום לאי יציבות",
"it_IT": "Possono causare instabilità",
"ja_JP": "挙動が不安定になる可能性があります",
"ja_JP": " (挙動が不安定になる可能性があります)",
"ko_KR": "불안정성을 유발할 수 있음",
"no_NO": "Kan forårsake ustabilitet",
"pl_PL": "Mogą powodować niestabilność",
"pl_PL": " (mogą powodować niestabilność)",
"pt_BR": "Pode causar instabilidade",
"ru_RU": "Возможна нестабильная работа",
"sv_SE": "Kan orsaka instabilitet",
"th_TH": "อาจทำให้เกิดข้อผิดพลาดได้",
"tr_TR": "Dengesizlik oluşturabilir",
"uk_UA": "Може викликати нестабільність",
"tr_TR": " (dengesizlik oluşturabilir)",
"uk_UA": "оже викликати нестабільність)",
"zh_CN": "会导致模拟器不稳定",
"zh_TW": "可能導致模擬器不穩定"
}
@@ -5148,7 +5373,7 @@
"ar_SA": "استخدام تخطيط الذاكرة البديل (المطورين)",
"de_DE": "DRAM Größe:",
"el_GR": "Μέγεθος DRAM:",
"en_US": "DRAM Size:",
"en_US": "DRAM size:",
"es_ES": "Tamaño DRAM:",
"fr_FR": "Taille de la DRAM :",
"he_IL": "השתמש בפריסת זיכרון חלופית (נועד למפתחים)",
@@ -5323,7 +5548,7 @@
"ar_SA": "تخطي مربع حوار 'إدارة الملفات الشخصية للمستخدم'",
"de_DE": "Überspringen des Dialogs 'Benutzerprofile verwalten'",
"el_GR": "Παράκαμψη διαλόγου 'Διαχείριση Προφίλ _Χρηστών'",
"en_US": "Skip Dialog 'Manage User Profiles'",
"en_US": "Skip dialog 'Manage User Profiles'",
"es_ES": "Omitir el diálogo 'Gestionar perfiles de usuario'",
"fr_FR": "Ignorer la boîte de dialogue « Gérer les profils utilisateur »",
"he_IL": "דילוג על הדיאלוג 'נהל פרופילי משתמש'",
@@ -5598,7 +5823,7 @@
"ar_SA": "مخصص (لا ينصح به)",
"de_DE": "Benutzerdefiniert (nicht empfohlen)",
"el_GR": "Προσαρμοσμένο (Δεν συνιστάται)",
"en_US": "Custom (Not Recommended)",
"en_US": "Custom (Not recommended)",
"es_ES": "Personalizada (no recomendado)",
"fr_FR": "Personnalisée (non recommandée)",
"he_IL": "מותאם אישית (לא מומלץ)",
@@ -5698,7 +5923,7 @@
"ar_SA": "4x (2880p/4320p) (لا ينصح به)",
"de_DE": "4x (2880p/4320p) (Nicht empfohlen)",
"el_GR": "",
"en_US": "4x (2880p/4320p) (Not Recommended)",
"en_US": "4x (2880p/4320p) (Not recommended)",
"es_ES": "4x (2880p/4320p) (no recomendado)",
"fr_FR": "x4 (2880p/4320p) (non recommandé)",
"he_IL": "4x (2880p/4320p) (לא מומלץ)",
@@ -6273,7 +6498,7 @@
"ar_SA": "تحذير: سوف يقلل من الأداء",
"de_DE": "ACHTUNG: Wird die Leistung reduzieren",
"el_GR": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Θα μειώσει την απόδοση",
"en_US": "WARNING: Will Reduce Performance",
"en_US": "WARNING: Will reduce performance",
"es_ES": "ADVERTENCIA: Reducirá el rendimiento",
"fr_FR": "ATTENTION : Réduira les performances",
"he_IL": "אזהרה: יפחית ביצועים",
@@ -7195,7 +7420,7 @@
{
"ID": "ControllerSettingsControllerTypeJoyConRight",
"Translations": {
"ar_SA": "جوي كون اليمين",
"ar_SA": " جوي كون اليمين",
"de_DE": "Rechter Joy-Con",
"el_GR": "Δεξί JoyCon",
"en_US": "JoyCon Right",
@@ -8448,7 +8673,7 @@
"ar_SA": "استخدام الحركة المتوافقة مع CemuHook",
"de_DE": "CemuHook kompatible Bewegungssteuerung",
"el_GR": "Κίνηση συμβατή με CemuHook",
"en_US": "Use CemuHook Compatible Motion",
"en_US": "Use CemuHook compatible motion",
"es_ES": "Usar movimiento compatible con CemuHook",
"fr_FR": "Utiliser la détection de mouvements compatible CemuHook",
"he_IL": "השתמש בתנועת CemuHook תואמת ",
@@ -11232,7 +11457,7 @@
"ko_KR": "좌측 트리거 1",
"no_NO": "Venstre utløser 1",
"pl_PL": "",
"pt_BR": "Gatilho Esquerdo 1",
"pt_BR": " Gatilho Esquerdo 1",
"ru_RU": "Левый триггер 1",
"sv_SE": "Vänster avtryckare 1",
"th_TH": "",
@@ -11498,7 +11723,7 @@
"ar_SA": "اختر اسم مستعار",
"de_DE": "Wähle einen Spitznamen",
"el_GR": "Επιλέξτε ψευδώνυμο",
"en_US": "Choose a Nickname",
"en_US": "Choose a nickname",
"es_ES": "Escoge un apodo",
"fr_FR": "Choisir un pseudo",
"he_IL": "בחרו כינוי",
@@ -11548,7 +11773,7 @@
"ar_SA": "اختر صورة الملف الشخصي",
"de_DE": "Wähle ein Profilbild aus",
"el_GR": "Επιλέξτε μία Εικόνα Προφίλ",
"en_US": "Choose a Profile Image",
"en_US": "Choose a profile Image",
"es_ES": "Elige una imagen de perfil",
"fr_FR": "Choisir l'image du profil",
"he_IL": "בחרו תמונת פרופיל",
@@ -11773,7 +11998,7 @@
"ar_SA": "اختر اسم الملف الشخصي",
"de_DE": "Wähle den Profilnamen",
"el_GR": "Επιλογή Ονόματος Προφίλ",
"en_US": "Choose a Profile Name",
"en_US": "Choose the Profile Name",
"es_ES": "Introducir nombre de perfil",
"fr_FR": "Choisir un nom de profil",
"he_IL": "בחרו את שם הפרופיל",
@@ -12100,7 +12325,7 @@
"el_GR": "Απόκρυψη UI",
"en_US": "Hide UI",
"es_ES": "Ocultar interfaz",
"fr_FR": "Masquer l'interface",
"fr_FR": "Masquer l'interface utilisateur",
"he_IL": "הסתר ממשק משתמש ",
"it_IT": "Nascondi l'interfaccia",
"ja_JP": "UIを隠す",
@@ -12167,6 +12392,31 @@
"zh_TW": "加入/移除為我的最愛"
}
},
{
"ID": "GameListContextMenuToggleFavoriteToolTip",
"Translations": {
"ar_SA": "تبديل الحالة المفضلة للعبة",
"de_DE": "Aktiviert den Favoriten-Status des Spiels",
"el_GR": "Εναλλαγή της Κατάστασης Αγαπημένο του Παιχνιδιού",
"en_US": "Toggle Favorite status of Game",
"es_ES": "Marca o desmarca el juego como favorito",
"fr_FR": "Basculer le statut favori du jeu",
"he_IL": "למתג סטטוס העדפה של משחק",
"it_IT": "Segna il gioco come preferito",
"ja_JP": "ゲームをお気に入りに含めるかどうかを切り替えます",
"ko_KR": "게임의 즐겨찾기 상태 전환",
"no_NO": "Vis/Skjul favorittstatus for spillet",
"pl_PL": "Przełącz status Ulubionej Gry",
"pt_BR": "Marca ou desmarca o jogo como favorito",
"ru_RU": "Добавляет игру в избранное и помечает звёздочкой",
"sv_SE": "Växla favoritstatus för spelet",
"th_TH": "สลับสถานะเกมที่ชื่นชอบ",
"tr_TR": "Oyunu Favorilere Ekle/Çıkar",
"uk_UA": "Додати або вилучити гру з обраних",
"zh_CN": "切换游戏的收藏状态",
"zh_TW": "切換遊戲的我的最愛狀態"
}
},
{
"ID": "SettingsTabGeneralTheme",
"Translations": {
@@ -13400,7 +13650,7 @@
"el_GR": "Επιτυχής εγκατάσταση τύπων αρχείων!",
"en_US": "Successfully installed file types!",
"es_ES": "¡Tipos de archivos instalados con éxito!",
"fr_FR": "Types de fichiers installés avec succès !",
"fr_FR": "Types de fichiers installés avec succès!",
"he_IL": "סוגי קבצים הותקנו בהצלחה!",
"it_IT": "Tipi di file installati con successo!",
"ja_JP": "ファイル形式のインストールに成功しました!",
@@ -13450,7 +13700,7 @@
"el_GR": "Επιτυχής απεγκατάσταση τύπων αρχείων!",
"en_US": "Successfully uninstalled file types!",
"es_ES": "¡Tipos de archivos desinstalados con éxito!",
"fr_FR": "Types de fichiers désinstallés avec succès !",
"fr_FR": "Types de fichiers désinstallés avec succès!",
"he_IL": "סוגי קבצים הוסרו בהצלחה!",
"it_IT": "Tipi di file disinstallati con successo!",
"ja_JP": "ファイル形式のアンインストールに成功しました!",
@@ -13650,7 +13900,7 @@
"el_GR": "",
"en_US": "{0}: {1}",
"es_ES": "",
"fr_FR": "{0} : {1}",
"fr_FR": "",
"he_IL": "",
"it_IT": "",
"ja_JP": "",
@@ -14205,7 +14455,7 @@
"it_IT": "\n\nVuoi continuare?",
"ja_JP": "\n\n続けてよろしいですか?",
"ko_KR": "\n\n계속하시겠습니까?",
"no_NO": "\n\nVil du fortsette?",
"no_NO": "Vil du fortsette?",
"pl_PL": "\n\nCzy chcesz kontynuować?",
"pt_BR": "\n\nDeseja continuar?",
"ru_RU": "\n\nПродолжить?",
@@ -16348,7 +16598,7 @@
"ar_SA": "يجعل وضع تركيب بالمنصة النظام الذي تمت محاكاته بمثابة جهاز نينتندو سويتش الذي تم تركيبه بالمنصة. يؤدي هذا إلى تحسين الدقة الرسومية في معظم الألعاب. على العكس من ذلك، سيؤدي تعطيل هذا إلى جعل النظام الذي تمت محاكاته يعمل كجهاز نينتندو سويتش محمول، مما يقلل من جودة الرسومات.\n\nقم بتكوين عناصر تحكم اللاعب 1 إذا كنت تخطط لاستخدام وضع تركيب بالمنصة؛ قم بتكوين عناصر التحكم المحمولة إذا كنت تخطط لاستخدام الوضع المحمول.\n\nاتركه مشغل إذا لم تكن متأكدا.",
"de_DE": "Im gedockten Modus verhält sich das emulierte System wie eine Nintendo Switch im TV Modus. Dies verbessert die grafische Qualität der meisten Spiele. Umgekehrt führt die Deaktivierung dazu, dass sich das emulierte System wie eine Nintendo Switch im Handheld Modus verhält, was die Grafikqualität beeinträchtigt.\n\nKonfiguriere das Eingabegerät für Spieler 1, um im Docked Modus zu spielen; konfiguriere das Controllerprofil via der Handheld Option, wenn geplant wird den Handheld Modus zu nutzen.\n\nIm Zweifelsfall AN lassen.",
"el_GR": "Ενεργοποιήστε ή απενεργοποιήστε τη λειτουργία σύνδεσης",
"en_US": "Docked mode makes the emulated system behave as a docked Nintendo Switch. This improves graphical fidelity in most games. Conversely, disabling this will make the emulated system behave as a handheld Nintendo Switch, reducing graphics quality.\n\nConfigure Player 1 controls if planning to use docked mode; configure handheld controls if planning to use handheld mode.\n\nLeave ON if unsure.",
"en_US": "Docked mode makes the emulated system behave as a docked Nintendo Switch. This improves graphical fidelity in most games. Conversely, disabling this will make the emulated system behave as a handheld Nintendo Switch, reducing graphics quality.\n\nConfigure player 1 controls if planning to use docked mode; configure handheld controls if planning to use handheld mode.\n\nLeave ON if unsure.",
"es_ES": "El modo dock o modo TV hace que la consola emulada se comporte como una Nintendo Switch en su dock. Esto mejora la calidad gráfica en la mayoría de los juegos. Del mismo modo, si lo desactivas, el sistema emulado se comportará como una Nintendo Switch en modo portátil, reduciendo la cálidad de los gráficos.\n\nConfigura los controles de \"Jugador\" 1 si planeas jugar en modo dock/TV; configura los controles de \"Portátil\" si planeas jugar en modo portátil.\n\nActívalo si no sabes qué hacer.",
"fr_FR": "Le mode docké fait que le système émulé se comporte comme une Nintendo Switch en mode dock. Cela améliore la qualité graphique dans la plupart des jeux. À linverse, désactiver ce mode fera que le système émulé se comporte comme une Nintendo Switch en mode portable, ce qui réduit la qualité graphique.\n\nConfigurez les contrôles du joueur 1 si vous prévoyez dutiliser le mode docké ; configurez les contrôles pour le mode portable si vous comptez utiliser ce dernier.\n\nLaissez ACTIVÉ si vous nêtes pas sûr..",
"he_IL": "מצב עגינה גורם למערכת המדומה להתנהג כ-נינטנדו סוויץ' בתחנת עגינתו. זה משפר את הנאמנות הגרפית ברוב המשחקים.\n לעומת זאת, השבתה של תכונה זו תגרום למערכת המדומה להתנהג כ- נינטנדו סוויץ' נייד, ולהפחית את איכות הגרפיקה.\n\nהגדירו את שלט שחקן 1 אם אתם מתכננים להשתמש במצב עגינה; הגדירו את פקדי כף היד אם אתם מתכננים להשתמש במצב נייד.\n\nמוטב להשאיר דלוק אם אתם לא בטוחים.",
@@ -17159,7 +17409,7 @@
"pl_PL": "Wyświetla komunikaty dziennika informacyjnego w konsoli. Nie wpływa na wydajność.",
"pt_BR": "Imprime mensagens de log de informações no console. Não afeta o desempenho.",
"ru_RU": "Включает вывод сообщений информационного журнала в консоль. Не влияет на производительность.",
"sv_SE": "Skriver ut informationsloggmeddelanden i konsollen. Påverkar inte prestandan.",
"sv_SE": "Skriver ut informationsloggmeddelanden i konsollen. Påverkar inte prestandan.",
"th_TH": "พิมพ์ข้อความบันทึกข้อมูลในคอนโซล จะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงาน",
"tr_TR": "Bilgi log mesajlarını konsola yazdırır. Performansı etkilemez.",
"uk_UA": "Виводить повідомлення журналу інформації (info log) в консоль. Не впливає на продуктивність.",
@@ -19823,7 +20073,7 @@
"ar_SA": "كل لوحات المفاتيح",
"de_DE": "Alle Tastaturen",
"el_GR": "Όλα τα πληκτρολόγια",
"en_US": "All Keyboards",
"en_US": "All keyboards",
"es_ES": "Todos los teclados",
"fr_FR": "Tous les claviers",
"he_IL": "כל המקלדות",
@@ -21823,7 +22073,7 @@
"ar_SA": "زيادة الدقة:",
"de_DE": "Auflösung erhöhen:",
"el_GR": "Αύξηση της ανάλυσης:",
"en_US": "Increase Resolution:",
"en_US": "Increase resolution:",
"es_ES": "Aumentar la resolución:",
"fr_FR": "Augmenter la résolution :",
"he_IL": "שפר רזולוציה:",
@@ -21848,7 +22098,7 @@
"ar_SA": "خفض الدقة:",
"de_DE": "Auflösung verringern:",
"el_GR": "Μείωση της ανάλυσης:",
"en_US": "Decrease Resolution:",
"en_US": "Decrease resolution:",
"es_ES": "Disminuir la resolución:",
"fr_FR": "Diminuer la résolution :",
"he_IL": "הפחת רזולוציה:",
@@ -23698,7 +23948,7 @@
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Enable Custom Refresh Rate (Experimental)",
"en_US": "Enable custom refresh rate (Experimental)",
"es_ES": "",
"fr_FR": "Activer le taux de rafraîchissement customisé (Expérimental)",
"he_IL": "",
@@ -23850,7 +24100,7 @@
"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": "",
"fr_FR": "Permet à l'utilisateur de spécifier un taux de rafraîchissement émulé. Dans certains jeux, ceci pourrait accélérer ou ralentir le taux de logique du gameplay. Dans d'autre titres, cela permettrait limiter le FPS à un multiple du taux de rafraîchissement, ou conduire à un comportement imprévisible. Ceci est une fonctionnalité expérimentale, avec aucune garanties pour comment le gameplay sera affecté. \n\nLaisser DÉSACTIVER en cas de doute.",
"fr_FR": "Permet à l'utilisateur de spécifier un taux de rafraîchissement émulé. Dans certains jeux, ceci pourrait accélérer ou ralentir le taux de logique du gameplay. Dans d'autre titres, cela permettrait limiter le FPS à un multiple du taux de rafraîchissement, ou conduire à un comportement imprévisible. Ceci est une fonctionnalité expérimentale, avec aucune garanties pour comment le gameplay sera affecté. \n\nLaisser désactiver en cas de doute.",
"he_IL": "",
"it_IT": "Consente all'utente di specificare una frequenza di aggiornamento emulata. In alcuni titoli potrebbe aumentare o diminuire la velocità del gameplay, mentre in altri potrebbe consentire di limitare il framerate a un multiplo della frequenza di aggiornamento, o causare comportamenti imprevedibili. Questa funzionalità è sperimentale, e non ci sono certezze sul modo in cui influenzerà il gameplay.\n\nNel dubbio, lascia l'opzione disattivata.",
"ja_JP": "",
@@ -23998,7 +24248,7 @@
"ar_SA": "",
"de_DE": "VSync-Modus umschalten:",
"el_GR": "",
"en_US": "Toggle VSync Mode:",
"en_US": "Toggle VSync mode:",
"es_ES": "",
"fr_FR": "Basculer le mode VSync :",
"he_IL": "",
@@ -24023,7 +24273,7 @@
"ar_SA": "",
"de_DE": "Benutzerdefinierte Bildwiederholfrequenz erhöhen:",
"el_GR": "",
"en_US": "Raise Custom Refresh Rate",
"en_US": "Raise custom refresh rate",
"es_ES": "",
"fr_FR": "Augmenter le taux de rafraîchissement customisé :",
"he_IL": "",
@@ -24048,7 +24298,7 @@
"ar_SA": "",
"de_DE": "Benutzerdefinierte Bildwiederholfrequenz senken:",
"el_GR": "",
"en_US": "Lower Custom Refresh Rate:",
"en_US": "Lower custom refresh rate:",
"es_ES": "",
"fr_FR": "Baisser le taux de rafraîchissement customisé :",
"he_IL": "",
@@ -24073,7 +24323,7 @@
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Turbo Mode:",
"en_US": "Turbo mode:",
"es_ES": "",
"fr_FR": "Mode Turbo :",
"he_IL": "",
@@ -24123,7 +24373,7 @@
"ar_SA": "",
"de_DE": "",
"el_GR": "",
"en_US": "Only While Pressed",
"en_US": "Only while pressed",
"es_ES": "",
"fr_FR": "Uniquement en appuyant",
"he_IL": "",

View File

@@ -188,8 +188,6 @@
01003DD00BFEE000,"Airheart - Tales of broken Wings",,playable,2021-02-26 15:20:27
01007F100DE52000,"Akane",nvdec,playable,2022-07-21 00:12:18
01009A800F0C8000,"Akash: Path of the Five",gpu;nvdec,ingame,2020-12-14 22:33:12
01009E8012976000,"AKIBA'S TRIP: Hellbound & Debriefed",,playable,2025-07-30 23:22:47
0100D74019A0E000,"AKIBA'S TRIP: Undead & Undressed Director's Cut",,playable,2025-07-31 13:58:42
010053100B0EA000,"Akihabara - Feel the Rhythm Remixed",,playable,2021-02-22 14:39:35
0100D4C00EE0C000,"Akuarium",slow,playable,2020-12-12 23:43:36
010026E00FEBE000,"Akuto: Showdown",,playable,2020-08-04 19:43:27
@@ -1097,7 +1095,6 @@
0100F9600E746000,"ESP Ra.De. Psi",audio;slow,ingame,2024-03-07 15:05:08
010073000FE18000,"Esports powerful pro yakyuu 2020",gpu;crash;Needs More Attention,ingame,2024-04-29 05:34:14
01004F9012FD8000,"Estranged: The Departure",nvdec;UE4,playable,2022-10-24 10:37:58
010018f01e0a0000,"Eternights",,playable,2025-07-30 12:10:24
0100CB900B498000,"Eternum Ex",,playable,2021-01-13 20:28:32
010092501EB2C000,"Europa (Demo)",gpu;crash;UE4,ingame,2024-04-23 10:47:12
01007BE0160D6000,"EVE ghost enemies",gpu,ingame,2023-01-14 03:13:30
@@ -1243,8 +1240,6 @@
010003F00BD48000,"Friday the 13th: Killer Puzzle",,playable,2021-01-28 01:33:38
010092A00C4B6000,"Friday the 13th: The Game Ultimate Slasher Edition",nvdec;online-broken;UE4,playable,2022-09-06 17:33:27
0100F200178F4000,"FRONT MISSION 1st: Remake",,playable,2023-06-09 07:44:24
0100c4e018a24000,"FRONT MISSION 2: Remake",,playable,2025-07-30 12:11:23
01007E6019872000,"FRONT MISSION 3: Remake",,playable,2025-07-30 12:12:02
0100861012474000,"Frontline Zed",,playable,2020-10-03 12:55:59
0100B5300B49A000,"Frost",,playable,2022-07-27 12:00:36
010038A007AA4000,"FruitFall Crush",,playable,2020-10-20 11:33:33
@@ -1523,7 +1518,6 @@
010095C016C14000,"Iridium",,playable,2022-08-05 23:19:53
0100AD300B786000,"Iris School of Wizardry -Vinculum Hearts-",,playable,2022-12-05 13:11:15
0100945012168000,"Iris.Fall",nvdec,playable,2022-10-18 13:40:22
010059801B736000,"IronFall: Invasion",,playable,2025-07-30 11:42:30
01005270118D6000,"Iron Wings",slow,ingame,2022-08-07 08:32:57
01004DB003E6A000,"IRONCAST",,playable,2021-01-13 13:54:29
0100E5700CD56000,"Irony Curtain: From Matryoshka with Love",,playable,2021-06-04 20:12:37
@@ -2312,7 +2306,6 @@
010077B00BDD8000,"Professional Farmer: Nintendo Switch™ Edition",slow,playable,2020-12-16 13:38:19
010018300C83A000,"Professor Lupo and his Horrible Pets",,playable,2020-06-12 00:08:45
0100D1F0132F6000,"Professor Lupo: Ocean",,playable,2021-04-14 16:33:33
0100c3a017834000,"Prodeus",,playable,2025-07-30 12:07:52
0100BBD00976C000,"Project Highrise: Architect's Edition",,playable,2022-08-10 17:19:12
0100ACE00DAB6000,"Project Nimbus: Complete Edition",nvdec;UE4;vulkan-backend-bug,playable,2022-08-10 17:35:43
01002980140F6000,"Project TRIANGLE STRATEGY™ Debut Demo",UE4;demo,playable,2022-10-24 21:40:27
@@ -2775,7 +2768,7 @@
0100E6B0115FC000,"Star99",online,menus,2021-11-26 14:18:51
01002100137BA000,"Stardash",,playable,2021-01-21 16:31:19
0100E65002BB8000,"Stardew Valley",online-broken;ldn-untested,playable,2024-02-14 03:11:19
01002CC003FE6000,"Starlink: Battle for Atlas™ Digital Edition",,playable,2025-07-30 12:09:37
01002CC003FE6000,"Starlink: Battle for Atlas™ Digital Edition",services-horizon;crash;Needs Update,nothing,2024-05-05 17:25:11
010098E010FDA000,"Starlit Adventures Golden Stars",,playable,2020-11-21 12:14:43
01001BB00AC26000,"STARSHIP AVENGER Operation: Take Back Earth",,playable,2021-01-12 15:52:55
010000700A572000,"State of Anarchy: Master of Mayhem",nvdec,playable,2021-01-12 19:00:05
@@ -2983,7 +2976,6 @@
0100C2E0129A6000,"The Executioner",nvdec,playable,2021-01-23 00:31:28
01006050114D4000,"The Experiment: Escape Room",gpu,ingame,2022-09-30 13:20:35
0100B5900DFB2000,"The Eyes of Ara",,playable,2022-09-16 14:44:06
0100BA5013E52000,"The Falconeer: Warrior Edition",,playable,2025-07-30 12:04:50
01002DD00AF9E000,"The Fall",gpu,ingame,2020-05-31 23:31:16
01003E5002320000,"The Fall Part 2: Unbound",,playable,2021-11-06 02:18:08
0100CDC00789E000,"The Final Station",nvdec,playable,2022-08-22 15:54:39
@@ -3206,7 +3198,6 @@
010000400F582000,"TT Isle of Man Ride on the Edge 2",gpu;nvdec;online-broken,ingame,2022-09-30 22:13:05
0100752011628000,"TTV2",,playable,2020-11-27 13:21:36
0100AFE00452E000,"Tumblestone",,playable,2021-01-07 17:49:20
0100D1A01D7BA000,"Turbo Overkill",,playable,2025-07-30 12:08:57
010085500D5F6000,"Turok",gpu,ingame,2021-06-04 13:16:24
0100CDC00D8D6000,"Turok 2: Seeds of Evil",gpu;vulkan,ingame,2022-09-12 17:50:05
010004B0130C8000,"Turrican Flashback",audout,playable,2021-08-30 10:07:56
@@ -3230,8 +3221,6 @@
0100592005164000,"UNBOX: Newbie's Adventure",UE4,playable,2022-08-29 13:12:56
01002D900C5E4000,"Uncanny Valley",nvdec,playable,2021-06-04 13:28:45
010076F011F54000,"Undead & Beyond",nvdec,playable,2022-10-04 09:11:18
01009B700D0B8000,"Undead Horde",,playable,2025-07-30 12:05:05
0100FC301A878000,"Undead Horde 2: Necropolis",,playable,2025-07-30 12:06:07
01008F3013E4E000,"Under Leaves",,playable,2021-05-22 18:13:58
010080B00AD66000,"Undertale",,playable,2022-08-31 17:31:46
01008F80049C6000,"Unepic",,playable,2024-01-15 17:03:00
1 title_id game_name labels status last_updated
188 01003DD00BFEE000 Airheart - Tales of broken Wings playable 2021-02-26 15:20:27
189 01007F100DE52000 Akane nvdec playable 2022-07-21 00:12:18
190 01009A800F0C8000 Akash: Path of the Five gpu;nvdec ingame 2020-12-14 22:33:12
01009E8012976000 AKIBA'S TRIP: Hellbound & Debriefed playable 2025-07-30 23:22:47
0100D74019A0E000 AKIBA'S TRIP: Undead & Undressed Director's Cut playable 2025-07-31 13:58:42
191 010053100B0EA000 Akihabara - Feel the Rhythm Remixed playable 2021-02-22 14:39:35
192 0100D4C00EE0C000 Akuarium slow playable 2020-12-12 23:43:36
193 010026E00FEBE000 Akuto: Showdown playable 2020-08-04 19:43:27
1095 0100F9600E746000 ESP Ra.De. Psi audio;slow ingame 2024-03-07 15:05:08
1096 010073000FE18000 Esports powerful pro yakyuu 2020 gpu;crash;Needs More Attention ingame 2024-04-29 05:34:14
1097 01004F9012FD8000 Estranged: The Departure nvdec;UE4 playable 2022-10-24 10:37:58
010018f01e0a0000 Eternights playable 2025-07-30 12:10:24
1098 0100CB900B498000 Eternum Ex playable 2021-01-13 20:28:32
1099 010092501EB2C000 Europa (Demo) gpu;crash;UE4 ingame 2024-04-23 10:47:12
1100 01007BE0160D6000 EVE ghost enemies gpu ingame 2023-01-14 03:13:30
1240 010003F00BD48000 Friday the 13th: Killer Puzzle playable 2021-01-28 01:33:38
1241 010092A00C4B6000 Friday the 13th: The Game Ultimate Slasher Edition nvdec;online-broken;UE4 playable 2022-09-06 17:33:27
1242 0100F200178F4000 FRONT MISSION 1st: Remake playable 2023-06-09 07:44:24
0100c4e018a24000 FRONT MISSION 2: Remake playable 2025-07-30 12:11:23
01007E6019872000 FRONT MISSION 3: Remake playable 2025-07-30 12:12:02
1243 0100861012474000 Frontline Zed playable 2020-10-03 12:55:59
1244 0100B5300B49A000 Frost playable 2022-07-27 12:00:36
1245 010038A007AA4000 FruitFall Crush playable 2020-10-20 11:33:33
1518 010095C016C14000 Iridium playable 2022-08-05 23:19:53
1519 0100AD300B786000 Iris School of Wizardry -Vinculum Hearts- playable 2022-12-05 13:11:15
1520 0100945012168000 Iris.Fall nvdec playable 2022-10-18 13:40:22
010059801B736000 IronFall: Invasion playable 2025-07-30 11:42:30
1521 01005270118D6000 Iron Wings slow ingame 2022-08-07 08:32:57
1522 01004DB003E6A000 IRONCAST playable 2021-01-13 13:54:29
1523 0100E5700CD56000 Irony Curtain: From Matryoshka with Love playable 2021-06-04 20:12:37
2306 010077B00BDD8000 Professional Farmer: Nintendo Switch™ Edition slow playable 2020-12-16 13:38:19
2307 010018300C83A000 Professor Lupo and his Horrible Pets playable 2020-06-12 00:08:45
2308 0100D1F0132F6000 Professor Lupo: Ocean playable 2021-04-14 16:33:33
0100c3a017834000 Prodeus playable 2025-07-30 12:07:52
2309 0100BBD00976C000 Project Highrise: Architect's Edition playable 2022-08-10 17:19:12
2310 0100ACE00DAB6000 Project Nimbus: Complete Edition nvdec;UE4;vulkan-backend-bug playable 2022-08-10 17:35:43
2311 01002980140F6000 Project TRIANGLE STRATEGY™ Debut Demo UE4;demo playable 2022-10-24 21:40:27
2768 0100E6B0115FC000 Star99 online menus 2021-11-26 14:18:51
2769 01002100137BA000 Stardash playable 2021-01-21 16:31:19
2770 0100E65002BB8000 Stardew Valley online-broken;ldn-untested playable 2024-02-14 03:11:19
2771 01002CC003FE6000 Starlink: Battle for Atlas™ Digital Edition services-horizon;crash;Needs Update playable nothing 2025-07-30 12:09:37 2024-05-05 17:25:11
2772 010098E010FDA000 Starlit Adventures Golden Stars playable 2020-11-21 12:14:43
2773 01001BB00AC26000 STARSHIP AVENGER Operation: Take Back Earth playable 2021-01-12 15:52:55
2774 010000700A572000 State of Anarchy: Master of Mayhem nvdec playable 2021-01-12 19:00:05
2976 0100C2E0129A6000 The Executioner nvdec playable 2021-01-23 00:31:28
2977 01006050114D4000 The Experiment: Escape Room gpu ingame 2022-09-30 13:20:35
2978 0100B5900DFB2000 The Eyes of Ara playable 2022-09-16 14:44:06
0100BA5013E52000 The Falconeer: Warrior Edition playable 2025-07-30 12:04:50
2979 01002DD00AF9E000 The Fall gpu ingame 2020-05-31 23:31:16
2980 01003E5002320000 The Fall Part 2: Unbound playable 2021-11-06 02:18:08
2981 0100CDC00789E000 The Final Station nvdec playable 2022-08-22 15:54:39
3198 010000400F582000 TT Isle of Man Ride on the Edge 2 gpu;nvdec;online-broken ingame 2022-09-30 22:13:05
3199 0100752011628000 TTV2 playable 2020-11-27 13:21:36
3200 0100AFE00452E000 Tumblestone playable 2021-01-07 17:49:20
0100D1A01D7BA000 Turbo Overkill playable 2025-07-30 12:08:57
3201 010085500D5F6000 Turok gpu ingame 2021-06-04 13:16:24
3202 0100CDC00D8D6000 Turok 2: Seeds of Evil gpu;vulkan ingame 2022-09-12 17:50:05
3203 010004B0130C8000 Turrican Flashback audout playable 2021-08-30 10:07:56
3221 0100592005164000 UNBOX: Newbie's Adventure UE4 playable 2022-08-29 13:12:56
3222 01002D900C5E4000 Uncanny Valley nvdec playable 2021-06-04 13:28:45
3223 010076F011F54000 Undead & Beyond nvdec playable 2022-10-04 09:11:18
01009B700D0B8000 Undead Horde playable 2025-07-30 12:05:05
0100FC301A878000 Undead Horde 2: Necropolis playable 2025-07-30 12:06:07
3224 01008F3013E4E000 Under Leaves playable 2021-05-22 18:13:58
3225 010080B00AD66000 Undertale playable 2022-08-31 17:31:46
3226 01008F80049C6000 Unepic playable 2024-01-15 17:03:00

View File

@@ -73,6 +73,7 @@
<PackageReference Include="Silk.NET.Vulkan.Extensions.EXT" />
<PackageReference Include="Silk.NET.Vulkan.Extensions.KHR" />
<PackageReference Include="SPB" />
<PackageReference Include="Starscript.Net"/>
<PackageReference Include="SharpZipLib" />
</ItemGroup>

View File

@@ -14,6 +14,7 @@ using LibHac.Tools.FsSystem.NcaUtils;
using Ryujinx.Ava.Common.Models;
using Ryujinx.Ava.Systems.Configuration;
using Ryujinx.Ava.Systems.Configuration.System;
using Ryujinx.Ava.Systems.Starscript;
using Ryujinx.Ava.Utilities;
using Ryujinx.Common;
using Ryujinx.Common.Configuration;
@@ -25,6 +26,7 @@ using Ryujinx.HLE.HOS.SystemState;
using Ryujinx.HLE.Loaders.Npdm;
using Ryujinx.HLE.Loaders.Processes.Extensions;
using Ryujinx.HLE.Utilities;
using Starscript;
using System;
using System.Collections.Generic;
using System.IO;
@@ -41,7 +43,7 @@ using TimeSpan = System.TimeSpan;
namespace Ryujinx.Ava.Systems.AppLibrary
{
public class ApplicationLibrary
public class ApplicationLibrary : IStarscriptObject
{
public Language DesiredLanguage { get; set; }
public event EventHandler<ApplicationCountUpdatedEventArgs> ApplicationCountUpdated;
@@ -1611,5 +1613,14 @@ namespace Ryujinx.Ava.Systems.AppLibrary
ApplicationData newApplication = newApplications.First(it => it.IdBase == appIdBase);
_applications.AddOrUpdate(newApplication);
}
private ValueMap _starscriptMap;
public ValueMap ToStarscript()
{
_starscriptMap ??= StarscriptHelper.Wrap(this);
return _starscriptMap;
}
}
}

View File

@@ -0,0 +1,29 @@
using Ryujinx.Ava.Systems.AppLibrary;
using Ryujinx.Common;
using Starscript;
namespace Ryujinx.Ava.Systems.Starscript
{
public static class RyujinxStarscript
{
public static readonly StarscriptHypervisor Hypervisor = StarscriptHypervisor.Create().WithStandardLibrary(true);
static RyujinxStarscript()
{
Hypervisor.Set("ryujinx.releaseChannel",
ReleaseInformation.IsCanaryBuild
? "Canary"
: ReleaseInformation.IsReleaseBuild
? "Stable"
: "Custom");
Hypervisor.Set("ryujinx.version", Program.Version);
Hypervisor.Set("appLibrary", RyujinxApp.MainWindow.ApplicationLibrary);
Hypervisor.Set("currentApplication", () =>
RyujinxApp.MainWindow.ApplicationLibrary.FindApplication(
RyujinxApp.MainWindow.ViewModel.AppHost?.ApplicationId ?? 0,
out ApplicationData appData)
? StarscriptHelper.Wrap(appData)
: Value.Null);
}
}
}

View File

@@ -0,0 +1,68 @@
using Gommon;
using Ryujinx.Ava.Systems.AppLibrary;
using Starscript;
using System;
namespace Ryujinx.Ava.Systems.Starscript
{
public static class StarscriptHelper
{
public static ValueMap Wrap(ApplicationLibrary appLib)
{
ValueMap lMap = new();
lMap.Set("appCount", () => appLib.Applications.Count);
lMap.Set("dlcCount", () => appLib.DownloadableContents.Count);
lMap.Set("updateCount", () => appLib.TitleUpdates.Count);
lMap.Set("has", ctx =>
{
ulong titleId;
try
{
titleId = ctx.Constrain(Constraint.ExactlyOneArgument).NextString(1).ToULong();
}
catch (FormatException)
{
throw ctx.Error(
$"Invalid input to {ctx.FormattedName}; input must be a hexadecimal number in a string.");
}
return appLib.FindApplication(titleId, out _);
});
lMap.Set("get", ctx =>
{
ulong titleId;
try
{
titleId = ctx.Constrain(Constraint.ExactlyOneArgument).NextString(1).ToULong();
}
catch (FormatException)
{
throw ctx.Error(
$"Invalid input to {ctx.FormattedName}; input must be a hexadecimal number in a string.");
}
return appLib.FindApplication(titleId,
out ApplicationData applicationData)
? Wrap(applicationData)
: null;
});
return lMap;
}
public static ValueMap Wrap(ApplicationData appData)
{
ValueMap aMap = new();
aMap.Set("name", appData.Name);
aMap.Set("version", appData.Version);
aMap.Set("developer", appData.Developer);
aMap.Set("fileExtension", appData.FileExtension);
aMap.Set("fileSize", appData.FileSizeString);
aMap.Set("hasLdnGames", appData.HasLdnGames);
aMap.Set("timePlayed", appData.TimePlayedString);
aMap.Set("isFavorite", appData.Favorite);
return aMap;
}
}
}

View File

@@ -0,0 +1,21 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="using:Ryujinx.Ava.Systems.Starscript"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Ryujinx.Ava.Systems.Starscript.StarscriptTextBox"
x:DataType="local:StarscriptTextBoxViewModel">
<StackPanel Spacing="10">
<TextBlock Text="{Binding ErrorMessage}" IsVisible="{Binding HasError}"/>
<TextBlock Text="{Binding CurrentScriptResult}" IsVisible="{Binding !HasError}"/>
<AutoCompleteBox Name="InputBox"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
FilterMode="Custom"
MinimumPrefixLength="0"
MaxDropDownHeight="400">
</AutoCompleteBox>
</StackPanel>
</UserControl>

View File

@@ -0,0 +1,87 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Styling;
using FluentAvalonia.UI.Controls;
using Humanizer;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.UI.Controls;
using Ryujinx.Ava.UI.Helpers;
using Starscript;
using Starscript.Internal;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Ryujinx.Ava.Systems.Starscript
{
public partial class StarscriptTextBox : RyujinxControl<StarscriptTextBoxViewModel>
{
public IReadOnlyList<string> CurrentSuggestions => ViewModel.CurrentSuggestions;
public ParserResult CurrentScriptSource => ViewModel.CurrentScriptSource;
public Exception Exception => ViewModel.Exception;
public Script CurrentScript => ViewModel.CurrentScript;
public StringSegment CurrentScriptResult => ViewModel.CurrentScriptResult;
public StarscriptTextBox()
{
InitializeComponent();
InputBox.AsyncPopulator = GetSuggestionsAsync;
InputBox.MinimumPopulateDelay = 0.Seconds();
InputBox.TextFilter = (_, _) => true;
InputBox.TextSelector = (text, suggestion) =>
{
if (text is not null && suggestion is null)
return text;
if (text is null && suggestion is not null)
return suggestion;
// ReSharper disable once ConditionIsAlwaysTrueOrFalse
if (text is null && suggestion is null)
return string.Empty;
var sb = new StringBuilder(text.Length + suggestion.Length + 1);
sb.Append(text);
for (int i = 0; i < suggestion.Length - 1; i++)
{
if (text.EndsWith(suggestion[..(suggestion.Length - i - 1)]))
{
suggestion = suggestion[(suggestion.Length - i - 1)..];
break;
}
}
sb.Append(suggestion);
return sb.ToString();
};
Style textStyle = new(x => x.OfType<AutoCompleteBox>().Descendant().OfType<TextBlock>());
textStyle.Setters.Add(new Setter(MarginProperty, new Thickness(0, 0)));
Styles.Add(textStyle);
}
private Task<IEnumerable<object>> GetSuggestionsAsync(string input, CancellationToken token)
=> Task.FromResult(ViewModel.GetSuggestions(input, token));
public static StarscriptTextBox Create(StarscriptHypervisor hv)
=> new() { ViewModel = new StarscriptTextBoxViewModel(hv) };
public static async Task Show()
{
ContentDialog contentDialog = new()
{
PrimaryButtonText = string.Empty,
SecondaryButtonText = string.Empty,
CloseButtonText = LocaleManager.Instance[LocaleKeys.UserProfilesClose],
Content = new StarscriptTextBox { ViewModel = new() }
};
await ContentDialogHelper.ShowAsync(contentDialog.ApplyStyles());
}
}
}

View File

@@ -0,0 +1,126 @@
using CommunityToolkit.Mvvm.ComponentModel;
using Ryujinx.Ava.UI.ViewModels;
using Starscript;
using Starscript.Internal;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading;
namespace Ryujinx.Ava.Systems.Starscript
{
public partial class StarscriptTextBoxViewModel : BaseModel
{
private readonly StarscriptHypervisor _hv;
public StarscriptTextBoxViewModel(StarscriptHypervisor hv = null)
{
_hv = hv ?? RyujinxStarscript.Hypervisor;
}
public ObservableCollection<string> CurrentSuggestions { get; } = [];
[ObservableProperty] private bool _hasError;
[ObservableProperty] private StringSegment _currentScriptResult;
[ObservableProperty] private string _errorMessage;
private Exception _exception;
private ParserResult _currentScriptSource;
private Script _currentScript;
public Exception Exception
{
get => _exception;
set
{
ErrorMessage = (_exception = value) switch
{
ParseException pe => pe.Error.ToString(),
StarscriptException se => se.Message,
_ => string.Empty
};
HasError = value is not null;
OnPropertyChanged();
}
}
public ParserResult CurrentScriptSource
{
get => _currentScriptSource;
set
{
_currentScriptSource = value;
if (value is null)
{
CurrentScript = null;
CurrentScriptResult = null;
Exception = null;
return;
}
CurrentScript = Compiler.SingleCompile(value);
Exception = null;
OnPropertyChanged();
}
}
public Script CurrentScript
{
get => _currentScript;
private set
{
try
{
CurrentScriptResult = value?.Execute(_hv)!;
_currentScript = value;
Exception = null;
}
catch (StarscriptException se)
{
_currentScript = null;
CurrentScriptResult = null;
Exception = se;
}
OnPropertyChanged();
}
}
public void ReExecuteScript()
{
if (_currentScript is null) return;
try
{
CurrentScriptResult = _currentScript.Execute(_hv)!;
}
catch (StarscriptException se)
{
CurrentScriptResult = null;
Exception = se;
}
}
public IEnumerable<object> GetSuggestions(string input, CancellationToken token)
{
CurrentSuggestions.Clear();
CurrentScriptSource = _hv.ParseAndGetCompletions(input, input.Length, CompletionCallback, token);
if (CurrentScriptSource.HasErrors)
{
Exception = new ParseException(CurrentScriptSource.Errors.First());
}
OnPropertyChanged(nameof(CurrentSuggestions));
return CurrentSuggestions;
}
private void CompletionCallback(string result, bool isFunction) => CurrentSuggestions.Add(isFunction ? $"{result}(" : result);
}
}

View File

@@ -14,7 +14,8 @@
Command="{Binding ToggleFavorite}"
CommandParameter="{Binding}"
Header="{ext:Locale GameListContextMenuToggleFavorite}"
Icon="{ext:Icon fa-solid fa-star}" />
Icon="{ext:Icon fa-solid fa-star}"
ToolTip.Tip="{ext:Locale GameListContextMenuToggleFavoriteToolTip}" />
<MenuItem
Command="{Binding CreateApplicationShortcut}"
CommandParameter="{Binding}"
@@ -46,37 +47,43 @@
Command="{Binding OpenApplicationData}"
CommandParameter="{Binding}"
Header="{ext:Locale GameListContextMenuShowGameData}"
Icon="{ext:Icon fa-solid fa-chart-line}" />
Icon="{ext:Icon fa-solid fa-chart-line}"
ToolTip.Tip="{ext:Locale GameListContextMenuShowGameDataToolTip}"/>
<Separator />
<MenuItem
Command="{Binding OpenUserSaveDirectory}"
CommandParameter="{Binding}"
Header="{ext:Locale GameListContextMenuOpenUserSaveDirectory}"
Icon="{ext:Icon fa-solid fa-sd-card}"
IsEnabled="{Binding OpenUserSaveDirectoryEnabled}" />
IsEnabled="{Binding OpenUserSaveDirectoryEnabled}"
ToolTip.Tip="{ext:Locale GameListContextMenuOpenUserSaveDirectoryToolTip}" />
<MenuItem
Command="{Binding OpenDeviceSaveDirectory}"
CommandParameter="{Binding}"
Header="{ext:Locale GameListContextMenuOpenDeviceSaveDirectory}"
Icon="{ext:Icon fa-solid fa-hard-drive}"
IsEnabled="{Binding OpenDeviceSaveDirectoryEnabled}" />
IsEnabled="{Binding OpenDeviceSaveDirectoryEnabled}"
ToolTip.Tip="{ext:Locale GameListContextMenuOpenDeviceSaveDirectoryToolTip}" />
<MenuItem
Command="{Binding OpenBcatSaveDirectory}"
CommandParameter="{Binding}"
Header="{ext:Locale GameListContextMenuOpenBcatSaveDirectory}"
Icon="{ext:Icon fa-solid fa-box-archive}"
IsEnabled="{Binding OpenBcatSaveDirectoryEnabled}" />
IsEnabled="{Binding OpenBcatSaveDirectoryEnabled}"
ToolTip.Tip="{ext:Locale GameListContextMenuOpenBcatSaveDirectoryToolTip}" />
<Separator />
<MenuItem
Command="{Binding OpenTitleUpdateManager}"
CommandParameter="{Binding}"
Header="{ext:Locale GameListContextMenuManageTitleUpdates}"
Icon="{ext:Icon fa-solid fa-code-compare}" />
Icon="{ext:Icon fa-solid fa-code-compare}"
ToolTip.Tip="{ext:Locale GameListContextMenuManageTitleUpdatesToolTip}" />
<MenuItem
Command="{Binding OpenDownloadableContentManager}"
CommandParameter="{Binding}"
Header="{ext:Locale GameListContextMenuManageDlc}"
Icon="{ext:Icon fa-solid fa-download}" />
Icon="{ext:Icon fa-solid fa-download}"
ToolTip.Tip="{ext:Locale GameListContextMenuManageDlcToolTip}" />
<MenuItem
Command="{Binding OpenCheatManager}"
CommandParameter="{Binding}"
@@ -94,7 +101,8 @@
Command="{Binding OpenModsDirectory}"
CommandParameter="{Binding}"
Header="{ext:Locale GameListContextMenuOpenModsDirectory}"
Icon="{ext:Icon fa-solid fa-folder}" />
Icon="{ext:Icon fa-solid fa-folder}"
ToolTip.Tip="{ext:Locale GameListContextMenuOpenModsDirectoryToolTip}" />
<MenuItem
Command="{Binding OpenSdModsDirectory}"
CommandParameter="{Binding}"
@@ -132,12 +140,14 @@
Command="{Binding OpenPtcDirectory}"
CommandParameter="{Binding}"
Header="{ext:Locale GameListContextMenuCacheManagementOpenPptcDirectory}"
Icon="{ext:Icon fa-solid fa-folder}" />
Icon="{ext:Icon fa-solid fa-folder}"
ToolTip.Tip="{ext:Locale GameListContextMenuCacheManagementOpenPptcDirectoryToolTip}" />
<MenuItem
Command="{Binding OpenShaderCacheDirectory}"
CommandParameter="{Binding}"
Header="{ext:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectory}"
Icon="{ext:Icon fa-solid fa-folder}" />
Icon="{ext:Icon fa-solid fa-folder}"
ToolTip.Tip="{ext:Locale GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip}" />
</MenuItem>
<MenuItem Header="{ext:Locale GameListContextMenuExtractData}" Icon="{ext:Icon fa-solid fa-file-export}">
<MenuItem

View File

@@ -253,6 +253,10 @@
Header="{ext:Locale MenuBarHelpAbout}"
Icon="{ext:Icon fa-solid fa-circle-info}"
ToolTip.Tip="{ext:Locale OpenAboutTooltip}" />
<MenuItem
Name="StarscriptDebugMenuItem"
Header="Debug Starscript"
Icon="{ext:Icon fa-solid fa-star}" />
<MenuItem
Name="UpdateMenuItem"
IsEnabled="{Binding CanUpdate}"

View File

@@ -8,6 +8,7 @@ using LibHac.Ns;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.Systems.AppLibrary;
using Ryujinx.Ava.Systems.Configuration;
using Ryujinx.Ava.Systems.Starscript;
using Ryujinx.Ava.UI.Controls;
using Ryujinx.Ava.UI.Helpers;
using Ryujinx.Ava.UI.ViewModels;
@@ -51,6 +52,8 @@ namespace Ryujinx.Ava.UI.Views.Main
CompatibilityListMenuItem.Command = Commands.Create(() => CompatibilityListWindow.Show());
UpdateMenuItem.Command = MainWindowViewModel.UpdateCommand;
StarscriptDebugMenuItem.Command = Commands.Create(StarscriptTextBox.Show);
FaqMenuItem.Command =
SetupGuideMenuItem.Command =