diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs index 27c2d5b7a..d161644c0 100644 --- a/src/Ryujinx/AppHost.cs +++ b/src/Ryujinx/AppHost.cs @@ -3,6 +3,7 @@ using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Input; using Avalonia.Threading; +using DiscordRPC; using LibHac.Common; using LibHac.Ns; using LibHac.Tools.FsSystem; @@ -594,6 +595,8 @@ namespace Ryujinx.Ava gamepad?.ClearLed(); gamepad?.Dispose(); } + + DiscordIntegrationModule.GuestAppStartedAt = null; Rainbow.Disable(); Rainbow.Reset(); @@ -685,6 +688,8 @@ namespace Ryujinx.Ava public async Task LoadGuestApplication(BlitStruct? customNacpData = null) { + DiscordIntegrationModule.GuestAppStartedAt = Timestamps.Now; + InitEmulatedSwitch(); MainWindow.UpdateGraphicsConfig(); diff --git a/src/Ryujinx/DiscordIntegrationModule.cs b/src/Ryujinx/DiscordIntegrationModule.cs index 18bdfaf17..5d23bda2b 100644 --- a/src/Ryujinx/DiscordIntegrationModule.cs +++ b/src/Ryujinx/DiscordIntegrationModule.cs @@ -14,7 +14,8 @@ namespace Ryujinx.Ava { public static class DiscordIntegrationModule { - public static Timestamps StartedAt { get; set; } + public static Timestamps EmulatorStartedAt { get; set; } + public static Timestamps GuestAppStartedAt { get; set; } private static string VersionString => (ReleaseInformation.IsCanaryBuild ? "Canary " : string.Empty) + $"v{ReleaseInformation.Version}"; @@ -43,7 +44,7 @@ namespace Ryujinx.Ava }, Details = "Main Menu", State = "Idling", - Timestamps = StartedAt + Timestamps = EmulatorStartedAt }; ConfigurationState.Instance.EnableDiscordIntegration.Event += Update; @@ -100,7 +101,7 @@ namespace Ryujinx.Ava State = appMeta.LastPlayed.HasValue && appMeta.TimePlayed.TotalSeconds > 5 ? $"Total play time: {ValueFormatUtils.FormatTimeSpan(appMeta.TimePlayed)}" : "Never played", - Timestamps = Timestamps.Now + Timestamps = GuestAppStartedAt ??= Timestamps.Now }); } diff --git a/src/Ryujinx/Headless/HeadlessRyujinx.Init.cs b/src/Ryujinx/Headless/HeadlessRyujinx.Init.cs index 7b29cd59c..aa8238fc6 100644 --- a/src/Ryujinx/Headless/HeadlessRyujinx.Init.cs +++ b/src/Ryujinx/Headless/HeadlessRyujinx.Init.cs @@ -33,7 +33,7 @@ namespace Ryujinx.Headless public static void Initialize() { // Ensure Discord presence timestamp begins at the absolute start of when Ryujinx is launched - DiscordIntegrationModule.StartedAt = Timestamps.Now; + DiscordIntegrationModule.EmulatorStartedAt = Timestamps.Now; // Delete backup files after updating. Task.Run(Updater.CleanupUpdate); diff --git a/src/Ryujinx/Program.cs b/src/Ryujinx/Program.cs index e7a4fde56..1f0df9b2f 100644 --- a/src/Ryujinx/Program.cs +++ b/src/Ryujinx/Program.cs @@ -94,7 +94,7 @@ namespace Ryujinx.Ava private static void Initialize(string[] args) { // Ensure Discord presence timestamp begins at the absolute start of when Ryujinx is launched - DiscordIntegrationModule.StartedAt = Timestamps.Now; + DiscordIntegrationModule.EmulatorStartedAt = Timestamps.Now; // Parse arguments CommandLineState.ParseArguments(args);