From 9cf065e54f9555dfd919c6d92f0da946e26d7044 Mon Sep 17 00:00:00 2001 From: Jaklyy <102590697+Jaklyy@users.noreply.github.com> Date: Wed, 9 Oct 2024 17:37:25 -0400 Subject: [PATCH] idk --- src/CP15.cpp | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/CP15.cpp b/src/CP15.cpp index 613c1bd5..d085cf02 100644 --- a/src/CP15.cpp +++ b/src/CP15.cpp @@ -457,7 +457,6 @@ void ARMv5::WriteBufferCheck() } else if ((WBAddr & DTCMMask) == DTCMBase) *(u8*)&DTCM[WBAddr & (DTCMPhysicalSize - 1)] = val; else BusWrite8(storeaddr[WBWritePointer], val); - if (WBAddr != storeaddr[WBWritePointer]) printf("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); break; } case 1: // halfword @@ -470,7 +469,6 @@ void ARMv5::WriteBufferCheck() } else if ((WBAddr & DTCMMask) == DTCMBase) *(u16*)&DTCM[WBAddr & (DTCMPhysicalSize - 2)] = val; else BusWrite16(storeaddr[WBWritePointer], val); - if (WBAddr != storeaddr[WBWritePointer]) printf("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); break; } case 2: // word @@ -483,7 +481,6 @@ void ARMv5::WriteBufferCheck() } else if ((WBAddr & DTCMMask) == DTCMBase) *(u32*)&DTCM[WBAddr & (DTCMPhysicalSize - 4)] = val; else BusWrite32(storeaddr[WBWritePointer], val); - if (WBAddr != storeaddr[WBWritePointer]) printf("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); WBAddr += 4; break; } @@ -527,7 +524,6 @@ void ARMv5::WriteBufferWrite(u32 val, u8 flag, u8 cycles, u32 addr) } else if ((WBAddr & DTCMMask) == DTCMBase) *(u8*)&DTCM[WBAddr & (DTCMPhysicalSize - 1)] = val; else BusWrite8(storeaddr[WBWritePointer], val); - if (WBAddr != storeaddr[WBWritePointer]) printf("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); break; } case 1: // halfword @@ -540,7 +536,6 @@ void ARMv5::WriteBufferWrite(u32 val, u8 flag, u8 cycles, u32 addr) } else if ((WBAddr & DTCMMask) == DTCMBase) *(u16*)&DTCM[WBAddr & (DTCMPhysicalSize - 2)] = val; else BusWrite16(storeaddr[WBWritePointer], val); - if (WBAddr != storeaddr[WBWritePointer]) printf("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); break; } case 2: // word @@ -553,7 +548,6 @@ void ARMv5::WriteBufferWrite(u32 val, u8 flag, u8 cycles, u32 addr) } else if ((WBAddr & DTCMMask) == DTCMBase) *(u32*)&DTCM[WBAddr & (DTCMPhysicalSize - 4)] = val; else BusWrite32(storeaddr[WBWritePointer], val); - if (WBAddr != storeaddr[WBWritePointer]) printf("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); WBAddr += 4; break; } @@ -610,7 +604,6 @@ void ARMv5::WriteBufferDrain() } else if ((WBAddr & DTCMMask) == DTCMBase) *(u8*)&DTCM[WBAddr & (DTCMPhysicalSize - 1)] = val; else BusWrite8(storeaddr[WBWritePointer], val); - if (WBAddr != storeaddr[WBWritePointer]) printf("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); break; } case 1: // halfword @@ -623,7 +616,6 @@ void ARMv5::WriteBufferDrain() } else if ((WBAddr & DTCMMask) == DTCMBase) *(u16*)&DTCM[WBAddr & (DTCMPhysicalSize - 2)] = val; else BusWrite16(storeaddr[WBWritePointer], val); - if (WBAddr != storeaddr[WBWritePointer]) printf("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); break; } case 2: // word @@ -636,7 +628,6 @@ void ARMv5::WriteBufferDrain() } else if ((WBAddr & DTCMMask) == DTCMBase) *(u32*)&DTCM[WBAddr & (DTCMPhysicalSize - 4)] = val; else BusWrite32(storeaddr[WBWritePointer], val); - if (WBAddr != storeaddr[WBWritePointer]) printf("ERROR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); WBAddr += 4; break; } @@ -1218,8 +1209,11 @@ bool ARMv5::DataRead32S(u32 addr, u32* val) *val = *(u32*)&DTCM[addr & (DTCMPhysicalSize - 1)]; return true; } - + NDS.ARM9Timestamp += DataCycles; + + if (!(addr & 0x3FF)) return DataRead32(addr, val); // bursts cannot cross a 1kb boundary + DataCycles = MemTimings[addr >> 12][3]; NDS.ARM9Timestamp = NDS.ARM9Timestamp + ((1<> 24) == 0x02) { if ((DataRegion != Mem9_MainRAM) && ((NDS.ARM9Timestamp + DataCycles) < MainRAMTimestamp)) NDS.ARM9Timestamp = MainRAMTimestamp - DataCycles;