mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-04-09 15:45:40 +12:00
Stub LDR_RO::LoadCRONew
This commit is contained in:
parent
d2ae87ae20
commit
9d0c4c150e
2 changed files with 22 additions and 1 deletions
|
@ -13,6 +13,7 @@ class LDRService {
|
|||
// Service commands
|
||||
void initialize(u32 messagePointer);
|
||||
void loadCRR(u32 messagePointer);
|
||||
void loadCRONew(u32 messagePointer);
|
||||
|
||||
public:
|
||||
LDRService(Memory& mem) : mem(mem) {}
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
namespace LDRCommands {
|
||||
enum : u32 {
|
||||
Initialize = 0x000100C2,
|
||||
LoadCRR = 0x00020082
|
||||
LoadCRR = 0x00020082,
|
||||
LoadCRONew = 0x000902C2,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -15,6 +16,7 @@ void LDRService::handleSyncRequest(u32 messagePointer) {
|
|||
switch (command) {
|
||||
case LDRCommands::Initialize: initialize(messagePointer); break;
|
||||
case LDRCommands::LoadCRR: loadCRR(messagePointer); break;
|
||||
case LDRCommands::LoadCRONew: loadCRONew(messagePointer); break;
|
||||
default: Helpers::panic("LDR::RO service requested. Command: %08X\n", command);
|
||||
}
|
||||
}
|
||||
|
@ -38,4 +40,22 @@ void LDRService::loadCRR(u32 messagePointer) {
|
|||
log("LDR_RO::LoadCRR (buffer = %08X, size = %08X, process = %X)\n", crrPointer, size, process);
|
||||
mem.write32(messagePointer, IPC::responseHeader(0x2, 1, 0));
|
||||
mem.write32(messagePointer + 4, Result::Success);
|
||||
}
|
||||
|
||||
void LDRService::loadCRONew(u32 messagePointer) {
|
||||
const u32 croPointer = mem.read32(messagePointer + 4);
|
||||
const u32 mapVaddr = mem.read32(messagePointer + 8);
|
||||
const u32 size = mem.read32(messagePointer + 12);
|
||||
const u32 dataVaddr = mem.read32(messagePointer + 16);
|
||||
const u32 dataSize = mem.read32(messagePointer + 24);
|
||||
const u32 bssVaddr = mem.read32(messagePointer + 28);
|
||||
const u32 bssSize = mem.read32(messagePointer + 32);
|
||||
const bool autoLink = mem.read32(messagePointer + 36) != 0;
|
||||
const u32 fixLevel = mem.read32(messagePointer + 40);
|
||||
const Handle process = mem.read32(messagePointer + 52);
|
||||
|
||||
log("LDR_RO::LoadCRONew (buffer = %08X, vaddr = %08X, size = %08X, .data vaddr = %08X, .data size = %08X, .bss vaddr = %08X, .bss size = %08X, auto link = %d, fix level = %X, process = %X)\n", croPointer, mapVaddr, size, dataVaddr, dataSize, bssVaddr, bssSize, autoLink, fixLevel, process);
|
||||
mem.write32(messagePointer, IPC::responseHeader(0x9, 2, 0));
|
||||
mem.write32(messagePointer + 4, Result::Success);
|
||||
mem.write32(messagePointer + 8, size);
|
||||
}
|
Loading…
Add table
Reference in a new issue