Files
ARMSX3/rpcs3
jpolo1224 53f8ab219f Watchdog: IsStopped() is true while LOADING, so the guard skipped it
The watchdog was called under !Emu.IsPaused() && !Emu.IsStopped(). The
default IsStopped() overload is m_state <= system_state::stopping, and the
enum orders stopped, loading, stopping, running -- so it reports true for a
game that is LOADING.

A hang during a load is exactly what this watches for. Tales of Xillia 2
white-screens mid-load once its logos are skipped, so the guard skipped the
watchdog on every tick of the precise case it exists for, and skipped it
silently: not a declined decision anyone could read, just no call at all.
Nine minutes of held white screen produced no output whatsoever.

Use IsStopped(true), which is the fully-stopped test.

Also log the watchdog's decision once every 10s -- progress flag, last frame
timestamp, its age, dumps taken. Three attempts at this detector have failed
silently on a reproducible hang; the only evidence each time was an absence,
which cannot say which branch won. One line per ten seconds makes the next
failure a fact rather than another guess.
2026-08-24 14:55:58 -04:00
..
2026-06-14 16:05:41 +02:00
2026-08-20 00:27:30 +02:00
2026-08-18 21:54:09 +02:00
2026-06-14 16:05:41 +02:00