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.
This does not actually affect the envelope calculation, just the initial values as set by the __sceSasSetSimpleADSR() func and validations for the other two __sceSasSetADSR*() funcs.
The simple bitfields were not being parsed entirely correctly. Final Fantasy Tactics, at least, hits basically all of these cases. I don't have a good ear for it, but this may possibly improve some of its sound effects. It could also affect games hanging, since a couple cases produced negative or 0 rates incorrectly.
This passes some in-progress tests I have, but they depend on the sceSas struct being written properly, which I'm still not ready with.
Also adds reporting for the "Every Extend Extra" case which I can't reproduce returning success. Worried this could break things, does anyone have Every Extend Extra to verify it calls it this way still (I see from blame history that this was quite a long time ago)?
@gid15 I believe the "simple ADSR" bit stuff came from JPCSP. I checked really quick and AFAICT it's incorrect per these changes / my tests. Just FYI.
-[Unknown]