mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-21 19:51:49 +00:00
Fixed bug #1678349: BASS: music is off, but drum track plays
svn-id: r26219
This commit is contained in:
parent
dd61b25634
commit
139608f451
@ -39,7 +39,7 @@ GmChannel::GmChannel(uint8 *pMusicData, uint16 startOfData, MidiDriver *pMidiDrv
|
||||
_veloTab = veloTab;
|
||||
|
||||
_musicVolume = 0x7F;
|
||||
_lastVolume = 0xFF;
|
||||
_currentChannelVolume = 0x7F;
|
||||
}
|
||||
|
||||
GmChannel::~GmChannel(void) {
|
||||
@ -55,10 +55,9 @@ void GmChannel::updateVolume(uint16 pVolume) {
|
||||
_musicVolume = pVolume;
|
||||
if (_musicVolume > 0)
|
||||
_musicVolume = (_musicVolume * 2) / 3 + 43;
|
||||
if (_lastVolume < 0xFF) {
|
||||
uint8 newVol = (_lastVolume * _musicVolume) >> 7;
|
||||
_midiDrv->send((0xB0 | _channelData.midiChannelNumber) | 0x700 | (newVol << 16));
|
||||
}
|
||||
|
||||
uint8 newVol = (_currentChannelVolume * _musicVolume) >> 7;
|
||||
_midiDrv->send((0xB0 | _channelData.midiChannelNumber) | 0x700 | (newVol << 16));
|
||||
}
|
||||
|
||||
void GmChannel::stopNote(void) {
|
||||
@ -175,8 +174,8 @@ void GmChannel::com90_getPitch(void) {
|
||||
|
||||
void GmChannel::com90_getChannelVolume(void) {
|
||||
|
||||
_lastVolume = _musicData[_channelData.eventDataPtr];
|
||||
uint8 newVol = (uint8)((_musicData[_channelData.eventDataPtr++] * _musicVolume) >> 7);
|
||||
_currentChannelVolume = _musicData[_channelData.eventDataPtr++];
|
||||
uint8 newVol = (uint8)((_currentChannelVolume * _musicVolume) >> 7);
|
||||
_midiDrv->send((0xB0 | _channelData.midiChannelNumber) | 0x700 | (newVol << 16));
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ private:
|
||||
uint8 *_musicData;
|
||||
uint16 _musicVolume;
|
||||
MidiChannelType _channelData;
|
||||
uint8 _lastVolume;
|
||||
uint8 _currentChannelVolume;
|
||||
//- normal subs
|
||||
void setRegister(uint8 regNum, uint8 value);
|
||||
int32 getNextEventTime(void);
|
||||
|
Loading…
x
Reference in New Issue
Block a user