From 6ea5c55ec39e5740eb1794cd148111be3c5d103a Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Thu, 7 Aug 2025 16:54:58 +0300 Subject: [PATCH] FRD: Stub SaveLocalAccountData --- include/services/frd.hpp | 1 + src/core/services/frd.cpp | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/include/services/frd.hpp b/include/services/frd.hpp index 914d9251..a5aee738 100644 --- a/include/services/frd.hpp +++ b/include/services/frd.hpp @@ -40,6 +40,7 @@ class FRDService { void hasLoggedIn(u32 messagePointer); void isOnline(u32 messagePointer); void logout(u32 messagePointer); + void saveLocalAccountData(u32 messagePointer); void setClientSDKVersion(u32 messagePointer); void setNotificationMask(u32 messagePointer); void updateGameModeDescription(u32 messagePointer); diff --git a/src/core/services/frd.cpp b/src/core/services/frd.cpp index 63e951a6..d8bcd56f 100644 --- a/src/core/services/frd.cpp +++ b/src/core/services/frd.cpp @@ -27,6 +27,7 @@ namespace FRDCommands { GetFriendAttributeFlags = 0x00170042, UpdateGameModeDescription = 0x001D0002, + SaveLocalAccountData = 0x04050000, UpdateMii = 0x040C0800, }; } @@ -61,6 +62,7 @@ void FRDService::handleSyncRequest(u32 messagePointer, FRDService::Type type) { if (type == Type::A) { switch (command) { case FRDCommands::UpdateMii: updateMii(messagePointer); break; + case FRDCommands::SaveLocalAccountData: saveLocalAccountData(messagePointer); break; default: Helpers::panic("FRD:A service requested. Command: %08X\n", command); break; } } else { @@ -265,6 +267,13 @@ void FRDService::logout(u32 messagePointer) { mem.write32(messagePointer + 4, Result::Success); } +void FRDService::saveLocalAccountData(u32 messagePointer) { + log("FRD::SaveLocalAccountData (stubbed)\n"); + + mem.write32(messagePointer, IPC::responseHeader(0x405, 1, 0)); + mem.write32(messagePointer + 4, Result::Success); +} + void FRDService::updateMii(u32 messagePointer) { log("FRD::UpdateMii (stubbed)\n");