Commit Graph

191 Commits

Author SHA1 Message Date
Unknown W. Brackets
38053df4ca Don't drop the last mix of vag samples.
Wait instead until the end of mixing to end the envelope.
2014-02-17 21:09:42 -08:00
Unknown W. Brackets
3899e18422 Always key on for 32 samples regardless of pitch.
Before it would be more or less depending on pitch.  It's always 32.
2014-02-17 21:09:41 -08:00
Unknown W. Brackets
e006ab5b2d Don't read the first 32 samples after keyon.
The way I'm approximating this is ugly...
2014-02-17 01:39:59 -08:00
Unknown W. Brackets
6b984c5593 Don't loop PCM samples when loopPos < 0. 2014-02-17 01:39:59 -08:00
Unknown W. Brackets
95fc9624b4 Fix PCM looping in SAS.
The parameter specifies where the loop restarts at.
2014-02-17 01:39:58 -08:00
Unknown W. Brackets
55507d7844 Fix the default adsr sustain mode.
Probably doesn't matter, games always set it.
2014-02-17 01:39:57 -08:00
Unknown W. Brackets
d097ac5394 Don't change height when keying off a voice.
Tests show that the height does not revert to the sustain level.
2014-02-17 01:39:56 -08:00
Unknown W. Brackets
d53ab02e5b Don't change height immediately on keyon.
This replicates the PSP's behavior, which is a 32-grain lead in, plus the
height remains what it was before until processing happens.
2014-02-17 01:39:55 -08:00
Unknown W. Brackets
684caa01ec Correct SAS bent linear curve.
Tests shows that at 0x30000000 it still goes up the full amount.
2014-02-17 01:39:54 -08:00
Henrik Rydgård
caf729e01e Remove call to SetState, superfluous now that the state variables are gone. 2014-02-11 17:05:46 +01:00
Henrik Rydgård
079f653cff Sas envelopes: Simplify away some redundant state. 2014-02-11 11:56:24 +01:00
Unknown W. Brackets
0265fc757d Flip and shift instead of signed divide.
Clearer than all those zeroes and maybe faster...
2014-02-11 01:29:33 -08:00
Unknown W. Brackets
b398a84517 Attack switches to decay at max height already.
It does not wait until it goes above.
2014-02-11 00:18:36 -08:00
Unknown W. Brackets
95a8af9e60 Decay does not switch to release at height max.
This can happen with an exponent rate of 0.  It stays there.
2014-02-11 00:17:13 -08:00
Unknown W. Brackets
f11d362be3 Fix integer overflow in exponent decrease. 2014-02-11 00:11:07 -08:00
Unknown W. Brackets
f981d39f94 Sustain defaults to 0, not 0x100.
Not sure how I came to that mistaken idea.
2014-02-10 23:48:10 -08:00
Unknown W. Brackets
6392307cbd Calculate the curve on the fly per the PSP.
Values based on lots of testing from the PSP, and match exactly.
2014-02-10 08:43:01 -08:00
Unknown W. Brackets
df7d25f4bf Correct a case where release rate was set negative.
Seems to be capped at INT_MAX like the others, oops.
2014-02-09 11:30:15 -08:00
Unknown W. Brackets
a14850c16b Drop height to 0 when VAG ends.
Otherwise we will set it to !playing and never step the height.
Should fix Yu-Gi-Oh again.  Probably release before was miscalculated as
0 which is why it worked before.
2014-02-09 10:53:47 -08:00
Unknown W. Brackets
074ef84559 Correct the rates set by sceSasSetSimpleADSR().
They were wrong for a few combinations before.  Could have effected how
accurate sound effects were (they may have been too quite, or dropped off
wrong, etc.)
2014-02-07 22:29:54 -08:00
raven02
3f20b5ad77 sceSas : should be always delay thread 2014-02-04 20:03:54 +08:00
Unknown W. Brackets
a00d5a2df8 Set a voice as keyed off when its envelope ends. 2014-02-04 01:35:53 -08:00
raven02
8e8329abec Fix audio gitches 2014-01-27 19:32:35 +08:00
Henrik Rydgård
0414a3faa4 Not having voices playing is not an error. Disabling logging of it. 2014-01-26 16:32:29 +01:00
raven02
7701784608 Not reschelding if voicesPlayingCount == 0 2014-01-26 19:52:31 +08:00