[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