From f532dc0d4f7e4cb145379eb60727f4db54c44d1d Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Sat, 10 May 2025 06:32:50 +0200 Subject: [PATCH] add value parameter to all callbacks --- src/ARM.cpp | 25 ++++++++++++------------- src/CP15.cpp | 16 ++++++++-------- src/NDS.h | 6 +++--- 3 files changed, 23 insertions(+), 24 deletions(-) diff --git a/src/ARM.cpp b/src/ARM.cpp index 8f8b10d6f5..e1623633e3 100644 --- a/src/ARM.cpp +++ b/src/ARM.cpp @@ -622,7 +622,7 @@ void ARMv5::Execute() { TraceTrampoline(TRACE_ARM9_THUMB, R, CurInstr, NDS.GetSysClockCycles(2)); } - MAYBE_CALLBACK(ExecuteCallback, R[15] - 4); + MAYBE_CALLBACK(ExecuteCallback, R[15] - 4, CurInstr); // actually execute u32 icode = (CurInstr >> 6) & 0x3FF; @@ -642,7 +642,7 @@ void ARMv5::Execute() { TraceTrampoline(TRACE_ARM9_ARM, R, CurInstr, NDS.GetSysClockCycles(2)); } - MAYBE_CALLBACK(ExecuteCallback, R[15] - 8); + MAYBE_CALLBACK(ExecuteCallback, R[15] - 8, CurInstr); // actually execute if (CheckCondition(CurInstr >> 28)) @@ -789,7 +789,7 @@ void ARMv4::Execute() { TraceTrampoline(TRACE_ARM7_THUMB, R, CurInstr, NDS.GetSysClockCycles(2)); } - MAYBE_CALLBACK(ExecuteCallback, R[15] - 4); + MAYBE_CALLBACK(ExecuteCallback, R[15] - 4, CurInstr); // actually execute u32 icode = (CurInstr >> 6); @@ -809,7 +809,7 @@ void ARMv4::Execute() { TraceTrampoline(TRACE_ARM7_ARM, R, CurInstr, NDS.GetSysClockCycles(2)); } - MAYBE_CALLBACK(ExecuteCallback, R[15] - 8); + MAYBE_CALLBACK(ExecuteCallback, R[15] - 8, CurInstr); // actually execute if (CheckCondition(CurInstr >> 28)) @@ -1178,7 +1178,7 @@ u32 ARMv5::ReadMem(u32 addr, int size) void ARMv4::DataRead8(u32 addr, u32* val) { - MAYBE_CALLBACK(ReadCallback, addr); + MAYBE_CALLBACK(ReadCallback, addr, 0); *val = BusRead8(addr); DataRegion = addr; @@ -1187,7 +1187,7 @@ void ARMv4::DataRead8(u32 addr, u32* val) void ARMv4::DataRead16(u32 addr, u32* val) { - MAYBE_CALLBACK(ReadCallback, addr & ~1); + MAYBE_CALLBACK(ReadCallback, addr & ~1, 0); addr &= ~1; @@ -1198,7 +1198,7 @@ void ARMv4::DataRead16(u32 addr, u32* val) void ARMv4::DataRead32(u32 addr, u32* val) { - MAYBE_CALLBACK(ReadCallback, addr & ~3); + MAYBE_CALLBACK(ReadCallback, addr & ~3, 0); addr &= ~3; @@ -1209,7 +1209,7 @@ void ARMv4::DataRead32(u32 addr, u32* val) void ARMv4::DataRead32S(u32 addr, u32* val) { - MAYBE_CALLBACK(ReadCallback, addr & ~3); + MAYBE_CALLBACK(ReadCallback, addr & ~3, 0); addr &= ~3; @@ -1219,7 +1219,7 @@ void ARMv4::DataRead32S(u32 addr, u32* val) void ARMv4::DataWrite8(u32 addr, u8 val) { - MAYBE_CALLBACK(WriteCallback, addr); + MAYBE_CALLBACK(WriteCallback, addr, val); BusWrite8(addr, val); DataRegion = addr; @@ -1228,7 +1228,7 @@ void ARMv4::DataWrite8(u32 addr, u8 val) void ARMv4::DataWrite16(u32 addr, u16 val) { - MAYBE_CALLBACK(WriteCallback, addr & ~1); + MAYBE_CALLBACK(WriteCallback, addr & ~1, val); addr &= ~1; @@ -1239,7 +1239,7 @@ void ARMv4::DataWrite16(u32 addr, u16 val) void ARMv4::DataWrite32(u32 addr, u32 val) { - MAYBE_CALLBACK(WriteCallback, addr & ~3); + MAYBE_CALLBACK(WriteCallback, addr & ~3, val); addr &= ~3; @@ -1250,7 +1250,7 @@ void ARMv4::DataWrite32(u32 addr, u32 val) void ARMv4::DataWrite32S(u32 addr, u32 val) { - MAYBE_CALLBACK(WriteCallback, addr & ~3); + MAYBE_CALLBACK(WriteCallback, addr & ~3, val); addr &= ~3; @@ -1381,4 +1381,3 @@ void ARMv4::BusWrite32(u32 addr, u32 val) NDS.ARM7Write32(addr, val); } } - diff --git a/src/CP15.cpp b/src/CP15.cpp index dd45f0c19a..1896c0e5d1 100644 --- a/src/CP15.cpp +++ b/src/CP15.cpp @@ -809,7 +809,7 @@ u32 ARMv5::CodeRead32(u32 addr, bool branch) void ARMv5::DataRead8(u32 addr, u32* val) { - MAYBE_CALLBACK(ReadCallback, addr); + MAYBE_CALLBACK(ReadCallback, addr, 0); if (!(PU_Map[addr>>12] & 0x01)) { @@ -838,7 +838,7 @@ void ARMv5::DataRead8(u32 addr, u32* val) void ARMv5::DataRead16(u32 addr, u32* val) { - MAYBE_CALLBACK(ReadCallback, addr & ~1); + MAYBE_CALLBACK(ReadCallback, addr & ~1, 0); if (!(PU_Map[addr>>12] & 0x01)) { @@ -869,7 +869,7 @@ void ARMv5::DataRead16(u32 addr, u32* val) void ARMv5::DataRead32(u32 addr, u32* val) { - MAYBE_CALLBACK(ReadCallback, addr & ~3); + MAYBE_CALLBACK(ReadCallback, addr & ~3, 0); if (!(PU_Map[addr>>12] & 0x01)) { @@ -900,7 +900,7 @@ void ARMv5::DataRead32(u32 addr, u32* val) void ARMv5::DataRead32S(u32 addr, u32* val) { - MAYBE_CALLBACK(ReadCallback, addr & ~3); + MAYBE_CALLBACK(ReadCallback, addr & ~3, 0); addr &= ~3; @@ -923,7 +923,7 @@ void ARMv5::DataRead32S(u32 addr, u32* val) void ARMv5::DataWrite8(u32 addr, u8 val) { - MAYBE_CALLBACK(WriteCallback, addr); + MAYBE_CALLBACK(WriteCallback, addr, val); if (!(PU_Map[addr>>12] & 0x02)) { @@ -953,7 +953,7 @@ void ARMv5::DataWrite8(u32 addr, u8 val) void ARMv5::DataWrite16(u32 addr, u16 val) { - MAYBE_CALLBACK(WriteCallback, addr & ~1); + MAYBE_CALLBACK(WriteCallback, addr & ~1, val); if (!(PU_Map[addr>>12] & 0x02)) { @@ -985,7 +985,7 @@ void ARMv5::DataWrite16(u32 addr, u16 val) void ARMv5::DataWrite32(u32 addr, u32 val) { - MAYBE_CALLBACK(WriteCallback, addr & ~3); + MAYBE_CALLBACK(WriteCallback, addr & ~3, val); if (!(PU_Map[addr>>12] & 0x02)) { @@ -1017,7 +1017,7 @@ void ARMv5::DataWrite32(u32 addr, u32 val) void ARMv5::DataWrite32S(u32 addr, u32 val) { - MAYBE_CALLBACK(WriteCallback, addr & ~3); + MAYBE_CALLBACK(WriteCallback, addr & ~3, val); addr &= ~3; diff --git a/src/NDS.h b/src/NDS.h index 143dae58fc..5131ac1e98 100644 --- a/src/NDS.h +++ b/src/NDS.h @@ -47,9 +47,9 @@ extern void (*InputCallback)(); -extern void (*ReadCallback)(melonDS::u32); -extern void (*WriteCallback)(melonDS::u32); -extern void (*ExecuteCallback)(melonDS::u32); +extern void (*ReadCallback)(melonDS::u32 addr, melonDS::u32 val); +extern void (*WriteCallback)(melonDS::u32 addr, melonDS::u32 val); +extern void (*ExecuteCallback)(melonDS::u32 addr, melonDS::u32 val); enum TraceMask_t {