From c47237e5b9d5b6d28ecc39757c13b54fb2f8aa23 Mon Sep 17 00:00:00 2001 From: Peter Kohaut Date: Tue, 2 Apr 2019 18:48:28 +0200 Subject: BLADERUNNER: Fixed images & z-buffer on big-endian architectures --- engines/bladerunner/ui/esper.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'engines/bladerunner/ui/esper.cpp') diff --git a/engines/bladerunner/ui/esper.cpp b/engines/bladerunner/ui/esper.cpp index af6150f983..929601677f 100644 --- a/engines/bladerunner/ui/esper.cpp +++ b/engines/bladerunner/ui/esper.cpp @@ -1433,6 +1433,13 @@ void ESPER::selectPhoto(int photoId) { s->read(photoCompressed, photoCompressedSize); decompress_lcw(photoCompressed, photoCompressedSize, (uint8 *)_surfacePhoto.getPixels(), photoSize); +#ifdef SCUMM_BIG_ENDIAN + // As the compression is working with 8-bit data, on big-endian architectures we have to switch order of bytes in uncompressed data + uint8 *rawData = (uint8 *)_surfacePhoto.getPixels(); + for (size_t i = 0; i < photoSize - 1; i += 2) { + SWAP(rawData[i], rawData[i + 1]); + } +#endif // apply palette for (uint j = 0; j < width * height; ++j) { -- cgit v1.2.3