Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/dev/debt/libSceVideoOut.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
- [sceVideoOutSetFlipRate](../../../core/libs/prx/libSceVideoOut/src/Output.cpp) stores a rate of 0, 1 or 2 and returns `VIDEO_OUT_ERROR_INVALID_VALUE` for any other rate. PPSA13356 calls it with 60; whether the console accepts that value or returns this error is unverified. Its one call in PPSA13356 (0xbedef) passes the handle from a field of its own object and does not read the result.
- [sceVideoOutOpen](../../../core/libs/prx/libSceVideoOut/src/Output.cpp) validates the priority and CPU affinity that the open param requests for the VideoOut service thread but does not apply them: the port's present and vblank threads are host threads, and guest priorities and affinities do not reach host scheduling. Of the 16 calls in ten titles checked, all pass user 255 and index 0, 13 pass bus type 0 and three read it from a field (one call each in Borderlands 4, MXGP 26 and Super Meat Boy 3D), and 13 pass no open param. Metal Gear Solid 4 (PPSA18194) passes one from `mgs4.elf` with neither flag set and one from its launcher that sets only the affinity, 0x3e. Astro Bot (PPSA21564) sets priority 256 and affinity 0x1fff
- [sceVideoOutAddVrrStatusFlagsPrivilege](../../../core/libs/prx/libSceVideoOut/src/Output.cpp) returns 0 and does nothing: the host output has no VRR state to report. The name comes from an assert message in a title that requires `SCE_VIDEO_OUT_OK`; the NID hashes to it, the arguments are unknown (it is called without any)
- [sceVideoOutVrrPegToFixedRate, sceVideoOutVrrUnpegFromFixedRate](../../../core/libs/prx/libSceVideoOut/src/Output.cpp) (libSceVideoOut) - PPSA05684 passes the handle to both, two further zero arguments to `sceVideoOutVrrPegToFixedRate`, and ignores the results. The meaning of those two arguments is unknown, so only zeros are accepted. VRR is not modelled and the output always runs at a fixed rate, so both calls only validate the handle and return 0
- [sceVideoOutVrrPegToFixedRate, sceVideoOutVrrUnpegFromFixedRate](../../../core/libs/prx/libSceVideoOut/src/Output.cpp) (libSceVideoOut) - PPSA05684 passes the handle to both, two further zero arguments to `sceVideoOutVrrPegToFixedRate`, and ignores the results. The meaning of those two arguments is unknown, so only zeros are accepted. VRR is not modelled and the output always runs at a fixed rate, so both calls only validate the handle and return 0. Every direct call in the titles checked passes the constant 0 for both the second and the third argument; the value in titles that reach the function only through a tail jump is not known
- [sceVideoOutCursorSet2xMagnify](../../../core/libs/prx/libSceVideoOut/src/Output.cpp) takes the handle and the cursor index like the other cursor calls and returns 0: no cursor image is drawn, so a magnified cursor cannot be observed, and the console's answer is unmeasured. PC5 (PPSA11018) imports it. The signature `(handle, index, enable)` and the effect of the flag are unverified

### Unknown function info
Expand Down
Loading