diff --git a/Source/Core/DSPCore/Src/DSPCore.cpp b/Source/Core/DSPCore/Src/DSPCore.cpp index 6a70432552..c143852251 100644 --- a/Source/Core/DSPCore/Src/DSPCore.cpp +++ b/Source/Core/DSPCore/Src/DSPCore.cpp @@ -156,7 +156,7 @@ void DSPCore_SetException(u8 level) void DSPCore_CheckExternalInterrupt() { // check if there is an external interrupt - if (g_dsp.cr & CR_EXTERNAL_INT) + if (g_dsp.cr & CR_EXTERNAL_INT && !g_dsp.exception_in_progress_hack) { #ifdef DEBUG_EXP NOTICE_LOG(DSPLLE, "trying External interupt fired"); @@ -176,7 +176,7 @@ void DSPCore_CheckExternalInterrupt() void DSPCore_CheckExceptions() { - if (g_dsp.exceptions != 0) { + if (g_dsp.exceptions != 0 && !g_dsp.exception_in_progress_hack) { #ifdef DEBUG_EXP NOTICE_LOG(DSPLLE, "trying exception %d fired", g_dsp.exceptions); #endif diff --git a/Source/Core/DSPCore/Src/DSPHWInterface.cpp b/Source/Core/DSPCore/Src/DSPHWInterface.cpp index 03c5910d7a..c19730be70 100644 --- a/Source/Core/DSPCore/Src/DSPHWInterface.cpp +++ b/Source/Core/DSPCore/Src/DSPHWInterface.cpp @@ -185,7 +185,7 @@ void gdsp_ifx_write(u16 addr, u16 val) default: if ((addr & 0xff) >= 0xa0) { if (pdlabels[(addr & 0xFF) - 0xa0].name && pdlabels[(addr & 0xFF) - 0xa0].description) { - WARN_LOG(DSPLLE, "%04x MW %s (%04x)", g_dsp.pc, pdlabels[(addr & 0xFF) - 0xa0].name, val); + INFO_LOG(DSPLLE, "%04x MW %s (%04x)", g_dsp.pc, pdlabels[(addr & 0xFF) - 0xa0].name, val); } else { ERROR_LOG(DSPLLE, "%04x MW %04x (%04x)", g_dsp.pc, addr, val); @@ -228,14 +228,14 @@ u16 gdsp_ifx_read(u16 addr) default: if ((addr & 0xff) >= 0xa0) { if (pdlabels[(addr & 0xFF) - 0xa0].name && pdlabels[(addr & 0xFF) - 0xa0].description) { - NOTICE_LOG(DSPLLE, "%04x MR %s (%04x)\n", g_dsp.pc, pdlabels[(addr & 0xFF) - 0xa0].name, gdsp_ifx_regs[addr & 0xFF]); + INFO_LOG(DSPLLE, "%04x MR %s (%04x)", g_dsp.pc, pdlabels[(addr & 0xFF) - 0xa0].name, gdsp_ifx_regs[addr & 0xFF]); } else { - ERROR_LOG(DSPLLE, "%04x MR %04x (%04x)\n", g_dsp.pc, addr, gdsp_ifx_regs[addr & 0xFF]); + ERROR_LOG(DSPLLE, "%04x MR %04x (%04x)", g_dsp.pc, addr, gdsp_ifx_regs[addr & 0xFF]); } } else { - ERROR_LOG(DSPLLE, "%04x MR %04x (%04x)\n", g_dsp.pc, addr, gdsp_ifx_regs[addr & 0xFF]); + ERROR_LOG(DSPLLE, "%04x MR %04x (%04x)", g_dsp.pc, addr, gdsp_ifx_regs[addr & 0xFF]); } return gdsp_ifx_regs[addr & 0xFF]; } diff --git a/Source/Core/DSPCore/Src/DSPHost.h b/Source/Core/DSPCore/Src/DSPHost.h index e3e6b2d1ef..60791deeb1 100644 --- a/Source/Core/DSPCore/Src/DSPHost.h +++ b/Source/Core/DSPCore/Src/DSPHost.h @@ -22,7 +22,7 @@ // emulation core can access the environment it runs in. If the emulation // core isn't used, for example in an asm/disasm tool, then most of these // can be stubbed out. -//#define DEBUG_EXP 1 +#define DEBUG_EXP 1 u8 DSPHost_ReadHostMemory(u32 addr); void DSPHost_WriteHostMemory(u8 value, u32 addr);