110 lines
6.5 KiB
Markdown
110 lines
6.5 KiB
Markdown
# Phase 1.0Q public VideoOut evidence
|
|
|
|
Phase 1.0Q is bounded public-source research following the Phase-1.0P submit
|
|
postmortem. It performed no PS5 connection, transfer, execution, target build
|
|
or target-source change. Searches and source acquisition were limited to official
|
|
GitHub repositories and immutable source archives. No downloaded code was
|
|
executed.
|
|
|
|
## PS5 evidence lineage
|
|
|
|
The exact SDK v0.41 tag remains
|
|
[`d2e2e585740362976a39fdd5ccf390f199a7bc37`](https://github.com/ps5-payload-dev/sdk/tree/d2e2e585740362976a39fdd5ccf390f199a7bc37).
|
|
Its `libSceVideoOut.c` is a 25,199-byte export-stub file with SHA-256
|
|
`da6cff9b3255e9ccb0440790f73e0265696ca47724cf8fe5950b579702940016`.
|
|
It establishes symbol names, but contains no VideoOut declarations, data
|
|
layouts, constants or return semantics. The official SDK master inspected at
|
|
`a0d2bc60bdcc0a5ee9e790fa3b02fe5051a152d0` still has no public VideoOut
|
|
header. v0.41 was the latest published SDK release during this audit.
|
|
|
|
The PS5 declarations originate in one source lineage: the
|
|
[`ps5-payload-dev/SDL` PS5 backend](https://github.com/ps5-payload-dev/SDL/tree/0baf4ac49382b537ba449901b5b6d0d189bb1fbb/src/video/ps5).
|
|
The initial backend commit was
|
|
[`2682a5e31e8aee888538b0fb7253d8cadf2797a1`](https://github.com/ps5-payload-dev/SDL/commit/2682a5e31e8aee888538b0fb7253d8cadf2797a1).
|
|
It introduced the four-argument submit declaration, `mode=1`, first
|
|
`frame_id=0`, `RegisterBuffers2`, `SetBufferAttribute2`, the 32-byte buffer
|
|
record and the 80-byte attribute record together. The two unknown records were
|
|
already named with `junk0`; the commit cites no independent ABI source.
|
|
|
|
Commit
|
|
[`fdfa470a0fa33215c677193982dfe3651ac1321a`](https://github.com/ps5-payload-dev/SDL/commit/fdfa470a0fa33215c677193982dfe3651ac1321a)
|
|
only moved those declarations into `SDL_ps5video.h`. Commit
|
|
[`14ac2ec2ab5889af47218a957e3456e613b13d3d`](https://github.com/ps5-payload-dev/SDL/commit/14ac2ec2ab5889af47218a957e3456e613b13d3d)
|
|
changed `uint` to `uint32_t` and improved resource handling; it did not add a
|
|
second provenance source. Later history preserves the same submit tuple.
|
|
|
|
The pinned header and source hashes are respectively
|
|
`e60766e0b43c2a7fceba2ada0c030e7f7b05e63885590092f2f8f5b9da34ed75`
|
|
and `44124546da132ea6e12b1f06a1808d61690c73460a65c3161e8453e8108684b6`.
|
|
|
|
## Bounded official-project scan
|
|
|
|
Immutable source archives for the graphics-relevant repositories in the
|
|
`ps5-payload-dev` organization were downloaded to a separate temporary host
|
|
directory, hashed, extracted and searched statically. None contains a direct
|
|
VideoOut declaration or call. PacBrew's SDL2 recipe points back to the same SDL
|
|
repository and uses a moving Git source with `sha256sums=('SKIP')`; it is not
|
|
independent ABI evidence.
|
|
|
|
| Repository | Commit | Archive SHA-256 | Direct VideoOut evidence |
|
|
|---|---|---|---|
|
|
| libcross2d | `829b167262d3567a048b6e69416f8e3be399c098` | `eb952a041396ba01224a890d14d41662b017488f487ddd4c4018ffddd4a59ae2` | none; SDL consumer |
|
|
| pemu | `4136088e13e825f33c9d0cc43ff9a8c8f749dcb0` | `9ed14a1ea432638992b614f9946bcbc9770f70b6f18ded5778fd6809a927eaeb` | none; SDL consumer |
|
|
| FBNeo | `ca4222ca2cd52215a673c565a5eae3589b352ba2` | `824d6e5b6b61555f5ecc598204052dcb4b1cf16d28be29b9594a44866e726ef3` | none |
|
|
| LakeSnes | `a2db690123649c7ffbc68a663af31efb3a41bf3f` | `253a08957a68461a8535a4727ee1242c21b2dc40c8eb8c99bdb85af799ac3ca6` | none; links SDL2 |
|
|
| yquake2 | `9e233b6a601c393be4ff1dcb1c003750346b8bbb` | `01ef41608b2be0ace119019901a6ea22f304542972bace714d1177cb7f567978` | none; SDL consumer |
|
|
| pacbrew-repo | `c2abcfcb60f569128abd0e8e70ad03a67bee5ea7` | `17be50219ce41772cfc50ea9274b0a62a2259162556b6eeecfaed4a691822872` | references the same SDL fork |
|
|
|
|
The separate public [`PS5Dev/PS5SDK`](https://github.com/PS5Dev/PS5SDK/tree/a2e03a2a0231a3a3397fa6cd087a01ca6d04f273)
|
|
tree at `a2e03a2a0231a3a3397fa6cd087a01ca6d04f273` has no VideoOut source or
|
|
header. It cannot corroborate the current PS5 declarations.
|
|
|
|
## PS4 analogue boundary
|
|
|
|
OpenOrbis PS4 source at
|
|
[`0a1aaf9dd4a92695538bdeb09fb056d06dd11725`](https://github.com/OpenOrbis/OpenOrbis-PS4-Toolchain/tree/0a1aaf9dd4a92695538bdeb09fb056d06dd11725)
|
|
declares the historical four-argument `sceVideoOutSubmitFlip` and documents
|
|
flip mode `1` as VSYNC. This is useful lineage evidence, but it is PS4 Orbis
|
|
evidence. It does not define PS5's `RegisterBuffers2`, `SetBufferAttribute2`,
|
|
descriptor layouts, ownership rules or firmware-9.60 return behavior. It is
|
|
classified `PS4_ANALOG_ONLY` and cannot authorize a PS5 parameter change.
|
|
|
|
The six source archives total 28,169,547 bytes. They remain outside the
|
|
repository in the dedicated temporary research directory because the local
|
|
command policy rejected cleanup. Nothing from that directory is tracked or
|
|
used by tests.
|
|
|
|
## Evidence matrix
|
|
|
|
| Contract | PS5 evidence | Independent PS5 corroboration | Decision |
|
|
|---|---|---|---|
|
|
| submit has four arguments | SDL lineage | none | PARTIAL_SINGLE_LINEAGE |
|
|
| argument positions | SDL lineage | none | PARTIAL_SINGLE_LINEAGE |
|
|
| mode `1` means VSYNC | SDL use; PS4 analogue | none | UNPROVEN_ON_PS5 |
|
|
| first frame/index zero is valid | SDL use | none | UNPROVEN_ON_PS5 |
|
|
| 32-byte `PS5_VideoBuf` layout | SDL `junk0` record | none | UNPROVEN |
|
|
| 80-byte `PS5_VideoAttr` layout | SDL `junk0` record | none | UNPROVEN |
|
|
| `0x8000000022000000` semantics | SDL literal | none | UNPROVEN |
|
|
| `RegisterBuffers2` return semantics | O observed zero | no public definition | PARTIAL_RUNTIME_ONLY |
|
|
| submit error/return semantics | O observed `-1`, errno `0` | none | UNPROVEN |
|
|
| flip-master/active-app requirement | SDK export name only | none | UNPROVEN |
|
|
| status-query signatures/layouts | no PS5 declarations | none | UNPROVEN |
|
|
|
|
## Decision
|
|
|
|
The bounded public inventory does not supply an independent, acceptable PS5
|
|
VideoOut ABI and runtime-state contract. The exact submit failure remains
|
|
source-bound, but its root cause is unresolved. Changing the index, mode,
|
|
frame ID, buffer attributes or ownership state would still be an experiment
|
|
based on guessed semantics. Calling `sceVideoOutSetFlipMaster` or a status
|
|
query would additionally guess a signature and output layout.
|
|
|
|
Classification:
|
|
`PUBLIC_VIDEOOUT_EVIDENCE_INSUFFICIENT_PARAMETER_CHANGE_BLOCKED`.
|
|
|
|
No Phase-1.0R target artifact or device run may begin from this evidence. A
|
|
safe continuation must either obtain a new acceptable public PS5 contract or
|
|
audit, offline, whether the known SDL users run under a different launch/app
|
|
context than the raw elfldr payload. Host/software-only integration can
|
|
continue independently.
|