diff --git a/include/services/frd.hpp b/include/services/frd.hpp index 9a6ff066..c37ab01e 100644 --- a/include/services/frd.hpp +++ b/include/services/frd.hpp @@ -29,6 +29,7 @@ class FRDService { void getMyScreenName(u32 messsagePointer); void setClientSDKVersion(u32 messagePointer); void setNotificationMask(u32 messagePointer); + void updateGameModeDescription(u32 messagePointer); public: FRDService(Memory& mem) : mem(mem) {} diff --git a/src/core/services/frd.cpp b/src/core/services/frd.cpp index ad0c07dc..028224a5 100644 --- a/src/core/services/frd.cpp +++ b/src/core/services/frd.cpp @@ -1,7 +1,9 @@ -#include #include "services/frd.hpp" -#include "services/region_codes.hpp" + +#include + #include "ipc.hpp" +#include "services/region_codes.hpp" namespace FRDCommands { enum : u32 { @@ -13,7 +15,8 @@ namespace FRDCommands { GetMyPresence = 0x00080000, GetMyScreenName = 0x00090000, GetMyMii = 0x000A0000, - GetFriendKeyList = 0x00110080 + GetFriendKeyList = 0x00110080, + UpdateGameModeDescription = 0x001D0002, }; } @@ -31,6 +34,7 @@ void FRDService::handleSyncRequest(u32 messagePointer) { case FRDCommands::GetMyScreenName: getMyScreenName(messagePointer); break; case FRDCommands::SetClientSdkVersion: setClientSDKVersion(messagePointer); break; case FRDCommands::SetNotificationMask: setNotificationMask(messagePointer); break; + case FRDCommands::UpdateGameModeDescription: updateGameModeDescription(messagePointer); break; default: Helpers::panic("FRD service requested. Command: %08X\n", command); } } @@ -40,6 +44,14 @@ void FRDService::attachToEventNotification(u32 messagePointer) { mem.write32(messagePointer + 4, Result::Success); } +// This is supposed to post stuff on your user profile so uhh can't really emulate it +void FRDService::updateGameModeDescription(u32 messagePointer) { + log("FRD::UpdateGameModeDescription\n"); + + mem.write32(messagePointer, IPC::responseHeader(0x1D, 1, 0)); + mem.write32(messagePointer + 4, Result::Success); +} + void FRDService::getMyFriendKey(u32 messagePointer) { log("FRD::GetMyFriendKey\n");