mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-31 19:47:06 +01:00
Each instance paced itself against the wall clock, so on a busy machine the one that got less CPU fell behind, and anything a test times across instances (a peer leaving, a matching timeout) came out differently with the load: pair/vanish and pair/matching3 failed on macOS CI. With --sync-file and --sync-count, instances on one machine share a file of one slot per instance. CoreTiming ends a slice at every emulated millisecond, publishes it there, and waits until every other instance has reached it too, so they're never more than a millisecond apart. It works for any number of instances. One that stops moving (a debugger pause, a crash) is waited for 2 s and then left out until it moves again, and one that blocks the CPU thread in real time on something the others must do (the relay PTP connect) stands aside meanwhile. Tools/adhoc_multi.py and adhoc_session.py use it (--no-sync turns it off). The host's 1 s head start is gone: they wait for the server's port instead. adhoc_multi writes each instance's output to a file, as a full pipe would now stop the other instances too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>