From 9e3f71dca695696bdb82243cb0551543d89cf18d Mon Sep 17 00:00:00 2001 From: Arisotura Date: Fri, 16 Jun 2023 22:39:38 +0200 Subject: [PATCH] * add IPC service 0xC (somewhat) * we don't need no fucking pralon in here --- src/HLE_Retail/IPC.cpp | 9 +++++++++ src/NDS.cpp | 6 +++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/HLE_Retail/IPC.cpp b/src/HLE_Retail/IPC.cpp index e2c43456..48ab92d3 100644 --- a/src/HLE_Retail/IPC.cpp +++ b/src/HLE_Retail/IPC.cpp @@ -729,6 +729,15 @@ void OnIPCRequest() OnIPCRequest_CartSave(data); break; + case 0xC: + if (data == 0x1000) + { + // TODO: stop/reset hardware + + SendIPCReply(0xC, 0x1000); + } + break; + case 0xD: // cart OnIPCRequest_Cart(data); break; diff --git a/src/NDS.cpp b/src/NDS.cpp index 69c62be1..6d19d88f 100644 --- a/src/NDS.cpp +++ b/src/NDS.cpp @@ -2044,7 +2044,7 @@ return; u8 ARM9Read8(u32 addr) -{if(addr>=0x0208DAE0 && addr<0x0208E7E0) printf("PRALON8 %08X %08X\n", addr, ARM9->R[15]); +{ if ((addr & 0xFFFFF000) == 0xFFFF0000) { return *(u8*)&ARM9BIOS[addr & 0xFFF]; @@ -2102,7 +2102,7 @@ u8 ARM9Read8(u32 addr) } u16 ARM9Read16(u32 addr) -{if(addr>=0x0208DAE0 && addr<0x0208E7E0) printf("PRALON16 %08X %08X\n", addr, ARM9->R[15]); +{ addr &= ~0x1; if ((addr & 0xFFFFF000) == 0xFFFF0000) @@ -2162,7 +2162,7 @@ u16 ARM9Read16(u32 addr) } u32 ARM9Read32(u32 addr) -{if(addr>=0x0208DAE0 && addr<0x0208E7E0) printf("PRALON32 %08X %08X\n", addr, ARM9->R[15]); +{ addr &= ~0x3; if ((addr & 0xFFFFF000) == 0xFFFF0000)