aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/sword1/sound.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/engines/sword1/sound.cpp b/engines/sword1/sound.cpp
index a6e6d3917e..ef4a2ee025 100644
--- a/engines/sword1/sound.cpp
+++ b/engines/sword1/sound.cpp
@@ -156,7 +156,12 @@ void Sound::checkSpeechFileEndianness() {
be_diff_sum /= be_cpt;
delete [] data;
// Set the big endian flag
+ // uncompreesSpeech gives data in little endian, so on big endian systems the heuristic is actually reversed
+#ifdef SCUMM_BIG_ENDIAN
+ _bigEndianSpeech = (le_diff_sum < be_diff_sum);
+#else
_bigEndianSpeech = (be_diff_sum < le_diff_sum);
+#endif
if (_bigEndianSpeech)
debug(6, "Mac version: using big endian speech file");
else