From 7f27aad88f040f3370311b56ff52466080e7d08e Mon Sep 17 00:00:00 2001 From: Mabel Date: Sun, 17 May 2026 20:04:24 -0700 Subject: [PATCH] More Consistent Updates For Tomodachi Life LTD RPC Tomodachi Life doesn't seem to send the PlayReport containing `"Money"` nearly enough for it to be worth including it, it barely updates, and keeping it like this makes the island level not update. --- .../Systems/PlayReport/PlayReports.Formatters.cs | 14 ++++++++------ src/Ryujinx/Systems/PlayReport/PlayReports.cs | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Ryujinx/Systems/PlayReport/PlayReports.Formatters.cs b/src/Ryujinx/Systems/PlayReport/PlayReports.Formatters.cs index ba8c158b1..e5cd04630 100644 --- a/src/Ryujinx/Systems/PlayReport/PlayReports.Formatters.cs +++ b/src/Ryujinx/Systems/PlayReport/PlayReports.Formatters.cs @@ -1070,13 +1070,15 @@ namespace Ryujinx.Ava.Systems.PlayReport _ => FormattedValue.ForceReset }; - private static FormattedValue TomodachiLifeLTD_Status(MultiValue values) + private static FormattedValue TomodachiLifeLTD_Status(SingleValue value) { - int miiCount = values.Matched[0].IntValue; - int fountainLevel = values.Matched[1].IntValue; - int money = values.Matched[2].IntValue; - - return $"Looking after {"Mii".ToQuantity(miiCount)}, Fountain Lvl. {fountainLevel}, {((float)money / 100):C2}"; + MessagePackObject messagePackObject = value.Matched.PackedValue; + MessagePackObjectDictionary messagePackObjectDictionary = messagePackObject.AsDictionary(); + + int miiCount = messagePackObjectDictionary["MiiNum"].AsInt32(); + int fountainLevel = messagePackObjectDictionary["FountainLevel"].AsInt32(); + + return $"Looking after {"Mii".ToQuantity(miiCount)}, with an island level of {fountainLevel}"; } } } diff --git a/src/Ryujinx/Systems/PlayReport/PlayReports.cs b/src/Ryujinx/Systems/PlayReport/PlayReports.cs index 51199f24b..11f6814b2 100644 --- a/src/Ryujinx/Systems/PlayReport/PlayReports.cs +++ b/src/Ryujinx/Systems/PlayReport/PlayReports.cs @@ -123,8 +123,8 @@ namespace Ryujinx.Ava.Systems.PlayReport [ "010051f0207b2000", "0100ca502552a000" ], // Tomodachi Life: Living the Dream + Demo spec => spec .WithDescription( - "based on your mii count, total money, and fountain level.") - .AddMultiValueFormatter(["CountMii", "FountainLevel", "Money"], TomodachiLifeLTD_Status) + "based on your total Mii count and island level.") + .AddValueFormatter("Common", TomodachiLifeLTD_Status) ) );