Index: scummvm/scumm/imuse.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse.cpp,v
retrieving revision 1.12
diff -u -r1.12 imuse.cpp
--- scummvm/scumm/imuse.cpp	22 Sep 2002 02:53:15 -0000	1.12
+++ scummvm/scumm/imuse.cpp	27 Sep 2002 23:37:54 -0000
@@ -3104,7 +3106,7 @@
 
 void Part::set_detune(int8 detune)
 {
-	_detune_eff = clamp((_detune = detune) + _player->_detune, -128, 127);
+	_detune_eff = clamp((_detune = detune) + (_player ? _player->_detune : 0), -128, 127);
 	changed(IMuseDriver::pcMod);
 }
 
@@ -3116,24 +3118,24 @@
 
 void Part::set_vol(uint8 vol)
 {
-	_vol_eff = ((_vol = vol) + 1) * _player->_vol_eff >> 7;
+	_vol_eff = ((_vol = vol) + 1) * (_player ? _player->_vol_eff : 0) >> 7;
 	changed(IMuseDriver::pcVolume);
 }
 
 void Part::set_pri(int8 pri)
 {
-	_pri_eff = clamp((_pri = pri) + _player->_priority, 0, 255);
+	_pri_eff = clamp((_pri = pri) + (_player ? _player->_priority : 0), 0, 255);
 }
 
 void Part::set_pan(int8 pan)
 {
-	_pan_eff = clamp((_pan = pan) + _player->_pan, -64, 63);
+	_pan_eff = clamp((_pan = pan) + (_player ? _player->_pan : 0), -64, 63);
 	changed(IMuseDriver::pcPan);
 }
 
 void Part::set_transpose(int8 transpose)
 {
-	_transpose_eff = transpose_clamp((_transpose = transpose) + _player->_transpose, -12, 12);
+	_transpose_eff = transpose_clamp((_transpose = transpose) + (_player ? _player->_transpose : 0), -12, 12);
 	changed(IMuseDriver::pcMod);
 }
 
@@ -4372,7 +4511,7 @@
 		midiNoteOn(mc->_chan, note, velocity);
 	} else if (part->_percussion) {
 		midiVolume(PERCUSSION_CHANNEL, part->_vol_eff);
-		midiProgram(PERCUSSION_CHANNEL, part->_bank, part->_player->_mt32emulate);
+		midiProgram(PERCUSSION_CHANNEL, part->_bank, (part->_player ? part->_player->_mt32emulate : false));
 		midiNoteOn(PERCUSSION_CHANNEL, note, velocity);
 	}
 }
@@ -4591,10 +4731,10 @@
 	if (what & pcProgram) {
 		if (part->_bank) {
 			midiControl0(mc->_chan, part->_bank);
-			midiProgram(mc->_chan, part->_program, part->_player->_mt32emulate);
+			midiProgram(mc->_chan, part->_program, (part->_player ? part->_player->_mt32emulate : false));
 			midiControl0(mc->_chan, 0);
 		} else {
-			midiProgram(mc->_chan, part->_program, part->_player->_mt32emulate);
+			midiProgram(mc->_chan, part->_program, (part->_player ? part->_player->_mt32emulate : false));
 		}
 	}
 
