Compare commits

..

14 Commits

Author SHA1 Message Date
Evan Husted
5b0302b7c9 Merge branch 'master' into pr/503 2025-01-16 05:03:20 -06:00
Hack茶ん
814c0526d2 Korean translations for compat list (#502) 2025-01-16 04:57:32 -06:00
Evan Husted
a5a4ef38e6 HLE: Stub IHidServer SetGestureOutputRanges (#524)
Lets "Donkey Kong Country Returns HD" get into main gameplay.
2025-01-16 02:39:39 -06:00
Daenorth
779d317de6 Merge branch 'master' into master 2025-01-15 18:37:44 +01:00
Evan Husted
c17e3bfcdf genuinely dont know how that was still there, i thought i got rid of UI.Common 2025-01-15 03:01:17 -06:00
Evan Husted
017f46f318 HLE: misc: throw a more descriptive error when the loaded processes doesn't contain _latestPid (likely missing FW) 2025-01-15 03:01:17 -06:00
Daenorth
299c87db64 Merge branch 'master' into master 2025-01-13 21:49:33 +01:00
Daenorth
e1e3c1f75b Merge branch 'master' into master 2025-01-12 22:05:16 +01:00
Daenorth
7509bf8484 Merge branch 'master' into master 2025-01-12 20:30:53 +01:00
Daenorth
2666a15ffb Merge branch 'master' into master 2025-01-08 19:51:36 +01:00
Evan Husted
bc6de21846 unnecessary escaping 2025-01-08 05:50:34 -06:00
Daenorth
8052a5480c no_No Norwegian locales update 2025-01-08 12:34:08 +01:00
Daenorth
2df1d50901 Merge branch 'Ryubing:master' into master 2025-01-08 12:13:27 +01:00
Daenorth
95a8890bc2 Update to no_NO Norwegian Translation with new resync & Metal backend text. 2024-12-31 16:56:41 +01:00
6 changed files with 76 additions and 62 deletions

View File

@@ -0,0 +1,10 @@
using System;
namespace Ryujinx.Common
{
public class RyujinxException : Exception
{
public RyujinxException(string message) : base(message)
{ }
}
}

View File

@@ -702,6 +702,18 @@ namespace Ryujinx.HLE.HOS.Services.Hid
return ResultCode.Success;
}
[CommandCmif(92)]
// SetGestureOutputRanges(pid, ushort Unknown0)
public ResultCode SetGestureOutputRanges(ServiceCtx context)
{
ulong pid = context.Request.HandleDesc.PId;
ushort unknown0 = context.RequestData.ReadUInt16();
Logger.Stub?.PrintStub(LogClass.ServiceHid, new { pid, unknown0 });
return ResultCode.Success;
}
[CommandCmif(100)]
// SetSupportedNpadStyleSet(pid, nn::applet::AppletResourceUserId, nn::hid::NpadStyleTag)

View File

@@ -26,7 +26,17 @@ namespace Ryujinx.HLE.Loaders.Processes
private ulong _latestPid;
public ProcessResult ActiveApplication => _processesByPid[_latestPid];
public ProcessResult ActiveApplication
{
get
{
if (!_processesByPid.TryGetValue(_latestPid, out ProcessResult value))
throw new RyujinxException(
$"The HLE Process map did not have a process with ID {_latestPid}. Are you missing firmware?");
return value;
}
}
public ProcessLoader(Switch device)
{

View File

@@ -1,36 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DefaultItemExcludes>$(DefaultItemExcludes);._*</DefaultItemExcludes>
</PropertyGroup>
<ItemGroup>
<None Remove="Resources\Controller_JoyConLeft.svg" />
<None Remove="Resources\Controller_JoyConPair.svg" />
<None Remove="Resources\Controller_JoyConRight.svg" />
<None Remove="Resources\Controller_ProCon.svg" />
<None Remove="Resources\Icon_NCA.png" />
<None Remove="Resources\Icon_NRO.png" />
<None Remove="Resources\Icon_NSO.png" />
<None Remove="Resources\Icon_NSP.png" />
<None Remove="Resources\Icon_XCI.png" />
<None Remove="Resources\Logo_Amiibo.png" />
<None Remove="Resources\Logo_Discord.png" />
<None Remove="Resources\Logo_GitHub.png" />
<None Remove="Resources\Logo_Ryujinx.png" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="DiscordRichPresence" />
<PackageReference Include="DynamicData" />
<PackageReference Include="securifybv.ShellLink" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Ryujinx.Common\Ryujinx.Common.csproj" />
<ProjectReference Include="..\Ryujinx.HLE\Ryujinx.HLE.csproj" />
<ProjectReference Include="..\Ryujinx.Graphics.Vulkan\Ryujinx.Graphics.Vulkan.csproj" />
</ItemGroup>
</Project>

View File

@@ -10435,7 +10435,7 @@
"it_IT": "Finestra di input",
"ja_JP": "入力ダイアログ",
"ko_KR": "대화 상자 입력",
"no_NO": "",
"no_NO": "Dialogboksen Inndata",
"pl_PL": "Okno Dialogowe Wprowadzania",
"pt_BR": "Diálogo de texto",
"ru_RU": "Диалоговое окно ввода",
@@ -22634,8 +22634,8 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "이 호환성 목록에는 오래된 항목이 포함되어 있을 수 있습니다.\n\"게임 내\" 상태에서 게임을 테스트하는 것을 반대하지 마십시오.",
"no_NO": "Denne kompatibilitetslisten kan inneholde oppføringer som er tomme for data.\nVær ikke imot å teste spill i statusen «Ingame».",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22659,8 +22659,8 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "호환성 항목 검색...",
"no_NO": "Søk i kompatibilitetsoppføringer...",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22684,8 +22684,8 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "호환성 목록 열기",
"no_NO": "Åpne kompatibilitetslisten",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22709,8 +22709,8 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "보유 게임만 표시",
"no_NO": "Vis bare eide spill",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22734,8 +22734,8 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "플레이 가능",
"no_NO": "Spillbar",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22759,7 +22759,7 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"ko_KR": "게임 내",
"no_NO": "",
"pl_PL": "",
"pt_BR": "",
@@ -22784,8 +22784,8 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "메뉴",
"no_NO": "Menyer",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22809,8 +22809,8 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "부츠",
"no_NO": "Starter",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22834,8 +22834,8 @@
"he_IL": "",
"it_IT": "",
"ja_JP": "",
"ko_KR": "",
"no_NO": "",
"ko_KR": "없음",
"no_NO": "Ingenting",
"pl_PL": "",
"pt_BR": "",
"ru_RU": "",
@@ -22848,4 +22848,4 @@
}
}
]
}
}

