Compare commits

..

12 Commits

Author SHA1 Message Date
Evan Husted
38ed71ddfe Merge branch 'master' into metal 2025-02-23 17:29:01 -06:00
Evan Husted
3ffcc72117 UI: Fix compatibility list crashing (missing font) 2025-02-22 23:48:47 -06:00
Evan Husted
80d619f010 Revert "Revert the Metal Experiment (#701)"
This reverts commit fe1617ffea.
2025-02-22 21:33:38 -06:00
Evan Husted
fe1617ffea Revert the Metal Experiment (#701)
Metal sounded like a good idea to get in the emulator but frankly I
underestimated just how experimental and not ready it was.
From my write up in the Discord:
```
As is, Metal supports only a few games.
The games it does support freeze on first use of not playing them via Vulkan, because shader translation is broken.
So you need to use a dirty hack to not delete all your shaders.
Not to mention it breaks many games via MoltenVK because of changes to the shared GPU code.

Merging Metal seemed like a great idea, because of the few games it does support.
But I don't think it's worth it. Many of the games it breaks via MoltenVK *don't work via Metal*. 
Which effectively makes current Ryubing worse for Mac users than Ryujinx 1.1.1403.

I think what I'm gonna do is revert Metal, and reopen it as a PR. That way, you can still take advantage of the Metal backend as is, but without making other games worse with no solution.
```

For what it's worth, the shader translation part could at least be
"fixed" by always applying a 30ms delay for shader translation to Metal.
That being said, that solution sucks ass.
The MoltenVK regressions are even worse.



I hope this is not a let down to the Mac users. I hope you realize I'm
reverting this because you're actively getting a worse experience with
it in the emulator.
2025-02-22 21:26:46 -06:00
shinyoyo
eb6b0e9adc Updated Zh-CN Simplified Chinese. (#703) 2025-02-22 02:16:28 -06:00
Evan Husted
9631bdfe16 docs: compat: Hogwarts Legacy is an Unreal Engine 4 game 2025-02-20 20:56:52 -06:00
Evan Husted
2a84656ffc misc: chore: use new array in LdnGameDataReceivedEventArgs instead of collecting the ldn datas into a list 2025-02-20 19:49:17 -06:00
Evan Husted
6c6580ddcc misc: chore: Move the LDN constants into a SharedConstants class 2025-02-20 19:30:00 -06:00
Evan Husted
c47448628c UI: Print LED setting failed on Debug 2025-02-20 19:29:18 -06:00
Evan Husted
d0ac83b493 misc: chore: Prevent firmware installation prompt from showing up multiple times during runtime when using --install-firmware 2025-02-20 18:52:45 -06:00
rrondo
e0ddbe55c0 Ukrainian localization changes (1.2.82) (#678)
Some changes and new lines for Ukrainian (uk_UA) localization.
2025-02-20 18:11:56 -06:00
FluffyOMC
4a4078865f Add Melatonin to compatibility list (#667)
It's playable, no bugs, and can run pretty easily way above intended
FPS, which shows there's not really any performance issues lol.


![image](https://github.com/user-attachments/assets/63402c9f-2412-4b43-9e5d-42a19436ac55)
2025-02-20 16:09:14 -06:00
12 changed files with 139 additions and 126 deletions

View File

@@ -1436,7 +1436,7 @@
010083A018262000,"Hitman: Blood Money — Reprisal",deadlock,ingame,2024-09-28 16:28:50
01004B100A5CC000,"Hob: The Definitive Edition",,playable,2021-01-13 09:39:19
0100F7300ED2C000,"Hoggy2",,playable,2022-10-10 13:53:35
0100F7E00C70E000,"Hogwarts Legacy",slow,ingame,2024-09-03 19:53:58
0100F7E00C70E000,"Hogwarts Legacy",UE4;slow,ingame,2024-09-03 19:53:58
0100633007D48000,"Hollow Knight",nvdec,playable,2023-01-16 15:44:56
0100F2100061E800,"Hollow0",UE4;gpu,ingame,2021-03-03 23:42:56
0100342009E16000,"Holy Potatoes! What The Hell?!",,playable,2020-07-03 10:48:56
@@ -1800,6 +1800,7 @@
010005A00B312000,"Megaton Rainfall",gpu;opengl,boots,2022-08-04 18:29:43
0100EA100DF92000,"Meiji Katsugeki Haikara Ryuuseigumi - Seibai Shimaseu, Yonaoshi Kagyou",32-bit;nvdec,playable,2022-12-05 13:19:12
0100B360068B2000,"Mekorama",gpu,boots,2021-06-17 16:37:21
010012301932A000,"Melatonin",,playable,2025-02-16 04:08:17
01000FA010340000,"Melbits World",nvdec;online,menus,2021-11-26 13:51:22
0100F68019636000,"Melon Journey",,playable,2023-04-23 21:20:01
010079C012896000,"Memories Off -Innocent Fille- for Dearest",,playable,2020-08-04 07:31:22
1 title_id game_name labels status last_updated
1436 010083A018262000 Hitman: Blood Money — Reprisal deadlock ingame 2024-09-28 16:28:50
1437 01004B100A5CC000 Hob: The Definitive Edition playable 2021-01-13 09:39:19
1438 0100F7300ED2C000 Hoggy2 playable 2022-10-10 13:53:35
1439 0100F7E00C70E000 Hogwarts Legacy slow UE4;slow ingame 2024-09-03 19:53:58
1440 0100633007D48000 Hollow Knight nvdec playable 2023-01-16 15:44:56
1441 0100F2100061E800 Hollow0 UE4;gpu ingame 2021-03-03 23:42:56
1442 0100342009E16000 Holy Potatoes! What The Hell?! playable 2020-07-03 10:48:56
1800 010005A00B312000 Megaton Rainfall gpu;opengl boots 2022-08-04 18:29:43
1801 0100EA100DF92000 Meiji Katsugeki Haikara Ryuuseigumi - Seibai Shimaseu, Yonaoshi Kagyou 32-bit;nvdec playable 2022-12-05 13:19:12
1802 0100B360068B2000 Mekorama gpu boots 2021-06-17 16:37:21
1803 010012301932A000 Melatonin playable 2025-02-16 04:08:17
1804 01000FA010340000 Melbits World nvdec;online menus 2021-11-26 13:51:22
1805 0100F68019636000 Melon Journey playable 2023-04-23 21:20:01
1806 010079C012896000 Memories Off -Innocent Fille- for Dearest playable 2020-08-04 07:31:22

View File

@@ -0,0 +1,9 @@
namespace Ryujinx.Common
{
public static class SharedConstants
{
public const string DefaultLanPlayHost = "ryuldn.vudjun.com";
public const short LanPlayPort = 30456;
public const string DefaultLanPlayWebHost = "ryuldnweb.vudjun.com";
}
}

View File

@@ -23,9 +23,6 @@ namespace Ryujinx.HLE.HOS.Services.Ldn.UserServiceCreator
{
class IUserLocalCommunicationService : IpcService, IDisposable
{
public static string DefaultLanPlayHost = "ryuldn.vudjun.com";
public static short LanPlayPort = 30456;
public INetworkClient NetworkClient { get; private set; }
private const int NifmRequestID = 90;
@@ -1092,20 +1089,18 @@ namespace Ryujinx.HLE.HOS.Services.Ldn.UserServiceCreator
case MultiplayerMode.LdnRyu:
try
{
string ldnServer = context.Device.Configuration.MultiplayerLdnServer;
if (string.IsNullOrEmpty(ldnServer))
{
ldnServer = DefaultLanPlayHost;
}
string ldnServer = context.Device.Configuration.MultiplayerLdnServer
?? throw new InvalidOperationException("Cannot initialize RyuLDN with a null Multiplayer server.");
if (!IPAddress.TryParse(ldnServer, out IPAddress ipAddress))
{
ipAddress = Dns.GetHostEntry(ldnServer).AddressList[0];
}
NetworkClient = new LdnMasterProxyClient(ipAddress.ToString(), LanPlayPort, context.Device.Configuration);
NetworkClient = new LdnMasterProxyClient(ipAddress.ToString(), SharedConstants.LanPlayPort, context.Device.Configuration);
}
catch (Exception ex)
{
Logger.Error?.Print(LogClass.ServiceLdn, "Could not locate LdnRyu server. Defaulting to stubbed wireless.");
Logger.Error?.Print(LogClass.ServiceLdn, "Could not locate RyuLDN server. Defaulting to stubbed wireless.");
Logger.Error?.Print(LogClass.ServiceLdn, ex.Message);
NetworkClient = new LdnDisabledClient();
}

View File

@@ -111,7 +111,7 @@ namespace Ryujinx.Input.SDL2
byte blue = packedRgb > 0 ? (byte)(packedRgb % 256) : (byte)0;
if (SDL_GameControllerSetLED(_gamepadHandle, red, green, blue) != 0)
Logger.Error?.Print(LogClass.Hid, "LED setting failed; probably in the middle of disconnecting.");
Logger.Debug?.Print(LogClass.Hid, "LED setting failed; probably in the middle of disconnecting.");
}
private GamepadFeaturesFlag GetFeaturesFlag()

View File

@@ -951,7 +951,7 @@ namespace Ryujinx.Ava
ConfigurationState.Instance.Multiplayer.Mode,
ConfigurationState.Instance.Multiplayer.DisableP2p,
ConfigurationState.Instance.Multiplayer.LdnPassphrase,
ConfigurationState.Instance.Multiplayer.LdnServer,
ConfigurationState.Instance.Multiplayer.GetLdnServer(),
ConfigurationState.Instance.Graphics.CustomVSyncInterval.Value,
ConfigurationState.Instance.Hacks.ShowDirtyHacks ? ConfigurationState.Instance.Hacks.EnabledHacks : null));
}

View File

@@ -142,7 +142,7 @@
"sv_SE": "Direkt musåtkomst",
"th_TH": "เข้าถึงเมาส์ได้โดยตรง",
"tr_TR": "Doğrudan Mouse Erişimi",
"uk_UA": "Прямий доступ мишею",
"uk_UA": "Пряме керування мишею",
"zh_CN": "直通鼠标操作",
"zh_TW": "滑鼠直接存取"
}
@@ -417,7 +417,7 @@
"sv_SE": "Läs in titeluppdateringar från mapp",
"th_TH": "โหลดไฟล์อัพเดตจากโฟลเดอร์",
"tr_TR": "",
"uk_UA": "Завантажити оновлення заголовків з теки",
"uk_UA": "Завантажити оновлення ігор з теки",
"zh_CN": "从文件夹加载游戏更新",
"zh_TW": "從資料夾中載入遊戲更新"
}
@@ -467,8 +467,8 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"uk_UA": "Відкрити теку скріншотів",
"zh_CN": "打开截图文件夹",
"zh_TW": ""
}
},
@@ -617,7 +617,7 @@
"sv_SE": "Starta spel med dolt användargränssnitt",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Запускати ігри з прихованим інтерфейсом",
"zh_CN": "启动游戏时隐藏 UI",
"zh_TW": ""
}
@@ -1217,7 +1217,7 @@
"sv_SE": "_Hjälp",
"th_TH": "_ช่วยเหลือ",
"tr_TR": "_Yardım",
"uk_UA": "_Допомога",
"uk_UA": "_Довідка",
"zh_CN": "帮助(_H)",
"zh_TW": "說明(_H)"
}
@@ -1567,7 +1567,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Розроблено: {0}",
"zh_CN": "由 {0} 开发",
"zh_TW": ""
}
@@ -1867,7 +1867,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Сумісність:",
"zh_CN": "兼容性:",
"zh_TW": ""
}
@@ -1892,7 +1892,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "ID гри:",
"zh_CN": "标题 ID:",
"zh_TW": ""
}
@@ -1917,7 +1917,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Розміщені ігри: {0}",
"zh_CN": "服务的游戏: {0}",
"zh_TW": ""
}
@@ -1942,7 +1942,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Гравців онлайн: {0}",
"zh_CN": "在线玩家: {0}",
"zh_TW": ""
}
@@ -2292,7 +2292,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Очистити кеш PPTC",
"zh_CN": "清理 PPTC 缓存",
"zh_TW": ""
}
@@ -2317,7 +2317,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Видаляє всі файли кешу PPTC для застосунку",
"zh_CN": "删除应用程序的所有 PPTC 缓存",
"zh_TW": ""
}
@@ -2642,7 +2642,7 @@
"sv_SE": "Extrahera RomFS från en vald DLC-fil",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Витягти RomFS з обраного файлу DLC",
"zh_CN": "从选定的 DLC 文件中解压 RomFS",
"zh_TW": ""
}
@@ -2792,7 +2792,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Iнформація про сумісність",
"zh_CN": "显示兼容性项目",
"zh_TW": ""
}
@@ -2817,7 +2817,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Показати цю гру в Списку Сумісності. Список сумісності також можна зайти в меню Довідки.",
"zh_CN": "在兼容性列表中显示选定的游戏,您通常可以通过帮助菜单访问。",
"zh_TW": ""
}
@@ -2842,7 +2842,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Інформація про гру",
"zh_CN": "显示游戏信息",
"zh_TW": ""
}
@@ -2867,7 +2867,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Показати статистику та деталі обраної гри.",
"zh_CN": "显示当前选定游戏的状态与详细信息。",
"zh_TW": ""
}
@@ -3392,7 +3392,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Перевірка оновлень:",
"zh_CN": "检查更新",
"zh_TW": ""
}
@@ -3417,7 +3417,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Вимкнути",
"zh_CN": "关闭",
"zh_TW": ""
}
@@ -3442,7 +3442,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Запитувати щоразу",
"zh_CN": "提示",
"zh_TW": ""
}
@@ -3467,7 +3467,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Оновлювати в фоні",
"zh_CN": "背景",
"zh_TW": ""
}
@@ -3492,7 +3492,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "При втраті фокуса емулятором:",
"zh_CN": "当模拟器在后台时:",
"zh_TW": ""
}
@@ -3517,7 +3517,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Нічого не робити",
"zh_CN": "什么事情也不做",
"zh_TW": ""
}
@@ -3542,7 +3542,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Блокувати введення",
"zh_CN": "禁用输入",
"zh_TW": ""
}
@@ -3567,7 +3567,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Вимкнути звук",
"zh_CN": "静音",
"zh_TW": ""
}
@@ -3592,7 +3592,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Блокувати введення та Вимкнути звук",
"zh_CN": "阻止输入且静音",
"zh_TW": ""
}
@@ -3617,7 +3617,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Поставити на паузу",
"zh_CN": "暂停模拟",
"zh_TW": ""
}
@@ -3742,7 +3742,7 @@
"sv_SE": "Dölj markör:",
"th_TH": "ซ่อน เคอร์เซอร์:",
"tr_TR": "İşaretçiyi Gizle:",
"uk_UA": "Сховати вказівник:",
"uk_UA": "Сховати курсор:",
"zh_CN": "隐藏鼠标指针:",
"zh_TW": "隱藏滑鼠游標:"
}
@@ -5142,8 +5142,8 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"uk_UA": "Ігнорувати Аплет Контролера",
"zh_CN": "忽略控制器小程序",
"zh_TW": ""
}
},
@@ -5992,7 +5992,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Увімкнути журнали інтерфейсу",
"zh_CN": "启用 UI 日志",
"zh_TW": ""
}
@@ -6017,7 +6017,7 @@
"sv_SE": "Aktivera loggar för filsystemsåtkomst",
"th_TH": "เปิดใช้งานการบันทึกประวัติการเข้าถึง Fs",
"tr_TR": "Fs Erişim Loglarını Etkinleştir",
"uk_UA": "Увімкнути журнали доступу Fs",
"uk_UA": "Увімкнути журнали доступу до файлової системи",
"zh_CN": "启用文件访问日志",
"zh_TW": "啟用檔案系統存取日誌"
}
@@ -6042,7 +6042,7 @@
"sv_SE": "Loggläge för global filsystemsåtkomst:",
"th_TH": "โหมด การเข้าถึงประวัติส่วนกลาง:",
"tr_TR": "Fs Evrensel Erişim Log Modu:",
"uk_UA": "Режим журналу глобального доступу Fs:",
"uk_UA": "Режим журналу глобального доступу файлової системи:",
"zh_CN": "文件系统全局访问日志模式:",
"zh_TW": "檔案系統全域存取日誌模式:"
}
@@ -6267,7 +6267,7 @@
"sv_SE": "Inmatning",
"th_TH": "ป้อนข้อมูล",
"tr_TR": "Giriş Yöntemi",
"uk_UA": "Введення",
"uk_UA": "Керування",
"zh_CN": "输入",
"zh_TW": "輸入"
}
@@ -6392,7 +6392,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Скинути налаштування",
"zh_CN": "重置设置",
"zh_TW": ""
}
@@ -6417,7 +6417,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Я хочу скинути налаштування.",
"zh_CN": "我要重置我的设置。",
"zh_TW": ""
}
@@ -10692,7 +10692,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "Rehber",
"uk_UA": "",
"uk_UA": "Меню",
"zh_CN": "主页键",
"zh_TW": "快顯功能表鍵"
}
@@ -10842,7 +10842,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Сенсорна панель",
"zh_CN": "触摸板",
"zh_TW": "觸控板"
}
@@ -13417,7 +13417,7 @@
"sv_SE": "Amiibo-API",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "API Amiibo",
"zh_CN": "",
"zh_TW": ""
}
@@ -13667,7 +13667,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Ви збираєтесь видалити всі дані PPTC з:\n\n{0}\n\nБажаєте продовжити цю операцію?",
"zh_CN": "您正要清理 PPTC 数据:\n\n{0}\n\n您确实要继续吗?",
"zh_TW": ""
}
@@ -13967,7 +13967,7 @@
"sv_SE": "En ogiltig nyckelfil hittades i {0}",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Виявлено неправильний файл ключів у теці {0}",
"zh_CN": "在 {0} 发现了一个无效的密匙文件",
"zh_TW": "找到無效的金鑰檔案 {0}"
}
@@ -15642,7 +15642,7 @@
"sv_SE": "Favorit",
"th_TH": "สิ่งที่ชื่นชอบ",
"tr_TR": "Favori",
"uk_UA": "Вибрані",
"uk_UA": "Обрані",
"zh_CN": "收藏",
"zh_TW": "我的最愛"
}
@@ -16067,7 +16067,7 @@
"sv_SE": "Stöd för direkt musåtkomst (HID). Ger spel åtkomst till din mus som pekdon.\n\nFungerar endast med spel som har inbyggt stöd för muskontroller på Switch-hårdvara, som är endast ett fåtal.\n\nViss pekskärmsfunktionalitet kanske inte fungerar när aktiverat.\n\nLämna AV om du är osäker.",
"th_TH": "รองรับการเข้าถึงเมาส์โดยตรง (HID) ให้เกมเข้าถึงเมาส์ของคุณเป็นอุปกรณ์ชี้ตำแหน่ง\n\nใช้งานได้เฉพาะกับเกมที่รองรับการควบคุมเมาส์บนฮาร์ดแวร์ของ Switch เท่านั้น ซึ่งมีอยู่ไม่มากนัก\n\nเมื่อเปิดใช้งาน ฟังก์ชั่นหน้าจอสัมผัสอาจไม่ทำงาน\n\nหากคุณไม่แน่ใจให้ปิดใช้งานไว้",
"tr_TR": "",
"uk_UA": "Підтримка прямого доступу до миші (HID). Надає іграм доступ до миші, як пристрій вказування.\n\nПрацює тільки з іграми, які підтримують мишу на обладнанні Switch (таких небагато).\n\nФункціонал сенсорного екрану може не працювати, якщо ця функція ввімкнена.\n\nЗалиште вимкненим, якщо не впевнені.",
"uk_UA": "Підтримка прямого доступу до миші (HID). Надає іграм доступ до миші, як пристрій вказування.\n\nПрацює тільки з тими іграми, що підтримують мишу на обладнанні Switch (таких небагато).\n\nФункціонал сенсорного екрану може не працювати, якщо увімкнути цю функцію.\n\nЗалиште вимкненим, якщо не впевнені.",
"zh_CN": "直接鼠标访问(HID)支持,游戏可以直接访问鼠标作为指针输入设备。\n\n只适用于在 Switch 硬件上原生支持鼠标控制的游戏,这种游戏很少。\n\n启用后触屏功能可能无法正常工作。\n\n如果不确定请保持关闭状态。",
"zh_TW": "支援滑鼠直接存取 (HID)。遊戲可將滑鼠作為指向裝置使用。\n\n僅適用於在 Switch 硬體上原生支援滑鼠控制的遊戲,這類遊戲很少。\n\n啟用後觸控螢幕功能可能無法使用。\n\n如果不確定請保持關閉狀態。"
}
@@ -16492,7 +16492,7 @@
"sv_SE": "Ignorerar Horizon OS-tjänster som inte har implementerats. Detta kan avhjälpa krascher när vissa spel startar upp.\n\nLämna AV om du är osäker.",
"th_TH": "ละเว้นบริการ Horizon OS ที่ยังไม่ได้ใช้งาน วิธีนี้อาจช่วยในการหลีกเลี่ยงข้อผิดพลาดเมื่อบูตเกมบางเกม\n\nปล่อยให้ปิดหากคุณไม่แน่ใจ",
"tr_TR": "Henüz programlanmamış Horizon işletim sistemi servislerini görmezden gelir. Bu seçenek belirli oyunların açılırken çökmesinin önüne geçmeye yardımcı olabilir.\n\nEmin değilseniz devre dışı bırakın.",
"uk_UA": "Ігнорує нереалізовані служби Horizon OS. Це може допомогти в обході збоїв під час завантаження певних ігор.\n\nЗалиште вимкненим, якщо не впевнені.",
"uk_UA": "Ігнорує нереалізовані служби Horizon OS. Це може допомогти в обході збоїв під час завантаження певних ігор.\n\nЗалиште вимкненим якщо не впевнені.",
"zh_CN": "开启后,游戏会忽略未实现的系统服务,从而继续运行。\n少部分新发布的游戏由于使用了新的未知系统服务可能需要此选项来避免闪退。\n模拟器更新完善系统服务之后则无需开启此选项。\n\n如果不确定请保持关闭状态。",
"zh_TW": "忽略未實現的 Horizon OS 服務。這可能有助於在啟動某些遊戲時避免崩潰。\n\n如果不確定請保持關閉狀態。"
}
@@ -16517,8 +16517,8 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"uk_UA": "Діалогове вікно Аплету Контролера не з'явиться, якщо геймпад було відключено під час роботи програми.\n\nЗалиште вимкненим якщо не впевнені.",
"zh_CN": "在应用程序运行时如果游戏手柄断开连接则不会显示控制器小程序对话框。\n\n如果不确定请保持关闭状态。",
"zh_TW": ""
}
},
@@ -16542,7 +16542,7 @@
"sv_SE": "Kör kommandon för grafikbakände i en andra tråd.\n\nSnabbar upp shader compilation, minskar stuttering och förbättrar prestandan på GPU-drivrutiner utan stöd för egen multithreading. Något bättre prestanda på drivrutiner med multithreading.\n\nStäll in till AUTO om du är osäker.",
"th_TH": "ดำเนินการคำสั่งแบ็กเอนด์กราฟิกบนเธรดที่สอง\n\nเร่งความเร็วการคอมไพล์ ลดการกระตุก และปรับปรุงประสิทธิภาพการทำงานของไดรเวอร์ GPU โดยไม่ต้องรองรับมัลติเธรดในตัว ประสิทธิภาพที่ดีขึ้นเล็กน้อยสำหรับไดรเวอร์ที่มีมัลติเธรด\n\nตั้งเป็น อัตโนมัติ หากคุณไม่แน่ใจ",
"tr_TR": "Grafik arka uç komutlarını ikinci bir iş parçacığında işletir.\n\nKendi multithreading desteği olmayan sürücülerde shader derlemeyi hızlandırıp performansı artırır. Multithreading desteği olan sürücülerde çok az daha iyi performans sağlar.\n\nEmin değilseniz Otomatik seçeneğine ayarlayın.",
"uk_UA": "Виконує команди графічного сервера в другому потоці.\n\nПрискорює компіляцію шейдерів, зменшує затримки та покращує продуктивність драйверів GPU без власної підтримки багатопоточності. Трохи краща продуктивність на драйверах з багатопотоковістю.\nВстановіть значення «Авто», якщо не впевнені",
"uk_UA": "Виконує команди графічного сервера в другому потоці.\n\nПрискорює компіляцію шейдерів, зменшує затримки та покращує продуктивність драйверів GPU без власної підтримки багатопоточності. Трохи краща продуктивність на драйверах з багатопотоковістю.\nВстановіть значення «Авто» якщо не впевнені",
"zh_CN": "在第二个线程上执行图形引擎指令。\n\n可以加速着色器编译减少卡顿提高 GPU 的性能。\n\n如果不确定请设置为“自动”。",
"zh_TW": "在第二個執行緒上執行圖形後端指令。\n\n在本身不支援多執行緒的 GPU 驅動程式上,可加快著色器編譯、減少卡頓並提高效能。在支援多執行緒的驅動程式上效能略有提升。\n\n如果不確定請設定為自動。"
}
@@ -16567,7 +16567,7 @@
"sv_SE": "Kör kommandon för grafikbakände i en andra tråd.\n\nSnabbar upp shader compilation, minskar stuttering och förbättrar prestandan på GPU-drivrutiner utan stöd för egen multithreading. Något bättre prestanda på drivrutiner med multithreading.\n\nStäll in till AUTO om du är osäker.",
"th_TH": "ดำเนินการคำสั่งแบ็กเอนด์กราฟิกบนเธรดที่สอง\n\nเร่งความเร็วการคอมไพล์เชเดอร์ ลดการกระตุก และปรับปรุงประสิทธิภาพการทำงานของไดรเวอร์ GPU โดยไม่ต้องรองรับมัลติเธรดในตัว ประสิทธิภาพที่ดีขึ้นเล็กน้อยสำหรับไดรเวอร์ที่มีมัลติเธรด\n\nตั้งเป็น อัตโนมัติ หากคุณไม่แน่ใจ",
"tr_TR": "Grafik arka uç komutlarını ikinci bir iş parçacığında işletir.\n\nKendi multithreading desteği olmayan sürücülerde shader derlemeyi hızlandırıp performansı artırır. Multithreading desteği olan sürücülerde çok az daha iyi performans sağlar.\n\nEmin değilseniz Otomatik seçeneğine ayarlayın.",
"uk_UA": "Виконує команди графічного сервера в другому потоці.\n\nПрискорює компіляцію шейдерів, зменшує затримки та покращує продуктивність драйверів GPU без власної підтримки багатопоточності. Трохи краща продуктивність на драйверах з багатопотоковістю.\n\nВстановіть значення «Авто», якщо не впевнені.",
"uk_UA": "Виконує команди графічного сервера в другому потоці.\n\nПрискорює компіляцію шейдерів, зменшує затримки та покращує продуктивність драйверів GPU без власної підтримки багатопоточності. Трохи краща продуктивність на драйверах з багатопотоковістю.\n\nВстановіть значення «Авто» якщо не впевнені.",
"zh_CN": "在第二个线程上执行图形引擎指令。\n\n可以加速着色器编译减少卡顿提高 GPU 的性能。\n\n如果不确定请设置为“自动”。",
"zh_TW": "在第二個執行緒上執行圖形後端指令。\n\n在本身不支援多執行緒的 GPU 驅動程式上,可加快著色器編譯、減少卡頓並提高效能。在支援多執行緒的驅動程式上效能略有提升。\n\n如果不確定請設定為自動。"
}
@@ -16592,7 +16592,7 @@
"sv_SE": "Sparar en disk shader cache som minskar stuttering i efterföljande körningar.\n\nLämna PÅ om du är osäker.",
"th_TH": "บันทึกแคชแสงเงาของดิสก์ซึ่งช่วยลดการกระตุกในการรันครั้งต่อๆ ไป\n\nเปิดทิ้งไว้หากคุณไม่แน่ใจ",
"tr_TR": "Sonraki çalışmalarda takılmaları engelleyen bir gölgelendirici disk önbelleğine kaydeder.",
"uk_UA": "Зберігає кеш дискового шейдера, що зменшує затримки під час наступних запусків.\n\nЗалиште увімкненим, якщо не впевнені.",
"uk_UA": "Зберігає кеш дискового шейдера, що зменшує затримки під час наступних запусків.\n\nЗалиште увімкненим якщо не впевнені.",
"zh_CN": "模拟器将已编译的着色器保存到硬盘,可以减少游戏再次渲染相同图形导致的卡顿。\n\n如果不确定请保持开启状态。",
"zh_TW": "儲存磁碟著色器快取,減少後續執行時的卡頓。\n\n如果不確定請保持開啟狀態。"
}
@@ -16942,7 +16942,7 @@
"sv_SE": "Aktiverar loggutdata för filsystemsåtkomst i konsollen. Möjliga lägen är 0-3",
"th_TH": "เปิดใช้งาน เอาต์พุตประวัติการเข้าถึง FS ไปยังคอนโซล โหมดที่เป็นไปได้คือ 0-3",
"tr_TR": "Konsola FS erişim loglarının yazılmasını etkinleştirir. Kullanılabilir modlar 0-3'tür",
"uk_UA": "Вмикає виведення журналу доступу (access log) до FS на консоль. Можливі режими 0-3",
"uk_UA": "Увімкнути виведення журналу доступу (access log) до файлової системи в консоль. Можливі режими: 0-3",
"zh_CN": "在控制台中显示文件系统访问日志,可选模式为 0-3。",
"zh_TW": "啟用檔案系統存取日誌輸出到控制台中。可能的模式為 0 到 3"
}
@@ -16992,7 +16992,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Виводити повідомлення журналу Avalonia (UI) в консоль",
"zh_CN": "在控制台显示 Avalonia (UI) 的日志信息",
"zh_TW": ""
}
@@ -17142,7 +17142,7 @@
"sv_SE": "Öppna en filutforskare för att välja en eller flera mappar att läsa in alla titeluppdateringar från",
"th_TH": "เปิดตัวสำรวจไฟล์เพื่อเลือกหนึ่งโฟลเดอร์ขึ้นไปเพื่อโหลดไฟล์อัปเดตจำนวนมาก",
"tr_TR": "",
"uk_UA": "Відкриває Файловий провідник для обрання однієї або декількох тек для масового завантаження оновлень",
"uk_UA": "Відкриває Файловий Провідник для обрання однієї або декількох тек для масового завантаження оновлень",
"zh_CN": "打开文件资源管理器以选择一个或多个文件夹来批量加载游戏更新。",
"zh_TW": "開啟檔案總管,選擇一個或多個資料夾來大量載入遊戲更新"
}
@@ -17192,8 +17192,8 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"zh_CN": "",
"uk_UA": "Відкрити теку куди зберігаються скріншоти Ryujinx",
"zh_CN": "打开 Ryujinx 截图文件夹",
"zh_TW": ""
}
},
@@ -17217,7 +17217,7 @@
"sv_SE": "Öppnar mappen där loggarna har skrivits till",
"th_TH": "เปิดโฟลเดอร์ ที่เก็บไฟล์ประวัติ",
"tr_TR": "Log dosyalarının bulunduğu klasörü açar",
"uk_UA": "Відкриває теку, куди записуються журнали (logs)",
"uk_UA": "Відкриває теку, куди зберігаються журнали (logs)",
"zh_CN": "打开日志存放的目录",
"zh_TW": "開啟日誌被寫入的資料夾"
}
@@ -17242,7 +17242,7 @@
"sv_SE": "Avsluta Ryujinx",
"th_TH": "ออกจากโปรแกรม Ryujinx",
"tr_TR": "Ryujinx'ten çıkış yapmayı sağlar",
"uk_UA": "Виходить з Ryujinx",
"uk_UA": "Закриває Ryujinx",
"zh_CN": "退出 Ryujinx 模拟器",
"zh_TW": "結束 Ryujinx"
}
@@ -17942,7 +17942,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Доступне оновлення!",
"zh_CN": "有可用的更新!",
"zh_TW": ""
}
@@ -18817,7 +18817,7 @@
"sv_SE": "Cabinet-dialog",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Сповіщення Cabinet",
"zh_CN": "档案对话框",
"zh_TW": "Cabinet 對話方塊"
}
@@ -19742,7 +19742,7 @@
"sv_SE": "LED-inställningar",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Налаштування LED",
"zh_CN": "LED 设置",
"zh_TW": ""
}
@@ -20692,7 +20692,7 @@
"sv_SE": "Markera visade",
"th_TH": "",
"tr_TR": "",
"uk_UA": "Вибрати показане",
"uk_UA": "Вибрати показані",
"zh_CN": "选定显示的",
"zh_TW": "選擇已顯示"
}
@@ -21542,7 +21542,7 @@
"sv_SE": "Automatiskt",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Автоматично",
"zh_CN": "自动",
"zh_TW": "自動"
}
@@ -21567,7 +21567,7 @@
"sv_SE": "Använder Vulkan.\nPå en ARM Mac och vid spel som körs bra på den så används Metal-bakänden.",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Використовує Vulkan.\nНа Mac з ARM-архітектурою, якщо гра добре працює з Vulkan, використовується графічний рушій Metal.",
"zh_CN": "使用 Vulkan。\n在 ARM Mac 上,当玩在其下运行良好的游戏时,使用 Metal 后端。",
"zh_TW": "使用Vulkan。\n在 ARM Mac 上,如果遊戲執行性能良好時,則將使用 Metal 後端。"
}
@@ -23542,7 +23542,7 @@
"sv_SE": "Intervall",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Інтервал",
"zh_CN": "间隔",
"zh_TW": "間隔"
}
@@ -23642,7 +23642,7 @@
"sv_SE": "Senast uppdaterad: {0}",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Останнє оновлення: {0}",
"zh_CN": "最后更新于: {0}",
"zh_TW": "上次更新時間: {0}"
}
@@ -23667,7 +23667,7 @@
"sv_SE": "Denna kompatibilitetslista kan innehålla utdaterade poster.\nTesta gärna spelen som listas med \"Spelproblem\"-status.",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Цей список сумісності може містити застарілі дані.\nНе відмовляйтеся від тестування ігор що мають статус \"Запускаються\".",
"zh_CN": "此兼容性列表可能包含过时的条目。\n不要只测试 \"进入游戏\" 状态的游戏。",
"zh_TW": "這個相容性列表可能含有已過時的紀錄。\n敬請繼續測試「大致可遊玩 (Ingame)」狀態的遊戲並回報以更新紀錄。"
}
@@ -23692,7 +23692,7 @@
"sv_SE": "Sök i kompatibilitetsposter...",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Перевірити сумісність гри...",
"zh_CN": "正在搜索兼容性条目...",
"zh_TW": "搜尋相容性列表紀錄..."
}
@@ -23717,7 +23717,7 @@
"sv_SE": "Öppna kompatibilitetslistan",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Відкрити Список Сумісності",
"zh_CN": "打开兼容性列表",
"zh_TW": "開啟相容性列表"
}
@@ -23742,7 +23742,7 @@
"sv_SE": "Visa endast ägda spel",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Показувати лише ігри в наявності",
"zh_CN": "仅显示拥有的游戏",
"zh_TW": "只顯示已擁有的遊戲"
}
@@ -23767,7 +23767,7 @@
"sv_SE": "Spelbart",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Оптимально",
"zh_CN": "可游玩",
"zh_TW": "可暢順遊玩"
}
@@ -23792,7 +23792,7 @@
"sv_SE": "Spelproblem",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "З недоліками",
"zh_CN": "进入游戏",
"zh_TW": "大致可遊玩"
}
@@ -23817,7 +23817,7 @@
"sv_SE": "Menyer",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Меню",
"zh_CN": "菜单",
"zh_TW": "只開啟至遊戲開始功能表"
}
@@ -23842,7 +23842,7 @@
"sv_SE": "Startar",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Запускається",
"zh_CN": "启动",
"zh_TW": "只能啟動"
}
@@ -23867,7 +23867,7 @@
"sv_SE": "Ingenting",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Не працює",
"zh_CN": "什么都没有",
"zh_TW": "無法啟動"
}
@@ -23892,7 +23892,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Запускається та оптимально працює (без збоїв або графічних багів) на середньостатистичному комп'ютері.",
"zh_CN": "启动和游戏时不会出现任何崩溃或任何类型的 GPU bug 且速度足够快可以在一般 PC 上尽情游玩。",
"zh_TW": ""
}
@@ -23917,7 +23917,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Запускається, але в грі на вас чекатимуть одна або декілька наступних проблем: збої, зависання, графічні баги, спотворений звук або ж гра загалом працюватиме надто повільно. Можливо, її все ще можна пройти, але досвід буде не найкращим.",
"zh_CN": "可以成功启动并进入游戏但可能会遇到以下一种或多种问题: 崩溃、卡死、GPU bug、令人无法接受的音频,或者只是太慢。仍然可以继续进行游戏,但是可能无法达到预期。",
"zh_TW": ""
}
@@ -23942,7 +23942,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Запускається та проходить початковий екран, але пограти не вийде.",
"zh_CN": "可以启动并通过标题画面但是无法进入到主要的游戏流程。",
"zh_TW": ""
}
@@ -23967,7 +23967,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Запускається, але не відображає навіть початкового екрану.",
"zh_CN": "可以启动但是无法通过标题画面。",
"zh_TW": ""
}
@@ -23992,7 +23992,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Взагалі не запускається.",
"zh_CN": "无法启动或显示无任何动静。",
"zh_TW": ""
}
@@ -24017,7 +24017,7 @@
"sv_SE": "Välj en DLC att extrahera",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Оберіть DLC які бажаєте вилучити",
"zh_CN": "选择一个要解压的 DLC",
"zh_TW": ""
}
@@ -24042,7 +24042,7 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Зображення картки активності Discord",
"zh_CN": "Rich Presence 图像",
"zh_TW": ""
}
@@ -24067,10 +24067,10 @@
"sv_SE": "",
"th_TH": "",
"tr_TR": "",
"uk_UA": "",
"uk_UA": "Динамічна картка активності Discord",
"zh_CN": "动态 Rich Presence",
"zh_TW": ""
}
}
]
}
}

