aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorathrxx2011-06-17 23:37:21 +0200
committerathrxx2011-06-17 23:38:22 +0200
commit0881f54a0650e479a30f1ce5e3b22f695495b4b7 (patch)
tree1d05703fa67d5aba9e1e45bdb99ba6a4a84e6825 /engines/scumm
parent158c2252ab4fea7fd9ecea62a2439d82b388df1c (diff)
downloadscummvm-rg350-0881f54a0650e479a30f1ce5e3b22f695495b4b7.tar.gz
scummvm-rg350-0881f54a0650e479a30f1ce5e3b22f695495b4b7.tar.bz2
scummvm-rg350-0881f54a0650e479a30f1ce5e3b22f695495b4b7.zip
SCUMM: fix FM-TOWNS graphics output for ARM devices
(changed behavior of USE_ARM_GFX_ASM define)
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/gfx.cpp6
-rw-r--r--engines/scumm/gfx_towns.cpp2
2 files changed, 5 insertions, 3 deletions
diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index 98d447fdaf..d3ff8266a0 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -652,15 +652,15 @@ void ScummEngine::drawStripToScreen(VirtScreen *vs, int x, int width, int top, i
assert(0 == (width & 3));
// Compose the text over the game graphics
-#ifdef USE_ARM_GFX_ASM
- asmDrawStripToScreen(height, width, text, src, _compositeBuf, vs->pitch, width, _textSurface.pitch);
-#else
#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
if (_game.platform == Common::kPlatformFMTowns) {
towns_drawStripToScreen(vs, x, y, x, top, width, height);
return;
} else
#endif
+#ifdef USE_ARM_GFX_ASM
+ asmDrawStripToScreen(height, width, text, src, _compositeBuf, vs->pitch, width, _textSurface.pitch);
+#else
if (_outputPixelFormat.bytesPerPixel == 2) {
const byte *srcPtr = (const byte *)src;
const byte *textPtr = (byte *)_textSurface.getBasePtr(x * m, y * m);
diff --git a/engines/scumm/gfx_towns.cpp b/engines/scumm/gfx_towns.cpp
index 3c96be8b9c..4ec9c1bbf4 100644
--- a/engines/scumm/gfx_towns.cpp
+++ b/engines/scumm/gfx_towns.cpp
@@ -453,6 +453,8 @@ void TownsScreen::updateOutputBuffer() {
int ptch = _pitch - (r->right - r->left + 1) * _pixelFormat.bytesPerPixel;
if (_pixelFormat.bytesPerPixel == 2 && l->bpp == 1) {
+ if (!l->palette)
+ error("void TownsScreen::updateOutputBuffer(): No palette assigned to 8 bit layer %d", i);
for (int ic = 0; ic < l->numCol; ic++)
l->bltTmpPal[ic] = calc16BitColor(&l->palette[ic * 3]);
}