Add FRD::UpdateGameModeDescription

This commit is contained in:
wheremyfoodat 2023-08-18 00:28:28 +03:00
parent 9bf7a9f486
commit 7a6572716f
2 changed files with 16 additions and 3 deletions

View file

@ -29,6 +29,7 @@ class FRDService {
void getMyScreenName(u32 messsagePointer); void getMyScreenName(u32 messsagePointer);
void setClientSDKVersion(u32 messagePointer); void setClientSDKVersion(u32 messagePointer);
void setNotificationMask(u32 messagePointer); void setNotificationMask(u32 messagePointer);
void updateGameModeDescription(u32 messagePointer);
public: public:
FRDService(Memory& mem) : mem(mem) {} FRDService(Memory& mem) : mem(mem) {}

View file

@ -1,7 +1,9 @@
#include <string>
#include "services/frd.hpp" #include "services/frd.hpp"
#include "services/region_codes.hpp"
#include <string>
#include "ipc.hpp" #include "ipc.hpp"
#include "services/region_codes.hpp"
namespace FRDCommands { namespace FRDCommands {
enum : u32 { enum : u32 {
@ -13,7 +15,8 @@ namespace FRDCommands {
GetMyPresence = 0x00080000, GetMyPresence = 0x00080000,
GetMyScreenName = 0x00090000, GetMyScreenName = 0x00090000,
GetMyMii = 0x000A0000, 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::GetMyScreenName: getMyScreenName(messagePointer); break;
case FRDCommands::SetClientSdkVersion: setClientSDKVersion(messagePointer); break; case FRDCommands::SetClientSdkVersion: setClientSDKVersion(messagePointer); break;
case FRDCommands::SetNotificationMask: setNotificationMask(messagePointer); break; case FRDCommands::SetNotificationMask: setNotificationMask(messagePointer); break;
case FRDCommands::UpdateGameModeDescription: updateGameModeDescription(messagePointer); break;
default: Helpers::panic("FRD service requested. Command: %08X\n", command); 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); 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) { void FRDService::getMyFriendKey(u32 messagePointer) {
log("FRD::GetMyFriendKey\n"); log("FRD::GetMyFriendKey\n");