mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
3.3 KiB
3.3 KiB
libSceAudioPropagation technical debt
Silent stubs
- libSceAudioPropagation implements only the no-acoustic-propagation path: the system keeps a 16-byte header in the title's CPU memory (no GPU memory), rooms, portals, sources and materials are tracked handles, attributes are validated and have no effect, no rays are requested and sources report no audio paths. Ray results and audio paths are accepted only when empty and throw otherwise; path calculation returns the confirmed initial validation errors and throws for unsupported propagation;
sceAudioPropagationSourceRenderpreserves each destination mix because there are no path contributions, following the additive-output contract in SharpProspero; console behaviour has not been measured. It adds no dry signal. Objects still alive when their system is destroyed become unusable, and their later destroy or unregister is a no-op: PPSA21567 releases its reference-counted room, portal and source owners just beforesceAudioPropagationSystemDestroy, so the order for every object is not proven. Occlusion, reflections and reverb from level geometry are absent; in-game behaviour remains unverified.
Unknown function info
- sceAudioPropagationSourceSetAudioPath (libSceAudioPropagation, NID
tKSmk2JsMAA) -(uint64_t path, const void* data, float gain)follows SharpProspero and SAROS's call, which passes a handle fromsceAudioPropagationSourceGetAudioPath, path data and gain 1.0. Path updates are unsupported and every call throws without reading or writing caller memory. The no-propagation model yields no path handles; path allocation, ownership, rendering and console error codes remain unknown. - libSceAudioPropagation (libSceAudioPropagation) - signatures and struct descriptors recovered from PPSA21567's calls (#481), not from documentation. The system options layout is unknown (only checked for non-null); the fourth argument of
sceAudioPropagationSourceCalculateAudioPathsselects reflection order; descriptor validation, ray ownership and path generation remain unimplemented;sceAudioPropagationSourceGetAudioPathoutput width and invalid-handle/null-output/index errors are confirmed. The meaning of theRenderInfoword at +0x28 is unknown (PPSA21567 and PPSA21564 pass 2); only 2 is accepted. Both titles pass oneRenderInfoper call: a count of 0 throws, and larger counts are handled element by element without proof. Other functions still throw for invalid input; their native validation precedence is not yet implemented - Initialization exports ending in
Init, plussceAudioPropagationSystem, are absent from the supplied native module and retain unresolved signatures. Query, locking, enumeration and report callback signatures are recovered; source/system diagnostic fields still need reconstruction.