D293
- a real ps5 native title uses the 4F 15 3D 1D eboot, so
native defaults to it
D289 made native default to a gen-5 container
(54 14 F5 EE), on selfish's table labelling that magic
"current generation" - a labelling the table itself calls a hypothesis.
Hardware refuted it.
An injector run into a retail ps5 title (PPSA02664) measured, through
048-selfaudit:
metadata/ps5_param_json 1 (it is a native ps5 title - it has param.json)
metadata/gen5_containers 0 (no eboot carries 54 14 F5 EE)
metadata/gen4_containers 1 (its eboot carries 4F 15 3D 1D)
metadata/verdict ps5_native_only
So a genuine current-generation native title carries a
4F 15 3D 1D eboot - the magic selfish's
table calls "previous generation" - and no eboot on the console
carries the 54 14 F5 EE magic we had been building.
selfish's own source note reconciles it: 54 14 F5 EE is the
magic a title's bundled modules carry, not its eboot,
which uses 4F 15 3D 1D. So the magic is real and current,
just not the eboot's - and obSCEne builds an eboot, so it never needed
it. The table now records this distinction
(data/self-format.tsv generation rows) rather than
asserting "the current console uses this" for eboots.
native now takes the default EBOOT_GEN=4,
so its eboot is 4F 15 3D 1D like a real title's. This is
not a retreat to "ps4": the container magic 4F 15 3D 1D is
what the current generation uses for app eboots, and what makes
obSCEne's entry a ps5 native title is param.json + native
registration, not the eboot's magic.
make native EBOOT_GEN=5 still builds the
54 14 F5 EE variant, kept only to try against hardware - it
matches nothing measured.
confirm-table passing 9/9 and
ex_info.paid = 0x3100000000000002 matching on this same
container say the fixed header rows and the authority id are
generation-stable, which is why the default gen-4 container is a
faithful match rather than a guess.
Two follow-ups this measurement opens, not done
here. (1) selfish's
Generation::Current = 54 14 F5 EE attribution
(selfish-abi/src/generation.rs,
data/self-format.tsv) is refuted for app eboots and should
carry this finding - the format's home is selfish, so that edit belongs
to a selfish session. (2) A real title's sce_sys holds
fourteen entries (keystone, nptitle.dat,
pfs-version.dat, disc_info.dat,
pic0-2, trophy2, uds, ...) where
obSCEne's native title has two (param.json,
icon0.png); ShadowMountPlus needs only
param.json, but if a launch is ever refused for a missing
piece, keystone (selfish already generates it for the
package) is the first to add.