diff --git a/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp b/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp index 7d5c15d60d..b49d904bbb 100644 --- a/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp +++ b/Source/Core/Core/Src/DSP/Jit/DSPJitArithmetic.cpp @@ -1863,7 +1863,7 @@ void DSPEmitter::asrnr(const UDSPInstruction opc) // u16 accm = (u16)dsp_get_acc_m(1 - dreg); get_acc_m(1 - dreg); // s64 acc = dsp_get_long_acc(dreg); - get_long_acc(dreg); + get_long_acc(dreg, RDX); // if ((accm & 0x3f) == 0) // shift = 0; diff --git a/Source/Core/Core/Src/HW/DSP.cpp b/Source/Core/Core/Src/HW/DSP.cpp index 1ffd1f96ad..f025aaa8cb 100644 --- a/Source/Core/Core/Src/HW/DSP.cpp +++ b/Source/Core/Core/Src/HW/DSP.cpp @@ -683,7 +683,7 @@ void Do_ARAM_DMA() { // Fake the DMA taking time to complete. The delay is not accurate, but // seems like a good estimate - //CoreTiming::ScheduleEvent_Threadsafe(g_arDMA.Cnt.count >> 1, et_GenerateDSPInterrupt, INT_ARAM | (1<<16)); + CoreTiming::ScheduleEvent_Threadsafe(g_arDMA.Cnt.count >> 1, et_GenerateDSPInterrupt, INT_ARAM | (1<<16)); // Real hardware DMAs in 32byte chunks, but we can get by with 8byte chunks if (g_arDMA.Cnt.dir) @@ -720,7 +720,6 @@ void Do_ARAM_DMA() g_arDMA.Cnt.count -= 8; } } - GenerateDSPInterrupt(INT_ARAM); }