fix: stopped overlayDisp from crashing

This commit is contained in:
Jacobwasbeast 2025-02-12 21:29:29 -06:00
parent 125edb894b
commit 8bc5d1e61d
6 changed files with 37 additions and 12 deletions

View File

@ -24,6 +24,8 @@ namespace Ryujinx.HLE.HOS.Applets
case AppletId.LibAppletWeb: case AppletId.LibAppletWeb:
case AppletId.LibAppletShop: case AppletId.LibAppletShop:
case AppletId.LibAppletOff: case AppletId.LibAppletOff:
case AppletId.LibAppletOffFw17:
case AppletId.LibAppletOff2Fw17:
return new BrowserApplet(); return new BrowserApplet();
case AppletId.Cabinet: case AppletId.Cabinet:
return new CabinetApplet(system); return new CabinetApplet(system);

View File

@ -318,20 +318,21 @@ namespace Ryujinx.HLE.HOS.Applets
private void SendButtonAppletMessageLocked(AppletMessage message) private void SendButtonAppletMessageLocked(AppletMessage message)
{ {
if (message == AppletMessage.DetectShortPressingHomeButton)
{
foreach (var applet in _applets.Values)
{
if (applet != _homeMenu && applet != _overlayDisp && _foregroundRequestedApplet==applet)
{
applet.ProcessHandle.SetActivity(true);
}
}
}
if (_homeMenu != null) if (_homeMenu != null)
{ {
lock (_homeMenu.Lock) lock (_homeMenu.Lock)
{ {
if (message == AppletMessage.DetectShortPressingHomeButton)
{
foreach (var applet in _applets.Values)
{
if (applet != _homeMenu && _foregroundRequestedApplet==applet)
{
applet.ProcessHandle.SetActivity(true);
}
}
}
_homeMenu.AppletState.PushUnorderedMessage(message); _homeMenu.AppletState.PushUnorderedMessage(message);
} }
} }
@ -621,7 +622,7 @@ namespace Ryujinx.HLE.HOS.Applets
public void PauseOldWindows(ulong pid) public void PauseOldWindows(ulong pid)
{ {
RealApplet applet = GetByAruId(pid); RealApplet applet = GetByAruId(pid);
if (applet?.CallerApplet != null&&applet?.CallerApplet!=_homeMenu) if (applet?.CallerApplet != null&&applet?.CallerApplet!=_homeMenu&&applet?.CallerApplet!=_overlayDisp)
{ {
applet.CallerApplet.ProcessHandle.SetActivity(true); applet.CallerApplet.ProcessHandle.SetActivity(true);
} }

View File

@ -318,6 +318,14 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(68)]
// GetBuiltInDisplayType() -> u32 type
public ResultCode GetBuiltInDisplayType(ServiceCtx context)
{
context.ResponseData.Write(0);
return ResultCode.Success;
}
[CommandCmif(91)] // 7.0.0+ [CommandCmif(91)] // 7.0.0+
// GetCurrentPerformanceConfiguration() -> nn::apm::PerformanceConfiguration // GetCurrentPerformanceConfiguration() -> nn::apm::PerformanceConfiguration

View File

@ -20,6 +20,8 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE
PhotoViewer = 0x15, PhotoViewer = 0x15,
Settings = 0x16, Settings = 0x16,
LibAppletOff = 0x17, LibAppletOff = 0x17,
LibAppletOffFw17 = 0x32,
LibAppletOff2Fw17 = 0x33,
LibAppletWhitelisted = 0x18, LibAppletWhitelisted = 0x18,
LibAppletAuth = 0x19, LibAppletAuth = 0x19,
MyPage = 0x1A, MyPage = 0x1A,

View File

@ -1,4 +1,6 @@
using Ryujinx.Common.Logging; using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Ipc;
using Ryujinx.HLE.HOS.Kernel.Threading;
namespace Ryujinx.HLE.HOS.Services.Audio namespace Ryujinx.HLE.HOS.Services.Audio
{ {
@ -80,6 +82,16 @@ namespace Ryujinx.HLE.HOS.Services.Audio
return ResultCode.Success; return ResultCode.Success;
} }
[CommandCmif(34)]
// AcquireTargetNotification() -> handle<copy>
public ResultCode AcquireTargetNotification(ServiceCtx context)
{
KEvent ev = new KEvent(context.Device.System.KernelContext);
context.Process.HandleTable.GenerateHandle(ev.ReadableEvent, out int handle);
context.Response.HandleDesc = IpcHandleDesc.MakeCopy(handle);
return ResultCode.Success;
}
[CommandCmif(5000)] [CommandCmif(5000)]
// Unknown5000() -> bool // 19.0.0+ // Unknown5000() -> bool // 19.0.0+
public ResultCode Unknown5000(ServiceCtx context) public ResultCode Unknown5000(ServiceCtx context)

View File

@ -967,7 +967,7 @@ namespace Ryujinx.Ava
ConfigurationState.Instance.Multiplayer.LdnServer, ConfigurationState.Instance.Multiplayer.LdnServer,
ConfigurationState.Instance.Graphics.CustomVSyncInterval.Value, ConfigurationState.Instance.Graphics.CustomVSyncInterval.Value,
ConfigurationState.Instance.Hacks.ShowDirtyHacks ? ConfigurationState.Instance.Hacks.EnabledHacks : null)); ConfigurationState.Instance.Hacks.ShowDirtyHacks ? ConfigurationState.Instance.Hacks.EnabledHacks : null));
//Device.LoadSystemProgramId(0x010000000000100C); Device.LoadSystemProgramId(0x010000000000100C);
} }
private static IHardwareDeviceDriver InitializeAudio() private static IHardwareDeviceDriver InitializeAudio()