Skip to content

Instantly share code, notes, and snippets.

Stop

Stops emulation before the next frame begins, using the pause system. Once the emulator reaches this point, it notifies the GUI and all debugger views update. -Pause on VBLANK -Notify GUI

Breakpoint hit

The breakpoints are checked inside of Emotion::run() and IOP::run(), after the next PC is calculated. If there is a hit, the emulator stops immediately, inside the call to do_breakpoints(), and the GUI is notified. The cpu which caused the breakpoint is considered “halted” and will not allow execution to continue until it is unhalted. The emulator thread remains in the cpu’s run() method. Even though the other CPU also stops executing, it is not “halted” and will continue running as soon as it is given the chance. The GUI switches to the processor which has hit the breakpoint and highlights the breakpoints.

diff --git a/pcsx2/Counters.cpp b/pcsx2/Counters.cpp
index b6fbba399..997627e75 100644
--- a/pcsx2/Counters.cpp
+++ b/pcsx2/Counters.cpp
@@ -205,7 +205,8 @@ static void vSyncInfoCalc(vSyncTimingInfo* info, Fixed100 framesPerSecond, u32 s
// One test we have shows that VBlank lasts for ~22 HBlanks, another we have show that is the time it's off.
// There exists a game (Legendz Gekitou! Saga Battle) Which runs REALLY slowly if VBlank is ~22 HBlanks, so the other test wins.
- u64 Blank = HalfFrame / 2; // PAL VBlank Period is off for roughly 22 HSyncs
+ //u64 Blank = HalfFrame / 2; // PAL VBlank Period is off for roughly 22 HSyncs
/*!
* Simple thread pool.
*/
class ThreadPoolSpinLock {
private:
std::vector<std::thread> m_threads;
int m_num_threads = 0;
std::function<void(int)> m_work_function;