Files
AnyPS5/docs/dev/debt/libSceAudioIn.md
T
primesoul-web 3f03bc0e24 feat(libs): finish the CesCs conversions and the AudioOut, AudioIn and GameUpdate exports
libSceCesCs goes to 17 of 17: three-byte EUC-JP JIS X 0212 (0x8F)
characters convert through a table read from the Unicode consortium's
JIS0212.TXT, both directions, so sceCesEucJpToUcs2, the MbcsStrTo*
and *Get*Len forms and the context conversions accept them, and a
character with cells in both JIS X 0208 and JIS X 0212 still encodes
to the two-byte form. sceCesRefersUcsProfileCp1250 returns a profile
with the Windows-1250 table of Microsoft's bestfit1250.txt, accepted
by the SBC and context conversions.

The AudioOut HDMI bitstream Sys family follows the Ex ports: SysOpen
opens a port only for mode 5, the TrueHD MAT route EVO-PLAYER-PS5
reads from the firmware 12.70 mode tables, paced at 192 kHz with no
host device; SysConfigureOutput accepts the observed HDMI MAT switch;
SysClose closes a Sys port. sceAudioOut2MasteringGetState fills the
states by states id with the descriptors KytyPS5 declares, SetParam
answers a null parameter with the mastering invalid-API-parameter
error, Set3DLatency follows KytyPS5's output validation (0x80268001
above 2, any user), SetSystemDebugState records the debug state id,
and GetSpeakerArrayCoefficients returns the front pair KytyPS5 and
prosper both return.

sceAudioInOpen accepts param 0x10 as float mono like KytyPS5; HqOpen
answers a longer grain or a lower rate with the invalid-size and
invalid-frequency errors; AsyncOpen also accepts the 384-sample grain
SharpProspero documents. sceGameUpdateGetAddcontLatestVersion answers
a null entitlement label with 0x80412803, as prosper does.
2026-10-18 18:52:36 +02:00

2.4 KiB

libSceAudioIn technical debt

Silent stubs

  • sceAudioInInit (libSceAudioIn) - returns 0 without library-wide setup, as sceAudioOutInit does; each sceAudioInOpen opens its own SDL capture device

Unknown function info

  • sceAudioInIsPadEmbeddedMic (libSceAudioIn) - name from its NID (X+4jdIS75P0); signature int32_t(int32_t handle) from the Ghost of Yotei (PPSA26344) call site in #2355; the result's meaning is unconfirmed, so it still throws rather than invent one

Functional

  • sceAudioInHqOpen, sceAudioInAsyncOpen (libSceAudioIn) open the same port as sceAudioInOpen, so sceAudioInInput, sceAudioInGetSilentState and sceAudioInClose accept their handles. The signatures agree across shadPS4, SharpProspero and KytyPS5. HqOpen is limited to 128 samples at 48 kHz, as KytyPS5 and SharpProspero describe the higher-quality path: a longer grain returns the invalid-size error and a lower rate the invalid-frequency error. AsyncOpen also accepts the 384-sample grain, the largest SharpProspero documents for the low-latency path, and returns the invalid-size error for every other size; the console's shorter average return interval of an async port's blocks is not modelled, so like a synchronous port sceAudioInInput paces one grain at a time. Param 0x10 opens a float mono port like 0x11, as KytyPS5 accepts both, while SharpProspero documents only 0x11. Host capture pacing and console behavior remain unverified.