[Scummvm-git-logs] scummvm branch-3-0 -> 65b8d2f0e93187cd16ecffb3e3f0b7a0481613d4
lephilousophe
noreply at scummvm.org
Sat Jan 17 11:38:36 UTC 2026
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
4c8175a13e M4: Fix spanish text rendering
47a6ecbb85 ANDROID: Build non-NEON release in the release script
65b8d2f0e9 BLADERUNNER: Avoid overflow errors with VQA files
Commit: 4c8175a13e361c2daf0908eee29669ac2b298398
https://github.com/scummvm/scummvm/commit/4c8175a13e361c2daf0908eee29669ac2b298398
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2026-01-17T12:36:28+01:00
Commit Message:
M4: Fix spanish text rendering
An ASCII converter is put in place for this release.
Changed paths:
engines/m4/riddle/vars.cpp
engines/m4/riddle/vars.h
diff --git a/engines/m4/riddle/vars.cpp b/engines/m4/riddle/vars.cpp
index b6f31d71f78..738732802b0 100644
--- a/engines/m4/riddle/vars.cpp
+++ b/engines/m4/riddle/vars.cpp
@@ -24,12 +24,55 @@
#include "m4/riddle/inventory.h"
#include "m4/gui/gui_sys.h"
#include "m4/platform/keys.h"
+#include "m4/m4.h"
namespace M4 {
namespace Riddle {
Vars *g_vars;
+/**
+ * Structure for accented character replacement
+ */
+struct ConverterEntry {
+ const char *_find;
+ byte _replace;
+};
+static const ConverterEntry SPANISH_ASCII_CONVERTERS[] = {
+ { "\xc7", 1 },
+ { "\xfc", 2 },
+ { "\xe9", 3 },
+ { "\xe2", 4 },
+ { "\xe4", 5 },
+ { "\xe0", 6 },
+ { "\xe7", 0x0C },
+ { "\xea", 0x0D },
+ { "\xeb", 0x0E },
+ { "\xe8", 0x0F },
+ { "\xef", 0x69 },
+ { "\xee", 0x25 },
+ { "\xec", 0x12 },
+ { "\xc1", 0x23 },
+ { "\xc9", 0x14 },
+ { "\xf4", 0x15 },
+ { "\xf6", 0x16 },
+ { "\xf2", 0x17 },
+ { "\xfb", 0x18 },
+ { "\xf9", 0x19 },
+ { "\xcd", 0x3C },
+ { "\xd3", 0x3E },
+ { "\xda", 0x1C },
+ { "\xe1", 0x1D },
+ { "\xed", 0x1E },
+ { "\xf3", 0x1F },
+ { "\xfa", 0x40 },
+ { "\xf1", 0x5F },
+ { "\xd1", 0x7E },
+ { "\xbf", 0x7C },
+ { "\xa1", 0x7F },
+ { nullptr, 0 }
+};
+
Vars::Vars() {
g_vars = this;
@@ -60,6 +103,10 @@ void Vars::main_cold_data_init() {
initMouseSeries("cursor", nullptr);
conv_set_default_text_colour(7, 8);
+
+ if (g_engine->getLanguage() == Common::ES_ESP) {
+ _custom_ascii_converter = spanish_ascii_converter_proc;
+ }
}
void Vars::global_menu_system_init() {
@@ -79,5 +126,14 @@ void Vars::initialize_game() {
_G(flags).reset();
}
+void Vars::spanish_ascii_converter_proc(char *string) {
+ char *str;
+
+ for (const auto *entry = SPANISH_ASCII_CONVERTERS; entry->_find; entry++) {
+ while ((str = strstr(string, entry->_find)) != nullptr)
+ *str = entry->_replace;
+ }
+}
+
} // namespace Riddle
} // namespace M4
diff --git a/engines/m4/riddle/vars.h b/engines/m4/riddle/vars.h
index 8f0d0a1e5be..568e49dbda5 100644
--- a/engines/m4/riddle/vars.h
+++ b/engines/m4/riddle/vars.h
@@ -41,6 +41,9 @@ enum global_triggers {
};
class Vars : public M4::Vars {
+private:
+ static void spanish_ascii_converter_proc(char *string);
+
protected:
void main_cold_data_init() override;
Commit: 47a6ecbb859de44d66ce03107ebe86c16d29df3f
https://github.com/scummvm/scummvm/commit/47a6ecbb859de44d66ce03107ebe86c16d29df3f
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2026-01-17T12:37:20+01:00
Commit Message:
ANDROID: Build non-NEON release in the release script
Also rename the assets using the version name.
Changed paths:
backends/platform/android/build-release.sh
diff --git a/backends/platform/android/build-release.sh b/backends/platform/android/build-release.sh
index cb2c3202908..a83d694895d 100755
--- a/backends/platform/android/build-release.sh
+++ b/backends/platform/android/build-release.sh
@@ -16,6 +16,9 @@ VERSION_CODE=$(sed -n -e '/versionCode /s/[\t ]*versionCode //p' "${ROOT}/dists/
# Make sure the last digit is 0
VERSION_CODE=$((${VERSION_CODE} / 10 * 10))
+# Get the version name to name assets
+VERSION_NAME=$(sed -n -e '/versionName /s/[\t ]*versionName "\(.*\)"$/\1/p' "${ROOT}/dists/android/build.gradle")
+
patch_version() {
local dir
dir=$2
@@ -38,6 +41,8 @@ patch_version ${VERSION_CODE}
# Build an AAB bundle with games
make -j${NPROC} androidfatbundlerelease GAMES_BUNDLE_DIRECTORY="$GAMES_FOLDER"
+mv ScummVM-release.aab scummvm-${VERSION_NAME}-android.aab
+
# For APK strip out the games
if [ -n "$GAMES_FOLDER" ]; then
rm -rf "./android_project/mainAssets/src/main/assets/assets/games"
@@ -58,7 +63,7 @@ plat_build() {
fi
patch_version $((${VERSION_CODE} + ${subcode})) "${subbuild}"
make -j${NPROC} -C ${subbuild} androidrelease
- mv ${subbuild}/ScummVM-release-unsigned.apk ScummVM-release-unsigned-${subarch}.apk
+ mv ${subbuild}/ScummVM-release-unsigned.apk scummvm-${VERSION_NAME}-android-${subarch}-unsigned.apk
}
# Build ARMv7a with versionCode 1
@@ -72,3 +77,14 @@ plat_build 3 x86
# Build x86_64 with versionCode 4
plat_build 4 x86_64
+
+# Finally build ARMv7a without NEON with versionCode 1
+
+# Configure...
+mkdir -p build-androidarmeabi-v7a-nn
+cd build-androidarmeabi-v7a-nn
+"${ROOT}/configure" --host=android-arm-v7a --disable-ext-neon --disable-debug --enable-release
+cd ..
+
+# ...build like the others
+plat_build 1 armeabi-v7a-nn
Commit: 65b8d2f0e93187cd16ecffb3e3f0b7a0481613d4
https://github.com/scummvm/scummvm/commit/65b8d2f0e93187cd16ecffb3e3f0b7a0481613d4
Author: Le Philousophe (lephilousophe at users.noreply.github.com)
Date: 2026-01-17T12:37:31+01:00
Commit Message:
BLADERUNNER: Avoid overflow errors with VQA files
Changed paths:
engines/bladerunner/vqa_decoder.cpp
diff --git a/engines/bladerunner/vqa_decoder.cpp b/engines/bladerunner/vqa_decoder.cpp
index 2647a25f978..0aa76dbb245 100644
--- a/engines/bladerunner/vqa_decoder.cpp
+++ b/engines/bladerunner/vqa_decoder.cpp
@@ -710,9 +710,9 @@ VQADecoder::VQAVideoTrack::VQAVideoTrack(VQADecoder *vqaDecoder) {
_offsetX = header->offsetX;
_offsetY = header->offsetY;
- _maxVPTRSize = header->maxVPTRSize;
- _maxCBFZSize = header->maxCBFZSize;
- _maxZBUFChunkSize = vqaDecoder->_maxZBUFChunkSize;
+ _maxVPTRSize = roundup(header->maxVPTRSize);
+ _maxCBFZSize = roundup(header->maxCBFZSize);
+ _maxZBUFChunkSize = roundup(vqaDecoder->_maxZBUFChunkSize);
_codebook = nullptr;
_cbfz = nullptr;
@@ -723,7 +723,7 @@ VQADecoder::VQAVideoTrack::VQAVideoTrack(VQADecoder *vqaDecoder) {
_curFrame = -1;
_zbufChunkSize = 0;
- _zbufChunk = new uint8[roundup(_maxZBUFChunkSize)];
+ _zbufChunk = new uint8[_maxZBUFChunkSize];
_viewDataSize = 0;
_viewData = nullptr;
@@ -844,7 +844,7 @@ bool VQADecoder::VQAVideoTrack::readCBFZ(Common::SeekableReadStream *s, uint32 s
codebookInfo.data = new uint8[roundup(codebookSize)];
if (!_cbfz) {
- _cbfz = new uint8[roundup(_maxCBFZSize)];
+ _cbfz = new uint8[_maxCBFZSize];
}
s->read(_cbfz, roundup(size));
@@ -871,7 +871,7 @@ bool VQADecoder::VQAVideoTrack::readCBPZ(Common::SeekableReadStream* s, uint32 s
}
if (!_cbfzNext) {
- _cbfzNext = new uint8[roundup(_maxCBFZSize)];
+ _cbfzNext = new uint8[_maxCBFZSize];
_codebookInfoNext = new CodebookInfo();
_codebookInfoNext->frame = 0;
_codebookInfoNext->data = new uint8[roundup(_cbParts * _maxBlocks)];
@@ -883,20 +883,21 @@ bool VQADecoder::VQAVideoTrack::readCBPZ(Common::SeekableReadStream* s, uint32 s
s->read(_cbfzNext + _accumulatedCBPZsizeToCBF, roundup(size));
_accumulatedCBPZsizeToCBF += size;
- assert(_accumulatedCBPZsizeToCBF <= roundup(_maxCBFZSize));
+ assert(_accumulatedCBPZsizeToCBF <= _maxCBFZSize);
++_countOfCBPsToCBF;
return true;
}
bool VQADecoder::VQAVideoTrack::readZBUF(Common::SeekableReadStream *s, uint32 size) {
- if (size > _maxZBUFChunkSize) {
+ uint32 roundedSize = roundup(size);
+ if (roundedSize > _maxZBUFChunkSize) {
warning("VQA ERROR: ZBUF chunk size: %08x > %08x", size, _maxZBUFChunkSize);
- s->skip(roundup(size));
+ s->skip(roundedSize);
return false;
}
_zbufChunkSize = size;
- s->read(_zbufChunk, roundup(size));
+ s->read(_zbufChunk, roundedSize);
return true;
}
@@ -1061,7 +1062,7 @@ bool VQADecoder::VQAVideoTrack::readVPTZ(Common::SeekableReadStream* s, uint32 s
return false;
if (!_vptz) {
- _vptz = new uint8[roundup(_maxVPTRSize)];
+ _vptz = new uint8[_maxVPTRSize];
}
s->read(_vptz, roundup(size));
@@ -1084,7 +1085,7 @@ bool VQADecoder::VQAVideoTrack::readVPTR(Common::SeekableReadStream *s, uint32 s
return false;
if (!_vpointer) {
- _vpointer = new uint8[roundup(_maxVPTRSize)];
+ _vpointer = new uint8[_maxVPTRSize];
}
_vpointerSize = size;
More information about the Scummvm-git-logs
mailing list