D171 - An out-pointer that is never written has no signature
decided ยท 2026-08-21
sceSystemServiceParamGetInt answers a console setting
through an out-pointer. Unimplemented, it wrote
nothing, and the guest read whatever its stack held
there.
That is a worse failure than a wrong return value, and worth separating from it. Every other unimplemented call in this project answers wrongly but consistently - the same placeholder every run, recognisable in a trace, in a range no real code occupies. An unwritten out-pointer answers differently on every run, depending on what last used that stack slot, and leaves nothing to recognise because nothing was written.
So orbistoun-systemservice exists and always writes.
Zero is a stated placeholder rather than a value: read as an index it
lands on the first entry, as a flag it reads as off, as a count it reads
as none - all ordinary states a title must already handle. A non-zero
guess would be picking a behaviour out of the air and calling it a
default.
Success is reported rather than an error, deliberately: a guest that checks the return skips whatever the setting was for, while one that does not check reads the value regardless - which is why it must be written either way.
It did not move the wall. The call is reached, the
implementation is correct, and image+0x43c4 is unchanged -
so the hypothesis was wrong. Recorded because a wrong hypothesis that
was cheap to test and left the code better is a fine outcome, and
because the out-pointer class of failure is real whether or not it was
this one.