More home menu

This commit is contained in:
wheremyfoodat 2024-12-09 21:19:12 +02:00
parent 38ef0dbe4c
commit 76ab4e917f
8 changed files with 27 additions and 7 deletions

View file

@ -130,7 +130,7 @@ u8 Memory::read8(u32 vaddr) {
case ConfigMem::WifiMac + 4:
case ConfigMem::WifiMac + 5: return MACAddress[vaddr - ConfigMem::WifiMac];
default: Helpers::panic("Unimplemented 8-bit read, addr: %08X", vaddr);
default: return 0; Helpers::panic("Unimplemented 8-bit read, addr: %08X", vaddr);
}
}
}
@ -145,7 +145,7 @@ u16 Memory::read16(u32 vaddr) {
} else {
switch (vaddr) {
case ConfigMem::WifiMac + 4: return (MACAddress[5] << 8) | MACAddress[4]; // Wifi MAC: Last 2 bytes of MAC Address
default: Helpers::panic("Unimplemented 16-bit read, addr: %08X", vaddr);
default: return 0; Helpers::panic("Unimplemented 16-bit read, addr: %08X", vaddr);
}
}
}
@ -196,6 +196,7 @@ u32 Memory::read32(u32 vaddr) {
return *(u32*)&vram[vaddr - VirtualAddrs::VramStart];
}
return 0;
Helpers::panic("Unimplemented 32-bit read, addr: %08X", vaddr);
break;
}

View file

@ -36,7 +36,10 @@ void ACService::handleSyncRequest(u32 messagePointer) {
case ACCommands::IsConnected: isConnected(messagePointer); break;
case ACCommands::RegisterDisconnectEvent: registerDisconnectEvent(messagePointer); break;
case ACCommands::SetClientVersion: setClientVersion(messagePointer); break;
default: Helpers::panic("AC service requested. Command: %08X\n", command);
default:
mem.write32(messagePointer + 4, Result::Success);
Helpers::warn("AC service requested. Command: %08X\n", command);
break;
}
}

View file

@ -88,7 +88,10 @@ void BOSSService::handleSyncRequest(u32 messagePointer) {
mem.write32(messagePointer + 4, Result::Success);
break;
default: Helpers::panic("BOSS service requested. Command: %08X\n", command);
default:
mem.write32(messagePointer + 4, Result::Success);
Helpers::warn("BOSS service requested. Command: %08X\n", command);
break;
}
}

View file

@ -176,6 +176,8 @@ void CFGService::getConfigInfo(u32 output, u32 blockID, u32 size, u32 permission
} else if (size == 4 && blockID == 0x180000) {
// Infrared LED related?
mem.write32(output, 0);
} else if (size == 1 && blockID == 0xE0000) {
mem.write8(output, 0);
} else {
Helpers::panic("Unhandled GetConfigInfoBlk2 configuration. Size = %d, block = %X", size, blockID);
}

View file

@ -11,6 +11,9 @@ void NewsSService::reset() {}
void NewsSService::handleSyncRequest(u32 messagePointer) {
const u32 command = mem.read32(messagePointer);
switch (command) {
default: Helpers::panic("news:s service requested. Command: %08X\n", command);
default:
mem.write32(messagePointer + 4, Result::Success);
Helpers::warn("news:s service requested. Command: %08X\n", command);
break;
}
}

View file

@ -32,7 +32,10 @@ void NIMService::handleSyncRequest(u32 messagePointer, Type type) {
case NIMCommands::GetTaskInfos: getTaskInfos(messagePointer); break;
case NIMCommands::IsPendingAutoTitleDownloadTasks: isPendingAutoTitleDownloadTasks(messagePointer); break;
default: Helpers::panic("NIM U service requested. Command: %08X\n", command);
default:
mem.write32(messagePointer + 4, Result::Success);
Helpers::warn("NIM U service requested. Command: %08X\n", command);
break;
}
} else {
Helpers::panic("NIM service requested. Command: %08X\n", command);

View file

@ -66,7 +66,10 @@ void PTMService::handleSyncRequest(u32 messagePointer, PTMService::Type type) {
case PTMCommands::GetSoftwareClosedFlag: getSoftwareClosedFlag(messagePointer); break;
case PTMCommands::ClearSoftwareClosedFlag: clearSoftwareClosedFlag(messagePointer); break;
default: Helpers::panic("PTM SYSM service requested. Command: %08X\n", command); break;
default:
mem.write32(messagePointer + 4, Result::Success);
Helpers::warn("PTM SYSM service requested. Command: %08X\n", command);
break;
}
} else {
Helpers::panic("PTM service requested. Command: %08X\n", command);

View file

@ -101,6 +101,7 @@ static std::map<std::string, HorizonHandle> serviceMap = {
{ "act:a", KernelHandles::ACT },
{ "act:u", KernelHandles::ACT },
{ "am:app", KernelHandles::AM },
{ "am:sys", KernelHandles::AM },
{ "APT:S", KernelHandles::APT }, // TODO: APT:A, APT:S and APT:U are slightly different
{ "APT:A", KernelHandles::APT },
{ "APT:U", KernelHandles::APT },
@ -236,6 +237,7 @@ void ServiceManager::sendCommandToService(u32 messagePointer, Handle handle) {
case KernelHandles::NIM_AOC: nim.handleSyncRequest(messagePointer, NIMService::Type::AOC); break;
case KernelHandles::NIM_U: nim.handleSyncRequest(messagePointer, NIMService::Type::U); break;
case KernelHandles::NDM: ndm.handleSyncRequest(messagePointer); break;
case KernelHandles::NEWS_S: news_s.handleSyncRequest(messagePointer); break;
case KernelHandles::NEWS_U: news_u.handleSyncRequest(messagePointer); break;
case KernelHandles::NS_S: ns.handleSyncRequest(messagePointer, NSService::Type::S); break;
case KernelHandles::NWM_UDS: nwm_uds.handleSyncRequest(messagePointer); break;