[Scummvm-cvs-logs] CVS: scummvm/backends/midi ym2612.cpp,1.3,1.4
Max Horn
fingolfin at users.sourceforge.net
Sun Oct 5 18:25:11 CEST 2003
Update of /cvsroot/scummvm/scummvm/backends/midi
In directory sc8-pr-cvs1:/tmp/cvs-serv440
Modified Files:
ym2612.cpp
Log Message:
more optimizations
Index: ym2612.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/backends/midi/ym2612.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- ym2612.cpp 6 Oct 2003 01:08:38 -0000 1.3
+++ ym2612.cpp 6 Oct 2003 01:24:22 -0000 1.4
@@ -258,7 +258,6 @@
double value; // Use for intermediate computations to avoid int64 arithmetic
int r;
-// _frequency = freq;
_frequency = freq / _owner->_rate;
r = _specifiedAttackRate;
@@ -281,7 +280,7 @@
}
_attackTime = (int32) value; // 1 ÉÃ == (1 << 12)
- r = _specifiedDecayRate;
+ r = _specifiedDecayRate / _owner->_rate;
if (r != 0) {
r = r * 2 + (keyscaleTable[freq/262205] >> (3-_keyScale));
if (r >= 64)
@@ -290,7 +289,7 @@
value = (double) powtbl[(r&3) << 7] * (0x10 << (r>>2)) / 31;
_decayRate = (int32) value;
- r = _specifiedSustainRate;
+ r = _specifiedSustainRate / _owner->_rate;
if (r != 0) {
r = r * 2 + (keyscaleTable[freq/262205] >> (3-_keyScale));
if (r >= 64)
@@ -299,7 +298,7 @@
value = (double) powtbl[(r&3) << 7] * (0x10 << (r>>2)) / 31;
_sustainRate = (int32) value;
- r = _specifiedReleaseRate;
+ r = _specifiedReleaseRate / _owner->_rate;
if (r != 0) {
r = r * 2 + 1; // ¤³¤Î¥¿¥¤¥ß¥ó¥°¤ÇÎɤ¤¤Î¤«¤ï¤«¤é¤ó
r = r * 2 + (keyscaleTable[freq/262205] >> (3-_keyScale));
@@ -333,28 +332,25 @@
}
break;
case _s_decaying:
- _currentLevel += _decayRate / rate;
+ _currentLevel += _decayRate;
if (_currentLevel >= _sustainLevel) {
_currentLevel = _sustainLevel;
_state = _s_sustaining;
}
break;
case _s_sustaining:
- _currentLevel += _sustainRate / rate;
+ _currentLevel += _sustainRate;
if (_currentLevel >= ((int32)0x7f << 15)) {
_currentLevel = ((int32)0x7f << 15);
_state = _s_ready;
}
break;
case _s_releasing:
- _currentLevel += _releaseRate / rate;
+ _currentLevel += _releaseRate;
if (_currentLevel >= ((int32)0x7f << 15)) {
_currentLevel = ((int32)0x7f << 15);
_state = _s_ready;
}
- break;
- default:
- // ¤³¤³¤Ë¤ÏÍè¤Ê¤¤¤Ï¤º
break;
};
More information about the Scummvm-git-logs
mailing list