Skip to content

feat(prx): stub TextToSpeech2, Vdecsw and Coredump unknown exports - #301

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
Pouare514:feat/prx-stub-modules
Oct 7, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
Pouare514:feat/prx-stub-modules

Conversation

@Pouare514

Copy link
Copy Markdown
Contributor

What

New stub modules needed at load time by TLOU Part I: \libSceTextToSpeech2\ (1 export), \libSceVdecsw\ (2 named + 11 raw-NID exports), plus 4 Coredump unknown exports in libkernel. Unknown names/signatures follow the Agc unknown precedent (\APS5_EXPORT\ raw NIDs) and are recorded in TechnicalDebt; anything called throws with its name instead of failing the whole load with an unnamed import error.

Tested

Windows 11, MinGW GCC 15.2.0. Verified every NID present in the built .prx\ files. Full \ctest -E agc_driver_graphics|guest_rendering_wait: green.

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; silent stubs are listed in TechnicalDebt
  • No notes, investigation .md\ files or images added to the repository
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • AI-assisted: yes

@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Progress report (e79c971 → 4fcfd3c)

📉 System libraries: 86.13% (-0.48%, +16 declared functions)

🆕 16 declared as stubs
Library Name
libSceTextToSpeech2 sceTextToSpeech2GetSystemStatus
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
libkernel sceCoredumpAttachMemoryRegion
libkernel sceCoredumpAttachUserMemoryFile

@oneandonlydean

Copy link
Copy Markdown
Collaborator

Thanks for these stubs. This conflicts with main now (Coredump.cpp and TechnicalDebt.md): MEJ7tc7ThwM and Uxqkdta7wEg were added to Coredump.cpp in the meantime, so those two should be dropped and the rest rebased. Main already uses sceCoredumpUnknown00 to 05, so DoKHmUw1yiQ and +YX0z-GUSNw would become sceCoredumpUnknown06 and 07. #302 also repeats these TechnicalDebt lines, so whichever lands second will need to drop them.

@Pouare514

Copy link
Copy Markdown
Contributor Author

Done: rebased, dropped MEJ7tc7ThwM/Uxqkdta7wEg (on main), DoKHmUw1yiQ and +YX0z-GUSNw renumbered to sceCoredumpUnknown06/07, libs rebuilt OK. The TechnicalDebt lines that #302 repeats are kept here; #302 will drop its copies.

@oneandonlydean

Copy link
Copy Markdown
Collaborator

Thanks for the rebase and the renumbering. Two things:

  • The TechnicalDebt hunk now also deletes seven lines that are on main: X+4jdIS75P0, AOWqIYsgVHs, GQTObcITIXI, BnMAMrsfVWo, the "AudioPropagation, AudioIn, NpSessionSignaling and PlayerInvitationDialog" line, sceAvPlayerStartEx and sceAvPlayerInit / sceAvPlayerInitEx. That probably happened while resolving the conflict. Those lines need to stay.
  • All 14 NIDs listed as unknown have known names, which I checked by recomputing each NID from the name:
NID Name
+352WTlGCQI sceTextToSpeech2GetSystemStatus
DoKHmUw1yiQ sceCoredumpAttachUserMemoryFile
+YX0z-GUSNw sceCoredumpAttachMemoryRegion
0moTubWCsTM sceVdecswQueryComputeMemoryInfo
5Y6nZqIZvBg sceVdecswFinalizeDecodeSequence
A+2M7EivuOU sceVdecswQueryDecoderMemoryInfo
aqMiF0AgUYI sceVdecswSetDecodeInput
fX-zOOefbbs sceVdecswReleaseComputeQueue
hIgrg5h4V6s sceVdecswAllocateComputeQueue
ihNT-uuEAr4 sceVdecswGetAvcPictureInfo
kMBw37oH8nI sceVdecswTrySyncDecodeOutput
l4sQYy5wPkc sceVdecswTrySyncDecodeInput
rgtMCOpyBSc sceVdecswSetDecodeOutput
veb-YBrOqo0 sceVdecswResetDecoder

Could you export them under these names (like sceVdecswCreateDecoder, without APS5_EXPORT), and change their TechnicalDebt lines from "unknown name, signature" to "unknown signature"?

@github-actions github-actions Bot added the needs rebase Conflicts with main, rebase needed label Oct 4, 2026
@Pouare514

Copy link
Copy Markdown
Contributor Author

Done both: restored the seven TechnicalDebt lines from main, and exported all 14 NIDs under their recomputed real names as plain functions without APS5_EXPORT (like sceVdecswCreateDecoder), with unknown signature TechnicalDebt lines. Clean local libs build confirms nid_patcher resolves each to its NID with no duplicates. Also dropped the stray AudioIn hunk from this branch.

@Pouare514
Pouare514 force-pushed the feat/prx-stub-modules branch 2 times, most recently from 07b477a to 6712407 Compare October 5, 2026 01:09
@oneandonlydean

Copy link
Copy Markdown
Collaborator

Thanks, the names are right: all 14 recompute to their NIDs (plus sceVdecswCreateDecoder/DeleteDecoder), none is exported anywhere else on main or in another open PR, and the stray AudioIn hunk is gone.

The rebase onto #574's merge has the same problem as last time, though, with different lines: TechnicalDebt.md now deletes six lines that are on main:

It also changes "AudioIn, NpSessionSignaling and PlayerInvitationDialog exports" back to the older "AudioPropagation, AudioIn, ..." wording. It looks like an older copy of the file was used to resolve the conflict. Since #579 landed, the file also conflicts with main again (main replaced the AMPR WaitOnAddress / WaitOnCounter line).

Could you rebase once more and take main's TechnicalDebt.md as it is, then add only your 14 "unknown signature" lines? git diff origin/main -- docs/dev/TechnicalDebt.md should then show only added lines. After that it's ready to merge from my side.

@Pouare514

Copy link
Copy Markdown
Contributor Author

Rebased onto origin/main (53dc19c). For docs/dev/TechnicalDebt.md I took main's file as-is and added only the 14 unknown-signature lines at the end of Unknown function info, so git diff origin/main -- docs/dev/TechnicalDebt.md shows additions only, zero deletions. Code conflicts auto-merged cleanly (new TextToSpeech2/Vdecsw files plus 2 Coredump stubs, all plain exports without APS5_EXPORT); no other manual merges needed.

@oneandonlydean

Copy link
Copy Markdown
Collaborator

Thanks, docs/dev/TechnicalDebt.md now only adds your 14 lines, with no deletions, and the rest of the branch is unchanged. The 14 names were already checked last time.

It conflicts with main again at the same spot, though. Since your rebase, main has added four lines at the end of "Unknown function info": _sceUlobjmgrRegisterObject, sceShareGetCurrentStatus, the sceAgcDcbSet*PredicationEnableGetSize line and Resource registration. Keeping those four and adding your lines after them resolves it. Nothing else conflicts.

@adriadam10

Copy link
Copy Markdown
Collaborator

Rebased onto current main myself: squashed into one commit (authorship kept) since the first commit no longer applied, and moved the 14 TechnicalDebt lines to after sceVoiceSetMuteFlag instead of the end of "Unknown function info", where every PR appends and it kept conflicting. Net diff unchanged (+110). Build and full ctest green on the rebase; merging once CI passes.

@adriadam10
adriadam10 force-pushed the feat/prx-stub-modules branch from 7ac7577 to 4fcfd3c Compare October 7, 2026 13:43
@adriadam10
adriadam10 merged commit d29c140 into boykopovar:main Oct 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs libkernel needs rebase Conflicts with main, rebase needed prx

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants