mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-26 20:59:00 +00:00
MDY/TBR : fix a thing or two. Still far from being OK, but in-game ambiance "music" is (a little) less buggy
svn-id: r41584
This commit is contained in:
parent
2668ea4694
commit
975a0d6567
@ -400,14 +400,15 @@ void AdLib::pollMusic() {
|
||||
}
|
||||
do {
|
||||
instr = *_playPos;
|
||||
// printf("instr 0x%X\n", instr);
|
||||
switch(instr) {
|
||||
case 0xF8:
|
||||
_wait = 0xF8;
|
||||
_wait = *(_playPos++);
|
||||
break;
|
||||
case 0xFC:
|
||||
_ended = true;
|
||||
_samplesTillPoll = 0;
|
||||
break;
|
||||
return;
|
||||
case 0xF0:
|
||||
_playPos++;
|
||||
ctrlByte1 = *(_playPos++);
|
||||
@ -450,11 +451,13 @@ void AdLib::pollMusic() {
|
||||
setVoiceTbr(channel, timbre, false);
|
||||
break;
|
||||
case 0xE0:
|
||||
printf("Pitch bend not yet implemented\n");
|
||||
warning("Pitch bend not yet implemented\n");
|
||||
|
||||
note = *(_playPos)++;
|
||||
note += (unsigned)(*(_playPos++)) << 7;
|
||||
|
||||
|
||||
setKey(channel, note, _notOn[channel], true);
|
||||
|
||||
break;
|
||||
case 0xB0:
|
||||
_playPos += 2;
|
||||
@ -475,12 +478,12 @@ void AdLib::pollMusic() {
|
||||
} //switch instr
|
||||
} while (_wait == 0);
|
||||
|
||||
if (_wait == 0x78) {
|
||||
if (_wait == 0xF8) {
|
||||
_wait = 0xF0;
|
||||
if (*_playPos != 0xF8)
|
||||
_wait += *(_playPos++);
|
||||
}
|
||||
_playPos++;
|
||||
// _playPos++;
|
||||
_samplesTillPoll = _wait * (_rate / 1000);
|
||||
} else {
|
||||
// First tempo, we'll ignore it...
|
||||
|
Loading…
x
Reference in New Issue
Block a user