View File

@@ -148,8 +148,11 @@ namespace Ryujinx.Ava.UI.Windows
{
if ((firmwarePath.ExistsAsFile && firmwarePath.Extension is "xci" or "zip") ||
firmwarePath.ExistsAsDirectory)
{
await Dispatcher.UIThread.InvokeAsync(() =>
ViewModel.HandleFirmwareInstallation(firmwarePath));
CommandLineState.FirmwareToInstallPathArg = null;
}
else
Logger.Notice.Print(LogClass.UI, "Invalid firmware type provided. Path must be a directory, or a .zip or .xci file.");
}
@@ -186,17 +189,12 @@ namespace Ryujinx.Ava.UI.Windows
{
Dispatcher.UIThread.Post(() =>
{
List<LdnGameData> ldnGameDataArray = e.LdnData.ToList();
ViewModel.LdnData.Clear();
foreach (ApplicationData application in ViewModel.Applications.Where(it => it.HasControlHolder))
{
ref ApplicationControlProperty controlHolder = ref application.ControlHolder.Value;
ViewModel.LdnData[application.IdString] =
LdnGameData.GetArrayForApp(
ldnGameDataArray,
ref controlHolder
);
ViewModel.LdnData[application.IdString] = e.LdnData.Where(ref controlHolder);
UpdateApplicationWithLdnData(application);
}

View File

@@ -42,7 +42,6 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
{
public class ApplicationLibrary
{
public const string DefaultLanPlayWebHost = "ryuldnweb.vudjun.com";
public Language DesiredLanguage { get; set; }
public event EventHandler<ApplicationCountUpdatedEventArgs> ApplicationCountUpdated;
public event Action<LdnGameDataReceivedEventArgs> LdnGameDataReceived;
@@ -826,7 +825,6 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
public async Task RefreshLdn()
{
if (ConfigurationState.Instance.Multiplayer.Mode == MultiplayerMode.LdnRyu)
{
try
@@ -834,33 +832,22 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
string ldnWebHost = ConfigurationState.Instance.Multiplayer.LdnServer;
if (string.IsNullOrEmpty(ldnWebHost))
{
ldnWebHost = DefaultLanPlayWebHost;
ldnWebHost = SharedConstants.DefaultLanPlayWebHost;
}
IEnumerable<LdnGameData> ldnGameDataArray = Array.Empty<LdnGameData>();
using HttpClient httpClient = new();
string ldnGameDataArrayString = await httpClient.GetStringAsync($"https://{ldnWebHost}/api/public_games");
ldnGameDataArray = JsonHelper.Deserialize(ldnGameDataArrayString, _ldnDataSerializerContext.IEnumerableLdnGameData);
LdnGameDataReceived?.Invoke(new LdnGameDataReceivedEventArgs
{
LdnData = ldnGameDataArray
});
LdnGameData[] ldnGameDataArray = JsonHelper.Deserialize(ldnGameDataArrayString, _ldnDataSerializerContext.IEnumerableLdnGameData).ToArray();
LdnGameDataReceived?.Invoke(new LdnGameDataReceivedEventArgs(ldnGameDataArray));
return;
}
catch (Exception ex)
{
Logger.Warning?.Print(LogClass.Application, $"Failed to fetch the public games JSON from the API. Player and game count in the game list will be unavailable.\n{ex.Message}");
LdnGameDataReceived?.Invoke(new LdnGameDataReceivedEventArgs
{
LdnData = Array.Empty<LdnGameData>()
});
}
}
else
{
LdnGameDataReceived?.Invoke(new LdnGameDataReceivedEventArgs
{
LdnData = Array.Empty<LdnGameData>()
});
}
LdnGameDataReceived?.Invoke(LdnGameDataReceivedEventArgs.Empty);
}
// Replace the currently stored DLC state for the game with the provided DLC state.

View File

@@ -18,7 +18,7 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
public IEnumerable<string> Players { get; set; }
public static Array GetArrayForApp(
IEnumerable<LdnGameData> receivedData, ref ApplicationControlProperty acp)
LdnGameData[] receivedData, ref ApplicationControlProperty acp)
{
LibHac.Common.FixedArrays.Array8<ulong> communicationId = acp.LocalCommunicationId;
@@ -40,4 +40,10 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
public int GameCount => _ldnDatas.Length;
}
}
public static class LdnGameDataHelper
{
public static LdnGameData.Array Where(this LdnGameData[] unfilteredDatas, ref ApplicationControlProperty acp)
=> LdnGameData.GetArrayForApp(unfilteredDatas, ref acp);
}
}

View File

@@ -5,6 +5,14 @@ namespace Ryujinx.Ava.Utilities.AppLibrary
{
public class LdnGameDataReceivedEventArgs : EventArgs
{
public IEnumerable<LdnGameData> LdnData { get; set; }
public static new readonly LdnGameDataReceivedEventArgs Empty = new(null);
public LdnGameDataReceivedEventArgs(LdnGameData[] ldnData)
{
LdnData = ldnData ?? [];
}
public LdnGameData[] LdnData { get; set; }
}
}

View File

@@ -14,7 +14,7 @@ namespace Ryujinx.Ava.Utilities
public static string OverrideBackendThreading { get; private set; }
public static string OverrideHideCursor { get; private set; }
public static string BaseDirPathArg { get; private set; }
public static FilePath FirmwareToInstallPathArg { get; private set; }
public static FilePath FirmwareToInstallPathArg { get; set; }
public static string Profile { get; private set; }
public static string LaunchPathArg { get; private set; }
public static string LaunchApplicationId { get; private set; }

View File

@@ -1,5 +1,6 @@
using ARMeilleure;
using Gommon;
using Ryujinx.Ava.Utilities.AppLibrary;
using Ryujinx.Ava.Utilities.Configuration.System;
using Ryujinx.Ava.Utilities.Configuration.UI;
using Ryujinx.Common;
@@ -647,6 +648,14 @@ namespace Ryujinx.Ava.Utilities.Configuration
/// </summary>
public ReactiveObject<string> LdnServer { get; private set; }
public string GetLdnServer()
{
string ldnServer = LdnServer;
return string.IsNullOrEmpty(ldnServer)
? SharedConstants.DefaultLanPlayHost
: ldnServer;
}
public MultiplayerSection()
{
LanInterfaceId = new ReactiveObject<string>();