[Scummvm-cvs-logs] CVS: scummvm/backends/midi ym2612.cpp,1.7,1.8
Max Horn
fingolfin at users.sourceforge.net
Mon Oct 6 06:03:08 CEST 2003
Update of /cvsroot/scummvm/scummvm/backends/midi
In directory sc8-pr-cvs1:/tmp/cvs-serv28041
Modified Files:
ym2612.cpp
Log Message:
some more tweaks
Index: ym2612.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/midi/ym2612.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- ym2612.cpp 6 Oct 2003 12:33:40 -0000 1.7
+++ ym2612.cpp 6 Oct 2003 13:02:06 -0000 1.8
@@ -324,6 +324,7 @@
int32 target;
State next_state;
const int32 zero_level = ((int32)0x7f << 15);
+ const int phaseIncrement = (_multiple > 0) ? (_frequency * _multiple) : (_frequency / 2);
while (buflen) {
switch (_state) {
@@ -355,19 +356,13 @@
if (next_state == _s_attacking) {
// Attack phase
++_tickCount;
- if (_attackTime <= 0) {
+ int i = (int) (_tickCount * _attackTime);
+ if (i >= 1024) {
_currentLevel = 0;
_state = _s_decaying;
switching = true;
} else {
- int i = (int) (_tickCount * _attackTime);
- if (i >= 1024) {
- _currentLevel = 0;
- _state = _s_decaying;
- switching = true;
- } else {
- _currentLevel = attackOut[i] << (31 - 8 - 16);
- }
+ _currentLevel = (attackOut[i] << (31 - 8 - 16));
}
} else {
// Decay, Sustain and Release phases
@@ -402,12 +397,7 @@
// Result varies from original code by max of 8.
output = ((output >> 4) * (powtbl[511-((level>>9)&511)] >> 3)) / 1024;
- if (_multiple > 0)
-// _phase += (_frequency * _multiple) / rate;
- _phase += _frequency * _multiple; // / rate; already included
- else
-// _phase += _frequency / (rate << 1);
- _phase += _frequency / 2;
+ _phase += phaseIncrement;
}
_lastOutput = output;
More information about the Scummvm-git-logs
mailing list