D261 - Firmware is the console's, not the compatibility environment's
status: measured
The header showed FW UNKNOWN. The first fix read
sceKernelGetSystemSwVersion, whose version string this
hardware fills with 13.090.001 - and that is a real value,
just the wrong one. It is the version of the PS4-compatibility
environment the title runs inside, because the title is a
ps4_game. The console's actual system software is
12.40, which the shsrv banner and the kernel both report
and that call does not.
The console's own firmware is in kern.version, which
135-sysctl already captures raw:
r226974/releases/12.40 Nov 27 2025 02:23:38
The header reads the token after releases/, up to the
first space - 12.40 - and reports the raw string nowhere
but the 135-sysctl records, where measured bytes belong.
kern.osrelease is not used: on this platform it is the
placeholder 0.0-prototype.
Why this was worth getting right rather than
convenient. Both numbers are correct answers to different
questions, and labelling the compat version as the console's firmware is
the same class of error as reporting GEN 4 for a PS5 in
compatibility mode (D255): a value read correctly and attributed to the
wrong thing. A ps4_game sees the PS4 side of a hybrid - PS4
userland APIs, a PS4-compat version, the PS4 graphics driver - over a
PS5 kernel it cannot address directly. The firmware field now names the
kernel's version, which is the console's.
Extracting a token out of the ident string depends on the kernel
keeping that format, which is more fragile than a struct field, so a
string without the releases/ marker reports unconfirmed
rather than guessing. The raw sceKernelGetSystemSwVersion
bytes remain in the report under
130-layout/system-software-version for anyone who wants the
compat version too.