2026-08-21 - snprintf_s, and what "implemented" does not mean (D183)

The top-ranked finding for four sessions, retired. Seventy-six calls in a boot, the guest building the name that sceKernelMapNamedDirectMemory takes.

It refuses rather than rendering what it can. A half-rendered texture_ where the guest expected texture_47.gnf is invented data shaped like a real answer - the guest opens the wrong file and the failure surfaces with no connection to formatting. An empty terminated buffer is also wrong, and bounded.

Floating point earns its own fault variant rather than folding into "unsupported": a variadic double arrives in an XMM register and the trampoline captures the six integer registers, so the value never reaches the function. One of those is an hour's work in this file; the other is a change to the calling convention. A report saying only "formatting failed" sends someone to the wrong place.

The run then made the D181 argument for me, one day later:

  standing 863 of 933 calls answered by an implementation (7% on stubs)   [was 85%]
  verdict  same     nothing moved
  formats  76 writes, all honoured

Distinct imports and total calls unchanged, so the headline measure reports nothing happened - while seventy-six calls moved from placeholder to real. The call count cannot see this class of improvement at all.

all honoured is the fact worth having and could not have been reasoned to: this title's formats need no floating-point conversion and no more than three variadic arguments. Both recorded assumptions survive - nothing truncated, so what the target returns on truncation is still unmeasured.

The wall is unchanged at image+0x43c4, which is now the ninth attempt on it.

And the record refused to accept it, which found a fourth bug of the same family. Status::beats ranked on reach, imports and calls - the three numbers that did not move. Implementing a function the guest was already calling moves no import and no call: the guest makes exactly the same calls and gets real answers to more of them. That is the most common kind of progress this project produces, and the compatibility record could not see it, having been written the day after standing was invented for exactly that reason.

standing now ranks between imports and calls - breadth first, then how much of that breadth is real. Every one of the four bugs found today came from running the tool rather than reading it.