Merge branch 'master' into removal/ims

This commit is contained in:
GreemDev 2025-03-24 18:13:31 -05:00
commit 96ed38a9ea
4 changed files with 44 additions and 21 deletions

View file

@ -117,7 +117,7 @@ namespace Ryujinx.Graphics.Gpu.Shader
private static string GetDiskCachePath() private static string GetDiskCachePath()
{ {
return GraphicsConfig.EnableShaderCache && GraphicsConfig.TitleId != null return GraphicsConfig.EnableShaderCache && GraphicsConfig.TitleId != null
? Path.Combine(AppDataManager.GamesDirPath, GraphicsConfig.TitleId, "cache", "shader") ? Path.Combine(AppDataManager.GamesDirPath, GraphicsConfig.TitleId.ToLower(), "cache", "shader")
: null; : null;
} }

View file

@ -1,8 +1,10 @@
using Gommon;
using Ryujinx.Common.Logging; using Ryujinx.Common.Logging;
using Ryujinx.HLE.Exceptions; using Ryujinx.HLE.Exceptions;
using Ryujinx.HLE.HOS.Ipc; using Ryujinx.HLE.HOS.Ipc;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
@ -21,21 +23,42 @@ namespace Ryujinx.HLE.HOS.Services
private int _selfId; private int _selfId;
private bool _isDomain; private bool _isDomain;
public IpcService(ServerBase server = null) public IpcService(ServerBase server = null, bool registerTipc = false)
{ {
CmifCommands = GetType().Assembly.GetTypes() Stopwatch sw = Stopwatch.StartNew();
.Where(type => type == GetType())
.SelectMany(type => type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public)) CmifCommands = GetType()
.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public)
.SelectMany(methodInfo => methodInfo.GetCustomAttributes<CommandCmifAttribute>() .SelectMany(methodInfo => methodInfo.GetCustomAttributes<CommandCmifAttribute>()
.Select(command => (command.Id, methodInfo))) .Select(command => (command.Id, methodInfo)))
.ToDictionary(command => command.Id, command => command.methodInfo); .ToDictionary(command => command.Id, command => command.methodInfo);
TipcCommands = GetType().Assembly.GetTypes() sw.Stop();
.Where(type => type == GetType())
.SelectMany(type => type.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public)) Logger.Debug?.Print(
.SelectMany(methodInfo => methodInfo.GetCustomAttributes<CommandTipcAttribute>() LogClass.Emulation,
.Select(command => (command.Id, methodInfo))) $"{CmifCommands.Count} Cmif commands loaded in {sw.ElapsedTicks} ticks ({Stopwatch.Frequency} tps).",
.ToDictionary(command => command.Id, command => command.methodInfo); GetType().AsPrettyString()
);
if (registerTipc)
{
sw.Start();
TipcCommands = GetType()
.GetMethods(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public)
.SelectMany(methodInfo => methodInfo.GetCustomAttributes<CommandTipcAttribute>()
.Select(command => (command.Id, methodInfo)))
.ToDictionary(command => command.Id, command => command.methodInfo);
sw.Stop();
Logger.Debug?.Print(
LogClass.Emulation,
$"{TipcCommands.Count} Tipc commands loaded in {sw.ElapsedTicks} ticks ({Stopwatch.Frequency} tps).",
GetType().AsPrettyString()
);
}
Server = server; Server = server;

View file

@ -21,7 +21,7 @@ namespace Ryujinx.HLE.HOS.Services.Sm
private bool _isInitialized; private bool _isInitialized;
public IUserInterface(KernelContext context, SmRegistry registry) public IUserInterface(KernelContext context, SmRegistry registry) : base(registerTipc: true)
{ {
_commonServer = new ServerBase(context, "CommonServer"); _commonServer = new ServerBase(context, "CommonServer");
_registry = registry; _registry = registry;

View file

@ -2764,7 +2764,7 @@
"pl_PL": "", "pl_PL": "",
"pt_BR": "", "pt_BR": "",
"ru_RU": "Задать индивидуальные параметры", "ru_RU": "Задать индивидуальные параметры",
"sv_SE": "", "sv_SE": "Skapa anpassad konfiguration",
"th_TH": "", "th_TH": "",
"tr_TR": "", "tr_TR": "",
"uk_UA": "Створити користувацьку конфігурацію", "uk_UA": "Створити користувацьку конфігурацію",
@ -2789,7 +2789,7 @@
"pl_PL": "", "pl_PL": "",
"pt_BR": "", "pt_BR": "",
"ru_RU": "Изменить индивидуальные параметры", "ru_RU": "Изменить индивидуальные параметры",
"sv_SE": "", "sv_SE": "Redigera anpassad konfiguration",
"th_TH": "", "th_TH": "",
"tr_TR": "", "tr_TR": "",
"uk_UA": "Редагувати користувацьку конфігурацію", "uk_UA": "Редагувати користувацьку конфігурацію",
@ -2864,7 +2864,7 @@
"pl_PL": "", "pl_PL": "",
"pt_BR": "", "pt_BR": "",
"ru_RU": "Отредактировать существующие независимые параметры для выбранной игры.", "ru_RU": "Отредактировать существующие независимые параметры для выбранной игры.",
"sv_SE": "", "sv_SE": "Redigera din befintliga oberoende konfiguration för det valda spelet",
"th_TH": "", "th_TH": "",
"tr_TR": "", "tr_TR": "",
"uk_UA": "Відредагувати наявну індивідуальну конфігурацію для цієї гри.", "uk_UA": "Відредагувати наявну індивідуальну конфігурацію для цієї гри.",
@ -3839,7 +3839,7 @@
"pl_PL": "", "pl_PL": "",
"pt_BR": "", "pt_BR": "",
"ru_RU": "Включить оригинальный интерфейса (требуется перезагрузка)", "ru_RU": "Включить оригинальный интерфейса (требуется перезагрузка)",
"sv_SE": "", "sv_SE": "Visa ursprunglig gränssnittsstil (kräver omstart)",
"th_TH": "", "th_TH": "",
"tr_TR": "", "tr_TR": "",
"uk_UA": "Показати оригінальний UI (Потрібен перезапуск)", "uk_UA": "Показати оригінальний UI (Потрібен перезапуск)",
@ -3864,7 +3864,7 @@
"pl_PL": "", "pl_PL": "",
"pt_BR": "", "pt_BR": "",
"ru_RU": "Показать старый пользовательский интерфейс Avalonia Ryujinx, напоминающий Ryujinx 1.1.1403. Включено по умолчанию на платформах, отличных от Windows.\nСтрока заголовка в классическом стиле вернётся на место, а основные изменения в оформлении окна будут отменены; например, расположение навигации по настройкам над этой всплывающей подсказкой.", "ru_RU": "Показать старый пользовательский интерфейс Avalonia Ryujinx, напоминающий Ryujinx 1.1.1403. Включено по умолчанию на платформах, отличных от Windows.\nСтрока заголовка в классическом стиле вернётся на место, а основные изменения в оформлении окна будут отменены; например, расположение навигации по настройкам над этой всплывающей подсказкой.",
"sv_SE": "", "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": "", "th_TH": "",
"tr_TR": "", "tr_TR": "",
"uk_UA": "Показати старий інтерфейс Avalonia Ryujinx, який був у Ryujinx 1.1.1403. Ця опція активна за замовчуванням на всіх інших, окрім Windows платформах.\nПовернеться класична панель заголовка, а всі суттєві зміни інтерфейсу будуть скасовані, зокрема горизонтальне розміщення навігації в налаштуваннях.", "uk_UA": "Показати старий інтерфейс Avalonia Ryujinx, який був у Ryujinx 1.1.1403. Ця опція активна за замовчуванням на всіх інших, окрім Windows платформах.\nПовернеться класична панель заголовка, а всі суттєві зміни інтерфейсу будуть скасовані, зокрема горизонтальне розміщення навігації в налаштуваннях.",
@ -19714,7 +19714,7 @@
"pl_PL": "Skróty Klawiszowe Klawiatury", "pl_PL": "Skróty Klawiszowe Klawiatury",
"pt_BR": "Atalhos do Teclado", "pt_BR": "Atalhos do Teclado",
"ru_RU": "Горячие клавиши", "ru_RU": "Горячие клавиши",
"sv_SE": "Snabbtangenter för tangentbord", "sv_SE": "Snabbtangenter",
"th_TH": "ปุ่มลัดของคีย์บอร์ด", "th_TH": "ปุ่มลัดของคีย์บอร์ด",
"tr_TR": "Klavye Kısayolları", "tr_TR": "Klavye Kısayolları",
"uk_UA": "Гарячі клавіші клавіатури", "uk_UA": "Гарячі клавіші клавіатури",
@ -23814,7 +23814,7 @@
"pl_PL": "", "pl_PL": "",
"pt_BR": "", "pt_BR": "",
"ru_RU": "Список совместимости — записей: {0}", "ru_RU": "Список совместимости — записей: {0}",
"sv_SE": "", "sv_SE": "Kompatibilitetslista - {0} poster",
"th_TH": "", "th_TH": "",
"tr_TR": "", "tr_TR": "",
"uk_UA": "Список сумісності — {0} ігор", "uk_UA": "Список сумісності — {0} ігор",
@ -23889,7 +23889,7 @@
"pl_PL": "", "pl_PL": "",
"pt_BR": "", "pt_BR": "",
"ru_RU": "Поиск среди {0} записей о совместимости...", "ru_RU": "Поиск среди {0} записей о совместимости...",
"sv_SE": "", "sv_SE": "Sök i {0} kompatibilitetsposter...",
"th_TH": "", "th_TH": "",
"tr_TR": "", "tr_TR": "",
"uk_UA": "Шукати серед {0} перевірених ігор...", "uk_UA": "Шукати серед {0} перевірених ігор...",
@ -24214,7 +24214,7 @@
"pl_PL": "", "pl_PL": "",
"pt_BR": "", "pt_BR": "",
"ru_RU": "Индивидуальные параметры", "ru_RU": "Индивидуальные параметры",
"sv_SE": "", "sv_SE": "Anpassad konfiguration",
"th_TH": "", "th_TH": "",
"tr_TR": "", "tr_TR": "",
"uk_UA": "Власна конфігурація", "uk_UA": "Власна конфігурація",