diff --git a/include/services/frd.hpp b/include/services/frd.hpp index c2f4f376..5e579e99 100644 --- a/include/services/frd.hpp +++ b/include/services/frd.hpp @@ -23,6 +23,7 @@ class FRDService { void getMyFriendKey(u32 messagePointer); void getMyPresence(u32 messagePointer); void setClientSDKVersion(u32 messagePointer); + void setNotificationMask(u32 messagePointer); public: FRDService(Memory& mem) : mem(mem) {} diff --git a/src/core/services/frd.cpp b/src/core/services/frd.cpp index 2436811e..e51bcadf 100644 --- a/src/core/services/frd.cpp +++ b/src/core/services/frd.cpp @@ -2,6 +2,7 @@ namespace FRDCommands { enum : u32 { + SetNotificationMask = 0x00210040, SetClientSdkVersion = 0x00320042, GetMyFriendKey = 0x00050000, GetMyPresence = 0x00080000, @@ -24,6 +25,7 @@ void FRDService::handleSyncRequest(u32 messagePointer) { case FRDCommands::GetMyFriendKey: getMyFriendKey(messagePointer); break; case FRDCommands::GetMyPresence: getMyPresence(messagePointer); break; case FRDCommands::SetClientSdkVersion: setClientSDKVersion(messagePointer); break; + case FRDCommands::SetNotificationMask: setNotificationMask(messagePointer); break; default: Helpers::panic("FRD service requested. Command: %08X\n", command); } } @@ -69,5 +71,10 @@ void FRDService::setClientSDKVersion(u32 messagePointer) { u32 version = mem.read32(messagePointer + 4); log("FRD::SetClientSdkVersion (version = %d)\n", version); + mem.write32(messagePointer + 4, Result::Success); +} + +void FRDService::setNotificationMask(u32 messagePointer) { + log("FRD::SetNotificationMask (Not documented)\n"); mem.write32(messagePointer + 4, Result::Success); } \ No newline at end of file