aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2003-08-14 10:28:16 +0000
committerTravis Howell2003-08-14 10:28:16 +0000
commit57133e526f0cb88024fd662dd351a35a3e50029b (patch)
tree4d9d9ac7f44b6b068490503ea53a56be56b3b738 /scumm
parent7faa06aecd43c38da6e72388c6124708de16de94 (diff)
downloadscummvm-rg350-57133e526f0cb88024fd662dd351a35a3e50029b.tar.gz
scummvm-rg350-57133e526f0cb88024fd662dd351a35a3e50029b.tar.bz2
scummvm-rg350-57133e526f0cb88024fd662dd351a35a3e50029b.zip
Add roland support for loom )ega)
Enable roland support for monkeyega svn-id: r9688
Diffstat (limited to 'scumm')
-rw-r--r--scumm/resource.cpp15
-rw-r--r--scumm/scummvm.cpp4
2 files changed, 16 insertions, 3 deletions
diff --git a/scumm/resource.cpp b/scumm/resource.cpp
index b4c20dea3f..877bd3b473 100644
--- a/scumm/resource.cpp
+++ b/scumm/resource.cpp
@@ -1426,7 +1426,20 @@ int Scumm::readSoundResourceSmallHeader(int type, int idx) {
debug(4, "readSoundResourceSmallHeader(%s,%d)", resTypeFromId(type), idx);
- if ((_features & GF_OLD_BUNDLE)) {
+ if ((_gameId == GID_LOOM) && VAR_SOUNDCARD == 4) {
+ byte *ptr, *src_ptr;
+ ro_offs = _fileHandle.pos();
+ ro_size = _fileHandle.readUint16LE();
+
+ src_ptr = (byte *) calloc(ro_size - 4, 1);
+ _fileHandle.seek(ro_offs +4, SEEK_SET);
+ _fileHandle.read(src_ptr, ro_size -4);
+
+ ptr = createResource(type, idx, ro_size + 2);
+ memcpy(ptr, "RO", 2); ptr += 2;
+ memcpy(ptr, src_ptr, ro_size - 4); ptr += ro_size - 4;
+ return 1;
+ } else if (_features & GF_OLD_BUNDLE) {
wa_offs = _fileHandle.pos();
wa_size = _fileHandle.readUint16LE();
_fileHandle.seek(wa_size - 2, SEEK_CUR);
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index ef6e3aa684..b4ef0688b8 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -82,11 +82,11 @@ static const VersionSettings scumm_settings[] = {
GF_SMALL_HEADER | GF_SMALL_NAMES | GF_NO_SCALING | GF_OLD256 | GF_FEW_LOCALS, "00.LFL"},
{"zak256", "Zak McKracken and the Alien Mindbenders (256)", GID_ZAK256, 3, VersionSettings::ADLIB_ALWAYS,
GF_SMALL_HEADER | GF_SMALL_NAMES | GF_NO_SCALING | GF_OLD256 | GF_FMTOWNS | GF_AUDIOTRACKS, "00.LFL"},
- {"loom", "Loom", GID_LOOM, 3, VersionSettings::ADLIB_ALWAYS,
+ {"loom", "Loom", GID_LOOM, 3, VersionSettings::ADLIB_PREFERRED,
GF_SMALL_HEADER | GF_SMALL_NAMES | GF_NO_SCALING | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE, "00.LFL"},
/* Scumm Version 4 */
- {"monkeyEGA", "Monkey Island 1 (EGA)", GID_MONKEY_EGA, 4, VersionSettings::ADLIB_ALWAYS,
+ {"monkeyEGA", "Monkey Island 1 (EGA)", GID_MONKEY_EGA, 4, VersionSettings::ADLIB_PREFERRED,
GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR, "000.LFL"},
{"pass", "Passport to Adventure", GID_PASS, 4, VersionSettings::ADLIB_ALWAYS,
GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR, "000.LFL"},