diff --git a/libmupen64plus/mupen64plus-core/src/r4300/r4300.c b/libmupen64plus/mupen64plus-core/src/r4300/r4300.c index 832829ec87..15c8652f00 100644 --- a/libmupen64plus/mupen64plus-core/src/r4300/r4300.c +++ b/libmupen64plus/mupen64plus-core/src/r4300/r4300.c @@ -227,9 +227,19 @@ static void NOTCOMPILED(void) #endif if (mem != NULL) + { recompile_block((int *)mem, blocks[PC->addr >> 12], PC->addr); + PC->ops(); + if (r4300emu == CORE_DYNAREC) + dyna_jump(); + } else - DebugMessage(M64MSG_ERROR, "not compiled exception"); + { + DebugMessage(M64MSG_ERROR, "not compiled exception"); + //trigger a vsync just to get out of frame advance + new_vi(); + WaitForSingleObject(rompausesem, INFINITE); + } /*#ifdef DBG if (g_DebuggerActive) update_debugger(PC->addr); @@ -237,9 +247,7 @@ static void NOTCOMPILED(void) The preceeding update_debugger SHOULD be unnecessary since it should have been called before NOTCOMPILED would have been executed */ - PC->ops(); - if (r4300emu == CORE_DYNAREC) - dyna_jump(); + } static void NOTCOMPILED2(void) diff --git a/output/dll/mupen64plus.dll b/output/dll/mupen64plus.dll index a7c7facbda..5826e2d0a9 100644 Binary files a/output/dll/mupen64plus.dll and b/output/dll/mupen64plus.dll differ