View File

@@ -21,6 +21,7 @@ using Ryujinx.Graphics.Vulkan.MoltenVK;
using Ryujinx.Headless;
using Ryujinx.SDL2.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
@@ -243,16 +244,33 @@ namespace Ryujinx.Ava
: $"Launch Mode: {AppDataManager.Mode}");
}
internal static void ProcessUnhandledException(object sender, Exception ex, bool isTerminating)
internal static void ProcessUnhandledException(object sender, Exception initialException, bool isTerminating)
{
Logger.Log log = Logger.Error ?? Logger.Notice;
string message = $"Unhandled exception caught: {ex}";
// ReSharper disable once ConstantConditionalAccessQualifier
if (sender?.GetType()?.AsPrettyString() is { } senderName)
log.Print(LogClass.Application, message, senderName);
List<Exception> exceptions = [];
if (initialException is AggregateException ae)
{
exceptions.AddRange(ae.InnerExceptions);
}
else
log.PrintMsg(LogClass.Application, message);
{
exceptions.Add(initialException);
}
foreach (var e in exceptions)
{
string message = $"Unhandled exception caught: {e}";
// ReSharper disable once ConstantConditionalAccessQualifier
if (sender?.GetType()?.AsPrettyString() is { } senderName)
log.Print(LogClass.Application, message, senderName);
else
log.PrintMsg(LogClass.Application, message);
}
if (isTerminating)
Exit();