Reimplement Atrac-through-SAS #20156
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Atrac-through-SAS is a special way of playing atrac audio that some games use, most prominently the voices in Sol Trigger but also a bunch of minis, and several other games. Basically, the functions
__sceSasSetVoiceATRAC3
and also sometimes__sceSasConcatenateATRAC3
are used. See #6511This mode of playback works very differently to anything else, so was a bit tricky to figure out, but I've mostly got it now, with the help of a test: hrydgard/pspautotests#236
There are still some edge cases to fix and logging to clean up before I can get this in.See #20125 for some issues this fixes, will link them properly later.
NOTE: This breaks this technique completely for the old sceAtrac implementation. So don't use that. Unfortunately, this means that some savestates may be busted (with regards to audio, at least).
EDIT: Actually, I think I can keep the old implementation somewhat-working..