Shokunin
c7d5b873cd
Rollback snaps: the canonical machine at the tick boundary
...
PSX_RB_DET_SELFTEST on R4 4P showed a replayed save of tick T differing
from the live save of T. Each cause, and the fix:
- Replay's finish_frame poll passed no PC hint (Live used the IRQ resume
chain); it now uses psx_netplay_snap_resume_hint.
- Devices are serviced lazily up to the next event, so root counters and
cycles_since_vblank lagged the clock by a host-path amount at save; a
load re-anchors them at the clock and drops the lag. The save now
publishes pending cycle charges and services every device to the clock
first, and renders the SPU up to it.
- GTE / mul-div completion stamps and the load-delay give-back were
re-anchored at the restored clock on every load, so a stall in flight at
the snap point cost the live run cycles but the replay none. New
BS_SEC_CPUTIM carries them relative to the clock.
- The SPU CD-input FIFO was outside the snap and wiped on rollback loads;
new BS_SEC_SPUCD carries the queued frames and the load keeps them.
- LZCR is serialized as derived from LZCS (the raw backing stays 0 until
the first LZCS write; guests only ever read the derived value).
Older snaps without the new sections load as before.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-09 22:16:06 -07:00
..
2026-06-12 04:25:56 -07:00
2026-09-05 12:38:01 -07:00
2026-08-05 19:37:45 -07:00
2026-05-29 21:14:30 -07:00
2026-07-29 03:18:10 -04:00
2026-07-27 16:36:48 -07:00
2026-10-09 22:16:06 -07:00
2026-05-29 21:14:30 -07:00
2026-05-29 21:14:30 -07:00
2026-09-24 15:42:52 -07:00
2026-07-15 22:22:38 -07:00
2026-06-12 04:25:56 -07:00
2026-07-01 09:28:50 -07:00
2026-10-07 12:57:02 -07:00
2026-06-10 12:17:10 -07:00
2026-06-09 12:24:40 -07:00
2026-09-24 14:38:03 -07:00
2026-07-14 11:08:02 -07:00
2026-10-07 18:20:57 -07:00
2026-08-01 02:15:34 -07:00
2026-06-29 21:53:27 -07:00
2026-10-03 23:46:25 -07:00
2026-09-14 17:26:33 +03:00
2026-08-04 19:32:16 -07:00
2026-08-31 09:15:39 +03:00
2026-09-03 01:20:43 +03:00
2026-10-05 22:52:52 -07:00
2026-10-01 11:36:48 -07:00
2026-10-07 13:40:57 -07:00
2026-10-08 11:16:22 -07:00
2026-09-03 07:39:07 -07:00
2026-10-04 17:51:23 -07:00
2026-09-28 18:30:24 -07:00
2026-10-08 11:16:22 -07:00
2026-09-28 21:02:47 -07:00
2026-08-30 14:20:09 -04:00
2026-09-08 18:09:52 -07:00
2026-06-18 18:47:27 -07:00
2026-09-28 20:52:23 -07:00
2026-10-09 15:43:57 -07:00
2026-10-08 10:59:40 -07:00
2026-07-14 18:35:07 -07:00
2026-10-03 23:51:14 -07:00
2026-10-08 10:59:40 -07:00
2026-10-07 12:49:31 -07:00
2026-09-29 20:57:11 -07:00
2026-09-06 14:53:35 +01:00
2026-08-06 00:53:03 -04:00
2026-10-07 18:20:59 -07:00
2026-09-29 20:57:11 -07:00
2026-10-04 05:54:05 +08:00
2026-09-14 17:26:31 +03:00
2026-10-09 04:45:27 -07:00
2026-09-14 17:26:31 +03:00
2026-10-07 22:51:31 -07:00
2026-10-07 09:30:57 -07:00
2026-09-29 20:57:11 -07:00
2026-10-06 22:46:05 -07:00
2026-08-14 15:22:29 -07:00
2026-10-07 18:20:58 -07:00
2026-08-07 16:42:43 -04:00
2026-10-08 02:40:17 -07:00
2026-10-08 15:39:01 -07:00
2026-09-24 14:38:03 -07:00
2026-09-11 16:38:34 -04:00
2026-06-18 14:56:12 -07:00
2026-09-02 14:11:25 -07:00
2026-08-03 05:26:37 -04:00
2026-07-14 22:44:31 -07:00
2026-09-29 17:12:55 -07:00
2026-09-26 08:03:39 -07:00
2026-09-05 21:18:20 -04:00
2026-10-04 10:46:04 -07:00
2026-09-29 20:57:11 -07:00
2026-10-09 13:20:27 -07:00
2026-10-07 16:01:34 -07:00
2026-10-05 20:24:54 -07:00
2026-10-09 04:45:12 -07:00
2026-10-05 22:52:52 -07:00
2026-10-08 15:39:01 -07:00
2026-09-28 16:26:33 -07:00
2026-09-13 21:06:58 -07:00
2026-08-08 12:29:59 -04:00
2026-09-30 15:58:52 +03:00
2026-10-05 22:52:52 -07:00
2026-10-02 19:13:57 +03:00
2026-10-07 06:59:03 -07:00
2026-10-07 11:06:57 -07:00
2026-10-05 14:12:45 -07:00
2026-10-07 06:59:03 -07:00
2026-10-09 17:31:47 -07:00
2026-09-24 22:06:27 -04:00
2026-10-05 14:17:22 -07:00
2026-08-11 23:52:31 -04:00
2026-08-07 18:11:35 -04:00
2026-10-05 23:15:48 +08:00
2026-10-07 21:41:39 -07:00
2026-07-15 22:22:38 -07:00
2026-07-20 00:43:41 -07:00
2026-10-07 21:41:39 -07:00
2026-10-02 01:56:35 -07:00
2026-07-19 16:19:57 -07:00
2026-07-19 12:11:56 -07:00
2026-09-03 07:39:07 -07:00
2026-10-05 19:15:44 -07:00
2026-10-05 22:52:52 -07:00
2026-10-09 13:20:27 -07:00
2026-10-05 23:33:30 -07:00
2026-10-07 17:46:17 -07:00
2026-10-07 12:56:48 -07:00
2026-10-04 10:55:58 -07:00
2026-10-04 05:54:05 +08:00
2026-08-03 05:26:37 -04:00
2026-08-27 14:39:54 -04:00
2026-09-30 19:26:29 -04:00
2026-09-11 16:38:34 -04:00
2026-10-01 09:28:13 +03:00
2026-09-30 19:26:29 -04:00
2026-09-30 20:10:57 -04:00
2026-08-08 23:02:52 -04:00
2026-10-05 12:57:31 -07:00
2026-10-07 21:41:39 -07:00
2026-10-09 04:45:12 -07:00
2026-10-07 21:41:39 -07:00
2026-10-04 05:54:03 +08:00
2026-05-29 18:53:22 -07:00
2026-10-05 23:44:18 -07:00
2026-09-29 17:12:55 -07:00
2026-09-29 12:27:57 -07:00
2026-07-31 17:14:35 -04:00
2026-10-05 13:49:35 -07:00
2026-10-05 22:52:52 -07:00
2026-10-04 10:50:02 -07:00
2026-10-09 22:15:57 -07:00
2026-09-24 22:06:27 -04:00
2026-10-07 11:21:55 -07:00
2026-10-05 13:41:02 -07:00
2026-10-05 23:49:55 -07:00
2026-07-21 21:37:57 -07:00
2026-08-12 11:12:24 -07:00
2026-07-31 17:14:35 -04:00
2026-07-29 03:18:10 -04:00
2026-10-07 21:49:54 -07:00
2026-09-30 00:24:07 -07:00
2026-07-31 17:14:35 -04:00
2026-07-29 03:18:10 -04:00
2026-07-29 03:18:10 -04:00
2026-10-05 19:36:34 -07:00
2026-08-25 01:54:42 -07:00
2026-09-26 15:38:21 -07:00
2026-08-29 11:04:30 -04:00
2026-10-03 23:46:25 -07:00
2026-10-06 23:03:48 -07:00
2026-10-03 23:46:25 -07:00
2026-10-03 23:46:25 -07:00
2026-10-07 11:06:57 -07:00
2026-10-07 12:53:09 -07:00
2026-09-29 20:57:11 -07:00
2026-09-05 21:34:14 +03:00
2026-09-05 21:47:40 +03:00
2026-10-05 19:25:38 -07:00
2026-07-14 18:56:51 -07:00
2026-09-03 07:39:07 -07:00
2026-10-09 12:49:32 -07:00
2026-09-05 12:17:16 -04:00
2026-07-06 15:19:08 -07:00
2026-10-07 13:40:57 -07:00
2026-06-26 15:04:25 -07:00
2026-10-04 05:54:05 +08:00
2026-09-30 23:30:28 -07:00
2026-09-24 14:42:12 -07:00
2026-07-29 03:18:10 -04:00
2026-09-19 16:19:23 -07:00
2026-10-07 17:46:17 -07:00
2026-09-19 16:19:23 -07:00
2026-07-15 22:22:38 -07:00
2026-10-02 21:27:15 +03:00
2026-10-02 08:36:58 -07:00
2026-10-02 14:12:20 -07:00
2026-09-03 01:20:41 +03:00
2026-10-07 18:20:59 -07:00
2026-10-02 20:42:00 -07:00
2026-09-07 22:40:23 -07:00
2026-09-13 19:27:03 -07:00
2026-09-19 16:19:23 -07:00
2026-10-02 20:42:00 -07:00
2026-10-01 11:13:30 -07:00
2026-09-12 13:29:24 -07:00