From 2c78b14b479d2f1d4f01cba6c783a795316f26f4 Mon Sep 17 00:00:00 2001 From: zilmar Date: Tue, 29 Jan 2013 21:45:45 +1100 Subject: [PATCH] RSP: Add delay slot done --- Source/RSP/Recompiler CPU.c | 9 +++++++++ Source/RSP/Recompiler CPU.h | 7 ------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Source/RSP/Recompiler CPU.c b/Source/RSP/Recompiler CPU.c index 1d0a798c7..54fb0f416 100644 --- a/Source/RSP/Recompiler CPU.c +++ b/Source/RSP/Recompiler CPU.c @@ -30,6 +30,7 @@ #include #include "RSP.h" #include "Cpu.h" +#include "Interpreter CPU.h" #include "Recompiler CPU.h" #include "Recompiler Ops.h" #include "RSP registers.h" @@ -849,6 +850,10 @@ void CompilerRSPBlock ( void ) { NextInstruction = DELAY_SLOT_DONE; CompilePC -= 4; break; + case DELAY_SLOT_EXIT: + NextInstruction = DELAY_SLOT_EXIT_DONE; + CompilePC -= 4; + break; case FINISH_SUB_BLOCK: NextInstruction = NORMAL; CompilePC += 8; @@ -933,6 +938,10 @@ DWORD RunRecompilerCPU ( DWORD Cycles ) { if (Profiling && IndvidualBlock) { StopTimer(); } + if (RSP_NextInstruction == SINGLE_STEP) + { + RSP_Running = FALSE; + } } if (IsMmxEnabled == TRUE) { diff --git a/Source/RSP/Recompiler CPU.h b/Source/RSP/Recompiler CPU.h index a062452b3..52f391bb5 100644 --- a/Source/RSP/Recompiler CPU.h +++ b/Source/RSP/Recompiler CPU.h @@ -26,13 +26,6 @@ #include "opcode.h" -#define NORMAL 0 -#define DO_DELAY_SLOT 1 -#define DELAY_SLOT 2 -#define DELAY_SLOT_DONE 3 -#define FINISH_BLOCK 4 -#define FINISH_SUB_BLOCK 5 - extern DWORD CompilePC, NextInstruction; extern BOOL ChangedPC;