Add emergency patch for 'RFC: Timer-based CD audio sync' patch so monkeyvga works again.

svn-id: r5012
This commit is contained in:
Travis Howell 2002-09-24 04:29:54 +00:00
parent e244ddf426
commit 2e88cd210c
2 changed files with 14 additions and 2 deletions

View file

@ -375,7 +375,7 @@ static const VersionSettings version_settings[] = {
/* Scumm version 5 */
{"monkeyVGA", "Monkey Island 1 (256 color Floppy version)", GID_MONKEY_VGA, 5, 0, 16,
GF_SMALL_HEADER | GF_USE_KEY | GF_AUDIOTRACKS | GF_ADLIB_DEFAULT},
GF_SMALL_HEADER | GF_USE_KEY | GF_ADLIB_DEFAULT},
{"loomcd", "Loom (256 color CD version)", GID_LOOM256, 5, 1, 42,
GF_SMALL_HEADER | GF_USE_KEY | GF_AUDIOTRACKS | GF_ADLIB_DEFAULT},
{"monkey", "Monkey Island 1", GID_MONKEY, 5, 2, 2,

View file

@ -340,6 +340,8 @@ void Scumm::checkRange(int max, int min, int no, const char *str)
int Scumm::scummLoop(int delta)
{
static int counter = 0;
#ifndef _WIN32_WCE
if (_debugger)
_debugger->on_frame();
@ -378,7 +380,17 @@ int Scumm::scummLoop(int delta)
_vars[VAR_MOUSE_Y] = mouse.y;
_vars[VAR_DEBUGMODE] = _debugMode;
if (_features & GF_AUDIOTRACKS) {
if (_gameId == GID_MONKEY_VGA) {
// FIXME: Is all this really necessary now?
if (delta == 1)
_vars[VAR_MI1_TIMER]++;
else if (++counter != 2)
_vars[VAR_MI1_TIMER] += 5;
else {
counter = 0;
_vars[VAR_MI1_TIMER] += 6;
}
} else if (_features & GF_AUDIOTRACKS) {
_vars[VAR_MI1_TIMER] = _sound->readCDTimer();
} else if (_features & GF_OLD256) {