Skip to content

feat(libSceProprietaryVoiceChatHelperPrx): implement the voice chat helper lifecycle - #5017

Merged
adriadam10 merged 1 commit into
boykopovar:mainfrom
adriadam10:feat/proprietary-voice-chat-helper
Oct 13, 2026
Merged

adriadam10 merged 1 commit into
boykopovar:mainfrom
adriadam10:feat/proprietary-voice-chat-helper

Conversation

@adriadam10

Copy link
Copy Markdown
Collaborator

What

Re-opens #2796 by @lmaths, which the intake bot closed ("intake paused") without a review. The commit is theirs, cherry-picked with its authorship; the only change is that its TechnicalDebt entry moved to docs/dev/debt/libSceProprietaryVoiceChatHelperPrx.md, since main split the debt file per library after #2796 was written.

libSceProprietaryVoiceChatHelperPrx goes from 0/4 to 3/4. It is how a title announces that it uses its own voice chat instead of the system's; the host has no system voice chat, so only that path is implemented:

  • Initialize / Terminate track whether the library is initialized.
  • SetVoiceChatState returns 0 and records nothing (its state argument is unknown).
  • GetVoiceChatUsageState still throws: whether the state is returned or written through a pointer, and its encoding, are unknown.
  • Misuse (second Initialize, any call before Initialize or after Terminate) throws, as the library's error codes are unknown.

Is it a system library? Yes: libNidResolver lists libSceProprietaryVoiceChatHelper.native among the console's sysmodules (id 0x132), the SDK 12 docs have a ProprietaryVoiceChatHelper Overview/Reference, and PPSA23566's sce_module/ ships only libc.prx and libSceNpCppWebApi.prx. The four signatures remain unknown (names from shadPS4's aerolib list, as in #992); no reference implements the library.

Tested

  • Linux, GCC, Release, -DBUILD_TESTING=ON, built on the NAS (sccache-dist), after rebasing on main at c080fc2d5+: libs target, guest_proprietary_voice_chat_helper, test_registration, conventions_*, import_audit, progress_* pass.
  • The new test is proven to run: changing the expected SetVoiceChatState result to 1 aborts it (exit 134); restored, it passes.
  • python3 tools/check_conventions.py --base upstream/main passes.
  • No title was run; nothing measured on console hardware (as in feat(libSceProprietaryVoiceChatHelperPrx): implement the voice chat helper lifecycle #2796). Windows is left to CI.

Checklist

  • Based on current main; no other open PR implements the same functions (feat(audioout2): report supported user attributes #4893 only mentions the library in a debt line of libSceAudioOut)
  • 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 under Silent stubs in their library's technical debt file
  • 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
  • Unblocks: none
  • AI-assisted: yes

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Progress report (cac4e96 → e933285)

📈 System libraries: 88.37% (+0.08%, +3 implemented functions)

✅ 3 implemented
Library Name
libSceProprietaryVoiceChatHelperPrx sceProprietaryVoiceChatHelperInitialize
libSceProprietaryVoiceChatHelperPrx sceProprietaryVoiceChatHelperSetVoiceChatState
libSceProprietaryVoiceChatHelperPrx sceProprietaryVoiceChatHelperTerminate

@github-actions

Copy link
Copy Markdown

Other open pull requests touch the same code. Merging one will break the other, or both implement the same thing. If this one builds on them, list them in Depends on.

Pull request Conflicting files (lines on main) Same exports Same new files
#3826 sceProprietaryVoiceChatHelperGetVoiceChatUsageState
sceProprietaryVoiceChatHelperInitialize
sceProprietaryVoiceChatHelperTerminate
core/libs/prx/libSceProprietaryVoiceChatHelperPrx/CMakeLists.txt
core/libs/tests/GuestProprietaryVoiceChatHelper.cpp

…elper lifecycle

Initialize and Terminate track whether the library is initialized, and
SetVoiceChatState returns success without recording anything: the host has
no system voice chat for a title's own voice chat to announce itself to,
and the state argument is unknown.

GetVoiceChatUsageState keeps throwing. With the state argument unreadable
there is no recorded usage state, and whether the console returns the state
or writes it through an output pointer, and how it encodes it, is unknown.

Misuse throws rather than guessing an error code, as the library's error
codes are unknown.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@adriadam10
adriadam10 force-pushed the feat/proprietary-voice-chat-helper branch from 6946832 to e933285 Compare October 13, 2026 08:34
@adriadam10
adriadam10 merged commit b877083 into boykopovar:main Oct 13, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants