[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