aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
Diffstat (limited to 'scumm')
-rw-r--r--scumm/scumm.h3
-rw-r--r--scumm/scummvm.cpp4
-rw-r--r--scumm/sound.cpp7
3 files changed, 12 insertions, 2 deletions
diff --git a/scumm/scumm.h b/scumm/scumm.h
index 1262f78f5e..ec9f28ec5d 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -208,7 +208,8 @@ enum ScummGameId {
GID_CMI,
GID_MANIAC,
GID_ZAK,
- GID_PUTTDEMO
+ GID_PUTTDEMO,
+ GID_MONKEY_SEGA
};
#define _maxRooms res.num[rtRoom]
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index a05b05a363..d204121060 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -112,6 +112,8 @@ static const VersionSettings scumm_settings[] = {
GF_USE_KEY | GF_AUDIOTRACKS | GF_ADLIB_DEFAULT, 0},
{"monkey1", "Monkey Island 1 (alt)", GID_MONKEY, 5, VersionSettings::ADLIB_PREFERRED,
GF_USE_KEY | GF_AUDIOTRACKS | GF_ADLIB_DEFAULT, 0},
+ {"game", "Monkey Island 1 (SegaCD version)", GID_MONKEY_SEGA, 5, VersionSettings::ADLIB_PREFERRED,
+ GF_USE_KEY | GF_AUDIOTRACKS | GF_ADLIB_DEFAULT, 0},
{"monkey2", "Monkey Island 2: LeChuck's revenge", GID_MONKEY2, 5, VersionSettings::ADLIB_PREFERRED,
GF_USE_KEY | GF_ADLIB_DEFAULT, 0},
{"mi2demo", "Monkey Island 2: LeChuck's revenge (Demo)", GID_MONKEY2, 5, VersionSettings::ADLIB_PREFERRED,
@@ -2500,7 +2502,7 @@ void Scumm::launch() {
VAR(VAR_DEBUGMODE) = _debugMode;
}
- if (_gameId == GID_MONKEY)
+ if (_gameId == GID_MONKEY || _gameId == GID_MONKEY_SEGA)
_scummVars[74] = 1225;
_sound->setupSound();
diff --git a/scumm/sound.cpp b/scumm/sound.cpp
index 62d3bd1242..ae9331a6a3 100644
--- a/scumm/sound.cpp
+++ b/scumm/sound.cpp
@@ -282,6 +282,13 @@ void Sound::playSound(int soundID) {
// I'm going to assume that the sample frequency is
// the only important difference between the two.
+ // FIXME: SBL resources are apparently horribly
+ // distorted on segacd even though it shares the same
+ // header etc. So don't try to play them for now.
+ if (_scumm->_gameId == GID_MONKEY_SEGA) {
+ return;
+ }
+
if (READ_UINT32(ptr + 8) == MKID('WVhd'))
rate = 11025;
else