D814 - the flip status reports the last flip argument

Status: decided Date: 2026-10-12

sceVideoOutGetFlipStatus(handle, status) writes the port's completed-flip count at +0, as before, and the argument of the last completed flip at +0x18, as a 64-bit word. Nothing else in the structure is written.

Measured (REQ-fs01, 080-video/visual-flip, report-1791818993.txt 4649-4730): after flips with arguments 0x123456789a, -1 and 0x7fffffffffff, the word at +0x18 read each exactly, bit 63 included. It was first assumed from the open toolchain's declaration of SceVideoOutFlipStatus, which puts flipArg there, and from earlier statuses that held 0 after flips whose argument was 0.

Why: PPSA25872 paces its frames by that word. Its flip thread reads the status on every flip event, takes +0x18 as the latest completed flip's argument with bit 63 cleared, and releases as many frame slots as it moved since the last one it saw. With only the count written, the word was whatever the title's stack held, no slot was ever released, and the main thread waited for one after its second frame for the rest of the run.

Rejected: