Commit Graph
119 Commits
Author SHA1 Message Date
Dean Galvin f200a93447 Merge main into this branch 2026-11-01 12:07:53 +13:00
Dean Galvin 31cf82a8a3 Merge #13988 into this branch 2026-11-01 12:07:47 +13:00
Adrià a85102910a Merge pull request #13694 from MarcZX10/fix/host-device-changes
fix(libSceAudioOut): reopen the output device the host stopped
2026-10-31 20:31:07 +01:00
Adrià 1cac0ca433 Merge pull request #13676 from xXPBSXx/docs/audioout-lastoutputtime-sources
docs(debt): name when the emulators stamp the last audio output time
2026-10-31 19:49:18 +01:00
alfalfa-starandClaude Opus 5.5 c34ab0258d fix(libSceAudioOut): play the PCM a port was given at the set when an AudioOut2 context advances
Advance read each port's buffer when it completed the grain. Crash
Bandicoot 4 (PPSA02433) runs Wwise, which sets each object port's buffer
after mixing and clears the buffer for the next frame before it calls
Advance, so every grain was read as silence and the menu and gameplay had
no sound. A grain given by a set now plays the copy taken at that set; a
repeated buffer is still read at Advance.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 15:56:36 +01:00
alfalfa-starandClaude Opus 5.5 11f217b14f fix(libSceAudioOut): play silence for a regiven AudioOut2 buffer that is not set again
A port without a new buffer for a grain repeated its last one whenever the
buffer had not moved on, which also covered a port given the same buffer
every grain. Crash Bandicoot 4 (PPSA02433) gives each Wwise object port the
same buffer every grain and none for about 350 ms while it loads; the
repeat then played the memory Wwise had reused, a loud burst of noise.
Only a port given a buffer once since it was created or cleared repeats it
now.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 15:29:32 +01:00
Adrià 18f5949788 Merge pull request #13588 from MarcZX10/docs/debt-D1-1
docs(libSceAmpr, libSceAudioOut): correct two debt statements
2026-10-31 06:02:12 +01:00
MarcZX10 2bdcad1490 Merge upstream/main into fix/host-device-changes 2026-10-30 23:52:24 +00:00
Adrià b55fa1b387 Merge pull request #13223 from kyon-eth/feat/audio-out-320-exports
feat(libSceAudioOut): declare 33 callable exports
2026-10-30 23:57:31 +01:00
xXPBSXxandClaude Opus 5.5 4574fd1356 docs(debt): name when the emulators stamp the last audio output time
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 23:37:52 +01:00
MarcZX10 9b6c28b8bd Merge upstream/main into fix/host-device-changes
Bring the branch up to the current upstream main. The only conflict was the
AudioOut debt doc, where both sides added a Functional entry; both are kept.
2026-10-30 19:52:07 +00:00
MarcZX10 a2ee59cda8 docs(libSceAudioOut): sceAudioOut2LoInit only marks AudioOut2 initialized
Old claim: the sceAudioOut2Lo* calls, including sceAudioOut2LoInit, each forward to
their sceAudioOut2 counterpart.

What the code does: sceAudioOut2LoInit calls AudioOut2MarkInitialized and returns 0;
it does not call sceAudioOut2Initialize. sceAudioOut2InitializeEx has the same body.
The other sceAudioOut2Lo* calls named in the entry forward.

Permalinks at b1b5353cfc:
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAudioOut/src/AudioOut2Low.cpp#L10-L13
- https://github.com/boykopovar/AnyPS5/blob/b1b5353cfcee098ed17e3ba8a6e616bee97c9215/core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp#L17-L21
2026-10-30 18:49:34 +00:00
Adrià 01069f4d2b Merge pull request #12954 from hugodearaujo/fix/audioout2-blocking-push
fix(libSceAudioOut): return from a blocking AudioOut2 push once the queue has room
2026-10-30 15:45:36 +01:00
MarcZX10 de0b4c4163 docs(libSceAudioOut): record the AudioOut2 main output as debt
A context's main host device is not reopened when the host stops it, a
gap the branch does not fix. The console's behaviour is unmeasured.
2026-10-30 14:00:37 +00:00
MarcZX10 d94ae4c58c docs(libSceAudioOut): record the host output reopen as debt
The reopen of a stopped host output has no console counterpart to test
against, so its guest-visible behaviour is recorded as unmeasured.
2026-10-30 14:00:24 +00:00
Dean 806b22a060 Merge pull request #12698 from xXPBSXx/docs/audioout2-push-blocking-count
docs(libSceAudioOut): count the blocking values passed to sceAudioOut2ContextPush
2026-10-31 00:20:59 +13:00
Kyon e4b274109f feat(libSceAudioOut): declare 33 callable exports 2026-10-30 07:02:41 +00:00
hugodearaujo 56fd9eac87 Merge main into fix/audioout2-blocking-push
# Conflicts:
#	core/libs/prx/libSceAudioOut/src/AudioOut2Context.cpp
2026-10-30 03:03:08 -03:00
Adrià 4628011bc8 Merge pull request #12727 from XairRrR/fix-audioout-context-handles
fix(libSceAudioOut): reject AudioOut2 context handles that are not live contexts
2026-10-30 05:51:47 +01:00
hugodearaujo 1f905993a3 docs(libSceAudioOut): state the blocking push's combined worst-case wait 2026-10-29 20:40:18 -03:00
Dean 85ae67061d Merge pull request #12856 from slopgobblercobbler/fix/audioout-param-buffer-validation
fix(libSceAudioOut): validate open format parameter and virtual port buffer boundaries
2026-10-30 10:18:42 +13:00
Dean af4e595327 Merge pull request #11762 from oneandonlydean/salvage/small-exports-9541
feat(prx): declare 34 PS5 JSON, AudioOut, AudioIn and Sdma exports
2026-10-30 08:13:52 +13:00
AdriàandClaude Sonnet 5.5 1ed07de320 test(libSceAudioOut): assert the blocking push level, not elapsed time; note destroy during a push is unsupported
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 18:43:12 +01:00
hugodearaujo 7a75ea95b3 docs(libSceAudioOut): record the blocking push wait as inferred from PPSA02530
The wait is described in the debt file instead of in code comments.
2026-10-29 13:29:53 -03:00
slopgobblercobbler 120b2036a5 fix(libSceAudioOut): validate open format parameter and virtual port buffer boundaries 2026-10-29 14:27:50 +01:00
XairRrR 669ad73b05 docs(libSceAudioOut): record the AudioOut2 context handle gaps
The live context set rejects stale and invalid handles but not a destroy
that races another call on the same handle, because the lookup releases
the set's lock before the caller uses the context. A destroyed handle also
becomes valid again when a new context gets the same allocation. Both are
recorded in the libSceAudioOut debt file.

