diff options
-rw-r--r-- | engines/sci/engine/kgraphics.cpp | 6 | ||||
-rw-r--r-- | engines/sci/graphics/palette.cpp | 5 | ||||
-rw-r--r-- | engines/sci/resource.cpp | 2 |
3 files changed, 10 insertions, 3 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp index 6ec87487f8..fd052bff6a 100644 --- a/engines/sci/engine/kgraphics.cpp +++ b/engines/sci/engine/kgraphics.cpp @@ -561,8 +561,10 @@ reg_t kPaletteSetFromResource(EngineState *s, int argc, reg_t *argv) { if (argc == 2) force = argv[1].toUint16() == 2 ? true : false; - // Non-VGA games don't use palette resources - if (g_sci->_gfxPalette->getTotalColorCount() < 256) + // Non-VGA games don't use palette resources. + // This has been changed to 64 colors because Longbow Amiga does have + // one palette (palette 999). + if (g_sci->_gfxPalette->getTotalColorCount() < 64) return s->r_acc; g_sci->_gfxPalette->kernelSetFromResource(resourceId, force); diff --git a/engines/sci/graphics/palette.cpp b/engines/sci/graphics/palette.cpp index 48a069b88c..3b3596a336 100644 --- a/engines/sci/graphics/palette.cpp +++ b/engines/sci/graphics/palette.cpp @@ -80,7 +80,10 @@ GfxPalette::GfxPalette(ResourceManager *resMan, GfxScreen *screen, bool useMergi switch (_resMan->getViewType()) { case kViewVga: case kViewVga11: - _totalScreenColors = 256; + if (g_sci->getPlatform() == Common::kPlatformAmiga) + _totalScreenColors = 64; // Longbow Amiga + else + _totalScreenColors = 256; break; case kViewAmiga: _totalScreenColors = 32; diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp index 654c3f1d64..002f520935 100644 --- a/engines/sci/resource.cpp +++ b/engines/sci/resource.cpp @@ -1538,9 +1538,11 @@ void ResourceManager::readResourcePatches() { if (i == kResourceTypeView) { SearchMan.listMatchingMembers(files, "*.v16"); // EGA SCI1 view patches SearchMan.listMatchingMembers(files, "*.v32"); // Amiga SCI1 view patches + SearchMan.listMatchingMembers(files, "*.v64"); // Amiga AGA SCI1 (i.e. Longbow) view patches } else if (i == kResourceTypePic) { SearchMan.listMatchingMembers(files, "*.p16"); // EGA SCI1 picture patches SearchMan.listMatchingMembers(files, "*.p32"); // Amiga SCI1 picture patches + SearchMan.listMatchingMembers(files, "*.p64"); // Amiga AGA SCI1 (i.e. Longbow) picture patches } else if (i == kResourceTypeScript) { if (files.size() == 0) // SCI3 (we can't use getSciVersion() at this point) |