aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm/smush/codec47.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/scumm/smush/codec47.cpp')
-rw-r--r--engines/scumm/smush/codec47.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/engines/scumm/smush/codec47.cpp b/engines/scumm/smush/codec47.cpp
index 34d61d1c8a..6904e96c11 100644
--- a/engines/scumm/smush/codec47.cpp
+++ b/engines/scumm/smush/codec47.cpp
@@ -342,6 +342,24 @@ void Codec47Decoder::makeTables47(int width) {
} while (c < 32768);
}
+#ifdef USE_ARM_SMUSH_ASM
+
+extern "C" void ARM_Smush_decode2( byte *dst,
+ const byte *src,
+ int width,
+ int height,
+ const byte *param_ptr,
+ int16 *_table,
+ byte *_tableBig,
+ int32 offset1,
+ int32 offset2,
+ byte *_tableSmall);
+
+#define decode2(SRC,DST,WIDTH,HEIGHT,PARAM) \
+ ARM_Smush_decode2(SRC,DST,WIDTH,HEIGHT,PARAM,_table,_tableBig, \
+ _offset1,_offset2,_tableSmall)
+
+#else
void Codec47Decoder::level3(byte *d_dst) {
int32 tmp;
byte code = *_d_src++;
@@ -503,6 +521,7 @@ void Codec47Decoder::decode2(byte *dst, const byte *src, int width, int height,
dst += next_line;
} while (--bh);
}
+#endif
Codec47Decoder::Codec47Decoder(int width, int height) {
_width = width;