AI-assisted: yes
2026-10-29 06:56:28 +01:00
xXPBSXxandClaude Opus 5.5 f205990ead docs(debt): count one two-path Push site as not constant
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 05:58:28 +01:00
xXPBSXxandClaude Sonnet 5.5 ba998c5558 docs(libSceAudioOut): count the blocking values passed to sceAudioOut2ContextPush
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-29 00:49:14 +01:00
SeaSunPTandClaude Opus 5.5 9f6c3527ed fix(libSceAudioOut): refuse system debug state and chat calls before sceAudioOut2Initialize
#9838 read sceAudioOut2SetSystemDebugState in PS5 firmware 3.20 and 4.03:
it returns 0x80268006 (not initialized) before sceAudioOut2Initialize,
ahead of its pointer, id and size checks. The debt entry for
sceAudioOut2EnableChat and sceAudioOut2DisableChat records the same
0x80268006 before AudioOut2 initialization. Both were left out while
AudioOut2 initialization was not tracked; AudioOut2IsInitialized_nid_no_patch
now tracks it, so all three return 0x80268006 first and change no state.
The two debt entries drop the closed gap.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-28 12:56:22 +00:00
Dean Galvin d64880a5a4 Merge branch 'main' into salvage/small-exports-9541
# Conflicts:
#	docs/dev/debt/libSceAudioOut.md
2026-10-28 22:38:37 +13:00
Dean c2d14b444c Merge pull request #11918 from kyon-eth/feat/audioout2-1360-inventory
feat(libSceAudioOut): declare 11 additional exports
2026-10-28 22:30:28 +13:00
Adrià 41417377ca Merge pull request #11742 from milescoviello/docs/audioout2-context-attributes-silent
docs(libSceAudioOut): list sceAudioOut2ContextSetAttributes as a silent stub
2026-10-28 10:11:24 +01:00
Adrià a57567928d Merge pull request #11739 from milescoviello/docs/audioout2-port-state-reads
docs(libSceAudioOut): note which port state fields five titles read
2026-10-28 10:10:14 +01:00
Dean a1f5ae4e8b Merge pull request #11244 from SeaSunPT/fix/audioout2-mastering-not-initialized
fix(libSceAudioOut): refuse sceAudioOut2Mastering calls before sceAudioOut2Initialize
2026-10-28 13:02:46 +13:00
Dean 6c48f35a95 Merge pull request #8098 from LuisAguilarDev/fix/audioout2-silent-ports
fix(audioout2): keep each port's grain when ports share a buffer
2026-10-28 12:59:20 +13:00
Dean 45af0a222e Merge pull request #11458 from MarcZX10/marc/docs-debt-sync
docs(debt): drop duplicated debt entries
2026-10-28 12:05:46 +13:00
Kyon fadf15081d feat(libSceAudioOut): declare 11 additional exports 2026-10-27 12:31:40 +00:00
xdCloudy 278754be7c feat(prx): declare 27 PS5 JSON and AudioOut exports 2026-10-27 19:57:19 +13:00
milescovielloandClaude Opus 5.5 0f9133b769 docs(libSceAudioOut): scope the context attribute stub to valid arguments
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 06:46:52 +00:00
milescovielloandClaude Opus 5.5 448275eff5 docs(libSceAudioOut): list sceAudioOut2ContextSetAttributes as a silent stub
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 06:34:57 +00:00
milescovielloandClaude Opus 5.5 603a540fa7 docs(libSceAudioOut): scope the port state reads to the inspected instructions
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 06:29:16 +00:00
milescovielloandClaude Opus 5.5 8f2f7b8971 docs(libSceAudioOut): note which port state fields five titles read
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-27 06:25:19 +00:00
Dean 38cda53b52 Merge pull request #11160 from p3n1cillin/claude/audioout-padspk-volume
fix(libSceAudioOut): declare sceAudioOutSetPadSpkVolume as PSBox calls it
2026-10-27 14:05:56 +13:00
Dean fc7e583e6e Merge pull request #11035 from orezraey/fix/libsceaudioout-repeated-init-measured-ps5
fix(libSceAudioOut): fail a repeated sceAudioOut2Initialize and sceAudioOutInit as measured on a PS5
2026-10-27 09:16:48 +13:00
SeaSunPTandClaude Opus 5.5 d736ea814e Merge branch 'main' into fix/audioout2-mastering-not-initialized
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 15:34:06 +00:00
hypermistandClaude Opus 5.5 d6f2d6501e docs(debt): cite firmware 13.60, not 12.00, for the decrypted modules
The modules these entries were read from record SDK 13.60 (0x13600007)
in their module-param segment, so they are firmware 13.60. Only the
version label changes; the behaviour described is unchanged.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013XFS3FUfBtqCVfwmBrRQ6q
2026-10-26 16:17:50 +01:00
Adrià b28254176b Merge pull request #10146 from xXPBSXx/docs/debt-audioout-portcreate-title
docs(debt): note the formats a title passes to sceAudioOut2PortCreate
2026-10-26 16:07:32 +01:00
MarcZX10 b3d00b129b docs(debt): drop the duplicate sceAudioOut2Set3DLatency entry 2026-10-26 14:02:23 +00:00
SeaSunPTandClaude Opus 5.5 4128be2f60 fix(libSceAudioOut): refuse sceAudioOut2Mastering calls before sceAudioOut2Initialize
The PS5 module read for #9027 returns 0x80268006 from sceAudioOut2MasteringInit,
sceAudioOut2MasteringInitEx, sceAudioOut2MasteringTerm,
sceAudioOut2MasteringGetState and sceAudioOut2MasteringSetParam before
sceAudioOut2Initialize. #9027 left the check out because AudioOut2
initialization was not tracked; AudioOut2IsInitialized_nid_no_patch now
tracks it, so each of these returns 0x80268006 first, before its own
mastering-state and argument checks, and changes no state. The debt entry
drops the closed gap.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 22:07:11 +00:00
Dean Galvin 91039afff1 Merge branch 'main' into feat/audioout-set-main-output 2026-10-26 09:57:37 +13:00