diff options
author | Nebuleon Fumika | 2013-01-23 20:16:46 -0500 |
---|---|---|
committer | Nebuleon Fumika | 2013-01-23 20:16:46 -0500 |
commit | 433749b6ef1e2b070755c3bb7fc0d81b5ecaa7b1 (patch) | |
tree | 38600503fea7fa1607ebb1e7c501d1f4d41f88b8 /source/soundux.cpp | |
parent | 40596a7d6810c2d3bc2db28e8f9c2b825972d21d (diff) | |
parent | d57eea6b4fd4d5d642cb730f6291dabfb0c6a633 (diff) | |
download | snes9x2005-433749b6ef1e2b070755c3bb7fc0d81b5ecaa7b1.tar.gz snes9x2005-433749b6ef1e2b070755c3bb7fc0d81b5ecaa7b1.tar.bz2 snes9x2005-433749b6ef1e2b070755c3bb7fc0d81b5ecaa7b1.zip |
Merge branch 'master' into 8bitsound
Diffstat (limited to 'source/soundux.cpp')
-rw-r--r-- | source/soundux.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/source/soundux.cpp b/source/soundux.cpp index a3103e7..fda2e25 100644 --- a/source/soundux.cpp +++ b/source/soundux.cpp @@ -429,24 +429,25 @@ void S9xSetFilterCoefficient (int tap, int value) void S9xSetSoundADSR (int channel, int attack_rate, int decay_rate, int sustain_rate, int sustain_level, int release_rate) { - SoundData.channels[channel].attack_rate = attack_rate; - SoundData.channels[channel].decay_rate = decay_rate; - SoundData.channels[channel].sustain_rate = sustain_rate; - SoundData.channels[channel].release_rate = release_rate; - SoundData.channels[channel].sustain_level = sustain_level + 1; + Channel *ch = &SoundData.channels[channel]; + ch->attack_rate = attack_rate; + ch->decay_rate = decay_rate; + ch->sustain_rate = sustain_rate; + ch->release_rate = release_rate; + ch->sustain_level = sustain_level + 1; switch (SoundData.channels[channel].state) { case SOUND_ATTACK: - S9xSetEnvelopeRate (channel, attack_rate, 1, 127); + S9xSetEnvRate (ch, attack_rate, 1, 127); break; case SOUND_DECAY: - S9xSetEnvelopeRate (channel, decay_rate, -1, + S9xSetEnvRate (ch, decay_rate, -1, (MAX_ENVELOPE_HEIGHT * (sustain_level + 1)) >> 3); break; case SOUND_SUSTAIN: - S9xSetEnvelopeRate (channel, sustain_rate, -1, 0); + S9xSetEnvRate (ch, sustain_rate, -1, 0); break; } } |