diff --git a/include/services/frd.hpp b/include/services/frd.hpp index b3891338e..b9b3b0fe5 100644 --- a/include/services/frd.hpp +++ b/include/services/frd.hpp @@ -26,6 +26,7 @@ class FRDService { void getFriendKeyList(u32 messagePointer); void getFriendPresence(u32 messagePointer); void getFriendProfile(u32 messagePointer); + void getFriendRelationship(u32 messagePointer); void getMyComment(u32 messagePointer); void getMyFavoriteGame(u32 messagePointer); void getMyFriendKey(u32 messagePointer); diff --git a/src/core/services/frd.cpp b/src/core/services/frd.cpp index 19096e8d9..fed5224a2 100644 --- a/src/core/services/frd.cpp +++ b/src/core/services/frd.cpp @@ -23,6 +23,7 @@ namespace FRDCommands { GetFriendKeyList = 0x00110080, GetFriendPresence = 0x00120042, GetFriendProfile = 0x00150042, + GetFriendRelationship = 0x00160042, GetFriendAttributeFlags = 0x00170042, UpdateGameModeDescription = 0x001D0002, @@ -40,6 +41,7 @@ void FRDService::handleSyncRequest(u32 messagePointer, FRDService::Type type) { case FRDCommands::GetFriendKeyList: getFriendKeyList(messagePointer); break; case FRDCommands::GetFriendPresence: getFriendPresence(messagePointer); break; case FRDCommands::GetFriendProfile: getFriendProfile(messagePointer); break; + case FRDCommands::GetFriendRelationship: getFriendRelationship(messagePointer); break; case FRDCommands::GetMyComment: getMyComment(messagePointer); break; case FRDCommands::GetMyFriendKey: getMyFriendKey(messagePointer); break; case FRDCommands::GetMyMii: getMyMii(messagePointer); break; @@ -268,4 +270,12 @@ void FRDService::updateMii(u32 messagePointer) { mem.write32(messagePointer, IPC::responseHeader(0x40C, 1, 0)); mem.write32(messagePointer + 4, Result::Success); +} + +void FRDService::getFriendRelationship(u32 messagePointer) { + log("FRD::GetFriendRelationship (stubbed)\n"); + + // TODO: What does this return? + mem.write32(messagePointer, IPC::responseHeader(0x16, 1, 0)); + mem.write32(messagePointer + 4, Result::Success); } \ No newline at end of file