mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-05-28 01:19:13 +12:00
[ACT] GetAccountDataBlock
This commit is contained in:
parent
25a42dd087
commit
c24970f385
2 changed files with 17 additions and 1 deletions
|
@ -13,6 +13,7 @@ class ACTService {
|
||||||
// Service commands
|
// Service commands
|
||||||
void initialize(u32 messagePointer);
|
void initialize(u32 messagePointer);
|
||||||
void generateUUID(u32 messagePointer);
|
void generateUUID(u32 messagePointer);
|
||||||
|
void getAccountDataBlock(u32 messagePointer);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ACTService(Memory& mem) : mem(mem) {}
|
ACTService(Memory& mem) : mem(mem) {}
|
||||||
|
|
|
@ -4,7 +4,8 @@
|
||||||
namespace ACTCommands {
|
namespace ACTCommands {
|
||||||
enum : u32 {
|
enum : u32 {
|
||||||
Initialize = 0x00010084,
|
Initialize = 0x00010084,
|
||||||
GenerateUUID = 0x000D0040
|
GetAccountDataBlock = 0x000600C2,
|
||||||
|
GenerateUUID = 0x000D0040,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,6 +15,7 @@ void ACTService::handleSyncRequest(u32 messagePointer) {
|
||||||
const u32 command = mem.read32(messagePointer);
|
const u32 command = mem.read32(messagePointer);
|
||||||
switch (command) {
|
switch (command) {
|
||||||
case ACTCommands::GenerateUUID: generateUUID(messagePointer); break;
|
case ACTCommands::GenerateUUID: generateUUID(messagePointer); break;
|
||||||
|
case ACTCommands::GetAccountDataBlock: getAccountDataBlock(messagePointer); break;
|
||||||
case ACTCommands::Initialize: initialize(messagePointer); break;
|
case ACTCommands::Initialize: initialize(messagePointer); break;
|
||||||
default: Helpers::panic("ACT service requested. Command: %08X\n", command);
|
default: Helpers::panic("ACT service requested. Command: %08X\n", command);
|
||||||
}
|
}
|
||||||
|
@ -33,3 +35,16 @@ void ACTService::generateUUID(u32 messagePointer) {
|
||||||
mem.write32(messagePointer, IPC::responseHeader(0xD, 1, 0));
|
mem.write32(messagePointer, IPC::responseHeader(0xD, 1, 0));
|
||||||
mem.write32(messagePointer + 4, Result::Success);
|
mem.write32(messagePointer + 4, Result::Success);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ACTService::getAccountDataBlock(u32 messagePointer) {
|
||||||
|
log("ACT::GetAccountDataBlock (stubbed)\n");
|
||||||
|
|
||||||
|
const u32 size = mem.read32(messagePointer + 8);
|
||||||
|
const u32 blkID = mem.read32(messagePointer + 12);
|
||||||
|
const u32 outputPointer = mem.read32(messagePointer + 20);
|
||||||
|
|
||||||
|
// TODO: This header is probably also wrong
|
||||||
|
// Also we need to populate the data block here. Half of it is undocumented though >_<
|
||||||
|
mem.write32(messagePointer, IPC::responseHeader(0x6, 1, 0));
|
||||||
|
mem.write32(messagePointer + 4, Result::Success);
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue