Skip to content

feat(libs): implement libSceVdecsw on top of libSceVideodec2 - #2203

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
XairRrR:feat/libscevdecsw
Oct 9, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
XairRrR:feat/libscevdecsw

Conversation

@XairRrR

@XairRrR XairRrR commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

What

Uncharted: Legacy of Thieves Collection (PPSA05684) plays its intro and menu movies through libSceVdecsw and stops on main with:

sceVdecswQueryComputeMemoryInfo not implemented

(#1208 and #1881 were closed because no title was shown reaching the module.)

  • Decoder creation, compute queues, memory queries, decode input and output, AVC picture info, reset and finalize use the layouts of shadPS4's vdecsw.h, checked against the title's movie decoder; decoding goes through libSceVideodec2.
  • At most four decoded pictures are queued. The last one is held until sceVdecswFinalizeDecodeSequence and marked as the last frame: the title waits for it to end a movie.
  • What is inferred is recorded in TechnicalDebt; the eleven "unknown signature" entries are removed.
  • The H.264 stream of guest_videodec2 moves to tests/H264Fixture.hpp; the new guest_vdecsw test decodes it through Vdecsw.

Tested

Arch Linux, GCC 16.2.1, NVIDIA GeForce RTX 4070 Ti SUPER (driver 615.71.09).

  • The branch alone on current main (d70b899): tools/check_conventions.py passes; of the 514 ctest tests all pass except agc_driver_dcc_keys_first_write, which fails the same way on main (an unchanged pending image was uploaded again). agc_driver_storage_cache_budget passes run alone; under ctest -j8 a local 3 GB RSS limit stopped it.
  • Uncharted: Legacy of Thieves Collection (PPSA05684): with this and the other changes of its bring-up, the title boots past the stop quoted above and reaches its main menu.
  • the PlayStation Studios intro movie of the title plays with sound and ends, then the game continues.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • AI-assisted: yes

libSceVdecsw is the software H.264 decoder interface PPSA05684 uses for
its movies. Decoder creation, compute queues, memory queries, decode
input and output, AVC picture info, reset and finalize are implemented
with the layouts of shadPS4's vdecsw.h, checked against the title's
movie decoder, and decode through libSceVideodec2. The H.264 stream the
Videodec2 test uses moves to a shared fixture, and a guest test decodes
it through Vdecsw.

Uncharted: Legacy of Thieves Collection (PPSA05684) plays its movies through libSceVdecsw and stopped at sceVdecswQueryComputeMemoryInfo.
@popcoder565

Copy link
Copy Markdown
Contributor

Native Windows run, since no Windows results were posted. Setup: Windows 10 (19045), MinGW-w64 GCC 15.2.0 (WinLibs r7), Release. Head 60c26120, merged onto main d70b899 in one build with 38 other PRs that had no Windows run.

No title was run.

🤖 Addressed by Claude Code

@adriadam10

Copy link
Copy Markdown
Collaborator

Checked on Linux (GCC, merged onto current main): build and ctest green for guest_vdecsw and guest_videodec2; guest_vdecsw fails without the change. Struct sizes and offsets match shadPS4 vdecsw.h; the inferred error codes and queue depth are recorded in TechnicalDebt. Windows run by @popcoder565 also passes. Merging once CI is green.

@adriadam10
adriadam10 merged commit 747726c into boykopovar:main Oct 9, 2026
6 checks passed
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown

Progress report (d70b899 → 60c2612)

📈 System libraries: 85.12% (+0.43%, +13 implemented functions)

✅ 13 implemented
Library Name
libSceVdecsw sceVdecswAllocateComputeQueue
libSceVdecsw sceVdecswCreateDecoder
libSceVdecsw sceVdecswDeleteDecoder
libSceVdecsw sceVdecswFinalizeDecodeSequence
libSceVdecsw sceVdecswGetAvcPictureInfo
libSceVdecsw sceVdecswQueryComputeMemoryInfo
libSceVdecsw sceVdecswQueryDecoderMemoryInfo
libSceVdecsw sceVdecswReleaseComputeQueue
libSceVdecsw sceVdecswResetDecoder
libSceVdecsw sceVdecswSetDecodeInput
libSceVdecsw sceVdecswSetDecodeOutput
libSceVdecsw sceVdecswTrySyncDecodeInput
libSceVdecsw sceVdecswTrySyncDecodeOutput

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants