From 38fde0f6080686838ad3edd544ac48d46cf296e9 Mon Sep 17 00:00:00 2001 From: wheremyfoodat Date: Sun, 12 Mar 2023 23:20:24 +0200 Subject: [PATCH] [BOSS] Stub ReceiveProperty --- include/services/boss.hpp | 1 + src/core/services/boss.cpp | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/services/boss.hpp b/include/services/boss.hpp index c1fa2d12..3d9f71c7 100644 --- a/include/services/boss.hpp +++ b/include/services/boss.hpp @@ -13,6 +13,7 @@ class BOSSService { void initializeSession(u32 messagePointer); void getOptoutFlag(u32 messagePointer); void getTaskIdList(u32 messagePointer); + void receiveProperty(u32 messagePointer); s8 optoutFlag; public: diff --git a/src/core/services/boss.cpp b/src/core/services/boss.cpp index 56e6b811..2947f1da 100644 --- a/src/core/services/boss.cpp +++ b/src/core/services/boss.cpp @@ -4,7 +4,8 @@ namespace BOSSCommands { enum : u32 { InitializeSession = 0x00010082, GetOptoutFlag = 0x000A0000, - GetTaskIdList = 0x000E0000 + GetTaskIdList = 0x000E0000, + ReceiveProperty = 0x00160082 }; } @@ -24,6 +25,7 @@ void BOSSService::handleSyncRequest(u32 messagePointer) { case BOSSCommands::GetOptoutFlag: getOptoutFlag(messagePointer); break; case BOSSCommands::GetTaskIdList: getTaskIdList(messagePointer); break; case BOSSCommands::InitializeSession: initializeSession(messagePointer); break; + case BOSSCommands::ReceiveProperty: receiveProperty(messagePointer); break; default: Helpers::panic("BOSS service requested. Command: %08X\n", command); } } @@ -42,4 +44,14 @@ void BOSSService::getOptoutFlag(u32 messagePointer) { void BOSSService::getTaskIdList(u32 messagePointer) { log("BOSS::GetTaskIdList (stubbed)\n"); mem.write32(messagePointer + 4, Result::Success); +} + +void BOSSService::receiveProperty(u32 messagePointer) { + const u32 id = mem.read32(messagePointer + 4); + const u32 size = mem.read32(messagePointer + 8); + const u32 ptr = mem.read32(messagePointer + 16); + + log("BOSS::ReceiveProperty(stubbed) (id = %d, size = %08X, ptr = %08X)\n", id, size, ptr); + mem.write32(messagePointer + 4, Result::Success); + mem.write32(messagePointer + 8, 0); // Read size } \ No newline at end of file